
/**
 * Client
**/

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

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


/**
 * Model ApprovalDefinition
 * 
 */
export type ApprovalDefinition = $Result.DefaultSelection<Prisma.$ApprovalDefinitionPayload>
/**
 * Model ApprovalVersion
 * 
 */
export type ApprovalVersion = $Result.DefaultSelection<Prisma.$ApprovalVersionPayload>
/**
 * Model ApprovalInstance
 * 
 */
export type ApprovalInstance = $Result.DefaultSelection<Prisma.$ApprovalInstancePayload>
/**
 * Model ApprovalNodeInstance
 * 
 */
export type ApprovalNodeInstance = $Result.DefaultSelection<Prisma.$ApprovalNodeInstancePayload>
/**
 * Model ApprovalTask
 * 
 */
export type ApprovalTask = $Result.DefaultSelection<Prisma.$ApprovalTaskPayload>
/**
 * Model ApprovalTaskLog
 * 
 */
export type ApprovalTaskLog = $Result.DefaultSelection<Prisma.$ApprovalTaskLogPayload>
/**
 * Model CallbackRetryQueue
 * 
 */
export type CallbackRetryQueue = $Result.DefaultSelection<Prisma.$CallbackRetryQueuePayload>
/**
 * Model ReminderQueue
 * 
 */
export type ReminderQueue = $Result.DefaultSelection<Prisma.$ReminderQueuePayload>
/**
 * Model UserDelegationSetting
 * 
 */
export type UserDelegationSetting = $Result.DefaultSelection<Prisma.$UserDelegationSettingPayload>
/**
 * Model ApprovalAdminConfig
 * 
 */
export type ApprovalAdminConfig = $Result.DefaultSelection<Prisma.$ApprovalAdminConfigPayload>
/**
 * Model ApprovalAdminExport
 * 
 */
export type ApprovalAdminExport = $Result.DefaultSelection<Prisma.$ApprovalAdminExportPayload>
/**
 * Model Organization
 * 组织表
 * 独立的组织实体，支持组织特有属性（法人信息、财务配置等）
 */
export type Organization = $Result.DefaultSelection<Prisma.$OrganizationPayload>
/**
 * Model OrganizationRegion
 * 组织区域关联表 (v2.0 新增)
 * 表示组织的运营区域（多对多）
 */
export type OrganizationRegion = $Result.DefaultSelection<Prisma.$OrganizationRegionPayload>
/**
 * Model Region
 * 区域实体
 * 表示公司运营的地理区域（如中国、美国、阿联酋等）
 */
export type Region = $Result.DefaultSelection<Prisma.$RegionPayload>
/**
 * Model Department
 * 
 */
export type Department = $Result.DefaultSelection<Prisma.$DepartmentPayload>
/**
 * Model Position
 * 
 */
export type Position = $Result.DefaultSelection<Prisma.$PositionPayload>
/**
 * Model UserDepartment
 * 
 */
export type UserDepartment = $Result.DefaultSelection<Prisma.$UserDepartmentPayload>
/**
 * Model ExpenseRequest
 * 
 */
export type ExpenseRequest = $Result.DefaultSelection<Prisma.$ExpenseRequestPayload>
/**
 * Model ExpenseItem
 * 
 */
export type ExpenseItem = $Result.DefaultSelection<Prisma.$ExpenseItemPayload>
/**
 * Model PurchaseRequest
 * 
 */
export type PurchaseRequest = $Result.DefaultSelection<Prisma.$PurchaseRequestPayload>
/**
 * Model PurchaseItem
 * 
 */
export type PurchaseItem = $Result.DefaultSelection<Prisma.$PurchaseItemPayload>
/**
 * Model ContractRequest
 * 
 */
export type ContractRequest = $Result.DefaultSelection<Prisma.$ContractRequestPayload>
/**
 * Model Part
 * 
 */
export type Part = $Result.DefaultSelection<Prisma.$PartPayload>
/**
 * Model Station
 * 
 */
export type Station = $Result.DefaultSelection<Prisma.$StationPayload>
/**
 * Model Warehouse
 * 
 */
export type Warehouse = $Result.DefaultSelection<Prisma.$WarehousePayload>
/**
 * Model StorageLocation
 * 
 */
export type StorageLocation = $Result.DefaultSelection<Prisma.$StorageLocationPayload>
/**
 * Model PartLabel
 * 
 */
export type PartLabel = $Result.DefaultSelection<Prisma.$PartLabelPayload>
/**
 * Model InventoryLog
 * 
 */
export type InventoryLog = $Result.DefaultSelection<Prisma.$InventoryLogPayload>
/**
 * Model StockAlert
 * 
 */
export type StockAlert = $Result.DefaultSelection<Prisma.$StockAlertPayload>
/**
 * Model InventoryImportLog
 * 
 */
export type InventoryImportLog = $Result.DefaultSelection<Prisma.$InventoryImportLogPayload>
/**
 * Model PartColumnConfig
 * 
 */
export type PartColumnConfig = $Result.DefaultSelection<Prisma.$PartColumnConfigPayload>
/**
 * Model PartGroup
 * 
 */
export type PartGroup = $Result.DefaultSelection<Prisma.$PartGroupPayload>
/**
 * Model GroupCustomField
 * 
 */
export type GroupCustomField = $Result.DefaultSelection<Prisma.$GroupCustomFieldPayload>
/**
 * Model PartGroupRelation
 * 
 */
export type PartGroupRelation = $Result.DefaultSelection<Prisma.$PartGroupRelationPayload>
/**
 * Model AIConversation
 * 
 */
export type AIConversation = $Result.DefaultSelection<Prisma.$AIConversationPayload>
/**
 * Model AIMessage
 * 
 */
export type AIMessage = $Result.DefaultSelection<Prisma.$AIMessagePayload>
/**
 * Model AIMessageFeedback
 * 
 */
export type AIMessageFeedback = $Result.DefaultSelection<Prisma.$AIMessageFeedbackPayload>
/**
 * Model AIAssistantTicket
 * 
 */
export type AIAssistantTicket = $Result.DefaultSelection<Prisma.$AIAssistantTicketPayload>
/**
 * Model AIKnowledgeFix
 * 
 */
export type AIKnowledgeFix = $Result.DefaultSelection<Prisma.$AIKnowledgeFixPayload>
/**
 * Model AIPromptTemplate
 * 
 */
export type AIPromptTemplate = $Result.DefaultSelection<Prisma.$AIPromptTemplatePayload>
/**
 * Model AIConfiguration
 * 
 */
export type AIConfiguration = $Result.DefaultSelection<Prisma.$AIConfigurationPayload>
/**
 * Model AIUsageStats
 * 
 */
export type AIUsageStats = $Result.DefaultSelection<Prisma.$AIUsageStatsPayload>
/**
 * Model AgentSession
 * 
 */
export type AgentSession = $Result.DefaultSelection<Prisma.$AgentSessionPayload>
/**
 * Model AgentMessage
 * @skip-data-scope session 子表，append-only；归属由 sessionId FK 间接控制
 */
export type AgentMessage = $Result.DefaultSelection<Prisma.$AgentMessagePayload>
/**
 * Model ModelRoutingRule
 * 
 */
export type ModelRoutingRule = $Result.DefaultSelection<Prisma.$ModelRoutingRulePayload>
/**
 * Model ModelRoutingDecision
 * @skip-data-scope append-only 路由决策审计
 */
export type ModelRoutingDecision = $Result.DefaultSelection<Prisma.$ModelRoutingDecisionPayload>
/**
 * Model AgentTrajectoryEvent
 * @skip-data-scope session 审计事件流，append-only 哈希链；归属由 sessionId FK 控制
 */
export type AgentTrajectoryEvent = $Result.DefaultSelection<Prisma.$AgentTrajectoryEventPayload>
/**
 * Model AgentQuota
 * 
 */
export type AgentQuota = $Result.DefaultSelection<Prisma.$AgentQuotaPayload>
/**
 * Model AgentQuotaUsage
 * @skip-data-scope 月度用量统计聚合，无创建者概念（系统 upsert）
 */
export type AgentQuotaUsage = $Result.DefaultSelection<Prisma.$AgentQuotaUsagePayload>
/**
 * Model OrganizationAgentSettings
 * 
 */
export type OrganizationAgentSettings = $Result.DefaultSelection<Prisma.$OrganizationAgentSettingsPayload>
/**
 * Model AgentArtifact
 * 
 */
export type AgentArtifact = $Result.DefaultSelection<Prisma.$AgentArtifactPayload>
/**
 * Model AgentTaskTracker
 * 
 */
export type AgentTaskTracker = $Result.DefaultSelection<Prisma.$AgentTaskTrackerPayload>
/**
 * Model AgentScratchpad
 * @skip-data-scope session 子表 KV；归属由 sessionId FK 控制
 */
export type AgentScratchpad = $Result.DefaultSelection<Prisma.$AgentScratchpadPayload>
/**
 * Model StorageBinding
 * 
 */
export type StorageBinding = $Result.DefaultSelection<Prisma.$StorageBindingPayload>
/**
 * Model StorageFile
 * @skip-data-scope binding 子表，归属由 bindingId FK 控制；uploadedById 是设计语义（上传者）非创建者
 */
export type StorageFile = $Result.DefaultSelection<Prisma.$StorageFilePayload>
/**
 * Model AgentProject
 * 用户自创"项目工作区"（ChatGPT-style Projects）—— 把零散对话归类成主题
 * FFOA 业务项目（车型/营销）在别的模块里；本表是 agent 用户的私域文件夹。
 * AgentSession.projectId 可关联本表；删除项目级联清空 session.projectId（保 session）
 */
export type AgentProject = $Result.DefaultSelection<Prisma.$AgentProjectPayload>
/**
 * Model AgentMemory
 * 用户 / 组织持久记忆 —— agent 每个 turn 自动注入 system prompt
 * 三个正交维度：
 * ownerScope（归属：USER 跟用户走 / ORG 全 org 共享 admin 配）
 * scope（激活：GLOBAL / PROJECT / PERSONA）
 * category（类别：USER / FEEDBACK / PROJECT / REFERENCE）
 */
export type AgentMemory = $Result.DefaultSelection<Prisma.$AgentMemoryPayload>
/**
 * Model AgentPersona
 * 智能体 Persona —— agent 的 "你应该是谁"，含 instructions / 工具白名单 / 风格
 * 来源：① 系统预设（createdById=NULL + systemKey 唯一）② 用户自创
 * agent 每个 turn 读取当前激活的 persona，注入 system prompt（Phase 1 暂不接注入）
 */
export type AgentPersona = $Result.DefaultSelection<Prisma.$AgentPersonaPayload>
/**
 * Model AgentCron
 * Cron / 定时任务 — 用户自创 "每天 9 点跑这个 prompt"
 * fire 时把 prompt 当 user message 走完整 LLM pipeline，结果落到 sessionId 指定的会话
 */
export type AgentCron = $Result.DefaultSelection<Prisma.$AgentCronPayload>
/**
 * Model AgentMcpServer
 * MCP Server 配置 — 管理员注册的外部 MCP server。
 * Service 层当前仅校验 transport ∈ {stdio, sse}；schema 用文本字段以便 P2
 * 扩展 streamableHttp 不再迁移（届时 service 校验放开即可）。
 * 启动时 spawn 子进程 / 建 SSE 连接，握手后把 server 工具注入 ToolRegistry
 */
export type AgentMcpServer = $Result.DefaultSelection<Prisma.$AgentMcpServerPayload>
/**
 * Model AiUsageToken
 * Personal access token：员工自助生成，agent 上报凭据
 * bcrypt 存 hash，UI 仅显示 prefix
 */
export type AiUsageToken = $Result.DefaultSelection<Prisma.$AiUsageTokenPayload>
/**
 * Model AiUsageDevice
 * 客户端机器；通过 token 自动注册（owner = token.userId）
 * 状态：ACTIVE (blockedAt IS NULL) / BLOCKED
 */
export type AiUsageDevice = $Result.DefaultSelection<Prisma.$AiUsageDevicePayload>
/**
 * Model AiUsageEvent
 * 用量事件（最细粒度）
 * rawMessageId 全局 UNIQUE 用于客户端去重
 * 1 年后归档到 AiUsageDailyRollup 并物理删除
 */
export type AiUsageEvent = $Result.DefaultSelection<Prisma.$AiUsageEventPayload>
/**
 * Model AiUsageEventDlq
 * 死信队列：校验失败 / 拉黑 / 限流的 event 落库供审计
 * 30 天保留，cron 清理
 */
export type AiUsageEventDlq = $Result.DefaultSelection<Prisma.$AiUsageEventDlqPayload>
/**
 * Model AiUsageDailyRollup
 * 日级聚合：归档 1 年外的 event 数据
 * 维度：date × user × projectBasename × tool × model
 * 永久保留
 */
export type AiUsageDailyRollup = $Result.DefaultSelection<Prisma.$AiUsageDailyRollupPayload>
/**
 * Model AuditLog
 * 
 */
export type AuditLog = $Result.DefaultSelection<Prisma.$AuditLogPayload>
/**
 * Model AuditDatabaseChangeLog
 * 
 */
export type AuditDatabaseChangeLog = $Result.DefaultSelection<Prisma.$AuditDatabaseChangeLogPayload>
/**
 * Model AuditSensitiveOperationLog
 * 
 */
export type AuditSensitiveOperationLog = $Result.DefaultSelection<Prisma.$AuditSensitiveOperationLogPayload>
/**
 * Model AuditIntegrityCheckLog
 * 
 */
export type AuditIntegrityCheckLog = $Result.DefaultSelection<Prisma.$AuditIntegrityCheckLogPayload>
/**
 * Model AutomationTask
 * 
 */
export type AutomationTask = $Result.DefaultSelection<Prisma.$AutomationTaskPayload>
/**
 * Model AutomationExecution
 * 
 */
export type AutomationExecution = $Result.DefaultSelection<Prisma.$AutomationExecutionPayload>
/**
 * Model DingtalkSyncConfig
 * 
 */
export type DingtalkSyncConfig = $Result.DefaultSelection<Prisma.$DingtalkSyncConfigPayload>
/**
 * Model DingtalkLeaveCode
 * 
 */
export type DingtalkLeaveCode = $Result.DefaultSelection<Prisma.$DingtalkLeaveCodePayload>
/**
 * Model DingtalkLeaveQuotaSnapshot
 * 
 */
export type DingtalkLeaveQuotaSnapshot = $Result.DefaultSelection<Prisma.$DingtalkLeaveQuotaSnapshotPayload>
/**
 * Model SapPurchaseSyncRecord
 * 
 */
export type SapPurchaseSyncRecord = $Result.DefaultSelection<Prisma.$SapPurchaseSyncRecordPayload>
/**
 * Model DingtalkEmployee
 * 
 */
export type DingtalkEmployee = $Result.DefaultSelection<Prisma.$DingtalkEmployeePayload>
/**
 * Model DingtalkEmployeeEmploymentPeriod
 * 
 */
export type DingtalkEmployeeEmploymentPeriod = $Result.DefaultSelection<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>
/**
 * Model DingtalkEmployeeSuspensionPeriod
 * 
 */
export type DingtalkEmployeeSuspensionPeriod = $Result.DefaultSelection<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>
/**
 * Model SapPurchaseCache
 * 
 */
export type SapPurchaseCache = $Result.DefaultSelection<Prisma.$SapPurchaseCachePayload>
/**
 * Model AdpPtoSchedule
 * 
 */
export type AdpPtoSchedule = $Result.DefaultSelection<Prisma.$AdpPtoSchedulePayload>
/**
 * Model DingtalkAnnualLeaveReleasePlan
 * 
 */
export type DingtalkAnnualLeaveReleasePlan = $Result.DefaultSelection<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>
/**
 * Model DevItem
 * 
 */
export type DevItem = $Result.DefaultSelection<Prisma.$DevItemPayload>
/**
 * Model DevItemSequence
 * 
 */
export type DevItemSequence = $Result.DefaultSelection<Prisma.$DevItemSequencePayload>
/**
 * Model ReleaseNote
 * 
 */
export type ReleaseNote = $Result.DefaultSelection<Prisma.$ReleaseNotePayload>
/**
 * Model Feedback
 * 
 */
export type Feedback = $Result.DefaultSelection<Prisma.$FeedbackPayload>
/**
 * Model FormDefinition
 * 表单定义
 */
export type FormDefinition = $Result.DefaultSelection<Prisma.$FormDefinitionPayload>
/**
 * Model FormVersion
 * 表单版本
 */
export type FormVersion = $Result.DefaultSelection<Prisma.$FormVersionPayload>
/**
 * Model FormInstance
 * 表单实例
 */
export type FormInstance = $Result.DefaultSelection<Prisma.$FormInstancePayload>
/**
 * Model FormTranslation
 * 表单翻译
 */
export type FormTranslation = $Result.DefaultSelection<Prisma.$FormTranslationPayload>
/**
 * Model FormTemplate
 * 表单模板
 */
export type FormTemplate = $Result.DefaultSelection<Prisma.$FormTemplatePayload>
/**
 * Model ReleaseSnapshot
 * 发布快照（表单版本 + 流程版本的不可变绑定）
 */
export type ReleaseSnapshot = $Result.DefaultSelection<Prisma.$ReleaseSnapshotPayload>
/**
 * Model FormWebhook
 * Webhook 订阅
 */
export type FormWebhook = $Result.DefaultSelection<Prisma.$FormWebhookPayload>
/**
 * Model FormWebhookLog
 * Webhook 投递日志
 */
export type FormWebhookLog = $Result.DefaultSelection<Prisma.$FormWebhookLogPayload>
/**
 * Model User
 * 
 */
export type User = $Result.DefaultSelection<Prisma.$UserPayload>
/**
 * Model Role
 * 
 */
export type Role = $Result.DefaultSelection<Prisma.$RolePayload>
/**
 * Model Permission
 * 
 */
export type Permission = $Result.DefaultSelection<Prisma.$PermissionPayload>
/**
 * Model WorkflowRole
 * 
 */
export type WorkflowRole = $Result.DefaultSelection<Prisma.$WorkflowRolePayload>
/**
 * Model WorkflowRoleUser
 * 
 */
export type WorkflowRoleUser = $Result.DefaultSelection<Prisma.$WorkflowRoleUserPayload>
/**
 * Model UserRole
 * 用户组织角色关联表（v2.1）
 * 支持用户在不同组织拥有不同角色
 * organizationId 为 null 时表示全局角色（系统管理员，在所有组织生效）
 * region 字段已废弃，保留用于向后兼容，将在 v3.0 移除
 */
export type UserRole = $Result.DefaultSelection<Prisma.$UserRolePayload>
/**
 * Model RolePermission
 * 
 */
export type RolePermission = $Result.DefaultSelection<Prisma.$RolePermissionPayload>
/**
 * Model DataScope
 * 数据范围定义表
 * 定义可分配给角色的数据可见范围类型
 * @skip-data-scope IAM 配置表，本身即 DataScope 基础设施，无业务归属
 */
export type DataScope = $Result.DefaultSelection<Prisma.$DataScopePayload>
/**
 * Model RoleDataScope
 * 角色-数据范围关联表
 * 支持同一角色对不同资源配置不同的数据可见范围
 * resource = "*" 表示适用于所有资源（默认兜底）
 * @skip-data-scope 关联表，无业务归属
 */
export type RoleDataScope = $Result.DefaultSelection<Prisma.$RoleDataScopePayload>
/**
 * Model AIToolGrant
 * AI 工具角色级授权（主维度）
 * MVP 仅支持 allow 语义，映射到 OpenClaw tools.alsoAllow（加法叠加在 profile 基线之上）
 * 无 effect 字段：后续加 deny 时再扩展；无 orgId：继承 Role 的全局性
 */
export type AIToolGrant = $Result.DefaultSelection<Prisma.$AIToolGrantPayload>
/**
 * Model AIToolGrantUser
 * AI 工具用户级授权（例外维度）
 * effect: "grant"=在角色基线上额外开通, "revoke"=用户显式取消基线工具
 * reason DB 层 nullable，API/UI 层强制要求填入
 */
export type AIToolGrantUser = $Result.DefaultSelection<Prisma.$AIToolGrantUserPayload>
/**
 * Model PermissionDelegation
 * IAM 权限委托（规则 §5.3.14）
 * A 把 DataScope / 权限委托给 B，B 在有效窗口内按 A 的 scope 访问数据
 * 一级限制：禁止 B 再委托给 C（Service 层校验）
 * 注意：与 corp_approval.prisma 的 UserDelegationSetting 职责不同——
 * UserDelegationSetting 管审批流程委托；本表管 IAM 数据范围/权限委托
 * @skip-data-scope IAM 配置表
 */
export type PermissionDelegation = $Result.DefaultSelection<Prisma.$PermissionDelegationPayload>
/**
 * Model FieldPermission
 * 字段级权限（规则 §5.4）
 * 控制某角色对某 resource 某字段的访问级别（可见 / 只读 / 隐藏 / 脱敏）
 * @skip-data-scope IAM 配置表
 */
export type FieldPermission = $Result.DefaultSelection<Prisma.$FieldPermissionPayload>
/**
 * Model IamAuditLog
 * IAM 配置变更审计（规则 §5.3.3.2）
 * 对 data_scopes / role_data_scope_rel / role_permission_rel / user_role_rel 的增删改必审计
 * @skip-data-scope IAM 基础设施，无业务归属
 */
export type IamAuditLog = $Result.DefaultSelection<Prisma.$IamAuditLogPayload>
/**
 * Model EmployeeSlugBinding
 * 
 */
export type EmployeeSlugBinding = $Result.DefaultSelection<Prisma.$EmployeeSlugBindingPayload>
/**
 * Model InternalApp
 * 
 */
export type InternalApp = $Result.DefaultSelection<Prisma.$InternalAppPayload>
/**
 * Model InternalAppDeployment
 * 
 */
export type InternalAppDeployment = $Result.DefaultSelection<Prisma.$InternalAppDeploymentPayload>
/**
 * Model InternalAppEnvVar
 * 
 */
export type InternalAppEnvVar = $Result.DefaultSelection<Prisma.$InternalAppEnvVarPayload>
/**
 * Model InternalAppEmployeeToken
 * 
 */
export type InternalAppEmployeeToken = $Result.DefaultSelection<Prisma.$InternalAppEmployeeTokenPayload>
/**
 * Model InternalAppEvent
 * @skip-data-scope 事件流不可变：无 updatedAt（事件写入后只读，纠错走"补一条新事件"）；
 * @skip-data-scope createdById 由 actorId 代替（语义完全一致，且 SYSTEM 事件 actorId 必须可为 null，而标准 createdById 是 NOT NULL）。
 */
export type InternalAppEvent = $Result.DefaultSelection<Prisma.$InternalAppEventPayload>
/**
 * Model KnowledgeArticle
 * 
 */
export type KnowledgeArticle = $Result.DefaultSelection<Prisma.$KnowledgeArticlePayload>
/**
 * Model SPDocumentIndex
 * 
 */
export type SPDocumentIndex = $Result.DefaultSelection<Prisma.$SPDocumentIndexPayload>
/**
 * Model SPFolderIndex
 * 
 */
export type SPFolderIndex = $Result.DefaultSelection<Prisma.$SPFolderIndexPayload>
/**
 * Model RagflowDocument
 * 
 */
export type RagflowDocument = $Result.DefaultSelection<Prisma.$RagflowDocumentPayload>
/**
 * Model AIQALog
 * 
 */
export type AIQALog = $Result.DefaultSelection<Prisma.$AIQALogPayload>
/**
 * Model SearchLog
 * 
 */
export type SearchLog = $Result.DefaultSelection<Prisma.$SearchLogPayload>
/**
 * Model DocumentView
 * 
 */
export type DocumentView = $Result.DefaultSelection<Prisma.$DocumentViewPayload>
/**
 * Model DocumentLike
 * 
 */
export type DocumentLike = $Result.DefaultSelection<Prisma.$DocumentLikePayload>
/**
 * Model DocumentComment
 * 
 */
export type DocumentComment = $Result.DefaultSelection<Prisma.$DocumentCommentPayload>
/**
 * Model UserMention
 * 
 */
export type UserMention = $Result.DefaultSelection<Prisma.$UserMentionPayload>
/**
 * Model SyncTask
 * 
 */
export type SyncTask = $Result.DefaultSelection<Prisma.$SyncTaskPayload>
/**
 * Model SyncTaskSkippedItem
 * 
 */
export type SyncTaskSkippedItem = $Result.DefaultSelection<Prisma.$SyncTaskSkippedItemPayload>
/**
 * Model SyncTaskProcessedItem
 * 
 */
export type SyncTaskProcessedItem = $Result.DefaultSelection<Prisma.$SyncTaskProcessedItemPayload>
/**
 * Model SyncTaskFailedItem
 * 
 */
export type SyncTaskFailedItem = $Result.DefaultSelection<Prisma.$SyncTaskFailedItemPayload>
/**
 * Model SharePointSyncCursor
 * 
 */
export type SharePointSyncCursor = $Result.DefaultSelection<Prisma.$SharePointSyncCursorPayload>
/**
 * Model WebhookSubscription
 * 
 */
export type WebhookSubscription = $Result.DefaultSelection<Prisma.$WebhookSubscriptionPayload>
/**
 * Model SystemLog
 * 
 */
export type SystemLog = $Result.DefaultSelection<Prisma.$SystemLogPayload>
/**
 * Model LogConfig
 * 
 */
export type LogConfig = $Result.DefaultSelection<Prisma.$LogConfigPayload>
/**
 * Model LogAlert
 * 
 */
export type LogAlert = $Result.DefaultSelection<Prisma.$LogAlertPayload>
/**
 * Model LogCleanupRecord
 * 
 */
export type LogCleanupRecord = $Result.DefaultSelection<Prisma.$LogCleanupRecordPayload>
/**
 * Model Customer
 * 客户主数据 — 跨模块复用 (robot-manager / sales / service / finance)
 */
export type Customer = $Result.DefaultSelection<Prisma.$CustomerPayload>
/**
 * Model CustomerContact
 * @skip-data-scope 子表，跟随父表 Customer 的 DataScope（无独立 org/created_by_id）
 */
export type CustomerContact = $Result.DefaultSelection<Prisma.$CustomerContactPayload>
/**
 * Model CustomerAddress
 * @skip-data-scope 子表，跟随父表 Customer 的 DataScope
 */
export type CustomerAddress = $Result.DefaultSelection<Prisma.$CustomerAddressPayload>
/**
 * Model Supplier
 * 供应商主数据 — 跨模块 (robot-manager / procurement / parts / logistics / finance)
 */
export type Supplier = $Result.DefaultSelection<Prisma.$SupplierPayload>
/**
 * Model SupplierContact
 * @skip-data-scope 子表，跟随父表 Supplier 的 DataScope
 */
export type SupplierContact = $Result.DefaultSelection<Prisma.$SupplierContactPayload>
/**
 * Model Partner
 * 合作伙伴主数据 — 跨模块（销售 agent / mentor / mentee / 报关行 / 培训方）
 */
export type Partner = $Result.DefaultSelection<Prisma.$PartnerPayload>
/**
 * Model PartnerContact
 * @skip-data-scope 子表，跟随父表 Partner 的 DataScope
 */
export type PartnerContact = $Result.DefaultSelection<Prisma.$PartnerContactPayload>
/**
 * Model Location
 * 地点主数据 — 跨模块 (仓库 / 客户站点 / 工厂 / 保税区 / 在途 / 服务中心)
 */
export type Location = $Result.DefaultSelection<Prisma.$LocationPayload>
/**
 * Model Attachment
 * 多态附件 — 可挂在任意业务实体上（robot_unit / sales_order / delivery_fulfillment / payment_record / ...）
 * @skip-data-scope ownerId 是多态 FK 指向被附着实体（不是 creator/owner 同义词），有独立 createdById 审计字段
 * 
 * 关于 ownerType 不做 enum 化（原则 14 trade-off）：
 * - Attachment 是 L1 跨模块主数据，预期 6+ 模块使用
 * - enum 化要求每次新增 owner 来源都 ALTER TYPE，跨模块协作成本高
 * - String + VarChar(32) 限长 + 应用层常量代码守卫 是更合适的折中
 * - 当前已知 ownerType 取值（robot-manager 模块）：
 * robot_unit / sales_order / delivery_fulfillment / payment_record / rental_agreement
 * inspection_record / quality_label_record / logistics_leg / compliance_check / service_ticket
 */
export type Attachment = $Result.DefaultSelection<Prisma.$AttachmentPayload>
/**
 * Model Currency
 * 货币字典 — 跨所有模块货币标识 + 显示
 */
export type Currency = $Result.DefaultSelection<Prisma.$CurrencyPayload>
/**
 * Model Country
 * 国家字典 — 客户 / 供应商 / 物流国家
 */
export type Country = $Result.DefaultSelection<Prisma.$CountryPayload>
/**
 * Model GeoRegion
 * 地理区域字典 — 国际化区域分组（APAC / NA / EMEA 等）
 * 注：跟 corp_hr.Region（组织层级区域）业务语义完全不同，本表是地理 / 文化 / 货币区域。
 * 重命名为 GeoRegion 避免冲突。
 */
export type GeoRegion = $Result.DefaultSelection<Prisma.$GeoRegionPayload>
/**
 * Model UnitOfMeasure
 * 计量单位字典
 */
export type UnitOfMeasure = $Result.DefaultSelection<Prisma.$UnitOfMeasurePayload>
/**
 * Model Dictionary
 * 通用字典 — 纯枚举无专属字段的统一存放
 * category 区分领域：
 * - label_type      质量标签类型（BODY_FCC / BODY_SN / BATTERY_SN / ...）
 * - tariff_type     关税类型
 * - declaration_type 进口申报类型
 * - service_issue_type 售后问题类型
 * - industry        行业（可选）
 * 
 * 判据见 standard 16 §5.1：无专属字段 / 仅被 FK 引用 / 取值频次不高的归口。
 * 反例：Currency 有 decimals、Country 有 iso3，专属字段够分量独立表。
 */
export type Dictionary = $Result.DefaultSelection<Prisma.$DictionaryPayload>
/**
 * Model Meeting
 * 
 */
export type Meeting = $Result.DefaultSelection<Prisma.$MeetingPayload>
/**
 * Model MeetingSeries
 * 
 */
export type MeetingSeries = $Result.DefaultSelection<Prisma.$MeetingSeriesPayload>
/**
 * Model MeetingAttendance
 * 
 */
export type MeetingAttendance = $Result.DefaultSelection<Prisma.$MeetingAttendancePayload>
/**
 * Model MeetingRequiredAttendee
 * 
 */
export type MeetingRequiredAttendee = $Result.DefaultSelection<Prisma.$MeetingRequiredAttendeePayload>
/**
 * Model MeetingSeriesAttendeePreference
 * v1.2 签到方式校验 - 系列级参会人默认覆盖
 * 优先级：MeetingRequiredAttendee.checkinMode > MeetingSeriesAttendeePreference.defaultCheckinMode > 城市派生
 */
export type MeetingSeriesAttendeePreference = $Result.DefaultSelection<Prisma.$MeetingSeriesAttendeePreferencePayload>
/**
 * Model MeetingSeriesAttendeeException
 * 系列级"参会人排除清单"：用户在系列层面把某人从参会人移除后，
 * 即使 Outlook 之后再次将其同步进来，也会被同步逻辑过滤掉，从而避免"删了又回来"。
 * 想恢复参会：从此表删除该 (seriesId, userId) 行（或在单次会议级别手动添加，触发 hasCustomAttendees）。
 * @skip-data-scope 关联表（系列 × 用户排除关系），无业务归属；鉴权走父 seriesId 的 series-level 检查（canMutateSeries / creator）
 */
export type MeetingSeriesAttendeeException = $Result.DefaultSelection<Prisma.$MeetingSeriesAttendeeExceptionPayload>
/**
 * Model MeetingExternalAttendee
 * 
 */
export type MeetingExternalAttendee = $Result.DefaultSelection<Prisma.$MeetingExternalAttendeePayload>
/**
 * Model MeetingTemplate
 * 
 */
export type MeetingTemplate = $Result.DefaultSelection<Prisma.$MeetingTemplatePayload>
/**
 * Model MeetingTemplateAttendee
 * 
 */
export type MeetingTemplateAttendee = $Result.DefaultSelection<Prisma.$MeetingTemplateAttendeePayload>
/**
 * Model MeetingAttendanceLeaveRecord
 * 
 */
export type MeetingAttendanceLeaveRecord = $Result.DefaultSelection<Prisma.$MeetingAttendanceLeaveRecordPayload>
/**
 * Model MeetingAttendanceAuditLog
 * 
 */
export type MeetingAttendanceAuditLog = $Result.DefaultSelection<Prisma.$MeetingAttendanceAuditLogPayload>
/**
 * Model MeetingAttendanceDataAccessLog
 * 
 */
export type MeetingAttendanceDataAccessLog = $Result.DefaultSelection<Prisma.$MeetingAttendanceDataAccessLogPayload>
/**
 * Model MeetingAttendanceAuditAlertRule
 * 
 */
export type MeetingAttendanceAuditAlertRule = $Result.DefaultSelection<Prisma.$MeetingAttendanceAuditAlertRulePayload>
/**
 * Model MeetingAttendanceAuditAlert
 * 
 */
export type MeetingAttendanceAuditAlert = $Result.DefaultSelection<Prisma.$MeetingAttendanceAuditAlertPayload>
/**
 * Model MeetingAttendanceRetentionPolicy
 * 
 */
export type MeetingAttendanceRetentionPolicy = $Result.DefaultSelection<Prisma.$MeetingAttendanceRetentionPolicyPayload>
/**
 * Model OutlookSyncMailbox
 * 
 */
export type OutlookSyncMailbox = $Result.DefaultSelection<Prisma.$OutlookSyncMailboxPayload>
/**
 * Model OutlookSubscription
 * 
 */
export type OutlookSubscription = $Result.DefaultSelection<Prisma.$OutlookSubscriptionPayload>
/**
 * Model OutlookMeetingBinding
 * 
 */
export type OutlookMeetingBinding = $Result.DefaultSelection<Prisma.$OutlookMeetingBindingPayload>
/**
 * Model OutlookSeriesOccurrenceExclusion
 * 
 */
export type OutlookSeriesOccurrenceExclusion = $Result.DefaultSelection<Prisma.$OutlookSeriesOccurrenceExclusionPayload>
/**
 * Model OutlookSyncEventLog
 * 
 */
export type OutlookSyncEventLog = $Result.DefaultSelection<Prisma.$OutlookSyncEventLogPayload>
/**
 * Model OutlookEventSourceVersion
 * 
 */
export type OutlookEventSourceVersion = $Result.DefaultSelection<Prisma.$OutlookEventSourceVersionPayload>
/**
 * Model OutlookEventSyncDiff
 * 
 */
export type OutlookEventSyncDiff = $Result.DefaultSelection<Prisma.$OutlookEventSyncDiffPayload>
/**
 * Model OutlookSyncCursor
 * 
 */
export type OutlookSyncCursor = $Result.DefaultSelection<Prisma.$OutlookSyncCursorPayload>
/**
 * Model OutlookEventSnapshot
 * 
 */
export type OutlookEventSnapshot = $Result.DefaultSelection<Prisma.$OutlookEventSnapshotPayload>
/**
 * Model OutlookSyncSetting
 * 
 */
export type OutlookSyncSetting = $Result.DefaultSelection<Prisma.$OutlookSyncSettingPayload>
/**
 * Model MeetingAgendaSection
 * 议程段（一个会议下可有多个段，段内含多个议程项）
 */
export type MeetingAgendaSection = $Result.DefaultSelection<Prisma.$MeetingAgendaSectionPayload>
/**
 * Model MeetingAgendaItem
 * 议程项（段下的具体议题；含时长、主讲人、分列描述）
 */
export type MeetingAgendaItem = $Result.DefaultSelection<Prisma.$MeetingAgendaItemPayload>
/**
 * Model MeetingAgendaItemUploadTask
 * 议程项上传任务（指派某用户为某议程项准备/上传资料）
 */
export type MeetingAgendaItemUploadTask = $Result.DefaultSelection<Prisma.$MeetingAgendaItemUploadTaskPayload>
/**
 * Model MeetingAgendaItemAttachment
 * 议程项级附件（挂在具体议程项下的资料文件）
 */
export type MeetingAgendaItemAttachment = $Result.DefaultSelection<Prisma.$MeetingAgendaItemAttachmentPayload>
/**
 * Model MeetingAttachment
 * 会议级附件（挂在会议本身，如纪要、整体材料、PPT 等）
 */
export type MeetingAttachment = $Result.DefaultSelection<Prisma.$MeetingAttachmentPayload>
/**
 * Model NotificationMessage
 * 
 */
export type NotificationMessage = $Result.DefaultSelection<Prisma.$NotificationMessagePayload>
/**
 * Model NotificationPreference
 * 
 */
export type NotificationPreference = $Result.DefaultSelection<Prisma.$NotificationPreferencePayload>
/**
 * Model NotificationTemplate
 * 
 */
export type NotificationTemplate = $Result.DefaultSelection<Prisma.$NotificationTemplatePayload>
/**
 * Model NotificationLog
 * 
 */
export type NotificationLog = $Result.DefaultSelection<Prisma.$NotificationLogPayload>
/**
 * Model M365User
 * 用户当前态：每个 Graph 用户一行，每次同步 upsert 最新值
 * 列表查询走这张表（≈ 5000 行，常驻）
 */
export type M365User = $Result.DefaultSelection<Prisma.$M365UserPayload>
/**
 * Model M365UserActivityChange
 * 用户活动变更事件流：仅当某字段相比上次有变化才追加一行
 * 支撑用户级历史时间线查询
 * @skip-data-scope 事件流型表（系统观察记录，非用户操作），触发人通过 executionId → AutomationExecution.triggeredBy 追溯
 */
export type M365UserActivityChange = $Result.DefaultSelection<Prisma.$M365UserActivityChangePayload>
/**
 * Model GradeConfig
 * 
 */
export type GradeConfig = $Result.DefaultSelection<Prisma.$GradeConfigPayload>
/**
 * Model PerformanceCycle
 * 
 */
export type PerformanceCycle = $Result.DefaultSelection<Prisma.$PerformanceCyclePayload>
/**
 * Model PerformanceResult
 * 
 */
export type PerformanceResult = $Result.DefaultSelection<Prisma.$PerformanceResultPayload>
/**
 * Model KpiAssignment
 * 
 */
export type KpiAssignment = $Result.DefaultSelection<Prisma.$KpiAssignmentPayload>
/**
 * Model KpiDependency
 * 
 */
export type KpiDependency = $Result.DefaultSelection<Prisma.$KpiDependencyPayload>
/**
 * Model KpiAssessment
 * 
 */
export type KpiAssessment = $Result.DefaultSelection<Prisma.$KpiAssessmentPayload>
/**
 * Model Evaluation360
 * 
 */
export type Evaluation360 = $Result.DefaultSelection<Prisma.$Evaluation360Payload>
/**
 * Model EvaluationTask
 * 
 */
export type EvaluationTask = $Result.DefaultSelection<Prisma.$EvaluationTaskPayload>
/**
 * Model EvaluationResponse
 * 
 */
export type EvaluationResponse = $Result.DefaultSelection<Prisma.$EvaluationResponsePayload>
/**
 * Model GradeAdjustmentLog
 * 
 */
export type GradeAdjustmentLog = $Result.DefaultSelection<Prisma.$GradeAdjustmentLogPayload>
/**
 * Model StrategicObjective
 * 
 */
export type StrategicObjective = $Result.DefaultSelection<Prisma.$StrategicObjectivePayload>
/**
 * Model StrategicObjectiveAssignment
 * 
 */
export type StrategicObjectiveAssignment = $Result.DefaultSelection<Prisma.$StrategicObjectiveAssignmentPayload>
/**
 * Model Evaluation360Template
 * 
 */
export type Evaluation360Template = $Result.DefaultSelection<Prisma.$Evaluation360TemplatePayload>
/**
 * Model SiteCheckpoint
 * 
 */
export type SiteCheckpoint = $Result.DefaultSelection<Prisma.$SiteCheckpointPayload>
/**
 * Model SharedCheckinPartner
 * 
 */
export type SharedCheckinPartner = $Result.DefaultSelection<Prisma.$SharedCheckinPartnerPayload>
/**
 * Model SharedCheckinTicketUsage
 * 
 */
export type SharedCheckinTicketUsage = $Result.DefaultSelection<Prisma.$SharedCheckinTicketUsagePayload>
/**
 * Model SiteAttendanceEvent
 * 
 */
export type SiteAttendanceEvent = $Result.DefaultSelection<Prisma.$SiteAttendanceEventPayload>
/**
 * Model SiteDailySummary
 * 
 */
export type SiteDailySummary = $Result.DefaultSelection<Prisma.$SiteDailySummaryPayload>
/**
 * Model Ticket
 * 工单
 */
export type Ticket = $Result.DefaultSelection<Prisma.$TicketPayload>
/**
 * Model TicketCategory
 * 工单分类
 */
export type TicketCategory = $Result.DefaultSelection<Prisma.$TicketCategoryPayload>
/**
 * Model TicketComment
 * 工单评论
 */
export type TicketComment = $Result.DefaultSelection<Prisma.$TicketCommentPayload>
/**
 * Model TicketAttachment
 * 工单附件
 */
export type TicketAttachment = $Result.DefaultSelection<Prisma.$TicketAttachmentPayload>
/**
 * Model TicketActivity
 * 工单活动日志
 */
export type TicketActivity = $Result.DefaultSelection<Prisma.$TicketActivityPayload>
/**
 * Model TicketSLA
 * SLA 配置
 */
export type TicketSLA = $Result.DefaultSelection<Prisma.$TicketSLAPayload>
/**
 * Model AssignmentGroup
 * 处理组
 */
export type AssignmentGroup = $Result.DefaultSelection<Prisma.$AssignmentGroupPayload>
/**
 * Model RobotModel
 * 型号档案 — L2 模块主数据
 * 标准字段 5 项齐全（standard 04 §标准字段）；enabled 表示"是否在用"，deletedAt 表示"归档"，两者可并存。
 */
export type RobotModel = $Result.DefaultSelection<Prisma.$RobotModelPayload>
/**
 * Model RobotSku
 * SKU 档案（品类）— 同 SKU 物理属性相同 / L2 模块主数据
 * 标准字段 5 项齐全（standard 04 §标准字段）
 */
export type RobotSku = $Result.DefaultSelection<Prisma.$RobotSkuPayload>
/**
 * Model RobotSystemConfig
 * 系统配置（FFSN 规则、默认 location 映射等）
 * 字典/配置语义（standard 04 §字典）：
 * - organizationId nullable，DataScope = ALL（全局配置）
 * - createdById nullable，允许 system-seeded（init / migration 自动写入）
 * - 不加 deletedAt：配置改 enabled 字段（如果未来需要）或直接物理删，配置数量少且变化罕见
 */
export type RobotSystemConfig = $Result.DefaultSelection<Prisma.$RobotSystemConfigPayload>
/**
 * Model RobotUnit
 * RobotUnit — 仅不变属性（身份 + 出厂时确定的元数据 + 退役元数据）
 * 可变状态（currentStage / currentLocation / currentCustomer / ...）见 RobotUnitSnapshot
 * 历史变更见 RobotLifecycleEvent
 */
export type RobotUnit = $Result.DefaultSelection<Prisma.$RobotUnitPayload>
/**
 * Model RobotUnitSnapshot
 * RobotUnitSnapshot — 当前状态物化（1:1 RobotUnit，CQRS read model）
 * 由 RobotLifecycleEvent 投影刷新（同事务 prisma.$transaction）
 * @skip-data-scope derived data 性质豁免（standard 04 §存量豁免）；DataScope 经 RobotUnit join 实现
 */
export type RobotUnitSnapshot = $Result.DefaultSelection<Prisma.$RobotUnitSnapshotPayload>
/**
 * Model RobotLifecycleEvent
 * RobotLifecycleEvent — 全事件流（不可变 append-only，CQRS write side）
 * @skip-data-scope append-only 事件源不更新，无 updatedAt；deletedAt 仅服务异常事件撤销
 */
export type RobotLifecycleEvent = $Result.DefaultSelection<Prisma.$RobotLifecycleEventPayload>
/**
 * Model PurchaseOrder
 * 采购单头
 */
export type PurchaseOrder = $Result.DefaultSelection<Prisma.$PurchaseOrderPayload>
/**
 * Model PurchaseOrderLine
 * @skip-data-scope 子表，跟随父表 PurchaseOrder 的 DataScope。
 * 不加 deletedAt（子表跟父表生命周期，PO 软删时 lines 视为 invalid；硬删 line 业务上发生在 DRAFT 状态）。
 */
export type PurchaseOrderLine = $Result.DefaultSelection<Prisma.$PurchaseOrderLinePayload>
/**
 * Model SalesOrder
 * 销售订单头
 */
export type SalesOrder = $Result.DefaultSelection<Prisma.$SalesOrderPayload>
/**
 * Model SalesOrderLine
 * @skip-data-scope 子表，跟随父表 SalesOrder 的 DataScope。
 * 不加 deletedAt（同 PurchaseOrderLine：跟父表生命周期，硬删发生在 RESERVED/PENDING 状态）。
 */
export type SalesOrderLine = $Result.DefaultSelection<Prisma.$SalesOrderLinePayload>
/**
 * Model DeliveryRequest
 * 交付申请（节点 14 前）
 */
export type DeliveryRequest = $Result.DefaultSelection<Prisma.$DeliveryRequestPayload>
/**
 * Model DeliveryFulfillment
 * 交付履约（节点 15 — PGI 时机；DA 表单状态）
 */
export type DeliveryFulfillment = $Result.DefaultSelection<Prisma.$DeliveryFulfillmentPayload>
/**
 * Model PaymentRecord
 * 付款记录（双向：收 INBOUND / 付 OUTBOUND）
 */
export type PaymentRecord = $Result.DefaultSelection<Prisma.$PaymentRecordPayload>
/**
 * Model QualityLabelRecord
 * 质量标签记录（7 行/台，节点 09 UNDER_MODIFICATION）
 * 不加 deletedAt（事件流性质，同 InspectionRecord）
 */
export type QualityLabelRecord = $Result.DefaultSelection<Prisma.$QualityLabelRecordPayload>
/**
 * Model RobotPackageReadiness
 * 入库就绪 / 配件清点（1 行/台，节点 11 BRANDED_READY）
 * 不加 deletedAt（1:1 关联 RobotUnit，跟随父表生命周期）
 */
export type RobotPackageReadiness = $Result.DefaultSelection<Prisma.$RobotPackageReadinessPayload>
/**
 * Model InspectionRecord
 * 入库前检查记录（0-N 行/台，节点 08 AT_W1_PDI）
 * 不加 deletedAt（设计决策，原则 17 例外）：检查记录属事件流性质，
 * 撤销/修正发布新检查记录或对父 robotUnit 软删除即可；硬删会损审计。
 */
export type InspectionRecord = $Result.DefaultSelection<Prisma.$InspectionRecordPayload>
/**
 * Model LogisticsLeg
 * 物流段记录（1-N 行/台，节点 04 IN_TRANSIT）
 * 不加 deletedAt（事件流性质，同 InspectionRecord）
 */
export type LogisticsLeg = $Result.DefaultSelection<Prisma.$LogisticsLegPayload>
/**
 * Model ComplianceCheck
 * 合规检查（1 行/台，节点 03/05/06）
 * 不加 deletedAt（1:1 关联 RobotUnit，跟随父表生命周期）
 */
export type ComplianceCheck = $Result.DefaultSelection<Prisma.$ComplianceCheckPayload>
/**
 * Model RentalAgreement
 * 租赁合约
 */
export type RentalAgreement = $Result.DefaultSelection<Prisma.$RentalAgreementPayload>
/**
 * Model RentalPaymentSchedule
 * @skip-data-scope 子表，跟随父表 RentalAgreement 的 DataScope。
 * 不加 deletedAt（schedule 行跟父合约生命周期；终止合约时父表软删，schedule 自然失效）。
 */
export type RentalPaymentSchedule = $Result.DefaultSelection<Prisma.$RentalPaymentSchedulePayload>
/**
 * Model ServiceTicket
 * 售后工单
 */
export type ServiceTicket = $Result.DefaultSelection<Prisma.$ServiceTicketPayload>
/**
 * Model ServiceTicketActivity
 * @skip-data-scope 子表 + append-only 活动流，跟随父表 ServiceTicket 的 DataScope。
 * 字段命名遵循原则 4：写入者用标准字段 createdById（不用同义词 actorId）。
 * 不加 deletedAt（append-only 事件流性质 - 撤销发布反向 activity 事件，不删原行）。
 */
export type ServiceTicketActivity = $Result.DefaultSelection<Prisma.$ServiceTicketActivityPayload>
/**
 * Model RobotImportAudit
 * v5 历史导入审计（1:1 仅 v5 导入的机器人有）
 */
export type RobotImportAudit = $Result.DefaultSelection<Prisma.$RobotImportAuditPayload>
/**
 * Model ImportBatch
 * 通用导入批次 — 一次 import 操作的总记录
 */
export type ImportBatch = $Result.DefaultSelection<Prisma.$ImportBatchPayload>
/**
 * Model ImportBatchEntry
 * @skip-data-scope 子表 + append-only entry，跟随父表 ImportBatch 的 DataScope
 */
export type ImportBatchEntry = $Result.DefaultSelection<Prisma.$ImportBatchEntryPayload>

/**
 * Enums
 */
export namespace $Enums {
  export const ProcessStatus: {
  ACTIVE: 'ACTIVE',
  SUSPENDED: 'SUSPENDED',
  ARCHIVED: 'ARCHIVED'
};

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


export const VersionStatus: {
  DRAFT: 'DRAFT',
  DEPLOYED: 'DEPLOYED',
  SUPERSEDED: 'SUPERSEDED',
  ARCHIVED: 'ARCHIVED'
};

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


export const InstanceStatus: {
  RUNNING: 'RUNNING',
  SUSPENDED: 'SUSPENDED',
  APPROVED: 'APPROVED',
  REJECTED: 'REJECTED',
  WITHDRAWN: 'WITHDRAWN',
  TERMINATED: 'TERMINATED',
  FAILED: 'FAILED'
};

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


export const ApprovalAdminExportStatus: {
  PENDING: 'PENDING',
  PROCESSING: 'PROCESSING',
  SUCCESS: 'SUCCESS',
  FAILED: 'FAILED',
  EXPIRED: 'EXPIRED'
};

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


export const NodeStatus: {
  PENDING: 'PENDING',
  ACTIVE: 'ACTIVE',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED',
  FAILED: 'FAILED',
  SKIPPED: 'SKIPPED'
};

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


export const ApprovalTaskType: {
  APPROVAL: 'APPROVAL',
  COUNTERSIGN: 'COUNTERSIGN',
  OR_SIGN: 'OR_SIGN',
  CC: 'CC',
  NOTIFICATION: 'NOTIFICATION',
  SERVICE_TASK: 'SERVICE_TASK',
  SCRIPT_TASK: 'SCRIPT_TASK',
  USER_TASK: 'USER_TASK',
  RECEIVE_TASK: 'RECEIVE_TASK',
  SEQUENTIAL: 'SEQUENTIAL'
};

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


export const ApprovalTaskStatus: {
  CREATED: 'CREATED',
  PENDING: 'PENDING',
  CLAIMED: 'CLAIMED',
  RESERVED: 'RESERVED',
  ASSIGNED: 'ASSIGNED',
  IN_PROGRESS: 'IN_PROGRESS',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED',
  SUSPENDED: 'SUSPENDED',
  WITHDRAWN: 'WITHDRAWN'
};

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


export const ApprovalTaskAction: {
  SUBMIT: 'SUBMIT',
  APPROVE: 'APPROVE',
  REJECT: 'REJECT',
  RETURN: 'RETURN',
  FORWARD: 'FORWARD',
  WITHDRAW: 'WITHDRAW',
  APPROVER_WITHDRAW: 'APPROVER_WITHDRAW',
  ADD_SIGN: 'ADD_SIGN',
  REMOVE_SIGN: 'REMOVE_SIGN',
  CLAIM: 'CLAIM',
  UNCLAIM: 'UNCLAIM',
  DELEGATE: 'DELEGATE',
  AUTO_APPROVE: 'AUTO_APPROVE',
  AUTO_REJECT: 'AUTO_REJECT',
  ESCALATE: 'ESCALATE',
  REMIND: 'REMIND',
  ADMIN_APPROVE: 'ADMIN_APPROVE',
  ADMIN_REJECT: 'ADMIN_REJECT',
  ADMIN_TERMINATE: 'ADMIN_TERMINATE',
  ADMIN_REASSIGN: 'ADMIN_REASSIGN',
  COMPLETE: 'COMPLETE',
  CANCEL: 'CANCEL',
  COMMENT: 'COMMENT',
  EXECUTE: 'EXECUTE'
};

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


export const CallbackStatus: {
  PENDING: 'PENDING',
  PROCESSING: 'PROCESSING',
  COMPLETED: 'COMPLETED',
  FAILED: 'FAILED'
};

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


export const ReminderType: {
  TIMEOUT: 'TIMEOUT',
  MANUAL: 'MANUAL',
  BEFORE_TIMEOUT: 'BEFORE_TIMEOUT'
};

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


export const ReminderStatus: {
  SCHEDULED: 'SCHEDULED',
  EXECUTED: 'EXECUTED',
  CANCELLED: 'CANCELLED'
};

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


export const DelegationType: {
  MANUAL: 'MANUAL',
  AUTO_ON_LEAVE: 'AUTO_ON_LEAVE',
  AUTO_TIME_RANGE: 'AUTO_TIME_RANGE',
  AUTO_TIMEOUT: 'AUTO_TIMEOUT'
};

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


export const DelegationScope: {
  ALL: 'ALL',
  SPECIFIC: 'SPECIFIC'
};

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


export const ExpenseCategory: {
  TRAVEL: 'TRAVEL',
  MEAL: 'MEAL',
  OFFICE: 'OFFICE',
  COMMUNICATION: 'COMMUNICATION',
  TRAINING: 'TRAINING',
  OTHER: 'OTHER'
};

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


export const ExpenseStatus: {
  DRAFT: 'DRAFT',
  SUBMITTED: 'SUBMITTED',
  APPROVED: 'APPROVED',
  REJECTED: 'REJECTED',
  PAID: 'PAID',
  CANCELLED: 'CANCELLED'
};

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


export const PurchaseStatus: {
  DRAFT: 'DRAFT',
  SUBMITTED: 'SUBMITTED',
  APPROVED: 'APPROVED',
  REJECTED: 'REJECTED',
  ORDERED: 'ORDERED',
  RECEIVED: 'RECEIVED',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED'
};

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


export const ContractType: {
  SALES: 'SALES',
  PURCHASE: 'PURCHASE',
  SERVICE: 'SERVICE',
  LEASE: 'LEASE',
  EMPLOYMENT: 'EMPLOYMENT',
  OTHER: 'OTHER'
};

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


export const ContractStatus: {
  DRAFT: 'DRAFT',
  SUBMITTED: 'SUBMITTED',
  APPROVED: 'APPROVED',
  REJECTED: 'REJECTED',
  SIGNED: 'SIGNED',
  EXECUTING: 'EXECUTING',
  COMPLETED: 'COMPLETED',
  TERMINATED: 'TERMINATED'
};

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


export const StationStatus: {
  ACTIVE: 'ACTIVE',
  INACTIVE: 'INACTIVE',
  MAINTENANCE: 'MAINTENANCE'
};

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


export const WarehouseStatus: {
  ACTIVE: 'ACTIVE',
  INACTIVE: 'INACTIVE',
  MAINTENANCE: 'MAINTENANCE'
};

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


export const StorageLocationStatus: {
  ACTIVE: 'ACTIVE',
  INACTIVE: 'INACTIVE',
  FULL: 'FULL',
  RESERVED: 'RESERVED'
};

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


export const PartStatus: {
  ACTIVE: 'ACTIVE',
  INACTIVE: 'INACTIVE',
  DISCONTINUED: 'DISCONTINUED',
  OBSOLETE: 'OBSOLETE'
};

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


export const LabelStatus: {
  ACTIVE: 'ACTIVE',
  INACTIVE: 'INACTIVE',
  VOID: 'VOID'
};

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


export const InventoryOperationType: {
  CHECK_IN: 'CHECK_IN',
  CHECK_OUT: 'CHECK_OUT',
  RECEIVING: 'RECEIVING',
  RETURN: 'RETURN',
  ADJUSTMENT: 'ADJUSTMENT',
  TRANSFER: 'TRANSFER',
  SCRAP: 'SCRAP',
  INITIAL: 'INITIAL'
};

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


export const StockAlertType: {
  LOW_STOCK: 'LOW_STOCK',
  OUT_OF_STOCK: 'OUT_OF_STOCK',
  OVERSTOCK: 'OVERSTOCK',
  APPROACHING_MIN: 'APPROACHING_MIN'
};

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


export const AlertSeverity: {
  LOW: 'LOW',
  MEDIUM: 'MEDIUM',
  HIGH: 'HIGH',
  CRITICAL: 'CRITICAL'
};

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


export const AlertStatus: {
  PENDING: 'PENDING',
  ACKNOWLEDGED: 'ACKNOWLEDGED',
  RESOLVED: 'RESOLVED',
  IGNORED: 'IGNORED'
};

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


export const ImportStatus: {
  PENDING: 'PENDING',
  PROCESSING: 'PROCESSING',
  COMPLETED: 'COMPLETED',
  FAILED: 'FAILED',
  PARTIAL: 'PARTIAL'
};

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


export const GroupFieldType: {
  TEXT: 'TEXT',
  NUMBER: 'NUMBER',
  DECIMAL: 'DECIMAL',
  BOOLEAN: 'BOOLEAN',
  DATE: 'DATE',
  DATETIME: 'DATETIME',
  SELECT: 'SELECT',
  MULTISELECT: 'MULTISELECT',
  TEXTAREA: 'TEXTAREA',
  URL: 'URL',
  EMAIL: 'EMAIL',
  PHONE: 'PHONE'
};

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


export const AIConversationStatus: {
  ACTIVE: 'ACTIVE',
  CLOSED: 'CLOSED',
  ESCALATED: 'ESCALATED'
};

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


export const AIConversationCategory: {
  IT: 'IT',
  HR: 'HR',
  ADMIN: 'ADMIN',
  GENERAL: 'GENERAL'
};

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


export const AIMessageRole: {
  USER: 'USER',
  ASSISTANT: 'ASSISTANT',
  SYSTEM: 'SYSTEM'
};

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


export const AIMessageSource: {
  USER: 'USER',
  AI: 'AI',
  SYSTEM: 'SYSTEM',
  ESCALATION: 'ESCALATION'
};

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


export const AIFeedbackType: {
  LIKE: 'LIKE',
  DISLIKE: 'DISLIKE'
};

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


export const AITicketCategory: {
  IT: 'IT',
  HR: 'HR',
  ADMIN: 'ADMIN',
  FINANCE: 'FINANCE',
  OTHER: 'OTHER'
};

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


export const AIAssigneeTeam: {
  IT: 'IT',
  HR: 'HR',
  ADMIN: 'ADMIN',
  FINANCE: 'FINANCE'
};

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


export const AITicketPriority: {
  LOW: 'LOW',
  MEDIUM: 'MEDIUM',
  HIGH: 'HIGH',
  URGENT: 'URGENT'
};

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


export const AITicketStatus: {
  OPEN: 'OPEN',
  IN_PROGRESS: 'IN_PROGRESS',
  RESOLVED: 'RESOLVED',
  CLOSED: 'CLOSED'
};

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


export const AIKnowledgeFixStatus: {
  PENDING: 'PENDING',
  APPROVED: 'APPROVED',
  REJECTED: 'REJECTED'
};

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


export const AgentSurface: {
  WEB: 'WEB',
  CLI: 'CLI',
  TEAMS: 'TEAMS',
  DESKTOP: 'DESKTOP',
  IOS: 'IOS',
  ANDROID: 'ANDROID'
};

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


export const AgentSessionStatus: {
  ACTIVE: 'ACTIVE',
  CLOSED: 'CLOSED',
  ARCHIVED: 'ARCHIVED'
};

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


export const AgentMessageType: {
  USER_PROMPT: 'USER_PROMPT',
  ASSISTANT_TEXT: 'ASSISTANT_TEXT',
  TOOL_USE: 'TOOL_USE',
  TOOL_RESULT: 'TOOL_RESULT',
  A2UI_COMPONENT: 'A2UI_COMPONENT',
  TURN_DONE: 'TURN_DONE'
};

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


export const ModelRoutingScope: {
  ORGANIZATION: 'ORGANIZATION',
  USER: 'USER',
  PROJECT: 'PROJECT'
};

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


export const ModelRoutingMatchSource: {
  RULE: 'RULE',
  LLM_ROUTED: 'LLM_ROUTED',
  SCOPE_OVERRIDE: 'SCOPE_OVERRIDE',
  DEFAULT: 'DEFAULT'
};

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


export const AgentTrajectoryEventType: {
  TURN_STARTED: 'TURN_STARTED',
  ROUTING_DECIDED: 'ROUTING_DECIDED',
  PROVIDER_INVOKED: 'PROVIDER_INVOKED',
  MESSAGE_APPENDED: 'MESSAGE_APPENDED',
  TURN_DONE: 'TURN_DONE',
  TOOL_CALL: 'TOOL_CALL',
  TOOL_RESULT: 'TOOL_RESULT'
};

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


export const AgentQuotaScope: {
  ORGANIZATION: 'ORGANIZATION',
  USER: 'USER'
};

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


export const AgentPlanMode: {
  OFF: 'OFF',
  REQUIRED: 'REQUIRED'
};

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


export const AgentPermissionMode: {
  DEFAULT: 'DEFAULT',
  BYPASS: 'BYPASS',
  READ_ONLY: 'READ_ONLY',
  ASK_EVERY_TIME: 'ASK_EVERY_TIME'
};

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


export const AgentArtifactType: {
  TABLE: 'TABLE',
  CHART: 'CHART',
  FILE: 'FILE',
  LINK: 'LINK',
  TEXT: 'TEXT'
};

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


export const AgentTaskStatus: {
  PENDING: 'PENDING',
  IN_PROGRESS: 'IN_PROGRESS',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED',
  FAILED: 'FAILED'
};

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


export const StorageBindingScope: {
  ORGANIZATION: 'ORGANIZATION',
  USER: 'USER',
  PROJECT: 'PROJECT'
};

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


export const StorageBackendKind: {
  LOCAL: 'LOCAL',
  ONEDRIVE: 'ONEDRIVE',
  S3: 'S3',
  GOOGLE_DRIVE: 'GOOGLE_DRIVE'
};

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


export const MemoryScope: {
  GLOBAL: 'GLOBAL',
  PROJECT: 'PROJECT',
  PERSONA: 'PERSONA'
};

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


export const MemoryOwnerScope: {
  USER: 'USER',
  ORG: 'ORG'
};

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


export const MemoryCategory: {
  USER: 'USER',
  FEEDBACK: 'FEEDBACK',
  PROJECT: 'PROJECT',
  REFERENCE: 'REFERENCE'
};

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


export const AiUsageTool: {
  CLAUDE_CODE: 'CLAUDE_CODE',
  CODEX_CLI: 'CODEX_CLI'
};

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


export const AiUsageOsPlatform: {
  LINUX: 'LINUX',
  DARWIN: 'DARWIN',
  WINDOWS: 'WINDOWS'
};

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


export const AiUsageDlqReason: {
  BAD_FORMAT: 'BAD_FORMAT',
  TS_OUT_OF_WINDOW: 'TS_OUT_OF_WINDOW',
  BLOCKED_DEVICE: 'BLOCKED_DEVICE',
  OVER_LIMIT: 'OVER_LIMIT'
};

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


export const AuditAction: {
  CREATE: 'CREATE',
  READ: 'READ',
  UPDATE: 'UPDATE',
  DELETE: 'DELETE',
  BULK_UPDATE: 'BULK_UPDATE',
  BULK_DELETE: 'BULK_DELETE',
  APPROVE: 'APPROVE',
  REJECT: 'REJECT',
  RETURN: 'RETURN',
  FORWARD: 'FORWARD',
  WITHDRAW: 'WITHDRAW',
  LOGIN: 'LOGIN',
  LOGOUT: 'LOGOUT',
  LOGIN_FAILED: 'LOGIN_FAILED',
  PASSWORD_CHANGE: 'PASSWORD_CHANGE',
  PASSWORD_RESET: 'PASSWORD_RESET',
  EMAIL_CHANGE: 'EMAIL_CHANGE',
  PERMISSION_CHANGE: 'PERMISSION_CHANGE',
  ROLE_CHANGE: 'ROLE_CHANGE',
  CONFIG_CHANGE: 'CONFIG_CHANGE',
  BACKUP: 'BACKUP',
  RESTORE: 'RESTORE',
  EXPORT: 'EXPORT',
  IMPORT: 'IMPORT',
  DEPLOY: 'DEPLOY',
  ROLLBACK: 'ROLLBACK',
  PAYMENT: 'PAYMENT',
  REFUND: 'REFUND',
  INVOICE_GENERATE: 'INVOICE_GENERATE',
  FINANCIAL_CLOSE: 'FINANCIAL_CLOSE',
  BUDGET_APPROVE: 'BUDGET_APPROVE',
  DOWNLOAD: 'DOWNLOAD',
  UPLOAD: 'UPLOAD',
  SHARE: 'SHARE',
  ARCHIVE: 'ARCHIVE',
  SSO_LOGIN_SUCCESS: 'SSO_LOGIN_SUCCESS',
  SSO_JIT_CREATED: 'SSO_JIT_CREATED',
  SSO_BINDING_FILLED: 'SSO_BINDING_FILLED',
  SSO_BINDING_UPGRADED_FROM_LDAP: 'SSO_BINDING_UPGRADED_FROM_LDAP',
  SSO_BINDING_CONFLICT: 'SSO_BINDING_CONFLICT'
};

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


export const AuditStatus: {
  SUCCESS: 'SUCCESS',
  FAILED: 'FAILED',
  PARTIAL: 'PARTIAL',
  PENDING: 'PENDING'
};

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


export const DbOperation: {
  INSERT: 'INSERT',
  UPDATE: 'UPDATE',
  DELETE: 'DELETE'
};

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


export const ComplianceLevel: {
  HIGH: 'HIGH',
  MEDIUM: 'MEDIUM',
  LOW: 'LOW'
};

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


export const RiskLevel: {
  HIGH: 'HIGH',
  MEDIUM: 'MEDIUM',
  LOW: 'LOW'
};

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


export const IntegrityCheckType: {
  HASH_CHAIN: 'HASH_CHAIN',
  SIGNATURE: 'SIGNATURE',
  COUNT: 'COUNT',
  FULL: 'FULL'
};

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


export const CheckStatus: {
  SUCCESS: 'SUCCESS',
  FAILED: 'FAILED',
  PARTIAL: 'PARTIAL'
};

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


export const AutomationTaskType: {
  LDAP_SYNC: 'LDAP_SYNC',
  DATA_CLEANUP: 'DATA_CLEANUP',
  REPORT_GENERATION: 'REPORT_GENERATION',
  NOTIFICATION: 'NOTIFICATION',
  BACKUP: 'BACKUP',
  DINGTALK_SYNC: 'DINGTALK_SYNC',
  ADP_SYNC: 'ADP_SYNC',
  M365_DORMANT_SYNC: 'M365_DORMANT_SYNC',
  CUSTOM: 'CUSTOM'
};

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


export const AutomationTaskStatus: {
  ACTIVE: 'ACTIVE',
  PAUSED: 'PAUSED',
  DISABLED: 'DISABLED'
};

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


export const AutomationExecutionStatus: {
  PENDING: 'PENDING',
  RUNNING: 'RUNNING',
  SUCCESS: 'SUCCESS',
  FAILED: 'FAILED',
  TIMEOUT: 'TIMEOUT',
  CANCELLED: 'CANCELLED'
};

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


export const DevItemStatus: {
  DRAFT: 'DRAFT',
  REVIEWED: 'REVIEWED',
  IN_DEVELOPMENT: 'IN_DEVELOPMENT',
  IN_TESTING: 'IN_TESTING',
  USER_TESTING: 'USER_TESTING',
  DONE: 'DONE',
  CANCELLED: 'CANCELLED',
  ARCHIVED: 'ARCHIVED'
};

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


export const DevItemType: {
  MODULE: 'MODULE',
  FEATURE: 'FEATURE',
  BUG: 'BUG'
};

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


export const DevItemPriority: {
  P0: 'P0',
  P1: 'P1',
  P2: 'P2',
  P3: 'P3'
};

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


export const DevItemSeverity: {
  S1: 'S1',
  S2: 'S2',
  S3: 'S3',
  S4: 'S4'
};

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


export const FeedbackType: {
  BUG: 'BUG',
  FEATURE: 'FEATURE',
  IMPROVEMENT: 'IMPROVEMENT',
  OTHER: 'OTHER'
};

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


export const FeedbackStatus: {
  PENDING: 'PENDING',
  IN_PROGRESS: 'IN_PROGRESS',
  RESOLVED: 'RESOLVED',
  CLOSED: 'CLOSED'
};

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


export const FeedbackPriority: {
  LOW: 'LOW',
  MEDIUM: 'MEDIUM',
  HIGH: 'HIGH',
  URGENT: 'URGENT'
};

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


export const FormStatus: {
  DRAFT: 'DRAFT',
  PUBLISHED: 'PUBLISHED',
  DISABLED: 'DISABLED',
  ARCHIVED: 'ARCHIVED'
};

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


export const FormVersionStatus: {
  DRAFT: 'DRAFT',
  PENDING_REVIEW: 'PENDING_REVIEW',
  PUBLISHED: 'PUBLISHED',
  REJECTED: 'REJECTED',
  DEPRECATED: 'DEPRECATED'
};

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


export const FormInstanceStatus: {
  DRAFT: 'DRAFT',
  SUBMITTED: 'SUBMITTED',
  PENDING_APPROVAL: 'PENDING_APPROVAL',
  APPROVED: 'APPROVED',
  REJECTED: 'REJECTED',
  WITHDRAWN: 'WITHDRAWN',
  CANCELLED: 'CANCELLED'
};

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


export const ReleaseSnapshotStatus: {
  DRAFT: 'DRAFT',
  PENDING: 'PENDING',
  REJECTED: 'REJECTED',
  ACTIVE: 'ACTIVE',
  ARCHIVED: 'ARCHIVED'
};

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


export const DataScopeType: {
  SELF: 'SELF',
  DEPARTMENT: 'DEPARTMENT',
  DEPARTMENT_TREE: 'DEPARTMENT_TREE',
  ORGANIZATION: 'ORGANIZATION',
  REGION: 'REGION',
  ALL: 'ALL',
  CUSTOM: 'CUSTOM'
};

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


export const UserStatus: {
  ACTIVE: 'ACTIVE',
  INACTIVE: 'INACTIVE',
  SUSPENDED: 'SUSPENDED',
  TERMINATED: 'TERMINATED'
};

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


export const WorkflowRuleType: {
  ORGANIZATION_RELATION: 'ORGANIZATION_RELATION',
  SYSTEM_ROLE_MAPPING: 'SYSTEM_ROLE_MAPPING',
  FIXED_USERS: 'FIXED_USERS',
  DYNAMIC_SCRIPT: 'DYNAMIC_SCRIPT'
};

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


export const UserSource: {
  LOCAL: 'LOCAL',
  ENTRA: 'ENTRA',
  LDAP: 'LDAP'
};

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


export const FieldAccess: {
  VISIBLE: 'VISIBLE',
  READONLY: 'READONLY',
  HIDDEN: 'HIDDEN',
  DESENSITIZE: 'DESENSITIZE'
};

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


export const InternalAppRuntime: {
  node: 'node',
  static: 'static'
};

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


export const InternalAppStatus: {
  PENDING: 'PENDING',
  BUILDING: 'BUILDING',
  HEALTHY: 'HEALTHY',
  FAILED: 'FAILED',
  DISABLED: 'DISABLED',
  DESTROYED: 'DESTROYED',
  DISABLED_ARCHIVED: 'DISABLED_ARCHIVED',
  PURGED: 'PURGED'
};

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


export const InternalAppDeploymentStatus: {
  PENDING: 'PENDING',
  BUILDING: 'BUILDING',
  HEALTH_CHECKING: 'HEALTH_CHECKING',
  SUCCESS: 'SUCCESS',
  FAILED: 'FAILED',
  ROLLED_BACK: 'ROLLED_BACK'
};

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


export const InternalAppDeploymentTrigger: {
  deploy: 'deploy',
  env_change: 'env_change',
  admin_restart: 'admin_restart'
};

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


export const InternalAppTokenStatus: {
  ACTIVE: 'ACTIVE',
  REVOKED: 'REVOKED',
  DISABLED: 'DISABLED',
  EXPIRED: 'EXPIRED'
};

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


export const InternalAppTokenRevokeReason: {
  self: 'self',
  admin: 'admin',
  entra_disabled: 'entra_disabled',
  rotated: 'rotated'
};

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


export const InternalAppActorRole: {
  OWNER: 'OWNER',
  ADMIN: 'ADMIN',
  SYSTEM: 'SYSTEM'
};

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


export const InternalAppEventOutcome: {
  OK: 'OK',
  FAIL: 'FAIL'
};

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


export const KnowledgeArticleStatus: {
  DRAFT: 'DRAFT',
  PUBLISHED: 'PUBLISHED',
  ARCHIVED: 'ARCHIVED'
};

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


export const DocAuthorityLevel: {
  OFFICIAL: 'OFFICIAL',
  EXPERT: 'EXPERT',
  PUBLISHED: 'PUBLISHED',
  DRAFT: 'DRAFT'
};

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


export const DocLifecycleStatus: {
  DRAFT: 'DRAFT',
  UNDER_REVIEW: 'UNDER_REVIEW',
  PUBLISHED: 'PUBLISHED',
  ARCHIVED: 'ARCHIVED',
  DEPRECATED: 'DEPRECATED'
};

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


export const DocType: {
  POLICY: 'POLICY',
  MANUAL: 'MANUAL',
  TUTORIAL: 'TUTORIAL',
  FAQ: 'FAQ',
  GENERAL: 'GENERAL'
};

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


export const SyncStatus: {
  PENDING: 'PENDING',
  SYNCING: 'SYNCING',
  COMPLETED: 'COMPLETED',
  FAILED: 'FAILED'
};

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


export const SyncItemStatus: {
  PROCESSING: 'PROCESSING',
  COMPLETED: 'COMPLETED'
};

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


export const RagflowSourceType: {
  SP_DOCUMENT: 'SP_DOCUMENT',
  ARTICLE: 'ARTICLE'
};

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


export const SearchType: {
  KEYWORD: 'KEYWORD',
  SEMANTIC: 'SEMANTIC',
  HYBRID: 'HYBRID'
};

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


export const LikeType: {
  LIKE: 'LIKE',
  DISLIKE: 'DISLIKE'
};

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


export const QAFeedback: {
  THUMBS_UP: 'THUMBS_UP',
  THUMBS_DOWN: 'THUMBS_DOWN'
};

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


export const LogLevel: {
  ERROR: 'ERROR',
  WARN: 'WARN',
  INFO: 'INFO',
  DEBUG: 'DEBUG'
};

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


export const LogAlertType: {
  SLOW_REQUEST: 'SLOW_REQUEST',
  HIGH_ERROR_RATE: 'HIGH_ERROR_RATE',
  DISK_SPACE: 'DISK_SPACE',
  IP_ANOMALY: 'IP_ANOMALY'
};

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


export const LogAlertStatus: {
  SENT: 'SENT',
  FAILED: 'FAILED',
  ACKNOWLEDGED: 'ACKNOWLEDGED'
};

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


export const LogAlertSeverity: {
  CRITICAL: 'CRITICAL',
  WARNING: 'WARNING',
  INFO: 'INFO'
};

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


export const CustomerType: {
  B2B: 'B2B',
  B2C: 'B2C',
  INTERNAL: 'INTERNAL'
};

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


export const SupplierType: {
  MANUFACTURER: 'MANUFACTURER',
  PARTS: 'PARTS',
  LOGISTICS: 'LOGISTICS',
  SERVICE: 'SERVICE'
};

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


export const PartnerRole: {
  SALES_AGENT: 'SALES_AGENT',
  MENTOR: 'MENTOR',
  MENTEE: 'MENTEE',
  CUSTOMS_BROKER: 'CUSTOMS_BROKER',
  TRAINING_PARTNER: 'TRAINING_PARTNER'
};

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


export const LocationType: {
  WAREHOUSE: 'WAREHOUSE',
  CUSTOMER_SITE: 'CUSTOMER_SITE',
  FACTORY: 'FACTORY',
  BONDED_ZONE: 'BONDED_ZONE',
  IN_TRANSIT: 'IN_TRANSIT',
  SERVICE_CENTER: 'SERVICE_CENTER'
};

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


export const OutlookBootstrapStatus: {
  QUEUED: 'QUEUED',
  RUNNING: 'RUNNING',
  SUCCEEDED: 'SUCCEEDED',
  FAILED: 'FAILED'
};

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


export const RecurrencePattern: {
  DAILY: 'DAILY',
  WEEKLY: 'WEEKLY',
  MONTHLY: 'MONTHLY',
  YEARLY: 'YEARLY'
};

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


export const MeetingType: {
  OFFLINE: 'OFFLINE',
  ONLINE: 'ONLINE',
  HYBRID: 'HYBRID'
};

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


export const MeetingStatus: {
  SCHEDULED: 'SCHEDULED',
  IN_PROGRESS: 'IN_PROGRESS',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED'
};

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


export const AttendeeRole: {
  C_SUITE_ATTENDEE: 'C_SUITE_ATTENDEE',
  LEVEL_1_REPORT_ATTENDEE: 'LEVEL_1_REPORT_ATTENDEE',
  LEVEL_2_REPORT_ATTENDEE: 'LEVEL_2_REPORT_ATTENDEE',
  MEETING_OPERATIONS: 'MEETING_OPERATIONS',
  REGULAR_ATTENDEE: 'REGULAR_ATTENDEE',
  OPTIONAL_ATTENDEE: 'OPTIONAL_ATTENDEE'
};

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


export const AttendanceStatus: {
  NOT_CHECKED_IN: 'NOT_CHECKED_IN',
  ON_SITE: 'ON_SITE',
  ONLINE: 'ONLINE',
  ABSENT: 'ABSENT',
  PTO: 'PTO',
  BUSINESS_CONFLICT: 'BUSINESS_CONFLICT',
  LATE: 'LATE',
  MEETING: 'MEETING'
};

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


export const AttendanceMode: {
  ON_SITE: 'ON_SITE',
  ONLINE: 'ONLINE'
};

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


export const CheckinType: {
  QR_CODE: 'QR_CODE',
  NFC: 'NFC',
  MANUAL: 'MANUAL',
  ONLINE: 'ONLINE'
};

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


export const LeaveType: {
  SICK: 'SICK',
  PERSONAL: 'PERSONAL',
  ANNUAL: 'ANNUAL',
  BUSINESS: 'BUSINESS',
  OTHER: 'OTHER'
};

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


export const LeaveStatus: {
  PENDING: 'PENDING',
  APPROVED: 'APPROVED',
  REJECTED: 'REJECTED'
};

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


export const OutlookMailboxType: {
  SHARED: 'SHARED',
  PERSONAL: 'PERSONAL'
};

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


export const OutlookSubscriptionStatus: {
  ACTIVE: 'ACTIVE',
  EXPIRED: 'EXPIRED',
  ERROR: 'ERROR',
  DISABLED: 'DISABLED'
};

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


export const OutlookManageStatus: {
  PENDING_SELECTION: 'PENDING_SELECTION',
  MANAGED: 'MANAGED',
  SYNC_ERROR: 'SYNC_ERROR',
  DISABLED: 'DISABLED'
};

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


export const OutlookCancellationSource: {
  CANCELLED_BY_ORGANIZER: 'CANCELLED_BY_ORGANIZER',
  DELETED: 'DELETED'
};

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


export const OutlookBindingSyncMode: {
  AUTO: 'AUTO',
  LOCKED_BY_LOCAL_EDIT: 'LOCKED_BY_LOCAL_EDIT'
};

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


export const UploadTaskStatus: {
  PENDING: 'PENDING',
  UPLOADED: 'UPLOADED',
  CANCELLED: 'CANCELLED'
};

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


export const MeetingAttachmentCategory: {
  MINUTES: 'MINUTES',
  MATERIAL: 'MATERIAL',
  PRESENTATION: 'PRESENTATION',
  OTHER: 'OTHER'
};

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


export const NotificationType: {
  TASK_ASSIGNED: 'TASK_ASSIGNED',
  TASK_COMPLETED: 'TASK_COMPLETED',
  WORKFLOW_APPROVED: 'WORKFLOW_APPROVED',
  WORKFLOW_REJECTED: 'WORKFLOW_REJECTED',
  WORK_RECORD_REMINDER: 'WORK_RECORD_REMINDER',
  SYSTEM: 'SYSTEM'
};

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


export const NotificationStatus: {
  UNREAD: 'UNREAD',
  READ: 'READ',
  ARCHIVED: 'ARCHIVED'
};

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


export const NotificationChannel: {
  EMAIL: 'EMAIL',
  TEAMS: 'TEAMS',
  SMS: 'SMS',
  WEBSOCKET: 'WEBSOCKET',
  IN_APP: 'IN_APP'
};

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


export const NotificationSendStatus: {
  PENDING: 'PENDING',
  SENDING: 'SENDING',
  SENT: 'SENT',
  FAILED: 'FAILED',
  CANCELLED: 'CANCELLED'
};

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


export const NotificationPriority: {
  HIGH: 'HIGH',
  NORMAL: 'NORMAL',
  LOW: 'LOW'
};

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


export const M365UserActivityChangeField: {
  lastSignInDateTime: 'lastSignInDateTime',
  lastNonInteractiveSignInDateTime: 'lastNonInteractiveSignInDateTime',
  lastEmailActivity: 'lastEmailActivity',
  lastOneDriveActivity: 'lastOneDriveActivity',
  lastTeamsActivity: 'lastTeamsActivity',
  lastSharePointActivity: 'lastSharePointActivity',
  accountEnabled: 'accountEnabled',
  hasLicense: 'hasLicense',
  licenses: 'licenses'
};

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


export const CycleType: {
  MONTHLY: 'MONTHLY',
  QUARTERLY: 'QUARTERLY',
  SEMI_ANNUAL: 'SEMI_ANNUAL',
  ANNUAL: 'ANNUAL',
  CUSTOM: 'CUSTOM'
};

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


export const CycleStatus: {
  DRAFT: 'DRAFT',
  GOAL_SETTING: 'GOAL_SETTING',
  IN_PROGRESS: 'IN_PROGRESS',
  EVALUATING: 'EVALUATING',
  CALIBRATING: 'CALIBRATING',
  CONFIRMING: 'CONFIRMING',
  COMPLETED: 'COMPLETED',
  ARCHIVED: 'ARCHIVED'
};

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


export const KpiAssignmentStatus: {
  DRAFT: 'DRAFT',
  SUBMITTED: 'SUBMITTED',
  APPROVED: 'APPROVED',
  REJECTED: 'REJECTED'
};

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


export const KpiDependencyStatus: {
  PENDING: 'PENDING',
  CONFIRMED: 'CONFIRMED',
  REJECTED: 'REJECTED'
};

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


export const ResultConfirmStatus: {
  PENDING: 'PENDING',
  CONFIRMED: 'CONFIRMED',
  APPEALED: 'APPEALED',
  APPEAL_RESOLVED: 'APPEAL_RESOLVED'
};

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


export const KpiAssessmentStatus: {
  PENDING: 'PENDING',
  SELF_EVALUATED: 'SELF_EVALUATED',
  MANAGER_EVALUATED: 'MANAGER_EVALUATED',
  CONFIRMED: 'CONFIRMED'
};

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


export const Evaluation360Status: {
  DRAFT: 'DRAFT',
  IN_PROGRESS: 'IN_PROGRESS',
  COLLECTING: 'COLLECTING',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED'
};

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


export const EvaluationTaskStatus: {
  PENDING: 'PENDING',
  SUBMITTED: 'SUBMITTED',
  EXPIRED: 'EXPIRED',
  CANCELLED: 'CANCELLED'
};

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


export const RelationType: {
  SELF: 'SELF',
  SUPERVISOR: 'SUPERVISOR',
  PEER: 'PEER',
  SUBORDINATE: 'SUBORDINATE',
  CROSS_FUNCTIONAL: 'CROSS_FUNCTIONAL'
};

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


export const SiteGeoPolicy: {
  STRICT_BLOCK: 'STRICT_BLOCK',
  ALLOW_WITH_FLAG: 'ALLOW_WITH_FLAG',
  SKIP: 'SKIP'
};

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


export const SiteEventType: {
  CHECK_IN: 'CHECK_IN',
  CHECK_OUT: 'CHECK_OUT'
};

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


export const SiteAuthMethod: {
  AUTHENTICATED: 'AUTHENTICATED',
  UNAUTHENTICATED: 'UNAUTHENTICATED'
};

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


export const SiteGeoStatus: {
  VALID: 'VALID',
  OUT_OF_RANGE: 'OUT_OF_RANGE',
  LOW_ACCURACY: 'LOW_ACCURACY',
  PERMISSION_DENIED: 'PERMISSION_DENIED',
  UNAVAILABLE: 'UNAVAILABLE',
  TIMEOUT: 'TIMEOUT',
  SKIPPED: 'SKIPPED'
};

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


export const SiteCheckpointAccessMode: {
  PUBLIC: 'PUBLIC',
  SIGNED: 'SIGNED'
};

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


export const TicketStatus: {
  OPEN: 'OPEN',
  ASSIGNED: 'ASSIGNED',
  IN_PROGRESS: 'IN_PROGRESS',
  PENDING: 'PENDING',
  RESOLVED: 'RESOLVED',
  CLOSED: 'CLOSED',
  CANCELLED: 'CANCELLED'
};

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


export const TicketPriority: {
  LOW: 'LOW',
  MEDIUM: 'MEDIUM',
  HIGH: 'HIGH',
  URGENT: 'URGENT'
};

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


export const TicketSource: {
  WEB: 'WEB',
  MOBILE: 'MOBILE',
  EMAIL: 'EMAIL',
  API: 'API',
  CHAT: 'CHAT',
  PHONE: 'PHONE',
  WALK_IN: 'WALK_IN'
};

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


export const CommentType: {
  COMMENT: 'COMMENT',
  STATUS_CHANGE: 'STATUS_CHANGE',
  ASSIGNMENT: 'ASSIGNMENT',
  SYSTEM: 'SYSTEM',
  AI_CONTEXT: 'AI_CONTEXT'
};

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


export const VisibilityScope: {
  ALL: 'ALL',
  AGENT_ONLY: 'AGENT_ONLY',
  GROUP_ONLY: 'GROUP_ONLY',
  INTERNAL: 'INTERNAL'
};

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


export const ActivityType: {
  CREATED: 'CREATED',
  STATUS_CHANGED: 'STATUS_CHANGED',
  ASSIGNED: 'ASSIGNED',
  REASSIGNED: 'REASSIGNED',
  PRIORITY_CHANGED: 'PRIORITY_CHANGED',
  COMMENTED: 'COMMENTED',
  ATTACHMENT_ADDED: 'ATTACHMENT_ADDED',
  SLA_BREACHED: 'SLA_BREACHED',
  ESCALATED: 'ESCALATED',
  RESOLVED: 'RESOLVED',
  CLOSED: 'CLOSED',
  REOPENED: 'REOPENED'
};

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


export const AssignmentStrategy: {
  ROUND_ROBIN: 'ROUND_ROBIN',
  LOAD_BALANCE: 'LOAD_BALANCE',
  MANUAL: 'MANUAL',
  SKILL_BASED: 'SKILL_BASED'
};

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


export const RobotLifecycleStage: {
  SUPPLY_PO_CREATED: 'SUPPLY_PO_CREATED',
  SUPPLY_IN_PRODUCTION: 'SUPPLY_IN_PRODUCTION',
  SUPPLY_READY_TO_SHIP: 'SUPPLY_READY_TO_SHIP',
  LOGISTICS_IN_TRANSIT: 'LOGISTICS_IN_TRANSIT',
  LOGISTICS_BONDED: 'LOGISTICS_BONDED',
  LOGISTICS_CUSTOMS_CLEARED: 'LOGISTICS_CUSTOMS_CLEARED',
  WAREHOUSE_RECEIVED: 'WAREHOUSE_RECEIVED',
  WAREHOUSE_AT_W1_PDI: 'WAREHOUSE_AT_W1_PDI',
  WAREHOUSE_MODIFICATION: 'WAREHOUSE_MODIFICATION',
  WAREHOUSE_AT_W2: 'WAREHOUSE_AT_W2',
  WAREHOUSE_AT_W2_RLE: 'WAREHOUSE_AT_W2_RLE',
  WAREHOUSE_BRANDED_READY: 'WAREHOUSE_BRANDED_READY',
  SALES_RESERVED: 'SALES_RESERVED',
  SALES_PAYMENT_VALIDATED: 'SALES_PAYMENT_VALIDATED',
  DELIVERY_APPROVAL: 'DELIVERY_APPROVAL',
  DELIVERY_PAYMENT_COLLECTED: 'DELIVERY_PAYMENT_COLLECTED',
  DELIVERY_READY: 'DELIVERY_READY',
  DELIVERY_DELIVERED: 'DELIVERY_DELIVERED',
  RENTAL_ACTIVE: 'RENTAL_ACTIVE',
  AFTERSALES_TICKET: 'AFTERSALES_TICKET',
  AFTERSALES_RETURN_INITIATED: 'AFTERSALES_RETURN_INITIATED',
  AFTERSALES_RETURN_RECEIVED: 'AFTERSALES_RETURN_RECEIVED',
  AFTERSALES_AT_W6: 'AFTERSALES_AT_W6',
  AFTERSALES_UNDER_REPAIR: 'AFTERSALES_UNDER_REPAIR',
  AFTERSALES_QUOTE_APPROVAL: 'AFTERSALES_QUOTE_APPROVAL',
  AFTERSALES_REPAIRED: 'AFTERSALES_REPAIRED',
  CLOSED: 'CLOSED',
  CANCELLED: 'CANCELLED',
  RETURNED: 'RETURNED'
};

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


export const RobotUsageType: {
  SALES: 'SALES',
  RND: 'RND',
  MARKETING: 'MARKETING',
  CAPITAL: 'CAPITAL',
  PRODUCT: 'PRODUCT',
  TO_AGIBOT: 'TO_AGIBOT',
  LAUNCH_EVENT: 'LAUNCH_EVENT'
};

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


export const RobotDisposalType: {
  SCRAPPED: 'SCRAPPED',
  SWAPPED_TO_AGIBOT: 'SWAPPED_TO_AGIBOT',
  CANCELLED: 'CANCELLED'
};

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


export const RobotPhysicalStatus: {
  STORED: 'STORED',
  IN_TRANSIT: 'IN_TRANSIT',
  DELIVERED: 'DELIVERED',
  IN_SERVICE: 'IN_SERVICE',
  RETIRED: 'RETIRED'
};

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


export const RobotWarrantyStatus: {
  INACTIVE: 'INACTIVE',
  ACTIVE: 'ACTIVE',
  EXPIRED: 'EXPIRED',
  VOIDED: 'VOIDED'
};

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


export const RobotLifecycleEventType: {
  stage_changed: 'stage_changed',
  held: 'held',
  unheld: 'unheld',
  location_moved: 'location_moved',
  sn_activated: 'sn_activated',
  usage_type_changed: 'usage_type_changed',
  label_applied: 'label_applied',
  inspection_logged: 'inspection_logged',
  readiness_completed: 'readiness_completed',
  payment_collected: 'payment_collected',
  delivery_signed: 'delivery_signed',
  service_opened: 'service_opened',
  service_closed: 'service_closed',
  imported_from_v5: 'imported_from_v5',
  note_added: 'note_added'
};

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


export const RobotEventRelatedType: {
  PO: 'PO',
  SO: 'SO',
  DELIVERY_REQUEST: 'DELIVERY_REQUEST',
  DELIVERY_FULFILLMENT: 'DELIVERY_FULFILLMENT',
  SERVICE_TICKET: 'SERVICE_TICKET',
  INSPECTION: 'INSPECTION',
  COMPLIANCE_CHECK: 'COMPLIANCE_CHECK',
  READINESS: 'READINESS',
  LABEL: 'LABEL',
  LOGISTICS_LEG: 'LOGISTICS_LEG',
  PAYMENT: 'PAYMENT',
  RENTAL_AGREEMENT: 'RENTAL_AGREEMENT'
};

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


export const PurchaseOrderStatus: {
  DRAFT: 'DRAFT',
  ORDERED: 'ORDERED',
  PARTIAL_RECEIVED: 'PARTIAL_RECEIVED',
  RECEIVED: 'RECEIVED',
  CLOSED: 'CLOSED',
  CANCELLED: 'CANCELLED'
};

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


export const SalesOrderStatus: {
  RESERVED: 'RESERVED',
  PENDING: 'PENDING',
  APPROVED: 'APPROVED',
  FULFILLING: 'FULFILLING',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED'
};

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


export const SalesContractStatus: {
  DRAFT: 'DRAFT',
  SIGNED: 'SIGNED',
  VOID: 'VOID'
};

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


export const SalesLineType: {
  HARDWARE: 'HARDWARE',
  SOFTWARE: 'SOFTWARE',
  COCREATION: 'COCREATION'
};

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


export const DeliveryRequestType: {
  WILL_CALL: 'WILL_CALL',
  THREE_PL: 'THREE_PL',
  WHITE_GLOVE: 'WHITE_GLOVE'
};

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


export const DeliveryRequestStatus: {
  REQUESTED: 'REQUESTED',
  APPROVED: 'APPROVED',
  FULFILLING: 'FULFILLING',
  COMPLETED: 'COMPLETED',
  CANCELLED: 'CANCELLED'
};

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


export const DeliveryFormStatus: {
  DRAFT: 'DRAFT',
  SIGNED: 'SIGNED',
  REJECTED: 'REJECTED'
};

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


export const RevenueRecognitionStatus: {
  PENDING: 'PENDING',
  RECOGNIZED: 'RECOGNIZED',
  ADJUSTED: 'ADJUSTED'
};

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


export const InvoiceStatus: {
  PENDING: 'PENDING',
  ISSUED: 'ISSUED',
  PAID: 'PAID',
  OVERDUE: 'OVERDUE'
};

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


export const PaymentRelatedType: {
  SALES_ORDER: 'SALES_ORDER',
  PURCHASE_ORDER: 'PURCHASE_ORDER',
  RENTAL_AGREEMENT: 'RENTAL_AGREEMENT'
};

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


export const PaymentDirection: {
  INBOUND: 'INBOUND',
  OUTBOUND: 'OUTBOUND'
};

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


export const PaymentMethod: {
  DEPOSIT_TRANSFER: 'DEPOSIT_TRANSFER',
  CHECK: 'CHECK',
  ACH: 'ACH',
  LEASE: 'LEASE',
  FULL_PAYMENT_CHECK: 'FULL_PAYMENT_CHECK',
  FULL_PAYMENT_WIRE: 'FULL_PAYMENT_WIRE',
  CO_CREATION_CREDIT: 'CO_CREATION_CREDIT',
  WIRE_TRANSFER: 'WIRE_TRANSFER'
};

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


export const PaymentStatus: {
  NOT_PAID_YET: 'NOT_PAID_YET',
  PARTIAL: 'PARTIAL',
  PAID: 'PAID',
  CANCELLED: 'CANCELLED',
  DRAFT: 'DRAFT'
};

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


export const PreDelContractStatus: {
  PENDING: 'PENDING',
  SIGNED: 'SIGNED',
  COMPLETED: 'COMPLETED'
};

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


export const QualityLabelStatus: {
  PENDING: 'PENDING',
  APPLIED: 'APPLIED',
  VERIFIED: 'VERIFIED',
  REJECTED: 'REJECTED'
};

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


export const LogisticsStatus: {
  SHIPPED: 'SHIPPED',
  IN_TRANSIT: 'IN_TRANSIT',
  ARRIVED: 'ARRIVED',
  DELAYED: 'DELAYED',
  CUSTOMS_HOLD: 'CUSTOMS_HOLD'
};

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


export const StickerStatus: {
  NONE: 'NONE',
  PARTIAL: 'PARTIAL',
  COMPLETE: 'COMPLETE'
};

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


export const FccStatus: {
  PENDING: 'PENDING',
  CLEARED: 'CLEARED',
  REJECTED: 'REJECTED'
};

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


export const TicketSeverity: {
  P0: 'P0',
  P1: 'P1',
  P2: 'P2',
  P3: 'P3'
};

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


export const ServiceTicketStatus: {
  NEW: 'NEW',
  IN_PROGRESS: 'IN_PROGRESS',
  AWAITING_CUSTOMER: 'AWAITING_CUSTOMER',
  RESOLVED: 'RESOLVED',
  CLOSED: 'CLOSED'
};

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


export const ServiceTicketActivityType: {
  COMMENT: 'COMMENT',
  STATUS_CHANGE: 'STATUS_CHANGE',
  HANDOVER: 'HANDOVER',
  RESOLVED: 'RESOLVED'
};

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


export const RentalAgreementStatus: {
  ACTIVE: 'ACTIVE',
  EXPIRED: 'EXPIRED',
  TERMINATED: 'TERMINATED'
};

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


export const ImportRecordStatus: {
  OK: 'OK',
  CONFLICT: 'CONFLICT',
  PHANTOM: 'PHANTOM'
};

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


export const ImportBatchType: {
  PURCHASE_ORDER: 'PURCHASE_ORDER',
  ROBOT_UNIT: 'ROBOT_UNIT',
  MASTER_MODEL: 'MASTER_MODEL',
  MASTER_SKU: 'MASTER_SKU',
  MASTER_CUSTOMER: 'MASTER_CUSTOMER',
  MASTER_SUPPLIER: 'MASTER_SUPPLIER',
  MASTER_LOCATION: 'MASTER_LOCATION',
  SERVICE_TICKET: 'SERVICE_TICKET'
};

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


export const ImportBatchStatus: {
  PENDING: 'PENDING',
  VALIDATING: 'VALIDATING',
  VALIDATED: 'VALIDATED',
  IMPORTING: 'IMPORTING',
  COMPLETED: 'COMPLETED',
  FAILED: 'FAILED',
  SUPERSEDED: 'SUPERSEDED'
};

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


export const ImportEntryStatus: {
  OK: 'OK',
  ERROR: 'ERROR',
  WARNING: 'WARNING'
};

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

}

export type ProcessStatus = $Enums.ProcessStatus

export const ProcessStatus: typeof $Enums.ProcessStatus

export type VersionStatus = $Enums.VersionStatus

export const VersionStatus: typeof $Enums.VersionStatus

export type InstanceStatus = $Enums.InstanceStatus

export const InstanceStatus: typeof $Enums.InstanceStatus

export type ApprovalAdminExportStatus = $Enums.ApprovalAdminExportStatus

export const ApprovalAdminExportStatus: typeof $Enums.ApprovalAdminExportStatus

export type NodeStatus = $Enums.NodeStatus

export const NodeStatus: typeof $Enums.NodeStatus

export type ApprovalTaskType = $Enums.ApprovalTaskType

export const ApprovalTaskType: typeof $Enums.ApprovalTaskType

export type ApprovalTaskStatus = $Enums.ApprovalTaskStatus

export const ApprovalTaskStatus: typeof $Enums.ApprovalTaskStatus

export type ApprovalTaskAction = $Enums.ApprovalTaskAction

export const ApprovalTaskAction: typeof $Enums.ApprovalTaskAction

export type CallbackStatus = $Enums.CallbackStatus

export const CallbackStatus: typeof $Enums.CallbackStatus

export type ReminderType = $Enums.ReminderType

export const ReminderType: typeof $Enums.ReminderType

export type ReminderStatus = $Enums.ReminderStatus

export const ReminderStatus: typeof $Enums.ReminderStatus

export type DelegationType = $Enums.DelegationType

export const DelegationType: typeof $Enums.DelegationType

export type DelegationScope = $Enums.DelegationScope

export const DelegationScope: typeof $Enums.DelegationScope

export type ExpenseCategory = $Enums.ExpenseCategory

export const ExpenseCategory: typeof $Enums.ExpenseCategory

export type ExpenseStatus = $Enums.ExpenseStatus

export const ExpenseStatus: typeof $Enums.ExpenseStatus

export type PurchaseStatus = $Enums.PurchaseStatus

export const PurchaseStatus: typeof $Enums.PurchaseStatus

export type ContractType = $Enums.ContractType

export const ContractType: typeof $Enums.ContractType

export type ContractStatus = $Enums.ContractStatus

export const ContractStatus: typeof $Enums.ContractStatus

export type StationStatus = $Enums.StationStatus

export const StationStatus: typeof $Enums.StationStatus

export type WarehouseStatus = $Enums.WarehouseStatus

export const WarehouseStatus: typeof $Enums.WarehouseStatus

export type StorageLocationStatus = $Enums.StorageLocationStatus

export const StorageLocationStatus: typeof $Enums.StorageLocationStatus

export type PartStatus = $Enums.PartStatus

export const PartStatus: typeof $Enums.PartStatus

export type LabelStatus = $Enums.LabelStatus

export const LabelStatus: typeof $Enums.LabelStatus

export type InventoryOperationType = $Enums.InventoryOperationType

export const InventoryOperationType: typeof $Enums.InventoryOperationType

export type StockAlertType = $Enums.StockAlertType

export const StockAlertType: typeof $Enums.StockAlertType

export type AlertSeverity = $Enums.AlertSeverity

export const AlertSeverity: typeof $Enums.AlertSeverity

export type AlertStatus = $Enums.AlertStatus

export const AlertStatus: typeof $Enums.AlertStatus

export type ImportStatus = $Enums.ImportStatus

export const ImportStatus: typeof $Enums.ImportStatus

export type GroupFieldType = $Enums.GroupFieldType

export const GroupFieldType: typeof $Enums.GroupFieldType

export type AIConversationStatus = $Enums.AIConversationStatus

export const AIConversationStatus: typeof $Enums.AIConversationStatus

export type AIConversationCategory = $Enums.AIConversationCategory

export const AIConversationCategory: typeof $Enums.AIConversationCategory

export type AIMessageRole = $Enums.AIMessageRole

export const AIMessageRole: typeof $Enums.AIMessageRole

export type AIMessageSource = $Enums.AIMessageSource

export const AIMessageSource: typeof $Enums.AIMessageSource

export type AIFeedbackType = $Enums.AIFeedbackType

export const AIFeedbackType: typeof $Enums.AIFeedbackType

export type AITicketCategory = $Enums.AITicketCategory

export const AITicketCategory: typeof $Enums.AITicketCategory

export type AIAssigneeTeam = $Enums.AIAssigneeTeam

export const AIAssigneeTeam: typeof $Enums.AIAssigneeTeam

export type AITicketPriority = $Enums.AITicketPriority

export const AITicketPriority: typeof $Enums.AITicketPriority

export type AITicketStatus = $Enums.AITicketStatus

export const AITicketStatus: typeof $Enums.AITicketStatus

export type AIKnowledgeFixStatus = $Enums.AIKnowledgeFixStatus

export const AIKnowledgeFixStatus: typeof $Enums.AIKnowledgeFixStatus

export type AgentSurface = $Enums.AgentSurface

export const AgentSurface: typeof $Enums.AgentSurface

export type AgentSessionStatus = $Enums.AgentSessionStatus

export const AgentSessionStatus: typeof $Enums.AgentSessionStatus

export type AgentMessageType = $Enums.AgentMessageType

export const AgentMessageType: typeof $Enums.AgentMessageType

export type ModelRoutingScope = $Enums.ModelRoutingScope

export const ModelRoutingScope: typeof $Enums.ModelRoutingScope

export type ModelRoutingMatchSource = $Enums.ModelRoutingMatchSource

export const ModelRoutingMatchSource: typeof $Enums.ModelRoutingMatchSource

export type AgentTrajectoryEventType = $Enums.AgentTrajectoryEventType

export const AgentTrajectoryEventType: typeof $Enums.AgentTrajectoryEventType

export type AgentQuotaScope = $Enums.AgentQuotaScope

export const AgentQuotaScope: typeof $Enums.AgentQuotaScope

export type AgentPlanMode = $Enums.AgentPlanMode

export const AgentPlanMode: typeof $Enums.AgentPlanMode

export type AgentPermissionMode = $Enums.AgentPermissionMode

export const AgentPermissionMode: typeof $Enums.AgentPermissionMode

export type AgentArtifactType = $Enums.AgentArtifactType

export const AgentArtifactType: typeof $Enums.AgentArtifactType

export type AgentTaskStatus = $Enums.AgentTaskStatus

export const AgentTaskStatus: typeof $Enums.AgentTaskStatus

export type StorageBindingScope = $Enums.StorageBindingScope

export const StorageBindingScope: typeof $Enums.StorageBindingScope

export type StorageBackendKind = $Enums.StorageBackendKind

export const StorageBackendKind: typeof $Enums.StorageBackendKind

export type MemoryScope = $Enums.MemoryScope

export const MemoryScope: typeof $Enums.MemoryScope

export type MemoryOwnerScope = $Enums.MemoryOwnerScope

export const MemoryOwnerScope: typeof $Enums.MemoryOwnerScope

export type MemoryCategory = $Enums.MemoryCategory

export const MemoryCategory: typeof $Enums.MemoryCategory

export type AiUsageTool = $Enums.AiUsageTool

export const AiUsageTool: typeof $Enums.AiUsageTool

export type AiUsageOsPlatform = $Enums.AiUsageOsPlatform

export const AiUsageOsPlatform: typeof $Enums.AiUsageOsPlatform

export type AiUsageDlqReason = $Enums.AiUsageDlqReason

export const AiUsageDlqReason: typeof $Enums.AiUsageDlqReason

export type AuditAction = $Enums.AuditAction

export const AuditAction: typeof $Enums.AuditAction

export type AuditStatus = $Enums.AuditStatus

export const AuditStatus: typeof $Enums.AuditStatus

export type DbOperation = $Enums.DbOperation

export const DbOperation: typeof $Enums.DbOperation

export type ComplianceLevel = $Enums.ComplianceLevel

export const ComplianceLevel: typeof $Enums.ComplianceLevel

export type RiskLevel = $Enums.RiskLevel

export const RiskLevel: typeof $Enums.RiskLevel

export type IntegrityCheckType = $Enums.IntegrityCheckType

export const IntegrityCheckType: typeof $Enums.IntegrityCheckType

export type CheckStatus = $Enums.CheckStatus

export const CheckStatus: typeof $Enums.CheckStatus

export type AutomationTaskType = $Enums.AutomationTaskType

export const AutomationTaskType: typeof $Enums.AutomationTaskType

export type AutomationTaskStatus = $Enums.AutomationTaskStatus

export const AutomationTaskStatus: typeof $Enums.AutomationTaskStatus

export type AutomationExecutionStatus = $Enums.AutomationExecutionStatus

export const AutomationExecutionStatus: typeof $Enums.AutomationExecutionStatus

export type DevItemStatus = $Enums.DevItemStatus

export const DevItemStatus: typeof $Enums.DevItemStatus

export type DevItemType = $Enums.DevItemType

export const DevItemType: typeof $Enums.DevItemType

export type DevItemPriority = $Enums.DevItemPriority

export const DevItemPriority: typeof $Enums.DevItemPriority

export type DevItemSeverity = $Enums.DevItemSeverity

export const DevItemSeverity: typeof $Enums.DevItemSeverity

export type FeedbackType = $Enums.FeedbackType

export const FeedbackType: typeof $Enums.FeedbackType

export type FeedbackStatus = $Enums.FeedbackStatus

export const FeedbackStatus: typeof $Enums.FeedbackStatus

export type FeedbackPriority = $Enums.FeedbackPriority

export const FeedbackPriority: typeof $Enums.FeedbackPriority

export type FormStatus = $Enums.FormStatus

export const FormStatus: typeof $Enums.FormStatus

export type FormVersionStatus = $Enums.FormVersionStatus

export const FormVersionStatus: typeof $Enums.FormVersionStatus

export type FormInstanceStatus = $Enums.FormInstanceStatus

export const FormInstanceStatus: typeof $Enums.FormInstanceStatus

export type ReleaseSnapshotStatus = $Enums.ReleaseSnapshotStatus

export const ReleaseSnapshotStatus: typeof $Enums.ReleaseSnapshotStatus

export type DataScopeType = $Enums.DataScopeType

export const DataScopeType: typeof $Enums.DataScopeType

export type UserStatus = $Enums.UserStatus

export const UserStatus: typeof $Enums.UserStatus

export type WorkflowRuleType = $Enums.WorkflowRuleType

export const WorkflowRuleType: typeof $Enums.WorkflowRuleType

export type UserSource = $Enums.UserSource

export const UserSource: typeof $Enums.UserSource

export type FieldAccess = $Enums.FieldAccess

export const FieldAccess: typeof $Enums.FieldAccess

export type InternalAppRuntime = $Enums.InternalAppRuntime

export const InternalAppRuntime: typeof $Enums.InternalAppRuntime

export type InternalAppStatus = $Enums.InternalAppStatus

export const InternalAppStatus: typeof $Enums.InternalAppStatus

export type InternalAppDeploymentStatus = $Enums.InternalAppDeploymentStatus

export const InternalAppDeploymentStatus: typeof $Enums.InternalAppDeploymentStatus

export type InternalAppDeploymentTrigger = $Enums.InternalAppDeploymentTrigger

export const InternalAppDeploymentTrigger: typeof $Enums.InternalAppDeploymentTrigger

export type InternalAppTokenStatus = $Enums.InternalAppTokenStatus

export const InternalAppTokenStatus: typeof $Enums.InternalAppTokenStatus

export type InternalAppTokenRevokeReason = $Enums.InternalAppTokenRevokeReason

export const InternalAppTokenRevokeReason: typeof $Enums.InternalAppTokenRevokeReason

export type InternalAppActorRole = $Enums.InternalAppActorRole

export const InternalAppActorRole: typeof $Enums.InternalAppActorRole

export type InternalAppEventOutcome = $Enums.InternalAppEventOutcome

export const InternalAppEventOutcome: typeof $Enums.InternalAppEventOutcome

export type KnowledgeArticleStatus = $Enums.KnowledgeArticleStatus

export const KnowledgeArticleStatus: typeof $Enums.KnowledgeArticleStatus

export type DocAuthorityLevel = $Enums.DocAuthorityLevel

export const DocAuthorityLevel: typeof $Enums.DocAuthorityLevel

export type DocLifecycleStatus = $Enums.DocLifecycleStatus

export const DocLifecycleStatus: typeof $Enums.DocLifecycleStatus

export type DocType = $Enums.DocType

export const DocType: typeof $Enums.DocType

export type SyncStatus = $Enums.SyncStatus

export const SyncStatus: typeof $Enums.SyncStatus

export type SyncItemStatus = $Enums.SyncItemStatus

export const SyncItemStatus: typeof $Enums.SyncItemStatus

export type RagflowSourceType = $Enums.RagflowSourceType

export const RagflowSourceType: typeof $Enums.RagflowSourceType

export type SearchType = $Enums.SearchType

export const SearchType: typeof $Enums.SearchType

export type LikeType = $Enums.LikeType

export const LikeType: typeof $Enums.LikeType

export type QAFeedback = $Enums.QAFeedback

export const QAFeedback: typeof $Enums.QAFeedback

export type LogLevel = $Enums.LogLevel

export const LogLevel: typeof $Enums.LogLevel

export type LogAlertType = $Enums.LogAlertType

export const LogAlertType: typeof $Enums.LogAlertType

export type LogAlertStatus = $Enums.LogAlertStatus

export const LogAlertStatus: typeof $Enums.LogAlertStatus

export type LogAlertSeverity = $Enums.LogAlertSeverity

export const LogAlertSeverity: typeof $Enums.LogAlertSeverity

export type CustomerType = $Enums.CustomerType

export const CustomerType: typeof $Enums.CustomerType

export type SupplierType = $Enums.SupplierType

export const SupplierType: typeof $Enums.SupplierType

export type PartnerRole = $Enums.PartnerRole

export const PartnerRole: typeof $Enums.PartnerRole

export type LocationType = $Enums.LocationType

export const LocationType: typeof $Enums.LocationType

export type OutlookBootstrapStatus = $Enums.OutlookBootstrapStatus

export const OutlookBootstrapStatus: typeof $Enums.OutlookBootstrapStatus

export type RecurrencePattern = $Enums.RecurrencePattern

export const RecurrencePattern: typeof $Enums.RecurrencePattern

export type MeetingType = $Enums.MeetingType

export const MeetingType: typeof $Enums.MeetingType

export type MeetingStatus = $Enums.MeetingStatus

export const MeetingStatus: typeof $Enums.MeetingStatus

export type AttendeeRole = $Enums.AttendeeRole

export const AttendeeRole: typeof $Enums.AttendeeRole

export type AttendanceStatus = $Enums.AttendanceStatus

export const AttendanceStatus: typeof $Enums.AttendanceStatus

export type AttendanceMode = $Enums.AttendanceMode

export const AttendanceMode: typeof $Enums.AttendanceMode

export type CheckinType = $Enums.CheckinType

export const CheckinType: typeof $Enums.CheckinType

export type LeaveType = $Enums.LeaveType

export const LeaveType: typeof $Enums.LeaveType

export type LeaveStatus = $Enums.LeaveStatus

export const LeaveStatus: typeof $Enums.LeaveStatus

export type OutlookMailboxType = $Enums.OutlookMailboxType

export const OutlookMailboxType: typeof $Enums.OutlookMailboxType

export type OutlookSubscriptionStatus = $Enums.OutlookSubscriptionStatus

export const OutlookSubscriptionStatus: typeof $Enums.OutlookSubscriptionStatus

export type OutlookManageStatus = $Enums.OutlookManageStatus

export const OutlookManageStatus: typeof $Enums.OutlookManageStatus

export type OutlookCancellationSource = $Enums.OutlookCancellationSource

export const OutlookCancellationSource: typeof $Enums.OutlookCancellationSource

export type OutlookBindingSyncMode = $Enums.OutlookBindingSyncMode

export const OutlookBindingSyncMode: typeof $Enums.OutlookBindingSyncMode

export type UploadTaskStatus = $Enums.UploadTaskStatus

export const UploadTaskStatus: typeof $Enums.UploadTaskStatus

export type MeetingAttachmentCategory = $Enums.MeetingAttachmentCategory

export const MeetingAttachmentCategory: typeof $Enums.MeetingAttachmentCategory

export type NotificationType = $Enums.NotificationType

export const NotificationType: typeof $Enums.NotificationType

export type NotificationStatus = $Enums.NotificationStatus

export const NotificationStatus: typeof $Enums.NotificationStatus

export type NotificationChannel = $Enums.NotificationChannel

export const NotificationChannel: typeof $Enums.NotificationChannel

export type NotificationSendStatus = $Enums.NotificationSendStatus

export const NotificationSendStatus: typeof $Enums.NotificationSendStatus

export type NotificationPriority = $Enums.NotificationPriority

export const NotificationPriority: typeof $Enums.NotificationPriority

export type M365UserActivityChangeField = $Enums.M365UserActivityChangeField

export const M365UserActivityChangeField: typeof $Enums.M365UserActivityChangeField

export type CycleType = $Enums.CycleType

export const CycleType: typeof $Enums.CycleType

export type CycleStatus = $Enums.CycleStatus

export const CycleStatus: typeof $Enums.CycleStatus

export type KpiAssignmentStatus = $Enums.KpiAssignmentStatus

export const KpiAssignmentStatus: typeof $Enums.KpiAssignmentStatus

export type KpiDependencyStatus = $Enums.KpiDependencyStatus

export const KpiDependencyStatus: typeof $Enums.KpiDependencyStatus

export type ResultConfirmStatus = $Enums.ResultConfirmStatus

export const ResultConfirmStatus: typeof $Enums.ResultConfirmStatus

export type KpiAssessmentStatus = $Enums.KpiAssessmentStatus

export const KpiAssessmentStatus: typeof $Enums.KpiAssessmentStatus

export type Evaluation360Status = $Enums.Evaluation360Status

export const Evaluation360Status: typeof $Enums.Evaluation360Status

export type EvaluationTaskStatus = $Enums.EvaluationTaskStatus

export const EvaluationTaskStatus: typeof $Enums.EvaluationTaskStatus

export type RelationType = $Enums.RelationType

export const RelationType: typeof $Enums.RelationType

export type SiteGeoPolicy = $Enums.SiteGeoPolicy

export const SiteGeoPolicy: typeof $Enums.SiteGeoPolicy

export type SiteEventType = $Enums.SiteEventType

export const SiteEventType: typeof $Enums.SiteEventType

export type SiteAuthMethod = $Enums.SiteAuthMethod

export const SiteAuthMethod: typeof $Enums.SiteAuthMethod

export type SiteGeoStatus = $Enums.SiteGeoStatus

export const SiteGeoStatus: typeof $Enums.SiteGeoStatus

export type SiteCheckpointAccessMode = $Enums.SiteCheckpointAccessMode

export const SiteCheckpointAccessMode: typeof $Enums.SiteCheckpointAccessMode

export type TicketStatus = $Enums.TicketStatus

export const TicketStatus: typeof $Enums.TicketStatus

export type TicketPriority = $Enums.TicketPriority

export const TicketPriority: typeof $Enums.TicketPriority

export type TicketSource = $Enums.TicketSource

export const TicketSource: typeof $Enums.TicketSource

export type CommentType = $Enums.CommentType

export const CommentType: typeof $Enums.CommentType

export type VisibilityScope = $Enums.VisibilityScope

export const VisibilityScope: typeof $Enums.VisibilityScope

export type ActivityType = $Enums.ActivityType

export const ActivityType: typeof $Enums.ActivityType

export type AssignmentStrategy = $Enums.AssignmentStrategy

export const AssignmentStrategy: typeof $Enums.AssignmentStrategy

export type RobotLifecycleStage = $Enums.RobotLifecycleStage

export const RobotLifecycleStage: typeof $Enums.RobotLifecycleStage

export type RobotUsageType = $Enums.RobotUsageType

export const RobotUsageType: typeof $Enums.RobotUsageType

export type RobotDisposalType = $Enums.RobotDisposalType

export const RobotDisposalType: typeof $Enums.RobotDisposalType

export type RobotPhysicalStatus = $Enums.RobotPhysicalStatus

export const RobotPhysicalStatus: typeof $Enums.RobotPhysicalStatus

export type RobotWarrantyStatus = $Enums.RobotWarrantyStatus

export const RobotWarrantyStatus: typeof $Enums.RobotWarrantyStatus

export type RobotLifecycleEventType = $Enums.RobotLifecycleEventType

export const RobotLifecycleEventType: typeof $Enums.RobotLifecycleEventType

export type RobotEventRelatedType = $Enums.RobotEventRelatedType

export const RobotEventRelatedType: typeof $Enums.RobotEventRelatedType

export type PurchaseOrderStatus = $Enums.PurchaseOrderStatus

export const PurchaseOrderStatus: typeof $Enums.PurchaseOrderStatus

export type SalesOrderStatus = $Enums.SalesOrderStatus

export const SalesOrderStatus: typeof $Enums.SalesOrderStatus

export type SalesContractStatus = $Enums.SalesContractStatus

export const SalesContractStatus: typeof $Enums.SalesContractStatus

export type SalesLineType = $Enums.SalesLineType

export const SalesLineType: typeof $Enums.SalesLineType

export type DeliveryRequestType = $Enums.DeliveryRequestType

export const DeliveryRequestType: typeof $Enums.DeliveryRequestType

export type DeliveryRequestStatus = $Enums.DeliveryRequestStatus

export const DeliveryRequestStatus: typeof $Enums.DeliveryRequestStatus

export type DeliveryFormStatus = $Enums.DeliveryFormStatus

export const DeliveryFormStatus: typeof $Enums.DeliveryFormStatus

export type RevenueRecognitionStatus = $Enums.RevenueRecognitionStatus

export const RevenueRecognitionStatus: typeof $Enums.RevenueRecognitionStatus

export type InvoiceStatus = $Enums.InvoiceStatus

export const InvoiceStatus: typeof $Enums.InvoiceStatus

export type PaymentRelatedType = $Enums.PaymentRelatedType

export const PaymentRelatedType: typeof $Enums.PaymentRelatedType

export type PaymentDirection = $Enums.PaymentDirection

export const PaymentDirection: typeof $Enums.PaymentDirection

export type PaymentMethod = $Enums.PaymentMethod

export const PaymentMethod: typeof $Enums.PaymentMethod

export type PaymentStatus = $Enums.PaymentStatus

export const PaymentStatus: typeof $Enums.PaymentStatus

export type PreDelContractStatus = $Enums.PreDelContractStatus

export const PreDelContractStatus: typeof $Enums.PreDelContractStatus

export type QualityLabelStatus = $Enums.QualityLabelStatus

export const QualityLabelStatus: typeof $Enums.QualityLabelStatus

export type LogisticsStatus = $Enums.LogisticsStatus

export const LogisticsStatus: typeof $Enums.LogisticsStatus

export type StickerStatus = $Enums.StickerStatus

export const StickerStatus: typeof $Enums.StickerStatus

export type FccStatus = $Enums.FccStatus

export const FccStatus: typeof $Enums.FccStatus

export type TicketSeverity = $Enums.TicketSeverity

export const TicketSeverity: typeof $Enums.TicketSeverity

export type ServiceTicketStatus = $Enums.ServiceTicketStatus

export const ServiceTicketStatus: typeof $Enums.ServiceTicketStatus

export type ServiceTicketActivityType = $Enums.ServiceTicketActivityType

export const ServiceTicketActivityType: typeof $Enums.ServiceTicketActivityType

export type RentalAgreementStatus = $Enums.RentalAgreementStatus

export const RentalAgreementStatus: typeof $Enums.RentalAgreementStatus

export type ImportRecordStatus = $Enums.ImportRecordStatus

export const ImportRecordStatus: typeof $Enums.ImportRecordStatus

export type ImportBatchType = $Enums.ImportBatchType

export const ImportBatchType: typeof $Enums.ImportBatchType

export type ImportBatchStatus = $Enums.ImportBatchStatus

export const ImportBatchStatus: typeof $Enums.ImportBatchStatus

export type ImportEntryStatus = $Enums.ImportEntryStatus

export const ImportEntryStatus: typeof $Enums.ImportEntryStatus

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

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

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

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

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

/**
   * Executes a prepared raw query and returns the number of affected rows.
   * @example
   * ```
   * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`
   * ```
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $executeRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;

  /**
   * Executes a raw query and returns the number of affected rows.
   * Susceptible to SQL injections, see documentation.
   * @example
   * ```
   * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com')
   * ```
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $executeRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;

  /**
   * Performs a prepared raw query and returns the `SELECT` data.
   * @example
   * ```
   * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`
   * ```
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $queryRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;

  /**
   * Performs a raw query and returns the `SELECT` data.
   * Susceptible to SQL injections, see documentation.
   * @example
   * ```
   * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com')
   * ```
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $queryRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;


  /**
   * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
   * @example
   * ```
   * const [george, bob, alice] = await prisma.$transaction([
   *   prisma.user.create({ data: { name: 'George' } }),
   *   prisma.user.create({ data: { name: 'Bob' } }),
   *   prisma.user.create({ data: { name: 'Alice' } }),
   * ])
   * ```
   * 
   * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions).
   */
  $transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /**
   * `prisma.importBatchEntry`: Exposes CRUD operations for the **ImportBatchEntry** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more ImportBatchEntries
    * const importBatchEntries = await prisma.importBatchEntry.findMany()
    * ```
    */
  get importBatchEntry(): Prisma.ImportBatchEntryDelegate<ExtArgs, ClientOptions>;
}

export namespace Prisma {
  export import DMMF = runtime.DMMF

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

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

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

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



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

  export type DecimalJsLike = runtime.DecimalJsLike

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

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

  /**
   * Prisma Client JS version: 6.19.3
   * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
   */
  export type PrismaVersion = {
    client: string
  }

  export const prismaVersion: PrismaVersion

  /**
   * Utility Types
   */


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

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

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

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

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

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

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

  type SelectAndInclude = {
    select: any
    include: any
  }

  type SelectAndOmit = {
    select: any
    omit: any
  }

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

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

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


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

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

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

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

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

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

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

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

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


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


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

  /**
   * From ts-toolbelt
   */

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

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

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

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

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

  export type Union = any

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /**
  0
  */
  export type False = 0

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

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

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

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

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

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

  export const type: unique symbol;



  /**
   * Used by group by
   */

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

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

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

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

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

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


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

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


  export const ModelName: {
    ApprovalDefinition: 'ApprovalDefinition',
    ApprovalVersion: 'ApprovalVersion',
    ApprovalInstance: 'ApprovalInstance',
    ApprovalNodeInstance: 'ApprovalNodeInstance',
    ApprovalTask: 'ApprovalTask',
    ApprovalTaskLog: 'ApprovalTaskLog',
    CallbackRetryQueue: 'CallbackRetryQueue',
    ReminderQueue: 'ReminderQueue',
    UserDelegationSetting: 'UserDelegationSetting',
    ApprovalAdminConfig: 'ApprovalAdminConfig',
    ApprovalAdminExport: 'ApprovalAdminExport',
    Organization: 'Organization',
    OrganizationRegion: 'OrganizationRegion',
    Region: 'Region',
    Department: 'Department',
    Position: 'Position',
    UserDepartment: 'UserDepartment',
    ExpenseRequest: 'ExpenseRequest',
    ExpenseItem: 'ExpenseItem',
    PurchaseRequest: 'PurchaseRequest',
    PurchaseItem: 'PurchaseItem',
    ContractRequest: 'ContractRequest',
    Part: 'Part',
    Station: 'Station',
    Warehouse: 'Warehouse',
    StorageLocation: 'StorageLocation',
    PartLabel: 'PartLabel',
    InventoryLog: 'InventoryLog',
    StockAlert: 'StockAlert',
    InventoryImportLog: 'InventoryImportLog',
    PartColumnConfig: 'PartColumnConfig',
    PartGroup: 'PartGroup',
    GroupCustomField: 'GroupCustomField',
    PartGroupRelation: 'PartGroupRelation',
    AIConversation: 'AIConversation',
    AIMessage: 'AIMessage',
    AIMessageFeedback: 'AIMessageFeedback',
    AIAssistantTicket: 'AIAssistantTicket',
    AIKnowledgeFix: 'AIKnowledgeFix',
    AIPromptTemplate: 'AIPromptTemplate',
    AIConfiguration: 'AIConfiguration',
    AIUsageStats: 'AIUsageStats',
    AgentSession: 'AgentSession',
    AgentMessage: 'AgentMessage',
    ModelRoutingRule: 'ModelRoutingRule',
    ModelRoutingDecision: 'ModelRoutingDecision',
    AgentTrajectoryEvent: 'AgentTrajectoryEvent',
    AgentQuota: 'AgentQuota',
    AgentQuotaUsage: 'AgentQuotaUsage',
    OrganizationAgentSettings: 'OrganizationAgentSettings',
    AgentArtifact: 'AgentArtifact',
    AgentTaskTracker: 'AgentTaskTracker',
    AgentScratchpad: 'AgentScratchpad',
    StorageBinding: 'StorageBinding',
    StorageFile: 'StorageFile',
    AgentProject: 'AgentProject',
    AgentMemory: 'AgentMemory',
    AgentPersona: 'AgentPersona',
    AgentCron: 'AgentCron',
    AgentMcpServer: 'AgentMcpServer',
    AiUsageToken: 'AiUsageToken',
    AiUsageDevice: 'AiUsageDevice',
    AiUsageEvent: 'AiUsageEvent',
    AiUsageEventDlq: 'AiUsageEventDlq',
    AiUsageDailyRollup: 'AiUsageDailyRollup',
    AuditLog: 'AuditLog',
    AuditDatabaseChangeLog: 'AuditDatabaseChangeLog',
    AuditSensitiveOperationLog: 'AuditSensitiveOperationLog',
    AuditIntegrityCheckLog: 'AuditIntegrityCheckLog',
    AutomationTask: 'AutomationTask',
    AutomationExecution: 'AutomationExecution',
    DingtalkSyncConfig: 'DingtalkSyncConfig',
    DingtalkLeaveCode: 'DingtalkLeaveCode',
    DingtalkLeaveQuotaSnapshot: 'DingtalkLeaveQuotaSnapshot',
    SapPurchaseSyncRecord: 'SapPurchaseSyncRecord',
    DingtalkEmployee: 'DingtalkEmployee',
    DingtalkEmployeeEmploymentPeriod: 'DingtalkEmployeeEmploymentPeriod',
    DingtalkEmployeeSuspensionPeriod: 'DingtalkEmployeeSuspensionPeriod',
    SapPurchaseCache: 'SapPurchaseCache',
    AdpPtoSchedule: 'AdpPtoSchedule',
    DingtalkAnnualLeaveReleasePlan: 'DingtalkAnnualLeaveReleasePlan',
    DevItem: 'DevItem',
    DevItemSequence: 'DevItemSequence',
    ReleaseNote: 'ReleaseNote',
    Feedback: 'Feedback',
    FormDefinition: 'FormDefinition',
    FormVersion: 'FormVersion',
    FormInstance: 'FormInstance',
    FormTranslation: 'FormTranslation',
    FormTemplate: 'FormTemplate',
    ReleaseSnapshot: 'ReleaseSnapshot',
    FormWebhook: 'FormWebhook',
    FormWebhookLog: 'FormWebhookLog',
    User: 'User',
    Role: 'Role',
    Permission: 'Permission',
    WorkflowRole: 'WorkflowRole',
    WorkflowRoleUser: 'WorkflowRoleUser',
    UserRole: 'UserRole',
    RolePermission: 'RolePermission',
    DataScope: 'DataScope',
    RoleDataScope: 'RoleDataScope',
    AIToolGrant: 'AIToolGrant',
    AIToolGrantUser: 'AIToolGrantUser',
    PermissionDelegation: 'PermissionDelegation',
    FieldPermission: 'FieldPermission',
    IamAuditLog: 'IamAuditLog',
    EmployeeSlugBinding: 'EmployeeSlugBinding',
    InternalApp: 'InternalApp',
    InternalAppDeployment: 'InternalAppDeployment',
    InternalAppEnvVar: 'InternalAppEnvVar',
    InternalAppEmployeeToken: 'InternalAppEmployeeToken',
    InternalAppEvent: 'InternalAppEvent',
    KnowledgeArticle: 'KnowledgeArticle',
    SPDocumentIndex: 'SPDocumentIndex',
    SPFolderIndex: 'SPFolderIndex',
    RagflowDocument: 'RagflowDocument',
    AIQALog: 'AIQALog',
    SearchLog: 'SearchLog',
    DocumentView: 'DocumentView',
    DocumentLike: 'DocumentLike',
    DocumentComment: 'DocumentComment',
    UserMention: 'UserMention',
    SyncTask: 'SyncTask',
    SyncTaskSkippedItem: 'SyncTaskSkippedItem',
    SyncTaskProcessedItem: 'SyncTaskProcessedItem',
    SyncTaskFailedItem: 'SyncTaskFailedItem',
    SharePointSyncCursor: 'SharePointSyncCursor',
    WebhookSubscription: 'WebhookSubscription',
    SystemLog: 'SystemLog',
    LogConfig: 'LogConfig',
    LogAlert: 'LogAlert',
    LogCleanupRecord: 'LogCleanupRecord',
    Customer: 'Customer',
    CustomerContact: 'CustomerContact',
    CustomerAddress: 'CustomerAddress',
    Supplier: 'Supplier',
    SupplierContact: 'SupplierContact',
    Partner: 'Partner',
    PartnerContact: 'PartnerContact',
    Location: 'Location',
    Attachment: 'Attachment',
    Currency: 'Currency',
    Country: 'Country',
    GeoRegion: 'GeoRegion',
    UnitOfMeasure: 'UnitOfMeasure',
    Dictionary: 'Dictionary',
    Meeting: 'Meeting',
    MeetingSeries: 'MeetingSeries',
    MeetingAttendance: 'MeetingAttendance',
    MeetingRequiredAttendee: 'MeetingRequiredAttendee',
    MeetingSeriesAttendeePreference: 'MeetingSeriesAttendeePreference',
    MeetingSeriesAttendeeException: 'MeetingSeriesAttendeeException',
    MeetingExternalAttendee: 'MeetingExternalAttendee',
    MeetingTemplate: 'MeetingTemplate',
    MeetingTemplateAttendee: 'MeetingTemplateAttendee',
    MeetingAttendanceLeaveRecord: 'MeetingAttendanceLeaveRecord',
    MeetingAttendanceAuditLog: 'MeetingAttendanceAuditLog',
    MeetingAttendanceDataAccessLog: 'MeetingAttendanceDataAccessLog',
    MeetingAttendanceAuditAlertRule: 'MeetingAttendanceAuditAlertRule',
    MeetingAttendanceAuditAlert: 'MeetingAttendanceAuditAlert',
    MeetingAttendanceRetentionPolicy: 'MeetingAttendanceRetentionPolicy',
    OutlookSyncMailbox: 'OutlookSyncMailbox',
    OutlookSubscription: 'OutlookSubscription',
    OutlookMeetingBinding: 'OutlookMeetingBinding',
    OutlookSeriesOccurrenceExclusion: 'OutlookSeriesOccurrenceExclusion',
    OutlookSyncEventLog: 'OutlookSyncEventLog',
    OutlookEventSourceVersion: 'OutlookEventSourceVersion',
    OutlookEventSyncDiff: 'OutlookEventSyncDiff',
    OutlookSyncCursor: 'OutlookSyncCursor',
    OutlookEventSnapshot: 'OutlookEventSnapshot',
    OutlookSyncSetting: 'OutlookSyncSetting',
    MeetingAgendaSection: 'MeetingAgendaSection',
    MeetingAgendaItem: 'MeetingAgendaItem',
    MeetingAgendaItemUploadTask: 'MeetingAgendaItemUploadTask',
    MeetingAgendaItemAttachment: 'MeetingAgendaItemAttachment',
    MeetingAttachment: 'MeetingAttachment',
    NotificationMessage: 'NotificationMessage',
    NotificationPreference: 'NotificationPreference',
    NotificationTemplate: 'NotificationTemplate',
    NotificationLog: 'NotificationLog',
    M365User: 'M365User',
    M365UserActivityChange: 'M365UserActivityChange',
    GradeConfig: 'GradeConfig',
    PerformanceCycle: 'PerformanceCycle',
    PerformanceResult: 'PerformanceResult',
    KpiAssignment: 'KpiAssignment',
    KpiDependency: 'KpiDependency',
    KpiAssessment: 'KpiAssessment',
    Evaluation360: 'Evaluation360',
    EvaluationTask: 'EvaluationTask',
    EvaluationResponse: 'EvaluationResponse',
    GradeAdjustmentLog: 'GradeAdjustmentLog',
    StrategicObjective: 'StrategicObjective',
    StrategicObjectiveAssignment: 'StrategicObjectiveAssignment',
    Evaluation360Template: 'Evaluation360Template',
    SiteCheckpoint: 'SiteCheckpoint',
    SharedCheckinPartner: 'SharedCheckinPartner',
    SharedCheckinTicketUsage: 'SharedCheckinTicketUsage',
    SiteAttendanceEvent: 'SiteAttendanceEvent',
    SiteDailySummary: 'SiteDailySummary',
    Ticket: 'Ticket',
    TicketCategory: 'TicketCategory',
    TicketComment: 'TicketComment',
    TicketAttachment: 'TicketAttachment',
    TicketActivity: 'TicketActivity',
    TicketSLA: 'TicketSLA',
    AssignmentGroup: 'AssignmentGroup',
    RobotModel: 'RobotModel',
    RobotSku: 'RobotSku',
    RobotSystemConfig: 'RobotSystemConfig',
    RobotUnit: 'RobotUnit',
    RobotUnitSnapshot: 'RobotUnitSnapshot',
    RobotLifecycleEvent: 'RobotLifecycleEvent',
    PurchaseOrder: 'PurchaseOrder',
    PurchaseOrderLine: 'PurchaseOrderLine',
    SalesOrder: 'SalesOrder',
    SalesOrderLine: 'SalesOrderLine',
    DeliveryRequest: 'DeliveryRequest',
    DeliveryFulfillment: 'DeliveryFulfillment',
    PaymentRecord: 'PaymentRecord',
    QualityLabelRecord: 'QualityLabelRecord',
    RobotPackageReadiness: 'RobotPackageReadiness',
    InspectionRecord: 'InspectionRecord',
    LogisticsLeg: 'LogisticsLeg',
    ComplianceCheck: 'ComplianceCheck',
    RentalAgreement: 'RentalAgreement',
    RentalPaymentSchedule: 'RentalPaymentSchedule',
    ServiceTicket: 'ServiceTicket',
    ServiceTicketActivity: 'ServiceTicketActivity',
    RobotImportAudit: 'RobotImportAudit',
    ImportBatch: 'ImportBatch',
    ImportBatchEntry: 'ImportBatchEntry'
  };

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


  export type Datasources = {
    db?: Datasource
  }

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

  export type TypeMap<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> = {
    globalOmitOptions: {
      omit: GlobalOmitOptions
    }
    meta: {
      modelProps: "approvalDefinition" | "approvalVersion" | "approvalInstance" | "approvalNodeInstance" | "approvalTask" | "approvalTaskLog" | "callbackRetryQueue" | "reminderQueue" | "userDelegationSetting" | "approvalAdminConfig" | "approvalAdminExport" | "organization" | "organizationRegion" | "region" | "department" | "position" | "userDepartment" | "expenseRequest" | "expenseItem" | "purchaseRequest" | "purchaseItem" | "contractRequest" | "part" | "station" | "warehouse" | "storageLocation" | "partLabel" | "inventoryLog" | "stockAlert" | "inventoryImportLog" | "partColumnConfig" | "partGroup" | "groupCustomField" | "partGroupRelation" | "aIConversation" | "aIMessage" | "aIMessageFeedback" | "aIAssistantTicket" | "aIKnowledgeFix" | "aIPromptTemplate" | "aIConfiguration" | "aIUsageStats" | "agentSession" | "agentMessage" | "modelRoutingRule" | "modelRoutingDecision" | "agentTrajectoryEvent" | "agentQuota" | "agentQuotaUsage" | "organizationAgentSettings" | "agentArtifact" | "agentTaskTracker" | "agentScratchpad" | "storageBinding" | "storageFile" | "agentProject" | "agentMemory" | "agentPersona" | "agentCron" | "agentMcpServer" | "aiUsageToken" | "aiUsageDevice" | "aiUsageEvent" | "aiUsageEventDlq" | "aiUsageDailyRollup" | "auditLog" | "auditDatabaseChangeLog" | "auditSensitiveOperationLog" | "auditIntegrityCheckLog" | "automationTask" | "automationExecution" | "dingtalkSyncConfig" | "dingtalkLeaveCode" | "dingtalkLeaveQuotaSnapshot" | "sapPurchaseSyncRecord" | "dingtalkEmployee" | "dingtalkEmployeeEmploymentPeriod" | "dingtalkEmployeeSuspensionPeriod" | "sapPurchaseCache" | "adpPtoSchedule" | "dingtalkAnnualLeaveReleasePlan" | "devItem" | "devItemSequence" | "releaseNote" | "feedback" | "formDefinition" | "formVersion" | "formInstance" | "formTranslation" | "formTemplate" | "releaseSnapshot" | "formWebhook" | "formWebhookLog" | "user" | "role" | "permission" | "workflowRole" | "workflowRoleUser" | "userRole" | "rolePermission" | "dataScope" | "roleDataScope" | "aIToolGrant" | "aIToolGrantUser" | "permissionDelegation" | "fieldPermission" | "iamAuditLog" | "employeeSlugBinding" | "internalApp" | "internalAppDeployment" | "internalAppEnvVar" | "internalAppEmployeeToken" | "internalAppEvent" | "knowledgeArticle" | "sPDocumentIndex" | "sPFolderIndex" | "ragflowDocument" | "aIQALog" | "searchLog" | "documentView" | "documentLike" | "documentComment" | "userMention" | "syncTask" | "syncTaskSkippedItem" | "syncTaskProcessedItem" | "syncTaskFailedItem" | "sharePointSyncCursor" | "webhookSubscription" | "systemLog" | "logConfig" | "logAlert" | "logCleanupRecord" | "customer" | "customerContact" | "customerAddress" | "supplier" | "supplierContact" | "partner" | "partnerContact" | "location" | "attachment" | "currency" | "country" | "geoRegion" | "unitOfMeasure" | "dictionary" | "meeting" | "meetingSeries" | "meetingAttendance" | "meetingRequiredAttendee" | "meetingSeriesAttendeePreference" | "meetingSeriesAttendeeException" | "meetingExternalAttendee" | "meetingTemplate" | "meetingTemplateAttendee" | "meetingAttendanceLeaveRecord" | "meetingAttendanceAuditLog" | "meetingAttendanceDataAccessLog" | "meetingAttendanceAuditAlertRule" | "meetingAttendanceAuditAlert" | "meetingAttendanceRetentionPolicy" | "outlookSyncMailbox" | "outlookSubscription" | "outlookMeetingBinding" | "outlookSeriesOccurrenceExclusion" | "outlookSyncEventLog" | "outlookEventSourceVersion" | "outlookEventSyncDiff" | "outlookSyncCursor" | "outlookEventSnapshot" | "outlookSyncSetting" | "meetingAgendaSection" | "meetingAgendaItem" | "meetingAgendaItemUploadTask" | "meetingAgendaItemAttachment" | "meetingAttachment" | "notificationMessage" | "notificationPreference" | "notificationTemplate" | "notificationLog" | "m365User" | "m365UserActivityChange" | "gradeConfig" | "performanceCycle" | "performanceResult" | "kpiAssignment" | "kpiDependency" | "kpiAssessment" | "evaluation360" | "evaluationTask" | "evaluationResponse" | "gradeAdjustmentLog" | "strategicObjective" | "strategicObjectiveAssignment" | "evaluation360Template" | "siteCheckpoint" | "sharedCheckinPartner" | "sharedCheckinTicketUsage" | "siteAttendanceEvent" | "siteDailySummary" | "ticket" | "ticketCategory" | "ticketComment" | "ticketAttachment" | "ticketActivity" | "ticketSLA" | "assignmentGroup" | "robotModel" | "robotSku" | "robotSystemConfig" | "robotUnit" | "robotUnitSnapshot" | "robotLifecycleEvent" | "purchaseOrder" | "purchaseOrderLine" | "salesOrder" | "salesOrderLine" | "deliveryRequest" | "deliveryFulfillment" | "paymentRecord" | "qualityLabelRecord" | "robotPackageReadiness" | "inspectionRecord" | "logisticsLeg" | "complianceCheck" | "rentalAgreement" | "rentalPaymentSchedule" | "serviceTicket" | "serviceTicketActivity" | "robotImportAudit" | "importBatch" | "importBatchEntry"
      txIsolationLevel: Prisma.TransactionIsolationLevel
    }
    model: {
      ApprovalDefinition: {
        payload: Prisma.$ApprovalDefinitionPayload<ExtArgs>
        fields: Prisma.ApprovalDefinitionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApprovalDefinitionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApprovalDefinitionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>
          }
          findFirst: {
            args: Prisma.ApprovalDefinitionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApprovalDefinitionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>
          }
          findMany: {
            args: Prisma.ApprovalDefinitionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>[]
          }
          create: {
            args: Prisma.ApprovalDefinitionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>
          }
          createMany: {
            args: Prisma.ApprovalDefinitionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApprovalDefinitionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>[]
          }
          delete: {
            args: Prisma.ApprovalDefinitionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>
          }
          update: {
            args: Prisma.ApprovalDefinitionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>
          }
          deleteMany: {
            args: Prisma.ApprovalDefinitionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApprovalDefinitionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApprovalDefinitionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>[]
          }
          upsert: {
            args: Prisma.ApprovalDefinitionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalDefinitionPayload>
          }
          aggregate: {
            args: Prisma.ApprovalDefinitionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApprovalDefinition>
          }
          groupBy: {
            args: Prisma.ApprovalDefinitionGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApprovalDefinitionGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApprovalDefinitionCountArgs<ExtArgs>
            result: $Utils.Optional<ApprovalDefinitionCountAggregateOutputType> | number
          }
        }
      }
      ApprovalVersion: {
        payload: Prisma.$ApprovalVersionPayload<ExtArgs>
        fields: Prisma.ApprovalVersionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApprovalVersionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApprovalVersionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>
          }
          findFirst: {
            args: Prisma.ApprovalVersionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApprovalVersionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>
          }
          findMany: {
            args: Prisma.ApprovalVersionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>[]
          }
          create: {
            args: Prisma.ApprovalVersionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>
          }
          createMany: {
            args: Prisma.ApprovalVersionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApprovalVersionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>[]
          }
          delete: {
            args: Prisma.ApprovalVersionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>
          }
          update: {
            args: Prisma.ApprovalVersionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>
          }
          deleteMany: {
            args: Prisma.ApprovalVersionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApprovalVersionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApprovalVersionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>[]
          }
          upsert: {
            args: Prisma.ApprovalVersionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalVersionPayload>
          }
          aggregate: {
            args: Prisma.ApprovalVersionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApprovalVersion>
          }
          groupBy: {
            args: Prisma.ApprovalVersionGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApprovalVersionGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApprovalVersionCountArgs<ExtArgs>
            result: $Utils.Optional<ApprovalVersionCountAggregateOutputType> | number
          }
        }
      }
      ApprovalInstance: {
        payload: Prisma.$ApprovalInstancePayload<ExtArgs>
        fields: Prisma.ApprovalInstanceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApprovalInstanceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApprovalInstanceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>
          }
          findFirst: {
            args: Prisma.ApprovalInstanceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApprovalInstanceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>
          }
          findMany: {
            args: Prisma.ApprovalInstanceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>[]
          }
          create: {
            args: Prisma.ApprovalInstanceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>
          }
          createMany: {
            args: Prisma.ApprovalInstanceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApprovalInstanceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>[]
          }
          delete: {
            args: Prisma.ApprovalInstanceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>
          }
          update: {
            args: Prisma.ApprovalInstanceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>
          }
          deleteMany: {
            args: Prisma.ApprovalInstanceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApprovalInstanceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApprovalInstanceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>[]
          }
          upsert: {
            args: Prisma.ApprovalInstanceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalInstancePayload>
          }
          aggregate: {
            args: Prisma.ApprovalInstanceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApprovalInstance>
          }
          groupBy: {
            args: Prisma.ApprovalInstanceGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApprovalInstanceGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApprovalInstanceCountArgs<ExtArgs>
            result: $Utils.Optional<ApprovalInstanceCountAggregateOutputType> | number
          }
        }
      }
      ApprovalNodeInstance: {
        payload: Prisma.$ApprovalNodeInstancePayload<ExtArgs>
        fields: Prisma.ApprovalNodeInstanceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApprovalNodeInstanceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApprovalNodeInstanceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>
          }
          findFirst: {
            args: Prisma.ApprovalNodeInstanceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApprovalNodeInstanceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>
          }
          findMany: {
            args: Prisma.ApprovalNodeInstanceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>[]
          }
          create: {
            args: Prisma.ApprovalNodeInstanceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>
          }
          createMany: {
            args: Prisma.ApprovalNodeInstanceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApprovalNodeInstanceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>[]
          }
          delete: {
            args: Prisma.ApprovalNodeInstanceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>
          }
          update: {
            args: Prisma.ApprovalNodeInstanceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>
          }
          deleteMany: {
            args: Prisma.ApprovalNodeInstanceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApprovalNodeInstanceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApprovalNodeInstanceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>[]
          }
          upsert: {
            args: Prisma.ApprovalNodeInstanceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalNodeInstancePayload>
          }
          aggregate: {
            args: Prisma.ApprovalNodeInstanceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApprovalNodeInstance>
          }
          groupBy: {
            args: Prisma.ApprovalNodeInstanceGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApprovalNodeInstanceGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApprovalNodeInstanceCountArgs<ExtArgs>
            result: $Utils.Optional<ApprovalNodeInstanceCountAggregateOutputType> | number
          }
        }
      }
      ApprovalTask: {
        payload: Prisma.$ApprovalTaskPayload<ExtArgs>
        fields: Prisma.ApprovalTaskFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApprovalTaskFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApprovalTaskFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>
          }
          findFirst: {
            args: Prisma.ApprovalTaskFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApprovalTaskFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>
          }
          findMany: {
            args: Prisma.ApprovalTaskFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>[]
          }
          create: {
            args: Prisma.ApprovalTaskCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>
          }
          createMany: {
            args: Prisma.ApprovalTaskCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApprovalTaskCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>[]
          }
          delete: {
            args: Prisma.ApprovalTaskDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>
          }
          update: {
            args: Prisma.ApprovalTaskUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>
          }
          deleteMany: {
            args: Prisma.ApprovalTaskDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApprovalTaskUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApprovalTaskUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>[]
          }
          upsert: {
            args: Prisma.ApprovalTaskUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskPayload>
          }
          aggregate: {
            args: Prisma.ApprovalTaskAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApprovalTask>
          }
          groupBy: {
            args: Prisma.ApprovalTaskGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApprovalTaskGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApprovalTaskCountArgs<ExtArgs>
            result: $Utils.Optional<ApprovalTaskCountAggregateOutputType> | number
          }
        }
      }
      ApprovalTaskLog: {
        payload: Prisma.$ApprovalTaskLogPayload<ExtArgs>
        fields: Prisma.ApprovalTaskLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApprovalTaskLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApprovalTaskLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>
          }
          findFirst: {
            args: Prisma.ApprovalTaskLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApprovalTaskLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>
          }
          findMany: {
            args: Prisma.ApprovalTaskLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>[]
          }
          create: {
            args: Prisma.ApprovalTaskLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>
          }
          createMany: {
            args: Prisma.ApprovalTaskLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApprovalTaskLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>[]
          }
          delete: {
            args: Prisma.ApprovalTaskLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>
          }
          update: {
            args: Prisma.ApprovalTaskLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>
          }
          deleteMany: {
            args: Prisma.ApprovalTaskLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApprovalTaskLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApprovalTaskLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>[]
          }
          upsert: {
            args: Prisma.ApprovalTaskLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalTaskLogPayload>
          }
          aggregate: {
            args: Prisma.ApprovalTaskLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApprovalTaskLog>
          }
          groupBy: {
            args: Prisma.ApprovalTaskLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApprovalTaskLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApprovalTaskLogCountArgs<ExtArgs>
            result: $Utils.Optional<ApprovalTaskLogCountAggregateOutputType> | number
          }
        }
      }
      CallbackRetryQueue: {
        payload: Prisma.$CallbackRetryQueuePayload<ExtArgs>
        fields: Prisma.CallbackRetryQueueFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CallbackRetryQueueFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CallbackRetryQueueFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>
          }
          findFirst: {
            args: Prisma.CallbackRetryQueueFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CallbackRetryQueueFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>
          }
          findMany: {
            args: Prisma.CallbackRetryQueueFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>[]
          }
          create: {
            args: Prisma.CallbackRetryQueueCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>
          }
          createMany: {
            args: Prisma.CallbackRetryQueueCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CallbackRetryQueueCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>[]
          }
          delete: {
            args: Prisma.CallbackRetryQueueDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>
          }
          update: {
            args: Prisma.CallbackRetryQueueUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>
          }
          deleteMany: {
            args: Prisma.CallbackRetryQueueDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CallbackRetryQueueUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CallbackRetryQueueUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>[]
          }
          upsert: {
            args: Prisma.CallbackRetryQueueUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CallbackRetryQueuePayload>
          }
          aggregate: {
            args: Prisma.CallbackRetryQueueAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCallbackRetryQueue>
          }
          groupBy: {
            args: Prisma.CallbackRetryQueueGroupByArgs<ExtArgs>
            result: $Utils.Optional<CallbackRetryQueueGroupByOutputType>[]
          }
          count: {
            args: Prisma.CallbackRetryQueueCountArgs<ExtArgs>
            result: $Utils.Optional<CallbackRetryQueueCountAggregateOutputType> | number
          }
        }
      }
      ReminderQueue: {
        payload: Prisma.$ReminderQueuePayload<ExtArgs>
        fields: Prisma.ReminderQueueFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ReminderQueueFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ReminderQueueFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>
          }
          findFirst: {
            args: Prisma.ReminderQueueFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ReminderQueueFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>
          }
          findMany: {
            args: Prisma.ReminderQueueFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>[]
          }
          create: {
            args: Prisma.ReminderQueueCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>
          }
          createMany: {
            args: Prisma.ReminderQueueCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ReminderQueueCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>[]
          }
          delete: {
            args: Prisma.ReminderQueueDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>
          }
          update: {
            args: Prisma.ReminderQueueUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>
          }
          deleteMany: {
            args: Prisma.ReminderQueueDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ReminderQueueUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ReminderQueueUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>[]
          }
          upsert: {
            args: Prisma.ReminderQueueUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReminderQueuePayload>
          }
          aggregate: {
            args: Prisma.ReminderQueueAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateReminderQueue>
          }
          groupBy: {
            args: Prisma.ReminderQueueGroupByArgs<ExtArgs>
            result: $Utils.Optional<ReminderQueueGroupByOutputType>[]
          }
          count: {
            args: Prisma.ReminderQueueCountArgs<ExtArgs>
            result: $Utils.Optional<ReminderQueueCountAggregateOutputType> | number
          }
        }
      }
      UserDelegationSetting: {
        payload: Prisma.$UserDelegationSettingPayload<ExtArgs>
        fields: Prisma.UserDelegationSettingFieldRefs
        operations: {
          findUnique: {
            args: Prisma.UserDelegationSettingFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.UserDelegationSettingFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>
          }
          findFirst: {
            args: Prisma.UserDelegationSettingFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.UserDelegationSettingFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>
          }
          findMany: {
            args: Prisma.UserDelegationSettingFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>[]
          }
          create: {
            args: Prisma.UserDelegationSettingCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>
          }
          createMany: {
            args: Prisma.UserDelegationSettingCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.UserDelegationSettingCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>[]
          }
          delete: {
            args: Prisma.UserDelegationSettingDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>
          }
          update: {
            args: Prisma.UserDelegationSettingUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>
          }
          deleteMany: {
            args: Prisma.UserDelegationSettingDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.UserDelegationSettingUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.UserDelegationSettingUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>[]
          }
          upsert: {
            args: Prisma.UserDelegationSettingUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDelegationSettingPayload>
          }
          aggregate: {
            args: Prisma.UserDelegationSettingAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateUserDelegationSetting>
          }
          groupBy: {
            args: Prisma.UserDelegationSettingGroupByArgs<ExtArgs>
            result: $Utils.Optional<UserDelegationSettingGroupByOutputType>[]
          }
          count: {
            args: Prisma.UserDelegationSettingCountArgs<ExtArgs>
            result: $Utils.Optional<UserDelegationSettingCountAggregateOutputType> | number
          }
        }
      }
      ApprovalAdminConfig: {
        payload: Prisma.$ApprovalAdminConfigPayload<ExtArgs>
        fields: Prisma.ApprovalAdminConfigFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApprovalAdminConfigFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApprovalAdminConfigFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>
          }
          findFirst: {
            args: Prisma.ApprovalAdminConfigFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApprovalAdminConfigFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>
          }
          findMany: {
            args: Prisma.ApprovalAdminConfigFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>[]
          }
          create: {
            args: Prisma.ApprovalAdminConfigCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>
          }
          createMany: {
            args: Prisma.ApprovalAdminConfigCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApprovalAdminConfigCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>[]
          }
          delete: {
            args: Prisma.ApprovalAdminConfigDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>
          }
          update: {
            args: Prisma.ApprovalAdminConfigUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>
          }
          deleteMany: {
            args: Prisma.ApprovalAdminConfigDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApprovalAdminConfigUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApprovalAdminConfigUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>[]
          }
          upsert: {
            args: Prisma.ApprovalAdminConfigUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminConfigPayload>
          }
          aggregate: {
            args: Prisma.ApprovalAdminConfigAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApprovalAdminConfig>
          }
          groupBy: {
            args: Prisma.ApprovalAdminConfigGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApprovalAdminConfigGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApprovalAdminConfigCountArgs<ExtArgs>
            result: $Utils.Optional<ApprovalAdminConfigCountAggregateOutputType> | number
          }
        }
      }
      ApprovalAdminExport: {
        payload: Prisma.$ApprovalAdminExportPayload<ExtArgs>
        fields: Prisma.ApprovalAdminExportFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ApprovalAdminExportFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ApprovalAdminExportFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>
          }
          findFirst: {
            args: Prisma.ApprovalAdminExportFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ApprovalAdminExportFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>
          }
          findMany: {
            args: Prisma.ApprovalAdminExportFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>[]
          }
          create: {
            args: Prisma.ApprovalAdminExportCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>
          }
          createMany: {
            args: Prisma.ApprovalAdminExportCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ApprovalAdminExportCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>[]
          }
          delete: {
            args: Prisma.ApprovalAdminExportDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>
          }
          update: {
            args: Prisma.ApprovalAdminExportUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>
          }
          deleteMany: {
            args: Prisma.ApprovalAdminExportDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ApprovalAdminExportUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ApprovalAdminExportUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>[]
          }
          upsert: {
            args: Prisma.ApprovalAdminExportUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ApprovalAdminExportPayload>
          }
          aggregate: {
            args: Prisma.ApprovalAdminExportAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateApprovalAdminExport>
          }
          groupBy: {
            args: Prisma.ApprovalAdminExportGroupByArgs<ExtArgs>
            result: $Utils.Optional<ApprovalAdminExportGroupByOutputType>[]
          }
          count: {
            args: Prisma.ApprovalAdminExportCountArgs<ExtArgs>
            result: $Utils.Optional<ApprovalAdminExportCountAggregateOutputType> | number
          }
        }
      }
      Organization: {
        payload: Prisma.$OrganizationPayload<ExtArgs>
        fields: Prisma.OrganizationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OrganizationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OrganizationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          findFirst: {
            args: Prisma.OrganizationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OrganizationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          findMany: {
            args: Prisma.OrganizationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
          }
          create: {
            args: Prisma.OrganizationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          createMany: {
            args: Prisma.OrganizationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OrganizationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
          }
          delete: {
            args: Prisma.OrganizationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          update: {
            args: Prisma.OrganizationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          deleteMany: {
            args: Prisma.OrganizationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OrganizationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OrganizationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
          }
          upsert: {
            args: Prisma.OrganizationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationPayload>
          }
          aggregate: {
            args: Prisma.OrganizationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOrganization>
          }
          groupBy: {
            args: Prisma.OrganizationGroupByArgs<ExtArgs>
            result: $Utils.Optional<OrganizationGroupByOutputType>[]
          }
          count: {
            args: Prisma.OrganizationCountArgs<ExtArgs>
            result: $Utils.Optional<OrganizationCountAggregateOutputType> | number
          }
        }
      }
      OrganizationRegion: {
        payload: Prisma.$OrganizationRegionPayload<ExtArgs>
        fields: Prisma.OrganizationRegionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OrganizationRegionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OrganizationRegionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>
          }
          findFirst: {
            args: Prisma.OrganizationRegionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OrganizationRegionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>
          }
          findMany: {
            args: Prisma.OrganizationRegionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>[]
          }
          create: {
            args: Prisma.OrganizationRegionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>
          }
          createMany: {
            args: Prisma.OrganizationRegionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OrganizationRegionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>[]
          }
          delete: {
            args: Prisma.OrganizationRegionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>
          }
          update: {
            args: Prisma.OrganizationRegionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>
          }
          deleteMany: {
            args: Prisma.OrganizationRegionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OrganizationRegionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OrganizationRegionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>[]
          }
          upsert: {
            args: Prisma.OrganizationRegionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationRegionPayload>
          }
          aggregate: {
            args: Prisma.OrganizationRegionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOrganizationRegion>
          }
          groupBy: {
            args: Prisma.OrganizationRegionGroupByArgs<ExtArgs>
            result: $Utils.Optional<OrganizationRegionGroupByOutputType>[]
          }
          count: {
            args: Prisma.OrganizationRegionCountArgs<ExtArgs>
            result: $Utils.Optional<OrganizationRegionCountAggregateOutputType> | number
          }
        }
      }
      Region: {
        payload: Prisma.$RegionPayload<ExtArgs>
        fields: Prisma.RegionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RegionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RegionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>
          }
          findFirst: {
            args: Prisma.RegionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RegionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>
          }
          findMany: {
            args: Prisma.RegionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>[]
          }
          create: {
            args: Prisma.RegionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>
          }
          createMany: {
            args: Prisma.RegionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RegionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>[]
          }
          delete: {
            args: Prisma.RegionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>
          }
          update: {
            args: Prisma.RegionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>
          }
          deleteMany: {
            args: Prisma.RegionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RegionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RegionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>[]
          }
          upsert: {
            args: Prisma.RegionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RegionPayload>
          }
          aggregate: {
            args: Prisma.RegionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRegion>
          }
          groupBy: {
            args: Prisma.RegionGroupByArgs<ExtArgs>
            result: $Utils.Optional<RegionGroupByOutputType>[]
          }
          count: {
            args: Prisma.RegionCountArgs<ExtArgs>
            result: $Utils.Optional<RegionCountAggregateOutputType> | number
          }
        }
      }
      Department: {
        payload: Prisma.$DepartmentPayload<ExtArgs>
        fields: Prisma.DepartmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DepartmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DepartmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>
          }
          findFirst: {
            args: Prisma.DepartmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DepartmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>
          }
          findMany: {
            args: Prisma.DepartmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>[]
          }
          create: {
            args: Prisma.DepartmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>
          }
          createMany: {
            args: Prisma.DepartmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DepartmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>[]
          }
          delete: {
            args: Prisma.DepartmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>
          }
          update: {
            args: Prisma.DepartmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>
          }
          deleteMany: {
            args: Prisma.DepartmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DepartmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DepartmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>[]
          }
          upsert: {
            args: Prisma.DepartmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DepartmentPayload>
          }
          aggregate: {
            args: Prisma.DepartmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDepartment>
          }
          groupBy: {
            args: Prisma.DepartmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<DepartmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.DepartmentCountArgs<ExtArgs>
            result: $Utils.Optional<DepartmentCountAggregateOutputType> | number
          }
        }
      }
      Position: {
        payload: Prisma.$PositionPayload<ExtArgs>
        fields: Prisma.PositionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PositionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PositionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>
          }
          findFirst: {
            args: Prisma.PositionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PositionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>
          }
          findMany: {
            args: Prisma.PositionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>[]
          }
          create: {
            args: Prisma.PositionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>
          }
          createMany: {
            args: Prisma.PositionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PositionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>[]
          }
          delete: {
            args: Prisma.PositionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>
          }
          update: {
            args: Prisma.PositionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>
          }
          deleteMany: {
            args: Prisma.PositionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PositionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PositionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>[]
          }
          upsert: {
            args: Prisma.PositionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PositionPayload>
          }
          aggregate: {
            args: Prisma.PositionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePosition>
          }
          groupBy: {
            args: Prisma.PositionGroupByArgs<ExtArgs>
            result: $Utils.Optional<PositionGroupByOutputType>[]
          }
          count: {
            args: Prisma.PositionCountArgs<ExtArgs>
            result: $Utils.Optional<PositionCountAggregateOutputType> | number
          }
        }
      }
      UserDepartment: {
        payload: Prisma.$UserDepartmentPayload<ExtArgs>
        fields: Prisma.UserDepartmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.UserDepartmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.UserDepartmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>
          }
          findFirst: {
            args: Prisma.UserDepartmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.UserDepartmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>
          }
          findMany: {
            args: Prisma.UserDepartmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>[]
          }
          create: {
            args: Prisma.UserDepartmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>
          }
          createMany: {
            args: Prisma.UserDepartmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.UserDepartmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>[]
          }
          delete: {
            args: Prisma.UserDepartmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>
          }
          update: {
            args: Prisma.UserDepartmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>
          }
          deleteMany: {
            args: Prisma.UserDepartmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.UserDepartmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.UserDepartmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>[]
          }
          upsert: {
            args: Prisma.UserDepartmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserDepartmentPayload>
          }
          aggregate: {
            args: Prisma.UserDepartmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateUserDepartment>
          }
          groupBy: {
            args: Prisma.UserDepartmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<UserDepartmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.UserDepartmentCountArgs<ExtArgs>
            result: $Utils.Optional<UserDepartmentCountAggregateOutputType> | number
          }
        }
      }
      ExpenseRequest: {
        payload: Prisma.$ExpenseRequestPayload<ExtArgs>
        fields: Prisma.ExpenseRequestFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ExpenseRequestFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ExpenseRequestFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>
          }
          findFirst: {
            args: Prisma.ExpenseRequestFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ExpenseRequestFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>
          }
          findMany: {
            args: Prisma.ExpenseRequestFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>[]
          }
          create: {
            args: Prisma.ExpenseRequestCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>
          }
          createMany: {
            args: Prisma.ExpenseRequestCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ExpenseRequestCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>[]
          }
          delete: {
            args: Prisma.ExpenseRequestDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>
          }
          update: {
            args: Prisma.ExpenseRequestUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>
          }
          deleteMany: {
            args: Prisma.ExpenseRequestDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ExpenseRequestUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ExpenseRequestUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>[]
          }
          upsert: {
            args: Prisma.ExpenseRequestUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseRequestPayload>
          }
          aggregate: {
            args: Prisma.ExpenseRequestAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateExpenseRequest>
          }
          groupBy: {
            args: Prisma.ExpenseRequestGroupByArgs<ExtArgs>
            result: $Utils.Optional<ExpenseRequestGroupByOutputType>[]
          }
          count: {
            args: Prisma.ExpenseRequestCountArgs<ExtArgs>
            result: $Utils.Optional<ExpenseRequestCountAggregateOutputType> | number
          }
        }
      }
      ExpenseItem: {
        payload: Prisma.$ExpenseItemPayload<ExtArgs>
        fields: Prisma.ExpenseItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ExpenseItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ExpenseItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>
          }
          findFirst: {
            args: Prisma.ExpenseItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ExpenseItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>
          }
          findMany: {
            args: Prisma.ExpenseItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>[]
          }
          create: {
            args: Prisma.ExpenseItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>
          }
          createMany: {
            args: Prisma.ExpenseItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ExpenseItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>[]
          }
          delete: {
            args: Prisma.ExpenseItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>
          }
          update: {
            args: Prisma.ExpenseItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>
          }
          deleteMany: {
            args: Prisma.ExpenseItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ExpenseItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ExpenseItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>[]
          }
          upsert: {
            args: Prisma.ExpenseItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ExpenseItemPayload>
          }
          aggregate: {
            args: Prisma.ExpenseItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateExpenseItem>
          }
          groupBy: {
            args: Prisma.ExpenseItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<ExpenseItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.ExpenseItemCountArgs<ExtArgs>
            result: $Utils.Optional<ExpenseItemCountAggregateOutputType> | number
          }
        }
      }
      PurchaseRequest: {
        payload: Prisma.$PurchaseRequestPayload<ExtArgs>
        fields: Prisma.PurchaseRequestFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PurchaseRequestFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PurchaseRequestFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>
          }
          findFirst: {
            args: Prisma.PurchaseRequestFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PurchaseRequestFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>
          }
          findMany: {
            args: Prisma.PurchaseRequestFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>[]
          }
          create: {
            args: Prisma.PurchaseRequestCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>
          }
          createMany: {
            args: Prisma.PurchaseRequestCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PurchaseRequestCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>[]
          }
          delete: {
            args: Prisma.PurchaseRequestDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>
          }
          update: {
            args: Prisma.PurchaseRequestUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>
          }
          deleteMany: {
            args: Prisma.PurchaseRequestDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PurchaseRequestUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PurchaseRequestUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>[]
          }
          upsert: {
            args: Prisma.PurchaseRequestUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseRequestPayload>
          }
          aggregate: {
            args: Prisma.PurchaseRequestAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePurchaseRequest>
          }
          groupBy: {
            args: Prisma.PurchaseRequestGroupByArgs<ExtArgs>
            result: $Utils.Optional<PurchaseRequestGroupByOutputType>[]
          }
          count: {
            args: Prisma.PurchaseRequestCountArgs<ExtArgs>
            result: $Utils.Optional<PurchaseRequestCountAggregateOutputType> | number
          }
        }
      }
      PurchaseItem: {
        payload: Prisma.$PurchaseItemPayload<ExtArgs>
        fields: Prisma.PurchaseItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PurchaseItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PurchaseItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>
          }
          findFirst: {
            args: Prisma.PurchaseItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PurchaseItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>
          }
          findMany: {
            args: Prisma.PurchaseItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>[]
          }
          create: {
            args: Prisma.PurchaseItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>
          }
          createMany: {
            args: Prisma.PurchaseItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PurchaseItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>[]
          }
          delete: {
            args: Prisma.PurchaseItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>
          }
          update: {
            args: Prisma.PurchaseItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>
          }
          deleteMany: {
            args: Prisma.PurchaseItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PurchaseItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PurchaseItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>[]
          }
          upsert: {
            args: Prisma.PurchaseItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseItemPayload>
          }
          aggregate: {
            args: Prisma.PurchaseItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePurchaseItem>
          }
          groupBy: {
            args: Prisma.PurchaseItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<PurchaseItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.PurchaseItemCountArgs<ExtArgs>
            result: $Utils.Optional<PurchaseItemCountAggregateOutputType> | number
          }
        }
      }
      ContractRequest: {
        payload: Prisma.$ContractRequestPayload<ExtArgs>
        fields: Prisma.ContractRequestFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ContractRequestFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ContractRequestFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>
          }
          findFirst: {
            args: Prisma.ContractRequestFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ContractRequestFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>
          }
          findMany: {
            args: Prisma.ContractRequestFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>[]
          }
          create: {
            args: Prisma.ContractRequestCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>
          }
          createMany: {
            args: Prisma.ContractRequestCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ContractRequestCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>[]
          }
          delete: {
            args: Prisma.ContractRequestDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>
          }
          update: {
            args: Prisma.ContractRequestUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>
          }
          deleteMany: {
            args: Prisma.ContractRequestDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ContractRequestUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ContractRequestUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>[]
          }
          upsert: {
            args: Prisma.ContractRequestUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ContractRequestPayload>
          }
          aggregate: {
            args: Prisma.ContractRequestAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateContractRequest>
          }
          groupBy: {
            args: Prisma.ContractRequestGroupByArgs<ExtArgs>
            result: $Utils.Optional<ContractRequestGroupByOutputType>[]
          }
          count: {
            args: Prisma.ContractRequestCountArgs<ExtArgs>
            result: $Utils.Optional<ContractRequestCountAggregateOutputType> | number
          }
        }
      }
      Part: {
        payload: Prisma.$PartPayload<ExtArgs>
        fields: Prisma.PartFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PartFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PartFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>
          }
          findFirst: {
            args: Prisma.PartFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PartFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>
          }
          findMany: {
            args: Prisma.PartFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>[]
          }
          create: {
            args: Prisma.PartCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>
          }
          createMany: {
            args: Prisma.PartCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PartCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>[]
          }
          delete: {
            args: Prisma.PartDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>
          }
          update: {
            args: Prisma.PartUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>
          }
          deleteMany: {
            args: Prisma.PartDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PartUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PartUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>[]
          }
          upsert: {
            args: Prisma.PartUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartPayload>
          }
          aggregate: {
            args: Prisma.PartAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePart>
          }
          groupBy: {
            args: Prisma.PartGroupByArgs<ExtArgs>
            result: $Utils.Optional<PartGroupByOutputType>[]
          }
          count: {
            args: Prisma.PartCountArgs<ExtArgs>
            result: $Utils.Optional<PartCountAggregateOutputType> | number
          }
        }
      }
      Station: {
        payload: Prisma.$StationPayload<ExtArgs>
        fields: Prisma.StationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.StationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.StationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>
          }
          findFirst: {
            args: Prisma.StationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.StationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>
          }
          findMany: {
            args: Prisma.StationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>[]
          }
          create: {
            args: Prisma.StationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>
          }
          createMany: {
            args: Prisma.StationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.StationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>[]
          }
          delete: {
            args: Prisma.StationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>
          }
          update: {
            args: Prisma.StationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>
          }
          deleteMany: {
            args: Prisma.StationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.StationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.StationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>[]
          }
          upsert: {
            args: Prisma.StationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StationPayload>
          }
          aggregate: {
            args: Prisma.StationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateStation>
          }
          groupBy: {
            args: Prisma.StationGroupByArgs<ExtArgs>
            result: $Utils.Optional<StationGroupByOutputType>[]
          }
          count: {
            args: Prisma.StationCountArgs<ExtArgs>
            result: $Utils.Optional<StationCountAggregateOutputType> | number
          }
        }
      }
      Warehouse: {
        payload: Prisma.$WarehousePayload<ExtArgs>
        fields: Prisma.WarehouseFieldRefs
        operations: {
          findUnique: {
            args: Prisma.WarehouseFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.WarehouseFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>
          }
          findFirst: {
            args: Prisma.WarehouseFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.WarehouseFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>
          }
          findMany: {
            args: Prisma.WarehouseFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>[]
          }
          create: {
            args: Prisma.WarehouseCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>
          }
          createMany: {
            args: Prisma.WarehouseCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.WarehouseCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>[]
          }
          delete: {
            args: Prisma.WarehouseDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>
          }
          update: {
            args: Prisma.WarehouseUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>
          }
          deleteMany: {
            args: Prisma.WarehouseDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.WarehouseUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.WarehouseUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>[]
          }
          upsert: {
            args: Prisma.WarehouseUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WarehousePayload>
          }
          aggregate: {
            args: Prisma.WarehouseAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateWarehouse>
          }
          groupBy: {
            args: Prisma.WarehouseGroupByArgs<ExtArgs>
            result: $Utils.Optional<WarehouseGroupByOutputType>[]
          }
          count: {
            args: Prisma.WarehouseCountArgs<ExtArgs>
            result: $Utils.Optional<WarehouseCountAggregateOutputType> | number
          }
        }
      }
      StorageLocation: {
        payload: Prisma.$StorageLocationPayload<ExtArgs>
        fields: Prisma.StorageLocationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.StorageLocationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.StorageLocationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>
          }
          findFirst: {
            args: Prisma.StorageLocationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.StorageLocationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>
          }
          findMany: {
            args: Prisma.StorageLocationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>[]
          }
          create: {
            args: Prisma.StorageLocationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>
          }
          createMany: {
            args: Prisma.StorageLocationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.StorageLocationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>[]
          }
          delete: {
            args: Prisma.StorageLocationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>
          }
          update: {
            args: Prisma.StorageLocationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>
          }
          deleteMany: {
            args: Prisma.StorageLocationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.StorageLocationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.StorageLocationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>[]
          }
          upsert: {
            args: Prisma.StorageLocationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageLocationPayload>
          }
          aggregate: {
            args: Prisma.StorageLocationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateStorageLocation>
          }
          groupBy: {
            args: Prisma.StorageLocationGroupByArgs<ExtArgs>
            result: $Utils.Optional<StorageLocationGroupByOutputType>[]
          }
          count: {
            args: Prisma.StorageLocationCountArgs<ExtArgs>
            result: $Utils.Optional<StorageLocationCountAggregateOutputType> | number
          }
        }
      }
      PartLabel: {
        payload: Prisma.$PartLabelPayload<ExtArgs>
        fields: Prisma.PartLabelFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PartLabelFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PartLabelFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>
          }
          findFirst: {
            args: Prisma.PartLabelFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PartLabelFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>
          }
          findMany: {
            args: Prisma.PartLabelFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>[]
          }
          create: {
            args: Prisma.PartLabelCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>
          }
          createMany: {
            args: Prisma.PartLabelCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PartLabelCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>[]
          }
          delete: {
            args: Prisma.PartLabelDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>
          }
          update: {
            args: Prisma.PartLabelUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>
          }
          deleteMany: {
            args: Prisma.PartLabelDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PartLabelUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PartLabelUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>[]
          }
          upsert: {
            args: Prisma.PartLabelUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartLabelPayload>
          }
          aggregate: {
            args: Prisma.PartLabelAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePartLabel>
          }
          groupBy: {
            args: Prisma.PartLabelGroupByArgs<ExtArgs>
            result: $Utils.Optional<PartLabelGroupByOutputType>[]
          }
          count: {
            args: Prisma.PartLabelCountArgs<ExtArgs>
            result: $Utils.Optional<PartLabelCountAggregateOutputType> | number
          }
        }
      }
      InventoryLog: {
        payload: Prisma.$InventoryLogPayload<ExtArgs>
        fields: Prisma.InventoryLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.InventoryLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.InventoryLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>
          }
          findFirst: {
            args: Prisma.InventoryLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.InventoryLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>
          }
          findMany: {
            args: Prisma.InventoryLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>[]
          }
          create: {
            args: Prisma.InventoryLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>
          }
          createMany: {
            args: Prisma.InventoryLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.InventoryLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>[]
          }
          delete: {
            args: Prisma.InventoryLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>
          }
          update: {
            args: Prisma.InventoryLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>
          }
          deleteMany: {
            args: Prisma.InventoryLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.InventoryLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.InventoryLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>[]
          }
          upsert: {
            args: Prisma.InventoryLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryLogPayload>
          }
          aggregate: {
            args: Prisma.InventoryLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateInventoryLog>
          }
          groupBy: {
            args: Prisma.InventoryLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<InventoryLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.InventoryLogCountArgs<ExtArgs>
            result: $Utils.Optional<InventoryLogCountAggregateOutputType> | number
          }
        }
      }
      StockAlert: {
        payload: Prisma.$StockAlertPayload<ExtArgs>
        fields: Prisma.StockAlertFieldRefs
        operations: {
          findUnique: {
            args: Prisma.StockAlertFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.StockAlertFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>
          }
          findFirst: {
            args: Prisma.StockAlertFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.StockAlertFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>
          }
          findMany: {
            args: Prisma.StockAlertFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>[]
          }
          create: {
            args: Prisma.StockAlertCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>
          }
          createMany: {
            args: Prisma.StockAlertCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.StockAlertCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>[]
          }
          delete: {
            args: Prisma.StockAlertDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>
          }
          update: {
            args: Prisma.StockAlertUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>
          }
          deleteMany: {
            args: Prisma.StockAlertDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.StockAlertUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.StockAlertUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>[]
          }
          upsert: {
            args: Prisma.StockAlertUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StockAlertPayload>
          }
          aggregate: {
            args: Prisma.StockAlertAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateStockAlert>
          }
          groupBy: {
            args: Prisma.StockAlertGroupByArgs<ExtArgs>
            result: $Utils.Optional<StockAlertGroupByOutputType>[]
          }
          count: {
            args: Prisma.StockAlertCountArgs<ExtArgs>
            result: $Utils.Optional<StockAlertCountAggregateOutputType> | number
          }
        }
      }
      InventoryImportLog: {
        payload: Prisma.$InventoryImportLogPayload<ExtArgs>
        fields: Prisma.InventoryImportLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.InventoryImportLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.InventoryImportLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>
          }
          findFirst: {
            args: Prisma.InventoryImportLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.InventoryImportLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>
          }
          findMany: {
            args: Prisma.InventoryImportLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>[]
          }
          create: {
            args: Prisma.InventoryImportLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>
          }
          createMany: {
            args: Prisma.InventoryImportLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.InventoryImportLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>[]
          }
          delete: {
            args: Prisma.InventoryImportLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>
          }
          update: {
            args: Prisma.InventoryImportLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>
          }
          deleteMany: {
            args: Prisma.InventoryImportLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.InventoryImportLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.InventoryImportLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>[]
          }
          upsert: {
            args: Prisma.InventoryImportLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InventoryImportLogPayload>
          }
          aggregate: {
            args: Prisma.InventoryImportLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateInventoryImportLog>
          }
          groupBy: {
            args: Prisma.InventoryImportLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<InventoryImportLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.InventoryImportLogCountArgs<ExtArgs>
            result: $Utils.Optional<InventoryImportLogCountAggregateOutputType> | number
          }
        }
      }
      PartColumnConfig: {
        payload: Prisma.$PartColumnConfigPayload<ExtArgs>
        fields: Prisma.PartColumnConfigFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PartColumnConfigFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PartColumnConfigFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>
          }
          findFirst: {
            args: Prisma.PartColumnConfigFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PartColumnConfigFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>
          }
          findMany: {
            args: Prisma.PartColumnConfigFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>[]
          }
          create: {
            args: Prisma.PartColumnConfigCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>
          }
          createMany: {
            args: Prisma.PartColumnConfigCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PartColumnConfigCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>[]
          }
          delete: {
            args: Prisma.PartColumnConfigDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>
          }
          update: {
            args: Prisma.PartColumnConfigUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>
          }
          deleteMany: {
            args: Prisma.PartColumnConfigDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PartColumnConfigUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PartColumnConfigUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>[]
          }
          upsert: {
            args: Prisma.PartColumnConfigUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartColumnConfigPayload>
          }
          aggregate: {
            args: Prisma.PartColumnConfigAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePartColumnConfig>
          }
          groupBy: {
            args: Prisma.PartColumnConfigGroupByArgs<ExtArgs>
            result: $Utils.Optional<PartColumnConfigGroupByOutputType>[]
          }
          count: {
            args: Prisma.PartColumnConfigCountArgs<ExtArgs>
            result: $Utils.Optional<PartColumnConfigCountAggregateOutputType> | number
          }
        }
      }
      PartGroup: {
        payload: Prisma.$PartGroupPayload<ExtArgs>
        fields: Prisma.PartGroupFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PartGroupFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PartGroupFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>
          }
          findFirst: {
            args: Prisma.PartGroupFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PartGroupFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>
          }
          findMany: {
            args: Prisma.PartGroupFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>[]
          }
          create: {
            args: Prisma.PartGroupCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>
          }
          createMany: {
            args: Prisma.PartGroupCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PartGroupCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>[]
          }
          delete: {
            args: Prisma.PartGroupDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>
          }
          update: {
            args: Prisma.PartGroupUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>
          }
          deleteMany: {
            args: Prisma.PartGroupDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PartGroupUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PartGroupUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>[]
          }
          upsert: {
            args: Prisma.PartGroupUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupPayload>
          }
          aggregate: {
            args: Prisma.PartGroupAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePartGroup>
          }
          groupBy: {
            args: Prisma.PartGroupGroupByArgs<ExtArgs>
            result: $Utils.Optional<PartGroupGroupByOutputType>[]
          }
          count: {
            args: Prisma.PartGroupCountArgs<ExtArgs>
            result: $Utils.Optional<PartGroupCountAggregateOutputType> | number
          }
        }
      }
      GroupCustomField: {
        payload: Prisma.$GroupCustomFieldPayload<ExtArgs>
        fields: Prisma.GroupCustomFieldFieldRefs
        operations: {
          findUnique: {
            args: Prisma.GroupCustomFieldFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.GroupCustomFieldFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>
          }
          findFirst: {
            args: Prisma.GroupCustomFieldFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.GroupCustomFieldFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>
          }
          findMany: {
            args: Prisma.GroupCustomFieldFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>[]
          }
          create: {
            args: Prisma.GroupCustomFieldCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>
          }
          createMany: {
            args: Prisma.GroupCustomFieldCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.GroupCustomFieldCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>[]
          }
          delete: {
            args: Prisma.GroupCustomFieldDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>
          }
          update: {
            args: Prisma.GroupCustomFieldUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>
          }
          deleteMany: {
            args: Prisma.GroupCustomFieldDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.GroupCustomFieldUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.GroupCustomFieldUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>[]
          }
          upsert: {
            args: Prisma.GroupCustomFieldUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GroupCustomFieldPayload>
          }
          aggregate: {
            args: Prisma.GroupCustomFieldAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateGroupCustomField>
          }
          groupBy: {
            args: Prisma.GroupCustomFieldGroupByArgs<ExtArgs>
            result: $Utils.Optional<GroupCustomFieldGroupByOutputType>[]
          }
          count: {
            args: Prisma.GroupCustomFieldCountArgs<ExtArgs>
            result: $Utils.Optional<GroupCustomFieldCountAggregateOutputType> | number
          }
        }
      }
      PartGroupRelation: {
        payload: Prisma.$PartGroupRelationPayload<ExtArgs>
        fields: Prisma.PartGroupRelationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PartGroupRelationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PartGroupRelationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>
          }
          findFirst: {
            args: Prisma.PartGroupRelationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PartGroupRelationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>
          }
          findMany: {
            args: Prisma.PartGroupRelationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>[]
          }
          create: {
            args: Prisma.PartGroupRelationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>
          }
          createMany: {
            args: Prisma.PartGroupRelationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PartGroupRelationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>[]
          }
          delete: {
            args: Prisma.PartGroupRelationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>
          }
          update: {
            args: Prisma.PartGroupRelationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>
          }
          deleteMany: {
            args: Prisma.PartGroupRelationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PartGroupRelationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PartGroupRelationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>[]
          }
          upsert: {
            args: Prisma.PartGroupRelationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartGroupRelationPayload>
          }
          aggregate: {
            args: Prisma.PartGroupRelationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePartGroupRelation>
          }
          groupBy: {
            args: Prisma.PartGroupRelationGroupByArgs<ExtArgs>
            result: $Utils.Optional<PartGroupRelationGroupByOutputType>[]
          }
          count: {
            args: Prisma.PartGroupRelationCountArgs<ExtArgs>
            result: $Utils.Optional<PartGroupRelationCountAggregateOutputType> | number
          }
        }
      }
      AIConversation: {
        payload: Prisma.$AIConversationPayload<ExtArgs>
        fields: Prisma.AIConversationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIConversationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIConversationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>
          }
          findFirst: {
            args: Prisma.AIConversationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIConversationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>
          }
          findMany: {
            args: Prisma.AIConversationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>[]
          }
          create: {
            args: Prisma.AIConversationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>
          }
          createMany: {
            args: Prisma.AIConversationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIConversationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>[]
          }
          delete: {
            args: Prisma.AIConversationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>
          }
          update: {
            args: Prisma.AIConversationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>
          }
          deleteMany: {
            args: Prisma.AIConversationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIConversationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIConversationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>[]
          }
          upsert: {
            args: Prisma.AIConversationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConversationPayload>
          }
          aggregate: {
            args: Prisma.AIConversationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIConversation>
          }
          groupBy: {
            args: Prisma.AIConversationGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIConversationGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIConversationCountArgs<ExtArgs>
            result: $Utils.Optional<AIConversationCountAggregateOutputType> | number
          }
        }
      }
      AIMessage: {
        payload: Prisma.$AIMessagePayload<ExtArgs>
        fields: Prisma.AIMessageFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIMessageFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIMessageFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>
          }
          findFirst: {
            args: Prisma.AIMessageFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIMessageFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>
          }
          findMany: {
            args: Prisma.AIMessageFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>[]
          }
          create: {
            args: Prisma.AIMessageCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>
          }
          createMany: {
            args: Prisma.AIMessageCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIMessageCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>[]
          }
          delete: {
            args: Prisma.AIMessageDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>
          }
          update: {
            args: Prisma.AIMessageUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>
          }
          deleteMany: {
            args: Prisma.AIMessageDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIMessageUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIMessageUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>[]
          }
          upsert: {
            args: Prisma.AIMessageUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessagePayload>
          }
          aggregate: {
            args: Prisma.AIMessageAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIMessage>
          }
          groupBy: {
            args: Prisma.AIMessageGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIMessageGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIMessageCountArgs<ExtArgs>
            result: $Utils.Optional<AIMessageCountAggregateOutputType> | number
          }
        }
      }
      AIMessageFeedback: {
        payload: Prisma.$AIMessageFeedbackPayload<ExtArgs>
        fields: Prisma.AIMessageFeedbackFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIMessageFeedbackFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIMessageFeedbackFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>
          }
          findFirst: {
            args: Prisma.AIMessageFeedbackFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIMessageFeedbackFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>
          }
          findMany: {
            args: Prisma.AIMessageFeedbackFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>[]
          }
          create: {
            args: Prisma.AIMessageFeedbackCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>
          }
          createMany: {
            args: Prisma.AIMessageFeedbackCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIMessageFeedbackCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>[]
          }
          delete: {
            args: Prisma.AIMessageFeedbackDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>
          }
          update: {
            args: Prisma.AIMessageFeedbackUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>
          }
          deleteMany: {
            args: Prisma.AIMessageFeedbackDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIMessageFeedbackUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIMessageFeedbackUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>[]
          }
          upsert: {
            args: Prisma.AIMessageFeedbackUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIMessageFeedbackPayload>
          }
          aggregate: {
            args: Prisma.AIMessageFeedbackAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIMessageFeedback>
          }
          groupBy: {
            args: Prisma.AIMessageFeedbackGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIMessageFeedbackGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIMessageFeedbackCountArgs<ExtArgs>
            result: $Utils.Optional<AIMessageFeedbackCountAggregateOutputType> | number
          }
        }
      }
      AIAssistantTicket: {
        payload: Prisma.$AIAssistantTicketPayload<ExtArgs>
        fields: Prisma.AIAssistantTicketFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIAssistantTicketFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIAssistantTicketFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>
          }
          findFirst: {
            args: Prisma.AIAssistantTicketFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIAssistantTicketFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>
          }
          findMany: {
            args: Prisma.AIAssistantTicketFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>[]
          }
          create: {
            args: Prisma.AIAssistantTicketCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>
          }
          createMany: {
            args: Prisma.AIAssistantTicketCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIAssistantTicketCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>[]
          }
          delete: {
            args: Prisma.AIAssistantTicketDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>
          }
          update: {
            args: Prisma.AIAssistantTicketUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>
          }
          deleteMany: {
            args: Prisma.AIAssistantTicketDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIAssistantTicketUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIAssistantTicketUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>[]
          }
          upsert: {
            args: Prisma.AIAssistantTicketUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIAssistantTicketPayload>
          }
          aggregate: {
            args: Prisma.AIAssistantTicketAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIAssistantTicket>
          }
          groupBy: {
            args: Prisma.AIAssistantTicketGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIAssistantTicketGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIAssistantTicketCountArgs<ExtArgs>
            result: $Utils.Optional<AIAssistantTicketCountAggregateOutputType> | number
          }
        }
      }
      AIKnowledgeFix: {
        payload: Prisma.$AIKnowledgeFixPayload<ExtArgs>
        fields: Prisma.AIKnowledgeFixFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIKnowledgeFixFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIKnowledgeFixFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>
          }
          findFirst: {
            args: Prisma.AIKnowledgeFixFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIKnowledgeFixFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>
          }
          findMany: {
            args: Prisma.AIKnowledgeFixFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>[]
          }
          create: {
            args: Prisma.AIKnowledgeFixCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>
          }
          createMany: {
            args: Prisma.AIKnowledgeFixCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIKnowledgeFixCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>[]
          }
          delete: {
            args: Prisma.AIKnowledgeFixDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>
          }
          update: {
            args: Prisma.AIKnowledgeFixUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>
          }
          deleteMany: {
            args: Prisma.AIKnowledgeFixDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIKnowledgeFixUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIKnowledgeFixUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>[]
          }
          upsert: {
            args: Prisma.AIKnowledgeFixUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIKnowledgeFixPayload>
          }
          aggregate: {
            args: Prisma.AIKnowledgeFixAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIKnowledgeFix>
          }
          groupBy: {
            args: Prisma.AIKnowledgeFixGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIKnowledgeFixGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIKnowledgeFixCountArgs<ExtArgs>
            result: $Utils.Optional<AIKnowledgeFixCountAggregateOutputType> | number
          }
        }
      }
      AIPromptTemplate: {
        payload: Prisma.$AIPromptTemplatePayload<ExtArgs>
        fields: Prisma.AIPromptTemplateFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIPromptTemplateFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIPromptTemplateFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>
          }
          findFirst: {
            args: Prisma.AIPromptTemplateFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIPromptTemplateFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>
          }
          findMany: {
            args: Prisma.AIPromptTemplateFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>[]
          }
          create: {
            args: Prisma.AIPromptTemplateCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>
          }
          createMany: {
            args: Prisma.AIPromptTemplateCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIPromptTemplateCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>[]
          }
          delete: {
            args: Prisma.AIPromptTemplateDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>
          }
          update: {
            args: Prisma.AIPromptTemplateUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>
          }
          deleteMany: {
            args: Prisma.AIPromptTemplateDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIPromptTemplateUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIPromptTemplateUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>[]
          }
          upsert: {
            args: Prisma.AIPromptTemplateUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIPromptTemplatePayload>
          }
          aggregate: {
            args: Prisma.AIPromptTemplateAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIPromptTemplate>
          }
          groupBy: {
            args: Prisma.AIPromptTemplateGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIPromptTemplateGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIPromptTemplateCountArgs<ExtArgs>
            result: $Utils.Optional<AIPromptTemplateCountAggregateOutputType> | number
          }
        }
      }
      AIConfiguration: {
        payload: Prisma.$AIConfigurationPayload<ExtArgs>
        fields: Prisma.AIConfigurationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIConfigurationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIConfigurationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>
          }
          findFirst: {
            args: Prisma.AIConfigurationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIConfigurationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>
          }
          findMany: {
            args: Prisma.AIConfigurationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>[]
          }
          create: {
            args: Prisma.AIConfigurationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>
          }
          createMany: {
            args: Prisma.AIConfigurationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIConfigurationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>[]
          }
          delete: {
            args: Prisma.AIConfigurationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>
          }
          update: {
            args: Prisma.AIConfigurationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>
          }
          deleteMany: {
            args: Prisma.AIConfigurationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIConfigurationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIConfigurationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>[]
          }
          upsert: {
            args: Prisma.AIConfigurationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIConfigurationPayload>
          }
          aggregate: {
            args: Prisma.AIConfigurationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIConfiguration>
          }
          groupBy: {
            args: Prisma.AIConfigurationGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIConfigurationGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIConfigurationCountArgs<ExtArgs>
            result: $Utils.Optional<AIConfigurationCountAggregateOutputType> | number
          }
        }
      }
      AIUsageStats: {
        payload: Prisma.$AIUsageStatsPayload<ExtArgs>
        fields: Prisma.AIUsageStatsFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIUsageStatsFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIUsageStatsFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>
          }
          findFirst: {
            args: Prisma.AIUsageStatsFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIUsageStatsFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>
          }
          findMany: {
            args: Prisma.AIUsageStatsFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>[]
          }
          create: {
            args: Prisma.AIUsageStatsCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>
          }
          createMany: {
            args: Prisma.AIUsageStatsCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIUsageStatsCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>[]
          }
          delete: {
            args: Prisma.AIUsageStatsDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>
          }
          update: {
            args: Prisma.AIUsageStatsUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>
          }
          deleteMany: {
            args: Prisma.AIUsageStatsDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIUsageStatsUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIUsageStatsUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>[]
          }
          upsert: {
            args: Prisma.AIUsageStatsUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIUsageStatsPayload>
          }
          aggregate: {
            args: Prisma.AIUsageStatsAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIUsageStats>
          }
          groupBy: {
            args: Prisma.AIUsageStatsGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIUsageStatsGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIUsageStatsCountArgs<ExtArgs>
            result: $Utils.Optional<AIUsageStatsCountAggregateOutputType> | number
          }
        }
      }
      AgentSession: {
        payload: Prisma.$AgentSessionPayload<ExtArgs>
        fields: Prisma.AgentSessionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentSessionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentSessionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>
          }
          findFirst: {
            args: Prisma.AgentSessionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentSessionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>
          }
          findMany: {
            args: Prisma.AgentSessionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>[]
          }
          create: {
            args: Prisma.AgentSessionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>
          }
          createMany: {
            args: Prisma.AgentSessionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentSessionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>[]
          }
          delete: {
            args: Prisma.AgentSessionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>
          }
          update: {
            args: Prisma.AgentSessionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>
          }
          deleteMany: {
            args: Prisma.AgentSessionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentSessionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentSessionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>[]
          }
          upsert: {
            args: Prisma.AgentSessionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentSessionPayload>
          }
          aggregate: {
            args: Prisma.AgentSessionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentSession>
          }
          groupBy: {
            args: Prisma.AgentSessionGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentSessionGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentSessionCountArgs<ExtArgs>
            result: $Utils.Optional<AgentSessionCountAggregateOutputType> | number
          }
        }
      }
      AgentMessage: {
        payload: Prisma.$AgentMessagePayload<ExtArgs>
        fields: Prisma.AgentMessageFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentMessageFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentMessageFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>
          }
          findFirst: {
            args: Prisma.AgentMessageFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentMessageFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>
          }
          findMany: {
            args: Prisma.AgentMessageFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>[]
          }
          create: {
            args: Prisma.AgentMessageCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>
          }
          createMany: {
            args: Prisma.AgentMessageCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentMessageCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>[]
          }
          delete: {
            args: Prisma.AgentMessageDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>
          }
          update: {
            args: Prisma.AgentMessageUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>
          }
          deleteMany: {
            args: Prisma.AgentMessageDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentMessageUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentMessageUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>[]
          }
          upsert: {
            args: Prisma.AgentMessageUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMessagePayload>
          }
          aggregate: {
            args: Prisma.AgentMessageAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentMessage>
          }
          groupBy: {
            args: Prisma.AgentMessageGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentMessageGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentMessageCountArgs<ExtArgs>
            result: $Utils.Optional<AgentMessageCountAggregateOutputType> | number
          }
        }
      }
      ModelRoutingRule: {
        payload: Prisma.$ModelRoutingRulePayload<ExtArgs>
        fields: Prisma.ModelRoutingRuleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ModelRoutingRuleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ModelRoutingRuleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>
          }
          findFirst: {
            args: Prisma.ModelRoutingRuleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ModelRoutingRuleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>
          }
          findMany: {
            args: Prisma.ModelRoutingRuleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>[]
          }
          create: {
            args: Prisma.ModelRoutingRuleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>
          }
          createMany: {
            args: Prisma.ModelRoutingRuleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ModelRoutingRuleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>[]
          }
          delete: {
            args: Prisma.ModelRoutingRuleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>
          }
          update: {
            args: Prisma.ModelRoutingRuleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>
          }
          deleteMany: {
            args: Prisma.ModelRoutingRuleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ModelRoutingRuleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ModelRoutingRuleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>[]
          }
          upsert: {
            args: Prisma.ModelRoutingRuleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingRulePayload>
          }
          aggregate: {
            args: Prisma.ModelRoutingRuleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateModelRoutingRule>
          }
          groupBy: {
            args: Prisma.ModelRoutingRuleGroupByArgs<ExtArgs>
            result: $Utils.Optional<ModelRoutingRuleGroupByOutputType>[]
          }
          count: {
            args: Prisma.ModelRoutingRuleCountArgs<ExtArgs>
            result: $Utils.Optional<ModelRoutingRuleCountAggregateOutputType> | number
          }
        }
      }
      ModelRoutingDecision: {
        payload: Prisma.$ModelRoutingDecisionPayload<ExtArgs>
        fields: Prisma.ModelRoutingDecisionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ModelRoutingDecisionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ModelRoutingDecisionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>
          }
          findFirst: {
            args: Prisma.ModelRoutingDecisionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ModelRoutingDecisionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>
          }
          findMany: {
            args: Prisma.ModelRoutingDecisionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>[]
          }
          create: {
            args: Prisma.ModelRoutingDecisionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>
          }
          createMany: {
            args: Prisma.ModelRoutingDecisionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ModelRoutingDecisionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>[]
          }
          delete: {
            args: Prisma.ModelRoutingDecisionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>
          }
          update: {
            args: Prisma.ModelRoutingDecisionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>
          }
          deleteMany: {
            args: Prisma.ModelRoutingDecisionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ModelRoutingDecisionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ModelRoutingDecisionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>[]
          }
          upsert: {
            args: Prisma.ModelRoutingDecisionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ModelRoutingDecisionPayload>
          }
          aggregate: {
            args: Prisma.ModelRoutingDecisionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateModelRoutingDecision>
          }
          groupBy: {
            args: Prisma.ModelRoutingDecisionGroupByArgs<ExtArgs>
            result: $Utils.Optional<ModelRoutingDecisionGroupByOutputType>[]
          }
          count: {
            args: Prisma.ModelRoutingDecisionCountArgs<ExtArgs>
            result: $Utils.Optional<ModelRoutingDecisionCountAggregateOutputType> | number
          }
        }
      }
      AgentTrajectoryEvent: {
        payload: Prisma.$AgentTrajectoryEventPayload<ExtArgs>
        fields: Prisma.AgentTrajectoryEventFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentTrajectoryEventFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentTrajectoryEventFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>
          }
          findFirst: {
            args: Prisma.AgentTrajectoryEventFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentTrajectoryEventFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>
          }
          findMany: {
            args: Prisma.AgentTrajectoryEventFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>[]
          }
          create: {
            args: Prisma.AgentTrajectoryEventCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>
          }
          createMany: {
            args: Prisma.AgentTrajectoryEventCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentTrajectoryEventCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>[]
          }
          delete: {
            args: Prisma.AgentTrajectoryEventDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>
          }
          update: {
            args: Prisma.AgentTrajectoryEventUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>
          }
          deleteMany: {
            args: Prisma.AgentTrajectoryEventDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentTrajectoryEventUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentTrajectoryEventUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>[]
          }
          upsert: {
            args: Prisma.AgentTrajectoryEventUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTrajectoryEventPayload>
          }
          aggregate: {
            args: Prisma.AgentTrajectoryEventAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentTrajectoryEvent>
          }
          groupBy: {
            args: Prisma.AgentTrajectoryEventGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentTrajectoryEventGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentTrajectoryEventCountArgs<ExtArgs>
            result: $Utils.Optional<AgentTrajectoryEventCountAggregateOutputType> | number
          }
        }
      }
      AgentQuota: {
        payload: Prisma.$AgentQuotaPayload<ExtArgs>
        fields: Prisma.AgentQuotaFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentQuotaFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentQuotaFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>
          }
          findFirst: {
            args: Prisma.AgentQuotaFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentQuotaFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>
          }
          findMany: {
            args: Prisma.AgentQuotaFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>[]
          }
          create: {
            args: Prisma.AgentQuotaCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>
          }
          createMany: {
            args: Prisma.AgentQuotaCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentQuotaCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>[]
          }
          delete: {
            args: Prisma.AgentQuotaDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>
          }
          update: {
            args: Prisma.AgentQuotaUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>
          }
          deleteMany: {
            args: Prisma.AgentQuotaDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentQuotaUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentQuotaUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>[]
          }
          upsert: {
            args: Prisma.AgentQuotaUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaPayload>
          }
          aggregate: {
            args: Prisma.AgentQuotaAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentQuota>
          }
          groupBy: {
            args: Prisma.AgentQuotaGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentQuotaGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentQuotaCountArgs<ExtArgs>
            result: $Utils.Optional<AgentQuotaCountAggregateOutputType> | number
          }
        }
      }
      AgentQuotaUsage: {
        payload: Prisma.$AgentQuotaUsagePayload<ExtArgs>
        fields: Prisma.AgentQuotaUsageFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentQuotaUsageFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentQuotaUsageFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>
          }
          findFirst: {
            args: Prisma.AgentQuotaUsageFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentQuotaUsageFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>
          }
          findMany: {
            args: Prisma.AgentQuotaUsageFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>[]
          }
          create: {
            args: Prisma.AgentQuotaUsageCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>
          }
          createMany: {
            args: Prisma.AgentQuotaUsageCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentQuotaUsageCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>[]
          }
          delete: {
            args: Prisma.AgentQuotaUsageDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>
          }
          update: {
            args: Prisma.AgentQuotaUsageUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>
          }
          deleteMany: {
            args: Prisma.AgentQuotaUsageDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentQuotaUsageUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentQuotaUsageUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>[]
          }
          upsert: {
            args: Prisma.AgentQuotaUsageUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentQuotaUsagePayload>
          }
          aggregate: {
            args: Prisma.AgentQuotaUsageAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentQuotaUsage>
          }
          groupBy: {
            args: Prisma.AgentQuotaUsageGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentQuotaUsageGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentQuotaUsageCountArgs<ExtArgs>
            result: $Utils.Optional<AgentQuotaUsageCountAggregateOutputType> | number
          }
        }
      }
      OrganizationAgentSettings: {
        payload: Prisma.$OrganizationAgentSettingsPayload<ExtArgs>
        fields: Prisma.OrganizationAgentSettingsFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OrganizationAgentSettingsFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OrganizationAgentSettingsFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>
          }
          findFirst: {
            args: Prisma.OrganizationAgentSettingsFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OrganizationAgentSettingsFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>
          }
          findMany: {
            args: Prisma.OrganizationAgentSettingsFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>[]
          }
          create: {
            args: Prisma.OrganizationAgentSettingsCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>
          }
          createMany: {
            args: Prisma.OrganizationAgentSettingsCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OrganizationAgentSettingsCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>[]
          }
          delete: {
            args: Prisma.OrganizationAgentSettingsDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>
          }
          update: {
            args: Prisma.OrganizationAgentSettingsUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>
          }
          deleteMany: {
            args: Prisma.OrganizationAgentSettingsDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OrganizationAgentSettingsUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OrganizationAgentSettingsUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>[]
          }
          upsert: {
            args: Prisma.OrganizationAgentSettingsUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OrganizationAgentSettingsPayload>
          }
          aggregate: {
            args: Prisma.OrganizationAgentSettingsAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOrganizationAgentSettings>
          }
          groupBy: {
            args: Prisma.OrganizationAgentSettingsGroupByArgs<ExtArgs>
            result: $Utils.Optional<OrganizationAgentSettingsGroupByOutputType>[]
          }
          count: {
            args: Prisma.OrganizationAgentSettingsCountArgs<ExtArgs>
            result: $Utils.Optional<OrganizationAgentSettingsCountAggregateOutputType> | number
          }
        }
      }
      AgentArtifact: {
        payload: Prisma.$AgentArtifactPayload<ExtArgs>
        fields: Prisma.AgentArtifactFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentArtifactFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentArtifactFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>
          }
          findFirst: {
            args: Prisma.AgentArtifactFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentArtifactFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>
          }
          findMany: {
            args: Prisma.AgentArtifactFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>[]
          }
          create: {
            args: Prisma.AgentArtifactCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>
          }
          createMany: {
            args: Prisma.AgentArtifactCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentArtifactCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>[]
          }
          delete: {
            args: Prisma.AgentArtifactDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>
          }
          update: {
            args: Prisma.AgentArtifactUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>
          }
          deleteMany: {
            args: Prisma.AgentArtifactDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentArtifactUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentArtifactUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>[]
          }
          upsert: {
            args: Prisma.AgentArtifactUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentArtifactPayload>
          }
          aggregate: {
            args: Prisma.AgentArtifactAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentArtifact>
          }
          groupBy: {
            args: Prisma.AgentArtifactGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentArtifactGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentArtifactCountArgs<ExtArgs>
            result: $Utils.Optional<AgentArtifactCountAggregateOutputType> | number
          }
        }
      }
      AgentTaskTracker: {
        payload: Prisma.$AgentTaskTrackerPayload<ExtArgs>
        fields: Prisma.AgentTaskTrackerFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentTaskTrackerFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentTaskTrackerFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>
          }
          findFirst: {
            args: Prisma.AgentTaskTrackerFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentTaskTrackerFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>
          }
          findMany: {
            args: Prisma.AgentTaskTrackerFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>[]
          }
          create: {
            args: Prisma.AgentTaskTrackerCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>
          }
          createMany: {
            args: Prisma.AgentTaskTrackerCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentTaskTrackerCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>[]
          }
          delete: {
            args: Prisma.AgentTaskTrackerDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>
          }
          update: {
            args: Prisma.AgentTaskTrackerUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>
          }
          deleteMany: {
            args: Prisma.AgentTaskTrackerDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentTaskTrackerUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentTaskTrackerUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>[]
          }
          upsert: {
            args: Prisma.AgentTaskTrackerUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentTaskTrackerPayload>
          }
          aggregate: {
            args: Prisma.AgentTaskTrackerAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentTaskTracker>
          }
          groupBy: {
            args: Prisma.AgentTaskTrackerGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentTaskTrackerGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentTaskTrackerCountArgs<ExtArgs>
            result: $Utils.Optional<AgentTaskTrackerCountAggregateOutputType> | number
          }
        }
      }
      AgentScratchpad: {
        payload: Prisma.$AgentScratchpadPayload<ExtArgs>
        fields: Prisma.AgentScratchpadFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentScratchpadFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentScratchpadFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>
          }
          findFirst: {
            args: Prisma.AgentScratchpadFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentScratchpadFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>
          }
          findMany: {
            args: Prisma.AgentScratchpadFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>[]
          }
          create: {
            args: Prisma.AgentScratchpadCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>
          }
          createMany: {
            args: Prisma.AgentScratchpadCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentScratchpadCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>[]
          }
          delete: {
            args: Prisma.AgentScratchpadDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>
          }
          update: {
            args: Prisma.AgentScratchpadUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>
          }
          deleteMany: {
            args: Prisma.AgentScratchpadDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentScratchpadUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentScratchpadUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>[]
          }
          upsert: {
            args: Prisma.AgentScratchpadUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentScratchpadPayload>
          }
          aggregate: {
            args: Prisma.AgentScratchpadAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentScratchpad>
          }
          groupBy: {
            args: Prisma.AgentScratchpadGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentScratchpadGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentScratchpadCountArgs<ExtArgs>
            result: $Utils.Optional<AgentScratchpadCountAggregateOutputType> | number
          }
        }
      }
      StorageBinding: {
        payload: Prisma.$StorageBindingPayload<ExtArgs>
        fields: Prisma.StorageBindingFieldRefs
        operations: {
          findUnique: {
            args: Prisma.StorageBindingFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.StorageBindingFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>
          }
          findFirst: {
            args: Prisma.StorageBindingFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.StorageBindingFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>
          }
          findMany: {
            args: Prisma.StorageBindingFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>[]
          }
          create: {
            args: Prisma.StorageBindingCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>
          }
          createMany: {
            args: Prisma.StorageBindingCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.StorageBindingCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>[]
          }
          delete: {
            args: Prisma.StorageBindingDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>
          }
          update: {
            args: Prisma.StorageBindingUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>
          }
          deleteMany: {
            args: Prisma.StorageBindingDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.StorageBindingUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.StorageBindingUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>[]
          }
          upsert: {
            args: Prisma.StorageBindingUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageBindingPayload>
          }
          aggregate: {
            args: Prisma.StorageBindingAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateStorageBinding>
          }
          groupBy: {
            args: Prisma.StorageBindingGroupByArgs<ExtArgs>
            result: $Utils.Optional<StorageBindingGroupByOutputType>[]
          }
          count: {
            args: Prisma.StorageBindingCountArgs<ExtArgs>
            result: $Utils.Optional<StorageBindingCountAggregateOutputType> | number
          }
        }
      }
      StorageFile: {
        payload: Prisma.$StorageFilePayload<ExtArgs>
        fields: Prisma.StorageFileFieldRefs
        operations: {
          findUnique: {
            args: Prisma.StorageFileFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.StorageFileFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>
          }
          findFirst: {
            args: Prisma.StorageFileFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.StorageFileFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>
          }
          findMany: {
            args: Prisma.StorageFileFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>[]
          }
          create: {
            args: Prisma.StorageFileCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>
          }
          createMany: {
            args: Prisma.StorageFileCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.StorageFileCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>[]
          }
          delete: {
            args: Prisma.StorageFileDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>
          }
          update: {
            args: Prisma.StorageFileUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>
          }
          deleteMany: {
            args: Prisma.StorageFileDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.StorageFileUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.StorageFileUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>[]
          }
          upsert: {
            args: Prisma.StorageFileUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StorageFilePayload>
          }
          aggregate: {
            args: Prisma.StorageFileAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateStorageFile>
          }
          groupBy: {
            args: Prisma.StorageFileGroupByArgs<ExtArgs>
            result: $Utils.Optional<StorageFileGroupByOutputType>[]
          }
          count: {
            args: Prisma.StorageFileCountArgs<ExtArgs>
            result: $Utils.Optional<StorageFileCountAggregateOutputType> | number
          }
        }
      }
      AgentProject: {
        payload: Prisma.$AgentProjectPayload<ExtArgs>
        fields: Prisma.AgentProjectFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentProjectFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentProjectFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          findFirst: {
            args: Prisma.AgentProjectFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentProjectFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          findMany: {
            args: Prisma.AgentProjectFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>[]
          }
          create: {
            args: Prisma.AgentProjectCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          createMany: {
            args: Prisma.AgentProjectCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentProjectCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>[]
          }
          delete: {
            args: Prisma.AgentProjectDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          update: {
            args: Prisma.AgentProjectUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          deleteMany: {
            args: Prisma.AgentProjectDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentProjectUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentProjectUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>[]
          }
          upsert: {
            args: Prisma.AgentProjectUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          aggregate: {
            args: Prisma.AgentProjectAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentProject>
          }
          groupBy: {
            args: Prisma.AgentProjectGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentProjectGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentProjectCountArgs<ExtArgs>
            result: $Utils.Optional<AgentProjectCountAggregateOutputType> | number
          }
        }
      }
      AgentMemory: {
        payload: Prisma.$AgentMemoryPayload<ExtArgs>
        fields: Prisma.AgentMemoryFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentMemoryFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentMemoryFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>
          }
          findFirst: {
            args: Prisma.AgentMemoryFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentMemoryFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>
          }
          findMany: {
            args: Prisma.AgentMemoryFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>[]
          }
          create: {
            args: Prisma.AgentMemoryCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>
          }
          createMany: {
            args: Prisma.AgentMemoryCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentMemoryCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>[]
          }
          delete: {
            args: Prisma.AgentMemoryDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>
          }
          update: {
            args: Prisma.AgentMemoryUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>
          }
          deleteMany: {
            args: Prisma.AgentMemoryDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentMemoryUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentMemoryUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>[]
          }
          upsert: {
            args: Prisma.AgentMemoryUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMemoryPayload>
          }
          aggregate: {
            args: Prisma.AgentMemoryAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentMemory>
          }
          groupBy: {
            args: Prisma.AgentMemoryGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentMemoryGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentMemoryCountArgs<ExtArgs>
            result: $Utils.Optional<AgentMemoryCountAggregateOutputType> | number
          }
        }
      }
      AgentPersona: {
        payload: Prisma.$AgentPersonaPayload<ExtArgs>
        fields: Prisma.AgentPersonaFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentPersonaFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentPersonaFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>
          }
          findFirst: {
            args: Prisma.AgentPersonaFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentPersonaFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>
          }
          findMany: {
            args: Prisma.AgentPersonaFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>[]
          }
          create: {
            args: Prisma.AgentPersonaCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>
          }
          createMany: {
            args: Prisma.AgentPersonaCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentPersonaCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>[]
          }
          delete: {
            args: Prisma.AgentPersonaDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>
          }
          update: {
            args: Prisma.AgentPersonaUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>
          }
          deleteMany: {
            args: Prisma.AgentPersonaDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentPersonaUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentPersonaUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>[]
          }
          upsert: {
            args: Prisma.AgentPersonaUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentPersonaPayload>
          }
          aggregate: {
            args: Prisma.AgentPersonaAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentPersona>
          }
          groupBy: {
            args: Prisma.AgentPersonaGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentPersonaGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentPersonaCountArgs<ExtArgs>
            result: $Utils.Optional<AgentPersonaCountAggregateOutputType> | number
          }
        }
      }
      AgentCron: {
        payload: Prisma.$AgentCronPayload<ExtArgs>
        fields: Prisma.AgentCronFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentCronFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentCronFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>
          }
          findFirst: {
            args: Prisma.AgentCronFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentCronFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>
          }
          findMany: {
            args: Prisma.AgentCronFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>[]
          }
          create: {
            args: Prisma.AgentCronCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>
          }
          createMany: {
            args: Prisma.AgentCronCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentCronCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>[]
          }
          delete: {
            args: Prisma.AgentCronDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>
          }
          update: {
            args: Prisma.AgentCronUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>
          }
          deleteMany: {
            args: Prisma.AgentCronDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentCronUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentCronUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>[]
          }
          upsert: {
            args: Prisma.AgentCronUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentCronPayload>
          }
          aggregate: {
            args: Prisma.AgentCronAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentCron>
          }
          groupBy: {
            args: Prisma.AgentCronGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentCronGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentCronCountArgs<ExtArgs>
            result: $Utils.Optional<AgentCronCountAggregateOutputType> | number
          }
        }
      }
      AgentMcpServer: {
        payload: Prisma.$AgentMcpServerPayload<ExtArgs>
        fields: Prisma.AgentMcpServerFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentMcpServerFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentMcpServerFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>
          }
          findFirst: {
            args: Prisma.AgentMcpServerFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentMcpServerFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>
          }
          findMany: {
            args: Prisma.AgentMcpServerFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>[]
          }
          create: {
            args: Prisma.AgentMcpServerCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>
          }
          createMany: {
            args: Prisma.AgentMcpServerCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentMcpServerCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>[]
          }
          delete: {
            args: Prisma.AgentMcpServerDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>
          }
          update: {
            args: Prisma.AgentMcpServerUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>
          }
          deleteMany: {
            args: Prisma.AgentMcpServerDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentMcpServerUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentMcpServerUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>[]
          }
          upsert: {
            args: Prisma.AgentMcpServerUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentMcpServerPayload>
          }
          aggregate: {
            args: Prisma.AgentMcpServerAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentMcpServer>
          }
          groupBy: {
            args: Prisma.AgentMcpServerGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentMcpServerGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentMcpServerCountArgs<ExtArgs>
            result: $Utils.Optional<AgentMcpServerCountAggregateOutputType> | number
          }
        }
      }
      AiUsageToken: {
        payload: Prisma.$AiUsageTokenPayload<ExtArgs>
        fields: Prisma.AiUsageTokenFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AiUsageTokenFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AiUsageTokenFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>
          }
          findFirst: {
            args: Prisma.AiUsageTokenFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AiUsageTokenFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>
          }
          findMany: {
            args: Prisma.AiUsageTokenFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>[]
          }
          create: {
            args: Prisma.AiUsageTokenCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>
          }
          createMany: {
            args: Prisma.AiUsageTokenCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AiUsageTokenCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>[]
          }
          delete: {
            args: Prisma.AiUsageTokenDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>
          }
          update: {
            args: Prisma.AiUsageTokenUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>
          }
          deleteMany: {
            args: Prisma.AiUsageTokenDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AiUsageTokenUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AiUsageTokenUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>[]
          }
          upsert: {
            args: Prisma.AiUsageTokenUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageTokenPayload>
          }
          aggregate: {
            args: Prisma.AiUsageTokenAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAiUsageToken>
          }
          groupBy: {
            args: Prisma.AiUsageTokenGroupByArgs<ExtArgs>
            result: $Utils.Optional<AiUsageTokenGroupByOutputType>[]
          }
          count: {
            args: Prisma.AiUsageTokenCountArgs<ExtArgs>
            result: $Utils.Optional<AiUsageTokenCountAggregateOutputType> | number
          }
        }
      }
      AiUsageDevice: {
        payload: Prisma.$AiUsageDevicePayload<ExtArgs>
        fields: Prisma.AiUsageDeviceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AiUsageDeviceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AiUsageDeviceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>
          }
          findFirst: {
            args: Prisma.AiUsageDeviceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AiUsageDeviceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>
          }
          findMany: {
            args: Prisma.AiUsageDeviceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>[]
          }
          create: {
            args: Prisma.AiUsageDeviceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>
          }
          createMany: {
            args: Prisma.AiUsageDeviceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AiUsageDeviceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>[]
          }
          delete: {
            args: Prisma.AiUsageDeviceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>
          }
          update: {
            args: Prisma.AiUsageDeviceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>
          }
          deleteMany: {
            args: Prisma.AiUsageDeviceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AiUsageDeviceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AiUsageDeviceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>[]
          }
          upsert: {
            args: Prisma.AiUsageDeviceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDevicePayload>
          }
          aggregate: {
            args: Prisma.AiUsageDeviceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAiUsageDevice>
          }
          groupBy: {
            args: Prisma.AiUsageDeviceGroupByArgs<ExtArgs>
            result: $Utils.Optional<AiUsageDeviceGroupByOutputType>[]
          }
          count: {
            args: Prisma.AiUsageDeviceCountArgs<ExtArgs>
            result: $Utils.Optional<AiUsageDeviceCountAggregateOutputType> | number
          }
        }
      }
      AiUsageEvent: {
        payload: Prisma.$AiUsageEventPayload<ExtArgs>
        fields: Prisma.AiUsageEventFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AiUsageEventFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AiUsageEventFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>
          }
          findFirst: {
            args: Prisma.AiUsageEventFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AiUsageEventFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>
          }
          findMany: {
            args: Prisma.AiUsageEventFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>[]
          }
          create: {
            args: Prisma.AiUsageEventCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>
          }
          createMany: {
            args: Prisma.AiUsageEventCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AiUsageEventCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>[]
          }
          delete: {
            args: Prisma.AiUsageEventDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>
          }
          update: {
            args: Prisma.AiUsageEventUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>
          }
          deleteMany: {
            args: Prisma.AiUsageEventDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AiUsageEventUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AiUsageEventUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>[]
          }
          upsert: {
            args: Prisma.AiUsageEventUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventPayload>
          }
          aggregate: {
            args: Prisma.AiUsageEventAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAiUsageEvent>
          }
          groupBy: {
            args: Prisma.AiUsageEventGroupByArgs<ExtArgs>
            result: $Utils.Optional<AiUsageEventGroupByOutputType>[]
          }
          count: {
            args: Prisma.AiUsageEventCountArgs<ExtArgs>
            result: $Utils.Optional<AiUsageEventCountAggregateOutputType> | number
          }
        }
      }
      AiUsageEventDlq: {
        payload: Prisma.$AiUsageEventDlqPayload<ExtArgs>
        fields: Prisma.AiUsageEventDlqFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AiUsageEventDlqFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AiUsageEventDlqFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>
          }
          findFirst: {
            args: Prisma.AiUsageEventDlqFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AiUsageEventDlqFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>
          }
          findMany: {
            args: Prisma.AiUsageEventDlqFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>[]
          }
          create: {
            args: Prisma.AiUsageEventDlqCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>
          }
          createMany: {
            args: Prisma.AiUsageEventDlqCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AiUsageEventDlqCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>[]
          }
          delete: {
            args: Prisma.AiUsageEventDlqDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>
          }
          update: {
            args: Prisma.AiUsageEventDlqUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>
          }
          deleteMany: {
            args: Prisma.AiUsageEventDlqDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AiUsageEventDlqUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AiUsageEventDlqUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>[]
          }
          upsert: {
            args: Prisma.AiUsageEventDlqUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageEventDlqPayload>
          }
          aggregate: {
            args: Prisma.AiUsageEventDlqAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAiUsageEventDlq>
          }
          groupBy: {
            args: Prisma.AiUsageEventDlqGroupByArgs<ExtArgs>
            result: $Utils.Optional<AiUsageEventDlqGroupByOutputType>[]
          }
          count: {
            args: Prisma.AiUsageEventDlqCountArgs<ExtArgs>
            result: $Utils.Optional<AiUsageEventDlqCountAggregateOutputType> | number
          }
        }
      }
      AiUsageDailyRollup: {
        payload: Prisma.$AiUsageDailyRollupPayload<ExtArgs>
        fields: Prisma.AiUsageDailyRollupFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AiUsageDailyRollupFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AiUsageDailyRollupFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>
          }
          findFirst: {
            args: Prisma.AiUsageDailyRollupFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AiUsageDailyRollupFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>
          }
          findMany: {
            args: Prisma.AiUsageDailyRollupFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>[]
          }
          create: {
            args: Prisma.AiUsageDailyRollupCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>
          }
          createMany: {
            args: Prisma.AiUsageDailyRollupCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AiUsageDailyRollupCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>[]
          }
          delete: {
            args: Prisma.AiUsageDailyRollupDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>
          }
          update: {
            args: Prisma.AiUsageDailyRollupUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>
          }
          deleteMany: {
            args: Prisma.AiUsageDailyRollupDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AiUsageDailyRollupUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AiUsageDailyRollupUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>[]
          }
          upsert: {
            args: Prisma.AiUsageDailyRollupUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AiUsageDailyRollupPayload>
          }
          aggregate: {
            args: Prisma.AiUsageDailyRollupAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAiUsageDailyRollup>
          }
          groupBy: {
            args: Prisma.AiUsageDailyRollupGroupByArgs<ExtArgs>
            result: $Utils.Optional<AiUsageDailyRollupGroupByOutputType>[]
          }
          count: {
            args: Prisma.AiUsageDailyRollupCountArgs<ExtArgs>
            result: $Utils.Optional<AiUsageDailyRollupCountAggregateOutputType> | number
          }
        }
      }
      AuditLog: {
        payload: Prisma.$AuditLogPayload<ExtArgs>
        fields: Prisma.AuditLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AuditLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AuditLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>
          }
          findFirst: {
            args: Prisma.AuditLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AuditLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>
          }
          findMany: {
            args: Prisma.AuditLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
          }
          create: {
            args: Prisma.AuditLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>
          }
          createMany: {
            args: Prisma.AuditLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AuditLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
          }
          delete: {
            args: Prisma.AuditLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>
          }
          update: {
            args: Prisma.AuditLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>
          }
          deleteMany: {
            args: Prisma.AuditLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AuditLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AuditLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
          }
          upsert: {
            args: Prisma.AuditLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditLogPayload>
          }
          aggregate: {
            args: Prisma.AuditLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAuditLog>
          }
          groupBy: {
            args: Prisma.AuditLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<AuditLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.AuditLogCountArgs<ExtArgs>
            result: $Utils.Optional<AuditLogCountAggregateOutputType> | number
          }
        }
      }
      AuditDatabaseChangeLog: {
        payload: Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>
        fields: Prisma.AuditDatabaseChangeLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AuditDatabaseChangeLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AuditDatabaseChangeLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>
          }
          findFirst: {
            args: Prisma.AuditDatabaseChangeLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AuditDatabaseChangeLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>
          }
          findMany: {
            args: Prisma.AuditDatabaseChangeLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>[]
          }
          create: {
            args: Prisma.AuditDatabaseChangeLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>
          }
          createMany: {
            args: Prisma.AuditDatabaseChangeLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AuditDatabaseChangeLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>[]
          }
          delete: {
            args: Prisma.AuditDatabaseChangeLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>
          }
          update: {
            args: Prisma.AuditDatabaseChangeLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>
          }
          deleteMany: {
            args: Prisma.AuditDatabaseChangeLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AuditDatabaseChangeLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AuditDatabaseChangeLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>[]
          }
          upsert: {
            args: Prisma.AuditDatabaseChangeLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditDatabaseChangeLogPayload>
          }
          aggregate: {
            args: Prisma.AuditDatabaseChangeLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAuditDatabaseChangeLog>
          }
          groupBy: {
            args: Prisma.AuditDatabaseChangeLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<AuditDatabaseChangeLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.AuditDatabaseChangeLogCountArgs<ExtArgs>
            result: $Utils.Optional<AuditDatabaseChangeLogCountAggregateOutputType> | number
          }
        }
      }
      AuditSensitiveOperationLog: {
        payload: Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>
        fields: Prisma.AuditSensitiveOperationLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AuditSensitiveOperationLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AuditSensitiveOperationLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>
          }
          findFirst: {
            args: Prisma.AuditSensitiveOperationLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AuditSensitiveOperationLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>
          }
          findMany: {
            args: Prisma.AuditSensitiveOperationLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>[]
          }
          create: {
            args: Prisma.AuditSensitiveOperationLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>
          }
          createMany: {
            args: Prisma.AuditSensitiveOperationLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AuditSensitiveOperationLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>[]
          }
          delete: {
            args: Prisma.AuditSensitiveOperationLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>
          }
          update: {
            args: Prisma.AuditSensitiveOperationLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>
          }
          deleteMany: {
            args: Prisma.AuditSensitiveOperationLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AuditSensitiveOperationLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AuditSensitiveOperationLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>[]
          }
          upsert: {
            args: Prisma.AuditSensitiveOperationLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditSensitiveOperationLogPayload>
          }
          aggregate: {
            args: Prisma.AuditSensitiveOperationLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAuditSensitiveOperationLog>
          }
          groupBy: {
            args: Prisma.AuditSensitiveOperationLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<AuditSensitiveOperationLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.AuditSensitiveOperationLogCountArgs<ExtArgs>
            result: $Utils.Optional<AuditSensitiveOperationLogCountAggregateOutputType> | number
          }
        }
      }
      AuditIntegrityCheckLog: {
        payload: Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>
        fields: Prisma.AuditIntegrityCheckLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AuditIntegrityCheckLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AuditIntegrityCheckLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>
          }
          findFirst: {
            args: Prisma.AuditIntegrityCheckLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AuditIntegrityCheckLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>
          }
          findMany: {
            args: Prisma.AuditIntegrityCheckLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>[]
          }
          create: {
            args: Prisma.AuditIntegrityCheckLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>
          }
          createMany: {
            args: Prisma.AuditIntegrityCheckLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AuditIntegrityCheckLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>[]
          }
          delete: {
            args: Prisma.AuditIntegrityCheckLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>
          }
          update: {
            args: Prisma.AuditIntegrityCheckLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>
          }
          deleteMany: {
            args: Prisma.AuditIntegrityCheckLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AuditIntegrityCheckLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AuditIntegrityCheckLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>[]
          }
          upsert: {
            args: Prisma.AuditIntegrityCheckLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditIntegrityCheckLogPayload>
          }
          aggregate: {
            args: Prisma.AuditIntegrityCheckLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAuditIntegrityCheckLog>
          }
          groupBy: {
            args: Prisma.AuditIntegrityCheckLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<AuditIntegrityCheckLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.AuditIntegrityCheckLogCountArgs<ExtArgs>
            result: $Utils.Optional<AuditIntegrityCheckLogCountAggregateOutputType> | number
          }
        }
      }
      AutomationTask: {
        payload: Prisma.$AutomationTaskPayload<ExtArgs>
        fields: Prisma.AutomationTaskFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AutomationTaskFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AutomationTaskFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>
          }
          findFirst: {
            args: Prisma.AutomationTaskFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AutomationTaskFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>
          }
          findMany: {
            args: Prisma.AutomationTaskFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>[]
          }
          create: {
            args: Prisma.AutomationTaskCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>
          }
          createMany: {
            args: Prisma.AutomationTaskCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AutomationTaskCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>[]
          }
          delete: {
            args: Prisma.AutomationTaskDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>
          }
          update: {
            args: Prisma.AutomationTaskUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>
          }
          deleteMany: {
            args: Prisma.AutomationTaskDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AutomationTaskUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AutomationTaskUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>[]
          }
          upsert: {
            args: Prisma.AutomationTaskUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationTaskPayload>
          }
          aggregate: {
            args: Prisma.AutomationTaskAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAutomationTask>
          }
          groupBy: {
            args: Prisma.AutomationTaskGroupByArgs<ExtArgs>
            result: $Utils.Optional<AutomationTaskGroupByOutputType>[]
          }
          count: {
            args: Prisma.AutomationTaskCountArgs<ExtArgs>
            result: $Utils.Optional<AutomationTaskCountAggregateOutputType> | number
          }
        }
      }
      AutomationExecution: {
        payload: Prisma.$AutomationExecutionPayload<ExtArgs>
        fields: Prisma.AutomationExecutionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AutomationExecutionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AutomationExecutionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>
          }
          findFirst: {
            args: Prisma.AutomationExecutionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AutomationExecutionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>
          }
          findMany: {
            args: Prisma.AutomationExecutionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>[]
          }
          create: {
            args: Prisma.AutomationExecutionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>
          }
          createMany: {
            args: Prisma.AutomationExecutionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AutomationExecutionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>[]
          }
          delete: {
            args: Prisma.AutomationExecutionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>
          }
          update: {
            args: Prisma.AutomationExecutionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>
          }
          deleteMany: {
            args: Prisma.AutomationExecutionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AutomationExecutionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AutomationExecutionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>[]
          }
          upsert: {
            args: Prisma.AutomationExecutionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AutomationExecutionPayload>
          }
          aggregate: {
            args: Prisma.AutomationExecutionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAutomationExecution>
          }
          groupBy: {
            args: Prisma.AutomationExecutionGroupByArgs<ExtArgs>
            result: $Utils.Optional<AutomationExecutionGroupByOutputType>[]
          }
          count: {
            args: Prisma.AutomationExecutionCountArgs<ExtArgs>
            result: $Utils.Optional<AutomationExecutionCountAggregateOutputType> | number
          }
        }
      }
      DingtalkSyncConfig: {
        payload: Prisma.$DingtalkSyncConfigPayload<ExtArgs>
        fields: Prisma.DingtalkSyncConfigFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DingtalkSyncConfigFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DingtalkSyncConfigFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>
          }
          findFirst: {
            args: Prisma.DingtalkSyncConfigFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DingtalkSyncConfigFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>
          }
          findMany: {
            args: Prisma.DingtalkSyncConfigFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>[]
          }
          create: {
            args: Prisma.DingtalkSyncConfigCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>
          }
          createMany: {
            args: Prisma.DingtalkSyncConfigCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DingtalkSyncConfigCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>[]
          }
          delete: {
            args: Prisma.DingtalkSyncConfigDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>
          }
          update: {
            args: Prisma.DingtalkSyncConfigUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>
          }
          deleteMany: {
            args: Prisma.DingtalkSyncConfigDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DingtalkSyncConfigUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DingtalkSyncConfigUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>[]
          }
          upsert: {
            args: Prisma.DingtalkSyncConfigUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkSyncConfigPayload>
          }
          aggregate: {
            args: Prisma.DingtalkSyncConfigAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDingtalkSyncConfig>
          }
          groupBy: {
            args: Prisma.DingtalkSyncConfigGroupByArgs<ExtArgs>
            result: $Utils.Optional<DingtalkSyncConfigGroupByOutputType>[]
          }
          count: {
            args: Prisma.DingtalkSyncConfigCountArgs<ExtArgs>
            result: $Utils.Optional<DingtalkSyncConfigCountAggregateOutputType> | number
          }
        }
      }
      DingtalkLeaveCode: {
        payload: Prisma.$DingtalkLeaveCodePayload<ExtArgs>
        fields: Prisma.DingtalkLeaveCodeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DingtalkLeaveCodeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DingtalkLeaveCodeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>
          }
          findFirst: {
            args: Prisma.DingtalkLeaveCodeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DingtalkLeaveCodeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>
          }
          findMany: {
            args: Prisma.DingtalkLeaveCodeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>[]
          }
          create: {
            args: Prisma.DingtalkLeaveCodeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>
          }
          createMany: {
            args: Prisma.DingtalkLeaveCodeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DingtalkLeaveCodeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>[]
          }
          delete: {
            args: Prisma.DingtalkLeaveCodeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>
          }
          update: {
            args: Prisma.DingtalkLeaveCodeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>
          }
          deleteMany: {
            args: Prisma.DingtalkLeaveCodeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DingtalkLeaveCodeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DingtalkLeaveCodeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>[]
          }
          upsert: {
            args: Prisma.DingtalkLeaveCodeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveCodePayload>
          }
          aggregate: {
            args: Prisma.DingtalkLeaveCodeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDingtalkLeaveCode>
          }
          groupBy: {
            args: Prisma.DingtalkLeaveCodeGroupByArgs<ExtArgs>
            result: $Utils.Optional<DingtalkLeaveCodeGroupByOutputType>[]
          }
          count: {
            args: Prisma.DingtalkLeaveCodeCountArgs<ExtArgs>
            result: $Utils.Optional<DingtalkLeaveCodeCountAggregateOutputType> | number
          }
        }
      }
      DingtalkLeaveQuotaSnapshot: {
        payload: Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>
        fields: Prisma.DingtalkLeaveQuotaSnapshotFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DingtalkLeaveQuotaSnapshotFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DingtalkLeaveQuotaSnapshotFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>
          }
          findFirst: {
            args: Prisma.DingtalkLeaveQuotaSnapshotFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DingtalkLeaveQuotaSnapshotFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>
          }
          findMany: {
            args: Prisma.DingtalkLeaveQuotaSnapshotFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>[]
          }
          create: {
            args: Prisma.DingtalkLeaveQuotaSnapshotCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>
          }
          createMany: {
            args: Prisma.DingtalkLeaveQuotaSnapshotCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DingtalkLeaveQuotaSnapshotCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>[]
          }
          delete: {
            args: Prisma.DingtalkLeaveQuotaSnapshotDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>
          }
          update: {
            args: Prisma.DingtalkLeaveQuotaSnapshotUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>
          }
          deleteMany: {
            args: Prisma.DingtalkLeaveQuotaSnapshotDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DingtalkLeaveQuotaSnapshotUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DingtalkLeaveQuotaSnapshotUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>[]
          }
          upsert: {
            args: Prisma.DingtalkLeaveQuotaSnapshotUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload>
          }
          aggregate: {
            args: Prisma.DingtalkLeaveQuotaSnapshotAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDingtalkLeaveQuotaSnapshot>
          }
          groupBy: {
            args: Prisma.DingtalkLeaveQuotaSnapshotGroupByArgs<ExtArgs>
            result: $Utils.Optional<DingtalkLeaveQuotaSnapshotGroupByOutputType>[]
          }
          count: {
            args: Prisma.DingtalkLeaveQuotaSnapshotCountArgs<ExtArgs>
            result: $Utils.Optional<DingtalkLeaveQuotaSnapshotCountAggregateOutputType> | number
          }
        }
      }
      SapPurchaseSyncRecord: {
        payload: Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>
        fields: Prisma.SapPurchaseSyncRecordFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SapPurchaseSyncRecordFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SapPurchaseSyncRecordFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>
          }
          findFirst: {
            args: Prisma.SapPurchaseSyncRecordFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SapPurchaseSyncRecordFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>
          }
          findMany: {
            args: Prisma.SapPurchaseSyncRecordFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>[]
          }
          create: {
            args: Prisma.SapPurchaseSyncRecordCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>
          }
          createMany: {
            args: Prisma.SapPurchaseSyncRecordCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SapPurchaseSyncRecordCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>[]
          }
          delete: {
            args: Prisma.SapPurchaseSyncRecordDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>
          }
          update: {
            args: Prisma.SapPurchaseSyncRecordUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>
          }
          deleteMany: {
            args: Prisma.SapPurchaseSyncRecordDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SapPurchaseSyncRecordUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SapPurchaseSyncRecordUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>[]
          }
          upsert: {
            args: Prisma.SapPurchaseSyncRecordUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseSyncRecordPayload>
          }
          aggregate: {
            args: Prisma.SapPurchaseSyncRecordAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSapPurchaseSyncRecord>
          }
          groupBy: {
            args: Prisma.SapPurchaseSyncRecordGroupByArgs<ExtArgs>
            result: $Utils.Optional<SapPurchaseSyncRecordGroupByOutputType>[]
          }
          count: {
            args: Prisma.SapPurchaseSyncRecordCountArgs<ExtArgs>
            result: $Utils.Optional<SapPurchaseSyncRecordCountAggregateOutputType> | number
          }
        }
      }
      DingtalkEmployee: {
        payload: Prisma.$DingtalkEmployeePayload<ExtArgs>
        fields: Prisma.DingtalkEmployeeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DingtalkEmployeeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DingtalkEmployeeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>
          }
          findFirst: {
            args: Prisma.DingtalkEmployeeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DingtalkEmployeeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>
          }
          findMany: {
            args: Prisma.DingtalkEmployeeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>[]
          }
          create: {
            args: Prisma.DingtalkEmployeeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>
          }
          createMany: {
            args: Prisma.DingtalkEmployeeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DingtalkEmployeeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>[]
          }
          delete: {
            args: Prisma.DingtalkEmployeeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>
          }
          update: {
            args: Prisma.DingtalkEmployeeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>
          }
          deleteMany: {
            args: Prisma.DingtalkEmployeeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DingtalkEmployeeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DingtalkEmployeeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>[]
          }
          upsert: {
            args: Prisma.DingtalkEmployeeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeePayload>
          }
          aggregate: {
            args: Prisma.DingtalkEmployeeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDingtalkEmployee>
          }
          groupBy: {
            args: Prisma.DingtalkEmployeeGroupByArgs<ExtArgs>
            result: $Utils.Optional<DingtalkEmployeeGroupByOutputType>[]
          }
          count: {
            args: Prisma.DingtalkEmployeeCountArgs<ExtArgs>
            result: $Utils.Optional<DingtalkEmployeeCountAggregateOutputType> | number
          }
        }
      }
      DingtalkEmployeeEmploymentPeriod: {
        payload: Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>
        fields: Prisma.DingtalkEmployeeEmploymentPeriodFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>
          }
          findFirst: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>
          }
          findMany: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>[]
          }
          create: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>
          }
          createMany: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>[]
          }
          delete: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>
          }
          update: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>
          }
          deleteMany: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>[]
          }
          upsert: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload>
          }
          aggregate: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDingtalkEmployeeEmploymentPeriod>
          }
          groupBy: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodGroupByArgs<ExtArgs>
            result: $Utils.Optional<DingtalkEmployeeEmploymentPeriodGroupByOutputType>[]
          }
          count: {
            args: Prisma.DingtalkEmployeeEmploymentPeriodCountArgs<ExtArgs>
            result: $Utils.Optional<DingtalkEmployeeEmploymentPeriodCountAggregateOutputType> | number
          }
        }
      }
      DingtalkEmployeeSuspensionPeriod: {
        payload: Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>
        fields: Prisma.DingtalkEmployeeSuspensionPeriodFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>
          }
          findFirst: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>
          }
          findMany: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>[]
          }
          create: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>
          }
          createMany: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>[]
          }
          delete: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>
          }
          update: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>
          }
          deleteMany: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>[]
          }
          upsert: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload>
          }
          aggregate: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDingtalkEmployeeSuspensionPeriod>
          }
          groupBy: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodGroupByArgs<ExtArgs>
            result: $Utils.Optional<DingtalkEmployeeSuspensionPeriodGroupByOutputType>[]
          }
          count: {
            args: Prisma.DingtalkEmployeeSuspensionPeriodCountArgs<ExtArgs>
            result: $Utils.Optional<DingtalkEmployeeSuspensionPeriodCountAggregateOutputType> | number
          }
        }
      }
      SapPurchaseCache: {
        payload: Prisma.$SapPurchaseCachePayload<ExtArgs>
        fields: Prisma.SapPurchaseCacheFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SapPurchaseCacheFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SapPurchaseCacheFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>
          }
          findFirst: {
            args: Prisma.SapPurchaseCacheFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SapPurchaseCacheFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>
          }
          findMany: {
            args: Prisma.SapPurchaseCacheFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>[]
          }
          create: {
            args: Prisma.SapPurchaseCacheCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>
          }
          createMany: {
            args: Prisma.SapPurchaseCacheCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SapPurchaseCacheCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>[]
          }
          delete: {
            args: Prisma.SapPurchaseCacheDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>
          }
          update: {
            args: Prisma.SapPurchaseCacheUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>
          }
          deleteMany: {
            args: Prisma.SapPurchaseCacheDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SapPurchaseCacheUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SapPurchaseCacheUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>[]
          }
          upsert: {
            args: Prisma.SapPurchaseCacheUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SapPurchaseCachePayload>
          }
          aggregate: {
            args: Prisma.SapPurchaseCacheAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSapPurchaseCache>
          }
          groupBy: {
            args: Prisma.SapPurchaseCacheGroupByArgs<ExtArgs>
            result: $Utils.Optional<SapPurchaseCacheGroupByOutputType>[]
          }
          count: {
            args: Prisma.SapPurchaseCacheCountArgs<ExtArgs>
            result: $Utils.Optional<SapPurchaseCacheCountAggregateOutputType> | number
          }
        }
      }
      AdpPtoSchedule: {
        payload: Prisma.$AdpPtoSchedulePayload<ExtArgs>
        fields: Prisma.AdpPtoScheduleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AdpPtoScheduleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AdpPtoScheduleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>
          }
          findFirst: {
            args: Prisma.AdpPtoScheduleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AdpPtoScheduleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>
          }
          findMany: {
            args: Prisma.AdpPtoScheduleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>[]
          }
          create: {
            args: Prisma.AdpPtoScheduleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>
          }
          createMany: {
            args: Prisma.AdpPtoScheduleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AdpPtoScheduleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>[]
          }
          delete: {
            args: Prisma.AdpPtoScheduleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>
          }
          update: {
            args: Prisma.AdpPtoScheduleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>
          }
          deleteMany: {
            args: Prisma.AdpPtoScheduleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AdpPtoScheduleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AdpPtoScheduleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>[]
          }
          upsert: {
            args: Prisma.AdpPtoScheduleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AdpPtoSchedulePayload>
          }
          aggregate: {
            args: Prisma.AdpPtoScheduleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAdpPtoSchedule>
          }
          groupBy: {
            args: Prisma.AdpPtoScheduleGroupByArgs<ExtArgs>
            result: $Utils.Optional<AdpPtoScheduleGroupByOutputType>[]
          }
          count: {
            args: Prisma.AdpPtoScheduleCountArgs<ExtArgs>
            result: $Utils.Optional<AdpPtoScheduleCountAggregateOutputType> | number
          }
        }
      }
      DingtalkAnnualLeaveReleasePlan: {
        payload: Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>
        fields: Prisma.DingtalkAnnualLeaveReleasePlanFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>
          }
          findFirst: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>
          }
          findMany: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>[]
          }
          create: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>
          }
          createMany: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>[]
          }
          delete: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>
          }
          update: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>
          }
          deleteMany: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>[]
          }
          upsert: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload>
          }
          aggregate: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDingtalkAnnualLeaveReleasePlan>
          }
          groupBy: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanGroupByArgs<ExtArgs>
            result: $Utils.Optional<DingtalkAnnualLeaveReleasePlanGroupByOutputType>[]
          }
          count: {
            args: Prisma.DingtalkAnnualLeaveReleasePlanCountArgs<ExtArgs>
            result: $Utils.Optional<DingtalkAnnualLeaveReleasePlanCountAggregateOutputType> | number
          }
        }
      }
      DevItem: {
        payload: Prisma.$DevItemPayload<ExtArgs>
        fields: Prisma.DevItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DevItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DevItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>
          }
          findFirst: {
            args: Prisma.DevItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DevItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>
          }
          findMany: {
            args: Prisma.DevItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>[]
          }
          create: {
            args: Prisma.DevItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>
          }
          createMany: {
            args: Prisma.DevItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DevItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>[]
          }
          delete: {
            args: Prisma.DevItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>
          }
          update: {
            args: Prisma.DevItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>
          }
          deleteMany: {
            args: Prisma.DevItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DevItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DevItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>[]
          }
          upsert: {
            args: Prisma.DevItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemPayload>
          }
          aggregate: {
            args: Prisma.DevItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDevItem>
          }
          groupBy: {
            args: Prisma.DevItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<DevItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.DevItemCountArgs<ExtArgs>
            result: $Utils.Optional<DevItemCountAggregateOutputType> | number
          }
        }
      }
      DevItemSequence: {
        payload: Prisma.$DevItemSequencePayload<ExtArgs>
        fields: Prisma.DevItemSequenceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DevItemSequenceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DevItemSequenceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>
          }
          findFirst: {
            args: Prisma.DevItemSequenceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DevItemSequenceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>
          }
          findMany: {
            args: Prisma.DevItemSequenceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>[]
          }
          create: {
            args: Prisma.DevItemSequenceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>
          }
          createMany: {
            args: Prisma.DevItemSequenceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DevItemSequenceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>[]
          }
          delete: {
            args: Prisma.DevItemSequenceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>
          }
          update: {
            args: Prisma.DevItemSequenceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>
          }
          deleteMany: {
            args: Prisma.DevItemSequenceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DevItemSequenceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DevItemSequenceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>[]
          }
          upsert: {
            args: Prisma.DevItemSequenceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DevItemSequencePayload>
          }
          aggregate: {
            args: Prisma.DevItemSequenceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDevItemSequence>
          }
          groupBy: {
            args: Prisma.DevItemSequenceGroupByArgs<ExtArgs>
            result: $Utils.Optional<DevItemSequenceGroupByOutputType>[]
          }
          count: {
            args: Prisma.DevItemSequenceCountArgs<ExtArgs>
            result: $Utils.Optional<DevItemSequenceCountAggregateOutputType> | number
          }
        }
      }
      ReleaseNote: {
        payload: Prisma.$ReleaseNotePayload<ExtArgs>
        fields: Prisma.ReleaseNoteFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ReleaseNoteFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ReleaseNoteFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>
          }
          findFirst: {
            args: Prisma.ReleaseNoteFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ReleaseNoteFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>
          }
          findMany: {
            args: Prisma.ReleaseNoteFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>[]
          }
          create: {
            args: Prisma.ReleaseNoteCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>
          }
          createMany: {
            args: Prisma.ReleaseNoteCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ReleaseNoteCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>[]
          }
          delete: {
            args: Prisma.ReleaseNoteDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>
          }
          update: {
            args: Prisma.ReleaseNoteUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>
          }
          deleteMany: {
            args: Prisma.ReleaseNoteDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ReleaseNoteUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ReleaseNoteUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>[]
          }
          upsert: {
            args: Prisma.ReleaseNoteUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseNotePayload>
          }
          aggregate: {
            args: Prisma.ReleaseNoteAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateReleaseNote>
          }
          groupBy: {
            args: Prisma.ReleaseNoteGroupByArgs<ExtArgs>
            result: $Utils.Optional<ReleaseNoteGroupByOutputType>[]
          }
          count: {
            args: Prisma.ReleaseNoteCountArgs<ExtArgs>
            result: $Utils.Optional<ReleaseNoteCountAggregateOutputType> | number
          }
        }
      }
      Feedback: {
        payload: Prisma.$FeedbackPayload<ExtArgs>
        fields: Prisma.FeedbackFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FeedbackFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FeedbackFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>
          }
          findFirst: {
            args: Prisma.FeedbackFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FeedbackFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>
          }
          findMany: {
            args: Prisma.FeedbackFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>[]
          }
          create: {
            args: Prisma.FeedbackCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>
          }
          createMany: {
            args: Prisma.FeedbackCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FeedbackCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>[]
          }
          delete: {
            args: Prisma.FeedbackDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>
          }
          update: {
            args: Prisma.FeedbackUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>
          }
          deleteMany: {
            args: Prisma.FeedbackDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FeedbackUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FeedbackUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>[]
          }
          upsert: {
            args: Prisma.FeedbackUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FeedbackPayload>
          }
          aggregate: {
            args: Prisma.FeedbackAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFeedback>
          }
          groupBy: {
            args: Prisma.FeedbackGroupByArgs<ExtArgs>
            result: $Utils.Optional<FeedbackGroupByOutputType>[]
          }
          count: {
            args: Prisma.FeedbackCountArgs<ExtArgs>
            result: $Utils.Optional<FeedbackCountAggregateOutputType> | number
          }
        }
      }
      FormDefinition: {
        payload: Prisma.$FormDefinitionPayload<ExtArgs>
        fields: Prisma.FormDefinitionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FormDefinitionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FormDefinitionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>
          }
          findFirst: {
            args: Prisma.FormDefinitionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FormDefinitionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>
          }
          findMany: {
            args: Prisma.FormDefinitionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>[]
          }
          create: {
            args: Prisma.FormDefinitionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>
          }
          createMany: {
            args: Prisma.FormDefinitionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FormDefinitionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>[]
          }
          delete: {
            args: Prisma.FormDefinitionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>
          }
          update: {
            args: Prisma.FormDefinitionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>
          }
          deleteMany: {
            args: Prisma.FormDefinitionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FormDefinitionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FormDefinitionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>[]
          }
          upsert: {
            args: Prisma.FormDefinitionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormDefinitionPayload>
          }
          aggregate: {
            args: Prisma.FormDefinitionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFormDefinition>
          }
          groupBy: {
            args: Prisma.FormDefinitionGroupByArgs<ExtArgs>
            result: $Utils.Optional<FormDefinitionGroupByOutputType>[]
          }
          count: {
            args: Prisma.FormDefinitionCountArgs<ExtArgs>
            result: $Utils.Optional<FormDefinitionCountAggregateOutputType> | number
          }
        }
      }
      FormVersion: {
        payload: Prisma.$FormVersionPayload<ExtArgs>
        fields: Prisma.FormVersionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FormVersionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FormVersionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>
          }
          findFirst: {
            args: Prisma.FormVersionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FormVersionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>
          }
          findMany: {
            args: Prisma.FormVersionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>[]
          }
          create: {
            args: Prisma.FormVersionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>
          }
          createMany: {
            args: Prisma.FormVersionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FormVersionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>[]
          }
          delete: {
            args: Prisma.FormVersionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>
          }
          update: {
            args: Prisma.FormVersionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>
          }
          deleteMany: {
            args: Prisma.FormVersionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FormVersionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FormVersionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>[]
          }
          upsert: {
            args: Prisma.FormVersionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormVersionPayload>
          }
          aggregate: {
            args: Prisma.FormVersionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFormVersion>
          }
          groupBy: {
            args: Prisma.FormVersionGroupByArgs<ExtArgs>
            result: $Utils.Optional<FormVersionGroupByOutputType>[]
          }
          count: {
            args: Prisma.FormVersionCountArgs<ExtArgs>
            result: $Utils.Optional<FormVersionCountAggregateOutputType> | number
          }
        }
      }
      FormInstance: {
        payload: Prisma.$FormInstancePayload<ExtArgs>
        fields: Prisma.FormInstanceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FormInstanceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FormInstanceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>
          }
          findFirst: {
            args: Prisma.FormInstanceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FormInstanceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>
          }
          findMany: {
            args: Prisma.FormInstanceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>[]
          }
          create: {
            args: Prisma.FormInstanceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>
          }
          createMany: {
            args: Prisma.FormInstanceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FormInstanceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>[]
          }
          delete: {
            args: Prisma.FormInstanceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>
          }
          update: {
            args: Prisma.FormInstanceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>
          }
          deleteMany: {
            args: Prisma.FormInstanceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FormInstanceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FormInstanceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>[]
          }
          upsert: {
            args: Prisma.FormInstanceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormInstancePayload>
          }
          aggregate: {
            args: Prisma.FormInstanceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFormInstance>
          }
          groupBy: {
            args: Prisma.FormInstanceGroupByArgs<ExtArgs>
            result: $Utils.Optional<FormInstanceGroupByOutputType>[]
          }
          count: {
            args: Prisma.FormInstanceCountArgs<ExtArgs>
            result: $Utils.Optional<FormInstanceCountAggregateOutputType> | number
          }
        }
      }
      FormTranslation: {
        payload: Prisma.$FormTranslationPayload<ExtArgs>
        fields: Prisma.FormTranslationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FormTranslationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FormTranslationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>
          }
          findFirst: {
            args: Prisma.FormTranslationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FormTranslationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>
          }
          findMany: {
            args: Prisma.FormTranslationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>[]
          }
          create: {
            args: Prisma.FormTranslationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>
          }
          createMany: {
            args: Prisma.FormTranslationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FormTranslationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>[]
          }
          delete: {
            args: Prisma.FormTranslationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>
          }
          update: {
            args: Prisma.FormTranslationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>
          }
          deleteMany: {
            args: Prisma.FormTranslationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FormTranslationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FormTranslationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>[]
          }
          upsert: {
            args: Prisma.FormTranslationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTranslationPayload>
          }
          aggregate: {
            args: Prisma.FormTranslationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFormTranslation>
          }
          groupBy: {
            args: Prisma.FormTranslationGroupByArgs<ExtArgs>
            result: $Utils.Optional<FormTranslationGroupByOutputType>[]
          }
          count: {
            args: Prisma.FormTranslationCountArgs<ExtArgs>
            result: $Utils.Optional<FormTranslationCountAggregateOutputType> | number
          }
        }
      }
      FormTemplate: {
        payload: Prisma.$FormTemplatePayload<ExtArgs>
        fields: Prisma.FormTemplateFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FormTemplateFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FormTemplateFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>
          }
          findFirst: {
            args: Prisma.FormTemplateFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FormTemplateFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>
          }
          findMany: {
            args: Prisma.FormTemplateFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>[]
          }
          create: {
            args: Prisma.FormTemplateCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>
          }
          createMany: {
            args: Prisma.FormTemplateCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FormTemplateCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>[]
          }
          delete: {
            args: Prisma.FormTemplateDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>
          }
          update: {
            args: Prisma.FormTemplateUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>
          }
          deleteMany: {
            args: Prisma.FormTemplateDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FormTemplateUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FormTemplateUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>[]
          }
          upsert: {
            args: Prisma.FormTemplateUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormTemplatePayload>
          }
          aggregate: {
            args: Prisma.FormTemplateAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFormTemplate>
          }
          groupBy: {
            args: Prisma.FormTemplateGroupByArgs<ExtArgs>
            result: $Utils.Optional<FormTemplateGroupByOutputType>[]
          }
          count: {
            args: Prisma.FormTemplateCountArgs<ExtArgs>
            result: $Utils.Optional<FormTemplateCountAggregateOutputType> | number
          }
        }
      }
      ReleaseSnapshot: {
        payload: Prisma.$ReleaseSnapshotPayload<ExtArgs>
        fields: Prisma.ReleaseSnapshotFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ReleaseSnapshotFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ReleaseSnapshotFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>
          }
          findFirst: {
            args: Prisma.ReleaseSnapshotFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ReleaseSnapshotFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>
          }
          findMany: {
            args: Prisma.ReleaseSnapshotFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>[]
          }
          create: {
            args: Prisma.ReleaseSnapshotCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>
          }
          createMany: {
            args: Prisma.ReleaseSnapshotCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ReleaseSnapshotCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>[]
          }
          delete: {
            args: Prisma.ReleaseSnapshotDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>
          }
          update: {
            args: Prisma.ReleaseSnapshotUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>
          }
          deleteMany: {
            args: Prisma.ReleaseSnapshotDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ReleaseSnapshotUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ReleaseSnapshotUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>[]
          }
          upsert: {
            args: Prisma.ReleaseSnapshotUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ReleaseSnapshotPayload>
          }
          aggregate: {
            args: Prisma.ReleaseSnapshotAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateReleaseSnapshot>
          }
          groupBy: {
            args: Prisma.ReleaseSnapshotGroupByArgs<ExtArgs>
            result: $Utils.Optional<ReleaseSnapshotGroupByOutputType>[]
          }
          count: {
            args: Prisma.ReleaseSnapshotCountArgs<ExtArgs>
            result: $Utils.Optional<ReleaseSnapshotCountAggregateOutputType> | number
          }
        }
      }
      FormWebhook: {
        payload: Prisma.$FormWebhookPayload<ExtArgs>
        fields: Prisma.FormWebhookFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FormWebhookFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FormWebhookFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>
          }
          findFirst: {
            args: Prisma.FormWebhookFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FormWebhookFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>
          }
          findMany: {
            args: Prisma.FormWebhookFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>[]
          }
          create: {
            args: Prisma.FormWebhookCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>
          }
          createMany: {
            args: Prisma.FormWebhookCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FormWebhookCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>[]
          }
          delete: {
            args: Prisma.FormWebhookDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>
          }
          update: {
            args: Prisma.FormWebhookUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>
          }
          deleteMany: {
            args: Prisma.FormWebhookDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FormWebhookUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FormWebhookUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>[]
          }
          upsert: {
            args: Prisma.FormWebhookUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookPayload>
          }
          aggregate: {
            args: Prisma.FormWebhookAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFormWebhook>
          }
          groupBy: {
            args: Prisma.FormWebhookGroupByArgs<ExtArgs>
            result: $Utils.Optional<FormWebhookGroupByOutputType>[]
          }
          count: {
            args: Prisma.FormWebhookCountArgs<ExtArgs>
            result: $Utils.Optional<FormWebhookCountAggregateOutputType> | number
          }
        }
      }
      FormWebhookLog: {
        payload: Prisma.$FormWebhookLogPayload<ExtArgs>
        fields: Prisma.FormWebhookLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FormWebhookLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FormWebhookLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>
          }
          findFirst: {
            args: Prisma.FormWebhookLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FormWebhookLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>
          }
          findMany: {
            args: Prisma.FormWebhookLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>[]
          }
          create: {
            args: Prisma.FormWebhookLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>
          }
          createMany: {
            args: Prisma.FormWebhookLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FormWebhookLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>[]
          }
          delete: {
            args: Prisma.FormWebhookLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>
          }
          update: {
            args: Prisma.FormWebhookLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>
          }
          deleteMany: {
            args: Prisma.FormWebhookLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FormWebhookLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FormWebhookLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>[]
          }
          upsert: {
            args: Prisma.FormWebhookLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FormWebhookLogPayload>
          }
          aggregate: {
            args: Prisma.FormWebhookLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFormWebhookLog>
          }
          groupBy: {
            args: Prisma.FormWebhookLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<FormWebhookLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.FormWebhookLogCountArgs<ExtArgs>
            result: $Utils.Optional<FormWebhookLogCountAggregateOutputType> | number
          }
        }
      }
      User: {
        payload: Prisma.$UserPayload<ExtArgs>
        fields: Prisma.UserFieldRefs
        operations: {
          findUnique: {
            args: Prisma.UserFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.UserFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          findFirst: {
            args: Prisma.UserFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.UserFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          findMany: {
            args: Prisma.UserFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>[]
          }
          create: {
            args: Prisma.UserCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          createMany: {
            args: Prisma.UserCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.UserCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>[]
          }
          delete: {
            args: Prisma.UserDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          update: {
            args: Prisma.UserUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          deleteMany: {
            args: Prisma.UserDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.UserUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.UserUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>[]
          }
          upsert: {
            args: Prisma.UserUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserPayload>
          }
          aggregate: {
            args: Prisma.UserAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateUser>
          }
          groupBy: {
            args: Prisma.UserGroupByArgs<ExtArgs>
            result: $Utils.Optional<UserGroupByOutputType>[]
          }
          count: {
            args: Prisma.UserCountArgs<ExtArgs>
            result: $Utils.Optional<UserCountAggregateOutputType> | number
          }
        }
      }
      Role: {
        payload: Prisma.$RolePayload<ExtArgs>
        fields: Prisma.RoleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RoleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RoleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>
          }
          findFirst: {
            args: Prisma.RoleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RoleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>
          }
          findMany: {
            args: Prisma.RoleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>[]
          }
          create: {
            args: Prisma.RoleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>
          }
          createMany: {
            args: Prisma.RoleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RoleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>[]
          }
          delete: {
            args: Prisma.RoleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>
          }
          update: {
            args: Prisma.RoleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>
          }
          deleteMany: {
            args: Prisma.RoleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RoleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RoleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>[]
          }
          upsert: {
            args: Prisma.RoleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePayload>
          }
          aggregate: {
            args: Prisma.RoleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRole>
          }
          groupBy: {
            args: Prisma.RoleGroupByArgs<ExtArgs>
            result: $Utils.Optional<RoleGroupByOutputType>[]
          }
          count: {
            args: Prisma.RoleCountArgs<ExtArgs>
            result: $Utils.Optional<RoleCountAggregateOutputType> | number
          }
        }
      }
      Permission: {
        payload: Prisma.$PermissionPayload<ExtArgs>
        fields: Prisma.PermissionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PermissionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PermissionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>
          }
          findFirst: {
            args: Prisma.PermissionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PermissionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>
          }
          findMany: {
            args: Prisma.PermissionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>[]
          }
          create: {
            args: Prisma.PermissionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>
          }
          createMany: {
            args: Prisma.PermissionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PermissionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>[]
          }
          delete: {
            args: Prisma.PermissionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>
          }
          update: {
            args: Prisma.PermissionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>
          }
          deleteMany: {
            args: Prisma.PermissionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PermissionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PermissionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>[]
          }
          upsert: {
            args: Prisma.PermissionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionPayload>
          }
          aggregate: {
            args: Prisma.PermissionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePermission>
          }
          groupBy: {
            args: Prisma.PermissionGroupByArgs<ExtArgs>
            result: $Utils.Optional<PermissionGroupByOutputType>[]
          }
          count: {
            args: Prisma.PermissionCountArgs<ExtArgs>
            result: $Utils.Optional<PermissionCountAggregateOutputType> | number
          }
        }
      }
      WorkflowRole: {
        payload: Prisma.$WorkflowRolePayload<ExtArgs>
        fields: Prisma.WorkflowRoleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.WorkflowRoleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.WorkflowRoleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>
          }
          findFirst: {
            args: Prisma.WorkflowRoleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.WorkflowRoleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>
          }
          findMany: {
            args: Prisma.WorkflowRoleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>[]
          }
          create: {
            args: Prisma.WorkflowRoleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>
          }
          createMany: {
            args: Prisma.WorkflowRoleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.WorkflowRoleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>[]
          }
          delete: {
            args: Prisma.WorkflowRoleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>
          }
          update: {
            args: Prisma.WorkflowRoleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>
          }
          deleteMany: {
            args: Prisma.WorkflowRoleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.WorkflowRoleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.WorkflowRoleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>[]
          }
          upsert: {
            args: Prisma.WorkflowRoleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRolePayload>
          }
          aggregate: {
            args: Prisma.WorkflowRoleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateWorkflowRole>
          }
          groupBy: {
            args: Prisma.WorkflowRoleGroupByArgs<ExtArgs>
            result: $Utils.Optional<WorkflowRoleGroupByOutputType>[]
          }
          count: {
            args: Prisma.WorkflowRoleCountArgs<ExtArgs>
            result: $Utils.Optional<WorkflowRoleCountAggregateOutputType> | number
          }
        }
      }
      WorkflowRoleUser: {
        payload: Prisma.$WorkflowRoleUserPayload<ExtArgs>
        fields: Prisma.WorkflowRoleUserFieldRefs
        operations: {
          findUnique: {
            args: Prisma.WorkflowRoleUserFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.WorkflowRoleUserFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>
          }
          findFirst: {
            args: Prisma.WorkflowRoleUserFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.WorkflowRoleUserFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>
          }
          findMany: {
            args: Prisma.WorkflowRoleUserFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>[]
          }
          create: {
            args: Prisma.WorkflowRoleUserCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>
          }
          createMany: {
            args: Prisma.WorkflowRoleUserCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.WorkflowRoleUserCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>[]
          }
          delete: {
            args: Prisma.WorkflowRoleUserDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>
          }
          update: {
            args: Prisma.WorkflowRoleUserUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>
          }
          deleteMany: {
            args: Prisma.WorkflowRoleUserDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.WorkflowRoleUserUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.WorkflowRoleUserUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>[]
          }
          upsert: {
            args: Prisma.WorkflowRoleUserUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WorkflowRoleUserPayload>
          }
          aggregate: {
            args: Prisma.WorkflowRoleUserAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateWorkflowRoleUser>
          }
          groupBy: {
            args: Prisma.WorkflowRoleUserGroupByArgs<ExtArgs>
            result: $Utils.Optional<WorkflowRoleUserGroupByOutputType>[]
          }
          count: {
            args: Prisma.WorkflowRoleUserCountArgs<ExtArgs>
            result: $Utils.Optional<WorkflowRoleUserCountAggregateOutputType> | number
          }
        }
      }
      UserRole: {
        payload: Prisma.$UserRolePayload<ExtArgs>
        fields: Prisma.UserRoleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.UserRoleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.UserRoleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>
          }
          findFirst: {
            args: Prisma.UserRoleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.UserRoleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>
          }
          findMany: {
            args: Prisma.UserRoleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>[]
          }
          create: {
            args: Prisma.UserRoleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>
          }
          createMany: {
            args: Prisma.UserRoleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.UserRoleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>[]
          }
          delete: {
            args: Prisma.UserRoleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>
          }
          update: {
            args: Prisma.UserRoleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>
          }
          deleteMany: {
            args: Prisma.UserRoleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.UserRoleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.UserRoleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>[]
          }
          upsert: {
            args: Prisma.UserRoleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserRolePayload>
          }
          aggregate: {
            args: Prisma.UserRoleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateUserRole>
          }
          groupBy: {
            args: Prisma.UserRoleGroupByArgs<ExtArgs>
            result: $Utils.Optional<UserRoleGroupByOutputType>[]
          }
          count: {
            args: Prisma.UserRoleCountArgs<ExtArgs>
            result: $Utils.Optional<UserRoleCountAggregateOutputType> | number
          }
        }
      }
      RolePermission: {
        payload: Prisma.$RolePermissionPayload<ExtArgs>
        fields: Prisma.RolePermissionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RolePermissionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RolePermissionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>
          }
          findFirst: {
            args: Prisma.RolePermissionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RolePermissionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>
          }
          findMany: {
            args: Prisma.RolePermissionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>[]
          }
          create: {
            args: Prisma.RolePermissionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>
          }
          createMany: {
            args: Prisma.RolePermissionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RolePermissionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>[]
          }
          delete: {
            args: Prisma.RolePermissionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>
          }
          update: {
            args: Prisma.RolePermissionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>
          }
          deleteMany: {
            args: Prisma.RolePermissionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RolePermissionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RolePermissionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>[]
          }
          upsert: {
            args: Prisma.RolePermissionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RolePermissionPayload>
          }
          aggregate: {
            args: Prisma.RolePermissionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRolePermission>
          }
          groupBy: {
            args: Prisma.RolePermissionGroupByArgs<ExtArgs>
            result: $Utils.Optional<RolePermissionGroupByOutputType>[]
          }
          count: {
            args: Prisma.RolePermissionCountArgs<ExtArgs>
            result: $Utils.Optional<RolePermissionCountAggregateOutputType> | number
          }
        }
      }
      DataScope: {
        payload: Prisma.$DataScopePayload<ExtArgs>
        fields: Prisma.DataScopeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DataScopeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DataScopeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>
          }
          findFirst: {
            args: Prisma.DataScopeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DataScopeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>
          }
          findMany: {
            args: Prisma.DataScopeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>[]
          }
          create: {
            args: Prisma.DataScopeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>
          }
          createMany: {
            args: Prisma.DataScopeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DataScopeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>[]
          }
          delete: {
            args: Prisma.DataScopeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>
          }
          update: {
            args: Prisma.DataScopeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>
          }
          deleteMany: {
            args: Prisma.DataScopeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DataScopeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DataScopeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>[]
          }
          upsert: {
            args: Prisma.DataScopeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DataScopePayload>
          }
          aggregate: {
            args: Prisma.DataScopeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDataScope>
          }
          groupBy: {
            args: Prisma.DataScopeGroupByArgs<ExtArgs>
            result: $Utils.Optional<DataScopeGroupByOutputType>[]
          }
          count: {
            args: Prisma.DataScopeCountArgs<ExtArgs>
            result: $Utils.Optional<DataScopeCountAggregateOutputType> | number
          }
        }
      }
      RoleDataScope: {
        payload: Prisma.$RoleDataScopePayload<ExtArgs>
        fields: Prisma.RoleDataScopeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RoleDataScopeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RoleDataScopeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>
          }
          findFirst: {
            args: Prisma.RoleDataScopeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RoleDataScopeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>
          }
          findMany: {
            args: Prisma.RoleDataScopeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>[]
          }
          create: {
            args: Prisma.RoleDataScopeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>
          }
          createMany: {
            args: Prisma.RoleDataScopeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RoleDataScopeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>[]
          }
          delete: {
            args: Prisma.RoleDataScopeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>
          }
          update: {
            args: Prisma.RoleDataScopeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>
          }
          deleteMany: {
            args: Prisma.RoleDataScopeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RoleDataScopeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RoleDataScopeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>[]
          }
          upsert: {
            args: Prisma.RoleDataScopeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RoleDataScopePayload>
          }
          aggregate: {
            args: Prisma.RoleDataScopeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRoleDataScope>
          }
          groupBy: {
            args: Prisma.RoleDataScopeGroupByArgs<ExtArgs>
            result: $Utils.Optional<RoleDataScopeGroupByOutputType>[]
          }
          count: {
            args: Prisma.RoleDataScopeCountArgs<ExtArgs>
            result: $Utils.Optional<RoleDataScopeCountAggregateOutputType> | number
          }
        }
      }
      AIToolGrant: {
        payload: Prisma.$AIToolGrantPayload<ExtArgs>
        fields: Prisma.AIToolGrantFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIToolGrantFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIToolGrantFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>
          }
          findFirst: {
            args: Prisma.AIToolGrantFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIToolGrantFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>
          }
          findMany: {
            args: Prisma.AIToolGrantFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>[]
          }
          create: {
            args: Prisma.AIToolGrantCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>
          }
          createMany: {
            args: Prisma.AIToolGrantCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIToolGrantCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>[]
          }
          delete: {
            args: Prisma.AIToolGrantDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>
          }
          update: {
            args: Prisma.AIToolGrantUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>
          }
          deleteMany: {
            args: Prisma.AIToolGrantDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIToolGrantUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIToolGrantUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>[]
          }
          upsert: {
            args: Prisma.AIToolGrantUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantPayload>
          }
          aggregate: {
            args: Prisma.AIToolGrantAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIToolGrant>
          }
          groupBy: {
            args: Prisma.AIToolGrantGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIToolGrantGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIToolGrantCountArgs<ExtArgs>
            result: $Utils.Optional<AIToolGrantCountAggregateOutputType> | number
          }
        }
      }
      AIToolGrantUser: {
        payload: Prisma.$AIToolGrantUserPayload<ExtArgs>
        fields: Prisma.AIToolGrantUserFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIToolGrantUserFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIToolGrantUserFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>
          }
          findFirst: {
            args: Prisma.AIToolGrantUserFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIToolGrantUserFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>
          }
          findMany: {
            args: Prisma.AIToolGrantUserFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>[]
          }
          create: {
            args: Prisma.AIToolGrantUserCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>
          }
          createMany: {
            args: Prisma.AIToolGrantUserCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIToolGrantUserCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>[]
          }
          delete: {
            args: Prisma.AIToolGrantUserDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>
          }
          update: {
            args: Prisma.AIToolGrantUserUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>
          }
          deleteMany: {
            args: Prisma.AIToolGrantUserDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIToolGrantUserUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIToolGrantUserUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>[]
          }
          upsert: {
            args: Prisma.AIToolGrantUserUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIToolGrantUserPayload>
          }
          aggregate: {
            args: Prisma.AIToolGrantUserAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIToolGrantUser>
          }
          groupBy: {
            args: Prisma.AIToolGrantUserGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIToolGrantUserGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIToolGrantUserCountArgs<ExtArgs>
            result: $Utils.Optional<AIToolGrantUserCountAggregateOutputType> | number
          }
        }
      }
      PermissionDelegation: {
        payload: Prisma.$PermissionDelegationPayload<ExtArgs>
        fields: Prisma.PermissionDelegationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PermissionDelegationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PermissionDelegationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>
          }
          findFirst: {
            args: Prisma.PermissionDelegationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PermissionDelegationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>
          }
          findMany: {
            args: Prisma.PermissionDelegationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>[]
          }
          create: {
            args: Prisma.PermissionDelegationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>
          }
          createMany: {
            args: Prisma.PermissionDelegationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PermissionDelegationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>[]
          }
          delete: {
            args: Prisma.PermissionDelegationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>
          }
          update: {
            args: Prisma.PermissionDelegationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>
          }
          deleteMany: {
            args: Prisma.PermissionDelegationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PermissionDelegationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PermissionDelegationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>[]
          }
          upsert: {
            args: Prisma.PermissionDelegationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PermissionDelegationPayload>
          }
          aggregate: {
            args: Prisma.PermissionDelegationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePermissionDelegation>
          }
          groupBy: {
            args: Prisma.PermissionDelegationGroupByArgs<ExtArgs>
            result: $Utils.Optional<PermissionDelegationGroupByOutputType>[]
          }
          count: {
            args: Prisma.PermissionDelegationCountArgs<ExtArgs>
            result: $Utils.Optional<PermissionDelegationCountAggregateOutputType> | number
          }
        }
      }
      FieldPermission: {
        payload: Prisma.$FieldPermissionPayload<ExtArgs>
        fields: Prisma.FieldPermissionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.FieldPermissionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.FieldPermissionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>
          }
          findFirst: {
            args: Prisma.FieldPermissionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.FieldPermissionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>
          }
          findMany: {
            args: Prisma.FieldPermissionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>[]
          }
          create: {
            args: Prisma.FieldPermissionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>
          }
          createMany: {
            args: Prisma.FieldPermissionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.FieldPermissionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>[]
          }
          delete: {
            args: Prisma.FieldPermissionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>
          }
          update: {
            args: Prisma.FieldPermissionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>
          }
          deleteMany: {
            args: Prisma.FieldPermissionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.FieldPermissionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.FieldPermissionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>[]
          }
          upsert: {
            args: Prisma.FieldPermissionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$FieldPermissionPayload>
          }
          aggregate: {
            args: Prisma.FieldPermissionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateFieldPermission>
          }
          groupBy: {
            args: Prisma.FieldPermissionGroupByArgs<ExtArgs>
            result: $Utils.Optional<FieldPermissionGroupByOutputType>[]
          }
          count: {
            args: Prisma.FieldPermissionCountArgs<ExtArgs>
            result: $Utils.Optional<FieldPermissionCountAggregateOutputType> | number
          }
        }
      }
      IamAuditLog: {
        payload: Prisma.$IamAuditLogPayload<ExtArgs>
        fields: Prisma.IamAuditLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.IamAuditLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.IamAuditLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>
          }
          findFirst: {
            args: Prisma.IamAuditLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.IamAuditLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>
          }
          findMany: {
            args: Prisma.IamAuditLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>[]
          }
          create: {
            args: Prisma.IamAuditLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>
          }
          createMany: {
            args: Prisma.IamAuditLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.IamAuditLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>[]
          }
          delete: {
            args: Prisma.IamAuditLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>
          }
          update: {
            args: Prisma.IamAuditLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>
          }
          deleteMany: {
            args: Prisma.IamAuditLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.IamAuditLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.IamAuditLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>[]
          }
          upsert: {
            args: Prisma.IamAuditLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$IamAuditLogPayload>
          }
          aggregate: {
            args: Prisma.IamAuditLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateIamAuditLog>
          }
          groupBy: {
            args: Prisma.IamAuditLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<IamAuditLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.IamAuditLogCountArgs<ExtArgs>
            result: $Utils.Optional<IamAuditLogCountAggregateOutputType> | number
          }
        }
      }
      EmployeeSlugBinding: {
        payload: Prisma.$EmployeeSlugBindingPayload<ExtArgs>
        fields: Prisma.EmployeeSlugBindingFieldRefs
        operations: {
          findUnique: {
            args: Prisma.EmployeeSlugBindingFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.EmployeeSlugBindingFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>
          }
          findFirst: {
            args: Prisma.EmployeeSlugBindingFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.EmployeeSlugBindingFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>
          }
          findMany: {
            args: Prisma.EmployeeSlugBindingFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>[]
          }
          create: {
            args: Prisma.EmployeeSlugBindingCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>
          }
          createMany: {
            args: Prisma.EmployeeSlugBindingCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.EmployeeSlugBindingCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>[]
          }
          delete: {
            args: Prisma.EmployeeSlugBindingDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>
          }
          update: {
            args: Prisma.EmployeeSlugBindingUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>
          }
          deleteMany: {
            args: Prisma.EmployeeSlugBindingDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.EmployeeSlugBindingUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.EmployeeSlugBindingUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>[]
          }
          upsert: {
            args: Prisma.EmployeeSlugBindingUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EmployeeSlugBindingPayload>
          }
          aggregate: {
            args: Prisma.EmployeeSlugBindingAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateEmployeeSlugBinding>
          }
          groupBy: {
            args: Prisma.EmployeeSlugBindingGroupByArgs<ExtArgs>
            result: $Utils.Optional<EmployeeSlugBindingGroupByOutputType>[]
          }
          count: {
            args: Prisma.EmployeeSlugBindingCountArgs<ExtArgs>
            result: $Utils.Optional<EmployeeSlugBindingCountAggregateOutputType> | number
          }
        }
      }
      InternalApp: {
        payload: Prisma.$InternalAppPayload<ExtArgs>
        fields: Prisma.InternalAppFieldRefs
        operations: {
          findUnique: {
            args: Prisma.InternalAppFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.InternalAppFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>
          }
          findFirst: {
            args: Prisma.InternalAppFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.InternalAppFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>
          }
          findMany: {
            args: Prisma.InternalAppFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>[]
          }
          create: {
            args: Prisma.InternalAppCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>
          }
          createMany: {
            args: Prisma.InternalAppCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.InternalAppCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>[]
          }
          delete: {
            args: Prisma.InternalAppDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>
          }
          update: {
            args: Prisma.InternalAppUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>
          }
          deleteMany: {
            args: Prisma.InternalAppDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.InternalAppUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.InternalAppUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>[]
          }
          upsert: {
            args: Prisma.InternalAppUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppPayload>
          }
          aggregate: {
            args: Prisma.InternalAppAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateInternalApp>
          }
          groupBy: {
            args: Prisma.InternalAppGroupByArgs<ExtArgs>
            result: $Utils.Optional<InternalAppGroupByOutputType>[]
          }
          count: {
            args: Prisma.InternalAppCountArgs<ExtArgs>
            result: $Utils.Optional<InternalAppCountAggregateOutputType> | number
          }
        }
      }
      InternalAppDeployment: {
        payload: Prisma.$InternalAppDeploymentPayload<ExtArgs>
        fields: Prisma.InternalAppDeploymentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.InternalAppDeploymentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.InternalAppDeploymentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>
          }
          findFirst: {
            args: Prisma.InternalAppDeploymentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.InternalAppDeploymentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>
          }
          findMany: {
            args: Prisma.InternalAppDeploymentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>[]
          }
          create: {
            args: Prisma.InternalAppDeploymentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>
          }
          createMany: {
            args: Prisma.InternalAppDeploymentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.InternalAppDeploymentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>[]
          }
          delete: {
            args: Prisma.InternalAppDeploymentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>
          }
          update: {
            args: Prisma.InternalAppDeploymentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>
          }
          deleteMany: {
            args: Prisma.InternalAppDeploymentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.InternalAppDeploymentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.InternalAppDeploymentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>[]
          }
          upsert: {
            args: Prisma.InternalAppDeploymentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppDeploymentPayload>
          }
          aggregate: {
            args: Prisma.InternalAppDeploymentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateInternalAppDeployment>
          }
          groupBy: {
            args: Prisma.InternalAppDeploymentGroupByArgs<ExtArgs>
            result: $Utils.Optional<InternalAppDeploymentGroupByOutputType>[]
          }
          count: {
            args: Prisma.InternalAppDeploymentCountArgs<ExtArgs>
            result: $Utils.Optional<InternalAppDeploymentCountAggregateOutputType> | number
          }
        }
      }
      InternalAppEnvVar: {
        payload: Prisma.$InternalAppEnvVarPayload<ExtArgs>
        fields: Prisma.InternalAppEnvVarFieldRefs
        operations: {
          findUnique: {
            args: Prisma.InternalAppEnvVarFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.InternalAppEnvVarFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>
          }
          findFirst: {
            args: Prisma.InternalAppEnvVarFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.InternalAppEnvVarFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>
          }
          findMany: {
            args: Prisma.InternalAppEnvVarFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>[]
          }
          create: {
            args: Prisma.InternalAppEnvVarCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>
          }
          createMany: {
            args: Prisma.InternalAppEnvVarCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.InternalAppEnvVarCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>[]
          }
          delete: {
            args: Prisma.InternalAppEnvVarDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>
          }
          update: {
            args: Prisma.InternalAppEnvVarUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>
          }
          deleteMany: {
            args: Prisma.InternalAppEnvVarDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.InternalAppEnvVarUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.InternalAppEnvVarUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>[]
          }
          upsert: {
            args: Prisma.InternalAppEnvVarUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEnvVarPayload>
          }
          aggregate: {
            args: Prisma.InternalAppEnvVarAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateInternalAppEnvVar>
          }
          groupBy: {
            args: Prisma.InternalAppEnvVarGroupByArgs<ExtArgs>
            result: $Utils.Optional<InternalAppEnvVarGroupByOutputType>[]
          }
          count: {
            args: Prisma.InternalAppEnvVarCountArgs<ExtArgs>
            result: $Utils.Optional<InternalAppEnvVarCountAggregateOutputType> | number
          }
        }
      }
      InternalAppEmployeeToken: {
        payload: Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>
        fields: Prisma.InternalAppEmployeeTokenFieldRefs
        operations: {
          findUnique: {
            args: Prisma.InternalAppEmployeeTokenFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.InternalAppEmployeeTokenFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>
          }
          findFirst: {
            args: Prisma.InternalAppEmployeeTokenFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.InternalAppEmployeeTokenFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>
          }
          findMany: {
            args: Prisma.InternalAppEmployeeTokenFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>[]
          }
          create: {
            args: Prisma.InternalAppEmployeeTokenCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>
          }
          createMany: {
            args: Prisma.InternalAppEmployeeTokenCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.InternalAppEmployeeTokenCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>[]
          }
          delete: {
            args: Prisma.InternalAppEmployeeTokenDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>
          }
          update: {
            args: Prisma.InternalAppEmployeeTokenUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>
          }
          deleteMany: {
            args: Prisma.InternalAppEmployeeTokenDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.InternalAppEmployeeTokenUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.InternalAppEmployeeTokenUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>[]
          }
          upsert: {
            args: Prisma.InternalAppEmployeeTokenUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEmployeeTokenPayload>
          }
          aggregate: {
            args: Prisma.InternalAppEmployeeTokenAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateInternalAppEmployeeToken>
          }
          groupBy: {
            args: Prisma.InternalAppEmployeeTokenGroupByArgs<ExtArgs>
            result: $Utils.Optional<InternalAppEmployeeTokenGroupByOutputType>[]
          }
          count: {
            args: Prisma.InternalAppEmployeeTokenCountArgs<ExtArgs>
            result: $Utils.Optional<InternalAppEmployeeTokenCountAggregateOutputType> | number
          }
        }
      }
      InternalAppEvent: {
        payload: Prisma.$InternalAppEventPayload<ExtArgs>
        fields: Prisma.InternalAppEventFieldRefs
        operations: {
          findUnique: {
            args: Prisma.InternalAppEventFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.InternalAppEventFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>
          }
          findFirst: {
            args: Prisma.InternalAppEventFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.InternalAppEventFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>
          }
          findMany: {
            args: Prisma.InternalAppEventFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>[]
          }
          create: {
            args: Prisma.InternalAppEventCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>
          }
          createMany: {
            args: Prisma.InternalAppEventCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.InternalAppEventCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>[]
          }
          delete: {
            args: Prisma.InternalAppEventDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>
          }
          update: {
            args: Prisma.InternalAppEventUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>
          }
          deleteMany: {
            args: Prisma.InternalAppEventDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.InternalAppEventUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.InternalAppEventUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>[]
          }
          upsert: {
            args: Prisma.InternalAppEventUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InternalAppEventPayload>
          }
          aggregate: {
            args: Prisma.InternalAppEventAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateInternalAppEvent>
          }
          groupBy: {
            args: Prisma.InternalAppEventGroupByArgs<ExtArgs>
            result: $Utils.Optional<InternalAppEventGroupByOutputType>[]
          }
          count: {
            args: Prisma.InternalAppEventCountArgs<ExtArgs>
            result: $Utils.Optional<InternalAppEventCountAggregateOutputType> | number
          }
        }
      }
      KnowledgeArticle: {
        payload: Prisma.$KnowledgeArticlePayload<ExtArgs>
        fields: Prisma.KnowledgeArticleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.KnowledgeArticleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.KnowledgeArticleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>
          }
          findFirst: {
            args: Prisma.KnowledgeArticleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.KnowledgeArticleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>
          }
          findMany: {
            args: Prisma.KnowledgeArticleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>[]
          }
          create: {
            args: Prisma.KnowledgeArticleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>
          }
          createMany: {
            args: Prisma.KnowledgeArticleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.KnowledgeArticleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>[]
          }
          delete: {
            args: Prisma.KnowledgeArticleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>
          }
          update: {
            args: Prisma.KnowledgeArticleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>
          }
          deleteMany: {
            args: Prisma.KnowledgeArticleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.KnowledgeArticleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.KnowledgeArticleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>[]
          }
          upsert: {
            args: Prisma.KnowledgeArticleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KnowledgeArticlePayload>
          }
          aggregate: {
            args: Prisma.KnowledgeArticleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateKnowledgeArticle>
          }
          groupBy: {
            args: Prisma.KnowledgeArticleGroupByArgs<ExtArgs>
            result: $Utils.Optional<KnowledgeArticleGroupByOutputType>[]
          }
          count: {
            args: Prisma.KnowledgeArticleCountArgs<ExtArgs>
            result: $Utils.Optional<KnowledgeArticleCountAggregateOutputType> | number
          }
        }
      }
      SPDocumentIndex: {
        payload: Prisma.$SPDocumentIndexPayload<ExtArgs>
        fields: Prisma.SPDocumentIndexFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SPDocumentIndexFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SPDocumentIndexFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>
          }
          findFirst: {
            args: Prisma.SPDocumentIndexFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SPDocumentIndexFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>
          }
          findMany: {
            args: Prisma.SPDocumentIndexFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>[]
          }
          create: {
            args: Prisma.SPDocumentIndexCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>
          }
          createMany: {
            args: Prisma.SPDocumentIndexCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SPDocumentIndexCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>[]
          }
          delete: {
            args: Prisma.SPDocumentIndexDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>
          }
          update: {
            args: Prisma.SPDocumentIndexUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>
          }
          deleteMany: {
            args: Prisma.SPDocumentIndexDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SPDocumentIndexUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SPDocumentIndexUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>[]
          }
          upsert: {
            args: Prisma.SPDocumentIndexUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPDocumentIndexPayload>
          }
          aggregate: {
            args: Prisma.SPDocumentIndexAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSPDocumentIndex>
          }
          groupBy: {
            args: Prisma.SPDocumentIndexGroupByArgs<ExtArgs>
            result: $Utils.Optional<SPDocumentIndexGroupByOutputType>[]
          }
          count: {
            args: Prisma.SPDocumentIndexCountArgs<ExtArgs>
            result: $Utils.Optional<SPDocumentIndexCountAggregateOutputType> | number
          }
        }
      }
      SPFolderIndex: {
        payload: Prisma.$SPFolderIndexPayload<ExtArgs>
        fields: Prisma.SPFolderIndexFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SPFolderIndexFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SPFolderIndexFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>
          }
          findFirst: {
            args: Prisma.SPFolderIndexFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SPFolderIndexFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>
          }
          findMany: {
            args: Prisma.SPFolderIndexFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>[]
          }
          create: {
            args: Prisma.SPFolderIndexCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>
          }
          createMany: {
            args: Prisma.SPFolderIndexCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SPFolderIndexCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>[]
          }
          delete: {
            args: Prisma.SPFolderIndexDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>
          }
          update: {
            args: Prisma.SPFolderIndexUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>
          }
          deleteMany: {
            args: Prisma.SPFolderIndexDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SPFolderIndexUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SPFolderIndexUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>[]
          }
          upsert: {
            args: Prisma.SPFolderIndexUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SPFolderIndexPayload>
          }
          aggregate: {
            args: Prisma.SPFolderIndexAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSPFolderIndex>
          }
          groupBy: {
            args: Prisma.SPFolderIndexGroupByArgs<ExtArgs>
            result: $Utils.Optional<SPFolderIndexGroupByOutputType>[]
          }
          count: {
            args: Prisma.SPFolderIndexCountArgs<ExtArgs>
            result: $Utils.Optional<SPFolderIndexCountAggregateOutputType> | number
          }
        }
      }
      RagflowDocument: {
        payload: Prisma.$RagflowDocumentPayload<ExtArgs>
        fields: Prisma.RagflowDocumentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RagflowDocumentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RagflowDocumentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>
          }
          findFirst: {
            args: Prisma.RagflowDocumentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RagflowDocumentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>
          }
          findMany: {
            args: Prisma.RagflowDocumentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>[]
          }
          create: {
            args: Prisma.RagflowDocumentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>
          }
          createMany: {
            args: Prisma.RagflowDocumentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RagflowDocumentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>[]
          }
          delete: {
            args: Prisma.RagflowDocumentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>
          }
          update: {
            args: Prisma.RagflowDocumentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>
          }
          deleteMany: {
            args: Prisma.RagflowDocumentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RagflowDocumentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RagflowDocumentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>[]
          }
          upsert: {
            args: Prisma.RagflowDocumentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RagflowDocumentPayload>
          }
          aggregate: {
            args: Prisma.RagflowDocumentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRagflowDocument>
          }
          groupBy: {
            args: Prisma.RagflowDocumentGroupByArgs<ExtArgs>
            result: $Utils.Optional<RagflowDocumentGroupByOutputType>[]
          }
          count: {
            args: Prisma.RagflowDocumentCountArgs<ExtArgs>
            result: $Utils.Optional<RagflowDocumentCountAggregateOutputType> | number
          }
        }
      }
      AIQALog: {
        payload: Prisma.$AIQALogPayload<ExtArgs>
        fields: Prisma.AIQALogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AIQALogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AIQALogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>
          }
          findFirst: {
            args: Prisma.AIQALogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AIQALogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>
          }
          findMany: {
            args: Prisma.AIQALogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>[]
          }
          create: {
            args: Prisma.AIQALogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>
          }
          createMany: {
            args: Prisma.AIQALogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AIQALogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>[]
          }
          delete: {
            args: Prisma.AIQALogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>
          }
          update: {
            args: Prisma.AIQALogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>
          }
          deleteMany: {
            args: Prisma.AIQALogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AIQALogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AIQALogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>[]
          }
          upsert: {
            args: Prisma.AIQALogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AIQALogPayload>
          }
          aggregate: {
            args: Prisma.AIQALogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAIQALog>
          }
          groupBy: {
            args: Prisma.AIQALogGroupByArgs<ExtArgs>
            result: $Utils.Optional<AIQALogGroupByOutputType>[]
          }
          count: {
            args: Prisma.AIQALogCountArgs<ExtArgs>
            result: $Utils.Optional<AIQALogCountAggregateOutputType> | number
          }
        }
      }
      SearchLog: {
        payload: Prisma.$SearchLogPayload<ExtArgs>
        fields: Prisma.SearchLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SearchLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SearchLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>
          }
          findFirst: {
            args: Prisma.SearchLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SearchLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>
          }
          findMany: {
            args: Prisma.SearchLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>[]
          }
          create: {
            args: Prisma.SearchLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>
          }
          createMany: {
            args: Prisma.SearchLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SearchLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>[]
          }
          delete: {
            args: Prisma.SearchLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>
          }
          update: {
            args: Prisma.SearchLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>
          }
          deleteMany: {
            args: Prisma.SearchLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SearchLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SearchLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>[]
          }
          upsert: {
            args: Prisma.SearchLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SearchLogPayload>
          }
          aggregate: {
            args: Prisma.SearchLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSearchLog>
          }
          groupBy: {
            args: Prisma.SearchLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<SearchLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.SearchLogCountArgs<ExtArgs>
            result: $Utils.Optional<SearchLogCountAggregateOutputType> | number
          }
        }
      }
      DocumentView: {
        payload: Prisma.$DocumentViewPayload<ExtArgs>
        fields: Prisma.DocumentViewFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DocumentViewFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DocumentViewFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>
          }
          findFirst: {
            args: Prisma.DocumentViewFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DocumentViewFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>
          }
          findMany: {
            args: Prisma.DocumentViewFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>[]
          }
          create: {
            args: Prisma.DocumentViewCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>
          }
          createMany: {
            args: Prisma.DocumentViewCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DocumentViewCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>[]
          }
          delete: {
            args: Prisma.DocumentViewDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>
          }
          update: {
            args: Prisma.DocumentViewUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>
          }
          deleteMany: {
            args: Prisma.DocumentViewDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DocumentViewUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DocumentViewUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>[]
          }
          upsert: {
            args: Prisma.DocumentViewUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentViewPayload>
          }
          aggregate: {
            args: Prisma.DocumentViewAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDocumentView>
          }
          groupBy: {
            args: Prisma.DocumentViewGroupByArgs<ExtArgs>
            result: $Utils.Optional<DocumentViewGroupByOutputType>[]
          }
          count: {
            args: Prisma.DocumentViewCountArgs<ExtArgs>
            result: $Utils.Optional<DocumentViewCountAggregateOutputType> | number
          }
        }
      }
      DocumentLike: {
        payload: Prisma.$DocumentLikePayload<ExtArgs>
        fields: Prisma.DocumentLikeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DocumentLikeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DocumentLikeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>
          }
          findFirst: {
            args: Prisma.DocumentLikeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DocumentLikeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>
          }
          findMany: {
            args: Prisma.DocumentLikeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>[]
          }
          create: {
            args: Prisma.DocumentLikeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>
          }
          createMany: {
            args: Prisma.DocumentLikeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DocumentLikeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>[]
          }
          delete: {
            args: Prisma.DocumentLikeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>
          }
          update: {
            args: Prisma.DocumentLikeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>
          }
          deleteMany: {
            args: Prisma.DocumentLikeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DocumentLikeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DocumentLikeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>[]
          }
          upsert: {
            args: Prisma.DocumentLikeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentLikePayload>
          }
          aggregate: {
            args: Prisma.DocumentLikeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDocumentLike>
          }
          groupBy: {
            args: Prisma.DocumentLikeGroupByArgs<ExtArgs>
            result: $Utils.Optional<DocumentLikeGroupByOutputType>[]
          }
          count: {
            args: Prisma.DocumentLikeCountArgs<ExtArgs>
            result: $Utils.Optional<DocumentLikeCountAggregateOutputType> | number
          }
        }
      }
      DocumentComment: {
        payload: Prisma.$DocumentCommentPayload<ExtArgs>
        fields: Prisma.DocumentCommentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DocumentCommentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DocumentCommentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>
          }
          findFirst: {
            args: Prisma.DocumentCommentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DocumentCommentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>
          }
          findMany: {
            args: Prisma.DocumentCommentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>[]
          }
          create: {
            args: Prisma.DocumentCommentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>
          }
          createMany: {
            args: Prisma.DocumentCommentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DocumentCommentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>[]
          }
          delete: {
            args: Prisma.DocumentCommentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>
          }
          update: {
            args: Prisma.DocumentCommentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>
          }
          deleteMany: {
            args: Prisma.DocumentCommentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DocumentCommentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DocumentCommentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>[]
          }
          upsert: {
            args: Prisma.DocumentCommentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DocumentCommentPayload>
          }
          aggregate: {
            args: Prisma.DocumentCommentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDocumentComment>
          }
          groupBy: {
            args: Prisma.DocumentCommentGroupByArgs<ExtArgs>
            result: $Utils.Optional<DocumentCommentGroupByOutputType>[]
          }
          count: {
            args: Prisma.DocumentCommentCountArgs<ExtArgs>
            result: $Utils.Optional<DocumentCommentCountAggregateOutputType> | number
          }
        }
      }
      UserMention: {
        payload: Prisma.$UserMentionPayload<ExtArgs>
        fields: Prisma.UserMentionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.UserMentionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.UserMentionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>
          }
          findFirst: {
            args: Prisma.UserMentionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.UserMentionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>
          }
          findMany: {
            args: Prisma.UserMentionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>[]
          }
          create: {
            args: Prisma.UserMentionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>
          }
          createMany: {
            args: Prisma.UserMentionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.UserMentionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>[]
          }
          delete: {
            args: Prisma.UserMentionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>
          }
          update: {
            args: Prisma.UserMentionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>
          }
          deleteMany: {
            args: Prisma.UserMentionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.UserMentionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.UserMentionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>[]
          }
          upsert: {
            args: Prisma.UserMentionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UserMentionPayload>
          }
          aggregate: {
            args: Prisma.UserMentionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateUserMention>
          }
          groupBy: {
            args: Prisma.UserMentionGroupByArgs<ExtArgs>
            result: $Utils.Optional<UserMentionGroupByOutputType>[]
          }
          count: {
            args: Prisma.UserMentionCountArgs<ExtArgs>
            result: $Utils.Optional<UserMentionCountAggregateOutputType> | number
          }
        }
      }
      SyncTask: {
        payload: Prisma.$SyncTaskPayload<ExtArgs>
        fields: Prisma.SyncTaskFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SyncTaskFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SyncTaskFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>
          }
          findFirst: {
            args: Prisma.SyncTaskFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SyncTaskFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>
          }
          findMany: {
            args: Prisma.SyncTaskFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>[]
          }
          create: {
            args: Prisma.SyncTaskCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>
          }
          createMany: {
            args: Prisma.SyncTaskCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SyncTaskCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>[]
          }
          delete: {
            args: Prisma.SyncTaskDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>
          }
          update: {
            args: Prisma.SyncTaskUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>
          }
          deleteMany: {
            args: Prisma.SyncTaskDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SyncTaskUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SyncTaskUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>[]
          }
          upsert: {
            args: Prisma.SyncTaskUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskPayload>
          }
          aggregate: {
            args: Prisma.SyncTaskAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSyncTask>
          }
          groupBy: {
            args: Prisma.SyncTaskGroupByArgs<ExtArgs>
            result: $Utils.Optional<SyncTaskGroupByOutputType>[]
          }
          count: {
            args: Prisma.SyncTaskCountArgs<ExtArgs>
            result: $Utils.Optional<SyncTaskCountAggregateOutputType> | number
          }
        }
      }
      SyncTaskSkippedItem: {
        payload: Prisma.$SyncTaskSkippedItemPayload<ExtArgs>
        fields: Prisma.SyncTaskSkippedItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SyncTaskSkippedItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SyncTaskSkippedItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>
          }
          findFirst: {
            args: Prisma.SyncTaskSkippedItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SyncTaskSkippedItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>
          }
          findMany: {
            args: Prisma.SyncTaskSkippedItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>[]
          }
          create: {
            args: Prisma.SyncTaskSkippedItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>
          }
          createMany: {
            args: Prisma.SyncTaskSkippedItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SyncTaskSkippedItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>[]
          }
          delete: {
            args: Prisma.SyncTaskSkippedItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>
          }
          update: {
            args: Prisma.SyncTaskSkippedItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>
          }
          deleteMany: {
            args: Prisma.SyncTaskSkippedItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SyncTaskSkippedItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SyncTaskSkippedItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>[]
          }
          upsert: {
            args: Prisma.SyncTaskSkippedItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskSkippedItemPayload>
          }
          aggregate: {
            args: Prisma.SyncTaskSkippedItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSyncTaskSkippedItem>
          }
          groupBy: {
            args: Prisma.SyncTaskSkippedItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<SyncTaskSkippedItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.SyncTaskSkippedItemCountArgs<ExtArgs>
            result: $Utils.Optional<SyncTaskSkippedItemCountAggregateOutputType> | number
          }
        }
      }
      SyncTaskProcessedItem: {
        payload: Prisma.$SyncTaskProcessedItemPayload<ExtArgs>
        fields: Prisma.SyncTaskProcessedItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SyncTaskProcessedItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SyncTaskProcessedItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>
          }
          findFirst: {
            args: Prisma.SyncTaskProcessedItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SyncTaskProcessedItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>
          }
          findMany: {
            args: Prisma.SyncTaskProcessedItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>[]
          }
          create: {
            args: Prisma.SyncTaskProcessedItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>
          }
          createMany: {
            args: Prisma.SyncTaskProcessedItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SyncTaskProcessedItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>[]
          }
          delete: {
            args: Prisma.SyncTaskProcessedItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>
          }
          update: {
            args: Prisma.SyncTaskProcessedItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>
          }
          deleteMany: {
            args: Prisma.SyncTaskProcessedItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SyncTaskProcessedItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SyncTaskProcessedItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>[]
          }
          upsert: {
            args: Prisma.SyncTaskProcessedItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskProcessedItemPayload>
          }
          aggregate: {
            args: Prisma.SyncTaskProcessedItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSyncTaskProcessedItem>
          }
          groupBy: {
            args: Prisma.SyncTaskProcessedItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<SyncTaskProcessedItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.SyncTaskProcessedItemCountArgs<ExtArgs>
            result: $Utils.Optional<SyncTaskProcessedItemCountAggregateOutputType> | number
          }
        }
      }
      SyncTaskFailedItem: {
        payload: Prisma.$SyncTaskFailedItemPayload<ExtArgs>
        fields: Prisma.SyncTaskFailedItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SyncTaskFailedItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SyncTaskFailedItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>
          }
          findFirst: {
            args: Prisma.SyncTaskFailedItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SyncTaskFailedItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>
          }
          findMany: {
            args: Prisma.SyncTaskFailedItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>[]
          }
          create: {
            args: Prisma.SyncTaskFailedItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>
          }
          createMany: {
            args: Prisma.SyncTaskFailedItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SyncTaskFailedItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>[]
          }
          delete: {
            args: Prisma.SyncTaskFailedItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>
          }
          update: {
            args: Prisma.SyncTaskFailedItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>
          }
          deleteMany: {
            args: Prisma.SyncTaskFailedItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SyncTaskFailedItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SyncTaskFailedItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>[]
          }
          upsert: {
            args: Prisma.SyncTaskFailedItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SyncTaskFailedItemPayload>
          }
          aggregate: {
            args: Prisma.SyncTaskFailedItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSyncTaskFailedItem>
          }
          groupBy: {
            args: Prisma.SyncTaskFailedItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<SyncTaskFailedItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.SyncTaskFailedItemCountArgs<ExtArgs>
            result: $Utils.Optional<SyncTaskFailedItemCountAggregateOutputType> | number
          }
        }
      }
      SharePointSyncCursor: {
        payload: Prisma.$SharePointSyncCursorPayload<ExtArgs>
        fields: Prisma.SharePointSyncCursorFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SharePointSyncCursorFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SharePointSyncCursorFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>
          }
          findFirst: {
            args: Prisma.SharePointSyncCursorFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SharePointSyncCursorFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>
          }
          findMany: {
            args: Prisma.SharePointSyncCursorFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>[]
          }
          create: {
            args: Prisma.SharePointSyncCursorCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>
          }
          createMany: {
            args: Prisma.SharePointSyncCursorCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SharePointSyncCursorCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>[]
          }
          delete: {
            args: Prisma.SharePointSyncCursorDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>
          }
          update: {
            args: Prisma.SharePointSyncCursorUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>
          }
          deleteMany: {
            args: Prisma.SharePointSyncCursorDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SharePointSyncCursorUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SharePointSyncCursorUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>[]
          }
          upsert: {
            args: Prisma.SharePointSyncCursorUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharePointSyncCursorPayload>
          }
          aggregate: {
            args: Prisma.SharePointSyncCursorAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSharePointSyncCursor>
          }
          groupBy: {
            args: Prisma.SharePointSyncCursorGroupByArgs<ExtArgs>
            result: $Utils.Optional<SharePointSyncCursorGroupByOutputType>[]
          }
          count: {
            args: Prisma.SharePointSyncCursorCountArgs<ExtArgs>
            result: $Utils.Optional<SharePointSyncCursorCountAggregateOutputType> | number
          }
        }
      }
      WebhookSubscription: {
        payload: Prisma.$WebhookSubscriptionPayload<ExtArgs>
        fields: Prisma.WebhookSubscriptionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.WebhookSubscriptionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.WebhookSubscriptionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>
          }
          findFirst: {
            args: Prisma.WebhookSubscriptionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.WebhookSubscriptionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>
          }
          findMany: {
            args: Prisma.WebhookSubscriptionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>[]
          }
          create: {
            args: Prisma.WebhookSubscriptionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>
          }
          createMany: {
            args: Prisma.WebhookSubscriptionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.WebhookSubscriptionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>[]
          }
          delete: {
            args: Prisma.WebhookSubscriptionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>
          }
          update: {
            args: Prisma.WebhookSubscriptionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>
          }
          deleteMany: {
            args: Prisma.WebhookSubscriptionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.WebhookSubscriptionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.WebhookSubscriptionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>[]
          }
          upsert: {
            args: Prisma.WebhookSubscriptionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$WebhookSubscriptionPayload>
          }
          aggregate: {
            args: Prisma.WebhookSubscriptionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateWebhookSubscription>
          }
          groupBy: {
            args: Prisma.WebhookSubscriptionGroupByArgs<ExtArgs>
            result: $Utils.Optional<WebhookSubscriptionGroupByOutputType>[]
          }
          count: {
            args: Prisma.WebhookSubscriptionCountArgs<ExtArgs>
            result: $Utils.Optional<WebhookSubscriptionCountAggregateOutputType> | number
          }
        }
      }
      SystemLog: {
        payload: Prisma.$SystemLogPayload<ExtArgs>
        fields: Prisma.SystemLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SystemLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SystemLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>
          }
          findFirst: {
            args: Prisma.SystemLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SystemLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>
          }
          findMany: {
            args: Prisma.SystemLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>[]
          }
          create: {
            args: Prisma.SystemLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>
          }
          createMany: {
            args: Prisma.SystemLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SystemLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>[]
          }
          delete: {
            args: Prisma.SystemLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>
          }
          update: {
            args: Prisma.SystemLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>
          }
          deleteMany: {
            args: Prisma.SystemLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SystemLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SystemLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>[]
          }
          upsert: {
            args: Prisma.SystemLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SystemLogPayload>
          }
          aggregate: {
            args: Prisma.SystemLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSystemLog>
          }
          groupBy: {
            args: Prisma.SystemLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<SystemLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.SystemLogCountArgs<ExtArgs>
            result: $Utils.Optional<SystemLogCountAggregateOutputType> | number
          }
        }
      }
      LogConfig: {
        payload: Prisma.$LogConfigPayload<ExtArgs>
        fields: Prisma.LogConfigFieldRefs
        operations: {
          findUnique: {
            args: Prisma.LogConfigFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.LogConfigFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>
          }
          findFirst: {
            args: Prisma.LogConfigFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.LogConfigFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>
          }
          findMany: {
            args: Prisma.LogConfigFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>[]
          }
          create: {
            args: Prisma.LogConfigCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>
          }
          createMany: {
            args: Prisma.LogConfigCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.LogConfigCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>[]
          }
          delete: {
            args: Prisma.LogConfigDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>
          }
          update: {
            args: Prisma.LogConfigUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>
          }
          deleteMany: {
            args: Prisma.LogConfigDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.LogConfigUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.LogConfigUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>[]
          }
          upsert: {
            args: Prisma.LogConfigUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogConfigPayload>
          }
          aggregate: {
            args: Prisma.LogConfigAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateLogConfig>
          }
          groupBy: {
            args: Prisma.LogConfigGroupByArgs<ExtArgs>
            result: $Utils.Optional<LogConfigGroupByOutputType>[]
          }
          count: {
            args: Prisma.LogConfigCountArgs<ExtArgs>
            result: $Utils.Optional<LogConfigCountAggregateOutputType> | number
          }
        }
      }
      LogAlert: {
        payload: Prisma.$LogAlertPayload<ExtArgs>
        fields: Prisma.LogAlertFieldRefs
        operations: {
          findUnique: {
            args: Prisma.LogAlertFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.LogAlertFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>
          }
          findFirst: {
            args: Prisma.LogAlertFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.LogAlertFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>
          }
          findMany: {
            args: Prisma.LogAlertFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>[]
          }
          create: {
            args: Prisma.LogAlertCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>
          }
          createMany: {
            args: Prisma.LogAlertCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.LogAlertCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>[]
          }
          delete: {
            args: Prisma.LogAlertDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>
          }
          update: {
            args: Prisma.LogAlertUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>
          }
          deleteMany: {
            args: Prisma.LogAlertDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.LogAlertUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.LogAlertUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>[]
          }
          upsert: {
            args: Prisma.LogAlertUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogAlertPayload>
          }
          aggregate: {
            args: Prisma.LogAlertAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateLogAlert>
          }
          groupBy: {
            args: Prisma.LogAlertGroupByArgs<ExtArgs>
            result: $Utils.Optional<LogAlertGroupByOutputType>[]
          }
          count: {
            args: Prisma.LogAlertCountArgs<ExtArgs>
            result: $Utils.Optional<LogAlertCountAggregateOutputType> | number
          }
        }
      }
      LogCleanupRecord: {
        payload: Prisma.$LogCleanupRecordPayload<ExtArgs>
        fields: Prisma.LogCleanupRecordFieldRefs
        operations: {
          findUnique: {
            args: Prisma.LogCleanupRecordFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.LogCleanupRecordFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>
          }
          findFirst: {
            args: Prisma.LogCleanupRecordFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.LogCleanupRecordFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>
          }
          findMany: {
            args: Prisma.LogCleanupRecordFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>[]
          }
          create: {
            args: Prisma.LogCleanupRecordCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>
          }
          createMany: {
            args: Prisma.LogCleanupRecordCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.LogCleanupRecordCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>[]
          }
          delete: {
            args: Prisma.LogCleanupRecordDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>
          }
          update: {
            args: Prisma.LogCleanupRecordUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>
          }
          deleteMany: {
            args: Prisma.LogCleanupRecordDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.LogCleanupRecordUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.LogCleanupRecordUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>[]
          }
          upsert: {
            args: Prisma.LogCleanupRecordUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogCleanupRecordPayload>
          }
          aggregate: {
            args: Prisma.LogCleanupRecordAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateLogCleanupRecord>
          }
          groupBy: {
            args: Prisma.LogCleanupRecordGroupByArgs<ExtArgs>
            result: $Utils.Optional<LogCleanupRecordGroupByOutputType>[]
          }
          count: {
            args: Prisma.LogCleanupRecordCountArgs<ExtArgs>
            result: $Utils.Optional<LogCleanupRecordCountAggregateOutputType> | number
          }
        }
      }
      Customer: {
        payload: Prisma.$CustomerPayload<ExtArgs>
        fields: Prisma.CustomerFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CustomerFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CustomerFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>
          }
          findFirst: {
            args: Prisma.CustomerFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CustomerFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>
          }
          findMany: {
            args: Prisma.CustomerFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>[]
          }
          create: {
            args: Prisma.CustomerCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>
          }
          createMany: {
            args: Prisma.CustomerCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CustomerCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>[]
          }
          delete: {
            args: Prisma.CustomerDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>
          }
          update: {
            args: Prisma.CustomerUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>
          }
          deleteMany: {
            args: Prisma.CustomerDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CustomerUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CustomerUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>[]
          }
          upsert: {
            args: Prisma.CustomerUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerPayload>
          }
          aggregate: {
            args: Prisma.CustomerAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCustomer>
          }
          groupBy: {
            args: Prisma.CustomerGroupByArgs<ExtArgs>
            result: $Utils.Optional<CustomerGroupByOutputType>[]
          }
          count: {
            args: Prisma.CustomerCountArgs<ExtArgs>
            result: $Utils.Optional<CustomerCountAggregateOutputType> | number
          }
        }
      }
      CustomerContact: {
        payload: Prisma.$CustomerContactPayload<ExtArgs>
        fields: Prisma.CustomerContactFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CustomerContactFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CustomerContactFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>
          }
          findFirst: {
            args: Prisma.CustomerContactFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CustomerContactFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>
          }
          findMany: {
            args: Prisma.CustomerContactFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>[]
          }
          create: {
            args: Prisma.CustomerContactCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>
          }
          createMany: {
            args: Prisma.CustomerContactCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CustomerContactCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>[]
          }
          delete: {
            args: Prisma.CustomerContactDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>
          }
          update: {
            args: Prisma.CustomerContactUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>
          }
          deleteMany: {
            args: Prisma.CustomerContactDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CustomerContactUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CustomerContactUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>[]
          }
          upsert: {
            args: Prisma.CustomerContactUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerContactPayload>
          }
          aggregate: {
            args: Prisma.CustomerContactAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCustomerContact>
          }
          groupBy: {
            args: Prisma.CustomerContactGroupByArgs<ExtArgs>
            result: $Utils.Optional<CustomerContactGroupByOutputType>[]
          }
          count: {
            args: Prisma.CustomerContactCountArgs<ExtArgs>
            result: $Utils.Optional<CustomerContactCountAggregateOutputType> | number
          }
        }
      }
      CustomerAddress: {
        payload: Prisma.$CustomerAddressPayload<ExtArgs>
        fields: Prisma.CustomerAddressFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CustomerAddressFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CustomerAddressFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>
          }
          findFirst: {
            args: Prisma.CustomerAddressFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CustomerAddressFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>
          }
          findMany: {
            args: Prisma.CustomerAddressFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>[]
          }
          create: {
            args: Prisma.CustomerAddressCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>
          }
          createMany: {
            args: Prisma.CustomerAddressCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CustomerAddressCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>[]
          }
          delete: {
            args: Prisma.CustomerAddressDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>
          }
          update: {
            args: Prisma.CustomerAddressUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>
          }
          deleteMany: {
            args: Prisma.CustomerAddressDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CustomerAddressUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CustomerAddressUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>[]
          }
          upsert: {
            args: Prisma.CustomerAddressUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CustomerAddressPayload>
          }
          aggregate: {
            args: Prisma.CustomerAddressAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCustomerAddress>
          }
          groupBy: {
            args: Prisma.CustomerAddressGroupByArgs<ExtArgs>
            result: $Utils.Optional<CustomerAddressGroupByOutputType>[]
          }
          count: {
            args: Prisma.CustomerAddressCountArgs<ExtArgs>
            result: $Utils.Optional<CustomerAddressCountAggregateOutputType> | number
          }
        }
      }
      Supplier: {
        payload: Prisma.$SupplierPayload<ExtArgs>
        fields: Prisma.SupplierFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SupplierFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SupplierFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>
          }
          findFirst: {
            args: Prisma.SupplierFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SupplierFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>
          }
          findMany: {
            args: Prisma.SupplierFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>[]
          }
          create: {
            args: Prisma.SupplierCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>
          }
          createMany: {
            args: Prisma.SupplierCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SupplierCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>[]
          }
          delete: {
            args: Prisma.SupplierDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>
          }
          update: {
            args: Prisma.SupplierUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>
          }
          deleteMany: {
            args: Prisma.SupplierDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SupplierUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SupplierUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>[]
          }
          upsert: {
            args: Prisma.SupplierUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierPayload>
          }
          aggregate: {
            args: Prisma.SupplierAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSupplier>
          }
          groupBy: {
            args: Prisma.SupplierGroupByArgs<ExtArgs>
            result: $Utils.Optional<SupplierGroupByOutputType>[]
          }
          count: {
            args: Prisma.SupplierCountArgs<ExtArgs>
            result: $Utils.Optional<SupplierCountAggregateOutputType> | number
          }
        }
      }
      SupplierContact: {
        payload: Prisma.$SupplierContactPayload<ExtArgs>
        fields: Prisma.SupplierContactFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SupplierContactFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SupplierContactFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>
          }
          findFirst: {
            args: Prisma.SupplierContactFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SupplierContactFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>
          }
          findMany: {
            args: Prisma.SupplierContactFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>[]
          }
          create: {
            args: Prisma.SupplierContactCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>
          }
          createMany: {
            args: Prisma.SupplierContactCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SupplierContactCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>[]
          }
          delete: {
            args: Prisma.SupplierContactDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>
          }
          update: {
            args: Prisma.SupplierContactUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>
          }
          deleteMany: {
            args: Prisma.SupplierContactDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SupplierContactUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SupplierContactUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>[]
          }
          upsert: {
            args: Prisma.SupplierContactUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SupplierContactPayload>
          }
          aggregate: {
            args: Prisma.SupplierContactAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSupplierContact>
          }
          groupBy: {
            args: Prisma.SupplierContactGroupByArgs<ExtArgs>
            result: $Utils.Optional<SupplierContactGroupByOutputType>[]
          }
          count: {
            args: Prisma.SupplierContactCountArgs<ExtArgs>
            result: $Utils.Optional<SupplierContactCountAggregateOutputType> | number
          }
        }
      }
      Partner: {
        payload: Prisma.$PartnerPayload<ExtArgs>
        fields: Prisma.PartnerFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PartnerFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PartnerFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>
          }
          findFirst: {
            args: Prisma.PartnerFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PartnerFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>
          }
          findMany: {
            args: Prisma.PartnerFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>[]
          }
          create: {
            args: Prisma.PartnerCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>
          }
          createMany: {
            args: Prisma.PartnerCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PartnerCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>[]
          }
          delete: {
            args: Prisma.PartnerDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>
          }
          update: {
            args: Prisma.PartnerUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>
          }
          deleteMany: {
            args: Prisma.PartnerDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PartnerUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PartnerUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>[]
          }
          upsert: {
            args: Prisma.PartnerUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerPayload>
          }
          aggregate: {
            args: Prisma.PartnerAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePartner>
          }
          groupBy: {
            args: Prisma.PartnerGroupByArgs<ExtArgs>
            result: $Utils.Optional<PartnerGroupByOutputType>[]
          }
          count: {
            args: Prisma.PartnerCountArgs<ExtArgs>
            result: $Utils.Optional<PartnerCountAggregateOutputType> | number
          }
        }
      }
      PartnerContact: {
        payload: Prisma.$PartnerContactPayload<ExtArgs>
        fields: Prisma.PartnerContactFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PartnerContactFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PartnerContactFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>
          }
          findFirst: {
            args: Prisma.PartnerContactFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PartnerContactFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>
          }
          findMany: {
            args: Prisma.PartnerContactFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>[]
          }
          create: {
            args: Prisma.PartnerContactCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>
          }
          createMany: {
            args: Prisma.PartnerContactCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PartnerContactCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>[]
          }
          delete: {
            args: Prisma.PartnerContactDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>
          }
          update: {
            args: Prisma.PartnerContactUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>
          }
          deleteMany: {
            args: Prisma.PartnerContactDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PartnerContactUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PartnerContactUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>[]
          }
          upsert: {
            args: Prisma.PartnerContactUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PartnerContactPayload>
          }
          aggregate: {
            args: Prisma.PartnerContactAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePartnerContact>
          }
          groupBy: {
            args: Prisma.PartnerContactGroupByArgs<ExtArgs>
            result: $Utils.Optional<PartnerContactGroupByOutputType>[]
          }
          count: {
            args: Prisma.PartnerContactCountArgs<ExtArgs>
            result: $Utils.Optional<PartnerContactCountAggregateOutputType> | number
          }
        }
      }
      Location: {
        payload: Prisma.$LocationPayload<ExtArgs>
        fields: Prisma.LocationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.LocationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.LocationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>
          }
          findFirst: {
            args: Prisma.LocationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.LocationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>
          }
          findMany: {
            args: Prisma.LocationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>[]
          }
          create: {
            args: Prisma.LocationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>
          }
          createMany: {
            args: Prisma.LocationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.LocationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>[]
          }
          delete: {
            args: Prisma.LocationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>
          }
          update: {
            args: Prisma.LocationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>
          }
          deleteMany: {
            args: Prisma.LocationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.LocationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.LocationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>[]
          }
          upsert: {
            args: Prisma.LocationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LocationPayload>
          }
          aggregate: {
            args: Prisma.LocationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateLocation>
          }
          groupBy: {
            args: Prisma.LocationGroupByArgs<ExtArgs>
            result: $Utils.Optional<LocationGroupByOutputType>[]
          }
          count: {
            args: Prisma.LocationCountArgs<ExtArgs>
            result: $Utils.Optional<LocationCountAggregateOutputType> | number
          }
        }
      }
      Attachment: {
        payload: Prisma.$AttachmentPayload<ExtArgs>
        fields: Prisma.AttachmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AttachmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AttachmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>
          }
          findFirst: {
            args: Prisma.AttachmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AttachmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>
          }
          findMany: {
            args: Prisma.AttachmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>[]
          }
          create: {
            args: Prisma.AttachmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>
          }
          createMany: {
            args: Prisma.AttachmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AttachmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>[]
          }
          delete: {
            args: Prisma.AttachmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>
          }
          update: {
            args: Prisma.AttachmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>
          }
          deleteMany: {
            args: Prisma.AttachmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AttachmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AttachmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>[]
          }
          upsert: {
            args: Prisma.AttachmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AttachmentPayload>
          }
          aggregate: {
            args: Prisma.AttachmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAttachment>
          }
          groupBy: {
            args: Prisma.AttachmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<AttachmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.AttachmentCountArgs<ExtArgs>
            result: $Utils.Optional<AttachmentCountAggregateOutputType> | number
          }
        }
      }
      Currency: {
        payload: Prisma.$CurrencyPayload<ExtArgs>
        fields: Prisma.CurrencyFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CurrencyFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CurrencyFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>
          }
          findFirst: {
            args: Prisma.CurrencyFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CurrencyFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>
          }
          findMany: {
            args: Prisma.CurrencyFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>[]
          }
          create: {
            args: Prisma.CurrencyCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>
          }
          createMany: {
            args: Prisma.CurrencyCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CurrencyCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>[]
          }
          delete: {
            args: Prisma.CurrencyDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>
          }
          update: {
            args: Prisma.CurrencyUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>
          }
          deleteMany: {
            args: Prisma.CurrencyDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CurrencyUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CurrencyUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>[]
          }
          upsert: {
            args: Prisma.CurrencyUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CurrencyPayload>
          }
          aggregate: {
            args: Prisma.CurrencyAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCurrency>
          }
          groupBy: {
            args: Prisma.CurrencyGroupByArgs<ExtArgs>
            result: $Utils.Optional<CurrencyGroupByOutputType>[]
          }
          count: {
            args: Prisma.CurrencyCountArgs<ExtArgs>
            result: $Utils.Optional<CurrencyCountAggregateOutputType> | number
          }
        }
      }
      Country: {
        payload: Prisma.$CountryPayload<ExtArgs>
        fields: Prisma.CountryFieldRefs
        operations: {
          findUnique: {
            args: Prisma.CountryFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.CountryFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>
          }
          findFirst: {
            args: Prisma.CountryFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.CountryFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>
          }
          findMany: {
            args: Prisma.CountryFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>[]
          }
          create: {
            args: Prisma.CountryCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>
          }
          createMany: {
            args: Prisma.CountryCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.CountryCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>[]
          }
          delete: {
            args: Prisma.CountryDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>
          }
          update: {
            args: Prisma.CountryUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>
          }
          deleteMany: {
            args: Prisma.CountryDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.CountryUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.CountryUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>[]
          }
          upsert: {
            args: Prisma.CountryUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$CountryPayload>
          }
          aggregate: {
            args: Prisma.CountryAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateCountry>
          }
          groupBy: {
            args: Prisma.CountryGroupByArgs<ExtArgs>
            result: $Utils.Optional<CountryGroupByOutputType>[]
          }
          count: {
            args: Prisma.CountryCountArgs<ExtArgs>
            result: $Utils.Optional<CountryCountAggregateOutputType> | number
          }
        }
      }
      GeoRegion: {
        payload: Prisma.$GeoRegionPayload<ExtArgs>
        fields: Prisma.GeoRegionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.GeoRegionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.GeoRegionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>
          }
          findFirst: {
            args: Prisma.GeoRegionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.GeoRegionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>
          }
          findMany: {
            args: Prisma.GeoRegionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>[]
          }
          create: {
            args: Prisma.GeoRegionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>
          }
          createMany: {
            args: Prisma.GeoRegionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.GeoRegionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>[]
          }
          delete: {
            args: Prisma.GeoRegionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>
          }
          update: {
            args: Prisma.GeoRegionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>
          }
          deleteMany: {
            args: Prisma.GeoRegionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.GeoRegionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.GeoRegionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>[]
          }
          upsert: {
            args: Prisma.GeoRegionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GeoRegionPayload>
          }
          aggregate: {
            args: Prisma.GeoRegionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateGeoRegion>
          }
          groupBy: {
            args: Prisma.GeoRegionGroupByArgs<ExtArgs>
            result: $Utils.Optional<GeoRegionGroupByOutputType>[]
          }
          count: {
            args: Prisma.GeoRegionCountArgs<ExtArgs>
            result: $Utils.Optional<GeoRegionCountAggregateOutputType> | number
          }
        }
      }
      UnitOfMeasure: {
        payload: Prisma.$UnitOfMeasurePayload<ExtArgs>
        fields: Prisma.UnitOfMeasureFieldRefs
        operations: {
          findUnique: {
            args: Prisma.UnitOfMeasureFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.UnitOfMeasureFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>
          }
          findFirst: {
            args: Prisma.UnitOfMeasureFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.UnitOfMeasureFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>
          }
          findMany: {
            args: Prisma.UnitOfMeasureFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>[]
          }
          create: {
            args: Prisma.UnitOfMeasureCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>
          }
          createMany: {
            args: Prisma.UnitOfMeasureCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.UnitOfMeasureCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>[]
          }
          delete: {
            args: Prisma.UnitOfMeasureDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>
          }
          update: {
            args: Prisma.UnitOfMeasureUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>
          }
          deleteMany: {
            args: Prisma.UnitOfMeasureDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.UnitOfMeasureUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.UnitOfMeasureUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>[]
          }
          upsert: {
            args: Prisma.UnitOfMeasureUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$UnitOfMeasurePayload>
          }
          aggregate: {
            args: Prisma.UnitOfMeasureAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateUnitOfMeasure>
          }
          groupBy: {
            args: Prisma.UnitOfMeasureGroupByArgs<ExtArgs>
            result: $Utils.Optional<UnitOfMeasureGroupByOutputType>[]
          }
          count: {
            args: Prisma.UnitOfMeasureCountArgs<ExtArgs>
            result: $Utils.Optional<UnitOfMeasureCountAggregateOutputType> | number
          }
        }
      }
      Dictionary: {
        payload: Prisma.$DictionaryPayload<ExtArgs>
        fields: Prisma.DictionaryFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DictionaryFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DictionaryFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>
          }
          findFirst: {
            args: Prisma.DictionaryFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DictionaryFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>
          }
          findMany: {
            args: Prisma.DictionaryFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>[]
          }
          create: {
            args: Prisma.DictionaryCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>
          }
          createMany: {
            args: Prisma.DictionaryCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DictionaryCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>[]
          }
          delete: {
            args: Prisma.DictionaryDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>
          }
          update: {
            args: Prisma.DictionaryUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>
          }
          deleteMany: {
            args: Prisma.DictionaryDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DictionaryUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DictionaryUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>[]
          }
          upsert: {
            args: Prisma.DictionaryUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DictionaryPayload>
          }
          aggregate: {
            args: Prisma.DictionaryAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDictionary>
          }
          groupBy: {
            args: Prisma.DictionaryGroupByArgs<ExtArgs>
            result: $Utils.Optional<DictionaryGroupByOutputType>[]
          }
          count: {
            args: Prisma.DictionaryCountArgs<ExtArgs>
            result: $Utils.Optional<DictionaryCountAggregateOutputType> | number
          }
        }
      }
      Meeting: {
        payload: Prisma.$MeetingPayload<ExtArgs>
        fields: Prisma.MeetingFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>
          }
          findFirst: {
            args: Prisma.MeetingFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>
          }
          findMany: {
            args: Prisma.MeetingFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>[]
          }
          create: {
            args: Prisma.MeetingCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>
          }
          createMany: {
            args: Prisma.MeetingCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>[]
          }
          delete: {
            args: Prisma.MeetingDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>
          }
          update: {
            args: Prisma.MeetingUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>
          }
          deleteMany: {
            args: Prisma.MeetingDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>[]
          }
          upsert: {
            args: Prisma.MeetingUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingPayload>
          }
          aggregate: {
            args: Prisma.MeetingAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeeting>
          }
          groupBy: {
            args: Prisma.MeetingGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingCountAggregateOutputType> | number
          }
        }
      }
      MeetingSeries: {
        payload: Prisma.$MeetingSeriesPayload<ExtArgs>
        fields: Prisma.MeetingSeriesFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingSeriesFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingSeriesFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>
          }
          findFirst: {
            args: Prisma.MeetingSeriesFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingSeriesFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>
          }
          findMany: {
            args: Prisma.MeetingSeriesFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>[]
          }
          create: {
            args: Prisma.MeetingSeriesCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>
          }
          createMany: {
            args: Prisma.MeetingSeriesCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingSeriesCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>[]
          }
          delete: {
            args: Prisma.MeetingSeriesDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>
          }
          update: {
            args: Prisma.MeetingSeriesUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>
          }
          deleteMany: {
            args: Prisma.MeetingSeriesDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingSeriesUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingSeriesUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>[]
          }
          upsert: {
            args: Prisma.MeetingSeriesUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesPayload>
          }
          aggregate: {
            args: Prisma.MeetingSeriesAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingSeries>
          }
          groupBy: {
            args: Prisma.MeetingSeriesGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingSeriesGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingSeriesCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingSeriesCountAggregateOutputType> | number
          }
        }
      }
      MeetingAttendance: {
        payload: Prisma.$MeetingAttendancePayload<ExtArgs>
        fields: Prisma.MeetingAttendanceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAttendanceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAttendanceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>
          }
          findFirst: {
            args: Prisma.MeetingAttendanceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAttendanceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>
          }
          findMany: {
            args: Prisma.MeetingAttendanceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>[]
          }
          create: {
            args: Prisma.MeetingAttendanceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>
          }
          createMany: {
            args: Prisma.MeetingAttendanceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAttendanceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>[]
          }
          delete: {
            args: Prisma.MeetingAttendanceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>
          }
          update: {
            args: Prisma.MeetingAttendanceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>
          }
          deleteMany: {
            args: Prisma.MeetingAttendanceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAttendanceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAttendanceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>[]
          }
          upsert: {
            args: Prisma.MeetingAttendanceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendancePayload>
          }
          aggregate: {
            args: Prisma.MeetingAttendanceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAttendance>
          }
          groupBy: {
            args: Prisma.MeetingAttendanceGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAttendanceCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceCountAggregateOutputType> | number
          }
        }
      }
      MeetingRequiredAttendee: {
        payload: Prisma.$MeetingRequiredAttendeePayload<ExtArgs>
        fields: Prisma.MeetingRequiredAttendeeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingRequiredAttendeeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingRequiredAttendeeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>
          }
          findFirst: {
            args: Prisma.MeetingRequiredAttendeeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingRequiredAttendeeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>
          }
          findMany: {
            args: Prisma.MeetingRequiredAttendeeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>[]
          }
          create: {
            args: Prisma.MeetingRequiredAttendeeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>
          }
          createMany: {
            args: Prisma.MeetingRequiredAttendeeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingRequiredAttendeeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>[]
          }
          delete: {
            args: Prisma.MeetingRequiredAttendeeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>
          }
          update: {
            args: Prisma.MeetingRequiredAttendeeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>
          }
          deleteMany: {
            args: Prisma.MeetingRequiredAttendeeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingRequiredAttendeeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingRequiredAttendeeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>[]
          }
          upsert: {
            args: Prisma.MeetingRequiredAttendeeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingRequiredAttendeePayload>
          }
          aggregate: {
            args: Prisma.MeetingRequiredAttendeeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingRequiredAttendee>
          }
          groupBy: {
            args: Prisma.MeetingRequiredAttendeeGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingRequiredAttendeeGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingRequiredAttendeeCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingRequiredAttendeeCountAggregateOutputType> | number
          }
        }
      }
      MeetingSeriesAttendeePreference: {
        payload: Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>
        fields: Prisma.MeetingSeriesAttendeePreferenceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingSeriesAttendeePreferenceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingSeriesAttendeePreferenceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>
          }
          findFirst: {
            args: Prisma.MeetingSeriesAttendeePreferenceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingSeriesAttendeePreferenceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>
          }
          findMany: {
            args: Prisma.MeetingSeriesAttendeePreferenceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>[]
          }
          create: {
            args: Prisma.MeetingSeriesAttendeePreferenceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>
          }
          createMany: {
            args: Prisma.MeetingSeriesAttendeePreferenceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingSeriesAttendeePreferenceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>[]
          }
          delete: {
            args: Prisma.MeetingSeriesAttendeePreferenceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>
          }
          update: {
            args: Prisma.MeetingSeriesAttendeePreferenceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>
          }
          deleteMany: {
            args: Prisma.MeetingSeriesAttendeePreferenceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingSeriesAttendeePreferenceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingSeriesAttendeePreferenceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>[]
          }
          upsert: {
            args: Prisma.MeetingSeriesAttendeePreferenceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeePreferencePayload>
          }
          aggregate: {
            args: Prisma.MeetingSeriesAttendeePreferenceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingSeriesAttendeePreference>
          }
          groupBy: {
            args: Prisma.MeetingSeriesAttendeePreferenceGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingSeriesAttendeePreferenceGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingSeriesAttendeePreferenceCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingSeriesAttendeePreferenceCountAggregateOutputType> | number
          }
        }
      }
      MeetingSeriesAttendeeException: {
        payload: Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>
        fields: Prisma.MeetingSeriesAttendeeExceptionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingSeriesAttendeeExceptionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingSeriesAttendeeExceptionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>
          }
          findFirst: {
            args: Prisma.MeetingSeriesAttendeeExceptionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingSeriesAttendeeExceptionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>
          }
          findMany: {
            args: Prisma.MeetingSeriesAttendeeExceptionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>[]
          }
          create: {
            args: Prisma.MeetingSeriesAttendeeExceptionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>
          }
          createMany: {
            args: Prisma.MeetingSeriesAttendeeExceptionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingSeriesAttendeeExceptionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>[]
          }
          delete: {
            args: Prisma.MeetingSeriesAttendeeExceptionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>
          }
          update: {
            args: Prisma.MeetingSeriesAttendeeExceptionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>
          }
          deleteMany: {
            args: Prisma.MeetingSeriesAttendeeExceptionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingSeriesAttendeeExceptionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingSeriesAttendeeExceptionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>[]
          }
          upsert: {
            args: Prisma.MeetingSeriesAttendeeExceptionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingSeriesAttendeeExceptionPayload>
          }
          aggregate: {
            args: Prisma.MeetingSeriesAttendeeExceptionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingSeriesAttendeeException>
          }
          groupBy: {
            args: Prisma.MeetingSeriesAttendeeExceptionGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingSeriesAttendeeExceptionGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingSeriesAttendeeExceptionCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingSeriesAttendeeExceptionCountAggregateOutputType> | number
          }
        }
      }
      MeetingExternalAttendee: {
        payload: Prisma.$MeetingExternalAttendeePayload<ExtArgs>
        fields: Prisma.MeetingExternalAttendeeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingExternalAttendeeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingExternalAttendeeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>
          }
          findFirst: {
            args: Prisma.MeetingExternalAttendeeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingExternalAttendeeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>
          }
          findMany: {
            args: Prisma.MeetingExternalAttendeeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>[]
          }
          create: {
            args: Prisma.MeetingExternalAttendeeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>
          }
          createMany: {
            args: Prisma.MeetingExternalAttendeeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingExternalAttendeeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>[]
          }
          delete: {
            args: Prisma.MeetingExternalAttendeeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>
          }
          update: {
            args: Prisma.MeetingExternalAttendeeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>
          }
          deleteMany: {
            args: Prisma.MeetingExternalAttendeeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingExternalAttendeeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingExternalAttendeeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>[]
          }
          upsert: {
            args: Prisma.MeetingExternalAttendeeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingExternalAttendeePayload>
          }
          aggregate: {
            args: Prisma.MeetingExternalAttendeeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingExternalAttendee>
          }
          groupBy: {
            args: Prisma.MeetingExternalAttendeeGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingExternalAttendeeGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingExternalAttendeeCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingExternalAttendeeCountAggregateOutputType> | number
          }
        }
      }
      MeetingTemplate: {
        payload: Prisma.$MeetingTemplatePayload<ExtArgs>
        fields: Prisma.MeetingTemplateFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingTemplateFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingTemplateFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>
          }
          findFirst: {
            args: Prisma.MeetingTemplateFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingTemplateFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>
          }
          findMany: {
            args: Prisma.MeetingTemplateFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>[]
          }
          create: {
            args: Prisma.MeetingTemplateCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>
          }
          createMany: {
            args: Prisma.MeetingTemplateCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingTemplateCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>[]
          }
          delete: {
            args: Prisma.MeetingTemplateDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>
          }
          update: {
            args: Prisma.MeetingTemplateUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>
          }
          deleteMany: {
            args: Prisma.MeetingTemplateDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingTemplateUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingTemplateUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>[]
          }
          upsert: {
            args: Prisma.MeetingTemplateUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplatePayload>
          }
          aggregate: {
            args: Prisma.MeetingTemplateAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingTemplate>
          }
          groupBy: {
            args: Prisma.MeetingTemplateGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingTemplateGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingTemplateCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingTemplateCountAggregateOutputType> | number
          }
        }
      }
      MeetingTemplateAttendee: {
        payload: Prisma.$MeetingTemplateAttendeePayload<ExtArgs>
        fields: Prisma.MeetingTemplateAttendeeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingTemplateAttendeeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingTemplateAttendeeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>
          }
          findFirst: {
            args: Prisma.MeetingTemplateAttendeeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingTemplateAttendeeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>
          }
          findMany: {
            args: Prisma.MeetingTemplateAttendeeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>[]
          }
          create: {
            args: Prisma.MeetingTemplateAttendeeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>
          }
          createMany: {
            args: Prisma.MeetingTemplateAttendeeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingTemplateAttendeeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>[]
          }
          delete: {
            args: Prisma.MeetingTemplateAttendeeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>
          }
          update: {
            args: Prisma.MeetingTemplateAttendeeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>
          }
          deleteMany: {
            args: Prisma.MeetingTemplateAttendeeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingTemplateAttendeeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingTemplateAttendeeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>[]
          }
          upsert: {
            args: Prisma.MeetingTemplateAttendeeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingTemplateAttendeePayload>
          }
          aggregate: {
            args: Prisma.MeetingTemplateAttendeeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingTemplateAttendee>
          }
          groupBy: {
            args: Prisma.MeetingTemplateAttendeeGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingTemplateAttendeeGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingTemplateAttendeeCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingTemplateAttendeeCountAggregateOutputType> | number
          }
        }
      }
      MeetingAttendanceLeaveRecord: {
        payload: Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>
        fields: Prisma.MeetingAttendanceLeaveRecordFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAttendanceLeaveRecordFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAttendanceLeaveRecordFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>
          }
          findFirst: {
            args: Prisma.MeetingAttendanceLeaveRecordFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAttendanceLeaveRecordFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>
          }
          findMany: {
            args: Prisma.MeetingAttendanceLeaveRecordFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>[]
          }
          create: {
            args: Prisma.MeetingAttendanceLeaveRecordCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>
          }
          createMany: {
            args: Prisma.MeetingAttendanceLeaveRecordCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAttendanceLeaveRecordCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>[]
          }
          delete: {
            args: Prisma.MeetingAttendanceLeaveRecordDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>
          }
          update: {
            args: Prisma.MeetingAttendanceLeaveRecordUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAttendanceLeaveRecordDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAttendanceLeaveRecordUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAttendanceLeaveRecordUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAttendanceLeaveRecordUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceLeaveRecordPayload>
          }
          aggregate: {
            args: Prisma.MeetingAttendanceLeaveRecordAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAttendanceLeaveRecord>
          }
          groupBy: {
            args: Prisma.MeetingAttendanceLeaveRecordGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceLeaveRecordGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAttendanceLeaveRecordCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceLeaveRecordCountAggregateOutputType> | number
          }
        }
      }
      MeetingAttendanceAuditLog: {
        payload: Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>
        fields: Prisma.MeetingAttendanceAuditLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAttendanceAuditLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAttendanceAuditLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>
          }
          findFirst: {
            args: Prisma.MeetingAttendanceAuditLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAttendanceAuditLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>
          }
          findMany: {
            args: Prisma.MeetingAttendanceAuditLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>[]
          }
          create: {
            args: Prisma.MeetingAttendanceAuditLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>
          }
          createMany: {
            args: Prisma.MeetingAttendanceAuditLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAttendanceAuditLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>[]
          }
          delete: {
            args: Prisma.MeetingAttendanceAuditLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>
          }
          update: {
            args: Prisma.MeetingAttendanceAuditLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAttendanceAuditLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAttendanceAuditLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAttendanceAuditLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAttendanceAuditLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditLogPayload>
          }
          aggregate: {
            args: Prisma.MeetingAttendanceAuditLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAttendanceAuditLog>
          }
          groupBy: {
            args: Prisma.MeetingAttendanceAuditLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceAuditLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAttendanceAuditLogCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceAuditLogCountAggregateOutputType> | number
          }
        }
      }
      MeetingAttendanceDataAccessLog: {
        payload: Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>
        fields: Prisma.MeetingAttendanceDataAccessLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAttendanceDataAccessLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAttendanceDataAccessLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>
          }
          findFirst: {
            args: Prisma.MeetingAttendanceDataAccessLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAttendanceDataAccessLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>
          }
          findMany: {
            args: Prisma.MeetingAttendanceDataAccessLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>[]
          }
          create: {
            args: Prisma.MeetingAttendanceDataAccessLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>
          }
          createMany: {
            args: Prisma.MeetingAttendanceDataAccessLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAttendanceDataAccessLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>[]
          }
          delete: {
            args: Prisma.MeetingAttendanceDataAccessLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>
          }
          update: {
            args: Prisma.MeetingAttendanceDataAccessLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAttendanceDataAccessLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAttendanceDataAccessLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAttendanceDataAccessLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAttendanceDataAccessLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceDataAccessLogPayload>
          }
          aggregate: {
            args: Prisma.MeetingAttendanceDataAccessLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAttendanceDataAccessLog>
          }
          groupBy: {
            args: Prisma.MeetingAttendanceDataAccessLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceDataAccessLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAttendanceDataAccessLogCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceDataAccessLogCountAggregateOutputType> | number
          }
        }
      }
      MeetingAttendanceAuditAlertRule: {
        payload: Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>
        fields: Prisma.MeetingAttendanceAuditAlertRuleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAttendanceAuditAlertRuleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAttendanceAuditAlertRuleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>
          }
          findFirst: {
            args: Prisma.MeetingAttendanceAuditAlertRuleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAttendanceAuditAlertRuleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>
          }
          findMany: {
            args: Prisma.MeetingAttendanceAuditAlertRuleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>[]
          }
          create: {
            args: Prisma.MeetingAttendanceAuditAlertRuleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>
          }
          createMany: {
            args: Prisma.MeetingAttendanceAuditAlertRuleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAttendanceAuditAlertRuleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>[]
          }
          delete: {
            args: Prisma.MeetingAttendanceAuditAlertRuleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>
          }
          update: {
            args: Prisma.MeetingAttendanceAuditAlertRuleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>
          }
          deleteMany: {
            args: Prisma.MeetingAttendanceAuditAlertRuleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAttendanceAuditAlertRuleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAttendanceAuditAlertRuleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>[]
          }
          upsert: {
            args: Prisma.MeetingAttendanceAuditAlertRuleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertRulePayload>
          }
          aggregate: {
            args: Prisma.MeetingAttendanceAuditAlertRuleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAttendanceAuditAlertRule>
          }
          groupBy: {
            args: Prisma.MeetingAttendanceAuditAlertRuleGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceAuditAlertRuleGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAttendanceAuditAlertRuleCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceAuditAlertRuleCountAggregateOutputType> | number
          }
        }
      }
      MeetingAttendanceAuditAlert: {
        payload: Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>
        fields: Prisma.MeetingAttendanceAuditAlertFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAttendanceAuditAlertFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAttendanceAuditAlertFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>
          }
          findFirst: {
            args: Prisma.MeetingAttendanceAuditAlertFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAttendanceAuditAlertFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>
          }
          findMany: {
            args: Prisma.MeetingAttendanceAuditAlertFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>[]
          }
          create: {
            args: Prisma.MeetingAttendanceAuditAlertCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>
          }
          createMany: {
            args: Prisma.MeetingAttendanceAuditAlertCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAttendanceAuditAlertCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>[]
          }
          delete: {
            args: Prisma.MeetingAttendanceAuditAlertDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>
          }
          update: {
            args: Prisma.MeetingAttendanceAuditAlertUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAttendanceAuditAlertDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAttendanceAuditAlertUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAttendanceAuditAlertUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAttendanceAuditAlertUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceAuditAlertPayload>
          }
          aggregate: {
            args: Prisma.MeetingAttendanceAuditAlertAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAttendanceAuditAlert>
          }
          groupBy: {
            args: Prisma.MeetingAttendanceAuditAlertGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceAuditAlertGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAttendanceAuditAlertCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceAuditAlertCountAggregateOutputType> | number
          }
        }
      }
      MeetingAttendanceRetentionPolicy: {
        payload: Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>
        fields: Prisma.MeetingAttendanceRetentionPolicyFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAttendanceRetentionPolicyFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAttendanceRetentionPolicyFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>
          }
          findFirst: {
            args: Prisma.MeetingAttendanceRetentionPolicyFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAttendanceRetentionPolicyFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>
          }
          findMany: {
            args: Prisma.MeetingAttendanceRetentionPolicyFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>[]
          }
          create: {
            args: Prisma.MeetingAttendanceRetentionPolicyCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>
          }
          createMany: {
            args: Prisma.MeetingAttendanceRetentionPolicyCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAttendanceRetentionPolicyCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>[]
          }
          delete: {
            args: Prisma.MeetingAttendanceRetentionPolicyDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>
          }
          update: {
            args: Prisma.MeetingAttendanceRetentionPolicyUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAttendanceRetentionPolicyDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAttendanceRetentionPolicyUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAttendanceRetentionPolicyUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAttendanceRetentionPolicyUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttendanceRetentionPolicyPayload>
          }
          aggregate: {
            args: Prisma.MeetingAttendanceRetentionPolicyAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAttendanceRetentionPolicy>
          }
          groupBy: {
            args: Prisma.MeetingAttendanceRetentionPolicyGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceRetentionPolicyGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAttendanceRetentionPolicyCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttendanceRetentionPolicyCountAggregateOutputType> | number
          }
        }
      }
      OutlookSyncMailbox: {
        payload: Prisma.$OutlookSyncMailboxPayload<ExtArgs>
        fields: Prisma.OutlookSyncMailboxFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookSyncMailboxFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookSyncMailboxFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>
          }
          findFirst: {
            args: Prisma.OutlookSyncMailboxFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookSyncMailboxFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>
          }
          findMany: {
            args: Prisma.OutlookSyncMailboxFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>[]
          }
          create: {
            args: Prisma.OutlookSyncMailboxCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>
          }
          createMany: {
            args: Prisma.OutlookSyncMailboxCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookSyncMailboxCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>[]
          }
          delete: {
            args: Prisma.OutlookSyncMailboxDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>
          }
          update: {
            args: Prisma.OutlookSyncMailboxUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>
          }
          deleteMany: {
            args: Prisma.OutlookSyncMailboxDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookSyncMailboxUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookSyncMailboxUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>[]
          }
          upsert: {
            args: Prisma.OutlookSyncMailboxUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncMailboxPayload>
          }
          aggregate: {
            args: Prisma.OutlookSyncMailboxAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookSyncMailbox>
          }
          groupBy: {
            args: Prisma.OutlookSyncMailboxGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookSyncMailboxGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookSyncMailboxCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookSyncMailboxCountAggregateOutputType> | number
          }
        }
      }
      OutlookSubscription: {
        payload: Prisma.$OutlookSubscriptionPayload<ExtArgs>
        fields: Prisma.OutlookSubscriptionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookSubscriptionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookSubscriptionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>
          }
          findFirst: {
            args: Prisma.OutlookSubscriptionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookSubscriptionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>
          }
          findMany: {
            args: Prisma.OutlookSubscriptionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>[]
          }
          create: {
            args: Prisma.OutlookSubscriptionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>
          }
          createMany: {
            args: Prisma.OutlookSubscriptionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookSubscriptionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>[]
          }
          delete: {
            args: Prisma.OutlookSubscriptionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>
          }
          update: {
            args: Prisma.OutlookSubscriptionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>
          }
          deleteMany: {
            args: Prisma.OutlookSubscriptionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookSubscriptionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookSubscriptionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>[]
          }
          upsert: {
            args: Prisma.OutlookSubscriptionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSubscriptionPayload>
          }
          aggregate: {
            args: Prisma.OutlookSubscriptionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookSubscription>
          }
          groupBy: {
            args: Prisma.OutlookSubscriptionGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookSubscriptionGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookSubscriptionCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookSubscriptionCountAggregateOutputType> | number
          }
        }
      }
      OutlookMeetingBinding: {
        payload: Prisma.$OutlookMeetingBindingPayload<ExtArgs>
        fields: Prisma.OutlookMeetingBindingFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookMeetingBindingFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookMeetingBindingFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>
          }
          findFirst: {
            args: Prisma.OutlookMeetingBindingFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookMeetingBindingFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>
          }
          findMany: {
            args: Prisma.OutlookMeetingBindingFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>[]
          }
          create: {
            args: Prisma.OutlookMeetingBindingCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>
          }
          createMany: {
            args: Prisma.OutlookMeetingBindingCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookMeetingBindingCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>[]
          }
          delete: {
            args: Prisma.OutlookMeetingBindingDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>
          }
          update: {
            args: Prisma.OutlookMeetingBindingUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>
          }
          deleteMany: {
            args: Prisma.OutlookMeetingBindingDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookMeetingBindingUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookMeetingBindingUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>[]
          }
          upsert: {
            args: Prisma.OutlookMeetingBindingUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookMeetingBindingPayload>
          }
          aggregate: {
            args: Prisma.OutlookMeetingBindingAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookMeetingBinding>
          }
          groupBy: {
            args: Prisma.OutlookMeetingBindingGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookMeetingBindingGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookMeetingBindingCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookMeetingBindingCountAggregateOutputType> | number
          }
        }
      }
      OutlookSeriesOccurrenceExclusion: {
        payload: Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>
        fields: Prisma.OutlookSeriesOccurrenceExclusionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookSeriesOccurrenceExclusionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookSeriesOccurrenceExclusionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>
          }
          findFirst: {
            args: Prisma.OutlookSeriesOccurrenceExclusionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookSeriesOccurrenceExclusionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>
          }
          findMany: {
            args: Prisma.OutlookSeriesOccurrenceExclusionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>[]
          }
          create: {
            args: Prisma.OutlookSeriesOccurrenceExclusionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>
          }
          createMany: {
            args: Prisma.OutlookSeriesOccurrenceExclusionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookSeriesOccurrenceExclusionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>[]
          }
          delete: {
            args: Prisma.OutlookSeriesOccurrenceExclusionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>
          }
          update: {
            args: Prisma.OutlookSeriesOccurrenceExclusionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>
          }
          deleteMany: {
            args: Prisma.OutlookSeriesOccurrenceExclusionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookSeriesOccurrenceExclusionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookSeriesOccurrenceExclusionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>[]
          }
          upsert: {
            args: Prisma.OutlookSeriesOccurrenceExclusionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload>
          }
          aggregate: {
            args: Prisma.OutlookSeriesOccurrenceExclusionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookSeriesOccurrenceExclusion>
          }
          groupBy: {
            args: Prisma.OutlookSeriesOccurrenceExclusionGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookSeriesOccurrenceExclusionGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookSeriesOccurrenceExclusionCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookSeriesOccurrenceExclusionCountAggregateOutputType> | number
          }
        }
      }
      OutlookSyncEventLog: {
        payload: Prisma.$OutlookSyncEventLogPayload<ExtArgs>
        fields: Prisma.OutlookSyncEventLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookSyncEventLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookSyncEventLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>
          }
          findFirst: {
            args: Prisma.OutlookSyncEventLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookSyncEventLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>
          }
          findMany: {
            args: Prisma.OutlookSyncEventLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>[]
          }
          create: {
            args: Prisma.OutlookSyncEventLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>
          }
          createMany: {
            args: Prisma.OutlookSyncEventLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookSyncEventLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>[]
          }
          delete: {
            args: Prisma.OutlookSyncEventLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>
          }
          update: {
            args: Prisma.OutlookSyncEventLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>
          }
          deleteMany: {
            args: Prisma.OutlookSyncEventLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookSyncEventLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookSyncEventLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>[]
          }
          upsert: {
            args: Prisma.OutlookSyncEventLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncEventLogPayload>
          }
          aggregate: {
            args: Prisma.OutlookSyncEventLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookSyncEventLog>
          }
          groupBy: {
            args: Prisma.OutlookSyncEventLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookSyncEventLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookSyncEventLogCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookSyncEventLogCountAggregateOutputType> | number
          }
        }
      }
      OutlookEventSourceVersion: {
        payload: Prisma.$OutlookEventSourceVersionPayload<ExtArgs>
        fields: Prisma.OutlookEventSourceVersionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookEventSourceVersionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookEventSourceVersionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>
          }
          findFirst: {
            args: Prisma.OutlookEventSourceVersionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookEventSourceVersionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>
          }
          findMany: {
            args: Prisma.OutlookEventSourceVersionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>[]
          }
          create: {
            args: Prisma.OutlookEventSourceVersionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>
          }
          createMany: {
            args: Prisma.OutlookEventSourceVersionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookEventSourceVersionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>[]
          }
          delete: {
            args: Prisma.OutlookEventSourceVersionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>
          }
          update: {
            args: Prisma.OutlookEventSourceVersionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>
          }
          deleteMany: {
            args: Prisma.OutlookEventSourceVersionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookEventSourceVersionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookEventSourceVersionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>[]
          }
          upsert: {
            args: Prisma.OutlookEventSourceVersionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSourceVersionPayload>
          }
          aggregate: {
            args: Prisma.OutlookEventSourceVersionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookEventSourceVersion>
          }
          groupBy: {
            args: Prisma.OutlookEventSourceVersionGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookEventSourceVersionGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookEventSourceVersionCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookEventSourceVersionCountAggregateOutputType> | number
          }
        }
      }
      OutlookEventSyncDiff: {
        payload: Prisma.$OutlookEventSyncDiffPayload<ExtArgs>
        fields: Prisma.OutlookEventSyncDiffFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookEventSyncDiffFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookEventSyncDiffFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>
          }
          findFirst: {
            args: Prisma.OutlookEventSyncDiffFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookEventSyncDiffFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>
          }
          findMany: {
            args: Prisma.OutlookEventSyncDiffFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>[]
          }
          create: {
            args: Prisma.OutlookEventSyncDiffCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>
          }
          createMany: {
            args: Prisma.OutlookEventSyncDiffCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookEventSyncDiffCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>[]
          }
          delete: {
            args: Prisma.OutlookEventSyncDiffDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>
          }
          update: {
            args: Prisma.OutlookEventSyncDiffUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>
          }
          deleteMany: {
            args: Prisma.OutlookEventSyncDiffDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookEventSyncDiffUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookEventSyncDiffUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>[]
          }
          upsert: {
            args: Prisma.OutlookEventSyncDiffUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSyncDiffPayload>
          }
          aggregate: {
            args: Prisma.OutlookEventSyncDiffAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookEventSyncDiff>
          }
          groupBy: {
            args: Prisma.OutlookEventSyncDiffGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookEventSyncDiffGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookEventSyncDiffCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookEventSyncDiffCountAggregateOutputType> | number
          }
        }
      }
      OutlookSyncCursor: {
        payload: Prisma.$OutlookSyncCursorPayload<ExtArgs>
        fields: Prisma.OutlookSyncCursorFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookSyncCursorFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookSyncCursorFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>
          }
          findFirst: {
            args: Prisma.OutlookSyncCursorFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookSyncCursorFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>
          }
          findMany: {
            args: Prisma.OutlookSyncCursorFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>[]
          }
          create: {
            args: Prisma.OutlookSyncCursorCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>
          }
          createMany: {
            args: Prisma.OutlookSyncCursorCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookSyncCursorCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>[]
          }
          delete: {
            args: Prisma.OutlookSyncCursorDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>
          }
          update: {
            args: Prisma.OutlookSyncCursorUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>
          }
          deleteMany: {
            args: Prisma.OutlookSyncCursorDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookSyncCursorUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookSyncCursorUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>[]
          }
          upsert: {
            args: Prisma.OutlookSyncCursorUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncCursorPayload>
          }
          aggregate: {
            args: Prisma.OutlookSyncCursorAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookSyncCursor>
          }
          groupBy: {
            args: Prisma.OutlookSyncCursorGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookSyncCursorGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookSyncCursorCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookSyncCursorCountAggregateOutputType> | number
          }
        }
      }
      OutlookEventSnapshot: {
        payload: Prisma.$OutlookEventSnapshotPayload<ExtArgs>
        fields: Prisma.OutlookEventSnapshotFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookEventSnapshotFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookEventSnapshotFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>
          }
          findFirst: {
            args: Prisma.OutlookEventSnapshotFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookEventSnapshotFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>
          }
          findMany: {
            args: Prisma.OutlookEventSnapshotFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>[]
          }
          create: {
            args: Prisma.OutlookEventSnapshotCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>
          }
          createMany: {
            args: Prisma.OutlookEventSnapshotCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookEventSnapshotCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>[]
          }
          delete: {
            args: Prisma.OutlookEventSnapshotDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>
          }
          update: {
            args: Prisma.OutlookEventSnapshotUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>
          }
          deleteMany: {
            args: Prisma.OutlookEventSnapshotDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookEventSnapshotUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookEventSnapshotUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>[]
          }
          upsert: {
            args: Prisma.OutlookEventSnapshotUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookEventSnapshotPayload>
          }
          aggregate: {
            args: Prisma.OutlookEventSnapshotAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookEventSnapshot>
          }
          groupBy: {
            args: Prisma.OutlookEventSnapshotGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookEventSnapshotGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookEventSnapshotCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookEventSnapshotCountAggregateOutputType> | number
          }
        }
      }
      OutlookSyncSetting: {
        payload: Prisma.$OutlookSyncSettingPayload<ExtArgs>
        fields: Prisma.OutlookSyncSettingFieldRefs
        operations: {
          findUnique: {
            args: Prisma.OutlookSyncSettingFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.OutlookSyncSettingFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>
          }
          findFirst: {
            args: Prisma.OutlookSyncSettingFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.OutlookSyncSettingFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>
          }
          findMany: {
            args: Prisma.OutlookSyncSettingFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>[]
          }
          create: {
            args: Prisma.OutlookSyncSettingCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>
          }
          createMany: {
            args: Prisma.OutlookSyncSettingCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.OutlookSyncSettingCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>[]
          }
          delete: {
            args: Prisma.OutlookSyncSettingDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>
          }
          update: {
            args: Prisma.OutlookSyncSettingUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>
          }
          deleteMany: {
            args: Prisma.OutlookSyncSettingDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.OutlookSyncSettingUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.OutlookSyncSettingUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>[]
          }
          upsert: {
            args: Prisma.OutlookSyncSettingUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$OutlookSyncSettingPayload>
          }
          aggregate: {
            args: Prisma.OutlookSyncSettingAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateOutlookSyncSetting>
          }
          groupBy: {
            args: Prisma.OutlookSyncSettingGroupByArgs<ExtArgs>
            result: $Utils.Optional<OutlookSyncSettingGroupByOutputType>[]
          }
          count: {
            args: Prisma.OutlookSyncSettingCountArgs<ExtArgs>
            result: $Utils.Optional<OutlookSyncSettingCountAggregateOutputType> | number
          }
        }
      }
      MeetingAgendaSection: {
        payload: Prisma.$MeetingAgendaSectionPayload<ExtArgs>
        fields: Prisma.MeetingAgendaSectionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAgendaSectionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAgendaSectionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>
          }
          findFirst: {
            args: Prisma.MeetingAgendaSectionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAgendaSectionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>
          }
          findMany: {
            args: Prisma.MeetingAgendaSectionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>[]
          }
          create: {
            args: Prisma.MeetingAgendaSectionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>
          }
          createMany: {
            args: Prisma.MeetingAgendaSectionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAgendaSectionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>[]
          }
          delete: {
            args: Prisma.MeetingAgendaSectionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>
          }
          update: {
            args: Prisma.MeetingAgendaSectionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAgendaSectionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAgendaSectionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAgendaSectionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAgendaSectionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaSectionPayload>
          }
          aggregate: {
            args: Prisma.MeetingAgendaSectionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAgendaSection>
          }
          groupBy: {
            args: Prisma.MeetingAgendaSectionGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAgendaSectionGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAgendaSectionCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAgendaSectionCountAggregateOutputType> | number
          }
        }
      }
      MeetingAgendaItem: {
        payload: Prisma.$MeetingAgendaItemPayload<ExtArgs>
        fields: Prisma.MeetingAgendaItemFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAgendaItemFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAgendaItemFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>
          }
          findFirst: {
            args: Prisma.MeetingAgendaItemFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAgendaItemFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>
          }
          findMany: {
            args: Prisma.MeetingAgendaItemFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>[]
          }
          create: {
            args: Prisma.MeetingAgendaItemCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>
          }
          createMany: {
            args: Prisma.MeetingAgendaItemCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAgendaItemCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>[]
          }
          delete: {
            args: Prisma.MeetingAgendaItemDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>
          }
          update: {
            args: Prisma.MeetingAgendaItemUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAgendaItemDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAgendaItemUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAgendaItemUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAgendaItemUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemPayload>
          }
          aggregate: {
            args: Prisma.MeetingAgendaItemAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAgendaItem>
          }
          groupBy: {
            args: Prisma.MeetingAgendaItemGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAgendaItemGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAgendaItemCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAgendaItemCountAggregateOutputType> | number
          }
        }
      }
      MeetingAgendaItemUploadTask: {
        payload: Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>
        fields: Prisma.MeetingAgendaItemUploadTaskFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAgendaItemUploadTaskFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAgendaItemUploadTaskFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>
          }
          findFirst: {
            args: Prisma.MeetingAgendaItemUploadTaskFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAgendaItemUploadTaskFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>
          }
          findMany: {
            args: Prisma.MeetingAgendaItemUploadTaskFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>[]
          }
          create: {
            args: Prisma.MeetingAgendaItemUploadTaskCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>
          }
          createMany: {
            args: Prisma.MeetingAgendaItemUploadTaskCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAgendaItemUploadTaskCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>[]
          }
          delete: {
            args: Prisma.MeetingAgendaItemUploadTaskDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>
          }
          update: {
            args: Prisma.MeetingAgendaItemUploadTaskUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAgendaItemUploadTaskDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAgendaItemUploadTaskUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAgendaItemUploadTaskUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAgendaItemUploadTaskUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemUploadTaskPayload>
          }
          aggregate: {
            args: Prisma.MeetingAgendaItemUploadTaskAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAgendaItemUploadTask>
          }
          groupBy: {
            args: Prisma.MeetingAgendaItemUploadTaskGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAgendaItemUploadTaskGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAgendaItemUploadTaskCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAgendaItemUploadTaskCountAggregateOutputType> | number
          }
        }
      }
      MeetingAgendaItemAttachment: {
        payload: Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>
        fields: Prisma.MeetingAgendaItemAttachmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAgendaItemAttachmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAgendaItemAttachmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>
          }
          findFirst: {
            args: Prisma.MeetingAgendaItemAttachmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAgendaItemAttachmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>
          }
          findMany: {
            args: Prisma.MeetingAgendaItemAttachmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>[]
          }
          create: {
            args: Prisma.MeetingAgendaItemAttachmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>
          }
          createMany: {
            args: Prisma.MeetingAgendaItemAttachmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAgendaItemAttachmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>[]
          }
          delete: {
            args: Prisma.MeetingAgendaItemAttachmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>
          }
          update: {
            args: Prisma.MeetingAgendaItemAttachmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAgendaItemAttachmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAgendaItemAttachmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAgendaItemAttachmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAgendaItemAttachmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAgendaItemAttachmentPayload>
          }
          aggregate: {
            args: Prisma.MeetingAgendaItemAttachmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAgendaItemAttachment>
          }
          groupBy: {
            args: Prisma.MeetingAgendaItemAttachmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAgendaItemAttachmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAgendaItemAttachmentCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAgendaItemAttachmentCountAggregateOutputType> | number
          }
        }
      }
      MeetingAttachment: {
        payload: Prisma.$MeetingAttachmentPayload<ExtArgs>
        fields: Prisma.MeetingAttachmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.MeetingAttachmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.MeetingAttachmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>
          }
          findFirst: {
            args: Prisma.MeetingAttachmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.MeetingAttachmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>
          }
          findMany: {
            args: Prisma.MeetingAttachmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>[]
          }
          create: {
            args: Prisma.MeetingAttachmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>
          }
          createMany: {
            args: Prisma.MeetingAttachmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.MeetingAttachmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>[]
          }
          delete: {
            args: Prisma.MeetingAttachmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>
          }
          update: {
            args: Prisma.MeetingAttachmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>
          }
          deleteMany: {
            args: Prisma.MeetingAttachmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.MeetingAttachmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.MeetingAttachmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>[]
          }
          upsert: {
            args: Prisma.MeetingAttachmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$MeetingAttachmentPayload>
          }
          aggregate: {
            args: Prisma.MeetingAttachmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateMeetingAttachment>
          }
          groupBy: {
            args: Prisma.MeetingAttachmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttachmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.MeetingAttachmentCountArgs<ExtArgs>
            result: $Utils.Optional<MeetingAttachmentCountAggregateOutputType> | number
          }
        }
      }
      NotificationMessage: {
        payload: Prisma.$NotificationMessagePayload<ExtArgs>
        fields: Prisma.NotificationMessageFieldRefs
        operations: {
          findUnique: {
            args: Prisma.NotificationMessageFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.NotificationMessageFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>
          }
          findFirst: {
            args: Prisma.NotificationMessageFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.NotificationMessageFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>
          }
          findMany: {
            args: Prisma.NotificationMessageFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>[]
          }
          create: {
            args: Prisma.NotificationMessageCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>
          }
          createMany: {
            args: Prisma.NotificationMessageCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.NotificationMessageCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>[]
          }
          delete: {
            args: Prisma.NotificationMessageDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>
          }
          update: {
            args: Prisma.NotificationMessageUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>
          }
          deleteMany: {
            args: Prisma.NotificationMessageDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.NotificationMessageUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.NotificationMessageUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>[]
          }
          upsert: {
            args: Prisma.NotificationMessageUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationMessagePayload>
          }
          aggregate: {
            args: Prisma.NotificationMessageAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateNotificationMessage>
          }
          groupBy: {
            args: Prisma.NotificationMessageGroupByArgs<ExtArgs>
            result: $Utils.Optional<NotificationMessageGroupByOutputType>[]
          }
          count: {
            args: Prisma.NotificationMessageCountArgs<ExtArgs>
            result: $Utils.Optional<NotificationMessageCountAggregateOutputType> | number
          }
        }
      }
      NotificationPreference: {
        payload: Prisma.$NotificationPreferencePayload<ExtArgs>
        fields: Prisma.NotificationPreferenceFieldRefs
        operations: {
          findUnique: {
            args: Prisma.NotificationPreferenceFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.NotificationPreferenceFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>
          }
          findFirst: {
            args: Prisma.NotificationPreferenceFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.NotificationPreferenceFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>
          }
          findMany: {
            args: Prisma.NotificationPreferenceFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>[]
          }
          create: {
            args: Prisma.NotificationPreferenceCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>
          }
          createMany: {
            args: Prisma.NotificationPreferenceCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.NotificationPreferenceCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>[]
          }
          delete: {
            args: Prisma.NotificationPreferenceDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>
          }
          update: {
            args: Prisma.NotificationPreferenceUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>
          }
          deleteMany: {
            args: Prisma.NotificationPreferenceDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.NotificationPreferenceUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.NotificationPreferenceUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>[]
          }
          upsert: {
            args: Prisma.NotificationPreferenceUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationPreferencePayload>
          }
          aggregate: {
            args: Prisma.NotificationPreferenceAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateNotificationPreference>
          }
          groupBy: {
            args: Prisma.NotificationPreferenceGroupByArgs<ExtArgs>
            result: $Utils.Optional<NotificationPreferenceGroupByOutputType>[]
          }
          count: {
            args: Prisma.NotificationPreferenceCountArgs<ExtArgs>
            result: $Utils.Optional<NotificationPreferenceCountAggregateOutputType> | number
          }
        }
      }
      NotificationTemplate: {
        payload: Prisma.$NotificationTemplatePayload<ExtArgs>
        fields: Prisma.NotificationTemplateFieldRefs
        operations: {
          findUnique: {
            args: Prisma.NotificationTemplateFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.NotificationTemplateFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>
          }
          findFirst: {
            args: Prisma.NotificationTemplateFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.NotificationTemplateFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>
          }
          findMany: {
            args: Prisma.NotificationTemplateFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>[]
          }
          create: {
            args: Prisma.NotificationTemplateCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>
          }
          createMany: {
            args: Prisma.NotificationTemplateCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.NotificationTemplateCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>[]
          }
          delete: {
            args: Prisma.NotificationTemplateDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>
          }
          update: {
            args: Prisma.NotificationTemplateUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>
          }
          deleteMany: {
            args: Prisma.NotificationTemplateDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.NotificationTemplateUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.NotificationTemplateUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>[]
          }
          upsert: {
            args: Prisma.NotificationTemplateUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationTemplatePayload>
          }
          aggregate: {
            args: Prisma.NotificationTemplateAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateNotificationTemplate>
          }
          groupBy: {
            args: Prisma.NotificationTemplateGroupByArgs<ExtArgs>
            result: $Utils.Optional<NotificationTemplateGroupByOutputType>[]
          }
          count: {
            args: Prisma.NotificationTemplateCountArgs<ExtArgs>
            result: $Utils.Optional<NotificationTemplateCountAggregateOutputType> | number
          }
        }
      }
      NotificationLog: {
        payload: Prisma.$NotificationLogPayload<ExtArgs>
        fields: Prisma.NotificationLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.NotificationLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.NotificationLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>
          }
          findFirst: {
            args: Prisma.NotificationLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.NotificationLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>
          }
          findMany: {
            args: Prisma.NotificationLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>[]
          }
          create: {
            args: Prisma.NotificationLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>
          }
          createMany: {
            args: Prisma.NotificationLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.NotificationLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>[]
          }
          delete: {
            args: Prisma.NotificationLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>
          }
          update: {
            args: Prisma.NotificationLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>
          }
          deleteMany: {
            args: Prisma.NotificationLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.NotificationLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.NotificationLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>[]
          }
          upsert: {
            args: Prisma.NotificationLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$NotificationLogPayload>
          }
          aggregate: {
            args: Prisma.NotificationLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateNotificationLog>
          }
          groupBy: {
            args: Prisma.NotificationLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<NotificationLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.NotificationLogCountArgs<ExtArgs>
            result: $Utils.Optional<NotificationLogCountAggregateOutputType> | number
          }
        }
      }
      M365User: {
        payload: Prisma.$M365UserPayload<ExtArgs>
        fields: Prisma.M365UserFieldRefs
        operations: {
          findUnique: {
            args: Prisma.M365UserFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.M365UserFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>
          }
          findFirst: {
            args: Prisma.M365UserFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.M365UserFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>
          }
          findMany: {
            args: Prisma.M365UserFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>[]
          }
          create: {
            args: Prisma.M365UserCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>
          }
          createMany: {
            args: Prisma.M365UserCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.M365UserCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>[]
          }
          delete: {
            args: Prisma.M365UserDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>
          }
          update: {
            args: Prisma.M365UserUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>
          }
          deleteMany: {
            args: Prisma.M365UserDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.M365UserUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.M365UserUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>[]
          }
          upsert: {
            args: Prisma.M365UserUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserPayload>
          }
          aggregate: {
            args: Prisma.M365UserAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateM365User>
          }
          groupBy: {
            args: Prisma.M365UserGroupByArgs<ExtArgs>
            result: $Utils.Optional<M365UserGroupByOutputType>[]
          }
          count: {
            args: Prisma.M365UserCountArgs<ExtArgs>
            result: $Utils.Optional<M365UserCountAggregateOutputType> | number
          }
        }
      }
      M365UserActivityChange: {
        payload: Prisma.$M365UserActivityChangePayload<ExtArgs>
        fields: Prisma.M365UserActivityChangeFieldRefs
        operations: {
          findUnique: {
            args: Prisma.M365UserActivityChangeFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.M365UserActivityChangeFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>
          }
          findFirst: {
            args: Prisma.M365UserActivityChangeFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.M365UserActivityChangeFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>
          }
          findMany: {
            args: Prisma.M365UserActivityChangeFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>[]
          }
          create: {
            args: Prisma.M365UserActivityChangeCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>
          }
          createMany: {
            args: Prisma.M365UserActivityChangeCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.M365UserActivityChangeCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>[]
          }
          delete: {
            args: Prisma.M365UserActivityChangeDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>
          }
          update: {
            args: Prisma.M365UserActivityChangeUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>
          }
          deleteMany: {
            args: Prisma.M365UserActivityChangeDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.M365UserActivityChangeUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.M365UserActivityChangeUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>[]
          }
          upsert: {
            args: Prisma.M365UserActivityChangeUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$M365UserActivityChangePayload>
          }
          aggregate: {
            args: Prisma.M365UserActivityChangeAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateM365UserActivityChange>
          }
          groupBy: {
            args: Prisma.M365UserActivityChangeGroupByArgs<ExtArgs>
            result: $Utils.Optional<M365UserActivityChangeGroupByOutputType>[]
          }
          count: {
            args: Prisma.M365UserActivityChangeCountArgs<ExtArgs>
            result: $Utils.Optional<M365UserActivityChangeCountAggregateOutputType> | number
          }
        }
      }
      GradeConfig: {
        payload: Prisma.$GradeConfigPayload<ExtArgs>
        fields: Prisma.GradeConfigFieldRefs
        operations: {
          findUnique: {
            args: Prisma.GradeConfigFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.GradeConfigFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>
          }
          findFirst: {
            args: Prisma.GradeConfigFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.GradeConfigFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>
          }
          findMany: {
            args: Prisma.GradeConfigFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>[]
          }
          create: {
            args: Prisma.GradeConfigCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>
          }
          createMany: {
            args: Prisma.GradeConfigCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.GradeConfigCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>[]
          }
          delete: {
            args: Prisma.GradeConfigDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>
          }
          update: {
            args: Prisma.GradeConfigUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>
          }
          deleteMany: {
            args: Prisma.GradeConfigDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.GradeConfigUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.GradeConfigUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>[]
          }
          upsert: {
            args: Prisma.GradeConfigUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeConfigPayload>
          }
          aggregate: {
            args: Prisma.GradeConfigAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateGradeConfig>
          }
          groupBy: {
            args: Prisma.GradeConfigGroupByArgs<ExtArgs>
            result: $Utils.Optional<GradeConfigGroupByOutputType>[]
          }
          count: {
            args: Prisma.GradeConfigCountArgs<ExtArgs>
            result: $Utils.Optional<GradeConfigCountAggregateOutputType> | number
          }
        }
      }
      PerformanceCycle: {
        payload: Prisma.$PerformanceCyclePayload<ExtArgs>
        fields: Prisma.PerformanceCycleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PerformanceCycleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PerformanceCycleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>
          }
          findFirst: {
            args: Prisma.PerformanceCycleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PerformanceCycleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>
          }
          findMany: {
            args: Prisma.PerformanceCycleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>[]
          }
          create: {
            args: Prisma.PerformanceCycleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>
          }
          createMany: {
            args: Prisma.PerformanceCycleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PerformanceCycleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>[]
          }
          delete: {
            args: Prisma.PerformanceCycleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>
          }
          update: {
            args: Prisma.PerformanceCycleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>
          }
          deleteMany: {
            args: Prisma.PerformanceCycleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PerformanceCycleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PerformanceCycleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>[]
          }
          upsert: {
            args: Prisma.PerformanceCycleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceCyclePayload>
          }
          aggregate: {
            args: Prisma.PerformanceCycleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePerformanceCycle>
          }
          groupBy: {
            args: Prisma.PerformanceCycleGroupByArgs<ExtArgs>
            result: $Utils.Optional<PerformanceCycleGroupByOutputType>[]
          }
          count: {
            args: Prisma.PerformanceCycleCountArgs<ExtArgs>
            result: $Utils.Optional<PerformanceCycleCountAggregateOutputType> | number
          }
        }
      }
      PerformanceResult: {
        payload: Prisma.$PerformanceResultPayload<ExtArgs>
        fields: Prisma.PerformanceResultFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PerformanceResultFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PerformanceResultFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>
          }
          findFirst: {
            args: Prisma.PerformanceResultFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PerformanceResultFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>
          }
          findMany: {
            args: Prisma.PerformanceResultFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>[]
          }
          create: {
            args: Prisma.PerformanceResultCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>
          }
          createMany: {
            args: Prisma.PerformanceResultCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PerformanceResultCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>[]
          }
          delete: {
            args: Prisma.PerformanceResultDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>
          }
          update: {
            args: Prisma.PerformanceResultUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>
          }
          deleteMany: {
            args: Prisma.PerformanceResultDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PerformanceResultUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PerformanceResultUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>[]
          }
          upsert: {
            args: Prisma.PerformanceResultUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PerformanceResultPayload>
          }
          aggregate: {
            args: Prisma.PerformanceResultAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePerformanceResult>
          }
          groupBy: {
            args: Prisma.PerformanceResultGroupByArgs<ExtArgs>
            result: $Utils.Optional<PerformanceResultGroupByOutputType>[]
          }
          count: {
            args: Prisma.PerformanceResultCountArgs<ExtArgs>
            result: $Utils.Optional<PerformanceResultCountAggregateOutputType> | number
          }
        }
      }
      KpiAssignment: {
        payload: Prisma.$KpiAssignmentPayload<ExtArgs>
        fields: Prisma.KpiAssignmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.KpiAssignmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.KpiAssignmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>
          }
          findFirst: {
            args: Prisma.KpiAssignmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.KpiAssignmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>
          }
          findMany: {
            args: Prisma.KpiAssignmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>[]
          }
          create: {
            args: Prisma.KpiAssignmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>
          }
          createMany: {
            args: Prisma.KpiAssignmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.KpiAssignmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>[]
          }
          delete: {
            args: Prisma.KpiAssignmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>
          }
          update: {
            args: Prisma.KpiAssignmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>
          }
          deleteMany: {
            args: Prisma.KpiAssignmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.KpiAssignmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.KpiAssignmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>[]
          }
          upsert: {
            args: Prisma.KpiAssignmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssignmentPayload>
          }
          aggregate: {
            args: Prisma.KpiAssignmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateKpiAssignment>
          }
          groupBy: {
            args: Prisma.KpiAssignmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<KpiAssignmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.KpiAssignmentCountArgs<ExtArgs>
            result: $Utils.Optional<KpiAssignmentCountAggregateOutputType> | number
          }
        }
      }
      KpiDependency: {
        payload: Prisma.$KpiDependencyPayload<ExtArgs>
        fields: Prisma.KpiDependencyFieldRefs
        operations: {
          findUnique: {
            args: Prisma.KpiDependencyFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.KpiDependencyFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>
          }
          findFirst: {
            args: Prisma.KpiDependencyFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.KpiDependencyFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>
          }
          findMany: {
            args: Prisma.KpiDependencyFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>[]
          }
          create: {
            args: Prisma.KpiDependencyCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>
          }
          createMany: {
            args: Prisma.KpiDependencyCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.KpiDependencyCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>[]
          }
          delete: {
            args: Prisma.KpiDependencyDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>
          }
          update: {
            args: Prisma.KpiDependencyUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>
          }
          deleteMany: {
            args: Prisma.KpiDependencyDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.KpiDependencyUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.KpiDependencyUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>[]
          }
          upsert: {
            args: Prisma.KpiDependencyUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiDependencyPayload>
          }
          aggregate: {
            args: Prisma.KpiDependencyAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateKpiDependency>
          }
          groupBy: {
            args: Prisma.KpiDependencyGroupByArgs<ExtArgs>
            result: $Utils.Optional<KpiDependencyGroupByOutputType>[]
          }
          count: {
            args: Prisma.KpiDependencyCountArgs<ExtArgs>
            result: $Utils.Optional<KpiDependencyCountAggregateOutputType> | number
          }
        }
      }
      KpiAssessment: {
        payload: Prisma.$KpiAssessmentPayload<ExtArgs>
        fields: Prisma.KpiAssessmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.KpiAssessmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.KpiAssessmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>
          }
          findFirst: {
            args: Prisma.KpiAssessmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.KpiAssessmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>
          }
          findMany: {
            args: Prisma.KpiAssessmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>[]
          }
          create: {
            args: Prisma.KpiAssessmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>
          }
          createMany: {
            args: Prisma.KpiAssessmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.KpiAssessmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>[]
          }
          delete: {
            args: Prisma.KpiAssessmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>
          }
          update: {
            args: Prisma.KpiAssessmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>
          }
          deleteMany: {
            args: Prisma.KpiAssessmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.KpiAssessmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.KpiAssessmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>[]
          }
          upsert: {
            args: Prisma.KpiAssessmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$KpiAssessmentPayload>
          }
          aggregate: {
            args: Prisma.KpiAssessmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateKpiAssessment>
          }
          groupBy: {
            args: Prisma.KpiAssessmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<KpiAssessmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.KpiAssessmentCountArgs<ExtArgs>
            result: $Utils.Optional<KpiAssessmentCountAggregateOutputType> | number
          }
        }
      }
      Evaluation360: {
        payload: Prisma.$Evaluation360Payload<ExtArgs>
        fields: Prisma.Evaluation360FieldRefs
        operations: {
          findUnique: {
            args: Prisma.Evaluation360FindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.Evaluation360FindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>
          }
          findFirst: {
            args: Prisma.Evaluation360FindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload> | null
          }
          findFirstOrThrow: {
            args: Prisma.Evaluation360FindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>
          }
          findMany: {
            args: Prisma.Evaluation360FindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>[]
          }
          create: {
            args: Prisma.Evaluation360CreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>
          }
          createMany: {
            args: Prisma.Evaluation360CreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.Evaluation360CreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>[]
          }
          delete: {
            args: Prisma.Evaluation360DeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>
          }
          update: {
            args: Prisma.Evaluation360UpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>
          }
          deleteMany: {
            args: Prisma.Evaluation360DeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.Evaluation360UpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.Evaluation360UpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>[]
          }
          upsert: {
            args: Prisma.Evaluation360UpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360Payload>
          }
          aggregate: {
            args: Prisma.Evaluation360AggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateEvaluation360>
          }
          groupBy: {
            args: Prisma.Evaluation360GroupByArgs<ExtArgs>
            result: $Utils.Optional<Evaluation360GroupByOutputType>[]
          }
          count: {
            args: Prisma.Evaluation360CountArgs<ExtArgs>
            result: $Utils.Optional<Evaluation360CountAggregateOutputType> | number
          }
        }
      }
      EvaluationTask: {
        payload: Prisma.$EvaluationTaskPayload<ExtArgs>
        fields: Prisma.EvaluationTaskFieldRefs
        operations: {
          findUnique: {
            args: Prisma.EvaluationTaskFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.EvaluationTaskFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>
          }
          findFirst: {
            args: Prisma.EvaluationTaskFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.EvaluationTaskFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>
          }
          findMany: {
            args: Prisma.EvaluationTaskFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>[]
          }
          create: {
            args: Prisma.EvaluationTaskCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>
          }
          createMany: {
            args: Prisma.EvaluationTaskCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.EvaluationTaskCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>[]
          }
          delete: {
            args: Prisma.EvaluationTaskDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>
          }
          update: {
            args: Prisma.EvaluationTaskUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>
          }
          deleteMany: {
            args: Prisma.EvaluationTaskDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.EvaluationTaskUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.EvaluationTaskUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>[]
          }
          upsert: {
            args: Prisma.EvaluationTaskUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationTaskPayload>
          }
          aggregate: {
            args: Prisma.EvaluationTaskAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateEvaluationTask>
          }
          groupBy: {
            args: Prisma.EvaluationTaskGroupByArgs<ExtArgs>
            result: $Utils.Optional<EvaluationTaskGroupByOutputType>[]
          }
          count: {
            args: Prisma.EvaluationTaskCountArgs<ExtArgs>
            result: $Utils.Optional<EvaluationTaskCountAggregateOutputType> | number
          }
        }
      }
      EvaluationResponse: {
        payload: Prisma.$EvaluationResponsePayload<ExtArgs>
        fields: Prisma.EvaluationResponseFieldRefs
        operations: {
          findUnique: {
            args: Prisma.EvaluationResponseFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.EvaluationResponseFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>
          }
          findFirst: {
            args: Prisma.EvaluationResponseFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.EvaluationResponseFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>
          }
          findMany: {
            args: Prisma.EvaluationResponseFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>[]
          }
          create: {
            args: Prisma.EvaluationResponseCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>
          }
          createMany: {
            args: Prisma.EvaluationResponseCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.EvaluationResponseCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>[]
          }
          delete: {
            args: Prisma.EvaluationResponseDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>
          }
          update: {
            args: Prisma.EvaluationResponseUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>
          }
          deleteMany: {
            args: Prisma.EvaluationResponseDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.EvaluationResponseUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.EvaluationResponseUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>[]
          }
          upsert: {
            args: Prisma.EvaluationResponseUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$EvaluationResponsePayload>
          }
          aggregate: {
            args: Prisma.EvaluationResponseAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateEvaluationResponse>
          }
          groupBy: {
            args: Prisma.EvaluationResponseGroupByArgs<ExtArgs>
            result: $Utils.Optional<EvaluationResponseGroupByOutputType>[]
          }
          count: {
            args: Prisma.EvaluationResponseCountArgs<ExtArgs>
            result: $Utils.Optional<EvaluationResponseCountAggregateOutputType> | number
          }
        }
      }
      GradeAdjustmentLog: {
        payload: Prisma.$GradeAdjustmentLogPayload<ExtArgs>
        fields: Prisma.GradeAdjustmentLogFieldRefs
        operations: {
          findUnique: {
            args: Prisma.GradeAdjustmentLogFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.GradeAdjustmentLogFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>
          }
          findFirst: {
            args: Prisma.GradeAdjustmentLogFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.GradeAdjustmentLogFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>
          }
          findMany: {
            args: Prisma.GradeAdjustmentLogFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>[]
          }
          create: {
            args: Prisma.GradeAdjustmentLogCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>
          }
          createMany: {
            args: Prisma.GradeAdjustmentLogCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.GradeAdjustmentLogCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>[]
          }
          delete: {
            args: Prisma.GradeAdjustmentLogDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>
          }
          update: {
            args: Prisma.GradeAdjustmentLogUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>
          }
          deleteMany: {
            args: Prisma.GradeAdjustmentLogDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.GradeAdjustmentLogUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.GradeAdjustmentLogUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>[]
          }
          upsert: {
            args: Prisma.GradeAdjustmentLogUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$GradeAdjustmentLogPayload>
          }
          aggregate: {
            args: Prisma.GradeAdjustmentLogAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateGradeAdjustmentLog>
          }
          groupBy: {
            args: Prisma.GradeAdjustmentLogGroupByArgs<ExtArgs>
            result: $Utils.Optional<GradeAdjustmentLogGroupByOutputType>[]
          }
          count: {
            args: Prisma.GradeAdjustmentLogCountArgs<ExtArgs>
            result: $Utils.Optional<GradeAdjustmentLogCountAggregateOutputType> | number
          }
        }
      }
      StrategicObjective: {
        payload: Prisma.$StrategicObjectivePayload<ExtArgs>
        fields: Prisma.StrategicObjectiveFieldRefs
        operations: {
          findUnique: {
            args: Prisma.StrategicObjectiveFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.StrategicObjectiveFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>
          }
          findFirst: {
            args: Prisma.StrategicObjectiveFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.StrategicObjectiveFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>
          }
          findMany: {
            args: Prisma.StrategicObjectiveFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>[]
          }
          create: {
            args: Prisma.StrategicObjectiveCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>
          }
          createMany: {
            args: Prisma.StrategicObjectiveCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.StrategicObjectiveCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>[]
          }
          delete: {
            args: Prisma.StrategicObjectiveDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>
          }
          update: {
            args: Prisma.StrategicObjectiveUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>
          }
          deleteMany: {
            args: Prisma.StrategicObjectiveDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.StrategicObjectiveUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.StrategicObjectiveUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>[]
          }
          upsert: {
            args: Prisma.StrategicObjectiveUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectivePayload>
          }
          aggregate: {
            args: Prisma.StrategicObjectiveAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateStrategicObjective>
          }
          groupBy: {
            args: Prisma.StrategicObjectiveGroupByArgs<ExtArgs>
            result: $Utils.Optional<StrategicObjectiveGroupByOutputType>[]
          }
          count: {
            args: Prisma.StrategicObjectiveCountArgs<ExtArgs>
            result: $Utils.Optional<StrategicObjectiveCountAggregateOutputType> | number
          }
        }
      }
      StrategicObjectiveAssignment: {
        payload: Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>
        fields: Prisma.StrategicObjectiveAssignmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.StrategicObjectiveAssignmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.StrategicObjectiveAssignmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>
          }
          findFirst: {
            args: Prisma.StrategicObjectiveAssignmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.StrategicObjectiveAssignmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>
          }
          findMany: {
            args: Prisma.StrategicObjectiveAssignmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>[]
          }
          create: {
            args: Prisma.StrategicObjectiveAssignmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>
          }
          createMany: {
            args: Prisma.StrategicObjectiveAssignmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.StrategicObjectiveAssignmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>[]
          }
          delete: {
            args: Prisma.StrategicObjectiveAssignmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>
          }
          update: {
            args: Prisma.StrategicObjectiveAssignmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>
          }
          deleteMany: {
            args: Prisma.StrategicObjectiveAssignmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.StrategicObjectiveAssignmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.StrategicObjectiveAssignmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>[]
          }
          upsert: {
            args: Prisma.StrategicObjectiveAssignmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$StrategicObjectiveAssignmentPayload>
          }
          aggregate: {
            args: Prisma.StrategicObjectiveAssignmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateStrategicObjectiveAssignment>
          }
          groupBy: {
            args: Prisma.StrategicObjectiveAssignmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<StrategicObjectiveAssignmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.StrategicObjectiveAssignmentCountArgs<ExtArgs>
            result: $Utils.Optional<StrategicObjectiveAssignmentCountAggregateOutputType> | number
          }
        }
      }
      Evaluation360Template: {
        payload: Prisma.$Evaluation360TemplatePayload<ExtArgs>
        fields: Prisma.Evaluation360TemplateFieldRefs
        operations: {
          findUnique: {
            args: Prisma.Evaluation360TemplateFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.Evaluation360TemplateFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>
          }
          findFirst: {
            args: Prisma.Evaluation360TemplateFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.Evaluation360TemplateFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>
          }
          findMany: {
            args: Prisma.Evaluation360TemplateFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>[]
          }
          create: {
            args: Prisma.Evaluation360TemplateCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>
          }
          createMany: {
            args: Prisma.Evaluation360TemplateCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.Evaluation360TemplateCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>[]
          }
          delete: {
            args: Prisma.Evaluation360TemplateDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>
          }
          update: {
            args: Prisma.Evaluation360TemplateUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>
          }
          deleteMany: {
            args: Prisma.Evaluation360TemplateDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.Evaluation360TemplateUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.Evaluation360TemplateUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>[]
          }
          upsert: {
            args: Prisma.Evaluation360TemplateUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$Evaluation360TemplatePayload>
          }
          aggregate: {
            args: Prisma.Evaluation360TemplateAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateEvaluation360Template>
          }
          groupBy: {
            args: Prisma.Evaluation360TemplateGroupByArgs<ExtArgs>
            result: $Utils.Optional<Evaluation360TemplateGroupByOutputType>[]
          }
          count: {
            args: Prisma.Evaluation360TemplateCountArgs<ExtArgs>
            result: $Utils.Optional<Evaluation360TemplateCountAggregateOutputType> | number
          }
        }
      }
      SiteCheckpoint: {
        payload: Prisma.$SiteCheckpointPayload<ExtArgs>
        fields: Prisma.SiteCheckpointFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SiteCheckpointFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SiteCheckpointFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>
          }
          findFirst: {
            args: Prisma.SiteCheckpointFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SiteCheckpointFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>
          }
          findMany: {
            args: Prisma.SiteCheckpointFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>[]
          }
          create: {
            args: Prisma.SiteCheckpointCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>
          }
          createMany: {
            args: Prisma.SiteCheckpointCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SiteCheckpointCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>[]
          }
          delete: {
            args: Prisma.SiteCheckpointDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>
          }
          update: {
            args: Prisma.SiteCheckpointUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>
          }
          deleteMany: {
            args: Prisma.SiteCheckpointDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SiteCheckpointUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SiteCheckpointUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>[]
          }
          upsert: {
            args: Prisma.SiteCheckpointUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteCheckpointPayload>
          }
          aggregate: {
            args: Prisma.SiteCheckpointAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSiteCheckpoint>
          }
          groupBy: {
            args: Prisma.SiteCheckpointGroupByArgs<ExtArgs>
            result: $Utils.Optional<SiteCheckpointGroupByOutputType>[]
          }
          count: {
            args: Prisma.SiteCheckpointCountArgs<ExtArgs>
            result: $Utils.Optional<SiteCheckpointCountAggregateOutputType> | number
          }
        }
      }
      SharedCheckinPartner: {
        payload: Prisma.$SharedCheckinPartnerPayload<ExtArgs>
        fields: Prisma.SharedCheckinPartnerFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SharedCheckinPartnerFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SharedCheckinPartnerFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>
          }
          findFirst: {
            args: Prisma.SharedCheckinPartnerFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SharedCheckinPartnerFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>
          }
          findMany: {
            args: Prisma.SharedCheckinPartnerFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>[]
          }
          create: {
            args: Prisma.SharedCheckinPartnerCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>
          }
          createMany: {
            args: Prisma.SharedCheckinPartnerCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SharedCheckinPartnerCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>[]
          }
          delete: {
            args: Prisma.SharedCheckinPartnerDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>
          }
          update: {
            args: Prisma.SharedCheckinPartnerUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>
          }
          deleteMany: {
            args: Prisma.SharedCheckinPartnerDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SharedCheckinPartnerUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SharedCheckinPartnerUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>[]
          }
          upsert: {
            args: Prisma.SharedCheckinPartnerUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinPartnerPayload>
          }
          aggregate: {
            args: Prisma.SharedCheckinPartnerAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSharedCheckinPartner>
          }
          groupBy: {
            args: Prisma.SharedCheckinPartnerGroupByArgs<ExtArgs>
            result: $Utils.Optional<SharedCheckinPartnerGroupByOutputType>[]
          }
          count: {
            args: Prisma.SharedCheckinPartnerCountArgs<ExtArgs>
            result: $Utils.Optional<SharedCheckinPartnerCountAggregateOutputType> | number
          }
        }
      }
      SharedCheckinTicketUsage: {
        payload: Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>
        fields: Prisma.SharedCheckinTicketUsageFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SharedCheckinTicketUsageFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SharedCheckinTicketUsageFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>
          }
          findFirst: {
            args: Prisma.SharedCheckinTicketUsageFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SharedCheckinTicketUsageFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>
          }
          findMany: {
            args: Prisma.SharedCheckinTicketUsageFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>[]
          }
          create: {
            args: Prisma.SharedCheckinTicketUsageCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>
          }
          createMany: {
            args: Prisma.SharedCheckinTicketUsageCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SharedCheckinTicketUsageCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>[]
          }
          delete: {
            args: Prisma.SharedCheckinTicketUsageDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>
          }
          update: {
            args: Prisma.SharedCheckinTicketUsageUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>
          }
          deleteMany: {
            args: Prisma.SharedCheckinTicketUsageDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SharedCheckinTicketUsageUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SharedCheckinTicketUsageUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>[]
          }
          upsert: {
            args: Prisma.SharedCheckinTicketUsageUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SharedCheckinTicketUsagePayload>
          }
          aggregate: {
            args: Prisma.SharedCheckinTicketUsageAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSharedCheckinTicketUsage>
          }
          groupBy: {
            args: Prisma.SharedCheckinTicketUsageGroupByArgs<ExtArgs>
            result: $Utils.Optional<SharedCheckinTicketUsageGroupByOutputType>[]
          }
          count: {
            args: Prisma.SharedCheckinTicketUsageCountArgs<ExtArgs>
            result: $Utils.Optional<SharedCheckinTicketUsageCountAggregateOutputType> | number
          }
        }
      }
      SiteAttendanceEvent: {
        payload: Prisma.$SiteAttendanceEventPayload<ExtArgs>
        fields: Prisma.SiteAttendanceEventFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SiteAttendanceEventFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SiteAttendanceEventFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>
          }
          findFirst: {
            args: Prisma.SiteAttendanceEventFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SiteAttendanceEventFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>
          }
          findMany: {
            args: Prisma.SiteAttendanceEventFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>[]
          }
          create: {
            args: Prisma.SiteAttendanceEventCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>
          }
          createMany: {
            args: Prisma.SiteAttendanceEventCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SiteAttendanceEventCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>[]
          }
          delete: {
            args: Prisma.SiteAttendanceEventDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>
          }
          update: {
            args: Prisma.SiteAttendanceEventUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>
          }
          deleteMany: {
            args: Prisma.SiteAttendanceEventDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SiteAttendanceEventUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SiteAttendanceEventUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>[]
          }
          upsert: {
            args: Prisma.SiteAttendanceEventUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteAttendanceEventPayload>
          }
          aggregate: {
            args: Prisma.SiteAttendanceEventAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSiteAttendanceEvent>
          }
          groupBy: {
            args: Prisma.SiteAttendanceEventGroupByArgs<ExtArgs>
            result: $Utils.Optional<SiteAttendanceEventGroupByOutputType>[]
          }
          count: {
            args: Prisma.SiteAttendanceEventCountArgs<ExtArgs>
            result: $Utils.Optional<SiteAttendanceEventCountAggregateOutputType> | number
          }
        }
      }
      SiteDailySummary: {
        payload: Prisma.$SiteDailySummaryPayload<ExtArgs>
        fields: Prisma.SiteDailySummaryFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SiteDailySummaryFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SiteDailySummaryFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>
          }
          findFirst: {
            args: Prisma.SiteDailySummaryFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SiteDailySummaryFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>
          }
          findMany: {
            args: Prisma.SiteDailySummaryFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>[]
          }
          create: {
            args: Prisma.SiteDailySummaryCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>
          }
          createMany: {
            args: Prisma.SiteDailySummaryCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SiteDailySummaryCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>[]
          }
          delete: {
            args: Prisma.SiteDailySummaryDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>
          }
          update: {
            args: Prisma.SiteDailySummaryUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>
          }
          deleteMany: {
            args: Prisma.SiteDailySummaryDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SiteDailySummaryUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SiteDailySummaryUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>[]
          }
          upsert: {
            args: Prisma.SiteDailySummaryUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SiteDailySummaryPayload>
          }
          aggregate: {
            args: Prisma.SiteDailySummaryAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSiteDailySummary>
          }
          groupBy: {
            args: Prisma.SiteDailySummaryGroupByArgs<ExtArgs>
            result: $Utils.Optional<SiteDailySummaryGroupByOutputType>[]
          }
          count: {
            args: Prisma.SiteDailySummaryCountArgs<ExtArgs>
            result: $Utils.Optional<SiteDailySummaryCountAggregateOutputType> | number
          }
        }
      }
      Ticket: {
        payload: Prisma.$TicketPayload<ExtArgs>
        fields: Prisma.TicketFieldRefs
        operations: {
          findUnique: {
            args: Prisma.TicketFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.TicketFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>
          }
          findFirst: {
            args: Prisma.TicketFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.TicketFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>
          }
          findMany: {
            args: Prisma.TicketFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>[]
          }
          create: {
            args: Prisma.TicketCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>
          }
          createMany: {
            args: Prisma.TicketCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.TicketCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>[]
          }
          delete: {
            args: Prisma.TicketDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>
          }
          update: {
            args: Prisma.TicketUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>
          }
          deleteMany: {
            args: Prisma.TicketDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.TicketUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.TicketUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>[]
          }
          upsert: {
            args: Prisma.TicketUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketPayload>
          }
          aggregate: {
            args: Prisma.TicketAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateTicket>
          }
          groupBy: {
            args: Prisma.TicketGroupByArgs<ExtArgs>
            result: $Utils.Optional<TicketGroupByOutputType>[]
          }
          count: {
            args: Prisma.TicketCountArgs<ExtArgs>
            result: $Utils.Optional<TicketCountAggregateOutputType> | number
          }
        }
      }
      TicketCategory: {
        payload: Prisma.$TicketCategoryPayload<ExtArgs>
        fields: Prisma.TicketCategoryFieldRefs
        operations: {
          findUnique: {
            args: Prisma.TicketCategoryFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.TicketCategoryFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>
          }
          findFirst: {
            args: Prisma.TicketCategoryFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.TicketCategoryFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>
          }
          findMany: {
            args: Prisma.TicketCategoryFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>[]
          }
          create: {
            args: Prisma.TicketCategoryCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>
          }
          createMany: {
            args: Prisma.TicketCategoryCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.TicketCategoryCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>[]
          }
          delete: {
            args: Prisma.TicketCategoryDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>
          }
          update: {
            args: Prisma.TicketCategoryUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>
          }
          deleteMany: {
            args: Prisma.TicketCategoryDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.TicketCategoryUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.TicketCategoryUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>[]
          }
          upsert: {
            args: Prisma.TicketCategoryUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCategoryPayload>
          }
          aggregate: {
            args: Prisma.TicketCategoryAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateTicketCategory>
          }
          groupBy: {
            args: Prisma.TicketCategoryGroupByArgs<ExtArgs>
            result: $Utils.Optional<TicketCategoryGroupByOutputType>[]
          }
          count: {
            args: Prisma.TicketCategoryCountArgs<ExtArgs>
            result: $Utils.Optional<TicketCategoryCountAggregateOutputType> | number
          }
        }
      }
      TicketComment: {
        payload: Prisma.$TicketCommentPayload<ExtArgs>
        fields: Prisma.TicketCommentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.TicketCommentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.TicketCommentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>
          }
          findFirst: {
            args: Prisma.TicketCommentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.TicketCommentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>
          }
          findMany: {
            args: Prisma.TicketCommentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>[]
          }
          create: {
            args: Prisma.TicketCommentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>
          }
          createMany: {
            args: Prisma.TicketCommentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.TicketCommentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>[]
          }
          delete: {
            args: Prisma.TicketCommentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>
          }
          update: {
            args: Prisma.TicketCommentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>
          }
          deleteMany: {
            args: Prisma.TicketCommentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.TicketCommentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.TicketCommentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>[]
          }
          upsert: {
            args: Prisma.TicketCommentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketCommentPayload>
          }
          aggregate: {
            args: Prisma.TicketCommentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateTicketComment>
          }
          groupBy: {
            args: Prisma.TicketCommentGroupByArgs<ExtArgs>
            result: $Utils.Optional<TicketCommentGroupByOutputType>[]
          }
          count: {
            args: Prisma.TicketCommentCountArgs<ExtArgs>
            result: $Utils.Optional<TicketCommentCountAggregateOutputType> | number
          }
        }
      }
      TicketAttachment: {
        payload: Prisma.$TicketAttachmentPayload<ExtArgs>
        fields: Prisma.TicketAttachmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.TicketAttachmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.TicketAttachmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>
          }
          findFirst: {
            args: Prisma.TicketAttachmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.TicketAttachmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>
          }
          findMany: {
            args: Prisma.TicketAttachmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>[]
          }
          create: {
            args: Prisma.TicketAttachmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>
          }
          createMany: {
            args: Prisma.TicketAttachmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.TicketAttachmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>[]
          }
          delete: {
            args: Prisma.TicketAttachmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>
          }
          update: {
            args: Prisma.TicketAttachmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>
          }
          deleteMany: {
            args: Prisma.TicketAttachmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.TicketAttachmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.TicketAttachmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>[]
          }
          upsert: {
            args: Prisma.TicketAttachmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketAttachmentPayload>
          }
          aggregate: {
            args: Prisma.TicketAttachmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateTicketAttachment>
          }
          groupBy: {
            args: Prisma.TicketAttachmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<TicketAttachmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.TicketAttachmentCountArgs<ExtArgs>
            result: $Utils.Optional<TicketAttachmentCountAggregateOutputType> | number
          }
        }
      }
      TicketActivity: {
        payload: Prisma.$TicketActivityPayload<ExtArgs>
        fields: Prisma.TicketActivityFieldRefs
        operations: {
          findUnique: {
            args: Prisma.TicketActivityFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.TicketActivityFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>
          }
          findFirst: {
            args: Prisma.TicketActivityFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.TicketActivityFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>
          }
          findMany: {
            args: Prisma.TicketActivityFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>[]
          }
          create: {
            args: Prisma.TicketActivityCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>
          }
          createMany: {
            args: Prisma.TicketActivityCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.TicketActivityCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>[]
          }
          delete: {
            args: Prisma.TicketActivityDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>
          }
          update: {
            args: Prisma.TicketActivityUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>
          }
          deleteMany: {
            args: Prisma.TicketActivityDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.TicketActivityUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.TicketActivityUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>[]
          }
          upsert: {
            args: Prisma.TicketActivityUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketActivityPayload>
          }
          aggregate: {
            args: Prisma.TicketActivityAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateTicketActivity>
          }
          groupBy: {
            args: Prisma.TicketActivityGroupByArgs<ExtArgs>
            result: $Utils.Optional<TicketActivityGroupByOutputType>[]
          }
          count: {
            args: Prisma.TicketActivityCountArgs<ExtArgs>
            result: $Utils.Optional<TicketActivityCountAggregateOutputType> | number
          }
        }
      }
      TicketSLA: {
        payload: Prisma.$TicketSLAPayload<ExtArgs>
        fields: Prisma.TicketSLAFieldRefs
        operations: {
          findUnique: {
            args: Prisma.TicketSLAFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.TicketSLAFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>
          }
          findFirst: {
            args: Prisma.TicketSLAFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.TicketSLAFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>
          }
          findMany: {
            args: Prisma.TicketSLAFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>[]
          }
          create: {
            args: Prisma.TicketSLACreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>
          }
          createMany: {
            args: Prisma.TicketSLACreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.TicketSLACreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>[]
          }
          delete: {
            args: Prisma.TicketSLADeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>
          }
          update: {
            args: Prisma.TicketSLAUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>
          }
          deleteMany: {
            args: Prisma.TicketSLADeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.TicketSLAUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.TicketSLAUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>[]
          }
          upsert: {
            args: Prisma.TicketSLAUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TicketSLAPayload>
          }
          aggregate: {
            args: Prisma.TicketSLAAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateTicketSLA>
          }
          groupBy: {
            args: Prisma.TicketSLAGroupByArgs<ExtArgs>
            result: $Utils.Optional<TicketSLAGroupByOutputType>[]
          }
          count: {
            args: Prisma.TicketSLACountArgs<ExtArgs>
            result: $Utils.Optional<TicketSLACountAggregateOutputType> | number
          }
        }
      }
      AssignmentGroup: {
        payload: Prisma.$AssignmentGroupPayload<ExtArgs>
        fields: Prisma.AssignmentGroupFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AssignmentGroupFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AssignmentGroupFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>
          }
          findFirst: {
            args: Prisma.AssignmentGroupFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AssignmentGroupFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>
          }
          findMany: {
            args: Prisma.AssignmentGroupFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>[]
          }
          create: {
            args: Prisma.AssignmentGroupCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>
          }
          createMany: {
            args: Prisma.AssignmentGroupCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AssignmentGroupCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>[]
          }
          delete: {
            args: Prisma.AssignmentGroupDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>
          }
          update: {
            args: Prisma.AssignmentGroupUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>
          }
          deleteMany: {
            args: Prisma.AssignmentGroupDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AssignmentGroupUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AssignmentGroupUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>[]
          }
          upsert: {
            args: Prisma.AssignmentGroupUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AssignmentGroupPayload>
          }
          aggregate: {
            args: Prisma.AssignmentGroupAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAssignmentGroup>
          }
          groupBy: {
            args: Prisma.AssignmentGroupGroupByArgs<ExtArgs>
            result: $Utils.Optional<AssignmentGroupGroupByOutputType>[]
          }
          count: {
            args: Prisma.AssignmentGroupCountArgs<ExtArgs>
            result: $Utils.Optional<AssignmentGroupCountAggregateOutputType> | number
          }
        }
      }
      RobotModel: {
        payload: Prisma.$RobotModelPayload<ExtArgs>
        fields: Prisma.RobotModelFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RobotModelFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RobotModelFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>
          }
          findFirst: {
            args: Prisma.RobotModelFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RobotModelFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>
          }
          findMany: {
            args: Prisma.RobotModelFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>[]
          }
          create: {
            args: Prisma.RobotModelCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>
          }
          createMany: {
            args: Prisma.RobotModelCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RobotModelCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>[]
          }
          delete: {
            args: Prisma.RobotModelDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>
          }
          update: {
            args: Prisma.RobotModelUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>
          }
          deleteMany: {
            args: Prisma.RobotModelDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RobotModelUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RobotModelUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>[]
          }
          upsert: {
            args: Prisma.RobotModelUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotModelPayload>
          }
          aggregate: {
            args: Prisma.RobotModelAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRobotModel>
          }
          groupBy: {
            args: Prisma.RobotModelGroupByArgs<ExtArgs>
            result: $Utils.Optional<RobotModelGroupByOutputType>[]
          }
          count: {
            args: Prisma.RobotModelCountArgs<ExtArgs>
            result: $Utils.Optional<RobotModelCountAggregateOutputType> | number
          }
        }
      }
      RobotSku: {
        payload: Prisma.$RobotSkuPayload<ExtArgs>
        fields: Prisma.RobotSkuFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RobotSkuFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RobotSkuFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>
          }
          findFirst: {
            args: Prisma.RobotSkuFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RobotSkuFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>
          }
          findMany: {
            args: Prisma.RobotSkuFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>[]
          }
          create: {
            args: Prisma.RobotSkuCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>
          }
          createMany: {
            args: Prisma.RobotSkuCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RobotSkuCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>[]
          }
          delete: {
            args: Prisma.RobotSkuDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>
          }
          update: {
            args: Prisma.RobotSkuUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>
          }
          deleteMany: {
            args: Prisma.RobotSkuDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RobotSkuUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RobotSkuUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>[]
          }
          upsert: {
            args: Prisma.RobotSkuUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSkuPayload>
          }
          aggregate: {
            args: Prisma.RobotSkuAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRobotSku>
          }
          groupBy: {
            args: Prisma.RobotSkuGroupByArgs<ExtArgs>
            result: $Utils.Optional<RobotSkuGroupByOutputType>[]
          }
          count: {
            args: Prisma.RobotSkuCountArgs<ExtArgs>
            result: $Utils.Optional<RobotSkuCountAggregateOutputType> | number
          }
        }
      }
      RobotSystemConfig: {
        payload: Prisma.$RobotSystemConfigPayload<ExtArgs>
        fields: Prisma.RobotSystemConfigFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RobotSystemConfigFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RobotSystemConfigFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>
          }
          findFirst: {
            args: Prisma.RobotSystemConfigFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RobotSystemConfigFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>
          }
          findMany: {
            args: Prisma.RobotSystemConfigFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>[]
          }
          create: {
            args: Prisma.RobotSystemConfigCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>
          }
          createMany: {
            args: Prisma.RobotSystemConfigCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RobotSystemConfigCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>[]
          }
          delete: {
            args: Prisma.RobotSystemConfigDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>
          }
          update: {
            args: Prisma.RobotSystemConfigUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>
          }
          deleteMany: {
            args: Prisma.RobotSystemConfigDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RobotSystemConfigUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RobotSystemConfigUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>[]
          }
          upsert: {
            args: Prisma.RobotSystemConfigUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotSystemConfigPayload>
          }
          aggregate: {
            args: Prisma.RobotSystemConfigAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRobotSystemConfig>
          }
          groupBy: {
            args: Prisma.RobotSystemConfigGroupByArgs<ExtArgs>
            result: $Utils.Optional<RobotSystemConfigGroupByOutputType>[]
          }
          count: {
            args: Prisma.RobotSystemConfigCountArgs<ExtArgs>
            result: $Utils.Optional<RobotSystemConfigCountAggregateOutputType> | number
          }
        }
      }
      RobotUnit: {
        payload: Prisma.$RobotUnitPayload<ExtArgs>
        fields: Prisma.RobotUnitFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RobotUnitFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RobotUnitFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>
          }
          findFirst: {
            args: Prisma.RobotUnitFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RobotUnitFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>
          }
          findMany: {
            args: Prisma.RobotUnitFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>[]
          }
          create: {
            args: Prisma.RobotUnitCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>
          }
          createMany: {
            args: Prisma.RobotUnitCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RobotUnitCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>[]
          }
          delete: {
            args: Prisma.RobotUnitDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>
          }
          update: {
            args: Prisma.RobotUnitUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>
          }
          deleteMany: {
            args: Prisma.RobotUnitDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RobotUnitUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RobotUnitUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>[]
          }
          upsert: {
            args: Prisma.RobotUnitUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitPayload>
          }
          aggregate: {
            args: Prisma.RobotUnitAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRobotUnit>
          }
          groupBy: {
            args: Prisma.RobotUnitGroupByArgs<ExtArgs>
            result: $Utils.Optional<RobotUnitGroupByOutputType>[]
          }
          count: {
            args: Prisma.RobotUnitCountArgs<ExtArgs>
            result: $Utils.Optional<RobotUnitCountAggregateOutputType> | number
          }
        }
      }
      RobotUnitSnapshot: {
        payload: Prisma.$RobotUnitSnapshotPayload<ExtArgs>
        fields: Prisma.RobotUnitSnapshotFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RobotUnitSnapshotFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RobotUnitSnapshotFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>
          }
          findFirst: {
            args: Prisma.RobotUnitSnapshotFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RobotUnitSnapshotFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>
          }
          findMany: {
            args: Prisma.RobotUnitSnapshotFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>[]
          }
          create: {
            args: Prisma.RobotUnitSnapshotCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>
          }
          createMany: {
            args: Prisma.RobotUnitSnapshotCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RobotUnitSnapshotCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>[]
          }
          delete: {
            args: Prisma.RobotUnitSnapshotDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>
          }
          update: {
            args: Prisma.RobotUnitSnapshotUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>
          }
          deleteMany: {
            args: Prisma.RobotUnitSnapshotDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RobotUnitSnapshotUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RobotUnitSnapshotUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>[]
          }
          upsert: {
            args: Prisma.RobotUnitSnapshotUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotUnitSnapshotPayload>
          }
          aggregate: {
            args: Prisma.RobotUnitSnapshotAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRobotUnitSnapshot>
          }
          groupBy: {
            args: Prisma.RobotUnitSnapshotGroupByArgs<ExtArgs>
            result: $Utils.Optional<RobotUnitSnapshotGroupByOutputType>[]
          }
          count: {
            args: Prisma.RobotUnitSnapshotCountArgs<ExtArgs>
            result: $Utils.Optional<RobotUnitSnapshotCountAggregateOutputType> | number
          }
        }
      }
      RobotLifecycleEvent: {
        payload: Prisma.$RobotLifecycleEventPayload<ExtArgs>
        fields: Prisma.RobotLifecycleEventFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RobotLifecycleEventFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RobotLifecycleEventFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>
          }
          findFirst: {
            args: Prisma.RobotLifecycleEventFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RobotLifecycleEventFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>
          }
          findMany: {
            args: Prisma.RobotLifecycleEventFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>[]
          }
          create: {
            args: Prisma.RobotLifecycleEventCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>
          }
          createMany: {
            args: Prisma.RobotLifecycleEventCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RobotLifecycleEventCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>[]
          }
          delete: {
            args: Prisma.RobotLifecycleEventDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>
          }
          update: {
            args: Prisma.RobotLifecycleEventUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>
          }
          deleteMany: {
            args: Prisma.RobotLifecycleEventDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RobotLifecycleEventUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RobotLifecycleEventUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>[]
          }
          upsert: {
            args: Prisma.RobotLifecycleEventUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotLifecycleEventPayload>
          }
          aggregate: {
            args: Prisma.RobotLifecycleEventAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRobotLifecycleEvent>
          }
          groupBy: {
            args: Prisma.RobotLifecycleEventGroupByArgs<ExtArgs>
            result: $Utils.Optional<RobotLifecycleEventGroupByOutputType>[]
          }
          count: {
            args: Prisma.RobotLifecycleEventCountArgs<ExtArgs>
            result: $Utils.Optional<RobotLifecycleEventCountAggregateOutputType> | number
          }
        }
      }
      PurchaseOrder: {
        payload: Prisma.$PurchaseOrderPayload<ExtArgs>
        fields: Prisma.PurchaseOrderFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PurchaseOrderFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PurchaseOrderFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>
          }
          findFirst: {
            args: Prisma.PurchaseOrderFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PurchaseOrderFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>
          }
          findMany: {
            args: Prisma.PurchaseOrderFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>[]
          }
          create: {
            args: Prisma.PurchaseOrderCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>
          }
          createMany: {
            args: Prisma.PurchaseOrderCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PurchaseOrderCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>[]
          }
          delete: {
            args: Prisma.PurchaseOrderDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>
          }
          update: {
            args: Prisma.PurchaseOrderUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>
          }
          deleteMany: {
            args: Prisma.PurchaseOrderDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PurchaseOrderUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PurchaseOrderUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>[]
          }
          upsert: {
            args: Prisma.PurchaseOrderUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderPayload>
          }
          aggregate: {
            args: Prisma.PurchaseOrderAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePurchaseOrder>
          }
          groupBy: {
            args: Prisma.PurchaseOrderGroupByArgs<ExtArgs>
            result: $Utils.Optional<PurchaseOrderGroupByOutputType>[]
          }
          count: {
            args: Prisma.PurchaseOrderCountArgs<ExtArgs>
            result: $Utils.Optional<PurchaseOrderCountAggregateOutputType> | number
          }
        }
      }
      PurchaseOrderLine: {
        payload: Prisma.$PurchaseOrderLinePayload<ExtArgs>
        fields: Prisma.PurchaseOrderLineFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PurchaseOrderLineFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PurchaseOrderLineFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>
          }
          findFirst: {
            args: Prisma.PurchaseOrderLineFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PurchaseOrderLineFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>
          }
          findMany: {
            args: Prisma.PurchaseOrderLineFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>[]
          }
          create: {
            args: Prisma.PurchaseOrderLineCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>
          }
          createMany: {
            args: Prisma.PurchaseOrderLineCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PurchaseOrderLineCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>[]
          }
          delete: {
            args: Prisma.PurchaseOrderLineDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>
          }
          update: {
            args: Prisma.PurchaseOrderLineUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>
          }
          deleteMany: {
            args: Prisma.PurchaseOrderLineDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PurchaseOrderLineUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PurchaseOrderLineUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>[]
          }
          upsert: {
            args: Prisma.PurchaseOrderLineUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PurchaseOrderLinePayload>
          }
          aggregate: {
            args: Prisma.PurchaseOrderLineAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePurchaseOrderLine>
          }
          groupBy: {
            args: Prisma.PurchaseOrderLineGroupByArgs<ExtArgs>
            result: $Utils.Optional<PurchaseOrderLineGroupByOutputType>[]
          }
          count: {
            args: Prisma.PurchaseOrderLineCountArgs<ExtArgs>
            result: $Utils.Optional<PurchaseOrderLineCountAggregateOutputType> | number
          }
        }
      }
      SalesOrder: {
        payload: Prisma.$SalesOrderPayload<ExtArgs>
        fields: Prisma.SalesOrderFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SalesOrderFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SalesOrderFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>
          }
          findFirst: {
            args: Prisma.SalesOrderFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SalesOrderFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>
          }
          findMany: {
            args: Prisma.SalesOrderFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>[]
          }
          create: {
            args: Prisma.SalesOrderCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>
          }
          createMany: {
            args: Prisma.SalesOrderCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SalesOrderCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>[]
          }
          delete: {
            args: Prisma.SalesOrderDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>
          }
          update: {
            args: Prisma.SalesOrderUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>
          }
          deleteMany: {
            args: Prisma.SalesOrderDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SalesOrderUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SalesOrderUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>[]
          }
          upsert: {
            args: Prisma.SalesOrderUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderPayload>
          }
          aggregate: {
            args: Prisma.SalesOrderAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSalesOrder>
          }
          groupBy: {
            args: Prisma.SalesOrderGroupByArgs<ExtArgs>
            result: $Utils.Optional<SalesOrderGroupByOutputType>[]
          }
          count: {
            args: Prisma.SalesOrderCountArgs<ExtArgs>
            result: $Utils.Optional<SalesOrderCountAggregateOutputType> | number
          }
        }
      }
      SalesOrderLine: {
        payload: Prisma.$SalesOrderLinePayload<ExtArgs>
        fields: Prisma.SalesOrderLineFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SalesOrderLineFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SalesOrderLineFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>
          }
          findFirst: {
            args: Prisma.SalesOrderLineFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SalesOrderLineFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>
          }
          findMany: {
            args: Prisma.SalesOrderLineFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>[]
          }
          create: {
            args: Prisma.SalesOrderLineCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>
          }
          createMany: {
            args: Prisma.SalesOrderLineCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SalesOrderLineCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>[]
          }
          delete: {
            args: Prisma.SalesOrderLineDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>
          }
          update: {
            args: Prisma.SalesOrderLineUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>
          }
          deleteMany: {
            args: Prisma.SalesOrderLineDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SalesOrderLineUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SalesOrderLineUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>[]
          }
          upsert: {
            args: Prisma.SalesOrderLineUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SalesOrderLinePayload>
          }
          aggregate: {
            args: Prisma.SalesOrderLineAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSalesOrderLine>
          }
          groupBy: {
            args: Prisma.SalesOrderLineGroupByArgs<ExtArgs>
            result: $Utils.Optional<SalesOrderLineGroupByOutputType>[]
          }
          count: {
            args: Prisma.SalesOrderLineCountArgs<ExtArgs>
            result: $Utils.Optional<SalesOrderLineCountAggregateOutputType> | number
          }
        }
      }
      DeliveryRequest: {
        payload: Prisma.$DeliveryRequestPayload<ExtArgs>
        fields: Prisma.DeliveryRequestFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DeliveryRequestFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DeliveryRequestFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>
          }
          findFirst: {
            args: Prisma.DeliveryRequestFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DeliveryRequestFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>
          }
          findMany: {
            args: Prisma.DeliveryRequestFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>[]
          }
          create: {
            args: Prisma.DeliveryRequestCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>
          }
          createMany: {
            args: Prisma.DeliveryRequestCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DeliveryRequestCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>[]
          }
          delete: {
            args: Prisma.DeliveryRequestDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>
          }
          update: {
            args: Prisma.DeliveryRequestUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>
          }
          deleteMany: {
            args: Prisma.DeliveryRequestDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DeliveryRequestUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DeliveryRequestUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>[]
          }
          upsert: {
            args: Prisma.DeliveryRequestUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryRequestPayload>
          }
          aggregate: {
            args: Prisma.DeliveryRequestAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDeliveryRequest>
          }
          groupBy: {
            args: Prisma.DeliveryRequestGroupByArgs<ExtArgs>
            result: $Utils.Optional<DeliveryRequestGroupByOutputType>[]
          }
          count: {
            args: Prisma.DeliveryRequestCountArgs<ExtArgs>
            result: $Utils.Optional<DeliveryRequestCountAggregateOutputType> | number
          }
        }
      }
      DeliveryFulfillment: {
        payload: Prisma.$DeliveryFulfillmentPayload<ExtArgs>
        fields: Prisma.DeliveryFulfillmentFieldRefs
        operations: {
          findUnique: {
            args: Prisma.DeliveryFulfillmentFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.DeliveryFulfillmentFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>
          }
          findFirst: {
            args: Prisma.DeliveryFulfillmentFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.DeliveryFulfillmentFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>
          }
          findMany: {
            args: Prisma.DeliveryFulfillmentFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>[]
          }
          create: {
            args: Prisma.DeliveryFulfillmentCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>
          }
          createMany: {
            args: Prisma.DeliveryFulfillmentCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.DeliveryFulfillmentCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>[]
          }
          delete: {
            args: Prisma.DeliveryFulfillmentDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>
          }
          update: {
            args: Prisma.DeliveryFulfillmentUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>
          }
          deleteMany: {
            args: Prisma.DeliveryFulfillmentDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.DeliveryFulfillmentUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.DeliveryFulfillmentUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>[]
          }
          upsert: {
            args: Prisma.DeliveryFulfillmentUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$DeliveryFulfillmentPayload>
          }
          aggregate: {
            args: Prisma.DeliveryFulfillmentAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateDeliveryFulfillment>
          }
          groupBy: {
            args: Prisma.DeliveryFulfillmentGroupByArgs<ExtArgs>
            result: $Utils.Optional<DeliveryFulfillmentGroupByOutputType>[]
          }
          count: {
            args: Prisma.DeliveryFulfillmentCountArgs<ExtArgs>
            result: $Utils.Optional<DeliveryFulfillmentCountAggregateOutputType> | number
          }
        }
      }
      PaymentRecord: {
        payload: Prisma.$PaymentRecordPayload<ExtArgs>
        fields: Prisma.PaymentRecordFieldRefs
        operations: {
          findUnique: {
            args: Prisma.PaymentRecordFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.PaymentRecordFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>
          }
          findFirst: {
            args: Prisma.PaymentRecordFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.PaymentRecordFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>
          }
          findMany: {
            args: Prisma.PaymentRecordFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>[]
          }
          create: {
            args: Prisma.PaymentRecordCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>
          }
          createMany: {
            args: Prisma.PaymentRecordCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.PaymentRecordCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>[]
          }
          delete: {
            args: Prisma.PaymentRecordDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>
          }
          update: {
            args: Prisma.PaymentRecordUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>
          }
          deleteMany: {
            args: Prisma.PaymentRecordDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.PaymentRecordUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.PaymentRecordUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>[]
          }
          upsert: {
            args: Prisma.PaymentRecordUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$PaymentRecordPayload>
          }
          aggregate: {
            args: Prisma.PaymentRecordAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregatePaymentRecord>
          }
          groupBy: {
            args: Prisma.PaymentRecordGroupByArgs<ExtArgs>
            result: $Utils.Optional<PaymentRecordGroupByOutputType>[]
          }
          count: {
            args: Prisma.PaymentRecordCountArgs<ExtArgs>
            result: $Utils.Optional<PaymentRecordCountAggregateOutputType> | number
          }
        }
      }
      QualityLabelRecord: {
        payload: Prisma.$QualityLabelRecordPayload<ExtArgs>
        fields: Prisma.QualityLabelRecordFieldRefs
        operations: {
          findUnique: {
            args: Prisma.QualityLabelRecordFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.QualityLabelRecordFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>
          }
          findFirst: {
            args: Prisma.QualityLabelRecordFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.QualityLabelRecordFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>
          }
          findMany: {
            args: Prisma.QualityLabelRecordFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>[]
          }
          create: {
            args: Prisma.QualityLabelRecordCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>
          }
          createMany: {
            args: Prisma.QualityLabelRecordCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.QualityLabelRecordCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>[]
          }
          delete: {
            args: Prisma.QualityLabelRecordDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>
          }
          update: {
            args: Prisma.QualityLabelRecordUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>
          }
          deleteMany: {
            args: Prisma.QualityLabelRecordDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.QualityLabelRecordUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.QualityLabelRecordUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>[]
          }
          upsert: {
            args: Prisma.QualityLabelRecordUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$QualityLabelRecordPayload>
          }
          aggregate: {
            args: Prisma.QualityLabelRecordAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateQualityLabelRecord>
          }
          groupBy: {
            args: Prisma.QualityLabelRecordGroupByArgs<ExtArgs>
            result: $Utils.Optional<QualityLabelRecordGroupByOutputType>[]
          }
          count: {
            args: Prisma.QualityLabelRecordCountArgs<ExtArgs>
            result: $Utils.Optional<QualityLabelRecordCountAggregateOutputType> | number
          }
        }
      }
      RobotPackageReadiness: {
        payload: Prisma.$RobotPackageReadinessPayload<ExtArgs>
        fields: Prisma.RobotPackageReadinessFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RobotPackageReadinessFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RobotPackageReadinessFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>
          }
          findFirst: {
            args: Prisma.RobotPackageReadinessFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RobotPackageReadinessFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>
          }
          findMany: {
            args: Prisma.RobotPackageReadinessFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>[]
          }
          create: {
            args: Prisma.RobotPackageReadinessCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>
          }
          createMany: {
            args: Prisma.RobotPackageReadinessCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RobotPackageReadinessCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>[]
          }
          delete: {
            args: Prisma.RobotPackageReadinessDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>
          }
          update: {
            args: Prisma.RobotPackageReadinessUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>
          }
          deleteMany: {
            args: Prisma.RobotPackageReadinessDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RobotPackageReadinessUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RobotPackageReadinessUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>[]
          }
          upsert: {
            args: Prisma.RobotPackageReadinessUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotPackageReadinessPayload>
          }
          aggregate: {
            args: Prisma.RobotPackageReadinessAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRobotPackageReadiness>
          }
          groupBy: {
            args: Prisma.RobotPackageReadinessGroupByArgs<ExtArgs>
            result: $Utils.Optional<RobotPackageReadinessGroupByOutputType>[]
          }
          count: {
            args: Prisma.RobotPackageReadinessCountArgs<ExtArgs>
            result: $Utils.Optional<RobotPackageReadinessCountAggregateOutputType> | number
          }
        }
      }
      InspectionRecord: {
        payload: Prisma.$InspectionRecordPayload<ExtArgs>
        fields: Prisma.InspectionRecordFieldRefs
        operations: {
          findUnique: {
            args: Prisma.InspectionRecordFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.InspectionRecordFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>
          }
          findFirst: {
            args: Prisma.InspectionRecordFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.InspectionRecordFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>
          }
          findMany: {
            args: Prisma.InspectionRecordFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>[]
          }
          create: {
            args: Prisma.InspectionRecordCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>
          }
          createMany: {
            args: Prisma.InspectionRecordCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.InspectionRecordCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>[]
          }
          delete: {
            args: Prisma.InspectionRecordDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>
          }
          update: {
            args: Prisma.InspectionRecordUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>
          }
          deleteMany: {
            args: Prisma.InspectionRecordDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.InspectionRecordUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.InspectionRecordUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>[]
          }
          upsert: {
            args: Prisma.InspectionRecordUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$InspectionRecordPayload>
          }
          aggregate: {
            args: Prisma.InspectionRecordAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateInspectionRecord>
          }
          groupBy: {
            args: Prisma.InspectionRecordGroupByArgs<ExtArgs>
            result: $Utils.Optional<InspectionRecordGroupByOutputType>[]
          }
          count: {
            args: Prisma.InspectionRecordCountArgs<ExtArgs>
            result: $Utils.Optional<InspectionRecordCountAggregateOutputType> | number
          }
        }
      }
      LogisticsLeg: {
        payload: Prisma.$LogisticsLegPayload<ExtArgs>
        fields: Prisma.LogisticsLegFieldRefs
        operations: {
          findUnique: {
            args: Prisma.LogisticsLegFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.LogisticsLegFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>
          }
          findFirst: {
            args: Prisma.LogisticsLegFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.LogisticsLegFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>
          }
          findMany: {
            args: Prisma.LogisticsLegFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>[]
          }
          create: {
            args: Prisma.LogisticsLegCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>
          }
          createMany: {
            args: Prisma.LogisticsLegCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.LogisticsLegCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>[]
          }
          delete: {
            args: Prisma.LogisticsLegDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>
          }
          update: {
            args: Prisma.LogisticsLegUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>
          }
          deleteMany: {
            args: Prisma.LogisticsLegDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.LogisticsLegUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.LogisticsLegUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>[]
          }
          upsert: {
            args: Prisma.LogisticsLegUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LogisticsLegPayload>
          }
          aggregate: {
            args: Prisma.LogisticsLegAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateLogisticsLeg>
          }
          groupBy: {
            args: Prisma.LogisticsLegGroupByArgs<ExtArgs>
            result: $Utils.Optional<LogisticsLegGroupByOutputType>[]
          }
          count: {
            args: Prisma.LogisticsLegCountArgs<ExtArgs>
            result: $Utils.Optional<LogisticsLegCountAggregateOutputType> | number
          }
        }
      }
      ComplianceCheck: {
        payload: Prisma.$ComplianceCheckPayload<ExtArgs>
        fields: Prisma.ComplianceCheckFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ComplianceCheckFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ComplianceCheckFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>
          }
          findFirst: {
            args: Prisma.ComplianceCheckFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ComplianceCheckFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>
          }
          findMany: {
            args: Prisma.ComplianceCheckFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>[]
          }
          create: {
            args: Prisma.ComplianceCheckCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>
          }
          createMany: {
            args: Prisma.ComplianceCheckCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ComplianceCheckCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>[]
          }
          delete: {
            args: Prisma.ComplianceCheckDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>
          }
          update: {
            args: Prisma.ComplianceCheckUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>
          }
          deleteMany: {
            args: Prisma.ComplianceCheckDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ComplianceCheckUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ComplianceCheckUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>[]
          }
          upsert: {
            args: Prisma.ComplianceCheckUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ComplianceCheckPayload>
          }
          aggregate: {
            args: Prisma.ComplianceCheckAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateComplianceCheck>
          }
          groupBy: {
            args: Prisma.ComplianceCheckGroupByArgs<ExtArgs>
            result: $Utils.Optional<ComplianceCheckGroupByOutputType>[]
          }
          count: {
            args: Prisma.ComplianceCheckCountArgs<ExtArgs>
            result: $Utils.Optional<ComplianceCheckCountAggregateOutputType> | number
          }
        }
      }
      RentalAgreement: {
        payload: Prisma.$RentalAgreementPayload<ExtArgs>
        fields: Prisma.RentalAgreementFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RentalAgreementFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RentalAgreementFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>
          }
          findFirst: {
            args: Prisma.RentalAgreementFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RentalAgreementFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>
          }
          findMany: {
            args: Prisma.RentalAgreementFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>[]
          }
          create: {
            args: Prisma.RentalAgreementCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>
          }
          createMany: {
            args: Prisma.RentalAgreementCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RentalAgreementCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>[]
          }
          delete: {
            args: Prisma.RentalAgreementDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>
          }
          update: {
            args: Prisma.RentalAgreementUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>
          }
          deleteMany: {
            args: Prisma.RentalAgreementDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RentalAgreementUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RentalAgreementUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>[]
          }
          upsert: {
            args: Prisma.RentalAgreementUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalAgreementPayload>
          }
          aggregate: {
            args: Prisma.RentalAgreementAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRentalAgreement>
          }
          groupBy: {
            args: Prisma.RentalAgreementGroupByArgs<ExtArgs>
            result: $Utils.Optional<RentalAgreementGroupByOutputType>[]
          }
          count: {
            args: Prisma.RentalAgreementCountArgs<ExtArgs>
            result: $Utils.Optional<RentalAgreementCountAggregateOutputType> | number
          }
        }
      }
      RentalPaymentSchedule: {
        payload: Prisma.$RentalPaymentSchedulePayload<ExtArgs>
        fields: Prisma.RentalPaymentScheduleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RentalPaymentScheduleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RentalPaymentScheduleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>
          }
          findFirst: {
            args: Prisma.RentalPaymentScheduleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RentalPaymentScheduleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>
          }
          findMany: {
            args: Prisma.RentalPaymentScheduleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>[]
          }
          create: {
            args: Prisma.RentalPaymentScheduleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>
          }
          createMany: {
            args: Prisma.RentalPaymentScheduleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RentalPaymentScheduleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>[]
          }
          delete: {
            args: Prisma.RentalPaymentScheduleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>
          }
          update: {
            args: Prisma.RentalPaymentScheduleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>
          }
          deleteMany: {
            args: Prisma.RentalPaymentScheduleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RentalPaymentScheduleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RentalPaymentScheduleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>[]
          }
          upsert: {
            args: Prisma.RentalPaymentScheduleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RentalPaymentSchedulePayload>
          }
          aggregate: {
            args: Prisma.RentalPaymentScheduleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRentalPaymentSchedule>
          }
          groupBy: {
            args: Prisma.RentalPaymentScheduleGroupByArgs<ExtArgs>
            result: $Utils.Optional<RentalPaymentScheduleGroupByOutputType>[]
          }
          count: {
            args: Prisma.RentalPaymentScheduleCountArgs<ExtArgs>
            result: $Utils.Optional<RentalPaymentScheduleCountAggregateOutputType> | number
          }
        }
      }
      ServiceTicket: {
        payload: Prisma.$ServiceTicketPayload<ExtArgs>
        fields: Prisma.ServiceTicketFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ServiceTicketFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ServiceTicketFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>
          }
          findFirst: {
            args: Prisma.ServiceTicketFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ServiceTicketFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>
          }
          findMany: {
            args: Prisma.ServiceTicketFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>[]
          }
          create: {
            args: Prisma.ServiceTicketCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>
          }
          createMany: {
            args: Prisma.ServiceTicketCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ServiceTicketCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>[]
          }
          delete: {
            args: Prisma.ServiceTicketDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>
          }
          update: {
            args: Prisma.ServiceTicketUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>
          }
          deleteMany: {
            args: Prisma.ServiceTicketDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ServiceTicketUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ServiceTicketUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>[]
          }
          upsert: {
            args: Prisma.ServiceTicketUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketPayload>
          }
          aggregate: {
            args: Prisma.ServiceTicketAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateServiceTicket>
          }
          groupBy: {
            args: Prisma.ServiceTicketGroupByArgs<ExtArgs>
            result: $Utils.Optional<ServiceTicketGroupByOutputType>[]
          }
          count: {
            args: Prisma.ServiceTicketCountArgs<ExtArgs>
            result: $Utils.Optional<ServiceTicketCountAggregateOutputType> | number
          }
        }
      }
      ServiceTicketActivity: {
        payload: Prisma.$ServiceTicketActivityPayload<ExtArgs>
        fields: Prisma.ServiceTicketActivityFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ServiceTicketActivityFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ServiceTicketActivityFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>
          }
          findFirst: {
            args: Prisma.ServiceTicketActivityFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ServiceTicketActivityFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>
          }
          findMany: {
            args: Prisma.ServiceTicketActivityFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>[]
          }
          create: {
            args: Prisma.ServiceTicketActivityCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>
          }
          createMany: {
            args: Prisma.ServiceTicketActivityCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ServiceTicketActivityCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>[]
          }
          delete: {
            args: Prisma.ServiceTicketActivityDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>
          }
          update: {
            args: Prisma.ServiceTicketActivityUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>
          }
          deleteMany: {
            args: Prisma.ServiceTicketActivityDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ServiceTicketActivityUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ServiceTicketActivityUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>[]
          }
          upsert: {
            args: Prisma.ServiceTicketActivityUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ServiceTicketActivityPayload>
          }
          aggregate: {
            args: Prisma.ServiceTicketActivityAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateServiceTicketActivity>
          }
          groupBy: {
            args: Prisma.ServiceTicketActivityGroupByArgs<ExtArgs>
            result: $Utils.Optional<ServiceTicketActivityGroupByOutputType>[]
          }
          count: {
            args: Prisma.ServiceTicketActivityCountArgs<ExtArgs>
            result: $Utils.Optional<ServiceTicketActivityCountAggregateOutputType> | number
          }
        }
      }
      RobotImportAudit: {
        payload: Prisma.$RobotImportAuditPayload<ExtArgs>
        fields: Prisma.RobotImportAuditFieldRefs
        operations: {
          findUnique: {
            args: Prisma.RobotImportAuditFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.RobotImportAuditFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>
          }
          findFirst: {
            args: Prisma.RobotImportAuditFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.RobotImportAuditFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>
          }
          findMany: {
            args: Prisma.RobotImportAuditFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>[]
          }
          create: {
            args: Prisma.RobotImportAuditCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>
          }
          createMany: {
            args: Prisma.RobotImportAuditCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.RobotImportAuditCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>[]
          }
          delete: {
            args: Prisma.RobotImportAuditDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>
          }
          update: {
            args: Prisma.RobotImportAuditUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>
          }
          deleteMany: {
            args: Prisma.RobotImportAuditDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.RobotImportAuditUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.RobotImportAuditUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>[]
          }
          upsert: {
            args: Prisma.RobotImportAuditUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$RobotImportAuditPayload>
          }
          aggregate: {
            args: Prisma.RobotImportAuditAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateRobotImportAudit>
          }
          groupBy: {
            args: Prisma.RobotImportAuditGroupByArgs<ExtArgs>
            result: $Utils.Optional<RobotImportAuditGroupByOutputType>[]
          }
          count: {
            args: Prisma.RobotImportAuditCountArgs<ExtArgs>
            result: $Utils.Optional<RobotImportAuditCountAggregateOutputType> | number
          }
        }
      }
      ImportBatch: {
        payload: Prisma.$ImportBatchPayload<ExtArgs>
        fields: Prisma.ImportBatchFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ImportBatchFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ImportBatchFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>
          }
          findFirst: {
            args: Prisma.ImportBatchFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ImportBatchFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>
          }
          findMany: {
            args: Prisma.ImportBatchFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>[]
          }
          create: {
            args: Prisma.ImportBatchCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>
          }
          createMany: {
            args: Prisma.ImportBatchCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ImportBatchCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>[]
          }
          delete: {
            args: Prisma.ImportBatchDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>
          }
          update: {
            args: Prisma.ImportBatchUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>
          }
          deleteMany: {
            args: Prisma.ImportBatchDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ImportBatchUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ImportBatchUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>[]
          }
          upsert: {
            args: Prisma.ImportBatchUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchPayload>
          }
          aggregate: {
            args: Prisma.ImportBatchAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateImportBatch>
          }
          groupBy: {
            args: Prisma.ImportBatchGroupByArgs<ExtArgs>
            result: $Utils.Optional<ImportBatchGroupByOutputType>[]
          }
          count: {
            args: Prisma.ImportBatchCountArgs<ExtArgs>
            result: $Utils.Optional<ImportBatchCountAggregateOutputType> | number
          }
        }
      }
      ImportBatchEntry: {
        payload: Prisma.$ImportBatchEntryPayload<ExtArgs>
        fields: Prisma.ImportBatchEntryFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ImportBatchEntryFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ImportBatchEntryFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>
          }
          findFirst: {
            args: Prisma.ImportBatchEntryFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ImportBatchEntryFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>
          }
          findMany: {
            args: Prisma.ImportBatchEntryFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>[]
          }
          create: {
            args: Prisma.ImportBatchEntryCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>
          }
          createMany: {
            args: Prisma.ImportBatchEntryCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ImportBatchEntryCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>[]
          }
          delete: {
            args: Prisma.ImportBatchEntryDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>
          }
          update: {
            args: Prisma.ImportBatchEntryUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>
          }
          deleteMany: {
            args: Prisma.ImportBatchEntryDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ImportBatchEntryUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ImportBatchEntryUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>[]
          }
          upsert: {
            args: Prisma.ImportBatchEntryUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ImportBatchEntryPayload>
          }
          aggregate: {
            args: Prisma.ImportBatchEntryAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateImportBatchEntry>
          }
          groupBy: {
            args: Prisma.ImportBatchEntryGroupByArgs<ExtArgs>
            result: $Utils.Optional<ImportBatchEntryGroupByOutputType>[]
          }
          count: {
            args: Prisma.ImportBatchEntryCountArgs<ExtArgs>
            result: $Utils.Optional<ImportBatchEntryCountAggregateOutputType> | number
          }
        }
      }
    }
  } & {
    other: {
      payload: any
      operations: {
        $executeRaw: {
          args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]],
          result: any
        }
        $executeRawUnsafe: {
          args: [query: string, ...values: any[]],
          result: any
        }
        $queryRaw: {
          args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]],
          result: any
        }
        $queryRawUnsafe: {
          args: [query: string, ...values: any[]],
          result: any
        }
      }
    }
  }
  export const defineExtension: $Extensions.ExtendsHook<"define", Prisma.TypeMapCb, $Extensions.DefaultArgs>
  export type DefaultPrismaClient = PrismaClient
  export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
  export interface PrismaClientOptions {
    /**
     * Overwrites the datasource url from your schema.prisma file
     */
    datasources?: Datasources
    /**
     * Overwrites the datasource url from your schema.prisma file
     */
    datasourceUrl?: string
    /**
     * @default "colorless"
     */
    errorFormat?: ErrorFormat
    /**
     * @example
     * ```
     * // Shorthand for `emit: 'stdout'`
     * log: ['query', 'info', 'warn', 'error']
     * 
     * // Emit as events only
     * log: [
     *   { emit: 'event', level: 'query' },
     *   { emit: 'event', level: 'info' },
     *   { emit: 'event', level: 'warn' }
     *   { emit: 'event', level: 'error' }
     * ]
     * 
     * / Emit as events and log to stdout
     * og: [
     *  { emit: 'stdout', level: 'query' },
     *  { emit: 'stdout', level: 'info' },
     *  { emit: 'stdout', level: 'warn' }
     *  { emit: 'stdout', level: 'error' }
     * 
     * ```
     * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option).
     */
    log?: (LogLevel | LogDefinition)[]
    /**
     * The default values for transactionOptions
     * maxWait ?= 2000
     * timeout ?= 5000
     */
    transactionOptions?: {
      maxWait?: number
      timeout?: number
      isolationLevel?: Prisma.TransactionIsolationLevel
    }
    /**
     * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale`
     */
    adapter?: runtime.SqlDriverAdapterFactory | null
    /**
     * Global configuration for omitting model fields by default.
     * 
     * @example
     * ```
     * const prisma = new PrismaClient({
     *   omit: {
     *     user: {
     *       password: true
     *     }
     *   }
     * })
     * ```
     */
    omit?: Prisma.GlobalOmitConfig
  }
  export type GlobalOmitConfig = {
    approvalDefinition?: ApprovalDefinitionOmit
    approvalVersion?: ApprovalVersionOmit
    approvalInstance?: ApprovalInstanceOmit
    approvalNodeInstance?: ApprovalNodeInstanceOmit
    approvalTask?: ApprovalTaskOmit
    approvalTaskLog?: ApprovalTaskLogOmit
    callbackRetryQueue?: CallbackRetryQueueOmit
    reminderQueue?: ReminderQueueOmit
    userDelegationSetting?: UserDelegationSettingOmit
    approvalAdminConfig?: ApprovalAdminConfigOmit
    approvalAdminExport?: ApprovalAdminExportOmit
    organization?: OrganizationOmit
    organizationRegion?: OrganizationRegionOmit
    region?: RegionOmit
    department?: DepartmentOmit
    position?: PositionOmit
    userDepartment?: UserDepartmentOmit
    expenseRequest?: ExpenseRequestOmit
    expenseItem?: ExpenseItemOmit
    purchaseRequest?: PurchaseRequestOmit
    purchaseItem?: PurchaseItemOmit
    contractRequest?: ContractRequestOmit
    part?: PartOmit
    station?: StationOmit
    warehouse?: WarehouseOmit
    storageLocation?: StorageLocationOmit
    partLabel?: PartLabelOmit
    inventoryLog?: InventoryLogOmit
    stockAlert?: StockAlertOmit
    inventoryImportLog?: InventoryImportLogOmit
    partColumnConfig?: PartColumnConfigOmit
    partGroup?: PartGroupOmit
    groupCustomField?: GroupCustomFieldOmit
    partGroupRelation?: PartGroupRelationOmit
    aIConversation?: AIConversationOmit
    aIMessage?: AIMessageOmit
    aIMessageFeedback?: AIMessageFeedbackOmit
    aIAssistantTicket?: AIAssistantTicketOmit
    aIKnowledgeFix?: AIKnowledgeFixOmit
    aIPromptTemplate?: AIPromptTemplateOmit
    aIConfiguration?: AIConfigurationOmit
    aIUsageStats?: AIUsageStatsOmit
    agentSession?: AgentSessionOmit
    agentMessage?: AgentMessageOmit
    modelRoutingRule?: ModelRoutingRuleOmit
    modelRoutingDecision?: ModelRoutingDecisionOmit
    agentTrajectoryEvent?: AgentTrajectoryEventOmit
    agentQuota?: AgentQuotaOmit
    agentQuotaUsage?: AgentQuotaUsageOmit
    organizationAgentSettings?: OrganizationAgentSettingsOmit
    agentArtifact?: AgentArtifactOmit
    agentTaskTracker?: AgentTaskTrackerOmit
    agentScratchpad?: AgentScratchpadOmit
    storageBinding?: StorageBindingOmit
    storageFile?: StorageFileOmit
    agentProject?: AgentProjectOmit
    agentMemory?: AgentMemoryOmit
    agentPersona?: AgentPersonaOmit
    agentCron?: AgentCronOmit
    agentMcpServer?: AgentMcpServerOmit
    aiUsageToken?: AiUsageTokenOmit
    aiUsageDevice?: AiUsageDeviceOmit
    aiUsageEvent?: AiUsageEventOmit
    aiUsageEventDlq?: AiUsageEventDlqOmit
    aiUsageDailyRollup?: AiUsageDailyRollupOmit
    auditLog?: AuditLogOmit
    auditDatabaseChangeLog?: AuditDatabaseChangeLogOmit
    auditSensitiveOperationLog?: AuditSensitiveOperationLogOmit
    auditIntegrityCheckLog?: AuditIntegrityCheckLogOmit
    automationTask?: AutomationTaskOmit
    automationExecution?: AutomationExecutionOmit
    dingtalkSyncConfig?: DingtalkSyncConfigOmit
    dingtalkLeaveCode?: DingtalkLeaveCodeOmit
    dingtalkLeaveQuotaSnapshot?: DingtalkLeaveQuotaSnapshotOmit
    sapPurchaseSyncRecord?: SapPurchaseSyncRecordOmit
    dingtalkEmployee?: DingtalkEmployeeOmit
    dingtalkEmployeeEmploymentPeriod?: DingtalkEmployeeEmploymentPeriodOmit
    dingtalkEmployeeSuspensionPeriod?: DingtalkEmployeeSuspensionPeriodOmit
    sapPurchaseCache?: SapPurchaseCacheOmit
    adpPtoSchedule?: AdpPtoScheduleOmit
    dingtalkAnnualLeaveReleasePlan?: DingtalkAnnualLeaveReleasePlanOmit
    devItem?: DevItemOmit
    devItemSequence?: DevItemSequenceOmit
    releaseNote?: ReleaseNoteOmit
    feedback?: FeedbackOmit
    formDefinition?: FormDefinitionOmit
    formVersion?: FormVersionOmit
    formInstance?: FormInstanceOmit
    formTranslation?: FormTranslationOmit
    formTemplate?: FormTemplateOmit
    releaseSnapshot?: ReleaseSnapshotOmit
    formWebhook?: FormWebhookOmit
    formWebhookLog?: FormWebhookLogOmit
    user?: UserOmit
    role?: RoleOmit
    permission?: PermissionOmit
    workflowRole?: WorkflowRoleOmit
    workflowRoleUser?: WorkflowRoleUserOmit
    userRole?: UserRoleOmit
    rolePermission?: RolePermissionOmit
    dataScope?: DataScopeOmit
    roleDataScope?: RoleDataScopeOmit
    aIToolGrant?: AIToolGrantOmit
    aIToolGrantUser?: AIToolGrantUserOmit
    permissionDelegation?: PermissionDelegationOmit
    fieldPermission?: FieldPermissionOmit
    iamAuditLog?: IamAuditLogOmit
    employeeSlugBinding?: EmployeeSlugBindingOmit
    internalApp?: InternalAppOmit
    internalAppDeployment?: InternalAppDeploymentOmit
    internalAppEnvVar?: InternalAppEnvVarOmit
    internalAppEmployeeToken?: InternalAppEmployeeTokenOmit
    internalAppEvent?: InternalAppEventOmit
    knowledgeArticle?: KnowledgeArticleOmit
    sPDocumentIndex?: SPDocumentIndexOmit
    sPFolderIndex?: SPFolderIndexOmit
    ragflowDocument?: RagflowDocumentOmit
    aIQALog?: AIQALogOmit
    searchLog?: SearchLogOmit
    documentView?: DocumentViewOmit
    documentLike?: DocumentLikeOmit
    documentComment?: DocumentCommentOmit
    userMention?: UserMentionOmit
    syncTask?: SyncTaskOmit
    syncTaskSkippedItem?: SyncTaskSkippedItemOmit
    syncTaskProcessedItem?: SyncTaskProcessedItemOmit
    syncTaskFailedItem?: SyncTaskFailedItemOmit
    sharePointSyncCursor?: SharePointSyncCursorOmit
    webhookSubscription?: WebhookSubscriptionOmit
    systemLog?: SystemLogOmit
    logConfig?: LogConfigOmit
    logAlert?: LogAlertOmit
    logCleanupRecord?: LogCleanupRecordOmit
    customer?: CustomerOmit
    customerContact?: CustomerContactOmit
    customerAddress?: CustomerAddressOmit
    supplier?: SupplierOmit
    supplierContact?: SupplierContactOmit
    partner?: PartnerOmit
    partnerContact?: PartnerContactOmit
    location?: LocationOmit
    attachment?: AttachmentOmit
    currency?: CurrencyOmit
    country?: CountryOmit
    geoRegion?: GeoRegionOmit
    unitOfMeasure?: UnitOfMeasureOmit
    dictionary?: DictionaryOmit
    meeting?: MeetingOmit
    meetingSeries?: MeetingSeriesOmit
    meetingAttendance?: MeetingAttendanceOmit
    meetingRequiredAttendee?: MeetingRequiredAttendeeOmit
    meetingSeriesAttendeePreference?: MeetingSeriesAttendeePreferenceOmit
    meetingSeriesAttendeeException?: MeetingSeriesAttendeeExceptionOmit
    meetingExternalAttendee?: MeetingExternalAttendeeOmit
    meetingTemplate?: MeetingTemplateOmit
    meetingTemplateAttendee?: MeetingTemplateAttendeeOmit
    meetingAttendanceLeaveRecord?: MeetingAttendanceLeaveRecordOmit
    meetingAttendanceAuditLog?: MeetingAttendanceAuditLogOmit
    meetingAttendanceDataAccessLog?: MeetingAttendanceDataAccessLogOmit
    meetingAttendanceAuditAlertRule?: MeetingAttendanceAuditAlertRuleOmit
    meetingAttendanceAuditAlert?: MeetingAttendanceAuditAlertOmit
    meetingAttendanceRetentionPolicy?: MeetingAttendanceRetentionPolicyOmit
    outlookSyncMailbox?: OutlookSyncMailboxOmit
    outlookSubscription?: OutlookSubscriptionOmit
    outlookMeetingBinding?: OutlookMeetingBindingOmit
    outlookSeriesOccurrenceExclusion?: OutlookSeriesOccurrenceExclusionOmit
    outlookSyncEventLog?: OutlookSyncEventLogOmit
    outlookEventSourceVersion?: OutlookEventSourceVersionOmit
    outlookEventSyncDiff?: OutlookEventSyncDiffOmit
    outlookSyncCursor?: OutlookSyncCursorOmit
    outlookEventSnapshot?: OutlookEventSnapshotOmit
    outlookSyncSetting?: OutlookSyncSettingOmit
    meetingAgendaSection?: MeetingAgendaSectionOmit
    meetingAgendaItem?: MeetingAgendaItemOmit
    meetingAgendaItemUploadTask?: MeetingAgendaItemUploadTaskOmit
    meetingAgendaItemAttachment?: MeetingAgendaItemAttachmentOmit
    meetingAttachment?: MeetingAttachmentOmit
    notificationMessage?: NotificationMessageOmit
    notificationPreference?: NotificationPreferenceOmit
    notificationTemplate?: NotificationTemplateOmit
    notificationLog?: NotificationLogOmit
    m365User?: M365UserOmit
    m365UserActivityChange?: M365UserActivityChangeOmit
    gradeConfig?: GradeConfigOmit
    performanceCycle?: PerformanceCycleOmit
    performanceResult?: PerformanceResultOmit
    kpiAssignment?: KpiAssignmentOmit
    kpiDependency?: KpiDependencyOmit
    kpiAssessment?: KpiAssessmentOmit
    evaluation360?: Evaluation360Omit
    evaluationTask?: EvaluationTaskOmit
    evaluationResponse?: EvaluationResponseOmit
    gradeAdjustmentLog?: GradeAdjustmentLogOmit
    strategicObjective?: StrategicObjectiveOmit
    strategicObjectiveAssignment?: StrategicObjectiveAssignmentOmit
    evaluation360Template?: Evaluation360TemplateOmit
    siteCheckpoint?: SiteCheckpointOmit
    sharedCheckinPartner?: SharedCheckinPartnerOmit
    sharedCheckinTicketUsage?: SharedCheckinTicketUsageOmit
    siteAttendanceEvent?: SiteAttendanceEventOmit
    siteDailySummary?: SiteDailySummaryOmit
    ticket?: TicketOmit
    ticketCategory?: TicketCategoryOmit
    ticketComment?: TicketCommentOmit
    ticketAttachment?: TicketAttachmentOmit
    ticketActivity?: TicketActivityOmit
    ticketSLA?: TicketSLAOmit
    assignmentGroup?: AssignmentGroupOmit
    robotModel?: RobotModelOmit
    robotSku?: RobotSkuOmit
    robotSystemConfig?: RobotSystemConfigOmit
    robotUnit?: RobotUnitOmit
    robotUnitSnapshot?: RobotUnitSnapshotOmit
    robotLifecycleEvent?: RobotLifecycleEventOmit
    purchaseOrder?: PurchaseOrderOmit
    purchaseOrderLine?: PurchaseOrderLineOmit
    salesOrder?: SalesOrderOmit
    salesOrderLine?: SalesOrderLineOmit
    deliveryRequest?: DeliveryRequestOmit
    deliveryFulfillment?: DeliveryFulfillmentOmit
    paymentRecord?: PaymentRecordOmit
    qualityLabelRecord?: QualityLabelRecordOmit
    robotPackageReadiness?: RobotPackageReadinessOmit
    inspectionRecord?: InspectionRecordOmit
    logisticsLeg?: LogisticsLegOmit
    complianceCheck?: ComplianceCheckOmit
    rentalAgreement?: RentalAgreementOmit
    rentalPaymentSchedule?: RentalPaymentScheduleOmit
    serviceTicket?: ServiceTicketOmit
    serviceTicketActivity?: ServiceTicketActivityOmit
    robotImportAudit?: RobotImportAuditOmit
    importBatch?: ImportBatchOmit
    importBatchEntry?: ImportBatchEntryOmit
  }

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

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

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

  export type GetEvents<T extends any[]> = T extends Array<LogLevel | LogDefinition>
    ? GetLogType<T[number]>
    : never;

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

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


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

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

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

  export type Datasource = {
    url?: string
  }

  /**
   * Count Types
   */


  /**
   * Count Type ApprovalDefinitionCountOutputType
   */

  export type ApprovalDefinitionCountOutputType = {
    versions: number
  }

  export type ApprovalDefinitionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    versions?: boolean | ApprovalDefinitionCountOutputTypeCountVersionsArgs
  }

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

  /**
   * ApprovalDefinitionCountOutputType without action
   */
  export type ApprovalDefinitionCountOutputTypeCountVersionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalVersionWhereInput
  }


  /**
   * Count Type ApprovalVersionCountOutputType
   */

  export type ApprovalVersionCountOutputType = {
    instances: number
  }

  export type ApprovalVersionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instances?: boolean | ApprovalVersionCountOutputTypeCountInstancesArgs
  }

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

  /**
   * ApprovalVersionCountOutputType without action
   */
  export type ApprovalVersionCountOutputTypeCountInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalInstanceWhereInput
  }


  /**
   * Count Type ApprovalInstanceCountOutputType
   */

  export type ApprovalInstanceCountOutputType = {
    nodeInstances: number
    approvalTasks: number
    callbackRetries: number
    reminderQueues: number
  }

  export type ApprovalInstanceCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    nodeInstances?: boolean | ApprovalInstanceCountOutputTypeCountNodeInstancesArgs
    approvalTasks?: boolean | ApprovalInstanceCountOutputTypeCountApprovalTasksArgs
    callbackRetries?: boolean | ApprovalInstanceCountOutputTypeCountCallbackRetriesArgs
    reminderQueues?: boolean | ApprovalInstanceCountOutputTypeCountReminderQueuesArgs
  }

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

  /**
   * ApprovalInstanceCountOutputType without action
   */
  export type ApprovalInstanceCountOutputTypeCountNodeInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalNodeInstanceWhereInput
  }

  /**
   * ApprovalInstanceCountOutputType without action
   */
  export type ApprovalInstanceCountOutputTypeCountApprovalTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalTaskWhereInput
  }

  /**
   * ApprovalInstanceCountOutputType without action
   */
  export type ApprovalInstanceCountOutputTypeCountCallbackRetriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CallbackRetryQueueWhereInput
  }

  /**
   * ApprovalInstanceCountOutputType without action
   */
  export type ApprovalInstanceCountOutputTypeCountReminderQueuesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ReminderQueueWhereInput
  }


  /**
   * Count Type ApprovalNodeInstanceCountOutputType
   */

  export type ApprovalNodeInstanceCountOutputType = {
    approvalTasks: number
  }

  export type ApprovalNodeInstanceCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    approvalTasks?: boolean | ApprovalNodeInstanceCountOutputTypeCountApprovalTasksArgs
  }

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

  /**
   * ApprovalNodeInstanceCountOutputType without action
   */
  export type ApprovalNodeInstanceCountOutputTypeCountApprovalTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalTaskWhereInput
  }


  /**
   * Count Type ApprovalTaskCountOutputType
   */

  export type ApprovalTaskCountOutputType = {
    actionLogs: number
    reminderQueues: number
  }

  export type ApprovalTaskCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    actionLogs?: boolean | ApprovalTaskCountOutputTypeCountActionLogsArgs
    reminderQueues?: boolean | ApprovalTaskCountOutputTypeCountReminderQueuesArgs
  }

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

  /**
   * ApprovalTaskCountOutputType without action
   */
  export type ApprovalTaskCountOutputTypeCountActionLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalTaskLogWhereInput
  }

  /**
   * ApprovalTaskCountOutputType without action
   */
  export type ApprovalTaskCountOutputTypeCountReminderQueuesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ReminderQueueWhereInput
  }


  /**
   * Count Type OrganizationCountOutputType
   */

  export type OrganizationCountOutputType = {
    departments: number
    userDepartments: number
    organizationRegions: number
    formDefinitions: number
    formWebhooks: number
    approvalDefinitions: number
    userRoles: number
    performanceCycles: number
    gradeConfigs: number
    performanceResults: number
    evaluation360Templates: number
    aiUsageTokens: number
    aiUsageDevices: number
    aiUsageEvents: number
    aiUsageRollups: number
    meetingAgendaSections: number
    meetingAgendaItems: number
    meetingAgendaItemUploadTasks: number
    meetingAgendaItemAttachments: number
    meetingAttachments: number
  }

  export type OrganizationCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    departments?: boolean | OrganizationCountOutputTypeCountDepartmentsArgs
    userDepartments?: boolean | OrganizationCountOutputTypeCountUserDepartmentsArgs
    organizationRegions?: boolean | OrganizationCountOutputTypeCountOrganizationRegionsArgs
    formDefinitions?: boolean | OrganizationCountOutputTypeCountFormDefinitionsArgs
    formWebhooks?: boolean | OrganizationCountOutputTypeCountFormWebhooksArgs
    approvalDefinitions?: boolean | OrganizationCountOutputTypeCountApprovalDefinitionsArgs
    userRoles?: boolean | OrganizationCountOutputTypeCountUserRolesArgs
    performanceCycles?: boolean | OrganizationCountOutputTypeCountPerformanceCyclesArgs
    gradeConfigs?: boolean | OrganizationCountOutputTypeCountGradeConfigsArgs
    performanceResults?: boolean | OrganizationCountOutputTypeCountPerformanceResultsArgs
    evaluation360Templates?: boolean | OrganizationCountOutputTypeCountEvaluation360TemplatesArgs
    aiUsageTokens?: boolean | OrganizationCountOutputTypeCountAiUsageTokensArgs
    aiUsageDevices?: boolean | OrganizationCountOutputTypeCountAiUsageDevicesArgs
    aiUsageEvents?: boolean | OrganizationCountOutputTypeCountAiUsageEventsArgs
    aiUsageRollups?: boolean | OrganizationCountOutputTypeCountAiUsageRollupsArgs
    meetingAgendaSections?: boolean | OrganizationCountOutputTypeCountMeetingAgendaSectionsArgs
    meetingAgendaItems?: boolean | OrganizationCountOutputTypeCountMeetingAgendaItemsArgs
    meetingAgendaItemUploadTasks?: boolean | OrganizationCountOutputTypeCountMeetingAgendaItemUploadTasksArgs
    meetingAgendaItemAttachments?: boolean | OrganizationCountOutputTypeCountMeetingAgendaItemAttachmentsArgs
    meetingAttachments?: boolean | OrganizationCountOutputTypeCountMeetingAttachmentsArgs
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


  /**
   * Count Type RegionCountOutputType
   */

  export type RegionCountOutputType = {
    primaryOrganizations: number
    organizationRegions: number
  }

  export type RegionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    primaryOrganizations?: boolean | RegionCountOutputTypeCountPrimaryOrganizationsArgs
    organizationRegions?: boolean | RegionCountOutputTypeCountOrganizationRegionsArgs
  }

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

  /**
   * RegionCountOutputType without action
   */
  export type RegionCountOutputTypeCountPrimaryOrganizationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OrganizationWhereInput
  }

  /**
   * RegionCountOutputType without action
   */
  export type RegionCountOutputTypeCountOrganizationRegionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OrganizationRegionWhereInput
  }


  /**
   * Count Type DepartmentCountOutputType
   */

  export type DepartmentCountOutputType = {
    children: number
    userMemberships: number
  }

  export type DepartmentCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    children?: boolean | DepartmentCountOutputTypeCountChildrenArgs
    userMemberships?: boolean | DepartmentCountOutputTypeCountUserMembershipsArgs
  }

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

  /**
   * DepartmentCountOutputType without action
   */
  export type DepartmentCountOutputTypeCountChildrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DepartmentWhereInput
  }

  /**
   * DepartmentCountOutputType without action
   */
  export type DepartmentCountOutputTypeCountUserMembershipsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserDepartmentWhereInput
  }


  /**
   * Count Type PositionCountOutputType
   */

  export type PositionCountOutputType = {
    userMemberships: number
  }

  export type PositionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    userMemberships?: boolean | PositionCountOutputTypeCountUserMembershipsArgs
  }

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

  /**
   * PositionCountOutputType without action
   */
  export type PositionCountOutputTypeCountUserMembershipsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserDepartmentWhereInput
  }


  /**
   * Count Type ExpenseRequestCountOutputType
   */

  export type ExpenseRequestCountOutputType = {
    items: number
  }

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

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

  /**
   * ExpenseRequestCountOutputType without action
   */
  export type ExpenseRequestCountOutputTypeCountItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ExpenseItemWhereInput
  }


  /**
   * Count Type PurchaseRequestCountOutputType
   */

  export type PurchaseRequestCountOutputType = {
    items: number
  }

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

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

  /**
   * PurchaseRequestCountOutputType without action
   */
  export type PurchaseRequestCountOutputTypeCountItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PurchaseItemWhereInput
  }


  /**
   * Count Type PartCountOutputType
   */

  export type PartCountOutputType = {
    inventoryLogs: number
    groups: number
    labels: number
    stockAlerts: number
  }

  export type PartCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    inventoryLogs?: boolean | PartCountOutputTypeCountInventoryLogsArgs
    groups?: boolean | PartCountOutputTypeCountGroupsArgs
    labels?: boolean | PartCountOutputTypeCountLabelsArgs
    stockAlerts?: boolean | PartCountOutputTypeCountStockAlertsArgs
  }

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

  /**
   * PartCountOutputType without action
   */
  export type PartCountOutputTypeCountInventoryLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InventoryLogWhereInput
  }

  /**
   * PartCountOutputType without action
   */
  export type PartCountOutputTypeCountGroupsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartGroupRelationWhereInput
  }

  /**
   * PartCountOutputType without action
   */
  export type PartCountOutputTypeCountLabelsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartLabelWhereInput
  }

  /**
   * PartCountOutputType without action
   */
  export type PartCountOutputTypeCountStockAlertsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StockAlertWhereInput
  }


  /**
   * Count Type StationCountOutputType
   */

  export type StationCountOutputType = {
    parts: number
  }

  export type StationCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parts?: boolean | StationCountOutputTypeCountPartsArgs
  }

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

  /**
   * StationCountOutputType without action
   */
  export type StationCountOutputTypeCountPartsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartWhereInput
  }


  /**
   * Count Type WarehouseCountOutputType
   */

  export type WarehouseCountOutputType = {
    storageLocations: number
    parts: number
  }

  export type WarehouseCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    storageLocations?: boolean | WarehouseCountOutputTypeCountStorageLocationsArgs
    parts?: boolean | WarehouseCountOutputTypeCountPartsArgs
  }

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

  /**
   * WarehouseCountOutputType without action
   */
  export type WarehouseCountOutputTypeCountStorageLocationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StorageLocationWhereInput
  }

  /**
   * WarehouseCountOutputType without action
   */
  export type WarehouseCountOutputTypeCountPartsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartWhereInput
  }


  /**
   * Count Type StorageLocationCountOutputType
   */

  export type StorageLocationCountOutputType = {
    parts: number
  }

  export type StorageLocationCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parts?: boolean | StorageLocationCountOutputTypeCountPartsArgs
  }

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

  /**
   * StorageLocationCountOutputType without action
   */
  export type StorageLocationCountOutputTypeCountPartsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartWhereInput
  }


  /**
   * Count Type PartGroupCountOutputType
   */

  export type PartGroupCountOutputType = {
    customFields: number
    parts: number
  }

  export type PartGroupCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    customFields?: boolean | PartGroupCountOutputTypeCountCustomFieldsArgs
    parts?: boolean | PartGroupCountOutputTypeCountPartsArgs
  }

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

  /**
   * PartGroupCountOutputType without action
   */
  export type PartGroupCountOutputTypeCountCustomFieldsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: GroupCustomFieldWhereInput
  }

  /**
   * PartGroupCountOutputType without action
   */
  export type PartGroupCountOutputTypeCountPartsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartGroupRelationWhereInput
  }


  /**
   * Count Type AIConversationCountOutputType
   */

  export type AIConversationCountOutputType = {
    messages: number
    tickets: number
  }

  export type AIConversationCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    messages?: boolean | AIConversationCountOutputTypeCountMessagesArgs
    tickets?: boolean | AIConversationCountOutputTypeCountTicketsArgs
  }

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

  /**
   * AIConversationCountOutputType without action
   */
  export type AIConversationCountOutputTypeCountMessagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIMessageWhereInput
  }

  /**
   * AIConversationCountOutputType without action
   */
  export type AIConversationCountOutputTypeCountTicketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIAssistantTicketWhereInput
  }


  /**
   * Count Type AgentSessionCountOutputType
   */

  export type AgentSessionCountOutputType = {
    messages: number
    children: number
    crons: number
  }

  export type AgentSessionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    messages?: boolean | AgentSessionCountOutputTypeCountMessagesArgs
    children?: boolean | AgentSessionCountOutputTypeCountChildrenArgs
    crons?: boolean | AgentSessionCountOutputTypeCountCronsArgs
  }

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

  /**
   * AgentSessionCountOutputType without action
   */
  export type AgentSessionCountOutputTypeCountMessagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentMessageWhereInput
  }

  /**
   * AgentSessionCountOutputType without action
   */
  export type AgentSessionCountOutputTypeCountChildrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentSessionWhereInput
  }

  /**
   * AgentSessionCountOutputType without action
   */
  export type AgentSessionCountOutputTypeCountCronsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentCronWhereInput
  }


  /**
   * Count Type StorageBindingCountOutputType
   */

  export type StorageBindingCountOutputType = {
    files: number
  }

  export type StorageBindingCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    files?: boolean | StorageBindingCountOutputTypeCountFilesArgs
  }

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

  /**
   * StorageBindingCountOutputType without action
   */
  export type StorageBindingCountOutputTypeCountFilesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StorageFileWhereInput
  }


  /**
   * Count Type AgentProjectCountOutputType
   */

  export type AgentProjectCountOutputType = {
    memories: number
  }

  export type AgentProjectCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    memories?: boolean | AgentProjectCountOutputTypeCountMemoriesArgs
  }

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

  /**
   * AgentProjectCountOutputType without action
   */
  export type AgentProjectCountOutputTypeCountMemoriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentMemoryWhereInput
  }


  /**
   * Count Type AgentPersonaCountOutputType
   */

  export type AgentPersonaCountOutputType = {
    memories: number
    sessions: number
  }

  export type AgentPersonaCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    memories?: boolean | AgentPersonaCountOutputTypeCountMemoriesArgs
    sessions?: boolean | AgentPersonaCountOutputTypeCountSessionsArgs
  }

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

  /**
   * AgentPersonaCountOutputType without action
   */
  export type AgentPersonaCountOutputTypeCountMemoriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentMemoryWhereInput
  }

  /**
   * AgentPersonaCountOutputType without action
   */
  export type AgentPersonaCountOutputTypeCountSessionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentSessionWhereInput
  }


  /**
   * Count Type AiUsageDeviceCountOutputType
   */

  export type AiUsageDeviceCountOutputType = {
    events: number
  }

  export type AiUsageDeviceCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    events?: boolean | AiUsageDeviceCountOutputTypeCountEventsArgs
  }

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

  /**
   * AiUsageDeviceCountOutputType without action
   */
  export type AiUsageDeviceCountOutputTypeCountEventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AiUsageEventWhereInput
  }


  /**
   * Count Type AuditLogCountOutputType
   */

  export type AuditLogCountOutputType = {
    databaseChanges: number
    sensitiveOps: number
  }

  export type AuditLogCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    databaseChanges?: boolean | AuditLogCountOutputTypeCountDatabaseChangesArgs
    sensitiveOps?: boolean | AuditLogCountOutputTypeCountSensitiveOpsArgs
  }

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

  /**
   * AuditLogCountOutputType without action
   */
  export type AuditLogCountOutputTypeCountDatabaseChangesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AuditDatabaseChangeLogWhereInput
  }

  /**
   * AuditLogCountOutputType without action
   */
  export type AuditLogCountOutputTypeCountSensitiveOpsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AuditSensitiveOperationLogWhereInput
  }


  /**
   * Count Type AutomationTaskCountOutputType
   */

  export type AutomationTaskCountOutputType = {
    executions: number
  }

  export type AutomationTaskCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    executions?: boolean | AutomationTaskCountOutputTypeCountExecutionsArgs
  }

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

  /**
   * AutomationTaskCountOutputType without action
   */
  export type AutomationTaskCountOutputTypeCountExecutionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AutomationExecutionWhereInput
  }


  /**
   * Count Type DevItemCountOutputType
   */

  export type DevItemCountOutputType = {
    children: number
  }

  export type DevItemCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    children?: boolean | DevItemCountOutputTypeCountChildrenArgs
  }

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

  /**
   * DevItemCountOutputType without action
   */
  export type DevItemCountOutputTypeCountChildrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DevItemWhereInput
  }


  /**
   * Count Type FormDefinitionCountOutputType
   */

  export type FormDefinitionCountOutputType = {
    instances: number
    versions: number
  }

  export type FormDefinitionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instances?: boolean | FormDefinitionCountOutputTypeCountInstancesArgs
    versions?: boolean | FormDefinitionCountOutputTypeCountVersionsArgs
  }

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

  /**
   * FormDefinitionCountOutputType without action
   */
  export type FormDefinitionCountOutputTypeCountInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormInstanceWhereInput
  }

  /**
   * FormDefinitionCountOutputType without action
   */
  export type FormDefinitionCountOutputTypeCountVersionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormVersionWhereInput
  }


  /**
   * Count Type FormVersionCountOutputType
   */

  export type FormVersionCountOutputType = {
    instances: number
    translations: number
  }

  export type FormVersionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instances?: boolean | FormVersionCountOutputTypeCountInstancesArgs
    translations?: boolean | FormVersionCountOutputTypeCountTranslationsArgs
  }

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

  /**
   * FormVersionCountOutputType without action
   */
  export type FormVersionCountOutputTypeCountInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormInstanceWhereInput
  }

  /**
   * FormVersionCountOutputType without action
   */
  export type FormVersionCountOutputTypeCountTranslationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormTranslationWhereInput
  }


  /**
   * Count Type ReleaseSnapshotCountOutputType
   */

  export type ReleaseSnapshotCountOutputType = {
    instances: number
  }

  export type ReleaseSnapshotCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instances?: boolean | ReleaseSnapshotCountOutputTypeCountInstancesArgs
  }

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

  /**
   * ReleaseSnapshotCountOutputType without action
   */
  export type ReleaseSnapshotCountOutputTypeCountInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormInstanceWhereInput
  }


  /**
   * Count Type FormWebhookCountOutputType
   */

  export type FormWebhookCountOutputType = {
    logs: number
  }

  export type FormWebhookCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    logs?: boolean | FormWebhookCountOutputTypeCountLogsArgs
  }

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

  /**
   * FormWebhookCountOutputType without action
   */
  export type FormWebhookCountOutputTypeCountLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormWebhookLogWhereInput
  }


  /**
   * Count Type UserCountOutputType
   */

  export type UserCountOutputType = {
    initiatedProcesses: number
    approvalActionLogs: number
    approvalActionTargets: number
    approvalAdminExports: number
    createdContracts: number
    createdExpenses: number
    createdPurchases: number
    auditLogs: number
    createdAutomationTasks: number
    createdFormDefinitions: number
    updatedFormDefinitions: number
    createdFormInstances: number
    submittedFormInstances: number
    updatedFormInstances: number
    createdFormTemplates: number
    updatedFormTemplates: number
    createdFormVersions: number
    reviewedFormVersions: number
    roles: number
    workflowRoles: number
    departmentMemberships: number
    managedUsers: number
    notificationLogs: number
    notifications: number
    delegationSettings: number
    delegatedToMe: number
    knowledgeArticles: number
    aiQALogs: number
    documentViews: number
    documentLikes: number
    documentComments: number
    mentionedIn: number
    strategicObjectiveAssignments: number
    feedbacks: number
    assignedFeedbacks: number
    devItemsOwned: number
    devItemsReported: number
    devItemsReviewed: number
    releaseNotes: number
    siteCheckpointsCreated: number
    siteAttendanceEvents: number
    siteDailySummaries: number
    sharedCheckinPartnersCreated: number
    sharedCheckinPartnersUpdated: number
    meetingAttendances: number
    meetingRequiredAttendees: number
    meetingTemplatesCreated: number
    meetingTemplateAttendees: number
    meetingAttendanceLeaveLogs: number
    meetingAttendanceAuditLogs: number
    meetingsCreated: number
    meetingSeriesCreated: number
    meetingSeriesAttendeePreferences: number
    meetingSeriesAttendeeExceptions: number
    agendaSectionsCreated: number
    agendaItemsCreated: number
    agendaItemsPresented: number
    uploadTasksAssigned: number
    uploadTasksAssignedBy: number
    uploadTasksCreated: number
    agendaAttachmentsUploaded: number
    agendaAttachmentsCreated: number
    meetingAttachmentsUploaded: number
    meetingAttachmentsCreated: number
    aiToolGrantsDirect: number
    adpPtoSchedules: number
    internalAppsCreated: number
    internalAppsForceDisabled: number
    internalAppDeploymentsTriggered: number
    internalAppEnvVarsManaged: number
    internalAppTokens: number
    internalAppEvents: number
    aiUsageTokens: number
    aiUsageTokensRevoked: number
    aiUsageDevices: number
    aiUsageDevicesBlocked: number
    aiUsageEvents: number
    aiUsageRollups: number
  }

  export type UserCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    initiatedProcesses?: boolean | UserCountOutputTypeCountInitiatedProcessesArgs
    approvalActionLogs?: boolean | UserCountOutputTypeCountApprovalActionLogsArgs
    approvalActionTargets?: boolean | UserCountOutputTypeCountApprovalActionTargetsArgs
    approvalAdminExports?: boolean | UserCountOutputTypeCountApprovalAdminExportsArgs
    createdContracts?: boolean | UserCountOutputTypeCountCreatedContractsArgs
    createdExpenses?: boolean | UserCountOutputTypeCountCreatedExpensesArgs
    createdPurchases?: boolean | UserCountOutputTypeCountCreatedPurchasesArgs
    auditLogs?: boolean | UserCountOutputTypeCountAuditLogsArgs
    createdAutomationTasks?: boolean | UserCountOutputTypeCountCreatedAutomationTasksArgs
    createdFormDefinitions?: boolean | UserCountOutputTypeCountCreatedFormDefinitionsArgs
    updatedFormDefinitions?: boolean | UserCountOutputTypeCountUpdatedFormDefinitionsArgs
    createdFormInstances?: boolean | UserCountOutputTypeCountCreatedFormInstancesArgs
    submittedFormInstances?: boolean | UserCountOutputTypeCountSubmittedFormInstancesArgs
    updatedFormInstances?: boolean | UserCountOutputTypeCountUpdatedFormInstancesArgs
    createdFormTemplates?: boolean | UserCountOutputTypeCountCreatedFormTemplatesArgs
    updatedFormTemplates?: boolean | UserCountOutputTypeCountUpdatedFormTemplatesArgs
    createdFormVersions?: boolean | UserCountOutputTypeCountCreatedFormVersionsArgs
    reviewedFormVersions?: boolean | UserCountOutputTypeCountReviewedFormVersionsArgs
    roles?: boolean | UserCountOutputTypeCountRolesArgs
    workflowRoles?: boolean | UserCountOutputTypeCountWorkflowRolesArgs
    departmentMemberships?: boolean | UserCountOutputTypeCountDepartmentMembershipsArgs
    managedUsers?: boolean | UserCountOutputTypeCountManagedUsersArgs
    notificationLogs?: boolean | UserCountOutputTypeCountNotificationLogsArgs
    notifications?: boolean | UserCountOutputTypeCountNotificationsArgs
    delegationSettings?: boolean | UserCountOutputTypeCountDelegationSettingsArgs
    delegatedToMe?: boolean | UserCountOutputTypeCountDelegatedToMeArgs
    knowledgeArticles?: boolean | UserCountOutputTypeCountKnowledgeArticlesArgs
    aiQALogs?: boolean | UserCountOutputTypeCountAiQALogsArgs
    documentViews?: boolean | UserCountOutputTypeCountDocumentViewsArgs
    documentLikes?: boolean | UserCountOutputTypeCountDocumentLikesArgs
    documentComments?: boolean | UserCountOutputTypeCountDocumentCommentsArgs
    mentionedIn?: boolean | UserCountOutputTypeCountMentionedInArgs
    strategicObjectiveAssignments?: boolean | UserCountOutputTypeCountStrategicObjectiveAssignmentsArgs
    feedbacks?: boolean | UserCountOutputTypeCountFeedbacksArgs
    assignedFeedbacks?: boolean | UserCountOutputTypeCountAssignedFeedbacksArgs
    devItemsOwned?: boolean | UserCountOutputTypeCountDevItemsOwnedArgs
    devItemsReported?: boolean | UserCountOutputTypeCountDevItemsReportedArgs
    devItemsReviewed?: boolean | UserCountOutputTypeCountDevItemsReviewedArgs
    releaseNotes?: boolean | UserCountOutputTypeCountReleaseNotesArgs
    siteCheckpointsCreated?: boolean | UserCountOutputTypeCountSiteCheckpointsCreatedArgs
    siteAttendanceEvents?: boolean | UserCountOutputTypeCountSiteAttendanceEventsArgs
    siteDailySummaries?: boolean | UserCountOutputTypeCountSiteDailySummariesArgs
    sharedCheckinPartnersCreated?: boolean | UserCountOutputTypeCountSharedCheckinPartnersCreatedArgs
    sharedCheckinPartnersUpdated?: boolean | UserCountOutputTypeCountSharedCheckinPartnersUpdatedArgs
    meetingAttendances?: boolean | UserCountOutputTypeCountMeetingAttendancesArgs
    meetingRequiredAttendees?: boolean | UserCountOutputTypeCountMeetingRequiredAttendeesArgs
    meetingTemplatesCreated?: boolean | UserCountOutputTypeCountMeetingTemplatesCreatedArgs
    meetingTemplateAttendees?: boolean | UserCountOutputTypeCountMeetingTemplateAttendeesArgs
    meetingAttendanceLeaveLogs?: boolean | UserCountOutputTypeCountMeetingAttendanceLeaveLogsArgs
    meetingAttendanceAuditLogs?: boolean | UserCountOutputTypeCountMeetingAttendanceAuditLogsArgs
    meetingsCreated?: boolean | UserCountOutputTypeCountMeetingsCreatedArgs
    meetingSeriesCreated?: boolean | UserCountOutputTypeCountMeetingSeriesCreatedArgs
    meetingSeriesAttendeePreferences?: boolean | UserCountOutputTypeCountMeetingSeriesAttendeePreferencesArgs
    meetingSeriesAttendeeExceptions?: boolean | UserCountOutputTypeCountMeetingSeriesAttendeeExceptionsArgs
    agendaSectionsCreated?: boolean | UserCountOutputTypeCountAgendaSectionsCreatedArgs
    agendaItemsCreated?: boolean | UserCountOutputTypeCountAgendaItemsCreatedArgs
    agendaItemsPresented?: boolean | UserCountOutputTypeCountAgendaItemsPresentedArgs
    uploadTasksAssigned?: boolean | UserCountOutputTypeCountUploadTasksAssignedArgs
    uploadTasksAssignedBy?: boolean | UserCountOutputTypeCountUploadTasksAssignedByArgs
    uploadTasksCreated?: boolean | UserCountOutputTypeCountUploadTasksCreatedArgs
    agendaAttachmentsUploaded?: boolean | UserCountOutputTypeCountAgendaAttachmentsUploadedArgs
    agendaAttachmentsCreated?: boolean | UserCountOutputTypeCountAgendaAttachmentsCreatedArgs
    meetingAttachmentsUploaded?: boolean | UserCountOutputTypeCountMeetingAttachmentsUploadedArgs
    meetingAttachmentsCreated?: boolean | UserCountOutputTypeCountMeetingAttachmentsCreatedArgs
    aiToolGrantsDirect?: boolean | UserCountOutputTypeCountAiToolGrantsDirectArgs
    adpPtoSchedules?: boolean | UserCountOutputTypeCountAdpPtoSchedulesArgs
    internalAppsCreated?: boolean | UserCountOutputTypeCountInternalAppsCreatedArgs
    internalAppsForceDisabled?: boolean | UserCountOutputTypeCountInternalAppsForceDisabledArgs
    internalAppDeploymentsTriggered?: boolean | UserCountOutputTypeCountInternalAppDeploymentsTriggeredArgs
    internalAppEnvVarsManaged?: boolean | UserCountOutputTypeCountInternalAppEnvVarsManagedArgs
    internalAppTokens?: boolean | UserCountOutputTypeCountInternalAppTokensArgs
    internalAppEvents?: boolean | UserCountOutputTypeCountInternalAppEventsArgs
    aiUsageTokens?: boolean | UserCountOutputTypeCountAiUsageTokensArgs
    aiUsageTokensRevoked?: boolean | UserCountOutputTypeCountAiUsageTokensRevokedArgs
    aiUsageDevices?: boolean | UserCountOutputTypeCountAiUsageDevicesArgs
    aiUsageDevicesBlocked?: boolean | UserCountOutputTypeCountAiUsageDevicesBlockedArgs
    aiUsageEvents?: boolean | UserCountOutputTypeCountAiUsageEventsArgs
    aiUsageRollups?: boolean | UserCountOutputTypeCountAiUsageRollupsArgs
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


  /**
   * Count Type RoleCountOutputType
   */

  export type RoleCountOutputType = {
    permissions: number
    users: number
    aiToolGrants: number
    dataScopes: number
  }

  export type RoleCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    permissions?: boolean | RoleCountOutputTypeCountPermissionsArgs
    users?: boolean | RoleCountOutputTypeCountUsersArgs
    aiToolGrants?: boolean | RoleCountOutputTypeCountAiToolGrantsArgs
    dataScopes?: boolean | RoleCountOutputTypeCountDataScopesArgs
  }

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

  /**
   * RoleCountOutputType without action
   */
  export type RoleCountOutputTypeCountPermissionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RolePermissionWhereInput
  }

  /**
   * RoleCountOutputType without action
   */
  export type RoleCountOutputTypeCountUsersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserRoleWhereInput
  }

  /**
   * RoleCountOutputType without action
   */
  export type RoleCountOutputTypeCountAiToolGrantsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIToolGrantWhereInput
  }

  /**
   * RoleCountOutputType without action
   */
  export type RoleCountOutputTypeCountDataScopesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RoleDataScopeWhereInput
  }


  /**
   * Count Type PermissionCountOutputType
   */

  export type PermissionCountOutputType = {
    roles: number
  }

  export type PermissionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    roles?: boolean | PermissionCountOutputTypeCountRolesArgs
  }

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

  /**
   * PermissionCountOutputType without action
   */
  export type PermissionCountOutputTypeCountRolesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RolePermissionWhereInput
  }


  /**
   * Count Type WorkflowRoleCountOutputType
   */

  export type WorkflowRoleCountOutputType = {
    userAssignments: number
  }

  export type WorkflowRoleCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    userAssignments?: boolean | WorkflowRoleCountOutputTypeCountUserAssignmentsArgs
  }

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

  /**
   * WorkflowRoleCountOutputType without action
   */
  export type WorkflowRoleCountOutputTypeCountUserAssignmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WorkflowRoleUserWhereInput
  }


  /**
   * Count Type DataScopeCountOutputType
   */

  export type DataScopeCountOutputType = {
    roleScopes: number
  }

  export type DataScopeCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    roleScopes?: boolean | DataScopeCountOutputTypeCountRoleScopesArgs
  }

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

  /**
   * DataScopeCountOutputType without action
   */
  export type DataScopeCountOutputTypeCountRoleScopesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RoleDataScopeWhereInput
  }


  /**
   * Count Type EmployeeSlugBindingCountOutputType
   */

  export type EmployeeSlugBindingCountOutputType = {
    apps: number
    tokens: number
  }

  export type EmployeeSlugBindingCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    apps?: boolean | EmployeeSlugBindingCountOutputTypeCountAppsArgs
    tokens?: boolean | EmployeeSlugBindingCountOutputTypeCountTokensArgs
  }

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

  /**
   * EmployeeSlugBindingCountOutputType without action
   */
  export type EmployeeSlugBindingCountOutputTypeCountAppsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppWhereInput
  }

  /**
   * EmployeeSlugBindingCountOutputType without action
   */
  export type EmployeeSlugBindingCountOutputTypeCountTokensArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppEmployeeTokenWhereInput
  }


  /**
   * Count Type InternalAppCountOutputType
   */

  export type InternalAppCountOutputType = {
    deployments: number
    envVars: number
    events: number
  }

  export type InternalAppCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    deployments?: boolean | InternalAppCountOutputTypeCountDeploymentsArgs
    envVars?: boolean | InternalAppCountOutputTypeCountEnvVarsArgs
    events?: boolean | InternalAppCountOutputTypeCountEventsArgs
  }

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

  /**
   * InternalAppCountOutputType without action
   */
  export type InternalAppCountOutputTypeCountDeploymentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppDeploymentWhereInput
  }

  /**
   * InternalAppCountOutputType without action
   */
  export type InternalAppCountOutputTypeCountEnvVarsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppEnvVarWhereInput
  }

  /**
   * InternalAppCountOutputType without action
   */
  export type InternalAppCountOutputTypeCountEventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppEventWhereInput
  }


  /**
   * Count Type KnowledgeArticleCountOutputType
   */

  export type KnowledgeArticleCountOutputType = {
    views: number
    likes: number
    comments: number
  }

  export type KnowledgeArticleCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    views?: boolean | KnowledgeArticleCountOutputTypeCountViewsArgs
    likes?: boolean | KnowledgeArticleCountOutputTypeCountLikesArgs
    comments?: boolean | KnowledgeArticleCountOutputTypeCountCommentsArgs
  }

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

  /**
   * KnowledgeArticleCountOutputType without action
   */
  export type KnowledgeArticleCountOutputTypeCountViewsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentViewWhereInput
  }

  /**
   * KnowledgeArticleCountOutputType without action
   */
  export type KnowledgeArticleCountOutputTypeCountLikesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentLikeWhereInput
  }

  /**
   * KnowledgeArticleCountOutputType without action
   */
  export type KnowledgeArticleCountOutputTypeCountCommentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentCommentWhereInput
  }


  /**
   * Count Type SPDocumentIndexCountOutputType
   */

  export type SPDocumentIndexCountOutputType = {
    views: number
    likes: number
    comments: number
  }

  export type SPDocumentIndexCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    views?: boolean | SPDocumentIndexCountOutputTypeCountViewsArgs
    likes?: boolean | SPDocumentIndexCountOutputTypeCountLikesArgs
    comments?: boolean | SPDocumentIndexCountOutputTypeCountCommentsArgs
  }

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

  /**
   * SPDocumentIndexCountOutputType without action
   */
  export type SPDocumentIndexCountOutputTypeCountViewsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentViewWhereInput
  }

  /**
   * SPDocumentIndexCountOutputType without action
   */
  export type SPDocumentIndexCountOutputTypeCountLikesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentLikeWhereInput
  }

  /**
   * SPDocumentIndexCountOutputType without action
   */
  export type SPDocumentIndexCountOutputTypeCountCommentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentCommentWhereInput
  }


  /**
   * Count Type DocumentCommentCountOutputType
   */

  export type DocumentCommentCountOutputType = {
    replies: number
    mentions: number
  }

  export type DocumentCommentCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    replies?: boolean | DocumentCommentCountOutputTypeCountRepliesArgs
    mentions?: boolean | DocumentCommentCountOutputTypeCountMentionsArgs
  }

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

  /**
   * DocumentCommentCountOutputType without action
   */
  export type DocumentCommentCountOutputTypeCountRepliesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentCommentWhereInput
  }

  /**
   * DocumentCommentCountOutputType without action
   */
  export type DocumentCommentCountOutputTypeCountMentionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserMentionWhereInput
  }


  /**
   * Count Type SyncTaskCountOutputType
   */

  export type SyncTaskCountOutputType = {
    skippedDetails: number
    processedDetails: number
    failedDetails: number
  }

  export type SyncTaskCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    skippedDetails?: boolean | SyncTaskCountOutputTypeCountSkippedDetailsArgs
    processedDetails?: boolean | SyncTaskCountOutputTypeCountProcessedDetailsArgs
    failedDetails?: boolean | SyncTaskCountOutputTypeCountFailedDetailsArgs
  }

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

  /**
   * SyncTaskCountOutputType without action
   */
  export type SyncTaskCountOutputTypeCountSkippedDetailsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SyncTaskSkippedItemWhereInput
  }

  /**
   * SyncTaskCountOutputType without action
   */
  export type SyncTaskCountOutputTypeCountProcessedDetailsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SyncTaskProcessedItemWhereInput
  }

  /**
   * SyncTaskCountOutputType without action
   */
  export type SyncTaskCountOutputTypeCountFailedDetailsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SyncTaskFailedItemWhereInput
  }


  /**
   * Count Type CustomerCountOutputType
   */

  export type CustomerCountOutputType = {
    contacts: number
    addresses: number
    locations: number
  }

  export type CustomerCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    contacts?: boolean | CustomerCountOutputTypeCountContactsArgs
    addresses?: boolean | CustomerCountOutputTypeCountAddressesArgs
    locations?: boolean | CustomerCountOutputTypeCountLocationsArgs
  }

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

  /**
   * CustomerCountOutputType without action
   */
  export type CustomerCountOutputTypeCountContactsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CustomerContactWhereInput
  }

  /**
   * CustomerCountOutputType without action
   */
  export type CustomerCountOutputTypeCountAddressesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CustomerAddressWhereInput
  }

  /**
   * CustomerCountOutputType without action
   */
  export type CustomerCountOutputTypeCountLocationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LocationWhereInput
  }


  /**
   * Count Type SupplierCountOutputType
   */

  export type SupplierCountOutputType = {
    contacts: number
  }

  export type SupplierCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    contacts?: boolean | SupplierCountOutputTypeCountContactsArgs
  }

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

  /**
   * SupplierCountOutputType without action
   */
  export type SupplierCountOutputTypeCountContactsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplierContactWhereInput
  }


  /**
   * Count Type PartnerCountOutputType
   */

  export type PartnerCountOutputType = {
    contacts: number
  }

  export type PartnerCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    contacts?: boolean | PartnerCountOutputTypeCountContactsArgs
  }

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

  /**
   * PartnerCountOutputType without action
   */
  export type PartnerCountOutputTypeCountContactsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartnerContactWhereInput
  }


  /**
   * Count Type LocationCountOutputType
   */

  export type LocationCountOutputType = {
    children: number
  }

  export type LocationCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    children?: boolean | LocationCountOutputTypeCountChildrenArgs
  }

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

  /**
   * LocationCountOutputType without action
   */
  export type LocationCountOutputTypeCountChildrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LocationWhereInput
  }


  /**
   * Count Type MeetingCountOutputType
   */

  export type MeetingCountOutputType = {
    attendances: number
    requiredAttendees: number
    externalAttendees: number
    outlookBindings: number
    agendaSections: number
    attachments: number
  }

  export type MeetingCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    attendances?: boolean | MeetingCountOutputTypeCountAttendancesArgs
    requiredAttendees?: boolean | MeetingCountOutputTypeCountRequiredAttendeesArgs
    externalAttendees?: boolean | MeetingCountOutputTypeCountExternalAttendeesArgs
    outlookBindings?: boolean | MeetingCountOutputTypeCountOutlookBindingsArgs
    agendaSections?: boolean | MeetingCountOutputTypeCountAgendaSectionsArgs
    attachments?: boolean | MeetingCountOutputTypeCountAttachmentsArgs
  }

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

  /**
   * MeetingCountOutputType without action
   */
  export type MeetingCountOutputTypeCountAttendancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceWhereInput
  }

  /**
   * MeetingCountOutputType without action
   */
  export type MeetingCountOutputTypeCountRequiredAttendeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingRequiredAttendeeWhereInput
  }

  /**
   * MeetingCountOutputType without action
   */
  export type MeetingCountOutputTypeCountExternalAttendeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingExternalAttendeeWhereInput
  }

  /**
   * MeetingCountOutputType without action
   */
  export type MeetingCountOutputTypeCountOutlookBindingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookMeetingBindingWhereInput
  }

  /**
   * MeetingCountOutputType without action
   */
  export type MeetingCountOutputTypeCountAgendaSectionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAgendaSectionWhereInput
  }

  /**
   * MeetingCountOutputType without action
   */
  export type MeetingCountOutputTypeCountAttachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttachmentWhereInput
  }


  /**
   * Count Type MeetingSeriesCountOutputType
   */

  export type MeetingSeriesCountOutputType = {
    meetings: number
    outlookBindings: number
    attendeePreferences: number
    attendeeExceptions: number
  }

  export type MeetingSeriesCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meetings?: boolean | MeetingSeriesCountOutputTypeCountMeetingsArgs
    outlookBindings?: boolean | MeetingSeriesCountOutputTypeCountOutlookBindingsArgs
    attendeePreferences?: boolean | MeetingSeriesCountOutputTypeCountAttendeePreferencesArgs
    attendeeExceptions?: boolean | MeetingSeriesCountOutputTypeCountAttendeeExceptionsArgs
  }

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

  /**
   * MeetingSeriesCountOutputType without action
   */
  export type MeetingSeriesCountOutputTypeCountMeetingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingWhereInput
  }

  /**
   * MeetingSeriesCountOutputType without action
   */
  export type MeetingSeriesCountOutputTypeCountOutlookBindingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookMeetingBindingWhereInput
  }

  /**
   * MeetingSeriesCountOutputType without action
   */
  export type MeetingSeriesCountOutputTypeCountAttendeePreferencesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingSeriesAttendeePreferenceWhereInput
  }

  /**
   * MeetingSeriesCountOutputType without action
   */
  export type MeetingSeriesCountOutputTypeCountAttendeeExceptionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingSeriesAttendeeExceptionWhereInput
  }


  /**
   * Count Type MeetingTemplateCountOutputType
   */

  export type MeetingTemplateCountOutputType = {
    templateAttendees: number
  }

  export type MeetingTemplateCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    templateAttendees?: boolean | MeetingTemplateCountOutputTypeCountTemplateAttendeesArgs
  }

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

  /**
   * MeetingTemplateCountOutputType without action
   */
  export type MeetingTemplateCountOutputTypeCountTemplateAttendeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingTemplateAttendeeWhereInput
  }


  /**
   * Count Type MeetingAttendanceAuditAlertRuleCountOutputType
   */

  export type MeetingAttendanceAuditAlertRuleCountOutputType = {
    alerts: number
  }

  export type MeetingAttendanceAuditAlertRuleCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    alerts?: boolean | MeetingAttendanceAuditAlertRuleCountOutputTypeCountAlertsArgs
  }

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

  /**
   * MeetingAttendanceAuditAlertRuleCountOutputType without action
   */
  export type MeetingAttendanceAuditAlertRuleCountOutputTypeCountAlertsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceAuditAlertWhereInput
  }


  /**
   * Count Type OutlookSyncMailboxCountOutputType
   */

  export type OutlookSyncMailboxCountOutputType = {
    subscriptions: number
    primaryBindings: number
    eventSnapshots: number
    syncEventLogs: number
    sourceVersions: number
  }

  export type OutlookSyncMailboxCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    subscriptions?: boolean | OutlookSyncMailboxCountOutputTypeCountSubscriptionsArgs
    primaryBindings?: boolean | OutlookSyncMailboxCountOutputTypeCountPrimaryBindingsArgs
    eventSnapshots?: boolean | OutlookSyncMailboxCountOutputTypeCountEventSnapshotsArgs
    syncEventLogs?: boolean | OutlookSyncMailboxCountOutputTypeCountSyncEventLogsArgs
    sourceVersions?: boolean | OutlookSyncMailboxCountOutputTypeCountSourceVersionsArgs
  }

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

  /**
   * OutlookSyncMailboxCountOutputType without action
   */
  export type OutlookSyncMailboxCountOutputTypeCountSubscriptionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSubscriptionWhereInput
  }

  /**
   * OutlookSyncMailboxCountOutputType without action
   */
  export type OutlookSyncMailboxCountOutputTypeCountPrimaryBindingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookMeetingBindingWhereInput
  }

  /**
   * OutlookSyncMailboxCountOutputType without action
   */
  export type OutlookSyncMailboxCountOutputTypeCountEventSnapshotsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSnapshotWhereInput
  }

  /**
   * OutlookSyncMailboxCountOutputType without action
   */
  export type OutlookSyncMailboxCountOutputTypeCountSyncEventLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSyncEventLogWhereInput
  }

  /**
   * OutlookSyncMailboxCountOutputType without action
   */
  export type OutlookSyncMailboxCountOutputTypeCountSourceVersionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSourceVersionWhereInput
  }


  /**
   * Count Type OutlookMeetingBindingCountOutputType
   */

  export type OutlookMeetingBindingCountOutputType = {
    syncEventLogs: number
    occurrenceExclusions: number
    sourceVersions: number
    syncDiffs: number
  }

  export type OutlookMeetingBindingCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    syncEventLogs?: boolean | OutlookMeetingBindingCountOutputTypeCountSyncEventLogsArgs
    occurrenceExclusions?: boolean | OutlookMeetingBindingCountOutputTypeCountOccurrenceExclusionsArgs
    sourceVersions?: boolean | OutlookMeetingBindingCountOutputTypeCountSourceVersionsArgs
    syncDiffs?: boolean | OutlookMeetingBindingCountOutputTypeCountSyncDiffsArgs
  }

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

  /**
   * OutlookMeetingBindingCountOutputType without action
   */
  export type OutlookMeetingBindingCountOutputTypeCountSyncEventLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSyncEventLogWhereInput
  }

  /**
   * OutlookMeetingBindingCountOutputType without action
   */
  export type OutlookMeetingBindingCountOutputTypeCountOccurrenceExclusionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSeriesOccurrenceExclusionWhereInput
  }

  /**
   * OutlookMeetingBindingCountOutputType without action
   */
  export type OutlookMeetingBindingCountOutputTypeCountSourceVersionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSourceVersionWhereInput
  }

  /**
   * OutlookMeetingBindingCountOutputType without action
   */
  export type OutlookMeetingBindingCountOutputTypeCountSyncDiffsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSyncDiffWhereInput
  }


  /**
   * Count Type OutlookEventSourceVersionCountOutputType
   */

  export type OutlookEventSourceVersionCountOutputType = {
    diffsAsCurrent: number
    diffsAsPrevious: number
  }

  export type OutlookEventSourceVersionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    diffsAsCurrent?: boolean | OutlookEventSourceVersionCountOutputTypeCountDiffsAsCurrentArgs
    diffsAsPrevious?: boolean | OutlookEventSourceVersionCountOutputTypeCountDiffsAsPreviousArgs
  }

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

  /**
   * OutlookEventSourceVersionCountOutputType without action
   */
  export type OutlookEventSourceVersionCountOutputTypeCountDiffsAsCurrentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSyncDiffWhereInput
  }

  /**
   * OutlookEventSourceVersionCountOutputType without action
   */
  export type OutlookEventSourceVersionCountOutputTypeCountDiffsAsPreviousArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSyncDiffWhereInput
  }


  /**
   * Count Type MeetingAgendaSectionCountOutputType
   */

  export type MeetingAgendaSectionCountOutputType = {
    items: number
  }

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

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

  /**
   * MeetingAgendaSectionCountOutputType without action
   */
  export type MeetingAgendaSectionCountOutputTypeCountItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAgendaItemWhereInput
  }


  /**
   * Count Type MeetingAgendaItemCountOutputType
   */

  export type MeetingAgendaItemCountOutputType = {
    uploadTasks: number
    attachments: number
  }

  export type MeetingAgendaItemCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    uploadTasks?: boolean | MeetingAgendaItemCountOutputTypeCountUploadTasksArgs
    attachments?: boolean | MeetingAgendaItemCountOutputTypeCountAttachmentsArgs
  }

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

  /**
   * MeetingAgendaItemCountOutputType without action
   */
  export type MeetingAgendaItemCountOutputTypeCountUploadTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAgendaItemUploadTaskWhereInput
  }

  /**
   * MeetingAgendaItemCountOutputType without action
   */
  export type MeetingAgendaItemCountOutputTypeCountAttachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAgendaItemAttachmentWhereInput
  }


  /**
   * Count Type NotificationTemplateCountOutputType
   */

  export type NotificationTemplateCountOutputType = {
    logs: number
  }

  export type NotificationTemplateCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    logs?: boolean | NotificationTemplateCountOutputTypeCountLogsArgs
  }

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

  /**
   * NotificationTemplateCountOutputType without action
   */
  export type NotificationTemplateCountOutputTypeCountLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: NotificationLogWhereInput
  }


  /**
   * Count Type M365UserCountOutputType
   */

  export type M365UserCountOutputType = {
    changes: number
  }

  export type M365UserCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    changes?: boolean | M365UserCountOutputTypeCountChangesArgs
  }

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

  /**
   * M365UserCountOutputType without action
   */
  export type M365UserCountOutputTypeCountChangesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: M365UserActivityChangeWhereInput
  }


  /**
   * Count Type GradeConfigCountOutputType
   */

  export type GradeConfigCountOutputType = {
    cycles: number
  }

  export type GradeConfigCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycles?: boolean | GradeConfigCountOutputTypeCountCyclesArgs
  }

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

  /**
   * GradeConfigCountOutputType without action
   */
  export type GradeConfigCountOutputTypeCountCyclesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PerformanceCycleWhereInput
  }


  /**
   * Count Type PerformanceCycleCountOutputType
   */

  export type PerformanceCycleCountOutputType = {
    childCycles: number
    kpiAssignments: number
    evaluations: number
    results: number
    strategicObjectives: number
    e360Templates: number
  }

  export type PerformanceCycleCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    childCycles?: boolean | PerformanceCycleCountOutputTypeCountChildCyclesArgs
    kpiAssignments?: boolean | PerformanceCycleCountOutputTypeCountKpiAssignmentsArgs
    evaluations?: boolean | PerformanceCycleCountOutputTypeCountEvaluationsArgs
    results?: boolean | PerformanceCycleCountOutputTypeCountResultsArgs
    strategicObjectives?: boolean | PerformanceCycleCountOutputTypeCountStrategicObjectivesArgs
    e360Templates?: boolean | PerformanceCycleCountOutputTypeCountE360TemplatesArgs
  }

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

  /**
   * PerformanceCycleCountOutputType without action
   */
  export type PerformanceCycleCountOutputTypeCountChildCyclesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PerformanceCycleWhereInput
  }

  /**
   * PerformanceCycleCountOutputType without action
   */
  export type PerformanceCycleCountOutputTypeCountKpiAssignmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: KpiAssignmentWhereInput
  }

  /**
   * PerformanceCycleCountOutputType without action
   */
  export type PerformanceCycleCountOutputTypeCountEvaluationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: Evaluation360WhereInput
  }

  /**
   * PerformanceCycleCountOutputType without action
   */
  export type PerformanceCycleCountOutputTypeCountResultsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PerformanceResultWhereInput
  }

  /**
   * PerformanceCycleCountOutputType without action
   */
  export type PerformanceCycleCountOutputTypeCountStrategicObjectivesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StrategicObjectiveWhereInput
  }

  /**
   * PerformanceCycleCountOutputType without action
   */
  export type PerformanceCycleCountOutputTypeCountE360TemplatesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: Evaluation360TemplateWhereInput
  }


  /**
   * Count Type PerformanceResultCountOutputType
   */

  export type PerformanceResultCountOutputType = {
    adjustmentLogs: number
  }

  export type PerformanceResultCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    adjustmentLogs?: boolean | PerformanceResultCountOutputTypeCountAdjustmentLogsArgs
  }

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

  /**
   * PerformanceResultCountOutputType without action
   */
  export type PerformanceResultCountOutputTypeCountAdjustmentLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: GradeAdjustmentLogWhereInput
  }


  /**
   * Count Type KpiAssignmentCountOutputType
   */

  export type KpiAssignmentCountOutputType = {
    children: number
    outgoingDependencies: number
    incomingDependencies: number
  }

  export type KpiAssignmentCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    children?: boolean | KpiAssignmentCountOutputTypeCountChildrenArgs
    outgoingDependencies?: boolean | KpiAssignmentCountOutputTypeCountOutgoingDependenciesArgs
    incomingDependencies?: boolean | KpiAssignmentCountOutputTypeCountIncomingDependenciesArgs
  }

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

  /**
   * KpiAssignmentCountOutputType without action
   */
  export type KpiAssignmentCountOutputTypeCountChildrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: KpiAssignmentWhereInput
  }

  /**
   * KpiAssignmentCountOutputType without action
   */
  export type KpiAssignmentCountOutputTypeCountOutgoingDependenciesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: KpiDependencyWhereInput
  }

  /**
   * KpiAssignmentCountOutputType without action
   */
  export type KpiAssignmentCountOutputTypeCountIncomingDependenciesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: KpiDependencyWhereInput
  }


  /**
   * Count Type Evaluation360CountOutputType
   */

  export type Evaluation360CountOutputType = {
    tasks: number
  }

  export type Evaluation360CountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    tasks?: boolean | Evaluation360CountOutputTypeCountTasksArgs
  }

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

  /**
   * Evaluation360CountOutputType without action
   */
  export type Evaluation360CountOutputTypeCountTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EvaluationTaskWhereInput
  }


  /**
   * Count Type EvaluationTaskCountOutputType
   */

  export type EvaluationTaskCountOutputType = {
    responses: number
  }

  export type EvaluationTaskCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    responses?: boolean | EvaluationTaskCountOutputTypeCountResponsesArgs
  }

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

  /**
   * EvaluationTaskCountOutputType without action
   */
  export type EvaluationTaskCountOutputTypeCountResponsesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EvaluationResponseWhereInput
  }


  /**
   * Count Type StrategicObjectiveCountOutputType
   */

  export type StrategicObjectiveCountOutputType = {
    assignments: number
  }

  export type StrategicObjectiveCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    assignments?: boolean | StrategicObjectiveCountOutputTypeCountAssignmentsArgs
  }

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

  /**
   * StrategicObjectiveCountOutputType without action
   */
  export type StrategicObjectiveCountOutputTypeCountAssignmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StrategicObjectiveAssignmentWhereInput
  }


  /**
   * Count Type Evaluation360TemplateCountOutputType
   */

  export type Evaluation360TemplateCountOutputType = {
    evaluations: number
  }

  export type Evaluation360TemplateCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    evaluations?: boolean | Evaluation360TemplateCountOutputTypeCountEvaluationsArgs
  }

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

  /**
   * Evaluation360TemplateCountOutputType without action
   */
  export type Evaluation360TemplateCountOutputTypeCountEvaluationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: Evaluation360WhereInput
  }


  /**
   * Count Type SiteCheckpointCountOutputType
   */

  export type SiteCheckpointCountOutputType = {
    events: number
    dailySummaries: number
    sharedPartners: number
  }

  export type SiteCheckpointCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    events?: boolean | SiteCheckpointCountOutputTypeCountEventsArgs
    dailySummaries?: boolean | SiteCheckpointCountOutputTypeCountDailySummariesArgs
    sharedPartners?: boolean | SiteCheckpointCountOutputTypeCountSharedPartnersArgs
  }

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

  /**
   * SiteCheckpointCountOutputType without action
   */
  export type SiteCheckpointCountOutputTypeCountEventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SiteAttendanceEventWhereInput
  }

  /**
   * SiteCheckpointCountOutputType without action
   */
  export type SiteCheckpointCountOutputTypeCountDailySummariesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SiteDailySummaryWhereInput
  }

  /**
   * SiteCheckpointCountOutputType without action
   */
  export type SiteCheckpointCountOutputTypeCountSharedPartnersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SharedCheckinPartnerWhereInput
  }


  /**
   * Count Type TicketCountOutputType
   */

  export type TicketCountOutputType = {
    childTickets: number
    comments: number
    activities: number
    attachments: number
  }

  export type TicketCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    childTickets?: boolean | TicketCountOutputTypeCountChildTicketsArgs
    comments?: boolean | TicketCountOutputTypeCountCommentsArgs
    activities?: boolean | TicketCountOutputTypeCountActivitiesArgs
    attachments?: boolean | TicketCountOutputTypeCountAttachmentsArgs
  }

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

  /**
   * TicketCountOutputType without action
   */
  export type TicketCountOutputTypeCountChildTicketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketWhereInput
  }

  /**
   * TicketCountOutputType without action
   */
  export type TicketCountOutputTypeCountCommentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketCommentWhereInput
  }

  /**
   * TicketCountOutputType without action
   */
  export type TicketCountOutputTypeCountActivitiesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketActivityWhereInput
  }

  /**
   * TicketCountOutputType without action
   */
  export type TicketCountOutputTypeCountAttachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketAttachmentWhereInput
  }


  /**
   * Count Type TicketCategoryCountOutputType
   */

  export type TicketCategoryCountOutputType = {
    children: number
    tickets: number
  }

  export type TicketCategoryCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    children?: boolean | TicketCategoryCountOutputTypeCountChildrenArgs
    tickets?: boolean | TicketCategoryCountOutputTypeCountTicketsArgs
  }

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

  /**
   * TicketCategoryCountOutputType without action
   */
  export type TicketCategoryCountOutputTypeCountChildrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketCategoryWhereInput
  }

  /**
   * TicketCategoryCountOutputType without action
   */
  export type TicketCategoryCountOutputTypeCountTicketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketWhereInput
  }


  /**
   * Count Type TicketCommentCountOutputType
   */

  export type TicketCommentCountOutputType = {
    attachments: number
  }

  export type TicketCommentCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    attachments?: boolean | TicketCommentCountOutputTypeCountAttachmentsArgs
  }

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

  /**
   * TicketCommentCountOutputType without action
   */
  export type TicketCommentCountOutputTypeCountAttachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketAttachmentWhereInput
  }


  /**
   * Count Type TicketSLACountOutputType
   */

  export type TicketSLACountOutputType = {
    categories: number
    tickets: number
  }

  export type TicketSLACountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    categories?: boolean | TicketSLACountOutputTypeCountCategoriesArgs
    tickets?: boolean | TicketSLACountOutputTypeCountTicketsArgs
  }

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

  /**
   * TicketSLACountOutputType without action
   */
  export type TicketSLACountOutputTypeCountCategoriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketCategoryWhereInput
  }

  /**
   * TicketSLACountOutputType without action
   */
  export type TicketSLACountOutputTypeCountTicketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketWhereInput
  }


  /**
   * Count Type AssignmentGroupCountOutputType
   */

  export type AssignmentGroupCountOutputType = {
    categories: number
    tickets: number
  }

  export type AssignmentGroupCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    categories?: boolean | AssignmentGroupCountOutputTypeCountCategoriesArgs
    tickets?: boolean | AssignmentGroupCountOutputTypeCountTicketsArgs
  }

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

  /**
   * AssignmentGroupCountOutputType without action
   */
  export type AssignmentGroupCountOutputTypeCountCategoriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketCategoryWhereInput
  }

  /**
   * AssignmentGroupCountOutputType without action
   */
  export type AssignmentGroupCountOutputTypeCountTicketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketWhereInput
  }


  /**
   * Count Type RobotModelCountOutputType
   */

  export type RobotModelCountOutputType = {
    skus: number
    robotUnits: number
  }

  export type RobotModelCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    skus?: boolean | RobotModelCountOutputTypeCountSkusArgs
    robotUnits?: boolean | RobotModelCountOutputTypeCountRobotUnitsArgs
  }

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

  /**
   * RobotModelCountOutputType without action
   */
  export type RobotModelCountOutputTypeCountSkusArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotSkuWhereInput
  }

  /**
   * RobotModelCountOutputType without action
   */
  export type RobotModelCountOutputTypeCountRobotUnitsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitWhereInput
  }


  /**
   * Count Type RobotSkuCountOutputType
   */

  export type RobotSkuCountOutputType = {
    robotUnits: number
  }

  export type RobotSkuCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnits?: boolean | RobotSkuCountOutputTypeCountRobotUnitsArgs
  }

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

  /**
   * RobotSkuCountOutputType without action
   */
  export type RobotSkuCountOutputTypeCountRobotUnitsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitWhereInput
  }


  /**
   * Count Type RobotUnitCountOutputType
   */

  export type RobotUnitCountOutputType = {
    events: number
    qualityLabels: number
    inspections: number
    logisticsLegs: number
    rentalAgreements: number
    serviceTickets: number
    deliveryFulfillments: number
    salesOrderLines: number
    paymentRecords: number
  }

  export type RobotUnitCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    events?: boolean | RobotUnitCountOutputTypeCountEventsArgs
    qualityLabels?: boolean | RobotUnitCountOutputTypeCountQualityLabelsArgs
    inspections?: boolean | RobotUnitCountOutputTypeCountInspectionsArgs
    logisticsLegs?: boolean | RobotUnitCountOutputTypeCountLogisticsLegsArgs
    rentalAgreements?: boolean | RobotUnitCountOutputTypeCountRentalAgreementsArgs
    serviceTickets?: boolean | RobotUnitCountOutputTypeCountServiceTicketsArgs
    deliveryFulfillments?: boolean | RobotUnitCountOutputTypeCountDeliveryFulfillmentsArgs
    salesOrderLines?: boolean | RobotUnitCountOutputTypeCountSalesOrderLinesArgs
    paymentRecords?: boolean | RobotUnitCountOutputTypeCountPaymentRecordsArgs
  }

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

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountEventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotLifecycleEventWhereInput
  }

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountQualityLabelsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: QualityLabelRecordWhereInput
  }

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountInspectionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InspectionRecordWhereInput
  }

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountLogisticsLegsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LogisticsLegWhereInput
  }

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountRentalAgreementsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RentalAgreementWhereInput
  }

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountServiceTicketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ServiceTicketWhereInput
  }

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountDeliveryFulfillmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DeliveryFulfillmentWhereInput
  }

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountSalesOrderLinesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SalesOrderLineWhereInput
  }

  /**
   * RobotUnitCountOutputType without action
   */
  export type RobotUnitCountOutputTypeCountPaymentRecordsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PaymentRecordWhereInput
  }


  /**
   * Count Type RobotLifecycleEventCountOutputType
   */

  export type RobotLifecycleEventCountOutputType = {
    snapshotsAsLastEvent: number
  }

  export type RobotLifecycleEventCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    snapshotsAsLastEvent?: boolean | RobotLifecycleEventCountOutputTypeCountSnapshotsAsLastEventArgs
  }

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

  /**
   * RobotLifecycleEventCountOutputType without action
   */
  export type RobotLifecycleEventCountOutputTypeCountSnapshotsAsLastEventArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitSnapshotWhereInput
  }


  /**
   * Count Type PurchaseOrderCountOutputType
   */

  export type PurchaseOrderCountOutputType = {
    lines: number
    robotUnits: number
  }

  export type PurchaseOrderCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    lines?: boolean | PurchaseOrderCountOutputTypeCountLinesArgs
    robotUnits?: boolean | PurchaseOrderCountOutputTypeCountRobotUnitsArgs
  }

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

  /**
   * PurchaseOrderCountOutputType without action
   */
  export type PurchaseOrderCountOutputTypeCountLinesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PurchaseOrderLineWhereInput
  }

  /**
   * PurchaseOrderCountOutputType without action
   */
  export type PurchaseOrderCountOutputTypeCountRobotUnitsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitWhereInput
  }


  /**
   * Count Type PurchaseOrderLineCountOutputType
   */

  export type PurchaseOrderLineCountOutputType = {
    robotUnits: number
  }

  export type PurchaseOrderLineCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnits?: boolean | PurchaseOrderLineCountOutputTypeCountRobotUnitsArgs
  }

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

  /**
   * PurchaseOrderLineCountOutputType without action
   */
  export type PurchaseOrderLineCountOutputTypeCountRobotUnitsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitWhereInput
  }


  /**
   * Count Type SalesOrderCountOutputType
   */

  export type SalesOrderCountOutputType = {
    lines: number
    deliveryRequests: number
    snapshotRefs: number
  }

  export type SalesOrderCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    lines?: boolean | SalesOrderCountOutputTypeCountLinesArgs
    deliveryRequests?: boolean | SalesOrderCountOutputTypeCountDeliveryRequestsArgs
    snapshotRefs?: boolean | SalesOrderCountOutputTypeCountSnapshotRefsArgs
  }

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

  /**
   * SalesOrderCountOutputType without action
   */
  export type SalesOrderCountOutputTypeCountLinesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SalesOrderLineWhereInput
  }

  /**
   * SalesOrderCountOutputType without action
   */
  export type SalesOrderCountOutputTypeCountDeliveryRequestsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DeliveryRequestWhereInput
  }

  /**
   * SalesOrderCountOutputType without action
   */
  export type SalesOrderCountOutputTypeCountSnapshotRefsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitSnapshotWhereInput
  }


  /**
   * Count Type DeliveryRequestCountOutputType
   */

  export type DeliveryRequestCountOutputType = {
    fulfillments: number
    snapshotRefs: number
  }

  export type DeliveryRequestCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    fulfillments?: boolean | DeliveryRequestCountOutputTypeCountFulfillmentsArgs
    snapshotRefs?: boolean | DeliveryRequestCountOutputTypeCountSnapshotRefsArgs
  }

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

  /**
   * DeliveryRequestCountOutputType without action
   */
  export type DeliveryRequestCountOutputTypeCountFulfillmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DeliveryFulfillmentWhereInput
  }

  /**
   * DeliveryRequestCountOutputType without action
   */
  export type DeliveryRequestCountOutputTypeCountSnapshotRefsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitSnapshotWhereInput
  }


  /**
   * Count Type PaymentRecordCountOutputType
   */

  export type PaymentRecordCountOutputType = {
    rentalScheduleEntries: number
  }

  export type PaymentRecordCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    rentalScheduleEntries?: boolean | PaymentRecordCountOutputTypeCountRentalScheduleEntriesArgs
  }

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

  /**
   * PaymentRecordCountOutputType without action
   */
  export type PaymentRecordCountOutputTypeCountRentalScheduleEntriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RentalPaymentScheduleWhereInput
  }


  /**
   * Count Type RentalAgreementCountOutputType
   */

  export type RentalAgreementCountOutputType = {
    schedules: number
  }

  export type RentalAgreementCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    schedules?: boolean | RentalAgreementCountOutputTypeCountSchedulesArgs
  }

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

  /**
   * RentalAgreementCountOutputType without action
   */
  export type RentalAgreementCountOutputTypeCountSchedulesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RentalPaymentScheduleWhereInput
  }


  /**
   * Count Type ServiceTicketCountOutputType
   */

  export type ServiceTicketCountOutputType = {
    activities: number
  }

  export type ServiceTicketCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    activities?: boolean | ServiceTicketCountOutputTypeCountActivitiesArgs
  }

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

  /**
   * ServiceTicketCountOutputType without action
   */
  export type ServiceTicketCountOutputTypeCountActivitiesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ServiceTicketActivityWhereInput
  }


  /**
   * Count Type ImportBatchCountOutputType
   */

  export type ImportBatchCountOutputType = {
    entries: number
  }

  export type ImportBatchCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    entries?: boolean | ImportBatchCountOutputTypeCountEntriesArgs
  }

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

  /**
   * ImportBatchCountOutputType without action
   */
  export type ImportBatchCountOutputTypeCountEntriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ImportBatchEntryWhereInput
  }


  /**
   * Models
   */

  /**
   * Model ApprovalDefinition
   */

  export type AggregateApprovalDefinition = {
    _count: ApprovalDefinitionCountAggregateOutputType | null
    _avg: ApprovalDefinitionAvgAggregateOutputType | null
    _sum: ApprovalDefinitionSumAggregateOutputType | null
    _min: ApprovalDefinitionMinAggregateOutputType | null
    _max: ApprovalDefinitionMaxAggregateOutputType | null
  }

  export type ApprovalDefinitionAvgAggregateOutputType = {
    latestVersion: number | null
  }

  export type ApprovalDefinitionSumAggregateOutputType = {
    latestVersion: number | null
  }

  export type ApprovalDefinitionMinAggregateOutputType = {
    id: string | null
    key: string | null
    name: string | null
    category: string | null
    description: string | null
    latestVersion: number | null
    organizationId: string | null
    status: $Enums.ProcessStatus | null
    createdBy: string | null
    createdAt: Date | null
    updatedBy: string | null
    updatedAt: Date | null
  }

  export type ApprovalDefinitionMaxAggregateOutputType = {
    id: string | null
    key: string | null
    name: string | null
    category: string | null
    description: string | null
    latestVersion: number | null
    organizationId: string | null
    status: $Enums.ProcessStatus | null
    createdBy: string | null
    createdAt: Date | null
    updatedBy: string | null
    updatedAt: Date | null
  }

  export type ApprovalDefinitionCountAggregateOutputType = {
    id: number
    key: number
    name: number
    category: number
    description: number
    latestVersion: number
    organizationId: number
    status: number
    createdBy: number
    createdAt: number
    updatedBy: number
    updatedAt: number
    _all: number
  }


  export type ApprovalDefinitionAvgAggregateInputType = {
    latestVersion?: true
  }

  export type ApprovalDefinitionSumAggregateInputType = {
    latestVersion?: true
  }

  export type ApprovalDefinitionMinAggregateInputType = {
    id?: true
    key?: true
    name?: true
    category?: true
    description?: true
    latestVersion?: true
    organizationId?: true
    status?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
  }

  export type ApprovalDefinitionMaxAggregateInputType = {
    id?: true
    key?: true
    name?: true
    category?: true
    description?: true
    latestVersion?: true
    organizationId?: true
    status?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
  }

  export type ApprovalDefinitionCountAggregateInputType = {
    id?: true
    key?: true
    name?: true
    category?: true
    description?: true
    latestVersion?: true
    organizationId?: true
    status?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
    _all?: true
  }

  export type ApprovalDefinitionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalDefinition to aggregate.
     */
    where?: ApprovalDefinitionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalDefinitions to fetch.
     */
    orderBy?: ApprovalDefinitionOrderByWithRelationInput | ApprovalDefinitionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ApprovalDefinitionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalDefinitions 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` ApprovalDefinitions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ApprovalDefinitions
    **/
    _count?: true | ApprovalDefinitionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ApprovalDefinitionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ApprovalDefinitionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ApprovalDefinitionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ApprovalDefinitionMaxAggregateInputType
  }

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




  export type ApprovalDefinitionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalDefinitionWhereInput
    orderBy?: ApprovalDefinitionOrderByWithAggregationInput | ApprovalDefinitionOrderByWithAggregationInput[]
    by: ApprovalDefinitionScalarFieldEnum[] | ApprovalDefinitionScalarFieldEnum
    having?: ApprovalDefinitionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApprovalDefinitionCountAggregateInputType | true
    _avg?: ApprovalDefinitionAvgAggregateInputType
    _sum?: ApprovalDefinitionSumAggregateInputType
    _min?: ApprovalDefinitionMinAggregateInputType
    _max?: ApprovalDefinitionMaxAggregateInputType
  }

  export type ApprovalDefinitionGroupByOutputType = {
    id: string
    key: string
    name: string
    category: string
    description: string | null
    latestVersion: number
    organizationId: string | null
    status: $Enums.ProcessStatus
    createdBy: string | null
    createdAt: Date
    updatedBy: string | null
    updatedAt: Date
    _count: ApprovalDefinitionCountAggregateOutputType | null
    _avg: ApprovalDefinitionAvgAggregateOutputType | null
    _sum: ApprovalDefinitionSumAggregateOutputType | null
    _min: ApprovalDefinitionMinAggregateOutputType | null
    _max: ApprovalDefinitionMaxAggregateOutputType | null
  }

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


  export type ApprovalDefinitionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    name?: boolean
    category?: boolean
    description?: boolean
    latestVersion?: boolean
    organizationId?: boolean
    status?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    organization?: boolean | ApprovalDefinition$organizationArgs<ExtArgs>
    versions?: boolean | ApprovalDefinition$versionsArgs<ExtArgs>
    _count?: boolean | ApprovalDefinitionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalDefinition"]>

  export type ApprovalDefinitionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    name?: boolean
    category?: boolean
    description?: boolean
    latestVersion?: boolean
    organizationId?: boolean
    status?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    organization?: boolean | ApprovalDefinition$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["approvalDefinition"]>

  export type ApprovalDefinitionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    name?: boolean
    category?: boolean
    description?: boolean
    latestVersion?: boolean
    organizationId?: boolean
    status?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    organization?: boolean | ApprovalDefinition$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["approvalDefinition"]>

  export type ApprovalDefinitionSelectScalar = {
    id?: boolean
    key?: boolean
    name?: boolean
    category?: boolean
    description?: boolean
    latestVersion?: boolean
    organizationId?: boolean
    status?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
  }

  export type ApprovalDefinitionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "key" | "name" | "category" | "description" | "latestVersion" | "organizationId" | "status" | "createdBy" | "createdAt" | "updatedBy" | "updatedAt", ExtArgs["result"]["approvalDefinition"]>
  export type ApprovalDefinitionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | ApprovalDefinition$organizationArgs<ExtArgs>
    versions?: boolean | ApprovalDefinition$versionsArgs<ExtArgs>
    _count?: boolean | ApprovalDefinitionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ApprovalDefinitionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | ApprovalDefinition$organizationArgs<ExtArgs>
  }
  export type ApprovalDefinitionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | ApprovalDefinition$organizationArgs<ExtArgs>
  }

  export type $ApprovalDefinitionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApprovalDefinition"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
      versions: Prisma.$ApprovalVersionPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      key: string
      name: string
      category: string
      description: string | null
      latestVersion: number
      /**
       * 流程归属组织（v2.0: 独立组织表）
       * null = 平台级流程（所有组织可用）
       * 非 null = 组织专属流程
       */
      organizationId: string | null
      status: $Enums.ProcessStatus
      createdBy: string | null
      createdAt: Date
      updatedBy: string | null
      updatedAt: Date
    }, ExtArgs["result"]["approvalDefinition"]>
    composites: {}
  }

  type ApprovalDefinitionGetPayload<S extends boolean | null | undefined | ApprovalDefinitionDefaultArgs> = $Result.GetResult<Prisma.$ApprovalDefinitionPayload, S>

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

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

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

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

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

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

    /**
     * Create a ApprovalDefinition.
     * @param {ApprovalDefinitionCreateArgs} args - Arguments to create a ApprovalDefinition.
     * @example
     * // Create one ApprovalDefinition
     * const ApprovalDefinition = await prisma.approvalDefinition.create({
     *   data: {
     *     // ... data to create a ApprovalDefinition
     *   }
     * })
     * 
     */
    create<T extends ApprovalDefinitionCreateArgs>(args: SelectSubset<T, ApprovalDefinitionCreateArgs<ExtArgs>>): Prisma__ApprovalDefinitionClient<$Result.GetResult<Prisma.$ApprovalDefinitionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many ApprovalDefinitions and returns the data saved in the database.
     * @param {ApprovalDefinitionCreateManyAndReturnArgs} args - Arguments to create many ApprovalDefinitions.
     * @example
     * // Create many ApprovalDefinitions
     * const approvalDefinition = await prisma.approvalDefinition.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApprovalDefinitions and only return the `id`
     * const approvalDefinitionWithIdOnly = await prisma.approvalDefinition.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 ApprovalDefinitionCreateManyAndReturnArgs>(args?: SelectSubset<T, ApprovalDefinitionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalDefinitionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApprovalDefinition.
     * @param {ApprovalDefinitionDeleteArgs} args - Arguments to delete one ApprovalDefinition.
     * @example
     * // Delete one ApprovalDefinition
     * const ApprovalDefinition = await prisma.approvalDefinition.delete({
     *   where: {
     *     // ... filter to delete one ApprovalDefinition
     *   }
     * })
     * 
     */
    delete<T extends ApprovalDefinitionDeleteArgs>(args: SelectSubset<T, ApprovalDefinitionDeleteArgs<ExtArgs>>): Prisma__ApprovalDefinitionClient<$Result.GetResult<Prisma.$ApprovalDefinitionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

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

    /**
     * Update zero or more ApprovalDefinitions and returns the data updated in the database.
     * @param {ApprovalDefinitionUpdateManyAndReturnArgs} args - Arguments to update many ApprovalDefinitions.
     * @example
     * // Update many ApprovalDefinitions
     * const approvalDefinition = await prisma.approvalDefinition.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApprovalDefinitions and only return the `id`
     * const approvalDefinitionWithIdOnly = await prisma.approvalDefinition.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 ApprovalDefinitionUpdateManyAndReturnArgs>(args: SelectSubset<T, ApprovalDefinitionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalDefinitionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

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

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

  /**
   * The delegate class that acts as a "Promise-like" for ApprovalDefinition.
   * 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__ApprovalDefinitionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends ApprovalDefinition$organizationArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalDefinition$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    versions<T extends ApprovalDefinition$versionsArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalDefinition$versionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalVersionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApprovalDefinition model
   */
  interface ApprovalDefinitionFieldRefs {
    readonly id: FieldRef<"ApprovalDefinition", 'String'>
    readonly key: FieldRef<"ApprovalDefinition", 'String'>
    readonly name: FieldRef<"ApprovalDefinition", 'String'>
    readonly category: FieldRef<"ApprovalDefinition", 'String'>
    readonly description: FieldRef<"ApprovalDefinition", 'String'>
    readonly latestVersion: FieldRef<"ApprovalDefinition", 'Int'>
    readonly organizationId: FieldRef<"ApprovalDefinition", 'String'>
    readonly status: FieldRef<"ApprovalDefinition", 'ProcessStatus'>
    readonly createdBy: FieldRef<"ApprovalDefinition", 'String'>
    readonly createdAt: FieldRef<"ApprovalDefinition", 'DateTime'>
    readonly updatedBy: FieldRef<"ApprovalDefinition", 'String'>
    readonly updatedAt: FieldRef<"ApprovalDefinition", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ApprovalDefinition findUnique
   */
  export type ApprovalDefinitionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalDefinition to fetch.
     */
    where: ApprovalDefinitionWhereUniqueInput
  }

  /**
   * ApprovalDefinition findUniqueOrThrow
   */
  export type ApprovalDefinitionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalDefinition to fetch.
     */
    where: ApprovalDefinitionWhereUniqueInput
  }

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

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

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

  /**
   * ApprovalDefinition create
   */
  export type ApprovalDefinitionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionInclude<ExtArgs> | null
    /**
     * The data needed to create a ApprovalDefinition.
     */
    data: XOR<ApprovalDefinitionCreateInput, ApprovalDefinitionUncheckedCreateInput>
  }

  /**
   * ApprovalDefinition createMany
   */
  export type ApprovalDefinitionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApprovalDefinitions.
     */
    data: ApprovalDefinitionCreateManyInput | ApprovalDefinitionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalDefinition createManyAndReturn
   */
  export type ApprovalDefinitionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * The data used to create many ApprovalDefinitions.
     */
    data: ApprovalDefinitionCreateManyInput | ApprovalDefinitionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalDefinition update
   */
  export type ApprovalDefinitionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionInclude<ExtArgs> | null
    /**
     * The data needed to update a ApprovalDefinition.
     */
    data: XOR<ApprovalDefinitionUpdateInput, ApprovalDefinitionUncheckedUpdateInput>
    /**
     * Choose, which ApprovalDefinition to update.
     */
    where: ApprovalDefinitionWhereUniqueInput
  }

  /**
   * ApprovalDefinition updateMany
   */
  export type ApprovalDefinitionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApprovalDefinitions.
     */
    data: XOR<ApprovalDefinitionUpdateManyMutationInput, ApprovalDefinitionUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalDefinitions to update
     */
    where?: ApprovalDefinitionWhereInput
    /**
     * Limit how many ApprovalDefinitions to update.
     */
    limit?: number
  }

  /**
   * ApprovalDefinition updateManyAndReturn
   */
  export type ApprovalDefinitionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * The data used to update ApprovalDefinitions.
     */
    data: XOR<ApprovalDefinitionUpdateManyMutationInput, ApprovalDefinitionUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalDefinitions to update
     */
    where?: ApprovalDefinitionWhereInput
    /**
     * Limit how many ApprovalDefinitions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalDefinition upsert
   */
  export type ApprovalDefinitionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionInclude<ExtArgs> | null
    /**
     * The filter to search for the ApprovalDefinition to update in case it exists.
     */
    where: ApprovalDefinitionWhereUniqueInput
    /**
     * In case the ApprovalDefinition found by the `where` argument doesn't exist, create a new ApprovalDefinition with this data.
     */
    create: XOR<ApprovalDefinitionCreateInput, ApprovalDefinitionUncheckedCreateInput>
    /**
     * In case the ApprovalDefinition was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApprovalDefinitionUpdateInput, ApprovalDefinitionUncheckedUpdateInput>
  }

  /**
   * ApprovalDefinition delete
   */
  export type ApprovalDefinitionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionInclude<ExtArgs> | null
    /**
     * Filter which ApprovalDefinition to delete.
     */
    where: ApprovalDefinitionWhereUniqueInput
  }

  /**
   * ApprovalDefinition deleteMany
   */
  export type ApprovalDefinitionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalDefinitions to delete
     */
    where?: ApprovalDefinitionWhereInput
    /**
     * Limit how many ApprovalDefinitions to delete.
     */
    limit?: number
  }

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

  /**
   * ApprovalDefinition.versions
   */
  export type ApprovalDefinition$versionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionInclude<ExtArgs> | null
    where?: ApprovalVersionWhereInput
    orderBy?: ApprovalVersionOrderByWithRelationInput | ApprovalVersionOrderByWithRelationInput[]
    cursor?: ApprovalVersionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalVersionScalarFieldEnum | ApprovalVersionScalarFieldEnum[]
  }

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


  /**
   * Model ApprovalVersion
   */

  export type AggregateApprovalVersion = {
    _count: ApprovalVersionCountAggregateOutputType | null
    _avg: ApprovalVersionAvgAggregateOutputType | null
    _sum: ApprovalVersionSumAggregateOutputType | null
    _min: ApprovalVersionMinAggregateOutputType | null
    _max: ApprovalVersionMaxAggregateOutputType | null
  }

  export type ApprovalVersionAvgAggregateOutputType = {
    version: number | null
  }

  export type ApprovalVersionSumAggregateOutputType = {
    version: number | null
  }

  export type ApprovalVersionMinAggregateOutputType = {
    id: string | null
    definitionId: string | null
    version: number | null
    name: string | null
    isDefault: boolean | null
    status: $Enums.VersionStatus | null
    deployedAt: Date | null
    deployedBy: string | null
    changeLog: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ApprovalVersionMaxAggregateOutputType = {
    id: string | null
    definitionId: string | null
    version: number | null
    name: string | null
    isDefault: boolean | null
    status: $Enums.VersionStatus | null
    deployedAt: Date | null
    deployedBy: string | null
    changeLog: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ApprovalVersionCountAggregateOutputType = {
    id: number
    definitionId: number
    version: number
    name: number
    isDefault: number
    processModel: number
    settings: number
    formSchema: number
    ruleConfig: number
    status: number
    deployedAt: number
    deployedBy: number
    changeLog: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type ApprovalVersionAvgAggregateInputType = {
    version?: true
  }

  export type ApprovalVersionSumAggregateInputType = {
    version?: true
  }

  export type ApprovalVersionMinAggregateInputType = {
    id?: true
    definitionId?: true
    version?: true
    name?: true
    isDefault?: true
    status?: true
    deployedAt?: true
    deployedBy?: true
    changeLog?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ApprovalVersionMaxAggregateInputType = {
    id?: true
    definitionId?: true
    version?: true
    name?: true
    isDefault?: true
    status?: true
    deployedAt?: true
    deployedBy?: true
    changeLog?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ApprovalVersionCountAggregateInputType = {
    id?: true
    definitionId?: true
    version?: true
    name?: true
    isDefault?: true
    processModel?: true
    settings?: true
    formSchema?: true
    ruleConfig?: true
    status?: true
    deployedAt?: true
    deployedBy?: true
    changeLog?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type ApprovalVersionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalVersion to aggregate.
     */
    where?: ApprovalVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalVersions to fetch.
     */
    orderBy?: ApprovalVersionOrderByWithRelationInput | ApprovalVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ApprovalVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalVersions 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` ApprovalVersions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ApprovalVersions
    **/
    _count?: true | ApprovalVersionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ApprovalVersionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ApprovalVersionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ApprovalVersionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ApprovalVersionMaxAggregateInputType
  }

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




  export type ApprovalVersionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalVersionWhereInput
    orderBy?: ApprovalVersionOrderByWithAggregationInput | ApprovalVersionOrderByWithAggregationInput[]
    by: ApprovalVersionScalarFieldEnum[] | ApprovalVersionScalarFieldEnum
    having?: ApprovalVersionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApprovalVersionCountAggregateInputType | true
    _avg?: ApprovalVersionAvgAggregateInputType
    _sum?: ApprovalVersionSumAggregateInputType
    _min?: ApprovalVersionMinAggregateInputType
    _max?: ApprovalVersionMaxAggregateInputType
  }

  export type ApprovalVersionGroupByOutputType = {
    id: string
    definitionId: string
    version: number
    name: string
    isDefault: boolean
    processModel: JsonValue
    settings: JsonValue
    formSchema: JsonValue | null
    ruleConfig: JsonValue
    status: $Enums.VersionStatus
    deployedAt: Date | null
    deployedBy: string | null
    changeLog: string | null
    createdAt: Date
    updatedAt: Date
    _count: ApprovalVersionCountAggregateOutputType | null
    _avg: ApprovalVersionAvgAggregateOutputType | null
    _sum: ApprovalVersionSumAggregateOutputType | null
    _min: ApprovalVersionMinAggregateOutputType | null
    _max: ApprovalVersionMaxAggregateOutputType | null
  }

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


  export type ApprovalVersionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    definitionId?: boolean
    version?: boolean
    name?: boolean
    isDefault?: boolean
    processModel?: boolean
    settings?: boolean
    formSchema?: boolean
    ruleConfig?: boolean
    status?: boolean
    deployedAt?: boolean
    deployedBy?: boolean
    changeLog?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    instances?: boolean | ApprovalVersion$instancesArgs<ExtArgs>
    definition?: boolean | ApprovalDefinitionDefaultArgs<ExtArgs>
    _count?: boolean | ApprovalVersionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalVersion"]>

  export type ApprovalVersionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    definitionId?: boolean
    version?: boolean
    name?: boolean
    isDefault?: boolean
    processModel?: boolean
    settings?: boolean
    formSchema?: boolean
    ruleConfig?: boolean
    status?: boolean
    deployedAt?: boolean
    deployedBy?: boolean
    changeLog?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    definition?: boolean | ApprovalDefinitionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalVersion"]>

  export type ApprovalVersionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    definitionId?: boolean
    version?: boolean
    name?: boolean
    isDefault?: boolean
    processModel?: boolean
    settings?: boolean
    formSchema?: boolean
    ruleConfig?: boolean
    status?: boolean
    deployedAt?: boolean
    deployedBy?: boolean
    changeLog?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    definition?: boolean | ApprovalDefinitionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalVersion"]>

  export type ApprovalVersionSelectScalar = {
    id?: boolean
    definitionId?: boolean
    version?: boolean
    name?: boolean
    isDefault?: boolean
    processModel?: boolean
    settings?: boolean
    formSchema?: boolean
    ruleConfig?: boolean
    status?: boolean
    deployedAt?: boolean
    deployedBy?: boolean
    changeLog?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type ApprovalVersionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "definitionId" | "version" | "name" | "isDefault" | "processModel" | "settings" | "formSchema" | "ruleConfig" | "status" | "deployedAt" | "deployedBy" | "changeLog" | "createdAt" | "updatedAt", ExtArgs["result"]["approvalVersion"]>
  export type ApprovalVersionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instances?: boolean | ApprovalVersion$instancesArgs<ExtArgs>
    definition?: boolean | ApprovalDefinitionDefaultArgs<ExtArgs>
    _count?: boolean | ApprovalVersionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ApprovalVersionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    definition?: boolean | ApprovalDefinitionDefaultArgs<ExtArgs>
  }
  export type ApprovalVersionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    definition?: boolean | ApprovalDefinitionDefaultArgs<ExtArgs>
  }

  export type $ApprovalVersionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApprovalVersion"
    objects: {
      instances: Prisma.$ApprovalInstancePayload<ExtArgs>[]
      definition: Prisma.$ApprovalDefinitionPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      definitionId: string
      version: number
      name: string
      isDefault: boolean
      processModel: Prisma.JsonValue
      settings: Prisma.JsonValue
      formSchema: Prisma.JsonValue | null
      ruleConfig: Prisma.JsonValue
      status: $Enums.VersionStatus
      deployedAt: Date | null
      deployedBy: string | null
      changeLog: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["approvalVersion"]>
    composites: {}
  }

  type ApprovalVersionGetPayload<S extends boolean | null | undefined | ApprovalVersionDefaultArgs> = $Result.GetResult<Prisma.$ApprovalVersionPayload, S>

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

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

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

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

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

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

    /**
     * Create a ApprovalVersion.
     * @param {ApprovalVersionCreateArgs} args - Arguments to create a ApprovalVersion.
     * @example
     * // Create one ApprovalVersion
     * const ApprovalVersion = await prisma.approvalVersion.create({
     *   data: {
     *     // ... data to create a ApprovalVersion
     *   }
     * })
     * 
     */
    create<T extends ApprovalVersionCreateArgs>(args: SelectSubset<T, ApprovalVersionCreateArgs<ExtArgs>>): Prisma__ApprovalVersionClient<$Result.GetResult<Prisma.$ApprovalVersionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many ApprovalVersions and returns the data saved in the database.
     * @param {ApprovalVersionCreateManyAndReturnArgs} args - Arguments to create many ApprovalVersions.
     * @example
     * // Create many ApprovalVersions
     * const approvalVersion = await prisma.approvalVersion.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApprovalVersions and only return the `id`
     * const approvalVersionWithIdOnly = await prisma.approvalVersion.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 ApprovalVersionCreateManyAndReturnArgs>(args?: SelectSubset<T, ApprovalVersionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalVersionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApprovalVersion.
     * @param {ApprovalVersionDeleteArgs} args - Arguments to delete one ApprovalVersion.
     * @example
     * // Delete one ApprovalVersion
     * const ApprovalVersion = await prisma.approvalVersion.delete({
     *   where: {
     *     // ... filter to delete one ApprovalVersion
     *   }
     * })
     * 
     */
    delete<T extends ApprovalVersionDeleteArgs>(args: SelectSubset<T, ApprovalVersionDeleteArgs<ExtArgs>>): Prisma__ApprovalVersionClient<$Result.GetResult<Prisma.$ApprovalVersionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

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

    /**
     * Update zero or more ApprovalVersions and returns the data updated in the database.
     * @param {ApprovalVersionUpdateManyAndReturnArgs} args - Arguments to update many ApprovalVersions.
     * @example
     * // Update many ApprovalVersions
     * const approvalVersion = await prisma.approvalVersion.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApprovalVersions and only return the `id`
     * const approvalVersionWithIdOnly = await prisma.approvalVersion.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 ApprovalVersionUpdateManyAndReturnArgs>(args: SelectSubset<T, ApprovalVersionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalVersionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

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

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

  /**
   * The delegate class that acts as a "Promise-like" for ApprovalVersion.
   * 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__ApprovalVersionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    instances<T extends ApprovalVersion$instancesArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalVersion$instancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    definition<T extends ApprovalDefinitionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalDefinitionDefaultArgs<ExtArgs>>): Prisma__ApprovalDefinitionClient<$Result.GetResult<Prisma.$ApprovalDefinitionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApprovalVersion model
   */
  interface ApprovalVersionFieldRefs {
    readonly id: FieldRef<"ApprovalVersion", 'String'>
    readonly definitionId: FieldRef<"ApprovalVersion", 'String'>
    readonly version: FieldRef<"ApprovalVersion", 'Int'>
    readonly name: FieldRef<"ApprovalVersion", 'String'>
    readonly isDefault: FieldRef<"ApprovalVersion", 'Boolean'>
    readonly processModel: FieldRef<"ApprovalVersion", 'Json'>
    readonly settings: FieldRef<"ApprovalVersion", 'Json'>
    readonly formSchema: FieldRef<"ApprovalVersion", 'Json'>
    readonly ruleConfig: FieldRef<"ApprovalVersion", 'Json'>
    readonly status: FieldRef<"ApprovalVersion", 'VersionStatus'>
    readonly deployedAt: FieldRef<"ApprovalVersion", 'DateTime'>
    readonly deployedBy: FieldRef<"ApprovalVersion", 'String'>
    readonly changeLog: FieldRef<"ApprovalVersion", 'String'>
    readonly createdAt: FieldRef<"ApprovalVersion", 'DateTime'>
    readonly updatedAt: FieldRef<"ApprovalVersion", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ApprovalVersion findUnique
   */
  export type ApprovalVersionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalVersion to fetch.
     */
    where: ApprovalVersionWhereUniqueInput
  }

  /**
   * ApprovalVersion findUniqueOrThrow
   */
  export type ApprovalVersionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalVersion to fetch.
     */
    where: ApprovalVersionWhereUniqueInput
  }

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

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

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

  /**
   * ApprovalVersion create
   */
  export type ApprovalVersionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionInclude<ExtArgs> | null
    /**
     * The data needed to create a ApprovalVersion.
     */
    data: XOR<ApprovalVersionCreateInput, ApprovalVersionUncheckedCreateInput>
  }

  /**
   * ApprovalVersion createMany
   */
  export type ApprovalVersionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApprovalVersions.
     */
    data: ApprovalVersionCreateManyInput | ApprovalVersionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalVersion createManyAndReturn
   */
  export type ApprovalVersionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * The data used to create many ApprovalVersions.
     */
    data: ApprovalVersionCreateManyInput | ApprovalVersionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalVersion update
   */
  export type ApprovalVersionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionInclude<ExtArgs> | null
    /**
     * The data needed to update a ApprovalVersion.
     */
    data: XOR<ApprovalVersionUpdateInput, ApprovalVersionUncheckedUpdateInput>
    /**
     * Choose, which ApprovalVersion to update.
     */
    where: ApprovalVersionWhereUniqueInput
  }

  /**
   * ApprovalVersion updateMany
   */
  export type ApprovalVersionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApprovalVersions.
     */
    data: XOR<ApprovalVersionUpdateManyMutationInput, ApprovalVersionUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalVersions to update
     */
    where?: ApprovalVersionWhereInput
    /**
     * Limit how many ApprovalVersions to update.
     */
    limit?: number
  }

  /**
   * ApprovalVersion updateManyAndReturn
   */
  export type ApprovalVersionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * The data used to update ApprovalVersions.
     */
    data: XOR<ApprovalVersionUpdateManyMutationInput, ApprovalVersionUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalVersions to update
     */
    where?: ApprovalVersionWhereInput
    /**
     * Limit how many ApprovalVersions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalVersion upsert
   */
  export type ApprovalVersionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionInclude<ExtArgs> | null
    /**
     * The filter to search for the ApprovalVersion to update in case it exists.
     */
    where: ApprovalVersionWhereUniqueInput
    /**
     * In case the ApprovalVersion found by the `where` argument doesn't exist, create a new ApprovalVersion with this data.
     */
    create: XOR<ApprovalVersionCreateInput, ApprovalVersionUncheckedCreateInput>
    /**
     * In case the ApprovalVersion was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApprovalVersionUpdateInput, ApprovalVersionUncheckedUpdateInput>
  }

  /**
   * ApprovalVersion delete
   */
  export type ApprovalVersionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalVersion
     */
    select?: ApprovalVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalVersion
     */
    omit?: ApprovalVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalVersionInclude<ExtArgs> | null
    /**
     * Filter which ApprovalVersion to delete.
     */
    where: ApprovalVersionWhereUniqueInput
  }

  /**
   * ApprovalVersion deleteMany
   */
  export type ApprovalVersionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalVersions to delete
     */
    where?: ApprovalVersionWhereInput
    /**
     * Limit how many ApprovalVersions to delete.
     */
    limit?: number
  }

  /**
   * ApprovalVersion.instances
   */
  export type ApprovalVersion$instancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceInclude<ExtArgs> | null
    where?: ApprovalInstanceWhereInput
    orderBy?: ApprovalInstanceOrderByWithRelationInput | ApprovalInstanceOrderByWithRelationInput[]
    cursor?: ApprovalInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalInstanceScalarFieldEnum | ApprovalInstanceScalarFieldEnum[]
  }

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


  /**
   * Model ApprovalInstance
   */

  export type AggregateApprovalInstance = {
    _count: ApprovalInstanceCountAggregateOutputType | null
    _avg: ApprovalInstanceAvgAggregateOutputType | null
    _sum: ApprovalInstanceSumAggregateOutputType | null
    _min: ApprovalInstanceMinAggregateOutputType | null
    _max: ApprovalInstanceMaxAggregateOutputType | null
  }

  export type ApprovalInstanceAvgAggregateOutputType = {
    totalNodeExecutions: number | null
    priority: number | null
  }

  export type ApprovalInstanceSumAggregateOutputType = {
    totalNodeExecutions: number | null
    priority: number | null
  }

  export type ApprovalInstanceMinAggregateOutputType = {
    id: string | null
    versionId: string | null
    businessType: string | null
    businessId: string | null
    businessKey: string | null
    title: string | null
    workflowId: string | null
    workflowRunId: string | null
    initiatorId: string | null
    regionId: string | null
    status: $Enums.InstanceStatus | null
    currentNodeId: string | null
    currentNode: string | null
    totalNodeExecutions: number | null
    endReason: string | null
    endComment: string | null
    priority: number | null
    dueDate: Date | null
    startTime: Date | null
    endTime: Date | null
  }

  export type ApprovalInstanceMaxAggregateOutputType = {
    id: string | null
    versionId: string | null
    businessType: string | null
    businessId: string | null
    businessKey: string | null
    title: string | null
    workflowId: string | null
    workflowRunId: string | null
    initiatorId: string | null
    regionId: string | null
    status: $Enums.InstanceStatus | null
    currentNodeId: string | null
    currentNode: string | null
    totalNodeExecutions: number | null
    endReason: string | null
    endComment: string | null
    priority: number | null
    dueDate: Date | null
    startTime: Date | null
    endTime: Date | null
  }

  export type ApprovalInstanceCountAggregateOutputType = {
    id: number
    versionId: number
    businessType: number
    businessId: number
    businessKey: number
    title: number
    workflowId: number
    workflowRunId: number
    initiatorId: number
    regionId: number
    status: number
    currentNodeId: number
    currentNode: number
    variables: number
    totalNodeExecutions: number
    endReason: number
    endComment: number
    priority: number
    dueDate: number
    startTime: number
    endTime: number
    _all: number
  }


  export type ApprovalInstanceAvgAggregateInputType = {
    totalNodeExecutions?: true
    priority?: true
  }

  export type ApprovalInstanceSumAggregateInputType = {
    totalNodeExecutions?: true
    priority?: true
  }

  export type ApprovalInstanceMinAggregateInputType = {
    id?: true
    versionId?: true
    businessType?: true
    businessId?: true
    businessKey?: true
    title?: true
    workflowId?: true
    workflowRunId?: true
    initiatorId?: true
    regionId?: true
    status?: true
    currentNodeId?: true
    currentNode?: true
    totalNodeExecutions?: true
    endReason?: true
    endComment?: true
    priority?: true
    dueDate?: true
    startTime?: true
    endTime?: true
  }

  export type ApprovalInstanceMaxAggregateInputType = {
    id?: true
    versionId?: true
    businessType?: true
    businessId?: true
    businessKey?: true
    title?: true
    workflowId?: true
    workflowRunId?: true
    initiatorId?: true
    regionId?: true
    status?: true
    currentNodeId?: true
    currentNode?: true
    totalNodeExecutions?: true
    endReason?: true
    endComment?: true
    priority?: true
    dueDate?: true
    startTime?: true
    endTime?: true
  }

  export type ApprovalInstanceCountAggregateInputType = {
    id?: true
    versionId?: true
    businessType?: true
    businessId?: true
    businessKey?: true
    title?: true
    workflowId?: true
    workflowRunId?: true
    initiatorId?: true
    regionId?: true
    status?: true
    currentNodeId?: true
    currentNode?: true
    variables?: true
    totalNodeExecutions?: true
    endReason?: true
    endComment?: true
    priority?: true
    dueDate?: true
    startTime?: true
    endTime?: true
    _all?: true
  }

  export type ApprovalInstanceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalInstance to aggregate.
     */
    where?: ApprovalInstanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalInstances to fetch.
     */
    orderBy?: ApprovalInstanceOrderByWithRelationInput | ApprovalInstanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ApprovalInstanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalInstances 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` ApprovalInstances.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ApprovalInstances
    **/
    _count?: true | ApprovalInstanceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ApprovalInstanceAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ApprovalInstanceSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ApprovalInstanceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ApprovalInstanceMaxAggregateInputType
  }

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




  export type ApprovalInstanceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalInstanceWhereInput
    orderBy?: ApprovalInstanceOrderByWithAggregationInput | ApprovalInstanceOrderByWithAggregationInput[]
    by: ApprovalInstanceScalarFieldEnum[] | ApprovalInstanceScalarFieldEnum
    having?: ApprovalInstanceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApprovalInstanceCountAggregateInputType | true
    _avg?: ApprovalInstanceAvgAggregateInputType
    _sum?: ApprovalInstanceSumAggregateInputType
    _min?: ApprovalInstanceMinAggregateInputType
    _max?: ApprovalInstanceMaxAggregateInputType
  }

  export type ApprovalInstanceGroupByOutputType = {
    id: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId: string | null
    status: $Enums.InstanceStatus
    currentNodeId: string | null
    currentNode: string | null
    variables: JsonValue
    totalNodeExecutions: number
    endReason: string | null
    endComment: string | null
    priority: number
    dueDate: Date | null
    startTime: Date
    endTime: Date | null
    _count: ApprovalInstanceCountAggregateOutputType | null
    _avg: ApprovalInstanceAvgAggregateOutputType | null
    _sum: ApprovalInstanceSumAggregateOutputType | null
    _min: ApprovalInstanceMinAggregateOutputType | null
    _max: ApprovalInstanceMaxAggregateOutputType | null
  }

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


  export type ApprovalInstanceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    versionId?: boolean
    businessType?: boolean
    businessId?: boolean
    businessKey?: boolean
    title?: boolean
    workflowId?: boolean
    workflowRunId?: boolean
    initiatorId?: boolean
    regionId?: boolean
    status?: boolean
    currentNodeId?: boolean
    currentNode?: boolean
    variables?: boolean
    totalNodeExecutions?: boolean
    endReason?: boolean
    endComment?: boolean
    priority?: boolean
    dueDate?: boolean
    startTime?: boolean
    endTime?: boolean
    initiator?: boolean | UserDefaultArgs<ExtArgs>
    version?: boolean | ApprovalVersionDefaultArgs<ExtArgs>
    nodeInstances?: boolean | ApprovalInstance$nodeInstancesArgs<ExtArgs>
    approvalTasks?: boolean | ApprovalInstance$approvalTasksArgs<ExtArgs>
    callbackRetries?: boolean | ApprovalInstance$callbackRetriesArgs<ExtArgs>
    reminderQueues?: boolean | ApprovalInstance$reminderQueuesArgs<ExtArgs>
    _count?: boolean | ApprovalInstanceCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalInstance"]>

  export type ApprovalInstanceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    versionId?: boolean
    businessType?: boolean
    businessId?: boolean
    businessKey?: boolean
    title?: boolean
    workflowId?: boolean
    workflowRunId?: boolean
    initiatorId?: boolean
    regionId?: boolean
    status?: boolean
    currentNodeId?: boolean
    currentNode?: boolean
    variables?: boolean
    totalNodeExecutions?: boolean
    endReason?: boolean
    endComment?: boolean
    priority?: boolean
    dueDate?: boolean
    startTime?: boolean
    endTime?: boolean
    initiator?: boolean | UserDefaultArgs<ExtArgs>
    version?: boolean | ApprovalVersionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalInstance"]>

  export type ApprovalInstanceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    versionId?: boolean
    businessType?: boolean
    businessId?: boolean
    businessKey?: boolean
    title?: boolean
    workflowId?: boolean
    workflowRunId?: boolean
    initiatorId?: boolean
    regionId?: boolean
    status?: boolean
    currentNodeId?: boolean
    currentNode?: boolean
    variables?: boolean
    totalNodeExecutions?: boolean
    endReason?: boolean
    endComment?: boolean
    priority?: boolean
    dueDate?: boolean
    startTime?: boolean
    endTime?: boolean
    initiator?: boolean | UserDefaultArgs<ExtArgs>
    version?: boolean | ApprovalVersionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalInstance"]>

  export type ApprovalInstanceSelectScalar = {
    id?: boolean
    versionId?: boolean
    businessType?: boolean
    businessId?: boolean
    businessKey?: boolean
    title?: boolean
    workflowId?: boolean
    workflowRunId?: boolean
    initiatorId?: boolean
    regionId?: boolean
    status?: boolean
    currentNodeId?: boolean
    currentNode?: boolean
    variables?: boolean
    totalNodeExecutions?: boolean
    endReason?: boolean
    endComment?: boolean
    priority?: boolean
    dueDate?: boolean
    startTime?: boolean
    endTime?: boolean
  }

  export type ApprovalInstanceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "versionId" | "businessType" | "businessId" | "businessKey" | "title" | "workflowId" | "workflowRunId" | "initiatorId" | "regionId" | "status" | "currentNodeId" | "currentNode" | "variables" | "totalNodeExecutions" | "endReason" | "endComment" | "priority" | "dueDate" | "startTime" | "endTime", ExtArgs["result"]["approvalInstance"]>
  export type ApprovalInstanceInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    initiator?: boolean | UserDefaultArgs<ExtArgs>
    version?: boolean | ApprovalVersionDefaultArgs<ExtArgs>
    nodeInstances?: boolean | ApprovalInstance$nodeInstancesArgs<ExtArgs>
    approvalTasks?: boolean | ApprovalInstance$approvalTasksArgs<ExtArgs>
    callbackRetries?: boolean | ApprovalInstance$callbackRetriesArgs<ExtArgs>
    reminderQueues?: boolean | ApprovalInstance$reminderQueuesArgs<ExtArgs>
    _count?: boolean | ApprovalInstanceCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ApprovalInstanceIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    initiator?: boolean | UserDefaultArgs<ExtArgs>
    version?: boolean | ApprovalVersionDefaultArgs<ExtArgs>
  }
  export type ApprovalInstanceIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    initiator?: boolean | UserDefaultArgs<ExtArgs>
    version?: boolean | ApprovalVersionDefaultArgs<ExtArgs>
  }

  export type $ApprovalInstancePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApprovalInstance"
    objects: {
      initiator: Prisma.$UserPayload<ExtArgs>
      version: Prisma.$ApprovalVersionPayload<ExtArgs>
      nodeInstances: Prisma.$ApprovalNodeInstancePayload<ExtArgs>[]
      approvalTasks: Prisma.$ApprovalTaskPayload<ExtArgs>[]
      callbackRetries: Prisma.$CallbackRetryQueuePayload<ExtArgs>[]
      reminderQueues: Prisma.$ReminderQueuePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      versionId: string
      businessType: string
      businessId: string
      businessKey: string
      title: string | null
      workflowId: string
      workflowRunId: string
      initiatorId: string
      /**
       * 发起时记录用户所属区域（用于数据隔离、统计、审批路由）
       */
      regionId: string | null
      status: $Enums.InstanceStatus
      currentNodeId: string | null
      currentNode: string | null
      variables: Prisma.JsonValue
      totalNodeExecutions: number
      endReason: string | null
      endComment: string | null
      priority: number
      dueDate: Date | null
      startTime: Date
      endTime: Date | null
    }, ExtArgs["result"]["approvalInstance"]>
    composites: {}
  }

  type ApprovalInstanceGetPayload<S extends boolean | null | undefined | ApprovalInstanceDefaultArgs> = $Result.GetResult<Prisma.$ApprovalInstancePayload, S>

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

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

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

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

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

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

    /**
     * Create a ApprovalInstance.
     * @param {ApprovalInstanceCreateArgs} args - Arguments to create a ApprovalInstance.
     * @example
     * // Create one ApprovalInstance
     * const ApprovalInstance = await prisma.approvalInstance.create({
     *   data: {
     *     // ... data to create a ApprovalInstance
     *   }
     * })
     * 
     */
    create<T extends ApprovalInstanceCreateArgs>(args: SelectSubset<T, ApprovalInstanceCreateArgs<ExtArgs>>): Prisma__ApprovalInstanceClient<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many ApprovalInstances and returns the data saved in the database.
     * @param {ApprovalInstanceCreateManyAndReturnArgs} args - Arguments to create many ApprovalInstances.
     * @example
     * // Create many ApprovalInstances
     * const approvalInstance = await prisma.approvalInstance.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApprovalInstances and only return the `id`
     * const approvalInstanceWithIdOnly = await prisma.approvalInstance.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 ApprovalInstanceCreateManyAndReturnArgs>(args?: SelectSubset<T, ApprovalInstanceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApprovalInstance.
     * @param {ApprovalInstanceDeleteArgs} args - Arguments to delete one ApprovalInstance.
     * @example
     * // Delete one ApprovalInstance
     * const ApprovalInstance = await prisma.approvalInstance.delete({
     *   where: {
     *     // ... filter to delete one ApprovalInstance
     *   }
     * })
     * 
     */
    delete<T extends ApprovalInstanceDeleteArgs>(args: SelectSubset<T, ApprovalInstanceDeleteArgs<ExtArgs>>): Prisma__ApprovalInstanceClient<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

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

    /**
     * Update zero or more ApprovalInstances and returns the data updated in the database.
     * @param {ApprovalInstanceUpdateManyAndReturnArgs} args - Arguments to update many ApprovalInstances.
     * @example
     * // Update many ApprovalInstances
     * const approvalInstance = await prisma.approvalInstance.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApprovalInstances and only return the `id`
     * const approvalInstanceWithIdOnly = await prisma.approvalInstance.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 ApprovalInstanceUpdateManyAndReturnArgs>(args: SelectSubset<T, ApprovalInstanceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

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

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

  /**
   * The delegate class that acts as a "Promise-like" for ApprovalInstance.
   * 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__ApprovalInstanceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    initiator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    version<T extends ApprovalVersionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalVersionDefaultArgs<ExtArgs>>): Prisma__ApprovalVersionClient<$Result.GetResult<Prisma.$ApprovalVersionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    nodeInstances<T extends ApprovalInstance$nodeInstancesArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalInstance$nodeInstancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalNodeInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    approvalTasks<T extends ApprovalInstance$approvalTasksArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalInstance$approvalTasksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    callbackRetries<T extends ApprovalInstance$callbackRetriesArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalInstance$callbackRetriesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    reminderQueues<T extends ApprovalInstance$reminderQueuesArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalInstance$reminderQueuesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApprovalInstance model
   */
  interface ApprovalInstanceFieldRefs {
    readonly id: FieldRef<"ApprovalInstance", 'String'>
    readonly versionId: FieldRef<"ApprovalInstance", 'String'>
    readonly businessType: FieldRef<"ApprovalInstance", 'String'>
    readonly businessId: FieldRef<"ApprovalInstance", 'String'>
    readonly businessKey: FieldRef<"ApprovalInstance", 'String'>
    readonly title: FieldRef<"ApprovalInstance", 'String'>
    readonly workflowId: FieldRef<"ApprovalInstance", 'String'>
    readonly workflowRunId: FieldRef<"ApprovalInstance", 'String'>
    readonly initiatorId: FieldRef<"ApprovalInstance", 'String'>
    readonly regionId: FieldRef<"ApprovalInstance", 'String'>
    readonly status: FieldRef<"ApprovalInstance", 'InstanceStatus'>
    readonly currentNodeId: FieldRef<"ApprovalInstance", 'String'>
    readonly currentNode: FieldRef<"ApprovalInstance", 'String'>
    readonly variables: FieldRef<"ApprovalInstance", 'Json'>
    readonly totalNodeExecutions: FieldRef<"ApprovalInstance", 'Int'>
    readonly endReason: FieldRef<"ApprovalInstance", 'String'>
    readonly endComment: FieldRef<"ApprovalInstance", 'String'>
    readonly priority: FieldRef<"ApprovalInstance", 'Int'>
    readonly dueDate: FieldRef<"ApprovalInstance", 'DateTime'>
    readonly startTime: FieldRef<"ApprovalInstance", 'DateTime'>
    readonly endTime: FieldRef<"ApprovalInstance", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ApprovalInstance findUnique
   */
  export type ApprovalInstanceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalInstance to fetch.
     */
    where: ApprovalInstanceWhereUniqueInput
  }

  /**
   * ApprovalInstance findUniqueOrThrow
   */
  export type ApprovalInstanceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalInstance to fetch.
     */
    where: ApprovalInstanceWhereUniqueInput
  }

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

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

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

  /**
   * ApprovalInstance create
   */
  export type ApprovalInstanceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceInclude<ExtArgs> | null
    /**
     * The data needed to create a ApprovalInstance.
     */
    data: XOR<ApprovalInstanceCreateInput, ApprovalInstanceUncheckedCreateInput>
  }

  /**
   * ApprovalInstance createMany
   */
  export type ApprovalInstanceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApprovalInstances.
     */
    data: ApprovalInstanceCreateManyInput | ApprovalInstanceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalInstance createManyAndReturn
   */
  export type ApprovalInstanceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * The data used to create many ApprovalInstances.
     */
    data: ApprovalInstanceCreateManyInput | ApprovalInstanceCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalInstance update
   */
  export type ApprovalInstanceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceInclude<ExtArgs> | null
    /**
     * The data needed to update a ApprovalInstance.
     */
    data: XOR<ApprovalInstanceUpdateInput, ApprovalInstanceUncheckedUpdateInput>
    /**
     * Choose, which ApprovalInstance to update.
     */
    where: ApprovalInstanceWhereUniqueInput
  }

  /**
   * ApprovalInstance updateMany
   */
  export type ApprovalInstanceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApprovalInstances.
     */
    data: XOR<ApprovalInstanceUpdateManyMutationInput, ApprovalInstanceUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalInstances to update
     */
    where?: ApprovalInstanceWhereInput
    /**
     * Limit how many ApprovalInstances to update.
     */
    limit?: number
  }

  /**
   * ApprovalInstance updateManyAndReturn
   */
  export type ApprovalInstanceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * The data used to update ApprovalInstances.
     */
    data: XOR<ApprovalInstanceUpdateManyMutationInput, ApprovalInstanceUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalInstances to update
     */
    where?: ApprovalInstanceWhereInput
    /**
     * Limit how many ApprovalInstances to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalInstance upsert
   */
  export type ApprovalInstanceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceInclude<ExtArgs> | null
    /**
     * The filter to search for the ApprovalInstance to update in case it exists.
     */
    where: ApprovalInstanceWhereUniqueInput
    /**
     * In case the ApprovalInstance found by the `where` argument doesn't exist, create a new ApprovalInstance with this data.
     */
    create: XOR<ApprovalInstanceCreateInput, ApprovalInstanceUncheckedCreateInput>
    /**
     * In case the ApprovalInstance was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApprovalInstanceUpdateInput, ApprovalInstanceUncheckedUpdateInput>
  }

  /**
   * ApprovalInstance delete
   */
  export type ApprovalInstanceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceInclude<ExtArgs> | null
    /**
     * Filter which ApprovalInstance to delete.
     */
    where: ApprovalInstanceWhereUniqueInput
  }

  /**
   * ApprovalInstance deleteMany
   */
  export type ApprovalInstanceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalInstances to delete
     */
    where?: ApprovalInstanceWhereInput
    /**
     * Limit how many ApprovalInstances to delete.
     */
    limit?: number
  }

  /**
   * ApprovalInstance.nodeInstances
   */
  export type ApprovalInstance$nodeInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceInclude<ExtArgs> | null
    where?: ApprovalNodeInstanceWhereInput
    orderBy?: ApprovalNodeInstanceOrderByWithRelationInput | ApprovalNodeInstanceOrderByWithRelationInput[]
    cursor?: ApprovalNodeInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalNodeInstanceScalarFieldEnum | ApprovalNodeInstanceScalarFieldEnum[]
  }

  /**
   * ApprovalInstance.approvalTasks
   */
  export type ApprovalInstance$approvalTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskInclude<ExtArgs> | null
    where?: ApprovalTaskWhereInput
    orderBy?: ApprovalTaskOrderByWithRelationInput | ApprovalTaskOrderByWithRelationInput[]
    cursor?: ApprovalTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalTaskScalarFieldEnum | ApprovalTaskScalarFieldEnum[]
  }

  /**
   * ApprovalInstance.callbackRetries
   */
  export type ApprovalInstance$callbackRetriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    where?: CallbackRetryQueueWhereInput
    orderBy?: CallbackRetryQueueOrderByWithRelationInput | CallbackRetryQueueOrderByWithRelationInput[]
    cursor?: CallbackRetryQueueWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CallbackRetryQueueScalarFieldEnum | CallbackRetryQueueScalarFieldEnum[]
  }

  /**
   * ApprovalInstance.reminderQueues
   */
  export type ApprovalInstance$reminderQueuesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    where?: ReminderQueueWhereInput
    orderBy?: ReminderQueueOrderByWithRelationInput | ReminderQueueOrderByWithRelationInput[]
    cursor?: ReminderQueueWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ReminderQueueScalarFieldEnum | ReminderQueueScalarFieldEnum[]
  }

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


  /**
   * Model ApprovalNodeInstance
   */

  export type AggregateApprovalNodeInstance = {
    _count: ApprovalNodeInstanceCountAggregateOutputType | null
    _avg: ApprovalNodeInstanceAvgAggregateOutputType | null
    _sum: ApprovalNodeInstanceSumAggregateOutputType | null
    _min: ApprovalNodeInstanceMinAggregateOutputType | null
    _max: ApprovalNodeInstanceMaxAggregateOutputType | null
  }

  export type ApprovalNodeInstanceAvgAggregateOutputType = {
    executionCount: number | null
  }

  export type ApprovalNodeInstanceSumAggregateOutputType = {
    executionCount: number | null
  }

  export type ApprovalNodeInstanceMinAggregateOutputType = {
    id: string | null
    instanceId: string | null
    nodeId: string | null
    nodeName: string | null
    nodeType: string | null
    status: $Enums.NodeStatus | null
    approvalMode: string | null
    executionCount: number | null
    startTime: Date | null
    endTime: Date | null
  }

  export type ApprovalNodeInstanceMaxAggregateOutputType = {
    id: string | null
    instanceId: string | null
    nodeId: string | null
    nodeName: string | null
    nodeType: string | null
    status: $Enums.NodeStatus | null
    approvalMode: string | null
    executionCount: number | null
    startTime: Date | null
    endTime: Date | null
  }

  export type ApprovalNodeInstanceCountAggregateOutputType = {
    id: number
    instanceId: number
    nodeId: number
    nodeName: number
    nodeType: number
    status: number
    assignees: number
    approvalMode: number
    executionCount: number
    result: number
    startTime: number
    endTime: number
    _all: number
  }


  export type ApprovalNodeInstanceAvgAggregateInputType = {
    executionCount?: true
  }

  export type ApprovalNodeInstanceSumAggregateInputType = {
    executionCount?: true
  }

  export type ApprovalNodeInstanceMinAggregateInputType = {
    id?: true
    instanceId?: true
    nodeId?: true
    nodeName?: true
    nodeType?: true
    status?: true
    approvalMode?: true
    executionCount?: true
    startTime?: true
    endTime?: true
  }

  export type ApprovalNodeInstanceMaxAggregateInputType = {
    id?: true
    instanceId?: true
    nodeId?: true
    nodeName?: true
    nodeType?: true
    status?: true
    approvalMode?: true
    executionCount?: true
    startTime?: true
    endTime?: true
  }

  export type ApprovalNodeInstanceCountAggregateInputType = {
    id?: true
    instanceId?: true
    nodeId?: true
    nodeName?: true
    nodeType?: true
    status?: true
    assignees?: true
    approvalMode?: true
    executionCount?: true
    result?: true
    startTime?: true
    endTime?: true
    _all?: true
  }

  export type ApprovalNodeInstanceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalNodeInstance to aggregate.
     */
    where?: ApprovalNodeInstanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalNodeInstances to fetch.
     */
    orderBy?: ApprovalNodeInstanceOrderByWithRelationInput | ApprovalNodeInstanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ApprovalNodeInstanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalNodeInstances 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` ApprovalNodeInstances.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ApprovalNodeInstances
    **/
    _count?: true | ApprovalNodeInstanceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ApprovalNodeInstanceAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ApprovalNodeInstanceSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ApprovalNodeInstanceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ApprovalNodeInstanceMaxAggregateInputType
  }

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




  export type ApprovalNodeInstanceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalNodeInstanceWhereInput
    orderBy?: ApprovalNodeInstanceOrderByWithAggregationInput | ApprovalNodeInstanceOrderByWithAggregationInput[]
    by: ApprovalNodeInstanceScalarFieldEnum[] | ApprovalNodeInstanceScalarFieldEnum
    having?: ApprovalNodeInstanceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApprovalNodeInstanceCountAggregateInputType | true
    _avg?: ApprovalNodeInstanceAvgAggregateInputType
    _sum?: ApprovalNodeInstanceSumAggregateInputType
    _min?: ApprovalNodeInstanceMinAggregateInputType
    _max?: ApprovalNodeInstanceMaxAggregateInputType
  }

  export type ApprovalNodeInstanceGroupByOutputType = {
    id: string
    instanceId: string
    nodeId: string
    nodeName: string
    nodeType: string
    status: $Enums.NodeStatus
    assignees: string[]
    approvalMode: string | null
    executionCount: number
    result: JsonValue | null
    startTime: Date
    endTime: Date | null
    _count: ApprovalNodeInstanceCountAggregateOutputType | null
    _avg: ApprovalNodeInstanceAvgAggregateOutputType | null
    _sum: ApprovalNodeInstanceSumAggregateOutputType | null
    _min: ApprovalNodeInstanceMinAggregateOutputType | null
    _max: ApprovalNodeInstanceMaxAggregateOutputType | null
  }

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


  export type ApprovalNodeInstanceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    nodeId?: boolean
    nodeName?: boolean
    nodeType?: boolean
    status?: boolean
    assignees?: boolean
    approvalMode?: boolean
    executionCount?: boolean
    result?: boolean
    startTime?: boolean
    endTime?: boolean
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
    approvalTasks?: boolean | ApprovalNodeInstance$approvalTasksArgs<ExtArgs>
    _count?: boolean | ApprovalNodeInstanceCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalNodeInstance"]>

  export type ApprovalNodeInstanceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    nodeId?: boolean
    nodeName?: boolean
    nodeType?: boolean
    status?: boolean
    assignees?: boolean
    approvalMode?: boolean
    executionCount?: boolean
    result?: boolean
    startTime?: boolean
    endTime?: boolean
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalNodeInstance"]>

  export type ApprovalNodeInstanceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    nodeId?: boolean
    nodeName?: boolean
    nodeType?: boolean
    status?: boolean
    assignees?: boolean
    approvalMode?: boolean
    executionCount?: boolean
    result?: boolean
    startTime?: boolean
    endTime?: boolean
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalNodeInstance"]>

  export type ApprovalNodeInstanceSelectScalar = {
    id?: boolean
    instanceId?: boolean
    nodeId?: boolean
    nodeName?: boolean
    nodeType?: boolean
    status?: boolean
    assignees?: boolean
    approvalMode?: boolean
    executionCount?: boolean
    result?: boolean
    startTime?: boolean
    endTime?: boolean
  }

  export type ApprovalNodeInstanceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "instanceId" | "nodeId" | "nodeName" | "nodeType" | "status" | "assignees" | "approvalMode" | "executionCount" | "result" | "startTime" | "endTime", ExtArgs["result"]["approvalNodeInstance"]>
  export type ApprovalNodeInstanceInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
    approvalTasks?: boolean | ApprovalNodeInstance$approvalTasksArgs<ExtArgs>
    _count?: boolean | ApprovalNodeInstanceCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ApprovalNodeInstanceIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }
  export type ApprovalNodeInstanceIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }

  export type $ApprovalNodeInstancePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApprovalNodeInstance"
    objects: {
      instance: Prisma.$ApprovalInstancePayload<ExtArgs>
      approvalTasks: Prisma.$ApprovalTaskPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      instanceId: string
      nodeId: string
      nodeName: string
      nodeType: string
      status: $Enums.NodeStatus
      assignees: string[]
      approvalMode: string | null
      executionCount: number
      result: Prisma.JsonValue | null
      startTime: Date
      endTime: Date | null
    }, ExtArgs["result"]["approvalNodeInstance"]>
    composites: {}
  }

  type ApprovalNodeInstanceGetPayload<S extends boolean | null | undefined | ApprovalNodeInstanceDefaultArgs> = $Result.GetResult<Prisma.$ApprovalNodeInstancePayload, S>

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

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

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

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

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

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

    /**
     * Create a ApprovalNodeInstance.
     * @param {ApprovalNodeInstanceCreateArgs} args - Arguments to create a ApprovalNodeInstance.
     * @example
     * // Create one ApprovalNodeInstance
     * const ApprovalNodeInstance = await prisma.approvalNodeInstance.create({
     *   data: {
     *     // ... data to create a ApprovalNodeInstance
     *   }
     * })
     * 
     */
    create<T extends ApprovalNodeInstanceCreateArgs>(args: SelectSubset<T, ApprovalNodeInstanceCreateArgs<ExtArgs>>): Prisma__ApprovalNodeInstanceClient<$Result.GetResult<Prisma.$ApprovalNodeInstancePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many ApprovalNodeInstances and returns the data saved in the database.
     * @param {ApprovalNodeInstanceCreateManyAndReturnArgs} args - Arguments to create many ApprovalNodeInstances.
     * @example
     * // Create many ApprovalNodeInstances
     * const approvalNodeInstance = await prisma.approvalNodeInstance.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApprovalNodeInstances and only return the `id`
     * const approvalNodeInstanceWithIdOnly = await prisma.approvalNodeInstance.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 ApprovalNodeInstanceCreateManyAndReturnArgs>(args?: SelectSubset<T, ApprovalNodeInstanceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalNodeInstancePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApprovalNodeInstance.
     * @param {ApprovalNodeInstanceDeleteArgs} args - Arguments to delete one ApprovalNodeInstance.
     * @example
     * // Delete one ApprovalNodeInstance
     * const ApprovalNodeInstance = await prisma.approvalNodeInstance.delete({
     *   where: {
     *     // ... filter to delete one ApprovalNodeInstance
     *   }
     * })
     * 
     */
    delete<T extends ApprovalNodeInstanceDeleteArgs>(args: SelectSubset<T, ApprovalNodeInstanceDeleteArgs<ExtArgs>>): Prisma__ApprovalNodeInstanceClient<$Result.GetResult<Prisma.$ApprovalNodeInstancePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

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

    /**
     * Update zero or more ApprovalNodeInstances and returns the data updated in the database.
     * @param {ApprovalNodeInstanceUpdateManyAndReturnArgs} args - Arguments to update many ApprovalNodeInstances.
     * @example
     * // Update many ApprovalNodeInstances
     * const approvalNodeInstance = await prisma.approvalNodeInstance.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApprovalNodeInstances and only return the `id`
     * const approvalNodeInstanceWithIdOnly = await prisma.approvalNodeInstance.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 ApprovalNodeInstanceUpdateManyAndReturnArgs>(args: SelectSubset<T, ApprovalNodeInstanceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalNodeInstancePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

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

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

  /**
   * The delegate class that acts as a "Promise-like" for ApprovalNodeInstance.
   * 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__ApprovalNodeInstanceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    instance<T extends ApprovalInstanceDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalInstanceDefaultArgs<ExtArgs>>): Prisma__ApprovalInstanceClient<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    approvalTasks<T extends ApprovalNodeInstance$approvalTasksArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalNodeInstance$approvalTasksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApprovalNodeInstance model
   */
  interface ApprovalNodeInstanceFieldRefs {
    readonly id: FieldRef<"ApprovalNodeInstance", 'String'>
    readonly instanceId: FieldRef<"ApprovalNodeInstance", 'String'>
    readonly nodeId: FieldRef<"ApprovalNodeInstance", 'String'>
    readonly nodeName: FieldRef<"ApprovalNodeInstance", 'String'>
    readonly nodeType: FieldRef<"ApprovalNodeInstance", 'String'>
    readonly status: FieldRef<"ApprovalNodeInstance", 'NodeStatus'>
    readonly assignees: FieldRef<"ApprovalNodeInstance", 'String[]'>
    readonly approvalMode: FieldRef<"ApprovalNodeInstance", 'String'>
    readonly executionCount: FieldRef<"ApprovalNodeInstance", 'Int'>
    readonly result: FieldRef<"ApprovalNodeInstance", 'Json'>
    readonly startTime: FieldRef<"ApprovalNodeInstance", 'DateTime'>
    readonly endTime: FieldRef<"ApprovalNodeInstance", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ApprovalNodeInstance findUnique
   */
  export type ApprovalNodeInstanceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalNodeInstance to fetch.
     */
    where: ApprovalNodeInstanceWhereUniqueInput
  }

  /**
   * ApprovalNodeInstance findUniqueOrThrow
   */
  export type ApprovalNodeInstanceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalNodeInstance to fetch.
     */
    where: ApprovalNodeInstanceWhereUniqueInput
  }

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

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

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

  /**
   * ApprovalNodeInstance create
   */
  export type ApprovalNodeInstanceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceInclude<ExtArgs> | null
    /**
     * The data needed to create a ApprovalNodeInstance.
     */
    data: XOR<ApprovalNodeInstanceCreateInput, ApprovalNodeInstanceUncheckedCreateInput>
  }

  /**
   * ApprovalNodeInstance createMany
   */
  export type ApprovalNodeInstanceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApprovalNodeInstances.
     */
    data: ApprovalNodeInstanceCreateManyInput | ApprovalNodeInstanceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalNodeInstance createManyAndReturn
   */
  export type ApprovalNodeInstanceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * The data used to create many ApprovalNodeInstances.
     */
    data: ApprovalNodeInstanceCreateManyInput | ApprovalNodeInstanceCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalNodeInstance update
   */
  export type ApprovalNodeInstanceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceInclude<ExtArgs> | null
    /**
     * The data needed to update a ApprovalNodeInstance.
     */
    data: XOR<ApprovalNodeInstanceUpdateInput, ApprovalNodeInstanceUncheckedUpdateInput>
    /**
     * Choose, which ApprovalNodeInstance to update.
     */
    where: ApprovalNodeInstanceWhereUniqueInput
  }

  /**
   * ApprovalNodeInstance updateMany
   */
  export type ApprovalNodeInstanceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApprovalNodeInstances.
     */
    data: XOR<ApprovalNodeInstanceUpdateManyMutationInput, ApprovalNodeInstanceUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalNodeInstances to update
     */
    where?: ApprovalNodeInstanceWhereInput
    /**
     * Limit how many ApprovalNodeInstances to update.
     */
    limit?: number
  }

  /**
   * ApprovalNodeInstance updateManyAndReturn
   */
  export type ApprovalNodeInstanceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * The data used to update ApprovalNodeInstances.
     */
    data: XOR<ApprovalNodeInstanceUpdateManyMutationInput, ApprovalNodeInstanceUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalNodeInstances to update
     */
    where?: ApprovalNodeInstanceWhereInput
    /**
     * Limit how many ApprovalNodeInstances to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalNodeInstance upsert
   */
  export type ApprovalNodeInstanceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceInclude<ExtArgs> | null
    /**
     * The filter to search for the ApprovalNodeInstance to update in case it exists.
     */
    where: ApprovalNodeInstanceWhereUniqueInput
    /**
     * In case the ApprovalNodeInstance found by the `where` argument doesn't exist, create a new ApprovalNodeInstance with this data.
     */
    create: XOR<ApprovalNodeInstanceCreateInput, ApprovalNodeInstanceUncheckedCreateInput>
    /**
     * In case the ApprovalNodeInstance was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApprovalNodeInstanceUpdateInput, ApprovalNodeInstanceUncheckedUpdateInput>
  }

  /**
   * ApprovalNodeInstance delete
   */
  export type ApprovalNodeInstanceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalNodeInstance
     */
    select?: ApprovalNodeInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalNodeInstance
     */
    omit?: ApprovalNodeInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalNodeInstanceInclude<ExtArgs> | null
    /**
     * Filter which ApprovalNodeInstance to delete.
     */
    where: ApprovalNodeInstanceWhereUniqueInput
  }

  /**
   * ApprovalNodeInstance deleteMany
   */
  export type ApprovalNodeInstanceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalNodeInstances to delete
     */
    where?: ApprovalNodeInstanceWhereInput
    /**
     * Limit how many ApprovalNodeInstances to delete.
     */
    limit?: number
  }

  /**
   * ApprovalNodeInstance.approvalTasks
   */
  export type ApprovalNodeInstance$approvalTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskInclude<ExtArgs> | null
    where?: ApprovalTaskWhereInput
    orderBy?: ApprovalTaskOrderByWithRelationInput | ApprovalTaskOrderByWithRelationInput[]
    cursor?: ApprovalTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalTaskScalarFieldEnum | ApprovalTaskScalarFieldEnum[]
  }

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


  /**
   * Model ApprovalTask
   */

  export type AggregateApprovalTask = {
    _count: ApprovalTaskCountAggregateOutputType | null
    _avg: ApprovalTaskAvgAggregateOutputType | null
    _sum: ApprovalTaskSumAggregateOutputType | null
    _min: ApprovalTaskMinAggregateOutputType | null
    _max: ApprovalTaskMaxAggregateOutputType | null
  }

  export type ApprovalTaskAvgAggregateOutputType = {
    version: number | null
    priority: number | null
    reminderCount: number | null
  }

  export type ApprovalTaskSumAggregateOutputType = {
    version: number | null
    priority: number | null
    reminderCount: number | null
  }

  export type ApprovalTaskMinAggregateOutputType = {
    id: string | null
    instanceId: string | null
    nodeInstanceId: string | null
    name: string | null
    description: string | null
    type: $Enums.ApprovalTaskType | null
    assignee: string | null
    owner: string | null
    status: $Enums.ApprovalTaskStatus | null
    version: number | null
    priority: number | null
    dueDate: Date | null
    reminderCount: number | null
    lastReminderAt: Date | null
    autoApproved: boolean | null
    autoApproveReason: string | null
    isDelegated: boolean | null
    delegatedFrom: string | null
    delegatedAt: Date | null
    delegationReason: string | null
    delegationType: $Enums.DelegationType | null
    delegationState: string | null
    createTime: Date | null
    claimTime: Date | null
    endTime: Date | null
  }

  export type ApprovalTaskMaxAggregateOutputType = {
    id: string | null
    instanceId: string | null
    nodeInstanceId: string | null
    name: string | null
    description: string | null
    type: $Enums.ApprovalTaskType | null
    assignee: string | null
    owner: string | null
    status: $Enums.ApprovalTaskStatus | null
    version: number | null
    priority: number | null
    dueDate: Date | null
    reminderCount: number | null
    lastReminderAt: Date | null
    autoApproved: boolean | null
    autoApproveReason: string | null
    isDelegated: boolean | null
    delegatedFrom: string | null
    delegatedAt: Date | null
    delegationReason: string | null
    delegationType: $Enums.DelegationType | null
    delegationState: string | null
    createTime: Date | null
    claimTime: Date | null
    endTime: Date | null
  }

  export type ApprovalTaskCountAggregateOutputType = {
    id: number
    instanceId: number
    nodeInstanceId: number
    name: number
    description: number
    type: number
    assignee: number
    candidateUsers: number
    candidateGroups: number
    owner: number
    status: number
    version: number
    formData: number
    priority: number
    dueDate: number
    reminderCount: number
    lastReminderAt: number
    autoApproved: number
    autoApproveReason: number
    isDelegated: number
    delegatedFrom: number
    delegatedAt: number
    delegationReason: number
    delegationType: number
    delegationState: number
    createTime: number
    claimTime: number
    endTime: number
    _all: number
  }


  export type ApprovalTaskAvgAggregateInputType = {
    version?: true
    priority?: true
    reminderCount?: true
  }

  export type ApprovalTaskSumAggregateInputType = {
    version?: true
    priority?: true
    reminderCount?: true
  }

  export type ApprovalTaskMinAggregateInputType = {
    id?: true
    instanceId?: true
    nodeInstanceId?: true
    name?: true
    description?: true
    type?: true
    assignee?: true
    owner?: true
    status?: true
    version?: true
    priority?: true
    dueDate?: true
    reminderCount?: true
    lastReminderAt?: true
    autoApproved?: true
    autoApproveReason?: true
    isDelegated?: true
    delegatedFrom?: true
    delegatedAt?: true
    delegationReason?: true
    delegationType?: true
    delegationState?: true
    createTime?: true
    claimTime?: true
    endTime?: true
  }

  export type ApprovalTaskMaxAggregateInputType = {
    id?: true
    instanceId?: true
    nodeInstanceId?: true
    name?: true
    description?: true
    type?: true
    assignee?: true
    owner?: true
    status?: true
    version?: true
    priority?: true
    dueDate?: true
    reminderCount?: true
    lastReminderAt?: true
    autoApproved?: true
    autoApproveReason?: true
    isDelegated?: true
    delegatedFrom?: true
    delegatedAt?: true
    delegationReason?: true
    delegationType?: true
    delegationState?: true
    createTime?: true
    claimTime?: true
    endTime?: true
  }

  export type ApprovalTaskCountAggregateInputType = {
    id?: true
    instanceId?: true
    nodeInstanceId?: true
    name?: true
    description?: true
    type?: true
    assignee?: true
    candidateUsers?: true
    candidateGroups?: true
    owner?: true
    status?: true
    version?: true
    formData?: true
    priority?: true
    dueDate?: true
    reminderCount?: true
    lastReminderAt?: true
    autoApproved?: true
    autoApproveReason?: true
    isDelegated?: true
    delegatedFrom?: true
    delegatedAt?: true
    delegationReason?: true
    delegationType?: true
    delegationState?: true
    createTime?: true
    claimTime?: true
    endTime?: true
    _all?: true
  }

  export type ApprovalTaskAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalTask to aggregate.
     */
    where?: ApprovalTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalTasks to fetch.
     */
    orderBy?: ApprovalTaskOrderByWithRelationInput | ApprovalTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ApprovalTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalTasks 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` ApprovalTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ApprovalTasks
    **/
    _count?: true | ApprovalTaskCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ApprovalTaskAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ApprovalTaskSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ApprovalTaskMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ApprovalTaskMaxAggregateInputType
  }

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




  export type ApprovalTaskGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalTaskWhereInput
    orderBy?: ApprovalTaskOrderByWithAggregationInput | ApprovalTaskOrderByWithAggregationInput[]
    by: ApprovalTaskScalarFieldEnum[] | ApprovalTaskScalarFieldEnum
    having?: ApprovalTaskScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApprovalTaskCountAggregateInputType | true
    _avg?: ApprovalTaskAvgAggregateInputType
    _sum?: ApprovalTaskSumAggregateInputType
    _min?: ApprovalTaskMinAggregateInputType
    _max?: ApprovalTaskMaxAggregateInputType
  }

  export type ApprovalTaskGroupByOutputType = {
    id: string
    instanceId: string
    nodeInstanceId: string
    name: string
    description: string | null
    type: $Enums.ApprovalTaskType
    assignee: string | null
    candidateUsers: string[]
    candidateGroups: string[]
    owner: string | null
    status: $Enums.ApprovalTaskStatus
    version: number
    formData: JsonValue | null
    priority: number
    dueDate: Date | null
    reminderCount: number
    lastReminderAt: Date | null
    autoApproved: boolean
    autoApproveReason: string | null
    isDelegated: boolean
    delegatedFrom: string | null
    delegatedAt: Date | null
    delegationReason: string | null
    delegationType: $Enums.DelegationType | null
    delegationState: string | null
    createTime: Date
    claimTime: Date | null
    endTime: Date | null
    _count: ApprovalTaskCountAggregateOutputType | null
    _avg: ApprovalTaskAvgAggregateOutputType | null
    _sum: ApprovalTaskSumAggregateOutputType | null
    _min: ApprovalTaskMinAggregateOutputType | null
    _max: ApprovalTaskMaxAggregateOutputType | null
  }

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


  export type ApprovalTaskSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    nodeInstanceId?: boolean
    name?: boolean
    description?: boolean
    type?: boolean
    assignee?: boolean
    candidateUsers?: boolean
    candidateGroups?: boolean
    owner?: boolean
    status?: boolean
    version?: boolean
    formData?: boolean
    priority?: boolean
    dueDate?: boolean
    reminderCount?: boolean
    lastReminderAt?: boolean
    autoApproved?: boolean
    autoApproveReason?: boolean
    isDelegated?: boolean
    delegatedFrom?: boolean
    delegatedAt?: boolean
    delegationReason?: boolean
    delegationType?: boolean
    delegationState?: boolean
    createTime?: boolean
    claimTime?: boolean
    endTime?: boolean
    actionLogs?: boolean | ApprovalTask$actionLogsArgs<ExtArgs>
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
    nodeInstance?: boolean | ApprovalNodeInstanceDefaultArgs<ExtArgs>
    reminderQueues?: boolean | ApprovalTask$reminderQueuesArgs<ExtArgs>
    _count?: boolean | ApprovalTaskCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalTask"]>

  export type ApprovalTaskSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    nodeInstanceId?: boolean
    name?: boolean
    description?: boolean
    type?: boolean
    assignee?: boolean
    candidateUsers?: boolean
    candidateGroups?: boolean
    owner?: boolean
    status?: boolean
    version?: boolean
    formData?: boolean
    priority?: boolean
    dueDate?: boolean
    reminderCount?: boolean
    lastReminderAt?: boolean
    autoApproved?: boolean
    autoApproveReason?: boolean
    isDelegated?: boolean
    delegatedFrom?: boolean
    delegatedAt?: boolean
    delegationReason?: boolean
    delegationType?: boolean
    delegationState?: boolean
    createTime?: boolean
    claimTime?: boolean
    endTime?: boolean
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
    nodeInstance?: boolean | ApprovalNodeInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalTask"]>

  export type ApprovalTaskSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    nodeInstanceId?: boolean
    name?: boolean
    description?: boolean
    type?: boolean
    assignee?: boolean
    candidateUsers?: boolean
    candidateGroups?: boolean
    owner?: boolean
    status?: boolean
    version?: boolean
    formData?: boolean
    priority?: boolean
    dueDate?: boolean
    reminderCount?: boolean
    lastReminderAt?: boolean
    autoApproved?: boolean
    autoApproveReason?: boolean
    isDelegated?: boolean
    delegatedFrom?: boolean
    delegatedAt?: boolean
    delegationReason?: boolean
    delegationType?: boolean
    delegationState?: boolean
    createTime?: boolean
    claimTime?: boolean
    endTime?: boolean
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
    nodeInstance?: boolean | ApprovalNodeInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalTask"]>

  export type ApprovalTaskSelectScalar = {
    id?: boolean
    instanceId?: boolean
    nodeInstanceId?: boolean
    name?: boolean
    description?: boolean
    type?: boolean
    assignee?: boolean
    candidateUsers?: boolean
    candidateGroups?: boolean
    owner?: boolean
    status?: boolean
    version?: boolean
    formData?: boolean
    priority?: boolean
    dueDate?: boolean
    reminderCount?: boolean
    lastReminderAt?: boolean
    autoApproved?: boolean
    autoApproveReason?: boolean
    isDelegated?: boolean
    delegatedFrom?: boolean
    delegatedAt?: boolean
    delegationReason?: boolean
    delegationType?: boolean
    delegationState?: boolean
    createTime?: boolean
    claimTime?: boolean
    endTime?: boolean
  }

  export type ApprovalTaskOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "instanceId" | "nodeInstanceId" | "name" | "description" | "type" | "assignee" | "candidateUsers" | "candidateGroups" | "owner" | "status" | "version" | "formData" | "priority" | "dueDate" | "reminderCount" | "lastReminderAt" | "autoApproved" | "autoApproveReason" | "isDelegated" | "delegatedFrom" | "delegatedAt" | "delegationReason" | "delegationType" | "delegationState" | "createTime" | "claimTime" | "endTime", ExtArgs["result"]["approvalTask"]>
  export type ApprovalTaskInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    actionLogs?: boolean | ApprovalTask$actionLogsArgs<ExtArgs>
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
    nodeInstance?: boolean | ApprovalNodeInstanceDefaultArgs<ExtArgs>
    reminderQueues?: boolean | ApprovalTask$reminderQueuesArgs<ExtArgs>
    _count?: boolean | ApprovalTaskCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ApprovalTaskIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
    nodeInstance?: boolean | ApprovalNodeInstanceDefaultArgs<ExtArgs>
  }
  export type ApprovalTaskIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
    nodeInstance?: boolean | ApprovalNodeInstanceDefaultArgs<ExtArgs>
  }

  export type $ApprovalTaskPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApprovalTask"
    objects: {
      actionLogs: Prisma.$ApprovalTaskLogPayload<ExtArgs>[]
      instance: Prisma.$ApprovalInstancePayload<ExtArgs>
      nodeInstance: Prisma.$ApprovalNodeInstancePayload<ExtArgs>
      reminderQueues: Prisma.$ReminderQueuePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      instanceId: string
      nodeInstanceId: string
      name: string
      description: string | null
      type: $Enums.ApprovalTaskType
      assignee: string | null
      candidateUsers: string[]
      candidateGroups: string[]
      owner: string | null
      status: $Enums.ApprovalTaskStatus
      version: number
      formData: Prisma.JsonValue | null
      priority: number
      dueDate: Date | null
      reminderCount: number
      lastReminderAt: Date | null
      autoApproved: boolean
      autoApproveReason: string | null
      isDelegated: boolean
      delegatedFrom: string | null
      delegatedAt: Date | null
      delegationReason: string | null
      delegationType: $Enums.DelegationType | null
      delegationState: string | null
      createTime: Date
      claimTime: Date | null
      endTime: Date | null
    }, ExtArgs["result"]["approvalTask"]>
    composites: {}
  }

  type ApprovalTaskGetPayload<S extends boolean | null | undefined | ApprovalTaskDefaultArgs> = $Result.GetResult<Prisma.$ApprovalTaskPayload, S>

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

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

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

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

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

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

    /**
     * Create a ApprovalTask.
     * @param {ApprovalTaskCreateArgs} args - Arguments to create a ApprovalTask.
     * @example
     * // Create one ApprovalTask
     * const ApprovalTask = await prisma.approvalTask.create({
     *   data: {
     *     // ... data to create a ApprovalTask
     *   }
     * })
     * 
     */
    create<T extends ApprovalTaskCreateArgs>(args: SelectSubset<T, ApprovalTaskCreateArgs<ExtArgs>>): Prisma__ApprovalTaskClient<$Result.GetResult<Prisma.$ApprovalTaskPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many ApprovalTasks and returns the data saved in the database.
     * @param {ApprovalTaskCreateManyAndReturnArgs} args - Arguments to create many ApprovalTasks.
     * @example
     * // Create many ApprovalTasks
     * const approvalTask = await prisma.approvalTask.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApprovalTasks and only return the `id`
     * const approvalTaskWithIdOnly = await prisma.approvalTask.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 ApprovalTaskCreateManyAndReturnArgs>(args?: SelectSubset<T, ApprovalTaskCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApprovalTask.
     * @param {ApprovalTaskDeleteArgs} args - Arguments to delete one ApprovalTask.
     * @example
     * // Delete one ApprovalTask
     * const ApprovalTask = await prisma.approvalTask.delete({
     *   where: {
     *     // ... filter to delete one ApprovalTask
     *   }
     * })
     * 
     */
    delete<T extends ApprovalTaskDeleteArgs>(args: SelectSubset<T, ApprovalTaskDeleteArgs<ExtArgs>>): Prisma__ApprovalTaskClient<$Result.GetResult<Prisma.$ApprovalTaskPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

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

    /**
     * Update zero or more ApprovalTasks and returns the data updated in the database.
     * @param {ApprovalTaskUpdateManyAndReturnArgs} args - Arguments to update many ApprovalTasks.
     * @example
     * // Update many ApprovalTasks
     * const approvalTask = await prisma.approvalTask.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApprovalTasks and only return the `id`
     * const approvalTaskWithIdOnly = await prisma.approvalTask.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 ApprovalTaskUpdateManyAndReturnArgs>(args: SelectSubset<T, ApprovalTaskUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

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

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

  /**
   * The delegate class that acts as a "Promise-like" for ApprovalTask.
   * 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__ApprovalTaskClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    actionLogs<T extends ApprovalTask$actionLogsArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalTask$actionLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    instance<T extends ApprovalInstanceDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalInstanceDefaultArgs<ExtArgs>>): Prisma__ApprovalInstanceClient<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    nodeInstance<T extends ApprovalNodeInstanceDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalNodeInstanceDefaultArgs<ExtArgs>>): Prisma__ApprovalNodeInstanceClient<$Result.GetResult<Prisma.$ApprovalNodeInstancePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    reminderQueues<T extends ApprovalTask$reminderQueuesArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalTask$reminderQueuesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApprovalTask model
   */
  interface ApprovalTaskFieldRefs {
    readonly id: FieldRef<"ApprovalTask", 'String'>
    readonly instanceId: FieldRef<"ApprovalTask", 'String'>
    readonly nodeInstanceId: FieldRef<"ApprovalTask", 'String'>
    readonly name: FieldRef<"ApprovalTask", 'String'>
    readonly description: FieldRef<"ApprovalTask", 'String'>
    readonly type: FieldRef<"ApprovalTask", 'ApprovalTaskType'>
    readonly assignee: FieldRef<"ApprovalTask", 'String'>
    readonly candidateUsers: FieldRef<"ApprovalTask", 'String[]'>
    readonly candidateGroups: FieldRef<"ApprovalTask", 'String[]'>
    readonly owner: FieldRef<"ApprovalTask", 'String'>
    readonly status: FieldRef<"ApprovalTask", 'ApprovalTaskStatus'>
    readonly version: FieldRef<"ApprovalTask", 'Int'>
    readonly formData: FieldRef<"ApprovalTask", 'Json'>
    readonly priority: FieldRef<"ApprovalTask", 'Int'>
    readonly dueDate: FieldRef<"ApprovalTask", 'DateTime'>
    readonly reminderCount: FieldRef<"ApprovalTask", 'Int'>
    readonly lastReminderAt: FieldRef<"ApprovalTask", 'DateTime'>
    readonly autoApproved: FieldRef<"ApprovalTask", 'Boolean'>
    readonly autoApproveReason: FieldRef<"ApprovalTask", 'String'>
    readonly isDelegated: FieldRef<"ApprovalTask", 'Boolean'>
    readonly delegatedFrom: FieldRef<"ApprovalTask", 'String'>
    readonly delegatedAt: FieldRef<"ApprovalTask", 'DateTime'>
    readonly delegationReason: FieldRef<"ApprovalTask", 'String'>
    readonly delegationType: FieldRef<"ApprovalTask", 'DelegationType'>
    readonly delegationState: FieldRef<"ApprovalTask", 'String'>
    readonly createTime: FieldRef<"ApprovalTask", 'DateTime'>
    readonly claimTime: FieldRef<"ApprovalTask", 'DateTime'>
    readonly endTime: FieldRef<"ApprovalTask", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ApprovalTask findUnique
   */
  export type ApprovalTaskFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalTask to fetch.
     */
    where: ApprovalTaskWhereUniqueInput
  }

  /**
   * ApprovalTask findUniqueOrThrow
   */
  export type ApprovalTaskFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalTask to fetch.
     */
    where: ApprovalTaskWhereUniqueInput
  }

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

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

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

  /**
   * ApprovalTask create
   */
  export type ApprovalTaskCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskInclude<ExtArgs> | null
    /**
     * The data needed to create a ApprovalTask.
     */
    data: XOR<ApprovalTaskCreateInput, ApprovalTaskUncheckedCreateInput>
  }

  /**
   * ApprovalTask createMany
   */
  export type ApprovalTaskCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApprovalTasks.
     */
    data: ApprovalTaskCreateManyInput | ApprovalTaskCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalTask createManyAndReturn
   */
  export type ApprovalTaskCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * The data used to create many ApprovalTasks.
     */
    data: ApprovalTaskCreateManyInput | ApprovalTaskCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalTask update
   */
  export type ApprovalTaskUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskInclude<ExtArgs> | null
    /**
     * The data needed to update a ApprovalTask.
     */
    data: XOR<ApprovalTaskUpdateInput, ApprovalTaskUncheckedUpdateInput>
    /**
     * Choose, which ApprovalTask to update.
     */
    where: ApprovalTaskWhereUniqueInput
  }

  /**
   * ApprovalTask updateMany
   */
  export type ApprovalTaskUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApprovalTasks.
     */
    data: XOR<ApprovalTaskUpdateManyMutationInput, ApprovalTaskUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalTasks to update
     */
    where?: ApprovalTaskWhereInput
    /**
     * Limit how many ApprovalTasks to update.
     */
    limit?: number
  }

  /**
   * ApprovalTask updateManyAndReturn
   */
  export type ApprovalTaskUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * The data used to update ApprovalTasks.
     */
    data: XOR<ApprovalTaskUpdateManyMutationInput, ApprovalTaskUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalTasks to update
     */
    where?: ApprovalTaskWhereInput
    /**
     * Limit how many ApprovalTasks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalTask upsert
   */
  export type ApprovalTaskUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskInclude<ExtArgs> | null
    /**
     * The filter to search for the ApprovalTask to update in case it exists.
     */
    where: ApprovalTaskWhereUniqueInput
    /**
     * In case the ApprovalTask found by the `where` argument doesn't exist, create a new ApprovalTask with this data.
     */
    create: XOR<ApprovalTaskCreateInput, ApprovalTaskUncheckedCreateInput>
    /**
     * In case the ApprovalTask was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApprovalTaskUpdateInput, ApprovalTaskUncheckedUpdateInput>
  }

  /**
   * ApprovalTask delete
   */
  export type ApprovalTaskDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTask
     */
    select?: ApprovalTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTask
     */
    omit?: ApprovalTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskInclude<ExtArgs> | null
    /**
     * Filter which ApprovalTask to delete.
     */
    where: ApprovalTaskWhereUniqueInput
  }

  /**
   * ApprovalTask deleteMany
   */
  export type ApprovalTaskDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalTasks to delete
     */
    where?: ApprovalTaskWhereInput
    /**
     * Limit how many ApprovalTasks to delete.
     */
    limit?: number
  }

  /**
   * ApprovalTask.actionLogs
   */
  export type ApprovalTask$actionLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    where?: ApprovalTaskLogWhereInput
    orderBy?: ApprovalTaskLogOrderByWithRelationInput | ApprovalTaskLogOrderByWithRelationInput[]
    cursor?: ApprovalTaskLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalTaskLogScalarFieldEnum | ApprovalTaskLogScalarFieldEnum[]
  }

  /**
   * ApprovalTask.reminderQueues
   */
  export type ApprovalTask$reminderQueuesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    where?: ReminderQueueWhereInput
    orderBy?: ReminderQueueOrderByWithRelationInput | ReminderQueueOrderByWithRelationInput[]
    cursor?: ReminderQueueWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ReminderQueueScalarFieldEnum | ReminderQueueScalarFieldEnum[]
  }

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


  /**
   * Model ApprovalTaskLog
   */

  export type AggregateApprovalTaskLog = {
    _count: ApprovalTaskLogCountAggregateOutputType | null
    _min: ApprovalTaskLogMinAggregateOutputType | null
    _max: ApprovalTaskLogMaxAggregateOutputType | null
  }

  export type ApprovalTaskLogMinAggregateOutputType = {
    id: string | null
    taskId: string | null
    instanceId: string | null
    action: $Enums.ApprovalTaskAction | null
    operatorId: string | null
    comment: string | null
    targetUserId: string | null
    targetNodeId: string | null
    ipAddress: string | null
    userAgent: string | null
    requestId: string | null
    riskLevel: $Enums.RiskLevel | null
    adminReason: string | null
    actionTime: Date | null
  }

  export type ApprovalTaskLogMaxAggregateOutputType = {
    id: string | null
    taskId: string | null
    instanceId: string | null
    action: $Enums.ApprovalTaskAction | null
    operatorId: string | null
    comment: string | null
    targetUserId: string | null
    targetNodeId: string | null
    ipAddress: string | null
    userAgent: string | null
    requestId: string | null
    riskLevel: $Enums.RiskLevel | null
    adminReason: string | null
    actionTime: Date | null
  }

  export type ApprovalTaskLogCountAggregateOutputType = {
    id: number
    taskId: number
    instanceId: number
    action: number
    operatorId: number
    comment: number
    targetUserId: number
    targetNodeId: number
    addSignUsers: number
    formDataChanges: number
    attachments: number
    ipAddress: number
    userAgent: number
    requestId: number
    riskLevel: number
    adminReason: number
    metadata: number
    actionTime: number
    _all: number
  }


  export type ApprovalTaskLogMinAggregateInputType = {
    id?: true
    taskId?: true
    instanceId?: true
    action?: true
    operatorId?: true
    comment?: true
    targetUserId?: true
    targetNodeId?: true
    ipAddress?: true
    userAgent?: true
    requestId?: true
    riskLevel?: true
    adminReason?: true
    actionTime?: true
  }

  export type ApprovalTaskLogMaxAggregateInputType = {
    id?: true
    taskId?: true
    instanceId?: true
    action?: true
    operatorId?: true
    comment?: true
    targetUserId?: true
    targetNodeId?: true
    ipAddress?: true
    userAgent?: true
    requestId?: true
    riskLevel?: true
    adminReason?: true
    actionTime?: true
  }

  export type ApprovalTaskLogCountAggregateInputType = {
    id?: true
    taskId?: true
    instanceId?: true
    action?: true
    operatorId?: true
    comment?: true
    targetUserId?: true
    targetNodeId?: true
    addSignUsers?: true
    formDataChanges?: true
    attachments?: true
    ipAddress?: true
    userAgent?: true
    requestId?: true
    riskLevel?: true
    adminReason?: true
    metadata?: true
    actionTime?: true
    _all?: true
  }

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

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




  export type ApprovalTaskLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalTaskLogWhereInput
    orderBy?: ApprovalTaskLogOrderByWithAggregationInput | ApprovalTaskLogOrderByWithAggregationInput[]
    by: ApprovalTaskLogScalarFieldEnum[] | ApprovalTaskLogScalarFieldEnum
    having?: ApprovalTaskLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApprovalTaskLogCountAggregateInputType | true
    _min?: ApprovalTaskLogMinAggregateInputType
    _max?: ApprovalTaskLogMaxAggregateInputType
  }

  export type ApprovalTaskLogGroupByOutputType = {
    id: string
    taskId: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    operatorId: string
    comment: string | null
    targetUserId: string | null
    targetNodeId: string | null
    addSignUsers: string[]
    formDataChanges: JsonValue | null
    attachments: JsonValue | null
    ipAddress: string | null
    userAgent: string | null
    requestId: string | null
    riskLevel: $Enums.RiskLevel | null
    adminReason: string | null
    metadata: JsonValue | null
    actionTime: Date
    _count: ApprovalTaskLogCountAggregateOutputType | null
    _min: ApprovalTaskLogMinAggregateOutputType | null
    _max: ApprovalTaskLogMaxAggregateOutputType | null
  }

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


  export type ApprovalTaskLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    instanceId?: boolean
    action?: boolean
    operatorId?: boolean
    comment?: boolean
    targetUserId?: boolean
    targetNodeId?: boolean
    addSignUsers?: boolean
    formDataChanges?: boolean
    attachments?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    requestId?: boolean
    riskLevel?: boolean
    adminReason?: boolean
    metadata?: boolean
    actionTime?: boolean
    operator?: boolean | UserDefaultArgs<ExtArgs>
    targetUser?: boolean | ApprovalTaskLog$targetUserArgs<ExtArgs>
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalTaskLog"]>

  export type ApprovalTaskLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    instanceId?: boolean
    action?: boolean
    operatorId?: boolean
    comment?: boolean
    targetUserId?: boolean
    targetNodeId?: boolean
    addSignUsers?: boolean
    formDataChanges?: boolean
    attachments?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    requestId?: boolean
    riskLevel?: boolean
    adminReason?: boolean
    metadata?: boolean
    actionTime?: boolean
    operator?: boolean | UserDefaultArgs<ExtArgs>
    targetUser?: boolean | ApprovalTaskLog$targetUserArgs<ExtArgs>
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalTaskLog"]>

  export type ApprovalTaskLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    instanceId?: boolean
    action?: boolean
    operatorId?: boolean
    comment?: boolean
    targetUserId?: boolean
    targetNodeId?: boolean
    addSignUsers?: boolean
    formDataChanges?: boolean
    attachments?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    requestId?: boolean
    riskLevel?: boolean
    adminReason?: boolean
    metadata?: boolean
    actionTime?: boolean
    operator?: boolean | UserDefaultArgs<ExtArgs>
    targetUser?: boolean | ApprovalTaskLog$targetUserArgs<ExtArgs>
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalTaskLog"]>

  export type ApprovalTaskLogSelectScalar = {
    id?: boolean
    taskId?: boolean
    instanceId?: boolean
    action?: boolean
    operatorId?: boolean
    comment?: boolean
    targetUserId?: boolean
    targetNodeId?: boolean
    addSignUsers?: boolean
    formDataChanges?: boolean
    attachments?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    requestId?: boolean
    riskLevel?: boolean
    adminReason?: boolean
    metadata?: boolean
    actionTime?: boolean
  }

  export type ApprovalTaskLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskId" | "instanceId" | "action" | "operatorId" | "comment" | "targetUserId" | "targetNodeId" | "addSignUsers" | "formDataChanges" | "attachments" | "ipAddress" | "userAgent" | "requestId" | "riskLevel" | "adminReason" | "metadata" | "actionTime", ExtArgs["result"]["approvalTaskLog"]>
  export type ApprovalTaskLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    operator?: boolean | UserDefaultArgs<ExtArgs>
    targetUser?: boolean | ApprovalTaskLog$targetUserArgs<ExtArgs>
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
  }
  export type ApprovalTaskLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    operator?: boolean | UserDefaultArgs<ExtArgs>
    targetUser?: boolean | ApprovalTaskLog$targetUserArgs<ExtArgs>
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
  }
  export type ApprovalTaskLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    operator?: boolean | UserDefaultArgs<ExtArgs>
    targetUser?: boolean | ApprovalTaskLog$targetUserArgs<ExtArgs>
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
  }

  export type $ApprovalTaskLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApprovalTaskLog"
    objects: {
      operator: Prisma.$UserPayload<ExtArgs>
      targetUser: Prisma.$UserPayload<ExtArgs> | null
      task: Prisma.$ApprovalTaskPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskId: string
      instanceId: string
      action: $Enums.ApprovalTaskAction
      operatorId: string
      comment: string | null
      targetUserId: string | null
      targetNodeId: string | null
      addSignUsers: string[]
      formDataChanges: Prisma.JsonValue | null
      attachments: Prisma.JsonValue | null
      ipAddress: string | null
      userAgent: string | null
      requestId: string | null
      riskLevel: $Enums.RiskLevel | null
      adminReason: string | null
      metadata: Prisma.JsonValue | null
      actionTime: Date
    }, ExtArgs["result"]["approvalTaskLog"]>
    composites: {}
  }

  type ApprovalTaskLogGetPayload<S extends boolean | null | undefined | ApprovalTaskLogDefaultArgs> = $Result.GetResult<Prisma.$ApprovalTaskLogPayload, S>

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

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

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

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

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

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

    /**
     * Create a ApprovalTaskLog.
     * @param {ApprovalTaskLogCreateArgs} args - Arguments to create a ApprovalTaskLog.
     * @example
     * // Create one ApprovalTaskLog
     * const ApprovalTaskLog = await prisma.approvalTaskLog.create({
     *   data: {
     *     // ... data to create a ApprovalTaskLog
     *   }
     * })
     * 
     */
    create<T extends ApprovalTaskLogCreateArgs>(args: SelectSubset<T, ApprovalTaskLogCreateArgs<ExtArgs>>): Prisma__ApprovalTaskLogClient<$Result.GetResult<Prisma.$ApprovalTaskLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

    /**
     * Create many ApprovalTaskLogs and returns the data saved in the database.
     * @param {ApprovalTaskLogCreateManyAndReturnArgs} args - Arguments to create many ApprovalTaskLogs.
     * @example
     * // Create many ApprovalTaskLogs
     * const approvalTaskLog = await prisma.approvalTaskLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApprovalTaskLogs and only return the `id`
     * const approvalTaskLogWithIdOnly = await prisma.approvalTaskLog.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 ApprovalTaskLogCreateManyAndReturnArgs>(args?: SelectSubset<T, ApprovalTaskLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApprovalTaskLog.
     * @param {ApprovalTaskLogDeleteArgs} args - Arguments to delete one ApprovalTaskLog.
     * @example
     * // Delete one ApprovalTaskLog
     * const ApprovalTaskLog = await prisma.approvalTaskLog.delete({
     *   where: {
     *     // ... filter to delete one ApprovalTaskLog
     *   }
     * })
     * 
     */
    delete<T extends ApprovalTaskLogDeleteArgs>(args: SelectSubset<T, ApprovalTaskLogDeleteArgs<ExtArgs>>): Prisma__ApprovalTaskLogClient<$Result.GetResult<Prisma.$ApprovalTaskLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

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

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

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

    /**
     * Update zero or more ApprovalTaskLogs and returns the data updated in the database.
     * @param {ApprovalTaskLogUpdateManyAndReturnArgs} args - Arguments to update many ApprovalTaskLogs.
     * @example
     * // Update many ApprovalTaskLogs
     * const approvalTaskLog = await prisma.approvalTaskLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApprovalTaskLogs and only return the `id`
     * const approvalTaskLogWithIdOnly = await prisma.approvalTaskLog.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 ApprovalTaskLogUpdateManyAndReturnArgs>(args: SelectSubset<T, ApprovalTaskLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

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


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

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

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

  /**
   * The delegate class that acts as a "Promise-like" for ApprovalTaskLog.
   * 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__ApprovalTaskLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    operator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    targetUser<T extends ApprovalTaskLog$targetUserArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalTaskLog$targetUserArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    task<T extends ApprovalTaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalTaskDefaultArgs<ExtArgs>>): Prisma__ApprovalTaskClient<$Result.GetResult<Prisma.$ApprovalTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApprovalTaskLog model
   */
  interface ApprovalTaskLogFieldRefs {
    readonly id: FieldRef<"ApprovalTaskLog", 'String'>
    readonly taskId: FieldRef<"ApprovalTaskLog", 'String'>
    readonly instanceId: FieldRef<"ApprovalTaskLog", 'String'>
    readonly action: FieldRef<"ApprovalTaskLog", 'ApprovalTaskAction'>
    readonly operatorId: FieldRef<"ApprovalTaskLog", 'String'>
    readonly comment: FieldRef<"ApprovalTaskLog", 'String'>
    readonly targetUserId: FieldRef<"ApprovalTaskLog", 'String'>
    readonly targetNodeId: FieldRef<"ApprovalTaskLog", 'String'>
    readonly addSignUsers: FieldRef<"ApprovalTaskLog", 'String[]'>
    readonly formDataChanges: FieldRef<"ApprovalTaskLog", 'Json'>
    readonly attachments: FieldRef<"ApprovalTaskLog", 'Json'>
    readonly ipAddress: FieldRef<"ApprovalTaskLog", 'String'>
    readonly userAgent: FieldRef<"ApprovalTaskLog", 'String'>
    readonly requestId: FieldRef<"ApprovalTaskLog", 'String'>
    readonly riskLevel: FieldRef<"ApprovalTaskLog", 'RiskLevel'>
    readonly adminReason: FieldRef<"ApprovalTaskLog", 'String'>
    readonly metadata: FieldRef<"ApprovalTaskLog", 'Json'>
    readonly actionTime: FieldRef<"ApprovalTaskLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ApprovalTaskLog findUnique
   */
  export type ApprovalTaskLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalTaskLog to fetch.
     */
    where: ApprovalTaskLogWhereUniqueInput
  }

  /**
   * ApprovalTaskLog findUniqueOrThrow
   */
  export type ApprovalTaskLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalTaskLog to fetch.
     */
    where: ApprovalTaskLogWhereUniqueInput
  }

  /**
   * ApprovalTaskLog findFirst
   */
  export type ApprovalTaskLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalTaskLog to fetch.
     */
    where?: ApprovalTaskLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalTaskLogs to fetch.
     */
    orderBy?: ApprovalTaskLogOrderByWithRelationInput | ApprovalTaskLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ApprovalTaskLogs.
     */
    cursor?: ApprovalTaskLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalTaskLogs 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` ApprovalTaskLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ApprovalTaskLogs.
     */
    distinct?: ApprovalTaskLogScalarFieldEnum | ApprovalTaskLogScalarFieldEnum[]
  }

  /**
   * ApprovalTaskLog findFirstOrThrow
   */
  export type ApprovalTaskLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalTaskLog to fetch.
     */
    where?: ApprovalTaskLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalTaskLogs to fetch.
     */
    orderBy?: ApprovalTaskLogOrderByWithRelationInput | ApprovalTaskLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ApprovalTaskLogs.
     */
    cursor?: ApprovalTaskLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalTaskLogs 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` ApprovalTaskLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ApprovalTaskLogs.
     */
    distinct?: ApprovalTaskLogScalarFieldEnum | ApprovalTaskLogScalarFieldEnum[]
  }

  /**
   * ApprovalTaskLog findMany
   */
  export type ApprovalTaskLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalTaskLogs to fetch.
     */
    where?: ApprovalTaskLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalTaskLogs to fetch.
     */
    orderBy?: ApprovalTaskLogOrderByWithRelationInput | ApprovalTaskLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ApprovalTaskLogs.
     */
    cursor?: ApprovalTaskLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalTaskLogs 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` ApprovalTaskLogs.
     */
    skip?: number
    distinct?: ApprovalTaskLogScalarFieldEnum | ApprovalTaskLogScalarFieldEnum[]
  }

  /**
   * ApprovalTaskLog create
   */
  export type ApprovalTaskLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * The data needed to create a ApprovalTaskLog.
     */
    data: XOR<ApprovalTaskLogCreateInput, ApprovalTaskLogUncheckedCreateInput>
  }

  /**
   * ApprovalTaskLog createMany
   */
  export type ApprovalTaskLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApprovalTaskLogs.
     */
    data: ApprovalTaskLogCreateManyInput | ApprovalTaskLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalTaskLog createManyAndReturn
   */
  export type ApprovalTaskLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * The data used to create many ApprovalTaskLogs.
     */
    data: ApprovalTaskLogCreateManyInput | ApprovalTaskLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalTaskLog update
   */
  export type ApprovalTaskLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * The data needed to update a ApprovalTaskLog.
     */
    data: XOR<ApprovalTaskLogUpdateInput, ApprovalTaskLogUncheckedUpdateInput>
    /**
     * Choose, which ApprovalTaskLog to update.
     */
    where: ApprovalTaskLogWhereUniqueInput
  }

  /**
   * ApprovalTaskLog updateMany
   */
  export type ApprovalTaskLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApprovalTaskLogs.
     */
    data: XOR<ApprovalTaskLogUpdateManyMutationInput, ApprovalTaskLogUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalTaskLogs to update
     */
    where?: ApprovalTaskLogWhereInput
    /**
     * Limit how many ApprovalTaskLogs to update.
     */
    limit?: number
  }

  /**
   * ApprovalTaskLog updateManyAndReturn
   */
  export type ApprovalTaskLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * The data used to update ApprovalTaskLogs.
     */
    data: XOR<ApprovalTaskLogUpdateManyMutationInput, ApprovalTaskLogUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalTaskLogs to update
     */
    where?: ApprovalTaskLogWhereInput
    /**
     * Limit how many ApprovalTaskLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalTaskLog upsert
   */
  export type ApprovalTaskLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * The filter to search for the ApprovalTaskLog to update in case it exists.
     */
    where: ApprovalTaskLogWhereUniqueInput
    /**
     * In case the ApprovalTaskLog found by the `where` argument doesn't exist, create a new ApprovalTaskLog with this data.
     */
    create: XOR<ApprovalTaskLogCreateInput, ApprovalTaskLogUncheckedCreateInput>
    /**
     * In case the ApprovalTaskLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApprovalTaskLogUpdateInput, ApprovalTaskLogUncheckedUpdateInput>
  }

  /**
   * ApprovalTaskLog delete
   */
  export type ApprovalTaskLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    /**
     * Filter which ApprovalTaskLog to delete.
     */
    where: ApprovalTaskLogWhereUniqueInput
  }

  /**
   * ApprovalTaskLog deleteMany
   */
  export type ApprovalTaskLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalTaskLogs to delete
     */
    where?: ApprovalTaskLogWhereInput
    /**
     * Limit how many ApprovalTaskLogs to delete.
     */
    limit?: number
  }

  /**
   * ApprovalTaskLog.targetUser
   */
  export type ApprovalTaskLog$targetUserArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * ApprovalTaskLog without action
   */
  export type ApprovalTaskLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
  }


  /**
   * Model CallbackRetryQueue
   */

  export type AggregateCallbackRetryQueue = {
    _count: CallbackRetryQueueCountAggregateOutputType | null
    _avg: CallbackRetryQueueAvgAggregateOutputType | null
    _sum: CallbackRetryQueueSumAggregateOutputType | null
    _min: CallbackRetryQueueMinAggregateOutputType | null
    _max: CallbackRetryQueueMaxAggregateOutputType | null
  }

  export type CallbackRetryQueueAvgAggregateOutputType = {
    retryCount: number | null
    maxRetries: number | null
  }

  export type CallbackRetryQueueSumAggregateOutputType = {
    retryCount: number | null
    maxRetries: number | null
  }

  export type CallbackRetryQueueMinAggregateOutputType = {
    id: string | null
    instanceId: string | null
    callbackType: string | null
    callbackUrl: string | null
    retryCount: number | null
    maxRetries: number | null
    nextRetryAt: Date | null
    lastError: string | null
    status: $Enums.CallbackStatus | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CallbackRetryQueueMaxAggregateOutputType = {
    id: string | null
    instanceId: string | null
    callbackType: string | null
    callbackUrl: string | null
    retryCount: number | null
    maxRetries: number | null
    nextRetryAt: Date | null
    lastError: string | null
    status: $Enums.CallbackStatus | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CallbackRetryQueueCountAggregateOutputType = {
    id: number
    instanceId: number
    callbackType: number
    callbackUrl: number
    payload: number
    retryCount: number
    maxRetries: number
    nextRetryAt: number
    lastError: number
    status: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type CallbackRetryQueueAvgAggregateInputType = {
    retryCount?: true
    maxRetries?: true
  }

  export type CallbackRetryQueueSumAggregateInputType = {
    retryCount?: true
    maxRetries?: true
  }

  export type CallbackRetryQueueMinAggregateInputType = {
    id?: true
    instanceId?: true
    callbackType?: true
    callbackUrl?: true
    retryCount?: true
    maxRetries?: true
    nextRetryAt?: true
    lastError?: true
    status?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CallbackRetryQueueMaxAggregateInputType = {
    id?: true
    instanceId?: true
    callbackType?: true
    callbackUrl?: true
    retryCount?: true
    maxRetries?: true
    nextRetryAt?: true
    lastError?: true
    status?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CallbackRetryQueueCountAggregateInputType = {
    id?: true
    instanceId?: true
    callbackType?: true
    callbackUrl?: true
    payload?: true
    retryCount?: true
    maxRetries?: true
    nextRetryAt?: true
    lastError?: true
    status?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type CallbackRetryQueueAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CallbackRetryQueue to aggregate.
     */
    where?: CallbackRetryQueueWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CallbackRetryQueues to fetch.
     */
    orderBy?: CallbackRetryQueueOrderByWithRelationInput | CallbackRetryQueueOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CallbackRetryQueueWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CallbackRetryQueues 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` CallbackRetryQueues.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned CallbackRetryQueues
    **/
    _count?: true | CallbackRetryQueueCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: CallbackRetryQueueAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: CallbackRetryQueueSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CallbackRetryQueueMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CallbackRetryQueueMaxAggregateInputType
  }

  export type GetCallbackRetryQueueAggregateType<T extends CallbackRetryQueueAggregateArgs> = {
        [P in keyof T & keyof AggregateCallbackRetryQueue]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCallbackRetryQueue[P]>
      : GetScalarType<T[P], AggregateCallbackRetryQueue[P]>
  }




  export type CallbackRetryQueueGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CallbackRetryQueueWhereInput
    orderBy?: CallbackRetryQueueOrderByWithAggregationInput | CallbackRetryQueueOrderByWithAggregationInput[]
    by: CallbackRetryQueueScalarFieldEnum[] | CallbackRetryQueueScalarFieldEnum
    having?: CallbackRetryQueueScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CallbackRetryQueueCountAggregateInputType | true
    _avg?: CallbackRetryQueueAvgAggregateInputType
    _sum?: CallbackRetryQueueSumAggregateInputType
    _min?: CallbackRetryQueueMinAggregateInputType
    _max?: CallbackRetryQueueMaxAggregateInputType
  }

  export type CallbackRetryQueueGroupByOutputType = {
    id: string
    instanceId: string
    callbackType: string
    callbackUrl: string | null
    payload: JsonValue
    retryCount: number
    maxRetries: number
    nextRetryAt: Date
    lastError: string | null
    status: $Enums.CallbackStatus
    createdAt: Date
    updatedAt: Date
    _count: CallbackRetryQueueCountAggregateOutputType | null
    _avg: CallbackRetryQueueAvgAggregateOutputType | null
    _sum: CallbackRetryQueueSumAggregateOutputType | null
    _min: CallbackRetryQueueMinAggregateOutputType | null
    _max: CallbackRetryQueueMaxAggregateOutputType | null
  }

  type GetCallbackRetryQueueGroupByPayload<T extends CallbackRetryQueueGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<CallbackRetryQueueGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof CallbackRetryQueueGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], CallbackRetryQueueGroupByOutputType[P]>
            : GetScalarType<T[P], CallbackRetryQueueGroupByOutputType[P]>
        }
      >
    >


  export type CallbackRetryQueueSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    callbackType?: boolean
    callbackUrl?: boolean
    payload?: boolean
    retryCount?: boolean
    maxRetries?: boolean
    nextRetryAt?: boolean
    lastError?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["callbackRetryQueue"]>

  export type CallbackRetryQueueSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    callbackType?: boolean
    callbackUrl?: boolean
    payload?: boolean
    retryCount?: boolean
    maxRetries?: boolean
    nextRetryAt?: boolean
    lastError?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["callbackRetryQueue"]>

  export type CallbackRetryQueueSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    instanceId?: boolean
    callbackType?: boolean
    callbackUrl?: boolean
    payload?: boolean
    retryCount?: boolean
    maxRetries?: boolean
    nextRetryAt?: boolean
    lastError?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["callbackRetryQueue"]>

  export type CallbackRetryQueueSelectScalar = {
    id?: boolean
    instanceId?: boolean
    callbackType?: boolean
    callbackUrl?: boolean
    payload?: boolean
    retryCount?: boolean
    maxRetries?: boolean
    nextRetryAt?: boolean
    lastError?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type CallbackRetryQueueOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "instanceId" | "callbackType" | "callbackUrl" | "payload" | "retryCount" | "maxRetries" | "nextRetryAt" | "lastError" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["callbackRetryQueue"]>
  export type CallbackRetryQueueInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }
  export type CallbackRetryQueueIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }
  export type CallbackRetryQueueIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }

  export type $CallbackRetryQueuePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "CallbackRetryQueue"
    objects: {
      instance: Prisma.$ApprovalInstancePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      instanceId: string
      callbackType: string
      callbackUrl: string | null
      payload: Prisma.JsonValue
      retryCount: number
      maxRetries: number
      nextRetryAt: Date
      lastError: string | null
      status: $Enums.CallbackStatus
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["callbackRetryQueue"]>
    composites: {}
  }

  type CallbackRetryQueueGetPayload<S extends boolean | null | undefined | CallbackRetryQueueDefaultArgs> = $Result.GetResult<Prisma.$CallbackRetryQueuePayload, S>

  type CallbackRetryQueueCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CallbackRetryQueueFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CallbackRetryQueueCountAggregateInputType | true
    }

  export interface CallbackRetryQueueDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['CallbackRetryQueue'], meta: { name: 'CallbackRetryQueue' } }
    /**
     * Find zero or one CallbackRetryQueue that matches the filter.
     * @param {CallbackRetryQueueFindUniqueArgs} args - Arguments to find a CallbackRetryQueue
     * @example
     * // Get one CallbackRetryQueue
     * const callbackRetryQueue = await prisma.callbackRetryQueue.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends CallbackRetryQueueFindUniqueArgs>(args: SelectSubset<T, CallbackRetryQueueFindUniqueArgs<ExtArgs>>): Prisma__CallbackRetryQueueClient<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one CallbackRetryQueue that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {CallbackRetryQueueFindUniqueOrThrowArgs} args - Arguments to find a CallbackRetryQueue
     * @example
     * // Get one CallbackRetryQueue
     * const callbackRetryQueue = await prisma.callbackRetryQueue.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends CallbackRetryQueueFindUniqueOrThrowArgs>(args: SelectSubset<T, CallbackRetryQueueFindUniqueOrThrowArgs<ExtArgs>>): Prisma__CallbackRetryQueueClient<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first CallbackRetryQueue 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 {CallbackRetryQueueFindFirstArgs} args - Arguments to find a CallbackRetryQueue
     * @example
     * // Get one CallbackRetryQueue
     * const callbackRetryQueue = await prisma.callbackRetryQueue.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CallbackRetryQueueFindFirstArgs>(args?: SelectSubset<T, CallbackRetryQueueFindFirstArgs<ExtArgs>>): Prisma__CallbackRetryQueueClient<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first CallbackRetryQueue 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 {CallbackRetryQueueFindFirstOrThrowArgs} args - Arguments to find a CallbackRetryQueue
     * @example
     * // Get one CallbackRetryQueue
     * const callbackRetryQueue = await prisma.callbackRetryQueue.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CallbackRetryQueueFindFirstOrThrowArgs>(args?: SelectSubset<T, CallbackRetryQueueFindFirstOrThrowArgs<ExtArgs>>): Prisma__CallbackRetryQueueClient<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more CallbackRetryQueues 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 {CallbackRetryQueueFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all CallbackRetryQueues
     * const callbackRetryQueues = await prisma.callbackRetryQueue.findMany()
     * 
     * // Get first 10 CallbackRetryQueues
     * const callbackRetryQueues = await prisma.callbackRetryQueue.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const callbackRetryQueueWithIdOnly = await prisma.callbackRetryQueue.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CallbackRetryQueueFindManyArgs>(args?: SelectSubset<T, CallbackRetryQueueFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a CallbackRetryQueue.
     * @param {CallbackRetryQueueCreateArgs} args - Arguments to create a CallbackRetryQueue.
     * @example
     * // Create one CallbackRetryQueue
     * const CallbackRetryQueue = await prisma.callbackRetryQueue.create({
     *   data: {
     *     // ... data to create a CallbackRetryQueue
     *   }
     * })
     * 
     */
    create<T extends CallbackRetryQueueCreateArgs>(args: SelectSubset<T, CallbackRetryQueueCreateArgs<ExtArgs>>): Prisma__CallbackRetryQueueClient<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many CallbackRetryQueues.
     * @param {CallbackRetryQueueCreateManyArgs} args - Arguments to create many CallbackRetryQueues.
     * @example
     * // Create many CallbackRetryQueues
     * const callbackRetryQueue = await prisma.callbackRetryQueue.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends CallbackRetryQueueCreateManyArgs>(args?: SelectSubset<T, CallbackRetryQueueCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many CallbackRetryQueues and returns the data saved in the database.
     * @param {CallbackRetryQueueCreateManyAndReturnArgs} args - Arguments to create many CallbackRetryQueues.
     * @example
     * // Create many CallbackRetryQueues
     * const callbackRetryQueue = await prisma.callbackRetryQueue.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many CallbackRetryQueues and only return the `id`
     * const callbackRetryQueueWithIdOnly = await prisma.callbackRetryQueue.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 CallbackRetryQueueCreateManyAndReturnArgs>(args?: SelectSubset<T, CallbackRetryQueueCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a CallbackRetryQueue.
     * @param {CallbackRetryQueueDeleteArgs} args - Arguments to delete one CallbackRetryQueue.
     * @example
     * // Delete one CallbackRetryQueue
     * const CallbackRetryQueue = await prisma.callbackRetryQueue.delete({
     *   where: {
     *     // ... filter to delete one CallbackRetryQueue
     *   }
     * })
     * 
     */
    delete<T extends CallbackRetryQueueDeleteArgs>(args: SelectSubset<T, CallbackRetryQueueDeleteArgs<ExtArgs>>): Prisma__CallbackRetryQueueClient<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one CallbackRetryQueue.
     * @param {CallbackRetryQueueUpdateArgs} args - Arguments to update one CallbackRetryQueue.
     * @example
     * // Update one CallbackRetryQueue
     * const callbackRetryQueue = await prisma.callbackRetryQueue.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CallbackRetryQueueUpdateArgs>(args: SelectSubset<T, CallbackRetryQueueUpdateArgs<ExtArgs>>): Prisma__CallbackRetryQueueClient<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more CallbackRetryQueues.
     * @param {CallbackRetryQueueDeleteManyArgs} args - Arguments to filter CallbackRetryQueues to delete.
     * @example
     * // Delete a few CallbackRetryQueues
     * const { count } = await prisma.callbackRetryQueue.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends CallbackRetryQueueDeleteManyArgs>(args?: SelectSubset<T, CallbackRetryQueueDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more CallbackRetryQueues.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CallbackRetryQueueUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many CallbackRetryQueues
     * const callbackRetryQueue = await prisma.callbackRetryQueue.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends CallbackRetryQueueUpdateManyArgs>(args: SelectSubset<T, CallbackRetryQueueUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more CallbackRetryQueues and returns the data updated in the database.
     * @param {CallbackRetryQueueUpdateManyAndReturnArgs} args - Arguments to update many CallbackRetryQueues.
     * @example
     * // Update many CallbackRetryQueues
     * const callbackRetryQueue = await prisma.callbackRetryQueue.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more CallbackRetryQueues and only return the `id`
     * const callbackRetryQueueWithIdOnly = await prisma.callbackRetryQueue.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 CallbackRetryQueueUpdateManyAndReturnArgs>(args: SelectSubset<T, CallbackRetryQueueUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one CallbackRetryQueue.
     * @param {CallbackRetryQueueUpsertArgs} args - Arguments to update or create a CallbackRetryQueue.
     * @example
     * // Update or create a CallbackRetryQueue
     * const callbackRetryQueue = await prisma.callbackRetryQueue.upsert({
     *   create: {
     *     // ... data to create a CallbackRetryQueue
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the CallbackRetryQueue we want to update
     *   }
     * })
     */
    upsert<T extends CallbackRetryQueueUpsertArgs>(args: SelectSubset<T, CallbackRetryQueueUpsertArgs<ExtArgs>>): Prisma__CallbackRetryQueueClient<$Result.GetResult<Prisma.$CallbackRetryQueuePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of CallbackRetryQueues.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CallbackRetryQueueCountArgs} args - Arguments to filter CallbackRetryQueues to count.
     * @example
     * // Count the number of CallbackRetryQueues
     * const count = await prisma.callbackRetryQueue.count({
     *   where: {
     *     // ... the filter for the CallbackRetryQueues we want to count
     *   }
     * })
    **/
    count<T extends CallbackRetryQueueCountArgs>(
      args?: Subset<T, CallbackRetryQueueCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], CallbackRetryQueueCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a CallbackRetryQueue.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CallbackRetryQueueAggregateArgs} 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 CallbackRetryQueueAggregateArgs>(args: Subset<T, CallbackRetryQueueAggregateArgs>): Prisma.PrismaPromise<GetCallbackRetryQueueAggregateType<T>>

    /**
     * Group by CallbackRetryQueue.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CallbackRetryQueueGroupByArgs} 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 CallbackRetryQueueGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CallbackRetryQueueGroupByArgs['orderBy'] }
        : { orderBy?: CallbackRetryQueueGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CallbackRetryQueueGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCallbackRetryQueueGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the CallbackRetryQueue model
   */
  readonly fields: CallbackRetryQueueFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for CallbackRetryQueue.
   * 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__CallbackRetryQueueClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    instance<T extends ApprovalInstanceDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalInstanceDefaultArgs<ExtArgs>>): Prisma__ApprovalInstanceClient<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the CallbackRetryQueue model
   */
  interface CallbackRetryQueueFieldRefs {
    readonly id: FieldRef<"CallbackRetryQueue", 'String'>
    readonly instanceId: FieldRef<"CallbackRetryQueue", 'String'>
    readonly callbackType: FieldRef<"CallbackRetryQueue", 'String'>
    readonly callbackUrl: FieldRef<"CallbackRetryQueue", 'String'>
    readonly payload: FieldRef<"CallbackRetryQueue", 'Json'>
    readonly retryCount: FieldRef<"CallbackRetryQueue", 'Int'>
    readonly maxRetries: FieldRef<"CallbackRetryQueue", 'Int'>
    readonly nextRetryAt: FieldRef<"CallbackRetryQueue", 'DateTime'>
    readonly lastError: FieldRef<"CallbackRetryQueue", 'String'>
    readonly status: FieldRef<"CallbackRetryQueue", 'CallbackStatus'>
    readonly createdAt: FieldRef<"CallbackRetryQueue", 'DateTime'>
    readonly updatedAt: FieldRef<"CallbackRetryQueue", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * CallbackRetryQueue findUnique
   */
  export type CallbackRetryQueueFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * Filter, which CallbackRetryQueue to fetch.
     */
    where: CallbackRetryQueueWhereUniqueInput
  }

  /**
   * CallbackRetryQueue findUniqueOrThrow
   */
  export type CallbackRetryQueueFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * Filter, which CallbackRetryQueue to fetch.
     */
    where: CallbackRetryQueueWhereUniqueInput
  }

  /**
   * CallbackRetryQueue findFirst
   */
  export type CallbackRetryQueueFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * Filter, which CallbackRetryQueue to fetch.
     */
    where?: CallbackRetryQueueWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CallbackRetryQueues to fetch.
     */
    orderBy?: CallbackRetryQueueOrderByWithRelationInput | CallbackRetryQueueOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CallbackRetryQueues.
     */
    cursor?: CallbackRetryQueueWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CallbackRetryQueues 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` CallbackRetryQueues.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CallbackRetryQueues.
     */
    distinct?: CallbackRetryQueueScalarFieldEnum | CallbackRetryQueueScalarFieldEnum[]
  }

  /**
   * CallbackRetryQueue findFirstOrThrow
   */
  export type CallbackRetryQueueFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * Filter, which CallbackRetryQueue to fetch.
     */
    where?: CallbackRetryQueueWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CallbackRetryQueues to fetch.
     */
    orderBy?: CallbackRetryQueueOrderByWithRelationInput | CallbackRetryQueueOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CallbackRetryQueues.
     */
    cursor?: CallbackRetryQueueWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CallbackRetryQueues 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` CallbackRetryQueues.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CallbackRetryQueues.
     */
    distinct?: CallbackRetryQueueScalarFieldEnum | CallbackRetryQueueScalarFieldEnum[]
  }

  /**
   * CallbackRetryQueue findMany
   */
  export type CallbackRetryQueueFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * Filter, which CallbackRetryQueues to fetch.
     */
    where?: CallbackRetryQueueWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CallbackRetryQueues to fetch.
     */
    orderBy?: CallbackRetryQueueOrderByWithRelationInput | CallbackRetryQueueOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing CallbackRetryQueues.
     */
    cursor?: CallbackRetryQueueWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CallbackRetryQueues 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` CallbackRetryQueues.
     */
    skip?: number
    distinct?: CallbackRetryQueueScalarFieldEnum | CallbackRetryQueueScalarFieldEnum[]
  }

  /**
   * CallbackRetryQueue create
   */
  export type CallbackRetryQueueCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * The data needed to create a CallbackRetryQueue.
     */
    data: XOR<CallbackRetryQueueCreateInput, CallbackRetryQueueUncheckedCreateInput>
  }

  /**
   * CallbackRetryQueue createMany
   */
  export type CallbackRetryQueueCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many CallbackRetryQueues.
     */
    data: CallbackRetryQueueCreateManyInput | CallbackRetryQueueCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * CallbackRetryQueue createManyAndReturn
   */
  export type CallbackRetryQueueCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * The data used to create many CallbackRetryQueues.
     */
    data: CallbackRetryQueueCreateManyInput | CallbackRetryQueueCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * CallbackRetryQueue update
   */
  export type CallbackRetryQueueUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * The data needed to update a CallbackRetryQueue.
     */
    data: XOR<CallbackRetryQueueUpdateInput, CallbackRetryQueueUncheckedUpdateInput>
    /**
     * Choose, which CallbackRetryQueue to update.
     */
    where: CallbackRetryQueueWhereUniqueInput
  }

  /**
   * CallbackRetryQueue updateMany
   */
  export type CallbackRetryQueueUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update CallbackRetryQueues.
     */
    data: XOR<CallbackRetryQueueUpdateManyMutationInput, CallbackRetryQueueUncheckedUpdateManyInput>
    /**
     * Filter which CallbackRetryQueues to update
     */
    where?: CallbackRetryQueueWhereInput
    /**
     * Limit how many CallbackRetryQueues to update.
     */
    limit?: number
  }

  /**
   * CallbackRetryQueue updateManyAndReturn
   */
  export type CallbackRetryQueueUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * The data used to update CallbackRetryQueues.
     */
    data: XOR<CallbackRetryQueueUpdateManyMutationInput, CallbackRetryQueueUncheckedUpdateManyInput>
    /**
     * Filter which CallbackRetryQueues to update
     */
    where?: CallbackRetryQueueWhereInput
    /**
     * Limit how many CallbackRetryQueues to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * CallbackRetryQueue upsert
   */
  export type CallbackRetryQueueUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * The filter to search for the CallbackRetryQueue to update in case it exists.
     */
    where: CallbackRetryQueueWhereUniqueInput
    /**
     * In case the CallbackRetryQueue found by the `where` argument doesn't exist, create a new CallbackRetryQueue with this data.
     */
    create: XOR<CallbackRetryQueueCreateInput, CallbackRetryQueueUncheckedCreateInput>
    /**
     * In case the CallbackRetryQueue was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CallbackRetryQueueUpdateInput, CallbackRetryQueueUncheckedUpdateInput>
  }

  /**
   * CallbackRetryQueue delete
   */
  export type CallbackRetryQueueDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
    /**
     * Filter which CallbackRetryQueue to delete.
     */
    where: CallbackRetryQueueWhereUniqueInput
  }

  /**
   * CallbackRetryQueue deleteMany
   */
  export type CallbackRetryQueueDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CallbackRetryQueues to delete
     */
    where?: CallbackRetryQueueWhereInput
    /**
     * Limit how many CallbackRetryQueues to delete.
     */
    limit?: number
  }

  /**
   * CallbackRetryQueue without action
   */
  export type CallbackRetryQueueDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CallbackRetryQueue
     */
    select?: CallbackRetryQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CallbackRetryQueue
     */
    omit?: CallbackRetryQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CallbackRetryQueueInclude<ExtArgs> | null
  }


  /**
   * Model ReminderQueue
   */

  export type AggregateReminderQueue = {
    _count: ReminderQueueCountAggregateOutputType | null
    _min: ReminderQueueMinAggregateOutputType | null
    _max: ReminderQueueMaxAggregateOutputType | null
  }

  export type ReminderQueueMinAggregateOutputType = {
    id: string | null
    taskId: string | null
    instanceId: string | null
    reminderType: $Enums.ReminderType | null
    scheduledAt: Date | null
    executedAt: Date | null
    status: $Enums.ReminderStatus | null
    createdAt: Date | null
  }

  export type ReminderQueueMaxAggregateOutputType = {
    id: string | null
    taskId: string | null
    instanceId: string | null
    reminderType: $Enums.ReminderType | null
    scheduledAt: Date | null
    executedAt: Date | null
    status: $Enums.ReminderStatus | null
    createdAt: Date | null
  }

  export type ReminderQueueCountAggregateOutputType = {
    id: number
    taskId: number
    instanceId: number
    reminderType: number
    channels: number
    scheduledAt: number
    executedAt: number
    status: number
    createdAt: number
    _all: number
  }


  export type ReminderQueueMinAggregateInputType = {
    id?: true
    taskId?: true
    instanceId?: true
    reminderType?: true
    scheduledAt?: true
    executedAt?: true
    status?: true
    createdAt?: true
  }

  export type ReminderQueueMaxAggregateInputType = {
    id?: true
    taskId?: true
    instanceId?: true
    reminderType?: true
    scheduledAt?: true
    executedAt?: true
    status?: true
    createdAt?: true
  }

  export type ReminderQueueCountAggregateInputType = {
    id?: true
    taskId?: true
    instanceId?: true
    reminderType?: true
    channels?: true
    scheduledAt?: true
    executedAt?: true
    status?: true
    createdAt?: true
    _all?: true
  }

  export type ReminderQueueAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ReminderQueue to aggregate.
     */
    where?: ReminderQueueWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReminderQueues to fetch.
     */
    orderBy?: ReminderQueueOrderByWithRelationInput | ReminderQueueOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ReminderQueueWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReminderQueues 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` ReminderQueues.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ReminderQueues
    **/
    _count?: true | ReminderQueueCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ReminderQueueMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ReminderQueueMaxAggregateInputType
  }

  export type GetReminderQueueAggregateType<T extends ReminderQueueAggregateArgs> = {
        [P in keyof T & keyof AggregateReminderQueue]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateReminderQueue[P]>
      : GetScalarType<T[P], AggregateReminderQueue[P]>
  }




  export type ReminderQueueGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ReminderQueueWhereInput
    orderBy?: ReminderQueueOrderByWithAggregationInput | ReminderQueueOrderByWithAggregationInput[]
    by: ReminderQueueScalarFieldEnum[] | ReminderQueueScalarFieldEnum
    having?: ReminderQueueScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ReminderQueueCountAggregateInputType | true
    _min?: ReminderQueueMinAggregateInputType
    _max?: ReminderQueueMaxAggregateInputType
  }

  export type ReminderQueueGroupByOutputType = {
    id: string
    taskId: string
    instanceId: string
    reminderType: $Enums.ReminderType
    channels: string[]
    scheduledAt: Date
    executedAt: Date | null
    status: $Enums.ReminderStatus
    createdAt: Date
    _count: ReminderQueueCountAggregateOutputType | null
    _min: ReminderQueueMinAggregateOutputType | null
    _max: ReminderQueueMaxAggregateOutputType | null
  }

  type GetReminderQueueGroupByPayload<T extends ReminderQueueGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ReminderQueueGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ReminderQueueGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ReminderQueueGroupByOutputType[P]>
            : GetScalarType<T[P], ReminderQueueGroupByOutputType[P]>
        }
      >
    >


  export type ReminderQueueSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    instanceId?: boolean
    reminderType?: boolean
    channels?: boolean
    scheduledAt?: boolean
    executedAt?: boolean
    status?: boolean
    createdAt?: boolean
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["reminderQueue"]>

  export type ReminderQueueSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    instanceId?: boolean
    reminderType?: boolean
    channels?: boolean
    scheduledAt?: boolean
    executedAt?: boolean
    status?: boolean
    createdAt?: boolean
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["reminderQueue"]>

  export type ReminderQueueSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    instanceId?: boolean
    reminderType?: boolean
    channels?: boolean
    scheduledAt?: boolean
    executedAt?: boolean
    status?: boolean
    createdAt?: boolean
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["reminderQueue"]>

  export type ReminderQueueSelectScalar = {
    id?: boolean
    taskId?: boolean
    instanceId?: boolean
    reminderType?: boolean
    channels?: boolean
    scheduledAt?: boolean
    executedAt?: boolean
    status?: boolean
    createdAt?: boolean
  }

  export type ReminderQueueOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskId" | "instanceId" | "reminderType" | "channels" | "scheduledAt" | "executedAt" | "status" | "createdAt", ExtArgs["result"]["reminderQueue"]>
  export type ReminderQueueInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }
  export type ReminderQueueIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }
  export type ReminderQueueIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | ApprovalTaskDefaultArgs<ExtArgs>
    instance?: boolean | ApprovalInstanceDefaultArgs<ExtArgs>
  }

  export type $ReminderQueuePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ReminderQueue"
    objects: {
      task: Prisma.$ApprovalTaskPayload<ExtArgs>
      instance: Prisma.$ApprovalInstancePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskId: string
      instanceId: string
      reminderType: $Enums.ReminderType
      channels: string[]
      scheduledAt: Date
      executedAt: Date | null
      status: $Enums.ReminderStatus
      createdAt: Date
    }, ExtArgs["result"]["reminderQueue"]>
    composites: {}
  }

  type ReminderQueueGetPayload<S extends boolean | null | undefined | ReminderQueueDefaultArgs> = $Result.GetResult<Prisma.$ReminderQueuePayload, S>

  type ReminderQueueCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ReminderQueueFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ReminderQueueCountAggregateInputType | true
    }

  export interface ReminderQueueDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ReminderQueue'], meta: { name: 'ReminderQueue' } }
    /**
     * Find zero or one ReminderQueue that matches the filter.
     * @param {ReminderQueueFindUniqueArgs} args - Arguments to find a ReminderQueue
     * @example
     * // Get one ReminderQueue
     * const reminderQueue = await prisma.reminderQueue.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ReminderQueueFindUniqueArgs>(args: SelectSubset<T, ReminderQueueFindUniqueArgs<ExtArgs>>): Prisma__ReminderQueueClient<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ReminderQueue that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ReminderQueueFindUniqueOrThrowArgs} args - Arguments to find a ReminderQueue
     * @example
     * // Get one ReminderQueue
     * const reminderQueue = await prisma.reminderQueue.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ReminderQueueFindUniqueOrThrowArgs>(args: SelectSubset<T, ReminderQueueFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ReminderQueueClient<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ReminderQueue 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 {ReminderQueueFindFirstArgs} args - Arguments to find a ReminderQueue
     * @example
     * // Get one ReminderQueue
     * const reminderQueue = await prisma.reminderQueue.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ReminderQueueFindFirstArgs>(args?: SelectSubset<T, ReminderQueueFindFirstArgs<ExtArgs>>): Prisma__ReminderQueueClient<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ReminderQueue 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 {ReminderQueueFindFirstOrThrowArgs} args - Arguments to find a ReminderQueue
     * @example
     * // Get one ReminderQueue
     * const reminderQueue = await prisma.reminderQueue.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ReminderQueueFindFirstOrThrowArgs>(args?: SelectSubset<T, ReminderQueueFindFirstOrThrowArgs<ExtArgs>>): Prisma__ReminderQueueClient<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ReminderQueues 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 {ReminderQueueFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ReminderQueues
     * const reminderQueues = await prisma.reminderQueue.findMany()
     * 
     * // Get first 10 ReminderQueues
     * const reminderQueues = await prisma.reminderQueue.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const reminderQueueWithIdOnly = await prisma.reminderQueue.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ReminderQueueFindManyArgs>(args?: SelectSubset<T, ReminderQueueFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ReminderQueue.
     * @param {ReminderQueueCreateArgs} args - Arguments to create a ReminderQueue.
     * @example
     * // Create one ReminderQueue
     * const ReminderQueue = await prisma.reminderQueue.create({
     *   data: {
     *     // ... data to create a ReminderQueue
     *   }
     * })
     * 
     */
    create<T extends ReminderQueueCreateArgs>(args: SelectSubset<T, ReminderQueueCreateArgs<ExtArgs>>): Prisma__ReminderQueueClient<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ReminderQueues.
     * @param {ReminderQueueCreateManyArgs} args - Arguments to create many ReminderQueues.
     * @example
     * // Create many ReminderQueues
     * const reminderQueue = await prisma.reminderQueue.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ReminderQueueCreateManyArgs>(args?: SelectSubset<T, ReminderQueueCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ReminderQueues and returns the data saved in the database.
     * @param {ReminderQueueCreateManyAndReturnArgs} args - Arguments to create many ReminderQueues.
     * @example
     * // Create many ReminderQueues
     * const reminderQueue = await prisma.reminderQueue.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ReminderQueues and only return the `id`
     * const reminderQueueWithIdOnly = await prisma.reminderQueue.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 ReminderQueueCreateManyAndReturnArgs>(args?: SelectSubset<T, ReminderQueueCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ReminderQueue.
     * @param {ReminderQueueDeleteArgs} args - Arguments to delete one ReminderQueue.
     * @example
     * // Delete one ReminderQueue
     * const ReminderQueue = await prisma.reminderQueue.delete({
     *   where: {
     *     // ... filter to delete one ReminderQueue
     *   }
     * })
     * 
     */
    delete<T extends ReminderQueueDeleteArgs>(args: SelectSubset<T, ReminderQueueDeleteArgs<ExtArgs>>): Prisma__ReminderQueueClient<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ReminderQueue.
     * @param {ReminderQueueUpdateArgs} args - Arguments to update one ReminderQueue.
     * @example
     * // Update one ReminderQueue
     * const reminderQueue = await prisma.reminderQueue.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ReminderQueueUpdateArgs>(args: SelectSubset<T, ReminderQueueUpdateArgs<ExtArgs>>): Prisma__ReminderQueueClient<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ReminderQueues.
     * @param {ReminderQueueDeleteManyArgs} args - Arguments to filter ReminderQueues to delete.
     * @example
     * // Delete a few ReminderQueues
     * const { count } = await prisma.reminderQueue.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ReminderQueueDeleteManyArgs>(args?: SelectSubset<T, ReminderQueueDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ReminderQueues.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReminderQueueUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ReminderQueues
     * const reminderQueue = await prisma.reminderQueue.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ReminderQueueUpdateManyArgs>(args: SelectSubset<T, ReminderQueueUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ReminderQueues and returns the data updated in the database.
     * @param {ReminderQueueUpdateManyAndReturnArgs} args - Arguments to update many ReminderQueues.
     * @example
     * // Update many ReminderQueues
     * const reminderQueue = await prisma.reminderQueue.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ReminderQueues and only return the `id`
     * const reminderQueueWithIdOnly = await prisma.reminderQueue.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 ReminderQueueUpdateManyAndReturnArgs>(args: SelectSubset<T, ReminderQueueUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ReminderQueue.
     * @param {ReminderQueueUpsertArgs} args - Arguments to update or create a ReminderQueue.
     * @example
     * // Update or create a ReminderQueue
     * const reminderQueue = await prisma.reminderQueue.upsert({
     *   create: {
     *     // ... data to create a ReminderQueue
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ReminderQueue we want to update
     *   }
     * })
     */
    upsert<T extends ReminderQueueUpsertArgs>(args: SelectSubset<T, ReminderQueueUpsertArgs<ExtArgs>>): Prisma__ReminderQueueClient<$Result.GetResult<Prisma.$ReminderQueuePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ReminderQueues.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReminderQueueCountArgs} args - Arguments to filter ReminderQueues to count.
     * @example
     * // Count the number of ReminderQueues
     * const count = await prisma.reminderQueue.count({
     *   where: {
     *     // ... the filter for the ReminderQueues we want to count
     *   }
     * })
    **/
    count<T extends ReminderQueueCountArgs>(
      args?: Subset<T, ReminderQueueCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ReminderQueueCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ReminderQueue.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReminderQueueAggregateArgs} 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 ReminderQueueAggregateArgs>(args: Subset<T, ReminderQueueAggregateArgs>): Prisma.PrismaPromise<GetReminderQueueAggregateType<T>>

    /**
     * Group by ReminderQueue.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReminderQueueGroupByArgs} 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 ReminderQueueGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ReminderQueueGroupByArgs['orderBy'] }
        : { orderBy?: ReminderQueueGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ReminderQueueGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetReminderQueueGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ReminderQueue model
   */
  readonly fields: ReminderQueueFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ReminderQueue.
   * 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__ReminderQueueClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends ApprovalTaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalTaskDefaultArgs<ExtArgs>>): Prisma__ApprovalTaskClient<$Result.GetResult<Prisma.$ApprovalTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    instance<T extends ApprovalInstanceDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ApprovalInstanceDefaultArgs<ExtArgs>>): Prisma__ApprovalInstanceClient<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ReminderQueue model
   */
  interface ReminderQueueFieldRefs {
    readonly id: FieldRef<"ReminderQueue", 'String'>
    readonly taskId: FieldRef<"ReminderQueue", 'String'>
    readonly instanceId: FieldRef<"ReminderQueue", 'String'>
    readonly reminderType: FieldRef<"ReminderQueue", 'ReminderType'>
    readonly channels: FieldRef<"ReminderQueue", 'String[]'>
    readonly scheduledAt: FieldRef<"ReminderQueue", 'DateTime'>
    readonly executedAt: FieldRef<"ReminderQueue", 'DateTime'>
    readonly status: FieldRef<"ReminderQueue", 'ReminderStatus'>
    readonly createdAt: FieldRef<"ReminderQueue", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ReminderQueue findUnique
   */
  export type ReminderQueueFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * Filter, which ReminderQueue to fetch.
     */
    where: ReminderQueueWhereUniqueInput
  }

  /**
   * ReminderQueue findUniqueOrThrow
   */
  export type ReminderQueueFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * Filter, which ReminderQueue to fetch.
     */
    where: ReminderQueueWhereUniqueInput
  }

  /**
   * ReminderQueue findFirst
   */
  export type ReminderQueueFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * Filter, which ReminderQueue to fetch.
     */
    where?: ReminderQueueWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReminderQueues to fetch.
     */
    orderBy?: ReminderQueueOrderByWithRelationInput | ReminderQueueOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ReminderQueues.
     */
    cursor?: ReminderQueueWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReminderQueues 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` ReminderQueues.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ReminderQueues.
     */
    distinct?: ReminderQueueScalarFieldEnum | ReminderQueueScalarFieldEnum[]
  }

  /**
   * ReminderQueue findFirstOrThrow
   */
  export type ReminderQueueFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * Filter, which ReminderQueue to fetch.
     */
    where?: ReminderQueueWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReminderQueues to fetch.
     */
    orderBy?: ReminderQueueOrderByWithRelationInput | ReminderQueueOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ReminderQueues.
     */
    cursor?: ReminderQueueWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReminderQueues 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` ReminderQueues.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ReminderQueues.
     */
    distinct?: ReminderQueueScalarFieldEnum | ReminderQueueScalarFieldEnum[]
  }

  /**
   * ReminderQueue findMany
   */
  export type ReminderQueueFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * Filter, which ReminderQueues to fetch.
     */
    where?: ReminderQueueWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReminderQueues to fetch.
     */
    orderBy?: ReminderQueueOrderByWithRelationInput | ReminderQueueOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ReminderQueues.
     */
    cursor?: ReminderQueueWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReminderQueues 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` ReminderQueues.
     */
    skip?: number
    distinct?: ReminderQueueScalarFieldEnum | ReminderQueueScalarFieldEnum[]
  }

  /**
   * ReminderQueue create
   */
  export type ReminderQueueCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * The data needed to create a ReminderQueue.
     */
    data: XOR<ReminderQueueCreateInput, ReminderQueueUncheckedCreateInput>
  }

  /**
   * ReminderQueue createMany
   */
  export type ReminderQueueCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ReminderQueues.
     */
    data: ReminderQueueCreateManyInput | ReminderQueueCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ReminderQueue createManyAndReturn
   */
  export type ReminderQueueCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * The data used to create many ReminderQueues.
     */
    data: ReminderQueueCreateManyInput | ReminderQueueCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ReminderQueue update
   */
  export type ReminderQueueUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * The data needed to update a ReminderQueue.
     */
    data: XOR<ReminderQueueUpdateInput, ReminderQueueUncheckedUpdateInput>
    /**
     * Choose, which ReminderQueue to update.
     */
    where: ReminderQueueWhereUniqueInput
  }

  /**
   * ReminderQueue updateMany
   */
  export type ReminderQueueUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ReminderQueues.
     */
    data: XOR<ReminderQueueUpdateManyMutationInput, ReminderQueueUncheckedUpdateManyInput>
    /**
     * Filter which ReminderQueues to update
     */
    where?: ReminderQueueWhereInput
    /**
     * Limit how many ReminderQueues to update.
     */
    limit?: number
  }

  /**
   * ReminderQueue updateManyAndReturn
   */
  export type ReminderQueueUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * The data used to update ReminderQueues.
     */
    data: XOR<ReminderQueueUpdateManyMutationInput, ReminderQueueUncheckedUpdateManyInput>
    /**
     * Filter which ReminderQueues to update
     */
    where?: ReminderQueueWhereInput
    /**
     * Limit how many ReminderQueues to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ReminderQueue upsert
   */
  export type ReminderQueueUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * The filter to search for the ReminderQueue to update in case it exists.
     */
    where: ReminderQueueWhereUniqueInput
    /**
     * In case the ReminderQueue found by the `where` argument doesn't exist, create a new ReminderQueue with this data.
     */
    create: XOR<ReminderQueueCreateInput, ReminderQueueUncheckedCreateInput>
    /**
     * In case the ReminderQueue was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ReminderQueueUpdateInput, ReminderQueueUncheckedUpdateInput>
  }

  /**
   * ReminderQueue delete
   */
  export type ReminderQueueDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
    /**
     * Filter which ReminderQueue to delete.
     */
    where: ReminderQueueWhereUniqueInput
  }

  /**
   * ReminderQueue deleteMany
   */
  export type ReminderQueueDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ReminderQueues to delete
     */
    where?: ReminderQueueWhereInput
    /**
     * Limit how many ReminderQueues to delete.
     */
    limit?: number
  }

  /**
   * ReminderQueue without action
   */
  export type ReminderQueueDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReminderQueue
     */
    select?: ReminderQueueSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReminderQueue
     */
    omit?: ReminderQueueOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReminderQueueInclude<ExtArgs> | null
  }


  /**
   * Model UserDelegationSetting
   */

  export type AggregateUserDelegationSetting = {
    _count: UserDelegationSettingCountAggregateOutputType | null
    _min: UserDelegationSettingMinAggregateOutputType | null
    _max: UserDelegationSettingMaxAggregateOutputType | null
  }

  export type UserDelegationSettingMinAggregateOutputType = {
    id: string | null
    userId: string | null
    enabled: boolean | null
    delegateUserId: string | null
    startTime: Date | null
    endTime: Date | null
    scope: $Enums.DelegationScope | null
    reason: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type UserDelegationSettingMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    enabled: boolean | null
    delegateUserId: string | null
    startTime: Date | null
    endTime: Date | null
    scope: $Enums.DelegationScope | null
    reason: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type UserDelegationSettingCountAggregateOutputType = {
    id: number
    userId: number
    enabled: number
    delegateUserId: number
    startTime: number
    endTime: number
    scope: number
    processKeys: number
    reason: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type UserDelegationSettingMinAggregateInputType = {
    id?: true
    userId?: true
    enabled?: true
    delegateUserId?: true
    startTime?: true
    endTime?: true
    scope?: true
    reason?: true
    createdAt?: true
    updatedAt?: true
  }

  export type UserDelegationSettingMaxAggregateInputType = {
    id?: true
    userId?: true
    enabled?: true
    delegateUserId?: true
    startTime?: true
    endTime?: true
    scope?: true
    reason?: true
    createdAt?: true
    updatedAt?: true
  }

  export type UserDelegationSettingCountAggregateInputType = {
    id?: true
    userId?: true
    enabled?: true
    delegateUserId?: true
    startTime?: true
    endTime?: true
    scope?: true
    processKeys?: true
    reason?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type UserDelegationSettingAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UserDelegationSetting to aggregate.
     */
    where?: UserDelegationSettingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserDelegationSettings to fetch.
     */
    orderBy?: UserDelegationSettingOrderByWithRelationInput | UserDelegationSettingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: UserDelegationSettingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserDelegationSettings 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` UserDelegationSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned UserDelegationSettings
    **/
    _count?: true | UserDelegationSettingCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: UserDelegationSettingMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: UserDelegationSettingMaxAggregateInputType
  }

  export type GetUserDelegationSettingAggregateType<T extends UserDelegationSettingAggregateArgs> = {
        [P in keyof T & keyof AggregateUserDelegationSetting]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateUserDelegationSetting[P]>
      : GetScalarType<T[P], AggregateUserDelegationSetting[P]>
  }




  export type UserDelegationSettingGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserDelegationSettingWhereInput
    orderBy?: UserDelegationSettingOrderByWithAggregationInput | UserDelegationSettingOrderByWithAggregationInput[]
    by: UserDelegationSettingScalarFieldEnum[] | UserDelegationSettingScalarFieldEnum
    having?: UserDelegationSettingScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: UserDelegationSettingCountAggregateInputType | true
    _min?: UserDelegationSettingMinAggregateInputType
    _max?: UserDelegationSettingMaxAggregateInputType
  }

  export type UserDelegationSettingGroupByOutputType = {
    id: string
    userId: string
    enabled: boolean
    delegateUserId: string
    startTime: Date | null
    endTime: Date | null
    scope: $Enums.DelegationScope
    processKeys: string[]
    reason: string | null
    createdAt: Date
    updatedAt: Date
    _count: UserDelegationSettingCountAggregateOutputType | null
    _min: UserDelegationSettingMinAggregateOutputType | null
    _max: UserDelegationSettingMaxAggregateOutputType | null
  }

  type GetUserDelegationSettingGroupByPayload<T extends UserDelegationSettingGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<UserDelegationSettingGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof UserDelegationSettingGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], UserDelegationSettingGroupByOutputType[P]>
            : GetScalarType<T[P], UserDelegationSettingGroupByOutputType[P]>
        }
      >
    >


  export type UserDelegationSettingSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    enabled?: boolean
    delegateUserId?: boolean
    startTime?: boolean
    endTime?: boolean
    scope?: boolean
    processKeys?: boolean
    reason?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    delegateUser?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["userDelegationSetting"]>

  export type UserDelegationSettingSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    enabled?: boolean
    delegateUserId?: boolean
    startTime?: boolean
    endTime?: boolean
    scope?: boolean
    processKeys?: boolean
    reason?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    delegateUser?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["userDelegationSetting"]>

  export type UserDelegationSettingSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    enabled?: boolean
    delegateUserId?: boolean
    startTime?: boolean
    endTime?: boolean
    scope?: boolean
    processKeys?: boolean
    reason?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    delegateUser?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["userDelegationSetting"]>

  export type UserDelegationSettingSelectScalar = {
    id?: boolean
    userId?: boolean
    enabled?: boolean
    delegateUserId?: boolean
    startTime?: boolean
    endTime?: boolean
    scope?: boolean
    processKeys?: boolean
    reason?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type UserDelegationSettingOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "enabled" | "delegateUserId" | "startTime" | "endTime" | "scope" | "processKeys" | "reason" | "createdAt" | "updatedAt", ExtArgs["result"]["userDelegationSetting"]>
  export type UserDelegationSettingInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    delegateUser?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type UserDelegationSettingIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    delegateUser?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type UserDelegationSettingIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    delegateUser?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $UserDelegationSettingPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "UserDelegationSetting"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      delegateUser: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      enabled: boolean
      delegateUserId: string
      startTime: Date | null
      endTime: Date | null
      scope: $Enums.DelegationScope
      processKeys: string[]
      reason: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["userDelegationSetting"]>
    composites: {}
  }

  type UserDelegationSettingGetPayload<S extends boolean | null | undefined | UserDelegationSettingDefaultArgs> = $Result.GetResult<Prisma.$UserDelegationSettingPayload, S>

  type UserDelegationSettingCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<UserDelegationSettingFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: UserDelegationSettingCountAggregateInputType | true
    }

  export interface UserDelegationSettingDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['UserDelegationSetting'], meta: { name: 'UserDelegationSetting' } }
    /**
     * Find zero or one UserDelegationSetting that matches the filter.
     * @param {UserDelegationSettingFindUniqueArgs} args - Arguments to find a UserDelegationSetting
     * @example
     * // Get one UserDelegationSetting
     * const userDelegationSetting = await prisma.userDelegationSetting.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends UserDelegationSettingFindUniqueArgs>(args: SelectSubset<T, UserDelegationSettingFindUniqueArgs<ExtArgs>>): Prisma__UserDelegationSettingClient<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one UserDelegationSetting that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {UserDelegationSettingFindUniqueOrThrowArgs} args - Arguments to find a UserDelegationSetting
     * @example
     * // Get one UserDelegationSetting
     * const userDelegationSetting = await prisma.userDelegationSetting.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends UserDelegationSettingFindUniqueOrThrowArgs>(args: SelectSubset<T, UserDelegationSettingFindUniqueOrThrowArgs<ExtArgs>>): Prisma__UserDelegationSettingClient<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UserDelegationSetting 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 {UserDelegationSettingFindFirstArgs} args - Arguments to find a UserDelegationSetting
     * @example
     * // Get one UserDelegationSetting
     * const userDelegationSetting = await prisma.userDelegationSetting.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends UserDelegationSettingFindFirstArgs>(args?: SelectSubset<T, UserDelegationSettingFindFirstArgs<ExtArgs>>): Prisma__UserDelegationSettingClient<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UserDelegationSetting 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 {UserDelegationSettingFindFirstOrThrowArgs} args - Arguments to find a UserDelegationSetting
     * @example
     * // Get one UserDelegationSetting
     * const userDelegationSetting = await prisma.userDelegationSetting.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends UserDelegationSettingFindFirstOrThrowArgs>(args?: SelectSubset<T, UserDelegationSettingFindFirstOrThrowArgs<ExtArgs>>): Prisma__UserDelegationSettingClient<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more UserDelegationSettings 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 {UserDelegationSettingFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all UserDelegationSettings
     * const userDelegationSettings = await prisma.userDelegationSetting.findMany()
     * 
     * // Get first 10 UserDelegationSettings
     * const userDelegationSettings = await prisma.userDelegationSetting.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const userDelegationSettingWithIdOnly = await prisma.userDelegationSetting.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends UserDelegationSettingFindManyArgs>(args?: SelectSubset<T, UserDelegationSettingFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a UserDelegationSetting.
     * @param {UserDelegationSettingCreateArgs} args - Arguments to create a UserDelegationSetting.
     * @example
     * // Create one UserDelegationSetting
     * const UserDelegationSetting = await prisma.userDelegationSetting.create({
     *   data: {
     *     // ... data to create a UserDelegationSetting
     *   }
     * })
     * 
     */
    create<T extends UserDelegationSettingCreateArgs>(args: SelectSubset<T, UserDelegationSettingCreateArgs<ExtArgs>>): Prisma__UserDelegationSettingClient<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many UserDelegationSettings.
     * @param {UserDelegationSettingCreateManyArgs} args - Arguments to create many UserDelegationSettings.
     * @example
     * // Create many UserDelegationSettings
     * const userDelegationSetting = await prisma.userDelegationSetting.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends UserDelegationSettingCreateManyArgs>(args?: SelectSubset<T, UserDelegationSettingCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many UserDelegationSettings and returns the data saved in the database.
     * @param {UserDelegationSettingCreateManyAndReturnArgs} args - Arguments to create many UserDelegationSettings.
     * @example
     * // Create many UserDelegationSettings
     * const userDelegationSetting = await prisma.userDelegationSetting.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many UserDelegationSettings and only return the `id`
     * const userDelegationSettingWithIdOnly = await prisma.userDelegationSetting.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 UserDelegationSettingCreateManyAndReturnArgs>(args?: SelectSubset<T, UserDelegationSettingCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a UserDelegationSetting.
     * @param {UserDelegationSettingDeleteArgs} args - Arguments to delete one UserDelegationSetting.
     * @example
     * // Delete one UserDelegationSetting
     * const UserDelegationSetting = await prisma.userDelegationSetting.delete({
     *   where: {
     *     // ... filter to delete one UserDelegationSetting
     *   }
     * })
     * 
     */
    delete<T extends UserDelegationSettingDeleteArgs>(args: SelectSubset<T, UserDelegationSettingDeleteArgs<ExtArgs>>): Prisma__UserDelegationSettingClient<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one UserDelegationSetting.
     * @param {UserDelegationSettingUpdateArgs} args - Arguments to update one UserDelegationSetting.
     * @example
     * // Update one UserDelegationSetting
     * const userDelegationSetting = await prisma.userDelegationSetting.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends UserDelegationSettingUpdateArgs>(args: SelectSubset<T, UserDelegationSettingUpdateArgs<ExtArgs>>): Prisma__UserDelegationSettingClient<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more UserDelegationSettings.
     * @param {UserDelegationSettingDeleteManyArgs} args - Arguments to filter UserDelegationSettings to delete.
     * @example
     * // Delete a few UserDelegationSettings
     * const { count } = await prisma.userDelegationSetting.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends UserDelegationSettingDeleteManyArgs>(args?: SelectSubset<T, UserDelegationSettingDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UserDelegationSettings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserDelegationSettingUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many UserDelegationSettings
     * const userDelegationSetting = await prisma.userDelegationSetting.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends UserDelegationSettingUpdateManyArgs>(args: SelectSubset<T, UserDelegationSettingUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UserDelegationSettings and returns the data updated in the database.
     * @param {UserDelegationSettingUpdateManyAndReturnArgs} args - Arguments to update many UserDelegationSettings.
     * @example
     * // Update many UserDelegationSettings
     * const userDelegationSetting = await prisma.userDelegationSetting.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more UserDelegationSettings and only return the `id`
     * const userDelegationSettingWithIdOnly = await prisma.userDelegationSetting.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 UserDelegationSettingUpdateManyAndReturnArgs>(args: SelectSubset<T, UserDelegationSettingUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one UserDelegationSetting.
     * @param {UserDelegationSettingUpsertArgs} args - Arguments to update or create a UserDelegationSetting.
     * @example
     * // Update or create a UserDelegationSetting
     * const userDelegationSetting = await prisma.userDelegationSetting.upsert({
     *   create: {
     *     // ... data to create a UserDelegationSetting
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the UserDelegationSetting we want to update
     *   }
     * })
     */
    upsert<T extends UserDelegationSettingUpsertArgs>(args: SelectSubset<T, UserDelegationSettingUpsertArgs<ExtArgs>>): Prisma__UserDelegationSettingClient<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of UserDelegationSettings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserDelegationSettingCountArgs} args - Arguments to filter UserDelegationSettings to count.
     * @example
     * // Count the number of UserDelegationSettings
     * const count = await prisma.userDelegationSetting.count({
     *   where: {
     *     // ... the filter for the UserDelegationSettings we want to count
     *   }
     * })
    **/
    count<T extends UserDelegationSettingCountArgs>(
      args?: Subset<T, UserDelegationSettingCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], UserDelegationSettingCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a UserDelegationSetting.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserDelegationSettingAggregateArgs} 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 UserDelegationSettingAggregateArgs>(args: Subset<T, UserDelegationSettingAggregateArgs>): Prisma.PrismaPromise<GetUserDelegationSettingAggregateType<T>>

    /**
     * Group by UserDelegationSetting.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserDelegationSettingGroupByArgs} 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 UserDelegationSettingGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: UserDelegationSettingGroupByArgs['orderBy'] }
        : { orderBy?: UserDelegationSettingGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, UserDelegationSettingGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetUserDelegationSettingGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the UserDelegationSetting model
   */
  readonly fields: UserDelegationSettingFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for UserDelegationSetting.
   * 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__UserDelegationSettingClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    delegateUser<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the UserDelegationSetting model
   */
  interface UserDelegationSettingFieldRefs {
    readonly id: FieldRef<"UserDelegationSetting", 'String'>
    readonly userId: FieldRef<"UserDelegationSetting", 'String'>
    readonly enabled: FieldRef<"UserDelegationSetting", 'Boolean'>
    readonly delegateUserId: FieldRef<"UserDelegationSetting", 'String'>
    readonly startTime: FieldRef<"UserDelegationSetting", 'DateTime'>
    readonly endTime: FieldRef<"UserDelegationSetting", 'DateTime'>
    readonly scope: FieldRef<"UserDelegationSetting", 'DelegationScope'>
    readonly processKeys: FieldRef<"UserDelegationSetting", 'String[]'>
    readonly reason: FieldRef<"UserDelegationSetting", 'String'>
    readonly createdAt: FieldRef<"UserDelegationSetting", 'DateTime'>
    readonly updatedAt: FieldRef<"UserDelegationSetting", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * UserDelegationSetting findUnique
   */
  export type UserDelegationSettingFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * Filter, which UserDelegationSetting to fetch.
     */
    where: UserDelegationSettingWhereUniqueInput
  }

  /**
   * UserDelegationSetting findUniqueOrThrow
   */
  export type UserDelegationSettingFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * Filter, which UserDelegationSetting to fetch.
     */
    where: UserDelegationSettingWhereUniqueInput
  }

  /**
   * UserDelegationSetting findFirst
   */
  export type UserDelegationSettingFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * Filter, which UserDelegationSetting to fetch.
     */
    where?: UserDelegationSettingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserDelegationSettings to fetch.
     */
    orderBy?: UserDelegationSettingOrderByWithRelationInput | UserDelegationSettingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UserDelegationSettings.
     */
    cursor?: UserDelegationSettingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserDelegationSettings 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` UserDelegationSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UserDelegationSettings.
     */
    distinct?: UserDelegationSettingScalarFieldEnum | UserDelegationSettingScalarFieldEnum[]
  }

  /**
   * UserDelegationSetting findFirstOrThrow
   */
  export type UserDelegationSettingFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * Filter, which UserDelegationSetting to fetch.
     */
    where?: UserDelegationSettingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserDelegationSettings to fetch.
     */
    orderBy?: UserDelegationSettingOrderByWithRelationInput | UserDelegationSettingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UserDelegationSettings.
     */
    cursor?: UserDelegationSettingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserDelegationSettings 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` UserDelegationSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UserDelegationSettings.
     */
    distinct?: UserDelegationSettingScalarFieldEnum | UserDelegationSettingScalarFieldEnum[]
  }

  /**
   * UserDelegationSetting findMany
   */
  export type UserDelegationSettingFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * Filter, which UserDelegationSettings to fetch.
     */
    where?: UserDelegationSettingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserDelegationSettings to fetch.
     */
    orderBy?: UserDelegationSettingOrderByWithRelationInput | UserDelegationSettingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing UserDelegationSettings.
     */
    cursor?: UserDelegationSettingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserDelegationSettings 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` UserDelegationSettings.
     */
    skip?: number
    distinct?: UserDelegationSettingScalarFieldEnum | UserDelegationSettingScalarFieldEnum[]
  }

  /**
   * UserDelegationSetting create
   */
  export type UserDelegationSettingCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * The data needed to create a UserDelegationSetting.
     */
    data: XOR<UserDelegationSettingCreateInput, UserDelegationSettingUncheckedCreateInput>
  }

  /**
   * UserDelegationSetting createMany
   */
  export type UserDelegationSettingCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many UserDelegationSettings.
     */
    data: UserDelegationSettingCreateManyInput | UserDelegationSettingCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * UserDelegationSetting createManyAndReturn
   */
  export type UserDelegationSettingCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * The data used to create many UserDelegationSettings.
     */
    data: UserDelegationSettingCreateManyInput | UserDelegationSettingCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * UserDelegationSetting update
   */
  export type UserDelegationSettingUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * The data needed to update a UserDelegationSetting.
     */
    data: XOR<UserDelegationSettingUpdateInput, UserDelegationSettingUncheckedUpdateInput>
    /**
     * Choose, which UserDelegationSetting to update.
     */
    where: UserDelegationSettingWhereUniqueInput
  }

  /**
   * UserDelegationSetting updateMany
   */
  export type UserDelegationSettingUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update UserDelegationSettings.
     */
    data: XOR<UserDelegationSettingUpdateManyMutationInput, UserDelegationSettingUncheckedUpdateManyInput>
    /**
     * Filter which UserDelegationSettings to update
     */
    where?: UserDelegationSettingWhereInput
    /**
     * Limit how many UserDelegationSettings to update.
     */
    limit?: number
  }

  /**
   * UserDelegationSetting updateManyAndReturn
   */
  export type UserDelegationSettingUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * The data used to update UserDelegationSettings.
     */
    data: XOR<UserDelegationSettingUpdateManyMutationInput, UserDelegationSettingUncheckedUpdateManyInput>
    /**
     * Filter which UserDelegationSettings to update
     */
    where?: UserDelegationSettingWhereInput
    /**
     * Limit how many UserDelegationSettings to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * UserDelegationSetting upsert
   */
  export type UserDelegationSettingUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * The filter to search for the UserDelegationSetting to update in case it exists.
     */
    where: UserDelegationSettingWhereUniqueInput
    /**
     * In case the UserDelegationSetting found by the `where` argument doesn't exist, create a new UserDelegationSetting with this data.
     */
    create: XOR<UserDelegationSettingCreateInput, UserDelegationSettingUncheckedCreateInput>
    /**
     * In case the UserDelegationSetting was found with the provided `where` argument, update it with this data.
     */
    update: XOR<UserDelegationSettingUpdateInput, UserDelegationSettingUncheckedUpdateInput>
  }

  /**
   * UserDelegationSetting delete
   */
  export type UserDelegationSettingDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    /**
     * Filter which UserDelegationSetting to delete.
     */
    where: UserDelegationSettingWhereUniqueInput
  }

  /**
   * UserDelegationSetting deleteMany
   */
  export type UserDelegationSettingDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UserDelegationSettings to delete
     */
    where?: UserDelegationSettingWhereInput
    /**
     * Limit how many UserDelegationSettings to delete.
     */
    limit?: number
  }

  /**
   * UserDelegationSetting without action
   */
  export type UserDelegationSettingDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
  }


  /**
   * Model ApprovalAdminConfig
   */

  export type AggregateApprovalAdminConfig = {
    _count: ApprovalAdminConfigCountAggregateOutputType | null
    _min: ApprovalAdminConfigMinAggregateOutputType | null
    _max: ApprovalAdminConfigMaxAggregateOutputType | null
  }

  export type ApprovalAdminConfigMinAggregateOutputType = {
    id: string | null
    key: string | null
    description: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ApprovalAdminConfigMaxAggregateOutputType = {
    id: string | null
    key: string | null
    description: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ApprovalAdminConfigCountAggregateOutputType = {
    id: number
    key: number
    value: number
    description: number
    updatedBy: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type ApprovalAdminConfigMinAggregateInputType = {
    id?: true
    key?: true
    description?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ApprovalAdminConfigMaxAggregateInputType = {
    id?: true
    key?: true
    description?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ApprovalAdminConfigCountAggregateInputType = {
    id?: true
    key?: true
    value?: true
    description?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type ApprovalAdminConfigAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalAdminConfig to aggregate.
     */
    where?: ApprovalAdminConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalAdminConfigs to fetch.
     */
    orderBy?: ApprovalAdminConfigOrderByWithRelationInput | ApprovalAdminConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ApprovalAdminConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalAdminConfigs 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` ApprovalAdminConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ApprovalAdminConfigs
    **/
    _count?: true | ApprovalAdminConfigCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ApprovalAdminConfigMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ApprovalAdminConfigMaxAggregateInputType
  }

  export type GetApprovalAdminConfigAggregateType<T extends ApprovalAdminConfigAggregateArgs> = {
        [P in keyof T & keyof AggregateApprovalAdminConfig]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateApprovalAdminConfig[P]>
      : GetScalarType<T[P], AggregateApprovalAdminConfig[P]>
  }




  export type ApprovalAdminConfigGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalAdminConfigWhereInput
    orderBy?: ApprovalAdminConfigOrderByWithAggregationInput | ApprovalAdminConfigOrderByWithAggregationInput[]
    by: ApprovalAdminConfigScalarFieldEnum[] | ApprovalAdminConfigScalarFieldEnum
    having?: ApprovalAdminConfigScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApprovalAdminConfigCountAggregateInputType | true
    _min?: ApprovalAdminConfigMinAggregateInputType
    _max?: ApprovalAdminConfigMaxAggregateInputType
  }

  export type ApprovalAdminConfigGroupByOutputType = {
    id: string
    key: string
    value: JsonValue
    description: string | null
    updatedBy: string | null
    createdAt: Date
    updatedAt: Date
    _count: ApprovalAdminConfigCountAggregateOutputType | null
    _min: ApprovalAdminConfigMinAggregateOutputType | null
    _max: ApprovalAdminConfigMaxAggregateOutputType | null
  }

  type GetApprovalAdminConfigGroupByPayload<T extends ApprovalAdminConfigGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ApprovalAdminConfigGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ApprovalAdminConfigGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ApprovalAdminConfigGroupByOutputType[P]>
            : GetScalarType<T[P], ApprovalAdminConfigGroupByOutputType[P]>
        }
      >
    >


  export type ApprovalAdminConfigSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["approvalAdminConfig"]>

  export type ApprovalAdminConfigSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["approvalAdminConfig"]>

  export type ApprovalAdminConfigSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["approvalAdminConfig"]>

  export type ApprovalAdminConfigSelectScalar = {
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type ApprovalAdminConfigOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "key" | "value" | "description" | "updatedBy" | "createdAt" | "updatedAt", ExtArgs["result"]["approvalAdminConfig"]>

  export type $ApprovalAdminConfigPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApprovalAdminConfig"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      key: string
      value: Prisma.JsonValue
      description: string | null
      updatedBy: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["approvalAdminConfig"]>
    composites: {}
  }

  type ApprovalAdminConfigGetPayload<S extends boolean | null | undefined | ApprovalAdminConfigDefaultArgs> = $Result.GetResult<Prisma.$ApprovalAdminConfigPayload, S>

  type ApprovalAdminConfigCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ApprovalAdminConfigFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ApprovalAdminConfigCountAggregateInputType | true
    }

  export interface ApprovalAdminConfigDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ApprovalAdminConfig'], meta: { name: 'ApprovalAdminConfig' } }
    /**
     * Find zero or one ApprovalAdminConfig that matches the filter.
     * @param {ApprovalAdminConfigFindUniqueArgs} args - Arguments to find a ApprovalAdminConfig
     * @example
     * // Get one ApprovalAdminConfig
     * const approvalAdminConfig = await prisma.approvalAdminConfig.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ApprovalAdminConfigFindUniqueArgs>(args: SelectSubset<T, ApprovalAdminConfigFindUniqueArgs<ExtArgs>>): Prisma__ApprovalAdminConfigClient<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ApprovalAdminConfig that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ApprovalAdminConfigFindUniqueOrThrowArgs} args - Arguments to find a ApprovalAdminConfig
     * @example
     * // Get one ApprovalAdminConfig
     * const approvalAdminConfig = await prisma.approvalAdminConfig.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ApprovalAdminConfigFindUniqueOrThrowArgs>(args: SelectSubset<T, ApprovalAdminConfigFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ApprovalAdminConfigClient<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ApprovalAdminConfig 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 {ApprovalAdminConfigFindFirstArgs} args - Arguments to find a ApprovalAdminConfig
     * @example
     * // Get one ApprovalAdminConfig
     * const approvalAdminConfig = await prisma.approvalAdminConfig.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ApprovalAdminConfigFindFirstArgs>(args?: SelectSubset<T, ApprovalAdminConfigFindFirstArgs<ExtArgs>>): Prisma__ApprovalAdminConfigClient<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ApprovalAdminConfig 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 {ApprovalAdminConfigFindFirstOrThrowArgs} args - Arguments to find a ApprovalAdminConfig
     * @example
     * // Get one ApprovalAdminConfig
     * const approvalAdminConfig = await prisma.approvalAdminConfig.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ApprovalAdminConfigFindFirstOrThrowArgs>(args?: SelectSubset<T, ApprovalAdminConfigFindFirstOrThrowArgs<ExtArgs>>): Prisma__ApprovalAdminConfigClient<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ApprovalAdminConfigs 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 {ApprovalAdminConfigFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ApprovalAdminConfigs
     * const approvalAdminConfigs = await prisma.approvalAdminConfig.findMany()
     * 
     * // Get first 10 ApprovalAdminConfigs
     * const approvalAdminConfigs = await prisma.approvalAdminConfig.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const approvalAdminConfigWithIdOnly = await prisma.approvalAdminConfig.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ApprovalAdminConfigFindManyArgs>(args?: SelectSubset<T, ApprovalAdminConfigFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ApprovalAdminConfig.
     * @param {ApprovalAdminConfigCreateArgs} args - Arguments to create a ApprovalAdminConfig.
     * @example
     * // Create one ApprovalAdminConfig
     * const ApprovalAdminConfig = await prisma.approvalAdminConfig.create({
     *   data: {
     *     // ... data to create a ApprovalAdminConfig
     *   }
     * })
     * 
     */
    create<T extends ApprovalAdminConfigCreateArgs>(args: SelectSubset<T, ApprovalAdminConfigCreateArgs<ExtArgs>>): Prisma__ApprovalAdminConfigClient<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ApprovalAdminConfigs.
     * @param {ApprovalAdminConfigCreateManyArgs} args - Arguments to create many ApprovalAdminConfigs.
     * @example
     * // Create many ApprovalAdminConfigs
     * const approvalAdminConfig = await prisma.approvalAdminConfig.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ApprovalAdminConfigCreateManyArgs>(args?: SelectSubset<T, ApprovalAdminConfigCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ApprovalAdminConfigs and returns the data saved in the database.
     * @param {ApprovalAdminConfigCreateManyAndReturnArgs} args - Arguments to create many ApprovalAdminConfigs.
     * @example
     * // Create many ApprovalAdminConfigs
     * const approvalAdminConfig = await prisma.approvalAdminConfig.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApprovalAdminConfigs and only return the `id`
     * const approvalAdminConfigWithIdOnly = await prisma.approvalAdminConfig.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 ApprovalAdminConfigCreateManyAndReturnArgs>(args?: SelectSubset<T, ApprovalAdminConfigCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApprovalAdminConfig.
     * @param {ApprovalAdminConfigDeleteArgs} args - Arguments to delete one ApprovalAdminConfig.
     * @example
     * // Delete one ApprovalAdminConfig
     * const ApprovalAdminConfig = await prisma.approvalAdminConfig.delete({
     *   where: {
     *     // ... filter to delete one ApprovalAdminConfig
     *   }
     * })
     * 
     */
    delete<T extends ApprovalAdminConfigDeleteArgs>(args: SelectSubset<T, ApprovalAdminConfigDeleteArgs<ExtArgs>>): Prisma__ApprovalAdminConfigClient<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ApprovalAdminConfig.
     * @param {ApprovalAdminConfigUpdateArgs} args - Arguments to update one ApprovalAdminConfig.
     * @example
     * // Update one ApprovalAdminConfig
     * const approvalAdminConfig = await prisma.approvalAdminConfig.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ApprovalAdminConfigUpdateArgs>(args: SelectSubset<T, ApprovalAdminConfigUpdateArgs<ExtArgs>>): Prisma__ApprovalAdminConfigClient<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ApprovalAdminConfigs.
     * @param {ApprovalAdminConfigDeleteManyArgs} args - Arguments to filter ApprovalAdminConfigs to delete.
     * @example
     * // Delete a few ApprovalAdminConfigs
     * const { count } = await prisma.approvalAdminConfig.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ApprovalAdminConfigDeleteManyArgs>(args?: SelectSubset<T, ApprovalAdminConfigDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ApprovalAdminConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApprovalAdminConfigUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ApprovalAdminConfigs
     * const approvalAdminConfig = await prisma.approvalAdminConfig.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ApprovalAdminConfigUpdateManyArgs>(args: SelectSubset<T, ApprovalAdminConfigUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ApprovalAdminConfigs and returns the data updated in the database.
     * @param {ApprovalAdminConfigUpdateManyAndReturnArgs} args - Arguments to update many ApprovalAdminConfigs.
     * @example
     * // Update many ApprovalAdminConfigs
     * const approvalAdminConfig = await prisma.approvalAdminConfig.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApprovalAdminConfigs and only return the `id`
     * const approvalAdminConfigWithIdOnly = await prisma.approvalAdminConfig.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 ApprovalAdminConfigUpdateManyAndReturnArgs>(args: SelectSubset<T, ApprovalAdminConfigUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ApprovalAdminConfig.
     * @param {ApprovalAdminConfigUpsertArgs} args - Arguments to update or create a ApprovalAdminConfig.
     * @example
     * // Update or create a ApprovalAdminConfig
     * const approvalAdminConfig = await prisma.approvalAdminConfig.upsert({
     *   create: {
     *     // ... data to create a ApprovalAdminConfig
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ApprovalAdminConfig we want to update
     *   }
     * })
     */
    upsert<T extends ApprovalAdminConfigUpsertArgs>(args: SelectSubset<T, ApprovalAdminConfigUpsertArgs<ExtArgs>>): Prisma__ApprovalAdminConfigClient<$Result.GetResult<Prisma.$ApprovalAdminConfigPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ApprovalAdminConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApprovalAdminConfigCountArgs} args - Arguments to filter ApprovalAdminConfigs to count.
     * @example
     * // Count the number of ApprovalAdminConfigs
     * const count = await prisma.approvalAdminConfig.count({
     *   where: {
     *     // ... the filter for the ApprovalAdminConfigs we want to count
     *   }
     * })
    **/
    count<T extends ApprovalAdminConfigCountArgs>(
      args?: Subset<T, ApprovalAdminConfigCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ApprovalAdminConfigCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ApprovalAdminConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApprovalAdminConfigAggregateArgs} 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 ApprovalAdminConfigAggregateArgs>(args: Subset<T, ApprovalAdminConfigAggregateArgs>): Prisma.PrismaPromise<GetApprovalAdminConfigAggregateType<T>>

    /**
     * Group by ApprovalAdminConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApprovalAdminConfigGroupByArgs} 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 ApprovalAdminConfigGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ApprovalAdminConfigGroupByArgs['orderBy'] }
        : { orderBy?: ApprovalAdminConfigGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ApprovalAdminConfigGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetApprovalAdminConfigGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ApprovalAdminConfig model
   */
  readonly fields: ApprovalAdminConfigFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ApprovalAdminConfig.
   * 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__ApprovalAdminConfigClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApprovalAdminConfig model
   */
  interface ApprovalAdminConfigFieldRefs {
    readonly id: FieldRef<"ApprovalAdminConfig", 'String'>
    readonly key: FieldRef<"ApprovalAdminConfig", 'String'>
    readonly value: FieldRef<"ApprovalAdminConfig", 'Json'>
    readonly description: FieldRef<"ApprovalAdminConfig", 'String'>
    readonly updatedBy: FieldRef<"ApprovalAdminConfig", 'String'>
    readonly createdAt: FieldRef<"ApprovalAdminConfig", 'DateTime'>
    readonly updatedAt: FieldRef<"ApprovalAdminConfig", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ApprovalAdminConfig findUnique
   */
  export type ApprovalAdminConfigFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminConfig to fetch.
     */
    where: ApprovalAdminConfigWhereUniqueInput
  }

  /**
   * ApprovalAdminConfig findUniqueOrThrow
   */
  export type ApprovalAdminConfigFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminConfig to fetch.
     */
    where: ApprovalAdminConfigWhereUniqueInput
  }

  /**
   * ApprovalAdminConfig findFirst
   */
  export type ApprovalAdminConfigFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminConfig to fetch.
     */
    where?: ApprovalAdminConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalAdminConfigs to fetch.
     */
    orderBy?: ApprovalAdminConfigOrderByWithRelationInput | ApprovalAdminConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ApprovalAdminConfigs.
     */
    cursor?: ApprovalAdminConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalAdminConfigs 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` ApprovalAdminConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ApprovalAdminConfigs.
     */
    distinct?: ApprovalAdminConfigScalarFieldEnum | ApprovalAdminConfigScalarFieldEnum[]
  }

  /**
   * ApprovalAdminConfig findFirstOrThrow
   */
  export type ApprovalAdminConfigFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminConfig to fetch.
     */
    where?: ApprovalAdminConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalAdminConfigs to fetch.
     */
    orderBy?: ApprovalAdminConfigOrderByWithRelationInput | ApprovalAdminConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ApprovalAdminConfigs.
     */
    cursor?: ApprovalAdminConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalAdminConfigs 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` ApprovalAdminConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ApprovalAdminConfigs.
     */
    distinct?: ApprovalAdminConfigScalarFieldEnum | ApprovalAdminConfigScalarFieldEnum[]
  }

  /**
   * ApprovalAdminConfig findMany
   */
  export type ApprovalAdminConfigFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminConfigs to fetch.
     */
    where?: ApprovalAdminConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalAdminConfigs to fetch.
     */
    orderBy?: ApprovalAdminConfigOrderByWithRelationInput | ApprovalAdminConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ApprovalAdminConfigs.
     */
    cursor?: ApprovalAdminConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalAdminConfigs 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` ApprovalAdminConfigs.
     */
    skip?: number
    distinct?: ApprovalAdminConfigScalarFieldEnum | ApprovalAdminConfigScalarFieldEnum[]
  }

  /**
   * ApprovalAdminConfig create
   */
  export type ApprovalAdminConfigCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * The data needed to create a ApprovalAdminConfig.
     */
    data: XOR<ApprovalAdminConfigCreateInput, ApprovalAdminConfigUncheckedCreateInput>
  }

  /**
   * ApprovalAdminConfig createMany
   */
  export type ApprovalAdminConfigCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApprovalAdminConfigs.
     */
    data: ApprovalAdminConfigCreateManyInput | ApprovalAdminConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalAdminConfig createManyAndReturn
   */
  export type ApprovalAdminConfigCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * The data used to create many ApprovalAdminConfigs.
     */
    data: ApprovalAdminConfigCreateManyInput | ApprovalAdminConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalAdminConfig update
   */
  export type ApprovalAdminConfigUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * The data needed to update a ApprovalAdminConfig.
     */
    data: XOR<ApprovalAdminConfigUpdateInput, ApprovalAdminConfigUncheckedUpdateInput>
    /**
     * Choose, which ApprovalAdminConfig to update.
     */
    where: ApprovalAdminConfigWhereUniqueInput
  }

  /**
   * ApprovalAdminConfig updateMany
   */
  export type ApprovalAdminConfigUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApprovalAdminConfigs.
     */
    data: XOR<ApprovalAdminConfigUpdateManyMutationInput, ApprovalAdminConfigUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalAdminConfigs to update
     */
    where?: ApprovalAdminConfigWhereInput
    /**
     * Limit how many ApprovalAdminConfigs to update.
     */
    limit?: number
  }

  /**
   * ApprovalAdminConfig updateManyAndReturn
   */
  export type ApprovalAdminConfigUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * The data used to update ApprovalAdminConfigs.
     */
    data: XOR<ApprovalAdminConfigUpdateManyMutationInput, ApprovalAdminConfigUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalAdminConfigs to update
     */
    where?: ApprovalAdminConfigWhereInput
    /**
     * Limit how many ApprovalAdminConfigs to update.
     */
    limit?: number
  }

  /**
   * ApprovalAdminConfig upsert
   */
  export type ApprovalAdminConfigUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * The filter to search for the ApprovalAdminConfig to update in case it exists.
     */
    where: ApprovalAdminConfigWhereUniqueInput
    /**
     * In case the ApprovalAdminConfig found by the `where` argument doesn't exist, create a new ApprovalAdminConfig with this data.
     */
    create: XOR<ApprovalAdminConfigCreateInput, ApprovalAdminConfigUncheckedCreateInput>
    /**
     * In case the ApprovalAdminConfig was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApprovalAdminConfigUpdateInput, ApprovalAdminConfigUncheckedUpdateInput>
  }

  /**
   * ApprovalAdminConfig delete
   */
  export type ApprovalAdminConfigDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
    /**
     * Filter which ApprovalAdminConfig to delete.
     */
    where: ApprovalAdminConfigWhereUniqueInput
  }

  /**
   * ApprovalAdminConfig deleteMany
   */
  export type ApprovalAdminConfigDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalAdminConfigs to delete
     */
    where?: ApprovalAdminConfigWhereInput
    /**
     * Limit how many ApprovalAdminConfigs to delete.
     */
    limit?: number
  }

  /**
   * ApprovalAdminConfig without action
   */
  export type ApprovalAdminConfigDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminConfig
     */
    select?: ApprovalAdminConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminConfig
     */
    omit?: ApprovalAdminConfigOmit<ExtArgs> | null
  }


  /**
   * Model ApprovalAdminExport
   */

  export type AggregateApprovalAdminExport = {
    _count: ApprovalAdminExportCountAggregateOutputType | null
    _avg: ApprovalAdminExportAvgAggregateOutputType | null
    _sum: ApprovalAdminExportSumAggregateOutputType | null
    _min: ApprovalAdminExportMinAggregateOutputType | null
    _max: ApprovalAdminExportMaxAggregateOutputType | null
  }

  export type ApprovalAdminExportAvgAggregateOutputType = {
    fileSize: number | null
    totalRows: number | null
  }

  export type ApprovalAdminExportSumAggregateOutputType = {
    fileSize: bigint | null
    totalRows: number | null
  }

  export type ApprovalAdminExportMinAggregateOutputType = {
    id: string | null
    status: $Enums.ApprovalAdminExportStatus | null
    format: string | null
    requestedBy: string | null
    fileKey: string | null
    fileName: string | null
    fileSize: bigint | null
    contentType: string | null
    totalRows: number | null
    errorMessage: string | null
    startedAt: Date | null
    completedAt: Date | null
    expiresAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ApprovalAdminExportMaxAggregateOutputType = {
    id: string | null
    status: $Enums.ApprovalAdminExportStatus | null
    format: string | null
    requestedBy: string | null
    fileKey: string | null
    fileName: string | null
    fileSize: bigint | null
    contentType: string | null
    totalRows: number | null
    errorMessage: string | null
    startedAt: Date | null
    completedAt: Date | null
    expiresAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ApprovalAdminExportCountAggregateOutputType = {
    id: number
    status: number
    format: number
    requestedBy: number
    filters: number
    fileKey: number
    fileName: number
    fileSize: number
    contentType: number
    totalRows: number
    errorMessage: number
    startedAt: number
    completedAt: number
    expiresAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type ApprovalAdminExportAvgAggregateInputType = {
    fileSize?: true
    totalRows?: true
  }

  export type ApprovalAdminExportSumAggregateInputType = {
    fileSize?: true
    totalRows?: true
  }

  export type ApprovalAdminExportMinAggregateInputType = {
    id?: true
    status?: true
    format?: true
    requestedBy?: true
    fileKey?: true
    fileName?: true
    fileSize?: true
    contentType?: true
    totalRows?: true
    errorMessage?: true
    startedAt?: true
    completedAt?: true
    expiresAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ApprovalAdminExportMaxAggregateInputType = {
    id?: true
    status?: true
    format?: true
    requestedBy?: true
    fileKey?: true
    fileName?: true
    fileSize?: true
    contentType?: true
    totalRows?: true
    errorMessage?: true
    startedAt?: true
    completedAt?: true
    expiresAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ApprovalAdminExportCountAggregateInputType = {
    id?: true
    status?: true
    format?: true
    requestedBy?: true
    filters?: true
    fileKey?: true
    fileName?: true
    fileSize?: true
    contentType?: true
    totalRows?: true
    errorMessage?: true
    startedAt?: true
    completedAt?: true
    expiresAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type ApprovalAdminExportAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalAdminExport to aggregate.
     */
    where?: ApprovalAdminExportWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalAdminExports to fetch.
     */
    orderBy?: ApprovalAdminExportOrderByWithRelationInput | ApprovalAdminExportOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ApprovalAdminExportWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalAdminExports 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` ApprovalAdminExports.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ApprovalAdminExports
    **/
    _count?: true | ApprovalAdminExportCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ApprovalAdminExportAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ApprovalAdminExportSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ApprovalAdminExportMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ApprovalAdminExportMaxAggregateInputType
  }

  export type GetApprovalAdminExportAggregateType<T extends ApprovalAdminExportAggregateArgs> = {
        [P in keyof T & keyof AggregateApprovalAdminExport]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateApprovalAdminExport[P]>
      : GetScalarType<T[P], AggregateApprovalAdminExport[P]>
  }




  export type ApprovalAdminExportGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ApprovalAdminExportWhereInput
    orderBy?: ApprovalAdminExportOrderByWithAggregationInput | ApprovalAdminExportOrderByWithAggregationInput[]
    by: ApprovalAdminExportScalarFieldEnum[] | ApprovalAdminExportScalarFieldEnum
    having?: ApprovalAdminExportScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ApprovalAdminExportCountAggregateInputType | true
    _avg?: ApprovalAdminExportAvgAggregateInputType
    _sum?: ApprovalAdminExportSumAggregateInputType
    _min?: ApprovalAdminExportMinAggregateInputType
    _max?: ApprovalAdminExportMaxAggregateInputType
  }

  export type ApprovalAdminExportGroupByOutputType = {
    id: string
    status: $Enums.ApprovalAdminExportStatus
    format: string
    requestedBy: string
    filters: JsonValue
    fileKey: string | null
    fileName: string | null
    fileSize: bigint | null
    contentType: string | null
    totalRows: number | null
    errorMessage: string | null
    startedAt: Date | null
    completedAt: Date | null
    expiresAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: ApprovalAdminExportCountAggregateOutputType | null
    _avg: ApprovalAdminExportAvgAggregateOutputType | null
    _sum: ApprovalAdminExportSumAggregateOutputType | null
    _min: ApprovalAdminExportMinAggregateOutputType | null
    _max: ApprovalAdminExportMaxAggregateOutputType | null
  }

  type GetApprovalAdminExportGroupByPayload<T extends ApprovalAdminExportGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ApprovalAdminExportGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ApprovalAdminExportGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ApprovalAdminExportGroupByOutputType[P]>
            : GetScalarType<T[P], ApprovalAdminExportGroupByOutputType[P]>
        }
      >
    >


  export type ApprovalAdminExportSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    status?: boolean
    format?: boolean
    requestedBy?: boolean
    filters?: boolean
    fileKey?: boolean
    fileName?: boolean
    fileSize?: boolean
    contentType?: boolean
    totalRows?: boolean
    errorMessage?: boolean
    startedAt?: boolean
    completedAt?: boolean
    expiresAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    requester?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalAdminExport"]>

  export type ApprovalAdminExportSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    status?: boolean
    format?: boolean
    requestedBy?: boolean
    filters?: boolean
    fileKey?: boolean
    fileName?: boolean
    fileSize?: boolean
    contentType?: boolean
    totalRows?: boolean
    errorMessage?: boolean
    startedAt?: boolean
    completedAt?: boolean
    expiresAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    requester?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalAdminExport"]>

  export type ApprovalAdminExportSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    status?: boolean
    format?: boolean
    requestedBy?: boolean
    filters?: boolean
    fileKey?: boolean
    fileName?: boolean
    fileSize?: boolean
    contentType?: boolean
    totalRows?: boolean
    errorMessage?: boolean
    startedAt?: boolean
    completedAt?: boolean
    expiresAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    requester?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["approvalAdminExport"]>

  export type ApprovalAdminExportSelectScalar = {
    id?: boolean
    status?: boolean
    format?: boolean
    requestedBy?: boolean
    filters?: boolean
    fileKey?: boolean
    fileName?: boolean
    fileSize?: boolean
    contentType?: boolean
    totalRows?: boolean
    errorMessage?: boolean
    startedAt?: boolean
    completedAt?: boolean
    expiresAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type ApprovalAdminExportOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "status" | "format" | "requestedBy" | "filters" | "fileKey" | "fileName" | "fileSize" | "contentType" | "totalRows" | "errorMessage" | "startedAt" | "completedAt" | "expiresAt" | "createdAt" | "updatedAt", ExtArgs["result"]["approvalAdminExport"]>
  export type ApprovalAdminExportInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    requester?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type ApprovalAdminExportIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    requester?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type ApprovalAdminExportIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    requester?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $ApprovalAdminExportPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ApprovalAdminExport"
    objects: {
      requester: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      status: $Enums.ApprovalAdminExportStatus
      format: string
      requestedBy: string
      filters: Prisma.JsonValue
      fileKey: string | null
      fileName: string | null
      fileSize: bigint | null
      contentType: string | null
      totalRows: number | null
      errorMessage: string | null
      startedAt: Date | null
      completedAt: Date | null
      expiresAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["approvalAdminExport"]>
    composites: {}
  }

  type ApprovalAdminExportGetPayload<S extends boolean | null | undefined | ApprovalAdminExportDefaultArgs> = $Result.GetResult<Prisma.$ApprovalAdminExportPayload, S>

  type ApprovalAdminExportCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ApprovalAdminExportFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ApprovalAdminExportCountAggregateInputType | true
    }

  export interface ApprovalAdminExportDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ApprovalAdminExport'], meta: { name: 'ApprovalAdminExport' } }
    /**
     * Find zero or one ApprovalAdminExport that matches the filter.
     * @param {ApprovalAdminExportFindUniqueArgs} args - Arguments to find a ApprovalAdminExport
     * @example
     * // Get one ApprovalAdminExport
     * const approvalAdminExport = await prisma.approvalAdminExport.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ApprovalAdminExportFindUniqueArgs>(args: SelectSubset<T, ApprovalAdminExportFindUniqueArgs<ExtArgs>>): Prisma__ApprovalAdminExportClient<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ApprovalAdminExport that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ApprovalAdminExportFindUniqueOrThrowArgs} args - Arguments to find a ApprovalAdminExport
     * @example
     * // Get one ApprovalAdminExport
     * const approvalAdminExport = await prisma.approvalAdminExport.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ApprovalAdminExportFindUniqueOrThrowArgs>(args: SelectSubset<T, ApprovalAdminExportFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ApprovalAdminExportClient<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ApprovalAdminExport 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 {ApprovalAdminExportFindFirstArgs} args - Arguments to find a ApprovalAdminExport
     * @example
     * // Get one ApprovalAdminExport
     * const approvalAdminExport = await prisma.approvalAdminExport.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ApprovalAdminExportFindFirstArgs>(args?: SelectSubset<T, ApprovalAdminExportFindFirstArgs<ExtArgs>>): Prisma__ApprovalAdminExportClient<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ApprovalAdminExport 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 {ApprovalAdminExportFindFirstOrThrowArgs} args - Arguments to find a ApprovalAdminExport
     * @example
     * // Get one ApprovalAdminExport
     * const approvalAdminExport = await prisma.approvalAdminExport.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ApprovalAdminExportFindFirstOrThrowArgs>(args?: SelectSubset<T, ApprovalAdminExportFindFirstOrThrowArgs<ExtArgs>>): Prisma__ApprovalAdminExportClient<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ApprovalAdminExports 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 {ApprovalAdminExportFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ApprovalAdminExports
     * const approvalAdminExports = await prisma.approvalAdminExport.findMany()
     * 
     * // Get first 10 ApprovalAdminExports
     * const approvalAdminExports = await prisma.approvalAdminExport.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const approvalAdminExportWithIdOnly = await prisma.approvalAdminExport.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ApprovalAdminExportFindManyArgs>(args?: SelectSubset<T, ApprovalAdminExportFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ApprovalAdminExport.
     * @param {ApprovalAdminExportCreateArgs} args - Arguments to create a ApprovalAdminExport.
     * @example
     * // Create one ApprovalAdminExport
     * const ApprovalAdminExport = await prisma.approvalAdminExport.create({
     *   data: {
     *     // ... data to create a ApprovalAdminExport
     *   }
     * })
     * 
     */
    create<T extends ApprovalAdminExportCreateArgs>(args: SelectSubset<T, ApprovalAdminExportCreateArgs<ExtArgs>>): Prisma__ApprovalAdminExportClient<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ApprovalAdminExports.
     * @param {ApprovalAdminExportCreateManyArgs} args - Arguments to create many ApprovalAdminExports.
     * @example
     * // Create many ApprovalAdminExports
     * const approvalAdminExport = await prisma.approvalAdminExport.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ApprovalAdminExportCreateManyArgs>(args?: SelectSubset<T, ApprovalAdminExportCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ApprovalAdminExports and returns the data saved in the database.
     * @param {ApprovalAdminExportCreateManyAndReturnArgs} args - Arguments to create many ApprovalAdminExports.
     * @example
     * // Create many ApprovalAdminExports
     * const approvalAdminExport = await prisma.approvalAdminExport.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ApprovalAdminExports and only return the `id`
     * const approvalAdminExportWithIdOnly = await prisma.approvalAdminExport.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 ApprovalAdminExportCreateManyAndReturnArgs>(args?: SelectSubset<T, ApprovalAdminExportCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ApprovalAdminExport.
     * @param {ApprovalAdminExportDeleteArgs} args - Arguments to delete one ApprovalAdminExport.
     * @example
     * // Delete one ApprovalAdminExport
     * const ApprovalAdminExport = await prisma.approvalAdminExport.delete({
     *   where: {
     *     // ... filter to delete one ApprovalAdminExport
     *   }
     * })
     * 
     */
    delete<T extends ApprovalAdminExportDeleteArgs>(args: SelectSubset<T, ApprovalAdminExportDeleteArgs<ExtArgs>>): Prisma__ApprovalAdminExportClient<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ApprovalAdminExport.
     * @param {ApprovalAdminExportUpdateArgs} args - Arguments to update one ApprovalAdminExport.
     * @example
     * // Update one ApprovalAdminExport
     * const approvalAdminExport = await prisma.approvalAdminExport.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ApprovalAdminExportUpdateArgs>(args: SelectSubset<T, ApprovalAdminExportUpdateArgs<ExtArgs>>): Prisma__ApprovalAdminExportClient<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ApprovalAdminExports.
     * @param {ApprovalAdminExportDeleteManyArgs} args - Arguments to filter ApprovalAdminExports to delete.
     * @example
     * // Delete a few ApprovalAdminExports
     * const { count } = await prisma.approvalAdminExport.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ApprovalAdminExportDeleteManyArgs>(args?: SelectSubset<T, ApprovalAdminExportDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ApprovalAdminExports.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApprovalAdminExportUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ApprovalAdminExports
     * const approvalAdminExport = await prisma.approvalAdminExport.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ApprovalAdminExportUpdateManyArgs>(args: SelectSubset<T, ApprovalAdminExportUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ApprovalAdminExports and returns the data updated in the database.
     * @param {ApprovalAdminExportUpdateManyAndReturnArgs} args - Arguments to update many ApprovalAdminExports.
     * @example
     * // Update many ApprovalAdminExports
     * const approvalAdminExport = await prisma.approvalAdminExport.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ApprovalAdminExports and only return the `id`
     * const approvalAdminExportWithIdOnly = await prisma.approvalAdminExport.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 ApprovalAdminExportUpdateManyAndReturnArgs>(args: SelectSubset<T, ApprovalAdminExportUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ApprovalAdminExport.
     * @param {ApprovalAdminExportUpsertArgs} args - Arguments to update or create a ApprovalAdminExport.
     * @example
     * // Update or create a ApprovalAdminExport
     * const approvalAdminExport = await prisma.approvalAdminExport.upsert({
     *   create: {
     *     // ... data to create a ApprovalAdminExport
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ApprovalAdminExport we want to update
     *   }
     * })
     */
    upsert<T extends ApprovalAdminExportUpsertArgs>(args: SelectSubset<T, ApprovalAdminExportUpsertArgs<ExtArgs>>): Prisma__ApprovalAdminExportClient<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ApprovalAdminExports.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApprovalAdminExportCountArgs} args - Arguments to filter ApprovalAdminExports to count.
     * @example
     * // Count the number of ApprovalAdminExports
     * const count = await prisma.approvalAdminExport.count({
     *   where: {
     *     // ... the filter for the ApprovalAdminExports we want to count
     *   }
     * })
    **/
    count<T extends ApprovalAdminExportCountArgs>(
      args?: Subset<T, ApprovalAdminExportCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ApprovalAdminExportCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ApprovalAdminExport.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApprovalAdminExportAggregateArgs} 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 ApprovalAdminExportAggregateArgs>(args: Subset<T, ApprovalAdminExportAggregateArgs>): Prisma.PrismaPromise<GetApprovalAdminExportAggregateType<T>>

    /**
     * Group by ApprovalAdminExport.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ApprovalAdminExportGroupByArgs} 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 ApprovalAdminExportGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ApprovalAdminExportGroupByArgs['orderBy'] }
        : { orderBy?: ApprovalAdminExportGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ApprovalAdminExportGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetApprovalAdminExportGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ApprovalAdminExport model
   */
  readonly fields: ApprovalAdminExportFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ApprovalAdminExport.
   * 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__ApprovalAdminExportClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    requester<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ApprovalAdminExport model
   */
  interface ApprovalAdminExportFieldRefs {
    readonly id: FieldRef<"ApprovalAdminExport", 'String'>
    readonly status: FieldRef<"ApprovalAdminExport", 'ApprovalAdminExportStatus'>
    readonly format: FieldRef<"ApprovalAdminExport", 'String'>
    readonly requestedBy: FieldRef<"ApprovalAdminExport", 'String'>
    readonly filters: FieldRef<"ApprovalAdminExport", 'Json'>
    readonly fileKey: FieldRef<"ApprovalAdminExport", 'String'>
    readonly fileName: FieldRef<"ApprovalAdminExport", 'String'>
    readonly fileSize: FieldRef<"ApprovalAdminExport", 'BigInt'>
    readonly contentType: FieldRef<"ApprovalAdminExport", 'String'>
    readonly totalRows: FieldRef<"ApprovalAdminExport", 'Int'>
    readonly errorMessage: FieldRef<"ApprovalAdminExport", 'String'>
    readonly startedAt: FieldRef<"ApprovalAdminExport", 'DateTime'>
    readonly completedAt: FieldRef<"ApprovalAdminExport", 'DateTime'>
    readonly expiresAt: FieldRef<"ApprovalAdminExport", 'DateTime'>
    readonly createdAt: FieldRef<"ApprovalAdminExport", 'DateTime'>
    readonly updatedAt: FieldRef<"ApprovalAdminExport", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ApprovalAdminExport findUnique
   */
  export type ApprovalAdminExportFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminExport to fetch.
     */
    where: ApprovalAdminExportWhereUniqueInput
  }

  /**
   * ApprovalAdminExport findUniqueOrThrow
   */
  export type ApprovalAdminExportFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminExport to fetch.
     */
    where: ApprovalAdminExportWhereUniqueInput
  }

  /**
   * ApprovalAdminExport findFirst
   */
  export type ApprovalAdminExportFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminExport to fetch.
     */
    where?: ApprovalAdminExportWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalAdminExports to fetch.
     */
    orderBy?: ApprovalAdminExportOrderByWithRelationInput | ApprovalAdminExportOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ApprovalAdminExports.
     */
    cursor?: ApprovalAdminExportWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalAdminExports 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` ApprovalAdminExports.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ApprovalAdminExports.
     */
    distinct?: ApprovalAdminExportScalarFieldEnum | ApprovalAdminExportScalarFieldEnum[]
  }

  /**
   * ApprovalAdminExport findFirstOrThrow
   */
  export type ApprovalAdminExportFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminExport to fetch.
     */
    where?: ApprovalAdminExportWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalAdminExports to fetch.
     */
    orderBy?: ApprovalAdminExportOrderByWithRelationInput | ApprovalAdminExportOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ApprovalAdminExports.
     */
    cursor?: ApprovalAdminExportWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalAdminExports 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` ApprovalAdminExports.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ApprovalAdminExports.
     */
    distinct?: ApprovalAdminExportScalarFieldEnum | ApprovalAdminExportScalarFieldEnum[]
  }

  /**
   * ApprovalAdminExport findMany
   */
  export type ApprovalAdminExportFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * Filter, which ApprovalAdminExports to fetch.
     */
    where?: ApprovalAdminExportWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ApprovalAdminExports to fetch.
     */
    orderBy?: ApprovalAdminExportOrderByWithRelationInput | ApprovalAdminExportOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ApprovalAdminExports.
     */
    cursor?: ApprovalAdminExportWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ApprovalAdminExports 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` ApprovalAdminExports.
     */
    skip?: number
    distinct?: ApprovalAdminExportScalarFieldEnum | ApprovalAdminExportScalarFieldEnum[]
  }

  /**
   * ApprovalAdminExport create
   */
  export type ApprovalAdminExportCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * The data needed to create a ApprovalAdminExport.
     */
    data: XOR<ApprovalAdminExportCreateInput, ApprovalAdminExportUncheckedCreateInput>
  }

  /**
   * ApprovalAdminExport createMany
   */
  export type ApprovalAdminExportCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ApprovalAdminExports.
     */
    data: ApprovalAdminExportCreateManyInput | ApprovalAdminExportCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ApprovalAdminExport createManyAndReturn
   */
  export type ApprovalAdminExportCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * The data used to create many ApprovalAdminExports.
     */
    data: ApprovalAdminExportCreateManyInput | ApprovalAdminExportCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalAdminExport update
   */
  export type ApprovalAdminExportUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * The data needed to update a ApprovalAdminExport.
     */
    data: XOR<ApprovalAdminExportUpdateInput, ApprovalAdminExportUncheckedUpdateInput>
    /**
     * Choose, which ApprovalAdminExport to update.
     */
    where: ApprovalAdminExportWhereUniqueInput
  }

  /**
   * ApprovalAdminExport updateMany
   */
  export type ApprovalAdminExportUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ApprovalAdminExports.
     */
    data: XOR<ApprovalAdminExportUpdateManyMutationInput, ApprovalAdminExportUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalAdminExports to update
     */
    where?: ApprovalAdminExportWhereInput
    /**
     * Limit how many ApprovalAdminExports to update.
     */
    limit?: number
  }

  /**
   * ApprovalAdminExport updateManyAndReturn
   */
  export type ApprovalAdminExportUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * The data used to update ApprovalAdminExports.
     */
    data: XOR<ApprovalAdminExportUpdateManyMutationInput, ApprovalAdminExportUncheckedUpdateManyInput>
    /**
     * Filter which ApprovalAdminExports to update
     */
    where?: ApprovalAdminExportWhereInput
    /**
     * Limit how many ApprovalAdminExports to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ApprovalAdminExport upsert
   */
  export type ApprovalAdminExportUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * The filter to search for the ApprovalAdminExport to update in case it exists.
     */
    where: ApprovalAdminExportWhereUniqueInput
    /**
     * In case the ApprovalAdminExport found by the `where` argument doesn't exist, create a new ApprovalAdminExport with this data.
     */
    create: XOR<ApprovalAdminExportCreateInput, ApprovalAdminExportUncheckedCreateInput>
    /**
     * In case the ApprovalAdminExport was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ApprovalAdminExportUpdateInput, ApprovalAdminExportUncheckedUpdateInput>
  }

  /**
   * ApprovalAdminExport delete
   */
  export type ApprovalAdminExportDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    /**
     * Filter which ApprovalAdminExport to delete.
     */
    where: ApprovalAdminExportWhereUniqueInput
  }

  /**
   * ApprovalAdminExport deleteMany
   */
  export type ApprovalAdminExportDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ApprovalAdminExports to delete
     */
    where?: ApprovalAdminExportWhereInput
    /**
     * Limit how many ApprovalAdminExports to delete.
     */
    limit?: number
  }

  /**
   * ApprovalAdminExport without action
   */
  export type ApprovalAdminExportDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
  }


  /**
   * Model Organization
   */

  export type AggregateOrganization = {
    _count: OrganizationCountAggregateOutputType | null
    _avg: OrganizationAvgAggregateOutputType | null
    _sum: OrganizationSumAggregateOutputType | null
    _min: OrganizationMinAggregateOutputType | null
    _max: OrganizationMaxAggregateOutputType | null
  }

  export type OrganizationAvgAggregateOutputType = {
    order: number | null
  }

  export type OrganizationSumAggregateOutputType = {
    order: number | null
  }

  export type OrganizationMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    displayName: string | null
    nameEn: string | null
    nameZh: string | null
    legalName: string | null
    legalRepresentative: string | null
    registrationNumber: string | null
    taxId: string | null
    address: string | null
    phone: string | null
    email: string | null
    website: string | null
    primaryRegionId: string | null
    status: string | null
    isActive: boolean | null
    order: number | null
    establishedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type OrganizationMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    displayName: string | null
    nameEn: string | null
    nameZh: string | null
    legalName: string | null
    legalRepresentative: string | null
    registrationNumber: string | null
    taxId: string | null
    address: string | null
    phone: string | null
    email: string | null
    website: string | null
    primaryRegionId: string | null
    status: string | null
    isActive: boolean | null
    order: number | null
    establishedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type OrganizationCountAggregateOutputType = {
    id: number
    code: number
    name: number
    displayName: number
    nameEn: number
    nameZh: number
    legalName: number
    legalRepresentative: number
    registrationNumber: number
    taxId: number
    address: number
    phone: number
    email: number
    website: number
    primaryRegionId: number
    settings: number
    financialConfig: number
    complianceConfig: number
    status: number
    isActive: number
    order: number
    metadata: number
    establishedAt: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type OrganizationAvgAggregateInputType = {
    order?: true
  }

  export type OrganizationSumAggregateInputType = {
    order?: true
  }

  export type OrganizationMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    displayName?: true
    nameEn?: true
    nameZh?: true
    legalName?: true
    legalRepresentative?: true
    registrationNumber?: true
    taxId?: true
    address?: true
    phone?: true
    email?: true
    website?: true
    primaryRegionId?: true
    status?: true
    isActive?: true
    order?: true
    establishedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type OrganizationMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    displayName?: true
    nameEn?: true
    nameZh?: true
    legalName?: true
    legalRepresentative?: true
    registrationNumber?: true
    taxId?: true
    address?: true
    phone?: true
    email?: true
    website?: true
    primaryRegionId?: true
    status?: true
    isActive?: true
    order?: true
    establishedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type OrganizationCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    displayName?: true
    nameEn?: true
    nameZh?: true
    legalName?: true
    legalRepresentative?: true
    registrationNumber?: true
    taxId?: true
    address?: true
    phone?: true
    email?: true
    website?: true
    primaryRegionId?: true
    settings?: true
    financialConfig?: true
    complianceConfig?: true
    status?: true
    isActive?: true
    order?: true
    metadata?: true
    establishedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type OrganizationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Organization to aggregate.
     */
    where?: OrganizationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Organizations to fetch.
     */
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OrganizationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Organizations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Organizations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Organizations
    **/
    _count?: true | OrganizationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: OrganizationAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: OrganizationSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OrganizationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OrganizationMaxAggregateInputType
  }

  export type GetOrganizationAggregateType<T extends OrganizationAggregateArgs> = {
        [P in keyof T & keyof AggregateOrganization]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOrganization[P]>
      : GetScalarType<T[P], AggregateOrganization[P]>
  }




  export type OrganizationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OrganizationWhereInput
    orderBy?: OrganizationOrderByWithAggregationInput | OrganizationOrderByWithAggregationInput[]
    by: OrganizationScalarFieldEnum[] | OrganizationScalarFieldEnum
    having?: OrganizationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OrganizationCountAggregateInputType | true
    _avg?: OrganizationAvgAggregateInputType
    _sum?: OrganizationSumAggregateInputType
    _min?: OrganizationMinAggregateInputType
    _max?: OrganizationMaxAggregateInputType
  }

  export type OrganizationGroupByOutputType = {
    id: string
    code: string
    name: string
    displayName: string | null
    nameEn: string | null
    nameZh: string | null
    legalName: string | null
    legalRepresentative: string | null
    registrationNumber: string | null
    taxId: string | null
    address: string | null
    phone: string | null
    email: string | null
    website: string | null
    primaryRegionId: string | null
    settings: JsonValue
    financialConfig: JsonValue
    complianceConfig: JsonValue
    status: string
    isActive: boolean
    order: number
    metadata: JsonValue
    establishedAt: Date | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: OrganizationCountAggregateOutputType | null
    _avg: OrganizationAvgAggregateOutputType | null
    _sum: OrganizationSumAggregateOutputType | null
    _min: OrganizationMinAggregateOutputType | null
    _max: OrganizationMaxAggregateOutputType | null
  }

  type GetOrganizationGroupByPayload<T extends OrganizationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OrganizationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OrganizationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OrganizationGroupByOutputType[P]>
            : GetScalarType<T[P], OrganizationGroupByOutputType[P]>
        }
      >
    >


  export type OrganizationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    displayName?: boolean
    nameEn?: boolean
    nameZh?: boolean
    legalName?: boolean
    legalRepresentative?: boolean
    registrationNumber?: boolean
    taxId?: boolean
    address?: boolean
    phone?: boolean
    email?: boolean
    website?: boolean
    primaryRegionId?: boolean
    settings?: boolean
    financialConfig?: boolean
    complianceConfig?: boolean
    status?: boolean
    isActive?: boolean
    order?: boolean
    metadata?: boolean
    establishedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    primaryRegion?: boolean | Organization$primaryRegionArgs<ExtArgs>
    departments?: boolean | Organization$departmentsArgs<ExtArgs>
    userDepartments?: boolean | Organization$userDepartmentsArgs<ExtArgs>
    organizationRegions?: boolean | Organization$organizationRegionsArgs<ExtArgs>
    formDefinitions?: boolean | Organization$formDefinitionsArgs<ExtArgs>
    formWebhooks?: boolean | Organization$formWebhooksArgs<ExtArgs>
    approvalDefinitions?: boolean | Organization$approvalDefinitionsArgs<ExtArgs>
    userRoles?: boolean | Organization$userRolesArgs<ExtArgs>
    performanceCycles?: boolean | Organization$performanceCyclesArgs<ExtArgs>
    gradeConfigs?: boolean | Organization$gradeConfigsArgs<ExtArgs>
    performanceResults?: boolean | Organization$performanceResultsArgs<ExtArgs>
    evaluation360Templates?: boolean | Organization$evaluation360TemplatesArgs<ExtArgs>
    aiUsageTokens?: boolean | Organization$aiUsageTokensArgs<ExtArgs>
    aiUsageDevices?: boolean | Organization$aiUsageDevicesArgs<ExtArgs>
    aiUsageEvents?: boolean | Organization$aiUsageEventsArgs<ExtArgs>
    aiUsageRollups?: boolean | Organization$aiUsageRollupsArgs<ExtArgs>
    meetingAgendaSections?: boolean | Organization$meetingAgendaSectionsArgs<ExtArgs>
    meetingAgendaItems?: boolean | Organization$meetingAgendaItemsArgs<ExtArgs>
    meetingAgendaItemUploadTasks?: boolean | Organization$meetingAgendaItemUploadTasksArgs<ExtArgs>
    meetingAgendaItemAttachments?: boolean | Organization$meetingAgendaItemAttachmentsArgs<ExtArgs>
    meetingAttachments?: boolean | Organization$meetingAttachmentsArgs<ExtArgs>
    _count?: boolean | OrganizationCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["organization"]>

  export type OrganizationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    displayName?: boolean
    nameEn?: boolean
    nameZh?: boolean
    legalName?: boolean
    legalRepresentative?: boolean
    registrationNumber?: boolean
    taxId?: boolean
    address?: boolean
    phone?: boolean
    email?: boolean
    website?: boolean
    primaryRegionId?: boolean
    settings?: boolean
    financialConfig?: boolean
    complianceConfig?: boolean
    status?: boolean
    isActive?: boolean
    order?: boolean
    metadata?: boolean
    establishedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    primaryRegion?: boolean | Organization$primaryRegionArgs<ExtArgs>
  }, ExtArgs["result"]["organization"]>

  export type OrganizationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    displayName?: boolean
    nameEn?: boolean
    nameZh?: boolean
    legalName?: boolean
    legalRepresentative?: boolean
    registrationNumber?: boolean
    taxId?: boolean
    address?: boolean
    phone?: boolean
    email?: boolean
    website?: boolean
    primaryRegionId?: boolean
    settings?: boolean
    financialConfig?: boolean
    complianceConfig?: boolean
    status?: boolean
    isActive?: boolean
    order?: boolean
    metadata?: boolean
    establishedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    primaryRegion?: boolean | Organization$primaryRegionArgs<ExtArgs>
  }, ExtArgs["result"]["organization"]>

  export type OrganizationSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    displayName?: boolean
    nameEn?: boolean
    nameZh?: boolean
    legalName?: boolean
    legalRepresentative?: boolean
    registrationNumber?: boolean
    taxId?: boolean
    address?: boolean
    phone?: boolean
    email?: boolean
    website?: boolean
    primaryRegionId?: boolean
    settings?: boolean
    financialConfig?: boolean
    complianceConfig?: boolean
    status?: boolean
    isActive?: boolean
    order?: boolean
    metadata?: boolean
    establishedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type OrganizationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "displayName" | "nameEn" | "nameZh" | "legalName" | "legalRepresentative" | "registrationNumber" | "taxId" | "address" | "phone" | "email" | "website" | "primaryRegionId" | "settings" | "financialConfig" | "complianceConfig" | "status" | "isActive" | "order" | "metadata" | "establishedAt" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["organization"]>
  export type OrganizationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    primaryRegion?: boolean | Organization$primaryRegionArgs<ExtArgs>
    departments?: boolean | Organization$departmentsArgs<ExtArgs>
    userDepartments?: boolean | Organization$userDepartmentsArgs<ExtArgs>
    organizationRegions?: boolean | Organization$organizationRegionsArgs<ExtArgs>
    formDefinitions?: boolean | Organization$formDefinitionsArgs<ExtArgs>
    formWebhooks?: boolean | Organization$formWebhooksArgs<ExtArgs>
    approvalDefinitions?: boolean | Organization$approvalDefinitionsArgs<ExtArgs>
    userRoles?: boolean | Organization$userRolesArgs<ExtArgs>
    performanceCycles?: boolean | Organization$performanceCyclesArgs<ExtArgs>
    gradeConfigs?: boolean | Organization$gradeConfigsArgs<ExtArgs>
    performanceResults?: boolean | Organization$performanceResultsArgs<ExtArgs>
    evaluation360Templates?: boolean | Organization$evaluation360TemplatesArgs<ExtArgs>
    aiUsageTokens?: boolean | Organization$aiUsageTokensArgs<ExtArgs>
    aiUsageDevices?: boolean | Organization$aiUsageDevicesArgs<ExtArgs>
    aiUsageEvents?: boolean | Organization$aiUsageEventsArgs<ExtArgs>
    aiUsageRollups?: boolean | Organization$aiUsageRollupsArgs<ExtArgs>
    meetingAgendaSections?: boolean | Organization$meetingAgendaSectionsArgs<ExtArgs>
    meetingAgendaItems?: boolean | Organization$meetingAgendaItemsArgs<ExtArgs>
    meetingAgendaItemUploadTasks?: boolean | Organization$meetingAgendaItemUploadTasksArgs<ExtArgs>
    meetingAgendaItemAttachments?: boolean | Organization$meetingAgendaItemAttachmentsArgs<ExtArgs>
    meetingAttachments?: boolean | Organization$meetingAttachmentsArgs<ExtArgs>
    _count?: boolean | OrganizationCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type OrganizationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    primaryRegion?: boolean | Organization$primaryRegionArgs<ExtArgs>
  }
  export type OrganizationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    primaryRegion?: boolean | Organization$primaryRegionArgs<ExtArgs>
  }

  export type $OrganizationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Organization"
    objects: {
      primaryRegion: Prisma.$RegionPayload<ExtArgs> | null
      departments: Prisma.$DepartmentPayload<ExtArgs>[]
      userDepartments: Prisma.$UserDepartmentPayload<ExtArgs>[]
      organizationRegions: Prisma.$OrganizationRegionPayload<ExtArgs>[]
      formDefinitions: Prisma.$FormDefinitionPayload<ExtArgs>[]
      formWebhooks: Prisma.$FormWebhookPayload<ExtArgs>[]
      approvalDefinitions: Prisma.$ApprovalDefinitionPayload<ExtArgs>[]
      userRoles: Prisma.$UserRolePayload<ExtArgs>[]
      performanceCycles: Prisma.$PerformanceCyclePayload<ExtArgs>[]
      gradeConfigs: Prisma.$GradeConfigPayload<ExtArgs>[]
      performanceResults: Prisma.$PerformanceResultPayload<ExtArgs>[]
      evaluation360Templates: Prisma.$Evaluation360TemplatePayload<ExtArgs>[]
      aiUsageTokens: Prisma.$AiUsageTokenPayload<ExtArgs>[]
      aiUsageDevices: Prisma.$AiUsageDevicePayload<ExtArgs>[]
      aiUsageEvents: Prisma.$AiUsageEventPayload<ExtArgs>[]
      aiUsageRollups: Prisma.$AiUsageDailyRollupPayload<ExtArgs>[]
      meetingAgendaSections: Prisma.$MeetingAgendaSectionPayload<ExtArgs>[]
      meetingAgendaItems: Prisma.$MeetingAgendaItemPayload<ExtArgs>[]
      meetingAgendaItemUploadTasks: Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>[]
      meetingAgendaItemAttachments: Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>[]
      meetingAttachments: Prisma.$MeetingAttachmentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      displayName: string | null
      nameEn: string | null
      nameZh: string | null
      legalName: string | null
      legalRepresentative: string | null
      registrationNumber: string | null
      taxId: string | null
      address: string | null
      phone: string | null
      email: string | null
      website: string | null
      primaryRegionId: string | null
      settings: Prisma.JsonValue
      financialConfig: Prisma.JsonValue
      complianceConfig: Prisma.JsonValue
      status: string
      isActive: boolean
      order: number
      metadata: Prisma.JsonValue
      establishedAt: Date | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["organization"]>
    composites: {}
  }

  type OrganizationGetPayload<S extends boolean | null | undefined | OrganizationDefaultArgs> = $Result.GetResult<Prisma.$OrganizationPayload, S>

  type OrganizationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OrganizationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OrganizationCountAggregateInputType | true
    }

  export interface OrganizationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Organization'], meta: { name: 'Organization' } }
    /**
     * Find zero or one Organization that matches the filter.
     * @param {OrganizationFindUniqueArgs} args - Arguments to find a Organization
     * @example
     * // Get one Organization
     * const organization = await prisma.organization.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OrganizationFindUniqueArgs>(args: SelectSubset<T, OrganizationFindUniqueArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Organization that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OrganizationFindUniqueOrThrowArgs} args - Arguments to find a Organization
     * @example
     * // Get one Organization
     * const organization = await prisma.organization.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OrganizationFindUniqueOrThrowArgs>(args: SelectSubset<T, OrganizationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Organization that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationFindFirstArgs} args - Arguments to find a Organization
     * @example
     * // Get one Organization
     * const organization = await prisma.organization.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OrganizationFindFirstArgs>(args?: SelectSubset<T, OrganizationFindFirstArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Organization that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationFindFirstOrThrowArgs} args - Arguments to find a Organization
     * @example
     * // Get one Organization
     * const organization = await prisma.organization.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OrganizationFindFirstOrThrowArgs>(args?: SelectSubset<T, OrganizationFindFirstOrThrowArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Organizations that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Organizations
     * const organizations = await prisma.organization.findMany()
     * 
     * // Get first 10 Organizations
     * const organizations = await prisma.organization.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const organizationWithIdOnly = await prisma.organization.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OrganizationFindManyArgs>(args?: SelectSubset<T, OrganizationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Organization.
     * @param {OrganizationCreateArgs} args - Arguments to create a Organization.
     * @example
     * // Create one Organization
     * const Organization = await prisma.organization.create({
     *   data: {
     *     // ... data to create a Organization
     *   }
     * })
     * 
     */
    create<T extends OrganizationCreateArgs>(args: SelectSubset<T, OrganizationCreateArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Organizations.
     * @param {OrganizationCreateManyArgs} args - Arguments to create many Organizations.
     * @example
     * // Create many Organizations
     * const organization = await prisma.organization.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OrganizationCreateManyArgs>(args?: SelectSubset<T, OrganizationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Organizations and returns the data saved in the database.
     * @param {OrganizationCreateManyAndReturnArgs} args - Arguments to create many Organizations.
     * @example
     * // Create many Organizations
     * const organization = await prisma.organization.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Organizations and only return the `id`
     * const organizationWithIdOnly = await prisma.organization.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends OrganizationCreateManyAndReturnArgs>(args?: SelectSubset<T, OrganizationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Organization.
     * @param {OrganizationDeleteArgs} args - Arguments to delete one Organization.
     * @example
     * // Delete one Organization
     * const Organization = await prisma.organization.delete({
     *   where: {
     *     // ... filter to delete one Organization
     *   }
     * })
     * 
     */
    delete<T extends OrganizationDeleteArgs>(args: SelectSubset<T, OrganizationDeleteArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Organization.
     * @param {OrganizationUpdateArgs} args - Arguments to update one Organization.
     * @example
     * // Update one Organization
     * const organization = await prisma.organization.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OrganizationUpdateArgs>(args: SelectSubset<T, OrganizationUpdateArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Organizations.
     * @param {OrganizationDeleteManyArgs} args - Arguments to filter Organizations to delete.
     * @example
     * // Delete a few Organizations
     * const { count } = await prisma.organization.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OrganizationDeleteManyArgs>(args?: SelectSubset<T, OrganizationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Organizations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Organizations
     * const organization = await prisma.organization.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OrganizationUpdateManyArgs>(args: SelectSubset<T, OrganizationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Organizations and returns the data updated in the database.
     * @param {OrganizationUpdateManyAndReturnArgs} args - Arguments to update many Organizations.
     * @example
     * // Update many Organizations
     * const organization = await prisma.organization.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Organizations and only return the `id`
     * const organizationWithIdOnly = await prisma.organization.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends OrganizationUpdateManyAndReturnArgs>(args: SelectSubset<T, OrganizationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Organization.
     * @param {OrganizationUpsertArgs} args - Arguments to update or create a Organization.
     * @example
     * // Update or create a Organization
     * const organization = await prisma.organization.upsert({
     *   create: {
     *     // ... data to create a Organization
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Organization we want to update
     *   }
     * })
     */
    upsert<T extends OrganizationUpsertArgs>(args: SelectSubset<T, OrganizationUpsertArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Organizations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationCountArgs} args - Arguments to filter Organizations to count.
     * @example
     * // Count the number of Organizations
     * const count = await prisma.organization.count({
     *   where: {
     *     // ... the filter for the Organizations we want to count
     *   }
     * })
    **/
    count<T extends OrganizationCountArgs>(
      args?: Subset<T, OrganizationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OrganizationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Organization.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends OrganizationAggregateArgs>(args: Subset<T, OrganizationAggregateArgs>): Prisma.PrismaPromise<GetOrganizationAggregateType<T>>

    /**
     * Group by Organization.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends OrganizationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OrganizationGroupByArgs['orderBy'] }
        : { orderBy?: OrganizationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OrganizationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOrganizationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Organization model
   */
  readonly fields: OrganizationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Organization.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__OrganizationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    primaryRegion<T extends Organization$primaryRegionArgs<ExtArgs> = {}>(args?: Subset<T, Organization$primaryRegionArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    departments<T extends Organization$departmentsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$departmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    userDepartments<T extends Organization$userDepartmentsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$userDepartmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    organizationRegions<T extends Organization$organizationRegionsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$organizationRegionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    formDefinitions<T extends Organization$formDefinitionsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$formDefinitionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    formWebhooks<T extends Organization$formWebhooksArgs<ExtArgs> = {}>(args?: Subset<T, Organization$formWebhooksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    approvalDefinitions<T extends Organization$approvalDefinitionsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$approvalDefinitionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalDefinitionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    userRoles<T extends Organization$userRolesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$userRolesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    performanceCycles<T extends Organization$performanceCyclesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$performanceCyclesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    gradeConfigs<T extends Organization$gradeConfigsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$gradeConfigsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    performanceResults<T extends Organization$performanceResultsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$performanceResultsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    evaluation360Templates<T extends Organization$evaluation360TemplatesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$evaluation360TemplatesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageTokens<T extends Organization$aiUsageTokensArgs<ExtArgs> = {}>(args?: Subset<T, Organization$aiUsageTokensArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageDevices<T extends Organization$aiUsageDevicesArgs<ExtArgs> = {}>(args?: Subset<T, Organization$aiUsageDevicesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageEvents<T extends Organization$aiUsageEventsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$aiUsageEventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageRollups<T extends Organization$aiUsageRollupsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$aiUsageRollupsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAgendaSections<T extends Organization$meetingAgendaSectionsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$meetingAgendaSectionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAgendaItems<T extends Organization$meetingAgendaItemsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$meetingAgendaItemsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAgendaItemUploadTasks<T extends Organization$meetingAgendaItemUploadTasksArgs<ExtArgs> = {}>(args?: Subset<T, Organization$meetingAgendaItemUploadTasksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAgendaItemAttachments<T extends Organization$meetingAgendaItemAttachmentsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$meetingAgendaItemAttachmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAttachments<T extends Organization$meetingAttachmentsArgs<ExtArgs> = {}>(args?: Subset<T, Organization$meetingAttachmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Organization model
   */
  interface OrganizationFieldRefs {
    readonly id: FieldRef<"Organization", 'String'>
    readonly code: FieldRef<"Organization", 'String'>
    readonly name: FieldRef<"Organization", 'String'>
    readonly displayName: FieldRef<"Organization", 'String'>
    readonly nameEn: FieldRef<"Organization", 'String'>
    readonly nameZh: FieldRef<"Organization", 'String'>
    readonly legalName: FieldRef<"Organization", 'String'>
    readonly legalRepresentative: FieldRef<"Organization", 'String'>
    readonly registrationNumber: FieldRef<"Organization", 'String'>
    readonly taxId: FieldRef<"Organization", 'String'>
    readonly address: FieldRef<"Organization", 'String'>
    readonly phone: FieldRef<"Organization", 'String'>
    readonly email: FieldRef<"Organization", 'String'>
    readonly website: FieldRef<"Organization", 'String'>
    readonly primaryRegionId: FieldRef<"Organization", 'String'>
    readonly settings: FieldRef<"Organization", 'Json'>
    readonly financialConfig: FieldRef<"Organization", 'Json'>
    readonly complianceConfig: FieldRef<"Organization", 'Json'>
    readonly status: FieldRef<"Organization", 'String'>
    readonly isActive: FieldRef<"Organization", 'Boolean'>
    readonly order: FieldRef<"Organization", 'Int'>
    readonly metadata: FieldRef<"Organization", 'Json'>
    readonly establishedAt: FieldRef<"Organization", 'DateTime'>
    readonly createdAt: FieldRef<"Organization", 'DateTime'>
    readonly updatedAt: FieldRef<"Organization", 'DateTime'>
    readonly deletedAt: FieldRef<"Organization", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Organization findUnique
   */
  export type OrganizationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organization to fetch.
     */
    where: OrganizationWhereUniqueInput
  }

  /**
   * Organization findUniqueOrThrow
   */
  export type OrganizationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organization to fetch.
     */
    where: OrganizationWhereUniqueInput
  }

  /**
   * Organization findFirst
   */
  export type OrganizationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organization to fetch.
     */
    where?: OrganizationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Organizations to fetch.
     */
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Organizations.
     */
    cursor?: OrganizationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Organizations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Organizations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Organizations.
     */
    distinct?: OrganizationScalarFieldEnum | OrganizationScalarFieldEnum[]
  }

  /**
   * Organization findFirstOrThrow
   */
  export type OrganizationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organization to fetch.
     */
    where?: OrganizationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Organizations to fetch.
     */
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Organizations.
     */
    cursor?: OrganizationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Organizations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Organizations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Organizations.
     */
    distinct?: OrganizationScalarFieldEnum | OrganizationScalarFieldEnum[]
  }

  /**
   * Organization findMany
   */
  export type OrganizationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter, which Organizations to fetch.
     */
    where?: OrganizationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Organizations to fetch.
     */
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Organizations.
     */
    cursor?: OrganizationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Organizations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Organizations.
     */
    skip?: number
    distinct?: OrganizationScalarFieldEnum | OrganizationScalarFieldEnum[]
  }

  /**
   * Organization create
   */
  export type OrganizationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * The data needed to create a Organization.
     */
    data: XOR<OrganizationCreateInput, OrganizationUncheckedCreateInput>
  }

  /**
   * Organization createMany
   */
  export type OrganizationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Organizations.
     */
    data: OrganizationCreateManyInput | OrganizationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Organization createManyAndReturn
   */
  export type OrganizationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * The data used to create many Organizations.
     */
    data: OrganizationCreateManyInput | OrganizationCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Organization update
   */
  export type OrganizationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * The data needed to update a Organization.
     */
    data: XOR<OrganizationUpdateInput, OrganizationUncheckedUpdateInput>
    /**
     * Choose, which Organization to update.
     */
    where: OrganizationWhereUniqueInput
  }

  /**
   * Organization updateMany
   */
  export type OrganizationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Organizations.
     */
    data: XOR<OrganizationUpdateManyMutationInput, OrganizationUncheckedUpdateManyInput>
    /**
     * Filter which Organizations to update
     */
    where?: OrganizationWhereInput
    /**
     * Limit how many Organizations to update.
     */
    limit?: number
  }

  /**
   * Organization updateManyAndReturn
   */
  export type OrganizationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * The data used to update Organizations.
     */
    data: XOR<OrganizationUpdateManyMutationInput, OrganizationUncheckedUpdateManyInput>
    /**
     * Filter which Organizations to update
     */
    where?: OrganizationWhereInput
    /**
     * Limit how many Organizations to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Organization upsert
   */
  export type OrganizationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * The filter to search for the Organization to update in case it exists.
     */
    where: OrganizationWhereUniqueInput
    /**
     * In case the Organization found by the `where` argument doesn't exist, create a new Organization with this data.
     */
    create: XOR<OrganizationCreateInput, OrganizationUncheckedCreateInput>
    /**
     * In case the Organization was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OrganizationUpdateInput, OrganizationUncheckedUpdateInput>
  }

  /**
   * Organization delete
   */
  export type OrganizationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    /**
     * Filter which Organization to delete.
     */
    where: OrganizationWhereUniqueInput
  }

  /**
   * Organization deleteMany
   */
  export type OrganizationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Organizations to delete
     */
    where?: OrganizationWhereInput
    /**
     * Limit how many Organizations to delete.
     */
    limit?: number
  }

  /**
   * Organization.primaryRegion
   */
  export type Organization$primaryRegionArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    where?: RegionWhereInput
  }

  /**
   * Organization.departments
   */
  export type Organization$departmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    where?: DepartmentWhereInput
    orderBy?: DepartmentOrderByWithRelationInput | DepartmentOrderByWithRelationInput[]
    cursor?: DepartmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DepartmentScalarFieldEnum | DepartmentScalarFieldEnum[]
  }

  /**
   * Organization.userDepartments
   */
  export type Organization$userDepartmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    where?: UserDepartmentWhereInput
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    cursor?: UserDepartmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserDepartmentScalarFieldEnum | UserDepartmentScalarFieldEnum[]
  }

  /**
   * Organization.organizationRegions
   */
  export type Organization$organizationRegionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    where?: OrganizationRegionWhereInput
    orderBy?: OrganizationRegionOrderByWithRelationInput | OrganizationRegionOrderByWithRelationInput[]
    cursor?: OrganizationRegionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OrganizationRegionScalarFieldEnum | OrganizationRegionScalarFieldEnum[]
  }

  /**
   * Organization.formDefinitions
   */
  export type Organization$formDefinitionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    where?: FormDefinitionWhereInput
    orderBy?: FormDefinitionOrderByWithRelationInput | FormDefinitionOrderByWithRelationInput[]
    cursor?: FormDefinitionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormDefinitionScalarFieldEnum | FormDefinitionScalarFieldEnum[]
  }

  /**
   * Organization.formWebhooks
   */
  export type Organization$formWebhooksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    where?: FormWebhookWhereInput
    orderBy?: FormWebhookOrderByWithRelationInput | FormWebhookOrderByWithRelationInput[]
    cursor?: FormWebhookWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormWebhookScalarFieldEnum | FormWebhookScalarFieldEnum[]
  }

  /**
   * Organization.approvalDefinitions
   */
  export type Organization$approvalDefinitionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalDefinition
     */
    select?: ApprovalDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalDefinition
     */
    omit?: ApprovalDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalDefinitionInclude<ExtArgs> | null
    where?: ApprovalDefinitionWhereInput
    orderBy?: ApprovalDefinitionOrderByWithRelationInput | ApprovalDefinitionOrderByWithRelationInput[]
    cursor?: ApprovalDefinitionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalDefinitionScalarFieldEnum | ApprovalDefinitionScalarFieldEnum[]
  }

  /**
   * Organization.userRoles
   */
  export type Organization$userRolesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    where?: UserRoleWhereInput
    orderBy?: UserRoleOrderByWithRelationInput | UserRoleOrderByWithRelationInput[]
    cursor?: UserRoleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserRoleScalarFieldEnum | UserRoleScalarFieldEnum[]
  }

  /**
   * Organization.performanceCycles
   */
  export type Organization$performanceCyclesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    where?: PerformanceCycleWhereInput
    orderBy?: PerformanceCycleOrderByWithRelationInput | PerformanceCycleOrderByWithRelationInput[]
    cursor?: PerformanceCycleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PerformanceCycleScalarFieldEnum | PerformanceCycleScalarFieldEnum[]
  }

  /**
   * Organization.gradeConfigs
   */
  export type Organization$gradeConfigsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    where?: GradeConfigWhereInput
    orderBy?: GradeConfigOrderByWithRelationInput | GradeConfigOrderByWithRelationInput[]
    cursor?: GradeConfigWhereUniqueInput
    take?: number
    skip?: number
    distinct?: GradeConfigScalarFieldEnum | GradeConfigScalarFieldEnum[]
  }

  /**
   * Organization.performanceResults
   */
  export type Organization$performanceResultsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    where?: PerformanceResultWhereInput
    orderBy?: PerformanceResultOrderByWithRelationInput | PerformanceResultOrderByWithRelationInput[]
    cursor?: PerformanceResultWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PerformanceResultScalarFieldEnum | PerformanceResultScalarFieldEnum[]
  }

  /**
   * Organization.evaluation360Templates
   */
  export type Organization$evaluation360TemplatesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    where?: Evaluation360TemplateWhereInput
    orderBy?: Evaluation360TemplateOrderByWithRelationInput | Evaluation360TemplateOrderByWithRelationInput[]
    cursor?: Evaluation360TemplateWhereUniqueInput
    take?: number
    skip?: number
    distinct?: Evaluation360TemplateScalarFieldEnum | Evaluation360TemplateScalarFieldEnum[]
  }

  /**
   * Organization.aiUsageTokens
   */
  export type Organization$aiUsageTokensArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    where?: AiUsageTokenWhereInput
    orderBy?: AiUsageTokenOrderByWithRelationInput | AiUsageTokenOrderByWithRelationInput[]
    cursor?: AiUsageTokenWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageTokenScalarFieldEnum | AiUsageTokenScalarFieldEnum[]
  }

  /**
   * Organization.aiUsageDevices
   */
  export type Organization$aiUsageDevicesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    where?: AiUsageDeviceWhereInput
    orderBy?: AiUsageDeviceOrderByWithRelationInput | AiUsageDeviceOrderByWithRelationInput[]
    cursor?: AiUsageDeviceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageDeviceScalarFieldEnum | AiUsageDeviceScalarFieldEnum[]
  }

  /**
   * Organization.aiUsageEvents
   */
  export type Organization$aiUsageEventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    where?: AiUsageEventWhereInput
    orderBy?: AiUsageEventOrderByWithRelationInput | AiUsageEventOrderByWithRelationInput[]
    cursor?: AiUsageEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageEventScalarFieldEnum | AiUsageEventScalarFieldEnum[]
  }

  /**
   * Organization.aiUsageRollups
   */
  export type Organization$aiUsageRollupsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    where?: AiUsageDailyRollupWhereInput
    orderBy?: AiUsageDailyRollupOrderByWithRelationInput | AiUsageDailyRollupOrderByWithRelationInput[]
    cursor?: AiUsageDailyRollupWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageDailyRollupScalarFieldEnum | AiUsageDailyRollupScalarFieldEnum[]
  }

  /**
   * Organization.meetingAgendaSections
   */
  export type Organization$meetingAgendaSectionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    where?: MeetingAgendaSectionWhereInput
    orderBy?: MeetingAgendaSectionOrderByWithRelationInput | MeetingAgendaSectionOrderByWithRelationInput[]
    cursor?: MeetingAgendaSectionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaSectionScalarFieldEnum | MeetingAgendaSectionScalarFieldEnum[]
  }

  /**
   * Organization.meetingAgendaItems
   */
  export type Organization$meetingAgendaItemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    where?: MeetingAgendaItemWhereInput
    orderBy?: MeetingAgendaItemOrderByWithRelationInput | MeetingAgendaItemOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemScalarFieldEnum | MeetingAgendaItemScalarFieldEnum[]
  }

  /**
   * Organization.meetingAgendaItemUploadTasks
   */
  export type Organization$meetingAgendaItemUploadTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    where?: MeetingAgendaItemUploadTaskWhereInput
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemUploadTaskScalarFieldEnum | MeetingAgendaItemUploadTaskScalarFieldEnum[]
  }

  /**
   * Organization.meetingAgendaItemAttachments
   */
  export type Organization$meetingAgendaItemAttachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    where?: MeetingAgendaItemAttachmentWhereInput
    orderBy?: MeetingAgendaItemAttachmentOrderByWithRelationInput | MeetingAgendaItemAttachmentOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemAttachmentScalarFieldEnum | MeetingAgendaItemAttachmentScalarFieldEnum[]
  }

  /**
   * Organization.meetingAttachments
   */
  export type Organization$meetingAttachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    where?: MeetingAttachmentWhereInput
    orderBy?: MeetingAttachmentOrderByWithRelationInput | MeetingAttachmentOrderByWithRelationInput[]
    cursor?: MeetingAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttachmentScalarFieldEnum | MeetingAttachmentScalarFieldEnum[]
  }

  /**
   * Organization without action
   */
  export type OrganizationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
  }


  /**
   * Model OrganizationRegion
   */

  export type AggregateOrganizationRegion = {
    _count: OrganizationRegionCountAggregateOutputType | null
    _min: OrganizationRegionMinAggregateOutputType | null
    _max: OrganizationRegionMaxAggregateOutputType | null
  }

  export type OrganizationRegionMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    regionId: string | null
    isDefault: boolean | null
    createdAt: Date | null
  }

  export type OrganizationRegionMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    regionId: string | null
    isDefault: boolean | null
    createdAt: Date | null
  }

  export type OrganizationRegionCountAggregateOutputType = {
    id: number
    organizationId: number
    regionId: number
    isDefault: number
    createdAt: number
    _all: number
  }


  export type OrganizationRegionMinAggregateInputType = {
    id?: true
    organizationId?: true
    regionId?: true
    isDefault?: true
    createdAt?: true
  }

  export type OrganizationRegionMaxAggregateInputType = {
    id?: true
    organizationId?: true
    regionId?: true
    isDefault?: true
    createdAt?: true
  }

  export type OrganizationRegionCountAggregateInputType = {
    id?: true
    organizationId?: true
    regionId?: true
    isDefault?: true
    createdAt?: true
    _all?: true
  }

  export type OrganizationRegionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OrganizationRegion to aggregate.
     */
    where?: OrganizationRegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OrganizationRegions to fetch.
     */
    orderBy?: OrganizationRegionOrderByWithRelationInput | OrganizationRegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OrganizationRegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OrganizationRegions 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` OrganizationRegions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OrganizationRegions
    **/
    _count?: true | OrganizationRegionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OrganizationRegionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OrganizationRegionMaxAggregateInputType
  }

  export type GetOrganizationRegionAggregateType<T extends OrganizationRegionAggregateArgs> = {
        [P in keyof T & keyof AggregateOrganizationRegion]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOrganizationRegion[P]>
      : GetScalarType<T[P], AggregateOrganizationRegion[P]>
  }




  export type OrganizationRegionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OrganizationRegionWhereInput
    orderBy?: OrganizationRegionOrderByWithAggregationInput | OrganizationRegionOrderByWithAggregationInput[]
    by: OrganizationRegionScalarFieldEnum[] | OrganizationRegionScalarFieldEnum
    having?: OrganizationRegionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OrganizationRegionCountAggregateInputType | true
    _min?: OrganizationRegionMinAggregateInputType
    _max?: OrganizationRegionMaxAggregateInputType
  }

  export type OrganizationRegionGroupByOutputType = {
    id: string
    organizationId: string
    regionId: string
    isDefault: boolean
    createdAt: Date
    _count: OrganizationRegionCountAggregateOutputType | null
    _min: OrganizationRegionMinAggregateOutputType | null
    _max: OrganizationRegionMaxAggregateOutputType | null
  }

  type GetOrganizationRegionGroupByPayload<T extends OrganizationRegionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OrganizationRegionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OrganizationRegionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OrganizationRegionGroupByOutputType[P]>
            : GetScalarType<T[P], OrganizationRegionGroupByOutputType[P]>
        }
      >
    >


  export type OrganizationRegionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    regionId?: boolean
    isDefault?: boolean
    createdAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    region?: boolean | RegionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["organizationRegion"]>

  export type OrganizationRegionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    regionId?: boolean
    isDefault?: boolean
    createdAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    region?: boolean | RegionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["organizationRegion"]>

  export type OrganizationRegionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    regionId?: boolean
    isDefault?: boolean
    createdAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    region?: boolean | RegionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["organizationRegion"]>

  export type OrganizationRegionSelectScalar = {
    id?: boolean
    organizationId?: boolean
    regionId?: boolean
    isDefault?: boolean
    createdAt?: boolean
  }

  export type OrganizationRegionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "regionId" | "isDefault" | "createdAt", ExtArgs["result"]["organizationRegion"]>
  export type OrganizationRegionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    region?: boolean | RegionDefaultArgs<ExtArgs>
  }
  export type OrganizationRegionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    region?: boolean | RegionDefaultArgs<ExtArgs>
  }
  export type OrganizationRegionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    region?: boolean | RegionDefaultArgs<ExtArgs>
  }

  export type $OrganizationRegionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OrganizationRegion"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
      region: Prisma.$RegionPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      regionId: string
      isDefault: boolean
      createdAt: Date
    }, ExtArgs["result"]["organizationRegion"]>
    composites: {}
  }

  type OrganizationRegionGetPayload<S extends boolean | null | undefined | OrganizationRegionDefaultArgs> = $Result.GetResult<Prisma.$OrganizationRegionPayload, S>

  type OrganizationRegionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OrganizationRegionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OrganizationRegionCountAggregateInputType | true
    }

  export interface OrganizationRegionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OrganizationRegion'], meta: { name: 'OrganizationRegion' } }
    /**
     * Find zero or one OrganizationRegion that matches the filter.
     * @param {OrganizationRegionFindUniqueArgs} args - Arguments to find a OrganizationRegion
     * @example
     * // Get one OrganizationRegion
     * const organizationRegion = await prisma.organizationRegion.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OrganizationRegionFindUniqueArgs>(args: SelectSubset<T, OrganizationRegionFindUniqueArgs<ExtArgs>>): Prisma__OrganizationRegionClient<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OrganizationRegion that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OrganizationRegionFindUniqueOrThrowArgs} args - Arguments to find a OrganizationRegion
     * @example
     * // Get one OrganizationRegion
     * const organizationRegion = await prisma.organizationRegion.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OrganizationRegionFindUniqueOrThrowArgs>(args: SelectSubset<T, OrganizationRegionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OrganizationRegionClient<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OrganizationRegion 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 {OrganizationRegionFindFirstArgs} args - Arguments to find a OrganizationRegion
     * @example
     * // Get one OrganizationRegion
     * const organizationRegion = await prisma.organizationRegion.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OrganizationRegionFindFirstArgs>(args?: SelectSubset<T, OrganizationRegionFindFirstArgs<ExtArgs>>): Prisma__OrganizationRegionClient<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OrganizationRegion 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 {OrganizationRegionFindFirstOrThrowArgs} args - Arguments to find a OrganizationRegion
     * @example
     * // Get one OrganizationRegion
     * const organizationRegion = await prisma.organizationRegion.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OrganizationRegionFindFirstOrThrowArgs>(args?: SelectSubset<T, OrganizationRegionFindFirstOrThrowArgs<ExtArgs>>): Prisma__OrganizationRegionClient<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OrganizationRegions 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 {OrganizationRegionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OrganizationRegions
     * const organizationRegions = await prisma.organizationRegion.findMany()
     * 
     * // Get first 10 OrganizationRegions
     * const organizationRegions = await prisma.organizationRegion.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const organizationRegionWithIdOnly = await prisma.organizationRegion.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OrganizationRegionFindManyArgs>(args?: SelectSubset<T, OrganizationRegionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OrganizationRegion.
     * @param {OrganizationRegionCreateArgs} args - Arguments to create a OrganizationRegion.
     * @example
     * // Create one OrganizationRegion
     * const OrganizationRegion = await prisma.organizationRegion.create({
     *   data: {
     *     // ... data to create a OrganizationRegion
     *   }
     * })
     * 
     */
    create<T extends OrganizationRegionCreateArgs>(args: SelectSubset<T, OrganizationRegionCreateArgs<ExtArgs>>): Prisma__OrganizationRegionClient<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OrganizationRegions.
     * @param {OrganizationRegionCreateManyArgs} args - Arguments to create many OrganizationRegions.
     * @example
     * // Create many OrganizationRegions
     * const organizationRegion = await prisma.organizationRegion.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OrganizationRegionCreateManyArgs>(args?: SelectSubset<T, OrganizationRegionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OrganizationRegions and returns the data saved in the database.
     * @param {OrganizationRegionCreateManyAndReturnArgs} args - Arguments to create many OrganizationRegions.
     * @example
     * // Create many OrganizationRegions
     * const organizationRegion = await prisma.organizationRegion.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OrganizationRegions and only return the `id`
     * const organizationRegionWithIdOnly = await prisma.organizationRegion.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 OrganizationRegionCreateManyAndReturnArgs>(args?: SelectSubset<T, OrganizationRegionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OrganizationRegion.
     * @param {OrganizationRegionDeleteArgs} args - Arguments to delete one OrganizationRegion.
     * @example
     * // Delete one OrganizationRegion
     * const OrganizationRegion = await prisma.organizationRegion.delete({
     *   where: {
     *     // ... filter to delete one OrganizationRegion
     *   }
     * })
     * 
     */
    delete<T extends OrganizationRegionDeleteArgs>(args: SelectSubset<T, OrganizationRegionDeleteArgs<ExtArgs>>): Prisma__OrganizationRegionClient<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OrganizationRegion.
     * @param {OrganizationRegionUpdateArgs} args - Arguments to update one OrganizationRegion.
     * @example
     * // Update one OrganizationRegion
     * const organizationRegion = await prisma.organizationRegion.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OrganizationRegionUpdateArgs>(args: SelectSubset<T, OrganizationRegionUpdateArgs<ExtArgs>>): Prisma__OrganizationRegionClient<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OrganizationRegions.
     * @param {OrganizationRegionDeleteManyArgs} args - Arguments to filter OrganizationRegions to delete.
     * @example
     * // Delete a few OrganizationRegions
     * const { count } = await prisma.organizationRegion.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OrganizationRegionDeleteManyArgs>(args?: SelectSubset<T, OrganizationRegionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OrganizationRegions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationRegionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OrganizationRegions
     * const organizationRegion = await prisma.organizationRegion.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OrganizationRegionUpdateManyArgs>(args: SelectSubset<T, OrganizationRegionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OrganizationRegions and returns the data updated in the database.
     * @param {OrganizationRegionUpdateManyAndReturnArgs} args - Arguments to update many OrganizationRegions.
     * @example
     * // Update many OrganizationRegions
     * const organizationRegion = await prisma.organizationRegion.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OrganizationRegions and only return the `id`
     * const organizationRegionWithIdOnly = await prisma.organizationRegion.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 OrganizationRegionUpdateManyAndReturnArgs>(args: SelectSubset<T, OrganizationRegionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OrganizationRegion.
     * @param {OrganizationRegionUpsertArgs} args - Arguments to update or create a OrganizationRegion.
     * @example
     * // Update or create a OrganizationRegion
     * const organizationRegion = await prisma.organizationRegion.upsert({
     *   create: {
     *     // ... data to create a OrganizationRegion
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OrganizationRegion we want to update
     *   }
     * })
     */
    upsert<T extends OrganizationRegionUpsertArgs>(args: SelectSubset<T, OrganizationRegionUpsertArgs<ExtArgs>>): Prisma__OrganizationRegionClient<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OrganizationRegions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationRegionCountArgs} args - Arguments to filter OrganizationRegions to count.
     * @example
     * // Count the number of OrganizationRegions
     * const count = await prisma.organizationRegion.count({
     *   where: {
     *     // ... the filter for the OrganizationRegions we want to count
     *   }
     * })
    **/
    count<T extends OrganizationRegionCountArgs>(
      args?: Subset<T, OrganizationRegionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OrganizationRegionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OrganizationRegion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationRegionAggregateArgs} 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 OrganizationRegionAggregateArgs>(args: Subset<T, OrganizationRegionAggregateArgs>): Prisma.PrismaPromise<GetOrganizationRegionAggregateType<T>>

    /**
     * Group by OrganizationRegion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationRegionGroupByArgs} 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 OrganizationRegionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OrganizationRegionGroupByArgs['orderBy'] }
        : { orderBy?: OrganizationRegionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OrganizationRegionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOrganizationRegionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OrganizationRegion model
   */
  readonly fields: OrganizationRegionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OrganizationRegion.
   * 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__OrganizationRegionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    region<T extends RegionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RegionDefaultArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OrganizationRegion model
   */
  interface OrganizationRegionFieldRefs {
    readonly id: FieldRef<"OrganizationRegion", 'String'>
    readonly organizationId: FieldRef<"OrganizationRegion", 'String'>
    readonly regionId: FieldRef<"OrganizationRegion", 'String'>
    readonly isDefault: FieldRef<"OrganizationRegion", 'Boolean'>
    readonly createdAt: FieldRef<"OrganizationRegion", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OrganizationRegion findUnique
   */
  export type OrganizationRegionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * Filter, which OrganizationRegion to fetch.
     */
    where: OrganizationRegionWhereUniqueInput
  }

  /**
   * OrganizationRegion findUniqueOrThrow
   */
  export type OrganizationRegionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * Filter, which OrganizationRegion to fetch.
     */
    where: OrganizationRegionWhereUniqueInput
  }

  /**
   * OrganizationRegion findFirst
   */
  export type OrganizationRegionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * Filter, which OrganizationRegion to fetch.
     */
    where?: OrganizationRegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OrganizationRegions to fetch.
     */
    orderBy?: OrganizationRegionOrderByWithRelationInput | OrganizationRegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OrganizationRegions.
     */
    cursor?: OrganizationRegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OrganizationRegions 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` OrganizationRegions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OrganizationRegions.
     */
    distinct?: OrganizationRegionScalarFieldEnum | OrganizationRegionScalarFieldEnum[]
  }

  /**
   * OrganizationRegion findFirstOrThrow
   */
  export type OrganizationRegionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * Filter, which OrganizationRegion to fetch.
     */
    where?: OrganizationRegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OrganizationRegions to fetch.
     */
    orderBy?: OrganizationRegionOrderByWithRelationInput | OrganizationRegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OrganizationRegions.
     */
    cursor?: OrganizationRegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OrganizationRegions 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` OrganizationRegions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OrganizationRegions.
     */
    distinct?: OrganizationRegionScalarFieldEnum | OrganizationRegionScalarFieldEnum[]
  }

  /**
   * OrganizationRegion findMany
   */
  export type OrganizationRegionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * Filter, which OrganizationRegions to fetch.
     */
    where?: OrganizationRegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OrganizationRegions to fetch.
     */
    orderBy?: OrganizationRegionOrderByWithRelationInput | OrganizationRegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OrganizationRegions.
     */
    cursor?: OrganizationRegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OrganizationRegions 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` OrganizationRegions.
     */
    skip?: number
    distinct?: OrganizationRegionScalarFieldEnum | OrganizationRegionScalarFieldEnum[]
  }

  /**
   * OrganizationRegion create
   */
  export type OrganizationRegionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * The data needed to create a OrganizationRegion.
     */
    data: XOR<OrganizationRegionCreateInput, OrganizationRegionUncheckedCreateInput>
  }

  /**
   * OrganizationRegion createMany
   */
  export type OrganizationRegionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OrganizationRegions.
     */
    data: OrganizationRegionCreateManyInput | OrganizationRegionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OrganizationRegion createManyAndReturn
   */
  export type OrganizationRegionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * The data used to create many OrganizationRegions.
     */
    data: OrganizationRegionCreateManyInput | OrganizationRegionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OrganizationRegion update
   */
  export type OrganizationRegionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * The data needed to update a OrganizationRegion.
     */
    data: XOR<OrganizationRegionUpdateInput, OrganizationRegionUncheckedUpdateInput>
    /**
     * Choose, which OrganizationRegion to update.
     */
    where: OrganizationRegionWhereUniqueInput
  }

  /**
   * OrganizationRegion updateMany
   */
  export type OrganizationRegionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OrganizationRegions.
     */
    data: XOR<OrganizationRegionUpdateManyMutationInput, OrganizationRegionUncheckedUpdateManyInput>
    /**
     * Filter which OrganizationRegions to update
     */
    where?: OrganizationRegionWhereInput
    /**
     * Limit how many OrganizationRegions to update.
     */
    limit?: number
  }

  /**
   * OrganizationRegion updateManyAndReturn
   */
  export type OrganizationRegionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * The data used to update OrganizationRegions.
     */
    data: XOR<OrganizationRegionUpdateManyMutationInput, OrganizationRegionUncheckedUpdateManyInput>
    /**
     * Filter which OrganizationRegions to update
     */
    where?: OrganizationRegionWhereInput
    /**
     * Limit how many OrganizationRegions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OrganizationRegion upsert
   */
  export type OrganizationRegionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * The filter to search for the OrganizationRegion to update in case it exists.
     */
    where: OrganizationRegionWhereUniqueInput
    /**
     * In case the OrganizationRegion found by the `where` argument doesn't exist, create a new OrganizationRegion with this data.
     */
    create: XOR<OrganizationRegionCreateInput, OrganizationRegionUncheckedCreateInput>
    /**
     * In case the OrganizationRegion was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OrganizationRegionUpdateInput, OrganizationRegionUncheckedUpdateInput>
  }

  /**
   * OrganizationRegion delete
   */
  export type OrganizationRegionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    /**
     * Filter which OrganizationRegion to delete.
     */
    where: OrganizationRegionWhereUniqueInput
  }

  /**
   * OrganizationRegion deleteMany
   */
  export type OrganizationRegionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OrganizationRegions to delete
     */
    where?: OrganizationRegionWhereInput
    /**
     * Limit how many OrganizationRegions to delete.
     */
    limit?: number
  }

  /**
   * OrganizationRegion without action
   */
  export type OrganizationRegionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
  }


  /**
   * Model Region
   */

  export type AggregateRegion = {
    _count: RegionCountAggregateOutputType | null
    _avg: RegionAvgAggregateOutputType | null
    _sum: RegionSumAggregateOutputType | null
    _min: RegionMinAggregateOutputType | null
    _max: RegionMaxAggregateOutputType | null
  }

  export type RegionAvgAggregateOutputType = {
    order: number | null
  }

  export type RegionSumAggregateOutputType = {
    order: number | null
  }

  export type RegionMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    nameEn: string | null
    nameZh: string | null
    timezone: string | null
    currency: string | null
    locale: string | null
    isActive: boolean | null
    order: number | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type RegionMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    nameEn: string | null
    nameZh: string | null
    timezone: string | null
    currency: string | null
    locale: string | null
    isActive: boolean | null
    order: number | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type RegionCountAggregateOutputType = {
    id: number
    code: number
    name: number
    nameEn: number
    nameZh: number
    timezone: number
    currency: number
    locale: number
    isActive: number
    order: number
    metadata: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type RegionAvgAggregateInputType = {
    order?: true
  }

  export type RegionSumAggregateInputType = {
    order?: true
  }

  export type RegionMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    nameEn?: true
    nameZh?: true
    timezone?: true
    currency?: true
    locale?: true
    isActive?: true
    order?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type RegionMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    nameEn?: true
    nameZh?: true
    timezone?: true
    currency?: true
    locale?: true
    isActive?: true
    order?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type RegionCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    nameEn?: true
    nameZh?: true
    timezone?: true
    currency?: true
    locale?: true
    isActive?: true
    order?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type RegionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Region to aggregate.
     */
    where?: RegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Regions to fetch.
     */
    orderBy?: RegionOrderByWithRelationInput | RegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Regions 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` Regions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Regions
    **/
    _count?: true | RegionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: RegionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: RegionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RegionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RegionMaxAggregateInputType
  }

  export type GetRegionAggregateType<T extends RegionAggregateArgs> = {
        [P in keyof T & keyof AggregateRegion]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRegion[P]>
      : GetScalarType<T[P], AggregateRegion[P]>
  }




  export type RegionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RegionWhereInput
    orderBy?: RegionOrderByWithAggregationInput | RegionOrderByWithAggregationInput[]
    by: RegionScalarFieldEnum[] | RegionScalarFieldEnum
    having?: RegionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RegionCountAggregateInputType | true
    _avg?: RegionAvgAggregateInputType
    _sum?: RegionSumAggregateInputType
    _min?: RegionMinAggregateInputType
    _max?: RegionMaxAggregateInputType
  }

  export type RegionGroupByOutputType = {
    id: string
    code: string
    name: string
    nameEn: string | null
    nameZh: string | null
    timezone: string | null
    currency: string | null
    locale: string | null
    isActive: boolean
    order: number
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: RegionCountAggregateOutputType | null
    _avg: RegionAvgAggregateOutputType | null
    _sum: RegionSumAggregateOutputType | null
    _min: RegionMinAggregateOutputType | null
    _max: RegionMaxAggregateOutputType | null
  }

  type GetRegionGroupByPayload<T extends RegionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RegionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RegionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RegionGroupByOutputType[P]>
            : GetScalarType<T[P], RegionGroupByOutputType[P]>
        }
      >
    >


  export type RegionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    nameEn?: boolean
    nameZh?: boolean
    timezone?: boolean
    currency?: boolean
    locale?: boolean
    isActive?: boolean
    order?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    primaryOrganizations?: boolean | Region$primaryOrganizationsArgs<ExtArgs>
    organizationRegions?: boolean | Region$organizationRegionsArgs<ExtArgs>
    _count?: boolean | RegionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["region"]>

  export type RegionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    nameEn?: boolean
    nameZh?: boolean
    timezone?: boolean
    currency?: boolean
    locale?: boolean
    isActive?: boolean
    order?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["region"]>

  export type RegionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    nameEn?: boolean
    nameZh?: boolean
    timezone?: boolean
    currency?: boolean
    locale?: boolean
    isActive?: boolean
    order?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["region"]>

  export type RegionSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    nameEn?: boolean
    nameZh?: boolean
    timezone?: boolean
    currency?: boolean
    locale?: boolean
    isActive?: boolean
    order?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type RegionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "nameEn" | "nameZh" | "timezone" | "currency" | "locale" | "isActive" | "order" | "metadata" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["region"]>
  export type RegionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    primaryOrganizations?: boolean | Region$primaryOrganizationsArgs<ExtArgs>
    organizationRegions?: boolean | Region$organizationRegionsArgs<ExtArgs>
    _count?: boolean | RegionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type RegionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type RegionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $RegionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Region"
    objects: {
      primaryOrganizations: Prisma.$OrganizationPayload<ExtArgs>[]
      organizationRegions: Prisma.$OrganizationRegionPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      nameEn: string | null
      nameZh: string | null
      timezone: string | null
      currency: string | null
      locale: string | null
      isActive: boolean
      order: number
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["region"]>
    composites: {}
  }

  type RegionGetPayload<S extends boolean | null | undefined | RegionDefaultArgs> = $Result.GetResult<Prisma.$RegionPayload, S>

  type RegionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RegionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RegionCountAggregateInputType | true
    }

  export interface RegionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Region'], meta: { name: 'Region' } }
    /**
     * Find zero or one Region that matches the filter.
     * @param {RegionFindUniqueArgs} args - Arguments to find a Region
     * @example
     * // Get one Region
     * const region = await prisma.region.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RegionFindUniqueArgs>(args: SelectSubset<T, RegionFindUniqueArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Region that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RegionFindUniqueOrThrowArgs} args - Arguments to find a Region
     * @example
     * // Get one Region
     * const region = await prisma.region.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RegionFindUniqueOrThrowArgs>(args: SelectSubset<T, RegionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Region 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 {RegionFindFirstArgs} args - Arguments to find a Region
     * @example
     * // Get one Region
     * const region = await prisma.region.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RegionFindFirstArgs>(args?: SelectSubset<T, RegionFindFirstArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Region 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 {RegionFindFirstOrThrowArgs} args - Arguments to find a Region
     * @example
     * // Get one Region
     * const region = await prisma.region.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RegionFindFirstOrThrowArgs>(args?: SelectSubset<T, RegionFindFirstOrThrowArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Regions 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 {RegionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Regions
     * const regions = await prisma.region.findMany()
     * 
     * // Get first 10 Regions
     * const regions = await prisma.region.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const regionWithIdOnly = await prisma.region.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RegionFindManyArgs>(args?: SelectSubset<T, RegionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Region.
     * @param {RegionCreateArgs} args - Arguments to create a Region.
     * @example
     * // Create one Region
     * const Region = await prisma.region.create({
     *   data: {
     *     // ... data to create a Region
     *   }
     * })
     * 
     */
    create<T extends RegionCreateArgs>(args: SelectSubset<T, RegionCreateArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Regions.
     * @param {RegionCreateManyArgs} args - Arguments to create many Regions.
     * @example
     * // Create many Regions
     * const region = await prisma.region.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RegionCreateManyArgs>(args?: SelectSubset<T, RegionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Regions and returns the data saved in the database.
     * @param {RegionCreateManyAndReturnArgs} args - Arguments to create many Regions.
     * @example
     * // Create many Regions
     * const region = await prisma.region.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Regions and only return the `id`
     * const regionWithIdOnly = await prisma.region.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 RegionCreateManyAndReturnArgs>(args?: SelectSubset<T, RegionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Region.
     * @param {RegionDeleteArgs} args - Arguments to delete one Region.
     * @example
     * // Delete one Region
     * const Region = await prisma.region.delete({
     *   where: {
     *     // ... filter to delete one Region
     *   }
     * })
     * 
     */
    delete<T extends RegionDeleteArgs>(args: SelectSubset<T, RegionDeleteArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Region.
     * @param {RegionUpdateArgs} args - Arguments to update one Region.
     * @example
     * // Update one Region
     * const region = await prisma.region.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RegionUpdateArgs>(args: SelectSubset<T, RegionUpdateArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Regions.
     * @param {RegionDeleteManyArgs} args - Arguments to filter Regions to delete.
     * @example
     * // Delete a few Regions
     * const { count } = await prisma.region.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RegionDeleteManyArgs>(args?: SelectSubset<T, RegionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Regions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RegionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Regions
     * const region = await prisma.region.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RegionUpdateManyArgs>(args: SelectSubset<T, RegionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Regions and returns the data updated in the database.
     * @param {RegionUpdateManyAndReturnArgs} args - Arguments to update many Regions.
     * @example
     * // Update many Regions
     * const region = await prisma.region.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Regions and only return the `id`
     * const regionWithIdOnly = await prisma.region.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 RegionUpdateManyAndReturnArgs>(args: SelectSubset<T, RegionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Region.
     * @param {RegionUpsertArgs} args - Arguments to update or create a Region.
     * @example
     * // Update or create a Region
     * const region = await prisma.region.upsert({
     *   create: {
     *     // ... data to create a Region
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Region we want to update
     *   }
     * })
     */
    upsert<T extends RegionUpsertArgs>(args: SelectSubset<T, RegionUpsertArgs<ExtArgs>>): Prisma__RegionClient<$Result.GetResult<Prisma.$RegionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Regions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RegionCountArgs} args - Arguments to filter Regions to count.
     * @example
     * // Count the number of Regions
     * const count = await prisma.region.count({
     *   where: {
     *     // ... the filter for the Regions we want to count
     *   }
     * })
    **/
    count<T extends RegionCountArgs>(
      args?: Subset<T, RegionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RegionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Region.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RegionAggregateArgs} 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 RegionAggregateArgs>(args: Subset<T, RegionAggregateArgs>): Prisma.PrismaPromise<GetRegionAggregateType<T>>

    /**
     * Group by Region.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RegionGroupByArgs} 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 RegionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RegionGroupByArgs['orderBy'] }
        : { orderBy?: RegionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RegionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRegionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Region model
   */
  readonly fields: RegionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Region.
   * 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__RegionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    primaryOrganizations<T extends Region$primaryOrganizationsArgs<ExtArgs> = {}>(args?: Subset<T, Region$primaryOrganizationsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    organizationRegions<T extends Region$organizationRegionsArgs<ExtArgs> = {}>(args?: Subset<T, Region$organizationRegionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationRegionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Region model
   */
  interface RegionFieldRefs {
    readonly id: FieldRef<"Region", 'String'>
    readonly code: FieldRef<"Region", 'String'>
    readonly name: FieldRef<"Region", 'String'>
    readonly nameEn: FieldRef<"Region", 'String'>
    readonly nameZh: FieldRef<"Region", 'String'>
    readonly timezone: FieldRef<"Region", 'String'>
    readonly currency: FieldRef<"Region", 'String'>
    readonly locale: FieldRef<"Region", 'String'>
    readonly isActive: FieldRef<"Region", 'Boolean'>
    readonly order: FieldRef<"Region", 'Int'>
    readonly metadata: FieldRef<"Region", 'Json'>
    readonly createdAt: FieldRef<"Region", 'DateTime'>
    readonly updatedAt: FieldRef<"Region", 'DateTime'>
    readonly deletedAt: FieldRef<"Region", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Region findUnique
   */
  export type RegionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * Filter, which Region to fetch.
     */
    where: RegionWhereUniqueInput
  }

  /**
   * Region findUniqueOrThrow
   */
  export type RegionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * Filter, which Region to fetch.
     */
    where: RegionWhereUniqueInput
  }

  /**
   * Region findFirst
   */
  export type RegionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * Filter, which Region to fetch.
     */
    where?: RegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Regions to fetch.
     */
    orderBy?: RegionOrderByWithRelationInput | RegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Regions.
     */
    cursor?: RegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Regions 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` Regions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Regions.
     */
    distinct?: RegionScalarFieldEnum | RegionScalarFieldEnum[]
  }

  /**
   * Region findFirstOrThrow
   */
  export type RegionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * Filter, which Region to fetch.
     */
    where?: RegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Regions to fetch.
     */
    orderBy?: RegionOrderByWithRelationInput | RegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Regions.
     */
    cursor?: RegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Regions 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` Regions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Regions.
     */
    distinct?: RegionScalarFieldEnum | RegionScalarFieldEnum[]
  }

  /**
   * Region findMany
   */
  export type RegionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * Filter, which Regions to fetch.
     */
    where?: RegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Regions to fetch.
     */
    orderBy?: RegionOrderByWithRelationInput | RegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Regions.
     */
    cursor?: RegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Regions 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` Regions.
     */
    skip?: number
    distinct?: RegionScalarFieldEnum | RegionScalarFieldEnum[]
  }

  /**
   * Region create
   */
  export type RegionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * The data needed to create a Region.
     */
    data: XOR<RegionCreateInput, RegionUncheckedCreateInput>
  }

  /**
   * Region createMany
   */
  export type RegionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Regions.
     */
    data: RegionCreateManyInput | RegionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Region createManyAndReturn
   */
  export type RegionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * The data used to create many Regions.
     */
    data: RegionCreateManyInput | RegionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Region update
   */
  export type RegionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * The data needed to update a Region.
     */
    data: XOR<RegionUpdateInput, RegionUncheckedUpdateInput>
    /**
     * Choose, which Region to update.
     */
    where: RegionWhereUniqueInput
  }

  /**
   * Region updateMany
   */
  export type RegionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Regions.
     */
    data: XOR<RegionUpdateManyMutationInput, RegionUncheckedUpdateManyInput>
    /**
     * Filter which Regions to update
     */
    where?: RegionWhereInput
    /**
     * Limit how many Regions to update.
     */
    limit?: number
  }

  /**
   * Region updateManyAndReturn
   */
  export type RegionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * The data used to update Regions.
     */
    data: XOR<RegionUpdateManyMutationInput, RegionUncheckedUpdateManyInput>
    /**
     * Filter which Regions to update
     */
    where?: RegionWhereInput
    /**
     * Limit how many Regions to update.
     */
    limit?: number
  }

  /**
   * Region upsert
   */
  export type RegionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * The filter to search for the Region to update in case it exists.
     */
    where: RegionWhereUniqueInput
    /**
     * In case the Region found by the `where` argument doesn't exist, create a new Region with this data.
     */
    create: XOR<RegionCreateInput, RegionUncheckedCreateInput>
    /**
     * In case the Region was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RegionUpdateInput, RegionUncheckedUpdateInput>
  }

  /**
   * Region delete
   */
  export type RegionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
    /**
     * Filter which Region to delete.
     */
    where: RegionWhereUniqueInput
  }

  /**
   * Region deleteMany
   */
  export type RegionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Regions to delete
     */
    where?: RegionWhereInput
    /**
     * Limit how many Regions to delete.
     */
    limit?: number
  }

  /**
   * Region.primaryOrganizations
   */
  export type Region$primaryOrganizationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
    orderBy?: OrganizationOrderByWithRelationInput | OrganizationOrderByWithRelationInput[]
    cursor?: OrganizationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OrganizationScalarFieldEnum | OrganizationScalarFieldEnum[]
  }

  /**
   * Region.organizationRegions
   */
  export type Region$organizationRegionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationRegion
     */
    select?: OrganizationRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationRegion
     */
    omit?: OrganizationRegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationRegionInclude<ExtArgs> | null
    where?: OrganizationRegionWhereInput
    orderBy?: OrganizationRegionOrderByWithRelationInput | OrganizationRegionOrderByWithRelationInput[]
    cursor?: OrganizationRegionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OrganizationRegionScalarFieldEnum | OrganizationRegionScalarFieldEnum[]
  }

  /**
   * Region without action
   */
  export type RegionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Region
     */
    select?: RegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Region
     */
    omit?: RegionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RegionInclude<ExtArgs> | null
  }


  /**
   * Model Department
   */

  export type AggregateDepartment = {
    _count: DepartmentCountAggregateOutputType | null
    _avg: DepartmentAvgAggregateOutputType | null
    _sum: DepartmentSumAggregateOutputType | null
    _min: DepartmentMinAggregateOutputType | null
    _max: DepartmentMaxAggregateOutputType | null
  }

  export type DepartmentAvgAggregateOutputType = {
    order: number | null
  }

  export type DepartmentSumAggregateOutputType = {
    order: number | null
  }

  export type DepartmentMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    name: string | null
    code: string | null
    parentId: string | null
    headId: string | null
    description: string | null
    order: number | null
    tenantId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type DepartmentMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    name: string | null
    code: string | null
    parentId: string | null
    headId: string | null
    description: string | null
    order: number | null
    tenantId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type DepartmentCountAggregateOutputType = {
    id: number
    organizationId: number
    name: number
    code: number
    parentId: number
    headId: number
    description: number
    order: number
    tenantId: number
    metadata: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type DepartmentAvgAggregateInputType = {
    order?: true
  }

  export type DepartmentSumAggregateInputType = {
    order?: true
  }

  export type DepartmentMinAggregateInputType = {
    id?: true
    organizationId?: true
    name?: true
    code?: true
    parentId?: true
    headId?: true
    description?: true
    order?: true
    tenantId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type DepartmentMaxAggregateInputType = {
    id?: true
    organizationId?: true
    name?: true
    code?: true
    parentId?: true
    headId?: true
    description?: true
    order?: true
    tenantId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type DepartmentCountAggregateInputType = {
    id?: true
    organizationId?: true
    name?: true
    code?: true
    parentId?: true
    headId?: true
    description?: true
    order?: true
    tenantId?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type DepartmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Department to aggregate.
     */
    where?: DepartmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Departments to fetch.
     */
    orderBy?: DepartmentOrderByWithRelationInput | DepartmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DepartmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Departments 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` Departments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Departments
    **/
    _count?: true | DepartmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DepartmentAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DepartmentSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DepartmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DepartmentMaxAggregateInputType
  }

  export type GetDepartmentAggregateType<T extends DepartmentAggregateArgs> = {
        [P in keyof T & keyof AggregateDepartment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDepartment[P]>
      : GetScalarType<T[P], AggregateDepartment[P]>
  }




  export type DepartmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DepartmentWhereInput
    orderBy?: DepartmentOrderByWithAggregationInput | DepartmentOrderByWithAggregationInput[]
    by: DepartmentScalarFieldEnum[] | DepartmentScalarFieldEnum
    having?: DepartmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DepartmentCountAggregateInputType | true
    _avg?: DepartmentAvgAggregateInputType
    _sum?: DepartmentSumAggregateInputType
    _min?: DepartmentMinAggregateInputType
    _max?: DepartmentMaxAggregateInputType
  }

  export type DepartmentGroupByOutputType = {
    id: string
    organizationId: string
    name: string
    code: string
    parentId: string | null
    headId: string | null
    description: string | null
    order: number
    tenantId: string | null
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: DepartmentCountAggregateOutputType | null
    _avg: DepartmentAvgAggregateOutputType | null
    _sum: DepartmentSumAggregateOutputType | null
    _min: DepartmentMinAggregateOutputType | null
    _max: DepartmentMaxAggregateOutputType | null
  }

  type GetDepartmentGroupByPayload<T extends DepartmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DepartmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DepartmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DepartmentGroupByOutputType[P]>
            : GetScalarType<T[P], DepartmentGroupByOutputType[P]>
        }
      >
    >


  export type DepartmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    name?: boolean
    code?: boolean
    parentId?: boolean
    headId?: boolean
    description?: boolean
    order?: boolean
    tenantId?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    parent?: boolean | Department$parentArgs<ExtArgs>
    children?: boolean | Department$childrenArgs<ExtArgs>
    userMemberships?: boolean | Department$userMembershipsArgs<ExtArgs>
    _count?: boolean | DepartmentCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["department"]>

  export type DepartmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    name?: boolean
    code?: boolean
    parentId?: boolean
    headId?: boolean
    description?: boolean
    order?: boolean
    tenantId?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    parent?: boolean | Department$parentArgs<ExtArgs>
  }, ExtArgs["result"]["department"]>

  export type DepartmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    name?: boolean
    code?: boolean
    parentId?: boolean
    headId?: boolean
    description?: boolean
    order?: boolean
    tenantId?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    parent?: boolean | Department$parentArgs<ExtArgs>
  }, ExtArgs["result"]["department"]>

  export type DepartmentSelectScalar = {
    id?: boolean
    organizationId?: boolean
    name?: boolean
    code?: boolean
    parentId?: boolean
    headId?: boolean
    description?: boolean
    order?: boolean
    tenantId?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type DepartmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "name" | "code" | "parentId" | "headId" | "description" | "order" | "tenantId" | "metadata" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["department"]>
  export type DepartmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    parent?: boolean | Department$parentArgs<ExtArgs>
    children?: boolean | Department$childrenArgs<ExtArgs>
    userMemberships?: boolean | Department$userMembershipsArgs<ExtArgs>
    _count?: boolean | DepartmentCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type DepartmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    parent?: boolean | Department$parentArgs<ExtArgs>
  }
  export type DepartmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    parent?: boolean | Department$parentArgs<ExtArgs>
  }

  export type $DepartmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Department"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
      parent: Prisma.$DepartmentPayload<ExtArgs> | null
      children: Prisma.$DepartmentPayload<ExtArgs>[]
      userMemberships: Prisma.$UserDepartmentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      name: string
      code: string
      parentId: string | null
      headId: string | null
      description: string | null
      order: number
      tenantId: string | null
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["department"]>
    composites: {}
  }

  type DepartmentGetPayload<S extends boolean | null | undefined | DepartmentDefaultArgs> = $Result.GetResult<Prisma.$DepartmentPayload, S>

  type DepartmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DepartmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DepartmentCountAggregateInputType | true
    }

  export interface DepartmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Department'], meta: { name: 'Department' } }
    /**
     * Find zero or one Department that matches the filter.
     * @param {DepartmentFindUniqueArgs} args - Arguments to find a Department
     * @example
     * // Get one Department
     * const department = await prisma.department.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DepartmentFindUniqueArgs>(args: SelectSubset<T, DepartmentFindUniqueArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Department that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DepartmentFindUniqueOrThrowArgs} args - Arguments to find a Department
     * @example
     * // Get one Department
     * const department = await prisma.department.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DepartmentFindUniqueOrThrowArgs>(args: SelectSubset<T, DepartmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Department 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 {DepartmentFindFirstArgs} args - Arguments to find a Department
     * @example
     * // Get one Department
     * const department = await prisma.department.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DepartmentFindFirstArgs>(args?: SelectSubset<T, DepartmentFindFirstArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Department 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 {DepartmentFindFirstOrThrowArgs} args - Arguments to find a Department
     * @example
     * // Get one Department
     * const department = await prisma.department.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DepartmentFindFirstOrThrowArgs>(args?: SelectSubset<T, DepartmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Departments 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 {DepartmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Departments
     * const departments = await prisma.department.findMany()
     * 
     * // Get first 10 Departments
     * const departments = await prisma.department.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const departmentWithIdOnly = await prisma.department.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DepartmentFindManyArgs>(args?: SelectSubset<T, DepartmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Department.
     * @param {DepartmentCreateArgs} args - Arguments to create a Department.
     * @example
     * // Create one Department
     * const Department = await prisma.department.create({
     *   data: {
     *     // ... data to create a Department
     *   }
     * })
     * 
     */
    create<T extends DepartmentCreateArgs>(args: SelectSubset<T, DepartmentCreateArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Departments.
     * @param {DepartmentCreateManyArgs} args - Arguments to create many Departments.
     * @example
     * // Create many Departments
     * const department = await prisma.department.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DepartmentCreateManyArgs>(args?: SelectSubset<T, DepartmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Departments and returns the data saved in the database.
     * @param {DepartmentCreateManyAndReturnArgs} args - Arguments to create many Departments.
     * @example
     * // Create many Departments
     * const department = await prisma.department.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Departments and only return the `id`
     * const departmentWithIdOnly = await prisma.department.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 DepartmentCreateManyAndReturnArgs>(args?: SelectSubset<T, DepartmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Department.
     * @param {DepartmentDeleteArgs} args - Arguments to delete one Department.
     * @example
     * // Delete one Department
     * const Department = await prisma.department.delete({
     *   where: {
     *     // ... filter to delete one Department
     *   }
     * })
     * 
     */
    delete<T extends DepartmentDeleteArgs>(args: SelectSubset<T, DepartmentDeleteArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Department.
     * @param {DepartmentUpdateArgs} args - Arguments to update one Department.
     * @example
     * // Update one Department
     * const department = await prisma.department.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DepartmentUpdateArgs>(args: SelectSubset<T, DepartmentUpdateArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Departments.
     * @param {DepartmentDeleteManyArgs} args - Arguments to filter Departments to delete.
     * @example
     * // Delete a few Departments
     * const { count } = await prisma.department.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DepartmentDeleteManyArgs>(args?: SelectSubset<T, DepartmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Departments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DepartmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Departments
     * const department = await prisma.department.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DepartmentUpdateManyArgs>(args: SelectSubset<T, DepartmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Departments and returns the data updated in the database.
     * @param {DepartmentUpdateManyAndReturnArgs} args - Arguments to update many Departments.
     * @example
     * // Update many Departments
     * const department = await prisma.department.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Departments and only return the `id`
     * const departmentWithIdOnly = await prisma.department.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 DepartmentUpdateManyAndReturnArgs>(args: SelectSubset<T, DepartmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Department.
     * @param {DepartmentUpsertArgs} args - Arguments to update or create a Department.
     * @example
     * // Update or create a Department
     * const department = await prisma.department.upsert({
     *   create: {
     *     // ... data to create a Department
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Department we want to update
     *   }
     * })
     */
    upsert<T extends DepartmentUpsertArgs>(args: SelectSubset<T, DepartmentUpsertArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Departments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DepartmentCountArgs} args - Arguments to filter Departments to count.
     * @example
     * // Count the number of Departments
     * const count = await prisma.department.count({
     *   where: {
     *     // ... the filter for the Departments we want to count
     *   }
     * })
    **/
    count<T extends DepartmentCountArgs>(
      args?: Subset<T, DepartmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DepartmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Department.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DepartmentAggregateArgs} 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 DepartmentAggregateArgs>(args: Subset<T, DepartmentAggregateArgs>): Prisma.PrismaPromise<GetDepartmentAggregateType<T>>

    /**
     * Group by Department.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DepartmentGroupByArgs} 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 DepartmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DepartmentGroupByArgs['orderBy'] }
        : { orderBy?: DepartmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DepartmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDepartmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Department model
   */
  readonly fields: DepartmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Department.
   * 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__DepartmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    parent<T extends Department$parentArgs<ExtArgs> = {}>(args?: Subset<T, Department$parentArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    children<T extends Department$childrenArgs<ExtArgs> = {}>(args?: Subset<T, Department$childrenArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    userMemberships<T extends Department$userMembershipsArgs<ExtArgs> = {}>(args?: Subset<T, Department$userMembershipsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Department model
   */
  interface DepartmentFieldRefs {
    readonly id: FieldRef<"Department", 'String'>
    readonly organizationId: FieldRef<"Department", 'String'>
    readonly name: FieldRef<"Department", 'String'>
    readonly code: FieldRef<"Department", 'String'>
    readonly parentId: FieldRef<"Department", 'String'>
    readonly headId: FieldRef<"Department", 'String'>
    readonly description: FieldRef<"Department", 'String'>
    readonly order: FieldRef<"Department", 'Int'>
    readonly tenantId: FieldRef<"Department", 'String'>
    readonly metadata: FieldRef<"Department", 'Json'>
    readonly createdAt: FieldRef<"Department", 'DateTime'>
    readonly updatedAt: FieldRef<"Department", 'DateTime'>
    readonly deletedAt: FieldRef<"Department", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Department findUnique
   */
  export type DepartmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * Filter, which Department to fetch.
     */
    where: DepartmentWhereUniqueInput
  }

  /**
   * Department findUniqueOrThrow
   */
  export type DepartmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * Filter, which Department to fetch.
     */
    where: DepartmentWhereUniqueInput
  }

  /**
   * Department findFirst
   */
  export type DepartmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * Filter, which Department to fetch.
     */
    where?: DepartmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Departments to fetch.
     */
    orderBy?: DepartmentOrderByWithRelationInput | DepartmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Departments.
     */
    cursor?: DepartmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Departments 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` Departments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Departments.
     */
    distinct?: DepartmentScalarFieldEnum | DepartmentScalarFieldEnum[]
  }

  /**
   * Department findFirstOrThrow
   */
  export type DepartmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * Filter, which Department to fetch.
     */
    where?: DepartmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Departments to fetch.
     */
    orderBy?: DepartmentOrderByWithRelationInput | DepartmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Departments.
     */
    cursor?: DepartmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Departments 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` Departments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Departments.
     */
    distinct?: DepartmentScalarFieldEnum | DepartmentScalarFieldEnum[]
  }

  /**
   * Department findMany
   */
  export type DepartmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * Filter, which Departments to fetch.
     */
    where?: DepartmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Departments to fetch.
     */
    orderBy?: DepartmentOrderByWithRelationInput | DepartmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Departments.
     */
    cursor?: DepartmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Departments 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` Departments.
     */
    skip?: number
    distinct?: DepartmentScalarFieldEnum | DepartmentScalarFieldEnum[]
  }

  /**
   * Department create
   */
  export type DepartmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * The data needed to create a Department.
     */
    data: XOR<DepartmentCreateInput, DepartmentUncheckedCreateInput>
  }

  /**
   * Department createMany
   */
  export type DepartmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Departments.
     */
    data: DepartmentCreateManyInput | DepartmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Department createManyAndReturn
   */
  export type DepartmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * The data used to create many Departments.
     */
    data: DepartmentCreateManyInput | DepartmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Department update
   */
  export type DepartmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * The data needed to update a Department.
     */
    data: XOR<DepartmentUpdateInput, DepartmentUncheckedUpdateInput>
    /**
     * Choose, which Department to update.
     */
    where: DepartmentWhereUniqueInput
  }

  /**
   * Department updateMany
   */
  export type DepartmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Departments.
     */
    data: XOR<DepartmentUpdateManyMutationInput, DepartmentUncheckedUpdateManyInput>
    /**
     * Filter which Departments to update
     */
    where?: DepartmentWhereInput
    /**
     * Limit how many Departments to update.
     */
    limit?: number
  }

  /**
   * Department updateManyAndReturn
   */
  export type DepartmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * The data used to update Departments.
     */
    data: XOR<DepartmentUpdateManyMutationInput, DepartmentUncheckedUpdateManyInput>
    /**
     * Filter which Departments to update
     */
    where?: DepartmentWhereInput
    /**
     * Limit how many Departments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Department upsert
   */
  export type DepartmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * The filter to search for the Department to update in case it exists.
     */
    where: DepartmentWhereUniqueInput
    /**
     * In case the Department found by the `where` argument doesn't exist, create a new Department with this data.
     */
    create: XOR<DepartmentCreateInput, DepartmentUncheckedCreateInput>
    /**
     * In case the Department was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DepartmentUpdateInput, DepartmentUncheckedUpdateInput>
  }

  /**
   * Department delete
   */
  export type DepartmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    /**
     * Filter which Department to delete.
     */
    where: DepartmentWhereUniqueInput
  }

  /**
   * Department deleteMany
   */
  export type DepartmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Departments to delete
     */
    where?: DepartmentWhereInput
    /**
     * Limit how many Departments to delete.
     */
    limit?: number
  }

  /**
   * Department.parent
   */
  export type Department$parentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    where?: DepartmentWhereInput
  }

  /**
   * Department.children
   */
  export type Department$childrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
    where?: DepartmentWhereInput
    orderBy?: DepartmentOrderByWithRelationInput | DepartmentOrderByWithRelationInput[]
    cursor?: DepartmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DepartmentScalarFieldEnum | DepartmentScalarFieldEnum[]
  }

  /**
   * Department.userMemberships
   */
  export type Department$userMembershipsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    where?: UserDepartmentWhereInput
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    cursor?: UserDepartmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserDepartmentScalarFieldEnum | UserDepartmentScalarFieldEnum[]
  }

  /**
   * Department without action
   */
  export type DepartmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Department
     */
    select?: DepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Department
     */
    omit?: DepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DepartmentInclude<ExtArgs> | null
  }


  /**
   * Model Position
   */

  export type AggregatePosition = {
    _count: PositionCountAggregateOutputType | null
    _avg: PositionAvgAggregateOutputType | null
    _sum: PositionSumAggregateOutputType | null
    _min: PositionMinAggregateOutputType | null
    _max: PositionMaxAggregateOutputType | null
  }

  export type PositionAvgAggregateOutputType = {
    level: number | null
  }

  export type PositionSumAggregateOutputType = {
    level: number | null
  }

  export type PositionMinAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    level: number | null
    description: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type PositionMaxAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    level: number | null
    description: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type PositionCountAggregateOutputType = {
    id: number
    name: number
    code: number
    level: number
    description: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type PositionAvgAggregateInputType = {
    level?: true
  }

  export type PositionSumAggregateInputType = {
    level?: true
  }

  export type PositionMinAggregateInputType = {
    id?: true
    name?: true
    code?: true
    level?: true
    description?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type PositionMaxAggregateInputType = {
    id?: true
    name?: true
    code?: true
    level?: true
    description?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type PositionCountAggregateInputType = {
    id?: true
    name?: true
    code?: true
    level?: true
    description?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type PositionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Position to aggregate.
     */
    where?: PositionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Positions to fetch.
     */
    orderBy?: PositionOrderByWithRelationInput | PositionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PositionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Positions 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` Positions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Positions
    **/
    _count?: true | PositionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PositionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PositionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PositionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PositionMaxAggregateInputType
  }

  export type GetPositionAggregateType<T extends PositionAggregateArgs> = {
        [P in keyof T & keyof AggregatePosition]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePosition[P]>
      : GetScalarType<T[P], AggregatePosition[P]>
  }




  export type PositionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PositionWhereInput
    orderBy?: PositionOrderByWithAggregationInput | PositionOrderByWithAggregationInput[]
    by: PositionScalarFieldEnum[] | PositionScalarFieldEnum
    having?: PositionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PositionCountAggregateInputType | true
    _avg?: PositionAvgAggregateInputType
    _sum?: PositionSumAggregateInputType
    _min?: PositionMinAggregateInputType
    _max?: PositionMaxAggregateInputType
  }

  export type PositionGroupByOutputType = {
    id: string
    name: string
    code: string
    level: number
    description: string | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: PositionCountAggregateOutputType | null
    _avg: PositionAvgAggregateOutputType | null
    _sum: PositionSumAggregateOutputType | null
    _min: PositionMinAggregateOutputType | null
    _max: PositionMaxAggregateOutputType | null
  }

  type GetPositionGroupByPayload<T extends PositionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PositionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PositionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PositionGroupByOutputType[P]>
            : GetScalarType<T[P], PositionGroupByOutputType[P]>
        }
      >
    >


  export type PositionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    level?: boolean
    description?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    userMemberships?: boolean | Position$userMembershipsArgs<ExtArgs>
    _count?: boolean | PositionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["position"]>

  export type PositionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    level?: boolean
    description?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["position"]>

  export type PositionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    level?: boolean
    description?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["position"]>

  export type PositionSelectScalar = {
    id?: boolean
    name?: boolean
    code?: boolean
    level?: boolean
    description?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type PositionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "code" | "level" | "description" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["position"]>
  export type PositionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    userMemberships?: boolean | Position$userMembershipsArgs<ExtArgs>
    _count?: boolean | PositionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PositionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type PositionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $PositionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Position"
    objects: {
      userMemberships: Prisma.$UserDepartmentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      code: string
      level: number
      description: string | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["position"]>
    composites: {}
  }

  type PositionGetPayload<S extends boolean | null | undefined | PositionDefaultArgs> = $Result.GetResult<Prisma.$PositionPayload, S>

  type PositionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PositionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PositionCountAggregateInputType | true
    }

  export interface PositionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Position'], meta: { name: 'Position' } }
    /**
     * Find zero or one Position that matches the filter.
     * @param {PositionFindUniqueArgs} args - Arguments to find a Position
     * @example
     * // Get one Position
     * const position = await prisma.position.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PositionFindUniqueArgs>(args: SelectSubset<T, PositionFindUniqueArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Position that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PositionFindUniqueOrThrowArgs} args - Arguments to find a Position
     * @example
     * // Get one Position
     * const position = await prisma.position.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PositionFindUniqueOrThrowArgs>(args: SelectSubset<T, PositionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Position 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 {PositionFindFirstArgs} args - Arguments to find a Position
     * @example
     * // Get one Position
     * const position = await prisma.position.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PositionFindFirstArgs>(args?: SelectSubset<T, PositionFindFirstArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Position 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 {PositionFindFirstOrThrowArgs} args - Arguments to find a Position
     * @example
     * // Get one Position
     * const position = await prisma.position.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PositionFindFirstOrThrowArgs>(args?: SelectSubset<T, PositionFindFirstOrThrowArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Positions 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 {PositionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Positions
     * const positions = await prisma.position.findMany()
     * 
     * // Get first 10 Positions
     * const positions = await prisma.position.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const positionWithIdOnly = await prisma.position.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PositionFindManyArgs>(args?: SelectSubset<T, PositionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Position.
     * @param {PositionCreateArgs} args - Arguments to create a Position.
     * @example
     * // Create one Position
     * const Position = await prisma.position.create({
     *   data: {
     *     // ... data to create a Position
     *   }
     * })
     * 
     */
    create<T extends PositionCreateArgs>(args: SelectSubset<T, PositionCreateArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Positions.
     * @param {PositionCreateManyArgs} args - Arguments to create many Positions.
     * @example
     * // Create many Positions
     * const position = await prisma.position.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PositionCreateManyArgs>(args?: SelectSubset<T, PositionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Positions and returns the data saved in the database.
     * @param {PositionCreateManyAndReturnArgs} args - Arguments to create many Positions.
     * @example
     * // Create many Positions
     * const position = await prisma.position.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Positions and only return the `id`
     * const positionWithIdOnly = await prisma.position.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 PositionCreateManyAndReturnArgs>(args?: SelectSubset<T, PositionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Position.
     * @param {PositionDeleteArgs} args - Arguments to delete one Position.
     * @example
     * // Delete one Position
     * const Position = await prisma.position.delete({
     *   where: {
     *     // ... filter to delete one Position
     *   }
     * })
     * 
     */
    delete<T extends PositionDeleteArgs>(args: SelectSubset<T, PositionDeleteArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Position.
     * @param {PositionUpdateArgs} args - Arguments to update one Position.
     * @example
     * // Update one Position
     * const position = await prisma.position.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PositionUpdateArgs>(args: SelectSubset<T, PositionUpdateArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Positions.
     * @param {PositionDeleteManyArgs} args - Arguments to filter Positions to delete.
     * @example
     * // Delete a few Positions
     * const { count } = await prisma.position.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PositionDeleteManyArgs>(args?: SelectSubset<T, PositionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Positions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PositionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Positions
     * const position = await prisma.position.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PositionUpdateManyArgs>(args: SelectSubset<T, PositionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Positions and returns the data updated in the database.
     * @param {PositionUpdateManyAndReturnArgs} args - Arguments to update many Positions.
     * @example
     * // Update many Positions
     * const position = await prisma.position.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Positions and only return the `id`
     * const positionWithIdOnly = await prisma.position.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 PositionUpdateManyAndReturnArgs>(args: SelectSubset<T, PositionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Position.
     * @param {PositionUpsertArgs} args - Arguments to update or create a Position.
     * @example
     * // Update or create a Position
     * const position = await prisma.position.upsert({
     *   create: {
     *     // ... data to create a Position
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Position we want to update
     *   }
     * })
     */
    upsert<T extends PositionUpsertArgs>(args: SelectSubset<T, PositionUpsertArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Positions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PositionCountArgs} args - Arguments to filter Positions to count.
     * @example
     * // Count the number of Positions
     * const count = await prisma.position.count({
     *   where: {
     *     // ... the filter for the Positions we want to count
     *   }
     * })
    **/
    count<T extends PositionCountArgs>(
      args?: Subset<T, PositionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PositionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Position.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PositionAggregateArgs} 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 PositionAggregateArgs>(args: Subset<T, PositionAggregateArgs>): Prisma.PrismaPromise<GetPositionAggregateType<T>>

    /**
     * Group by Position.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PositionGroupByArgs} 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 PositionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PositionGroupByArgs['orderBy'] }
        : { orderBy?: PositionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PositionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPositionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Position model
   */
  readonly fields: PositionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Position.
   * 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__PositionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    userMemberships<T extends Position$userMembershipsArgs<ExtArgs> = {}>(args?: Subset<T, Position$userMembershipsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Position model
   */
  interface PositionFieldRefs {
    readonly id: FieldRef<"Position", 'String'>
    readonly name: FieldRef<"Position", 'String'>
    readonly code: FieldRef<"Position", 'String'>
    readonly level: FieldRef<"Position", 'Int'>
    readonly description: FieldRef<"Position", 'String'>
    readonly createdAt: FieldRef<"Position", 'DateTime'>
    readonly updatedAt: FieldRef<"Position", 'DateTime'>
    readonly deletedAt: FieldRef<"Position", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Position findUnique
   */
  export type PositionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * Filter, which Position to fetch.
     */
    where: PositionWhereUniqueInput
  }

  /**
   * Position findUniqueOrThrow
   */
  export type PositionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * Filter, which Position to fetch.
     */
    where: PositionWhereUniqueInput
  }

  /**
   * Position findFirst
   */
  export type PositionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * Filter, which Position to fetch.
     */
    where?: PositionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Positions to fetch.
     */
    orderBy?: PositionOrderByWithRelationInput | PositionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Positions.
     */
    cursor?: PositionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Positions 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` Positions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Positions.
     */
    distinct?: PositionScalarFieldEnum | PositionScalarFieldEnum[]
  }

  /**
   * Position findFirstOrThrow
   */
  export type PositionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * Filter, which Position to fetch.
     */
    where?: PositionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Positions to fetch.
     */
    orderBy?: PositionOrderByWithRelationInput | PositionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Positions.
     */
    cursor?: PositionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Positions 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` Positions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Positions.
     */
    distinct?: PositionScalarFieldEnum | PositionScalarFieldEnum[]
  }

  /**
   * Position findMany
   */
  export type PositionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * Filter, which Positions to fetch.
     */
    where?: PositionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Positions to fetch.
     */
    orderBy?: PositionOrderByWithRelationInput | PositionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Positions.
     */
    cursor?: PositionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Positions 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` Positions.
     */
    skip?: number
    distinct?: PositionScalarFieldEnum | PositionScalarFieldEnum[]
  }

  /**
   * Position create
   */
  export type PositionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * The data needed to create a Position.
     */
    data: XOR<PositionCreateInput, PositionUncheckedCreateInput>
  }

  /**
   * Position createMany
   */
  export type PositionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Positions.
     */
    data: PositionCreateManyInput | PositionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Position createManyAndReturn
   */
  export type PositionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * The data used to create many Positions.
     */
    data: PositionCreateManyInput | PositionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Position update
   */
  export type PositionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * The data needed to update a Position.
     */
    data: XOR<PositionUpdateInput, PositionUncheckedUpdateInput>
    /**
     * Choose, which Position to update.
     */
    where: PositionWhereUniqueInput
  }

  /**
   * Position updateMany
   */
  export type PositionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Positions.
     */
    data: XOR<PositionUpdateManyMutationInput, PositionUncheckedUpdateManyInput>
    /**
     * Filter which Positions to update
     */
    where?: PositionWhereInput
    /**
     * Limit how many Positions to update.
     */
    limit?: number
  }

  /**
   * Position updateManyAndReturn
   */
  export type PositionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * The data used to update Positions.
     */
    data: XOR<PositionUpdateManyMutationInput, PositionUncheckedUpdateManyInput>
    /**
     * Filter which Positions to update
     */
    where?: PositionWhereInput
    /**
     * Limit how many Positions to update.
     */
    limit?: number
  }

  /**
   * Position upsert
   */
  export type PositionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * The filter to search for the Position to update in case it exists.
     */
    where: PositionWhereUniqueInput
    /**
     * In case the Position found by the `where` argument doesn't exist, create a new Position with this data.
     */
    create: XOR<PositionCreateInput, PositionUncheckedCreateInput>
    /**
     * In case the Position was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PositionUpdateInput, PositionUncheckedUpdateInput>
  }

  /**
   * Position delete
   */
  export type PositionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    /**
     * Filter which Position to delete.
     */
    where: PositionWhereUniqueInput
  }

  /**
   * Position deleteMany
   */
  export type PositionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Positions to delete
     */
    where?: PositionWhereInput
    /**
     * Limit how many Positions to delete.
     */
    limit?: number
  }

  /**
   * Position.userMemberships
   */
  export type Position$userMembershipsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    where?: UserDepartmentWhereInput
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    cursor?: UserDepartmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserDepartmentScalarFieldEnum | UserDepartmentScalarFieldEnum[]
  }

  /**
   * Position without action
   */
  export type PositionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
  }


  /**
   * Model UserDepartment
   */

  export type AggregateUserDepartment = {
    _count: UserDepartmentCountAggregateOutputType | null
    _min: UserDepartmentMinAggregateOutputType | null
    _max: UserDepartmentMaxAggregateOutputType | null
  }

  export type UserDepartmentMinAggregateOutputType = {
    id: string | null
    userId: string | null
    organizationId: string | null
    departmentId: string | null
    positionId: string | null
    managerId: string | null
    isPrimary: boolean | null
    title: string | null
    joinedAt: Date | null
    leftAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type UserDepartmentMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    organizationId: string | null
    departmentId: string | null
    positionId: string | null
    managerId: string | null
    isPrimary: boolean | null
    title: string | null
    joinedAt: Date | null
    leftAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type UserDepartmentCountAggregateOutputType = {
    id: number
    userId: number
    organizationId: number
    departmentId: number
    positionId: number
    managerId: number
    isPrimary: number
    title: number
    joinedAt: number
    leftAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type UserDepartmentMinAggregateInputType = {
    id?: true
    userId?: true
    organizationId?: true
    departmentId?: true
    positionId?: true
    managerId?: true
    isPrimary?: true
    title?: true
    joinedAt?: true
    leftAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type UserDepartmentMaxAggregateInputType = {
    id?: true
    userId?: true
    organizationId?: true
    departmentId?: true
    positionId?: true
    managerId?: true
    isPrimary?: true
    title?: true
    joinedAt?: true
    leftAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type UserDepartmentCountAggregateInputType = {
    id?: true
    userId?: true
    organizationId?: true
    departmentId?: true
    positionId?: true
    managerId?: true
    isPrimary?: true
    title?: true
    joinedAt?: true
    leftAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type UserDepartmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UserDepartment to aggregate.
     */
    where?: UserDepartmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserDepartments to fetch.
     */
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: UserDepartmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserDepartments 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` UserDepartments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned UserDepartments
    **/
    _count?: true | UserDepartmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: UserDepartmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: UserDepartmentMaxAggregateInputType
  }

  export type GetUserDepartmentAggregateType<T extends UserDepartmentAggregateArgs> = {
        [P in keyof T & keyof AggregateUserDepartment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateUserDepartment[P]>
      : GetScalarType<T[P], AggregateUserDepartment[P]>
  }




  export type UserDepartmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserDepartmentWhereInput
    orderBy?: UserDepartmentOrderByWithAggregationInput | UserDepartmentOrderByWithAggregationInput[]
    by: UserDepartmentScalarFieldEnum[] | UserDepartmentScalarFieldEnum
    having?: UserDepartmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: UserDepartmentCountAggregateInputType | true
    _min?: UserDepartmentMinAggregateInputType
    _max?: UserDepartmentMaxAggregateInputType
  }

  export type UserDepartmentGroupByOutputType = {
    id: string
    userId: string
    organizationId: string
    departmentId: string
    positionId: string | null
    managerId: string | null
    isPrimary: boolean
    title: string | null
    joinedAt: Date
    leftAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: UserDepartmentCountAggregateOutputType | null
    _min: UserDepartmentMinAggregateOutputType | null
    _max: UserDepartmentMaxAggregateOutputType | null
  }

  type GetUserDepartmentGroupByPayload<T extends UserDepartmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<UserDepartmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof UserDepartmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], UserDepartmentGroupByOutputType[P]>
            : GetScalarType<T[P], UserDepartmentGroupByOutputType[P]>
        }
      >
    >


  export type UserDepartmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    organizationId?: boolean
    departmentId?: boolean
    positionId?: boolean
    managerId?: boolean
    isPrimary?: boolean
    title?: boolean
    joinedAt?: boolean
    leftAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    department?: boolean | DepartmentDefaultArgs<ExtArgs>
    position?: boolean | UserDepartment$positionArgs<ExtArgs>
    manager?: boolean | UserDepartment$managerArgs<ExtArgs>
  }, ExtArgs["result"]["userDepartment"]>

  export type UserDepartmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    organizationId?: boolean
    departmentId?: boolean
    positionId?: boolean
    managerId?: boolean
    isPrimary?: boolean
    title?: boolean
    joinedAt?: boolean
    leftAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    department?: boolean | DepartmentDefaultArgs<ExtArgs>
    position?: boolean | UserDepartment$positionArgs<ExtArgs>
    manager?: boolean | UserDepartment$managerArgs<ExtArgs>
  }, ExtArgs["result"]["userDepartment"]>

  export type UserDepartmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    organizationId?: boolean
    departmentId?: boolean
    positionId?: boolean
    managerId?: boolean
    isPrimary?: boolean
    title?: boolean
    joinedAt?: boolean
    leftAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    department?: boolean | DepartmentDefaultArgs<ExtArgs>
    position?: boolean | UserDepartment$positionArgs<ExtArgs>
    manager?: boolean | UserDepartment$managerArgs<ExtArgs>
  }, ExtArgs["result"]["userDepartment"]>

  export type UserDepartmentSelectScalar = {
    id?: boolean
    userId?: boolean
    organizationId?: boolean
    departmentId?: boolean
    positionId?: boolean
    managerId?: boolean
    isPrimary?: boolean
    title?: boolean
    joinedAt?: boolean
    leftAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type UserDepartmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "organizationId" | "departmentId" | "positionId" | "managerId" | "isPrimary" | "title" | "joinedAt" | "leftAt" | "createdAt" | "updatedAt", ExtArgs["result"]["userDepartment"]>
  export type UserDepartmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    department?: boolean | DepartmentDefaultArgs<ExtArgs>
    position?: boolean | UserDepartment$positionArgs<ExtArgs>
    manager?: boolean | UserDepartment$managerArgs<ExtArgs>
  }
  export type UserDepartmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    department?: boolean | DepartmentDefaultArgs<ExtArgs>
    position?: boolean | UserDepartment$positionArgs<ExtArgs>
    manager?: boolean | UserDepartment$managerArgs<ExtArgs>
  }
  export type UserDepartmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    department?: boolean | DepartmentDefaultArgs<ExtArgs>
    position?: boolean | UserDepartment$positionArgs<ExtArgs>
    manager?: boolean | UserDepartment$managerArgs<ExtArgs>
  }

  export type $UserDepartmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "UserDepartment"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs>
      department: Prisma.$DepartmentPayload<ExtArgs>
      position: Prisma.$PositionPayload<ExtArgs> | null
      manager: Prisma.$UserPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      organizationId: string
      departmentId: string
      positionId: string | null
      managerId: string | null
      isPrimary: boolean
      title: string | null
      joinedAt: Date
      leftAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["userDepartment"]>
    composites: {}
  }

  type UserDepartmentGetPayload<S extends boolean | null | undefined | UserDepartmentDefaultArgs> = $Result.GetResult<Prisma.$UserDepartmentPayload, S>

  type UserDepartmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<UserDepartmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: UserDepartmentCountAggregateInputType | true
    }

  export interface UserDepartmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['UserDepartment'], meta: { name: 'UserDepartment' } }
    /**
     * Find zero or one UserDepartment that matches the filter.
     * @param {UserDepartmentFindUniqueArgs} args - Arguments to find a UserDepartment
     * @example
     * // Get one UserDepartment
     * const userDepartment = await prisma.userDepartment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends UserDepartmentFindUniqueArgs>(args: SelectSubset<T, UserDepartmentFindUniqueArgs<ExtArgs>>): Prisma__UserDepartmentClient<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one UserDepartment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {UserDepartmentFindUniqueOrThrowArgs} args - Arguments to find a UserDepartment
     * @example
     * // Get one UserDepartment
     * const userDepartment = await prisma.userDepartment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends UserDepartmentFindUniqueOrThrowArgs>(args: SelectSubset<T, UserDepartmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__UserDepartmentClient<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UserDepartment 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 {UserDepartmentFindFirstArgs} args - Arguments to find a UserDepartment
     * @example
     * // Get one UserDepartment
     * const userDepartment = await prisma.userDepartment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends UserDepartmentFindFirstArgs>(args?: SelectSubset<T, UserDepartmentFindFirstArgs<ExtArgs>>): Prisma__UserDepartmentClient<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UserDepartment 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 {UserDepartmentFindFirstOrThrowArgs} args - Arguments to find a UserDepartment
     * @example
     * // Get one UserDepartment
     * const userDepartment = await prisma.userDepartment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends UserDepartmentFindFirstOrThrowArgs>(args?: SelectSubset<T, UserDepartmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__UserDepartmentClient<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more UserDepartments 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 {UserDepartmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all UserDepartments
     * const userDepartments = await prisma.userDepartment.findMany()
     * 
     * // Get first 10 UserDepartments
     * const userDepartments = await prisma.userDepartment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const userDepartmentWithIdOnly = await prisma.userDepartment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends UserDepartmentFindManyArgs>(args?: SelectSubset<T, UserDepartmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a UserDepartment.
     * @param {UserDepartmentCreateArgs} args - Arguments to create a UserDepartment.
     * @example
     * // Create one UserDepartment
     * const UserDepartment = await prisma.userDepartment.create({
     *   data: {
     *     // ... data to create a UserDepartment
     *   }
     * })
     * 
     */
    create<T extends UserDepartmentCreateArgs>(args: SelectSubset<T, UserDepartmentCreateArgs<ExtArgs>>): Prisma__UserDepartmentClient<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many UserDepartments.
     * @param {UserDepartmentCreateManyArgs} args - Arguments to create many UserDepartments.
     * @example
     * // Create many UserDepartments
     * const userDepartment = await prisma.userDepartment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends UserDepartmentCreateManyArgs>(args?: SelectSubset<T, UserDepartmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many UserDepartments and returns the data saved in the database.
     * @param {UserDepartmentCreateManyAndReturnArgs} args - Arguments to create many UserDepartments.
     * @example
     * // Create many UserDepartments
     * const userDepartment = await prisma.userDepartment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many UserDepartments and only return the `id`
     * const userDepartmentWithIdOnly = await prisma.userDepartment.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 UserDepartmentCreateManyAndReturnArgs>(args?: SelectSubset<T, UserDepartmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a UserDepartment.
     * @param {UserDepartmentDeleteArgs} args - Arguments to delete one UserDepartment.
     * @example
     * // Delete one UserDepartment
     * const UserDepartment = await prisma.userDepartment.delete({
     *   where: {
     *     // ... filter to delete one UserDepartment
     *   }
     * })
     * 
     */
    delete<T extends UserDepartmentDeleteArgs>(args: SelectSubset<T, UserDepartmentDeleteArgs<ExtArgs>>): Prisma__UserDepartmentClient<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one UserDepartment.
     * @param {UserDepartmentUpdateArgs} args - Arguments to update one UserDepartment.
     * @example
     * // Update one UserDepartment
     * const userDepartment = await prisma.userDepartment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends UserDepartmentUpdateArgs>(args: SelectSubset<T, UserDepartmentUpdateArgs<ExtArgs>>): Prisma__UserDepartmentClient<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more UserDepartments.
     * @param {UserDepartmentDeleteManyArgs} args - Arguments to filter UserDepartments to delete.
     * @example
     * // Delete a few UserDepartments
     * const { count } = await prisma.userDepartment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends UserDepartmentDeleteManyArgs>(args?: SelectSubset<T, UserDepartmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UserDepartments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserDepartmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many UserDepartments
     * const userDepartment = await prisma.userDepartment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends UserDepartmentUpdateManyArgs>(args: SelectSubset<T, UserDepartmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UserDepartments and returns the data updated in the database.
     * @param {UserDepartmentUpdateManyAndReturnArgs} args - Arguments to update many UserDepartments.
     * @example
     * // Update many UserDepartments
     * const userDepartment = await prisma.userDepartment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more UserDepartments and only return the `id`
     * const userDepartmentWithIdOnly = await prisma.userDepartment.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 UserDepartmentUpdateManyAndReturnArgs>(args: SelectSubset<T, UserDepartmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one UserDepartment.
     * @param {UserDepartmentUpsertArgs} args - Arguments to update or create a UserDepartment.
     * @example
     * // Update or create a UserDepartment
     * const userDepartment = await prisma.userDepartment.upsert({
     *   create: {
     *     // ... data to create a UserDepartment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the UserDepartment we want to update
     *   }
     * })
     */
    upsert<T extends UserDepartmentUpsertArgs>(args: SelectSubset<T, UserDepartmentUpsertArgs<ExtArgs>>): Prisma__UserDepartmentClient<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of UserDepartments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserDepartmentCountArgs} args - Arguments to filter UserDepartments to count.
     * @example
     * // Count the number of UserDepartments
     * const count = await prisma.userDepartment.count({
     *   where: {
     *     // ... the filter for the UserDepartments we want to count
     *   }
     * })
    **/
    count<T extends UserDepartmentCountArgs>(
      args?: Subset<T, UserDepartmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], UserDepartmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a UserDepartment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserDepartmentAggregateArgs} 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 UserDepartmentAggregateArgs>(args: Subset<T, UserDepartmentAggregateArgs>): Prisma.PrismaPromise<GetUserDepartmentAggregateType<T>>

    /**
     * Group by UserDepartment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserDepartmentGroupByArgs} 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 UserDepartmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: UserDepartmentGroupByArgs['orderBy'] }
        : { orderBy?: UserDepartmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, UserDepartmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetUserDepartmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the UserDepartment model
   */
  readonly fields: UserDepartmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for UserDepartment.
   * 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__UserDepartmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    department<T extends DepartmentDefaultArgs<ExtArgs> = {}>(args?: Subset<T, DepartmentDefaultArgs<ExtArgs>>): Prisma__DepartmentClient<$Result.GetResult<Prisma.$DepartmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    position<T extends UserDepartment$positionArgs<ExtArgs> = {}>(args?: Subset<T, UserDepartment$positionArgs<ExtArgs>>): Prisma__PositionClient<$Result.GetResult<Prisma.$PositionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    manager<T extends UserDepartment$managerArgs<ExtArgs> = {}>(args?: Subset<T, UserDepartment$managerArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the UserDepartment model
   */
  interface UserDepartmentFieldRefs {
    readonly id: FieldRef<"UserDepartment", 'String'>
    readonly userId: FieldRef<"UserDepartment", 'String'>
    readonly organizationId: FieldRef<"UserDepartment", 'String'>
    readonly departmentId: FieldRef<"UserDepartment", 'String'>
    readonly positionId: FieldRef<"UserDepartment", 'String'>
    readonly managerId: FieldRef<"UserDepartment", 'String'>
    readonly isPrimary: FieldRef<"UserDepartment", 'Boolean'>
    readonly title: FieldRef<"UserDepartment", 'String'>
    readonly joinedAt: FieldRef<"UserDepartment", 'DateTime'>
    readonly leftAt: FieldRef<"UserDepartment", 'DateTime'>
    readonly createdAt: FieldRef<"UserDepartment", 'DateTime'>
    readonly updatedAt: FieldRef<"UserDepartment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * UserDepartment findUnique
   */
  export type UserDepartmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * Filter, which UserDepartment to fetch.
     */
    where: UserDepartmentWhereUniqueInput
  }

  /**
   * UserDepartment findUniqueOrThrow
   */
  export type UserDepartmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * Filter, which UserDepartment to fetch.
     */
    where: UserDepartmentWhereUniqueInput
  }

  /**
   * UserDepartment findFirst
   */
  export type UserDepartmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * Filter, which UserDepartment to fetch.
     */
    where?: UserDepartmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserDepartments to fetch.
     */
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UserDepartments.
     */
    cursor?: UserDepartmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserDepartments 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` UserDepartments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UserDepartments.
     */
    distinct?: UserDepartmentScalarFieldEnum | UserDepartmentScalarFieldEnum[]
  }

  /**
   * UserDepartment findFirstOrThrow
   */
  export type UserDepartmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * Filter, which UserDepartment to fetch.
     */
    where?: UserDepartmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserDepartments to fetch.
     */
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UserDepartments.
     */
    cursor?: UserDepartmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserDepartments 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` UserDepartments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UserDepartments.
     */
    distinct?: UserDepartmentScalarFieldEnum | UserDepartmentScalarFieldEnum[]
  }

  /**
   * UserDepartment findMany
   */
  export type UserDepartmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * Filter, which UserDepartments to fetch.
     */
    where?: UserDepartmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserDepartments to fetch.
     */
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing UserDepartments.
     */
    cursor?: UserDepartmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserDepartments 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` UserDepartments.
     */
    skip?: number
    distinct?: UserDepartmentScalarFieldEnum | UserDepartmentScalarFieldEnum[]
  }

  /**
   * UserDepartment create
   */
  export type UserDepartmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * The data needed to create a UserDepartment.
     */
    data: XOR<UserDepartmentCreateInput, UserDepartmentUncheckedCreateInput>
  }

  /**
   * UserDepartment createMany
   */
  export type UserDepartmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many UserDepartments.
     */
    data: UserDepartmentCreateManyInput | UserDepartmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * UserDepartment createManyAndReturn
   */
  export type UserDepartmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * The data used to create many UserDepartments.
     */
    data: UserDepartmentCreateManyInput | UserDepartmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * UserDepartment update
   */
  export type UserDepartmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * The data needed to update a UserDepartment.
     */
    data: XOR<UserDepartmentUpdateInput, UserDepartmentUncheckedUpdateInput>
    /**
     * Choose, which UserDepartment to update.
     */
    where: UserDepartmentWhereUniqueInput
  }

  /**
   * UserDepartment updateMany
   */
  export type UserDepartmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update UserDepartments.
     */
    data: XOR<UserDepartmentUpdateManyMutationInput, UserDepartmentUncheckedUpdateManyInput>
    /**
     * Filter which UserDepartments to update
     */
    where?: UserDepartmentWhereInput
    /**
     * Limit how many UserDepartments to update.
     */
    limit?: number
  }

  /**
   * UserDepartment updateManyAndReturn
   */
  export type UserDepartmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * The data used to update UserDepartments.
     */
    data: XOR<UserDepartmentUpdateManyMutationInput, UserDepartmentUncheckedUpdateManyInput>
    /**
     * Filter which UserDepartments to update
     */
    where?: UserDepartmentWhereInput
    /**
     * Limit how many UserDepartments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * UserDepartment upsert
   */
  export type UserDepartmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * The filter to search for the UserDepartment to update in case it exists.
     */
    where: UserDepartmentWhereUniqueInput
    /**
     * In case the UserDepartment found by the `where` argument doesn't exist, create a new UserDepartment with this data.
     */
    create: XOR<UserDepartmentCreateInput, UserDepartmentUncheckedCreateInput>
    /**
     * In case the UserDepartment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<UserDepartmentUpdateInput, UserDepartmentUncheckedUpdateInput>
  }

  /**
   * UserDepartment delete
   */
  export type UserDepartmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    /**
     * Filter which UserDepartment to delete.
     */
    where: UserDepartmentWhereUniqueInput
  }

  /**
   * UserDepartment deleteMany
   */
  export type UserDepartmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UserDepartments to delete
     */
    where?: UserDepartmentWhereInput
    /**
     * Limit how many UserDepartments to delete.
     */
    limit?: number
  }

  /**
   * UserDepartment.position
   */
  export type UserDepartment$positionArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Position
     */
    select?: PositionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Position
     */
    omit?: PositionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PositionInclude<ExtArgs> | null
    where?: PositionWhereInput
  }

  /**
   * UserDepartment.manager
   */
  export type UserDepartment$managerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * UserDepartment without action
   */
  export type UserDepartmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
  }


  /**
   * Model ExpenseRequest
   */

  export type AggregateExpenseRequest = {
    _count: ExpenseRequestCountAggregateOutputType | null
    _avg: ExpenseRequestAvgAggregateOutputType | null
    _sum: ExpenseRequestSumAggregateOutputType | null
    _min: ExpenseRequestMinAggregateOutputType | null
    _max: ExpenseRequestMaxAggregateOutputType | null
  }

  export type ExpenseRequestAvgAggregateOutputType = {
    amount: Decimal | null
  }

  export type ExpenseRequestSumAggregateOutputType = {
    amount: Decimal | null
  }

  export type ExpenseRequestMinAggregateOutputType = {
    id: string | null
    code: string | null
    title: string | null
    description: string | null
    creatorId: string | null
    amount: Decimal | null
    currency: string | null
    category: $Enums.ExpenseCategory | null
    workflowInstanceId: string | null
    status: $Enums.ExpenseStatus | null
    expenseDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type ExpenseRequestMaxAggregateOutputType = {
    id: string | null
    code: string | null
    title: string | null
    description: string | null
    creatorId: string | null
    amount: Decimal | null
    currency: string | null
    category: $Enums.ExpenseCategory | null
    workflowInstanceId: string | null
    status: $Enums.ExpenseStatus | null
    expenseDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type ExpenseRequestCountAggregateOutputType = {
    id: number
    code: number
    title: number
    description: number
    creatorId: number
    amount: number
    currency: number
    category: number
    workflowInstanceId: number
    status: number
    attachments: number
    expenseDate: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type ExpenseRequestAvgAggregateInputType = {
    amount?: true
  }

  export type ExpenseRequestSumAggregateInputType = {
    amount?: true
  }

  export type ExpenseRequestMinAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    amount?: true
    currency?: true
    category?: true
    workflowInstanceId?: true
    status?: true
    expenseDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type ExpenseRequestMaxAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    amount?: true
    currency?: true
    category?: true
    workflowInstanceId?: true
    status?: true
    expenseDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type ExpenseRequestCountAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    amount?: true
    currency?: true
    category?: true
    workflowInstanceId?: true
    status?: true
    attachments?: true
    expenseDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type ExpenseRequestAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ExpenseRequest to aggregate.
     */
    where?: ExpenseRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ExpenseRequests to fetch.
     */
    orderBy?: ExpenseRequestOrderByWithRelationInput | ExpenseRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ExpenseRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ExpenseRequests 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` ExpenseRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ExpenseRequests
    **/
    _count?: true | ExpenseRequestCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ExpenseRequestAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ExpenseRequestSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ExpenseRequestMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ExpenseRequestMaxAggregateInputType
  }

  export type GetExpenseRequestAggregateType<T extends ExpenseRequestAggregateArgs> = {
        [P in keyof T & keyof AggregateExpenseRequest]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateExpenseRequest[P]>
      : GetScalarType<T[P], AggregateExpenseRequest[P]>
  }




  export type ExpenseRequestGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ExpenseRequestWhereInput
    orderBy?: ExpenseRequestOrderByWithAggregationInput | ExpenseRequestOrderByWithAggregationInput[]
    by: ExpenseRequestScalarFieldEnum[] | ExpenseRequestScalarFieldEnum
    having?: ExpenseRequestScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ExpenseRequestCountAggregateInputType | true
    _avg?: ExpenseRequestAvgAggregateInputType
    _sum?: ExpenseRequestSumAggregateInputType
    _min?: ExpenseRequestMinAggregateInputType
    _max?: ExpenseRequestMaxAggregateInputType
  }

  export type ExpenseRequestGroupByOutputType = {
    id: string
    code: string
    title: string
    description: string | null
    creatorId: string
    amount: Decimal
    currency: string
    category: $Enums.ExpenseCategory
    workflowInstanceId: string | null
    status: $Enums.ExpenseStatus
    attachments: JsonValue | null
    expenseDate: Date
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: ExpenseRequestCountAggregateOutputType | null
    _avg: ExpenseRequestAvgAggregateOutputType | null
    _sum: ExpenseRequestSumAggregateOutputType | null
    _min: ExpenseRequestMinAggregateOutputType | null
    _max: ExpenseRequestMaxAggregateOutputType | null
  }

  type GetExpenseRequestGroupByPayload<T extends ExpenseRequestGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ExpenseRequestGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ExpenseRequestGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ExpenseRequestGroupByOutputType[P]>
            : GetScalarType<T[P], ExpenseRequestGroupByOutputType[P]>
        }
      >
    >


  export type ExpenseRequestSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    amount?: boolean
    currency?: boolean
    category?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    attachments?: boolean
    expenseDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    items?: boolean | ExpenseRequest$itemsArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    _count?: boolean | ExpenseRequestCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["expenseRequest"]>

  export type ExpenseRequestSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    amount?: boolean
    currency?: boolean
    category?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    attachments?: boolean
    expenseDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["expenseRequest"]>

  export type ExpenseRequestSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    amount?: boolean
    currency?: boolean
    category?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    attachments?: boolean
    expenseDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["expenseRequest"]>

  export type ExpenseRequestSelectScalar = {
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    amount?: boolean
    currency?: boolean
    category?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    attachments?: boolean
    expenseDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type ExpenseRequestOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "title" | "description" | "creatorId" | "amount" | "currency" | "category" | "workflowInstanceId" | "status" | "attachments" | "expenseDate" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["expenseRequest"]>
  export type ExpenseRequestInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    items?: boolean | ExpenseRequest$itemsArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    _count?: boolean | ExpenseRequestCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ExpenseRequestIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type ExpenseRequestIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $ExpenseRequestPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ExpenseRequest"
    objects: {
      items: Prisma.$ExpenseItemPayload<ExtArgs>[]
      creator: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      title: string
      description: string | null
      creatorId: string
      amount: Prisma.Decimal
      currency: string
      category: $Enums.ExpenseCategory
      workflowInstanceId: string | null
      status: $Enums.ExpenseStatus
      attachments: Prisma.JsonValue | null
      expenseDate: Date
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["expenseRequest"]>
    composites: {}
  }

  type ExpenseRequestGetPayload<S extends boolean | null | undefined | ExpenseRequestDefaultArgs> = $Result.GetResult<Prisma.$ExpenseRequestPayload, S>

  type ExpenseRequestCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ExpenseRequestFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ExpenseRequestCountAggregateInputType | true
    }

  export interface ExpenseRequestDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ExpenseRequest'], meta: { name: 'ExpenseRequest' } }
    /**
     * Find zero or one ExpenseRequest that matches the filter.
     * @param {ExpenseRequestFindUniqueArgs} args - Arguments to find a ExpenseRequest
     * @example
     * // Get one ExpenseRequest
     * const expenseRequest = await prisma.expenseRequest.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ExpenseRequestFindUniqueArgs>(args: SelectSubset<T, ExpenseRequestFindUniqueArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ExpenseRequest that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ExpenseRequestFindUniqueOrThrowArgs} args - Arguments to find a ExpenseRequest
     * @example
     * // Get one ExpenseRequest
     * const expenseRequest = await prisma.expenseRequest.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ExpenseRequestFindUniqueOrThrowArgs>(args: SelectSubset<T, ExpenseRequestFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ExpenseRequest 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 {ExpenseRequestFindFirstArgs} args - Arguments to find a ExpenseRequest
     * @example
     * // Get one ExpenseRequest
     * const expenseRequest = await prisma.expenseRequest.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ExpenseRequestFindFirstArgs>(args?: SelectSubset<T, ExpenseRequestFindFirstArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ExpenseRequest 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 {ExpenseRequestFindFirstOrThrowArgs} args - Arguments to find a ExpenseRequest
     * @example
     * // Get one ExpenseRequest
     * const expenseRequest = await prisma.expenseRequest.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ExpenseRequestFindFirstOrThrowArgs>(args?: SelectSubset<T, ExpenseRequestFindFirstOrThrowArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ExpenseRequests 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 {ExpenseRequestFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ExpenseRequests
     * const expenseRequests = await prisma.expenseRequest.findMany()
     * 
     * // Get first 10 ExpenseRequests
     * const expenseRequests = await prisma.expenseRequest.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const expenseRequestWithIdOnly = await prisma.expenseRequest.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ExpenseRequestFindManyArgs>(args?: SelectSubset<T, ExpenseRequestFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ExpenseRequest.
     * @param {ExpenseRequestCreateArgs} args - Arguments to create a ExpenseRequest.
     * @example
     * // Create one ExpenseRequest
     * const ExpenseRequest = await prisma.expenseRequest.create({
     *   data: {
     *     // ... data to create a ExpenseRequest
     *   }
     * })
     * 
     */
    create<T extends ExpenseRequestCreateArgs>(args: SelectSubset<T, ExpenseRequestCreateArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ExpenseRequests.
     * @param {ExpenseRequestCreateManyArgs} args - Arguments to create many ExpenseRequests.
     * @example
     * // Create many ExpenseRequests
     * const expenseRequest = await prisma.expenseRequest.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ExpenseRequestCreateManyArgs>(args?: SelectSubset<T, ExpenseRequestCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ExpenseRequests and returns the data saved in the database.
     * @param {ExpenseRequestCreateManyAndReturnArgs} args - Arguments to create many ExpenseRequests.
     * @example
     * // Create many ExpenseRequests
     * const expenseRequest = await prisma.expenseRequest.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ExpenseRequests and only return the `id`
     * const expenseRequestWithIdOnly = await prisma.expenseRequest.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 ExpenseRequestCreateManyAndReturnArgs>(args?: SelectSubset<T, ExpenseRequestCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ExpenseRequest.
     * @param {ExpenseRequestDeleteArgs} args - Arguments to delete one ExpenseRequest.
     * @example
     * // Delete one ExpenseRequest
     * const ExpenseRequest = await prisma.expenseRequest.delete({
     *   where: {
     *     // ... filter to delete one ExpenseRequest
     *   }
     * })
     * 
     */
    delete<T extends ExpenseRequestDeleteArgs>(args: SelectSubset<T, ExpenseRequestDeleteArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ExpenseRequest.
     * @param {ExpenseRequestUpdateArgs} args - Arguments to update one ExpenseRequest.
     * @example
     * // Update one ExpenseRequest
     * const expenseRequest = await prisma.expenseRequest.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ExpenseRequestUpdateArgs>(args: SelectSubset<T, ExpenseRequestUpdateArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ExpenseRequests.
     * @param {ExpenseRequestDeleteManyArgs} args - Arguments to filter ExpenseRequests to delete.
     * @example
     * // Delete a few ExpenseRequests
     * const { count } = await prisma.expenseRequest.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ExpenseRequestDeleteManyArgs>(args?: SelectSubset<T, ExpenseRequestDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ExpenseRequests.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ExpenseRequestUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ExpenseRequests
     * const expenseRequest = await prisma.expenseRequest.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ExpenseRequestUpdateManyArgs>(args: SelectSubset<T, ExpenseRequestUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ExpenseRequests and returns the data updated in the database.
     * @param {ExpenseRequestUpdateManyAndReturnArgs} args - Arguments to update many ExpenseRequests.
     * @example
     * // Update many ExpenseRequests
     * const expenseRequest = await prisma.expenseRequest.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ExpenseRequests and only return the `id`
     * const expenseRequestWithIdOnly = await prisma.expenseRequest.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 ExpenseRequestUpdateManyAndReturnArgs>(args: SelectSubset<T, ExpenseRequestUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ExpenseRequest.
     * @param {ExpenseRequestUpsertArgs} args - Arguments to update or create a ExpenseRequest.
     * @example
     * // Update or create a ExpenseRequest
     * const expenseRequest = await prisma.expenseRequest.upsert({
     *   create: {
     *     // ... data to create a ExpenseRequest
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ExpenseRequest we want to update
     *   }
     * })
     */
    upsert<T extends ExpenseRequestUpsertArgs>(args: SelectSubset<T, ExpenseRequestUpsertArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ExpenseRequests.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ExpenseRequestCountArgs} args - Arguments to filter ExpenseRequests to count.
     * @example
     * // Count the number of ExpenseRequests
     * const count = await prisma.expenseRequest.count({
     *   where: {
     *     // ... the filter for the ExpenseRequests we want to count
     *   }
     * })
    **/
    count<T extends ExpenseRequestCountArgs>(
      args?: Subset<T, ExpenseRequestCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ExpenseRequestCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ExpenseRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ExpenseRequestAggregateArgs} 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 ExpenseRequestAggregateArgs>(args: Subset<T, ExpenseRequestAggregateArgs>): Prisma.PrismaPromise<GetExpenseRequestAggregateType<T>>

    /**
     * Group by ExpenseRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ExpenseRequestGroupByArgs} 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 ExpenseRequestGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ExpenseRequestGroupByArgs['orderBy'] }
        : { orderBy?: ExpenseRequestGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ExpenseRequestGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetExpenseRequestGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ExpenseRequest model
   */
  readonly fields: ExpenseRequestFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ExpenseRequest.
   * 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__ExpenseRequestClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    items<T extends ExpenseRequest$itemsArgs<ExtArgs> = {}>(args?: Subset<T, ExpenseRequest$itemsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ExpenseRequest model
   */
  interface ExpenseRequestFieldRefs {
    readonly id: FieldRef<"ExpenseRequest", 'String'>
    readonly code: FieldRef<"ExpenseRequest", 'String'>
    readonly title: FieldRef<"ExpenseRequest", 'String'>
    readonly description: FieldRef<"ExpenseRequest", 'String'>
    readonly creatorId: FieldRef<"ExpenseRequest", 'String'>
    readonly amount: FieldRef<"ExpenseRequest", 'Decimal'>
    readonly currency: FieldRef<"ExpenseRequest", 'String'>
    readonly category: FieldRef<"ExpenseRequest", 'ExpenseCategory'>
    readonly workflowInstanceId: FieldRef<"ExpenseRequest", 'String'>
    readonly status: FieldRef<"ExpenseRequest", 'ExpenseStatus'>
    readonly attachments: FieldRef<"ExpenseRequest", 'Json'>
    readonly expenseDate: FieldRef<"ExpenseRequest", 'DateTime'>
    readonly createdAt: FieldRef<"ExpenseRequest", 'DateTime'>
    readonly updatedAt: FieldRef<"ExpenseRequest", 'DateTime'>
    readonly deletedAt: FieldRef<"ExpenseRequest", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ExpenseRequest findUnique
   */
  export type ExpenseRequestFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseRequest to fetch.
     */
    where: ExpenseRequestWhereUniqueInput
  }

  /**
   * ExpenseRequest findUniqueOrThrow
   */
  export type ExpenseRequestFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseRequest to fetch.
     */
    where: ExpenseRequestWhereUniqueInput
  }

  /**
   * ExpenseRequest findFirst
   */
  export type ExpenseRequestFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseRequest to fetch.
     */
    where?: ExpenseRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ExpenseRequests to fetch.
     */
    orderBy?: ExpenseRequestOrderByWithRelationInput | ExpenseRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ExpenseRequests.
     */
    cursor?: ExpenseRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ExpenseRequests 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` ExpenseRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ExpenseRequests.
     */
    distinct?: ExpenseRequestScalarFieldEnum | ExpenseRequestScalarFieldEnum[]
  }

  /**
   * ExpenseRequest findFirstOrThrow
   */
  export type ExpenseRequestFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseRequest to fetch.
     */
    where?: ExpenseRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ExpenseRequests to fetch.
     */
    orderBy?: ExpenseRequestOrderByWithRelationInput | ExpenseRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ExpenseRequests.
     */
    cursor?: ExpenseRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ExpenseRequests 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` ExpenseRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ExpenseRequests.
     */
    distinct?: ExpenseRequestScalarFieldEnum | ExpenseRequestScalarFieldEnum[]
  }

  /**
   * ExpenseRequest findMany
   */
  export type ExpenseRequestFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseRequests to fetch.
     */
    where?: ExpenseRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ExpenseRequests to fetch.
     */
    orderBy?: ExpenseRequestOrderByWithRelationInput | ExpenseRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ExpenseRequests.
     */
    cursor?: ExpenseRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ExpenseRequests 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` ExpenseRequests.
     */
    skip?: number
    distinct?: ExpenseRequestScalarFieldEnum | ExpenseRequestScalarFieldEnum[]
  }

  /**
   * ExpenseRequest create
   */
  export type ExpenseRequestCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * The data needed to create a ExpenseRequest.
     */
    data: XOR<ExpenseRequestCreateInput, ExpenseRequestUncheckedCreateInput>
  }

  /**
   * ExpenseRequest createMany
   */
  export type ExpenseRequestCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ExpenseRequests.
     */
    data: ExpenseRequestCreateManyInput | ExpenseRequestCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ExpenseRequest createManyAndReturn
   */
  export type ExpenseRequestCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * The data used to create many ExpenseRequests.
     */
    data: ExpenseRequestCreateManyInput | ExpenseRequestCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ExpenseRequest update
   */
  export type ExpenseRequestUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * The data needed to update a ExpenseRequest.
     */
    data: XOR<ExpenseRequestUpdateInput, ExpenseRequestUncheckedUpdateInput>
    /**
     * Choose, which ExpenseRequest to update.
     */
    where: ExpenseRequestWhereUniqueInput
  }

  /**
   * ExpenseRequest updateMany
   */
  export type ExpenseRequestUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ExpenseRequests.
     */
    data: XOR<ExpenseRequestUpdateManyMutationInput, ExpenseRequestUncheckedUpdateManyInput>
    /**
     * Filter which ExpenseRequests to update
     */
    where?: ExpenseRequestWhereInput
    /**
     * Limit how many ExpenseRequests to update.
     */
    limit?: number
  }

  /**
   * ExpenseRequest updateManyAndReturn
   */
  export type ExpenseRequestUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * The data used to update ExpenseRequests.
     */
    data: XOR<ExpenseRequestUpdateManyMutationInput, ExpenseRequestUncheckedUpdateManyInput>
    /**
     * Filter which ExpenseRequests to update
     */
    where?: ExpenseRequestWhereInput
    /**
     * Limit how many ExpenseRequests to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ExpenseRequest upsert
   */
  export type ExpenseRequestUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * The filter to search for the ExpenseRequest to update in case it exists.
     */
    where: ExpenseRequestWhereUniqueInput
    /**
     * In case the ExpenseRequest found by the `where` argument doesn't exist, create a new ExpenseRequest with this data.
     */
    create: XOR<ExpenseRequestCreateInput, ExpenseRequestUncheckedCreateInput>
    /**
     * In case the ExpenseRequest was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ExpenseRequestUpdateInput, ExpenseRequestUncheckedUpdateInput>
  }

  /**
   * ExpenseRequest delete
   */
  export type ExpenseRequestDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    /**
     * Filter which ExpenseRequest to delete.
     */
    where: ExpenseRequestWhereUniqueInput
  }

  /**
   * ExpenseRequest deleteMany
   */
  export type ExpenseRequestDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ExpenseRequests to delete
     */
    where?: ExpenseRequestWhereInput
    /**
     * Limit how many ExpenseRequests to delete.
     */
    limit?: number
  }

  /**
   * ExpenseRequest.items
   */
  export type ExpenseRequest$itemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    where?: ExpenseItemWhereInput
    orderBy?: ExpenseItemOrderByWithRelationInput | ExpenseItemOrderByWithRelationInput[]
    cursor?: ExpenseItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ExpenseItemScalarFieldEnum | ExpenseItemScalarFieldEnum[]
  }

  /**
   * ExpenseRequest without action
   */
  export type ExpenseRequestDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
  }


  /**
   * Model ExpenseItem
   */

  export type AggregateExpenseItem = {
    _count: ExpenseItemCountAggregateOutputType | null
    _avg: ExpenseItemAvgAggregateOutputType | null
    _sum: ExpenseItemSumAggregateOutputType | null
    _min: ExpenseItemMinAggregateOutputType | null
    _max: ExpenseItemMaxAggregateOutputType | null
  }

  export type ExpenseItemAvgAggregateOutputType = {
    amount: Decimal | null
  }

  export type ExpenseItemSumAggregateOutputType = {
    amount: Decimal | null
  }

  export type ExpenseItemMinAggregateOutputType = {
    id: string | null
    expenseId: string | null
    description: string | null
    amount: Decimal | null
    date: Date | null
  }

  export type ExpenseItemMaxAggregateOutputType = {
    id: string | null
    expenseId: string | null
    description: string | null
    amount: Decimal | null
    date: Date | null
  }

  export type ExpenseItemCountAggregateOutputType = {
    id: number
    expenseId: number
    description: number
    amount: number
    date: number
    _all: number
  }


  export type ExpenseItemAvgAggregateInputType = {
    amount?: true
  }

  export type ExpenseItemSumAggregateInputType = {
    amount?: true
  }

  export type ExpenseItemMinAggregateInputType = {
    id?: true
    expenseId?: true
    description?: true
    amount?: true
    date?: true
  }

  export type ExpenseItemMaxAggregateInputType = {
    id?: true
    expenseId?: true
    description?: true
    amount?: true
    date?: true
  }

  export type ExpenseItemCountAggregateInputType = {
    id?: true
    expenseId?: true
    description?: true
    amount?: true
    date?: true
    _all?: true
  }

  export type ExpenseItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ExpenseItem to aggregate.
     */
    where?: ExpenseItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ExpenseItems to fetch.
     */
    orderBy?: ExpenseItemOrderByWithRelationInput | ExpenseItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ExpenseItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ExpenseItems 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` ExpenseItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ExpenseItems
    **/
    _count?: true | ExpenseItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ExpenseItemAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ExpenseItemSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ExpenseItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ExpenseItemMaxAggregateInputType
  }

  export type GetExpenseItemAggregateType<T extends ExpenseItemAggregateArgs> = {
        [P in keyof T & keyof AggregateExpenseItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateExpenseItem[P]>
      : GetScalarType<T[P], AggregateExpenseItem[P]>
  }




  export type ExpenseItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ExpenseItemWhereInput
    orderBy?: ExpenseItemOrderByWithAggregationInput | ExpenseItemOrderByWithAggregationInput[]
    by: ExpenseItemScalarFieldEnum[] | ExpenseItemScalarFieldEnum
    having?: ExpenseItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ExpenseItemCountAggregateInputType | true
    _avg?: ExpenseItemAvgAggregateInputType
    _sum?: ExpenseItemSumAggregateInputType
    _min?: ExpenseItemMinAggregateInputType
    _max?: ExpenseItemMaxAggregateInputType
  }

  export type ExpenseItemGroupByOutputType = {
    id: string
    expenseId: string
    description: string
    amount: Decimal
    date: Date
    _count: ExpenseItemCountAggregateOutputType | null
    _avg: ExpenseItemAvgAggregateOutputType | null
    _sum: ExpenseItemSumAggregateOutputType | null
    _min: ExpenseItemMinAggregateOutputType | null
    _max: ExpenseItemMaxAggregateOutputType | null
  }

  type GetExpenseItemGroupByPayload<T extends ExpenseItemGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ExpenseItemGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ExpenseItemGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ExpenseItemGroupByOutputType[P]>
            : GetScalarType<T[P], ExpenseItemGroupByOutputType[P]>
        }
      >
    >


  export type ExpenseItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    expenseId?: boolean
    description?: boolean
    amount?: boolean
    date?: boolean
    expense?: boolean | ExpenseRequestDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["expenseItem"]>

  export type ExpenseItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    expenseId?: boolean
    description?: boolean
    amount?: boolean
    date?: boolean
    expense?: boolean | ExpenseRequestDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["expenseItem"]>

  export type ExpenseItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    expenseId?: boolean
    description?: boolean
    amount?: boolean
    date?: boolean
    expense?: boolean | ExpenseRequestDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["expenseItem"]>

  export type ExpenseItemSelectScalar = {
    id?: boolean
    expenseId?: boolean
    description?: boolean
    amount?: boolean
    date?: boolean
  }

  export type ExpenseItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "expenseId" | "description" | "amount" | "date", ExtArgs["result"]["expenseItem"]>
  export type ExpenseItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    expense?: boolean | ExpenseRequestDefaultArgs<ExtArgs>
  }
  export type ExpenseItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    expense?: boolean | ExpenseRequestDefaultArgs<ExtArgs>
  }
  export type ExpenseItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    expense?: boolean | ExpenseRequestDefaultArgs<ExtArgs>
  }

  export type $ExpenseItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ExpenseItem"
    objects: {
      expense: Prisma.$ExpenseRequestPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      expenseId: string
      description: string
      amount: Prisma.Decimal
      date: Date
    }, ExtArgs["result"]["expenseItem"]>
    composites: {}
  }

  type ExpenseItemGetPayload<S extends boolean | null | undefined | ExpenseItemDefaultArgs> = $Result.GetResult<Prisma.$ExpenseItemPayload, S>

  type ExpenseItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ExpenseItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ExpenseItemCountAggregateInputType | true
    }

  export interface ExpenseItemDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ExpenseItem'], meta: { name: 'ExpenseItem' } }
    /**
     * Find zero or one ExpenseItem that matches the filter.
     * @param {ExpenseItemFindUniqueArgs} args - Arguments to find a ExpenseItem
     * @example
     * // Get one ExpenseItem
     * const expenseItem = await prisma.expenseItem.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ExpenseItemFindUniqueArgs>(args: SelectSubset<T, ExpenseItemFindUniqueArgs<ExtArgs>>): Prisma__ExpenseItemClient<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ExpenseItem that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ExpenseItemFindUniqueOrThrowArgs} args - Arguments to find a ExpenseItem
     * @example
     * // Get one ExpenseItem
     * const expenseItem = await prisma.expenseItem.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ExpenseItemFindUniqueOrThrowArgs>(args: SelectSubset<T, ExpenseItemFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ExpenseItemClient<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ExpenseItem 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 {ExpenseItemFindFirstArgs} args - Arguments to find a ExpenseItem
     * @example
     * // Get one ExpenseItem
     * const expenseItem = await prisma.expenseItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ExpenseItemFindFirstArgs>(args?: SelectSubset<T, ExpenseItemFindFirstArgs<ExtArgs>>): Prisma__ExpenseItemClient<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ExpenseItem 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 {ExpenseItemFindFirstOrThrowArgs} args - Arguments to find a ExpenseItem
     * @example
     * // Get one ExpenseItem
     * const expenseItem = await prisma.expenseItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ExpenseItemFindFirstOrThrowArgs>(args?: SelectSubset<T, ExpenseItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__ExpenseItemClient<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ExpenseItems 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 {ExpenseItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ExpenseItems
     * const expenseItems = await prisma.expenseItem.findMany()
     * 
     * // Get first 10 ExpenseItems
     * const expenseItems = await prisma.expenseItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const expenseItemWithIdOnly = await prisma.expenseItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ExpenseItemFindManyArgs>(args?: SelectSubset<T, ExpenseItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ExpenseItem.
     * @param {ExpenseItemCreateArgs} args - Arguments to create a ExpenseItem.
     * @example
     * // Create one ExpenseItem
     * const ExpenseItem = await prisma.expenseItem.create({
     *   data: {
     *     // ... data to create a ExpenseItem
     *   }
     * })
     * 
     */
    create<T extends ExpenseItemCreateArgs>(args: SelectSubset<T, ExpenseItemCreateArgs<ExtArgs>>): Prisma__ExpenseItemClient<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ExpenseItems.
     * @param {ExpenseItemCreateManyArgs} args - Arguments to create many ExpenseItems.
     * @example
     * // Create many ExpenseItems
     * const expenseItem = await prisma.expenseItem.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ExpenseItemCreateManyArgs>(args?: SelectSubset<T, ExpenseItemCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ExpenseItems and returns the data saved in the database.
     * @param {ExpenseItemCreateManyAndReturnArgs} args - Arguments to create many ExpenseItems.
     * @example
     * // Create many ExpenseItems
     * const expenseItem = await prisma.expenseItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ExpenseItems and only return the `id`
     * const expenseItemWithIdOnly = await prisma.expenseItem.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 ExpenseItemCreateManyAndReturnArgs>(args?: SelectSubset<T, ExpenseItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ExpenseItem.
     * @param {ExpenseItemDeleteArgs} args - Arguments to delete one ExpenseItem.
     * @example
     * // Delete one ExpenseItem
     * const ExpenseItem = await prisma.expenseItem.delete({
     *   where: {
     *     // ... filter to delete one ExpenseItem
     *   }
     * })
     * 
     */
    delete<T extends ExpenseItemDeleteArgs>(args: SelectSubset<T, ExpenseItemDeleteArgs<ExtArgs>>): Prisma__ExpenseItemClient<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ExpenseItem.
     * @param {ExpenseItemUpdateArgs} args - Arguments to update one ExpenseItem.
     * @example
     * // Update one ExpenseItem
     * const expenseItem = await prisma.expenseItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ExpenseItemUpdateArgs>(args: SelectSubset<T, ExpenseItemUpdateArgs<ExtArgs>>): Prisma__ExpenseItemClient<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ExpenseItems.
     * @param {ExpenseItemDeleteManyArgs} args - Arguments to filter ExpenseItems to delete.
     * @example
     * // Delete a few ExpenseItems
     * const { count } = await prisma.expenseItem.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ExpenseItemDeleteManyArgs>(args?: SelectSubset<T, ExpenseItemDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ExpenseItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ExpenseItemUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ExpenseItems
     * const expenseItem = await prisma.expenseItem.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ExpenseItemUpdateManyArgs>(args: SelectSubset<T, ExpenseItemUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ExpenseItems and returns the data updated in the database.
     * @param {ExpenseItemUpdateManyAndReturnArgs} args - Arguments to update many ExpenseItems.
     * @example
     * // Update many ExpenseItems
     * const expenseItem = await prisma.expenseItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ExpenseItems and only return the `id`
     * const expenseItemWithIdOnly = await prisma.expenseItem.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 ExpenseItemUpdateManyAndReturnArgs>(args: SelectSubset<T, ExpenseItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ExpenseItem.
     * @param {ExpenseItemUpsertArgs} args - Arguments to update or create a ExpenseItem.
     * @example
     * // Update or create a ExpenseItem
     * const expenseItem = await prisma.expenseItem.upsert({
     *   create: {
     *     // ... data to create a ExpenseItem
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ExpenseItem we want to update
     *   }
     * })
     */
    upsert<T extends ExpenseItemUpsertArgs>(args: SelectSubset<T, ExpenseItemUpsertArgs<ExtArgs>>): Prisma__ExpenseItemClient<$Result.GetResult<Prisma.$ExpenseItemPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ExpenseItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ExpenseItemCountArgs} args - Arguments to filter ExpenseItems to count.
     * @example
     * // Count the number of ExpenseItems
     * const count = await prisma.expenseItem.count({
     *   where: {
     *     // ... the filter for the ExpenseItems we want to count
     *   }
     * })
    **/
    count<T extends ExpenseItemCountArgs>(
      args?: Subset<T, ExpenseItemCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ExpenseItemCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ExpenseItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ExpenseItemAggregateArgs} 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 ExpenseItemAggregateArgs>(args: Subset<T, ExpenseItemAggregateArgs>): Prisma.PrismaPromise<GetExpenseItemAggregateType<T>>

    /**
     * Group by ExpenseItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ExpenseItemGroupByArgs} 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 ExpenseItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ExpenseItemGroupByArgs['orderBy'] }
        : { orderBy?: ExpenseItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ExpenseItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetExpenseItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ExpenseItem model
   */
  readonly fields: ExpenseItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ExpenseItem.
   * 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__ExpenseItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    expense<T extends ExpenseRequestDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ExpenseRequestDefaultArgs<ExtArgs>>): Prisma__ExpenseRequestClient<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ExpenseItem model
   */
  interface ExpenseItemFieldRefs {
    readonly id: FieldRef<"ExpenseItem", 'String'>
    readonly expenseId: FieldRef<"ExpenseItem", 'String'>
    readonly description: FieldRef<"ExpenseItem", 'String'>
    readonly amount: FieldRef<"ExpenseItem", 'Decimal'>
    readonly date: FieldRef<"ExpenseItem", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ExpenseItem findUnique
   */
  export type ExpenseItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseItem to fetch.
     */
    where: ExpenseItemWhereUniqueInput
  }

  /**
   * ExpenseItem findUniqueOrThrow
   */
  export type ExpenseItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseItem to fetch.
     */
    where: ExpenseItemWhereUniqueInput
  }

  /**
   * ExpenseItem findFirst
   */
  export type ExpenseItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseItem to fetch.
     */
    where?: ExpenseItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ExpenseItems to fetch.
     */
    orderBy?: ExpenseItemOrderByWithRelationInput | ExpenseItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ExpenseItems.
     */
    cursor?: ExpenseItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ExpenseItems 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` ExpenseItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ExpenseItems.
     */
    distinct?: ExpenseItemScalarFieldEnum | ExpenseItemScalarFieldEnum[]
  }

  /**
   * ExpenseItem findFirstOrThrow
   */
  export type ExpenseItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseItem to fetch.
     */
    where?: ExpenseItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ExpenseItems to fetch.
     */
    orderBy?: ExpenseItemOrderByWithRelationInput | ExpenseItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ExpenseItems.
     */
    cursor?: ExpenseItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ExpenseItems 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` ExpenseItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ExpenseItems.
     */
    distinct?: ExpenseItemScalarFieldEnum | ExpenseItemScalarFieldEnum[]
  }

  /**
   * ExpenseItem findMany
   */
  export type ExpenseItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * Filter, which ExpenseItems to fetch.
     */
    where?: ExpenseItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ExpenseItems to fetch.
     */
    orderBy?: ExpenseItemOrderByWithRelationInput | ExpenseItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ExpenseItems.
     */
    cursor?: ExpenseItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ExpenseItems 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` ExpenseItems.
     */
    skip?: number
    distinct?: ExpenseItemScalarFieldEnum | ExpenseItemScalarFieldEnum[]
  }

  /**
   * ExpenseItem create
   */
  export type ExpenseItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * The data needed to create a ExpenseItem.
     */
    data: XOR<ExpenseItemCreateInput, ExpenseItemUncheckedCreateInput>
  }

  /**
   * ExpenseItem createMany
   */
  export type ExpenseItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ExpenseItems.
     */
    data: ExpenseItemCreateManyInput | ExpenseItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ExpenseItem createManyAndReturn
   */
  export type ExpenseItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * The data used to create many ExpenseItems.
     */
    data: ExpenseItemCreateManyInput | ExpenseItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ExpenseItem update
   */
  export type ExpenseItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * The data needed to update a ExpenseItem.
     */
    data: XOR<ExpenseItemUpdateInput, ExpenseItemUncheckedUpdateInput>
    /**
     * Choose, which ExpenseItem to update.
     */
    where: ExpenseItemWhereUniqueInput
  }

  /**
   * ExpenseItem updateMany
   */
  export type ExpenseItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ExpenseItems.
     */
    data: XOR<ExpenseItemUpdateManyMutationInput, ExpenseItemUncheckedUpdateManyInput>
    /**
     * Filter which ExpenseItems to update
     */
    where?: ExpenseItemWhereInput
    /**
     * Limit how many ExpenseItems to update.
     */
    limit?: number
  }

  /**
   * ExpenseItem updateManyAndReturn
   */
  export type ExpenseItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * The data used to update ExpenseItems.
     */
    data: XOR<ExpenseItemUpdateManyMutationInput, ExpenseItemUncheckedUpdateManyInput>
    /**
     * Filter which ExpenseItems to update
     */
    where?: ExpenseItemWhereInput
    /**
     * Limit how many ExpenseItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ExpenseItem upsert
   */
  export type ExpenseItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * The filter to search for the ExpenseItem to update in case it exists.
     */
    where: ExpenseItemWhereUniqueInput
    /**
     * In case the ExpenseItem found by the `where` argument doesn't exist, create a new ExpenseItem with this data.
     */
    create: XOR<ExpenseItemCreateInput, ExpenseItemUncheckedCreateInput>
    /**
     * In case the ExpenseItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ExpenseItemUpdateInput, ExpenseItemUncheckedUpdateInput>
  }

  /**
   * ExpenseItem delete
   */
  export type ExpenseItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
    /**
     * Filter which ExpenseItem to delete.
     */
    where: ExpenseItemWhereUniqueInput
  }

  /**
   * ExpenseItem deleteMany
   */
  export type ExpenseItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ExpenseItems to delete
     */
    where?: ExpenseItemWhereInput
    /**
     * Limit how many ExpenseItems to delete.
     */
    limit?: number
  }

  /**
   * ExpenseItem without action
   */
  export type ExpenseItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseItem
     */
    select?: ExpenseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseItem
     */
    omit?: ExpenseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseItemInclude<ExtArgs> | null
  }


  /**
   * Model PurchaseRequest
   */

  export type AggregatePurchaseRequest = {
    _count: PurchaseRequestCountAggregateOutputType | null
    _avg: PurchaseRequestAvgAggregateOutputType | null
    _sum: PurchaseRequestSumAggregateOutputType | null
    _min: PurchaseRequestMinAggregateOutputType | null
    _max: PurchaseRequestMaxAggregateOutputType | null
  }

  export type PurchaseRequestAvgAggregateOutputType = {
    totalAmount: Decimal | null
  }

  export type PurchaseRequestSumAggregateOutputType = {
    totalAmount: Decimal | null
  }

  export type PurchaseRequestMinAggregateOutputType = {
    id: string | null
    code: string | null
    title: string | null
    description: string | null
    creatorId: string | null
    totalAmount: Decimal | null
    currency: string | null
    vendorName: string | null
    vendorContact: string | null
    workflowInstanceId: string | null
    status: $Enums.PurchaseStatus | null
    expectedDeliveryDate: Date | null
    actualDeliveryDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type PurchaseRequestMaxAggregateOutputType = {
    id: string | null
    code: string | null
    title: string | null
    description: string | null
    creatorId: string | null
    totalAmount: Decimal | null
    currency: string | null
    vendorName: string | null
    vendorContact: string | null
    workflowInstanceId: string | null
    status: $Enums.PurchaseStatus | null
    expectedDeliveryDate: Date | null
    actualDeliveryDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type PurchaseRequestCountAggregateOutputType = {
    id: number
    code: number
    title: number
    description: number
    creatorId: number
    totalAmount: number
    currency: number
    vendorName: number
    vendorContact: number
    workflowInstanceId: number
    status: number
    attachments: number
    expectedDeliveryDate: number
    actualDeliveryDate: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type PurchaseRequestAvgAggregateInputType = {
    totalAmount?: true
  }

  export type PurchaseRequestSumAggregateInputType = {
    totalAmount?: true
  }

  export type PurchaseRequestMinAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    totalAmount?: true
    currency?: true
    vendorName?: true
    vendorContact?: true
    workflowInstanceId?: true
    status?: true
    expectedDeliveryDate?: true
    actualDeliveryDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type PurchaseRequestMaxAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    totalAmount?: true
    currency?: true
    vendorName?: true
    vendorContact?: true
    workflowInstanceId?: true
    status?: true
    expectedDeliveryDate?: true
    actualDeliveryDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type PurchaseRequestCountAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    totalAmount?: true
    currency?: true
    vendorName?: true
    vendorContact?: true
    workflowInstanceId?: true
    status?: true
    attachments?: true
    expectedDeliveryDate?: true
    actualDeliveryDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type PurchaseRequestAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PurchaseRequest to aggregate.
     */
    where?: PurchaseRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseRequests to fetch.
     */
    orderBy?: PurchaseRequestOrderByWithRelationInput | PurchaseRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PurchaseRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseRequests 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` PurchaseRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PurchaseRequests
    **/
    _count?: true | PurchaseRequestCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PurchaseRequestAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PurchaseRequestSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PurchaseRequestMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PurchaseRequestMaxAggregateInputType
  }

  export type GetPurchaseRequestAggregateType<T extends PurchaseRequestAggregateArgs> = {
        [P in keyof T & keyof AggregatePurchaseRequest]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePurchaseRequest[P]>
      : GetScalarType<T[P], AggregatePurchaseRequest[P]>
  }




  export type PurchaseRequestGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PurchaseRequestWhereInput
    orderBy?: PurchaseRequestOrderByWithAggregationInput | PurchaseRequestOrderByWithAggregationInput[]
    by: PurchaseRequestScalarFieldEnum[] | PurchaseRequestScalarFieldEnum
    having?: PurchaseRequestScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PurchaseRequestCountAggregateInputType | true
    _avg?: PurchaseRequestAvgAggregateInputType
    _sum?: PurchaseRequestSumAggregateInputType
    _min?: PurchaseRequestMinAggregateInputType
    _max?: PurchaseRequestMaxAggregateInputType
  }

  export type PurchaseRequestGroupByOutputType = {
    id: string
    code: string
    title: string
    description: string | null
    creatorId: string
    totalAmount: Decimal
    currency: string
    vendorName: string
    vendorContact: string | null
    workflowInstanceId: string | null
    status: $Enums.PurchaseStatus
    attachments: JsonValue | null
    expectedDeliveryDate: Date | null
    actualDeliveryDate: Date | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: PurchaseRequestCountAggregateOutputType | null
    _avg: PurchaseRequestAvgAggregateOutputType | null
    _sum: PurchaseRequestSumAggregateOutputType | null
    _min: PurchaseRequestMinAggregateOutputType | null
    _max: PurchaseRequestMaxAggregateOutputType | null
  }

  type GetPurchaseRequestGroupByPayload<T extends PurchaseRequestGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PurchaseRequestGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PurchaseRequestGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PurchaseRequestGroupByOutputType[P]>
            : GetScalarType<T[P], PurchaseRequestGroupByOutputType[P]>
        }
      >
    >


  export type PurchaseRequestSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    totalAmount?: boolean
    currency?: boolean
    vendorName?: boolean
    vendorContact?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    attachments?: boolean
    expectedDeliveryDate?: boolean
    actualDeliveryDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    items?: boolean | PurchaseRequest$itemsArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    _count?: boolean | PurchaseRequestCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseRequest"]>

  export type PurchaseRequestSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    totalAmount?: boolean
    currency?: boolean
    vendorName?: boolean
    vendorContact?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    attachments?: boolean
    expectedDeliveryDate?: boolean
    actualDeliveryDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseRequest"]>

  export type PurchaseRequestSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    totalAmount?: boolean
    currency?: boolean
    vendorName?: boolean
    vendorContact?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    attachments?: boolean
    expectedDeliveryDate?: boolean
    actualDeliveryDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseRequest"]>

  export type PurchaseRequestSelectScalar = {
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    totalAmount?: boolean
    currency?: boolean
    vendorName?: boolean
    vendorContact?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    attachments?: boolean
    expectedDeliveryDate?: boolean
    actualDeliveryDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type PurchaseRequestOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "title" | "description" | "creatorId" | "totalAmount" | "currency" | "vendorName" | "vendorContact" | "workflowInstanceId" | "status" | "attachments" | "expectedDeliveryDate" | "actualDeliveryDate" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["purchaseRequest"]>
  export type PurchaseRequestInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    items?: boolean | PurchaseRequest$itemsArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    _count?: boolean | PurchaseRequestCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PurchaseRequestIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type PurchaseRequestIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $PurchaseRequestPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PurchaseRequest"
    objects: {
      items: Prisma.$PurchaseItemPayload<ExtArgs>[]
      creator: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      title: string
      description: string | null
      creatorId: string
      totalAmount: Prisma.Decimal
      currency: string
      vendorName: string
      vendorContact: string | null
      workflowInstanceId: string | null
      status: $Enums.PurchaseStatus
      attachments: Prisma.JsonValue | null
      expectedDeliveryDate: Date | null
      actualDeliveryDate: Date | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["purchaseRequest"]>
    composites: {}
  }

  type PurchaseRequestGetPayload<S extends boolean | null | undefined | PurchaseRequestDefaultArgs> = $Result.GetResult<Prisma.$PurchaseRequestPayload, S>

  type PurchaseRequestCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PurchaseRequestFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PurchaseRequestCountAggregateInputType | true
    }

  export interface PurchaseRequestDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PurchaseRequest'], meta: { name: 'PurchaseRequest' } }
    /**
     * Find zero or one PurchaseRequest that matches the filter.
     * @param {PurchaseRequestFindUniqueArgs} args - Arguments to find a PurchaseRequest
     * @example
     * // Get one PurchaseRequest
     * const purchaseRequest = await prisma.purchaseRequest.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PurchaseRequestFindUniqueArgs>(args: SelectSubset<T, PurchaseRequestFindUniqueArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PurchaseRequest that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PurchaseRequestFindUniqueOrThrowArgs} args - Arguments to find a PurchaseRequest
     * @example
     * // Get one PurchaseRequest
     * const purchaseRequest = await prisma.purchaseRequest.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PurchaseRequestFindUniqueOrThrowArgs>(args: SelectSubset<T, PurchaseRequestFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PurchaseRequest 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 {PurchaseRequestFindFirstArgs} args - Arguments to find a PurchaseRequest
     * @example
     * // Get one PurchaseRequest
     * const purchaseRequest = await prisma.purchaseRequest.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PurchaseRequestFindFirstArgs>(args?: SelectSubset<T, PurchaseRequestFindFirstArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PurchaseRequest 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 {PurchaseRequestFindFirstOrThrowArgs} args - Arguments to find a PurchaseRequest
     * @example
     * // Get one PurchaseRequest
     * const purchaseRequest = await prisma.purchaseRequest.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PurchaseRequestFindFirstOrThrowArgs>(args?: SelectSubset<T, PurchaseRequestFindFirstOrThrowArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PurchaseRequests 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 {PurchaseRequestFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PurchaseRequests
     * const purchaseRequests = await prisma.purchaseRequest.findMany()
     * 
     * // Get first 10 PurchaseRequests
     * const purchaseRequests = await prisma.purchaseRequest.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const purchaseRequestWithIdOnly = await prisma.purchaseRequest.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PurchaseRequestFindManyArgs>(args?: SelectSubset<T, PurchaseRequestFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PurchaseRequest.
     * @param {PurchaseRequestCreateArgs} args - Arguments to create a PurchaseRequest.
     * @example
     * // Create one PurchaseRequest
     * const PurchaseRequest = await prisma.purchaseRequest.create({
     *   data: {
     *     // ... data to create a PurchaseRequest
     *   }
     * })
     * 
     */
    create<T extends PurchaseRequestCreateArgs>(args: SelectSubset<T, PurchaseRequestCreateArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PurchaseRequests.
     * @param {PurchaseRequestCreateManyArgs} args - Arguments to create many PurchaseRequests.
     * @example
     * // Create many PurchaseRequests
     * const purchaseRequest = await prisma.purchaseRequest.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PurchaseRequestCreateManyArgs>(args?: SelectSubset<T, PurchaseRequestCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PurchaseRequests and returns the data saved in the database.
     * @param {PurchaseRequestCreateManyAndReturnArgs} args - Arguments to create many PurchaseRequests.
     * @example
     * // Create many PurchaseRequests
     * const purchaseRequest = await prisma.purchaseRequest.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PurchaseRequests and only return the `id`
     * const purchaseRequestWithIdOnly = await prisma.purchaseRequest.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 PurchaseRequestCreateManyAndReturnArgs>(args?: SelectSubset<T, PurchaseRequestCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PurchaseRequest.
     * @param {PurchaseRequestDeleteArgs} args - Arguments to delete one PurchaseRequest.
     * @example
     * // Delete one PurchaseRequest
     * const PurchaseRequest = await prisma.purchaseRequest.delete({
     *   where: {
     *     // ... filter to delete one PurchaseRequest
     *   }
     * })
     * 
     */
    delete<T extends PurchaseRequestDeleteArgs>(args: SelectSubset<T, PurchaseRequestDeleteArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PurchaseRequest.
     * @param {PurchaseRequestUpdateArgs} args - Arguments to update one PurchaseRequest.
     * @example
     * // Update one PurchaseRequest
     * const purchaseRequest = await prisma.purchaseRequest.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PurchaseRequestUpdateArgs>(args: SelectSubset<T, PurchaseRequestUpdateArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PurchaseRequests.
     * @param {PurchaseRequestDeleteManyArgs} args - Arguments to filter PurchaseRequests to delete.
     * @example
     * // Delete a few PurchaseRequests
     * const { count } = await prisma.purchaseRequest.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PurchaseRequestDeleteManyArgs>(args?: SelectSubset<T, PurchaseRequestDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PurchaseRequests.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseRequestUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PurchaseRequests
     * const purchaseRequest = await prisma.purchaseRequest.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PurchaseRequestUpdateManyArgs>(args: SelectSubset<T, PurchaseRequestUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PurchaseRequests and returns the data updated in the database.
     * @param {PurchaseRequestUpdateManyAndReturnArgs} args - Arguments to update many PurchaseRequests.
     * @example
     * // Update many PurchaseRequests
     * const purchaseRequest = await prisma.purchaseRequest.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PurchaseRequests and only return the `id`
     * const purchaseRequestWithIdOnly = await prisma.purchaseRequest.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 PurchaseRequestUpdateManyAndReturnArgs>(args: SelectSubset<T, PurchaseRequestUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PurchaseRequest.
     * @param {PurchaseRequestUpsertArgs} args - Arguments to update or create a PurchaseRequest.
     * @example
     * // Update or create a PurchaseRequest
     * const purchaseRequest = await prisma.purchaseRequest.upsert({
     *   create: {
     *     // ... data to create a PurchaseRequest
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PurchaseRequest we want to update
     *   }
     * })
     */
    upsert<T extends PurchaseRequestUpsertArgs>(args: SelectSubset<T, PurchaseRequestUpsertArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PurchaseRequests.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseRequestCountArgs} args - Arguments to filter PurchaseRequests to count.
     * @example
     * // Count the number of PurchaseRequests
     * const count = await prisma.purchaseRequest.count({
     *   where: {
     *     // ... the filter for the PurchaseRequests we want to count
     *   }
     * })
    **/
    count<T extends PurchaseRequestCountArgs>(
      args?: Subset<T, PurchaseRequestCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PurchaseRequestCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PurchaseRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseRequestAggregateArgs} 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 PurchaseRequestAggregateArgs>(args: Subset<T, PurchaseRequestAggregateArgs>): Prisma.PrismaPromise<GetPurchaseRequestAggregateType<T>>

    /**
     * Group by PurchaseRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseRequestGroupByArgs} 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 PurchaseRequestGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PurchaseRequestGroupByArgs['orderBy'] }
        : { orderBy?: PurchaseRequestGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PurchaseRequestGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPurchaseRequestGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PurchaseRequest model
   */
  readonly fields: PurchaseRequestFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PurchaseRequest.
   * 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__PurchaseRequestClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    items<T extends PurchaseRequest$itemsArgs<ExtArgs> = {}>(args?: Subset<T, PurchaseRequest$itemsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PurchaseRequest model
   */
  interface PurchaseRequestFieldRefs {
    readonly id: FieldRef<"PurchaseRequest", 'String'>
    readonly code: FieldRef<"PurchaseRequest", 'String'>
    readonly title: FieldRef<"PurchaseRequest", 'String'>
    readonly description: FieldRef<"PurchaseRequest", 'String'>
    readonly creatorId: FieldRef<"PurchaseRequest", 'String'>
    readonly totalAmount: FieldRef<"PurchaseRequest", 'Decimal'>
    readonly currency: FieldRef<"PurchaseRequest", 'String'>
    readonly vendorName: FieldRef<"PurchaseRequest", 'String'>
    readonly vendorContact: FieldRef<"PurchaseRequest", 'String'>
    readonly workflowInstanceId: FieldRef<"PurchaseRequest", 'String'>
    readonly status: FieldRef<"PurchaseRequest", 'PurchaseStatus'>
    readonly attachments: FieldRef<"PurchaseRequest", 'Json'>
    readonly expectedDeliveryDate: FieldRef<"PurchaseRequest", 'DateTime'>
    readonly actualDeliveryDate: FieldRef<"PurchaseRequest", 'DateTime'>
    readonly createdAt: FieldRef<"PurchaseRequest", 'DateTime'>
    readonly updatedAt: FieldRef<"PurchaseRequest", 'DateTime'>
    readonly deletedAt: FieldRef<"PurchaseRequest", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PurchaseRequest findUnique
   */
  export type PurchaseRequestFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseRequest to fetch.
     */
    where: PurchaseRequestWhereUniqueInput
  }

  /**
   * PurchaseRequest findUniqueOrThrow
   */
  export type PurchaseRequestFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseRequest to fetch.
     */
    where: PurchaseRequestWhereUniqueInput
  }

  /**
   * PurchaseRequest findFirst
   */
  export type PurchaseRequestFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseRequest to fetch.
     */
    where?: PurchaseRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseRequests to fetch.
     */
    orderBy?: PurchaseRequestOrderByWithRelationInput | PurchaseRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PurchaseRequests.
     */
    cursor?: PurchaseRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseRequests 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` PurchaseRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PurchaseRequests.
     */
    distinct?: PurchaseRequestScalarFieldEnum | PurchaseRequestScalarFieldEnum[]
  }

  /**
   * PurchaseRequest findFirstOrThrow
   */
  export type PurchaseRequestFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseRequest to fetch.
     */
    where?: PurchaseRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseRequests to fetch.
     */
    orderBy?: PurchaseRequestOrderByWithRelationInput | PurchaseRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PurchaseRequests.
     */
    cursor?: PurchaseRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseRequests 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` PurchaseRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PurchaseRequests.
     */
    distinct?: PurchaseRequestScalarFieldEnum | PurchaseRequestScalarFieldEnum[]
  }

  /**
   * PurchaseRequest findMany
   */
  export type PurchaseRequestFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseRequests to fetch.
     */
    where?: PurchaseRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseRequests to fetch.
     */
    orderBy?: PurchaseRequestOrderByWithRelationInput | PurchaseRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PurchaseRequests.
     */
    cursor?: PurchaseRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseRequests 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` PurchaseRequests.
     */
    skip?: number
    distinct?: PurchaseRequestScalarFieldEnum | PurchaseRequestScalarFieldEnum[]
  }

  /**
   * PurchaseRequest create
   */
  export type PurchaseRequestCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * The data needed to create a PurchaseRequest.
     */
    data: XOR<PurchaseRequestCreateInput, PurchaseRequestUncheckedCreateInput>
  }

  /**
   * PurchaseRequest createMany
   */
  export type PurchaseRequestCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PurchaseRequests.
     */
    data: PurchaseRequestCreateManyInput | PurchaseRequestCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PurchaseRequest createManyAndReturn
   */
  export type PurchaseRequestCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * The data used to create many PurchaseRequests.
     */
    data: PurchaseRequestCreateManyInput | PurchaseRequestCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PurchaseRequest update
   */
  export type PurchaseRequestUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * The data needed to update a PurchaseRequest.
     */
    data: XOR<PurchaseRequestUpdateInput, PurchaseRequestUncheckedUpdateInput>
    /**
     * Choose, which PurchaseRequest to update.
     */
    where: PurchaseRequestWhereUniqueInput
  }

  /**
   * PurchaseRequest updateMany
   */
  export type PurchaseRequestUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PurchaseRequests.
     */
    data: XOR<PurchaseRequestUpdateManyMutationInput, PurchaseRequestUncheckedUpdateManyInput>
    /**
     * Filter which PurchaseRequests to update
     */
    where?: PurchaseRequestWhereInput
    /**
     * Limit how many PurchaseRequests to update.
     */
    limit?: number
  }

  /**
   * PurchaseRequest updateManyAndReturn
   */
  export type PurchaseRequestUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * The data used to update PurchaseRequests.
     */
    data: XOR<PurchaseRequestUpdateManyMutationInput, PurchaseRequestUncheckedUpdateManyInput>
    /**
     * Filter which PurchaseRequests to update
     */
    where?: PurchaseRequestWhereInput
    /**
     * Limit how many PurchaseRequests to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PurchaseRequest upsert
   */
  export type PurchaseRequestUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * The filter to search for the PurchaseRequest to update in case it exists.
     */
    where: PurchaseRequestWhereUniqueInput
    /**
     * In case the PurchaseRequest found by the `where` argument doesn't exist, create a new PurchaseRequest with this data.
     */
    create: XOR<PurchaseRequestCreateInput, PurchaseRequestUncheckedCreateInput>
    /**
     * In case the PurchaseRequest was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PurchaseRequestUpdateInput, PurchaseRequestUncheckedUpdateInput>
  }

  /**
   * PurchaseRequest delete
   */
  export type PurchaseRequestDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    /**
     * Filter which PurchaseRequest to delete.
     */
    where: PurchaseRequestWhereUniqueInput
  }

  /**
   * PurchaseRequest deleteMany
   */
  export type PurchaseRequestDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PurchaseRequests to delete
     */
    where?: PurchaseRequestWhereInput
    /**
     * Limit how many PurchaseRequests to delete.
     */
    limit?: number
  }

  /**
   * PurchaseRequest.items
   */
  export type PurchaseRequest$itemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    where?: PurchaseItemWhereInput
    orderBy?: PurchaseItemOrderByWithRelationInput | PurchaseItemOrderByWithRelationInput[]
    cursor?: PurchaseItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PurchaseItemScalarFieldEnum | PurchaseItemScalarFieldEnum[]
  }

  /**
   * PurchaseRequest without action
   */
  export type PurchaseRequestDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
  }


  /**
   * Model PurchaseItem
   */

  export type AggregatePurchaseItem = {
    _count: PurchaseItemCountAggregateOutputType | null
    _avg: PurchaseItemAvgAggregateOutputType | null
    _sum: PurchaseItemSumAggregateOutputType | null
    _min: PurchaseItemMinAggregateOutputType | null
    _max: PurchaseItemMaxAggregateOutputType | null
  }

  export type PurchaseItemAvgAggregateOutputType = {
    quantity: number | null
    unitPrice: Decimal | null
    amount: Decimal | null
  }

  export type PurchaseItemSumAggregateOutputType = {
    quantity: number | null
    unitPrice: Decimal | null
    amount: Decimal | null
  }

  export type PurchaseItemMinAggregateOutputType = {
    id: string | null
    purchaseId: string | null
    name: string | null
    description: string | null
    quantity: number | null
    unitPrice: Decimal | null
    amount: Decimal | null
  }

  export type PurchaseItemMaxAggregateOutputType = {
    id: string | null
    purchaseId: string | null
    name: string | null
    description: string | null
    quantity: number | null
    unitPrice: Decimal | null
    amount: Decimal | null
  }

  export type PurchaseItemCountAggregateOutputType = {
    id: number
    purchaseId: number
    name: number
    description: number
    quantity: number
    unitPrice: number
    amount: number
    _all: number
  }


  export type PurchaseItemAvgAggregateInputType = {
    quantity?: true
    unitPrice?: true
    amount?: true
  }

  export type PurchaseItemSumAggregateInputType = {
    quantity?: true
    unitPrice?: true
    amount?: true
  }

  export type PurchaseItemMinAggregateInputType = {
    id?: true
    purchaseId?: true
    name?: true
    description?: true
    quantity?: true
    unitPrice?: true
    amount?: true
  }

  export type PurchaseItemMaxAggregateInputType = {
    id?: true
    purchaseId?: true
    name?: true
    description?: true
    quantity?: true
    unitPrice?: true
    amount?: true
  }

  export type PurchaseItemCountAggregateInputType = {
    id?: true
    purchaseId?: true
    name?: true
    description?: true
    quantity?: true
    unitPrice?: true
    amount?: true
    _all?: true
  }

  export type PurchaseItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PurchaseItem to aggregate.
     */
    where?: PurchaseItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseItems to fetch.
     */
    orderBy?: PurchaseItemOrderByWithRelationInput | PurchaseItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PurchaseItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseItems 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` PurchaseItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PurchaseItems
    **/
    _count?: true | PurchaseItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PurchaseItemAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PurchaseItemSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PurchaseItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PurchaseItemMaxAggregateInputType
  }

  export type GetPurchaseItemAggregateType<T extends PurchaseItemAggregateArgs> = {
        [P in keyof T & keyof AggregatePurchaseItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePurchaseItem[P]>
      : GetScalarType<T[P], AggregatePurchaseItem[P]>
  }




  export type PurchaseItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PurchaseItemWhereInput
    orderBy?: PurchaseItemOrderByWithAggregationInput | PurchaseItemOrderByWithAggregationInput[]
    by: PurchaseItemScalarFieldEnum[] | PurchaseItemScalarFieldEnum
    having?: PurchaseItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PurchaseItemCountAggregateInputType | true
    _avg?: PurchaseItemAvgAggregateInputType
    _sum?: PurchaseItemSumAggregateInputType
    _min?: PurchaseItemMinAggregateInputType
    _max?: PurchaseItemMaxAggregateInputType
  }

  export type PurchaseItemGroupByOutputType = {
    id: string
    purchaseId: string
    name: string
    description: string | null
    quantity: number
    unitPrice: Decimal
    amount: Decimal
    _count: PurchaseItemCountAggregateOutputType | null
    _avg: PurchaseItemAvgAggregateOutputType | null
    _sum: PurchaseItemSumAggregateOutputType | null
    _min: PurchaseItemMinAggregateOutputType | null
    _max: PurchaseItemMaxAggregateOutputType | null
  }

  type GetPurchaseItemGroupByPayload<T extends PurchaseItemGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PurchaseItemGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PurchaseItemGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PurchaseItemGroupByOutputType[P]>
            : GetScalarType<T[P], PurchaseItemGroupByOutputType[P]>
        }
      >
    >


  export type PurchaseItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    purchaseId?: boolean
    name?: boolean
    description?: boolean
    quantity?: boolean
    unitPrice?: boolean
    amount?: boolean
    purchase?: boolean | PurchaseRequestDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseItem"]>

  export type PurchaseItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    purchaseId?: boolean
    name?: boolean
    description?: boolean
    quantity?: boolean
    unitPrice?: boolean
    amount?: boolean
    purchase?: boolean | PurchaseRequestDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseItem"]>

  export type PurchaseItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    purchaseId?: boolean
    name?: boolean
    description?: boolean
    quantity?: boolean
    unitPrice?: boolean
    amount?: boolean
    purchase?: boolean | PurchaseRequestDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseItem"]>

  export type PurchaseItemSelectScalar = {
    id?: boolean
    purchaseId?: boolean
    name?: boolean
    description?: boolean
    quantity?: boolean
    unitPrice?: boolean
    amount?: boolean
  }

  export type PurchaseItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "purchaseId" | "name" | "description" | "quantity" | "unitPrice" | "amount", ExtArgs["result"]["purchaseItem"]>
  export type PurchaseItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    purchase?: boolean | PurchaseRequestDefaultArgs<ExtArgs>
  }
  export type PurchaseItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    purchase?: boolean | PurchaseRequestDefaultArgs<ExtArgs>
  }
  export type PurchaseItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    purchase?: boolean | PurchaseRequestDefaultArgs<ExtArgs>
  }

  export type $PurchaseItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PurchaseItem"
    objects: {
      purchase: Prisma.$PurchaseRequestPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      purchaseId: string
      name: string
      description: string | null
      quantity: number
      unitPrice: Prisma.Decimal
      amount: Prisma.Decimal
    }, ExtArgs["result"]["purchaseItem"]>
    composites: {}
  }

  type PurchaseItemGetPayload<S extends boolean | null | undefined | PurchaseItemDefaultArgs> = $Result.GetResult<Prisma.$PurchaseItemPayload, S>

  type PurchaseItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PurchaseItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PurchaseItemCountAggregateInputType | true
    }

  export interface PurchaseItemDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PurchaseItem'], meta: { name: 'PurchaseItem' } }
    /**
     * Find zero or one PurchaseItem that matches the filter.
     * @param {PurchaseItemFindUniqueArgs} args - Arguments to find a PurchaseItem
     * @example
     * // Get one PurchaseItem
     * const purchaseItem = await prisma.purchaseItem.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PurchaseItemFindUniqueArgs>(args: SelectSubset<T, PurchaseItemFindUniqueArgs<ExtArgs>>): Prisma__PurchaseItemClient<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PurchaseItem that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PurchaseItemFindUniqueOrThrowArgs} args - Arguments to find a PurchaseItem
     * @example
     * // Get one PurchaseItem
     * const purchaseItem = await prisma.purchaseItem.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PurchaseItemFindUniqueOrThrowArgs>(args: SelectSubset<T, PurchaseItemFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PurchaseItemClient<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PurchaseItem 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 {PurchaseItemFindFirstArgs} args - Arguments to find a PurchaseItem
     * @example
     * // Get one PurchaseItem
     * const purchaseItem = await prisma.purchaseItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PurchaseItemFindFirstArgs>(args?: SelectSubset<T, PurchaseItemFindFirstArgs<ExtArgs>>): Prisma__PurchaseItemClient<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PurchaseItem 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 {PurchaseItemFindFirstOrThrowArgs} args - Arguments to find a PurchaseItem
     * @example
     * // Get one PurchaseItem
     * const purchaseItem = await prisma.purchaseItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PurchaseItemFindFirstOrThrowArgs>(args?: SelectSubset<T, PurchaseItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__PurchaseItemClient<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PurchaseItems 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 {PurchaseItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PurchaseItems
     * const purchaseItems = await prisma.purchaseItem.findMany()
     * 
     * // Get first 10 PurchaseItems
     * const purchaseItems = await prisma.purchaseItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const purchaseItemWithIdOnly = await prisma.purchaseItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PurchaseItemFindManyArgs>(args?: SelectSubset<T, PurchaseItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PurchaseItem.
     * @param {PurchaseItemCreateArgs} args - Arguments to create a PurchaseItem.
     * @example
     * // Create one PurchaseItem
     * const PurchaseItem = await prisma.purchaseItem.create({
     *   data: {
     *     // ... data to create a PurchaseItem
     *   }
     * })
     * 
     */
    create<T extends PurchaseItemCreateArgs>(args: SelectSubset<T, PurchaseItemCreateArgs<ExtArgs>>): Prisma__PurchaseItemClient<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PurchaseItems.
     * @param {PurchaseItemCreateManyArgs} args - Arguments to create many PurchaseItems.
     * @example
     * // Create many PurchaseItems
     * const purchaseItem = await prisma.purchaseItem.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PurchaseItemCreateManyArgs>(args?: SelectSubset<T, PurchaseItemCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PurchaseItems and returns the data saved in the database.
     * @param {PurchaseItemCreateManyAndReturnArgs} args - Arguments to create many PurchaseItems.
     * @example
     * // Create many PurchaseItems
     * const purchaseItem = await prisma.purchaseItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PurchaseItems and only return the `id`
     * const purchaseItemWithIdOnly = await prisma.purchaseItem.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 PurchaseItemCreateManyAndReturnArgs>(args?: SelectSubset<T, PurchaseItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PurchaseItem.
     * @param {PurchaseItemDeleteArgs} args - Arguments to delete one PurchaseItem.
     * @example
     * // Delete one PurchaseItem
     * const PurchaseItem = await prisma.purchaseItem.delete({
     *   where: {
     *     // ... filter to delete one PurchaseItem
     *   }
     * })
     * 
     */
    delete<T extends PurchaseItemDeleteArgs>(args: SelectSubset<T, PurchaseItemDeleteArgs<ExtArgs>>): Prisma__PurchaseItemClient<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PurchaseItem.
     * @param {PurchaseItemUpdateArgs} args - Arguments to update one PurchaseItem.
     * @example
     * // Update one PurchaseItem
     * const purchaseItem = await prisma.purchaseItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PurchaseItemUpdateArgs>(args: SelectSubset<T, PurchaseItemUpdateArgs<ExtArgs>>): Prisma__PurchaseItemClient<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PurchaseItems.
     * @param {PurchaseItemDeleteManyArgs} args - Arguments to filter PurchaseItems to delete.
     * @example
     * // Delete a few PurchaseItems
     * const { count } = await prisma.purchaseItem.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PurchaseItemDeleteManyArgs>(args?: SelectSubset<T, PurchaseItemDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PurchaseItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseItemUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PurchaseItems
     * const purchaseItem = await prisma.purchaseItem.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PurchaseItemUpdateManyArgs>(args: SelectSubset<T, PurchaseItemUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PurchaseItems and returns the data updated in the database.
     * @param {PurchaseItemUpdateManyAndReturnArgs} args - Arguments to update many PurchaseItems.
     * @example
     * // Update many PurchaseItems
     * const purchaseItem = await prisma.purchaseItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PurchaseItems and only return the `id`
     * const purchaseItemWithIdOnly = await prisma.purchaseItem.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 PurchaseItemUpdateManyAndReturnArgs>(args: SelectSubset<T, PurchaseItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PurchaseItem.
     * @param {PurchaseItemUpsertArgs} args - Arguments to update or create a PurchaseItem.
     * @example
     * // Update or create a PurchaseItem
     * const purchaseItem = await prisma.purchaseItem.upsert({
     *   create: {
     *     // ... data to create a PurchaseItem
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PurchaseItem we want to update
     *   }
     * })
     */
    upsert<T extends PurchaseItemUpsertArgs>(args: SelectSubset<T, PurchaseItemUpsertArgs<ExtArgs>>): Prisma__PurchaseItemClient<$Result.GetResult<Prisma.$PurchaseItemPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PurchaseItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseItemCountArgs} args - Arguments to filter PurchaseItems to count.
     * @example
     * // Count the number of PurchaseItems
     * const count = await prisma.purchaseItem.count({
     *   where: {
     *     // ... the filter for the PurchaseItems we want to count
     *   }
     * })
    **/
    count<T extends PurchaseItemCountArgs>(
      args?: Subset<T, PurchaseItemCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PurchaseItemCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PurchaseItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseItemAggregateArgs} 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 PurchaseItemAggregateArgs>(args: Subset<T, PurchaseItemAggregateArgs>): Prisma.PrismaPromise<GetPurchaseItemAggregateType<T>>

    /**
     * Group by PurchaseItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseItemGroupByArgs} 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 PurchaseItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PurchaseItemGroupByArgs['orderBy'] }
        : { orderBy?: PurchaseItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PurchaseItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPurchaseItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PurchaseItem model
   */
  readonly fields: PurchaseItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PurchaseItem.
   * 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__PurchaseItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    purchase<T extends PurchaseRequestDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PurchaseRequestDefaultArgs<ExtArgs>>): Prisma__PurchaseRequestClient<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PurchaseItem model
   */
  interface PurchaseItemFieldRefs {
    readonly id: FieldRef<"PurchaseItem", 'String'>
    readonly purchaseId: FieldRef<"PurchaseItem", 'String'>
    readonly name: FieldRef<"PurchaseItem", 'String'>
    readonly description: FieldRef<"PurchaseItem", 'String'>
    readonly quantity: FieldRef<"PurchaseItem", 'Int'>
    readonly unitPrice: FieldRef<"PurchaseItem", 'Decimal'>
    readonly amount: FieldRef<"PurchaseItem", 'Decimal'>
  }
    

  // Custom InputTypes
  /**
   * PurchaseItem findUnique
   */
  export type PurchaseItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseItem to fetch.
     */
    where: PurchaseItemWhereUniqueInput
  }

  /**
   * PurchaseItem findUniqueOrThrow
   */
  export type PurchaseItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseItem to fetch.
     */
    where: PurchaseItemWhereUniqueInput
  }

  /**
   * PurchaseItem findFirst
   */
  export type PurchaseItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseItem to fetch.
     */
    where?: PurchaseItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseItems to fetch.
     */
    orderBy?: PurchaseItemOrderByWithRelationInput | PurchaseItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PurchaseItems.
     */
    cursor?: PurchaseItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseItems 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` PurchaseItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PurchaseItems.
     */
    distinct?: PurchaseItemScalarFieldEnum | PurchaseItemScalarFieldEnum[]
  }

  /**
   * PurchaseItem findFirstOrThrow
   */
  export type PurchaseItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseItem to fetch.
     */
    where?: PurchaseItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseItems to fetch.
     */
    orderBy?: PurchaseItemOrderByWithRelationInput | PurchaseItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PurchaseItems.
     */
    cursor?: PurchaseItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseItems 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` PurchaseItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PurchaseItems.
     */
    distinct?: PurchaseItemScalarFieldEnum | PurchaseItemScalarFieldEnum[]
  }

  /**
   * PurchaseItem findMany
   */
  export type PurchaseItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseItems to fetch.
     */
    where?: PurchaseItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseItems to fetch.
     */
    orderBy?: PurchaseItemOrderByWithRelationInput | PurchaseItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PurchaseItems.
     */
    cursor?: PurchaseItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseItems 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` PurchaseItems.
     */
    skip?: number
    distinct?: PurchaseItemScalarFieldEnum | PurchaseItemScalarFieldEnum[]
  }

  /**
   * PurchaseItem create
   */
  export type PurchaseItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * The data needed to create a PurchaseItem.
     */
    data: XOR<PurchaseItemCreateInput, PurchaseItemUncheckedCreateInput>
  }

  /**
   * PurchaseItem createMany
   */
  export type PurchaseItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PurchaseItems.
     */
    data: PurchaseItemCreateManyInput | PurchaseItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PurchaseItem createManyAndReturn
   */
  export type PurchaseItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * The data used to create many PurchaseItems.
     */
    data: PurchaseItemCreateManyInput | PurchaseItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PurchaseItem update
   */
  export type PurchaseItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * The data needed to update a PurchaseItem.
     */
    data: XOR<PurchaseItemUpdateInput, PurchaseItemUncheckedUpdateInput>
    /**
     * Choose, which PurchaseItem to update.
     */
    where: PurchaseItemWhereUniqueInput
  }

  /**
   * PurchaseItem updateMany
   */
  export type PurchaseItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PurchaseItems.
     */
    data: XOR<PurchaseItemUpdateManyMutationInput, PurchaseItemUncheckedUpdateManyInput>
    /**
     * Filter which PurchaseItems to update
     */
    where?: PurchaseItemWhereInput
    /**
     * Limit how many PurchaseItems to update.
     */
    limit?: number
  }

  /**
   * PurchaseItem updateManyAndReturn
   */
  export type PurchaseItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * The data used to update PurchaseItems.
     */
    data: XOR<PurchaseItemUpdateManyMutationInput, PurchaseItemUncheckedUpdateManyInput>
    /**
     * Filter which PurchaseItems to update
     */
    where?: PurchaseItemWhereInput
    /**
     * Limit how many PurchaseItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PurchaseItem upsert
   */
  export type PurchaseItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * The filter to search for the PurchaseItem to update in case it exists.
     */
    where: PurchaseItemWhereUniqueInput
    /**
     * In case the PurchaseItem found by the `where` argument doesn't exist, create a new PurchaseItem with this data.
     */
    create: XOR<PurchaseItemCreateInput, PurchaseItemUncheckedCreateInput>
    /**
     * In case the PurchaseItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PurchaseItemUpdateInput, PurchaseItemUncheckedUpdateInput>
  }

  /**
   * PurchaseItem delete
   */
  export type PurchaseItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
    /**
     * Filter which PurchaseItem to delete.
     */
    where: PurchaseItemWhereUniqueInput
  }

  /**
   * PurchaseItem deleteMany
   */
  export type PurchaseItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PurchaseItems to delete
     */
    where?: PurchaseItemWhereInput
    /**
     * Limit how many PurchaseItems to delete.
     */
    limit?: number
  }

  /**
   * PurchaseItem without action
   */
  export type PurchaseItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseItem
     */
    select?: PurchaseItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseItem
     */
    omit?: PurchaseItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseItemInclude<ExtArgs> | null
  }


  /**
   * Model ContractRequest
   */

  export type AggregateContractRequest = {
    _count: ContractRequestCountAggregateOutputType | null
    _avg: ContractRequestAvgAggregateOutputType | null
    _sum: ContractRequestSumAggregateOutputType | null
    _min: ContractRequestMinAggregateOutputType | null
    _max: ContractRequestMaxAggregateOutputType | null
  }

  export type ContractRequestAvgAggregateOutputType = {
    amount: Decimal | null
  }

  export type ContractRequestSumAggregateOutputType = {
    amount: Decimal | null
  }

  export type ContractRequestMinAggregateOutputType = {
    id: string | null
    code: string | null
    title: string | null
    description: string | null
    creatorId: string | null
    contractType: $Enums.ContractType | null
    partnerName: string | null
    partnerContact: string | null
    amount: Decimal | null
    currency: string | null
    workflowInstanceId: string | null
    status: $Enums.ContractStatus | null
    sealRequired: boolean | null
    sealAppliedAt: Date | null
    signDate: Date | null
    startDate: Date | null
    endDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type ContractRequestMaxAggregateOutputType = {
    id: string | null
    code: string | null
    title: string | null
    description: string | null
    creatorId: string | null
    contractType: $Enums.ContractType | null
    partnerName: string | null
    partnerContact: string | null
    amount: Decimal | null
    currency: string | null
    workflowInstanceId: string | null
    status: $Enums.ContractStatus | null
    sealRequired: boolean | null
    sealAppliedAt: Date | null
    signDate: Date | null
    startDate: Date | null
    endDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type ContractRequestCountAggregateOutputType = {
    id: number
    code: number
    title: number
    description: number
    creatorId: number
    contractType: number
    partnerName: number
    partnerContact: number
    amount: number
    currency: number
    workflowInstanceId: number
    status: number
    sealRequired: number
    sealAppliedAt: number
    attachments: number
    signDate: number
    startDate: number
    endDate: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type ContractRequestAvgAggregateInputType = {
    amount?: true
  }

  export type ContractRequestSumAggregateInputType = {
    amount?: true
  }

  export type ContractRequestMinAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    contractType?: true
    partnerName?: true
    partnerContact?: true
    amount?: true
    currency?: true
    workflowInstanceId?: true
    status?: true
    sealRequired?: true
    sealAppliedAt?: true
    signDate?: true
    startDate?: true
    endDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type ContractRequestMaxAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    contractType?: true
    partnerName?: true
    partnerContact?: true
    amount?: true
    currency?: true
    workflowInstanceId?: true
    status?: true
    sealRequired?: true
    sealAppliedAt?: true
    signDate?: true
    startDate?: true
    endDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type ContractRequestCountAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    creatorId?: true
    contractType?: true
    partnerName?: true
    partnerContact?: true
    amount?: true
    currency?: true
    workflowInstanceId?: true
    status?: true
    sealRequired?: true
    sealAppliedAt?: true
    attachments?: true
    signDate?: true
    startDate?: true
    endDate?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type ContractRequestAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ContractRequest to aggregate.
     */
    where?: ContractRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ContractRequests to fetch.
     */
    orderBy?: ContractRequestOrderByWithRelationInput | ContractRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ContractRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ContractRequests 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` ContractRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ContractRequests
    **/
    _count?: true | ContractRequestCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ContractRequestAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ContractRequestSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ContractRequestMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ContractRequestMaxAggregateInputType
  }

  export type GetContractRequestAggregateType<T extends ContractRequestAggregateArgs> = {
        [P in keyof T & keyof AggregateContractRequest]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateContractRequest[P]>
      : GetScalarType<T[P], AggregateContractRequest[P]>
  }




  export type ContractRequestGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ContractRequestWhereInput
    orderBy?: ContractRequestOrderByWithAggregationInput | ContractRequestOrderByWithAggregationInput[]
    by: ContractRequestScalarFieldEnum[] | ContractRequestScalarFieldEnum
    having?: ContractRequestScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ContractRequestCountAggregateInputType | true
    _avg?: ContractRequestAvgAggregateInputType
    _sum?: ContractRequestSumAggregateInputType
    _min?: ContractRequestMinAggregateInputType
    _max?: ContractRequestMaxAggregateInputType
  }

  export type ContractRequestGroupByOutputType = {
    id: string
    code: string
    title: string
    description: string | null
    creatorId: string
    contractType: $Enums.ContractType
    partnerName: string
    partnerContact: string | null
    amount: Decimal
    currency: string
    workflowInstanceId: string | null
    status: $Enums.ContractStatus
    sealRequired: boolean
    sealAppliedAt: Date | null
    attachments: JsonValue | null
    signDate: Date | null
    startDate: Date | null
    endDate: Date | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: ContractRequestCountAggregateOutputType | null
    _avg: ContractRequestAvgAggregateOutputType | null
    _sum: ContractRequestSumAggregateOutputType | null
    _min: ContractRequestMinAggregateOutputType | null
    _max: ContractRequestMaxAggregateOutputType | null
  }

  type GetContractRequestGroupByPayload<T extends ContractRequestGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ContractRequestGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ContractRequestGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ContractRequestGroupByOutputType[P]>
            : GetScalarType<T[P], ContractRequestGroupByOutputType[P]>
        }
      >
    >


  export type ContractRequestSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    contractType?: boolean
    partnerName?: boolean
    partnerContact?: boolean
    amount?: boolean
    currency?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    sealRequired?: boolean
    sealAppliedAt?: boolean
    attachments?: boolean
    signDate?: boolean
    startDate?: boolean
    endDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["contractRequest"]>

  export type ContractRequestSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    contractType?: boolean
    partnerName?: boolean
    partnerContact?: boolean
    amount?: boolean
    currency?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    sealRequired?: boolean
    sealAppliedAt?: boolean
    attachments?: boolean
    signDate?: boolean
    startDate?: boolean
    endDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["contractRequest"]>

  export type ContractRequestSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    contractType?: boolean
    partnerName?: boolean
    partnerContact?: boolean
    amount?: boolean
    currency?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    sealRequired?: boolean
    sealAppliedAt?: boolean
    attachments?: boolean
    signDate?: boolean
    startDate?: boolean
    endDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["contractRequest"]>

  export type ContractRequestSelectScalar = {
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    creatorId?: boolean
    contractType?: boolean
    partnerName?: boolean
    partnerContact?: boolean
    amount?: boolean
    currency?: boolean
    workflowInstanceId?: boolean
    status?: boolean
    sealRequired?: boolean
    sealAppliedAt?: boolean
    attachments?: boolean
    signDate?: boolean
    startDate?: boolean
    endDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type ContractRequestOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "title" | "description" | "creatorId" | "contractType" | "partnerName" | "partnerContact" | "amount" | "currency" | "workflowInstanceId" | "status" | "sealRequired" | "sealAppliedAt" | "attachments" | "signDate" | "startDate" | "endDate" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["contractRequest"]>
  export type ContractRequestInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type ContractRequestIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type ContractRequestIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $ContractRequestPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ContractRequest"
    objects: {
      creator: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      title: string
      description: string | null
      creatorId: string
      contractType: $Enums.ContractType
      partnerName: string
      partnerContact: string | null
      amount: Prisma.Decimal
      currency: string
      workflowInstanceId: string | null
      status: $Enums.ContractStatus
      sealRequired: boolean
      sealAppliedAt: Date | null
      attachments: Prisma.JsonValue | null
      signDate: Date | null
      startDate: Date | null
      endDate: Date | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["contractRequest"]>
    composites: {}
  }

  type ContractRequestGetPayload<S extends boolean | null | undefined | ContractRequestDefaultArgs> = $Result.GetResult<Prisma.$ContractRequestPayload, S>

  type ContractRequestCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ContractRequestFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ContractRequestCountAggregateInputType | true
    }

  export interface ContractRequestDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ContractRequest'], meta: { name: 'ContractRequest' } }
    /**
     * Find zero or one ContractRequest that matches the filter.
     * @param {ContractRequestFindUniqueArgs} args - Arguments to find a ContractRequest
     * @example
     * // Get one ContractRequest
     * const contractRequest = await prisma.contractRequest.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ContractRequestFindUniqueArgs>(args: SelectSubset<T, ContractRequestFindUniqueArgs<ExtArgs>>): Prisma__ContractRequestClient<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ContractRequest that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ContractRequestFindUniqueOrThrowArgs} args - Arguments to find a ContractRequest
     * @example
     * // Get one ContractRequest
     * const contractRequest = await prisma.contractRequest.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ContractRequestFindUniqueOrThrowArgs>(args: SelectSubset<T, ContractRequestFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ContractRequestClient<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ContractRequest 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 {ContractRequestFindFirstArgs} args - Arguments to find a ContractRequest
     * @example
     * // Get one ContractRequest
     * const contractRequest = await prisma.contractRequest.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ContractRequestFindFirstArgs>(args?: SelectSubset<T, ContractRequestFindFirstArgs<ExtArgs>>): Prisma__ContractRequestClient<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ContractRequest 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 {ContractRequestFindFirstOrThrowArgs} args - Arguments to find a ContractRequest
     * @example
     * // Get one ContractRequest
     * const contractRequest = await prisma.contractRequest.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ContractRequestFindFirstOrThrowArgs>(args?: SelectSubset<T, ContractRequestFindFirstOrThrowArgs<ExtArgs>>): Prisma__ContractRequestClient<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ContractRequests 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 {ContractRequestFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ContractRequests
     * const contractRequests = await prisma.contractRequest.findMany()
     * 
     * // Get first 10 ContractRequests
     * const contractRequests = await prisma.contractRequest.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const contractRequestWithIdOnly = await prisma.contractRequest.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ContractRequestFindManyArgs>(args?: SelectSubset<T, ContractRequestFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ContractRequest.
     * @param {ContractRequestCreateArgs} args - Arguments to create a ContractRequest.
     * @example
     * // Create one ContractRequest
     * const ContractRequest = await prisma.contractRequest.create({
     *   data: {
     *     // ... data to create a ContractRequest
     *   }
     * })
     * 
     */
    create<T extends ContractRequestCreateArgs>(args: SelectSubset<T, ContractRequestCreateArgs<ExtArgs>>): Prisma__ContractRequestClient<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ContractRequests.
     * @param {ContractRequestCreateManyArgs} args - Arguments to create many ContractRequests.
     * @example
     * // Create many ContractRequests
     * const contractRequest = await prisma.contractRequest.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ContractRequestCreateManyArgs>(args?: SelectSubset<T, ContractRequestCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ContractRequests and returns the data saved in the database.
     * @param {ContractRequestCreateManyAndReturnArgs} args - Arguments to create many ContractRequests.
     * @example
     * // Create many ContractRequests
     * const contractRequest = await prisma.contractRequest.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ContractRequests and only return the `id`
     * const contractRequestWithIdOnly = await prisma.contractRequest.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 ContractRequestCreateManyAndReturnArgs>(args?: SelectSubset<T, ContractRequestCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ContractRequest.
     * @param {ContractRequestDeleteArgs} args - Arguments to delete one ContractRequest.
     * @example
     * // Delete one ContractRequest
     * const ContractRequest = await prisma.contractRequest.delete({
     *   where: {
     *     // ... filter to delete one ContractRequest
     *   }
     * })
     * 
     */
    delete<T extends ContractRequestDeleteArgs>(args: SelectSubset<T, ContractRequestDeleteArgs<ExtArgs>>): Prisma__ContractRequestClient<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ContractRequest.
     * @param {ContractRequestUpdateArgs} args - Arguments to update one ContractRequest.
     * @example
     * // Update one ContractRequest
     * const contractRequest = await prisma.contractRequest.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ContractRequestUpdateArgs>(args: SelectSubset<T, ContractRequestUpdateArgs<ExtArgs>>): Prisma__ContractRequestClient<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ContractRequests.
     * @param {ContractRequestDeleteManyArgs} args - Arguments to filter ContractRequests to delete.
     * @example
     * // Delete a few ContractRequests
     * const { count } = await prisma.contractRequest.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ContractRequestDeleteManyArgs>(args?: SelectSubset<T, ContractRequestDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ContractRequests.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ContractRequestUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ContractRequests
     * const contractRequest = await prisma.contractRequest.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ContractRequestUpdateManyArgs>(args: SelectSubset<T, ContractRequestUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ContractRequests and returns the data updated in the database.
     * @param {ContractRequestUpdateManyAndReturnArgs} args - Arguments to update many ContractRequests.
     * @example
     * // Update many ContractRequests
     * const contractRequest = await prisma.contractRequest.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ContractRequests and only return the `id`
     * const contractRequestWithIdOnly = await prisma.contractRequest.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 ContractRequestUpdateManyAndReturnArgs>(args: SelectSubset<T, ContractRequestUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ContractRequest.
     * @param {ContractRequestUpsertArgs} args - Arguments to update or create a ContractRequest.
     * @example
     * // Update or create a ContractRequest
     * const contractRequest = await prisma.contractRequest.upsert({
     *   create: {
     *     // ... data to create a ContractRequest
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ContractRequest we want to update
     *   }
     * })
     */
    upsert<T extends ContractRequestUpsertArgs>(args: SelectSubset<T, ContractRequestUpsertArgs<ExtArgs>>): Prisma__ContractRequestClient<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ContractRequests.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ContractRequestCountArgs} args - Arguments to filter ContractRequests to count.
     * @example
     * // Count the number of ContractRequests
     * const count = await prisma.contractRequest.count({
     *   where: {
     *     // ... the filter for the ContractRequests we want to count
     *   }
     * })
    **/
    count<T extends ContractRequestCountArgs>(
      args?: Subset<T, ContractRequestCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ContractRequestCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ContractRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ContractRequestAggregateArgs} 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 ContractRequestAggregateArgs>(args: Subset<T, ContractRequestAggregateArgs>): Prisma.PrismaPromise<GetContractRequestAggregateType<T>>

    /**
     * Group by ContractRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ContractRequestGroupByArgs} 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 ContractRequestGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ContractRequestGroupByArgs['orderBy'] }
        : { orderBy?: ContractRequestGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ContractRequestGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetContractRequestGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ContractRequest model
   */
  readonly fields: ContractRequestFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ContractRequest.
   * 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__ContractRequestClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ContractRequest model
   */
  interface ContractRequestFieldRefs {
    readonly id: FieldRef<"ContractRequest", 'String'>
    readonly code: FieldRef<"ContractRequest", 'String'>
    readonly title: FieldRef<"ContractRequest", 'String'>
    readonly description: FieldRef<"ContractRequest", 'String'>
    readonly creatorId: FieldRef<"ContractRequest", 'String'>
    readonly contractType: FieldRef<"ContractRequest", 'ContractType'>
    readonly partnerName: FieldRef<"ContractRequest", 'String'>
    readonly partnerContact: FieldRef<"ContractRequest", 'String'>
    readonly amount: FieldRef<"ContractRequest", 'Decimal'>
    readonly currency: FieldRef<"ContractRequest", 'String'>
    readonly workflowInstanceId: FieldRef<"ContractRequest", 'String'>
    readonly status: FieldRef<"ContractRequest", 'ContractStatus'>
    readonly sealRequired: FieldRef<"ContractRequest", 'Boolean'>
    readonly sealAppliedAt: FieldRef<"ContractRequest", 'DateTime'>
    readonly attachments: FieldRef<"ContractRequest", 'Json'>
    readonly signDate: FieldRef<"ContractRequest", 'DateTime'>
    readonly startDate: FieldRef<"ContractRequest", 'DateTime'>
    readonly endDate: FieldRef<"ContractRequest", 'DateTime'>
    readonly createdAt: FieldRef<"ContractRequest", 'DateTime'>
    readonly updatedAt: FieldRef<"ContractRequest", 'DateTime'>
    readonly deletedAt: FieldRef<"ContractRequest", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ContractRequest findUnique
   */
  export type ContractRequestFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * Filter, which ContractRequest to fetch.
     */
    where: ContractRequestWhereUniqueInput
  }

  /**
   * ContractRequest findUniqueOrThrow
   */
  export type ContractRequestFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * Filter, which ContractRequest to fetch.
     */
    where: ContractRequestWhereUniqueInput
  }

  /**
   * ContractRequest findFirst
   */
  export type ContractRequestFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * Filter, which ContractRequest to fetch.
     */
    where?: ContractRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ContractRequests to fetch.
     */
    orderBy?: ContractRequestOrderByWithRelationInput | ContractRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ContractRequests.
     */
    cursor?: ContractRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ContractRequests 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` ContractRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ContractRequests.
     */
    distinct?: ContractRequestScalarFieldEnum | ContractRequestScalarFieldEnum[]
  }

  /**
   * ContractRequest findFirstOrThrow
   */
  export type ContractRequestFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * Filter, which ContractRequest to fetch.
     */
    where?: ContractRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ContractRequests to fetch.
     */
    orderBy?: ContractRequestOrderByWithRelationInput | ContractRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ContractRequests.
     */
    cursor?: ContractRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ContractRequests 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` ContractRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ContractRequests.
     */
    distinct?: ContractRequestScalarFieldEnum | ContractRequestScalarFieldEnum[]
  }

  /**
   * ContractRequest findMany
   */
  export type ContractRequestFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * Filter, which ContractRequests to fetch.
     */
    where?: ContractRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ContractRequests to fetch.
     */
    orderBy?: ContractRequestOrderByWithRelationInput | ContractRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ContractRequests.
     */
    cursor?: ContractRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ContractRequests 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` ContractRequests.
     */
    skip?: number
    distinct?: ContractRequestScalarFieldEnum | ContractRequestScalarFieldEnum[]
  }

  /**
   * ContractRequest create
   */
  export type ContractRequestCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * The data needed to create a ContractRequest.
     */
    data: XOR<ContractRequestCreateInput, ContractRequestUncheckedCreateInput>
  }

  /**
   * ContractRequest createMany
   */
  export type ContractRequestCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ContractRequests.
     */
    data: ContractRequestCreateManyInput | ContractRequestCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ContractRequest createManyAndReturn
   */
  export type ContractRequestCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * The data used to create many ContractRequests.
     */
    data: ContractRequestCreateManyInput | ContractRequestCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ContractRequest update
   */
  export type ContractRequestUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * The data needed to update a ContractRequest.
     */
    data: XOR<ContractRequestUpdateInput, ContractRequestUncheckedUpdateInput>
    /**
     * Choose, which ContractRequest to update.
     */
    where: ContractRequestWhereUniqueInput
  }

  /**
   * ContractRequest updateMany
   */
  export type ContractRequestUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ContractRequests.
     */
    data: XOR<ContractRequestUpdateManyMutationInput, ContractRequestUncheckedUpdateManyInput>
    /**
     * Filter which ContractRequests to update
     */
    where?: ContractRequestWhereInput
    /**
     * Limit how many ContractRequests to update.
     */
    limit?: number
  }

  /**
   * ContractRequest updateManyAndReturn
   */
  export type ContractRequestUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * The data used to update ContractRequests.
     */
    data: XOR<ContractRequestUpdateManyMutationInput, ContractRequestUncheckedUpdateManyInput>
    /**
     * Filter which ContractRequests to update
     */
    where?: ContractRequestWhereInput
    /**
     * Limit how many ContractRequests to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ContractRequest upsert
   */
  export type ContractRequestUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * The filter to search for the ContractRequest to update in case it exists.
     */
    where: ContractRequestWhereUniqueInput
    /**
     * In case the ContractRequest found by the `where` argument doesn't exist, create a new ContractRequest with this data.
     */
    create: XOR<ContractRequestCreateInput, ContractRequestUncheckedCreateInput>
    /**
     * In case the ContractRequest was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ContractRequestUpdateInput, ContractRequestUncheckedUpdateInput>
  }

  /**
   * ContractRequest delete
   */
  export type ContractRequestDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    /**
     * Filter which ContractRequest to delete.
     */
    where: ContractRequestWhereUniqueInput
  }

  /**
   * ContractRequest deleteMany
   */
  export type ContractRequestDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ContractRequests to delete
     */
    where?: ContractRequestWhereInput
    /**
     * Limit how many ContractRequests to delete.
     */
    limit?: number
  }

  /**
   * ContractRequest without action
   */
  export type ContractRequestDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
  }


  /**
   * Model Part
   */

  export type AggregatePart = {
    _count: PartCountAggregateOutputType | null
    _avg: PartAvgAggregateOutputType | null
    _sum: PartSumAggregateOutputType | null
    _min: PartMinAggregateOutputType | null
    _max: PartMaxAggregateOutputType | null
  }

  export type PartAvgAggregateOutputType = {
    currentStock: number | null
    minStock: number | null
    maxStock: number | null
  }

  export type PartSumAggregateOutputType = {
    currentStock: number | null
    minStock: number | null
    maxStock: number | null
  }

  export type PartMinAggregateOutputType = {
    id: string | null
    partNumber: string | null
    partNameEn: string | null
    partNameCn: string | null
    unit: string | null
    source: string | null
    specifications: string | null
    remark: string | null
    status: $Enums.PartStatus | null
    currentStock: number | null
    minStock: number | null
    maxStock: number | null
    station: string | null
    stationId: string | null
    warehouseLocation: string | null
    warehouseId: string | null
    storageLocationId: string | null
    imageUrl: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type PartMaxAggregateOutputType = {
    id: string | null
    partNumber: string | null
    partNameEn: string | null
    partNameCn: string | null
    unit: string | null
    source: string | null
    specifications: string | null
    remark: string | null
    status: $Enums.PartStatus | null
    currentStock: number | null
    minStock: number | null
    maxStock: number | null
    station: string | null
    stationId: string | null
    warehouseLocation: string | null
    warehouseId: string | null
    storageLocationId: string | null
    imageUrl: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type PartCountAggregateOutputType = {
    id: number
    partNumber: number
    partNameEn: number
    partNameCn: number
    unit: number
    source: number
    specifications: number
    remark: number
    status: number
    currentStock: number
    minStock: number
    maxStock: number
    station: number
    stationId: number
    warehouseLocation: number
    warehouseId: number
    storageLocationId: number
    imageUrl: number
    customFields: number
    metadata: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type PartAvgAggregateInputType = {
    currentStock?: true
    minStock?: true
    maxStock?: true
  }

  export type PartSumAggregateInputType = {
    currentStock?: true
    minStock?: true
    maxStock?: true
  }

  export type PartMinAggregateInputType = {
    id?: true
    partNumber?: true
    partNameEn?: true
    partNameCn?: true
    unit?: true
    source?: true
    specifications?: true
    remark?: true
    status?: true
    currentStock?: true
    minStock?: true
    maxStock?: true
    station?: true
    stationId?: true
    warehouseLocation?: true
    warehouseId?: true
    storageLocationId?: true
    imageUrl?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type PartMaxAggregateInputType = {
    id?: true
    partNumber?: true
    partNameEn?: true
    partNameCn?: true
    unit?: true
    source?: true
    specifications?: true
    remark?: true
    status?: true
    currentStock?: true
    minStock?: true
    maxStock?: true
    station?: true
    stationId?: true
    warehouseLocation?: true
    warehouseId?: true
    storageLocationId?: true
    imageUrl?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type PartCountAggregateInputType = {
    id?: true
    partNumber?: true
    partNameEn?: true
    partNameCn?: true
    unit?: true
    source?: true
    specifications?: true
    remark?: true
    status?: true
    currentStock?: true
    minStock?: true
    maxStock?: true
    station?: true
    stationId?: true
    warehouseLocation?: true
    warehouseId?: true
    storageLocationId?: true
    imageUrl?: true
    customFields?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type PartAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Part to aggregate.
     */
    where?: PartWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Parts to fetch.
     */
    orderBy?: PartOrderByWithRelationInput | PartOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PartWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Parts 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` Parts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Parts
    **/
    _count?: true | PartCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PartAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PartSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PartMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PartMaxAggregateInputType
  }

  export type GetPartAggregateType<T extends PartAggregateArgs> = {
        [P in keyof T & keyof AggregatePart]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePart[P]>
      : GetScalarType<T[P], AggregatePart[P]>
  }




  export type PartGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartWhereInput
    orderBy?: PartOrderByWithAggregationInput | PartOrderByWithAggregationInput[]
    by: PartScalarFieldEnum[] | PartScalarFieldEnum
    having?: PartScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PartCountAggregateInputType | true
    _avg?: PartAvgAggregateInputType
    _sum?: PartSumAggregateInputType
    _min?: PartMinAggregateInputType
    _max?: PartMaxAggregateInputType
  }

  export type PartGroupByOutputType = {
    id: string
    partNumber: string
    partNameEn: string
    partNameCn: string | null
    unit: string
    source: string | null
    specifications: string | null
    remark: string | null
    status: $Enums.PartStatus
    currentStock: number
    minStock: number
    maxStock: number | null
    station: string | null
    stationId: string | null
    warehouseLocation: string | null
    warehouseId: string | null
    storageLocationId: string | null
    imageUrl: string | null
    customFields: JsonValue | null
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: PartCountAggregateOutputType | null
    _avg: PartAvgAggregateOutputType | null
    _sum: PartSumAggregateOutputType | null
    _min: PartMinAggregateOutputType | null
    _max: PartMaxAggregateOutputType | null
  }

  type GetPartGroupByPayload<T extends PartGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PartGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PartGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PartGroupByOutputType[P]>
            : GetScalarType<T[P], PartGroupByOutputType[P]>
        }
      >
    >


  export type PartSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partNumber?: boolean
    partNameEn?: boolean
    partNameCn?: boolean
    unit?: boolean
    source?: boolean
    specifications?: boolean
    remark?: boolean
    status?: boolean
    currentStock?: boolean
    minStock?: boolean
    maxStock?: boolean
    station?: boolean
    stationId?: boolean
    warehouseLocation?: boolean
    warehouseId?: boolean
    storageLocationId?: boolean
    imageUrl?: boolean
    customFields?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    inventoryLogs?: boolean | Part$inventoryLogsArgs<ExtArgs>
    groups?: boolean | Part$groupsArgs<ExtArgs>
    labels?: boolean | Part$labelsArgs<ExtArgs>
    stockAlerts?: boolean | Part$stockAlertsArgs<ExtArgs>
    warehouse?: boolean | Part$warehouseArgs<ExtArgs>
    storageLocation?: boolean | Part$storageLocationArgs<ExtArgs>
    stationRef?: boolean | Part$stationRefArgs<ExtArgs>
    _count?: boolean | PartCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["part"]>

  export type PartSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partNumber?: boolean
    partNameEn?: boolean
    partNameCn?: boolean
    unit?: boolean
    source?: boolean
    specifications?: boolean
    remark?: boolean
    status?: boolean
    currentStock?: boolean
    minStock?: boolean
    maxStock?: boolean
    station?: boolean
    stationId?: boolean
    warehouseLocation?: boolean
    warehouseId?: boolean
    storageLocationId?: boolean
    imageUrl?: boolean
    customFields?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    warehouse?: boolean | Part$warehouseArgs<ExtArgs>
    storageLocation?: boolean | Part$storageLocationArgs<ExtArgs>
    stationRef?: boolean | Part$stationRefArgs<ExtArgs>
  }, ExtArgs["result"]["part"]>

  export type PartSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partNumber?: boolean
    partNameEn?: boolean
    partNameCn?: boolean
    unit?: boolean
    source?: boolean
    specifications?: boolean
    remark?: boolean
    status?: boolean
    currentStock?: boolean
    minStock?: boolean
    maxStock?: boolean
    station?: boolean
    stationId?: boolean
    warehouseLocation?: boolean
    warehouseId?: boolean
    storageLocationId?: boolean
    imageUrl?: boolean
    customFields?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    warehouse?: boolean | Part$warehouseArgs<ExtArgs>
    storageLocation?: boolean | Part$storageLocationArgs<ExtArgs>
    stationRef?: boolean | Part$stationRefArgs<ExtArgs>
  }, ExtArgs["result"]["part"]>

  export type PartSelectScalar = {
    id?: boolean
    partNumber?: boolean
    partNameEn?: boolean
    partNameCn?: boolean
    unit?: boolean
    source?: boolean
    specifications?: boolean
    remark?: boolean
    status?: boolean
    currentStock?: boolean
    minStock?: boolean
    maxStock?: boolean
    station?: boolean
    stationId?: boolean
    warehouseLocation?: boolean
    warehouseId?: boolean
    storageLocationId?: boolean
    imageUrl?: boolean
    customFields?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type PartOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "partNumber" | "partNameEn" | "partNameCn" | "unit" | "source" | "specifications" | "remark" | "status" | "currentStock" | "minStock" | "maxStock" | "station" | "stationId" | "warehouseLocation" | "warehouseId" | "storageLocationId" | "imageUrl" | "customFields" | "metadata" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["part"]>
  export type PartInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    inventoryLogs?: boolean | Part$inventoryLogsArgs<ExtArgs>
    groups?: boolean | Part$groupsArgs<ExtArgs>
    labels?: boolean | Part$labelsArgs<ExtArgs>
    stockAlerts?: boolean | Part$stockAlertsArgs<ExtArgs>
    warehouse?: boolean | Part$warehouseArgs<ExtArgs>
    storageLocation?: boolean | Part$storageLocationArgs<ExtArgs>
    stationRef?: boolean | Part$stationRefArgs<ExtArgs>
    _count?: boolean | PartCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PartIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    warehouse?: boolean | Part$warehouseArgs<ExtArgs>
    storageLocation?: boolean | Part$storageLocationArgs<ExtArgs>
    stationRef?: boolean | Part$stationRefArgs<ExtArgs>
  }
  export type PartIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    warehouse?: boolean | Part$warehouseArgs<ExtArgs>
    storageLocation?: boolean | Part$storageLocationArgs<ExtArgs>
    stationRef?: boolean | Part$stationRefArgs<ExtArgs>
  }

  export type $PartPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Part"
    objects: {
      inventoryLogs: Prisma.$InventoryLogPayload<ExtArgs>[]
      groups: Prisma.$PartGroupRelationPayload<ExtArgs>[]
      labels: Prisma.$PartLabelPayload<ExtArgs>[]
      stockAlerts: Prisma.$StockAlertPayload<ExtArgs>[]
      warehouse: Prisma.$WarehousePayload<ExtArgs> | null
      storageLocation: Prisma.$StorageLocationPayload<ExtArgs> | null
      stationRef: Prisma.$StationPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      partNumber: string
      partNameEn: string
      partNameCn: string | null
      unit: string
      source: string | null
      specifications: string | null
      remark: string | null
      status: $Enums.PartStatus
      currentStock: number
      minStock: number
      maxStock: number | null
      station: string | null
      stationId: string | null
      warehouseLocation: string | null
      warehouseId: string | null
      storageLocationId: string | null
      imageUrl: string | null
      customFields: Prisma.JsonValue | null
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["part"]>
    composites: {}
  }

  type PartGetPayload<S extends boolean | null | undefined | PartDefaultArgs> = $Result.GetResult<Prisma.$PartPayload, S>

  type PartCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PartFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PartCountAggregateInputType | true
    }

  export interface PartDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Part'], meta: { name: 'Part' } }
    /**
     * Find zero or one Part that matches the filter.
     * @param {PartFindUniqueArgs} args - Arguments to find a Part
     * @example
     * // Get one Part
     * const part = await prisma.part.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PartFindUniqueArgs>(args: SelectSubset<T, PartFindUniqueArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Part that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PartFindUniqueOrThrowArgs} args - Arguments to find a Part
     * @example
     * // Get one Part
     * const part = await prisma.part.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PartFindUniqueOrThrowArgs>(args: SelectSubset<T, PartFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Part 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 {PartFindFirstArgs} args - Arguments to find a Part
     * @example
     * // Get one Part
     * const part = await prisma.part.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PartFindFirstArgs>(args?: SelectSubset<T, PartFindFirstArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Part 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 {PartFindFirstOrThrowArgs} args - Arguments to find a Part
     * @example
     * // Get one Part
     * const part = await prisma.part.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PartFindFirstOrThrowArgs>(args?: SelectSubset<T, PartFindFirstOrThrowArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Parts 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 {PartFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Parts
     * const parts = await prisma.part.findMany()
     * 
     * // Get first 10 Parts
     * const parts = await prisma.part.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const partWithIdOnly = await prisma.part.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PartFindManyArgs>(args?: SelectSubset<T, PartFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Part.
     * @param {PartCreateArgs} args - Arguments to create a Part.
     * @example
     * // Create one Part
     * const Part = await prisma.part.create({
     *   data: {
     *     // ... data to create a Part
     *   }
     * })
     * 
     */
    create<T extends PartCreateArgs>(args: SelectSubset<T, PartCreateArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Parts.
     * @param {PartCreateManyArgs} args - Arguments to create many Parts.
     * @example
     * // Create many Parts
     * const part = await prisma.part.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PartCreateManyArgs>(args?: SelectSubset<T, PartCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Parts and returns the data saved in the database.
     * @param {PartCreateManyAndReturnArgs} args - Arguments to create many Parts.
     * @example
     * // Create many Parts
     * const part = await prisma.part.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Parts and only return the `id`
     * const partWithIdOnly = await prisma.part.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 PartCreateManyAndReturnArgs>(args?: SelectSubset<T, PartCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Part.
     * @param {PartDeleteArgs} args - Arguments to delete one Part.
     * @example
     * // Delete one Part
     * const Part = await prisma.part.delete({
     *   where: {
     *     // ... filter to delete one Part
     *   }
     * })
     * 
     */
    delete<T extends PartDeleteArgs>(args: SelectSubset<T, PartDeleteArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Part.
     * @param {PartUpdateArgs} args - Arguments to update one Part.
     * @example
     * // Update one Part
     * const part = await prisma.part.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PartUpdateArgs>(args: SelectSubset<T, PartUpdateArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Parts.
     * @param {PartDeleteManyArgs} args - Arguments to filter Parts to delete.
     * @example
     * // Delete a few Parts
     * const { count } = await prisma.part.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PartDeleteManyArgs>(args?: SelectSubset<T, PartDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Parts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Parts
     * const part = await prisma.part.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PartUpdateManyArgs>(args: SelectSubset<T, PartUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Parts and returns the data updated in the database.
     * @param {PartUpdateManyAndReturnArgs} args - Arguments to update many Parts.
     * @example
     * // Update many Parts
     * const part = await prisma.part.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Parts and only return the `id`
     * const partWithIdOnly = await prisma.part.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 PartUpdateManyAndReturnArgs>(args: SelectSubset<T, PartUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Part.
     * @param {PartUpsertArgs} args - Arguments to update or create a Part.
     * @example
     * // Update or create a Part
     * const part = await prisma.part.upsert({
     *   create: {
     *     // ... data to create a Part
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Part we want to update
     *   }
     * })
     */
    upsert<T extends PartUpsertArgs>(args: SelectSubset<T, PartUpsertArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Parts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartCountArgs} args - Arguments to filter Parts to count.
     * @example
     * // Count the number of Parts
     * const count = await prisma.part.count({
     *   where: {
     *     // ... the filter for the Parts we want to count
     *   }
     * })
    **/
    count<T extends PartCountArgs>(
      args?: Subset<T, PartCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PartCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Part.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartAggregateArgs} 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 PartAggregateArgs>(args: Subset<T, PartAggregateArgs>): Prisma.PrismaPromise<GetPartAggregateType<T>>

    /**
     * Group by Part.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupByArgs} 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 PartGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PartGroupByArgs['orderBy'] }
        : { orderBy?: PartGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PartGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPartGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Part model
   */
  readonly fields: PartFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Part.
   * 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__PartClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    inventoryLogs<T extends Part$inventoryLogsArgs<ExtArgs> = {}>(args?: Subset<T, Part$inventoryLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    groups<T extends Part$groupsArgs<ExtArgs> = {}>(args?: Subset<T, Part$groupsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    labels<T extends Part$labelsArgs<ExtArgs> = {}>(args?: Subset<T, Part$labelsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    stockAlerts<T extends Part$stockAlertsArgs<ExtArgs> = {}>(args?: Subset<T, Part$stockAlertsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    warehouse<T extends Part$warehouseArgs<ExtArgs> = {}>(args?: Subset<T, Part$warehouseArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    storageLocation<T extends Part$storageLocationArgs<ExtArgs> = {}>(args?: Subset<T, Part$storageLocationArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    stationRef<T extends Part$stationRefArgs<ExtArgs> = {}>(args?: Subset<T, Part$stationRefArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Part model
   */
  interface PartFieldRefs {
    readonly id: FieldRef<"Part", 'String'>
    readonly partNumber: FieldRef<"Part", 'String'>
    readonly partNameEn: FieldRef<"Part", 'String'>
    readonly partNameCn: FieldRef<"Part", 'String'>
    readonly unit: FieldRef<"Part", 'String'>
    readonly source: FieldRef<"Part", 'String'>
    readonly specifications: FieldRef<"Part", 'String'>
    readonly remark: FieldRef<"Part", 'String'>
    readonly status: FieldRef<"Part", 'PartStatus'>
    readonly currentStock: FieldRef<"Part", 'Int'>
    readonly minStock: FieldRef<"Part", 'Int'>
    readonly maxStock: FieldRef<"Part", 'Int'>
    readonly station: FieldRef<"Part", 'String'>
    readonly stationId: FieldRef<"Part", 'String'>
    readonly warehouseLocation: FieldRef<"Part", 'String'>
    readonly warehouseId: FieldRef<"Part", 'String'>
    readonly storageLocationId: FieldRef<"Part", 'String'>
    readonly imageUrl: FieldRef<"Part", 'String'>
    readonly customFields: FieldRef<"Part", 'Json'>
    readonly metadata: FieldRef<"Part", 'Json'>
    readonly createdAt: FieldRef<"Part", 'DateTime'>
    readonly updatedAt: FieldRef<"Part", 'DateTime'>
    readonly deletedAt: FieldRef<"Part", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Part findUnique
   */
  export type PartFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * Filter, which Part to fetch.
     */
    where: PartWhereUniqueInput
  }

  /**
   * Part findUniqueOrThrow
   */
  export type PartFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * Filter, which Part to fetch.
     */
    where: PartWhereUniqueInput
  }

  /**
   * Part findFirst
   */
  export type PartFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * Filter, which Part to fetch.
     */
    where?: PartWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Parts to fetch.
     */
    orderBy?: PartOrderByWithRelationInput | PartOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Parts.
     */
    cursor?: PartWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Parts 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` Parts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Parts.
     */
    distinct?: PartScalarFieldEnum | PartScalarFieldEnum[]
  }

  /**
   * Part findFirstOrThrow
   */
  export type PartFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * Filter, which Part to fetch.
     */
    where?: PartWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Parts to fetch.
     */
    orderBy?: PartOrderByWithRelationInput | PartOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Parts.
     */
    cursor?: PartWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Parts 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` Parts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Parts.
     */
    distinct?: PartScalarFieldEnum | PartScalarFieldEnum[]
  }

  /**
   * Part findMany
   */
  export type PartFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * Filter, which Parts to fetch.
     */
    where?: PartWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Parts to fetch.
     */
    orderBy?: PartOrderByWithRelationInput | PartOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Parts.
     */
    cursor?: PartWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Parts 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` Parts.
     */
    skip?: number
    distinct?: PartScalarFieldEnum | PartScalarFieldEnum[]
  }

  /**
   * Part create
   */
  export type PartCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * The data needed to create a Part.
     */
    data: XOR<PartCreateInput, PartUncheckedCreateInput>
  }

  /**
   * Part createMany
   */
  export type PartCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Parts.
     */
    data: PartCreateManyInput | PartCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Part createManyAndReturn
   */
  export type PartCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * The data used to create many Parts.
     */
    data: PartCreateManyInput | PartCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Part update
   */
  export type PartUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * The data needed to update a Part.
     */
    data: XOR<PartUpdateInput, PartUncheckedUpdateInput>
    /**
     * Choose, which Part to update.
     */
    where: PartWhereUniqueInput
  }

  /**
   * Part updateMany
   */
  export type PartUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Parts.
     */
    data: XOR<PartUpdateManyMutationInput, PartUncheckedUpdateManyInput>
    /**
     * Filter which Parts to update
     */
    where?: PartWhereInput
    /**
     * Limit how many Parts to update.
     */
    limit?: number
  }

  /**
   * Part updateManyAndReturn
   */
  export type PartUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * The data used to update Parts.
     */
    data: XOR<PartUpdateManyMutationInput, PartUncheckedUpdateManyInput>
    /**
     * Filter which Parts to update
     */
    where?: PartWhereInput
    /**
     * Limit how many Parts to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Part upsert
   */
  export type PartUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * The filter to search for the Part to update in case it exists.
     */
    where: PartWhereUniqueInput
    /**
     * In case the Part found by the `where` argument doesn't exist, create a new Part with this data.
     */
    create: XOR<PartCreateInput, PartUncheckedCreateInput>
    /**
     * In case the Part was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PartUpdateInput, PartUncheckedUpdateInput>
  }

  /**
   * Part delete
   */
  export type PartDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    /**
     * Filter which Part to delete.
     */
    where: PartWhereUniqueInput
  }

  /**
   * Part deleteMany
   */
  export type PartDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Parts to delete
     */
    where?: PartWhereInput
    /**
     * Limit how many Parts to delete.
     */
    limit?: number
  }

  /**
   * Part.inventoryLogs
   */
  export type Part$inventoryLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    where?: InventoryLogWhereInput
    orderBy?: InventoryLogOrderByWithRelationInput | InventoryLogOrderByWithRelationInput[]
    cursor?: InventoryLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InventoryLogScalarFieldEnum | InventoryLogScalarFieldEnum[]
  }

  /**
   * Part.groups
   */
  export type Part$groupsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    where?: PartGroupRelationWhereInput
    orderBy?: PartGroupRelationOrderByWithRelationInput | PartGroupRelationOrderByWithRelationInput[]
    cursor?: PartGroupRelationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PartGroupRelationScalarFieldEnum | PartGroupRelationScalarFieldEnum[]
  }

  /**
   * Part.labels
   */
  export type Part$labelsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    where?: PartLabelWhereInput
    orderBy?: PartLabelOrderByWithRelationInput | PartLabelOrderByWithRelationInput[]
    cursor?: PartLabelWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PartLabelScalarFieldEnum | PartLabelScalarFieldEnum[]
  }

  /**
   * Part.stockAlerts
   */
  export type Part$stockAlertsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    where?: StockAlertWhereInput
    orderBy?: StockAlertOrderByWithRelationInput | StockAlertOrderByWithRelationInput[]
    cursor?: StockAlertWhereUniqueInput
    take?: number
    skip?: number
    distinct?: StockAlertScalarFieldEnum | StockAlertScalarFieldEnum[]
  }

  /**
   * Part.warehouse
   */
  export type Part$warehouseArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    where?: WarehouseWhereInput
  }

  /**
   * Part.storageLocation
   */
  export type Part$storageLocationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    where?: StorageLocationWhereInput
  }

  /**
   * Part.stationRef
   */
  export type Part$stationRefArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    where?: StationWhereInput
  }

  /**
   * Part without action
   */
  export type PartDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
  }


  /**
   * Model Station
   */

  export type AggregateStation = {
    _count: StationCountAggregateOutputType | null
    _avg: StationAvgAggregateOutputType | null
    _sum: StationSumAggregateOutputType | null
    _min: StationMinAggregateOutputType | null
    _max: StationMaxAggregateOutputType | null
  }

  export type StationAvgAggregateOutputType = {
    sortOrder: number | null
  }

  export type StationSumAggregateOutputType = {
    sortOrder: number | null
  }

  export type StationMinAggregateOutputType = {
    id: string | null
    code: string | null
    nameEn: string | null
    nameCn: string | null
    description: string | null
    area: string | null
    line: string | null
    type: string | null
    status: $Enums.StationStatus | null
    sortOrder: number | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type StationMaxAggregateOutputType = {
    id: string | null
    code: string | null
    nameEn: string | null
    nameCn: string | null
    description: string | null
    area: string | null
    line: string | null
    type: string | null
    status: $Enums.StationStatus | null
    sortOrder: number | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type StationCountAggregateOutputType = {
    id: number
    code: number
    nameEn: number
    nameCn: number
    description: number
    area: number
    line: number
    type: number
    status: number
    sortOrder: number
    metadata: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type StationAvgAggregateInputType = {
    sortOrder?: true
  }

  export type StationSumAggregateInputType = {
    sortOrder?: true
  }

  export type StationMinAggregateInputType = {
    id?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    area?: true
    line?: true
    type?: true
    status?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type StationMaxAggregateInputType = {
    id?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    area?: true
    line?: true
    type?: true
    status?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type StationCountAggregateInputType = {
    id?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    area?: true
    line?: true
    type?: true
    status?: true
    sortOrder?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type StationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Station to aggregate.
     */
    where?: StationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Stations to fetch.
     */
    orderBy?: StationOrderByWithRelationInput | StationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: StationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Stations 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` Stations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Stations
    **/
    _count?: true | StationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: StationAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: StationSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: StationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: StationMaxAggregateInputType
  }

  export type GetStationAggregateType<T extends StationAggregateArgs> = {
        [P in keyof T & keyof AggregateStation]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateStation[P]>
      : GetScalarType<T[P], AggregateStation[P]>
  }




  export type StationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StationWhereInput
    orderBy?: StationOrderByWithAggregationInput | StationOrderByWithAggregationInput[]
    by: StationScalarFieldEnum[] | StationScalarFieldEnum
    having?: StationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: StationCountAggregateInputType | true
    _avg?: StationAvgAggregateInputType
    _sum?: StationSumAggregateInputType
    _min?: StationMinAggregateInputType
    _max?: StationMaxAggregateInputType
  }

  export type StationGroupByOutputType = {
    id: string
    code: string
    nameEn: string
    nameCn: string | null
    description: string | null
    area: string | null
    line: string | null
    type: string | null
    status: $Enums.StationStatus
    sortOrder: number
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: StationCountAggregateOutputType | null
    _avg: StationAvgAggregateOutputType | null
    _sum: StationSumAggregateOutputType | null
    _min: StationMinAggregateOutputType | null
    _max: StationMaxAggregateOutputType | null
  }

  type GetStationGroupByPayload<T extends StationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<StationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof StationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], StationGroupByOutputType[P]>
            : GetScalarType<T[P], StationGroupByOutputType[P]>
        }
      >
    >


  export type StationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    area?: boolean
    line?: boolean
    type?: boolean
    status?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    parts?: boolean | Station$partsArgs<ExtArgs>
    _count?: boolean | StationCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["station"]>

  export type StationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    area?: boolean
    line?: boolean
    type?: boolean
    status?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["station"]>

  export type StationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    area?: boolean
    line?: boolean
    type?: boolean
    status?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["station"]>

  export type StationSelectScalar = {
    id?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    area?: boolean
    line?: boolean
    type?: boolean
    status?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type StationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "nameEn" | "nameCn" | "description" | "area" | "line" | "type" | "status" | "sortOrder" | "metadata" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["station"]>
  export type StationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parts?: boolean | Station$partsArgs<ExtArgs>
    _count?: boolean | StationCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type StationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type StationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $StationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Station"
    objects: {
      parts: Prisma.$PartPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      nameEn: string
      nameCn: string | null
      description: string | null
      area: string | null
      line: string | null
      type: string | null
      status: $Enums.StationStatus
      sortOrder: number
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["station"]>
    composites: {}
  }

  type StationGetPayload<S extends boolean | null | undefined | StationDefaultArgs> = $Result.GetResult<Prisma.$StationPayload, S>

  type StationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<StationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: StationCountAggregateInputType | true
    }

  export interface StationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Station'], meta: { name: 'Station' } }
    /**
     * Find zero or one Station that matches the filter.
     * @param {StationFindUniqueArgs} args - Arguments to find a Station
     * @example
     * // Get one Station
     * const station = await prisma.station.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends StationFindUniqueArgs>(args: SelectSubset<T, StationFindUniqueArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Station that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {StationFindUniqueOrThrowArgs} args - Arguments to find a Station
     * @example
     * // Get one Station
     * const station = await prisma.station.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends StationFindUniqueOrThrowArgs>(args: SelectSubset<T, StationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Station 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 {StationFindFirstArgs} args - Arguments to find a Station
     * @example
     * // Get one Station
     * const station = await prisma.station.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends StationFindFirstArgs>(args?: SelectSubset<T, StationFindFirstArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Station 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 {StationFindFirstOrThrowArgs} args - Arguments to find a Station
     * @example
     * // Get one Station
     * const station = await prisma.station.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends StationFindFirstOrThrowArgs>(args?: SelectSubset<T, StationFindFirstOrThrowArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Stations 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 {StationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Stations
     * const stations = await prisma.station.findMany()
     * 
     * // Get first 10 Stations
     * const stations = await prisma.station.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const stationWithIdOnly = await prisma.station.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends StationFindManyArgs>(args?: SelectSubset<T, StationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Station.
     * @param {StationCreateArgs} args - Arguments to create a Station.
     * @example
     * // Create one Station
     * const Station = await prisma.station.create({
     *   data: {
     *     // ... data to create a Station
     *   }
     * })
     * 
     */
    create<T extends StationCreateArgs>(args: SelectSubset<T, StationCreateArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Stations.
     * @param {StationCreateManyArgs} args - Arguments to create many Stations.
     * @example
     * // Create many Stations
     * const station = await prisma.station.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends StationCreateManyArgs>(args?: SelectSubset<T, StationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Stations and returns the data saved in the database.
     * @param {StationCreateManyAndReturnArgs} args - Arguments to create many Stations.
     * @example
     * // Create many Stations
     * const station = await prisma.station.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Stations and only return the `id`
     * const stationWithIdOnly = await prisma.station.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 StationCreateManyAndReturnArgs>(args?: SelectSubset<T, StationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Station.
     * @param {StationDeleteArgs} args - Arguments to delete one Station.
     * @example
     * // Delete one Station
     * const Station = await prisma.station.delete({
     *   where: {
     *     // ... filter to delete one Station
     *   }
     * })
     * 
     */
    delete<T extends StationDeleteArgs>(args: SelectSubset<T, StationDeleteArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Station.
     * @param {StationUpdateArgs} args - Arguments to update one Station.
     * @example
     * // Update one Station
     * const station = await prisma.station.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends StationUpdateArgs>(args: SelectSubset<T, StationUpdateArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Stations.
     * @param {StationDeleteManyArgs} args - Arguments to filter Stations to delete.
     * @example
     * // Delete a few Stations
     * const { count } = await prisma.station.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends StationDeleteManyArgs>(args?: SelectSubset<T, StationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Stations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Stations
     * const station = await prisma.station.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends StationUpdateManyArgs>(args: SelectSubset<T, StationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Stations and returns the data updated in the database.
     * @param {StationUpdateManyAndReturnArgs} args - Arguments to update many Stations.
     * @example
     * // Update many Stations
     * const station = await prisma.station.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Stations and only return the `id`
     * const stationWithIdOnly = await prisma.station.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 StationUpdateManyAndReturnArgs>(args: SelectSubset<T, StationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Station.
     * @param {StationUpsertArgs} args - Arguments to update or create a Station.
     * @example
     * // Update or create a Station
     * const station = await prisma.station.upsert({
     *   create: {
     *     // ... data to create a Station
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Station we want to update
     *   }
     * })
     */
    upsert<T extends StationUpsertArgs>(args: SelectSubset<T, StationUpsertArgs<ExtArgs>>): Prisma__StationClient<$Result.GetResult<Prisma.$StationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Stations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StationCountArgs} args - Arguments to filter Stations to count.
     * @example
     * // Count the number of Stations
     * const count = await prisma.station.count({
     *   where: {
     *     // ... the filter for the Stations we want to count
     *   }
     * })
    **/
    count<T extends StationCountArgs>(
      args?: Subset<T, StationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], StationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Station.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StationAggregateArgs} 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 StationAggregateArgs>(args: Subset<T, StationAggregateArgs>): Prisma.PrismaPromise<GetStationAggregateType<T>>

    /**
     * Group by Station.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StationGroupByArgs} 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 StationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: StationGroupByArgs['orderBy'] }
        : { orderBy?: StationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, StationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetStationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Station model
   */
  readonly fields: StationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Station.
   * 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__StationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    parts<T extends Station$partsArgs<ExtArgs> = {}>(args?: Subset<T, Station$partsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Station model
   */
  interface StationFieldRefs {
    readonly id: FieldRef<"Station", 'String'>
    readonly code: FieldRef<"Station", 'String'>
    readonly nameEn: FieldRef<"Station", 'String'>
    readonly nameCn: FieldRef<"Station", 'String'>
    readonly description: FieldRef<"Station", 'String'>
    readonly area: FieldRef<"Station", 'String'>
    readonly line: FieldRef<"Station", 'String'>
    readonly type: FieldRef<"Station", 'String'>
    readonly status: FieldRef<"Station", 'StationStatus'>
    readonly sortOrder: FieldRef<"Station", 'Int'>
    readonly metadata: FieldRef<"Station", 'Json'>
    readonly createdAt: FieldRef<"Station", 'DateTime'>
    readonly updatedAt: FieldRef<"Station", 'DateTime'>
    readonly deletedAt: FieldRef<"Station", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Station findUnique
   */
  export type StationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * Filter, which Station to fetch.
     */
    where: StationWhereUniqueInput
  }

  /**
   * Station findUniqueOrThrow
   */
  export type StationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * Filter, which Station to fetch.
     */
    where: StationWhereUniqueInput
  }

  /**
   * Station findFirst
   */
  export type StationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * Filter, which Station to fetch.
     */
    where?: StationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Stations to fetch.
     */
    orderBy?: StationOrderByWithRelationInput | StationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Stations.
     */
    cursor?: StationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Stations 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` Stations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Stations.
     */
    distinct?: StationScalarFieldEnum | StationScalarFieldEnum[]
  }

  /**
   * Station findFirstOrThrow
   */
  export type StationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * Filter, which Station to fetch.
     */
    where?: StationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Stations to fetch.
     */
    orderBy?: StationOrderByWithRelationInput | StationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Stations.
     */
    cursor?: StationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Stations 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` Stations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Stations.
     */
    distinct?: StationScalarFieldEnum | StationScalarFieldEnum[]
  }

  /**
   * Station findMany
   */
  export type StationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * Filter, which Stations to fetch.
     */
    where?: StationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Stations to fetch.
     */
    orderBy?: StationOrderByWithRelationInput | StationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Stations.
     */
    cursor?: StationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Stations 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` Stations.
     */
    skip?: number
    distinct?: StationScalarFieldEnum | StationScalarFieldEnum[]
  }

  /**
   * Station create
   */
  export type StationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * The data needed to create a Station.
     */
    data: XOR<StationCreateInput, StationUncheckedCreateInput>
  }

  /**
   * Station createMany
   */
  export type StationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Stations.
     */
    data: StationCreateManyInput | StationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Station createManyAndReturn
   */
  export type StationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * The data used to create many Stations.
     */
    data: StationCreateManyInput | StationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Station update
   */
  export type StationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * The data needed to update a Station.
     */
    data: XOR<StationUpdateInput, StationUncheckedUpdateInput>
    /**
     * Choose, which Station to update.
     */
    where: StationWhereUniqueInput
  }

  /**
   * Station updateMany
   */
  export type StationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Stations.
     */
    data: XOR<StationUpdateManyMutationInput, StationUncheckedUpdateManyInput>
    /**
     * Filter which Stations to update
     */
    where?: StationWhereInput
    /**
     * Limit how many Stations to update.
     */
    limit?: number
  }

  /**
   * Station updateManyAndReturn
   */
  export type StationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * The data used to update Stations.
     */
    data: XOR<StationUpdateManyMutationInput, StationUncheckedUpdateManyInput>
    /**
     * Filter which Stations to update
     */
    where?: StationWhereInput
    /**
     * Limit how many Stations to update.
     */
    limit?: number
  }

  /**
   * Station upsert
   */
  export type StationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * The filter to search for the Station to update in case it exists.
     */
    where: StationWhereUniqueInput
    /**
     * In case the Station found by the `where` argument doesn't exist, create a new Station with this data.
     */
    create: XOR<StationCreateInput, StationUncheckedCreateInput>
    /**
     * In case the Station was found with the provided `where` argument, update it with this data.
     */
    update: XOR<StationUpdateInput, StationUncheckedUpdateInput>
  }

  /**
   * Station delete
   */
  export type StationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
    /**
     * Filter which Station to delete.
     */
    where: StationWhereUniqueInput
  }

  /**
   * Station deleteMany
   */
  export type StationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Stations to delete
     */
    where?: StationWhereInput
    /**
     * Limit how many Stations to delete.
     */
    limit?: number
  }

  /**
   * Station.parts
   */
  export type Station$partsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    where?: PartWhereInput
    orderBy?: PartOrderByWithRelationInput | PartOrderByWithRelationInput[]
    cursor?: PartWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PartScalarFieldEnum | PartScalarFieldEnum[]
  }

  /**
   * Station without action
   */
  export type StationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Station
     */
    select?: StationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Station
     */
    omit?: StationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StationInclude<ExtArgs> | null
  }


  /**
   * Model Warehouse
   */

  export type AggregateWarehouse = {
    _count: WarehouseCountAggregateOutputType | null
    _avg: WarehouseAvgAggregateOutputType | null
    _sum: WarehouseSumAggregateOutputType | null
    _min: WarehouseMinAggregateOutputType | null
    _max: WarehouseMaxAggregateOutputType | null
  }

  export type WarehouseAvgAggregateOutputType = {
    sortOrder: number | null
  }

  export type WarehouseSumAggregateOutputType = {
    sortOrder: number | null
  }

  export type WarehouseMinAggregateOutputType = {
    id: string | null
    code: string | null
    nameEn: string | null
    nameCn: string | null
    description: string | null
    address: string | null
    contactPerson: string | null
    contactPhone: string | null
    status: $Enums.WarehouseStatus | null
    isDefault: boolean | null
    sortOrder: number | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type WarehouseMaxAggregateOutputType = {
    id: string | null
    code: string | null
    nameEn: string | null
    nameCn: string | null
    description: string | null
    address: string | null
    contactPerson: string | null
    contactPhone: string | null
    status: $Enums.WarehouseStatus | null
    isDefault: boolean | null
    sortOrder: number | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type WarehouseCountAggregateOutputType = {
    id: number
    code: number
    nameEn: number
    nameCn: number
    description: number
    address: number
    contactPerson: number
    contactPhone: number
    status: number
    isDefault: number
    sortOrder: number
    metadata: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type WarehouseAvgAggregateInputType = {
    sortOrder?: true
  }

  export type WarehouseSumAggregateInputType = {
    sortOrder?: true
  }

  export type WarehouseMinAggregateInputType = {
    id?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    address?: true
    contactPerson?: true
    contactPhone?: true
    status?: true
    isDefault?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type WarehouseMaxAggregateInputType = {
    id?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    address?: true
    contactPerson?: true
    contactPhone?: true
    status?: true
    isDefault?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type WarehouseCountAggregateInputType = {
    id?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    address?: true
    contactPerson?: true
    contactPhone?: true
    status?: true
    isDefault?: true
    sortOrder?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type WarehouseAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Warehouse to aggregate.
     */
    where?: WarehouseWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Warehouses to fetch.
     */
    orderBy?: WarehouseOrderByWithRelationInput | WarehouseOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: WarehouseWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Warehouses 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` Warehouses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Warehouses
    **/
    _count?: true | WarehouseCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: WarehouseAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: WarehouseSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: WarehouseMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: WarehouseMaxAggregateInputType
  }

  export type GetWarehouseAggregateType<T extends WarehouseAggregateArgs> = {
        [P in keyof T & keyof AggregateWarehouse]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateWarehouse[P]>
      : GetScalarType<T[P], AggregateWarehouse[P]>
  }




  export type WarehouseGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WarehouseWhereInput
    orderBy?: WarehouseOrderByWithAggregationInput | WarehouseOrderByWithAggregationInput[]
    by: WarehouseScalarFieldEnum[] | WarehouseScalarFieldEnum
    having?: WarehouseScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: WarehouseCountAggregateInputType | true
    _avg?: WarehouseAvgAggregateInputType
    _sum?: WarehouseSumAggregateInputType
    _min?: WarehouseMinAggregateInputType
    _max?: WarehouseMaxAggregateInputType
  }

  export type WarehouseGroupByOutputType = {
    id: string
    code: string
    nameEn: string
    nameCn: string | null
    description: string | null
    address: string | null
    contactPerson: string | null
    contactPhone: string | null
    status: $Enums.WarehouseStatus
    isDefault: boolean
    sortOrder: number
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: WarehouseCountAggregateOutputType | null
    _avg: WarehouseAvgAggregateOutputType | null
    _sum: WarehouseSumAggregateOutputType | null
    _min: WarehouseMinAggregateOutputType | null
    _max: WarehouseMaxAggregateOutputType | null
  }

  type GetWarehouseGroupByPayload<T extends WarehouseGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<WarehouseGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof WarehouseGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], WarehouseGroupByOutputType[P]>
            : GetScalarType<T[P], WarehouseGroupByOutputType[P]>
        }
      >
    >


  export type WarehouseSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    address?: boolean
    contactPerson?: boolean
    contactPhone?: boolean
    status?: boolean
    isDefault?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    storageLocations?: boolean | Warehouse$storageLocationsArgs<ExtArgs>
    parts?: boolean | Warehouse$partsArgs<ExtArgs>
    _count?: boolean | WarehouseCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["warehouse"]>

  export type WarehouseSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    address?: boolean
    contactPerson?: boolean
    contactPhone?: boolean
    status?: boolean
    isDefault?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["warehouse"]>

  export type WarehouseSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    address?: boolean
    contactPerson?: boolean
    contactPhone?: boolean
    status?: boolean
    isDefault?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["warehouse"]>

  export type WarehouseSelectScalar = {
    id?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    address?: boolean
    contactPerson?: boolean
    contactPhone?: boolean
    status?: boolean
    isDefault?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type WarehouseOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "nameEn" | "nameCn" | "description" | "address" | "contactPerson" | "contactPhone" | "status" | "isDefault" | "sortOrder" | "metadata" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["warehouse"]>
  export type WarehouseInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    storageLocations?: boolean | Warehouse$storageLocationsArgs<ExtArgs>
    parts?: boolean | Warehouse$partsArgs<ExtArgs>
    _count?: boolean | WarehouseCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type WarehouseIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type WarehouseIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $WarehousePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Warehouse"
    objects: {
      storageLocations: Prisma.$StorageLocationPayload<ExtArgs>[]
      parts: Prisma.$PartPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      nameEn: string
      nameCn: string | null
      description: string | null
      address: string | null
      contactPerson: string | null
      contactPhone: string | null
      status: $Enums.WarehouseStatus
      isDefault: boolean
      sortOrder: number
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["warehouse"]>
    composites: {}
  }

  type WarehouseGetPayload<S extends boolean | null | undefined | WarehouseDefaultArgs> = $Result.GetResult<Prisma.$WarehousePayload, S>

  type WarehouseCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<WarehouseFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: WarehouseCountAggregateInputType | true
    }

  export interface WarehouseDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Warehouse'], meta: { name: 'Warehouse' } }
    /**
     * Find zero or one Warehouse that matches the filter.
     * @param {WarehouseFindUniqueArgs} args - Arguments to find a Warehouse
     * @example
     * // Get one Warehouse
     * const warehouse = await prisma.warehouse.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends WarehouseFindUniqueArgs>(args: SelectSubset<T, WarehouseFindUniqueArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Warehouse that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {WarehouseFindUniqueOrThrowArgs} args - Arguments to find a Warehouse
     * @example
     * // Get one Warehouse
     * const warehouse = await prisma.warehouse.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends WarehouseFindUniqueOrThrowArgs>(args: SelectSubset<T, WarehouseFindUniqueOrThrowArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Warehouse 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 {WarehouseFindFirstArgs} args - Arguments to find a Warehouse
     * @example
     * // Get one Warehouse
     * const warehouse = await prisma.warehouse.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends WarehouseFindFirstArgs>(args?: SelectSubset<T, WarehouseFindFirstArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Warehouse 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 {WarehouseFindFirstOrThrowArgs} args - Arguments to find a Warehouse
     * @example
     * // Get one Warehouse
     * const warehouse = await prisma.warehouse.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends WarehouseFindFirstOrThrowArgs>(args?: SelectSubset<T, WarehouseFindFirstOrThrowArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Warehouses 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 {WarehouseFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Warehouses
     * const warehouses = await prisma.warehouse.findMany()
     * 
     * // Get first 10 Warehouses
     * const warehouses = await prisma.warehouse.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const warehouseWithIdOnly = await prisma.warehouse.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends WarehouseFindManyArgs>(args?: SelectSubset<T, WarehouseFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Warehouse.
     * @param {WarehouseCreateArgs} args - Arguments to create a Warehouse.
     * @example
     * // Create one Warehouse
     * const Warehouse = await prisma.warehouse.create({
     *   data: {
     *     // ... data to create a Warehouse
     *   }
     * })
     * 
     */
    create<T extends WarehouseCreateArgs>(args: SelectSubset<T, WarehouseCreateArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Warehouses.
     * @param {WarehouseCreateManyArgs} args - Arguments to create many Warehouses.
     * @example
     * // Create many Warehouses
     * const warehouse = await prisma.warehouse.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends WarehouseCreateManyArgs>(args?: SelectSubset<T, WarehouseCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Warehouses and returns the data saved in the database.
     * @param {WarehouseCreateManyAndReturnArgs} args - Arguments to create many Warehouses.
     * @example
     * // Create many Warehouses
     * const warehouse = await prisma.warehouse.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Warehouses and only return the `id`
     * const warehouseWithIdOnly = await prisma.warehouse.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 WarehouseCreateManyAndReturnArgs>(args?: SelectSubset<T, WarehouseCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Warehouse.
     * @param {WarehouseDeleteArgs} args - Arguments to delete one Warehouse.
     * @example
     * // Delete one Warehouse
     * const Warehouse = await prisma.warehouse.delete({
     *   where: {
     *     // ... filter to delete one Warehouse
     *   }
     * })
     * 
     */
    delete<T extends WarehouseDeleteArgs>(args: SelectSubset<T, WarehouseDeleteArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Warehouse.
     * @param {WarehouseUpdateArgs} args - Arguments to update one Warehouse.
     * @example
     * // Update one Warehouse
     * const warehouse = await prisma.warehouse.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends WarehouseUpdateArgs>(args: SelectSubset<T, WarehouseUpdateArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Warehouses.
     * @param {WarehouseDeleteManyArgs} args - Arguments to filter Warehouses to delete.
     * @example
     * // Delete a few Warehouses
     * const { count } = await prisma.warehouse.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends WarehouseDeleteManyArgs>(args?: SelectSubset<T, WarehouseDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Warehouses.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WarehouseUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Warehouses
     * const warehouse = await prisma.warehouse.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends WarehouseUpdateManyArgs>(args: SelectSubset<T, WarehouseUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Warehouses and returns the data updated in the database.
     * @param {WarehouseUpdateManyAndReturnArgs} args - Arguments to update many Warehouses.
     * @example
     * // Update many Warehouses
     * const warehouse = await prisma.warehouse.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Warehouses and only return the `id`
     * const warehouseWithIdOnly = await prisma.warehouse.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 WarehouseUpdateManyAndReturnArgs>(args: SelectSubset<T, WarehouseUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Warehouse.
     * @param {WarehouseUpsertArgs} args - Arguments to update or create a Warehouse.
     * @example
     * // Update or create a Warehouse
     * const warehouse = await prisma.warehouse.upsert({
     *   create: {
     *     // ... data to create a Warehouse
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Warehouse we want to update
     *   }
     * })
     */
    upsert<T extends WarehouseUpsertArgs>(args: SelectSubset<T, WarehouseUpsertArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Warehouses.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WarehouseCountArgs} args - Arguments to filter Warehouses to count.
     * @example
     * // Count the number of Warehouses
     * const count = await prisma.warehouse.count({
     *   where: {
     *     // ... the filter for the Warehouses we want to count
     *   }
     * })
    **/
    count<T extends WarehouseCountArgs>(
      args?: Subset<T, WarehouseCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], WarehouseCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Warehouse.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WarehouseAggregateArgs} 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 WarehouseAggregateArgs>(args: Subset<T, WarehouseAggregateArgs>): Prisma.PrismaPromise<GetWarehouseAggregateType<T>>

    /**
     * Group by Warehouse.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WarehouseGroupByArgs} 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 WarehouseGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: WarehouseGroupByArgs['orderBy'] }
        : { orderBy?: WarehouseGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, WarehouseGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetWarehouseGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Warehouse model
   */
  readonly fields: WarehouseFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Warehouse.
   * 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__WarehouseClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    storageLocations<T extends Warehouse$storageLocationsArgs<ExtArgs> = {}>(args?: Subset<T, Warehouse$storageLocationsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    parts<T extends Warehouse$partsArgs<ExtArgs> = {}>(args?: Subset<T, Warehouse$partsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Warehouse model
   */
  interface WarehouseFieldRefs {
    readonly id: FieldRef<"Warehouse", 'String'>
    readonly code: FieldRef<"Warehouse", 'String'>
    readonly nameEn: FieldRef<"Warehouse", 'String'>
    readonly nameCn: FieldRef<"Warehouse", 'String'>
    readonly description: FieldRef<"Warehouse", 'String'>
    readonly address: FieldRef<"Warehouse", 'String'>
    readonly contactPerson: FieldRef<"Warehouse", 'String'>
    readonly contactPhone: FieldRef<"Warehouse", 'String'>
    readonly status: FieldRef<"Warehouse", 'WarehouseStatus'>
    readonly isDefault: FieldRef<"Warehouse", 'Boolean'>
    readonly sortOrder: FieldRef<"Warehouse", 'Int'>
    readonly metadata: FieldRef<"Warehouse", 'Json'>
    readonly createdAt: FieldRef<"Warehouse", 'DateTime'>
    readonly updatedAt: FieldRef<"Warehouse", 'DateTime'>
    readonly deletedAt: FieldRef<"Warehouse", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Warehouse findUnique
   */
  export type WarehouseFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * Filter, which Warehouse to fetch.
     */
    where: WarehouseWhereUniqueInput
  }

  /**
   * Warehouse findUniqueOrThrow
   */
  export type WarehouseFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * Filter, which Warehouse to fetch.
     */
    where: WarehouseWhereUniqueInput
  }

  /**
   * Warehouse findFirst
   */
  export type WarehouseFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * Filter, which Warehouse to fetch.
     */
    where?: WarehouseWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Warehouses to fetch.
     */
    orderBy?: WarehouseOrderByWithRelationInput | WarehouseOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Warehouses.
     */
    cursor?: WarehouseWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Warehouses 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` Warehouses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Warehouses.
     */
    distinct?: WarehouseScalarFieldEnum | WarehouseScalarFieldEnum[]
  }

  /**
   * Warehouse findFirstOrThrow
   */
  export type WarehouseFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * Filter, which Warehouse to fetch.
     */
    where?: WarehouseWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Warehouses to fetch.
     */
    orderBy?: WarehouseOrderByWithRelationInput | WarehouseOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Warehouses.
     */
    cursor?: WarehouseWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Warehouses 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` Warehouses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Warehouses.
     */
    distinct?: WarehouseScalarFieldEnum | WarehouseScalarFieldEnum[]
  }

  /**
   * Warehouse findMany
   */
  export type WarehouseFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * Filter, which Warehouses to fetch.
     */
    where?: WarehouseWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Warehouses to fetch.
     */
    orderBy?: WarehouseOrderByWithRelationInput | WarehouseOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Warehouses.
     */
    cursor?: WarehouseWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Warehouses 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` Warehouses.
     */
    skip?: number
    distinct?: WarehouseScalarFieldEnum | WarehouseScalarFieldEnum[]
  }

  /**
   * Warehouse create
   */
  export type WarehouseCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * The data needed to create a Warehouse.
     */
    data: XOR<WarehouseCreateInput, WarehouseUncheckedCreateInput>
  }

  /**
   * Warehouse createMany
   */
  export type WarehouseCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Warehouses.
     */
    data: WarehouseCreateManyInput | WarehouseCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Warehouse createManyAndReturn
   */
  export type WarehouseCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * The data used to create many Warehouses.
     */
    data: WarehouseCreateManyInput | WarehouseCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Warehouse update
   */
  export type WarehouseUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * The data needed to update a Warehouse.
     */
    data: XOR<WarehouseUpdateInput, WarehouseUncheckedUpdateInput>
    /**
     * Choose, which Warehouse to update.
     */
    where: WarehouseWhereUniqueInput
  }

  /**
   * Warehouse updateMany
   */
  export type WarehouseUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Warehouses.
     */
    data: XOR<WarehouseUpdateManyMutationInput, WarehouseUncheckedUpdateManyInput>
    /**
     * Filter which Warehouses to update
     */
    where?: WarehouseWhereInput
    /**
     * Limit how many Warehouses to update.
     */
    limit?: number
  }

  /**
   * Warehouse updateManyAndReturn
   */
  export type WarehouseUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * The data used to update Warehouses.
     */
    data: XOR<WarehouseUpdateManyMutationInput, WarehouseUncheckedUpdateManyInput>
    /**
     * Filter which Warehouses to update
     */
    where?: WarehouseWhereInput
    /**
     * Limit how many Warehouses to update.
     */
    limit?: number
  }

  /**
   * Warehouse upsert
   */
  export type WarehouseUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * The filter to search for the Warehouse to update in case it exists.
     */
    where: WarehouseWhereUniqueInput
    /**
     * In case the Warehouse found by the `where` argument doesn't exist, create a new Warehouse with this data.
     */
    create: XOR<WarehouseCreateInput, WarehouseUncheckedCreateInput>
    /**
     * In case the Warehouse was found with the provided `where` argument, update it with this data.
     */
    update: XOR<WarehouseUpdateInput, WarehouseUncheckedUpdateInput>
  }

  /**
   * Warehouse delete
   */
  export type WarehouseDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
    /**
     * Filter which Warehouse to delete.
     */
    where: WarehouseWhereUniqueInput
  }

  /**
   * Warehouse deleteMany
   */
  export type WarehouseDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Warehouses to delete
     */
    where?: WarehouseWhereInput
    /**
     * Limit how many Warehouses to delete.
     */
    limit?: number
  }

  /**
   * Warehouse.storageLocations
   */
  export type Warehouse$storageLocationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    where?: StorageLocationWhereInput
    orderBy?: StorageLocationOrderByWithRelationInput | StorageLocationOrderByWithRelationInput[]
    cursor?: StorageLocationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: StorageLocationScalarFieldEnum | StorageLocationScalarFieldEnum[]
  }

  /**
   * Warehouse.parts
   */
  export type Warehouse$partsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    where?: PartWhereInput
    orderBy?: PartOrderByWithRelationInput | PartOrderByWithRelationInput[]
    cursor?: PartWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PartScalarFieldEnum | PartScalarFieldEnum[]
  }

  /**
   * Warehouse without action
   */
  export type WarehouseDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Warehouse
     */
    select?: WarehouseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Warehouse
     */
    omit?: WarehouseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WarehouseInclude<ExtArgs> | null
  }


  /**
   * Model StorageLocation
   */

  export type AggregateStorageLocation = {
    _count: StorageLocationCountAggregateOutputType | null
    _avg: StorageLocationAvgAggregateOutputType | null
    _sum: StorageLocationSumAggregateOutputType | null
    _min: StorageLocationMinAggregateOutputType | null
    _max: StorageLocationMaxAggregateOutputType | null
  }

  export type StorageLocationAvgAggregateOutputType = {
    capacity: number | null
    sortOrder: number | null
  }

  export type StorageLocationSumAggregateOutputType = {
    capacity: number | null
    sortOrder: number | null
  }

  export type StorageLocationMinAggregateOutputType = {
    id: string | null
    warehouseId: string | null
    code: string | null
    nameEn: string | null
    nameCn: string | null
    description: string | null
    zone: string | null
    aisle: string | null
    rack: string | null
    level: string | null
    position: string | null
    capacity: number | null
    status: $Enums.StorageLocationStatus | null
    sortOrder: number | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type StorageLocationMaxAggregateOutputType = {
    id: string | null
    warehouseId: string | null
    code: string | null
    nameEn: string | null
    nameCn: string | null
    description: string | null
    zone: string | null
    aisle: string | null
    rack: string | null
    level: string | null
    position: string | null
    capacity: number | null
    status: $Enums.StorageLocationStatus | null
    sortOrder: number | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type StorageLocationCountAggregateOutputType = {
    id: number
    warehouseId: number
    code: number
    nameEn: number
    nameCn: number
    description: number
    zone: number
    aisle: number
    rack: number
    level: number
    position: number
    capacity: number
    status: number
    sortOrder: number
    metadata: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type StorageLocationAvgAggregateInputType = {
    capacity?: true
    sortOrder?: true
  }

  export type StorageLocationSumAggregateInputType = {
    capacity?: true
    sortOrder?: true
  }

  export type StorageLocationMinAggregateInputType = {
    id?: true
    warehouseId?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    zone?: true
    aisle?: true
    rack?: true
    level?: true
    position?: true
    capacity?: true
    status?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type StorageLocationMaxAggregateInputType = {
    id?: true
    warehouseId?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    zone?: true
    aisle?: true
    rack?: true
    level?: true
    position?: true
    capacity?: true
    status?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type StorageLocationCountAggregateInputType = {
    id?: true
    warehouseId?: true
    code?: true
    nameEn?: true
    nameCn?: true
    description?: true
    zone?: true
    aisle?: true
    rack?: true
    level?: true
    position?: true
    capacity?: true
    status?: true
    sortOrder?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type StorageLocationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StorageLocation to aggregate.
     */
    where?: StorageLocationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageLocations to fetch.
     */
    orderBy?: StorageLocationOrderByWithRelationInput | StorageLocationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: StorageLocationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageLocations 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` StorageLocations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned StorageLocations
    **/
    _count?: true | StorageLocationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: StorageLocationAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: StorageLocationSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: StorageLocationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: StorageLocationMaxAggregateInputType
  }

  export type GetStorageLocationAggregateType<T extends StorageLocationAggregateArgs> = {
        [P in keyof T & keyof AggregateStorageLocation]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateStorageLocation[P]>
      : GetScalarType<T[P], AggregateStorageLocation[P]>
  }




  export type StorageLocationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StorageLocationWhereInput
    orderBy?: StorageLocationOrderByWithAggregationInput | StorageLocationOrderByWithAggregationInput[]
    by: StorageLocationScalarFieldEnum[] | StorageLocationScalarFieldEnum
    having?: StorageLocationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: StorageLocationCountAggregateInputType | true
    _avg?: StorageLocationAvgAggregateInputType
    _sum?: StorageLocationSumAggregateInputType
    _min?: StorageLocationMinAggregateInputType
    _max?: StorageLocationMaxAggregateInputType
  }

  export type StorageLocationGroupByOutputType = {
    id: string
    warehouseId: string
    code: string
    nameEn: string
    nameCn: string | null
    description: string | null
    zone: string | null
    aisle: string | null
    rack: string | null
    level: string | null
    position: string | null
    capacity: number | null
    status: $Enums.StorageLocationStatus
    sortOrder: number
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: StorageLocationCountAggregateOutputType | null
    _avg: StorageLocationAvgAggregateOutputType | null
    _sum: StorageLocationSumAggregateOutputType | null
    _min: StorageLocationMinAggregateOutputType | null
    _max: StorageLocationMaxAggregateOutputType | null
  }

  type GetStorageLocationGroupByPayload<T extends StorageLocationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<StorageLocationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof StorageLocationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], StorageLocationGroupByOutputType[P]>
            : GetScalarType<T[P], StorageLocationGroupByOutputType[P]>
        }
      >
    >


  export type StorageLocationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    warehouseId?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    zone?: boolean
    aisle?: boolean
    rack?: boolean
    level?: boolean
    position?: boolean
    capacity?: boolean
    status?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    warehouse?: boolean | WarehouseDefaultArgs<ExtArgs>
    parts?: boolean | StorageLocation$partsArgs<ExtArgs>
    _count?: boolean | StorageLocationCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["storageLocation"]>

  export type StorageLocationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    warehouseId?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    zone?: boolean
    aisle?: boolean
    rack?: boolean
    level?: boolean
    position?: boolean
    capacity?: boolean
    status?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    warehouse?: boolean | WarehouseDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["storageLocation"]>

  export type StorageLocationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    warehouseId?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    zone?: boolean
    aisle?: boolean
    rack?: boolean
    level?: boolean
    position?: boolean
    capacity?: boolean
    status?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    warehouse?: boolean | WarehouseDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["storageLocation"]>

  export type StorageLocationSelectScalar = {
    id?: boolean
    warehouseId?: boolean
    code?: boolean
    nameEn?: boolean
    nameCn?: boolean
    description?: boolean
    zone?: boolean
    aisle?: boolean
    rack?: boolean
    level?: boolean
    position?: boolean
    capacity?: boolean
    status?: boolean
    sortOrder?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type StorageLocationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "warehouseId" | "code" | "nameEn" | "nameCn" | "description" | "zone" | "aisle" | "rack" | "level" | "position" | "capacity" | "status" | "sortOrder" | "metadata" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["storageLocation"]>
  export type StorageLocationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    warehouse?: boolean | WarehouseDefaultArgs<ExtArgs>
    parts?: boolean | StorageLocation$partsArgs<ExtArgs>
    _count?: boolean | StorageLocationCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type StorageLocationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    warehouse?: boolean | WarehouseDefaultArgs<ExtArgs>
  }
  export type StorageLocationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    warehouse?: boolean | WarehouseDefaultArgs<ExtArgs>
  }

  export type $StorageLocationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "StorageLocation"
    objects: {
      warehouse: Prisma.$WarehousePayload<ExtArgs>
      parts: Prisma.$PartPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      warehouseId: string
      code: string
      nameEn: string
      nameCn: string | null
      description: string | null
      zone: string | null
      aisle: string | null
      rack: string | null
      level: string | null
      position: string | null
      capacity: number | null
      status: $Enums.StorageLocationStatus
      sortOrder: number
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["storageLocation"]>
    composites: {}
  }

  type StorageLocationGetPayload<S extends boolean | null | undefined | StorageLocationDefaultArgs> = $Result.GetResult<Prisma.$StorageLocationPayload, S>

  type StorageLocationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<StorageLocationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: StorageLocationCountAggregateInputType | true
    }

  export interface StorageLocationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['StorageLocation'], meta: { name: 'StorageLocation' } }
    /**
     * Find zero or one StorageLocation that matches the filter.
     * @param {StorageLocationFindUniqueArgs} args - Arguments to find a StorageLocation
     * @example
     * // Get one StorageLocation
     * const storageLocation = await prisma.storageLocation.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends StorageLocationFindUniqueArgs>(args: SelectSubset<T, StorageLocationFindUniqueArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one StorageLocation that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {StorageLocationFindUniqueOrThrowArgs} args - Arguments to find a StorageLocation
     * @example
     * // Get one StorageLocation
     * const storageLocation = await prisma.storageLocation.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends StorageLocationFindUniqueOrThrowArgs>(args: SelectSubset<T, StorageLocationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StorageLocation 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 {StorageLocationFindFirstArgs} args - Arguments to find a StorageLocation
     * @example
     * // Get one StorageLocation
     * const storageLocation = await prisma.storageLocation.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends StorageLocationFindFirstArgs>(args?: SelectSubset<T, StorageLocationFindFirstArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StorageLocation 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 {StorageLocationFindFirstOrThrowArgs} args - Arguments to find a StorageLocation
     * @example
     * // Get one StorageLocation
     * const storageLocation = await prisma.storageLocation.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends StorageLocationFindFirstOrThrowArgs>(args?: SelectSubset<T, StorageLocationFindFirstOrThrowArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more StorageLocations 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 {StorageLocationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all StorageLocations
     * const storageLocations = await prisma.storageLocation.findMany()
     * 
     * // Get first 10 StorageLocations
     * const storageLocations = await prisma.storageLocation.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const storageLocationWithIdOnly = await prisma.storageLocation.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends StorageLocationFindManyArgs>(args?: SelectSubset<T, StorageLocationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a StorageLocation.
     * @param {StorageLocationCreateArgs} args - Arguments to create a StorageLocation.
     * @example
     * // Create one StorageLocation
     * const StorageLocation = await prisma.storageLocation.create({
     *   data: {
     *     // ... data to create a StorageLocation
     *   }
     * })
     * 
     */
    create<T extends StorageLocationCreateArgs>(args: SelectSubset<T, StorageLocationCreateArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many StorageLocations.
     * @param {StorageLocationCreateManyArgs} args - Arguments to create many StorageLocations.
     * @example
     * // Create many StorageLocations
     * const storageLocation = await prisma.storageLocation.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends StorageLocationCreateManyArgs>(args?: SelectSubset<T, StorageLocationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many StorageLocations and returns the data saved in the database.
     * @param {StorageLocationCreateManyAndReturnArgs} args - Arguments to create many StorageLocations.
     * @example
     * // Create many StorageLocations
     * const storageLocation = await prisma.storageLocation.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many StorageLocations and only return the `id`
     * const storageLocationWithIdOnly = await prisma.storageLocation.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 StorageLocationCreateManyAndReturnArgs>(args?: SelectSubset<T, StorageLocationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a StorageLocation.
     * @param {StorageLocationDeleteArgs} args - Arguments to delete one StorageLocation.
     * @example
     * // Delete one StorageLocation
     * const StorageLocation = await prisma.storageLocation.delete({
     *   where: {
     *     // ... filter to delete one StorageLocation
     *   }
     * })
     * 
     */
    delete<T extends StorageLocationDeleteArgs>(args: SelectSubset<T, StorageLocationDeleteArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one StorageLocation.
     * @param {StorageLocationUpdateArgs} args - Arguments to update one StorageLocation.
     * @example
     * // Update one StorageLocation
     * const storageLocation = await prisma.storageLocation.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends StorageLocationUpdateArgs>(args: SelectSubset<T, StorageLocationUpdateArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more StorageLocations.
     * @param {StorageLocationDeleteManyArgs} args - Arguments to filter StorageLocations to delete.
     * @example
     * // Delete a few StorageLocations
     * const { count } = await prisma.storageLocation.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends StorageLocationDeleteManyArgs>(args?: SelectSubset<T, StorageLocationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StorageLocations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageLocationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many StorageLocations
     * const storageLocation = await prisma.storageLocation.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends StorageLocationUpdateManyArgs>(args: SelectSubset<T, StorageLocationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StorageLocations and returns the data updated in the database.
     * @param {StorageLocationUpdateManyAndReturnArgs} args - Arguments to update many StorageLocations.
     * @example
     * // Update many StorageLocations
     * const storageLocation = await prisma.storageLocation.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more StorageLocations and only return the `id`
     * const storageLocationWithIdOnly = await prisma.storageLocation.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 StorageLocationUpdateManyAndReturnArgs>(args: SelectSubset<T, StorageLocationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one StorageLocation.
     * @param {StorageLocationUpsertArgs} args - Arguments to update or create a StorageLocation.
     * @example
     * // Update or create a StorageLocation
     * const storageLocation = await prisma.storageLocation.upsert({
     *   create: {
     *     // ... data to create a StorageLocation
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the StorageLocation we want to update
     *   }
     * })
     */
    upsert<T extends StorageLocationUpsertArgs>(args: SelectSubset<T, StorageLocationUpsertArgs<ExtArgs>>): Prisma__StorageLocationClient<$Result.GetResult<Prisma.$StorageLocationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of StorageLocations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageLocationCountArgs} args - Arguments to filter StorageLocations to count.
     * @example
     * // Count the number of StorageLocations
     * const count = await prisma.storageLocation.count({
     *   where: {
     *     // ... the filter for the StorageLocations we want to count
     *   }
     * })
    **/
    count<T extends StorageLocationCountArgs>(
      args?: Subset<T, StorageLocationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], StorageLocationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a StorageLocation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageLocationAggregateArgs} 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 StorageLocationAggregateArgs>(args: Subset<T, StorageLocationAggregateArgs>): Prisma.PrismaPromise<GetStorageLocationAggregateType<T>>

    /**
     * Group by StorageLocation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageLocationGroupByArgs} 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 StorageLocationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: StorageLocationGroupByArgs['orderBy'] }
        : { orderBy?: StorageLocationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, StorageLocationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetStorageLocationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the StorageLocation model
   */
  readonly fields: StorageLocationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for StorageLocation.
   * 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__StorageLocationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    warehouse<T extends WarehouseDefaultArgs<ExtArgs> = {}>(args?: Subset<T, WarehouseDefaultArgs<ExtArgs>>): Prisma__WarehouseClient<$Result.GetResult<Prisma.$WarehousePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    parts<T extends StorageLocation$partsArgs<ExtArgs> = {}>(args?: Subset<T, StorageLocation$partsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the StorageLocation model
   */
  interface StorageLocationFieldRefs {
    readonly id: FieldRef<"StorageLocation", 'String'>
    readonly warehouseId: FieldRef<"StorageLocation", 'String'>
    readonly code: FieldRef<"StorageLocation", 'String'>
    readonly nameEn: FieldRef<"StorageLocation", 'String'>
    readonly nameCn: FieldRef<"StorageLocation", 'String'>
    readonly description: FieldRef<"StorageLocation", 'String'>
    readonly zone: FieldRef<"StorageLocation", 'String'>
    readonly aisle: FieldRef<"StorageLocation", 'String'>
    readonly rack: FieldRef<"StorageLocation", 'String'>
    readonly level: FieldRef<"StorageLocation", 'String'>
    readonly position: FieldRef<"StorageLocation", 'String'>
    readonly capacity: FieldRef<"StorageLocation", 'Int'>
    readonly status: FieldRef<"StorageLocation", 'StorageLocationStatus'>
    readonly sortOrder: FieldRef<"StorageLocation", 'Int'>
    readonly metadata: FieldRef<"StorageLocation", 'Json'>
    readonly createdAt: FieldRef<"StorageLocation", 'DateTime'>
    readonly updatedAt: FieldRef<"StorageLocation", 'DateTime'>
    readonly deletedAt: FieldRef<"StorageLocation", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * StorageLocation findUnique
   */
  export type StorageLocationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * Filter, which StorageLocation to fetch.
     */
    where: StorageLocationWhereUniqueInput
  }

  /**
   * StorageLocation findUniqueOrThrow
   */
  export type StorageLocationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * Filter, which StorageLocation to fetch.
     */
    where: StorageLocationWhereUniqueInput
  }

  /**
   * StorageLocation findFirst
   */
  export type StorageLocationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * Filter, which StorageLocation to fetch.
     */
    where?: StorageLocationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageLocations to fetch.
     */
    orderBy?: StorageLocationOrderByWithRelationInput | StorageLocationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StorageLocations.
     */
    cursor?: StorageLocationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageLocations 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` StorageLocations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StorageLocations.
     */
    distinct?: StorageLocationScalarFieldEnum | StorageLocationScalarFieldEnum[]
  }

  /**
   * StorageLocation findFirstOrThrow
   */
  export type StorageLocationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * Filter, which StorageLocation to fetch.
     */
    where?: StorageLocationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageLocations to fetch.
     */
    orderBy?: StorageLocationOrderByWithRelationInput | StorageLocationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StorageLocations.
     */
    cursor?: StorageLocationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageLocations 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` StorageLocations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StorageLocations.
     */
    distinct?: StorageLocationScalarFieldEnum | StorageLocationScalarFieldEnum[]
  }

  /**
   * StorageLocation findMany
   */
  export type StorageLocationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * Filter, which StorageLocations to fetch.
     */
    where?: StorageLocationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageLocations to fetch.
     */
    orderBy?: StorageLocationOrderByWithRelationInput | StorageLocationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing StorageLocations.
     */
    cursor?: StorageLocationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageLocations 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` StorageLocations.
     */
    skip?: number
    distinct?: StorageLocationScalarFieldEnum | StorageLocationScalarFieldEnum[]
  }

  /**
   * StorageLocation create
   */
  export type StorageLocationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * The data needed to create a StorageLocation.
     */
    data: XOR<StorageLocationCreateInput, StorageLocationUncheckedCreateInput>
  }

  /**
   * StorageLocation createMany
   */
  export type StorageLocationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many StorageLocations.
     */
    data: StorageLocationCreateManyInput | StorageLocationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * StorageLocation createManyAndReturn
   */
  export type StorageLocationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * The data used to create many StorageLocations.
     */
    data: StorageLocationCreateManyInput | StorageLocationCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * StorageLocation update
   */
  export type StorageLocationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * The data needed to update a StorageLocation.
     */
    data: XOR<StorageLocationUpdateInput, StorageLocationUncheckedUpdateInput>
    /**
     * Choose, which StorageLocation to update.
     */
    where: StorageLocationWhereUniqueInput
  }

  /**
   * StorageLocation updateMany
   */
  export type StorageLocationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update StorageLocations.
     */
    data: XOR<StorageLocationUpdateManyMutationInput, StorageLocationUncheckedUpdateManyInput>
    /**
     * Filter which StorageLocations to update
     */
    where?: StorageLocationWhereInput
    /**
     * Limit how many StorageLocations to update.
     */
    limit?: number
  }

  /**
   * StorageLocation updateManyAndReturn
   */
  export type StorageLocationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * The data used to update StorageLocations.
     */
    data: XOR<StorageLocationUpdateManyMutationInput, StorageLocationUncheckedUpdateManyInput>
    /**
     * Filter which StorageLocations to update
     */
    where?: StorageLocationWhereInput
    /**
     * Limit how many StorageLocations to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * StorageLocation upsert
   */
  export type StorageLocationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * The filter to search for the StorageLocation to update in case it exists.
     */
    where: StorageLocationWhereUniqueInput
    /**
     * In case the StorageLocation found by the `where` argument doesn't exist, create a new StorageLocation with this data.
     */
    create: XOR<StorageLocationCreateInput, StorageLocationUncheckedCreateInput>
    /**
     * In case the StorageLocation was found with the provided `where` argument, update it with this data.
     */
    update: XOR<StorageLocationUpdateInput, StorageLocationUncheckedUpdateInput>
  }

  /**
   * StorageLocation delete
   */
  export type StorageLocationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
    /**
     * Filter which StorageLocation to delete.
     */
    where: StorageLocationWhereUniqueInput
  }

  /**
   * StorageLocation deleteMany
   */
  export type StorageLocationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StorageLocations to delete
     */
    where?: StorageLocationWhereInput
    /**
     * Limit how many StorageLocations to delete.
     */
    limit?: number
  }

  /**
   * StorageLocation.parts
   */
  export type StorageLocation$partsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Part
     */
    select?: PartSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Part
     */
    omit?: PartOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartInclude<ExtArgs> | null
    where?: PartWhereInput
    orderBy?: PartOrderByWithRelationInput | PartOrderByWithRelationInput[]
    cursor?: PartWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PartScalarFieldEnum | PartScalarFieldEnum[]
  }

  /**
   * StorageLocation without action
   */
  export type StorageLocationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageLocation
     */
    select?: StorageLocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageLocation
     */
    omit?: StorageLocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageLocationInclude<ExtArgs> | null
  }


  /**
   * Model PartLabel
   */

  export type AggregatePartLabel = {
    _count: PartLabelCountAggregateOutputType | null
    _avg: PartLabelAvgAggregateOutputType | null
    _sum: PartLabelSumAggregateOutputType | null
    _min: PartLabelMinAggregateOutputType | null
    _max: PartLabelMaxAggregateOutputType | null
  }

  export type PartLabelAvgAggregateOutputType = {
    printCount: number | null
  }

  export type PartLabelSumAggregateOutputType = {
    printCount: number | null
  }

  export type PartLabelMinAggregateOutputType = {
    id: string | null
    partId: string | null
    labelCode: string | null
    qrCodeData: string | null
    template: string | null
    size: string | null
    printCount: number | null
    lastPrintedAt: Date | null
    printedBy: string | null
    status: $Enums.LabelStatus | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PartLabelMaxAggregateOutputType = {
    id: string | null
    partId: string | null
    labelCode: string | null
    qrCodeData: string | null
    template: string | null
    size: string | null
    printCount: number | null
    lastPrintedAt: Date | null
    printedBy: string | null
    status: $Enums.LabelStatus | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PartLabelCountAggregateOutputType = {
    id: number
    partId: number
    labelCode: number
    qrCodeData: number
    template: number
    size: number
    printCount: number
    lastPrintedAt: number
    printedBy: number
    status: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type PartLabelAvgAggregateInputType = {
    printCount?: true
  }

  export type PartLabelSumAggregateInputType = {
    printCount?: true
  }

  export type PartLabelMinAggregateInputType = {
    id?: true
    partId?: true
    labelCode?: true
    qrCodeData?: true
    template?: true
    size?: true
    printCount?: true
    lastPrintedAt?: true
    printedBy?: true
    status?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PartLabelMaxAggregateInputType = {
    id?: true
    partId?: true
    labelCode?: true
    qrCodeData?: true
    template?: true
    size?: true
    printCount?: true
    lastPrintedAt?: true
    printedBy?: true
    status?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PartLabelCountAggregateInputType = {
    id?: true
    partId?: true
    labelCode?: true
    qrCodeData?: true
    template?: true
    size?: true
    printCount?: true
    lastPrintedAt?: true
    printedBy?: true
    status?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type PartLabelAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartLabel to aggregate.
     */
    where?: PartLabelWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartLabels to fetch.
     */
    orderBy?: PartLabelOrderByWithRelationInput | PartLabelOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PartLabelWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartLabels 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` PartLabels.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PartLabels
    **/
    _count?: true | PartLabelCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PartLabelAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PartLabelSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PartLabelMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PartLabelMaxAggregateInputType
  }

  export type GetPartLabelAggregateType<T extends PartLabelAggregateArgs> = {
        [P in keyof T & keyof AggregatePartLabel]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePartLabel[P]>
      : GetScalarType<T[P], AggregatePartLabel[P]>
  }




  export type PartLabelGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartLabelWhereInput
    orderBy?: PartLabelOrderByWithAggregationInput | PartLabelOrderByWithAggregationInput[]
    by: PartLabelScalarFieldEnum[] | PartLabelScalarFieldEnum
    having?: PartLabelScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PartLabelCountAggregateInputType | true
    _avg?: PartLabelAvgAggregateInputType
    _sum?: PartLabelSumAggregateInputType
    _min?: PartLabelMinAggregateInputType
    _max?: PartLabelMaxAggregateInputType
  }

  export type PartLabelGroupByOutputType = {
    id: string
    partId: string
    labelCode: string
    qrCodeData: string
    template: string
    size: string
    printCount: number
    lastPrintedAt: Date | null
    printedBy: string | null
    status: $Enums.LabelStatus
    createdAt: Date
    updatedAt: Date
    _count: PartLabelCountAggregateOutputType | null
    _avg: PartLabelAvgAggregateOutputType | null
    _sum: PartLabelSumAggregateOutputType | null
    _min: PartLabelMinAggregateOutputType | null
    _max: PartLabelMaxAggregateOutputType | null
  }

  type GetPartLabelGroupByPayload<T extends PartLabelGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PartLabelGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PartLabelGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PartLabelGroupByOutputType[P]>
            : GetScalarType<T[P], PartLabelGroupByOutputType[P]>
        }
      >
    >


  export type PartLabelSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    labelCode?: boolean
    qrCodeData?: boolean
    template?: boolean
    size?: boolean
    printCount?: boolean
    lastPrintedAt?: boolean
    printedBy?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partLabel"]>

  export type PartLabelSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    labelCode?: boolean
    qrCodeData?: boolean
    template?: boolean
    size?: boolean
    printCount?: boolean
    lastPrintedAt?: boolean
    printedBy?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partLabel"]>

  export type PartLabelSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    labelCode?: boolean
    qrCodeData?: boolean
    template?: boolean
    size?: boolean
    printCount?: boolean
    lastPrintedAt?: boolean
    printedBy?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partLabel"]>

  export type PartLabelSelectScalar = {
    id?: boolean
    partId?: boolean
    labelCode?: boolean
    qrCodeData?: boolean
    template?: boolean
    size?: boolean
    printCount?: boolean
    lastPrintedAt?: boolean
    printedBy?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type PartLabelOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "partId" | "labelCode" | "qrCodeData" | "template" | "size" | "printCount" | "lastPrintedAt" | "printedBy" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["partLabel"]>
  export type PartLabelInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }
  export type PartLabelIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }
  export type PartLabelIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }

  export type $PartLabelPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PartLabel"
    objects: {
      part: Prisma.$PartPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      partId: string
      labelCode: string
      qrCodeData: string
      template: string
      size: string
      printCount: number
      lastPrintedAt: Date | null
      printedBy: string | null
      status: $Enums.LabelStatus
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["partLabel"]>
    composites: {}
  }

  type PartLabelGetPayload<S extends boolean | null | undefined | PartLabelDefaultArgs> = $Result.GetResult<Prisma.$PartLabelPayload, S>

  type PartLabelCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PartLabelFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PartLabelCountAggregateInputType | true
    }

  export interface PartLabelDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PartLabel'], meta: { name: 'PartLabel' } }
    /**
     * Find zero or one PartLabel that matches the filter.
     * @param {PartLabelFindUniqueArgs} args - Arguments to find a PartLabel
     * @example
     * // Get one PartLabel
     * const partLabel = await prisma.partLabel.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PartLabelFindUniqueArgs>(args: SelectSubset<T, PartLabelFindUniqueArgs<ExtArgs>>): Prisma__PartLabelClient<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PartLabel that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PartLabelFindUniqueOrThrowArgs} args - Arguments to find a PartLabel
     * @example
     * // Get one PartLabel
     * const partLabel = await prisma.partLabel.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PartLabelFindUniqueOrThrowArgs>(args: SelectSubset<T, PartLabelFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PartLabelClient<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartLabel 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 {PartLabelFindFirstArgs} args - Arguments to find a PartLabel
     * @example
     * // Get one PartLabel
     * const partLabel = await prisma.partLabel.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PartLabelFindFirstArgs>(args?: SelectSubset<T, PartLabelFindFirstArgs<ExtArgs>>): Prisma__PartLabelClient<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartLabel 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 {PartLabelFindFirstOrThrowArgs} args - Arguments to find a PartLabel
     * @example
     * // Get one PartLabel
     * const partLabel = await prisma.partLabel.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PartLabelFindFirstOrThrowArgs>(args?: SelectSubset<T, PartLabelFindFirstOrThrowArgs<ExtArgs>>): Prisma__PartLabelClient<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PartLabels 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 {PartLabelFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PartLabels
     * const partLabels = await prisma.partLabel.findMany()
     * 
     * // Get first 10 PartLabels
     * const partLabels = await prisma.partLabel.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const partLabelWithIdOnly = await prisma.partLabel.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PartLabelFindManyArgs>(args?: SelectSubset<T, PartLabelFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PartLabel.
     * @param {PartLabelCreateArgs} args - Arguments to create a PartLabel.
     * @example
     * // Create one PartLabel
     * const PartLabel = await prisma.partLabel.create({
     *   data: {
     *     // ... data to create a PartLabel
     *   }
     * })
     * 
     */
    create<T extends PartLabelCreateArgs>(args: SelectSubset<T, PartLabelCreateArgs<ExtArgs>>): Prisma__PartLabelClient<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PartLabels.
     * @param {PartLabelCreateManyArgs} args - Arguments to create many PartLabels.
     * @example
     * // Create many PartLabels
     * const partLabel = await prisma.partLabel.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PartLabelCreateManyArgs>(args?: SelectSubset<T, PartLabelCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PartLabels and returns the data saved in the database.
     * @param {PartLabelCreateManyAndReturnArgs} args - Arguments to create many PartLabels.
     * @example
     * // Create many PartLabels
     * const partLabel = await prisma.partLabel.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PartLabels and only return the `id`
     * const partLabelWithIdOnly = await prisma.partLabel.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 PartLabelCreateManyAndReturnArgs>(args?: SelectSubset<T, PartLabelCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PartLabel.
     * @param {PartLabelDeleteArgs} args - Arguments to delete one PartLabel.
     * @example
     * // Delete one PartLabel
     * const PartLabel = await prisma.partLabel.delete({
     *   where: {
     *     // ... filter to delete one PartLabel
     *   }
     * })
     * 
     */
    delete<T extends PartLabelDeleteArgs>(args: SelectSubset<T, PartLabelDeleteArgs<ExtArgs>>): Prisma__PartLabelClient<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PartLabel.
     * @param {PartLabelUpdateArgs} args - Arguments to update one PartLabel.
     * @example
     * // Update one PartLabel
     * const partLabel = await prisma.partLabel.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PartLabelUpdateArgs>(args: SelectSubset<T, PartLabelUpdateArgs<ExtArgs>>): Prisma__PartLabelClient<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PartLabels.
     * @param {PartLabelDeleteManyArgs} args - Arguments to filter PartLabels to delete.
     * @example
     * // Delete a few PartLabels
     * const { count } = await prisma.partLabel.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PartLabelDeleteManyArgs>(args?: SelectSubset<T, PartLabelDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartLabels.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartLabelUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PartLabels
     * const partLabel = await prisma.partLabel.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PartLabelUpdateManyArgs>(args: SelectSubset<T, PartLabelUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartLabels and returns the data updated in the database.
     * @param {PartLabelUpdateManyAndReturnArgs} args - Arguments to update many PartLabels.
     * @example
     * // Update many PartLabels
     * const partLabel = await prisma.partLabel.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PartLabels and only return the `id`
     * const partLabelWithIdOnly = await prisma.partLabel.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 PartLabelUpdateManyAndReturnArgs>(args: SelectSubset<T, PartLabelUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PartLabel.
     * @param {PartLabelUpsertArgs} args - Arguments to update or create a PartLabel.
     * @example
     * // Update or create a PartLabel
     * const partLabel = await prisma.partLabel.upsert({
     *   create: {
     *     // ... data to create a PartLabel
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PartLabel we want to update
     *   }
     * })
     */
    upsert<T extends PartLabelUpsertArgs>(args: SelectSubset<T, PartLabelUpsertArgs<ExtArgs>>): Prisma__PartLabelClient<$Result.GetResult<Prisma.$PartLabelPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PartLabels.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartLabelCountArgs} args - Arguments to filter PartLabels to count.
     * @example
     * // Count the number of PartLabels
     * const count = await prisma.partLabel.count({
     *   where: {
     *     // ... the filter for the PartLabels we want to count
     *   }
     * })
    **/
    count<T extends PartLabelCountArgs>(
      args?: Subset<T, PartLabelCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PartLabelCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PartLabel.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartLabelAggregateArgs} 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 PartLabelAggregateArgs>(args: Subset<T, PartLabelAggregateArgs>): Prisma.PrismaPromise<GetPartLabelAggregateType<T>>

    /**
     * Group by PartLabel.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartLabelGroupByArgs} 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 PartLabelGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PartLabelGroupByArgs['orderBy'] }
        : { orderBy?: PartLabelGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PartLabelGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPartLabelGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PartLabel model
   */
  readonly fields: PartLabelFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PartLabel.
   * 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__PartLabelClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    part<T extends PartDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PartDefaultArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PartLabel model
   */
  interface PartLabelFieldRefs {
    readonly id: FieldRef<"PartLabel", 'String'>
    readonly partId: FieldRef<"PartLabel", 'String'>
    readonly labelCode: FieldRef<"PartLabel", 'String'>
    readonly qrCodeData: FieldRef<"PartLabel", 'String'>
    readonly template: FieldRef<"PartLabel", 'String'>
    readonly size: FieldRef<"PartLabel", 'String'>
    readonly printCount: FieldRef<"PartLabel", 'Int'>
    readonly lastPrintedAt: FieldRef<"PartLabel", 'DateTime'>
    readonly printedBy: FieldRef<"PartLabel", 'String'>
    readonly status: FieldRef<"PartLabel", 'LabelStatus'>
    readonly createdAt: FieldRef<"PartLabel", 'DateTime'>
    readonly updatedAt: FieldRef<"PartLabel", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PartLabel findUnique
   */
  export type PartLabelFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * Filter, which PartLabel to fetch.
     */
    where: PartLabelWhereUniqueInput
  }

  /**
   * PartLabel findUniqueOrThrow
   */
  export type PartLabelFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * Filter, which PartLabel to fetch.
     */
    where: PartLabelWhereUniqueInput
  }

  /**
   * PartLabel findFirst
   */
  export type PartLabelFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * Filter, which PartLabel to fetch.
     */
    where?: PartLabelWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartLabels to fetch.
     */
    orderBy?: PartLabelOrderByWithRelationInput | PartLabelOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartLabels.
     */
    cursor?: PartLabelWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartLabels 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` PartLabels.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartLabels.
     */
    distinct?: PartLabelScalarFieldEnum | PartLabelScalarFieldEnum[]
  }

  /**
   * PartLabel findFirstOrThrow
   */
  export type PartLabelFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * Filter, which PartLabel to fetch.
     */
    where?: PartLabelWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartLabels to fetch.
     */
    orderBy?: PartLabelOrderByWithRelationInput | PartLabelOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartLabels.
     */
    cursor?: PartLabelWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartLabels 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` PartLabels.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartLabels.
     */
    distinct?: PartLabelScalarFieldEnum | PartLabelScalarFieldEnum[]
  }

  /**
   * PartLabel findMany
   */
  export type PartLabelFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * Filter, which PartLabels to fetch.
     */
    where?: PartLabelWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartLabels to fetch.
     */
    orderBy?: PartLabelOrderByWithRelationInput | PartLabelOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PartLabels.
     */
    cursor?: PartLabelWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartLabels 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` PartLabels.
     */
    skip?: number
    distinct?: PartLabelScalarFieldEnum | PartLabelScalarFieldEnum[]
  }

  /**
   * PartLabel create
   */
  export type PartLabelCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * The data needed to create a PartLabel.
     */
    data: XOR<PartLabelCreateInput, PartLabelUncheckedCreateInput>
  }

  /**
   * PartLabel createMany
   */
  export type PartLabelCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PartLabels.
     */
    data: PartLabelCreateManyInput | PartLabelCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PartLabel createManyAndReturn
   */
  export type PartLabelCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * The data used to create many PartLabels.
     */
    data: PartLabelCreateManyInput | PartLabelCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PartLabel update
   */
  export type PartLabelUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * The data needed to update a PartLabel.
     */
    data: XOR<PartLabelUpdateInput, PartLabelUncheckedUpdateInput>
    /**
     * Choose, which PartLabel to update.
     */
    where: PartLabelWhereUniqueInput
  }

  /**
   * PartLabel updateMany
   */
  export type PartLabelUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PartLabels.
     */
    data: XOR<PartLabelUpdateManyMutationInput, PartLabelUncheckedUpdateManyInput>
    /**
     * Filter which PartLabels to update
     */
    where?: PartLabelWhereInput
    /**
     * Limit how many PartLabels to update.
     */
    limit?: number
  }

  /**
   * PartLabel updateManyAndReturn
   */
  export type PartLabelUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * The data used to update PartLabels.
     */
    data: XOR<PartLabelUpdateManyMutationInput, PartLabelUncheckedUpdateManyInput>
    /**
     * Filter which PartLabels to update
     */
    where?: PartLabelWhereInput
    /**
     * Limit how many PartLabels to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PartLabel upsert
   */
  export type PartLabelUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * The filter to search for the PartLabel to update in case it exists.
     */
    where: PartLabelWhereUniqueInput
    /**
     * In case the PartLabel found by the `where` argument doesn't exist, create a new PartLabel with this data.
     */
    create: XOR<PartLabelCreateInput, PartLabelUncheckedCreateInput>
    /**
     * In case the PartLabel was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PartLabelUpdateInput, PartLabelUncheckedUpdateInput>
  }

  /**
   * PartLabel delete
   */
  export type PartLabelDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
    /**
     * Filter which PartLabel to delete.
     */
    where: PartLabelWhereUniqueInput
  }

  /**
   * PartLabel deleteMany
   */
  export type PartLabelDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartLabels to delete
     */
    where?: PartLabelWhereInput
    /**
     * Limit how many PartLabels to delete.
     */
    limit?: number
  }

  /**
   * PartLabel without action
   */
  export type PartLabelDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartLabel
     */
    select?: PartLabelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartLabel
     */
    omit?: PartLabelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartLabelInclude<ExtArgs> | null
  }


  /**
   * Model InventoryLog
   */

  export type AggregateInventoryLog = {
    _count: InventoryLogCountAggregateOutputType | null
    _avg: InventoryLogAvgAggregateOutputType | null
    _sum: InventoryLogSumAggregateOutputType | null
    _min: InventoryLogMinAggregateOutputType | null
    _max: InventoryLogMaxAggregateOutputType | null
  }

  export type InventoryLogAvgAggregateOutputType = {
    quantity: number | null
    previousStock: number | null
    newStock: number | null
  }

  export type InventoryLogSumAggregateOutputType = {
    quantity: number | null
    previousStock: number | null
    newStock: number | null
  }

  export type InventoryLogMinAggregateOutputType = {
    id: string | null
    partId: string | null
    operationType: $Enums.InventoryOperationType | null
    quantity: number | null
    previousStock: number | null
    newStock: number | null
    station: string | null
    warehouseLocation: string | null
    reason: string | null
    referenceType: string | null
    referenceId: string | null
    operatorId: string | null
    operatorName: string | null
    scannedCode: string | null
    createdAt: Date | null
  }

  export type InventoryLogMaxAggregateOutputType = {
    id: string | null
    partId: string | null
    operationType: $Enums.InventoryOperationType | null
    quantity: number | null
    previousStock: number | null
    newStock: number | null
    station: string | null
    warehouseLocation: string | null
    reason: string | null
    referenceType: string | null
    referenceId: string | null
    operatorId: string | null
    operatorName: string | null
    scannedCode: string | null
    createdAt: Date | null
  }

  export type InventoryLogCountAggregateOutputType = {
    id: number
    partId: number
    operationType: number
    quantity: number
    previousStock: number
    newStock: number
    station: number
    warehouseLocation: number
    reason: number
    referenceType: number
    referenceId: number
    operatorId: number
    operatorName: number
    scannedCode: number
    deviceInfo: number
    metadata: number
    createdAt: number
    _all: number
  }


  export type InventoryLogAvgAggregateInputType = {
    quantity?: true
    previousStock?: true
    newStock?: true
  }

  export type InventoryLogSumAggregateInputType = {
    quantity?: true
    previousStock?: true
    newStock?: true
  }

  export type InventoryLogMinAggregateInputType = {
    id?: true
    partId?: true
    operationType?: true
    quantity?: true
    previousStock?: true
    newStock?: true
    station?: true
    warehouseLocation?: true
    reason?: true
    referenceType?: true
    referenceId?: true
    operatorId?: true
    operatorName?: true
    scannedCode?: true
    createdAt?: true
  }

  export type InventoryLogMaxAggregateInputType = {
    id?: true
    partId?: true
    operationType?: true
    quantity?: true
    previousStock?: true
    newStock?: true
    station?: true
    warehouseLocation?: true
    reason?: true
    referenceType?: true
    referenceId?: true
    operatorId?: true
    operatorName?: true
    scannedCode?: true
    createdAt?: true
  }

  export type InventoryLogCountAggregateInputType = {
    id?: true
    partId?: true
    operationType?: true
    quantity?: true
    previousStock?: true
    newStock?: true
    station?: true
    warehouseLocation?: true
    reason?: true
    referenceType?: true
    referenceId?: true
    operatorId?: true
    operatorName?: true
    scannedCode?: true
    deviceInfo?: true
    metadata?: true
    createdAt?: true
    _all?: true
  }

  export type InventoryLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InventoryLog to aggregate.
     */
    where?: InventoryLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InventoryLogs to fetch.
     */
    orderBy?: InventoryLogOrderByWithRelationInput | InventoryLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: InventoryLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InventoryLogs 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` InventoryLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned InventoryLogs
    **/
    _count?: true | InventoryLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: InventoryLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: InventoryLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: InventoryLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: InventoryLogMaxAggregateInputType
  }

  export type GetInventoryLogAggregateType<T extends InventoryLogAggregateArgs> = {
        [P in keyof T & keyof AggregateInventoryLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateInventoryLog[P]>
      : GetScalarType<T[P], AggregateInventoryLog[P]>
  }




  export type InventoryLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InventoryLogWhereInput
    orderBy?: InventoryLogOrderByWithAggregationInput | InventoryLogOrderByWithAggregationInput[]
    by: InventoryLogScalarFieldEnum[] | InventoryLogScalarFieldEnum
    having?: InventoryLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: InventoryLogCountAggregateInputType | true
    _avg?: InventoryLogAvgAggregateInputType
    _sum?: InventoryLogSumAggregateInputType
    _min?: InventoryLogMinAggregateInputType
    _max?: InventoryLogMaxAggregateInputType
  }

  export type InventoryLogGroupByOutputType = {
    id: string
    partId: string
    operationType: $Enums.InventoryOperationType
    quantity: number
    previousStock: number
    newStock: number
    station: string | null
    warehouseLocation: string | null
    reason: string | null
    referenceType: string | null
    referenceId: string | null
    operatorId: string
    operatorName: string
    scannedCode: string | null
    deviceInfo: JsonValue | null
    metadata: JsonValue
    createdAt: Date
    _count: InventoryLogCountAggregateOutputType | null
    _avg: InventoryLogAvgAggregateOutputType | null
    _sum: InventoryLogSumAggregateOutputType | null
    _min: InventoryLogMinAggregateOutputType | null
    _max: InventoryLogMaxAggregateOutputType | null
  }

  type GetInventoryLogGroupByPayload<T extends InventoryLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<InventoryLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof InventoryLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], InventoryLogGroupByOutputType[P]>
            : GetScalarType<T[P], InventoryLogGroupByOutputType[P]>
        }
      >
    >


  export type InventoryLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    operationType?: boolean
    quantity?: boolean
    previousStock?: boolean
    newStock?: boolean
    station?: boolean
    warehouseLocation?: boolean
    reason?: boolean
    referenceType?: boolean
    referenceId?: boolean
    operatorId?: boolean
    operatorName?: boolean
    scannedCode?: boolean
    deviceInfo?: boolean
    metadata?: boolean
    createdAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["inventoryLog"]>

  export type InventoryLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    operationType?: boolean
    quantity?: boolean
    previousStock?: boolean
    newStock?: boolean
    station?: boolean
    warehouseLocation?: boolean
    reason?: boolean
    referenceType?: boolean
    referenceId?: boolean
    operatorId?: boolean
    operatorName?: boolean
    scannedCode?: boolean
    deviceInfo?: boolean
    metadata?: boolean
    createdAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["inventoryLog"]>

  export type InventoryLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    operationType?: boolean
    quantity?: boolean
    previousStock?: boolean
    newStock?: boolean
    station?: boolean
    warehouseLocation?: boolean
    reason?: boolean
    referenceType?: boolean
    referenceId?: boolean
    operatorId?: boolean
    operatorName?: boolean
    scannedCode?: boolean
    deviceInfo?: boolean
    metadata?: boolean
    createdAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["inventoryLog"]>

  export type InventoryLogSelectScalar = {
    id?: boolean
    partId?: boolean
    operationType?: boolean
    quantity?: boolean
    previousStock?: boolean
    newStock?: boolean
    station?: boolean
    warehouseLocation?: boolean
    reason?: boolean
    referenceType?: boolean
    referenceId?: boolean
    operatorId?: boolean
    operatorName?: boolean
    scannedCode?: boolean
    deviceInfo?: boolean
    metadata?: boolean
    createdAt?: boolean
  }

  export type InventoryLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "partId" | "operationType" | "quantity" | "previousStock" | "newStock" | "station" | "warehouseLocation" | "reason" | "referenceType" | "referenceId" | "operatorId" | "operatorName" | "scannedCode" | "deviceInfo" | "metadata" | "createdAt", ExtArgs["result"]["inventoryLog"]>
  export type InventoryLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }
  export type InventoryLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }
  export type InventoryLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }

  export type $InventoryLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "InventoryLog"
    objects: {
      part: Prisma.$PartPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      partId: string
      operationType: $Enums.InventoryOperationType
      quantity: number
      previousStock: number
      newStock: number
      station: string | null
      warehouseLocation: string | null
      reason: string | null
      referenceType: string | null
      referenceId: string | null
      operatorId: string
      operatorName: string
      scannedCode: string | null
      deviceInfo: Prisma.JsonValue | null
      metadata: Prisma.JsonValue
      createdAt: Date
    }, ExtArgs["result"]["inventoryLog"]>
    composites: {}
  }

  type InventoryLogGetPayload<S extends boolean | null | undefined | InventoryLogDefaultArgs> = $Result.GetResult<Prisma.$InventoryLogPayload, S>

  type InventoryLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<InventoryLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: InventoryLogCountAggregateInputType | true
    }

  export interface InventoryLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['InventoryLog'], meta: { name: 'InventoryLog' } }
    /**
     * Find zero or one InventoryLog that matches the filter.
     * @param {InventoryLogFindUniqueArgs} args - Arguments to find a InventoryLog
     * @example
     * // Get one InventoryLog
     * const inventoryLog = await prisma.inventoryLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends InventoryLogFindUniqueArgs>(args: SelectSubset<T, InventoryLogFindUniqueArgs<ExtArgs>>): Prisma__InventoryLogClient<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one InventoryLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {InventoryLogFindUniqueOrThrowArgs} args - Arguments to find a InventoryLog
     * @example
     * // Get one InventoryLog
     * const inventoryLog = await prisma.inventoryLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends InventoryLogFindUniqueOrThrowArgs>(args: SelectSubset<T, InventoryLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__InventoryLogClient<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InventoryLog 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 {InventoryLogFindFirstArgs} args - Arguments to find a InventoryLog
     * @example
     * // Get one InventoryLog
     * const inventoryLog = await prisma.inventoryLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends InventoryLogFindFirstArgs>(args?: SelectSubset<T, InventoryLogFindFirstArgs<ExtArgs>>): Prisma__InventoryLogClient<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InventoryLog 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 {InventoryLogFindFirstOrThrowArgs} args - Arguments to find a InventoryLog
     * @example
     * // Get one InventoryLog
     * const inventoryLog = await prisma.inventoryLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends InventoryLogFindFirstOrThrowArgs>(args?: SelectSubset<T, InventoryLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__InventoryLogClient<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more InventoryLogs 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 {InventoryLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all InventoryLogs
     * const inventoryLogs = await prisma.inventoryLog.findMany()
     * 
     * // Get first 10 InventoryLogs
     * const inventoryLogs = await prisma.inventoryLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const inventoryLogWithIdOnly = await prisma.inventoryLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends InventoryLogFindManyArgs>(args?: SelectSubset<T, InventoryLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a InventoryLog.
     * @param {InventoryLogCreateArgs} args - Arguments to create a InventoryLog.
     * @example
     * // Create one InventoryLog
     * const InventoryLog = await prisma.inventoryLog.create({
     *   data: {
     *     // ... data to create a InventoryLog
     *   }
     * })
     * 
     */
    create<T extends InventoryLogCreateArgs>(args: SelectSubset<T, InventoryLogCreateArgs<ExtArgs>>): Prisma__InventoryLogClient<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many InventoryLogs.
     * @param {InventoryLogCreateManyArgs} args - Arguments to create many InventoryLogs.
     * @example
     * // Create many InventoryLogs
     * const inventoryLog = await prisma.inventoryLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends InventoryLogCreateManyArgs>(args?: SelectSubset<T, InventoryLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many InventoryLogs and returns the data saved in the database.
     * @param {InventoryLogCreateManyAndReturnArgs} args - Arguments to create many InventoryLogs.
     * @example
     * // Create many InventoryLogs
     * const inventoryLog = await prisma.inventoryLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many InventoryLogs and only return the `id`
     * const inventoryLogWithIdOnly = await prisma.inventoryLog.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 InventoryLogCreateManyAndReturnArgs>(args?: SelectSubset<T, InventoryLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a InventoryLog.
     * @param {InventoryLogDeleteArgs} args - Arguments to delete one InventoryLog.
     * @example
     * // Delete one InventoryLog
     * const InventoryLog = await prisma.inventoryLog.delete({
     *   where: {
     *     // ... filter to delete one InventoryLog
     *   }
     * })
     * 
     */
    delete<T extends InventoryLogDeleteArgs>(args: SelectSubset<T, InventoryLogDeleteArgs<ExtArgs>>): Prisma__InventoryLogClient<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one InventoryLog.
     * @param {InventoryLogUpdateArgs} args - Arguments to update one InventoryLog.
     * @example
     * // Update one InventoryLog
     * const inventoryLog = await prisma.inventoryLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends InventoryLogUpdateArgs>(args: SelectSubset<T, InventoryLogUpdateArgs<ExtArgs>>): Prisma__InventoryLogClient<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more InventoryLogs.
     * @param {InventoryLogDeleteManyArgs} args - Arguments to filter InventoryLogs to delete.
     * @example
     * // Delete a few InventoryLogs
     * const { count } = await prisma.inventoryLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends InventoryLogDeleteManyArgs>(args?: SelectSubset<T, InventoryLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InventoryLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InventoryLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many InventoryLogs
     * const inventoryLog = await prisma.inventoryLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends InventoryLogUpdateManyArgs>(args: SelectSubset<T, InventoryLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InventoryLogs and returns the data updated in the database.
     * @param {InventoryLogUpdateManyAndReturnArgs} args - Arguments to update many InventoryLogs.
     * @example
     * // Update many InventoryLogs
     * const inventoryLog = await prisma.inventoryLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more InventoryLogs and only return the `id`
     * const inventoryLogWithIdOnly = await prisma.inventoryLog.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 InventoryLogUpdateManyAndReturnArgs>(args: SelectSubset<T, InventoryLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one InventoryLog.
     * @param {InventoryLogUpsertArgs} args - Arguments to update or create a InventoryLog.
     * @example
     * // Update or create a InventoryLog
     * const inventoryLog = await prisma.inventoryLog.upsert({
     *   create: {
     *     // ... data to create a InventoryLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the InventoryLog we want to update
     *   }
     * })
     */
    upsert<T extends InventoryLogUpsertArgs>(args: SelectSubset<T, InventoryLogUpsertArgs<ExtArgs>>): Prisma__InventoryLogClient<$Result.GetResult<Prisma.$InventoryLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of InventoryLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InventoryLogCountArgs} args - Arguments to filter InventoryLogs to count.
     * @example
     * // Count the number of InventoryLogs
     * const count = await prisma.inventoryLog.count({
     *   where: {
     *     // ... the filter for the InventoryLogs we want to count
     *   }
     * })
    **/
    count<T extends InventoryLogCountArgs>(
      args?: Subset<T, InventoryLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], InventoryLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a InventoryLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InventoryLogAggregateArgs} 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 InventoryLogAggregateArgs>(args: Subset<T, InventoryLogAggregateArgs>): Prisma.PrismaPromise<GetInventoryLogAggregateType<T>>

    /**
     * Group by InventoryLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InventoryLogGroupByArgs} 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 InventoryLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: InventoryLogGroupByArgs['orderBy'] }
        : { orderBy?: InventoryLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, InventoryLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetInventoryLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the InventoryLog model
   */
  readonly fields: InventoryLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for InventoryLog.
   * 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__InventoryLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    part<T extends PartDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PartDefaultArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the InventoryLog model
   */
  interface InventoryLogFieldRefs {
    readonly id: FieldRef<"InventoryLog", 'String'>
    readonly partId: FieldRef<"InventoryLog", 'String'>
    readonly operationType: FieldRef<"InventoryLog", 'InventoryOperationType'>
    readonly quantity: FieldRef<"InventoryLog", 'Int'>
    readonly previousStock: FieldRef<"InventoryLog", 'Int'>
    readonly newStock: FieldRef<"InventoryLog", 'Int'>
    readonly station: FieldRef<"InventoryLog", 'String'>
    readonly warehouseLocation: FieldRef<"InventoryLog", 'String'>
    readonly reason: FieldRef<"InventoryLog", 'String'>
    readonly referenceType: FieldRef<"InventoryLog", 'String'>
    readonly referenceId: FieldRef<"InventoryLog", 'String'>
    readonly operatorId: FieldRef<"InventoryLog", 'String'>
    readonly operatorName: FieldRef<"InventoryLog", 'String'>
    readonly scannedCode: FieldRef<"InventoryLog", 'String'>
    readonly deviceInfo: FieldRef<"InventoryLog", 'Json'>
    readonly metadata: FieldRef<"InventoryLog", 'Json'>
    readonly createdAt: FieldRef<"InventoryLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * InventoryLog findUnique
   */
  export type InventoryLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * Filter, which InventoryLog to fetch.
     */
    where: InventoryLogWhereUniqueInput
  }

  /**
   * InventoryLog findUniqueOrThrow
   */
  export type InventoryLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * Filter, which InventoryLog to fetch.
     */
    where: InventoryLogWhereUniqueInput
  }

  /**
   * InventoryLog findFirst
   */
  export type InventoryLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * Filter, which InventoryLog to fetch.
     */
    where?: InventoryLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InventoryLogs to fetch.
     */
    orderBy?: InventoryLogOrderByWithRelationInput | InventoryLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InventoryLogs.
     */
    cursor?: InventoryLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InventoryLogs 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` InventoryLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InventoryLogs.
     */
    distinct?: InventoryLogScalarFieldEnum | InventoryLogScalarFieldEnum[]
  }

  /**
   * InventoryLog findFirstOrThrow
   */
  export type InventoryLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * Filter, which InventoryLog to fetch.
     */
    where?: InventoryLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InventoryLogs to fetch.
     */
    orderBy?: InventoryLogOrderByWithRelationInput | InventoryLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InventoryLogs.
     */
    cursor?: InventoryLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InventoryLogs 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` InventoryLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InventoryLogs.
     */
    distinct?: InventoryLogScalarFieldEnum | InventoryLogScalarFieldEnum[]
  }

  /**
   * InventoryLog findMany
   */
  export type InventoryLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * Filter, which InventoryLogs to fetch.
     */
    where?: InventoryLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InventoryLogs to fetch.
     */
    orderBy?: InventoryLogOrderByWithRelationInput | InventoryLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing InventoryLogs.
     */
    cursor?: InventoryLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InventoryLogs 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` InventoryLogs.
     */
    skip?: number
    distinct?: InventoryLogScalarFieldEnum | InventoryLogScalarFieldEnum[]
  }

  /**
   * InventoryLog create
   */
  export type InventoryLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * The data needed to create a InventoryLog.
     */
    data: XOR<InventoryLogCreateInput, InventoryLogUncheckedCreateInput>
  }

  /**
   * InventoryLog createMany
   */
  export type InventoryLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many InventoryLogs.
     */
    data: InventoryLogCreateManyInput | InventoryLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InventoryLog createManyAndReturn
   */
  export type InventoryLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * The data used to create many InventoryLogs.
     */
    data: InventoryLogCreateManyInput | InventoryLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * InventoryLog update
   */
  export type InventoryLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * The data needed to update a InventoryLog.
     */
    data: XOR<InventoryLogUpdateInput, InventoryLogUncheckedUpdateInput>
    /**
     * Choose, which InventoryLog to update.
     */
    where: InventoryLogWhereUniqueInput
  }

  /**
   * InventoryLog updateMany
   */
  export type InventoryLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update InventoryLogs.
     */
    data: XOR<InventoryLogUpdateManyMutationInput, InventoryLogUncheckedUpdateManyInput>
    /**
     * Filter which InventoryLogs to update
     */
    where?: InventoryLogWhereInput
    /**
     * Limit how many InventoryLogs to update.
     */
    limit?: number
  }

  /**
   * InventoryLog updateManyAndReturn
   */
  export type InventoryLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * The data used to update InventoryLogs.
     */
    data: XOR<InventoryLogUpdateManyMutationInput, InventoryLogUncheckedUpdateManyInput>
    /**
     * Filter which InventoryLogs to update
     */
    where?: InventoryLogWhereInput
    /**
     * Limit how many InventoryLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * InventoryLog upsert
   */
  export type InventoryLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * The filter to search for the InventoryLog to update in case it exists.
     */
    where: InventoryLogWhereUniqueInput
    /**
     * In case the InventoryLog found by the `where` argument doesn't exist, create a new InventoryLog with this data.
     */
    create: XOR<InventoryLogCreateInput, InventoryLogUncheckedCreateInput>
    /**
     * In case the InventoryLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<InventoryLogUpdateInput, InventoryLogUncheckedUpdateInput>
  }

  /**
   * InventoryLog delete
   */
  export type InventoryLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
    /**
     * Filter which InventoryLog to delete.
     */
    where: InventoryLogWhereUniqueInput
  }

  /**
   * InventoryLog deleteMany
   */
  export type InventoryLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InventoryLogs to delete
     */
    where?: InventoryLogWhereInput
    /**
     * Limit how many InventoryLogs to delete.
     */
    limit?: number
  }

  /**
   * InventoryLog without action
   */
  export type InventoryLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryLog
     */
    select?: InventoryLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryLog
     */
    omit?: InventoryLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InventoryLogInclude<ExtArgs> | null
  }


  /**
   * Model StockAlert
   */

  export type AggregateStockAlert = {
    _count: StockAlertCountAggregateOutputType | null
    _avg: StockAlertAvgAggregateOutputType | null
    _sum: StockAlertSumAggregateOutputType | null
    _min: StockAlertMinAggregateOutputType | null
    _max: StockAlertMaxAggregateOutputType | null
  }

  export type StockAlertAvgAggregateOutputType = {
    currentStock: number | null
    threshold: number | null
  }

  export type StockAlertSumAggregateOutputType = {
    currentStock: number | null
    threshold: number | null
  }

  export type StockAlertMinAggregateOutputType = {
    id: string | null
    partId: string | null
    alertType: $Enums.StockAlertType | null
    severity: $Enums.AlertSeverity | null
    currentStock: number | null
    threshold: number | null
    message: string | null
    status: $Enums.AlertStatus | null
    acknowledgedBy: string | null
    acknowledgedAt: Date | null
    resolvedBy: string | null
    resolvedAt: Date | null
    resolution: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type StockAlertMaxAggregateOutputType = {
    id: string | null
    partId: string | null
    alertType: $Enums.StockAlertType | null
    severity: $Enums.AlertSeverity | null
    currentStock: number | null
    threshold: number | null
    message: string | null
    status: $Enums.AlertStatus | null
    acknowledgedBy: string | null
    acknowledgedAt: Date | null
    resolvedBy: string | null
    resolvedAt: Date | null
    resolution: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type StockAlertCountAggregateOutputType = {
    id: number
    partId: number
    alertType: number
    severity: number
    currentStock: number
    threshold: number
    message: number
    status: number
    acknowledgedBy: number
    acknowledgedAt: number
    resolvedBy: number
    resolvedAt: number
    resolution: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type StockAlertAvgAggregateInputType = {
    currentStock?: true
    threshold?: true
  }

  export type StockAlertSumAggregateInputType = {
    currentStock?: true
    threshold?: true
  }

  export type StockAlertMinAggregateInputType = {
    id?: true
    partId?: true
    alertType?: true
    severity?: true
    currentStock?: true
    threshold?: true
    message?: true
    status?: true
    acknowledgedBy?: true
    acknowledgedAt?: true
    resolvedBy?: true
    resolvedAt?: true
    resolution?: true
    createdAt?: true
    updatedAt?: true
  }

  export type StockAlertMaxAggregateInputType = {
    id?: true
    partId?: true
    alertType?: true
    severity?: true
    currentStock?: true
    threshold?: true
    message?: true
    status?: true
    acknowledgedBy?: true
    acknowledgedAt?: true
    resolvedBy?: true
    resolvedAt?: true
    resolution?: true
    createdAt?: true
    updatedAt?: true
  }

  export type StockAlertCountAggregateInputType = {
    id?: true
    partId?: true
    alertType?: true
    severity?: true
    currentStock?: true
    threshold?: true
    message?: true
    status?: true
    acknowledgedBy?: true
    acknowledgedAt?: true
    resolvedBy?: true
    resolvedAt?: true
    resolution?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type StockAlertAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StockAlert to aggregate.
     */
    where?: StockAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StockAlerts to fetch.
     */
    orderBy?: StockAlertOrderByWithRelationInput | StockAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: StockAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StockAlerts 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` StockAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned StockAlerts
    **/
    _count?: true | StockAlertCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: StockAlertAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: StockAlertSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: StockAlertMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: StockAlertMaxAggregateInputType
  }

  export type GetStockAlertAggregateType<T extends StockAlertAggregateArgs> = {
        [P in keyof T & keyof AggregateStockAlert]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateStockAlert[P]>
      : GetScalarType<T[P], AggregateStockAlert[P]>
  }




  export type StockAlertGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StockAlertWhereInput
    orderBy?: StockAlertOrderByWithAggregationInput | StockAlertOrderByWithAggregationInput[]
    by: StockAlertScalarFieldEnum[] | StockAlertScalarFieldEnum
    having?: StockAlertScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: StockAlertCountAggregateInputType | true
    _avg?: StockAlertAvgAggregateInputType
    _sum?: StockAlertSumAggregateInputType
    _min?: StockAlertMinAggregateInputType
    _max?: StockAlertMaxAggregateInputType
  }

  export type StockAlertGroupByOutputType = {
    id: string
    partId: string
    alertType: $Enums.StockAlertType
    severity: $Enums.AlertSeverity
    currentStock: number
    threshold: number
    message: string
    status: $Enums.AlertStatus
    acknowledgedBy: string | null
    acknowledgedAt: Date | null
    resolvedBy: string | null
    resolvedAt: Date | null
    resolution: string | null
    createdAt: Date
    updatedAt: Date
    _count: StockAlertCountAggregateOutputType | null
    _avg: StockAlertAvgAggregateOutputType | null
    _sum: StockAlertSumAggregateOutputType | null
    _min: StockAlertMinAggregateOutputType | null
    _max: StockAlertMaxAggregateOutputType | null
  }

  type GetStockAlertGroupByPayload<T extends StockAlertGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<StockAlertGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof StockAlertGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], StockAlertGroupByOutputType[P]>
            : GetScalarType<T[P], StockAlertGroupByOutputType[P]>
        }
      >
    >


  export type StockAlertSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    alertType?: boolean
    severity?: boolean
    currentStock?: boolean
    threshold?: boolean
    message?: boolean
    status?: boolean
    acknowledgedBy?: boolean
    acknowledgedAt?: boolean
    resolvedBy?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["stockAlert"]>

  export type StockAlertSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    alertType?: boolean
    severity?: boolean
    currentStock?: boolean
    threshold?: boolean
    message?: boolean
    status?: boolean
    acknowledgedBy?: boolean
    acknowledgedAt?: boolean
    resolvedBy?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["stockAlert"]>

  export type StockAlertSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partId?: boolean
    alertType?: boolean
    severity?: boolean
    currentStock?: boolean
    threshold?: boolean
    message?: boolean
    status?: boolean
    acknowledgedBy?: boolean
    acknowledgedAt?: boolean
    resolvedBy?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["stockAlert"]>

  export type StockAlertSelectScalar = {
    id?: boolean
    partId?: boolean
    alertType?: boolean
    severity?: boolean
    currentStock?: boolean
    threshold?: boolean
    message?: boolean
    status?: boolean
    acknowledgedBy?: boolean
    acknowledgedAt?: boolean
    resolvedBy?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type StockAlertOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "partId" | "alertType" | "severity" | "currentStock" | "threshold" | "message" | "status" | "acknowledgedBy" | "acknowledgedAt" | "resolvedBy" | "resolvedAt" | "resolution" | "createdAt" | "updatedAt", ExtArgs["result"]["stockAlert"]>
  export type StockAlertInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }
  export type StockAlertIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }
  export type StockAlertIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    part?: boolean | PartDefaultArgs<ExtArgs>
  }

  export type $StockAlertPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "StockAlert"
    objects: {
      part: Prisma.$PartPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      partId: string
      alertType: $Enums.StockAlertType
      severity: $Enums.AlertSeverity
      currentStock: number
      threshold: number
      message: string
      status: $Enums.AlertStatus
      acknowledgedBy: string | null
      acknowledgedAt: Date | null
      resolvedBy: string | null
      resolvedAt: Date | null
      resolution: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["stockAlert"]>
    composites: {}
  }

  type StockAlertGetPayload<S extends boolean | null | undefined | StockAlertDefaultArgs> = $Result.GetResult<Prisma.$StockAlertPayload, S>

  type StockAlertCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<StockAlertFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: StockAlertCountAggregateInputType | true
    }

  export interface StockAlertDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['StockAlert'], meta: { name: 'StockAlert' } }
    /**
     * Find zero or one StockAlert that matches the filter.
     * @param {StockAlertFindUniqueArgs} args - Arguments to find a StockAlert
     * @example
     * // Get one StockAlert
     * const stockAlert = await prisma.stockAlert.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends StockAlertFindUniqueArgs>(args: SelectSubset<T, StockAlertFindUniqueArgs<ExtArgs>>): Prisma__StockAlertClient<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one StockAlert that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {StockAlertFindUniqueOrThrowArgs} args - Arguments to find a StockAlert
     * @example
     * // Get one StockAlert
     * const stockAlert = await prisma.stockAlert.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends StockAlertFindUniqueOrThrowArgs>(args: SelectSubset<T, StockAlertFindUniqueOrThrowArgs<ExtArgs>>): Prisma__StockAlertClient<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StockAlert 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 {StockAlertFindFirstArgs} args - Arguments to find a StockAlert
     * @example
     * // Get one StockAlert
     * const stockAlert = await prisma.stockAlert.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends StockAlertFindFirstArgs>(args?: SelectSubset<T, StockAlertFindFirstArgs<ExtArgs>>): Prisma__StockAlertClient<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StockAlert 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 {StockAlertFindFirstOrThrowArgs} args - Arguments to find a StockAlert
     * @example
     * // Get one StockAlert
     * const stockAlert = await prisma.stockAlert.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends StockAlertFindFirstOrThrowArgs>(args?: SelectSubset<T, StockAlertFindFirstOrThrowArgs<ExtArgs>>): Prisma__StockAlertClient<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more StockAlerts 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 {StockAlertFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all StockAlerts
     * const stockAlerts = await prisma.stockAlert.findMany()
     * 
     * // Get first 10 StockAlerts
     * const stockAlerts = await prisma.stockAlert.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const stockAlertWithIdOnly = await prisma.stockAlert.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends StockAlertFindManyArgs>(args?: SelectSubset<T, StockAlertFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a StockAlert.
     * @param {StockAlertCreateArgs} args - Arguments to create a StockAlert.
     * @example
     * // Create one StockAlert
     * const StockAlert = await prisma.stockAlert.create({
     *   data: {
     *     // ... data to create a StockAlert
     *   }
     * })
     * 
     */
    create<T extends StockAlertCreateArgs>(args: SelectSubset<T, StockAlertCreateArgs<ExtArgs>>): Prisma__StockAlertClient<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many StockAlerts.
     * @param {StockAlertCreateManyArgs} args - Arguments to create many StockAlerts.
     * @example
     * // Create many StockAlerts
     * const stockAlert = await prisma.stockAlert.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends StockAlertCreateManyArgs>(args?: SelectSubset<T, StockAlertCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many StockAlerts and returns the data saved in the database.
     * @param {StockAlertCreateManyAndReturnArgs} args - Arguments to create many StockAlerts.
     * @example
     * // Create many StockAlerts
     * const stockAlert = await prisma.stockAlert.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many StockAlerts and only return the `id`
     * const stockAlertWithIdOnly = await prisma.stockAlert.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 StockAlertCreateManyAndReturnArgs>(args?: SelectSubset<T, StockAlertCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a StockAlert.
     * @param {StockAlertDeleteArgs} args - Arguments to delete one StockAlert.
     * @example
     * // Delete one StockAlert
     * const StockAlert = await prisma.stockAlert.delete({
     *   where: {
     *     // ... filter to delete one StockAlert
     *   }
     * })
     * 
     */
    delete<T extends StockAlertDeleteArgs>(args: SelectSubset<T, StockAlertDeleteArgs<ExtArgs>>): Prisma__StockAlertClient<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one StockAlert.
     * @param {StockAlertUpdateArgs} args - Arguments to update one StockAlert.
     * @example
     * // Update one StockAlert
     * const stockAlert = await prisma.stockAlert.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends StockAlertUpdateArgs>(args: SelectSubset<T, StockAlertUpdateArgs<ExtArgs>>): Prisma__StockAlertClient<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more StockAlerts.
     * @param {StockAlertDeleteManyArgs} args - Arguments to filter StockAlerts to delete.
     * @example
     * // Delete a few StockAlerts
     * const { count } = await prisma.stockAlert.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends StockAlertDeleteManyArgs>(args?: SelectSubset<T, StockAlertDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StockAlerts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StockAlertUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many StockAlerts
     * const stockAlert = await prisma.stockAlert.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends StockAlertUpdateManyArgs>(args: SelectSubset<T, StockAlertUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StockAlerts and returns the data updated in the database.
     * @param {StockAlertUpdateManyAndReturnArgs} args - Arguments to update many StockAlerts.
     * @example
     * // Update many StockAlerts
     * const stockAlert = await prisma.stockAlert.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more StockAlerts and only return the `id`
     * const stockAlertWithIdOnly = await prisma.stockAlert.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 StockAlertUpdateManyAndReturnArgs>(args: SelectSubset<T, StockAlertUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one StockAlert.
     * @param {StockAlertUpsertArgs} args - Arguments to update or create a StockAlert.
     * @example
     * // Update or create a StockAlert
     * const stockAlert = await prisma.stockAlert.upsert({
     *   create: {
     *     // ... data to create a StockAlert
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the StockAlert we want to update
     *   }
     * })
     */
    upsert<T extends StockAlertUpsertArgs>(args: SelectSubset<T, StockAlertUpsertArgs<ExtArgs>>): Prisma__StockAlertClient<$Result.GetResult<Prisma.$StockAlertPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of StockAlerts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StockAlertCountArgs} args - Arguments to filter StockAlerts to count.
     * @example
     * // Count the number of StockAlerts
     * const count = await prisma.stockAlert.count({
     *   where: {
     *     // ... the filter for the StockAlerts we want to count
     *   }
     * })
    **/
    count<T extends StockAlertCountArgs>(
      args?: Subset<T, StockAlertCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], StockAlertCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a StockAlert.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StockAlertAggregateArgs} 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 StockAlertAggregateArgs>(args: Subset<T, StockAlertAggregateArgs>): Prisma.PrismaPromise<GetStockAlertAggregateType<T>>

    /**
     * Group by StockAlert.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StockAlertGroupByArgs} 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 StockAlertGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: StockAlertGroupByArgs['orderBy'] }
        : { orderBy?: StockAlertGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, StockAlertGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetStockAlertGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the StockAlert model
   */
  readonly fields: StockAlertFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for StockAlert.
   * 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__StockAlertClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    part<T extends PartDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PartDefaultArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the StockAlert model
   */
  interface StockAlertFieldRefs {
    readonly id: FieldRef<"StockAlert", 'String'>
    readonly partId: FieldRef<"StockAlert", 'String'>
    readonly alertType: FieldRef<"StockAlert", 'StockAlertType'>
    readonly severity: FieldRef<"StockAlert", 'AlertSeverity'>
    readonly currentStock: FieldRef<"StockAlert", 'Int'>
    readonly threshold: FieldRef<"StockAlert", 'Int'>
    readonly message: FieldRef<"StockAlert", 'String'>
    readonly status: FieldRef<"StockAlert", 'AlertStatus'>
    readonly acknowledgedBy: FieldRef<"StockAlert", 'String'>
    readonly acknowledgedAt: FieldRef<"StockAlert", 'DateTime'>
    readonly resolvedBy: FieldRef<"StockAlert", 'String'>
    readonly resolvedAt: FieldRef<"StockAlert", 'DateTime'>
    readonly resolution: FieldRef<"StockAlert", 'String'>
    readonly createdAt: FieldRef<"StockAlert", 'DateTime'>
    readonly updatedAt: FieldRef<"StockAlert", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * StockAlert findUnique
   */
  export type StockAlertFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * Filter, which StockAlert to fetch.
     */
    where: StockAlertWhereUniqueInput
  }

  /**
   * StockAlert findUniqueOrThrow
   */
  export type StockAlertFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * Filter, which StockAlert to fetch.
     */
    where: StockAlertWhereUniqueInput
  }

  /**
   * StockAlert findFirst
   */
  export type StockAlertFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * Filter, which StockAlert to fetch.
     */
    where?: StockAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StockAlerts to fetch.
     */
    orderBy?: StockAlertOrderByWithRelationInput | StockAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StockAlerts.
     */
    cursor?: StockAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StockAlerts 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` StockAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StockAlerts.
     */
    distinct?: StockAlertScalarFieldEnum | StockAlertScalarFieldEnum[]
  }

  /**
   * StockAlert findFirstOrThrow
   */
  export type StockAlertFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * Filter, which StockAlert to fetch.
     */
    where?: StockAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StockAlerts to fetch.
     */
    orderBy?: StockAlertOrderByWithRelationInput | StockAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StockAlerts.
     */
    cursor?: StockAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StockAlerts 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` StockAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StockAlerts.
     */
    distinct?: StockAlertScalarFieldEnum | StockAlertScalarFieldEnum[]
  }

  /**
   * StockAlert findMany
   */
  export type StockAlertFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * Filter, which StockAlerts to fetch.
     */
    where?: StockAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StockAlerts to fetch.
     */
    orderBy?: StockAlertOrderByWithRelationInput | StockAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing StockAlerts.
     */
    cursor?: StockAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StockAlerts 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` StockAlerts.
     */
    skip?: number
    distinct?: StockAlertScalarFieldEnum | StockAlertScalarFieldEnum[]
  }

  /**
   * StockAlert create
   */
  export type StockAlertCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * The data needed to create a StockAlert.
     */
    data: XOR<StockAlertCreateInput, StockAlertUncheckedCreateInput>
  }

  /**
   * StockAlert createMany
   */
  export type StockAlertCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many StockAlerts.
     */
    data: StockAlertCreateManyInput | StockAlertCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * StockAlert createManyAndReturn
   */
  export type StockAlertCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * The data used to create many StockAlerts.
     */
    data: StockAlertCreateManyInput | StockAlertCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * StockAlert update
   */
  export type StockAlertUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * The data needed to update a StockAlert.
     */
    data: XOR<StockAlertUpdateInput, StockAlertUncheckedUpdateInput>
    /**
     * Choose, which StockAlert to update.
     */
    where: StockAlertWhereUniqueInput
  }

  /**
   * StockAlert updateMany
   */
  export type StockAlertUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update StockAlerts.
     */
    data: XOR<StockAlertUpdateManyMutationInput, StockAlertUncheckedUpdateManyInput>
    /**
     * Filter which StockAlerts to update
     */
    where?: StockAlertWhereInput
    /**
     * Limit how many StockAlerts to update.
     */
    limit?: number
  }

  /**
   * StockAlert updateManyAndReturn
   */
  export type StockAlertUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * The data used to update StockAlerts.
     */
    data: XOR<StockAlertUpdateManyMutationInput, StockAlertUncheckedUpdateManyInput>
    /**
     * Filter which StockAlerts to update
     */
    where?: StockAlertWhereInput
    /**
     * Limit how many StockAlerts to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * StockAlert upsert
   */
  export type StockAlertUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * The filter to search for the StockAlert to update in case it exists.
     */
    where: StockAlertWhereUniqueInput
    /**
     * In case the StockAlert found by the `where` argument doesn't exist, create a new StockAlert with this data.
     */
    create: XOR<StockAlertCreateInput, StockAlertUncheckedCreateInput>
    /**
     * In case the StockAlert was found with the provided `where` argument, update it with this data.
     */
    update: XOR<StockAlertUpdateInput, StockAlertUncheckedUpdateInput>
  }

  /**
   * StockAlert delete
   */
  export type StockAlertDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
    /**
     * Filter which StockAlert to delete.
     */
    where: StockAlertWhereUniqueInput
  }

  /**
   * StockAlert deleteMany
   */
  export type StockAlertDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StockAlerts to delete
     */
    where?: StockAlertWhereInput
    /**
     * Limit how many StockAlerts to delete.
     */
    limit?: number
  }

  /**
   * StockAlert without action
   */
  export type StockAlertDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StockAlert
     */
    select?: StockAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StockAlert
     */
    omit?: StockAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StockAlertInclude<ExtArgs> | null
  }


  /**
   * Model InventoryImportLog
   */

  export type AggregateInventoryImportLog = {
    _count: InventoryImportLogCountAggregateOutputType | null
    _avg: InventoryImportLogAvgAggregateOutputType | null
    _sum: InventoryImportLogSumAggregateOutputType | null
    _min: InventoryImportLogMinAggregateOutputType | null
    _max: InventoryImportLogMaxAggregateOutputType | null
  }

  export type InventoryImportLogAvgAggregateOutputType = {
    fileSize: number | null
    totalRows: number | null
    successRows: number | null
    failedRows: number | null
    skippedRows: number | null
  }

  export type InventoryImportLogSumAggregateOutputType = {
    fileSize: number | null
    totalRows: number | null
    successRows: number | null
    failedRows: number | null
    skippedRows: number | null
  }

  export type InventoryImportLogMinAggregateOutputType = {
    id: string | null
    fileName: string | null
    fileSize: number | null
    fileHash: string | null
    status: $Enums.ImportStatus | null
    totalRows: number | null
    successRows: number | null
    failedRows: number | null
    skippedRows: number | null
    importedBy: string | null
    importedAt: Date | null
    startedAt: Date | null
    completedAt: Date | null
  }

  export type InventoryImportLogMaxAggregateOutputType = {
    id: string | null
    fileName: string | null
    fileSize: number | null
    fileHash: string | null
    status: $Enums.ImportStatus | null
    totalRows: number | null
    successRows: number | null
    failedRows: number | null
    skippedRows: number | null
    importedBy: string | null
    importedAt: Date | null
    startedAt: Date | null
    completedAt: Date | null
  }

  export type InventoryImportLogCountAggregateOutputType = {
    id: number
    fileName: number
    fileSize: number
    fileHash: number
    status: number
    totalRows: number
    successRows: number
    failedRows: number
    skippedRows: number
    errors: number
    summary: number
    importedBy: number
    importedAt: number
    startedAt: number
    completedAt: number
    metadata: number
    _all: number
  }


  export type InventoryImportLogAvgAggregateInputType = {
    fileSize?: true
    totalRows?: true
    successRows?: true
    failedRows?: true
    skippedRows?: true
  }

  export type InventoryImportLogSumAggregateInputType = {
    fileSize?: true
    totalRows?: true
    successRows?: true
    failedRows?: true
    skippedRows?: true
  }

  export type InventoryImportLogMinAggregateInputType = {
    id?: true
    fileName?: true
    fileSize?: true
    fileHash?: true
    status?: true
    totalRows?: true
    successRows?: true
    failedRows?: true
    skippedRows?: true
    importedBy?: true
    importedAt?: true
    startedAt?: true
    completedAt?: true
  }

  export type InventoryImportLogMaxAggregateInputType = {
    id?: true
    fileName?: true
    fileSize?: true
    fileHash?: true
    status?: true
    totalRows?: true
    successRows?: true
    failedRows?: true
    skippedRows?: true
    importedBy?: true
    importedAt?: true
    startedAt?: true
    completedAt?: true
  }

  export type InventoryImportLogCountAggregateInputType = {
    id?: true
    fileName?: true
    fileSize?: true
    fileHash?: true
    status?: true
    totalRows?: true
    successRows?: true
    failedRows?: true
    skippedRows?: true
    errors?: true
    summary?: true
    importedBy?: true
    importedAt?: true
    startedAt?: true
    completedAt?: true
    metadata?: true
    _all?: true
  }

  export type InventoryImportLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InventoryImportLog to aggregate.
     */
    where?: InventoryImportLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InventoryImportLogs to fetch.
     */
    orderBy?: InventoryImportLogOrderByWithRelationInput | InventoryImportLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: InventoryImportLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InventoryImportLogs 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` InventoryImportLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned InventoryImportLogs
    **/
    _count?: true | InventoryImportLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: InventoryImportLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: InventoryImportLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: InventoryImportLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: InventoryImportLogMaxAggregateInputType
  }

  export type GetInventoryImportLogAggregateType<T extends InventoryImportLogAggregateArgs> = {
        [P in keyof T & keyof AggregateInventoryImportLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateInventoryImportLog[P]>
      : GetScalarType<T[P], AggregateInventoryImportLog[P]>
  }




  export type InventoryImportLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InventoryImportLogWhereInput
    orderBy?: InventoryImportLogOrderByWithAggregationInput | InventoryImportLogOrderByWithAggregationInput[]
    by: InventoryImportLogScalarFieldEnum[] | InventoryImportLogScalarFieldEnum
    having?: InventoryImportLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: InventoryImportLogCountAggregateInputType | true
    _avg?: InventoryImportLogAvgAggregateInputType
    _sum?: InventoryImportLogSumAggregateInputType
    _min?: InventoryImportLogMinAggregateInputType
    _max?: InventoryImportLogMaxAggregateInputType
  }

  export type InventoryImportLogGroupByOutputType = {
    id: string
    fileName: string
    fileSize: number
    fileHash: string | null
    status: $Enums.ImportStatus
    totalRows: number
    successRows: number
    failedRows: number
    skippedRows: number
    errors: JsonValue | null
    summary: JsonValue | null
    importedBy: string
    importedAt: Date
    startedAt: Date | null
    completedAt: Date | null
    metadata: JsonValue
    _count: InventoryImportLogCountAggregateOutputType | null
    _avg: InventoryImportLogAvgAggregateOutputType | null
    _sum: InventoryImportLogSumAggregateOutputType | null
    _min: InventoryImportLogMinAggregateOutputType | null
    _max: InventoryImportLogMaxAggregateOutputType | null
  }

  type GetInventoryImportLogGroupByPayload<T extends InventoryImportLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<InventoryImportLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof InventoryImportLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], InventoryImportLogGroupByOutputType[P]>
            : GetScalarType<T[P], InventoryImportLogGroupByOutputType[P]>
        }
      >
    >


  export type InventoryImportLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fileName?: boolean
    fileSize?: boolean
    fileHash?: boolean
    status?: boolean
    totalRows?: boolean
    successRows?: boolean
    failedRows?: boolean
    skippedRows?: boolean
    errors?: boolean
    summary?: boolean
    importedBy?: boolean
    importedAt?: boolean
    startedAt?: boolean
    completedAt?: boolean
    metadata?: boolean
  }, ExtArgs["result"]["inventoryImportLog"]>

  export type InventoryImportLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fileName?: boolean
    fileSize?: boolean
    fileHash?: boolean
    status?: boolean
    totalRows?: boolean
    successRows?: boolean
    failedRows?: boolean
    skippedRows?: boolean
    errors?: boolean
    summary?: boolean
    importedBy?: boolean
    importedAt?: boolean
    startedAt?: boolean
    completedAt?: boolean
    metadata?: boolean
  }, ExtArgs["result"]["inventoryImportLog"]>

  export type InventoryImportLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fileName?: boolean
    fileSize?: boolean
    fileHash?: boolean
    status?: boolean
    totalRows?: boolean
    successRows?: boolean
    failedRows?: boolean
    skippedRows?: boolean
    errors?: boolean
    summary?: boolean
    importedBy?: boolean
    importedAt?: boolean
    startedAt?: boolean
    completedAt?: boolean
    metadata?: boolean
  }, ExtArgs["result"]["inventoryImportLog"]>

  export type InventoryImportLogSelectScalar = {
    id?: boolean
    fileName?: boolean
    fileSize?: boolean
    fileHash?: boolean
    status?: boolean
    totalRows?: boolean
    successRows?: boolean
    failedRows?: boolean
    skippedRows?: boolean
    errors?: boolean
    summary?: boolean
    importedBy?: boolean
    importedAt?: boolean
    startedAt?: boolean
    completedAt?: boolean
    metadata?: boolean
  }

  export type InventoryImportLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "fileName" | "fileSize" | "fileHash" | "status" | "totalRows" | "successRows" | "failedRows" | "skippedRows" | "errors" | "summary" | "importedBy" | "importedAt" | "startedAt" | "completedAt" | "metadata", ExtArgs["result"]["inventoryImportLog"]>

  export type $InventoryImportLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "InventoryImportLog"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      fileName: string
      fileSize: number
      fileHash: string | null
      status: $Enums.ImportStatus
      totalRows: number
      successRows: number
      failedRows: number
      skippedRows: number
      errors: Prisma.JsonValue | null
      summary: Prisma.JsonValue | null
      importedBy: string
      importedAt: Date
      startedAt: Date | null
      completedAt: Date | null
      metadata: Prisma.JsonValue
    }, ExtArgs["result"]["inventoryImportLog"]>
    composites: {}
  }

  type InventoryImportLogGetPayload<S extends boolean | null | undefined | InventoryImportLogDefaultArgs> = $Result.GetResult<Prisma.$InventoryImportLogPayload, S>

  type InventoryImportLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<InventoryImportLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: InventoryImportLogCountAggregateInputType | true
    }

  export interface InventoryImportLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['InventoryImportLog'], meta: { name: 'InventoryImportLog' } }
    /**
     * Find zero or one InventoryImportLog that matches the filter.
     * @param {InventoryImportLogFindUniqueArgs} args - Arguments to find a InventoryImportLog
     * @example
     * // Get one InventoryImportLog
     * const inventoryImportLog = await prisma.inventoryImportLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends InventoryImportLogFindUniqueArgs>(args: SelectSubset<T, InventoryImportLogFindUniqueArgs<ExtArgs>>): Prisma__InventoryImportLogClient<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one InventoryImportLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {InventoryImportLogFindUniqueOrThrowArgs} args - Arguments to find a InventoryImportLog
     * @example
     * // Get one InventoryImportLog
     * const inventoryImportLog = await prisma.inventoryImportLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends InventoryImportLogFindUniqueOrThrowArgs>(args: SelectSubset<T, InventoryImportLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__InventoryImportLogClient<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InventoryImportLog 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 {InventoryImportLogFindFirstArgs} args - Arguments to find a InventoryImportLog
     * @example
     * // Get one InventoryImportLog
     * const inventoryImportLog = await prisma.inventoryImportLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends InventoryImportLogFindFirstArgs>(args?: SelectSubset<T, InventoryImportLogFindFirstArgs<ExtArgs>>): Prisma__InventoryImportLogClient<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InventoryImportLog 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 {InventoryImportLogFindFirstOrThrowArgs} args - Arguments to find a InventoryImportLog
     * @example
     * // Get one InventoryImportLog
     * const inventoryImportLog = await prisma.inventoryImportLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends InventoryImportLogFindFirstOrThrowArgs>(args?: SelectSubset<T, InventoryImportLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__InventoryImportLogClient<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more InventoryImportLogs 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 {InventoryImportLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all InventoryImportLogs
     * const inventoryImportLogs = await prisma.inventoryImportLog.findMany()
     * 
     * // Get first 10 InventoryImportLogs
     * const inventoryImportLogs = await prisma.inventoryImportLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const inventoryImportLogWithIdOnly = await prisma.inventoryImportLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends InventoryImportLogFindManyArgs>(args?: SelectSubset<T, InventoryImportLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a InventoryImportLog.
     * @param {InventoryImportLogCreateArgs} args - Arguments to create a InventoryImportLog.
     * @example
     * // Create one InventoryImportLog
     * const InventoryImportLog = await prisma.inventoryImportLog.create({
     *   data: {
     *     // ... data to create a InventoryImportLog
     *   }
     * })
     * 
     */
    create<T extends InventoryImportLogCreateArgs>(args: SelectSubset<T, InventoryImportLogCreateArgs<ExtArgs>>): Prisma__InventoryImportLogClient<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many InventoryImportLogs.
     * @param {InventoryImportLogCreateManyArgs} args - Arguments to create many InventoryImportLogs.
     * @example
     * // Create many InventoryImportLogs
     * const inventoryImportLog = await prisma.inventoryImportLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends InventoryImportLogCreateManyArgs>(args?: SelectSubset<T, InventoryImportLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many InventoryImportLogs and returns the data saved in the database.
     * @param {InventoryImportLogCreateManyAndReturnArgs} args - Arguments to create many InventoryImportLogs.
     * @example
     * // Create many InventoryImportLogs
     * const inventoryImportLog = await prisma.inventoryImportLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many InventoryImportLogs and only return the `id`
     * const inventoryImportLogWithIdOnly = await prisma.inventoryImportLog.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 InventoryImportLogCreateManyAndReturnArgs>(args?: SelectSubset<T, InventoryImportLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a InventoryImportLog.
     * @param {InventoryImportLogDeleteArgs} args - Arguments to delete one InventoryImportLog.
     * @example
     * // Delete one InventoryImportLog
     * const InventoryImportLog = await prisma.inventoryImportLog.delete({
     *   where: {
     *     // ... filter to delete one InventoryImportLog
     *   }
     * })
     * 
     */
    delete<T extends InventoryImportLogDeleteArgs>(args: SelectSubset<T, InventoryImportLogDeleteArgs<ExtArgs>>): Prisma__InventoryImportLogClient<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one InventoryImportLog.
     * @param {InventoryImportLogUpdateArgs} args - Arguments to update one InventoryImportLog.
     * @example
     * // Update one InventoryImportLog
     * const inventoryImportLog = await prisma.inventoryImportLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends InventoryImportLogUpdateArgs>(args: SelectSubset<T, InventoryImportLogUpdateArgs<ExtArgs>>): Prisma__InventoryImportLogClient<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more InventoryImportLogs.
     * @param {InventoryImportLogDeleteManyArgs} args - Arguments to filter InventoryImportLogs to delete.
     * @example
     * // Delete a few InventoryImportLogs
     * const { count } = await prisma.inventoryImportLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends InventoryImportLogDeleteManyArgs>(args?: SelectSubset<T, InventoryImportLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InventoryImportLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InventoryImportLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many InventoryImportLogs
     * const inventoryImportLog = await prisma.inventoryImportLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends InventoryImportLogUpdateManyArgs>(args: SelectSubset<T, InventoryImportLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InventoryImportLogs and returns the data updated in the database.
     * @param {InventoryImportLogUpdateManyAndReturnArgs} args - Arguments to update many InventoryImportLogs.
     * @example
     * // Update many InventoryImportLogs
     * const inventoryImportLog = await prisma.inventoryImportLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more InventoryImportLogs and only return the `id`
     * const inventoryImportLogWithIdOnly = await prisma.inventoryImportLog.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 InventoryImportLogUpdateManyAndReturnArgs>(args: SelectSubset<T, InventoryImportLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one InventoryImportLog.
     * @param {InventoryImportLogUpsertArgs} args - Arguments to update or create a InventoryImportLog.
     * @example
     * // Update or create a InventoryImportLog
     * const inventoryImportLog = await prisma.inventoryImportLog.upsert({
     *   create: {
     *     // ... data to create a InventoryImportLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the InventoryImportLog we want to update
     *   }
     * })
     */
    upsert<T extends InventoryImportLogUpsertArgs>(args: SelectSubset<T, InventoryImportLogUpsertArgs<ExtArgs>>): Prisma__InventoryImportLogClient<$Result.GetResult<Prisma.$InventoryImportLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of InventoryImportLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InventoryImportLogCountArgs} args - Arguments to filter InventoryImportLogs to count.
     * @example
     * // Count the number of InventoryImportLogs
     * const count = await prisma.inventoryImportLog.count({
     *   where: {
     *     // ... the filter for the InventoryImportLogs we want to count
     *   }
     * })
    **/
    count<T extends InventoryImportLogCountArgs>(
      args?: Subset<T, InventoryImportLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], InventoryImportLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a InventoryImportLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InventoryImportLogAggregateArgs} 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 InventoryImportLogAggregateArgs>(args: Subset<T, InventoryImportLogAggregateArgs>): Prisma.PrismaPromise<GetInventoryImportLogAggregateType<T>>

    /**
     * Group by InventoryImportLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InventoryImportLogGroupByArgs} 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 InventoryImportLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: InventoryImportLogGroupByArgs['orderBy'] }
        : { orderBy?: InventoryImportLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, InventoryImportLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetInventoryImportLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the InventoryImportLog model
   */
  readonly fields: InventoryImportLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for InventoryImportLog.
   * 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__InventoryImportLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the InventoryImportLog model
   */
  interface InventoryImportLogFieldRefs {
    readonly id: FieldRef<"InventoryImportLog", 'String'>
    readonly fileName: FieldRef<"InventoryImportLog", 'String'>
    readonly fileSize: FieldRef<"InventoryImportLog", 'Int'>
    readonly fileHash: FieldRef<"InventoryImportLog", 'String'>
    readonly status: FieldRef<"InventoryImportLog", 'ImportStatus'>
    readonly totalRows: FieldRef<"InventoryImportLog", 'Int'>
    readonly successRows: FieldRef<"InventoryImportLog", 'Int'>
    readonly failedRows: FieldRef<"InventoryImportLog", 'Int'>
    readonly skippedRows: FieldRef<"InventoryImportLog", 'Int'>
    readonly errors: FieldRef<"InventoryImportLog", 'Json'>
    readonly summary: FieldRef<"InventoryImportLog", 'Json'>
    readonly importedBy: FieldRef<"InventoryImportLog", 'String'>
    readonly importedAt: FieldRef<"InventoryImportLog", 'DateTime'>
    readonly startedAt: FieldRef<"InventoryImportLog", 'DateTime'>
    readonly completedAt: FieldRef<"InventoryImportLog", 'DateTime'>
    readonly metadata: FieldRef<"InventoryImportLog", 'Json'>
  }
    

  // Custom InputTypes
  /**
   * InventoryImportLog findUnique
   */
  export type InventoryImportLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * Filter, which InventoryImportLog to fetch.
     */
    where: InventoryImportLogWhereUniqueInput
  }

  /**
   * InventoryImportLog findUniqueOrThrow
   */
  export type InventoryImportLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * Filter, which InventoryImportLog to fetch.
     */
    where: InventoryImportLogWhereUniqueInput
  }

  /**
   * InventoryImportLog findFirst
   */
  export type InventoryImportLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * Filter, which InventoryImportLog to fetch.
     */
    where?: InventoryImportLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InventoryImportLogs to fetch.
     */
    orderBy?: InventoryImportLogOrderByWithRelationInput | InventoryImportLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InventoryImportLogs.
     */
    cursor?: InventoryImportLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InventoryImportLogs 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` InventoryImportLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InventoryImportLogs.
     */
    distinct?: InventoryImportLogScalarFieldEnum | InventoryImportLogScalarFieldEnum[]
  }

  /**
   * InventoryImportLog findFirstOrThrow
   */
  export type InventoryImportLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * Filter, which InventoryImportLog to fetch.
     */
    where?: InventoryImportLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InventoryImportLogs to fetch.
     */
    orderBy?: InventoryImportLogOrderByWithRelationInput | InventoryImportLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InventoryImportLogs.
     */
    cursor?: InventoryImportLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InventoryImportLogs 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` InventoryImportLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InventoryImportLogs.
     */
    distinct?: InventoryImportLogScalarFieldEnum | InventoryImportLogScalarFieldEnum[]
  }

  /**
   * InventoryImportLog findMany
   */
  export type InventoryImportLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * Filter, which InventoryImportLogs to fetch.
     */
    where?: InventoryImportLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InventoryImportLogs to fetch.
     */
    orderBy?: InventoryImportLogOrderByWithRelationInput | InventoryImportLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing InventoryImportLogs.
     */
    cursor?: InventoryImportLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InventoryImportLogs 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` InventoryImportLogs.
     */
    skip?: number
    distinct?: InventoryImportLogScalarFieldEnum | InventoryImportLogScalarFieldEnum[]
  }

  /**
   * InventoryImportLog create
   */
  export type InventoryImportLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * The data needed to create a InventoryImportLog.
     */
    data: XOR<InventoryImportLogCreateInput, InventoryImportLogUncheckedCreateInput>
  }

  /**
   * InventoryImportLog createMany
   */
  export type InventoryImportLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many InventoryImportLogs.
     */
    data: InventoryImportLogCreateManyInput | InventoryImportLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InventoryImportLog createManyAndReturn
   */
  export type InventoryImportLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * The data used to create many InventoryImportLogs.
     */
    data: InventoryImportLogCreateManyInput | InventoryImportLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InventoryImportLog update
   */
  export type InventoryImportLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * The data needed to update a InventoryImportLog.
     */
    data: XOR<InventoryImportLogUpdateInput, InventoryImportLogUncheckedUpdateInput>
    /**
     * Choose, which InventoryImportLog to update.
     */
    where: InventoryImportLogWhereUniqueInput
  }

  /**
   * InventoryImportLog updateMany
   */
  export type InventoryImportLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update InventoryImportLogs.
     */
    data: XOR<InventoryImportLogUpdateManyMutationInput, InventoryImportLogUncheckedUpdateManyInput>
    /**
     * Filter which InventoryImportLogs to update
     */
    where?: InventoryImportLogWhereInput
    /**
     * Limit how many InventoryImportLogs to update.
     */
    limit?: number
  }

  /**
   * InventoryImportLog updateManyAndReturn
   */
  export type InventoryImportLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * The data used to update InventoryImportLogs.
     */
    data: XOR<InventoryImportLogUpdateManyMutationInput, InventoryImportLogUncheckedUpdateManyInput>
    /**
     * Filter which InventoryImportLogs to update
     */
    where?: InventoryImportLogWhereInput
    /**
     * Limit how many InventoryImportLogs to update.
     */
    limit?: number
  }

  /**
   * InventoryImportLog upsert
   */
  export type InventoryImportLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * The filter to search for the InventoryImportLog to update in case it exists.
     */
    where: InventoryImportLogWhereUniqueInput
    /**
     * In case the InventoryImportLog found by the `where` argument doesn't exist, create a new InventoryImportLog with this data.
     */
    create: XOR<InventoryImportLogCreateInput, InventoryImportLogUncheckedCreateInput>
    /**
     * In case the InventoryImportLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<InventoryImportLogUpdateInput, InventoryImportLogUncheckedUpdateInput>
  }

  /**
   * InventoryImportLog delete
   */
  export type InventoryImportLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
    /**
     * Filter which InventoryImportLog to delete.
     */
    where: InventoryImportLogWhereUniqueInput
  }

  /**
   * InventoryImportLog deleteMany
   */
  export type InventoryImportLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InventoryImportLogs to delete
     */
    where?: InventoryImportLogWhereInput
    /**
     * Limit how many InventoryImportLogs to delete.
     */
    limit?: number
  }

  /**
   * InventoryImportLog without action
   */
  export type InventoryImportLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InventoryImportLog
     */
    select?: InventoryImportLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InventoryImportLog
     */
    omit?: InventoryImportLogOmit<ExtArgs> | null
  }


  /**
   * Model PartColumnConfig
   */

  export type AggregatePartColumnConfig = {
    _count: PartColumnConfigCountAggregateOutputType | null
    _min: PartColumnConfigMinAggregateOutputType | null
    _max: PartColumnConfigMaxAggregateOutputType | null
  }

  export type PartColumnConfigMinAggregateOutputType = {
    id: string | null
    userId: string | null
    name: string | null
    description: string | null
    isDefault: boolean | null
    isTemplate: boolean | null
    isPublic: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PartColumnConfigMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    name: string | null
    description: string | null
    isDefault: boolean | null
    isTemplate: boolean | null
    isPublic: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PartColumnConfigCountAggregateOutputType = {
    id: number
    userId: number
    name: number
    description: number
    isDefault: number
    isTemplate: number
    columns: number
    isPublic: number
    metadata: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type PartColumnConfigMinAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    description?: true
    isDefault?: true
    isTemplate?: true
    isPublic?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PartColumnConfigMaxAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    description?: true
    isDefault?: true
    isTemplate?: true
    isPublic?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PartColumnConfigCountAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    description?: true
    isDefault?: true
    isTemplate?: true
    columns?: true
    isPublic?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type PartColumnConfigAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartColumnConfig to aggregate.
     */
    where?: PartColumnConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartColumnConfigs to fetch.
     */
    orderBy?: PartColumnConfigOrderByWithRelationInput | PartColumnConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PartColumnConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartColumnConfigs 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` PartColumnConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PartColumnConfigs
    **/
    _count?: true | PartColumnConfigCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PartColumnConfigMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PartColumnConfigMaxAggregateInputType
  }

  export type GetPartColumnConfigAggregateType<T extends PartColumnConfigAggregateArgs> = {
        [P in keyof T & keyof AggregatePartColumnConfig]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePartColumnConfig[P]>
      : GetScalarType<T[P], AggregatePartColumnConfig[P]>
  }




  export type PartColumnConfigGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartColumnConfigWhereInput
    orderBy?: PartColumnConfigOrderByWithAggregationInput | PartColumnConfigOrderByWithAggregationInput[]
    by: PartColumnConfigScalarFieldEnum[] | PartColumnConfigScalarFieldEnum
    having?: PartColumnConfigScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PartColumnConfigCountAggregateInputType | true
    _min?: PartColumnConfigMinAggregateInputType
    _max?: PartColumnConfigMaxAggregateInputType
  }

  export type PartColumnConfigGroupByOutputType = {
    id: string
    userId: string | null
    name: string
    description: string | null
    isDefault: boolean
    isTemplate: boolean
    columns: JsonValue
    isPublic: boolean
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    _count: PartColumnConfigCountAggregateOutputType | null
    _min: PartColumnConfigMinAggregateOutputType | null
    _max: PartColumnConfigMaxAggregateOutputType | null
  }

  type GetPartColumnConfigGroupByPayload<T extends PartColumnConfigGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PartColumnConfigGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PartColumnConfigGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PartColumnConfigGroupByOutputType[P]>
            : GetScalarType<T[P], PartColumnConfigGroupByOutputType[P]>
        }
      >
    >


  export type PartColumnConfigSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    description?: boolean
    isDefault?: boolean
    isTemplate?: boolean
    columns?: boolean
    isPublic?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["partColumnConfig"]>

  export type PartColumnConfigSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    description?: boolean
    isDefault?: boolean
    isTemplate?: boolean
    columns?: boolean
    isPublic?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["partColumnConfig"]>

  export type PartColumnConfigSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    description?: boolean
    isDefault?: boolean
    isTemplate?: boolean
    columns?: boolean
    isPublic?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["partColumnConfig"]>

  export type PartColumnConfigSelectScalar = {
    id?: boolean
    userId?: boolean
    name?: boolean
    description?: boolean
    isDefault?: boolean
    isTemplate?: boolean
    columns?: boolean
    isPublic?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type PartColumnConfigOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "name" | "description" | "isDefault" | "isTemplate" | "columns" | "isPublic" | "metadata" | "createdAt" | "updatedAt", ExtArgs["result"]["partColumnConfig"]>

  export type $PartColumnConfigPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PartColumnConfig"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string | null
      name: string
      description: string | null
      isDefault: boolean
      isTemplate: boolean
      columns: Prisma.JsonValue
      isPublic: boolean
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["partColumnConfig"]>
    composites: {}
  }

  type PartColumnConfigGetPayload<S extends boolean | null | undefined | PartColumnConfigDefaultArgs> = $Result.GetResult<Prisma.$PartColumnConfigPayload, S>

  type PartColumnConfigCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PartColumnConfigFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PartColumnConfigCountAggregateInputType | true
    }

  export interface PartColumnConfigDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PartColumnConfig'], meta: { name: 'PartColumnConfig' } }
    /**
     * Find zero or one PartColumnConfig that matches the filter.
     * @param {PartColumnConfigFindUniqueArgs} args - Arguments to find a PartColumnConfig
     * @example
     * // Get one PartColumnConfig
     * const partColumnConfig = await prisma.partColumnConfig.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PartColumnConfigFindUniqueArgs>(args: SelectSubset<T, PartColumnConfigFindUniqueArgs<ExtArgs>>): Prisma__PartColumnConfigClient<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PartColumnConfig that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PartColumnConfigFindUniqueOrThrowArgs} args - Arguments to find a PartColumnConfig
     * @example
     * // Get one PartColumnConfig
     * const partColumnConfig = await prisma.partColumnConfig.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PartColumnConfigFindUniqueOrThrowArgs>(args: SelectSubset<T, PartColumnConfigFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PartColumnConfigClient<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartColumnConfig 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 {PartColumnConfigFindFirstArgs} args - Arguments to find a PartColumnConfig
     * @example
     * // Get one PartColumnConfig
     * const partColumnConfig = await prisma.partColumnConfig.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PartColumnConfigFindFirstArgs>(args?: SelectSubset<T, PartColumnConfigFindFirstArgs<ExtArgs>>): Prisma__PartColumnConfigClient<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartColumnConfig 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 {PartColumnConfigFindFirstOrThrowArgs} args - Arguments to find a PartColumnConfig
     * @example
     * // Get one PartColumnConfig
     * const partColumnConfig = await prisma.partColumnConfig.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PartColumnConfigFindFirstOrThrowArgs>(args?: SelectSubset<T, PartColumnConfigFindFirstOrThrowArgs<ExtArgs>>): Prisma__PartColumnConfigClient<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PartColumnConfigs 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 {PartColumnConfigFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PartColumnConfigs
     * const partColumnConfigs = await prisma.partColumnConfig.findMany()
     * 
     * // Get first 10 PartColumnConfigs
     * const partColumnConfigs = await prisma.partColumnConfig.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const partColumnConfigWithIdOnly = await prisma.partColumnConfig.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PartColumnConfigFindManyArgs>(args?: SelectSubset<T, PartColumnConfigFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PartColumnConfig.
     * @param {PartColumnConfigCreateArgs} args - Arguments to create a PartColumnConfig.
     * @example
     * // Create one PartColumnConfig
     * const PartColumnConfig = await prisma.partColumnConfig.create({
     *   data: {
     *     // ... data to create a PartColumnConfig
     *   }
     * })
     * 
     */
    create<T extends PartColumnConfigCreateArgs>(args: SelectSubset<T, PartColumnConfigCreateArgs<ExtArgs>>): Prisma__PartColumnConfigClient<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PartColumnConfigs.
     * @param {PartColumnConfigCreateManyArgs} args - Arguments to create many PartColumnConfigs.
     * @example
     * // Create many PartColumnConfigs
     * const partColumnConfig = await prisma.partColumnConfig.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PartColumnConfigCreateManyArgs>(args?: SelectSubset<T, PartColumnConfigCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PartColumnConfigs and returns the data saved in the database.
     * @param {PartColumnConfigCreateManyAndReturnArgs} args - Arguments to create many PartColumnConfigs.
     * @example
     * // Create many PartColumnConfigs
     * const partColumnConfig = await prisma.partColumnConfig.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PartColumnConfigs and only return the `id`
     * const partColumnConfigWithIdOnly = await prisma.partColumnConfig.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 PartColumnConfigCreateManyAndReturnArgs>(args?: SelectSubset<T, PartColumnConfigCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PartColumnConfig.
     * @param {PartColumnConfigDeleteArgs} args - Arguments to delete one PartColumnConfig.
     * @example
     * // Delete one PartColumnConfig
     * const PartColumnConfig = await prisma.partColumnConfig.delete({
     *   where: {
     *     // ... filter to delete one PartColumnConfig
     *   }
     * })
     * 
     */
    delete<T extends PartColumnConfigDeleteArgs>(args: SelectSubset<T, PartColumnConfigDeleteArgs<ExtArgs>>): Prisma__PartColumnConfigClient<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PartColumnConfig.
     * @param {PartColumnConfigUpdateArgs} args - Arguments to update one PartColumnConfig.
     * @example
     * // Update one PartColumnConfig
     * const partColumnConfig = await prisma.partColumnConfig.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PartColumnConfigUpdateArgs>(args: SelectSubset<T, PartColumnConfigUpdateArgs<ExtArgs>>): Prisma__PartColumnConfigClient<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PartColumnConfigs.
     * @param {PartColumnConfigDeleteManyArgs} args - Arguments to filter PartColumnConfigs to delete.
     * @example
     * // Delete a few PartColumnConfigs
     * const { count } = await prisma.partColumnConfig.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PartColumnConfigDeleteManyArgs>(args?: SelectSubset<T, PartColumnConfigDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartColumnConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartColumnConfigUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PartColumnConfigs
     * const partColumnConfig = await prisma.partColumnConfig.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PartColumnConfigUpdateManyArgs>(args: SelectSubset<T, PartColumnConfigUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartColumnConfigs and returns the data updated in the database.
     * @param {PartColumnConfigUpdateManyAndReturnArgs} args - Arguments to update many PartColumnConfigs.
     * @example
     * // Update many PartColumnConfigs
     * const partColumnConfig = await prisma.partColumnConfig.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PartColumnConfigs and only return the `id`
     * const partColumnConfigWithIdOnly = await prisma.partColumnConfig.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 PartColumnConfigUpdateManyAndReturnArgs>(args: SelectSubset<T, PartColumnConfigUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PartColumnConfig.
     * @param {PartColumnConfigUpsertArgs} args - Arguments to update or create a PartColumnConfig.
     * @example
     * // Update or create a PartColumnConfig
     * const partColumnConfig = await prisma.partColumnConfig.upsert({
     *   create: {
     *     // ... data to create a PartColumnConfig
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PartColumnConfig we want to update
     *   }
     * })
     */
    upsert<T extends PartColumnConfigUpsertArgs>(args: SelectSubset<T, PartColumnConfigUpsertArgs<ExtArgs>>): Prisma__PartColumnConfigClient<$Result.GetResult<Prisma.$PartColumnConfigPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PartColumnConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartColumnConfigCountArgs} args - Arguments to filter PartColumnConfigs to count.
     * @example
     * // Count the number of PartColumnConfigs
     * const count = await prisma.partColumnConfig.count({
     *   where: {
     *     // ... the filter for the PartColumnConfigs we want to count
     *   }
     * })
    **/
    count<T extends PartColumnConfigCountArgs>(
      args?: Subset<T, PartColumnConfigCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PartColumnConfigCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PartColumnConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartColumnConfigAggregateArgs} 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 PartColumnConfigAggregateArgs>(args: Subset<T, PartColumnConfigAggregateArgs>): Prisma.PrismaPromise<GetPartColumnConfigAggregateType<T>>

    /**
     * Group by PartColumnConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartColumnConfigGroupByArgs} 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 PartColumnConfigGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PartColumnConfigGroupByArgs['orderBy'] }
        : { orderBy?: PartColumnConfigGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PartColumnConfigGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPartColumnConfigGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PartColumnConfig model
   */
  readonly fields: PartColumnConfigFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PartColumnConfig.
   * 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__PartColumnConfigClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PartColumnConfig model
   */
  interface PartColumnConfigFieldRefs {
    readonly id: FieldRef<"PartColumnConfig", 'String'>
    readonly userId: FieldRef<"PartColumnConfig", 'String'>
    readonly name: FieldRef<"PartColumnConfig", 'String'>
    readonly description: FieldRef<"PartColumnConfig", 'String'>
    readonly isDefault: FieldRef<"PartColumnConfig", 'Boolean'>
    readonly isTemplate: FieldRef<"PartColumnConfig", 'Boolean'>
    readonly columns: FieldRef<"PartColumnConfig", 'Json'>
    readonly isPublic: FieldRef<"PartColumnConfig", 'Boolean'>
    readonly metadata: FieldRef<"PartColumnConfig", 'Json'>
    readonly createdAt: FieldRef<"PartColumnConfig", 'DateTime'>
    readonly updatedAt: FieldRef<"PartColumnConfig", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PartColumnConfig findUnique
   */
  export type PartColumnConfigFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * Filter, which PartColumnConfig to fetch.
     */
    where: PartColumnConfigWhereUniqueInput
  }

  /**
   * PartColumnConfig findUniqueOrThrow
   */
  export type PartColumnConfigFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * Filter, which PartColumnConfig to fetch.
     */
    where: PartColumnConfigWhereUniqueInput
  }

  /**
   * PartColumnConfig findFirst
   */
  export type PartColumnConfigFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * Filter, which PartColumnConfig to fetch.
     */
    where?: PartColumnConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartColumnConfigs to fetch.
     */
    orderBy?: PartColumnConfigOrderByWithRelationInput | PartColumnConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartColumnConfigs.
     */
    cursor?: PartColumnConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartColumnConfigs 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` PartColumnConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartColumnConfigs.
     */
    distinct?: PartColumnConfigScalarFieldEnum | PartColumnConfigScalarFieldEnum[]
  }

  /**
   * PartColumnConfig findFirstOrThrow
   */
  export type PartColumnConfigFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * Filter, which PartColumnConfig to fetch.
     */
    where?: PartColumnConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartColumnConfigs to fetch.
     */
    orderBy?: PartColumnConfigOrderByWithRelationInput | PartColumnConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartColumnConfigs.
     */
    cursor?: PartColumnConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartColumnConfigs 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` PartColumnConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartColumnConfigs.
     */
    distinct?: PartColumnConfigScalarFieldEnum | PartColumnConfigScalarFieldEnum[]
  }

  /**
   * PartColumnConfig findMany
   */
  export type PartColumnConfigFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * Filter, which PartColumnConfigs to fetch.
     */
    where?: PartColumnConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartColumnConfigs to fetch.
     */
    orderBy?: PartColumnConfigOrderByWithRelationInput | PartColumnConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PartColumnConfigs.
     */
    cursor?: PartColumnConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartColumnConfigs 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` PartColumnConfigs.
     */
    skip?: number
    distinct?: PartColumnConfigScalarFieldEnum | PartColumnConfigScalarFieldEnum[]
  }

  /**
   * PartColumnConfig create
   */
  export type PartColumnConfigCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * The data needed to create a PartColumnConfig.
     */
    data: XOR<PartColumnConfigCreateInput, PartColumnConfigUncheckedCreateInput>
  }

  /**
   * PartColumnConfig createMany
   */
  export type PartColumnConfigCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PartColumnConfigs.
     */
    data: PartColumnConfigCreateManyInput | PartColumnConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PartColumnConfig createManyAndReturn
   */
  export type PartColumnConfigCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * The data used to create many PartColumnConfigs.
     */
    data: PartColumnConfigCreateManyInput | PartColumnConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PartColumnConfig update
   */
  export type PartColumnConfigUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * The data needed to update a PartColumnConfig.
     */
    data: XOR<PartColumnConfigUpdateInput, PartColumnConfigUncheckedUpdateInput>
    /**
     * Choose, which PartColumnConfig to update.
     */
    where: PartColumnConfigWhereUniqueInput
  }

  /**
   * PartColumnConfig updateMany
   */
  export type PartColumnConfigUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PartColumnConfigs.
     */
    data: XOR<PartColumnConfigUpdateManyMutationInput, PartColumnConfigUncheckedUpdateManyInput>
    /**
     * Filter which PartColumnConfigs to update
     */
    where?: PartColumnConfigWhereInput
    /**
     * Limit how many PartColumnConfigs to update.
     */
    limit?: number
  }

  /**
   * PartColumnConfig updateManyAndReturn
   */
  export type PartColumnConfigUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * The data used to update PartColumnConfigs.
     */
    data: XOR<PartColumnConfigUpdateManyMutationInput, PartColumnConfigUncheckedUpdateManyInput>
    /**
     * Filter which PartColumnConfigs to update
     */
    where?: PartColumnConfigWhereInput
    /**
     * Limit how many PartColumnConfigs to update.
     */
    limit?: number
  }

  /**
   * PartColumnConfig upsert
   */
  export type PartColumnConfigUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * The filter to search for the PartColumnConfig to update in case it exists.
     */
    where: PartColumnConfigWhereUniqueInput
    /**
     * In case the PartColumnConfig found by the `where` argument doesn't exist, create a new PartColumnConfig with this data.
     */
    create: XOR<PartColumnConfigCreateInput, PartColumnConfigUncheckedCreateInput>
    /**
     * In case the PartColumnConfig was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PartColumnConfigUpdateInput, PartColumnConfigUncheckedUpdateInput>
  }

  /**
   * PartColumnConfig delete
   */
  export type PartColumnConfigDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
    /**
     * Filter which PartColumnConfig to delete.
     */
    where: PartColumnConfigWhereUniqueInput
  }

  /**
   * PartColumnConfig deleteMany
   */
  export type PartColumnConfigDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartColumnConfigs to delete
     */
    where?: PartColumnConfigWhereInput
    /**
     * Limit how many PartColumnConfigs to delete.
     */
    limit?: number
  }

  /**
   * PartColumnConfig without action
   */
  export type PartColumnConfigDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartColumnConfig
     */
    select?: PartColumnConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartColumnConfig
     */
    omit?: PartColumnConfigOmit<ExtArgs> | null
  }


  /**
   * Model PartGroup
   */

  export type AggregatePartGroup = {
    _count: PartGroupCountAggregateOutputType | null
    _avg: PartGroupAvgAggregateOutputType | null
    _sum: PartGroupSumAggregateOutputType | null
    _min: PartGroupMinAggregateOutputType | null
    _max: PartGroupMaxAggregateOutputType | null
  }

  export type PartGroupAvgAggregateOutputType = {
    displayOrder: number | null
    partsCount: number | null
    fieldsCount: number | null
  }

  export type PartGroupSumAggregateOutputType = {
    displayOrder: number | null
    partsCount: number | null
    fieldsCount: number | null
  }

  export type PartGroupMinAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    displayOrder: number | null
    isActive: boolean | null
    partsCount: number | null
    fieldsCount: number | null
    createdBy: string | null
    createdAt: Date | null
    updatedBy: string | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type PartGroupMaxAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    displayOrder: number | null
    isActive: boolean | null
    partsCount: number | null
    fieldsCount: number | null
    createdBy: string | null
    createdAt: Date | null
    updatedBy: string | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type PartGroupCountAggregateOutputType = {
    id: number
    name: number
    description: number
    displayOrder: number
    isActive: number
    partsCount: number
    fieldsCount: number
    createdBy: number
    createdAt: number
    updatedBy: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type PartGroupAvgAggregateInputType = {
    displayOrder?: true
    partsCount?: true
    fieldsCount?: true
  }

  export type PartGroupSumAggregateInputType = {
    displayOrder?: true
    partsCount?: true
    fieldsCount?: true
  }

  export type PartGroupMinAggregateInputType = {
    id?: true
    name?: true
    description?: true
    displayOrder?: true
    isActive?: true
    partsCount?: true
    fieldsCount?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type PartGroupMaxAggregateInputType = {
    id?: true
    name?: true
    description?: true
    displayOrder?: true
    isActive?: true
    partsCount?: true
    fieldsCount?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type PartGroupCountAggregateInputType = {
    id?: true
    name?: true
    description?: true
    displayOrder?: true
    isActive?: true
    partsCount?: true
    fieldsCount?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type PartGroupAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartGroup to aggregate.
     */
    where?: PartGroupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartGroups to fetch.
     */
    orderBy?: PartGroupOrderByWithRelationInput | PartGroupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PartGroupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartGroups 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` PartGroups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PartGroups
    **/
    _count?: true | PartGroupCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PartGroupAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PartGroupSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PartGroupMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PartGroupMaxAggregateInputType
  }

  export type GetPartGroupAggregateType<T extends PartGroupAggregateArgs> = {
        [P in keyof T & keyof AggregatePartGroup]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePartGroup[P]>
      : GetScalarType<T[P], AggregatePartGroup[P]>
  }




  export type PartGroupGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartGroupWhereInput
    orderBy?: PartGroupOrderByWithAggregationInput | PartGroupOrderByWithAggregationInput[]
    by: PartGroupScalarFieldEnum[] | PartGroupScalarFieldEnum
    having?: PartGroupScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PartGroupCountAggregateInputType | true
    _avg?: PartGroupAvgAggregateInputType
    _sum?: PartGroupSumAggregateInputType
    _min?: PartGroupMinAggregateInputType
    _max?: PartGroupMaxAggregateInputType
  }

  export type PartGroupGroupByOutputType = {
    id: string
    name: string
    description: string | null
    displayOrder: number
    isActive: boolean
    partsCount: number
    fieldsCount: number
    createdBy: string | null
    createdAt: Date
    updatedBy: string | null
    updatedAt: Date
    deletedAt: Date | null
    _count: PartGroupCountAggregateOutputType | null
    _avg: PartGroupAvgAggregateOutputType | null
    _sum: PartGroupSumAggregateOutputType | null
    _min: PartGroupMinAggregateOutputType | null
    _max: PartGroupMaxAggregateOutputType | null
  }

  type GetPartGroupGroupByPayload<T extends PartGroupGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PartGroupGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PartGroupGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PartGroupGroupByOutputType[P]>
            : GetScalarType<T[P], PartGroupGroupByOutputType[P]>
        }
      >
    >


  export type PartGroupSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    displayOrder?: boolean
    isActive?: boolean
    partsCount?: boolean
    fieldsCount?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    customFields?: boolean | PartGroup$customFieldsArgs<ExtArgs>
    parts?: boolean | PartGroup$partsArgs<ExtArgs>
    _count?: boolean | PartGroupCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partGroup"]>

  export type PartGroupSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    displayOrder?: boolean
    isActive?: boolean
    partsCount?: boolean
    fieldsCount?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["partGroup"]>

  export type PartGroupSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    displayOrder?: boolean
    isActive?: boolean
    partsCount?: boolean
    fieldsCount?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["partGroup"]>

  export type PartGroupSelectScalar = {
    id?: boolean
    name?: boolean
    description?: boolean
    displayOrder?: boolean
    isActive?: boolean
    partsCount?: boolean
    fieldsCount?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type PartGroupOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "description" | "displayOrder" | "isActive" | "partsCount" | "fieldsCount" | "createdBy" | "createdAt" | "updatedBy" | "updatedAt" | "deletedAt", ExtArgs["result"]["partGroup"]>
  export type PartGroupInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    customFields?: boolean | PartGroup$customFieldsArgs<ExtArgs>
    parts?: boolean | PartGroup$partsArgs<ExtArgs>
    _count?: boolean | PartGroupCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PartGroupIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type PartGroupIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $PartGroupPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PartGroup"
    objects: {
      customFields: Prisma.$GroupCustomFieldPayload<ExtArgs>[]
      parts: Prisma.$PartGroupRelationPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      description: string | null
      displayOrder: number
      isActive: boolean
      partsCount: number
      fieldsCount: number
      createdBy: string | null
      createdAt: Date
      updatedBy: string | null
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["partGroup"]>
    composites: {}
  }

  type PartGroupGetPayload<S extends boolean | null | undefined | PartGroupDefaultArgs> = $Result.GetResult<Prisma.$PartGroupPayload, S>

  type PartGroupCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PartGroupFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PartGroupCountAggregateInputType | true
    }

  export interface PartGroupDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PartGroup'], meta: { name: 'PartGroup' } }
    /**
     * Find zero or one PartGroup that matches the filter.
     * @param {PartGroupFindUniqueArgs} args - Arguments to find a PartGroup
     * @example
     * // Get one PartGroup
     * const partGroup = await prisma.partGroup.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PartGroupFindUniqueArgs>(args: SelectSubset<T, PartGroupFindUniqueArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PartGroup that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PartGroupFindUniqueOrThrowArgs} args - Arguments to find a PartGroup
     * @example
     * // Get one PartGroup
     * const partGroup = await prisma.partGroup.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PartGroupFindUniqueOrThrowArgs>(args: SelectSubset<T, PartGroupFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartGroup 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 {PartGroupFindFirstArgs} args - Arguments to find a PartGroup
     * @example
     * // Get one PartGroup
     * const partGroup = await prisma.partGroup.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PartGroupFindFirstArgs>(args?: SelectSubset<T, PartGroupFindFirstArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartGroup 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 {PartGroupFindFirstOrThrowArgs} args - Arguments to find a PartGroup
     * @example
     * // Get one PartGroup
     * const partGroup = await prisma.partGroup.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PartGroupFindFirstOrThrowArgs>(args?: SelectSubset<T, PartGroupFindFirstOrThrowArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PartGroups 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 {PartGroupFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PartGroups
     * const partGroups = await prisma.partGroup.findMany()
     * 
     * // Get first 10 PartGroups
     * const partGroups = await prisma.partGroup.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const partGroupWithIdOnly = await prisma.partGroup.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PartGroupFindManyArgs>(args?: SelectSubset<T, PartGroupFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PartGroup.
     * @param {PartGroupCreateArgs} args - Arguments to create a PartGroup.
     * @example
     * // Create one PartGroup
     * const PartGroup = await prisma.partGroup.create({
     *   data: {
     *     // ... data to create a PartGroup
     *   }
     * })
     * 
     */
    create<T extends PartGroupCreateArgs>(args: SelectSubset<T, PartGroupCreateArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PartGroups.
     * @param {PartGroupCreateManyArgs} args - Arguments to create many PartGroups.
     * @example
     * // Create many PartGroups
     * const partGroup = await prisma.partGroup.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PartGroupCreateManyArgs>(args?: SelectSubset<T, PartGroupCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PartGroups and returns the data saved in the database.
     * @param {PartGroupCreateManyAndReturnArgs} args - Arguments to create many PartGroups.
     * @example
     * // Create many PartGroups
     * const partGroup = await prisma.partGroup.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PartGroups and only return the `id`
     * const partGroupWithIdOnly = await prisma.partGroup.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 PartGroupCreateManyAndReturnArgs>(args?: SelectSubset<T, PartGroupCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PartGroup.
     * @param {PartGroupDeleteArgs} args - Arguments to delete one PartGroup.
     * @example
     * // Delete one PartGroup
     * const PartGroup = await prisma.partGroup.delete({
     *   where: {
     *     // ... filter to delete one PartGroup
     *   }
     * })
     * 
     */
    delete<T extends PartGroupDeleteArgs>(args: SelectSubset<T, PartGroupDeleteArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PartGroup.
     * @param {PartGroupUpdateArgs} args - Arguments to update one PartGroup.
     * @example
     * // Update one PartGroup
     * const partGroup = await prisma.partGroup.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PartGroupUpdateArgs>(args: SelectSubset<T, PartGroupUpdateArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PartGroups.
     * @param {PartGroupDeleteManyArgs} args - Arguments to filter PartGroups to delete.
     * @example
     * // Delete a few PartGroups
     * const { count } = await prisma.partGroup.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PartGroupDeleteManyArgs>(args?: SelectSubset<T, PartGroupDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartGroups.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PartGroups
     * const partGroup = await prisma.partGroup.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PartGroupUpdateManyArgs>(args: SelectSubset<T, PartGroupUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartGroups and returns the data updated in the database.
     * @param {PartGroupUpdateManyAndReturnArgs} args - Arguments to update many PartGroups.
     * @example
     * // Update many PartGroups
     * const partGroup = await prisma.partGroup.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PartGroups and only return the `id`
     * const partGroupWithIdOnly = await prisma.partGroup.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 PartGroupUpdateManyAndReturnArgs>(args: SelectSubset<T, PartGroupUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PartGroup.
     * @param {PartGroupUpsertArgs} args - Arguments to update or create a PartGroup.
     * @example
     * // Update or create a PartGroup
     * const partGroup = await prisma.partGroup.upsert({
     *   create: {
     *     // ... data to create a PartGroup
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PartGroup we want to update
     *   }
     * })
     */
    upsert<T extends PartGroupUpsertArgs>(args: SelectSubset<T, PartGroupUpsertArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PartGroups.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupCountArgs} args - Arguments to filter PartGroups to count.
     * @example
     * // Count the number of PartGroups
     * const count = await prisma.partGroup.count({
     *   where: {
     *     // ... the filter for the PartGroups we want to count
     *   }
     * })
    **/
    count<T extends PartGroupCountArgs>(
      args?: Subset<T, PartGroupCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PartGroupCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PartGroup.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupAggregateArgs} 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 PartGroupAggregateArgs>(args: Subset<T, PartGroupAggregateArgs>): Prisma.PrismaPromise<GetPartGroupAggregateType<T>>

    /**
     * Group by PartGroup.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupGroupByArgs} 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 PartGroupGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PartGroupGroupByArgs['orderBy'] }
        : { orderBy?: PartGroupGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PartGroupGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPartGroupGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PartGroup model
   */
  readonly fields: PartGroupFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PartGroup.
   * 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__PartGroupClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    customFields<T extends PartGroup$customFieldsArgs<ExtArgs> = {}>(args?: Subset<T, PartGroup$customFieldsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    parts<T extends PartGroup$partsArgs<ExtArgs> = {}>(args?: Subset<T, PartGroup$partsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PartGroup model
   */
  interface PartGroupFieldRefs {
    readonly id: FieldRef<"PartGroup", 'String'>
    readonly name: FieldRef<"PartGroup", 'String'>
    readonly description: FieldRef<"PartGroup", 'String'>
    readonly displayOrder: FieldRef<"PartGroup", 'Int'>
    readonly isActive: FieldRef<"PartGroup", 'Boolean'>
    readonly partsCount: FieldRef<"PartGroup", 'Int'>
    readonly fieldsCount: FieldRef<"PartGroup", 'Int'>
    readonly createdBy: FieldRef<"PartGroup", 'String'>
    readonly createdAt: FieldRef<"PartGroup", 'DateTime'>
    readonly updatedBy: FieldRef<"PartGroup", 'String'>
    readonly updatedAt: FieldRef<"PartGroup", 'DateTime'>
    readonly deletedAt: FieldRef<"PartGroup", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PartGroup findUnique
   */
  export type PartGroupFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * Filter, which PartGroup to fetch.
     */
    where: PartGroupWhereUniqueInput
  }

  /**
   * PartGroup findUniqueOrThrow
   */
  export type PartGroupFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * Filter, which PartGroup to fetch.
     */
    where: PartGroupWhereUniqueInput
  }

  /**
   * PartGroup findFirst
   */
  export type PartGroupFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * Filter, which PartGroup to fetch.
     */
    where?: PartGroupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartGroups to fetch.
     */
    orderBy?: PartGroupOrderByWithRelationInput | PartGroupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartGroups.
     */
    cursor?: PartGroupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartGroups 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` PartGroups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartGroups.
     */
    distinct?: PartGroupScalarFieldEnum | PartGroupScalarFieldEnum[]
  }

  /**
   * PartGroup findFirstOrThrow
   */
  export type PartGroupFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * Filter, which PartGroup to fetch.
     */
    where?: PartGroupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartGroups to fetch.
     */
    orderBy?: PartGroupOrderByWithRelationInput | PartGroupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartGroups.
     */
    cursor?: PartGroupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartGroups 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` PartGroups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartGroups.
     */
    distinct?: PartGroupScalarFieldEnum | PartGroupScalarFieldEnum[]
  }

  /**
   * PartGroup findMany
   */
  export type PartGroupFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * Filter, which PartGroups to fetch.
     */
    where?: PartGroupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartGroups to fetch.
     */
    orderBy?: PartGroupOrderByWithRelationInput | PartGroupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PartGroups.
     */
    cursor?: PartGroupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartGroups 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` PartGroups.
     */
    skip?: number
    distinct?: PartGroupScalarFieldEnum | PartGroupScalarFieldEnum[]
  }

  /**
   * PartGroup create
   */
  export type PartGroupCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * The data needed to create a PartGroup.
     */
    data: XOR<PartGroupCreateInput, PartGroupUncheckedCreateInput>
  }

  /**
   * PartGroup createMany
   */
  export type PartGroupCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PartGroups.
     */
    data: PartGroupCreateManyInput | PartGroupCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PartGroup createManyAndReturn
   */
  export type PartGroupCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * The data used to create many PartGroups.
     */
    data: PartGroupCreateManyInput | PartGroupCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PartGroup update
   */
  export type PartGroupUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * The data needed to update a PartGroup.
     */
    data: XOR<PartGroupUpdateInput, PartGroupUncheckedUpdateInput>
    /**
     * Choose, which PartGroup to update.
     */
    where: PartGroupWhereUniqueInput
  }

  /**
   * PartGroup updateMany
   */
  export type PartGroupUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PartGroups.
     */
    data: XOR<PartGroupUpdateManyMutationInput, PartGroupUncheckedUpdateManyInput>
    /**
     * Filter which PartGroups to update
     */
    where?: PartGroupWhereInput
    /**
     * Limit how many PartGroups to update.
     */
    limit?: number
  }

  /**
   * PartGroup updateManyAndReturn
   */
  export type PartGroupUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * The data used to update PartGroups.
     */
    data: XOR<PartGroupUpdateManyMutationInput, PartGroupUncheckedUpdateManyInput>
    /**
     * Filter which PartGroups to update
     */
    where?: PartGroupWhereInput
    /**
     * Limit how many PartGroups to update.
     */
    limit?: number
  }

  /**
   * PartGroup upsert
   */
  export type PartGroupUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * The filter to search for the PartGroup to update in case it exists.
     */
    where: PartGroupWhereUniqueInput
    /**
     * In case the PartGroup found by the `where` argument doesn't exist, create a new PartGroup with this data.
     */
    create: XOR<PartGroupCreateInput, PartGroupUncheckedCreateInput>
    /**
     * In case the PartGroup was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PartGroupUpdateInput, PartGroupUncheckedUpdateInput>
  }

  /**
   * PartGroup delete
   */
  export type PartGroupDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
    /**
     * Filter which PartGroup to delete.
     */
    where: PartGroupWhereUniqueInput
  }

  /**
   * PartGroup deleteMany
   */
  export type PartGroupDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartGroups to delete
     */
    where?: PartGroupWhereInput
    /**
     * Limit how many PartGroups to delete.
     */
    limit?: number
  }

  /**
   * PartGroup.customFields
   */
  export type PartGroup$customFieldsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    where?: GroupCustomFieldWhereInput
    orderBy?: GroupCustomFieldOrderByWithRelationInput | GroupCustomFieldOrderByWithRelationInput[]
    cursor?: GroupCustomFieldWhereUniqueInput
    take?: number
    skip?: number
    distinct?: GroupCustomFieldScalarFieldEnum | GroupCustomFieldScalarFieldEnum[]
  }

  /**
   * PartGroup.parts
   */
  export type PartGroup$partsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    where?: PartGroupRelationWhereInput
    orderBy?: PartGroupRelationOrderByWithRelationInput | PartGroupRelationOrderByWithRelationInput[]
    cursor?: PartGroupRelationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PartGroupRelationScalarFieldEnum | PartGroupRelationScalarFieldEnum[]
  }

  /**
   * PartGroup without action
   */
  export type PartGroupDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroup
     */
    select?: PartGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroup
     */
    omit?: PartGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupInclude<ExtArgs> | null
  }


  /**
   * Model GroupCustomField
   */

  export type AggregateGroupCustomField = {
    _count: GroupCustomFieldCountAggregateOutputType | null
    _avg: GroupCustomFieldAvgAggregateOutputType | null
    _sum: GroupCustomFieldSumAggregateOutputType | null
    _min: GroupCustomFieldMinAggregateOutputType | null
    _max: GroupCustomFieldMaxAggregateOutputType | null
  }

  export type GroupCustomFieldAvgAggregateOutputType = {
    displayOrder: number | null
  }

  export type GroupCustomFieldSumAggregateOutputType = {
    displayOrder: number | null
  }

  export type GroupCustomFieldMinAggregateOutputType = {
    id: string | null
    groupId: string | null
    key: string | null
    nameEn: string | null
    type: $Enums.GroupFieldType | null
    required: boolean | null
    visible: boolean | null
    editable: boolean | null
    searchable: boolean | null
    description: string | null
    placeholder: string | null
    helpText: string | null
    displayOrder: number | null
    createdBy: string | null
    createdAt: Date | null
    updatedBy: string | null
    updatedAt: Date | null
    deletedAt: Date | null
    nameCn: string | null
  }

  export type GroupCustomFieldMaxAggregateOutputType = {
    id: string | null
    groupId: string | null
    key: string | null
    nameEn: string | null
    type: $Enums.GroupFieldType | null
    required: boolean | null
    visible: boolean | null
    editable: boolean | null
    searchable: boolean | null
    description: string | null
    placeholder: string | null
    helpText: string | null
    displayOrder: number | null
    createdBy: string | null
    createdAt: Date | null
    updatedBy: string | null
    updatedAt: Date | null
    deletedAt: Date | null
    nameCn: string | null
  }

  export type GroupCustomFieldCountAggregateOutputType = {
    id: number
    groupId: number
    key: number
    nameEn: number
    type: number
    required: number
    visible: number
    editable: number
    searchable: number
    options: number
    validation: number
    description: number
    placeholder: number
    helpText: number
    displayOrder: number
    createdBy: number
    createdAt: number
    updatedBy: number
    updatedAt: number
    deletedAt: number
    nameCn: number
    _all: number
  }


  export type GroupCustomFieldAvgAggregateInputType = {
    displayOrder?: true
  }

  export type GroupCustomFieldSumAggregateInputType = {
    displayOrder?: true
  }

  export type GroupCustomFieldMinAggregateInputType = {
    id?: true
    groupId?: true
    key?: true
    nameEn?: true
    type?: true
    required?: true
    visible?: true
    editable?: true
    searchable?: true
    description?: true
    placeholder?: true
    helpText?: true
    displayOrder?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
    deletedAt?: true
    nameCn?: true
  }

  export type GroupCustomFieldMaxAggregateInputType = {
    id?: true
    groupId?: true
    key?: true
    nameEn?: true
    type?: true
    required?: true
    visible?: true
    editable?: true
    searchable?: true
    description?: true
    placeholder?: true
    helpText?: true
    displayOrder?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
    deletedAt?: true
    nameCn?: true
  }

  export type GroupCustomFieldCountAggregateInputType = {
    id?: true
    groupId?: true
    key?: true
    nameEn?: true
    type?: true
    required?: true
    visible?: true
    editable?: true
    searchable?: true
    options?: true
    validation?: true
    description?: true
    placeholder?: true
    helpText?: true
    displayOrder?: true
    createdBy?: true
    createdAt?: true
    updatedBy?: true
    updatedAt?: true
    deletedAt?: true
    nameCn?: true
    _all?: true
  }

  export type GroupCustomFieldAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which GroupCustomField to aggregate.
     */
    where?: GroupCustomFieldWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GroupCustomFields to fetch.
     */
    orderBy?: GroupCustomFieldOrderByWithRelationInput | GroupCustomFieldOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: GroupCustomFieldWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GroupCustomFields 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` GroupCustomFields.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned GroupCustomFields
    **/
    _count?: true | GroupCustomFieldCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: GroupCustomFieldAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: GroupCustomFieldSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: GroupCustomFieldMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: GroupCustomFieldMaxAggregateInputType
  }

  export type GetGroupCustomFieldAggregateType<T extends GroupCustomFieldAggregateArgs> = {
        [P in keyof T & keyof AggregateGroupCustomField]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateGroupCustomField[P]>
      : GetScalarType<T[P], AggregateGroupCustomField[P]>
  }




  export type GroupCustomFieldGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: GroupCustomFieldWhereInput
    orderBy?: GroupCustomFieldOrderByWithAggregationInput | GroupCustomFieldOrderByWithAggregationInput[]
    by: GroupCustomFieldScalarFieldEnum[] | GroupCustomFieldScalarFieldEnum
    having?: GroupCustomFieldScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: GroupCustomFieldCountAggregateInputType | true
    _avg?: GroupCustomFieldAvgAggregateInputType
    _sum?: GroupCustomFieldSumAggregateInputType
    _min?: GroupCustomFieldMinAggregateInputType
    _max?: GroupCustomFieldMaxAggregateInputType
  }

  export type GroupCustomFieldGroupByOutputType = {
    id: string
    groupId: string
    key: string
    nameEn: string
    type: $Enums.GroupFieldType
    required: boolean
    visible: boolean
    editable: boolean
    searchable: boolean
    options: JsonValue | null
    validation: JsonValue | null
    description: string | null
    placeholder: string | null
    helpText: string | null
    displayOrder: number
    createdBy: string | null
    createdAt: Date
    updatedBy: string | null
    updatedAt: Date
    deletedAt: Date | null
    nameCn: string | null
    _count: GroupCustomFieldCountAggregateOutputType | null
    _avg: GroupCustomFieldAvgAggregateOutputType | null
    _sum: GroupCustomFieldSumAggregateOutputType | null
    _min: GroupCustomFieldMinAggregateOutputType | null
    _max: GroupCustomFieldMaxAggregateOutputType | null
  }

  type GetGroupCustomFieldGroupByPayload<T extends GroupCustomFieldGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<GroupCustomFieldGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof GroupCustomFieldGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], GroupCustomFieldGroupByOutputType[P]>
            : GetScalarType<T[P], GroupCustomFieldGroupByOutputType[P]>
        }
      >
    >


  export type GroupCustomFieldSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    groupId?: boolean
    key?: boolean
    nameEn?: boolean
    type?: boolean
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: boolean
    validation?: boolean
    description?: boolean
    placeholder?: boolean
    helpText?: boolean
    displayOrder?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    nameCn?: boolean
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["groupCustomField"]>

  export type GroupCustomFieldSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    groupId?: boolean
    key?: boolean
    nameEn?: boolean
    type?: boolean
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: boolean
    validation?: boolean
    description?: boolean
    placeholder?: boolean
    helpText?: boolean
    displayOrder?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    nameCn?: boolean
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["groupCustomField"]>

  export type GroupCustomFieldSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    groupId?: boolean
    key?: boolean
    nameEn?: boolean
    type?: boolean
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: boolean
    validation?: boolean
    description?: boolean
    placeholder?: boolean
    helpText?: boolean
    displayOrder?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    nameCn?: boolean
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["groupCustomField"]>

  export type GroupCustomFieldSelectScalar = {
    id?: boolean
    groupId?: boolean
    key?: boolean
    nameEn?: boolean
    type?: boolean
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: boolean
    validation?: boolean
    description?: boolean
    placeholder?: boolean
    helpText?: boolean
    displayOrder?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedBy?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    nameCn?: boolean
  }

  export type GroupCustomFieldOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "groupId" | "key" | "nameEn" | "type" | "required" | "visible" | "editable" | "searchable" | "options" | "validation" | "description" | "placeholder" | "helpText" | "displayOrder" | "createdBy" | "createdAt" | "updatedBy" | "updatedAt" | "deletedAt" | "nameCn", ExtArgs["result"]["groupCustomField"]>
  export type GroupCustomFieldInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
  }
  export type GroupCustomFieldIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
  }
  export type GroupCustomFieldIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
  }

  export type $GroupCustomFieldPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "GroupCustomField"
    objects: {
      group: Prisma.$PartGroupPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      groupId: string
      key: string
      nameEn: string
      type: $Enums.GroupFieldType
      required: boolean
      visible: boolean
      editable: boolean
      searchable: boolean
      options: Prisma.JsonValue | null
      validation: Prisma.JsonValue | null
      description: string | null
      placeholder: string | null
      helpText: string | null
      displayOrder: number
      createdBy: string | null
      createdAt: Date
      updatedBy: string | null
      updatedAt: Date
      deletedAt: Date | null
      nameCn: string | null
    }, ExtArgs["result"]["groupCustomField"]>
    composites: {}
  }

  type GroupCustomFieldGetPayload<S extends boolean | null | undefined | GroupCustomFieldDefaultArgs> = $Result.GetResult<Prisma.$GroupCustomFieldPayload, S>

  type GroupCustomFieldCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<GroupCustomFieldFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: GroupCustomFieldCountAggregateInputType | true
    }

  export interface GroupCustomFieldDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['GroupCustomField'], meta: { name: 'GroupCustomField' } }
    /**
     * Find zero or one GroupCustomField that matches the filter.
     * @param {GroupCustomFieldFindUniqueArgs} args - Arguments to find a GroupCustomField
     * @example
     * // Get one GroupCustomField
     * const groupCustomField = await prisma.groupCustomField.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends GroupCustomFieldFindUniqueArgs>(args: SelectSubset<T, GroupCustomFieldFindUniqueArgs<ExtArgs>>): Prisma__GroupCustomFieldClient<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one GroupCustomField that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {GroupCustomFieldFindUniqueOrThrowArgs} args - Arguments to find a GroupCustomField
     * @example
     * // Get one GroupCustomField
     * const groupCustomField = await prisma.groupCustomField.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends GroupCustomFieldFindUniqueOrThrowArgs>(args: SelectSubset<T, GroupCustomFieldFindUniqueOrThrowArgs<ExtArgs>>): Prisma__GroupCustomFieldClient<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first GroupCustomField 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 {GroupCustomFieldFindFirstArgs} args - Arguments to find a GroupCustomField
     * @example
     * // Get one GroupCustomField
     * const groupCustomField = await prisma.groupCustomField.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends GroupCustomFieldFindFirstArgs>(args?: SelectSubset<T, GroupCustomFieldFindFirstArgs<ExtArgs>>): Prisma__GroupCustomFieldClient<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first GroupCustomField 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 {GroupCustomFieldFindFirstOrThrowArgs} args - Arguments to find a GroupCustomField
     * @example
     * // Get one GroupCustomField
     * const groupCustomField = await prisma.groupCustomField.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends GroupCustomFieldFindFirstOrThrowArgs>(args?: SelectSubset<T, GroupCustomFieldFindFirstOrThrowArgs<ExtArgs>>): Prisma__GroupCustomFieldClient<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more GroupCustomFields 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 {GroupCustomFieldFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all GroupCustomFields
     * const groupCustomFields = await prisma.groupCustomField.findMany()
     * 
     * // Get first 10 GroupCustomFields
     * const groupCustomFields = await prisma.groupCustomField.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const groupCustomFieldWithIdOnly = await prisma.groupCustomField.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends GroupCustomFieldFindManyArgs>(args?: SelectSubset<T, GroupCustomFieldFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a GroupCustomField.
     * @param {GroupCustomFieldCreateArgs} args - Arguments to create a GroupCustomField.
     * @example
     * // Create one GroupCustomField
     * const GroupCustomField = await prisma.groupCustomField.create({
     *   data: {
     *     // ... data to create a GroupCustomField
     *   }
     * })
     * 
     */
    create<T extends GroupCustomFieldCreateArgs>(args: SelectSubset<T, GroupCustomFieldCreateArgs<ExtArgs>>): Prisma__GroupCustomFieldClient<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many GroupCustomFields.
     * @param {GroupCustomFieldCreateManyArgs} args - Arguments to create many GroupCustomFields.
     * @example
     * // Create many GroupCustomFields
     * const groupCustomField = await prisma.groupCustomField.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends GroupCustomFieldCreateManyArgs>(args?: SelectSubset<T, GroupCustomFieldCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many GroupCustomFields and returns the data saved in the database.
     * @param {GroupCustomFieldCreateManyAndReturnArgs} args - Arguments to create many GroupCustomFields.
     * @example
     * // Create many GroupCustomFields
     * const groupCustomField = await prisma.groupCustomField.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many GroupCustomFields and only return the `id`
     * const groupCustomFieldWithIdOnly = await prisma.groupCustomField.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 GroupCustomFieldCreateManyAndReturnArgs>(args?: SelectSubset<T, GroupCustomFieldCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a GroupCustomField.
     * @param {GroupCustomFieldDeleteArgs} args - Arguments to delete one GroupCustomField.
     * @example
     * // Delete one GroupCustomField
     * const GroupCustomField = await prisma.groupCustomField.delete({
     *   where: {
     *     // ... filter to delete one GroupCustomField
     *   }
     * })
     * 
     */
    delete<T extends GroupCustomFieldDeleteArgs>(args: SelectSubset<T, GroupCustomFieldDeleteArgs<ExtArgs>>): Prisma__GroupCustomFieldClient<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one GroupCustomField.
     * @param {GroupCustomFieldUpdateArgs} args - Arguments to update one GroupCustomField.
     * @example
     * // Update one GroupCustomField
     * const groupCustomField = await prisma.groupCustomField.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends GroupCustomFieldUpdateArgs>(args: SelectSubset<T, GroupCustomFieldUpdateArgs<ExtArgs>>): Prisma__GroupCustomFieldClient<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more GroupCustomFields.
     * @param {GroupCustomFieldDeleteManyArgs} args - Arguments to filter GroupCustomFields to delete.
     * @example
     * // Delete a few GroupCustomFields
     * const { count } = await prisma.groupCustomField.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends GroupCustomFieldDeleteManyArgs>(args?: SelectSubset<T, GroupCustomFieldDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more GroupCustomFields.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GroupCustomFieldUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many GroupCustomFields
     * const groupCustomField = await prisma.groupCustomField.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends GroupCustomFieldUpdateManyArgs>(args: SelectSubset<T, GroupCustomFieldUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more GroupCustomFields and returns the data updated in the database.
     * @param {GroupCustomFieldUpdateManyAndReturnArgs} args - Arguments to update many GroupCustomFields.
     * @example
     * // Update many GroupCustomFields
     * const groupCustomField = await prisma.groupCustomField.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more GroupCustomFields and only return the `id`
     * const groupCustomFieldWithIdOnly = await prisma.groupCustomField.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 GroupCustomFieldUpdateManyAndReturnArgs>(args: SelectSubset<T, GroupCustomFieldUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one GroupCustomField.
     * @param {GroupCustomFieldUpsertArgs} args - Arguments to update or create a GroupCustomField.
     * @example
     * // Update or create a GroupCustomField
     * const groupCustomField = await prisma.groupCustomField.upsert({
     *   create: {
     *     // ... data to create a GroupCustomField
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the GroupCustomField we want to update
     *   }
     * })
     */
    upsert<T extends GroupCustomFieldUpsertArgs>(args: SelectSubset<T, GroupCustomFieldUpsertArgs<ExtArgs>>): Prisma__GroupCustomFieldClient<$Result.GetResult<Prisma.$GroupCustomFieldPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of GroupCustomFields.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GroupCustomFieldCountArgs} args - Arguments to filter GroupCustomFields to count.
     * @example
     * // Count the number of GroupCustomFields
     * const count = await prisma.groupCustomField.count({
     *   where: {
     *     // ... the filter for the GroupCustomFields we want to count
     *   }
     * })
    **/
    count<T extends GroupCustomFieldCountArgs>(
      args?: Subset<T, GroupCustomFieldCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], GroupCustomFieldCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a GroupCustomField.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GroupCustomFieldAggregateArgs} 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 GroupCustomFieldAggregateArgs>(args: Subset<T, GroupCustomFieldAggregateArgs>): Prisma.PrismaPromise<GetGroupCustomFieldAggregateType<T>>

    /**
     * Group by GroupCustomField.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GroupCustomFieldGroupByArgs} 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 GroupCustomFieldGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: GroupCustomFieldGroupByArgs['orderBy'] }
        : { orderBy?: GroupCustomFieldGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, GroupCustomFieldGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetGroupCustomFieldGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the GroupCustomField model
   */
  readonly fields: GroupCustomFieldFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for GroupCustomField.
   * 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__GroupCustomFieldClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    group<T extends PartGroupDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PartGroupDefaultArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the GroupCustomField model
   */
  interface GroupCustomFieldFieldRefs {
    readonly id: FieldRef<"GroupCustomField", 'String'>
    readonly groupId: FieldRef<"GroupCustomField", 'String'>
    readonly key: FieldRef<"GroupCustomField", 'String'>
    readonly nameEn: FieldRef<"GroupCustomField", 'String'>
    readonly type: FieldRef<"GroupCustomField", 'GroupFieldType'>
    readonly required: FieldRef<"GroupCustomField", 'Boolean'>
    readonly visible: FieldRef<"GroupCustomField", 'Boolean'>
    readonly editable: FieldRef<"GroupCustomField", 'Boolean'>
    readonly searchable: FieldRef<"GroupCustomField", 'Boolean'>
    readonly options: FieldRef<"GroupCustomField", 'Json'>
    readonly validation: FieldRef<"GroupCustomField", 'Json'>
    readonly description: FieldRef<"GroupCustomField", 'String'>
    readonly placeholder: FieldRef<"GroupCustomField", 'String'>
    readonly helpText: FieldRef<"GroupCustomField", 'String'>
    readonly displayOrder: FieldRef<"GroupCustomField", 'Int'>
    readonly createdBy: FieldRef<"GroupCustomField", 'String'>
    readonly createdAt: FieldRef<"GroupCustomField", 'DateTime'>
    readonly updatedBy: FieldRef<"GroupCustomField", 'String'>
    readonly updatedAt: FieldRef<"GroupCustomField", 'DateTime'>
    readonly deletedAt: FieldRef<"GroupCustomField", 'DateTime'>
    readonly nameCn: FieldRef<"GroupCustomField", 'String'>
  }
    

  // Custom InputTypes
  /**
   * GroupCustomField findUnique
   */
  export type GroupCustomFieldFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * Filter, which GroupCustomField to fetch.
     */
    where: GroupCustomFieldWhereUniqueInput
  }

  /**
   * GroupCustomField findUniqueOrThrow
   */
  export type GroupCustomFieldFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * Filter, which GroupCustomField to fetch.
     */
    where: GroupCustomFieldWhereUniqueInput
  }

  /**
   * GroupCustomField findFirst
   */
  export type GroupCustomFieldFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * Filter, which GroupCustomField to fetch.
     */
    where?: GroupCustomFieldWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GroupCustomFields to fetch.
     */
    orderBy?: GroupCustomFieldOrderByWithRelationInput | GroupCustomFieldOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for GroupCustomFields.
     */
    cursor?: GroupCustomFieldWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GroupCustomFields 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` GroupCustomFields.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of GroupCustomFields.
     */
    distinct?: GroupCustomFieldScalarFieldEnum | GroupCustomFieldScalarFieldEnum[]
  }

  /**
   * GroupCustomField findFirstOrThrow
   */
  export type GroupCustomFieldFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * Filter, which GroupCustomField to fetch.
     */
    where?: GroupCustomFieldWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GroupCustomFields to fetch.
     */
    orderBy?: GroupCustomFieldOrderByWithRelationInput | GroupCustomFieldOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for GroupCustomFields.
     */
    cursor?: GroupCustomFieldWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GroupCustomFields 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` GroupCustomFields.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of GroupCustomFields.
     */
    distinct?: GroupCustomFieldScalarFieldEnum | GroupCustomFieldScalarFieldEnum[]
  }

  /**
   * GroupCustomField findMany
   */
  export type GroupCustomFieldFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * Filter, which GroupCustomFields to fetch.
     */
    where?: GroupCustomFieldWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GroupCustomFields to fetch.
     */
    orderBy?: GroupCustomFieldOrderByWithRelationInput | GroupCustomFieldOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing GroupCustomFields.
     */
    cursor?: GroupCustomFieldWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GroupCustomFields 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` GroupCustomFields.
     */
    skip?: number
    distinct?: GroupCustomFieldScalarFieldEnum | GroupCustomFieldScalarFieldEnum[]
  }

  /**
   * GroupCustomField create
   */
  export type GroupCustomFieldCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * The data needed to create a GroupCustomField.
     */
    data: XOR<GroupCustomFieldCreateInput, GroupCustomFieldUncheckedCreateInput>
  }

  /**
   * GroupCustomField createMany
   */
  export type GroupCustomFieldCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many GroupCustomFields.
     */
    data: GroupCustomFieldCreateManyInput | GroupCustomFieldCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * GroupCustomField createManyAndReturn
   */
  export type GroupCustomFieldCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * The data used to create many GroupCustomFields.
     */
    data: GroupCustomFieldCreateManyInput | GroupCustomFieldCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * GroupCustomField update
   */
  export type GroupCustomFieldUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * The data needed to update a GroupCustomField.
     */
    data: XOR<GroupCustomFieldUpdateInput, GroupCustomFieldUncheckedUpdateInput>
    /**
     * Choose, which GroupCustomField to update.
     */
    where: GroupCustomFieldWhereUniqueInput
  }

  /**
   * GroupCustomField updateMany
   */
  export type GroupCustomFieldUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update GroupCustomFields.
     */
    data: XOR<GroupCustomFieldUpdateManyMutationInput, GroupCustomFieldUncheckedUpdateManyInput>
    /**
     * Filter which GroupCustomFields to update
     */
    where?: GroupCustomFieldWhereInput
    /**
     * Limit how many GroupCustomFields to update.
     */
    limit?: number
  }

  /**
   * GroupCustomField updateManyAndReturn
   */
  export type GroupCustomFieldUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * The data used to update GroupCustomFields.
     */
    data: XOR<GroupCustomFieldUpdateManyMutationInput, GroupCustomFieldUncheckedUpdateManyInput>
    /**
     * Filter which GroupCustomFields to update
     */
    where?: GroupCustomFieldWhereInput
    /**
     * Limit how many GroupCustomFields to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * GroupCustomField upsert
   */
  export type GroupCustomFieldUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * The filter to search for the GroupCustomField to update in case it exists.
     */
    where: GroupCustomFieldWhereUniqueInput
    /**
     * In case the GroupCustomField found by the `where` argument doesn't exist, create a new GroupCustomField with this data.
     */
    create: XOR<GroupCustomFieldCreateInput, GroupCustomFieldUncheckedCreateInput>
    /**
     * In case the GroupCustomField was found with the provided `where` argument, update it with this data.
     */
    update: XOR<GroupCustomFieldUpdateInput, GroupCustomFieldUncheckedUpdateInput>
  }

  /**
   * GroupCustomField delete
   */
  export type GroupCustomFieldDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
    /**
     * Filter which GroupCustomField to delete.
     */
    where: GroupCustomFieldWhereUniqueInput
  }

  /**
   * GroupCustomField deleteMany
   */
  export type GroupCustomFieldDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which GroupCustomFields to delete
     */
    where?: GroupCustomFieldWhereInput
    /**
     * Limit how many GroupCustomFields to delete.
     */
    limit?: number
  }

  /**
   * GroupCustomField without action
   */
  export type GroupCustomFieldDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GroupCustomField
     */
    select?: GroupCustomFieldSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GroupCustomField
     */
    omit?: GroupCustomFieldOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GroupCustomFieldInclude<ExtArgs> | null
  }


  /**
   * Model PartGroupRelation
   */

  export type AggregatePartGroupRelation = {
    _count: PartGroupRelationCountAggregateOutputType | null
    _min: PartGroupRelationMinAggregateOutputType | null
    _max: PartGroupRelationMaxAggregateOutputType | null
  }

  export type PartGroupRelationMinAggregateOutputType = {
    partId: string | null
    groupId: string | null
    createdAt: Date | null
    createdBy: string | null
  }

  export type PartGroupRelationMaxAggregateOutputType = {
    partId: string | null
    groupId: string | null
    createdAt: Date | null
    createdBy: string | null
  }

  export type PartGroupRelationCountAggregateOutputType = {
    partId: number
    groupId: number
    createdAt: number
    createdBy: number
    _all: number
  }


  export type PartGroupRelationMinAggregateInputType = {
    partId?: true
    groupId?: true
    createdAt?: true
    createdBy?: true
  }

  export type PartGroupRelationMaxAggregateInputType = {
    partId?: true
    groupId?: true
    createdAt?: true
    createdBy?: true
  }

  export type PartGroupRelationCountAggregateInputType = {
    partId?: true
    groupId?: true
    createdAt?: true
    createdBy?: true
    _all?: true
  }

  export type PartGroupRelationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartGroupRelation to aggregate.
     */
    where?: PartGroupRelationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartGroupRelations to fetch.
     */
    orderBy?: PartGroupRelationOrderByWithRelationInput | PartGroupRelationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PartGroupRelationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartGroupRelations 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` PartGroupRelations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PartGroupRelations
    **/
    _count?: true | PartGroupRelationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PartGroupRelationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PartGroupRelationMaxAggregateInputType
  }

  export type GetPartGroupRelationAggregateType<T extends PartGroupRelationAggregateArgs> = {
        [P in keyof T & keyof AggregatePartGroupRelation]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePartGroupRelation[P]>
      : GetScalarType<T[P], AggregatePartGroupRelation[P]>
  }




  export type PartGroupRelationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartGroupRelationWhereInput
    orderBy?: PartGroupRelationOrderByWithAggregationInput | PartGroupRelationOrderByWithAggregationInput[]
    by: PartGroupRelationScalarFieldEnum[] | PartGroupRelationScalarFieldEnum
    having?: PartGroupRelationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PartGroupRelationCountAggregateInputType | true
    _min?: PartGroupRelationMinAggregateInputType
    _max?: PartGroupRelationMaxAggregateInputType
  }

  export type PartGroupRelationGroupByOutputType = {
    partId: string
    groupId: string
    createdAt: Date
    createdBy: string | null
    _count: PartGroupRelationCountAggregateOutputType | null
    _min: PartGroupRelationMinAggregateOutputType | null
    _max: PartGroupRelationMaxAggregateOutputType | null
  }

  type GetPartGroupRelationGroupByPayload<T extends PartGroupRelationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PartGroupRelationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PartGroupRelationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PartGroupRelationGroupByOutputType[P]>
            : GetScalarType<T[P], PartGroupRelationGroupByOutputType[P]>
        }
      >
    >


  export type PartGroupRelationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    partId?: boolean
    groupId?: boolean
    createdAt?: boolean
    createdBy?: boolean
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partGroupRelation"]>

  export type PartGroupRelationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    partId?: boolean
    groupId?: boolean
    createdAt?: boolean
    createdBy?: boolean
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partGroupRelation"]>

  export type PartGroupRelationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    partId?: boolean
    groupId?: boolean
    createdAt?: boolean
    createdBy?: boolean
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
    part?: boolean | PartDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partGroupRelation"]>

  export type PartGroupRelationSelectScalar = {
    partId?: boolean
    groupId?: boolean
    createdAt?: boolean
    createdBy?: boolean
  }

  export type PartGroupRelationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"partId" | "groupId" | "createdAt" | "createdBy", ExtArgs["result"]["partGroupRelation"]>
  export type PartGroupRelationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
    part?: boolean | PartDefaultArgs<ExtArgs>
  }
  export type PartGroupRelationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
    part?: boolean | PartDefaultArgs<ExtArgs>
  }
  export type PartGroupRelationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    group?: boolean | PartGroupDefaultArgs<ExtArgs>
    part?: boolean | PartDefaultArgs<ExtArgs>
  }

  export type $PartGroupRelationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PartGroupRelation"
    objects: {
      group: Prisma.$PartGroupPayload<ExtArgs>
      part: Prisma.$PartPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      partId: string
      groupId: string
      createdAt: Date
      createdBy: string | null
    }, ExtArgs["result"]["partGroupRelation"]>
    composites: {}
  }

  type PartGroupRelationGetPayload<S extends boolean | null | undefined | PartGroupRelationDefaultArgs> = $Result.GetResult<Prisma.$PartGroupRelationPayload, S>

  type PartGroupRelationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PartGroupRelationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PartGroupRelationCountAggregateInputType | true
    }

  export interface PartGroupRelationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PartGroupRelation'], meta: { name: 'PartGroupRelation' } }
    /**
     * Find zero or one PartGroupRelation that matches the filter.
     * @param {PartGroupRelationFindUniqueArgs} args - Arguments to find a PartGroupRelation
     * @example
     * // Get one PartGroupRelation
     * const partGroupRelation = await prisma.partGroupRelation.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PartGroupRelationFindUniqueArgs>(args: SelectSubset<T, PartGroupRelationFindUniqueArgs<ExtArgs>>): Prisma__PartGroupRelationClient<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PartGroupRelation that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PartGroupRelationFindUniqueOrThrowArgs} args - Arguments to find a PartGroupRelation
     * @example
     * // Get one PartGroupRelation
     * const partGroupRelation = await prisma.partGroupRelation.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PartGroupRelationFindUniqueOrThrowArgs>(args: SelectSubset<T, PartGroupRelationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PartGroupRelationClient<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartGroupRelation 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 {PartGroupRelationFindFirstArgs} args - Arguments to find a PartGroupRelation
     * @example
     * // Get one PartGroupRelation
     * const partGroupRelation = await prisma.partGroupRelation.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PartGroupRelationFindFirstArgs>(args?: SelectSubset<T, PartGroupRelationFindFirstArgs<ExtArgs>>): Prisma__PartGroupRelationClient<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartGroupRelation 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 {PartGroupRelationFindFirstOrThrowArgs} args - Arguments to find a PartGroupRelation
     * @example
     * // Get one PartGroupRelation
     * const partGroupRelation = await prisma.partGroupRelation.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PartGroupRelationFindFirstOrThrowArgs>(args?: SelectSubset<T, PartGroupRelationFindFirstOrThrowArgs<ExtArgs>>): Prisma__PartGroupRelationClient<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PartGroupRelations 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 {PartGroupRelationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PartGroupRelations
     * const partGroupRelations = await prisma.partGroupRelation.findMany()
     * 
     * // Get first 10 PartGroupRelations
     * const partGroupRelations = await prisma.partGroupRelation.findMany({ take: 10 })
     * 
     * // Only select the `partId`
     * const partGroupRelationWithPartIdOnly = await prisma.partGroupRelation.findMany({ select: { partId: true } })
     * 
     */
    findMany<T extends PartGroupRelationFindManyArgs>(args?: SelectSubset<T, PartGroupRelationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PartGroupRelation.
     * @param {PartGroupRelationCreateArgs} args - Arguments to create a PartGroupRelation.
     * @example
     * // Create one PartGroupRelation
     * const PartGroupRelation = await prisma.partGroupRelation.create({
     *   data: {
     *     // ... data to create a PartGroupRelation
     *   }
     * })
     * 
     */
    create<T extends PartGroupRelationCreateArgs>(args: SelectSubset<T, PartGroupRelationCreateArgs<ExtArgs>>): Prisma__PartGroupRelationClient<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PartGroupRelations.
     * @param {PartGroupRelationCreateManyArgs} args - Arguments to create many PartGroupRelations.
     * @example
     * // Create many PartGroupRelations
     * const partGroupRelation = await prisma.partGroupRelation.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PartGroupRelationCreateManyArgs>(args?: SelectSubset<T, PartGroupRelationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PartGroupRelations and returns the data saved in the database.
     * @param {PartGroupRelationCreateManyAndReturnArgs} args - Arguments to create many PartGroupRelations.
     * @example
     * // Create many PartGroupRelations
     * const partGroupRelation = await prisma.partGroupRelation.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PartGroupRelations and only return the `partId`
     * const partGroupRelationWithPartIdOnly = await prisma.partGroupRelation.createManyAndReturn({
     *   select: { partId: 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 PartGroupRelationCreateManyAndReturnArgs>(args?: SelectSubset<T, PartGroupRelationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PartGroupRelation.
     * @param {PartGroupRelationDeleteArgs} args - Arguments to delete one PartGroupRelation.
     * @example
     * // Delete one PartGroupRelation
     * const PartGroupRelation = await prisma.partGroupRelation.delete({
     *   where: {
     *     // ... filter to delete one PartGroupRelation
     *   }
     * })
     * 
     */
    delete<T extends PartGroupRelationDeleteArgs>(args: SelectSubset<T, PartGroupRelationDeleteArgs<ExtArgs>>): Prisma__PartGroupRelationClient<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PartGroupRelation.
     * @param {PartGroupRelationUpdateArgs} args - Arguments to update one PartGroupRelation.
     * @example
     * // Update one PartGroupRelation
     * const partGroupRelation = await prisma.partGroupRelation.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PartGroupRelationUpdateArgs>(args: SelectSubset<T, PartGroupRelationUpdateArgs<ExtArgs>>): Prisma__PartGroupRelationClient<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PartGroupRelations.
     * @param {PartGroupRelationDeleteManyArgs} args - Arguments to filter PartGroupRelations to delete.
     * @example
     * // Delete a few PartGroupRelations
     * const { count } = await prisma.partGroupRelation.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PartGroupRelationDeleteManyArgs>(args?: SelectSubset<T, PartGroupRelationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartGroupRelations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupRelationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PartGroupRelations
     * const partGroupRelation = await prisma.partGroupRelation.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PartGroupRelationUpdateManyArgs>(args: SelectSubset<T, PartGroupRelationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartGroupRelations and returns the data updated in the database.
     * @param {PartGroupRelationUpdateManyAndReturnArgs} args - Arguments to update many PartGroupRelations.
     * @example
     * // Update many PartGroupRelations
     * const partGroupRelation = await prisma.partGroupRelation.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PartGroupRelations and only return the `partId`
     * const partGroupRelationWithPartIdOnly = await prisma.partGroupRelation.updateManyAndReturn({
     *   select: { partId: 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 PartGroupRelationUpdateManyAndReturnArgs>(args: SelectSubset<T, PartGroupRelationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PartGroupRelation.
     * @param {PartGroupRelationUpsertArgs} args - Arguments to update or create a PartGroupRelation.
     * @example
     * // Update or create a PartGroupRelation
     * const partGroupRelation = await prisma.partGroupRelation.upsert({
     *   create: {
     *     // ... data to create a PartGroupRelation
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PartGroupRelation we want to update
     *   }
     * })
     */
    upsert<T extends PartGroupRelationUpsertArgs>(args: SelectSubset<T, PartGroupRelationUpsertArgs<ExtArgs>>): Prisma__PartGroupRelationClient<$Result.GetResult<Prisma.$PartGroupRelationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PartGroupRelations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupRelationCountArgs} args - Arguments to filter PartGroupRelations to count.
     * @example
     * // Count the number of PartGroupRelations
     * const count = await prisma.partGroupRelation.count({
     *   where: {
     *     // ... the filter for the PartGroupRelations we want to count
     *   }
     * })
    **/
    count<T extends PartGroupRelationCountArgs>(
      args?: Subset<T, PartGroupRelationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PartGroupRelationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PartGroupRelation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupRelationAggregateArgs} 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 PartGroupRelationAggregateArgs>(args: Subset<T, PartGroupRelationAggregateArgs>): Prisma.PrismaPromise<GetPartGroupRelationAggregateType<T>>

    /**
     * Group by PartGroupRelation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartGroupRelationGroupByArgs} 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 PartGroupRelationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PartGroupRelationGroupByArgs['orderBy'] }
        : { orderBy?: PartGroupRelationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PartGroupRelationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPartGroupRelationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PartGroupRelation model
   */
  readonly fields: PartGroupRelationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PartGroupRelation.
   * 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__PartGroupRelationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    group<T extends PartGroupDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PartGroupDefaultArgs<ExtArgs>>): Prisma__PartGroupClient<$Result.GetResult<Prisma.$PartGroupPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    part<T extends PartDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PartDefaultArgs<ExtArgs>>): Prisma__PartClient<$Result.GetResult<Prisma.$PartPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PartGroupRelation model
   */
  interface PartGroupRelationFieldRefs {
    readonly partId: FieldRef<"PartGroupRelation", 'String'>
    readonly groupId: FieldRef<"PartGroupRelation", 'String'>
    readonly createdAt: FieldRef<"PartGroupRelation", 'DateTime'>
    readonly createdBy: FieldRef<"PartGroupRelation", 'String'>
  }
    

  // Custom InputTypes
  /**
   * PartGroupRelation findUnique
   */
  export type PartGroupRelationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * Filter, which PartGroupRelation to fetch.
     */
    where: PartGroupRelationWhereUniqueInput
  }

  /**
   * PartGroupRelation findUniqueOrThrow
   */
  export type PartGroupRelationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * Filter, which PartGroupRelation to fetch.
     */
    where: PartGroupRelationWhereUniqueInput
  }

  /**
   * PartGroupRelation findFirst
   */
  export type PartGroupRelationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * Filter, which PartGroupRelation to fetch.
     */
    where?: PartGroupRelationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartGroupRelations to fetch.
     */
    orderBy?: PartGroupRelationOrderByWithRelationInput | PartGroupRelationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartGroupRelations.
     */
    cursor?: PartGroupRelationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartGroupRelations 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` PartGroupRelations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartGroupRelations.
     */
    distinct?: PartGroupRelationScalarFieldEnum | PartGroupRelationScalarFieldEnum[]
  }

  /**
   * PartGroupRelation findFirstOrThrow
   */
  export type PartGroupRelationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * Filter, which PartGroupRelation to fetch.
     */
    where?: PartGroupRelationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartGroupRelations to fetch.
     */
    orderBy?: PartGroupRelationOrderByWithRelationInput | PartGroupRelationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartGroupRelations.
     */
    cursor?: PartGroupRelationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartGroupRelations 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` PartGroupRelations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartGroupRelations.
     */
    distinct?: PartGroupRelationScalarFieldEnum | PartGroupRelationScalarFieldEnum[]
  }

  /**
   * PartGroupRelation findMany
   */
  export type PartGroupRelationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * Filter, which PartGroupRelations to fetch.
     */
    where?: PartGroupRelationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartGroupRelations to fetch.
     */
    orderBy?: PartGroupRelationOrderByWithRelationInput | PartGroupRelationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PartGroupRelations.
     */
    cursor?: PartGroupRelationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartGroupRelations 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` PartGroupRelations.
     */
    skip?: number
    distinct?: PartGroupRelationScalarFieldEnum | PartGroupRelationScalarFieldEnum[]
  }

  /**
   * PartGroupRelation create
   */
  export type PartGroupRelationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * The data needed to create a PartGroupRelation.
     */
    data: XOR<PartGroupRelationCreateInput, PartGroupRelationUncheckedCreateInput>
  }

  /**
   * PartGroupRelation createMany
   */
  export type PartGroupRelationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PartGroupRelations.
     */
    data: PartGroupRelationCreateManyInput | PartGroupRelationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PartGroupRelation createManyAndReturn
   */
  export type PartGroupRelationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * The data used to create many PartGroupRelations.
     */
    data: PartGroupRelationCreateManyInput | PartGroupRelationCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PartGroupRelation update
   */
  export type PartGroupRelationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * The data needed to update a PartGroupRelation.
     */
    data: XOR<PartGroupRelationUpdateInput, PartGroupRelationUncheckedUpdateInput>
    /**
     * Choose, which PartGroupRelation to update.
     */
    where: PartGroupRelationWhereUniqueInput
  }

  /**
   * PartGroupRelation updateMany
   */
  export type PartGroupRelationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PartGroupRelations.
     */
    data: XOR<PartGroupRelationUpdateManyMutationInput, PartGroupRelationUncheckedUpdateManyInput>
    /**
     * Filter which PartGroupRelations to update
     */
    where?: PartGroupRelationWhereInput
    /**
     * Limit how many PartGroupRelations to update.
     */
    limit?: number
  }

  /**
   * PartGroupRelation updateManyAndReturn
   */
  export type PartGroupRelationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * The data used to update PartGroupRelations.
     */
    data: XOR<PartGroupRelationUpdateManyMutationInput, PartGroupRelationUncheckedUpdateManyInput>
    /**
     * Filter which PartGroupRelations to update
     */
    where?: PartGroupRelationWhereInput
    /**
     * Limit how many PartGroupRelations to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PartGroupRelation upsert
   */
  export type PartGroupRelationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * The filter to search for the PartGroupRelation to update in case it exists.
     */
    where: PartGroupRelationWhereUniqueInput
    /**
     * In case the PartGroupRelation found by the `where` argument doesn't exist, create a new PartGroupRelation with this data.
     */
    create: XOR<PartGroupRelationCreateInput, PartGroupRelationUncheckedCreateInput>
    /**
     * In case the PartGroupRelation was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PartGroupRelationUpdateInput, PartGroupRelationUncheckedUpdateInput>
  }

  /**
   * PartGroupRelation delete
   */
  export type PartGroupRelationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
    /**
     * Filter which PartGroupRelation to delete.
     */
    where: PartGroupRelationWhereUniqueInput
  }

  /**
   * PartGroupRelation deleteMany
   */
  export type PartGroupRelationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartGroupRelations to delete
     */
    where?: PartGroupRelationWhereInput
    /**
     * Limit how many PartGroupRelations to delete.
     */
    limit?: number
  }

  /**
   * PartGroupRelation without action
   */
  export type PartGroupRelationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartGroupRelation
     */
    select?: PartGroupRelationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartGroupRelation
     */
    omit?: PartGroupRelationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartGroupRelationInclude<ExtArgs> | null
  }


  /**
   * Model AIConversation
   */

  export type AggregateAIConversation = {
    _count: AIConversationCountAggregateOutputType | null
    _min: AIConversationMinAggregateOutputType | null
    _max: AIConversationMaxAggregateOutputType | null
  }

  export type AIConversationMinAggregateOutputType = {
    id: string | null
    userId: string | null
    title: string | null
    status: $Enums.AIConversationStatus | null
    category: $Enums.AIConversationCategory | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIConversationMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    title: string | null
    status: $Enums.AIConversationStatus | null
    category: $Enums.AIConversationCategory | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIConversationCountAggregateOutputType = {
    id: number
    userId: number
    title: number
    status: number
    category: number
    tags: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AIConversationMinAggregateInputType = {
    id?: true
    userId?: true
    title?: true
    status?: true
    category?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIConversationMaxAggregateInputType = {
    id?: true
    userId?: true
    title?: true
    status?: true
    category?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIConversationCountAggregateInputType = {
    id?: true
    userId?: true
    title?: true
    status?: true
    category?: true
    tags?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AIConversationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIConversation to aggregate.
     */
    where?: AIConversationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIConversations to fetch.
     */
    orderBy?: AIConversationOrderByWithRelationInput | AIConversationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIConversationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIConversations 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` AIConversations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIConversations
    **/
    _count?: true | AIConversationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIConversationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIConversationMaxAggregateInputType
  }

  export type GetAIConversationAggregateType<T extends AIConversationAggregateArgs> = {
        [P in keyof T & keyof AggregateAIConversation]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIConversation[P]>
      : GetScalarType<T[P], AggregateAIConversation[P]>
  }




  export type AIConversationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIConversationWhereInput
    orderBy?: AIConversationOrderByWithAggregationInput | AIConversationOrderByWithAggregationInput[]
    by: AIConversationScalarFieldEnum[] | AIConversationScalarFieldEnum
    having?: AIConversationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIConversationCountAggregateInputType | true
    _min?: AIConversationMinAggregateInputType
    _max?: AIConversationMaxAggregateInputType
  }

  export type AIConversationGroupByOutputType = {
    id: string
    userId: string
    title: string | null
    status: $Enums.AIConversationStatus
    category: $Enums.AIConversationCategory
    tags: string[]
    createdAt: Date
    updatedAt: Date
    _count: AIConversationCountAggregateOutputType | null
    _min: AIConversationMinAggregateOutputType | null
    _max: AIConversationMaxAggregateOutputType | null
  }

  type GetAIConversationGroupByPayload<T extends AIConversationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIConversationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIConversationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIConversationGroupByOutputType[P]>
            : GetScalarType<T[P], AIConversationGroupByOutputType[P]>
        }
      >
    >


  export type AIConversationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    title?: boolean
    status?: boolean
    category?: boolean
    tags?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    messages?: boolean | AIConversation$messagesArgs<ExtArgs>
    tickets?: boolean | AIConversation$ticketsArgs<ExtArgs>
    _count?: boolean | AIConversationCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIConversation"]>

  export type AIConversationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    title?: boolean
    status?: boolean
    category?: boolean
    tags?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIConversation"]>

  export type AIConversationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    title?: boolean
    status?: boolean
    category?: boolean
    tags?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIConversation"]>

  export type AIConversationSelectScalar = {
    id?: boolean
    userId?: boolean
    title?: boolean
    status?: boolean
    category?: boolean
    tags?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AIConversationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "title" | "status" | "category" | "tags" | "createdAt" | "updatedAt", ExtArgs["result"]["aIConversation"]>
  export type AIConversationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    messages?: boolean | AIConversation$messagesArgs<ExtArgs>
    tickets?: boolean | AIConversation$ticketsArgs<ExtArgs>
    _count?: boolean | AIConversationCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AIConversationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type AIConversationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $AIConversationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIConversation"
    objects: {
      messages: Prisma.$AIMessagePayload<ExtArgs>[]
      tickets: Prisma.$AIAssistantTicketPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      title: string | null
      status: $Enums.AIConversationStatus
      category: $Enums.AIConversationCategory
      tags: string[]
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aIConversation"]>
    composites: {}
  }

  type AIConversationGetPayload<S extends boolean | null | undefined | AIConversationDefaultArgs> = $Result.GetResult<Prisma.$AIConversationPayload, S>

  type AIConversationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIConversationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIConversationCountAggregateInputType | true
    }

  export interface AIConversationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIConversation'], meta: { name: 'AIConversation' } }
    /**
     * Find zero or one AIConversation that matches the filter.
     * @param {AIConversationFindUniqueArgs} args - Arguments to find a AIConversation
     * @example
     * // Get one AIConversation
     * const aIConversation = await prisma.aIConversation.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIConversationFindUniqueArgs>(args: SelectSubset<T, AIConversationFindUniqueArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIConversation that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIConversationFindUniqueOrThrowArgs} args - Arguments to find a AIConversation
     * @example
     * // Get one AIConversation
     * const aIConversation = await prisma.aIConversation.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIConversationFindUniqueOrThrowArgs>(args: SelectSubset<T, AIConversationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIConversation 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 {AIConversationFindFirstArgs} args - Arguments to find a AIConversation
     * @example
     * // Get one AIConversation
     * const aIConversation = await prisma.aIConversation.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIConversationFindFirstArgs>(args?: SelectSubset<T, AIConversationFindFirstArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIConversation 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 {AIConversationFindFirstOrThrowArgs} args - Arguments to find a AIConversation
     * @example
     * // Get one AIConversation
     * const aIConversation = await prisma.aIConversation.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIConversationFindFirstOrThrowArgs>(args?: SelectSubset<T, AIConversationFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIConversations 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 {AIConversationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIConversations
     * const aIConversations = await prisma.aIConversation.findMany()
     * 
     * // Get first 10 AIConversations
     * const aIConversations = await prisma.aIConversation.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIConversationWithIdOnly = await prisma.aIConversation.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIConversationFindManyArgs>(args?: SelectSubset<T, AIConversationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIConversation.
     * @param {AIConversationCreateArgs} args - Arguments to create a AIConversation.
     * @example
     * // Create one AIConversation
     * const AIConversation = await prisma.aIConversation.create({
     *   data: {
     *     // ... data to create a AIConversation
     *   }
     * })
     * 
     */
    create<T extends AIConversationCreateArgs>(args: SelectSubset<T, AIConversationCreateArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIConversations.
     * @param {AIConversationCreateManyArgs} args - Arguments to create many AIConversations.
     * @example
     * // Create many AIConversations
     * const aIConversation = await prisma.aIConversation.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIConversationCreateManyArgs>(args?: SelectSubset<T, AIConversationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIConversations and returns the data saved in the database.
     * @param {AIConversationCreateManyAndReturnArgs} args - Arguments to create many AIConversations.
     * @example
     * // Create many AIConversations
     * const aIConversation = await prisma.aIConversation.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIConversations and only return the `id`
     * const aIConversationWithIdOnly = await prisma.aIConversation.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 AIConversationCreateManyAndReturnArgs>(args?: SelectSubset<T, AIConversationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIConversation.
     * @param {AIConversationDeleteArgs} args - Arguments to delete one AIConversation.
     * @example
     * // Delete one AIConversation
     * const AIConversation = await prisma.aIConversation.delete({
     *   where: {
     *     // ... filter to delete one AIConversation
     *   }
     * })
     * 
     */
    delete<T extends AIConversationDeleteArgs>(args: SelectSubset<T, AIConversationDeleteArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIConversation.
     * @param {AIConversationUpdateArgs} args - Arguments to update one AIConversation.
     * @example
     * // Update one AIConversation
     * const aIConversation = await prisma.aIConversation.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIConversationUpdateArgs>(args: SelectSubset<T, AIConversationUpdateArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIConversations.
     * @param {AIConversationDeleteManyArgs} args - Arguments to filter AIConversations to delete.
     * @example
     * // Delete a few AIConversations
     * const { count } = await prisma.aIConversation.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIConversationDeleteManyArgs>(args?: SelectSubset<T, AIConversationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIConversations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIConversationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIConversations
     * const aIConversation = await prisma.aIConversation.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIConversationUpdateManyArgs>(args: SelectSubset<T, AIConversationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIConversations and returns the data updated in the database.
     * @param {AIConversationUpdateManyAndReturnArgs} args - Arguments to update many AIConversations.
     * @example
     * // Update many AIConversations
     * const aIConversation = await prisma.aIConversation.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIConversations and only return the `id`
     * const aIConversationWithIdOnly = await prisma.aIConversation.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 AIConversationUpdateManyAndReturnArgs>(args: SelectSubset<T, AIConversationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIConversation.
     * @param {AIConversationUpsertArgs} args - Arguments to update or create a AIConversation.
     * @example
     * // Update or create a AIConversation
     * const aIConversation = await prisma.aIConversation.upsert({
     *   create: {
     *     // ... data to create a AIConversation
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIConversation we want to update
     *   }
     * })
     */
    upsert<T extends AIConversationUpsertArgs>(args: SelectSubset<T, AIConversationUpsertArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIConversations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIConversationCountArgs} args - Arguments to filter AIConversations to count.
     * @example
     * // Count the number of AIConversations
     * const count = await prisma.aIConversation.count({
     *   where: {
     *     // ... the filter for the AIConversations we want to count
     *   }
     * })
    **/
    count<T extends AIConversationCountArgs>(
      args?: Subset<T, AIConversationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIConversationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIConversation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIConversationAggregateArgs} 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 AIConversationAggregateArgs>(args: Subset<T, AIConversationAggregateArgs>): Prisma.PrismaPromise<GetAIConversationAggregateType<T>>

    /**
     * Group by AIConversation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIConversationGroupByArgs} 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 AIConversationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIConversationGroupByArgs['orderBy'] }
        : { orderBy?: AIConversationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIConversationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIConversationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIConversation model
   */
  readonly fields: AIConversationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIConversation.
   * 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__AIConversationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    messages<T extends AIConversation$messagesArgs<ExtArgs> = {}>(args?: Subset<T, AIConversation$messagesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    tickets<T extends AIConversation$ticketsArgs<ExtArgs> = {}>(args?: Subset<T, AIConversation$ticketsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIConversation model
   */
  interface AIConversationFieldRefs {
    readonly id: FieldRef<"AIConversation", 'String'>
    readonly userId: FieldRef<"AIConversation", 'String'>
    readonly title: FieldRef<"AIConversation", 'String'>
    readonly status: FieldRef<"AIConversation", 'AIConversationStatus'>
    readonly category: FieldRef<"AIConversation", 'AIConversationCategory'>
    readonly tags: FieldRef<"AIConversation", 'String[]'>
    readonly createdAt: FieldRef<"AIConversation", 'DateTime'>
    readonly updatedAt: FieldRef<"AIConversation", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIConversation findUnique
   */
  export type AIConversationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * Filter, which AIConversation to fetch.
     */
    where: AIConversationWhereUniqueInput
  }

  /**
   * AIConversation findUniqueOrThrow
   */
  export type AIConversationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * Filter, which AIConversation to fetch.
     */
    where: AIConversationWhereUniqueInput
  }

  /**
   * AIConversation findFirst
   */
  export type AIConversationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * Filter, which AIConversation to fetch.
     */
    where?: AIConversationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIConversations to fetch.
     */
    orderBy?: AIConversationOrderByWithRelationInput | AIConversationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIConversations.
     */
    cursor?: AIConversationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIConversations 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` AIConversations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIConversations.
     */
    distinct?: AIConversationScalarFieldEnum | AIConversationScalarFieldEnum[]
  }

  /**
   * AIConversation findFirstOrThrow
   */
  export type AIConversationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * Filter, which AIConversation to fetch.
     */
    where?: AIConversationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIConversations to fetch.
     */
    orderBy?: AIConversationOrderByWithRelationInput | AIConversationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIConversations.
     */
    cursor?: AIConversationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIConversations 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` AIConversations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIConversations.
     */
    distinct?: AIConversationScalarFieldEnum | AIConversationScalarFieldEnum[]
  }

  /**
   * AIConversation findMany
   */
  export type AIConversationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * Filter, which AIConversations to fetch.
     */
    where?: AIConversationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIConversations to fetch.
     */
    orderBy?: AIConversationOrderByWithRelationInput | AIConversationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIConversations.
     */
    cursor?: AIConversationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIConversations 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` AIConversations.
     */
    skip?: number
    distinct?: AIConversationScalarFieldEnum | AIConversationScalarFieldEnum[]
  }

  /**
   * AIConversation create
   */
  export type AIConversationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * The data needed to create a AIConversation.
     */
    data: XOR<AIConversationCreateInput, AIConversationUncheckedCreateInput>
  }

  /**
   * AIConversation createMany
   */
  export type AIConversationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIConversations.
     */
    data: AIConversationCreateManyInput | AIConversationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIConversation createManyAndReturn
   */
  export type AIConversationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * The data used to create many AIConversations.
     */
    data: AIConversationCreateManyInput | AIConversationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIConversation update
   */
  export type AIConversationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * The data needed to update a AIConversation.
     */
    data: XOR<AIConversationUpdateInput, AIConversationUncheckedUpdateInput>
    /**
     * Choose, which AIConversation to update.
     */
    where: AIConversationWhereUniqueInput
  }

  /**
   * AIConversation updateMany
   */
  export type AIConversationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIConversations.
     */
    data: XOR<AIConversationUpdateManyMutationInput, AIConversationUncheckedUpdateManyInput>
    /**
     * Filter which AIConversations to update
     */
    where?: AIConversationWhereInput
    /**
     * Limit how many AIConversations to update.
     */
    limit?: number
  }

  /**
   * AIConversation updateManyAndReturn
   */
  export type AIConversationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * The data used to update AIConversations.
     */
    data: XOR<AIConversationUpdateManyMutationInput, AIConversationUncheckedUpdateManyInput>
    /**
     * Filter which AIConversations to update
     */
    where?: AIConversationWhereInput
    /**
     * Limit how many AIConversations to update.
     */
    limit?: number
  }

  /**
   * AIConversation upsert
   */
  export type AIConversationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * The filter to search for the AIConversation to update in case it exists.
     */
    where: AIConversationWhereUniqueInput
    /**
     * In case the AIConversation found by the `where` argument doesn't exist, create a new AIConversation with this data.
     */
    create: XOR<AIConversationCreateInput, AIConversationUncheckedCreateInput>
    /**
     * In case the AIConversation was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIConversationUpdateInput, AIConversationUncheckedUpdateInput>
  }

  /**
   * AIConversation delete
   */
  export type AIConversationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
    /**
     * Filter which AIConversation to delete.
     */
    where: AIConversationWhereUniqueInput
  }

  /**
   * AIConversation deleteMany
   */
  export type AIConversationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIConversations to delete
     */
    where?: AIConversationWhereInput
    /**
     * Limit how many AIConversations to delete.
     */
    limit?: number
  }

  /**
   * AIConversation.messages
   */
  export type AIConversation$messagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    where?: AIMessageWhereInput
    orderBy?: AIMessageOrderByWithRelationInput | AIMessageOrderByWithRelationInput[]
    cursor?: AIMessageWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AIMessageScalarFieldEnum | AIMessageScalarFieldEnum[]
  }

  /**
   * AIConversation.tickets
   */
  export type AIConversation$ticketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    where?: AIAssistantTicketWhereInput
    orderBy?: AIAssistantTicketOrderByWithRelationInput | AIAssistantTicketOrderByWithRelationInput[]
    cursor?: AIAssistantTicketWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AIAssistantTicketScalarFieldEnum | AIAssistantTicketScalarFieldEnum[]
  }

  /**
   * AIConversation without action
   */
  export type AIConversationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConversation
     */
    select?: AIConversationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConversation
     */
    omit?: AIConversationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIConversationInclude<ExtArgs> | null
  }


  /**
   * Model AIMessage
   */

  export type AggregateAIMessage = {
    _count: AIMessageCountAggregateOutputType | null
    _avg: AIMessageAvgAggregateOutputType | null
    _sum: AIMessageSumAggregateOutputType | null
    _min: AIMessageMinAggregateOutputType | null
    _max: AIMessageMaxAggregateOutputType | null
  }

  export type AIMessageAvgAggregateOutputType = {
    tokens: number | null
  }

  export type AIMessageSumAggregateOutputType = {
    tokens: number | null
  }

  export type AIMessageMinAggregateOutputType = {
    id: string | null
    conversationId: string | null
    role: $Enums.AIMessageRole | null
    source: $Enums.AIMessageSource | null
    content: string | null
    tokens: number | null
    createdAt: Date | null
  }

  export type AIMessageMaxAggregateOutputType = {
    id: string | null
    conversationId: string | null
    role: $Enums.AIMessageRole | null
    source: $Enums.AIMessageSource | null
    content: string | null
    tokens: number | null
    createdAt: Date | null
  }

  export type AIMessageCountAggregateOutputType = {
    id: number
    conversationId: number
    role: number
    source: number
    content: number
    tokens: number
    metadata: number
    createdAt: number
    _all: number
  }


  export type AIMessageAvgAggregateInputType = {
    tokens?: true
  }

  export type AIMessageSumAggregateInputType = {
    tokens?: true
  }

  export type AIMessageMinAggregateInputType = {
    id?: true
    conversationId?: true
    role?: true
    source?: true
    content?: true
    tokens?: true
    createdAt?: true
  }

  export type AIMessageMaxAggregateInputType = {
    id?: true
    conversationId?: true
    role?: true
    source?: true
    content?: true
    tokens?: true
    createdAt?: true
  }

  export type AIMessageCountAggregateInputType = {
    id?: true
    conversationId?: true
    role?: true
    source?: true
    content?: true
    tokens?: true
    metadata?: true
    createdAt?: true
    _all?: true
  }

  export type AIMessageAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIMessage to aggregate.
     */
    where?: AIMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIMessages to fetch.
     */
    orderBy?: AIMessageOrderByWithRelationInput | AIMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIMessages 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` AIMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIMessages
    **/
    _count?: true | AIMessageCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AIMessageAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AIMessageSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIMessageMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIMessageMaxAggregateInputType
  }

  export type GetAIMessageAggregateType<T extends AIMessageAggregateArgs> = {
        [P in keyof T & keyof AggregateAIMessage]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIMessage[P]>
      : GetScalarType<T[P], AggregateAIMessage[P]>
  }




  export type AIMessageGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIMessageWhereInput
    orderBy?: AIMessageOrderByWithAggregationInput | AIMessageOrderByWithAggregationInput[]
    by: AIMessageScalarFieldEnum[] | AIMessageScalarFieldEnum
    having?: AIMessageScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIMessageCountAggregateInputType | true
    _avg?: AIMessageAvgAggregateInputType
    _sum?: AIMessageSumAggregateInputType
    _min?: AIMessageMinAggregateInputType
    _max?: AIMessageMaxAggregateInputType
  }

  export type AIMessageGroupByOutputType = {
    id: string
    conversationId: string
    role: $Enums.AIMessageRole
    source: $Enums.AIMessageSource
    content: string
    tokens: number | null
    metadata: JsonValue | null
    createdAt: Date
    _count: AIMessageCountAggregateOutputType | null
    _avg: AIMessageAvgAggregateOutputType | null
    _sum: AIMessageSumAggregateOutputType | null
    _min: AIMessageMinAggregateOutputType | null
    _max: AIMessageMaxAggregateOutputType | null
  }

  type GetAIMessageGroupByPayload<T extends AIMessageGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIMessageGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIMessageGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIMessageGroupByOutputType[P]>
            : GetScalarType<T[P], AIMessageGroupByOutputType[P]>
        }
      >
    >


  export type AIMessageSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    conversationId?: boolean
    role?: boolean
    source?: boolean
    content?: boolean
    tokens?: boolean
    metadata?: boolean
    createdAt?: boolean
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
    feedback?: boolean | AIMessage$feedbackArgs<ExtArgs>
    knowledgeFix?: boolean | AIMessage$knowledgeFixArgs<ExtArgs>
  }, ExtArgs["result"]["aIMessage"]>

  export type AIMessageSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    conversationId?: boolean
    role?: boolean
    source?: boolean
    content?: boolean
    tokens?: boolean
    metadata?: boolean
    createdAt?: boolean
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIMessage"]>

  export type AIMessageSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    conversationId?: boolean
    role?: boolean
    source?: boolean
    content?: boolean
    tokens?: boolean
    metadata?: boolean
    createdAt?: boolean
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIMessage"]>

  export type AIMessageSelectScalar = {
    id?: boolean
    conversationId?: boolean
    role?: boolean
    source?: boolean
    content?: boolean
    tokens?: boolean
    metadata?: boolean
    createdAt?: boolean
  }

  export type AIMessageOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "conversationId" | "role" | "source" | "content" | "tokens" | "metadata" | "createdAt", ExtArgs["result"]["aIMessage"]>
  export type AIMessageInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
    feedback?: boolean | AIMessage$feedbackArgs<ExtArgs>
    knowledgeFix?: boolean | AIMessage$knowledgeFixArgs<ExtArgs>
  }
  export type AIMessageIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }
  export type AIMessageIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }

  export type $AIMessagePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIMessage"
    objects: {
      conversation: Prisma.$AIConversationPayload<ExtArgs>
      feedback: Prisma.$AIMessageFeedbackPayload<ExtArgs> | null
      knowledgeFix: Prisma.$AIKnowledgeFixPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      conversationId: string
      role: $Enums.AIMessageRole
      source: $Enums.AIMessageSource
      content: string
      tokens: number | null
      metadata: Prisma.JsonValue | null
      createdAt: Date
    }, ExtArgs["result"]["aIMessage"]>
    composites: {}
  }

  type AIMessageGetPayload<S extends boolean | null | undefined | AIMessageDefaultArgs> = $Result.GetResult<Prisma.$AIMessagePayload, S>

  type AIMessageCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIMessageFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIMessageCountAggregateInputType | true
    }

  export interface AIMessageDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIMessage'], meta: { name: 'AIMessage' } }
    /**
     * Find zero or one AIMessage that matches the filter.
     * @param {AIMessageFindUniqueArgs} args - Arguments to find a AIMessage
     * @example
     * // Get one AIMessage
     * const aIMessage = await prisma.aIMessage.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIMessageFindUniqueArgs>(args: SelectSubset<T, AIMessageFindUniqueArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIMessage that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIMessageFindUniqueOrThrowArgs} args - Arguments to find a AIMessage
     * @example
     * // Get one AIMessage
     * const aIMessage = await prisma.aIMessage.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIMessageFindUniqueOrThrowArgs>(args: SelectSubset<T, AIMessageFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIMessage 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 {AIMessageFindFirstArgs} args - Arguments to find a AIMessage
     * @example
     * // Get one AIMessage
     * const aIMessage = await prisma.aIMessage.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIMessageFindFirstArgs>(args?: SelectSubset<T, AIMessageFindFirstArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIMessage 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 {AIMessageFindFirstOrThrowArgs} args - Arguments to find a AIMessage
     * @example
     * // Get one AIMessage
     * const aIMessage = await prisma.aIMessage.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIMessageFindFirstOrThrowArgs>(args?: SelectSubset<T, AIMessageFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIMessages 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 {AIMessageFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIMessages
     * const aIMessages = await prisma.aIMessage.findMany()
     * 
     * // Get first 10 AIMessages
     * const aIMessages = await prisma.aIMessage.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIMessageWithIdOnly = await prisma.aIMessage.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIMessageFindManyArgs>(args?: SelectSubset<T, AIMessageFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIMessage.
     * @param {AIMessageCreateArgs} args - Arguments to create a AIMessage.
     * @example
     * // Create one AIMessage
     * const AIMessage = await prisma.aIMessage.create({
     *   data: {
     *     // ... data to create a AIMessage
     *   }
     * })
     * 
     */
    create<T extends AIMessageCreateArgs>(args: SelectSubset<T, AIMessageCreateArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIMessages.
     * @param {AIMessageCreateManyArgs} args - Arguments to create many AIMessages.
     * @example
     * // Create many AIMessages
     * const aIMessage = await prisma.aIMessage.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIMessageCreateManyArgs>(args?: SelectSubset<T, AIMessageCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIMessages and returns the data saved in the database.
     * @param {AIMessageCreateManyAndReturnArgs} args - Arguments to create many AIMessages.
     * @example
     * // Create many AIMessages
     * const aIMessage = await prisma.aIMessage.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIMessages and only return the `id`
     * const aIMessageWithIdOnly = await prisma.aIMessage.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 AIMessageCreateManyAndReturnArgs>(args?: SelectSubset<T, AIMessageCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIMessage.
     * @param {AIMessageDeleteArgs} args - Arguments to delete one AIMessage.
     * @example
     * // Delete one AIMessage
     * const AIMessage = await prisma.aIMessage.delete({
     *   where: {
     *     // ... filter to delete one AIMessage
     *   }
     * })
     * 
     */
    delete<T extends AIMessageDeleteArgs>(args: SelectSubset<T, AIMessageDeleteArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIMessage.
     * @param {AIMessageUpdateArgs} args - Arguments to update one AIMessage.
     * @example
     * // Update one AIMessage
     * const aIMessage = await prisma.aIMessage.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIMessageUpdateArgs>(args: SelectSubset<T, AIMessageUpdateArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIMessages.
     * @param {AIMessageDeleteManyArgs} args - Arguments to filter AIMessages to delete.
     * @example
     * // Delete a few AIMessages
     * const { count } = await prisma.aIMessage.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIMessageDeleteManyArgs>(args?: SelectSubset<T, AIMessageDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIMessages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIMessageUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIMessages
     * const aIMessage = await prisma.aIMessage.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIMessageUpdateManyArgs>(args: SelectSubset<T, AIMessageUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIMessages and returns the data updated in the database.
     * @param {AIMessageUpdateManyAndReturnArgs} args - Arguments to update many AIMessages.
     * @example
     * // Update many AIMessages
     * const aIMessage = await prisma.aIMessage.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIMessages and only return the `id`
     * const aIMessageWithIdOnly = await prisma.aIMessage.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 AIMessageUpdateManyAndReturnArgs>(args: SelectSubset<T, AIMessageUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIMessage.
     * @param {AIMessageUpsertArgs} args - Arguments to update or create a AIMessage.
     * @example
     * // Update or create a AIMessage
     * const aIMessage = await prisma.aIMessage.upsert({
     *   create: {
     *     // ... data to create a AIMessage
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIMessage we want to update
     *   }
     * })
     */
    upsert<T extends AIMessageUpsertArgs>(args: SelectSubset<T, AIMessageUpsertArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIMessages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIMessageCountArgs} args - Arguments to filter AIMessages to count.
     * @example
     * // Count the number of AIMessages
     * const count = await prisma.aIMessage.count({
     *   where: {
     *     // ... the filter for the AIMessages we want to count
     *   }
     * })
    **/
    count<T extends AIMessageCountArgs>(
      args?: Subset<T, AIMessageCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIMessageCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIMessage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIMessageAggregateArgs} 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 AIMessageAggregateArgs>(args: Subset<T, AIMessageAggregateArgs>): Prisma.PrismaPromise<GetAIMessageAggregateType<T>>

    /**
     * Group by AIMessage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIMessageGroupByArgs} 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 AIMessageGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIMessageGroupByArgs['orderBy'] }
        : { orderBy?: AIMessageGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIMessageGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIMessageGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIMessage model
   */
  readonly fields: AIMessageFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIMessage.
   * 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__AIMessageClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    conversation<T extends AIConversationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AIConversationDefaultArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    feedback<T extends AIMessage$feedbackArgs<ExtArgs> = {}>(args?: Subset<T, AIMessage$feedbackArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    knowledgeFix<T extends AIMessage$knowledgeFixArgs<ExtArgs> = {}>(args?: Subset<T, AIMessage$knowledgeFixArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIMessage model
   */
  interface AIMessageFieldRefs {
    readonly id: FieldRef<"AIMessage", 'String'>
    readonly conversationId: FieldRef<"AIMessage", 'String'>
    readonly role: FieldRef<"AIMessage", 'AIMessageRole'>
    readonly source: FieldRef<"AIMessage", 'AIMessageSource'>
    readonly content: FieldRef<"AIMessage", 'String'>
    readonly tokens: FieldRef<"AIMessage", 'Int'>
    readonly metadata: FieldRef<"AIMessage", 'Json'>
    readonly createdAt: FieldRef<"AIMessage", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIMessage findUnique
   */
  export type AIMessageFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * Filter, which AIMessage to fetch.
     */
    where: AIMessageWhereUniqueInput
  }

  /**
   * AIMessage findUniqueOrThrow
   */
  export type AIMessageFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * Filter, which AIMessage to fetch.
     */
    where: AIMessageWhereUniqueInput
  }

  /**
   * AIMessage findFirst
   */
  export type AIMessageFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * Filter, which AIMessage to fetch.
     */
    where?: AIMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIMessages to fetch.
     */
    orderBy?: AIMessageOrderByWithRelationInput | AIMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIMessages.
     */
    cursor?: AIMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIMessages 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` AIMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIMessages.
     */
    distinct?: AIMessageScalarFieldEnum | AIMessageScalarFieldEnum[]
  }

  /**
   * AIMessage findFirstOrThrow
   */
  export type AIMessageFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * Filter, which AIMessage to fetch.
     */
    where?: AIMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIMessages to fetch.
     */
    orderBy?: AIMessageOrderByWithRelationInput | AIMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIMessages.
     */
    cursor?: AIMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIMessages 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` AIMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIMessages.
     */
    distinct?: AIMessageScalarFieldEnum | AIMessageScalarFieldEnum[]
  }

  /**
   * AIMessage findMany
   */
  export type AIMessageFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * Filter, which AIMessages to fetch.
     */
    where?: AIMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIMessages to fetch.
     */
    orderBy?: AIMessageOrderByWithRelationInput | AIMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIMessages.
     */
    cursor?: AIMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIMessages 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` AIMessages.
     */
    skip?: number
    distinct?: AIMessageScalarFieldEnum | AIMessageScalarFieldEnum[]
  }

  /**
   * AIMessage create
   */
  export type AIMessageCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * The data needed to create a AIMessage.
     */
    data: XOR<AIMessageCreateInput, AIMessageUncheckedCreateInput>
  }

  /**
   * AIMessage createMany
   */
  export type AIMessageCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIMessages.
     */
    data: AIMessageCreateManyInput | AIMessageCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIMessage createManyAndReturn
   */
  export type AIMessageCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * The data used to create many AIMessages.
     */
    data: AIMessageCreateManyInput | AIMessageCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIMessage update
   */
  export type AIMessageUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * The data needed to update a AIMessage.
     */
    data: XOR<AIMessageUpdateInput, AIMessageUncheckedUpdateInput>
    /**
     * Choose, which AIMessage to update.
     */
    where: AIMessageWhereUniqueInput
  }

  /**
   * AIMessage updateMany
   */
  export type AIMessageUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIMessages.
     */
    data: XOR<AIMessageUpdateManyMutationInput, AIMessageUncheckedUpdateManyInput>
    /**
     * Filter which AIMessages to update
     */
    where?: AIMessageWhereInput
    /**
     * Limit how many AIMessages to update.
     */
    limit?: number
  }

  /**
   * AIMessage updateManyAndReturn
   */
  export type AIMessageUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * The data used to update AIMessages.
     */
    data: XOR<AIMessageUpdateManyMutationInput, AIMessageUncheckedUpdateManyInput>
    /**
     * Filter which AIMessages to update
     */
    where?: AIMessageWhereInput
    /**
     * Limit how many AIMessages to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIMessage upsert
   */
  export type AIMessageUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * The filter to search for the AIMessage to update in case it exists.
     */
    where: AIMessageWhereUniqueInput
    /**
     * In case the AIMessage found by the `where` argument doesn't exist, create a new AIMessage with this data.
     */
    create: XOR<AIMessageCreateInput, AIMessageUncheckedCreateInput>
    /**
     * In case the AIMessage was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIMessageUpdateInput, AIMessageUncheckedUpdateInput>
  }

  /**
   * AIMessage delete
   */
  export type AIMessageDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
    /**
     * Filter which AIMessage to delete.
     */
    where: AIMessageWhereUniqueInput
  }

  /**
   * AIMessage deleteMany
   */
  export type AIMessageDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIMessages to delete
     */
    where?: AIMessageWhereInput
    /**
     * Limit how many AIMessages to delete.
     */
    limit?: number
  }

  /**
   * AIMessage.feedback
   */
  export type AIMessage$feedbackArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    where?: AIMessageFeedbackWhereInput
  }

  /**
   * AIMessage.knowledgeFix
   */
  export type AIMessage$knowledgeFixArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    where?: AIKnowledgeFixWhereInput
  }

  /**
   * AIMessage without action
   */
  export type AIMessageDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessage
     */
    select?: AIMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessage
     */
    omit?: AIMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageInclude<ExtArgs> | null
  }


  /**
   * Model AIMessageFeedback
   */

  export type AggregateAIMessageFeedback = {
    _count: AIMessageFeedbackCountAggregateOutputType | null
    _min: AIMessageFeedbackMinAggregateOutputType | null
    _max: AIMessageFeedbackMaxAggregateOutputType | null
  }

  export type AIMessageFeedbackMinAggregateOutputType = {
    id: string | null
    messageId: string | null
    type: $Enums.AIFeedbackType | null
    comment: string | null
    createdAt: Date | null
  }

  export type AIMessageFeedbackMaxAggregateOutputType = {
    id: string | null
    messageId: string | null
    type: $Enums.AIFeedbackType | null
    comment: string | null
    createdAt: Date | null
  }

  export type AIMessageFeedbackCountAggregateOutputType = {
    id: number
    messageId: number
    type: number
    comment: number
    createdAt: number
    _all: number
  }


  export type AIMessageFeedbackMinAggregateInputType = {
    id?: true
    messageId?: true
    type?: true
    comment?: true
    createdAt?: true
  }

  export type AIMessageFeedbackMaxAggregateInputType = {
    id?: true
    messageId?: true
    type?: true
    comment?: true
    createdAt?: true
  }

  export type AIMessageFeedbackCountAggregateInputType = {
    id?: true
    messageId?: true
    type?: true
    comment?: true
    createdAt?: true
    _all?: true
  }

  export type AIMessageFeedbackAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIMessageFeedback to aggregate.
     */
    where?: AIMessageFeedbackWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIMessageFeedbacks to fetch.
     */
    orderBy?: AIMessageFeedbackOrderByWithRelationInput | AIMessageFeedbackOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIMessageFeedbackWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIMessageFeedbacks 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` AIMessageFeedbacks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIMessageFeedbacks
    **/
    _count?: true | AIMessageFeedbackCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIMessageFeedbackMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIMessageFeedbackMaxAggregateInputType
  }

  export type GetAIMessageFeedbackAggregateType<T extends AIMessageFeedbackAggregateArgs> = {
        [P in keyof T & keyof AggregateAIMessageFeedback]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIMessageFeedback[P]>
      : GetScalarType<T[P], AggregateAIMessageFeedback[P]>
  }




  export type AIMessageFeedbackGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIMessageFeedbackWhereInput
    orderBy?: AIMessageFeedbackOrderByWithAggregationInput | AIMessageFeedbackOrderByWithAggregationInput[]
    by: AIMessageFeedbackScalarFieldEnum[] | AIMessageFeedbackScalarFieldEnum
    having?: AIMessageFeedbackScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIMessageFeedbackCountAggregateInputType | true
    _min?: AIMessageFeedbackMinAggregateInputType
    _max?: AIMessageFeedbackMaxAggregateInputType
  }

  export type AIMessageFeedbackGroupByOutputType = {
    id: string
    messageId: string
    type: $Enums.AIFeedbackType
    comment: string | null
    createdAt: Date
    _count: AIMessageFeedbackCountAggregateOutputType | null
    _min: AIMessageFeedbackMinAggregateOutputType | null
    _max: AIMessageFeedbackMaxAggregateOutputType | null
  }

  type GetAIMessageFeedbackGroupByPayload<T extends AIMessageFeedbackGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIMessageFeedbackGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIMessageFeedbackGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIMessageFeedbackGroupByOutputType[P]>
            : GetScalarType<T[P], AIMessageFeedbackGroupByOutputType[P]>
        }
      >
    >


  export type AIMessageFeedbackSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    messageId?: boolean
    type?: boolean
    comment?: boolean
    createdAt?: boolean
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIMessageFeedback"]>

  export type AIMessageFeedbackSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    messageId?: boolean
    type?: boolean
    comment?: boolean
    createdAt?: boolean
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIMessageFeedback"]>

  export type AIMessageFeedbackSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    messageId?: boolean
    type?: boolean
    comment?: boolean
    createdAt?: boolean
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIMessageFeedback"]>

  export type AIMessageFeedbackSelectScalar = {
    id?: boolean
    messageId?: boolean
    type?: boolean
    comment?: boolean
    createdAt?: boolean
  }

  export type AIMessageFeedbackOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "messageId" | "type" | "comment" | "createdAt", ExtArgs["result"]["aIMessageFeedback"]>
  export type AIMessageFeedbackInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }
  export type AIMessageFeedbackIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }
  export type AIMessageFeedbackIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }

  export type $AIMessageFeedbackPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIMessageFeedback"
    objects: {
      message: Prisma.$AIMessagePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      messageId: string
      type: $Enums.AIFeedbackType
      comment: string | null
      createdAt: Date
    }, ExtArgs["result"]["aIMessageFeedback"]>
    composites: {}
  }

  type AIMessageFeedbackGetPayload<S extends boolean | null | undefined | AIMessageFeedbackDefaultArgs> = $Result.GetResult<Prisma.$AIMessageFeedbackPayload, S>

  type AIMessageFeedbackCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIMessageFeedbackFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIMessageFeedbackCountAggregateInputType | true
    }

  export interface AIMessageFeedbackDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIMessageFeedback'], meta: { name: 'AIMessageFeedback' } }
    /**
     * Find zero or one AIMessageFeedback that matches the filter.
     * @param {AIMessageFeedbackFindUniqueArgs} args - Arguments to find a AIMessageFeedback
     * @example
     * // Get one AIMessageFeedback
     * const aIMessageFeedback = await prisma.aIMessageFeedback.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIMessageFeedbackFindUniqueArgs>(args: SelectSubset<T, AIMessageFeedbackFindUniqueArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIMessageFeedback that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIMessageFeedbackFindUniqueOrThrowArgs} args - Arguments to find a AIMessageFeedback
     * @example
     * // Get one AIMessageFeedback
     * const aIMessageFeedback = await prisma.aIMessageFeedback.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIMessageFeedbackFindUniqueOrThrowArgs>(args: SelectSubset<T, AIMessageFeedbackFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIMessageFeedback 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 {AIMessageFeedbackFindFirstArgs} args - Arguments to find a AIMessageFeedback
     * @example
     * // Get one AIMessageFeedback
     * const aIMessageFeedback = await prisma.aIMessageFeedback.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIMessageFeedbackFindFirstArgs>(args?: SelectSubset<T, AIMessageFeedbackFindFirstArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIMessageFeedback 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 {AIMessageFeedbackFindFirstOrThrowArgs} args - Arguments to find a AIMessageFeedback
     * @example
     * // Get one AIMessageFeedback
     * const aIMessageFeedback = await prisma.aIMessageFeedback.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIMessageFeedbackFindFirstOrThrowArgs>(args?: SelectSubset<T, AIMessageFeedbackFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIMessageFeedbacks 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 {AIMessageFeedbackFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIMessageFeedbacks
     * const aIMessageFeedbacks = await prisma.aIMessageFeedback.findMany()
     * 
     * // Get first 10 AIMessageFeedbacks
     * const aIMessageFeedbacks = await prisma.aIMessageFeedback.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIMessageFeedbackWithIdOnly = await prisma.aIMessageFeedback.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIMessageFeedbackFindManyArgs>(args?: SelectSubset<T, AIMessageFeedbackFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIMessageFeedback.
     * @param {AIMessageFeedbackCreateArgs} args - Arguments to create a AIMessageFeedback.
     * @example
     * // Create one AIMessageFeedback
     * const AIMessageFeedback = await prisma.aIMessageFeedback.create({
     *   data: {
     *     // ... data to create a AIMessageFeedback
     *   }
     * })
     * 
     */
    create<T extends AIMessageFeedbackCreateArgs>(args: SelectSubset<T, AIMessageFeedbackCreateArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIMessageFeedbacks.
     * @param {AIMessageFeedbackCreateManyArgs} args - Arguments to create many AIMessageFeedbacks.
     * @example
     * // Create many AIMessageFeedbacks
     * const aIMessageFeedback = await prisma.aIMessageFeedback.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIMessageFeedbackCreateManyArgs>(args?: SelectSubset<T, AIMessageFeedbackCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIMessageFeedbacks and returns the data saved in the database.
     * @param {AIMessageFeedbackCreateManyAndReturnArgs} args - Arguments to create many AIMessageFeedbacks.
     * @example
     * // Create many AIMessageFeedbacks
     * const aIMessageFeedback = await prisma.aIMessageFeedback.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIMessageFeedbacks and only return the `id`
     * const aIMessageFeedbackWithIdOnly = await prisma.aIMessageFeedback.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 AIMessageFeedbackCreateManyAndReturnArgs>(args?: SelectSubset<T, AIMessageFeedbackCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIMessageFeedback.
     * @param {AIMessageFeedbackDeleteArgs} args - Arguments to delete one AIMessageFeedback.
     * @example
     * // Delete one AIMessageFeedback
     * const AIMessageFeedback = await prisma.aIMessageFeedback.delete({
     *   where: {
     *     // ... filter to delete one AIMessageFeedback
     *   }
     * })
     * 
     */
    delete<T extends AIMessageFeedbackDeleteArgs>(args: SelectSubset<T, AIMessageFeedbackDeleteArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIMessageFeedback.
     * @param {AIMessageFeedbackUpdateArgs} args - Arguments to update one AIMessageFeedback.
     * @example
     * // Update one AIMessageFeedback
     * const aIMessageFeedback = await prisma.aIMessageFeedback.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIMessageFeedbackUpdateArgs>(args: SelectSubset<T, AIMessageFeedbackUpdateArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIMessageFeedbacks.
     * @param {AIMessageFeedbackDeleteManyArgs} args - Arguments to filter AIMessageFeedbacks to delete.
     * @example
     * // Delete a few AIMessageFeedbacks
     * const { count } = await prisma.aIMessageFeedback.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIMessageFeedbackDeleteManyArgs>(args?: SelectSubset<T, AIMessageFeedbackDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIMessageFeedbacks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIMessageFeedbackUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIMessageFeedbacks
     * const aIMessageFeedback = await prisma.aIMessageFeedback.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIMessageFeedbackUpdateManyArgs>(args: SelectSubset<T, AIMessageFeedbackUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIMessageFeedbacks and returns the data updated in the database.
     * @param {AIMessageFeedbackUpdateManyAndReturnArgs} args - Arguments to update many AIMessageFeedbacks.
     * @example
     * // Update many AIMessageFeedbacks
     * const aIMessageFeedback = await prisma.aIMessageFeedback.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIMessageFeedbacks and only return the `id`
     * const aIMessageFeedbackWithIdOnly = await prisma.aIMessageFeedback.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 AIMessageFeedbackUpdateManyAndReturnArgs>(args: SelectSubset<T, AIMessageFeedbackUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIMessageFeedback.
     * @param {AIMessageFeedbackUpsertArgs} args - Arguments to update or create a AIMessageFeedback.
     * @example
     * // Update or create a AIMessageFeedback
     * const aIMessageFeedback = await prisma.aIMessageFeedback.upsert({
     *   create: {
     *     // ... data to create a AIMessageFeedback
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIMessageFeedback we want to update
     *   }
     * })
     */
    upsert<T extends AIMessageFeedbackUpsertArgs>(args: SelectSubset<T, AIMessageFeedbackUpsertArgs<ExtArgs>>): Prisma__AIMessageFeedbackClient<$Result.GetResult<Prisma.$AIMessageFeedbackPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIMessageFeedbacks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIMessageFeedbackCountArgs} args - Arguments to filter AIMessageFeedbacks to count.
     * @example
     * // Count the number of AIMessageFeedbacks
     * const count = await prisma.aIMessageFeedback.count({
     *   where: {
     *     // ... the filter for the AIMessageFeedbacks we want to count
     *   }
     * })
    **/
    count<T extends AIMessageFeedbackCountArgs>(
      args?: Subset<T, AIMessageFeedbackCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIMessageFeedbackCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIMessageFeedback.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIMessageFeedbackAggregateArgs} 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 AIMessageFeedbackAggregateArgs>(args: Subset<T, AIMessageFeedbackAggregateArgs>): Prisma.PrismaPromise<GetAIMessageFeedbackAggregateType<T>>

    /**
     * Group by AIMessageFeedback.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIMessageFeedbackGroupByArgs} 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 AIMessageFeedbackGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIMessageFeedbackGroupByArgs['orderBy'] }
        : { orderBy?: AIMessageFeedbackGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIMessageFeedbackGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIMessageFeedbackGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIMessageFeedback model
   */
  readonly fields: AIMessageFeedbackFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIMessageFeedback.
   * 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__AIMessageFeedbackClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    message<T extends AIMessageDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AIMessageDefaultArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIMessageFeedback model
   */
  interface AIMessageFeedbackFieldRefs {
    readonly id: FieldRef<"AIMessageFeedback", 'String'>
    readonly messageId: FieldRef<"AIMessageFeedback", 'String'>
    readonly type: FieldRef<"AIMessageFeedback", 'AIFeedbackType'>
    readonly comment: FieldRef<"AIMessageFeedback", 'String'>
    readonly createdAt: FieldRef<"AIMessageFeedback", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIMessageFeedback findUnique
   */
  export type AIMessageFeedbackFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * Filter, which AIMessageFeedback to fetch.
     */
    where: AIMessageFeedbackWhereUniqueInput
  }

  /**
   * AIMessageFeedback findUniqueOrThrow
   */
  export type AIMessageFeedbackFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * Filter, which AIMessageFeedback to fetch.
     */
    where: AIMessageFeedbackWhereUniqueInput
  }

  /**
   * AIMessageFeedback findFirst
   */
  export type AIMessageFeedbackFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * Filter, which AIMessageFeedback to fetch.
     */
    where?: AIMessageFeedbackWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIMessageFeedbacks to fetch.
     */
    orderBy?: AIMessageFeedbackOrderByWithRelationInput | AIMessageFeedbackOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIMessageFeedbacks.
     */
    cursor?: AIMessageFeedbackWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIMessageFeedbacks 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` AIMessageFeedbacks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIMessageFeedbacks.
     */
    distinct?: AIMessageFeedbackScalarFieldEnum | AIMessageFeedbackScalarFieldEnum[]
  }

  /**
   * AIMessageFeedback findFirstOrThrow
   */
  export type AIMessageFeedbackFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * Filter, which AIMessageFeedback to fetch.
     */
    where?: AIMessageFeedbackWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIMessageFeedbacks to fetch.
     */
    orderBy?: AIMessageFeedbackOrderByWithRelationInput | AIMessageFeedbackOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIMessageFeedbacks.
     */
    cursor?: AIMessageFeedbackWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIMessageFeedbacks 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` AIMessageFeedbacks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIMessageFeedbacks.
     */
    distinct?: AIMessageFeedbackScalarFieldEnum | AIMessageFeedbackScalarFieldEnum[]
  }

  /**
   * AIMessageFeedback findMany
   */
  export type AIMessageFeedbackFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * Filter, which AIMessageFeedbacks to fetch.
     */
    where?: AIMessageFeedbackWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIMessageFeedbacks to fetch.
     */
    orderBy?: AIMessageFeedbackOrderByWithRelationInput | AIMessageFeedbackOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIMessageFeedbacks.
     */
    cursor?: AIMessageFeedbackWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIMessageFeedbacks 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` AIMessageFeedbacks.
     */
    skip?: number
    distinct?: AIMessageFeedbackScalarFieldEnum | AIMessageFeedbackScalarFieldEnum[]
  }

  /**
   * AIMessageFeedback create
   */
  export type AIMessageFeedbackCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * The data needed to create a AIMessageFeedback.
     */
    data: XOR<AIMessageFeedbackCreateInput, AIMessageFeedbackUncheckedCreateInput>
  }

  /**
   * AIMessageFeedback createMany
   */
  export type AIMessageFeedbackCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIMessageFeedbacks.
     */
    data: AIMessageFeedbackCreateManyInput | AIMessageFeedbackCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIMessageFeedback createManyAndReturn
   */
  export type AIMessageFeedbackCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * The data used to create many AIMessageFeedbacks.
     */
    data: AIMessageFeedbackCreateManyInput | AIMessageFeedbackCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIMessageFeedback update
   */
  export type AIMessageFeedbackUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * The data needed to update a AIMessageFeedback.
     */
    data: XOR<AIMessageFeedbackUpdateInput, AIMessageFeedbackUncheckedUpdateInput>
    /**
     * Choose, which AIMessageFeedback to update.
     */
    where: AIMessageFeedbackWhereUniqueInput
  }

  /**
   * AIMessageFeedback updateMany
   */
  export type AIMessageFeedbackUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIMessageFeedbacks.
     */
    data: XOR<AIMessageFeedbackUpdateManyMutationInput, AIMessageFeedbackUncheckedUpdateManyInput>
    /**
     * Filter which AIMessageFeedbacks to update
     */
    where?: AIMessageFeedbackWhereInput
    /**
     * Limit how many AIMessageFeedbacks to update.
     */
    limit?: number
  }

  /**
   * AIMessageFeedback updateManyAndReturn
   */
  export type AIMessageFeedbackUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * The data used to update AIMessageFeedbacks.
     */
    data: XOR<AIMessageFeedbackUpdateManyMutationInput, AIMessageFeedbackUncheckedUpdateManyInput>
    /**
     * Filter which AIMessageFeedbacks to update
     */
    where?: AIMessageFeedbackWhereInput
    /**
     * Limit how many AIMessageFeedbacks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIMessageFeedback upsert
   */
  export type AIMessageFeedbackUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * The filter to search for the AIMessageFeedback to update in case it exists.
     */
    where: AIMessageFeedbackWhereUniqueInput
    /**
     * In case the AIMessageFeedback found by the `where` argument doesn't exist, create a new AIMessageFeedback with this data.
     */
    create: XOR<AIMessageFeedbackCreateInput, AIMessageFeedbackUncheckedCreateInput>
    /**
     * In case the AIMessageFeedback was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIMessageFeedbackUpdateInput, AIMessageFeedbackUncheckedUpdateInput>
  }

  /**
   * AIMessageFeedback delete
   */
  export type AIMessageFeedbackDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
    /**
     * Filter which AIMessageFeedback to delete.
     */
    where: AIMessageFeedbackWhereUniqueInput
  }

  /**
   * AIMessageFeedback deleteMany
   */
  export type AIMessageFeedbackDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIMessageFeedbacks to delete
     */
    where?: AIMessageFeedbackWhereInput
    /**
     * Limit how many AIMessageFeedbacks to delete.
     */
    limit?: number
  }

  /**
   * AIMessageFeedback without action
   */
  export type AIMessageFeedbackDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIMessageFeedback
     */
    select?: AIMessageFeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIMessageFeedback
     */
    omit?: AIMessageFeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIMessageFeedbackInclude<ExtArgs> | null
  }


  /**
   * Model AIAssistantTicket
   */

  export type AggregateAIAssistantTicket = {
    _count: AIAssistantTicketCountAggregateOutputType | null
    _min: AIAssistantTicketMinAggregateOutputType | null
    _max: AIAssistantTicketMaxAggregateOutputType | null
  }

  export type AIAssistantTicketMinAggregateOutputType = {
    id: string | null
    conversationId: string | null
    category: $Enums.AITicketCategory | null
    priority: $Enums.AITicketPriority | null
    status: $Enums.AITicketStatus | null
    title: string | null
    description: string | null
    assigneeId: string | null
    assigneeTeam: $Enums.AIAssigneeTeam | null
    assignedAt: Date | null
    resolvedAt: Date | null
    resolution: string | null
    externalTicketId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIAssistantTicketMaxAggregateOutputType = {
    id: string | null
    conversationId: string | null
    category: $Enums.AITicketCategory | null
    priority: $Enums.AITicketPriority | null
    status: $Enums.AITicketStatus | null
    title: string | null
    description: string | null
    assigneeId: string | null
    assigneeTeam: $Enums.AIAssigneeTeam | null
    assignedAt: Date | null
    resolvedAt: Date | null
    resolution: string | null
    externalTicketId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIAssistantTicketCountAggregateOutputType = {
    id: number
    conversationId: number
    category: number
    priority: number
    status: number
    title: number
    description: number
    assigneeId: number
    assigneeTeam: number
    assignedAt: number
    resolvedAt: number
    resolution: number
    externalTicketId: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AIAssistantTicketMinAggregateInputType = {
    id?: true
    conversationId?: true
    category?: true
    priority?: true
    status?: true
    title?: true
    description?: true
    assigneeId?: true
    assigneeTeam?: true
    assignedAt?: true
    resolvedAt?: true
    resolution?: true
    externalTicketId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIAssistantTicketMaxAggregateInputType = {
    id?: true
    conversationId?: true
    category?: true
    priority?: true
    status?: true
    title?: true
    description?: true
    assigneeId?: true
    assigneeTeam?: true
    assignedAt?: true
    resolvedAt?: true
    resolution?: true
    externalTicketId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIAssistantTicketCountAggregateInputType = {
    id?: true
    conversationId?: true
    category?: true
    priority?: true
    status?: true
    title?: true
    description?: true
    assigneeId?: true
    assigneeTeam?: true
    assignedAt?: true
    resolvedAt?: true
    resolution?: true
    externalTicketId?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AIAssistantTicketAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIAssistantTicket to aggregate.
     */
    where?: AIAssistantTicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIAssistantTickets to fetch.
     */
    orderBy?: AIAssistantTicketOrderByWithRelationInput | AIAssistantTicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIAssistantTicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIAssistantTickets 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` AIAssistantTickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIAssistantTickets
    **/
    _count?: true | AIAssistantTicketCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIAssistantTicketMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIAssistantTicketMaxAggregateInputType
  }

  export type GetAIAssistantTicketAggregateType<T extends AIAssistantTicketAggregateArgs> = {
        [P in keyof T & keyof AggregateAIAssistantTicket]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIAssistantTicket[P]>
      : GetScalarType<T[P], AggregateAIAssistantTicket[P]>
  }




  export type AIAssistantTicketGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIAssistantTicketWhereInput
    orderBy?: AIAssistantTicketOrderByWithAggregationInput | AIAssistantTicketOrderByWithAggregationInput[]
    by: AIAssistantTicketScalarFieldEnum[] | AIAssistantTicketScalarFieldEnum
    having?: AIAssistantTicketScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIAssistantTicketCountAggregateInputType | true
    _min?: AIAssistantTicketMinAggregateInputType
    _max?: AIAssistantTicketMaxAggregateInputType
  }

  export type AIAssistantTicketGroupByOutputType = {
    id: string
    conversationId: string
    category: $Enums.AITicketCategory
    priority: $Enums.AITicketPriority
    status: $Enums.AITicketStatus
    title: string
    description: string
    assigneeId: string | null
    assigneeTeam: $Enums.AIAssigneeTeam | null
    assignedAt: Date | null
    resolvedAt: Date | null
    resolution: string | null
    externalTicketId: string | null
    createdAt: Date
    updatedAt: Date
    _count: AIAssistantTicketCountAggregateOutputType | null
    _min: AIAssistantTicketMinAggregateOutputType | null
    _max: AIAssistantTicketMaxAggregateOutputType | null
  }

  type GetAIAssistantTicketGroupByPayload<T extends AIAssistantTicketGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIAssistantTicketGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIAssistantTicketGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIAssistantTicketGroupByOutputType[P]>
            : GetScalarType<T[P], AIAssistantTicketGroupByOutputType[P]>
        }
      >
    >


  export type AIAssistantTicketSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    conversationId?: boolean
    category?: boolean
    priority?: boolean
    status?: boolean
    title?: boolean
    description?: boolean
    assigneeId?: boolean
    assigneeTeam?: boolean
    assignedAt?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    externalTicketId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIAssistantTicket"]>

  export type AIAssistantTicketSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    conversationId?: boolean
    category?: boolean
    priority?: boolean
    status?: boolean
    title?: boolean
    description?: boolean
    assigneeId?: boolean
    assigneeTeam?: boolean
    assignedAt?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    externalTicketId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIAssistantTicket"]>

  export type AIAssistantTicketSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    conversationId?: boolean
    category?: boolean
    priority?: boolean
    status?: boolean
    title?: boolean
    description?: boolean
    assigneeId?: boolean
    assigneeTeam?: boolean
    assignedAt?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    externalTicketId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIAssistantTicket"]>

  export type AIAssistantTicketSelectScalar = {
    id?: boolean
    conversationId?: boolean
    category?: boolean
    priority?: boolean
    status?: boolean
    title?: boolean
    description?: boolean
    assigneeId?: boolean
    assigneeTeam?: boolean
    assignedAt?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    externalTicketId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AIAssistantTicketOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "conversationId" | "category" | "priority" | "status" | "title" | "description" | "assigneeId" | "assigneeTeam" | "assignedAt" | "resolvedAt" | "resolution" | "externalTicketId" | "createdAt" | "updatedAt", ExtArgs["result"]["aIAssistantTicket"]>
  export type AIAssistantTicketInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }
  export type AIAssistantTicketIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }
  export type AIAssistantTicketIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    conversation?: boolean | AIConversationDefaultArgs<ExtArgs>
  }

  export type $AIAssistantTicketPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIAssistantTicket"
    objects: {
      conversation: Prisma.$AIConversationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      conversationId: string
      category: $Enums.AITicketCategory
      priority: $Enums.AITicketPriority
      status: $Enums.AITicketStatus
      title: string
      description: string
      assigneeId: string | null
      assigneeTeam: $Enums.AIAssigneeTeam | null
      assignedAt: Date | null
      resolvedAt: Date | null
      resolution: string | null
      externalTicketId: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aIAssistantTicket"]>
    composites: {}
  }

  type AIAssistantTicketGetPayload<S extends boolean | null | undefined | AIAssistantTicketDefaultArgs> = $Result.GetResult<Prisma.$AIAssistantTicketPayload, S>

  type AIAssistantTicketCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIAssistantTicketFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIAssistantTicketCountAggregateInputType | true
    }

  export interface AIAssistantTicketDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIAssistantTicket'], meta: { name: 'AIAssistantTicket' } }
    /**
     * Find zero or one AIAssistantTicket that matches the filter.
     * @param {AIAssistantTicketFindUniqueArgs} args - Arguments to find a AIAssistantTicket
     * @example
     * // Get one AIAssistantTicket
     * const aIAssistantTicket = await prisma.aIAssistantTicket.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIAssistantTicketFindUniqueArgs>(args: SelectSubset<T, AIAssistantTicketFindUniqueArgs<ExtArgs>>): Prisma__AIAssistantTicketClient<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIAssistantTicket that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIAssistantTicketFindUniqueOrThrowArgs} args - Arguments to find a AIAssistantTicket
     * @example
     * // Get one AIAssistantTicket
     * const aIAssistantTicket = await prisma.aIAssistantTicket.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIAssistantTicketFindUniqueOrThrowArgs>(args: SelectSubset<T, AIAssistantTicketFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIAssistantTicketClient<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIAssistantTicket 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 {AIAssistantTicketFindFirstArgs} args - Arguments to find a AIAssistantTicket
     * @example
     * // Get one AIAssistantTicket
     * const aIAssistantTicket = await prisma.aIAssistantTicket.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIAssistantTicketFindFirstArgs>(args?: SelectSubset<T, AIAssistantTicketFindFirstArgs<ExtArgs>>): Prisma__AIAssistantTicketClient<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIAssistantTicket 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 {AIAssistantTicketFindFirstOrThrowArgs} args - Arguments to find a AIAssistantTicket
     * @example
     * // Get one AIAssistantTicket
     * const aIAssistantTicket = await prisma.aIAssistantTicket.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIAssistantTicketFindFirstOrThrowArgs>(args?: SelectSubset<T, AIAssistantTicketFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIAssistantTicketClient<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIAssistantTickets 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 {AIAssistantTicketFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIAssistantTickets
     * const aIAssistantTickets = await prisma.aIAssistantTicket.findMany()
     * 
     * // Get first 10 AIAssistantTickets
     * const aIAssistantTickets = await prisma.aIAssistantTicket.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIAssistantTicketWithIdOnly = await prisma.aIAssistantTicket.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIAssistantTicketFindManyArgs>(args?: SelectSubset<T, AIAssistantTicketFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIAssistantTicket.
     * @param {AIAssistantTicketCreateArgs} args - Arguments to create a AIAssistantTicket.
     * @example
     * // Create one AIAssistantTicket
     * const AIAssistantTicket = await prisma.aIAssistantTicket.create({
     *   data: {
     *     // ... data to create a AIAssistantTicket
     *   }
     * })
     * 
     */
    create<T extends AIAssistantTicketCreateArgs>(args: SelectSubset<T, AIAssistantTicketCreateArgs<ExtArgs>>): Prisma__AIAssistantTicketClient<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIAssistantTickets.
     * @param {AIAssistantTicketCreateManyArgs} args - Arguments to create many AIAssistantTickets.
     * @example
     * // Create many AIAssistantTickets
     * const aIAssistantTicket = await prisma.aIAssistantTicket.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIAssistantTicketCreateManyArgs>(args?: SelectSubset<T, AIAssistantTicketCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIAssistantTickets and returns the data saved in the database.
     * @param {AIAssistantTicketCreateManyAndReturnArgs} args - Arguments to create many AIAssistantTickets.
     * @example
     * // Create many AIAssistantTickets
     * const aIAssistantTicket = await prisma.aIAssistantTicket.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIAssistantTickets and only return the `id`
     * const aIAssistantTicketWithIdOnly = await prisma.aIAssistantTicket.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 AIAssistantTicketCreateManyAndReturnArgs>(args?: SelectSubset<T, AIAssistantTicketCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIAssistantTicket.
     * @param {AIAssistantTicketDeleteArgs} args - Arguments to delete one AIAssistantTicket.
     * @example
     * // Delete one AIAssistantTicket
     * const AIAssistantTicket = await prisma.aIAssistantTicket.delete({
     *   where: {
     *     // ... filter to delete one AIAssistantTicket
     *   }
     * })
     * 
     */
    delete<T extends AIAssistantTicketDeleteArgs>(args: SelectSubset<T, AIAssistantTicketDeleteArgs<ExtArgs>>): Prisma__AIAssistantTicketClient<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIAssistantTicket.
     * @param {AIAssistantTicketUpdateArgs} args - Arguments to update one AIAssistantTicket.
     * @example
     * // Update one AIAssistantTicket
     * const aIAssistantTicket = await prisma.aIAssistantTicket.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIAssistantTicketUpdateArgs>(args: SelectSubset<T, AIAssistantTicketUpdateArgs<ExtArgs>>): Prisma__AIAssistantTicketClient<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIAssistantTickets.
     * @param {AIAssistantTicketDeleteManyArgs} args - Arguments to filter AIAssistantTickets to delete.
     * @example
     * // Delete a few AIAssistantTickets
     * const { count } = await prisma.aIAssistantTicket.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIAssistantTicketDeleteManyArgs>(args?: SelectSubset<T, AIAssistantTicketDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIAssistantTickets.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIAssistantTicketUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIAssistantTickets
     * const aIAssistantTicket = await prisma.aIAssistantTicket.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIAssistantTicketUpdateManyArgs>(args: SelectSubset<T, AIAssistantTicketUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIAssistantTickets and returns the data updated in the database.
     * @param {AIAssistantTicketUpdateManyAndReturnArgs} args - Arguments to update many AIAssistantTickets.
     * @example
     * // Update many AIAssistantTickets
     * const aIAssistantTicket = await prisma.aIAssistantTicket.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIAssistantTickets and only return the `id`
     * const aIAssistantTicketWithIdOnly = await prisma.aIAssistantTicket.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 AIAssistantTicketUpdateManyAndReturnArgs>(args: SelectSubset<T, AIAssistantTicketUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIAssistantTicket.
     * @param {AIAssistantTicketUpsertArgs} args - Arguments to update or create a AIAssistantTicket.
     * @example
     * // Update or create a AIAssistantTicket
     * const aIAssistantTicket = await prisma.aIAssistantTicket.upsert({
     *   create: {
     *     // ... data to create a AIAssistantTicket
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIAssistantTicket we want to update
     *   }
     * })
     */
    upsert<T extends AIAssistantTicketUpsertArgs>(args: SelectSubset<T, AIAssistantTicketUpsertArgs<ExtArgs>>): Prisma__AIAssistantTicketClient<$Result.GetResult<Prisma.$AIAssistantTicketPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIAssistantTickets.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIAssistantTicketCountArgs} args - Arguments to filter AIAssistantTickets to count.
     * @example
     * // Count the number of AIAssistantTickets
     * const count = await prisma.aIAssistantTicket.count({
     *   where: {
     *     // ... the filter for the AIAssistantTickets we want to count
     *   }
     * })
    **/
    count<T extends AIAssistantTicketCountArgs>(
      args?: Subset<T, AIAssistantTicketCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIAssistantTicketCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIAssistantTicket.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIAssistantTicketAggregateArgs} 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 AIAssistantTicketAggregateArgs>(args: Subset<T, AIAssistantTicketAggregateArgs>): Prisma.PrismaPromise<GetAIAssistantTicketAggregateType<T>>

    /**
     * Group by AIAssistantTicket.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIAssistantTicketGroupByArgs} 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 AIAssistantTicketGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIAssistantTicketGroupByArgs['orderBy'] }
        : { orderBy?: AIAssistantTicketGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIAssistantTicketGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIAssistantTicketGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIAssistantTicket model
   */
  readonly fields: AIAssistantTicketFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIAssistantTicket.
   * 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__AIAssistantTicketClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    conversation<T extends AIConversationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AIConversationDefaultArgs<ExtArgs>>): Prisma__AIConversationClient<$Result.GetResult<Prisma.$AIConversationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIAssistantTicket model
   */
  interface AIAssistantTicketFieldRefs {
    readonly id: FieldRef<"AIAssistantTicket", 'String'>
    readonly conversationId: FieldRef<"AIAssistantTicket", 'String'>
    readonly category: FieldRef<"AIAssistantTicket", 'AITicketCategory'>
    readonly priority: FieldRef<"AIAssistantTicket", 'AITicketPriority'>
    readonly status: FieldRef<"AIAssistantTicket", 'AITicketStatus'>
    readonly title: FieldRef<"AIAssistantTicket", 'String'>
    readonly description: FieldRef<"AIAssistantTicket", 'String'>
    readonly assigneeId: FieldRef<"AIAssistantTicket", 'String'>
    readonly assigneeTeam: FieldRef<"AIAssistantTicket", 'AIAssigneeTeam'>
    readonly assignedAt: FieldRef<"AIAssistantTicket", 'DateTime'>
    readonly resolvedAt: FieldRef<"AIAssistantTicket", 'DateTime'>
    readonly resolution: FieldRef<"AIAssistantTicket", 'String'>
    readonly externalTicketId: FieldRef<"AIAssistantTicket", 'String'>
    readonly createdAt: FieldRef<"AIAssistantTicket", 'DateTime'>
    readonly updatedAt: FieldRef<"AIAssistantTicket", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIAssistantTicket findUnique
   */
  export type AIAssistantTicketFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * Filter, which AIAssistantTicket to fetch.
     */
    where: AIAssistantTicketWhereUniqueInput
  }

  /**
   * AIAssistantTicket findUniqueOrThrow
   */
  export type AIAssistantTicketFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * Filter, which AIAssistantTicket to fetch.
     */
    where: AIAssistantTicketWhereUniqueInput
  }

  /**
   * AIAssistantTicket findFirst
   */
  export type AIAssistantTicketFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * Filter, which AIAssistantTicket to fetch.
     */
    where?: AIAssistantTicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIAssistantTickets to fetch.
     */
    orderBy?: AIAssistantTicketOrderByWithRelationInput | AIAssistantTicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIAssistantTickets.
     */
    cursor?: AIAssistantTicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIAssistantTickets 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` AIAssistantTickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIAssistantTickets.
     */
    distinct?: AIAssistantTicketScalarFieldEnum | AIAssistantTicketScalarFieldEnum[]
  }

  /**
   * AIAssistantTicket findFirstOrThrow
   */
  export type AIAssistantTicketFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * Filter, which AIAssistantTicket to fetch.
     */
    where?: AIAssistantTicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIAssistantTickets to fetch.
     */
    orderBy?: AIAssistantTicketOrderByWithRelationInput | AIAssistantTicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIAssistantTickets.
     */
    cursor?: AIAssistantTicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIAssistantTickets 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` AIAssistantTickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIAssistantTickets.
     */
    distinct?: AIAssistantTicketScalarFieldEnum | AIAssistantTicketScalarFieldEnum[]
  }

  /**
   * AIAssistantTicket findMany
   */
  export type AIAssistantTicketFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * Filter, which AIAssistantTickets to fetch.
     */
    where?: AIAssistantTicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIAssistantTickets to fetch.
     */
    orderBy?: AIAssistantTicketOrderByWithRelationInput | AIAssistantTicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIAssistantTickets.
     */
    cursor?: AIAssistantTicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIAssistantTickets 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` AIAssistantTickets.
     */
    skip?: number
    distinct?: AIAssistantTicketScalarFieldEnum | AIAssistantTicketScalarFieldEnum[]
  }

  /**
   * AIAssistantTicket create
   */
  export type AIAssistantTicketCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * The data needed to create a AIAssistantTicket.
     */
    data: XOR<AIAssistantTicketCreateInput, AIAssistantTicketUncheckedCreateInput>
  }

  /**
   * AIAssistantTicket createMany
   */
  export type AIAssistantTicketCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIAssistantTickets.
     */
    data: AIAssistantTicketCreateManyInput | AIAssistantTicketCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIAssistantTicket createManyAndReturn
   */
  export type AIAssistantTicketCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * The data used to create many AIAssistantTickets.
     */
    data: AIAssistantTicketCreateManyInput | AIAssistantTicketCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIAssistantTicket update
   */
  export type AIAssistantTicketUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * The data needed to update a AIAssistantTicket.
     */
    data: XOR<AIAssistantTicketUpdateInput, AIAssistantTicketUncheckedUpdateInput>
    /**
     * Choose, which AIAssistantTicket to update.
     */
    where: AIAssistantTicketWhereUniqueInput
  }

  /**
   * AIAssistantTicket updateMany
   */
  export type AIAssistantTicketUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIAssistantTickets.
     */
    data: XOR<AIAssistantTicketUpdateManyMutationInput, AIAssistantTicketUncheckedUpdateManyInput>
    /**
     * Filter which AIAssistantTickets to update
     */
    where?: AIAssistantTicketWhereInput
    /**
     * Limit how many AIAssistantTickets to update.
     */
    limit?: number
  }

  /**
   * AIAssistantTicket updateManyAndReturn
   */
  export type AIAssistantTicketUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * The data used to update AIAssistantTickets.
     */
    data: XOR<AIAssistantTicketUpdateManyMutationInput, AIAssistantTicketUncheckedUpdateManyInput>
    /**
     * Filter which AIAssistantTickets to update
     */
    where?: AIAssistantTicketWhereInput
    /**
     * Limit how many AIAssistantTickets to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIAssistantTicket upsert
   */
  export type AIAssistantTicketUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * The filter to search for the AIAssistantTicket to update in case it exists.
     */
    where: AIAssistantTicketWhereUniqueInput
    /**
     * In case the AIAssistantTicket found by the `where` argument doesn't exist, create a new AIAssistantTicket with this data.
     */
    create: XOR<AIAssistantTicketCreateInput, AIAssistantTicketUncheckedCreateInput>
    /**
     * In case the AIAssistantTicket was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIAssistantTicketUpdateInput, AIAssistantTicketUncheckedUpdateInput>
  }

  /**
   * AIAssistantTicket delete
   */
  export type AIAssistantTicketDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
    /**
     * Filter which AIAssistantTicket to delete.
     */
    where: AIAssistantTicketWhereUniqueInput
  }

  /**
   * AIAssistantTicket deleteMany
   */
  export type AIAssistantTicketDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIAssistantTickets to delete
     */
    where?: AIAssistantTicketWhereInput
    /**
     * Limit how many AIAssistantTickets to delete.
     */
    limit?: number
  }

  /**
   * AIAssistantTicket without action
   */
  export type AIAssistantTicketDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIAssistantTicket
     */
    select?: AIAssistantTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIAssistantTicket
     */
    omit?: AIAssistantTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIAssistantTicketInclude<ExtArgs> | null
  }


  /**
   * Model AIKnowledgeFix
   */

  export type AggregateAIKnowledgeFix = {
    _count: AIKnowledgeFixCountAggregateOutputType | null
    _min: AIKnowledgeFixMinAggregateOutputType | null
    _max: AIKnowledgeFixMaxAggregateOutputType | null
  }

  export type AIKnowledgeFixMinAggregateOutputType = {
    id: string | null
    messageId: string | null
    correctAnswer: string | null
    contributorId: string | null
    status: $Enums.AIKnowledgeFixStatus | null
    reviewerId: string | null
    reviewNote: string | null
    createdAt: Date | null
    reviewedAt: Date | null
  }

  export type AIKnowledgeFixMaxAggregateOutputType = {
    id: string | null
    messageId: string | null
    correctAnswer: string | null
    contributorId: string | null
    status: $Enums.AIKnowledgeFixStatus | null
    reviewerId: string | null
    reviewNote: string | null
    createdAt: Date | null
    reviewedAt: Date | null
  }

  export type AIKnowledgeFixCountAggregateOutputType = {
    id: number
    messageId: number
    correctAnswer: number
    contributorId: number
    status: number
    reviewerId: number
    reviewNote: number
    createdAt: number
    reviewedAt: number
    _all: number
  }


  export type AIKnowledgeFixMinAggregateInputType = {
    id?: true
    messageId?: true
    correctAnswer?: true
    contributorId?: true
    status?: true
    reviewerId?: true
    reviewNote?: true
    createdAt?: true
    reviewedAt?: true
  }

  export type AIKnowledgeFixMaxAggregateInputType = {
    id?: true
    messageId?: true
    correctAnswer?: true
    contributorId?: true
    status?: true
    reviewerId?: true
    reviewNote?: true
    createdAt?: true
    reviewedAt?: true
  }

  export type AIKnowledgeFixCountAggregateInputType = {
    id?: true
    messageId?: true
    correctAnswer?: true
    contributorId?: true
    status?: true
    reviewerId?: true
    reviewNote?: true
    createdAt?: true
    reviewedAt?: true
    _all?: true
  }

  export type AIKnowledgeFixAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIKnowledgeFix to aggregate.
     */
    where?: AIKnowledgeFixWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIKnowledgeFixes to fetch.
     */
    orderBy?: AIKnowledgeFixOrderByWithRelationInput | AIKnowledgeFixOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIKnowledgeFixWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIKnowledgeFixes 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` AIKnowledgeFixes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIKnowledgeFixes
    **/
    _count?: true | AIKnowledgeFixCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIKnowledgeFixMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIKnowledgeFixMaxAggregateInputType
  }

  export type GetAIKnowledgeFixAggregateType<T extends AIKnowledgeFixAggregateArgs> = {
        [P in keyof T & keyof AggregateAIKnowledgeFix]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIKnowledgeFix[P]>
      : GetScalarType<T[P], AggregateAIKnowledgeFix[P]>
  }




  export type AIKnowledgeFixGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIKnowledgeFixWhereInput
    orderBy?: AIKnowledgeFixOrderByWithAggregationInput | AIKnowledgeFixOrderByWithAggregationInput[]
    by: AIKnowledgeFixScalarFieldEnum[] | AIKnowledgeFixScalarFieldEnum
    having?: AIKnowledgeFixScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIKnowledgeFixCountAggregateInputType | true
    _min?: AIKnowledgeFixMinAggregateInputType
    _max?: AIKnowledgeFixMaxAggregateInputType
  }

  export type AIKnowledgeFixGroupByOutputType = {
    id: string
    messageId: string
    correctAnswer: string
    contributorId: string
    status: $Enums.AIKnowledgeFixStatus
    reviewerId: string | null
    reviewNote: string | null
    createdAt: Date
    reviewedAt: Date | null
    _count: AIKnowledgeFixCountAggregateOutputType | null
    _min: AIKnowledgeFixMinAggregateOutputType | null
    _max: AIKnowledgeFixMaxAggregateOutputType | null
  }

  type GetAIKnowledgeFixGroupByPayload<T extends AIKnowledgeFixGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIKnowledgeFixGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIKnowledgeFixGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIKnowledgeFixGroupByOutputType[P]>
            : GetScalarType<T[P], AIKnowledgeFixGroupByOutputType[P]>
        }
      >
    >


  export type AIKnowledgeFixSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    messageId?: boolean
    correctAnswer?: boolean
    contributorId?: boolean
    status?: boolean
    reviewerId?: boolean
    reviewNote?: boolean
    createdAt?: boolean
    reviewedAt?: boolean
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIKnowledgeFix"]>

  export type AIKnowledgeFixSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    messageId?: boolean
    correctAnswer?: boolean
    contributorId?: boolean
    status?: boolean
    reviewerId?: boolean
    reviewNote?: boolean
    createdAt?: boolean
    reviewedAt?: boolean
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIKnowledgeFix"]>

  export type AIKnowledgeFixSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    messageId?: boolean
    correctAnswer?: boolean
    contributorId?: boolean
    status?: boolean
    reviewerId?: boolean
    reviewNote?: boolean
    createdAt?: boolean
    reviewedAt?: boolean
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIKnowledgeFix"]>

  export type AIKnowledgeFixSelectScalar = {
    id?: boolean
    messageId?: boolean
    correctAnswer?: boolean
    contributorId?: boolean
    status?: boolean
    reviewerId?: boolean
    reviewNote?: boolean
    createdAt?: boolean
    reviewedAt?: boolean
  }

  export type AIKnowledgeFixOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "messageId" | "correctAnswer" | "contributorId" | "status" | "reviewerId" | "reviewNote" | "createdAt" | "reviewedAt", ExtArgs["result"]["aIKnowledgeFix"]>
  export type AIKnowledgeFixInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }
  export type AIKnowledgeFixIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }
  export type AIKnowledgeFixIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    message?: boolean | AIMessageDefaultArgs<ExtArgs>
  }

  export type $AIKnowledgeFixPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIKnowledgeFix"
    objects: {
      message: Prisma.$AIMessagePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      messageId: string
      correctAnswer: string
      contributorId: string
      status: $Enums.AIKnowledgeFixStatus
      reviewerId: string | null
      reviewNote: string | null
      createdAt: Date
      reviewedAt: Date | null
    }, ExtArgs["result"]["aIKnowledgeFix"]>
    composites: {}
  }

  type AIKnowledgeFixGetPayload<S extends boolean | null | undefined | AIKnowledgeFixDefaultArgs> = $Result.GetResult<Prisma.$AIKnowledgeFixPayload, S>

  type AIKnowledgeFixCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIKnowledgeFixFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIKnowledgeFixCountAggregateInputType | true
    }

  export interface AIKnowledgeFixDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIKnowledgeFix'], meta: { name: 'AIKnowledgeFix' } }
    /**
     * Find zero or one AIKnowledgeFix that matches the filter.
     * @param {AIKnowledgeFixFindUniqueArgs} args - Arguments to find a AIKnowledgeFix
     * @example
     * // Get one AIKnowledgeFix
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIKnowledgeFixFindUniqueArgs>(args: SelectSubset<T, AIKnowledgeFixFindUniqueArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIKnowledgeFix that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIKnowledgeFixFindUniqueOrThrowArgs} args - Arguments to find a AIKnowledgeFix
     * @example
     * // Get one AIKnowledgeFix
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIKnowledgeFixFindUniqueOrThrowArgs>(args: SelectSubset<T, AIKnowledgeFixFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIKnowledgeFix 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 {AIKnowledgeFixFindFirstArgs} args - Arguments to find a AIKnowledgeFix
     * @example
     * // Get one AIKnowledgeFix
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIKnowledgeFixFindFirstArgs>(args?: SelectSubset<T, AIKnowledgeFixFindFirstArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIKnowledgeFix 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 {AIKnowledgeFixFindFirstOrThrowArgs} args - Arguments to find a AIKnowledgeFix
     * @example
     * // Get one AIKnowledgeFix
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIKnowledgeFixFindFirstOrThrowArgs>(args?: SelectSubset<T, AIKnowledgeFixFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIKnowledgeFixes 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 {AIKnowledgeFixFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIKnowledgeFixes
     * const aIKnowledgeFixes = await prisma.aIKnowledgeFix.findMany()
     * 
     * // Get first 10 AIKnowledgeFixes
     * const aIKnowledgeFixes = await prisma.aIKnowledgeFix.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIKnowledgeFixWithIdOnly = await prisma.aIKnowledgeFix.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIKnowledgeFixFindManyArgs>(args?: SelectSubset<T, AIKnowledgeFixFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIKnowledgeFix.
     * @param {AIKnowledgeFixCreateArgs} args - Arguments to create a AIKnowledgeFix.
     * @example
     * // Create one AIKnowledgeFix
     * const AIKnowledgeFix = await prisma.aIKnowledgeFix.create({
     *   data: {
     *     // ... data to create a AIKnowledgeFix
     *   }
     * })
     * 
     */
    create<T extends AIKnowledgeFixCreateArgs>(args: SelectSubset<T, AIKnowledgeFixCreateArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIKnowledgeFixes.
     * @param {AIKnowledgeFixCreateManyArgs} args - Arguments to create many AIKnowledgeFixes.
     * @example
     * // Create many AIKnowledgeFixes
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIKnowledgeFixCreateManyArgs>(args?: SelectSubset<T, AIKnowledgeFixCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIKnowledgeFixes and returns the data saved in the database.
     * @param {AIKnowledgeFixCreateManyAndReturnArgs} args - Arguments to create many AIKnowledgeFixes.
     * @example
     * // Create many AIKnowledgeFixes
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIKnowledgeFixes and only return the `id`
     * const aIKnowledgeFixWithIdOnly = await prisma.aIKnowledgeFix.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 AIKnowledgeFixCreateManyAndReturnArgs>(args?: SelectSubset<T, AIKnowledgeFixCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIKnowledgeFix.
     * @param {AIKnowledgeFixDeleteArgs} args - Arguments to delete one AIKnowledgeFix.
     * @example
     * // Delete one AIKnowledgeFix
     * const AIKnowledgeFix = await prisma.aIKnowledgeFix.delete({
     *   where: {
     *     // ... filter to delete one AIKnowledgeFix
     *   }
     * })
     * 
     */
    delete<T extends AIKnowledgeFixDeleteArgs>(args: SelectSubset<T, AIKnowledgeFixDeleteArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIKnowledgeFix.
     * @param {AIKnowledgeFixUpdateArgs} args - Arguments to update one AIKnowledgeFix.
     * @example
     * // Update one AIKnowledgeFix
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIKnowledgeFixUpdateArgs>(args: SelectSubset<T, AIKnowledgeFixUpdateArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIKnowledgeFixes.
     * @param {AIKnowledgeFixDeleteManyArgs} args - Arguments to filter AIKnowledgeFixes to delete.
     * @example
     * // Delete a few AIKnowledgeFixes
     * const { count } = await prisma.aIKnowledgeFix.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIKnowledgeFixDeleteManyArgs>(args?: SelectSubset<T, AIKnowledgeFixDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIKnowledgeFixes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIKnowledgeFixUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIKnowledgeFixes
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIKnowledgeFixUpdateManyArgs>(args: SelectSubset<T, AIKnowledgeFixUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIKnowledgeFixes and returns the data updated in the database.
     * @param {AIKnowledgeFixUpdateManyAndReturnArgs} args - Arguments to update many AIKnowledgeFixes.
     * @example
     * // Update many AIKnowledgeFixes
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIKnowledgeFixes and only return the `id`
     * const aIKnowledgeFixWithIdOnly = await prisma.aIKnowledgeFix.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 AIKnowledgeFixUpdateManyAndReturnArgs>(args: SelectSubset<T, AIKnowledgeFixUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIKnowledgeFix.
     * @param {AIKnowledgeFixUpsertArgs} args - Arguments to update or create a AIKnowledgeFix.
     * @example
     * // Update or create a AIKnowledgeFix
     * const aIKnowledgeFix = await prisma.aIKnowledgeFix.upsert({
     *   create: {
     *     // ... data to create a AIKnowledgeFix
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIKnowledgeFix we want to update
     *   }
     * })
     */
    upsert<T extends AIKnowledgeFixUpsertArgs>(args: SelectSubset<T, AIKnowledgeFixUpsertArgs<ExtArgs>>): Prisma__AIKnowledgeFixClient<$Result.GetResult<Prisma.$AIKnowledgeFixPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIKnowledgeFixes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIKnowledgeFixCountArgs} args - Arguments to filter AIKnowledgeFixes to count.
     * @example
     * // Count the number of AIKnowledgeFixes
     * const count = await prisma.aIKnowledgeFix.count({
     *   where: {
     *     // ... the filter for the AIKnowledgeFixes we want to count
     *   }
     * })
    **/
    count<T extends AIKnowledgeFixCountArgs>(
      args?: Subset<T, AIKnowledgeFixCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIKnowledgeFixCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIKnowledgeFix.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIKnowledgeFixAggregateArgs} 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 AIKnowledgeFixAggregateArgs>(args: Subset<T, AIKnowledgeFixAggregateArgs>): Prisma.PrismaPromise<GetAIKnowledgeFixAggregateType<T>>

    /**
     * Group by AIKnowledgeFix.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIKnowledgeFixGroupByArgs} 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 AIKnowledgeFixGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIKnowledgeFixGroupByArgs['orderBy'] }
        : { orderBy?: AIKnowledgeFixGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIKnowledgeFixGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIKnowledgeFixGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIKnowledgeFix model
   */
  readonly fields: AIKnowledgeFixFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIKnowledgeFix.
   * 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__AIKnowledgeFixClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    message<T extends AIMessageDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AIMessageDefaultArgs<ExtArgs>>): Prisma__AIMessageClient<$Result.GetResult<Prisma.$AIMessagePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIKnowledgeFix model
   */
  interface AIKnowledgeFixFieldRefs {
    readonly id: FieldRef<"AIKnowledgeFix", 'String'>
    readonly messageId: FieldRef<"AIKnowledgeFix", 'String'>
    readonly correctAnswer: FieldRef<"AIKnowledgeFix", 'String'>
    readonly contributorId: FieldRef<"AIKnowledgeFix", 'String'>
    readonly status: FieldRef<"AIKnowledgeFix", 'AIKnowledgeFixStatus'>
    readonly reviewerId: FieldRef<"AIKnowledgeFix", 'String'>
    readonly reviewNote: FieldRef<"AIKnowledgeFix", 'String'>
    readonly createdAt: FieldRef<"AIKnowledgeFix", 'DateTime'>
    readonly reviewedAt: FieldRef<"AIKnowledgeFix", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIKnowledgeFix findUnique
   */
  export type AIKnowledgeFixFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * Filter, which AIKnowledgeFix to fetch.
     */
    where: AIKnowledgeFixWhereUniqueInput
  }

  /**
   * AIKnowledgeFix findUniqueOrThrow
   */
  export type AIKnowledgeFixFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * Filter, which AIKnowledgeFix to fetch.
     */
    where: AIKnowledgeFixWhereUniqueInput
  }

  /**
   * AIKnowledgeFix findFirst
   */
  export type AIKnowledgeFixFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * Filter, which AIKnowledgeFix to fetch.
     */
    where?: AIKnowledgeFixWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIKnowledgeFixes to fetch.
     */
    orderBy?: AIKnowledgeFixOrderByWithRelationInput | AIKnowledgeFixOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIKnowledgeFixes.
     */
    cursor?: AIKnowledgeFixWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIKnowledgeFixes 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` AIKnowledgeFixes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIKnowledgeFixes.
     */
    distinct?: AIKnowledgeFixScalarFieldEnum | AIKnowledgeFixScalarFieldEnum[]
  }

  /**
   * AIKnowledgeFix findFirstOrThrow
   */
  export type AIKnowledgeFixFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * Filter, which AIKnowledgeFix to fetch.
     */
    where?: AIKnowledgeFixWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIKnowledgeFixes to fetch.
     */
    orderBy?: AIKnowledgeFixOrderByWithRelationInput | AIKnowledgeFixOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIKnowledgeFixes.
     */
    cursor?: AIKnowledgeFixWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIKnowledgeFixes 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` AIKnowledgeFixes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIKnowledgeFixes.
     */
    distinct?: AIKnowledgeFixScalarFieldEnum | AIKnowledgeFixScalarFieldEnum[]
  }

  /**
   * AIKnowledgeFix findMany
   */
  export type AIKnowledgeFixFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * Filter, which AIKnowledgeFixes to fetch.
     */
    where?: AIKnowledgeFixWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIKnowledgeFixes to fetch.
     */
    orderBy?: AIKnowledgeFixOrderByWithRelationInput | AIKnowledgeFixOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIKnowledgeFixes.
     */
    cursor?: AIKnowledgeFixWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIKnowledgeFixes 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` AIKnowledgeFixes.
     */
    skip?: number
    distinct?: AIKnowledgeFixScalarFieldEnum | AIKnowledgeFixScalarFieldEnum[]
  }

  /**
   * AIKnowledgeFix create
   */
  export type AIKnowledgeFixCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * The data needed to create a AIKnowledgeFix.
     */
    data: XOR<AIKnowledgeFixCreateInput, AIKnowledgeFixUncheckedCreateInput>
  }

  /**
   * AIKnowledgeFix createMany
   */
  export type AIKnowledgeFixCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIKnowledgeFixes.
     */
    data: AIKnowledgeFixCreateManyInput | AIKnowledgeFixCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIKnowledgeFix createManyAndReturn
   */
  export type AIKnowledgeFixCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * The data used to create many AIKnowledgeFixes.
     */
    data: AIKnowledgeFixCreateManyInput | AIKnowledgeFixCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIKnowledgeFix update
   */
  export type AIKnowledgeFixUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * The data needed to update a AIKnowledgeFix.
     */
    data: XOR<AIKnowledgeFixUpdateInput, AIKnowledgeFixUncheckedUpdateInput>
    /**
     * Choose, which AIKnowledgeFix to update.
     */
    where: AIKnowledgeFixWhereUniqueInput
  }

  /**
   * AIKnowledgeFix updateMany
   */
  export type AIKnowledgeFixUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIKnowledgeFixes.
     */
    data: XOR<AIKnowledgeFixUpdateManyMutationInput, AIKnowledgeFixUncheckedUpdateManyInput>
    /**
     * Filter which AIKnowledgeFixes to update
     */
    where?: AIKnowledgeFixWhereInput
    /**
     * Limit how many AIKnowledgeFixes to update.
     */
    limit?: number
  }

  /**
   * AIKnowledgeFix updateManyAndReturn
   */
  export type AIKnowledgeFixUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * The data used to update AIKnowledgeFixes.
     */
    data: XOR<AIKnowledgeFixUpdateManyMutationInput, AIKnowledgeFixUncheckedUpdateManyInput>
    /**
     * Filter which AIKnowledgeFixes to update
     */
    where?: AIKnowledgeFixWhereInput
    /**
     * Limit how many AIKnowledgeFixes to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIKnowledgeFix upsert
   */
  export type AIKnowledgeFixUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * The filter to search for the AIKnowledgeFix to update in case it exists.
     */
    where: AIKnowledgeFixWhereUniqueInput
    /**
     * In case the AIKnowledgeFix found by the `where` argument doesn't exist, create a new AIKnowledgeFix with this data.
     */
    create: XOR<AIKnowledgeFixCreateInput, AIKnowledgeFixUncheckedCreateInput>
    /**
     * In case the AIKnowledgeFix was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIKnowledgeFixUpdateInput, AIKnowledgeFixUncheckedUpdateInput>
  }

  /**
   * AIKnowledgeFix delete
   */
  export type AIKnowledgeFixDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
    /**
     * Filter which AIKnowledgeFix to delete.
     */
    where: AIKnowledgeFixWhereUniqueInput
  }

  /**
   * AIKnowledgeFix deleteMany
   */
  export type AIKnowledgeFixDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIKnowledgeFixes to delete
     */
    where?: AIKnowledgeFixWhereInput
    /**
     * Limit how many AIKnowledgeFixes to delete.
     */
    limit?: number
  }

  /**
   * AIKnowledgeFix without action
   */
  export type AIKnowledgeFixDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIKnowledgeFix
     */
    select?: AIKnowledgeFixSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIKnowledgeFix
     */
    omit?: AIKnowledgeFixOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIKnowledgeFixInclude<ExtArgs> | null
  }


  /**
   * Model AIPromptTemplate
   */

  export type AggregateAIPromptTemplate = {
    _count: AIPromptTemplateCountAggregateOutputType | null
    _avg: AIPromptTemplateAvgAggregateOutputType | null
    _sum: AIPromptTemplateSumAggregateOutputType | null
    _min: AIPromptTemplateMinAggregateOutputType | null
    _max: AIPromptTemplateMaxAggregateOutputType | null
  }

  export type AIPromptTemplateAvgAggregateOutputType = {
    version: number | null
  }

  export type AIPromptTemplateSumAggregateOutputType = {
    version: number | null
  }

  export type AIPromptTemplateMinAggregateOutputType = {
    id: string | null
    name: string | null
    category: $Enums.AIConversationCategory | null
    content: string | null
    version: number | null
    isActive: boolean | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIPromptTemplateMaxAggregateOutputType = {
    id: string | null
    name: string | null
    category: $Enums.AIConversationCategory | null
    content: string | null
    version: number | null
    isActive: boolean | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIPromptTemplateCountAggregateOutputType = {
    id: number
    name: number
    category: number
    content: number
    version: number
    isActive: number
    createdBy: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AIPromptTemplateAvgAggregateInputType = {
    version?: true
  }

  export type AIPromptTemplateSumAggregateInputType = {
    version?: true
  }

  export type AIPromptTemplateMinAggregateInputType = {
    id?: true
    name?: true
    category?: true
    content?: true
    version?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIPromptTemplateMaxAggregateInputType = {
    id?: true
    name?: true
    category?: true
    content?: true
    version?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIPromptTemplateCountAggregateInputType = {
    id?: true
    name?: true
    category?: true
    content?: true
    version?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AIPromptTemplateAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIPromptTemplate to aggregate.
     */
    where?: AIPromptTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIPromptTemplates to fetch.
     */
    orderBy?: AIPromptTemplateOrderByWithRelationInput | AIPromptTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIPromptTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIPromptTemplates 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` AIPromptTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIPromptTemplates
    **/
    _count?: true | AIPromptTemplateCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AIPromptTemplateAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AIPromptTemplateSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIPromptTemplateMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIPromptTemplateMaxAggregateInputType
  }

  export type GetAIPromptTemplateAggregateType<T extends AIPromptTemplateAggregateArgs> = {
        [P in keyof T & keyof AggregateAIPromptTemplate]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIPromptTemplate[P]>
      : GetScalarType<T[P], AggregateAIPromptTemplate[P]>
  }




  export type AIPromptTemplateGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIPromptTemplateWhereInput
    orderBy?: AIPromptTemplateOrderByWithAggregationInput | AIPromptTemplateOrderByWithAggregationInput[]
    by: AIPromptTemplateScalarFieldEnum[] | AIPromptTemplateScalarFieldEnum
    having?: AIPromptTemplateScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIPromptTemplateCountAggregateInputType | true
    _avg?: AIPromptTemplateAvgAggregateInputType
    _sum?: AIPromptTemplateSumAggregateInputType
    _min?: AIPromptTemplateMinAggregateInputType
    _max?: AIPromptTemplateMaxAggregateInputType
  }

  export type AIPromptTemplateGroupByOutputType = {
    id: string
    name: string
    category: $Enums.AIConversationCategory
    content: string
    version: number
    isActive: boolean
    createdBy: string
    createdAt: Date
    updatedAt: Date
    _count: AIPromptTemplateCountAggregateOutputType | null
    _avg: AIPromptTemplateAvgAggregateOutputType | null
    _sum: AIPromptTemplateSumAggregateOutputType | null
    _min: AIPromptTemplateMinAggregateOutputType | null
    _max: AIPromptTemplateMaxAggregateOutputType | null
  }

  type GetAIPromptTemplateGroupByPayload<T extends AIPromptTemplateGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIPromptTemplateGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIPromptTemplateGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIPromptTemplateGroupByOutputType[P]>
            : GetScalarType<T[P], AIPromptTemplateGroupByOutputType[P]>
        }
      >
    >


  export type AIPromptTemplateSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    category?: boolean
    content?: boolean
    version?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIPromptTemplate"]>

  export type AIPromptTemplateSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    category?: boolean
    content?: boolean
    version?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIPromptTemplate"]>

  export type AIPromptTemplateSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    category?: boolean
    content?: boolean
    version?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIPromptTemplate"]>

  export type AIPromptTemplateSelectScalar = {
    id?: boolean
    name?: boolean
    category?: boolean
    content?: boolean
    version?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AIPromptTemplateOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "category" | "content" | "version" | "isActive" | "createdBy" | "createdAt" | "updatedAt", ExtArgs["result"]["aIPromptTemplate"]>

  export type $AIPromptTemplatePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIPromptTemplate"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      category: $Enums.AIConversationCategory
      content: string
      version: number
      isActive: boolean
      createdBy: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aIPromptTemplate"]>
    composites: {}
  }

  type AIPromptTemplateGetPayload<S extends boolean | null | undefined | AIPromptTemplateDefaultArgs> = $Result.GetResult<Prisma.$AIPromptTemplatePayload, S>

  type AIPromptTemplateCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIPromptTemplateFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIPromptTemplateCountAggregateInputType | true
    }

  export interface AIPromptTemplateDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIPromptTemplate'], meta: { name: 'AIPromptTemplate' } }
    /**
     * Find zero or one AIPromptTemplate that matches the filter.
     * @param {AIPromptTemplateFindUniqueArgs} args - Arguments to find a AIPromptTemplate
     * @example
     * // Get one AIPromptTemplate
     * const aIPromptTemplate = await prisma.aIPromptTemplate.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIPromptTemplateFindUniqueArgs>(args: SelectSubset<T, AIPromptTemplateFindUniqueArgs<ExtArgs>>): Prisma__AIPromptTemplateClient<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIPromptTemplate that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIPromptTemplateFindUniqueOrThrowArgs} args - Arguments to find a AIPromptTemplate
     * @example
     * // Get one AIPromptTemplate
     * const aIPromptTemplate = await prisma.aIPromptTemplate.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIPromptTemplateFindUniqueOrThrowArgs>(args: SelectSubset<T, AIPromptTemplateFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIPromptTemplateClient<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIPromptTemplate 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 {AIPromptTemplateFindFirstArgs} args - Arguments to find a AIPromptTemplate
     * @example
     * // Get one AIPromptTemplate
     * const aIPromptTemplate = await prisma.aIPromptTemplate.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIPromptTemplateFindFirstArgs>(args?: SelectSubset<T, AIPromptTemplateFindFirstArgs<ExtArgs>>): Prisma__AIPromptTemplateClient<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIPromptTemplate 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 {AIPromptTemplateFindFirstOrThrowArgs} args - Arguments to find a AIPromptTemplate
     * @example
     * // Get one AIPromptTemplate
     * const aIPromptTemplate = await prisma.aIPromptTemplate.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIPromptTemplateFindFirstOrThrowArgs>(args?: SelectSubset<T, AIPromptTemplateFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIPromptTemplateClient<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIPromptTemplates 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 {AIPromptTemplateFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIPromptTemplates
     * const aIPromptTemplates = await prisma.aIPromptTemplate.findMany()
     * 
     * // Get first 10 AIPromptTemplates
     * const aIPromptTemplates = await prisma.aIPromptTemplate.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIPromptTemplateWithIdOnly = await prisma.aIPromptTemplate.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIPromptTemplateFindManyArgs>(args?: SelectSubset<T, AIPromptTemplateFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIPromptTemplate.
     * @param {AIPromptTemplateCreateArgs} args - Arguments to create a AIPromptTemplate.
     * @example
     * // Create one AIPromptTemplate
     * const AIPromptTemplate = await prisma.aIPromptTemplate.create({
     *   data: {
     *     // ... data to create a AIPromptTemplate
     *   }
     * })
     * 
     */
    create<T extends AIPromptTemplateCreateArgs>(args: SelectSubset<T, AIPromptTemplateCreateArgs<ExtArgs>>): Prisma__AIPromptTemplateClient<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIPromptTemplates.
     * @param {AIPromptTemplateCreateManyArgs} args - Arguments to create many AIPromptTemplates.
     * @example
     * // Create many AIPromptTemplates
     * const aIPromptTemplate = await prisma.aIPromptTemplate.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIPromptTemplateCreateManyArgs>(args?: SelectSubset<T, AIPromptTemplateCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIPromptTemplates and returns the data saved in the database.
     * @param {AIPromptTemplateCreateManyAndReturnArgs} args - Arguments to create many AIPromptTemplates.
     * @example
     * // Create many AIPromptTemplates
     * const aIPromptTemplate = await prisma.aIPromptTemplate.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIPromptTemplates and only return the `id`
     * const aIPromptTemplateWithIdOnly = await prisma.aIPromptTemplate.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 AIPromptTemplateCreateManyAndReturnArgs>(args?: SelectSubset<T, AIPromptTemplateCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIPromptTemplate.
     * @param {AIPromptTemplateDeleteArgs} args - Arguments to delete one AIPromptTemplate.
     * @example
     * // Delete one AIPromptTemplate
     * const AIPromptTemplate = await prisma.aIPromptTemplate.delete({
     *   where: {
     *     // ... filter to delete one AIPromptTemplate
     *   }
     * })
     * 
     */
    delete<T extends AIPromptTemplateDeleteArgs>(args: SelectSubset<T, AIPromptTemplateDeleteArgs<ExtArgs>>): Prisma__AIPromptTemplateClient<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIPromptTemplate.
     * @param {AIPromptTemplateUpdateArgs} args - Arguments to update one AIPromptTemplate.
     * @example
     * // Update one AIPromptTemplate
     * const aIPromptTemplate = await prisma.aIPromptTemplate.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIPromptTemplateUpdateArgs>(args: SelectSubset<T, AIPromptTemplateUpdateArgs<ExtArgs>>): Prisma__AIPromptTemplateClient<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIPromptTemplates.
     * @param {AIPromptTemplateDeleteManyArgs} args - Arguments to filter AIPromptTemplates to delete.
     * @example
     * // Delete a few AIPromptTemplates
     * const { count } = await prisma.aIPromptTemplate.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIPromptTemplateDeleteManyArgs>(args?: SelectSubset<T, AIPromptTemplateDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIPromptTemplates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIPromptTemplateUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIPromptTemplates
     * const aIPromptTemplate = await prisma.aIPromptTemplate.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIPromptTemplateUpdateManyArgs>(args: SelectSubset<T, AIPromptTemplateUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIPromptTemplates and returns the data updated in the database.
     * @param {AIPromptTemplateUpdateManyAndReturnArgs} args - Arguments to update many AIPromptTemplates.
     * @example
     * // Update many AIPromptTemplates
     * const aIPromptTemplate = await prisma.aIPromptTemplate.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIPromptTemplates and only return the `id`
     * const aIPromptTemplateWithIdOnly = await prisma.aIPromptTemplate.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 AIPromptTemplateUpdateManyAndReturnArgs>(args: SelectSubset<T, AIPromptTemplateUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIPromptTemplate.
     * @param {AIPromptTemplateUpsertArgs} args - Arguments to update or create a AIPromptTemplate.
     * @example
     * // Update or create a AIPromptTemplate
     * const aIPromptTemplate = await prisma.aIPromptTemplate.upsert({
     *   create: {
     *     // ... data to create a AIPromptTemplate
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIPromptTemplate we want to update
     *   }
     * })
     */
    upsert<T extends AIPromptTemplateUpsertArgs>(args: SelectSubset<T, AIPromptTemplateUpsertArgs<ExtArgs>>): Prisma__AIPromptTemplateClient<$Result.GetResult<Prisma.$AIPromptTemplatePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIPromptTemplates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIPromptTemplateCountArgs} args - Arguments to filter AIPromptTemplates to count.
     * @example
     * // Count the number of AIPromptTemplates
     * const count = await prisma.aIPromptTemplate.count({
     *   where: {
     *     // ... the filter for the AIPromptTemplates we want to count
     *   }
     * })
    **/
    count<T extends AIPromptTemplateCountArgs>(
      args?: Subset<T, AIPromptTemplateCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIPromptTemplateCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIPromptTemplate.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIPromptTemplateAggregateArgs} 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 AIPromptTemplateAggregateArgs>(args: Subset<T, AIPromptTemplateAggregateArgs>): Prisma.PrismaPromise<GetAIPromptTemplateAggregateType<T>>

    /**
     * Group by AIPromptTemplate.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIPromptTemplateGroupByArgs} 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 AIPromptTemplateGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIPromptTemplateGroupByArgs['orderBy'] }
        : { orderBy?: AIPromptTemplateGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIPromptTemplateGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIPromptTemplateGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIPromptTemplate model
   */
  readonly fields: AIPromptTemplateFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIPromptTemplate.
   * 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__AIPromptTemplateClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIPromptTemplate model
   */
  interface AIPromptTemplateFieldRefs {
    readonly id: FieldRef<"AIPromptTemplate", 'String'>
    readonly name: FieldRef<"AIPromptTemplate", 'String'>
    readonly category: FieldRef<"AIPromptTemplate", 'AIConversationCategory'>
    readonly content: FieldRef<"AIPromptTemplate", 'String'>
    readonly version: FieldRef<"AIPromptTemplate", 'Int'>
    readonly isActive: FieldRef<"AIPromptTemplate", 'Boolean'>
    readonly createdBy: FieldRef<"AIPromptTemplate", 'String'>
    readonly createdAt: FieldRef<"AIPromptTemplate", 'DateTime'>
    readonly updatedAt: FieldRef<"AIPromptTemplate", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIPromptTemplate findUnique
   */
  export type AIPromptTemplateFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * Filter, which AIPromptTemplate to fetch.
     */
    where: AIPromptTemplateWhereUniqueInput
  }

  /**
   * AIPromptTemplate findUniqueOrThrow
   */
  export type AIPromptTemplateFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * Filter, which AIPromptTemplate to fetch.
     */
    where: AIPromptTemplateWhereUniqueInput
  }

  /**
   * AIPromptTemplate findFirst
   */
  export type AIPromptTemplateFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * Filter, which AIPromptTemplate to fetch.
     */
    where?: AIPromptTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIPromptTemplates to fetch.
     */
    orderBy?: AIPromptTemplateOrderByWithRelationInput | AIPromptTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIPromptTemplates.
     */
    cursor?: AIPromptTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIPromptTemplates 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` AIPromptTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIPromptTemplates.
     */
    distinct?: AIPromptTemplateScalarFieldEnum | AIPromptTemplateScalarFieldEnum[]
  }

  /**
   * AIPromptTemplate findFirstOrThrow
   */
  export type AIPromptTemplateFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * Filter, which AIPromptTemplate to fetch.
     */
    where?: AIPromptTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIPromptTemplates to fetch.
     */
    orderBy?: AIPromptTemplateOrderByWithRelationInput | AIPromptTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIPromptTemplates.
     */
    cursor?: AIPromptTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIPromptTemplates 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` AIPromptTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIPromptTemplates.
     */
    distinct?: AIPromptTemplateScalarFieldEnum | AIPromptTemplateScalarFieldEnum[]
  }

  /**
   * AIPromptTemplate findMany
   */
  export type AIPromptTemplateFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * Filter, which AIPromptTemplates to fetch.
     */
    where?: AIPromptTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIPromptTemplates to fetch.
     */
    orderBy?: AIPromptTemplateOrderByWithRelationInput | AIPromptTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIPromptTemplates.
     */
    cursor?: AIPromptTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIPromptTemplates 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` AIPromptTemplates.
     */
    skip?: number
    distinct?: AIPromptTemplateScalarFieldEnum | AIPromptTemplateScalarFieldEnum[]
  }

  /**
   * AIPromptTemplate create
   */
  export type AIPromptTemplateCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * The data needed to create a AIPromptTemplate.
     */
    data: XOR<AIPromptTemplateCreateInput, AIPromptTemplateUncheckedCreateInput>
  }

  /**
   * AIPromptTemplate createMany
   */
  export type AIPromptTemplateCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIPromptTemplates.
     */
    data: AIPromptTemplateCreateManyInput | AIPromptTemplateCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIPromptTemplate createManyAndReturn
   */
  export type AIPromptTemplateCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * The data used to create many AIPromptTemplates.
     */
    data: AIPromptTemplateCreateManyInput | AIPromptTemplateCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIPromptTemplate update
   */
  export type AIPromptTemplateUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * The data needed to update a AIPromptTemplate.
     */
    data: XOR<AIPromptTemplateUpdateInput, AIPromptTemplateUncheckedUpdateInput>
    /**
     * Choose, which AIPromptTemplate to update.
     */
    where: AIPromptTemplateWhereUniqueInput
  }

  /**
   * AIPromptTemplate updateMany
   */
  export type AIPromptTemplateUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIPromptTemplates.
     */
    data: XOR<AIPromptTemplateUpdateManyMutationInput, AIPromptTemplateUncheckedUpdateManyInput>
    /**
     * Filter which AIPromptTemplates to update
     */
    where?: AIPromptTemplateWhereInput
    /**
     * Limit how many AIPromptTemplates to update.
     */
    limit?: number
  }

  /**
   * AIPromptTemplate updateManyAndReturn
   */
  export type AIPromptTemplateUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * The data used to update AIPromptTemplates.
     */
    data: XOR<AIPromptTemplateUpdateManyMutationInput, AIPromptTemplateUncheckedUpdateManyInput>
    /**
     * Filter which AIPromptTemplates to update
     */
    where?: AIPromptTemplateWhereInput
    /**
     * Limit how many AIPromptTemplates to update.
     */
    limit?: number
  }

  /**
   * AIPromptTemplate upsert
   */
  export type AIPromptTemplateUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * The filter to search for the AIPromptTemplate to update in case it exists.
     */
    where: AIPromptTemplateWhereUniqueInput
    /**
     * In case the AIPromptTemplate found by the `where` argument doesn't exist, create a new AIPromptTemplate with this data.
     */
    create: XOR<AIPromptTemplateCreateInput, AIPromptTemplateUncheckedCreateInput>
    /**
     * In case the AIPromptTemplate was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIPromptTemplateUpdateInput, AIPromptTemplateUncheckedUpdateInput>
  }

  /**
   * AIPromptTemplate delete
   */
  export type AIPromptTemplateDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
    /**
     * Filter which AIPromptTemplate to delete.
     */
    where: AIPromptTemplateWhereUniqueInput
  }

  /**
   * AIPromptTemplate deleteMany
   */
  export type AIPromptTemplateDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIPromptTemplates to delete
     */
    where?: AIPromptTemplateWhereInput
    /**
     * Limit how many AIPromptTemplates to delete.
     */
    limit?: number
  }

  /**
   * AIPromptTemplate without action
   */
  export type AIPromptTemplateDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIPromptTemplate
     */
    select?: AIPromptTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIPromptTemplate
     */
    omit?: AIPromptTemplateOmit<ExtArgs> | null
  }


  /**
   * Model AIConfiguration
   */

  export type AggregateAIConfiguration = {
    _count: AIConfigurationCountAggregateOutputType | null
    _min: AIConfigurationMinAggregateOutputType | null
    _max: AIConfigurationMaxAggregateOutputType | null
  }

  export type AIConfigurationMinAggregateOutputType = {
    id: string | null
    key: string | null
    value: string | null
    category: string | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIConfigurationMaxAggregateOutputType = {
    id: string | null
    key: string | null
    value: string | null
    category: string | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIConfigurationCountAggregateOutputType = {
    id: number
    key: number
    value: number
    category: number
    isActive: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AIConfigurationMinAggregateInputType = {
    id?: true
    key?: true
    value?: true
    category?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIConfigurationMaxAggregateInputType = {
    id?: true
    key?: true
    value?: true
    category?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIConfigurationCountAggregateInputType = {
    id?: true
    key?: true
    value?: true
    category?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AIConfigurationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIConfiguration to aggregate.
     */
    where?: AIConfigurationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIConfigurations to fetch.
     */
    orderBy?: AIConfigurationOrderByWithRelationInput | AIConfigurationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIConfigurationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIConfigurations 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` AIConfigurations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIConfigurations
    **/
    _count?: true | AIConfigurationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIConfigurationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIConfigurationMaxAggregateInputType
  }

  export type GetAIConfigurationAggregateType<T extends AIConfigurationAggregateArgs> = {
        [P in keyof T & keyof AggregateAIConfiguration]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIConfiguration[P]>
      : GetScalarType<T[P], AggregateAIConfiguration[P]>
  }




  export type AIConfigurationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIConfigurationWhereInput
    orderBy?: AIConfigurationOrderByWithAggregationInput | AIConfigurationOrderByWithAggregationInput[]
    by: AIConfigurationScalarFieldEnum[] | AIConfigurationScalarFieldEnum
    having?: AIConfigurationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIConfigurationCountAggregateInputType | true
    _min?: AIConfigurationMinAggregateInputType
    _max?: AIConfigurationMaxAggregateInputType
  }

  export type AIConfigurationGroupByOutputType = {
    id: string
    key: string
    value: string
    category: string
    isActive: boolean
    createdAt: Date
    updatedAt: Date
    _count: AIConfigurationCountAggregateOutputType | null
    _min: AIConfigurationMinAggregateOutputType | null
    _max: AIConfigurationMaxAggregateOutputType | null
  }

  type GetAIConfigurationGroupByPayload<T extends AIConfigurationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIConfigurationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIConfigurationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIConfigurationGroupByOutputType[P]>
            : GetScalarType<T[P], AIConfigurationGroupByOutputType[P]>
        }
      >
    >


  export type AIConfigurationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    category?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIConfiguration"]>

  export type AIConfigurationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    category?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIConfiguration"]>

  export type AIConfigurationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    category?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIConfiguration"]>

  export type AIConfigurationSelectScalar = {
    id?: boolean
    key?: boolean
    value?: boolean
    category?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AIConfigurationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "key" | "value" | "category" | "isActive" | "createdAt" | "updatedAt", ExtArgs["result"]["aIConfiguration"]>

  export type $AIConfigurationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIConfiguration"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      key: string
      value: string
      category: string
      isActive: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aIConfiguration"]>
    composites: {}
  }

  type AIConfigurationGetPayload<S extends boolean | null | undefined | AIConfigurationDefaultArgs> = $Result.GetResult<Prisma.$AIConfigurationPayload, S>

  type AIConfigurationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIConfigurationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIConfigurationCountAggregateInputType | true
    }

  export interface AIConfigurationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIConfiguration'], meta: { name: 'AIConfiguration' } }
    /**
     * Find zero or one AIConfiguration that matches the filter.
     * @param {AIConfigurationFindUniqueArgs} args - Arguments to find a AIConfiguration
     * @example
     * // Get one AIConfiguration
     * const aIConfiguration = await prisma.aIConfiguration.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIConfigurationFindUniqueArgs>(args: SelectSubset<T, AIConfigurationFindUniqueArgs<ExtArgs>>): Prisma__AIConfigurationClient<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIConfiguration that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIConfigurationFindUniqueOrThrowArgs} args - Arguments to find a AIConfiguration
     * @example
     * // Get one AIConfiguration
     * const aIConfiguration = await prisma.aIConfiguration.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIConfigurationFindUniqueOrThrowArgs>(args: SelectSubset<T, AIConfigurationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIConfigurationClient<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIConfiguration 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 {AIConfigurationFindFirstArgs} args - Arguments to find a AIConfiguration
     * @example
     * // Get one AIConfiguration
     * const aIConfiguration = await prisma.aIConfiguration.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIConfigurationFindFirstArgs>(args?: SelectSubset<T, AIConfigurationFindFirstArgs<ExtArgs>>): Prisma__AIConfigurationClient<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIConfiguration 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 {AIConfigurationFindFirstOrThrowArgs} args - Arguments to find a AIConfiguration
     * @example
     * // Get one AIConfiguration
     * const aIConfiguration = await prisma.aIConfiguration.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIConfigurationFindFirstOrThrowArgs>(args?: SelectSubset<T, AIConfigurationFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIConfigurationClient<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIConfigurations 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 {AIConfigurationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIConfigurations
     * const aIConfigurations = await prisma.aIConfiguration.findMany()
     * 
     * // Get first 10 AIConfigurations
     * const aIConfigurations = await prisma.aIConfiguration.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIConfigurationWithIdOnly = await prisma.aIConfiguration.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIConfigurationFindManyArgs>(args?: SelectSubset<T, AIConfigurationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIConfiguration.
     * @param {AIConfigurationCreateArgs} args - Arguments to create a AIConfiguration.
     * @example
     * // Create one AIConfiguration
     * const AIConfiguration = await prisma.aIConfiguration.create({
     *   data: {
     *     // ... data to create a AIConfiguration
     *   }
     * })
     * 
     */
    create<T extends AIConfigurationCreateArgs>(args: SelectSubset<T, AIConfigurationCreateArgs<ExtArgs>>): Prisma__AIConfigurationClient<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIConfigurations.
     * @param {AIConfigurationCreateManyArgs} args - Arguments to create many AIConfigurations.
     * @example
     * // Create many AIConfigurations
     * const aIConfiguration = await prisma.aIConfiguration.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIConfigurationCreateManyArgs>(args?: SelectSubset<T, AIConfigurationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIConfigurations and returns the data saved in the database.
     * @param {AIConfigurationCreateManyAndReturnArgs} args - Arguments to create many AIConfigurations.
     * @example
     * // Create many AIConfigurations
     * const aIConfiguration = await prisma.aIConfiguration.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIConfigurations and only return the `id`
     * const aIConfigurationWithIdOnly = await prisma.aIConfiguration.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 AIConfigurationCreateManyAndReturnArgs>(args?: SelectSubset<T, AIConfigurationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIConfiguration.
     * @param {AIConfigurationDeleteArgs} args - Arguments to delete one AIConfiguration.
     * @example
     * // Delete one AIConfiguration
     * const AIConfiguration = await prisma.aIConfiguration.delete({
     *   where: {
     *     // ... filter to delete one AIConfiguration
     *   }
     * })
     * 
     */
    delete<T extends AIConfigurationDeleteArgs>(args: SelectSubset<T, AIConfigurationDeleteArgs<ExtArgs>>): Prisma__AIConfigurationClient<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIConfiguration.
     * @param {AIConfigurationUpdateArgs} args - Arguments to update one AIConfiguration.
     * @example
     * // Update one AIConfiguration
     * const aIConfiguration = await prisma.aIConfiguration.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIConfigurationUpdateArgs>(args: SelectSubset<T, AIConfigurationUpdateArgs<ExtArgs>>): Prisma__AIConfigurationClient<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIConfigurations.
     * @param {AIConfigurationDeleteManyArgs} args - Arguments to filter AIConfigurations to delete.
     * @example
     * // Delete a few AIConfigurations
     * const { count } = await prisma.aIConfiguration.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIConfigurationDeleteManyArgs>(args?: SelectSubset<T, AIConfigurationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIConfigurations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIConfigurationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIConfigurations
     * const aIConfiguration = await prisma.aIConfiguration.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIConfigurationUpdateManyArgs>(args: SelectSubset<T, AIConfigurationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIConfigurations and returns the data updated in the database.
     * @param {AIConfigurationUpdateManyAndReturnArgs} args - Arguments to update many AIConfigurations.
     * @example
     * // Update many AIConfigurations
     * const aIConfiguration = await prisma.aIConfiguration.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIConfigurations and only return the `id`
     * const aIConfigurationWithIdOnly = await prisma.aIConfiguration.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 AIConfigurationUpdateManyAndReturnArgs>(args: SelectSubset<T, AIConfigurationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIConfiguration.
     * @param {AIConfigurationUpsertArgs} args - Arguments to update or create a AIConfiguration.
     * @example
     * // Update or create a AIConfiguration
     * const aIConfiguration = await prisma.aIConfiguration.upsert({
     *   create: {
     *     // ... data to create a AIConfiguration
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIConfiguration we want to update
     *   }
     * })
     */
    upsert<T extends AIConfigurationUpsertArgs>(args: SelectSubset<T, AIConfigurationUpsertArgs<ExtArgs>>): Prisma__AIConfigurationClient<$Result.GetResult<Prisma.$AIConfigurationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIConfigurations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIConfigurationCountArgs} args - Arguments to filter AIConfigurations to count.
     * @example
     * // Count the number of AIConfigurations
     * const count = await prisma.aIConfiguration.count({
     *   where: {
     *     // ... the filter for the AIConfigurations we want to count
     *   }
     * })
    **/
    count<T extends AIConfigurationCountArgs>(
      args?: Subset<T, AIConfigurationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIConfigurationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIConfiguration.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIConfigurationAggregateArgs} 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 AIConfigurationAggregateArgs>(args: Subset<T, AIConfigurationAggregateArgs>): Prisma.PrismaPromise<GetAIConfigurationAggregateType<T>>

    /**
     * Group by AIConfiguration.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIConfigurationGroupByArgs} 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 AIConfigurationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIConfigurationGroupByArgs['orderBy'] }
        : { orderBy?: AIConfigurationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIConfigurationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIConfigurationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIConfiguration model
   */
  readonly fields: AIConfigurationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIConfiguration.
   * 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__AIConfigurationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIConfiguration model
   */
  interface AIConfigurationFieldRefs {
    readonly id: FieldRef<"AIConfiguration", 'String'>
    readonly key: FieldRef<"AIConfiguration", 'String'>
    readonly value: FieldRef<"AIConfiguration", 'String'>
    readonly category: FieldRef<"AIConfiguration", 'String'>
    readonly isActive: FieldRef<"AIConfiguration", 'Boolean'>
    readonly createdAt: FieldRef<"AIConfiguration", 'DateTime'>
    readonly updatedAt: FieldRef<"AIConfiguration", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIConfiguration findUnique
   */
  export type AIConfigurationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * Filter, which AIConfiguration to fetch.
     */
    where: AIConfigurationWhereUniqueInput
  }

  /**
   * AIConfiguration findUniqueOrThrow
   */
  export type AIConfigurationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * Filter, which AIConfiguration to fetch.
     */
    where: AIConfigurationWhereUniqueInput
  }

  /**
   * AIConfiguration findFirst
   */
  export type AIConfigurationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * Filter, which AIConfiguration to fetch.
     */
    where?: AIConfigurationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIConfigurations to fetch.
     */
    orderBy?: AIConfigurationOrderByWithRelationInput | AIConfigurationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIConfigurations.
     */
    cursor?: AIConfigurationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIConfigurations 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` AIConfigurations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIConfigurations.
     */
    distinct?: AIConfigurationScalarFieldEnum | AIConfigurationScalarFieldEnum[]
  }

  /**
   * AIConfiguration findFirstOrThrow
   */
  export type AIConfigurationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * Filter, which AIConfiguration to fetch.
     */
    where?: AIConfigurationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIConfigurations to fetch.
     */
    orderBy?: AIConfigurationOrderByWithRelationInput | AIConfigurationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIConfigurations.
     */
    cursor?: AIConfigurationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIConfigurations 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` AIConfigurations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIConfigurations.
     */
    distinct?: AIConfigurationScalarFieldEnum | AIConfigurationScalarFieldEnum[]
  }

  /**
   * AIConfiguration findMany
   */
  export type AIConfigurationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * Filter, which AIConfigurations to fetch.
     */
    where?: AIConfigurationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIConfigurations to fetch.
     */
    orderBy?: AIConfigurationOrderByWithRelationInput | AIConfigurationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIConfigurations.
     */
    cursor?: AIConfigurationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIConfigurations 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` AIConfigurations.
     */
    skip?: number
    distinct?: AIConfigurationScalarFieldEnum | AIConfigurationScalarFieldEnum[]
  }

  /**
   * AIConfiguration create
   */
  export type AIConfigurationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * The data needed to create a AIConfiguration.
     */
    data: XOR<AIConfigurationCreateInput, AIConfigurationUncheckedCreateInput>
  }

  /**
   * AIConfiguration createMany
   */
  export type AIConfigurationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIConfigurations.
     */
    data: AIConfigurationCreateManyInput | AIConfigurationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIConfiguration createManyAndReturn
   */
  export type AIConfigurationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * The data used to create many AIConfigurations.
     */
    data: AIConfigurationCreateManyInput | AIConfigurationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIConfiguration update
   */
  export type AIConfigurationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * The data needed to update a AIConfiguration.
     */
    data: XOR<AIConfigurationUpdateInput, AIConfigurationUncheckedUpdateInput>
    /**
     * Choose, which AIConfiguration to update.
     */
    where: AIConfigurationWhereUniqueInput
  }

  /**
   * AIConfiguration updateMany
   */
  export type AIConfigurationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIConfigurations.
     */
    data: XOR<AIConfigurationUpdateManyMutationInput, AIConfigurationUncheckedUpdateManyInput>
    /**
     * Filter which AIConfigurations to update
     */
    where?: AIConfigurationWhereInput
    /**
     * Limit how many AIConfigurations to update.
     */
    limit?: number
  }

  /**
   * AIConfiguration updateManyAndReturn
   */
  export type AIConfigurationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * The data used to update AIConfigurations.
     */
    data: XOR<AIConfigurationUpdateManyMutationInput, AIConfigurationUncheckedUpdateManyInput>
    /**
     * Filter which AIConfigurations to update
     */
    where?: AIConfigurationWhereInput
    /**
     * Limit how many AIConfigurations to update.
     */
    limit?: number
  }

  /**
   * AIConfiguration upsert
   */
  export type AIConfigurationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * The filter to search for the AIConfiguration to update in case it exists.
     */
    where: AIConfigurationWhereUniqueInput
    /**
     * In case the AIConfiguration found by the `where` argument doesn't exist, create a new AIConfiguration with this data.
     */
    create: XOR<AIConfigurationCreateInput, AIConfigurationUncheckedCreateInput>
    /**
     * In case the AIConfiguration was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIConfigurationUpdateInput, AIConfigurationUncheckedUpdateInput>
  }

  /**
   * AIConfiguration delete
   */
  export type AIConfigurationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
    /**
     * Filter which AIConfiguration to delete.
     */
    where: AIConfigurationWhereUniqueInput
  }

  /**
   * AIConfiguration deleteMany
   */
  export type AIConfigurationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIConfigurations to delete
     */
    where?: AIConfigurationWhereInput
    /**
     * Limit how many AIConfigurations to delete.
     */
    limit?: number
  }

  /**
   * AIConfiguration without action
   */
  export type AIConfigurationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIConfiguration
     */
    select?: AIConfigurationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIConfiguration
     */
    omit?: AIConfigurationOmit<ExtArgs> | null
  }


  /**
   * Model AIUsageStats
   */

  export type AggregateAIUsageStats = {
    _count: AIUsageStatsCountAggregateOutputType | null
    _avg: AIUsageStatsAvgAggregateOutputType | null
    _sum: AIUsageStatsSumAggregateOutputType | null
    _min: AIUsageStatsMinAggregateOutputType | null
    _max: AIUsageStatsMaxAggregateOutputType | null
  }

  export type AIUsageStatsAvgAggregateOutputType = {
    totalCalls: number | null
    successCalls: number | null
    failedCalls: number | null
    totalTokens: number | null
    avgTokensPerCall: number | null
    avgResponseTime: number | null
    likesCount: number | null
    dislikesCount: number | null
    escalationCount: number | null
  }

  export type AIUsageStatsSumAggregateOutputType = {
    totalCalls: number | null
    successCalls: number | null
    failedCalls: number | null
    totalTokens: number | null
    avgTokensPerCall: number | null
    avgResponseTime: number | null
    likesCount: number | null
    dislikesCount: number | null
    escalationCount: number | null
  }

  export type AIUsageStatsMinAggregateOutputType = {
    id: string | null
    date: Date | null
    category: $Enums.AIConversationCategory | null
    totalCalls: number | null
    successCalls: number | null
    failedCalls: number | null
    totalTokens: number | null
    avgTokensPerCall: number | null
    avgResponseTime: number | null
    likesCount: number | null
    dislikesCount: number | null
    escalationCount: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIUsageStatsMaxAggregateOutputType = {
    id: string | null
    date: Date | null
    category: $Enums.AIConversationCategory | null
    totalCalls: number | null
    successCalls: number | null
    failedCalls: number | null
    totalTokens: number | null
    avgTokensPerCall: number | null
    avgResponseTime: number | null
    likesCount: number | null
    dislikesCount: number | null
    escalationCount: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AIUsageStatsCountAggregateOutputType = {
    id: number
    date: number
    category: number
    totalCalls: number
    successCalls: number
    failedCalls: number
    totalTokens: number
    avgTokensPerCall: number
    avgResponseTime: number
    likesCount: number
    dislikesCount: number
    escalationCount: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AIUsageStatsAvgAggregateInputType = {
    totalCalls?: true
    successCalls?: true
    failedCalls?: true
    totalTokens?: true
    avgTokensPerCall?: true
    avgResponseTime?: true
    likesCount?: true
    dislikesCount?: true
    escalationCount?: true
  }

  export type AIUsageStatsSumAggregateInputType = {
    totalCalls?: true
    successCalls?: true
    failedCalls?: true
    totalTokens?: true
    avgTokensPerCall?: true
    avgResponseTime?: true
    likesCount?: true
    dislikesCount?: true
    escalationCount?: true
  }

  export type AIUsageStatsMinAggregateInputType = {
    id?: true
    date?: true
    category?: true
    totalCalls?: true
    successCalls?: true
    failedCalls?: true
    totalTokens?: true
    avgTokensPerCall?: true
    avgResponseTime?: true
    likesCount?: true
    dislikesCount?: true
    escalationCount?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIUsageStatsMaxAggregateInputType = {
    id?: true
    date?: true
    category?: true
    totalCalls?: true
    successCalls?: true
    failedCalls?: true
    totalTokens?: true
    avgTokensPerCall?: true
    avgResponseTime?: true
    likesCount?: true
    dislikesCount?: true
    escalationCount?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AIUsageStatsCountAggregateInputType = {
    id?: true
    date?: true
    category?: true
    totalCalls?: true
    successCalls?: true
    failedCalls?: true
    totalTokens?: true
    avgTokensPerCall?: true
    avgResponseTime?: true
    likesCount?: true
    dislikesCount?: true
    escalationCount?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AIUsageStatsAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIUsageStats to aggregate.
     */
    where?: AIUsageStatsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIUsageStats to fetch.
     */
    orderBy?: AIUsageStatsOrderByWithRelationInput | AIUsageStatsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIUsageStatsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIUsageStats 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` AIUsageStats.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIUsageStats
    **/
    _count?: true | AIUsageStatsCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AIUsageStatsAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AIUsageStatsSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIUsageStatsMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIUsageStatsMaxAggregateInputType
  }

  export type GetAIUsageStatsAggregateType<T extends AIUsageStatsAggregateArgs> = {
        [P in keyof T & keyof AggregateAIUsageStats]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIUsageStats[P]>
      : GetScalarType<T[P], AggregateAIUsageStats[P]>
  }




  export type AIUsageStatsGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIUsageStatsWhereInput
    orderBy?: AIUsageStatsOrderByWithAggregationInput | AIUsageStatsOrderByWithAggregationInput[]
    by: AIUsageStatsScalarFieldEnum[] | AIUsageStatsScalarFieldEnum
    having?: AIUsageStatsScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIUsageStatsCountAggregateInputType | true
    _avg?: AIUsageStatsAvgAggregateInputType
    _sum?: AIUsageStatsSumAggregateInputType
    _min?: AIUsageStatsMinAggregateInputType
    _max?: AIUsageStatsMaxAggregateInputType
  }

  export type AIUsageStatsGroupByOutputType = {
    id: string
    date: Date
    category: $Enums.AIConversationCategory
    totalCalls: number
    successCalls: number
    failedCalls: number
    totalTokens: number
    avgTokensPerCall: number
    avgResponseTime: number
    likesCount: number
    dislikesCount: number
    escalationCount: number
    createdAt: Date
    updatedAt: Date
    _count: AIUsageStatsCountAggregateOutputType | null
    _avg: AIUsageStatsAvgAggregateOutputType | null
    _sum: AIUsageStatsSumAggregateOutputType | null
    _min: AIUsageStatsMinAggregateOutputType | null
    _max: AIUsageStatsMaxAggregateOutputType | null
  }

  type GetAIUsageStatsGroupByPayload<T extends AIUsageStatsGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIUsageStatsGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIUsageStatsGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIUsageStatsGroupByOutputType[P]>
            : GetScalarType<T[P], AIUsageStatsGroupByOutputType[P]>
        }
      >
    >


  export type AIUsageStatsSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    category?: boolean
    totalCalls?: boolean
    successCalls?: boolean
    failedCalls?: boolean
    totalTokens?: boolean
    avgTokensPerCall?: boolean
    avgResponseTime?: boolean
    likesCount?: boolean
    dislikesCount?: boolean
    escalationCount?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIUsageStats"]>

  export type AIUsageStatsSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    category?: boolean
    totalCalls?: boolean
    successCalls?: boolean
    failedCalls?: boolean
    totalTokens?: boolean
    avgTokensPerCall?: boolean
    avgResponseTime?: boolean
    likesCount?: boolean
    dislikesCount?: boolean
    escalationCount?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIUsageStats"]>

  export type AIUsageStatsSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    category?: boolean
    totalCalls?: boolean
    successCalls?: boolean
    failedCalls?: boolean
    totalTokens?: boolean
    avgTokensPerCall?: boolean
    avgResponseTime?: boolean
    likesCount?: boolean
    dislikesCount?: boolean
    escalationCount?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aIUsageStats"]>

  export type AIUsageStatsSelectScalar = {
    id?: boolean
    date?: boolean
    category?: boolean
    totalCalls?: boolean
    successCalls?: boolean
    failedCalls?: boolean
    totalTokens?: boolean
    avgTokensPerCall?: boolean
    avgResponseTime?: boolean
    likesCount?: boolean
    dislikesCount?: boolean
    escalationCount?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AIUsageStatsOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "date" | "category" | "totalCalls" | "successCalls" | "failedCalls" | "totalTokens" | "avgTokensPerCall" | "avgResponseTime" | "likesCount" | "dislikesCount" | "escalationCount" | "createdAt" | "updatedAt", ExtArgs["result"]["aIUsageStats"]>

  export type $AIUsageStatsPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIUsageStats"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      date: Date
      category: $Enums.AIConversationCategory
      totalCalls: number
      successCalls: number
      failedCalls: number
      totalTokens: number
      avgTokensPerCall: number
      avgResponseTime: number
      likesCount: number
      dislikesCount: number
      escalationCount: number
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aIUsageStats"]>
    composites: {}
  }

  type AIUsageStatsGetPayload<S extends boolean | null | undefined | AIUsageStatsDefaultArgs> = $Result.GetResult<Prisma.$AIUsageStatsPayload, S>

  type AIUsageStatsCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIUsageStatsFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIUsageStatsCountAggregateInputType | true
    }

  export interface AIUsageStatsDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIUsageStats'], meta: { name: 'AIUsageStats' } }
    /**
     * Find zero or one AIUsageStats that matches the filter.
     * @param {AIUsageStatsFindUniqueArgs} args - Arguments to find a AIUsageStats
     * @example
     * // Get one AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIUsageStatsFindUniqueArgs>(args: SelectSubset<T, AIUsageStatsFindUniqueArgs<ExtArgs>>): Prisma__AIUsageStatsClient<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIUsageStats that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIUsageStatsFindUniqueOrThrowArgs} args - Arguments to find a AIUsageStats
     * @example
     * // Get one AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIUsageStatsFindUniqueOrThrowArgs>(args: SelectSubset<T, AIUsageStatsFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIUsageStatsClient<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIUsageStats 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 {AIUsageStatsFindFirstArgs} args - Arguments to find a AIUsageStats
     * @example
     * // Get one AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIUsageStatsFindFirstArgs>(args?: SelectSubset<T, AIUsageStatsFindFirstArgs<ExtArgs>>): Prisma__AIUsageStatsClient<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIUsageStats 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 {AIUsageStatsFindFirstOrThrowArgs} args - Arguments to find a AIUsageStats
     * @example
     * // Get one AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIUsageStatsFindFirstOrThrowArgs>(args?: SelectSubset<T, AIUsageStatsFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIUsageStatsClient<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIUsageStats 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 {AIUsageStatsFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.findMany()
     * 
     * // Get first 10 AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIUsageStatsWithIdOnly = await prisma.aIUsageStats.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIUsageStatsFindManyArgs>(args?: SelectSubset<T, AIUsageStatsFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIUsageStats.
     * @param {AIUsageStatsCreateArgs} args - Arguments to create a AIUsageStats.
     * @example
     * // Create one AIUsageStats
     * const AIUsageStats = await prisma.aIUsageStats.create({
     *   data: {
     *     // ... data to create a AIUsageStats
     *   }
     * })
     * 
     */
    create<T extends AIUsageStatsCreateArgs>(args: SelectSubset<T, AIUsageStatsCreateArgs<ExtArgs>>): Prisma__AIUsageStatsClient<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIUsageStats.
     * @param {AIUsageStatsCreateManyArgs} args - Arguments to create many AIUsageStats.
     * @example
     * // Create many AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIUsageStatsCreateManyArgs>(args?: SelectSubset<T, AIUsageStatsCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIUsageStats and returns the data saved in the database.
     * @param {AIUsageStatsCreateManyAndReturnArgs} args - Arguments to create many AIUsageStats.
     * @example
     * // Create many AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIUsageStats and only return the `id`
     * const aIUsageStatsWithIdOnly = await prisma.aIUsageStats.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 AIUsageStatsCreateManyAndReturnArgs>(args?: SelectSubset<T, AIUsageStatsCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIUsageStats.
     * @param {AIUsageStatsDeleteArgs} args - Arguments to delete one AIUsageStats.
     * @example
     * // Delete one AIUsageStats
     * const AIUsageStats = await prisma.aIUsageStats.delete({
     *   where: {
     *     // ... filter to delete one AIUsageStats
     *   }
     * })
     * 
     */
    delete<T extends AIUsageStatsDeleteArgs>(args: SelectSubset<T, AIUsageStatsDeleteArgs<ExtArgs>>): Prisma__AIUsageStatsClient<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIUsageStats.
     * @param {AIUsageStatsUpdateArgs} args - Arguments to update one AIUsageStats.
     * @example
     * // Update one AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIUsageStatsUpdateArgs>(args: SelectSubset<T, AIUsageStatsUpdateArgs<ExtArgs>>): Prisma__AIUsageStatsClient<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIUsageStats.
     * @param {AIUsageStatsDeleteManyArgs} args - Arguments to filter AIUsageStats to delete.
     * @example
     * // Delete a few AIUsageStats
     * const { count } = await prisma.aIUsageStats.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIUsageStatsDeleteManyArgs>(args?: SelectSubset<T, AIUsageStatsDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIUsageStats.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIUsageStatsUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIUsageStatsUpdateManyArgs>(args: SelectSubset<T, AIUsageStatsUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIUsageStats and returns the data updated in the database.
     * @param {AIUsageStatsUpdateManyAndReturnArgs} args - Arguments to update many AIUsageStats.
     * @example
     * // Update many AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIUsageStats and only return the `id`
     * const aIUsageStatsWithIdOnly = await prisma.aIUsageStats.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 AIUsageStatsUpdateManyAndReturnArgs>(args: SelectSubset<T, AIUsageStatsUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIUsageStats.
     * @param {AIUsageStatsUpsertArgs} args - Arguments to update or create a AIUsageStats.
     * @example
     * // Update or create a AIUsageStats
     * const aIUsageStats = await prisma.aIUsageStats.upsert({
     *   create: {
     *     // ... data to create a AIUsageStats
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIUsageStats we want to update
     *   }
     * })
     */
    upsert<T extends AIUsageStatsUpsertArgs>(args: SelectSubset<T, AIUsageStatsUpsertArgs<ExtArgs>>): Prisma__AIUsageStatsClient<$Result.GetResult<Prisma.$AIUsageStatsPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIUsageStats.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIUsageStatsCountArgs} args - Arguments to filter AIUsageStats to count.
     * @example
     * // Count the number of AIUsageStats
     * const count = await prisma.aIUsageStats.count({
     *   where: {
     *     // ... the filter for the AIUsageStats we want to count
     *   }
     * })
    **/
    count<T extends AIUsageStatsCountArgs>(
      args?: Subset<T, AIUsageStatsCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIUsageStatsCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIUsageStats.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIUsageStatsAggregateArgs} 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 AIUsageStatsAggregateArgs>(args: Subset<T, AIUsageStatsAggregateArgs>): Prisma.PrismaPromise<GetAIUsageStatsAggregateType<T>>

    /**
     * Group by AIUsageStats.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIUsageStatsGroupByArgs} 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 AIUsageStatsGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIUsageStatsGroupByArgs['orderBy'] }
        : { orderBy?: AIUsageStatsGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIUsageStatsGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIUsageStatsGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIUsageStats model
   */
  readonly fields: AIUsageStatsFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIUsageStats.
   * 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__AIUsageStatsClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIUsageStats model
   */
  interface AIUsageStatsFieldRefs {
    readonly id: FieldRef<"AIUsageStats", 'String'>
    readonly date: FieldRef<"AIUsageStats", 'DateTime'>
    readonly category: FieldRef<"AIUsageStats", 'AIConversationCategory'>
    readonly totalCalls: FieldRef<"AIUsageStats", 'Int'>
    readonly successCalls: FieldRef<"AIUsageStats", 'Int'>
    readonly failedCalls: FieldRef<"AIUsageStats", 'Int'>
    readonly totalTokens: FieldRef<"AIUsageStats", 'Int'>
    readonly avgTokensPerCall: FieldRef<"AIUsageStats", 'Float'>
    readonly avgResponseTime: FieldRef<"AIUsageStats", 'Int'>
    readonly likesCount: FieldRef<"AIUsageStats", 'Int'>
    readonly dislikesCount: FieldRef<"AIUsageStats", 'Int'>
    readonly escalationCount: FieldRef<"AIUsageStats", 'Int'>
    readonly createdAt: FieldRef<"AIUsageStats", 'DateTime'>
    readonly updatedAt: FieldRef<"AIUsageStats", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIUsageStats findUnique
   */
  export type AIUsageStatsFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * Filter, which AIUsageStats to fetch.
     */
    where: AIUsageStatsWhereUniqueInput
  }

  /**
   * AIUsageStats findUniqueOrThrow
   */
  export type AIUsageStatsFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * Filter, which AIUsageStats to fetch.
     */
    where: AIUsageStatsWhereUniqueInput
  }

  /**
   * AIUsageStats findFirst
   */
  export type AIUsageStatsFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * Filter, which AIUsageStats to fetch.
     */
    where?: AIUsageStatsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIUsageStats to fetch.
     */
    orderBy?: AIUsageStatsOrderByWithRelationInput | AIUsageStatsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIUsageStats.
     */
    cursor?: AIUsageStatsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIUsageStats 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` AIUsageStats.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIUsageStats.
     */
    distinct?: AIUsageStatsScalarFieldEnum | AIUsageStatsScalarFieldEnum[]
  }

  /**
   * AIUsageStats findFirstOrThrow
   */
  export type AIUsageStatsFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * Filter, which AIUsageStats to fetch.
     */
    where?: AIUsageStatsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIUsageStats to fetch.
     */
    orderBy?: AIUsageStatsOrderByWithRelationInput | AIUsageStatsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIUsageStats.
     */
    cursor?: AIUsageStatsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIUsageStats 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` AIUsageStats.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIUsageStats.
     */
    distinct?: AIUsageStatsScalarFieldEnum | AIUsageStatsScalarFieldEnum[]
  }

  /**
   * AIUsageStats findMany
   */
  export type AIUsageStatsFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * Filter, which AIUsageStats to fetch.
     */
    where?: AIUsageStatsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIUsageStats to fetch.
     */
    orderBy?: AIUsageStatsOrderByWithRelationInput | AIUsageStatsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIUsageStats.
     */
    cursor?: AIUsageStatsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIUsageStats 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` AIUsageStats.
     */
    skip?: number
    distinct?: AIUsageStatsScalarFieldEnum | AIUsageStatsScalarFieldEnum[]
  }

  /**
   * AIUsageStats create
   */
  export type AIUsageStatsCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * The data needed to create a AIUsageStats.
     */
    data: XOR<AIUsageStatsCreateInput, AIUsageStatsUncheckedCreateInput>
  }

  /**
   * AIUsageStats createMany
   */
  export type AIUsageStatsCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIUsageStats.
     */
    data: AIUsageStatsCreateManyInput | AIUsageStatsCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIUsageStats createManyAndReturn
   */
  export type AIUsageStatsCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * The data used to create many AIUsageStats.
     */
    data: AIUsageStatsCreateManyInput | AIUsageStatsCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIUsageStats update
   */
  export type AIUsageStatsUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * The data needed to update a AIUsageStats.
     */
    data: XOR<AIUsageStatsUpdateInput, AIUsageStatsUncheckedUpdateInput>
    /**
     * Choose, which AIUsageStats to update.
     */
    where: AIUsageStatsWhereUniqueInput
  }

  /**
   * AIUsageStats updateMany
   */
  export type AIUsageStatsUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIUsageStats.
     */
    data: XOR<AIUsageStatsUpdateManyMutationInput, AIUsageStatsUncheckedUpdateManyInput>
    /**
     * Filter which AIUsageStats to update
     */
    where?: AIUsageStatsWhereInput
    /**
     * Limit how many AIUsageStats to update.
     */
    limit?: number
  }

  /**
   * AIUsageStats updateManyAndReturn
   */
  export type AIUsageStatsUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * The data used to update AIUsageStats.
     */
    data: XOR<AIUsageStatsUpdateManyMutationInput, AIUsageStatsUncheckedUpdateManyInput>
    /**
     * Filter which AIUsageStats to update
     */
    where?: AIUsageStatsWhereInput
    /**
     * Limit how many AIUsageStats to update.
     */
    limit?: number
  }

  /**
   * AIUsageStats upsert
   */
  export type AIUsageStatsUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * The filter to search for the AIUsageStats to update in case it exists.
     */
    where: AIUsageStatsWhereUniqueInput
    /**
     * In case the AIUsageStats found by the `where` argument doesn't exist, create a new AIUsageStats with this data.
     */
    create: XOR<AIUsageStatsCreateInput, AIUsageStatsUncheckedCreateInput>
    /**
     * In case the AIUsageStats was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIUsageStatsUpdateInput, AIUsageStatsUncheckedUpdateInput>
  }

  /**
   * AIUsageStats delete
   */
  export type AIUsageStatsDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
    /**
     * Filter which AIUsageStats to delete.
     */
    where: AIUsageStatsWhereUniqueInput
  }

  /**
   * AIUsageStats deleteMany
   */
  export type AIUsageStatsDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIUsageStats to delete
     */
    where?: AIUsageStatsWhereInput
    /**
     * Limit how many AIUsageStats to delete.
     */
    limit?: number
  }

  /**
   * AIUsageStats without action
   */
  export type AIUsageStatsDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIUsageStats
     */
    select?: AIUsageStatsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIUsageStats
     */
    omit?: AIUsageStatsOmit<ExtArgs> | null
  }


  /**
   * Model AgentSession
   */

  export type AggregateAgentSession = {
    _count: AgentSessionCountAggregateOutputType | null
    _min: AgentSessionMinAggregateOutputType | null
    _max: AgentSessionMaxAggregateOutputType | null
  }

  export type AgentSessionMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    title: string | null
    surface: $Enums.AgentSurface | null
    status: $Enums.AgentSessionStatus | null
    projectId: string | null
    personaId: string | null
    planMode: $Enums.AgentPlanMode | null
    permissionMode: $Enums.AgentPermissionMode | null
    parentSessionId: string | null
    closedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentSessionMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    title: string | null
    surface: $Enums.AgentSurface | null
    status: $Enums.AgentSessionStatus | null
    projectId: string | null
    personaId: string | null
    planMode: $Enums.AgentPlanMode | null
    permissionMode: $Enums.AgentPermissionMode | null
    parentSessionId: string | null
    closedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentSessionCountAggregateOutputType = {
    id: number
    organizationId: number
    createdById: number
    title: number
    surface: number
    status: number
    projectId: number
    personaId: number
    planMode: number
    permissionMode: number
    parentSessionId: number
    closedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentSessionMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    title?: true
    surface?: true
    status?: true
    projectId?: true
    personaId?: true
    planMode?: true
    permissionMode?: true
    parentSessionId?: true
    closedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentSessionMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    title?: true
    surface?: true
    status?: true
    projectId?: true
    personaId?: true
    planMode?: true
    permissionMode?: true
    parentSessionId?: true
    closedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentSessionCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    title?: true
    surface?: true
    status?: true
    projectId?: true
    personaId?: true
    planMode?: true
    permissionMode?: true
    parentSessionId?: true
    closedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentSessionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentSession to aggregate.
     */
    where?: AgentSessionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentSessions to fetch.
     */
    orderBy?: AgentSessionOrderByWithRelationInput | AgentSessionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentSessionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentSessions 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` AgentSessions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentSessions
    **/
    _count?: true | AgentSessionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentSessionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentSessionMaxAggregateInputType
  }

  export type GetAgentSessionAggregateType<T extends AgentSessionAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentSession]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentSession[P]>
      : GetScalarType<T[P], AggregateAgentSession[P]>
  }




  export type AgentSessionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentSessionWhereInput
    orderBy?: AgentSessionOrderByWithAggregationInput | AgentSessionOrderByWithAggregationInput[]
    by: AgentSessionScalarFieldEnum[] | AgentSessionScalarFieldEnum
    having?: AgentSessionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentSessionCountAggregateInputType | true
    _min?: AgentSessionMinAggregateInputType
    _max?: AgentSessionMaxAggregateInputType
  }

  export type AgentSessionGroupByOutputType = {
    id: string
    organizationId: string
    createdById: string
    title: string | null
    surface: $Enums.AgentSurface
    status: $Enums.AgentSessionStatus
    projectId: string | null
    personaId: string | null
    planMode: $Enums.AgentPlanMode
    permissionMode: $Enums.AgentPermissionMode
    parentSessionId: string | null
    closedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: AgentSessionCountAggregateOutputType | null
    _min: AgentSessionMinAggregateOutputType | null
    _max: AgentSessionMaxAggregateOutputType | null
  }

  type GetAgentSessionGroupByPayload<T extends AgentSessionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentSessionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentSessionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentSessionGroupByOutputType[P]>
            : GetScalarType<T[P], AgentSessionGroupByOutputType[P]>
        }
      >
    >


  export type AgentSessionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    title?: boolean
    surface?: boolean
    status?: boolean
    projectId?: boolean
    personaId?: boolean
    planMode?: boolean
    permissionMode?: boolean
    parentSessionId?: boolean
    closedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    messages?: boolean | AgentSession$messagesArgs<ExtArgs>
    parent?: boolean | AgentSession$parentArgs<ExtArgs>
    children?: boolean | AgentSession$childrenArgs<ExtArgs>
    crons?: boolean | AgentSession$cronsArgs<ExtArgs>
    persona?: boolean | AgentSession$personaArgs<ExtArgs>
    _count?: boolean | AgentSessionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentSession"]>

  export type AgentSessionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    title?: boolean
    surface?: boolean
    status?: boolean
    projectId?: boolean
    personaId?: boolean
    planMode?: boolean
    permissionMode?: boolean
    parentSessionId?: boolean
    closedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    parent?: boolean | AgentSession$parentArgs<ExtArgs>
    persona?: boolean | AgentSession$personaArgs<ExtArgs>
  }, ExtArgs["result"]["agentSession"]>

  export type AgentSessionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    title?: boolean
    surface?: boolean
    status?: boolean
    projectId?: boolean
    personaId?: boolean
    planMode?: boolean
    permissionMode?: boolean
    parentSessionId?: boolean
    closedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    parent?: boolean | AgentSession$parentArgs<ExtArgs>
    persona?: boolean | AgentSession$personaArgs<ExtArgs>
  }, ExtArgs["result"]["agentSession"]>

  export type AgentSessionSelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    title?: boolean
    surface?: boolean
    status?: boolean
    projectId?: boolean
    personaId?: boolean
    planMode?: boolean
    permissionMode?: boolean
    parentSessionId?: boolean
    closedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentSessionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdById" | "title" | "surface" | "status" | "projectId" | "personaId" | "planMode" | "permissionMode" | "parentSessionId" | "closedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["agentSession"]>
  export type AgentSessionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    messages?: boolean | AgentSession$messagesArgs<ExtArgs>
    parent?: boolean | AgentSession$parentArgs<ExtArgs>
    children?: boolean | AgentSession$childrenArgs<ExtArgs>
    crons?: boolean | AgentSession$cronsArgs<ExtArgs>
    persona?: boolean | AgentSession$personaArgs<ExtArgs>
    _count?: boolean | AgentSessionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AgentSessionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | AgentSession$parentArgs<ExtArgs>
    persona?: boolean | AgentSession$personaArgs<ExtArgs>
  }
  export type AgentSessionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | AgentSession$parentArgs<ExtArgs>
    persona?: boolean | AgentSession$personaArgs<ExtArgs>
  }

  export type $AgentSessionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentSession"
    objects: {
      messages: Prisma.$AgentMessagePayload<ExtArgs>[]
      parent: Prisma.$AgentSessionPayload<ExtArgs> | null
      children: Prisma.$AgentSessionPayload<ExtArgs>[]
      crons: Prisma.$AgentCronPayload<ExtArgs>[]
      persona: Prisma.$AgentPersonaPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      createdById: string
      title: string | null
      surface: $Enums.AgentSurface
      status: $Enums.AgentSessionStatus
      projectId: string | null
      /**
       * M1-step2: 选中的 persona，决定本 session 注入哪些 PERSONA-scoped memory
       * + 后续可叠加 persona.instructions 到 system prompt
       * onDelete:SetNull — 删 persona 时把指向它的 session.personaId 清空
       */
      personaId: string | null
      planMode: $Enums.AgentPlanMode
      permissionMode: $Enums.AgentPermissionMode
      /**
       * 多 Agent 拓扑：sub-agent session 指向父 session（delegate_task 写入）
       * root session（用户直接发起）此字段为 NULL；child sessions 通过它形成树
       * 自引用 FK + onDelete:SetNull —— 父 session 硬删时 child.parentSessionId 自动置空
       * （不级联删 child，避免误删父导致子树丢失审计）
       */
      parentSessionId: string | null
      closedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentSession"]>
    composites: {}
  }

  type AgentSessionGetPayload<S extends boolean | null | undefined | AgentSessionDefaultArgs> = $Result.GetResult<Prisma.$AgentSessionPayload, S>

  type AgentSessionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentSessionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentSessionCountAggregateInputType | true
    }

  export interface AgentSessionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentSession'], meta: { name: 'AgentSession' } }
    /**
     * Find zero or one AgentSession that matches the filter.
     * @param {AgentSessionFindUniqueArgs} args - Arguments to find a AgentSession
     * @example
     * // Get one AgentSession
     * const agentSession = await prisma.agentSession.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentSessionFindUniqueArgs>(args: SelectSubset<T, AgentSessionFindUniqueArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentSession that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentSessionFindUniqueOrThrowArgs} args - Arguments to find a AgentSession
     * @example
     * // Get one AgentSession
     * const agentSession = await prisma.agentSession.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentSessionFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentSessionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentSession 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 {AgentSessionFindFirstArgs} args - Arguments to find a AgentSession
     * @example
     * // Get one AgentSession
     * const agentSession = await prisma.agentSession.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentSessionFindFirstArgs>(args?: SelectSubset<T, AgentSessionFindFirstArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentSession 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 {AgentSessionFindFirstOrThrowArgs} args - Arguments to find a AgentSession
     * @example
     * // Get one AgentSession
     * const agentSession = await prisma.agentSession.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentSessionFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentSessionFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentSessions 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 {AgentSessionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentSessions
     * const agentSessions = await prisma.agentSession.findMany()
     * 
     * // Get first 10 AgentSessions
     * const agentSessions = await prisma.agentSession.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentSessionWithIdOnly = await prisma.agentSession.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentSessionFindManyArgs>(args?: SelectSubset<T, AgentSessionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentSession.
     * @param {AgentSessionCreateArgs} args - Arguments to create a AgentSession.
     * @example
     * // Create one AgentSession
     * const AgentSession = await prisma.agentSession.create({
     *   data: {
     *     // ... data to create a AgentSession
     *   }
     * })
     * 
     */
    create<T extends AgentSessionCreateArgs>(args: SelectSubset<T, AgentSessionCreateArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentSessions.
     * @param {AgentSessionCreateManyArgs} args - Arguments to create many AgentSessions.
     * @example
     * // Create many AgentSessions
     * const agentSession = await prisma.agentSession.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentSessionCreateManyArgs>(args?: SelectSubset<T, AgentSessionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentSessions and returns the data saved in the database.
     * @param {AgentSessionCreateManyAndReturnArgs} args - Arguments to create many AgentSessions.
     * @example
     * // Create many AgentSessions
     * const agentSession = await prisma.agentSession.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentSessions and only return the `id`
     * const agentSessionWithIdOnly = await prisma.agentSession.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 AgentSessionCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentSessionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentSession.
     * @param {AgentSessionDeleteArgs} args - Arguments to delete one AgentSession.
     * @example
     * // Delete one AgentSession
     * const AgentSession = await prisma.agentSession.delete({
     *   where: {
     *     // ... filter to delete one AgentSession
     *   }
     * })
     * 
     */
    delete<T extends AgentSessionDeleteArgs>(args: SelectSubset<T, AgentSessionDeleteArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentSession.
     * @param {AgentSessionUpdateArgs} args - Arguments to update one AgentSession.
     * @example
     * // Update one AgentSession
     * const agentSession = await prisma.agentSession.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentSessionUpdateArgs>(args: SelectSubset<T, AgentSessionUpdateArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentSessions.
     * @param {AgentSessionDeleteManyArgs} args - Arguments to filter AgentSessions to delete.
     * @example
     * // Delete a few AgentSessions
     * const { count } = await prisma.agentSession.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentSessionDeleteManyArgs>(args?: SelectSubset<T, AgentSessionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentSessions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentSessionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentSessions
     * const agentSession = await prisma.agentSession.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentSessionUpdateManyArgs>(args: SelectSubset<T, AgentSessionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentSessions and returns the data updated in the database.
     * @param {AgentSessionUpdateManyAndReturnArgs} args - Arguments to update many AgentSessions.
     * @example
     * // Update many AgentSessions
     * const agentSession = await prisma.agentSession.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentSessions and only return the `id`
     * const agentSessionWithIdOnly = await prisma.agentSession.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 AgentSessionUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentSessionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentSession.
     * @param {AgentSessionUpsertArgs} args - Arguments to update or create a AgentSession.
     * @example
     * // Update or create a AgentSession
     * const agentSession = await prisma.agentSession.upsert({
     *   create: {
     *     // ... data to create a AgentSession
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentSession we want to update
     *   }
     * })
     */
    upsert<T extends AgentSessionUpsertArgs>(args: SelectSubset<T, AgentSessionUpsertArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentSessions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentSessionCountArgs} args - Arguments to filter AgentSessions to count.
     * @example
     * // Count the number of AgentSessions
     * const count = await prisma.agentSession.count({
     *   where: {
     *     // ... the filter for the AgentSessions we want to count
     *   }
     * })
    **/
    count<T extends AgentSessionCountArgs>(
      args?: Subset<T, AgentSessionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentSessionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentSession.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentSessionAggregateArgs} 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 AgentSessionAggregateArgs>(args: Subset<T, AgentSessionAggregateArgs>): Prisma.PrismaPromise<GetAgentSessionAggregateType<T>>

    /**
     * Group by AgentSession.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentSessionGroupByArgs} 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 AgentSessionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentSessionGroupByArgs['orderBy'] }
        : { orderBy?: AgentSessionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentSessionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentSessionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentSession model
   */
  readonly fields: AgentSessionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentSession.
   * 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__AgentSessionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    messages<T extends AgentSession$messagesArgs<ExtArgs> = {}>(args?: Subset<T, AgentSession$messagesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    parent<T extends AgentSession$parentArgs<ExtArgs> = {}>(args?: Subset<T, AgentSession$parentArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    children<T extends AgentSession$childrenArgs<ExtArgs> = {}>(args?: Subset<T, AgentSession$childrenArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    crons<T extends AgentSession$cronsArgs<ExtArgs> = {}>(args?: Subset<T, AgentSession$cronsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    persona<T extends AgentSession$personaArgs<ExtArgs> = {}>(args?: Subset<T, AgentSession$personaArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentSession model
   */
  interface AgentSessionFieldRefs {
    readonly id: FieldRef<"AgentSession", 'String'>
    readonly organizationId: FieldRef<"AgentSession", 'String'>
    readonly createdById: FieldRef<"AgentSession", 'String'>
    readonly title: FieldRef<"AgentSession", 'String'>
    readonly surface: FieldRef<"AgentSession", 'AgentSurface'>
    readonly status: FieldRef<"AgentSession", 'AgentSessionStatus'>
    readonly projectId: FieldRef<"AgentSession", 'String'>
    readonly personaId: FieldRef<"AgentSession", 'String'>
    readonly planMode: FieldRef<"AgentSession", 'AgentPlanMode'>
    readonly permissionMode: FieldRef<"AgentSession", 'AgentPermissionMode'>
    readonly parentSessionId: FieldRef<"AgentSession", 'String'>
    readonly closedAt: FieldRef<"AgentSession", 'DateTime'>
    readonly createdAt: FieldRef<"AgentSession", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentSession", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentSession findUnique
   */
  export type AgentSessionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * Filter, which AgentSession to fetch.
     */
    where: AgentSessionWhereUniqueInput
  }

  /**
   * AgentSession findUniqueOrThrow
   */
  export type AgentSessionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * Filter, which AgentSession to fetch.
     */
    where: AgentSessionWhereUniqueInput
  }

  /**
   * AgentSession findFirst
   */
  export type AgentSessionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * Filter, which AgentSession to fetch.
     */
    where?: AgentSessionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentSessions to fetch.
     */
    orderBy?: AgentSessionOrderByWithRelationInput | AgentSessionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentSessions.
     */
    cursor?: AgentSessionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentSessions 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` AgentSessions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentSessions.
     */
    distinct?: AgentSessionScalarFieldEnum | AgentSessionScalarFieldEnum[]
  }

  /**
   * AgentSession findFirstOrThrow
   */
  export type AgentSessionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * Filter, which AgentSession to fetch.
     */
    where?: AgentSessionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentSessions to fetch.
     */
    orderBy?: AgentSessionOrderByWithRelationInput | AgentSessionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentSessions.
     */
    cursor?: AgentSessionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentSessions 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` AgentSessions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentSessions.
     */
    distinct?: AgentSessionScalarFieldEnum | AgentSessionScalarFieldEnum[]
  }

  /**
   * AgentSession findMany
   */
  export type AgentSessionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * Filter, which AgentSessions to fetch.
     */
    where?: AgentSessionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentSessions to fetch.
     */
    orderBy?: AgentSessionOrderByWithRelationInput | AgentSessionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentSessions.
     */
    cursor?: AgentSessionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentSessions 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` AgentSessions.
     */
    skip?: number
    distinct?: AgentSessionScalarFieldEnum | AgentSessionScalarFieldEnum[]
  }

  /**
   * AgentSession create
   */
  export type AgentSessionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * The data needed to create a AgentSession.
     */
    data: XOR<AgentSessionCreateInput, AgentSessionUncheckedCreateInput>
  }

  /**
   * AgentSession createMany
   */
  export type AgentSessionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentSessions.
     */
    data: AgentSessionCreateManyInput | AgentSessionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentSession createManyAndReturn
   */
  export type AgentSessionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * The data used to create many AgentSessions.
     */
    data: AgentSessionCreateManyInput | AgentSessionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentSession update
   */
  export type AgentSessionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * The data needed to update a AgentSession.
     */
    data: XOR<AgentSessionUpdateInput, AgentSessionUncheckedUpdateInput>
    /**
     * Choose, which AgentSession to update.
     */
    where: AgentSessionWhereUniqueInput
  }

  /**
   * AgentSession updateMany
   */
  export type AgentSessionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentSessions.
     */
    data: XOR<AgentSessionUpdateManyMutationInput, AgentSessionUncheckedUpdateManyInput>
    /**
     * Filter which AgentSessions to update
     */
    where?: AgentSessionWhereInput
    /**
     * Limit how many AgentSessions to update.
     */
    limit?: number
  }

  /**
   * AgentSession updateManyAndReturn
   */
  export type AgentSessionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * The data used to update AgentSessions.
     */
    data: XOR<AgentSessionUpdateManyMutationInput, AgentSessionUncheckedUpdateManyInput>
    /**
     * Filter which AgentSessions to update
     */
    where?: AgentSessionWhereInput
    /**
     * Limit how many AgentSessions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentSession upsert
   */
  export type AgentSessionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * The filter to search for the AgentSession to update in case it exists.
     */
    where: AgentSessionWhereUniqueInput
    /**
     * In case the AgentSession found by the `where` argument doesn't exist, create a new AgentSession with this data.
     */
    create: XOR<AgentSessionCreateInput, AgentSessionUncheckedCreateInput>
    /**
     * In case the AgentSession was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentSessionUpdateInput, AgentSessionUncheckedUpdateInput>
  }

  /**
   * AgentSession delete
   */
  export type AgentSessionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    /**
     * Filter which AgentSession to delete.
     */
    where: AgentSessionWhereUniqueInput
  }

  /**
   * AgentSession deleteMany
   */
  export type AgentSessionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentSessions to delete
     */
    where?: AgentSessionWhereInput
    /**
     * Limit how many AgentSessions to delete.
     */
    limit?: number
  }

  /**
   * AgentSession.messages
   */
  export type AgentSession$messagesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    where?: AgentMessageWhereInput
    orderBy?: AgentMessageOrderByWithRelationInput | AgentMessageOrderByWithRelationInput[]
    cursor?: AgentMessageWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AgentMessageScalarFieldEnum | AgentMessageScalarFieldEnum[]
  }

  /**
   * AgentSession.parent
   */
  export type AgentSession$parentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    where?: AgentSessionWhereInput
  }

  /**
   * AgentSession.children
   */
  export type AgentSession$childrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    where?: AgentSessionWhereInput
    orderBy?: AgentSessionOrderByWithRelationInput | AgentSessionOrderByWithRelationInput[]
    cursor?: AgentSessionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AgentSessionScalarFieldEnum | AgentSessionScalarFieldEnum[]
  }

  /**
   * AgentSession.crons
   */
  export type AgentSession$cronsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    where?: AgentCronWhereInput
    orderBy?: AgentCronOrderByWithRelationInput | AgentCronOrderByWithRelationInput[]
    cursor?: AgentCronWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AgentCronScalarFieldEnum | AgentCronScalarFieldEnum[]
  }

  /**
   * AgentSession.persona
   */
  export type AgentSession$personaArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    where?: AgentPersonaWhereInput
  }

  /**
   * AgentSession without action
   */
  export type AgentSessionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
  }


  /**
   * Model AgentMessage
   */

  export type AggregateAgentMessage = {
    _count: AgentMessageCountAggregateOutputType | null
    _avg: AgentMessageAvgAggregateOutputType | null
    _sum: AgentMessageSumAggregateOutputType | null
    _min: AgentMessageMinAggregateOutputType | null
    _max: AgentMessageMaxAggregateOutputType | null
  }

  export type AgentMessageAvgAggregateOutputType = {
    sequence: number | null
  }

  export type AgentMessageSumAggregateOutputType = {
    sequence: number | null
  }

  export type AgentMessageMinAggregateOutputType = {
    id: string | null
    sessionId: string | null
    turnId: string | null
    type: $Enums.AgentMessageType | null
    content: string | null
    model: string | null
    sequence: number | null
    createdAt: Date | null
  }

  export type AgentMessageMaxAggregateOutputType = {
    id: string | null
    sessionId: string | null
    turnId: string | null
    type: $Enums.AgentMessageType | null
    content: string | null
    model: string | null
    sequence: number | null
    createdAt: Date | null
  }

  export type AgentMessageCountAggregateOutputType = {
    id: number
    sessionId: number
    turnId: number
    type: number
    content: number
    payload: number
    model: number
    sequence: number
    createdAt: number
    _all: number
  }


  export type AgentMessageAvgAggregateInputType = {
    sequence?: true
  }

  export type AgentMessageSumAggregateInputType = {
    sequence?: true
  }

  export type AgentMessageMinAggregateInputType = {
    id?: true
    sessionId?: true
    turnId?: true
    type?: true
    content?: true
    model?: true
    sequence?: true
    createdAt?: true
  }

  export type AgentMessageMaxAggregateInputType = {
    id?: true
    sessionId?: true
    turnId?: true
    type?: true
    content?: true
    model?: true
    sequence?: true
    createdAt?: true
  }

  export type AgentMessageCountAggregateInputType = {
    id?: true
    sessionId?: true
    turnId?: true
    type?: true
    content?: true
    payload?: true
    model?: true
    sequence?: true
    createdAt?: true
    _all?: true
  }

  export type AgentMessageAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentMessage to aggregate.
     */
    where?: AgentMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMessages to fetch.
     */
    orderBy?: AgentMessageOrderByWithRelationInput | AgentMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMessages 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` AgentMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentMessages
    **/
    _count?: true | AgentMessageCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentMessageAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentMessageSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentMessageMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentMessageMaxAggregateInputType
  }

  export type GetAgentMessageAggregateType<T extends AgentMessageAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentMessage]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentMessage[P]>
      : GetScalarType<T[P], AggregateAgentMessage[P]>
  }




  export type AgentMessageGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentMessageWhereInput
    orderBy?: AgentMessageOrderByWithAggregationInput | AgentMessageOrderByWithAggregationInput[]
    by: AgentMessageScalarFieldEnum[] | AgentMessageScalarFieldEnum
    having?: AgentMessageScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentMessageCountAggregateInputType | true
    _avg?: AgentMessageAvgAggregateInputType
    _sum?: AgentMessageSumAggregateInputType
    _min?: AgentMessageMinAggregateInputType
    _max?: AgentMessageMaxAggregateInputType
  }

  export type AgentMessageGroupByOutputType = {
    id: string
    sessionId: string
    turnId: string
    type: $Enums.AgentMessageType
    content: string | null
    payload: JsonValue | null
    model: string | null
    sequence: number
    createdAt: Date
    _count: AgentMessageCountAggregateOutputType | null
    _avg: AgentMessageAvgAggregateOutputType | null
    _sum: AgentMessageSumAggregateOutputType | null
    _min: AgentMessageMinAggregateOutputType | null
    _max: AgentMessageMaxAggregateOutputType | null
  }

  type GetAgentMessageGroupByPayload<T extends AgentMessageGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentMessageGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentMessageGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentMessageGroupByOutputType[P]>
            : GetScalarType<T[P], AgentMessageGroupByOutputType[P]>
        }
      >
    >


  export type AgentMessageSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sessionId?: boolean
    turnId?: boolean
    type?: boolean
    content?: boolean
    payload?: boolean
    model?: boolean
    sequence?: boolean
    createdAt?: boolean
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentMessage"]>

  export type AgentMessageSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sessionId?: boolean
    turnId?: boolean
    type?: boolean
    content?: boolean
    payload?: boolean
    model?: boolean
    sequence?: boolean
    createdAt?: boolean
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentMessage"]>

  export type AgentMessageSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sessionId?: boolean
    turnId?: boolean
    type?: boolean
    content?: boolean
    payload?: boolean
    model?: boolean
    sequence?: boolean
    createdAt?: boolean
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentMessage"]>

  export type AgentMessageSelectScalar = {
    id?: boolean
    sessionId?: boolean
    turnId?: boolean
    type?: boolean
    content?: boolean
    payload?: boolean
    model?: boolean
    sequence?: boolean
    createdAt?: boolean
  }

  export type AgentMessageOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "sessionId" | "turnId" | "type" | "content" | "payload" | "model" | "sequence" | "createdAt", ExtArgs["result"]["agentMessage"]>
  export type AgentMessageInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }
  export type AgentMessageIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }
  export type AgentMessageIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }

  export type $AgentMessagePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentMessage"
    objects: {
      session: Prisma.$AgentSessionPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      sessionId: string
      turnId: string
      type: $Enums.AgentMessageType
      content: string | null
      payload: Prisma.JsonValue | null
      model: string | null
      sequence: number
      createdAt: Date
    }, ExtArgs["result"]["agentMessage"]>
    composites: {}
  }

  type AgentMessageGetPayload<S extends boolean | null | undefined | AgentMessageDefaultArgs> = $Result.GetResult<Prisma.$AgentMessagePayload, S>

  type AgentMessageCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentMessageFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentMessageCountAggregateInputType | true
    }

  export interface AgentMessageDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentMessage'], meta: { name: 'AgentMessage' } }
    /**
     * Find zero or one AgentMessage that matches the filter.
     * @param {AgentMessageFindUniqueArgs} args - Arguments to find a AgentMessage
     * @example
     * // Get one AgentMessage
     * const agentMessage = await prisma.agentMessage.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentMessageFindUniqueArgs>(args: SelectSubset<T, AgentMessageFindUniqueArgs<ExtArgs>>): Prisma__AgentMessageClient<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentMessage that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentMessageFindUniqueOrThrowArgs} args - Arguments to find a AgentMessage
     * @example
     * // Get one AgentMessage
     * const agentMessage = await prisma.agentMessage.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentMessageFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentMessageFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentMessageClient<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentMessage 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 {AgentMessageFindFirstArgs} args - Arguments to find a AgentMessage
     * @example
     * // Get one AgentMessage
     * const agentMessage = await prisma.agentMessage.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentMessageFindFirstArgs>(args?: SelectSubset<T, AgentMessageFindFirstArgs<ExtArgs>>): Prisma__AgentMessageClient<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentMessage 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 {AgentMessageFindFirstOrThrowArgs} args - Arguments to find a AgentMessage
     * @example
     * // Get one AgentMessage
     * const agentMessage = await prisma.agentMessage.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentMessageFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentMessageFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentMessageClient<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentMessages 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 {AgentMessageFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentMessages
     * const agentMessages = await prisma.agentMessage.findMany()
     * 
     * // Get first 10 AgentMessages
     * const agentMessages = await prisma.agentMessage.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentMessageWithIdOnly = await prisma.agentMessage.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentMessageFindManyArgs>(args?: SelectSubset<T, AgentMessageFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentMessage.
     * @param {AgentMessageCreateArgs} args - Arguments to create a AgentMessage.
     * @example
     * // Create one AgentMessage
     * const AgentMessage = await prisma.agentMessage.create({
     *   data: {
     *     // ... data to create a AgentMessage
     *   }
     * })
     * 
     */
    create<T extends AgentMessageCreateArgs>(args: SelectSubset<T, AgentMessageCreateArgs<ExtArgs>>): Prisma__AgentMessageClient<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentMessages.
     * @param {AgentMessageCreateManyArgs} args - Arguments to create many AgentMessages.
     * @example
     * // Create many AgentMessages
     * const agentMessage = await prisma.agentMessage.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentMessageCreateManyArgs>(args?: SelectSubset<T, AgentMessageCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentMessages and returns the data saved in the database.
     * @param {AgentMessageCreateManyAndReturnArgs} args - Arguments to create many AgentMessages.
     * @example
     * // Create many AgentMessages
     * const agentMessage = await prisma.agentMessage.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentMessages and only return the `id`
     * const agentMessageWithIdOnly = await prisma.agentMessage.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 AgentMessageCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentMessageCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentMessage.
     * @param {AgentMessageDeleteArgs} args - Arguments to delete one AgentMessage.
     * @example
     * // Delete one AgentMessage
     * const AgentMessage = await prisma.agentMessage.delete({
     *   where: {
     *     // ... filter to delete one AgentMessage
     *   }
     * })
     * 
     */
    delete<T extends AgentMessageDeleteArgs>(args: SelectSubset<T, AgentMessageDeleteArgs<ExtArgs>>): Prisma__AgentMessageClient<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentMessage.
     * @param {AgentMessageUpdateArgs} args - Arguments to update one AgentMessage.
     * @example
     * // Update one AgentMessage
     * const agentMessage = await prisma.agentMessage.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentMessageUpdateArgs>(args: SelectSubset<T, AgentMessageUpdateArgs<ExtArgs>>): Prisma__AgentMessageClient<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentMessages.
     * @param {AgentMessageDeleteManyArgs} args - Arguments to filter AgentMessages to delete.
     * @example
     * // Delete a few AgentMessages
     * const { count } = await prisma.agentMessage.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentMessageDeleteManyArgs>(args?: SelectSubset<T, AgentMessageDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentMessages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMessageUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentMessages
     * const agentMessage = await prisma.agentMessage.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentMessageUpdateManyArgs>(args: SelectSubset<T, AgentMessageUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentMessages and returns the data updated in the database.
     * @param {AgentMessageUpdateManyAndReturnArgs} args - Arguments to update many AgentMessages.
     * @example
     * // Update many AgentMessages
     * const agentMessage = await prisma.agentMessage.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentMessages and only return the `id`
     * const agentMessageWithIdOnly = await prisma.agentMessage.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 AgentMessageUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentMessageUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentMessage.
     * @param {AgentMessageUpsertArgs} args - Arguments to update or create a AgentMessage.
     * @example
     * // Update or create a AgentMessage
     * const agentMessage = await prisma.agentMessage.upsert({
     *   create: {
     *     // ... data to create a AgentMessage
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentMessage we want to update
     *   }
     * })
     */
    upsert<T extends AgentMessageUpsertArgs>(args: SelectSubset<T, AgentMessageUpsertArgs<ExtArgs>>): Prisma__AgentMessageClient<$Result.GetResult<Prisma.$AgentMessagePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentMessages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMessageCountArgs} args - Arguments to filter AgentMessages to count.
     * @example
     * // Count the number of AgentMessages
     * const count = await prisma.agentMessage.count({
     *   where: {
     *     // ... the filter for the AgentMessages we want to count
     *   }
     * })
    **/
    count<T extends AgentMessageCountArgs>(
      args?: Subset<T, AgentMessageCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentMessageCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentMessage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMessageAggregateArgs} 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 AgentMessageAggregateArgs>(args: Subset<T, AgentMessageAggregateArgs>): Prisma.PrismaPromise<GetAgentMessageAggregateType<T>>

    /**
     * Group by AgentMessage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMessageGroupByArgs} 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 AgentMessageGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentMessageGroupByArgs['orderBy'] }
        : { orderBy?: AgentMessageGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentMessageGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentMessageGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentMessage model
   */
  readonly fields: AgentMessageFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentMessage.
   * 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__AgentMessageClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    session<T extends AgentSessionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentSessionDefaultArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentMessage model
   */
  interface AgentMessageFieldRefs {
    readonly id: FieldRef<"AgentMessage", 'String'>
    readonly sessionId: FieldRef<"AgentMessage", 'String'>
    readonly turnId: FieldRef<"AgentMessage", 'String'>
    readonly type: FieldRef<"AgentMessage", 'AgentMessageType'>
    readonly content: FieldRef<"AgentMessage", 'String'>
    readonly payload: FieldRef<"AgentMessage", 'Json'>
    readonly model: FieldRef<"AgentMessage", 'String'>
    readonly sequence: FieldRef<"AgentMessage", 'Int'>
    readonly createdAt: FieldRef<"AgentMessage", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentMessage findUnique
   */
  export type AgentMessageFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * Filter, which AgentMessage to fetch.
     */
    where: AgentMessageWhereUniqueInput
  }

  /**
   * AgentMessage findUniqueOrThrow
   */
  export type AgentMessageFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * Filter, which AgentMessage to fetch.
     */
    where: AgentMessageWhereUniqueInput
  }

  /**
   * AgentMessage findFirst
   */
  export type AgentMessageFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * Filter, which AgentMessage to fetch.
     */
    where?: AgentMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMessages to fetch.
     */
    orderBy?: AgentMessageOrderByWithRelationInput | AgentMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentMessages.
     */
    cursor?: AgentMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMessages 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` AgentMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentMessages.
     */
    distinct?: AgentMessageScalarFieldEnum | AgentMessageScalarFieldEnum[]
  }

  /**
   * AgentMessage findFirstOrThrow
   */
  export type AgentMessageFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * Filter, which AgentMessage to fetch.
     */
    where?: AgentMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMessages to fetch.
     */
    orderBy?: AgentMessageOrderByWithRelationInput | AgentMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentMessages.
     */
    cursor?: AgentMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMessages 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` AgentMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentMessages.
     */
    distinct?: AgentMessageScalarFieldEnum | AgentMessageScalarFieldEnum[]
  }

  /**
   * AgentMessage findMany
   */
  export type AgentMessageFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * Filter, which AgentMessages to fetch.
     */
    where?: AgentMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMessages to fetch.
     */
    orderBy?: AgentMessageOrderByWithRelationInput | AgentMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentMessages.
     */
    cursor?: AgentMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMessages 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` AgentMessages.
     */
    skip?: number
    distinct?: AgentMessageScalarFieldEnum | AgentMessageScalarFieldEnum[]
  }

  /**
   * AgentMessage create
   */
  export type AgentMessageCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * The data needed to create a AgentMessage.
     */
    data: XOR<AgentMessageCreateInput, AgentMessageUncheckedCreateInput>
  }

  /**
   * AgentMessage createMany
   */
  export type AgentMessageCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentMessages.
     */
    data: AgentMessageCreateManyInput | AgentMessageCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentMessage createManyAndReturn
   */
  export type AgentMessageCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * The data used to create many AgentMessages.
     */
    data: AgentMessageCreateManyInput | AgentMessageCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentMessage update
   */
  export type AgentMessageUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * The data needed to update a AgentMessage.
     */
    data: XOR<AgentMessageUpdateInput, AgentMessageUncheckedUpdateInput>
    /**
     * Choose, which AgentMessage to update.
     */
    where: AgentMessageWhereUniqueInput
  }

  /**
   * AgentMessage updateMany
   */
  export type AgentMessageUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentMessages.
     */
    data: XOR<AgentMessageUpdateManyMutationInput, AgentMessageUncheckedUpdateManyInput>
    /**
     * Filter which AgentMessages to update
     */
    where?: AgentMessageWhereInput
    /**
     * Limit how many AgentMessages to update.
     */
    limit?: number
  }

  /**
   * AgentMessage updateManyAndReturn
   */
  export type AgentMessageUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * The data used to update AgentMessages.
     */
    data: XOR<AgentMessageUpdateManyMutationInput, AgentMessageUncheckedUpdateManyInput>
    /**
     * Filter which AgentMessages to update
     */
    where?: AgentMessageWhereInput
    /**
     * Limit how many AgentMessages to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentMessage upsert
   */
  export type AgentMessageUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * The filter to search for the AgentMessage to update in case it exists.
     */
    where: AgentMessageWhereUniqueInput
    /**
     * In case the AgentMessage found by the `where` argument doesn't exist, create a new AgentMessage with this data.
     */
    create: XOR<AgentMessageCreateInput, AgentMessageUncheckedCreateInput>
    /**
     * In case the AgentMessage was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentMessageUpdateInput, AgentMessageUncheckedUpdateInput>
  }

  /**
   * AgentMessage delete
   */
  export type AgentMessageDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
    /**
     * Filter which AgentMessage to delete.
     */
    where: AgentMessageWhereUniqueInput
  }

  /**
   * AgentMessage deleteMany
   */
  export type AgentMessageDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentMessages to delete
     */
    where?: AgentMessageWhereInput
    /**
     * Limit how many AgentMessages to delete.
     */
    limit?: number
  }

  /**
   * AgentMessage without action
   */
  export type AgentMessageDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMessage
     */
    select?: AgentMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMessage
     */
    omit?: AgentMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMessageInclude<ExtArgs> | null
  }


  /**
   * Model ModelRoutingRule
   */

  export type AggregateModelRoutingRule = {
    _count: ModelRoutingRuleCountAggregateOutputType | null
    _avg: ModelRoutingRuleAvgAggregateOutputType | null
    _sum: ModelRoutingRuleSumAggregateOutputType | null
    _min: ModelRoutingRuleMinAggregateOutputType | null
    _max: ModelRoutingRuleMaxAggregateOutputType | null
  }

  export type ModelRoutingRuleAvgAggregateOutputType = {
    priority: number | null
  }

  export type ModelRoutingRuleSumAggregateOutputType = {
    priority: number | null
  }

  export type ModelRoutingRuleMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    scope: $Enums.ModelRoutingScope | null
    scopeRefId: string | null
    name: string | null
    priority: number | null
    enabled: boolean | null
    reasoning: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ModelRoutingRuleMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    scope: $Enums.ModelRoutingScope | null
    scopeRefId: string | null
    name: string | null
    priority: number | null
    enabled: boolean | null
    reasoning: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ModelRoutingRuleCountAggregateOutputType = {
    id: number
    organizationId: number
    scope: number
    scopeRefId: number
    name: number
    priority: number
    enabled: number
    pattern: number
    primary: number
    fallbacks: number
    reasoning: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type ModelRoutingRuleAvgAggregateInputType = {
    priority?: true
  }

  export type ModelRoutingRuleSumAggregateInputType = {
    priority?: true
  }

  export type ModelRoutingRuleMinAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    name?: true
    priority?: true
    enabled?: true
    reasoning?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ModelRoutingRuleMaxAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    name?: true
    priority?: true
    enabled?: true
    reasoning?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ModelRoutingRuleCountAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    name?: true
    priority?: true
    enabled?: true
    pattern?: true
    primary?: true
    fallbacks?: true
    reasoning?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type ModelRoutingRuleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ModelRoutingRule to aggregate.
     */
    where?: ModelRoutingRuleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ModelRoutingRules to fetch.
     */
    orderBy?: ModelRoutingRuleOrderByWithRelationInput | ModelRoutingRuleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ModelRoutingRuleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ModelRoutingRules 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` ModelRoutingRules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ModelRoutingRules
    **/
    _count?: true | ModelRoutingRuleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ModelRoutingRuleAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ModelRoutingRuleSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ModelRoutingRuleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ModelRoutingRuleMaxAggregateInputType
  }

  export type GetModelRoutingRuleAggregateType<T extends ModelRoutingRuleAggregateArgs> = {
        [P in keyof T & keyof AggregateModelRoutingRule]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateModelRoutingRule[P]>
      : GetScalarType<T[P], AggregateModelRoutingRule[P]>
  }




  export type ModelRoutingRuleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ModelRoutingRuleWhereInput
    orderBy?: ModelRoutingRuleOrderByWithAggregationInput | ModelRoutingRuleOrderByWithAggregationInput[]
    by: ModelRoutingRuleScalarFieldEnum[] | ModelRoutingRuleScalarFieldEnum
    having?: ModelRoutingRuleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ModelRoutingRuleCountAggregateInputType | true
    _avg?: ModelRoutingRuleAvgAggregateInputType
    _sum?: ModelRoutingRuleSumAggregateInputType
    _min?: ModelRoutingRuleMinAggregateInputType
    _max?: ModelRoutingRuleMaxAggregateInputType
  }

  export type ModelRoutingRuleGroupByOutputType = {
    id: string
    organizationId: string
    scope: $Enums.ModelRoutingScope
    scopeRefId: string
    name: string
    priority: number
    enabled: boolean
    pattern: JsonValue
    primary: JsonValue
    fallbacks: JsonValue
    reasoning: string | null
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: ModelRoutingRuleCountAggregateOutputType | null
    _avg: ModelRoutingRuleAvgAggregateOutputType | null
    _sum: ModelRoutingRuleSumAggregateOutputType | null
    _min: ModelRoutingRuleMinAggregateOutputType | null
    _max: ModelRoutingRuleMaxAggregateOutputType | null
  }

  type GetModelRoutingRuleGroupByPayload<T extends ModelRoutingRuleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ModelRoutingRuleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ModelRoutingRuleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ModelRoutingRuleGroupByOutputType[P]>
            : GetScalarType<T[P], ModelRoutingRuleGroupByOutputType[P]>
        }
      >
    >


  export type ModelRoutingRuleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    name?: boolean
    priority?: boolean
    enabled?: boolean
    pattern?: boolean
    primary?: boolean
    fallbacks?: boolean
    reasoning?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["modelRoutingRule"]>

  export type ModelRoutingRuleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    name?: boolean
    priority?: boolean
    enabled?: boolean
    pattern?: boolean
    primary?: boolean
    fallbacks?: boolean
    reasoning?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["modelRoutingRule"]>

  export type ModelRoutingRuleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    name?: boolean
    priority?: boolean
    enabled?: boolean
    pattern?: boolean
    primary?: boolean
    fallbacks?: boolean
    reasoning?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["modelRoutingRule"]>

  export type ModelRoutingRuleSelectScalar = {
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    name?: boolean
    priority?: boolean
    enabled?: boolean
    pattern?: boolean
    primary?: boolean
    fallbacks?: boolean
    reasoning?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type ModelRoutingRuleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "scope" | "scopeRefId" | "name" | "priority" | "enabled" | "pattern" | "primary" | "fallbacks" | "reasoning" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["modelRoutingRule"]>

  export type $ModelRoutingRulePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ModelRoutingRule"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      scope: $Enums.ModelRoutingScope
      scopeRefId: string
      name: string
      priority: number
      enabled: boolean
      pattern: Prisma.JsonValue
      primary: Prisma.JsonValue
      fallbacks: Prisma.JsonValue
      reasoning: string | null
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["modelRoutingRule"]>
    composites: {}
  }

  type ModelRoutingRuleGetPayload<S extends boolean | null | undefined | ModelRoutingRuleDefaultArgs> = $Result.GetResult<Prisma.$ModelRoutingRulePayload, S>

  type ModelRoutingRuleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ModelRoutingRuleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ModelRoutingRuleCountAggregateInputType | true
    }

  export interface ModelRoutingRuleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ModelRoutingRule'], meta: { name: 'ModelRoutingRule' } }
    /**
     * Find zero or one ModelRoutingRule that matches the filter.
     * @param {ModelRoutingRuleFindUniqueArgs} args - Arguments to find a ModelRoutingRule
     * @example
     * // Get one ModelRoutingRule
     * const modelRoutingRule = await prisma.modelRoutingRule.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ModelRoutingRuleFindUniqueArgs>(args: SelectSubset<T, ModelRoutingRuleFindUniqueArgs<ExtArgs>>): Prisma__ModelRoutingRuleClient<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ModelRoutingRule that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ModelRoutingRuleFindUniqueOrThrowArgs} args - Arguments to find a ModelRoutingRule
     * @example
     * // Get one ModelRoutingRule
     * const modelRoutingRule = await prisma.modelRoutingRule.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ModelRoutingRuleFindUniqueOrThrowArgs>(args: SelectSubset<T, ModelRoutingRuleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ModelRoutingRuleClient<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ModelRoutingRule 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 {ModelRoutingRuleFindFirstArgs} args - Arguments to find a ModelRoutingRule
     * @example
     * // Get one ModelRoutingRule
     * const modelRoutingRule = await prisma.modelRoutingRule.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ModelRoutingRuleFindFirstArgs>(args?: SelectSubset<T, ModelRoutingRuleFindFirstArgs<ExtArgs>>): Prisma__ModelRoutingRuleClient<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ModelRoutingRule 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 {ModelRoutingRuleFindFirstOrThrowArgs} args - Arguments to find a ModelRoutingRule
     * @example
     * // Get one ModelRoutingRule
     * const modelRoutingRule = await prisma.modelRoutingRule.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ModelRoutingRuleFindFirstOrThrowArgs>(args?: SelectSubset<T, ModelRoutingRuleFindFirstOrThrowArgs<ExtArgs>>): Prisma__ModelRoutingRuleClient<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ModelRoutingRules 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 {ModelRoutingRuleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ModelRoutingRules
     * const modelRoutingRules = await prisma.modelRoutingRule.findMany()
     * 
     * // Get first 10 ModelRoutingRules
     * const modelRoutingRules = await prisma.modelRoutingRule.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const modelRoutingRuleWithIdOnly = await prisma.modelRoutingRule.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ModelRoutingRuleFindManyArgs>(args?: SelectSubset<T, ModelRoutingRuleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ModelRoutingRule.
     * @param {ModelRoutingRuleCreateArgs} args - Arguments to create a ModelRoutingRule.
     * @example
     * // Create one ModelRoutingRule
     * const ModelRoutingRule = await prisma.modelRoutingRule.create({
     *   data: {
     *     // ... data to create a ModelRoutingRule
     *   }
     * })
     * 
     */
    create<T extends ModelRoutingRuleCreateArgs>(args: SelectSubset<T, ModelRoutingRuleCreateArgs<ExtArgs>>): Prisma__ModelRoutingRuleClient<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ModelRoutingRules.
     * @param {ModelRoutingRuleCreateManyArgs} args - Arguments to create many ModelRoutingRules.
     * @example
     * // Create many ModelRoutingRules
     * const modelRoutingRule = await prisma.modelRoutingRule.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ModelRoutingRuleCreateManyArgs>(args?: SelectSubset<T, ModelRoutingRuleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ModelRoutingRules and returns the data saved in the database.
     * @param {ModelRoutingRuleCreateManyAndReturnArgs} args - Arguments to create many ModelRoutingRules.
     * @example
     * // Create many ModelRoutingRules
     * const modelRoutingRule = await prisma.modelRoutingRule.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ModelRoutingRules and only return the `id`
     * const modelRoutingRuleWithIdOnly = await prisma.modelRoutingRule.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 ModelRoutingRuleCreateManyAndReturnArgs>(args?: SelectSubset<T, ModelRoutingRuleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ModelRoutingRule.
     * @param {ModelRoutingRuleDeleteArgs} args - Arguments to delete one ModelRoutingRule.
     * @example
     * // Delete one ModelRoutingRule
     * const ModelRoutingRule = await prisma.modelRoutingRule.delete({
     *   where: {
     *     // ... filter to delete one ModelRoutingRule
     *   }
     * })
     * 
     */
    delete<T extends ModelRoutingRuleDeleteArgs>(args: SelectSubset<T, ModelRoutingRuleDeleteArgs<ExtArgs>>): Prisma__ModelRoutingRuleClient<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ModelRoutingRule.
     * @param {ModelRoutingRuleUpdateArgs} args - Arguments to update one ModelRoutingRule.
     * @example
     * // Update one ModelRoutingRule
     * const modelRoutingRule = await prisma.modelRoutingRule.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ModelRoutingRuleUpdateArgs>(args: SelectSubset<T, ModelRoutingRuleUpdateArgs<ExtArgs>>): Prisma__ModelRoutingRuleClient<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ModelRoutingRules.
     * @param {ModelRoutingRuleDeleteManyArgs} args - Arguments to filter ModelRoutingRules to delete.
     * @example
     * // Delete a few ModelRoutingRules
     * const { count } = await prisma.modelRoutingRule.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ModelRoutingRuleDeleteManyArgs>(args?: SelectSubset<T, ModelRoutingRuleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ModelRoutingRules.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ModelRoutingRuleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ModelRoutingRules
     * const modelRoutingRule = await prisma.modelRoutingRule.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ModelRoutingRuleUpdateManyArgs>(args: SelectSubset<T, ModelRoutingRuleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ModelRoutingRules and returns the data updated in the database.
     * @param {ModelRoutingRuleUpdateManyAndReturnArgs} args - Arguments to update many ModelRoutingRules.
     * @example
     * // Update many ModelRoutingRules
     * const modelRoutingRule = await prisma.modelRoutingRule.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ModelRoutingRules and only return the `id`
     * const modelRoutingRuleWithIdOnly = await prisma.modelRoutingRule.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 ModelRoutingRuleUpdateManyAndReturnArgs>(args: SelectSubset<T, ModelRoutingRuleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ModelRoutingRule.
     * @param {ModelRoutingRuleUpsertArgs} args - Arguments to update or create a ModelRoutingRule.
     * @example
     * // Update or create a ModelRoutingRule
     * const modelRoutingRule = await prisma.modelRoutingRule.upsert({
     *   create: {
     *     // ... data to create a ModelRoutingRule
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ModelRoutingRule we want to update
     *   }
     * })
     */
    upsert<T extends ModelRoutingRuleUpsertArgs>(args: SelectSubset<T, ModelRoutingRuleUpsertArgs<ExtArgs>>): Prisma__ModelRoutingRuleClient<$Result.GetResult<Prisma.$ModelRoutingRulePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ModelRoutingRules.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ModelRoutingRuleCountArgs} args - Arguments to filter ModelRoutingRules to count.
     * @example
     * // Count the number of ModelRoutingRules
     * const count = await prisma.modelRoutingRule.count({
     *   where: {
     *     // ... the filter for the ModelRoutingRules we want to count
     *   }
     * })
    **/
    count<T extends ModelRoutingRuleCountArgs>(
      args?: Subset<T, ModelRoutingRuleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ModelRoutingRuleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ModelRoutingRule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ModelRoutingRuleAggregateArgs} 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 ModelRoutingRuleAggregateArgs>(args: Subset<T, ModelRoutingRuleAggregateArgs>): Prisma.PrismaPromise<GetModelRoutingRuleAggregateType<T>>

    /**
     * Group by ModelRoutingRule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ModelRoutingRuleGroupByArgs} 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 ModelRoutingRuleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ModelRoutingRuleGroupByArgs['orderBy'] }
        : { orderBy?: ModelRoutingRuleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ModelRoutingRuleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetModelRoutingRuleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ModelRoutingRule model
   */
  readonly fields: ModelRoutingRuleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ModelRoutingRule.
   * 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__ModelRoutingRuleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ModelRoutingRule model
   */
  interface ModelRoutingRuleFieldRefs {
    readonly id: FieldRef<"ModelRoutingRule", 'String'>
    readonly organizationId: FieldRef<"ModelRoutingRule", 'String'>
    readonly scope: FieldRef<"ModelRoutingRule", 'ModelRoutingScope'>
    readonly scopeRefId: FieldRef<"ModelRoutingRule", 'String'>
    readonly name: FieldRef<"ModelRoutingRule", 'String'>
    readonly priority: FieldRef<"ModelRoutingRule", 'Int'>
    readonly enabled: FieldRef<"ModelRoutingRule", 'Boolean'>
    readonly pattern: FieldRef<"ModelRoutingRule", 'Json'>
    readonly primary: FieldRef<"ModelRoutingRule", 'Json'>
    readonly fallbacks: FieldRef<"ModelRoutingRule", 'Json'>
    readonly reasoning: FieldRef<"ModelRoutingRule", 'String'>
    readonly createdById: FieldRef<"ModelRoutingRule", 'String'>
    readonly createdAt: FieldRef<"ModelRoutingRule", 'DateTime'>
    readonly updatedAt: FieldRef<"ModelRoutingRule", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ModelRoutingRule findUnique
   */
  export type ModelRoutingRuleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingRule to fetch.
     */
    where: ModelRoutingRuleWhereUniqueInput
  }

  /**
   * ModelRoutingRule findUniqueOrThrow
   */
  export type ModelRoutingRuleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingRule to fetch.
     */
    where: ModelRoutingRuleWhereUniqueInput
  }

  /**
   * ModelRoutingRule findFirst
   */
  export type ModelRoutingRuleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingRule to fetch.
     */
    where?: ModelRoutingRuleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ModelRoutingRules to fetch.
     */
    orderBy?: ModelRoutingRuleOrderByWithRelationInput | ModelRoutingRuleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ModelRoutingRules.
     */
    cursor?: ModelRoutingRuleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ModelRoutingRules 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` ModelRoutingRules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ModelRoutingRules.
     */
    distinct?: ModelRoutingRuleScalarFieldEnum | ModelRoutingRuleScalarFieldEnum[]
  }

  /**
   * ModelRoutingRule findFirstOrThrow
   */
  export type ModelRoutingRuleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingRule to fetch.
     */
    where?: ModelRoutingRuleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ModelRoutingRules to fetch.
     */
    orderBy?: ModelRoutingRuleOrderByWithRelationInput | ModelRoutingRuleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ModelRoutingRules.
     */
    cursor?: ModelRoutingRuleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ModelRoutingRules 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` ModelRoutingRules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ModelRoutingRules.
     */
    distinct?: ModelRoutingRuleScalarFieldEnum | ModelRoutingRuleScalarFieldEnum[]
  }

  /**
   * ModelRoutingRule findMany
   */
  export type ModelRoutingRuleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingRules to fetch.
     */
    where?: ModelRoutingRuleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ModelRoutingRules to fetch.
     */
    orderBy?: ModelRoutingRuleOrderByWithRelationInput | ModelRoutingRuleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ModelRoutingRules.
     */
    cursor?: ModelRoutingRuleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ModelRoutingRules 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` ModelRoutingRules.
     */
    skip?: number
    distinct?: ModelRoutingRuleScalarFieldEnum | ModelRoutingRuleScalarFieldEnum[]
  }

  /**
   * ModelRoutingRule create
   */
  export type ModelRoutingRuleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * The data needed to create a ModelRoutingRule.
     */
    data: XOR<ModelRoutingRuleCreateInput, ModelRoutingRuleUncheckedCreateInput>
  }

  /**
   * ModelRoutingRule createMany
   */
  export type ModelRoutingRuleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ModelRoutingRules.
     */
    data: ModelRoutingRuleCreateManyInput | ModelRoutingRuleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ModelRoutingRule createManyAndReturn
   */
  export type ModelRoutingRuleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * The data used to create many ModelRoutingRules.
     */
    data: ModelRoutingRuleCreateManyInput | ModelRoutingRuleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ModelRoutingRule update
   */
  export type ModelRoutingRuleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * The data needed to update a ModelRoutingRule.
     */
    data: XOR<ModelRoutingRuleUpdateInput, ModelRoutingRuleUncheckedUpdateInput>
    /**
     * Choose, which ModelRoutingRule to update.
     */
    where: ModelRoutingRuleWhereUniqueInput
  }

  /**
   * ModelRoutingRule updateMany
   */
  export type ModelRoutingRuleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ModelRoutingRules.
     */
    data: XOR<ModelRoutingRuleUpdateManyMutationInput, ModelRoutingRuleUncheckedUpdateManyInput>
    /**
     * Filter which ModelRoutingRules to update
     */
    where?: ModelRoutingRuleWhereInput
    /**
     * Limit how many ModelRoutingRules to update.
     */
    limit?: number
  }

  /**
   * ModelRoutingRule updateManyAndReturn
   */
  export type ModelRoutingRuleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * The data used to update ModelRoutingRules.
     */
    data: XOR<ModelRoutingRuleUpdateManyMutationInput, ModelRoutingRuleUncheckedUpdateManyInput>
    /**
     * Filter which ModelRoutingRules to update
     */
    where?: ModelRoutingRuleWhereInput
    /**
     * Limit how many ModelRoutingRules to update.
     */
    limit?: number
  }

  /**
   * ModelRoutingRule upsert
   */
  export type ModelRoutingRuleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * The filter to search for the ModelRoutingRule to update in case it exists.
     */
    where: ModelRoutingRuleWhereUniqueInput
    /**
     * In case the ModelRoutingRule found by the `where` argument doesn't exist, create a new ModelRoutingRule with this data.
     */
    create: XOR<ModelRoutingRuleCreateInput, ModelRoutingRuleUncheckedCreateInput>
    /**
     * In case the ModelRoutingRule was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ModelRoutingRuleUpdateInput, ModelRoutingRuleUncheckedUpdateInput>
  }

  /**
   * ModelRoutingRule delete
   */
  export type ModelRoutingRuleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
    /**
     * Filter which ModelRoutingRule to delete.
     */
    where: ModelRoutingRuleWhereUniqueInput
  }

  /**
   * ModelRoutingRule deleteMany
   */
  export type ModelRoutingRuleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ModelRoutingRules to delete
     */
    where?: ModelRoutingRuleWhereInput
    /**
     * Limit how many ModelRoutingRules to delete.
     */
    limit?: number
  }

  /**
   * ModelRoutingRule without action
   */
  export type ModelRoutingRuleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingRule
     */
    select?: ModelRoutingRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingRule
     */
    omit?: ModelRoutingRuleOmit<ExtArgs> | null
  }


  /**
   * Model ModelRoutingDecision
   */

  export type AggregateModelRoutingDecision = {
    _count: ModelRoutingDecisionCountAggregateOutputType | null
    _avg: ModelRoutingDecisionAvgAggregateOutputType | null
    _sum: ModelRoutingDecisionSumAggregateOutputType | null
    _min: ModelRoutingDecisionMinAggregateOutputType | null
    _max: ModelRoutingDecisionMaxAggregateOutputType | null
  }

  export type ModelRoutingDecisionAvgAggregateOutputType = {
    estimatedCostUsd: number | null
    actualCostUsd: number | null
    actualLatencyMs: number | null
  }

  export type ModelRoutingDecisionSumAggregateOutputType = {
    estimatedCostUsd: number | null
    actualCostUsd: number | null
    actualLatencyMs: number | null
  }

  export type ModelRoutingDecisionMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    turnId: string | null
    matchSource: $Enums.ModelRoutingMatchSource | null
    matchedRuleId: string | null
    primaryProvider: string | null
    primaryModel: string | null
    estimatedCostUsd: number | null
    actualCostUsd: number | null
    actualLatencyMs: number | null
    createdAt: Date | null
  }

  export type ModelRoutingDecisionMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    turnId: string | null
    matchSource: $Enums.ModelRoutingMatchSource | null
    matchedRuleId: string | null
    primaryProvider: string | null
    primaryModel: string | null
    estimatedCostUsd: number | null
    actualCostUsd: number | null
    actualLatencyMs: number | null
    createdAt: Date | null
  }

  export type ModelRoutingDecisionCountAggregateOutputType = {
    id: number
    organizationId: number
    sessionId: number
    turnId: number
    request: number
    decision: number
    matchSource: number
    matchedRuleId: number
    primaryProvider: number
    primaryModel: number
    estimatedCostUsd: number
    actualCostUsd: number
    actualLatencyMs: number
    createdAt: number
    _all: number
  }


  export type ModelRoutingDecisionAvgAggregateInputType = {
    estimatedCostUsd?: true
    actualCostUsd?: true
    actualLatencyMs?: true
  }

  export type ModelRoutingDecisionSumAggregateInputType = {
    estimatedCostUsd?: true
    actualCostUsd?: true
    actualLatencyMs?: true
  }

  export type ModelRoutingDecisionMinAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    matchSource?: true
    matchedRuleId?: true
    primaryProvider?: true
    primaryModel?: true
    estimatedCostUsd?: true
    actualCostUsd?: true
    actualLatencyMs?: true
    createdAt?: true
  }

  export type ModelRoutingDecisionMaxAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    matchSource?: true
    matchedRuleId?: true
    primaryProvider?: true
    primaryModel?: true
    estimatedCostUsd?: true
    actualCostUsd?: true
    actualLatencyMs?: true
    createdAt?: true
  }

  export type ModelRoutingDecisionCountAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    request?: true
    decision?: true
    matchSource?: true
    matchedRuleId?: true
    primaryProvider?: true
    primaryModel?: true
    estimatedCostUsd?: true
    actualCostUsd?: true
    actualLatencyMs?: true
    createdAt?: true
    _all?: true
  }

  export type ModelRoutingDecisionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ModelRoutingDecision to aggregate.
     */
    where?: ModelRoutingDecisionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ModelRoutingDecisions to fetch.
     */
    orderBy?: ModelRoutingDecisionOrderByWithRelationInput | ModelRoutingDecisionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ModelRoutingDecisionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ModelRoutingDecisions 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` ModelRoutingDecisions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ModelRoutingDecisions
    **/
    _count?: true | ModelRoutingDecisionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ModelRoutingDecisionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ModelRoutingDecisionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ModelRoutingDecisionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ModelRoutingDecisionMaxAggregateInputType
  }

  export type GetModelRoutingDecisionAggregateType<T extends ModelRoutingDecisionAggregateArgs> = {
        [P in keyof T & keyof AggregateModelRoutingDecision]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateModelRoutingDecision[P]>
      : GetScalarType<T[P], AggregateModelRoutingDecision[P]>
  }




  export type ModelRoutingDecisionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ModelRoutingDecisionWhereInput
    orderBy?: ModelRoutingDecisionOrderByWithAggregationInput | ModelRoutingDecisionOrderByWithAggregationInput[]
    by: ModelRoutingDecisionScalarFieldEnum[] | ModelRoutingDecisionScalarFieldEnum
    having?: ModelRoutingDecisionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ModelRoutingDecisionCountAggregateInputType | true
    _avg?: ModelRoutingDecisionAvgAggregateInputType
    _sum?: ModelRoutingDecisionSumAggregateInputType
    _min?: ModelRoutingDecisionMinAggregateInputType
    _max?: ModelRoutingDecisionMaxAggregateInputType
  }

  export type ModelRoutingDecisionGroupByOutputType = {
    id: string
    organizationId: string
    sessionId: string | null
    turnId: string | null
    request: JsonValue
    decision: JsonValue
    matchSource: $Enums.ModelRoutingMatchSource
    matchedRuleId: string | null
    primaryProvider: string
    primaryModel: string
    estimatedCostUsd: number | null
    actualCostUsd: number | null
    actualLatencyMs: number | null
    createdAt: Date
    _count: ModelRoutingDecisionCountAggregateOutputType | null
    _avg: ModelRoutingDecisionAvgAggregateOutputType | null
    _sum: ModelRoutingDecisionSumAggregateOutputType | null
    _min: ModelRoutingDecisionMinAggregateOutputType | null
    _max: ModelRoutingDecisionMaxAggregateOutputType | null
  }

  type GetModelRoutingDecisionGroupByPayload<T extends ModelRoutingDecisionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ModelRoutingDecisionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ModelRoutingDecisionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ModelRoutingDecisionGroupByOutputType[P]>
            : GetScalarType<T[P], ModelRoutingDecisionGroupByOutputType[P]>
        }
      >
    >


  export type ModelRoutingDecisionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    request?: boolean
    decision?: boolean
    matchSource?: boolean
    matchedRuleId?: boolean
    primaryProvider?: boolean
    primaryModel?: boolean
    estimatedCostUsd?: boolean
    actualCostUsd?: boolean
    actualLatencyMs?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["modelRoutingDecision"]>

  export type ModelRoutingDecisionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    request?: boolean
    decision?: boolean
    matchSource?: boolean
    matchedRuleId?: boolean
    primaryProvider?: boolean
    primaryModel?: boolean
    estimatedCostUsd?: boolean
    actualCostUsd?: boolean
    actualLatencyMs?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["modelRoutingDecision"]>

  export type ModelRoutingDecisionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    request?: boolean
    decision?: boolean
    matchSource?: boolean
    matchedRuleId?: boolean
    primaryProvider?: boolean
    primaryModel?: boolean
    estimatedCostUsd?: boolean
    actualCostUsd?: boolean
    actualLatencyMs?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["modelRoutingDecision"]>

  export type ModelRoutingDecisionSelectScalar = {
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    request?: boolean
    decision?: boolean
    matchSource?: boolean
    matchedRuleId?: boolean
    primaryProvider?: boolean
    primaryModel?: boolean
    estimatedCostUsd?: boolean
    actualCostUsd?: boolean
    actualLatencyMs?: boolean
    createdAt?: boolean
  }

  export type ModelRoutingDecisionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "sessionId" | "turnId" | "request" | "decision" | "matchSource" | "matchedRuleId" | "primaryProvider" | "primaryModel" | "estimatedCostUsd" | "actualCostUsd" | "actualLatencyMs" | "createdAt", ExtArgs["result"]["modelRoutingDecision"]>

  export type $ModelRoutingDecisionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ModelRoutingDecision"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      sessionId: string | null
      turnId: string | null
      request: Prisma.JsonValue
      decision: Prisma.JsonValue
      matchSource: $Enums.ModelRoutingMatchSource
      matchedRuleId: string | null
      primaryProvider: string
      primaryModel: string
      estimatedCostUsd: number | null
      actualCostUsd: number | null
      actualLatencyMs: number | null
      createdAt: Date
    }, ExtArgs["result"]["modelRoutingDecision"]>
    composites: {}
  }

  type ModelRoutingDecisionGetPayload<S extends boolean | null | undefined | ModelRoutingDecisionDefaultArgs> = $Result.GetResult<Prisma.$ModelRoutingDecisionPayload, S>

  type ModelRoutingDecisionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ModelRoutingDecisionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ModelRoutingDecisionCountAggregateInputType | true
    }

  export interface ModelRoutingDecisionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ModelRoutingDecision'], meta: { name: 'ModelRoutingDecision' } }
    /**
     * Find zero or one ModelRoutingDecision that matches the filter.
     * @param {ModelRoutingDecisionFindUniqueArgs} args - Arguments to find a ModelRoutingDecision
     * @example
     * // Get one ModelRoutingDecision
     * const modelRoutingDecision = await prisma.modelRoutingDecision.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ModelRoutingDecisionFindUniqueArgs>(args: SelectSubset<T, ModelRoutingDecisionFindUniqueArgs<ExtArgs>>): Prisma__ModelRoutingDecisionClient<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ModelRoutingDecision that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ModelRoutingDecisionFindUniqueOrThrowArgs} args - Arguments to find a ModelRoutingDecision
     * @example
     * // Get one ModelRoutingDecision
     * const modelRoutingDecision = await prisma.modelRoutingDecision.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ModelRoutingDecisionFindUniqueOrThrowArgs>(args: SelectSubset<T, ModelRoutingDecisionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ModelRoutingDecisionClient<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ModelRoutingDecision 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 {ModelRoutingDecisionFindFirstArgs} args - Arguments to find a ModelRoutingDecision
     * @example
     * // Get one ModelRoutingDecision
     * const modelRoutingDecision = await prisma.modelRoutingDecision.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ModelRoutingDecisionFindFirstArgs>(args?: SelectSubset<T, ModelRoutingDecisionFindFirstArgs<ExtArgs>>): Prisma__ModelRoutingDecisionClient<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ModelRoutingDecision 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 {ModelRoutingDecisionFindFirstOrThrowArgs} args - Arguments to find a ModelRoutingDecision
     * @example
     * // Get one ModelRoutingDecision
     * const modelRoutingDecision = await prisma.modelRoutingDecision.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ModelRoutingDecisionFindFirstOrThrowArgs>(args?: SelectSubset<T, ModelRoutingDecisionFindFirstOrThrowArgs<ExtArgs>>): Prisma__ModelRoutingDecisionClient<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ModelRoutingDecisions 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 {ModelRoutingDecisionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ModelRoutingDecisions
     * const modelRoutingDecisions = await prisma.modelRoutingDecision.findMany()
     * 
     * // Get first 10 ModelRoutingDecisions
     * const modelRoutingDecisions = await prisma.modelRoutingDecision.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const modelRoutingDecisionWithIdOnly = await prisma.modelRoutingDecision.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ModelRoutingDecisionFindManyArgs>(args?: SelectSubset<T, ModelRoutingDecisionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ModelRoutingDecision.
     * @param {ModelRoutingDecisionCreateArgs} args - Arguments to create a ModelRoutingDecision.
     * @example
     * // Create one ModelRoutingDecision
     * const ModelRoutingDecision = await prisma.modelRoutingDecision.create({
     *   data: {
     *     // ... data to create a ModelRoutingDecision
     *   }
     * })
     * 
     */
    create<T extends ModelRoutingDecisionCreateArgs>(args: SelectSubset<T, ModelRoutingDecisionCreateArgs<ExtArgs>>): Prisma__ModelRoutingDecisionClient<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ModelRoutingDecisions.
     * @param {ModelRoutingDecisionCreateManyArgs} args - Arguments to create many ModelRoutingDecisions.
     * @example
     * // Create many ModelRoutingDecisions
     * const modelRoutingDecision = await prisma.modelRoutingDecision.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ModelRoutingDecisionCreateManyArgs>(args?: SelectSubset<T, ModelRoutingDecisionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ModelRoutingDecisions and returns the data saved in the database.
     * @param {ModelRoutingDecisionCreateManyAndReturnArgs} args - Arguments to create many ModelRoutingDecisions.
     * @example
     * // Create many ModelRoutingDecisions
     * const modelRoutingDecision = await prisma.modelRoutingDecision.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ModelRoutingDecisions and only return the `id`
     * const modelRoutingDecisionWithIdOnly = await prisma.modelRoutingDecision.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 ModelRoutingDecisionCreateManyAndReturnArgs>(args?: SelectSubset<T, ModelRoutingDecisionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ModelRoutingDecision.
     * @param {ModelRoutingDecisionDeleteArgs} args - Arguments to delete one ModelRoutingDecision.
     * @example
     * // Delete one ModelRoutingDecision
     * const ModelRoutingDecision = await prisma.modelRoutingDecision.delete({
     *   where: {
     *     // ... filter to delete one ModelRoutingDecision
     *   }
     * })
     * 
     */
    delete<T extends ModelRoutingDecisionDeleteArgs>(args: SelectSubset<T, ModelRoutingDecisionDeleteArgs<ExtArgs>>): Prisma__ModelRoutingDecisionClient<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ModelRoutingDecision.
     * @param {ModelRoutingDecisionUpdateArgs} args - Arguments to update one ModelRoutingDecision.
     * @example
     * // Update one ModelRoutingDecision
     * const modelRoutingDecision = await prisma.modelRoutingDecision.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ModelRoutingDecisionUpdateArgs>(args: SelectSubset<T, ModelRoutingDecisionUpdateArgs<ExtArgs>>): Prisma__ModelRoutingDecisionClient<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ModelRoutingDecisions.
     * @param {ModelRoutingDecisionDeleteManyArgs} args - Arguments to filter ModelRoutingDecisions to delete.
     * @example
     * // Delete a few ModelRoutingDecisions
     * const { count } = await prisma.modelRoutingDecision.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ModelRoutingDecisionDeleteManyArgs>(args?: SelectSubset<T, ModelRoutingDecisionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ModelRoutingDecisions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ModelRoutingDecisionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ModelRoutingDecisions
     * const modelRoutingDecision = await prisma.modelRoutingDecision.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ModelRoutingDecisionUpdateManyArgs>(args: SelectSubset<T, ModelRoutingDecisionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ModelRoutingDecisions and returns the data updated in the database.
     * @param {ModelRoutingDecisionUpdateManyAndReturnArgs} args - Arguments to update many ModelRoutingDecisions.
     * @example
     * // Update many ModelRoutingDecisions
     * const modelRoutingDecision = await prisma.modelRoutingDecision.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ModelRoutingDecisions and only return the `id`
     * const modelRoutingDecisionWithIdOnly = await prisma.modelRoutingDecision.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 ModelRoutingDecisionUpdateManyAndReturnArgs>(args: SelectSubset<T, ModelRoutingDecisionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ModelRoutingDecision.
     * @param {ModelRoutingDecisionUpsertArgs} args - Arguments to update or create a ModelRoutingDecision.
     * @example
     * // Update or create a ModelRoutingDecision
     * const modelRoutingDecision = await prisma.modelRoutingDecision.upsert({
     *   create: {
     *     // ... data to create a ModelRoutingDecision
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ModelRoutingDecision we want to update
     *   }
     * })
     */
    upsert<T extends ModelRoutingDecisionUpsertArgs>(args: SelectSubset<T, ModelRoutingDecisionUpsertArgs<ExtArgs>>): Prisma__ModelRoutingDecisionClient<$Result.GetResult<Prisma.$ModelRoutingDecisionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ModelRoutingDecisions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ModelRoutingDecisionCountArgs} args - Arguments to filter ModelRoutingDecisions to count.
     * @example
     * // Count the number of ModelRoutingDecisions
     * const count = await prisma.modelRoutingDecision.count({
     *   where: {
     *     // ... the filter for the ModelRoutingDecisions we want to count
     *   }
     * })
    **/
    count<T extends ModelRoutingDecisionCountArgs>(
      args?: Subset<T, ModelRoutingDecisionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ModelRoutingDecisionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ModelRoutingDecision.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ModelRoutingDecisionAggregateArgs} 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 ModelRoutingDecisionAggregateArgs>(args: Subset<T, ModelRoutingDecisionAggregateArgs>): Prisma.PrismaPromise<GetModelRoutingDecisionAggregateType<T>>

    /**
     * Group by ModelRoutingDecision.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ModelRoutingDecisionGroupByArgs} 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 ModelRoutingDecisionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ModelRoutingDecisionGroupByArgs['orderBy'] }
        : { orderBy?: ModelRoutingDecisionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ModelRoutingDecisionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetModelRoutingDecisionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ModelRoutingDecision model
   */
  readonly fields: ModelRoutingDecisionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ModelRoutingDecision.
   * 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__ModelRoutingDecisionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ModelRoutingDecision model
   */
  interface ModelRoutingDecisionFieldRefs {
    readonly id: FieldRef<"ModelRoutingDecision", 'String'>
    readonly organizationId: FieldRef<"ModelRoutingDecision", 'String'>
    readonly sessionId: FieldRef<"ModelRoutingDecision", 'String'>
    readonly turnId: FieldRef<"ModelRoutingDecision", 'String'>
    readonly request: FieldRef<"ModelRoutingDecision", 'Json'>
    readonly decision: FieldRef<"ModelRoutingDecision", 'Json'>
    readonly matchSource: FieldRef<"ModelRoutingDecision", 'ModelRoutingMatchSource'>
    readonly matchedRuleId: FieldRef<"ModelRoutingDecision", 'String'>
    readonly primaryProvider: FieldRef<"ModelRoutingDecision", 'String'>
    readonly primaryModel: FieldRef<"ModelRoutingDecision", 'String'>
    readonly estimatedCostUsd: FieldRef<"ModelRoutingDecision", 'Float'>
    readonly actualCostUsd: FieldRef<"ModelRoutingDecision", 'Float'>
    readonly actualLatencyMs: FieldRef<"ModelRoutingDecision", 'Int'>
    readonly createdAt: FieldRef<"ModelRoutingDecision", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ModelRoutingDecision findUnique
   */
  export type ModelRoutingDecisionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingDecision to fetch.
     */
    where: ModelRoutingDecisionWhereUniqueInput
  }

  /**
   * ModelRoutingDecision findUniqueOrThrow
   */
  export type ModelRoutingDecisionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingDecision to fetch.
     */
    where: ModelRoutingDecisionWhereUniqueInput
  }

  /**
   * ModelRoutingDecision findFirst
   */
  export type ModelRoutingDecisionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingDecision to fetch.
     */
    where?: ModelRoutingDecisionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ModelRoutingDecisions to fetch.
     */
    orderBy?: ModelRoutingDecisionOrderByWithRelationInput | ModelRoutingDecisionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ModelRoutingDecisions.
     */
    cursor?: ModelRoutingDecisionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ModelRoutingDecisions 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` ModelRoutingDecisions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ModelRoutingDecisions.
     */
    distinct?: ModelRoutingDecisionScalarFieldEnum | ModelRoutingDecisionScalarFieldEnum[]
  }

  /**
   * ModelRoutingDecision findFirstOrThrow
   */
  export type ModelRoutingDecisionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingDecision to fetch.
     */
    where?: ModelRoutingDecisionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ModelRoutingDecisions to fetch.
     */
    orderBy?: ModelRoutingDecisionOrderByWithRelationInput | ModelRoutingDecisionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ModelRoutingDecisions.
     */
    cursor?: ModelRoutingDecisionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ModelRoutingDecisions 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` ModelRoutingDecisions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ModelRoutingDecisions.
     */
    distinct?: ModelRoutingDecisionScalarFieldEnum | ModelRoutingDecisionScalarFieldEnum[]
  }

  /**
   * ModelRoutingDecision findMany
   */
  export type ModelRoutingDecisionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * Filter, which ModelRoutingDecisions to fetch.
     */
    where?: ModelRoutingDecisionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ModelRoutingDecisions to fetch.
     */
    orderBy?: ModelRoutingDecisionOrderByWithRelationInput | ModelRoutingDecisionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ModelRoutingDecisions.
     */
    cursor?: ModelRoutingDecisionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ModelRoutingDecisions 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` ModelRoutingDecisions.
     */
    skip?: number
    distinct?: ModelRoutingDecisionScalarFieldEnum | ModelRoutingDecisionScalarFieldEnum[]
  }

  /**
   * ModelRoutingDecision create
   */
  export type ModelRoutingDecisionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * The data needed to create a ModelRoutingDecision.
     */
    data: XOR<ModelRoutingDecisionCreateInput, ModelRoutingDecisionUncheckedCreateInput>
  }

  /**
   * ModelRoutingDecision createMany
   */
  export type ModelRoutingDecisionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ModelRoutingDecisions.
     */
    data: ModelRoutingDecisionCreateManyInput | ModelRoutingDecisionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ModelRoutingDecision createManyAndReturn
   */
  export type ModelRoutingDecisionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * The data used to create many ModelRoutingDecisions.
     */
    data: ModelRoutingDecisionCreateManyInput | ModelRoutingDecisionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ModelRoutingDecision update
   */
  export type ModelRoutingDecisionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * The data needed to update a ModelRoutingDecision.
     */
    data: XOR<ModelRoutingDecisionUpdateInput, ModelRoutingDecisionUncheckedUpdateInput>
    /**
     * Choose, which ModelRoutingDecision to update.
     */
    where: ModelRoutingDecisionWhereUniqueInput
  }

  /**
   * ModelRoutingDecision updateMany
   */
  export type ModelRoutingDecisionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ModelRoutingDecisions.
     */
    data: XOR<ModelRoutingDecisionUpdateManyMutationInput, ModelRoutingDecisionUncheckedUpdateManyInput>
    /**
     * Filter which ModelRoutingDecisions to update
     */
    where?: ModelRoutingDecisionWhereInput
    /**
     * Limit how many ModelRoutingDecisions to update.
     */
    limit?: number
  }

  /**
   * ModelRoutingDecision updateManyAndReturn
   */
  export type ModelRoutingDecisionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * The data used to update ModelRoutingDecisions.
     */
    data: XOR<ModelRoutingDecisionUpdateManyMutationInput, ModelRoutingDecisionUncheckedUpdateManyInput>
    /**
     * Filter which ModelRoutingDecisions to update
     */
    where?: ModelRoutingDecisionWhereInput
    /**
     * Limit how many ModelRoutingDecisions to update.
     */
    limit?: number
  }

  /**
   * ModelRoutingDecision upsert
   */
  export type ModelRoutingDecisionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * The filter to search for the ModelRoutingDecision to update in case it exists.
     */
    where: ModelRoutingDecisionWhereUniqueInput
    /**
     * In case the ModelRoutingDecision found by the `where` argument doesn't exist, create a new ModelRoutingDecision with this data.
     */
    create: XOR<ModelRoutingDecisionCreateInput, ModelRoutingDecisionUncheckedCreateInput>
    /**
     * In case the ModelRoutingDecision was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ModelRoutingDecisionUpdateInput, ModelRoutingDecisionUncheckedUpdateInput>
  }

  /**
   * ModelRoutingDecision delete
   */
  export type ModelRoutingDecisionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
    /**
     * Filter which ModelRoutingDecision to delete.
     */
    where: ModelRoutingDecisionWhereUniqueInput
  }

  /**
   * ModelRoutingDecision deleteMany
   */
  export type ModelRoutingDecisionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ModelRoutingDecisions to delete
     */
    where?: ModelRoutingDecisionWhereInput
    /**
     * Limit how many ModelRoutingDecisions to delete.
     */
    limit?: number
  }

  /**
   * ModelRoutingDecision without action
   */
  export type ModelRoutingDecisionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ModelRoutingDecision
     */
    select?: ModelRoutingDecisionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ModelRoutingDecision
     */
    omit?: ModelRoutingDecisionOmit<ExtArgs> | null
  }


  /**
   * Model AgentTrajectoryEvent
   */

  export type AggregateAgentTrajectoryEvent = {
    _count: AgentTrajectoryEventCountAggregateOutputType | null
    _avg: AgentTrajectoryEventAvgAggregateOutputType | null
    _sum: AgentTrajectoryEventSumAggregateOutputType | null
    _min: AgentTrajectoryEventMinAggregateOutputType | null
    _max: AgentTrajectoryEventMaxAggregateOutputType | null
  }

  export type AgentTrajectoryEventAvgAggregateOutputType = {
    sequenceInSession: number | null
  }

  export type AgentTrajectoryEventSumAggregateOutputType = {
    sequenceInSession: number | null
  }

  export type AgentTrajectoryEventMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    turnId: string | null
    eventType: $Enums.AgentTrajectoryEventType | null
    sequenceInSession: number | null
    prevEventHash: string | null
    eventHash: string | null
    createdAt: Date | null
  }

  export type AgentTrajectoryEventMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    turnId: string | null
    eventType: $Enums.AgentTrajectoryEventType | null
    sequenceInSession: number | null
    prevEventHash: string | null
    eventHash: string | null
    createdAt: Date | null
  }

  export type AgentTrajectoryEventCountAggregateOutputType = {
    id: number
    organizationId: number
    sessionId: number
    turnId: number
    eventType: number
    payload: number
    sequenceInSession: number
    prevEventHash: number
    eventHash: number
    createdAt: number
    _all: number
  }


  export type AgentTrajectoryEventAvgAggregateInputType = {
    sequenceInSession?: true
  }

  export type AgentTrajectoryEventSumAggregateInputType = {
    sequenceInSession?: true
  }

  export type AgentTrajectoryEventMinAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    eventType?: true
    sequenceInSession?: true
    prevEventHash?: true
    eventHash?: true
    createdAt?: true
  }

  export type AgentTrajectoryEventMaxAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    eventType?: true
    sequenceInSession?: true
    prevEventHash?: true
    eventHash?: true
    createdAt?: true
  }

  export type AgentTrajectoryEventCountAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    eventType?: true
    payload?: true
    sequenceInSession?: true
    prevEventHash?: true
    eventHash?: true
    createdAt?: true
    _all?: true
  }

  export type AgentTrajectoryEventAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentTrajectoryEvent to aggregate.
     */
    where?: AgentTrajectoryEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentTrajectoryEvents to fetch.
     */
    orderBy?: AgentTrajectoryEventOrderByWithRelationInput | AgentTrajectoryEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentTrajectoryEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentTrajectoryEvents 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` AgentTrajectoryEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentTrajectoryEvents
    **/
    _count?: true | AgentTrajectoryEventCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentTrajectoryEventAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentTrajectoryEventSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentTrajectoryEventMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentTrajectoryEventMaxAggregateInputType
  }

  export type GetAgentTrajectoryEventAggregateType<T extends AgentTrajectoryEventAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentTrajectoryEvent]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentTrajectoryEvent[P]>
      : GetScalarType<T[P], AggregateAgentTrajectoryEvent[P]>
  }




  export type AgentTrajectoryEventGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentTrajectoryEventWhereInput
    orderBy?: AgentTrajectoryEventOrderByWithAggregationInput | AgentTrajectoryEventOrderByWithAggregationInput[]
    by: AgentTrajectoryEventScalarFieldEnum[] | AgentTrajectoryEventScalarFieldEnum
    having?: AgentTrajectoryEventScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentTrajectoryEventCountAggregateInputType | true
    _avg?: AgentTrajectoryEventAvgAggregateInputType
    _sum?: AgentTrajectoryEventSumAggregateInputType
    _min?: AgentTrajectoryEventMinAggregateInputType
    _max?: AgentTrajectoryEventMaxAggregateInputType
  }

  export type AgentTrajectoryEventGroupByOutputType = {
    id: string
    organizationId: string
    sessionId: string
    turnId: string | null
    eventType: $Enums.AgentTrajectoryEventType
    payload: JsonValue
    sequenceInSession: number
    prevEventHash: string | null
    eventHash: string
    createdAt: Date
    _count: AgentTrajectoryEventCountAggregateOutputType | null
    _avg: AgentTrajectoryEventAvgAggregateOutputType | null
    _sum: AgentTrajectoryEventSumAggregateOutputType | null
    _min: AgentTrajectoryEventMinAggregateOutputType | null
    _max: AgentTrajectoryEventMaxAggregateOutputType | null
  }

  type GetAgentTrajectoryEventGroupByPayload<T extends AgentTrajectoryEventGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentTrajectoryEventGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentTrajectoryEventGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentTrajectoryEventGroupByOutputType[P]>
            : GetScalarType<T[P], AgentTrajectoryEventGroupByOutputType[P]>
        }
      >
    >


  export type AgentTrajectoryEventSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    eventType?: boolean
    payload?: boolean
    sequenceInSession?: boolean
    prevEventHash?: boolean
    eventHash?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["agentTrajectoryEvent"]>

  export type AgentTrajectoryEventSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    eventType?: boolean
    payload?: boolean
    sequenceInSession?: boolean
    prevEventHash?: boolean
    eventHash?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["agentTrajectoryEvent"]>

  export type AgentTrajectoryEventSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    eventType?: boolean
    payload?: boolean
    sequenceInSession?: boolean
    prevEventHash?: boolean
    eventHash?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["agentTrajectoryEvent"]>

  export type AgentTrajectoryEventSelectScalar = {
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    eventType?: boolean
    payload?: boolean
    sequenceInSession?: boolean
    prevEventHash?: boolean
    eventHash?: boolean
    createdAt?: boolean
  }

  export type AgentTrajectoryEventOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "sessionId" | "turnId" | "eventType" | "payload" | "sequenceInSession" | "prevEventHash" | "eventHash" | "createdAt", ExtArgs["result"]["agentTrajectoryEvent"]>

  export type $AgentTrajectoryEventPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentTrajectoryEvent"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      sessionId: string
      turnId: string | null
      eventType: $Enums.AgentTrajectoryEventType
      payload: Prisma.JsonValue
      sequenceInSession: number
      prevEventHash: string | null
      eventHash: string
      createdAt: Date
    }, ExtArgs["result"]["agentTrajectoryEvent"]>
    composites: {}
  }

  type AgentTrajectoryEventGetPayload<S extends boolean | null | undefined | AgentTrajectoryEventDefaultArgs> = $Result.GetResult<Prisma.$AgentTrajectoryEventPayload, S>

  type AgentTrajectoryEventCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentTrajectoryEventFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentTrajectoryEventCountAggregateInputType | true
    }

  export interface AgentTrajectoryEventDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentTrajectoryEvent'], meta: { name: 'AgentTrajectoryEvent' } }
    /**
     * Find zero or one AgentTrajectoryEvent that matches the filter.
     * @param {AgentTrajectoryEventFindUniqueArgs} args - Arguments to find a AgentTrajectoryEvent
     * @example
     * // Get one AgentTrajectoryEvent
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentTrajectoryEventFindUniqueArgs>(args: SelectSubset<T, AgentTrajectoryEventFindUniqueArgs<ExtArgs>>): Prisma__AgentTrajectoryEventClient<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentTrajectoryEvent that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentTrajectoryEventFindUniqueOrThrowArgs} args - Arguments to find a AgentTrajectoryEvent
     * @example
     * // Get one AgentTrajectoryEvent
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentTrajectoryEventFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentTrajectoryEventFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentTrajectoryEventClient<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentTrajectoryEvent 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 {AgentTrajectoryEventFindFirstArgs} args - Arguments to find a AgentTrajectoryEvent
     * @example
     * // Get one AgentTrajectoryEvent
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentTrajectoryEventFindFirstArgs>(args?: SelectSubset<T, AgentTrajectoryEventFindFirstArgs<ExtArgs>>): Prisma__AgentTrajectoryEventClient<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentTrajectoryEvent 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 {AgentTrajectoryEventFindFirstOrThrowArgs} args - Arguments to find a AgentTrajectoryEvent
     * @example
     * // Get one AgentTrajectoryEvent
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentTrajectoryEventFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentTrajectoryEventFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentTrajectoryEventClient<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentTrajectoryEvents 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 {AgentTrajectoryEventFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentTrajectoryEvents
     * const agentTrajectoryEvents = await prisma.agentTrajectoryEvent.findMany()
     * 
     * // Get first 10 AgentTrajectoryEvents
     * const agentTrajectoryEvents = await prisma.agentTrajectoryEvent.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentTrajectoryEventWithIdOnly = await prisma.agentTrajectoryEvent.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentTrajectoryEventFindManyArgs>(args?: SelectSubset<T, AgentTrajectoryEventFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentTrajectoryEvent.
     * @param {AgentTrajectoryEventCreateArgs} args - Arguments to create a AgentTrajectoryEvent.
     * @example
     * // Create one AgentTrajectoryEvent
     * const AgentTrajectoryEvent = await prisma.agentTrajectoryEvent.create({
     *   data: {
     *     // ... data to create a AgentTrajectoryEvent
     *   }
     * })
     * 
     */
    create<T extends AgentTrajectoryEventCreateArgs>(args: SelectSubset<T, AgentTrajectoryEventCreateArgs<ExtArgs>>): Prisma__AgentTrajectoryEventClient<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentTrajectoryEvents.
     * @param {AgentTrajectoryEventCreateManyArgs} args - Arguments to create many AgentTrajectoryEvents.
     * @example
     * // Create many AgentTrajectoryEvents
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentTrajectoryEventCreateManyArgs>(args?: SelectSubset<T, AgentTrajectoryEventCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentTrajectoryEvents and returns the data saved in the database.
     * @param {AgentTrajectoryEventCreateManyAndReturnArgs} args - Arguments to create many AgentTrajectoryEvents.
     * @example
     * // Create many AgentTrajectoryEvents
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentTrajectoryEvents and only return the `id`
     * const agentTrajectoryEventWithIdOnly = await prisma.agentTrajectoryEvent.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 AgentTrajectoryEventCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentTrajectoryEventCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentTrajectoryEvent.
     * @param {AgentTrajectoryEventDeleteArgs} args - Arguments to delete one AgentTrajectoryEvent.
     * @example
     * // Delete one AgentTrajectoryEvent
     * const AgentTrajectoryEvent = await prisma.agentTrajectoryEvent.delete({
     *   where: {
     *     // ... filter to delete one AgentTrajectoryEvent
     *   }
     * })
     * 
     */
    delete<T extends AgentTrajectoryEventDeleteArgs>(args: SelectSubset<T, AgentTrajectoryEventDeleteArgs<ExtArgs>>): Prisma__AgentTrajectoryEventClient<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentTrajectoryEvent.
     * @param {AgentTrajectoryEventUpdateArgs} args - Arguments to update one AgentTrajectoryEvent.
     * @example
     * // Update one AgentTrajectoryEvent
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentTrajectoryEventUpdateArgs>(args: SelectSubset<T, AgentTrajectoryEventUpdateArgs<ExtArgs>>): Prisma__AgentTrajectoryEventClient<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentTrajectoryEvents.
     * @param {AgentTrajectoryEventDeleteManyArgs} args - Arguments to filter AgentTrajectoryEvents to delete.
     * @example
     * // Delete a few AgentTrajectoryEvents
     * const { count } = await prisma.agentTrajectoryEvent.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentTrajectoryEventDeleteManyArgs>(args?: SelectSubset<T, AgentTrajectoryEventDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentTrajectoryEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentTrajectoryEventUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentTrajectoryEvents
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentTrajectoryEventUpdateManyArgs>(args: SelectSubset<T, AgentTrajectoryEventUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentTrajectoryEvents and returns the data updated in the database.
     * @param {AgentTrajectoryEventUpdateManyAndReturnArgs} args - Arguments to update many AgentTrajectoryEvents.
     * @example
     * // Update many AgentTrajectoryEvents
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentTrajectoryEvents and only return the `id`
     * const agentTrajectoryEventWithIdOnly = await prisma.agentTrajectoryEvent.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 AgentTrajectoryEventUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentTrajectoryEventUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentTrajectoryEvent.
     * @param {AgentTrajectoryEventUpsertArgs} args - Arguments to update or create a AgentTrajectoryEvent.
     * @example
     * // Update or create a AgentTrajectoryEvent
     * const agentTrajectoryEvent = await prisma.agentTrajectoryEvent.upsert({
     *   create: {
     *     // ... data to create a AgentTrajectoryEvent
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentTrajectoryEvent we want to update
     *   }
     * })
     */
    upsert<T extends AgentTrajectoryEventUpsertArgs>(args: SelectSubset<T, AgentTrajectoryEventUpsertArgs<ExtArgs>>): Prisma__AgentTrajectoryEventClient<$Result.GetResult<Prisma.$AgentTrajectoryEventPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentTrajectoryEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentTrajectoryEventCountArgs} args - Arguments to filter AgentTrajectoryEvents to count.
     * @example
     * // Count the number of AgentTrajectoryEvents
     * const count = await prisma.agentTrajectoryEvent.count({
     *   where: {
     *     // ... the filter for the AgentTrajectoryEvents we want to count
     *   }
     * })
    **/
    count<T extends AgentTrajectoryEventCountArgs>(
      args?: Subset<T, AgentTrajectoryEventCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentTrajectoryEventCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentTrajectoryEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentTrajectoryEventAggregateArgs} 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 AgentTrajectoryEventAggregateArgs>(args: Subset<T, AgentTrajectoryEventAggregateArgs>): Prisma.PrismaPromise<GetAgentTrajectoryEventAggregateType<T>>

    /**
     * Group by AgentTrajectoryEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentTrajectoryEventGroupByArgs} 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 AgentTrajectoryEventGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentTrajectoryEventGroupByArgs['orderBy'] }
        : { orderBy?: AgentTrajectoryEventGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentTrajectoryEventGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentTrajectoryEventGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentTrajectoryEvent model
   */
  readonly fields: AgentTrajectoryEventFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentTrajectoryEvent.
   * 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__AgentTrajectoryEventClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentTrajectoryEvent model
   */
  interface AgentTrajectoryEventFieldRefs {
    readonly id: FieldRef<"AgentTrajectoryEvent", 'String'>
    readonly organizationId: FieldRef<"AgentTrajectoryEvent", 'String'>
    readonly sessionId: FieldRef<"AgentTrajectoryEvent", 'String'>
    readonly turnId: FieldRef<"AgentTrajectoryEvent", 'String'>
    readonly eventType: FieldRef<"AgentTrajectoryEvent", 'AgentTrajectoryEventType'>
    readonly payload: FieldRef<"AgentTrajectoryEvent", 'Json'>
    readonly sequenceInSession: FieldRef<"AgentTrajectoryEvent", 'Int'>
    readonly prevEventHash: FieldRef<"AgentTrajectoryEvent", 'String'>
    readonly eventHash: FieldRef<"AgentTrajectoryEvent", 'String'>
    readonly createdAt: FieldRef<"AgentTrajectoryEvent", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentTrajectoryEvent findUnique
   */
  export type AgentTrajectoryEventFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * Filter, which AgentTrajectoryEvent to fetch.
     */
    where: AgentTrajectoryEventWhereUniqueInput
  }

  /**
   * AgentTrajectoryEvent findUniqueOrThrow
   */
  export type AgentTrajectoryEventFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * Filter, which AgentTrajectoryEvent to fetch.
     */
    where: AgentTrajectoryEventWhereUniqueInput
  }

  /**
   * AgentTrajectoryEvent findFirst
   */
  export type AgentTrajectoryEventFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * Filter, which AgentTrajectoryEvent to fetch.
     */
    where?: AgentTrajectoryEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentTrajectoryEvents to fetch.
     */
    orderBy?: AgentTrajectoryEventOrderByWithRelationInput | AgentTrajectoryEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentTrajectoryEvents.
     */
    cursor?: AgentTrajectoryEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentTrajectoryEvents 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` AgentTrajectoryEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentTrajectoryEvents.
     */
    distinct?: AgentTrajectoryEventScalarFieldEnum | AgentTrajectoryEventScalarFieldEnum[]
  }

  /**
   * AgentTrajectoryEvent findFirstOrThrow
   */
  export type AgentTrajectoryEventFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * Filter, which AgentTrajectoryEvent to fetch.
     */
    where?: AgentTrajectoryEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentTrajectoryEvents to fetch.
     */
    orderBy?: AgentTrajectoryEventOrderByWithRelationInput | AgentTrajectoryEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentTrajectoryEvents.
     */
    cursor?: AgentTrajectoryEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentTrajectoryEvents 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` AgentTrajectoryEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentTrajectoryEvents.
     */
    distinct?: AgentTrajectoryEventScalarFieldEnum | AgentTrajectoryEventScalarFieldEnum[]
  }

  /**
   * AgentTrajectoryEvent findMany
   */
  export type AgentTrajectoryEventFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * Filter, which AgentTrajectoryEvents to fetch.
     */
    where?: AgentTrajectoryEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentTrajectoryEvents to fetch.
     */
    orderBy?: AgentTrajectoryEventOrderByWithRelationInput | AgentTrajectoryEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentTrajectoryEvents.
     */
    cursor?: AgentTrajectoryEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentTrajectoryEvents 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` AgentTrajectoryEvents.
     */
    skip?: number
    distinct?: AgentTrajectoryEventScalarFieldEnum | AgentTrajectoryEventScalarFieldEnum[]
  }

  /**
   * AgentTrajectoryEvent create
   */
  export type AgentTrajectoryEventCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * The data needed to create a AgentTrajectoryEvent.
     */
    data: XOR<AgentTrajectoryEventCreateInput, AgentTrajectoryEventUncheckedCreateInput>
  }

  /**
   * AgentTrajectoryEvent createMany
   */
  export type AgentTrajectoryEventCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentTrajectoryEvents.
     */
    data: AgentTrajectoryEventCreateManyInput | AgentTrajectoryEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentTrajectoryEvent createManyAndReturn
   */
  export type AgentTrajectoryEventCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * The data used to create many AgentTrajectoryEvents.
     */
    data: AgentTrajectoryEventCreateManyInput | AgentTrajectoryEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentTrajectoryEvent update
   */
  export type AgentTrajectoryEventUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * The data needed to update a AgentTrajectoryEvent.
     */
    data: XOR<AgentTrajectoryEventUpdateInput, AgentTrajectoryEventUncheckedUpdateInput>
    /**
     * Choose, which AgentTrajectoryEvent to update.
     */
    where: AgentTrajectoryEventWhereUniqueInput
  }

  /**
   * AgentTrajectoryEvent updateMany
   */
  export type AgentTrajectoryEventUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentTrajectoryEvents.
     */
    data: XOR<AgentTrajectoryEventUpdateManyMutationInput, AgentTrajectoryEventUncheckedUpdateManyInput>
    /**
     * Filter which AgentTrajectoryEvents to update
     */
    where?: AgentTrajectoryEventWhereInput
    /**
     * Limit how many AgentTrajectoryEvents to update.
     */
    limit?: number
  }

  /**
   * AgentTrajectoryEvent updateManyAndReturn
   */
  export type AgentTrajectoryEventUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * The data used to update AgentTrajectoryEvents.
     */
    data: XOR<AgentTrajectoryEventUpdateManyMutationInput, AgentTrajectoryEventUncheckedUpdateManyInput>
    /**
     * Filter which AgentTrajectoryEvents to update
     */
    where?: AgentTrajectoryEventWhereInput
    /**
     * Limit how many AgentTrajectoryEvents to update.
     */
    limit?: number
  }

  /**
   * AgentTrajectoryEvent upsert
   */
  export type AgentTrajectoryEventUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * The filter to search for the AgentTrajectoryEvent to update in case it exists.
     */
    where: AgentTrajectoryEventWhereUniqueInput
    /**
     * In case the AgentTrajectoryEvent found by the `where` argument doesn't exist, create a new AgentTrajectoryEvent with this data.
     */
    create: XOR<AgentTrajectoryEventCreateInput, AgentTrajectoryEventUncheckedCreateInput>
    /**
     * In case the AgentTrajectoryEvent was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentTrajectoryEventUpdateInput, AgentTrajectoryEventUncheckedUpdateInput>
  }

  /**
   * AgentTrajectoryEvent delete
   */
  export type AgentTrajectoryEventDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
    /**
     * Filter which AgentTrajectoryEvent to delete.
     */
    where: AgentTrajectoryEventWhereUniqueInput
  }

  /**
   * AgentTrajectoryEvent deleteMany
   */
  export type AgentTrajectoryEventDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentTrajectoryEvents to delete
     */
    where?: AgentTrajectoryEventWhereInput
    /**
     * Limit how many AgentTrajectoryEvents to delete.
     */
    limit?: number
  }

  /**
   * AgentTrajectoryEvent without action
   */
  export type AgentTrajectoryEventDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTrajectoryEvent
     */
    select?: AgentTrajectoryEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTrajectoryEvent
     */
    omit?: AgentTrajectoryEventOmit<ExtArgs> | null
  }


  /**
   * Model AgentQuota
   */

  export type AggregateAgentQuota = {
    _count: AgentQuotaCountAggregateOutputType | null
    _avg: AgentQuotaAvgAggregateOutputType | null
    _sum: AgentQuotaSumAggregateOutputType | null
    _min: AgentQuotaMinAggregateOutputType | null
    _max: AgentQuotaMaxAggregateOutputType | null
  }

  export type AgentQuotaAvgAggregateOutputType = {
    monthlyTokens: number | null
    monthlyCostUsd: number | null
    softLimitRatio: number | null
  }

  export type AgentQuotaSumAggregateOutputType = {
    monthlyTokens: number | null
    monthlyCostUsd: number | null
    softLimitRatio: number | null
  }

  export type AgentQuotaMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    scope: $Enums.AgentQuotaScope | null
    scopeRefId: string | null
    monthlyTokens: number | null
    monthlyCostUsd: number | null
    softLimitRatio: number | null
    enabled: boolean | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentQuotaMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    scope: $Enums.AgentQuotaScope | null
    scopeRefId: string | null
    monthlyTokens: number | null
    monthlyCostUsd: number | null
    softLimitRatio: number | null
    enabled: boolean | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentQuotaCountAggregateOutputType = {
    id: number
    organizationId: number
    scope: number
    scopeRefId: number
    monthlyTokens: number
    monthlyCostUsd: number
    softLimitRatio: number
    enabled: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentQuotaAvgAggregateInputType = {
    monthlyTokens?: true
    monthlyCostUsd?: true
    softLimitRatio?: true
  }

  export type AgentQuotaSumAggregateInputType = {
    monthlyTokens?: true
    monthlyCostUsd?: true
    softLimitRatio?: true
  }

  export type AgentQuotaMinAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    monthlyTokens?: true
    monthlyCostUsd?: true
    softLimitRatio?: true
    enabled?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentQuotaMaxAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    monthlyTokens?: true
    monthlyCostUsd?: true
    softLimitRatio?: true
    enabled?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentQuotaCountAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    monthlyTokens?: true
    monthlyCostUsd?: true
    softLimitRatio?: true
    enabled?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentQuotaAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentQuota to aggregate.
     */
    where?: AgentQuotaWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentQuotas to fetch.
     */
    orderBy?: AgentQuotaOrderByWithRelationInput | AgentQuotaOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentQuotaWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentQuotas 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` AgentQuotas.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentQuotas
    **/
    _count?: true | AgentQuotaCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentQuotaAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentQuotaSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentQuotaMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentQuotaMaxAggregateInputType
  }

  export type GetAgentQuotaAggregateType<T extends AgentQuotaAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentQuota]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentQuota[P]>
      : GetScalarType<T[P], AggregateAgentQuota[P]>
  }




  export type AgentQuotaGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentQuotaWhereInput
    orderBy?: AgentQuotaOrderByWithAggregationInput | AgentQuotaOrderByWithAggregationInput[]
    by: AgentQuotaScalarFieldEnum[] | AgentQuotaScalarFieldEnum
    having?: AgentQuotaScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentQuotaCountAggregateInputType | true
    _avg?: AgentQuotaAvgAggregateInputType
    _sum?: AgentQuotaSumAggregateInputType
    _min?: AgentQuotaMinAggregateInputType
    _max?: AgentQuotaMaxAggregateInputType
  }

  export type AgentQuotaGroupByOutputType = {
    id: string
    organizationId: string
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    monthlyTokens: number
    monthlyCostUsd: number
    softLimitRatio: number
    enabled: boolean
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: AgentQuotaCountAggregateOutputType | null
    _avg: AgentQuotaAvgAggregateOutputType | null
    _sum: AgentQuotaSumAggregateOutputType | null
    _min: AgentQuotaMinAggregateOutputType | null
    _max: AgentQuotaMaxAggregateOutputType | null
  }

  type GetAgentQuotaGroupByPayload<T extends AgentQuotaGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentQuotaGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentQuotaGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentQuotaGroupByOutputType[P]>
            : GetScalarType<T[P], AgentQuotaGroupByOutputType[P]>
        }
      >
    >


  export type AgentQuotaSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    monthlyTokens?: boolean
    monthlyCostUsd?: boolean
    softLimitRatio?: boolean
    enabled?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentQuota"]>

  export type AgentQuotaSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    monthlyTokens?: boolean
    monthlyCostUsd?: boolean
    softLimitRatio?: boolean
    enabled?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentQuota"]>

  export type AgentQuotaSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    monthlyTokens?: boolean
    monthlyCostUsd?: boolean
    softLimitRatio?: boolean
    enabled?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentQuota"]>

  export type AgentQuotaSelectScalar = {
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    monthlyTokens?: boolean
    monthlyCostUsd?: boolean
    softLimitRatio?: boolean
    enabled?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentQuotaOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "scope" | "scopeRefId" | "monthlyTokens" | "monthlyCostUsd" | "softLimitRatio" | "enabled" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["agentQuota"]>

  export type $AgentQuotaPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentQuota"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      scope: $Enums.AgentQuotaScope
      scopeRefId: string
      monthlyTokens: number
      monthlyCostUsd: number
      softLimitRatio: number
      enabled: boolean
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentQuota"]>
    composites: {}
  }

  type AgentQuotaGetPayload<S extends boolean | null | undefined | AgentQuotaDefaultArgs> = $Result.GetResult<Prisma.$AgentQuotaPayload, S>

  type AgentQuotaCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentQuotaFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentQuotaCountAggregateInputType | true
    }

  export interface AgentQuotaDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentQuota'], meta: { name: 'AgentQuota' } }
    /**
     * Find zero or one AgentQuota that matches the filter.
     * @param {AgentQuotaFindUniqueArgs} args - Arguments to find a AgentQuota
     * @example
     * // Get one AgentQuota
     * const agentQuota = await prisma.agentQuota.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentQuotaFindUniqueArgs>(args: SelectSubset<T, AgentQuotaFindUniqueArgs<ExtArgs>>): Prisma__AgentQuotaClient<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentQuota that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentQuotaFindUniqueOrThrowArgs} args - Arguments to find a AgentQuota
     * @example
     * // Get one AgentQuota
     * const agentQuota = await prisma.agentQuota.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentQuotaFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentQuotaFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentQuotaClient<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentQuota 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 {AgentQuotaFindFirstArgs} args - Arguments to find a AgentQuota
     * @example
     * // Get one AgentQuota
     * const agentQuota = await prisma.agentQuota.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentQuotaFindFirstArgs>(args?: SelectSubset<T, AgentQuotaFindFirstArgs<ExtArgs>>): Prisma__AgentQuotaClient<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentQuota 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 {AgentQuotaFindFirstOrThrowArgs} args - Arguments to find a AgentQuota
     * @example
     * // Get one AgentQuota
     * const agentQuota = await prisma.agentQuota.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentQuotaFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentQuotaFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentQuotaClient<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentQuotas 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 {AgentQuotaFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentQuotas
     * const agentQuotas = await prisma.agentQuota.findMany()
     * 
     * // Get first 10 AgentQuotas
     * const agentQuotas = await prisma.agentQuota.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentQuotaWithIdOnly = await prisma.agentQuota.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentQuotaFindManyArgs>(args?: SelectSubset<T, AgentQuotaFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentQuota.
     * @param {AgentQuotaCreateArgs} args - Arguments to create a AgentQuota.
     * @example
     * // Create one AgentQuota
     * const AgentQuota = await prisma.agentQuota.create({
     *   data: {
     *     // ... data to create a AgentQuota
     *   }
     * })
     * 
     */
    create<T extends AgentQuotaCreateArgs>(args: SelectSubset<T, AgentQuotaCreateArgs<ExtArgs>>): Prisma__AgentQuotaClient<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentQuotas.
     * @param {AgentQuotaCreateManyArgs} args - Arguments to create many AgentQuotas.
     * @example
     * // Create many AgentQuotas
     * const agentQuota = await prisma.agentQuota.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentQuotaCreateManyArgs>(args?: SelectSubset<T, AgentQuotaCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentQuotas and returns the data saved in the database.
     * @param {AgentQuotaCreateManyAndReturnArgs} args - Arguments to create many AgentQuotas.
     * @example
     * // Create many AgentQuotas
     * const agentQuota = await prisma.agentQuota.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentQuotas and only return the `id`
     * const agentQuotaWithIdOnly = await prisma.agentQuota.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 AgentQuotaCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentQuotaCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentQuota.
     * @param {AgentQuotaDeleteArgs} args - Arguments to delete one AgentQuota.
     * @example
     * // Delete one AgentQuota
     * const AgentQuota = await prisma.agentQuota.delete({
     *   where: {
     *     // ... filter to delete one AgentQuota
     *   }
     * })
     * 
     */
    delete<T extends AgentQuotaDeleteArgs>(args: SelectSubset<T, AgentQuotaDeleteArgs<ExtArgs>>): Prisma__AgentQuotaClient<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentQuota.
     * @param {AgentQuotaUpdateArgs} args - Arguments to update one AgentQuota.
     * @example
     * // Update one AgentQuota
     * const agentQuota = await prisma.agentQuota.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentQuotaUpdateArgs>(args: SelectSubset<T, AgentQuotaUpdateArgs<ExtArgs>>): Prisma__AgentQuotaClient<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentQuotas.
     * @param {AgentQuotaDeleteManyArgs} args - Arguments to filter AgentQuotas to delete.
     * @example
     * // Delete a few AgentQuotas
     * const { count } = await prisma.agentQuota.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentQuotaDeleteManyArgs>(args?: SelectSubset<T, AgentQuotaDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentQuotas.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentQuotaUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentQuotas
     * const agentQuota = await prisma.agentQuota.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentQuotaUpdateManyArgs>(args: SelectSubset<T, AgentQuotaUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentQuotas and returns the data updated in the database.
     * @param {AgentQuotaUpdateManyAndReturnArgs} args - Arguments to update many AgentQuotas.
     * @example
     * // Update many AgentQuotas
     * const agentQuota = await prisma.agentQuota.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentQuotas and only return the `id`
     * const agentQuotaWithIdOnly = await prisma.agentQuota.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 AgentQuotaUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentQuotaUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentQuota.
     * @param {AgentQuotaUpsertArgs} args - Arguments to update or create a AgentQuota.
     * @example
     * // Update or create a AgentQuota
     * const agentQuota = await prisma.agentQuota.upsert({
     *   create: {
     *     // ... data to create a AgentQuota
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentQuota we want to update
     *   }
     * })
     */
    upsert<T extends AgentQuotaUpsertArgs>(args: SelectSubset<T, AgentQuotaUpsertArgs<ExtArgs>>): Prisma__AgentQuotaClient<$Result.GetResult<Prisma.$AgentQuotaPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentQuotas.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentQuotaCountArgs} args - Arguments to filter AgentQuotas to count.
     * @example
     * // Count the number of AgentQuotas
     * const count = await prisma.agentQuota.count({
     *   where: {
     *     // ... the filter for the AgentQuotas we want to count
     *   }
     * })
    **/
    count<T extends AgentQuotaCountArgs>(
      args?: Subset<T, AgentQuotaCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentQuotaCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentQuota.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentQuotaAggregateArgs} 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 AgentQuotaAggregateArgs>(args: Subset<T, AgentQuotaAggregateArgs>): Prisma.PrismaPromise<GetAgentQuotaAggregateType<T>>

    /**
     * Group by AgentQuota.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentQuotaGroupByArgs} 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 AgentQuotaGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentQuotaGroupByArgs['orderBy'] }
        : { orderBy?: AgentQuotaGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentQuotaGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentQuotaGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentQuota model
   */
  readonly fields: AgentQuotaFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentQuota.
   * 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__AgentQuotaClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentQuota model
   */
  interface AgentQuotaFieldRefs {
    readonly id: FieldRef<"AgentQuota", 'String'>
    readonly organizationId: FieldRef<"AgentQuota", 'String'>
    readonly scope: FieldRef<"AgentQuota", 'AgentQuotaScope'>
    readonly scopeRefId: FieldRef<"AgentQuota", 'String'>
    readonly monthlyTokens: FieldRef<"AgentQuota", 'Int'>
    readonly monthlyCostUsd: FieldRef<"AgentQuota", 'Float'>
    readonly softLimitRatio: FieldRef<"AgentQuota", 'Float'>
    readonly enabled: FieldRef<"AgentQuota", 'Boolean'>
    readonly createdById: FieldRef<"AgentQuota", 'String'>
    readonly createdAt: FieldRef<"AgentQuota", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentQuota", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentQuota findUnique
   */
  export type AgentQuotaFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuota to fetch.
     */
    where: AgentQuotaWhereUniqueInput
  }

  /**
   * AgentQuota findUniqueOrThrow
   */
  export type AgentQuotaFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuota to fetch.
     */
    where: AgentQuotaWhereUniqueInput
  }

  /**
   * AgentQuota findFirst
   */
  export type AgentQuotaFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuota to fetch.
     */
    where?: AgentQuotaWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentQuotas to fetch.
     */
    orderBy?: AgentQuotaOrderByWithRelationInput | AgentQuotaOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentQuotas.
     */
    cursor?: AgentQuotaWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentQuotas 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` AgentQuotas.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentQuotas.
     */
    distinct?: AgentQuotaScalarFieldEnum | AgentQuotaScalarFieldEnum[]
  }

  /**
   * AgentQuota findFirstOrThrow
   */
  export type AgentQuotaFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuota to fetch.
     */
    where?: AgentQuotaWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentQuotas to fetch.
     */
    orderBy?: AgentQuotaOrderByWithRelationInput | AgentQuotaOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentQuotas.
     */
    cursor?: AgentQuotaWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentQuotas 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` AgentQuotas.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentQuotas.
     */
    distinct?: AgentQuotaScalarFieldEnum | AgentQuotaScalarFieldEnum[]
  }

  /**
   * AgentQuota findMany
   */
  export type AgentQuotaFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuotas to fetch.
     */
    where?: AgentQuotaWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentQuotas to fetch.
     */
    orderBy?: AgentQuotaOrderByWithRelationInput | AgentQuotaOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentQuotas.
     */
    cursor?: AgentQuotaWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentQuotas 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` AgentQuotas.
     */
    skip?: number
    distinct?: AgentQuotaScalarFieldEnum | AgentQuotaScalarFieldEnum[]
  }

  /**
   * AgentQuota create
   */
  export type AgentQuotaCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * The data needed to create a AgentQuota.
     */
    data: XOR<AgentQuotaCreateInput, AgentQuotaUncheckedCreateInput>
  }

  /**
   * AgentQuota createMany
   */
  export type AgentQuotaCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentQuotas.
     */
    data: AgentQuotaCreateManyInput | AgentQuotaCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentQuota createManyAndReturn
   */
  export type AgentQuotaCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * The data used to create many AgentQuotas.
     */
    data: AgentQuotaCreateManyInput | AgentQuotaCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentQuota update
   */
  export type AgentQuotaUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * The data needed to update a AgentQuota.
     */
    data: XOR<AgentQuotaUpdateInput, AgentQuotaUncheckedUpdateInput>
    /**
     * Choose, which AgentQuota to update.
     */
    where: AgentQuotaWhereUniqueInput
  }

  /**
   * AgentQuota updateMany
   */
  export type AgentQuotaUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentQuotas.
     */
    data: XOR<AgentQuotaUpdateManyMutationInput, AgentQuotaUncheckedUpdateManyInput>
    /**
     * Filter which AgentQuotas to update
     */
    where?: AgentQuotaWhereInput
    /**
     * Limit how many AgentQuotas to update.
     */
    limit?: number
  }

  /**
   * AgentQuota updateManyAndReturn
   */
  export type AgentQuotaUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * The data used to update AgentQuotas.
     */
    data: XOR<AgentQuotaUpdateManyMutationInput, AgentQuotaUncheckedUpdateManyInput>
    /**
     * Filter which AgentQuotas to update
     */
    where?: AgentQuotaWhereInput
    /**
     * Limit how many AgentQuotas to update.
     */
    limit?: number
  }

  /**
   * AgentQuota upsert
   */
  export type AgentQuotaUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * The filter to search for the AgentQuota to update in case it exists.
     */
    where: AgentQuotaWhereUniqueInput
    /**
     * In case the AgentQuota found by the `where` argument doesn't exist, create a new AgentQuota with this data.
     */
    create: XOR<AgentQuotaCreateInput, AgentQuotaUncheckedCreateInput>
    /**
     * In case the AgentQuota was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentQuotaUpdateInput, AgentQuotaUncheckedUpdateInput>
  }

  /**
   * AgentQuota delete
   */
  export type AgentQuotaDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
    /**
     * Filter which AgentQuota to delete.
     */
    where: AgentQuotaWhereUniqueInput
  }

  /**
   * AgentQuota deleteMany
   */
  export type AgentQuotaDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentQuotas to delete
     */
    where?: AgentQuotaWhereInput
    /**
     * Limit how many AgentQuotas to delete.
     */
    limit?: number
  }

  /**
   * AgentQuota without action
   */
  export type AgentQuotaDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuota
     */
    select?: AgentQuotaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuota
     */
    omit?: AgentQuotaOmit<ExtArgs> | null
  }


  /**
   * Model AgentQuotaUsage
   */

  export type AggregateAgentQuotaUsage = {
    _count: AgentQuotaUsageCountAggregateOutputType | null
    _avg: AgentQuotaUsageAvgAggregateOutputType | null
    _sum: AgentQuotaUsageSumAggregateOutputType | null
    _min: AgentQuotaUsageMinAggregateOutputType | null
    _max: AgentQuotaUsageMaxAggregateOutputType | null
  }

  export type AgentQuotaUsageAvgAggregateOutputType = {
    tokensUsed: number | null
    costUsdUsed: number | null
  }

  export type AgentQuotaUsageSumAggregateOutputType = {
    tokensUsed: number | null
    costUsdUsed: number | null
  }

  export type AgentQuotaUsageMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    scope: $Enums.AgentQuotaScope | null
    scopeRefId: string | null
    periodStart: Date | null
    tokensUsed: number | null
    costUsdUsed: number | null
    updatedAt: Date | null
  }

  export type AgentQuotaUsageMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    scope: $Enums.AgentQuotaScope | null
    scopeRefId: string | null
    periodStart: Date | null
    tokensUsed: number | null
    costUsdUsed: number | null
    updatedAt: Date | null
  }

  export type AgentQuotaUsageCountAggregateOutputType = {
    id: number
    organizationId: number
    scope: number
    scopeRefId: number
    periodStart: number
    tokensUsed: number
    costUsdUsed: number
    updatedAt: number
    _all: number
  }


  export type AgentQuotaUsageAvgAggregateInputType = {
    tokensUsed?: true
    costUsdUsed?: true
  }

  export type AgentQuotaUsageSumAggregateInputType = {
    tokensUsed?: true
    costUsdUsed?: true
  }

  export type AgentQuotaUsageMinAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    periodStart?: true
    tokensUsed?: true
    costUsdUsed?: true
    updatedAt?: true
  }

  export type AgentQuotaUsageMaxAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    periodStart?: true
    tokensUsed?: true
    costUsdUsed?: true
    updatedAt?: true
  }

  export type AgentQuotaUsageCountAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    periodStart?: true
    tokensUsed?: true
    costUsdUsed?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentQuotaUsageAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentQuotaUsage to aggregate.
     */
    where?: AgentQuotaUsageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentQuotaUsages to fetch.
     */
    orderBy?: AgentQuotaUsageOrderByWithRelationInput | AgentQuotaUsageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentQuotaUsageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentQuotaUsages 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` AgentQuotaUsages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentQuotaUsages
    **/
    _count?: true | AgentQuotaUsageCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentQuotaUsageAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentQuotaUsageSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentQuotaUsageMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentQuotaUsageMaxAggregateInputType
  }

  export type GetAgentQuotaUsageAggregateType<T extends AgentQuotaUsageAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentQuotaUsage]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentQuotaUsage[P]>
      : GetScalarType<T[P], AggregateAgentQuotaUsage[P]>
  }




  export type AgentQuotaUsageGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentQuotaUsageWhereInput
    orderBy?: AgentQuotaUsageOrderByWithAggregationInput | AgentQuotaUsageOrderByWithAggregationInput[]
    by: AgentQuotaUsageScalarFieldEnum[] | AgentQuotaUsageScalarFieldEnum
    having?: AgentQuotaUsageScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentQuotaUsageCountAggregateInputType | true
    _avg?: AgentQuotaUsageAvgAggregateInputType
    _sum?: AgentQuotaUsageSumAggregateInputType
    _min?: AgentQuotaUsageMinAggregateInputType
    _max?: AgentQuotaUsageMaxAggregateInputType
  }

  export type AgentQuotaUsageGroupByOutputType = {
    id: string
    organizationId: string
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    periodStart: Date
    tokensUsed: number
    costUsdUsed: number
    updatedAt: Date
    _count: AgentQuotaUsageCountAggregateOutputType | null
    _avg: AgentQuotaUsageAvgAggregateOutputType | null
    _sum: AgentQuotaUsageSumAggregateOutputType | null
    _min: AgentQuotaUsageMinAggregateOutputType | null
    _max: AgentQuotaUsageMaxAggregateOutputType | null
  }

  type GetAgentQuotaUsageGroupByPayload<T extends AgentQuotaUsageGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentQuotaUsageGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentQuotaUsageGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentQuotaUsageGroupByOutputType[P]>
            : GetScalarType<T[P], AgentQuotaUsageGroupByOutputType[P]>
        }
      >
    >


  export type AgentQuotaUsageSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    periodStart?: boolean
    tokensUsed?: boolean
    costUsdUsed?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentQuotaUsage"]>

  export type AgentQuotaUsageSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    periodStart?: boolean
    tokensUsed?: boolean
    costUsdUsed?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentQuotaUsage"]>

  export type AgentQuotaUsageSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    periodStart?: boolean
    tokensUsed?: boolean
    costUsdUsed?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentQuotaUsage"]>

  export type AgentQuotaUsageSelectScalar = {
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    periodStart?: boolean
    tokensUsed?: boolean
    costUsdUsed?: boolean
    updatedAt?: boolean
  }

  export type AgentQuotaUsageOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "scope" | "scopeRefId" | "periodStart" | "tokensUsed" | "costUsdUsed" | "updatedAt", ExtArgs["result"]["agentQuotaUsage"]>

  export type $AgentQuotaUsagePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentQuotaUsage"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      scope: $Enums.AgentQuotaScope
      scopeRefId: string
      periodStart: Date
      tokensUsed: number
      costUsdUsed: number
      updatedAt: Date
    }, ExtArgs["result"]["agentQuotaUsage"]>
    composites: {}
  }

  type AgentQuotaUsageGetPayload<S extends boolean | null | undefined | AgentQuotaUsageDefaultArgs> = $Result.GetResult<Prisma.$AgentQuotaUsagePayload, S>

  type AgentQuotaUsageCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentQuotaUsageFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentQuotaUsageCountAggregateInputType | true
    }

  export interface AgentQuotaUsageDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentQuotaUsage'], meta: { name: 'AgentQuotaUsage' } }
    /**
     * Find zero or one AgentQuotaUsage that matches the filter.
     * @param {AgentQuotaUsageFindUniqueArgs} args - Arguments to find a AgentQuotaUsage
     * @example
     * // Get one AgentQuotaUsage
     * const agentQuotaUsage = await prisma.agentQuotaUsage.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentQuotaUsageFindUniqueArgs>(args: SelectSubset<T, AgentQuotaUsageFindUniqueArgs<ExtArgs>>): Prisma__AgentQuotaUsageClient<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentQuotaUsage that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentQuotaUsageFindUniqueOrThrowArgs} args - Arguments to find a AgentQuotaUsage
     * @example
     * // Get one AgentQuotaUsage
     * const agentQuotaUsage = await prisma.agentQuotaUsage.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentQuotaUsageFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentQuotaUsageFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentQuotaUsageClient<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentQuotaUsage 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 {AgentQuotaUsageFindFirstArgs} args - Arguments to find a AgentQuotaUsage
     * @example
     * // Get one AgentQuotaUsage
     * const agentQuotaUsage = await prisma.agentQuotaUsage.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentQuotaUsageFindFirstArgs>(args?: SelectSubset<T, AgentQuotaUsageFindFirstArgs<ExtArgs>>): Prisma__AgentQuotaUsageClient<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentQuotaUsage 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 {AgentQuotaUsageFindFirstOrThrowArgs} args - Arguments to find a AgentQuotaUsage
     * @example
     * // Get one AgentQuotaUsage
     * const agentQuotaUsage = await prisma.agentQuotaUsage.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentQuotaUsageFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentQuotaUsageFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentQuotaUsageClient<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentQuotaUsages 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 {AgentQuotaUsageFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentQuotaUsages
     * const agentQuotaUsages = await prisma.agentQuotaUsage.findMany()
     * 
     * // Get first 10 AgentQuotaUsages
     * const agentQuotaUsages = await prisma.agentQuotaUsage.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentQuotaUsageWithIdOnly = await prisma.agentQuotaUsage.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentQuotaUsageFindManyArgs>(args?: SelectSubset<T, AgentQuotaUsageFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentQuotaUsage.
     * @param {AgentQuotaUsageCreateArgs} args - Arguments to create a AgentQuotaUsage.
     * @example
     * // Create one AgentQuotaUsage
     * const AgentQuotaUsage = await prisma.agentQuotaUsage.create({
     *   data: {
     *     // ... data to create a AgentQuotaUsage
     *   }
     * })
     * 
     */
    create<T extends AgentQuotaUsageCreateArgs>(args: SelectSubset<T, AgentQuotaUsageCreateArgs<ExtArgs>>): Prisma__AgentQuotaUsageClient<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentQuotaUsages.
     * @param {AgentQuotaUsageCreateManyArgs} args - Arguments to create many AgentQuotaUsages.
     * @example
     * // Create many AgentQuotaUsages
     * const agentQuotaUsage = await prisma.agentQuotaUsage.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentQuotaUsageCreateManyArgs>(args?: SelectSubset<T, AgentQuotaUsageCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentQuotaUsages and returns the data saved in the database.
     * @param {AgentQuotaUsageCreateManyAndReturnArgs} args - Arguments to create many AgentQuotaUsages.
     * @example
     * // Create many AgentQuotaUsages
     * const agentQuotaUsage = await prisma.agentQuotaUsage.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentQuotaUsages and only return the `id`
     * const agentQuotaUsageWithIdOnly = await prisma.agentQuotaUsage.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 AgentQuotaUsageCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentQuotaUsageCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentQuotaUsage.
     * @param {AgentQuotaUsageDeleteArgs} args - Arguments to delete one AgentQuotaUsage.
     * @example
     * // Delete one AgentQuotaUsage
     * const AgentQuotaUsage = await prisma.agentQuotaUsage.delete({
     *   where: {
     *     // ... filter to delete one AgentQuotaUsage
     *   }
     * })
     * 
     */
    delete<T extends AgentQuotaUsageDeleteArgs>(args: SelectSubset<T, AgentQuotaUsageDeleteArgs<ExtArgs>>): Prisma__AgentQuotaUsageClient<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentQuotaUsage.
     * @param {AgentQuotaUsageUpdateArgs} args - Arguments to update one AgentQuotaUsage.
     * @example
     * // Update one AgentQuotaUsage
     * const agentQuotaUsage = await prisma.agentQuotaUsage.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentQuotaUsageUpdateArgs>(args: SelectSubset<T, AgentQuotaUsageUpdateArgs<ExtArgs>>): Prisma__AgentQuotaUsageClient<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentQuotaUsages.
     * @param {AgentQuotaUsageDeleteManyArgs} args - Arguments to filter AgentQuotaUsages to delete.
     * @example
     * // Delete a few AgentQuotaUsages
     * const { count } = await prisma.agentQuotaUsage.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentQuotaUsageDeleteManyArgs>(args?: SelectSubset<T, AgentQuotaUsageDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentQuotaUsages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentQuotaUsageUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentQuotaUsages
     * const agentQuotaUsage = await prisma.agentQuotaUsage.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentQuotaUsageUpdateManyArgs>(args: SelectSubset<T, AgentQuotaUsageUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentQuotaUsages and returns the data updated in the database.
     * @param {AgentQuotaUsageUpdateManyAndReturnArgs} args - Arguments to update many AgentQuotaUsages.
     * @example
     * // Update many AgentQuotaUsages
     * const agentQuotaUsage = await prisma.agentQuotaUsage.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentQuotaUsages and only return the `id`
     * const agentQuotaUsageWithIdOnly = await prisma.agentQuotaUsage.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 AgentQuotaUsageUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentQuotaUsageUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentQuotaUsage.
     * @param {AgentQuotaUsageUpsertArgs} args - Arguments to update or create a AgentQuotaUsage.
     * @example
     * // Update or create a AgentQuotaUsage
     * const agentQuotaUsage = await prisma.agentQuotaUsage.upsert({
     *   create: {
     *     // ... data to create a AgentQuotaUsage
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentQuotaUsage we want to update
     *   }
     * })
     */
    upsert<T extends AgentQuotaUsageUpsertArgs>(args: SelectSubset<T, AgentQuotaUsageUpsertArgs<ExtArgs>>): Prisma__AgentQuotaUsageClient<$Result.GetResult<Prisma.$AgentQuotaUsagePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentQuotaUsages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentQuotaUsageCountArgs} args - Arguments to filter AgentQuotaUsages to count.
     * @example
     * // Count the number of AgentQuotaUsages
     * const count = await prisma.agentQuotaUsage.count({
     *   where: {
     *     // ... the filter for the AgentQuotaUsages we want to count
     *   }
     * })
    **/
    count<T extends AgentQuotaUsageCountArgs>(
      args?: Subset<T, AgentQuotaUsageCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentQuotaUsageCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentQuotaUsage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentQuotaUsageAggregateArgs} 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 AgentQuotaUsageAggregateArgs>(args: Subset<T, AgentQuotaUsageAggregateArgs>): Prisma.PrismaPromise<GetAgentQuotaUsageAggregateType<T>>

    /**
     * Group by AgentQuotaUsage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentQuotaUsageGroupByArgs} 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 AgentQuotaUsageGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentQuotaUsageGroupByArgs['orderBy'] }
        : { orderBy?: AgentQuotaUsageGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentQuotaUsageGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentQuotaUsageGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentQuotaUsage model
   */
  readonly fields: AgentQuotaUsageFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentQuotaUsage.
   * 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__AgentQuotaUsageClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentQuotaUsage model
   */
  interface AgentQuotaUsageFieldRefs {
    readonly id: FieldRef<"AgentQuotaUsage", 'String'>
    readonly organizationId: FieldRef<"AgentQuotaUsage", 'String'>
    readonly scope: FieldRef<"AgentQuotaUsage", 'AgentQuotaScope'>
    readonly scopeRefId: FieldRef<"AgentQuotaUsage", 'String'>
    readonly periodStart: FieldRef<"AgentQuotaUsage", 'DateTime'>
    readonly tokensUsed: FieldRef<"AgentQuotaUsage", 'Int'>
    readonly costUsdUsed: FieldRef<"AgentQuotaUsage", 'Float'>
    readonly updatedAt: FieldRef<"AgentQuotaUsage", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentQuotaUsage findUnique
   */
  export type AgentQuotaUsageFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuotaUsage to fetch.
     */
    where: AgentQuotaUsageWhereUniqueInput
  }

  /**
   * AgentQuotaUsage findUniqueOrThrow
   */
  export type AgentQuotaUsageFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuotaUsage to fetch.
     */
    where: AgentQuotaUsageWhereUniqueInput
  }

  /**
   * AgentQuotaUsage findFirst
   */
  export type AgentQuotaUsageFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuotaUsage to fetch.
     */
    where?: AgentQuotaUsageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentQuotaUsages to fetch.
     */
    orderBy?: AgentQuotaUsageOrderByWithRelationInput | AgentQuotaUsageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentQuotaUsages.
     */
    cursor?: AgentQuotaUsageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentQuotaUsages 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` AgentQuotaUsages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentQuotaUsages.
     */
    distinct?: AgentQuotaUsageScalarFieldEnum | AgentQuotaUsageScalarFieldEnum[]
  }

  /**
   * AgentQuotaUsage findFirstOrThrow
   */
  export type AgentQuotaUsageFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuotaUsage to fetch.
     */
    where?: AgentQuotaUsageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentQuotaUsages to fetch.
     */
    orderBy?: AgentQuotaUsageOrderByWithRelationInput | AgentQuotaUsageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentQuotaUsages.
     */
    cursor?: AgentQuotaUsageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentQuotaUsages 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` AgentQuotaUsages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentQuotaUsages.
     */
    distinct?: AgentQuotaUsageScalarFieldEnum | AgentQuotaUsageScalarFieldEnum[]
  }

  /**
   * AgentQuotaUsage findMany
   */
  export type AgentQuotaUsageFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * Filter, which AgentQuotaUsages to fetch.
     */
    where?: AgentQuotaUsageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentQuotaUsages to fetch.
     */
    orderBy?: AgentQuotaUsageOrderByWithRelationInput | AgentQuotaUsageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentQuotaUsages.
     */
    cursor?: AgentQuotaUsageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentQuotaUsages 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` AgentQuotaUsages.
     */
    skip?: number
    distinct?: AgentQuotaUsageScalarFieldEnum | AgentQuotaUsageScalarFieldEnum[]
  }

  /**
   * AgentQuotaUsage create
   */
  export type AgentQuotaUsageCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * The data needed to create a AgentQuotaUsage.
     */
    data: XOR<AgentQuotaUsageCreateInput, AgentQuotaUsageUncheckedCreateInput>
  }

  /**
   * AgentQuotaUsage createMany
   */
  export type AgentQuotaUsageCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentQuotaUsages.
     */
    data: AgentQuotaUsageCreateManyInput | AgentQuotaUsageCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentQuotaUsage createManyAndReturn
   */
  export type AgentQuotaUsageCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * The data used to create many AgentQuotaUsages.
     */
    data: AgentQuotaUsageCreateManyInput | AgentQuotaUsageCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentQuotaUsage update
   */
  export type AgentQuotaUsageUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * The data needed to update a AgentQuotaUsage.
     */
    data: XOR<AgentQuotaUsageUpdateInput, AgentQuotaUsageUncheckedUpdateInput>
    /**
     * Choose, which AgentQuotaUsage to update.
     */
    where: AgentQuotaUsageWhereUniqueInput
  }

  /**
   * AgentQuotaUsage updateMany
   */
  export type AgentQuotaUsageUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentQuotaUsages.
     */
    data: XOR<AgentQuotaUsageUpdateManyMutationInput, AgentQuotaUsageUncheckedUpdateManyInput>
    /**
     * Filter which AgentQuotaUsages to update
     */
    where?: AgentQuotaUsageWhereInput
    /**
     * Limit how many AgentQuotaUsages to update.
     */
    limit?: number
  }

  /**
   * AgentQuotaUsage updateManyAndReturn
   */
  export type AgentQuotaUsageUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * The data used to update AgentQuotaUsages.
     */
    data: XOR<AgentQuotaUsageUpdateManyMutationInput, AgentQuotaUsageUncheckedUpdateManyInput>
    /**
     * Filter which AgentQuotaUsages to update
     */
    where?: AgentQuotaUsageWhereInput
    /**
     * Limit how many AgentQuotaUsages to update.
     */
    limit?: number
  }

  /**
   * AgentQuotaUsage upsert
   */
  export type AgentQuotaUsageUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * The filter to search for the AgentQuotaUsage to update in case it exists.
     */
    where: AgentQuotaUsageWhereUniqueInput
    /**
     * In case the AgentQuotaUsage found by the `where` argument doesn't exist, create a new AgentQuotaUsage with this data.
     */
    create: XOR<AgentQuotaUsageCreateInput, AgentQuotaUsageUncheckedCreateInput>
    /**
     * In case the AgentQuotaUsage was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentQuotaUsageUpdateInput, AgentQuotaUsageUncheckedUpdateInput>
  }

  /**
   * AgentQuotaUsage delete
   */
  export type AgentQuotaUsageDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
    /**
     * Filter which AgentQuotaUsage to delete.
     */
    where: AgentQuotaUsageWhereUniqueInput
  }

  /**
   * AgentQuotaUsage deleteMany
   */
  export type AgentQuotaUsageDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentQuotaUsages to delete
     */
    where?: AgentQuotaUsageWhereInput
    /**
     * Limit how many AgentQuotaUsages to delete.
     */
    limit?: number
  }

  /**
   * AgentQuotaUsage without action
   */
  export type AgentQuotaUsageDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentQuotaUsage
     */
    select?: AgentQuotaUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentQuotaUsage
     */
    omit?: AgentQuotaUsageOmit<ExtArgs> | null
  }


  /**
   * Model OrganizationAgentSettings
   */

  export type AggregateOrganizationAgentSettings = {
    _count: OrganizationAgentSettingsCountAggregateOutputType | null
    _min: OrganizationAgentSettingsMinAggregateOutputType | null
    _max: OrganizationAgentSettingsMaxAggregateOutputType | null
  }

  export type OrganizationAgentSettingsMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    defaultPlanMode: $Enums.AgentPlanMode | null
    defaultPermissionMode: $Enums.AgentPermissionMode | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OrganizationAgentSettingsMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    defaultPlanMode: $Enums.AgentPlanMode | null
    defaultPermissionMode: $Enums.AgentPermissionMode | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OrganizationAgentSettingsCountAggregateOutputType = {
    id: number
    organizationId: number
    defaultPlanMode: number
    defaultPermissionMode: number
    disabledCapabilities: number
    allowedCliTools: number
    allowedPermissionModes: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type OrganizationAgentSettingsMinAggregateInputType = {
    id?: true
    organizationId?: true
    defaultPlanMode?: true
    defaultPermissionMode?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OrganizationAgentSettingsMaxAggregateInputType = {
    id?: true
    organizationId?: true
    defaultPlanMode?: true
    defaultPermissionMode?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OrganizationAgentSettingsCountAggregateInputType = {
    id?: true
    organizationId?: true
    defaultPlanMode?: true
    defaultPermissionMode?: true
    disabledCapabilities?: true
    allowedCliTools?: true
    allowedPermissionModes?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type OrganizationAgentSettingsAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OrganizationAgentSettings to aggregate.
     */
    where?: OrganizationAgentSettingsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OrganizationAgentSettings to fetch.
     */
    orderBy?: OrganizationAgentSettingsOrderByWithRelationInput | OrganizationAgentSettingsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OrganizationAgentSettingsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OrganizationAgentSettings 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` OrganizationAgentSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OrganizationAgentSettings
    **/
    _count?: true | OrganizationAgentSettingsCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OrganizationAgentSettingsMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OrganizationAgentSettingsMaxAggregateInputType
  }

  export type GetOrganizationAgentSettingsAggregateType<T extends OrganizationAgentSettingsAggregateArgs> = {
        [P in keyof T & keyof AggregateOrganizationAgentSettings]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOrganizationAgentSettings[P]>
      : GetScalarType<T[P], AggregateOrganizationAgentSettings[P]>
  }




  export type OrganizationAgentSettingsGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OrganizationAgentSettingsWhereInput
    orderBy?: OrganizationAgentSettingsOrderByWithAggregationInput | OrganizationAgentSettingsOrderByWithAggregationInput[]
    by: OrganizationAgentSettingsScalarFieldEnum[] | OrganizationAgentSettingsScalarFieldEnum
    having?: OrganizationAgentSettingsScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OrganizationAgentSettingsCountAggregateInputType | true
    _min?: OrganizationAgentSettingsMinAggregateInputType
    _max?: OrganizationAgentSettingsMaxAggregateInputType
  }

  export type OrganizationAgentSettingsGroupByOutputType = {
    id: string
    organizationId: string
    defaultPlanMode: $Enums.AgentPlanMode
    defaultPermissionMode: $Enums.AgentPermissionMode
    disabledCapabilities: string[]
    allowedCliTools: string[]
    allowedPermissionModes: string[]
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: OrganizationAgentSettingsCountAggregateOutputType | null
    _min: OrganizationAgentSettingsMinAggregateOutputType | null
    _max: OrganizationAgentSettingsMaxAggregateOutputType | null
  }

  type GetOrganizationAgentSettingsGroupByPayload<T extends OrganizationAgentSettingsGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OrganizationAgentSettingsGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OrganizationAgentSettingsGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OrganizationAgentSettingsGroupByOutputType[P]>
            : GetScalarType<T[P], OrganizationAgentSettingsGroupByOutputType[P]>
        }
      >
    >


  export type OrganizationAgentSettingsSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    defaultPlanMode?: boolean
    defaultPermissionMode?: boolean
    disabledCapabilities?: boolean
    allowedCliTools?: boolean
    allowedPermissionModes?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["organizationAgentSettings"]>

  export type OrganizationAgentSettingsSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    defaultPlanMode?: boolean
    defaultPermissionMode?: boolean
    disabledCapabilities?: boolean
    allowedCliTools?: boolean
    allowedPermissionModes?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["organizationAgentSettings"]>

  export type OrganizationAgentSettingsSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    defaultPlanMode?: boolean
    defaultPermissionMode?: boolean
    disabledCapabilities?: boolean
    allowedCliTools?: boolean
    allowedPermissionModes?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["organizationAgentSettings"]>

  export type OrganizationAgentSettingsSelectScalar = {
    id?: boolean
    organizationId?: boolean
    defaultPlanMode?: boolean
    defaultPermissionMode?: boolean
    disabledCapabilities?: boolean
    allowedCliTools?: boolean
    allowedPermissionModes?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type OrganizationAgentSettingsOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "defaultPlanMode" | "defaultPermissionMode" | "disabledCapabilities" | "allowedCliTools" | "allowedPermissionModes" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["organizationAgentSettings"]>

  export type $OrganizationAgentSettingsPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OrganizationAgentSettings"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      defaultPlanMode: $Enums.AgentPlanMode
      defaultPermissionMode: $Enums.AgentPermissionMode
      disabledCapabilities: string[]
      allowedCliTools: string[]
      allowedPermissionModes: string[]
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["organizationAgentSettings"]>
    composites: {}
  }

  type OrganizationAgentSettingsGetPayload<S extends boolean | null | undefined | OrganizationAgentSettingsDefaultArgs> = $Result.GetResult<Prisma.$OrganizationAgentSettingsPayload, S>

  type OrganizationAgentSettingsCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OrganizationAgentSettingsFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OrganizationAgentSettingsCountAggregateInputType | true
    }

  export interface OrganizationAgentSettingsDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OrganizationAgentSettings'], meta: { name: 'OrganizationAgentSettings' } }
    /**
     * Find zero or one OrganizationAgentSettings that matches the filter.
     * @param {OrganizationAgentSettingsFindUniqueArgs} args - Arguments to find a OrganizationAgentSettings
     * @example
     * // Get one OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OrganizationAgentSettingsFindUniqueArgs>(args: SelectSubset<T, OrganizationAgentSettingsFindUniqueArgs<ExtArgs>>): Prisma__OrganizationAgentSettingsClient<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OrganizationAgentSettings that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OrganizationAgentSettingsFindUniqueOrThrowArgs} args - Arguments to find a OrganizationAgentSettings
     * @example
     * // Get one OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OrganizationAgentSettingsFindUniqueOrThrowArgs>(args: SelectSubset<T, OrganizationAgentSettingsFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OrganizationAgentSettingsClient<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OrganizationAgentSettings 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 {OrganizationAgentSettingsFindFirstArgs} args - Arguments to find a OrganizationAgentSettings
     * @example
     * // Get one OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OrganizationAgentSettingsFindFirstArgs>(args?: SelectSubset<T, OrganizationAgentSettingsFindFirstArgs<ExtArgs>>): Prisma__OrganizationAgentSettingsClient<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OrganizationAgentSettings 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 {OrganizationAgentSettingsFindFirstOrThrowArgs} args - Arguments to find a OrganizationAgentSettings
     * @example
     * // Get one OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OrganizationAgentSettingsFindFirstOrThrowArgs>(args?: SelectSubset<T, OrganizationAgentSettingsFindFirstOrThrowArgs<ExtArgs>>): Prisma__OrganizationAgentSettingsClient<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OrganizationAgentSettings 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 {OrganizationAgentSettingsFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.findMany()
     * 
     * // Get first 10 OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const organizationAgentSettingsWithIdOnly = await prisma.organizationAgentSettings.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OrganizationAgentSettingsFindManyArgs>(args?: SelectSubset<T, OrganizationAgentSettingsFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OrganizationAgentSettings.
     * @param {OrganizationAgentSettingsCreateArgs} args - Arguments to create a OrganizationAgentSettings.
     * @example
     * // Create one OrganizationAgentSettings
     * const OrganizationAgentSettings = await prisma.organizationAgentSettings.create({
     *   data: {
     *     // ... data to create a OrganizationAgentSettings
     *   }
     * })
     * 
     */
    create<T extends OrganizationAgentSettingsCreateArgs>(args: SelectSubset<T, OrganizationAgentSettingsCreateArgs<ExtArgs>>): Prisma__OrganizationAgentSettingsClient<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OrganizationAgentSettings.
     * @param {OrganizationAgentSettingsCreateManyArgs} args - Arguments to create many OrganizationAgentSettings.
     * @example
     * // Create many OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OrganizationAgentSettingsCreateManyArgs>(args?: SelectSubset<T, OrganizationAgentSettingsCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OrganizationAgentSettings and returns the data saved in the database.
     * @param {OrganizationAgentSettingsCreateManyAndReturnArgs} args - Arguments to create many OrganizationAgentSettings.
     * @example
     * // Create many OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OrganizationAgentSettings and only return the `id`
     * const organizationAgentSettingsWithIdOnly = await prisma.organizationAgentSettings.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 OrganizationAgentSettingsCreateManyAndReturnArgs>(args?: SelectSubset<T, OrganizationAgentSettingsCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OrganizationAgentSettings.
     * @param {OrganizationAgentSettingsDeleteArgs} args - Arguments to delete one OrganizationAgentSettings.
     * @example
     * // Delete one OrganizationAgentSettings
     * const OrganizationAgentSettings = await prisma.organizationAgentSettings.delete({
     *   where: {
     *     // ... filter to delete one OrganizationAgentSettings
     *   }
     * })
     * 
     */
    delete<T extends OrganizationAgentSettingsDeleteArgs>(args: SelectSubset<T, OrganizationAgentSettingsDeleteArgs<ExtArgs>>): Prisma__OrganizationAgentSettingsClient<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OrganizationAgentSettings.
     * @param {OrganizationAgentSettingsUpdateArgs} args - Arguments to update one OrganizationAgentSettings.
     * @example
     * // Update one OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OrganizationAgentSettingsUpdateArgs>(args: SelectSubset<T, OrganizationAgentSettingsUpdateArgs<ExtArgs>>): Prisma__OrganizationAgentSettingsClient<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OrganizationAgentSettings.
     * @param {OrganizationAgentSettingsDeleteManyArgs} args - Arguments to filter OrganizationAgentSettings to delete.
     * @example
     * // Delete a few OrganizationAgentSettings
     * const { count } = await prisma.organizationAgentSettings.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OrganizationAgentSettingsDeleteManyArgs>(args?: SelectSubset<T, OrganizationAgentSettingsDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OrganizationAgentSettings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationAgentSettingsUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OrganizationAgentSettingsUpdateManyArgs>(args: SelectSubset<T, OrganizationAgentSettingsUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OrganizationAgentSettings and returns the data updated in the database.
     * @param {OrganizationAgentSettingsUpdateManyAndReturnArgs} args - Arguments to update many OrganizationAgentSettings.
     * @example
     * // Update many OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OrganizationAgentSettings and only return the `id`
     * const organizationAgentSettingsWithIdOnly = await prisma.organizationAgentSettings.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 OrganizationAgentSettingsUpdateManyAndReturnArgs>(args: SelectSubset<T, OrganizationAgentSettingsUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OrganizationAgentSettings.
     * @param {OrganizationAgentSettingsUpsertArgs} args - Arguments to update or create a OrganizationAgentSettings.
     * @example
     * // Update or create a OrganizationAgentSettings
     * const organizationAgentSettings = await prisma.organizationAgentSettings.upsert({
     *   create: {
     *     // ... data to create a OrganizationAgentSettings
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OrganizationAgentSettings we want to update
     *   }
     * })
     */
    upsert<T extends OrganizationAgentSettingsUpsertArgs>(args: SelectSubset<T, OrganizationAgentSettingsUpsertArgs<ExtArgs>>): Prisma__OrganizationAgentSettingsClient<$Result.GetResult<Prisma.$OrganizationAgentSettingsPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OrganizationAgentSettings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationAgentSettingsCountArgs} args - Arguments to filter OrganizationAgentSettings to count.
     * @example
     * // Count the number of OrganizationAgentSettings
     * const count = await prisma.organizationAgentSettings.count({
     *   where: {
     *     // ... the filter for the OrganizationAgentSettings we want to count
     *   }
     * })
    **/
    count<T extends OrganizationAgentSettingsCountArgs>(
      args?: Subset<T, OrganizationAgentSettingsCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OrganizationAgentSettingsCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OrganizationAgentSettings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationAgentSettingsAggregateArgs} 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 OrganizationAgentSettingsAggregateArgs>(args: Subset<T, OrganizationAgentSettingsAggregateArgs>): Prisma.PrismaPromise<GetOrganizationAgentSettingsAggregateType<T>>

    /**
     * Group by OrganizationAgentSettings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OrganizationAgentSettingsGroupByArgs} 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 OrganizationAgentSettingsGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OrganizationAgentSettingsGroupByArgs['orderBy'] }
        : { orderBy?: OrganizationAgentSettingsGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OrganizationAgentSettingsGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOrganizationAgentSettingsGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OrganizationAgentSettings model
   */
  readonly fields: OrganizationAgentSettingsFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OrganizationAgentSettings.
   * 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__OrganizationAgentSettingsClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OrganizationAgentSettings model
   */
  interface OrganizationAgentSettingsFieldRefs {
    readonly id: FieldRef<"OrganizationAgentSettings", 'String'>
    readonly organizationId: FieldRef<"OrganizationAgentSettings", 'String'>
    readonly defaultPlanMode: FieldRef<"OrganizationAgentSettings", 'AgentPlanMode'>
    readonly defaultPermissionMode: FieldRef<"OrganizationAgentSettings", 'AgentPermissionMode'>
    readonly disabledCapabilities: FieldRef<"OrganizationAgentSettings", 'String[]'>
    readonly allowedCliTools: FieldRef<"OrganizationAgentSettings", 'String[]'>
    readonly allowedPermissionModes: FieldRef<"OrganizationAgentSettings", 'String[]'>
    readonly createdById: FieldRef<"OrganizationAgentSettings", 'String'>
    readonly createdAt: FieldRef<"OrganizationAgentSettings", 'DateTime'>
    readonly updatedAt: FieldRef<"OrganizationAgentSettings", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OrganizationAgentSettings findUnique
   */
  export type OrganizationAgentSettingsFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * Filter, which OrganizationAgentSettings to fetch.
     */
    where: OrganizationAgentSettingsWhereUniqueInput
  }

  /**
   * OrganizationAgentSettings findUniqueOrThrow
   */
  export type OrganizationAgentSettingsFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * Filter, which OrganizationAgentSettings to fetch.
     */
    where: OrganizationAgentSettingsWhereUniqueInput
  }

  /**
   * OrganizationAgentSettings findFirst
   */
  export type OrganizationAgentSettingsFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * Filter, which OrganizationAgentSettings to fetch.
     */
    where?: OrganizationAgentSettingsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OrganizationAgentSettings to fetch.
     */
    orderBy?: OrganizationAgentSettingsOrderByWithRelationInput | OrganizationAgentSettingsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OrganizationAgentSettings.
     */
    cursor?: OrganizationAgentSettingsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OrganizationAgentSettings 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` OrganizationAgentSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OrganizationAgentSettings.
     */
    distinct?: OrganizationAgentSettingsScalarFieldEnum | OrganizationAgentSettingsScalarFieldEnum[]
  }

  /**
   * OrganizationAgentSettings findFirstOrThrow
   */
  export type OrganizationAgentSettingsFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * Filter, which OrganizationAgentSettings to fetch.
     */
    where?: OrganizationAgentSettingsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OrganizationAgentSettings to fetch.
     */
    orderBy?: OrganizationAgentSettingsOrderByWithRelationInput | OrganizationAgentSettingsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OrganizationAgentSettings.
     */
    cursor?: OrganizationAgentSettingsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OrganizationAgentSettings 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` OrganizationAgentSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OrganizationAgentSettings.
     */
    distinct?: OrganizationAgentSettingsScalarFieldEnum | OrganizationAgentSettingsScalarFieldEnum[]
  }

  /**
   * OrganizationAgentSettings findMany
   */
  export type OrganizationAgentSettingsFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * Filter, which OrganizationAgentSettings to fetch.
     */
    where?: OrganizationAgentSettingsWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OrganizationAgentSettings to fetch.
     */
    orderBy?: OrganizationAgentSettingsOrderByWithRelationInput | OrganizationAgentSettingsOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OrganizationAgentSettings.
     */
    cursor?: OrganizationAgentSettingsWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OrganizationAgentSettings 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` OrganizationAgentSettings.
     */
    skip?: number
    distinct?: OrganizationAgentSettingsScalarFieldEnum | OrganizationAgentSettingsScalarFieldEnum[]
  }

  /**
   * OrganizationAgentSettings create
   */
  export type OrganizationAgentSettingsCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * The data needed to create a OrganizationAgentSettings.
     */
    data: XOR<OrganizationAgentSettingsCreateInput, OrganizationAgentSettingsUncheckedCreateInput>
  }

  /**
   * OrganizationAgentSettings createMany
   */
  export type OrganizationAgentSettingsCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OrganizationAgentSettings.
     */
    data: OrganizationAgentSettingsCreateManyInput | OrganizationAgentSettingsCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OrganizationAgentSettings createManyAndReturn
   */
  export type OrganizationAgentSettingsCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * The data used to create many OrganizationAgentSettings.
     */
    data: OrganizationAgentSettingsCreateManyInput | OrganizationAgentSettingsCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OrganizationAgentSettings update
   */
  export type OrganizationAgentSettingsUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * The data needed to update a OrganizationAgentSettings.
     */
    data: XOR<OrganizationAgentSettingsUpdateInput, OrganizationAgentSettingsUncheckedUpdateInput>
    /**
     * Choose, which OrganizationAgentSettings to update.
     */
    where: OrganizationAgentSettingsWhereUniqueInput
  }

  /**
   * OrganizationAgentSettings updateMany
   */
  export type OrganizationAgentSettingsUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OrganizationAgentSettings.
     */
    data: XOR<OrganizationAgentSettingsUpdateManyMutationInput, OrganizationAgentSettingsUncheckedUpdateManyInput>
    /**
     * Filter which OrganizationAgentSettings to update
     */
    where?: OrganizationAgentSettingsWhereInput
    /**
     * Limit how many OrganizationAgentSettings to update.
     */
    limit?: number
  }

  /**
   * OrganizationAgentSettings updateManyAndReturn
   */
  export type OrganizationAgentSettingsUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * The data used to update OrganizationAgentSettings.
     */
    data: XOR<OrganizationAgentSettingsUpdateManyMutationInput, OrganizationAgentSettingsUncheckedUpdateManyInput>
    /**
     * Filter which OrganizationAgentSettings to update
     */
    where?: OrganizationAgentSettingsWhereInput
    /**
     * Limit how many OrganizationAgentSettings to update.
     */
    limit?: number
  }

  /**
   * OrganizationAgentSettings upsert
   */
  export type OrganizationAgentSettingsUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * The filter to search for the OrganizationAgentSettings to update in case it exists.
     */
    where: OrganizationAgentSettingsWhereUniqueInput
    /**
     * In case the OrganizationAgentSettings found by the `where` argument doesn't exist, create a new OrganizationAgentSettings with this data.
     */
    create: XOR<OrganizationAgentSettingsCreateInput, OrganizationAgentSettingsUncheckedCreateInput>
    /**
     * In case the OrganizationAgentSettings was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OrganizationAgentSettingsUpdateInput, OrganizationAgentSettingsUncheckedUpdateInput>
  }

  /**
   * OrganizationAgentSettings delete
   */
  export type OrganizationAgentSettingsDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
    /**
     * Filter which OrganizationAgentSettings to delete.
     */
    where: OrganizationAgentSettingsWhereUniqueInput
  }

  /**
   * OrganizationAgentSettings deleteMany
   */
  export type OrganizationAgentSettingsDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OrganizationAgentSettings to delete
     */
    where?: OrganizationAgentSettingsWhereInput
    /**
     * Limit how many OrganizationAgentSettings to delete.
     */
    limit?: number
  }

  /**
   * OrganizationAgentSettings without action
   */
  export type OrganizationAgentSettingsDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OrganizationAgentSettings
     */
    select?: OrganizationAgentSettingsSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OrganizationAgentSettings
     */
    omit?: OrganizationAgentSettingsOmit<ExtArgs> | null
  }


  /**
   * Model AgentArtifact
   */

  export type AggregateAgentArtifact = {
    _count: AgentArtifactCountAggregateOutputType | null
    _avg: AgentArtifactAvgAggregateOutputType | null
    _sum: AgentArtifactSumAggregateOutputType | null
    _min: AgentArtifactMinAggregateOutputType | null
    _max: AgentArtifactMaxAggregateOutputType | null
  }

  export type AgentArtifactAvgAggregateOutputType = {
    sizeBytes: number | null
  }

  export type AgentArtifactSumAggregateOutputType = {
    sizeBytes: number | null
  }

  export type AgentArtifactMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    turnId: string | null
    createdById: string | null
    type: $Enums.AgentArtifactType | null
    title: string | null
    previewUrl: string | null
    mimeType: string | null
    sizeBytes: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentArtifactMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    turnId: string | null
    createdById: string | null
    type: $Enums.AgentArtifactType | null
    title: string | null
    previewUrl: string | null
    mimeType: string | null
    sizeBytes: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentArtifactCountAggregateOutputType = {
    id: number
    organizationId: number
    sessionId: number
    turnId: number
    createdById: number
    type: number
    title: number
    data: number
    previewUrl: number
    mimeType: number
    sizeBytes: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentArtifactAvgAggregateInputType = {
    sizeBytes?: true
  }

  export type AgentArtifactSumAggregateInputType = {
    sizeBytes?: true
  }

  export type AgentArtifactMinAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    createdById?: true
    type?: true
    title?: true
    previewUrl?: true
    mimeType?: true
    sizeBytes?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentArtifactMaxAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    createdById?: true
    type?: true
    title?: true
    previewUrl?: true
    mimeType?: true
    sizeBytes?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentArtifactCountAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    turnId?: true
    createdById?: true
    type?: true
    title?: true
    data?: true
    previewUrl?: true
    mimeType?: true
    sizeBytes?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentArtifactAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentArtifact to aggregate.
     */
    where?: AgentArtifactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentArtifacts to fetch.
     */
    orderBy?: AgentArtifactOrderByWithRelationInput | AgentArtifactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentArtifactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentArtifacts 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` AgentArtifacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentArtifacts
    **/
    _count?: true | AgentArtifactCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentArtifactAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentArtifactSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentArtifactMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentArtifactMaxAggregateInputType
  }

  export type GetAgentArtifactAggregateType<T extends AgentArtifactAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentArtifact]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentArtifact[P]>
      : GetScalarType<T[P], AggregateAgentArtifact[P]>
  }




  export type AgentArtifactGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentArtifactWhereInput
    orderBy?: AgentArtifactOrderByWithAggregationInput | AgentArtifactOrderByWithAggregationInput[]
    by: AgentArtifactScalarFieldEnum[] | AgentArtifactScalarFieldEnum
    having?: AgentArtifactScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentArtifactCountAggregateInputType | true
    _avg?: AgentArtifactAvgAggregateInputType
    _sum?: AgentArtifactSumAggregateInputType
    _min?: AgentArtifactMinAggregateInputType
    _max?: AgentArtifactMaxAggregateInputType
  }

  export type AgentArtifactGroupByOutputType = {
    id: string
    organizationId: string
    sessionId: string
    turnId: string | null
    createdById: string
    type: $Enums.AgentArtifactType
    title: string
    data: JsonValue
    previewUrl: string | null
    mimeType: string | null
    sizeBytes: number | null
    createdAt: Date
    updatedAt: Date
    _count: AgentArtifactCountAggregateOutputType | null
    _avg: AgentArtifactAvgAggregateOutputType | null
    _sum: AgentArtifactSumAggregateOutputType | null
    _min: AgentArtifactMinAggregateOutputType | null
    _max: AgentArtifactMaxAggregateOutputType | null
  }

  type GetAgentArtifactGroupByPayload<T extends AgentArtifactGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentArtifactGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentArtifactGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentArtifactGroupByOutputType[P]>
            : GetScalarType<T[P], AgentArtifactGroupByOutputType[P]>
        }
      >
    >


  export type AgentArtifactSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    createdById?: boolean
    type?: boolean
    title?: boolean
    data?: boolean
    previewUrl?: boolean
    mimeType?: boolean
    sizeBytes?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentArtifact"]>

  export type AgentArtifactSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    createdById?: boolean
    type?: boolean
    title?: boolean
    data?: boolean
    previewUrl?: boolean
    mimeType?: boolean
    sizeBytes?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentArtifact"]>

  export type AgentArtifactSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    createdById?: boolean
    type?: boolean
    title?: boolean
    data?: boolean
    previewUrl?: boolean
    mimeType?: boolean
    sizeBytes?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentArtifact"]>

  export type AgentArtifactSelectScalar = {
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    turnId?: boolean
    createdById?: boolean
    type?: boolean
    title?: boolean
    data?: boolean
    previewUrl?: boolean
    mimeType?: boolean
    sizeBytes?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentArtifactOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "sessionId" | "turnId" | "createdById" | "type" | "title" | "data" | "previewUrl" | "mimeType" | "sizeBytes" | "createdAt" | "updatedAt", ExtArgs["result"]["agentArtifact"]>

  export type $AgentArtifactPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentArtifact"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      sessionId: string
      turnId: string | null
      createdById: string
      type: $Enums.AgentArtifactType
      title: string
      data: Prisma.JsonValue
      previewUrl: string | null
      mimeType: string | null
      sizeBytes: number | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentArtifact"]>
    composites: {}
  }

  type AgentArtifactGetPayload<S extends boolean | null | undefined | AgentArtifactDefaultArgs> = $Result.GetResult<Prisma.$AgentArtifactPayload, S>

  type AgentArtifactCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentArtifactFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentArtifactCountAggregateInputType | true
    }

  export interface AgentArtifactDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentArtifact'], meta: { name: 'AgentArtifact' } }
    /**
     * Find zero or one AgentArtifact that matches the filter.
     * @param {AgentArtifactFindUniqueArgs} args - Arguments to find a AgentArtifact
     * @example
     * // Get one AgentArtifact
     * const agentArtifact = await prisma.agentArtifact.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentArtifactFindUniqueArgs>(args: SelectSubset<T, AgentArtifactFindUniqueArgs<ExtArgs>>): Prisma__AgentArtifactClient<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentArtifact that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentArtifactFindUniqueOrThrowArgs} args - Arguments to find a AgentArtifact
     * @example
     * // Get one AgentArtifact
     * const agentArtifact = await prisma.agentArtifact.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentArtifactFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentArtifactFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentArtifactClient<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentArtifact 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 {AgentArtifactFindFirstArgs} args - Arguments to find a AgentArtifact
     * @example
     * // Get one AgentArtifact
     * const agentArtifact = await prisma.agentArtifact.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentArtifactFindFirstArgs>(args?: SelectSubset<T, AgentArtifactFindFirstArgs<ExtArgs>>): Prisma__AgentArtifactClient<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentArtifact 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 {AgentArtifactFindFirstOrThrowArgs} args - Arguments to find a AgentArtifact
     * @example
     * // Get one AgentArtifact
     * const agentArtifact = await prisma.agentArtifact.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentArtifactFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentArtifactFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentArtifactClient<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentArtifacts 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 {AgentArtifactFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentArtifacts
     * const agentArtifacts = await prisma.agentArtifact.findMany()
     * 
     * // Get first 10 AgentArtifacts
     * const agentArtifacts = await prisma.agentArtifact.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentArtifactWithIdOnly = await prisma.agentArtifact.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentArtifactFindManyArgs>(args?: SelectSubset<T, AgentArtifactFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentArtifact.
     * @param {AgentArtifactCreateArgs} args - Arguments to create a AgentArtifact.
     * @example
     * // Create one AgentArtifact
     * const AgentArtifact = await prisma.agentArtifact.create({
     *   data: {
     *     // ... data to create a AgentArtifact
     *   }
     * })
     * 
     */
    create<T extends AgentArtifactCreateArgs>(args: SelectSubset<T, AgentArtifactCreateArgs<ExtArgs>>): Prisma__AgentArtifactClient<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentArtifacts.
     * @param {AgentArtifactCreateManyArgs} args - Arguments to create many AgentArtifacts.
     * @example
     * // Create many AgentArtifacts
     * const agentArtifact = await prisma.agentArtifact.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentArtifactCreateManyArgs>(args?: SelectSubset<T, AgentArtifactCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentArtifacts and returns the data saved in the database.
     * @param {AgentArtifactCreateManyAndReturnArgs} args - Arguments to create many AgentArtifacts.
     * @example
     * // Create many AgentArtifacts
     * const agentArtifact = await prisma.agentArtifact.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentArtifacts and only return the `id`
     * const agentArtifactWithIdOnly = await prisma.agentArtifact.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 AgentArtifactCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentArtifactCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentArtifact.
     * @param {AgentArtifactDeleteArgs} args - Arguments to delete one AgentArtifact.
     * @example
     * // Delete one AgentArtifact
     * const AgentArtifact = await prisma.agentArtifact.delete({
     *   where: {
     *     // ... filter to delete one AgentArtifact
     *   }
     * })
     * 
     */
    delete<T extends AgentArtifactDeleteArgs>(args: SelectSubset<T, AgentArtifactDeleteArgs<ExtArgs>>): Prisma__AgentArtifactClient<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentArtifact.
     * @param {AgentArtifactUpdateArgs} args - Arguments to update one AgentArtifact.
     * @example
     * // Update one AgentArtifact
     * const agentArtifact = await prisma.agentArtifact.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentArtifactUpdateArgs>(args: SelectSubset<T, AgentArtifactUpdateArgs<ExtArgs>>): Prisma__AgentArtifactClient<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentArtifacts.
     * @param {AgentArtifactDeleteManyArgs} args - Arguments to filter AgentArtifacts to delete.
     * @example
     * // Delete a few AgentArtifacts
     * const { count } = await prisma.agentArtifact.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentArtifactDeleteManyArgs>(args?: SelectSubset<T, AgentArtifactDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentArtifacts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentArtifactUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentArtifacts
     * const agentArtifact = await prisma.agentArtifact.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentArtifactUpdateManyArgs>(args: SelectSubset<T, AgentArtifactUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentArtifacts and returns the data updated in the database.
     * @param {AgentArtifactUpdateManyAndReturnArgs} args - Arguments to update many AgentArtifacts.
     * @example
     * // Update many AgentArtifacts
     * const agentArtifact = await prisma.agentArtifact.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentArtifacts and only return the `id`
     * const agentArtifactWithIdOnly = await prisma.agentArtifact.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 AgentArtifactUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentArtifactUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentArtifact.
     * @param {AgentArtifactUpsertArgs} args - Arguments to update or create a AgentArtifact.
     * @example
     * // Update or create a AgentArtifact
     * const agentArtifact = await prisma.agentArtifact.upsert({
     *   create: {
     *     // ... data to create a AgentArtifact
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentArtifact we want to update
     *   }
     * })
     */
    upsert<T extends AgentArtifactUpsertArgs>(args: SelectSubset<T, AgentArtifactUpsertArgs<ExtArgs>>): Prisma__AgentArtifactClient<$Result.GetResult<Prisma.$AgentArtifactPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentArtifacts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentArtifactCountArgs} args - Arguments to filter AgentArtifacts to count.
     * @example
     * // Count the number of AgentArtifacts
     * const count = await prisma.agentArtifact.count({
     *   where: {
     *     // ... the filter for the AgentArtifacts we want to count
     *   }
     * })
    **/
    count<T extends AgentArtifactCountArgs>(
      args?: Subset<T, AgentArtifactCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentArtifactCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentArtifact.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentArtifactAggregateArgs} 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 AgentArtifactAggregateArgs>(args: Subset<T, AgentArtifactAggregateArgs>): Prisma.PrismaPromise<GetAgentArtifactAggregateType<T>>

    /**
     * Group by AgentArtifact.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentArtifactGroupByArgs} 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 AgentArtifactGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentArtifactGroupByArgs['orderBy'] }
        : { orderBy?: AgentArtifactGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentArtifactGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentArtifactGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentArtifact model
   */
  readonly fields: AgentArtifactFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentArtifact.
   * 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__AgentArtifactClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentArtifact model
   */
  interface AgentArtifactFieldRefs {
    readonly id: FieldRef<"AgentArtifact", 'String'>
    readonly organizationId: FieldRef<"AgentArtifact", 'String'>
    readonly sessionId: FieldRef<"AgentArtifact", 'String'>
    readonly turnId: FieldRef<"AgentArtifact", 'String'>
    readonly createdById: FieldRef<"AgentArtifact", 'String'>
    readonly type: FieldRef<"AgentArtifact", 'AgentArtifactType'>
    readonly title: FieldRef<"AgentArtifact", 'String'>
    readonly data: FieldRef<"AgentArtifact", 'Json'>
    readonly previewUrl: FieldRef<"AgentArtifact", 'String'>
    readonly mimeType: FieldRef<"AgentArtifact", 'String'>
    readonly sizeBytes: FieldRef<"AgentArtifact", 'Int'>
    readonly createdAt: FieldRef<"AgentArtifact", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentArtifact", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentArtifact findUnique
   */
  export type AgentArtifactFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * Filter, which AgentArtifact to fetch.
     */
    where: AgentArtifactWhereUniqueInput
  }

  /**
   * AgentArtifact findUniqueOrThrow
   */
  export type AgentArtifactFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * Filter, which AgentArtifact to fetch.
     */
    where: AgentArtifactWhereUniqueInput
  }

  /**
   * AgentArtifact findFirst
   */
  export type AgentArtifactFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * Filter, which AgentArtifact to fetch.
     */
    where?: AgentArtifactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentArtifacts to fetch.
     */
    orderBy?: AgentArtifactOrderByWithRelationInput | AgentArtifactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentArtifacts.
     */
    cursor?: AgentArtifactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentArtifacts 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` AgentArtifacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentArtifacts.
     */
    distinct?: AgentArtifactScalarFieldEnum | AgentArtifactScalarFieldEnum[]
  }

  /**
   * AgentArtifact findFirstOrThrow
   */
  export type AgentArtifactFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * Filter, which AgentArtifact to fetch.
     */
    where?: AgentArtifactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentArtifacts to fetch.
     */
    orderBy?: AgentArtifactOrderByWithRelationInput | AgentArtifactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentArtifacts.
     */
    cursor?: AgentArtifactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentArtifacts 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` AgentArtifacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentArtifacts.
     */
    distinct?: AgentArtifactScalarFieldEnum | AgentArtifactScalarFieldEnum[]
  }

  /**
   * AgentArtifact findMany
   */
  export type AgentArtifactFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * Filter, which AgentArtifacts to fetch.
     */
    where?: AgentArtifactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentArtifacts to fetch.
     */
    orderBy?: AgentArtifactOrderByWithRelationInput | AgentArtifactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentArtifacts.
     */
    cursor?: AgentArtifactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentArtifacts 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` AgentArtifacts.
     */
    skip?: number
    distinct?: AgentArtifactScalarFieldEnum | AgentArtifactScalarFieldEnum[]
  }

  /**
   * AgentArtifact create
   */
  export type AgentArtifactCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * The data needed to create a AgentArtifact.
     */
    data: XOR<AgentArtifactCreateInput, AgentArtifactUncheckedCreateInput>
  }

  /**
   * AgentArtifact createMany
   */
  export type AgentArtifactCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentArtifacts.
     */
    data: AgentArtifactCreateManyInput | AgentArtifactCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentArtifact createManyAndReturn
   */
  export type AgentArtifactCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * The data used to create many AgentArtifacts.
     */
    data: AgentArtifactCreateManyInput | AgentArtifactCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentArtifact update
   */
  export type AgentArtifactUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * The data needed to update a AgentArtifact.
     */
    data: XOR<AgentArtifactUpdateInput, AgentArtifactUncheckedUpdateInput>
    /**
     * Choose, which AgentArtifact to update.
     */
    where: AgentArtifactWhereUniqueInput
  }

  /**
   * AgentArtifact updateMany
   */
  export type AgentArtifactUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentArtifacts.
     */
    data: XOR<AgentArtifactUpdateManyMutationInput, AgentArtifactUncheckedUpdateManyInput>
    /**
     * Filter which AgentArtifacts to update
     */
    where?: AgentArtifactWhereInput
    /**
     * Limit how many AgentArtifacts to update.
     */
    limit?: number
  }

  /**
   * AgentArtifact updateManyAndReturn
   */
  export type AgentArtifactUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * The data used to update AgentArtifacts.
     */
    data: XOR<AgentArtifactUpdateManyMutationInput, AgentArtifactUncheckedUpdateManyInput>
    /**
     * Filter which AgentArtifacts to update
     */
    where?: AgentArtifactWhereInput
    /**
     * Limit how many AgentArtifacts to update.
     */
    limit?: number
  }

  /**
   * AgentArtifact upsert
   */
  export type AgentArtifactUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * The filter to search for the AgentArtifact to update in case it exists.
     */
    where: AgentArtifactWhereUniqueInput
    /**
     * In case the AgentArtifact found by the `where` argument doesn't exist, create a new AgentArtifact with this data.
     */
    create: XOR<AgentArtifactCreateInput, AgentArtifactUncheckedCreateInput>
    /**
     * In case the AgentArtifact was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentArtifactUpdateInput, AgentArtifactUncheckedUpdateInput>
  }

  /**
   * AgentArtifact delete
   */
  export type AgentArtifactDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
    /**
     * Filter which AgentArtifact to delete.
     */
    where: AgentArtifactWhereUniqueInput
  }

  /**
   * AgentArtifact deleteMany
   */
  export type AgentArtifactDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentArtifacts to delete
     */
    where?: AgentArtifactWhereInput
    /**
     * Limit how many AgentArtifacts to delete.
     */
    limit?: number
  }

  /**
   * AgentArtifact without action
   */
  export type AgentArtifactDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentArtifact
     */
    select?: AgentArtifactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentArtifact
     */
    omit?: AgentArtifactOmit<ExtArgs> | null
  }


  /**
   * Model AgentTaskTracker
   */

  export type AggregateAgentTaskTracker = {
    _count: AgentTaskTrackerCountAggregateOutputType | null
    _avg: AgentTaskTrackerAvgAggregateOutputType | null
    _sum: AgentTaskTrackerSumAggregateOutputType | null
    _min: AgentTaskTrackerMinAggregateOutputType | null
    _max: AgentTaskTrackerMaxAggregateOutputType | null
  }

  export type AgentTaskTrackerAvgAggregateOutputType = {
    progress: number | null
  }

  export type AgentTaskTrackerSumAggregateOutputType = {
    progress: number | null
  }

  export type AgentTaskTrackerMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    parentTaskId: string | null
    title: string | null
    description: string | null
    status: $Enums.AgentTaskStatus | null
    progress: number | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentTaskTrackerMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    parentTaskId: string | null
    title: string | null
    description: string | null
    status: $Enums.AgentTaskStatus | null
    progress: number | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentTaskTrackerCountAggregateOutputType = {
    id: number
    organizationId: number
    sessionId: number
    parentTaskId: number
    title: number
    description: number
    status: number
    progress: number
    metadata: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentTaskTrackerAvgAggregateInputType = {
    progress?: true
  }

  export type AgentTaskTrackerSumAggregateInputType = {
    progress?: true
  }

  export type AgentTaskTrackerMinAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    parentTaskId?: true
    title?: true
    description?: true
    status?: true
    progress?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentTaskTrackerMaxAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    parentTaskId?: true
    title?: true
    description?: true
    status?: true
    progress?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentTaskTrackerCountAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    parentTaskId?: true
    title?: true
    description?: true
    status?: true
    progress?: true
    metadata?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentTaskTrackerAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentTaskTracker to aggregate.
     */
    where?: AgentTaskTrackerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentTaskTrackers to fetch.
     */
    orderBy?: AgentTaskTrackerOrderByWithRelationInput | AgentTaskTrackerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentTaskTrackerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentTaskTrackers 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` AgentTaskTrackers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentTaskTrackers
    **/
    _count?: true | AgentTaskTrackerCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentTaskTrackerAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentTaskTrackerSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentTaskTrackerMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentTaskTrackerMaxAggregateInputType
  }

  export type GetAgentTaskTrackerAggregateType<T extends AgentTaskTrackerAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentTaskTracker]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentTaskTracker[P]>
      : GetScalarType<T[P], AggregateAgentTaskTracker[P]>
  }




  export type AgentTaskTrackerGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentTaskTrackerWhereInput
    orderBy?: AgentTaskTrackerOrderByWithAggregationInput | AgentTaskTrackerOrderByWithAggregationInput[]
    by: AgentTaskTrackerScalarFieldEnum[] | AgentTaskTrackerScalarFieldEnum
    having?: AgentTaskTrackerScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentTaskTrackerCountAggregateInputType | true
    _avg?: AgentTaskTrackerAvgAggregateInputType
    _sum?: AgentTaskTrackerSumAggregateInputType
    _min?: AgentTaskTrackerMinAggregateInputType
    _max?: AgentTaskTrackerMaxAggregateInputType
  }

  export type AgentTaskTrackerGroupByOutputType = {
    id: string
    organizationId: string
    sessionId: string
    parentTaskId: string | null
    title: string
    description: string | null
    status: $Enums.AgentTaskStatus
    progress: number
    metadata: JsonValue | null
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: AgentTaskTrackerCountAggregateOutputType | null
    _avg: AgentTaskTrackerAvgAggregateOutputType | null
    _sum: AgentTaskTrackerSumAggregateOutputType | null
    _min: AgentTaskTrackerMinAggregateOutputType | null
    _max: AgentTaskTrackerMaxAggregateOutputType | null
  }

  type GetAgentTaskTrackerGroupByPayload<T extends AgentTaskTrackerGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentTaskTrackerGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentTaskTrackerGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentTaskTrackerGroupByOutputType[P]>
            : GetScalarType<T[P], AgentTaskTrackerGroupByOutputType[P]>
        }
      >
    >


  export type AgentTaskTrackerSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    parentTaskId?: boolean
    title?: boolean
    description?: boolean
    status?: boolean
    progress?: boolean
    metadata?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentTaskTracker"]>

  export type AgentTaskTrackerSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    parentTaskId?: boolean
    title?: boolean
    description?: boolean
    status?: boolean
    progress?: boolean
    metadata?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentTaskTracker"]>

  export type AgentTaskTrackerSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    parentTaskId?: boolean
    title?: boolean
    description?: boolean
    status?: boolean
    progress?: boolean
    metadata?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentTaskTracker"]>

  export type AgentTaskTrackerSelectScalar = {
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    parentTaskId?: boolean
    title?: boolean
    description?: boolean
    status?: boolean
    progress?: boolean
    metadata?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentTaskTrackerOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "sessionId" | "parentTaskId" | "title" | "description" | "status" | "progress" | "metadata" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["agentTaskTracker"]>

  export type $AgentTaskTrackerPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentTaskTracker"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      sessionId: string
      parentTaskId: string | null
      title: string
      description: string | null
      status: $Enums.AgentTaskStatus
      progress: number
      metadata: Prisma.JsonValue | null
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentTaskTracker"]>
    composites: {}
  }

  type AgentTaskTrackerGetPayload<S extends boolean | null | undefined | AgentTaskTrackerDefaultArgs> = $Result.GetResult<Prisma.$AgentTaskTrackerPayload, S>

  type AgentTaskTrackerCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentTaskTrackerFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentTaskTrackerCountAggregateInputType | true
    }

  export interface AgentTaskTrackerDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentTaskTracker'], meta: { name: 'AgentTaskTracker' } }
    /**
     * Find zero or one AgentTaskTracker that matches the filter.
     * @param {AgentTaskTrackerFindUniqueArgs} args - Arguments to find a AgentTaskTracker
     * @example
     * // Get one AgentTaskTracker
     * const agentTaskTracker = await prisma.agentTaskTracker.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentTaskTrackerFindUniqueArgs>(args: SelectSubset<T, AgentTaskTrackerFindUniqueArgs<ExtArgs>>): Prisma__AgentTaskTrackerClient<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentTaskTracker that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentTaskTrackerFindUniqueOrThrowArgs} args - Arguments to find a AgentTaskTracker
     * @example
     * // Get one AgentTaskTracker
     * const agentTaskTracker = await prisma.agentTaskTracker.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentTaskTrackerFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentTaskTrackerFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentTaskTrackerClient<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentTaskTracker 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 {AgentTaskTrackerFindFirstArgs} args - Arguments to find a AgentTaskTracker
     * @example
     * // Get one AgentTaskTracker
     * const agentTaskTracker = await prisma.agentTaskTracker.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentTaskTrackerFindFirstArgs>(args?: SelectSubset<T, AgentTaskTrackerFindFirstArgs<ExtArgs>>): Prisma__AgentTaskTrackerClient<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentTaskTracker 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 {AgentTaskTrackerFindFirstOrThrowArgs} args - Arguments to find a AgentTaskTracker
     * @example
     * // Get one AgentTaskTracker
     * const agentTaskTracker = await prisma.agentTaskTracker.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentTaskTrackerFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentTaskTrackerFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentTaskTrackerClient<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentTaskTrackers 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 {AgentTaskTrackerFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentTaskTrackers
     * const agentTaskTrackers = await prisma.agentTaskTracker.findMany()
     * 
     * // Get first 10 AgentTaskTrackers
     * const agentTaskTrackers = await prisma.agentTaskTracker.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentTaskTrackerWithIdOnly = await prisma.agentTaskTracker.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentTaskTrackerFindManyArgs>(args?: SelectSubset<T, AgentTaskTrackerFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentTaskTracker.
     * @param {AgentTaskTrackerCreateArgs} args - Arguments to create a AgentTaskTracker.
     * @example
     * // Create one AgentTaskTracker
     * const AgentTaskTracker = await prisma.agentTaskTracker.create({
     *   data: {
     *     // ... data to create a AgentTaskTracker
     *   }
     * })
     * 
     */
    create<T extends AgentTaskTrackerCreateArgs>(args: SelectSubset<T, AgentTaskTrackerCreateArgs<ExtArgs>>): Prisma__AgentTaskTrackerClient<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentTaskTrackers.
     * @param {AgentTaskTrackerCreateManyArgs} args - Arguments to create many AgentTaskTrackers.
     * @example
     * // Create many AgentTaskTrackers
     * const agentTaskTracker = await prisma.agentTaskTracker.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentTaskTrackerCreateManyArgs>(args?: SelectSubset<T, AgentTaskTrackerCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentTaskTrackers and returns the data saved in the database.
     * @param {AgentTaskTrackerCreateManyAndReturnArgs} args - Arguments to create many AgentTaskTrackers.
     * @example
     * // Create many AgentTaskTrackers
     * const agentTaskTracker = await prisma.agentTaskTracker.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentTaskTrackers and only return the `id`
     * const agentTaskTrackerWithIdOnly = await prisma.agentTaskTracker.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 AgentTaskTrackerCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentTaskTrackerCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentTaskTracker.
     * @param {AgentTaskTrackerDeleteArgs} args - Arguments to delete one AgentTaskTracker.
     * @example
     * // Delete one AgentTaskTracker
     * const AgentTaskTracker = await prisma.agentTaskTracker.delete({
     *   where: {
     *     // ... filter to delete one AgentTaskTracker
     *   }
     * })
     * 
     */
    delete<T extends AgentTaskTrackerDeleteArgs>(args: SelectSubset<T, AgentTaskTrackerDeleteArgs<ExtArgs>>): Prisma__AgentTaskTrackerClient<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentTaskTracker.
     * @param {AgentTaskTrackerUpdateArgs} args - Arguments to update one AgentTaskTracker.
     * @example
     * // Update one AgentTaskTracker
     * const agentTaskTracker = await prisma.agentTaskTracker.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentTaskTrackerUpdateArgs>(args: SelectSubset<T, AgentTaskTrackerUpdateArgs<ExtArgs>>): Prisma__AgentTaskTrackerClient<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentTaskTrackers.
     * @param {AgentTaskTrackerDeleteManyArgs} args - Arguments to filter AgentTaskTrackers to delete.
     * @example
     * // Delete a few AgentTaskTrackers
     * const { count } = await prisma.agentTaskTracker.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentTaskTrackerDeleteManyArgs>(args?: SelectSubset<T, AgentTaskTrackerDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentTaskTrackers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentTaskTrackerUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentTaskTrackers
     * const agentTaskTracker = await prisma.agentTaskTracker.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentTaskTrackerUpdateManyArgs>(args: SelectSubset<T, AgentTaskTrackerUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentTaskTrackers and returns the data updated in the database.
     * @param {AgentTaskTrackerUpdateManyAndReturnArgs} args - Arguments to update many AgentTaskTrackers.
     * @example
     * // Update many AgentTaskTrackers
     * const agentTaskTracker = await prisma.agentTaskTracker.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentTaskTrackers and only return the `id`
     * const agentTaskTrackerWithIdOnly = await prisma.agentTaskTracker.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 AgentTaskTrackerUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentTaskTrackerUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentTaskTracker.
     * @param {AgentTaskTrackerUpsertArgs} args - Arguments to update or create a AgentTaskTracker.
     * @example
     * // Update or create a AgentTaskTracker
     * const agentTaskTracker = await prisma.agentTaskTracker.upsert({
     *   create: {
     *     // ... data to create a AgentTaskTracker
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentTaskTracker we want to update
     *   }
     * })
     */
    upsert<T extends AgentTaskTrackerUpsertArgs>(args: SelectSubset<T, AgentTaskTrackerUpsertArgs<ExtArgs>>): Prisma__AgentTaskTrackerClient<$Result.GetResult<Prisma.$AgentTaskTrackerPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentTaskTrackers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentTaskTrackerCountArgs} args - Arguments to filter AgentTaskTrackers to count.
     * @example
     * // Count the number of AgentTaskTrackers
     * const count = await prisma.agentTaskTracker.count({
     *   where: {
     *     // ... the filter for the AgentTaskTrackers we want to count
     *   }
     * })
    **/
    count<T extends AgentTaskTrackerCountArgs>(
      args?: Subset<T, AgentTaskTrackerCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentTaskTrackerCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentTaskTracker.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentTaskTrackerAggregateArgs} 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 AgentTaskTrackerAggregateArgs>(args: Subset<T, AgentTaskTrackerAggregateArgs>): Prisma.PrismaPromise<GetAgentTaskTrackerAggregateType<T>>

    /**
     * Group by AgentTaskTracker.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentTaskTrackerGroupByArgs} 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 AgentTaskTrackerGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentTaskTrackerGroupByArgs['orderBy'] }
        : { orderBy?: AgentTaskTrackerGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentTaskTrackerGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentTaskTrackerGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentTaskTracker model
   */
  readonly fields: AgentTaskTrackerFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentTaskTracker.
   * 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__AgentTaskTrackerClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentTaskTracker model
   */
  interface AgentTaskTrackerFieldRefs {
    readonly id: FieldRef<"AgentTaskTracker", 'String'>
    readonly organizationId: FieldRef<"AgentTaskTracker", 'String'>
    readonly sessionId: FieldRef<"AgentTaskTracker", 'String'>
    readonly parentTaskId: FieldRef<"AgentTaskTracker", 'String'>
    readonly title: FieldRef<"AgentTaskTracker", 'String'>
    readonly description: FieldRef<"AgentTaskTracker", 'String'>
    readonly status: FieldRef<"AgentTaskTracker", 'AgentTaskStatus'>
    readonly progress: FieldRef<"AgentTaskTracker", 'Int'>
    readonly metadata: FieldRef<"AgentTaskTracker", 'Json'>
    readonly createdById: FieldRef<"AgentTaskTracker", 'String'>
    readonly createdAt: FieldRef<"AgentTaskTracker", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentTaskTracker", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentTaskTracker findUnique
   */
  export type AgentTaskTrackerFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * Filter, which AgentTaskTracker to fetch.
     */
    where: AgentTaskTrackerWhereUniqueInput
  }

  /**
   * AgentTaskTracker findUniqueOrThrow
   */
  export type AgentTaskTrackerFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * Filter, which AgentTaskTracker to fetch.
     */
    where: AgentTaskTrackerWhereUniqueInput
  }

  /**
   * AgentTaskTracker findFirst
   */
  export type AgentTaskTrackerFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * Filter, which AgentTaskTracker to fetch.
     */
    where?: AgentTaskTrackerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentTaskTrackers to fetch.
     */
    orderBy?: AgentTaskTrackerOrderByWithRelationInput | AgentTaskTrackerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentTaskTrackers.
     */
    cursor?: AgentTaskTrackerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentTaskTrackers 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` AgentTaskTrackers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentTaskTrackers.
     */
    distinct?: AgentTaskTrackerScalarFieldEnum | AgentTaskTrackerScalarFieldEnum[]
  }

  /**
   * AgentTaskTracker findFirstOrThrow
   */
  export type AgentTaskTrackerFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * Filter, which AgentTaskTracker to fetch.
     */
    where?: AgentTaskTrackerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentTaskTrackers to fetch.
     */
    orderBy?: AgentTaskTrackerOrderByWithRelationInput | AgentTaskTrackerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentTaskTrackers.
     */
    cursor?: AgentTaskTrackerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentTaskTrackers 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` AgentTaskTrackers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentTaskTrackers.
     */
    distinct?: AgentTaskTrackerScalarFieldEnum | AgentTaskTrackerScalarFieldEnum[]
  }

  /**
   * AgentTaskTracker findMany
   */
  export type AgentTaskTrackerFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * Filter, which AgentTaskTrackers to fetch.
     */
    where?: AgentTaskTrackerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentTaskTrackers to fetch.
     */
    orderBy?: AgentTaskTrackerOrderByWithRelationInput | AgentTaskTrackerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentTaskTrackers.
     */
    cursor?: AgentTaskTrackerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentTaskTrackers 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` AgentTaskTrackers.
     */
    skip?: number
    distinct?: AgentTaskTrackerScalarFieldEnum | AgentTaskTrackerScalarFieldEnum[]
  }

  /**
   * AgentTaskTracker create
   */
  export type AgentTaskTrackerCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * The data needed to create a AgentTaskTracker.
     */
    data: XOR<AgentTaskTrackerCreateInput, AgentTaskTrackerUncheckedCreateInput>
  }

  /**
   * AgentTaskTracker createMany
   */
  export type AgentTaskTrackerCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentTaskTrackers.
     */
    data: AgentTaskTrackerCreateManyInput | AgentTaskTrackerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentTaskTracker createManyAndReturn
   */
  export type AgentTaskTrackerCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * The data used to create many AgentTaskTrackers.
     */
    data: AgentTaskTrackerCreateManyInput | AgentTaskTrackerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentTaskTracker update
   */
  export type AgentTaskTrackerUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * The data needed to update a AgentTaskTracker.
     */
    data: XOR<AgentTaskTrackerUpdateInput, AgentTaskTrackerUncheckedUpdateInput>
    /**
     * Choose, which AgentTaskTracker to update.
     */
    where: AgentTaskTrackerWhereUniqueInput
  }

  /**
   * AgentTaskTracker updateMany
   */
  export type AgentTaskTrackerUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentTaskTrackers.
     */
    data: XOR<AgentTaskTrackerUpdateManyMutationInput, AgentTaskTrackerUncheckedUpdateManyInput>
    /**
     * Filter which AgentTaskTrackers to update
     */
    where?: AgentTaskTrackerWhereInput
    /**
     * Limit how many AgentTaskTrackers to update.
     */
    limit?: number
  }

  /**
   * AgentTaskTracker updateManyAndReturn
   */
  export type AgentTaskTrackerUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * The data used to update AgentTaskTrackers.
     */
    data: XOR<AgentTaskTrackerUpdateManyMutationInput, AgentTaskTrackerUncheckedUpdateManyInput>
    /**
     * Filter which AgentTaskTrackers to update
     */
    where?: AgentTaskTrackerWhereInput
    /**
     * Limit how many AgentTaskTrackers to update.
     */
    limit?: number
  }

  /**
   * AgentTaskTracker upsert
   */
  export type AgentTaskTrackerUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * The filter to search for the AgentTaskTracker to update in case it exists.
     */
    where: AgentTaskTrackerWhereUniqueInput
    /**
     * In case the AgentTaskTracker found by the `where` argument doesn't exist, create a new AgentTaskTracker with this data.
     */
    create: XOR<AgentTaskTrackerCreateInput, AgentTaskTrackerUncheckedCreateInput>
    /**
     * In case the AgentTaskTracker was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentTaskTrackerUpdateInput, AgentTaskTrackerUncheckedUpdateInput>
  }

  /**
   * AgentTaskTracker delete
   */
  export type AgentTaskTrackerDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
    /**
     * Filter which AgentTaskTracker to delete.
     */
    where: AgentTaskTrackerWhereUniqueInput
  }

  /**
   * AgentTaskTracker deleteMany
   */
  export type AgentTaskTrackerDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentTaskTrackers to delete
     */
    where?: AgentTaskTrackerWhereInput
    /**
     * Limit how many AgentTaskTrackers to delete.
     */
    limit?: number
  }

  /**
   * AgentTaskTracker without action
   */
  export type AgentTaskTrackerDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentTaskTracker
     */
    select?: AgentTaskTrackerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentTaskTracker
     */
    omit?: AgentTaskTrackerOmit<ExtArgs> | null
  }


  /**
   * Model AgentScratchpad
   */

  export type AggregateAgentScratchpad = {
    _count: AgentScratchpadCountAggregateOutputType | null
    _min: AgentScratchpadMinAggregateOutputType | null
    _max: AgentScratchpadMaxAggregateOutputType | null
  }

  export type AgentScratchpadMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    key: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentScratchpadMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    sessionId: string | null
    key: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentScratchpadCountAggregateOutputType = {
    id: number
    organizationId: number
    sessionId: number
    key: number
    value: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentScratchpadMinAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    key?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentScratchpadMaxAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    key?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentScratchpadCountAggregateInputType = {
    id?: true
    organizationId?: true
    sessionId?: true
    key?: true
    value?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentScratchpadAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentScratchpad to aggregate.
     */
    where?: AgentScratchpadWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentScratchpads to fetch.
     */
    orderBy?: AgentScratchpadOrderByWithRelationInput | AgentScratchpadOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentScratchpadWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentScratchpads 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` AgentScratchpads.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentScratchpads
    **/
    _count?: true | AgentScratchpadCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentScratchpadMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentScratchpadMaxAggregateInputType
  }

  export type GetAgentScratchpadAggregateType<T extends AgentScratchpadAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentScratchpad]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentScratchpad[P]>
      : GetScalarType<T[P], AggregateAgentScratchpad[P]>
  }




  export type AgentScratchpadGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentScratchpadWhereInput
    orderBy?: AgentScratchpadOrderByWithAggregationInput | AgentScratchpadOrderByWithAggregationInput[]
    by: AgentScratchpadScalarFieldEnum[] | AgentScratchpadScalarFieldEnum
    having?: AgentScratchpadScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentScratchpadCountAggregateInputType | true
    _min?: AgentScratchpadMinAggregateInputType
    _max?: AgentScratchpadMaxAggregateInputType
  }

  export type AgentScratchpadGroupByOutputType = {
    id: string
    organizationId: string
    sessionId: string
    key: string
    value: JsonValue
    createdAt: Date
    updatedAt: Date
    _count: AgentScratchpadCountAggregateOutputType | null
    _min: AgentScratchpadMinAggregateOutputType | null
    _max: AgentScratchpadMaxAggregateOutputType | null
  }

  type GetAgentScratchpadGroupByPayload<T extends AgentScratchpadGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentScratchpadGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentScratchpadGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentScratchpadGroupByOutputType[P]>
            : GetScalarType<T[P], AgentScratchpadGroupByOutputType[P]>
        }
      >
    >


  export type AgentScratchpadSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    key?: boolean
    value?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentScratchpad"]>

  export type AgentScratchpadSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    key?: boolean
    value?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentScratchpad"]>

  export type AgentScratchpadSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    key?: boolean
    value?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentScratchpad"]>

  export type AgentScratchpadSelectScalar = {
    id?: boolean
    organizationId?: boolean
    sessionId?: boolean
    key?: boolean
    value?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentScratchpadOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "sessionId" | "key" | "value" | "createdAt" | "updatedAt", ExtArgs["result"]["agentScratchpad"]>

  export type $AgentScratchpadPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentScratchpad"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      sessionId: string
      key: string
      value: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentScratchpad"]>
    composites: {}
  }

  type AgentScratchpadGetPayload<S extends boolean | null | undefined | AgentScratchpadDefaultArgs> = $Result.GetResult<Prisma.$AgentScratchpadPayload, S>

  type AgentScratchpadCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentScratchpadFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentScratchpadCountAggregateInputType | true
    }

  export interface AgentScratchpadDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentScratchpad'], meta: { name: 'AgentScratchpad' } }
    /**
     * Find zero or one AgentScratchpad that matches the filter.
     * @param {AgentScratchpadFindUniqueArgs} args - Arguments to find a AgentScratchpad
     * @example
     * // Get one AgentScratchpad
     * const agentScratchpad = await prisma.agentScratchpad.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentScratchpadFindUniqueArgs>(args: SelectSubset<T, AgentScratchpadFindUniqueArgs<ExtArgs>>): Prisma__AgentScratchpadClient<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentScratchpad that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentScratchpadFindUniqueOrThrowArgs} args - Arguments to find a AgentScratchpad
     * @example
     * // Get one AgentScratchpad
     * const agentScratchpad = await prisma.agentScratchpad.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentScratchpadFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentScratchpadFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentScratchpadClient<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentScratchpad 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 {AgentScratchpadFindFirstArgs} args - Arguments to find a AgentScratchpad
     * @example
     * // Get one AgentScratchpad
     * const agentScratchpad = await prisma.agentScratchpad.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentScratchpadFindFirstArgs>(args?: SelectSubset<T, AgentScratchpadFindFirstArgs<ExtArgs>>): Prisma__AgentScratchpadClient<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentScratchpad 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 {AgentScratchpadFindFirstOrThrowArgs} args - Arguments to find a AgentScratchpad
     * @example
     * // Get one AgentScratchpad
     * const agentScratchpad = await prisma.agentScratchpad.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentScratchpadFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentScratchpadFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentScratchpadClient<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentScratchpads 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 {AgentScratchpadFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentScratchpads
     * const agentScratchpads = await prisma.agentScratchpad.findMany()
     * 
     * // Get first 10 AgentScratchpads
     * const agentScratchpads = await prisma.agentScratchpad.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentScratchpadWithIdOnly = await prisma.agentScratchpad.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentScratchpadFindManyArgs>(args?: SelectSubset<T, AgentScratchpadFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentScratchpad.
     * @param {AgentScratchpadCreateArgs} args - Arguments to create a AgentScratchpad.
     * @example
     * // Create one AgentScratchpad
     * const AgentScratchpad = await prisma.agentScratchpad.create({
     *   data: {
     *     // ... data to create a AgentScratchpad
     *   }
     * })
     * 
     */
    create<T extends AgentScratchpadCreateArgs>(args: SelectSubset<T, AgentScratchpadCreateArgs<ExtArgs>>): Prisma__AgentScratchpadClient<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentScratchpads.
     * @param {AgentScratchpadCreateManyArgs} args - Arguments to create many AgentScratchpads.
     * @example
     * // Create many AgentScratchpads
     * const agentScratchpad = await prisma.agentScratchpad.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentScratchpadCreateManyArgs>(args?: SelectSubset<T, AgentScratchpadCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentScratchpads and returns the data saved in the database.
     * @param {AgentScratchpadCreateManyAndReturnArgs} args - Arguments to create many AgentScratchpads.
     * @example
     * // Create many AgentScratchpads
     * const agentScratchpad = await prisma.agentScratchpad.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentScratchpads and only return the `id`
     * const agentScratchpadWithIdOnly = await prisma.agentScratchpad.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 AgentScratchpadCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentScratchpadCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentScratchpad.
     * @param {AgentScratchpadDeleteArgs} args - Arguments to delete one AgentScratchpad.
     * @example
     * // Delete one AgentScratchpad
     * const AgentScratchpad = await prisma.agentScratchpad.delete({
     *   where: {
     *     // ... filter to delete one AgentScratchpad
     *   }
     * })
     * 
     */
    delete<T extends AgentScratchpadDeleteArgs>(args: SelectSubset<T, AgentScratchpadDeleteArgs<ExtArgs>>): Prisma__AgentScratchpadClient<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentScratchpad.
     * @param {AgentScratchpadUpdateArgs} args - Arguments to update one AgentScratchpad.
     * @example
     * // Update one AgentScratchpad
     * const agentScratchpad = await prisma.agentScratchpad.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentScratchpadUpdateArgs>(args: SelectSubset<T, AgentScratchpadUpdateArgs<ExtArgs>>): Prisma__AgentScratchpadClient<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentScratchpads.
     * @param {AgentScratchpadDeleteManyArgs} args - Arguments to filter AgentScratchpads to delete.
     * @example
     * // Delete a few AgentScratchpads
     * const { count } = await prisma.agentScratchpad.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentScratchpadDeleteManyArgs>(args?: SelectSubset<T, AgentScratchpadDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentScratchpads.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentScratchpadUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentScratchpads
     * const agentScratchpad = await prisma.agentScratchpad.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentScratchpadUpdateManyArgs>(args: SelectSubset<T, AgentScratchpadUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentScratchpads and returns the data updated in the database.
     * @param {AgentScratchpadUpdateManyAndReturnArgs} args - Arguments to update many AgentScratchpads.
     * @example
     * // Update many AgentScratchpads
     * const agentScratchpad = await prisma.agentScratchpad.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentScratchpads and only return the `id`
     * const agentScratchpadWithIdOnly = await prisma.agentScratchpad.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 AgentScratchpadUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentScratchpadUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentScratchpad.
     * @param {AgentScratchpadUpsertArgs} args - Arguments to update or create a AgentScratchpad.
     * @example
     * // Update or create a AgentScratchpad
     * const agentScratchpad = await prisma.agentScratchpad.upsert({
     *   create: {
     *     // ... data to create a AgentScratchpad
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentScratchpad we want to update
     *   }
     * })
     */
    upsert<T extends AgentScratchpadUpsertArgs>(args: SelectSubset<T, AgentScratchpadUpsertArgs<ExtArgs>>): Prisma__AgentScratchpadClient<$Result.GetResult<Prisma.$AgentScratchpadPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentScratchpads.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentScratchpadCountArgs} args - Arguments to filter AgentScratchpads to count.
     * @example
     * // Count the number of AgentScratchpads
     * const count = await prisma.agentScratchpad.count({
     *   where: {
     *     // ... the filter for the AgentScratchpads we want to count
     *   }
     * })
    **/
    count<T extends AgentScratchpadCountArgs>(
      args?: Subset<T, AgentScratchpadCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentScratchpadCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentScratchpad.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentScratchpadAggregateArgs} 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 AgentScratchpadAggregateArgs>(args: Subset<T, AgentScratchpadAggregateArgs>): Prisma.PrismaPromise<GetAgentScratchpadAggregateType<T>>

    /**
     * Group by AgentScratchpad.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentScratchpadGroupByArgs} 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 AgentScratchpadGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentScratchpadGroupByArgs['orderBy'] }
        : { orderBy?: AgentScratchpadGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentScratchpadGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentScratchpadGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentScratchpad model
   */
  readonly fields: AgentScratchpadFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentScratchpad.
   * 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__AgentScratchpadClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentScratchpad model
   */
  interface AgentScratchpadFieldRefs {
    readonly id: FieldRef<"AgentScratchpad", 'String'>
    readonly organizationId: FieldRef<"AgentScratchpad", 'String'>
    readonly sessionId: FieldRef<"AgentScratchpad", 'String'>
    readonly key: FieldRef<"AgentScratchpad", 'String'>
    readonly value: FieldRef<"AgentScratchpad", 'Json'>
    readonly createdAt: FieldRef<"AgentScratchpad", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentScratchpad", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentScratchpad findUnique
   */
  export type AgentScratchpadFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * Filter, which AgentScratchpad to fetch.
     */
    where: AgentScratchpadWhereUniqueInput
  }

  /**
   * AgentScratchpad findUniqueOrThrow
   */
  export type AgentScratchpadFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * Filter, which AgentScratchpad to fetch.
     */
    where: AgentScratchpadWhereUniqueInput
  }

  /**
   * AgentScratchpad findFirst
   */
  export type AgentScratchpadFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * Filter, which AgentScratchpad to fetch.
     */
    where?: AgentScratchpadWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentScratchpads to fetch.
     */
    orderBy?: AgentScratchpadOrderByWithRelationInput | AgentScratchpadOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentScratchpads.
     */
    cursor?: AgentScratchpadWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentScratchpads 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` AgentScratchpads.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentScratchpads.
     */
    distinct?: AgentScratchpadScalarFieldEnum | AgentScratchpadScalarFieldEnum[]
  }

  /**
   * AgentScratchpad findFirstOrThrow
   */
  export type AgentScratchpadFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * Filter, which AgentScratchpad to fetch.
     */
    where?: AgentScratchpadWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentScratchpads to fetch.
     */
    orderBy?: AgentScratchpadOrderByWithRelationInput | AgentScratchpadOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentScratchpads.
     */
    cursor?: AgentScratchpadWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentScratchpads 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` AgentScratchpads.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentScratchpads.
     */
    distinct?: AgentScratchpadScalarFieldEnum | AgentScratchpadScalarFieldEnum[]
  }

  /**
   * AgentScratchpad findMany
   */
  export type AgentScratchpadFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * Filter, which AgentScratchpads to fetch.
     */
    where?: AgentScratchpadWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentScratchpads to fetch.
     */
    orderBy?: AgentScratchpadOrderByWithRelationInput | AgentScratchpadOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentScratchpads.
     */
    cursor?: AgentScratchpadWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentScratchpads 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` AgentScratchpads.
     */
    skip?: number
    distinct?: AgentScratchpadScalarFieldEnum | AgentScratchpadScalarFieldEnum[]
  }

  /**
   * AgentScratchpad create
   */
  export type AgentScratchpadCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * The data needed to create a AgentScratchpad.
     */
    data: XOR<AgentScratchpadCreateInput, AgentScratchpadUncheckedCreateInput>
  }

  /**
   * AgentScratchpad createMany
   */
  export type AgentScratchpadCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentScratchpads.
     */
    data: AgentScratchpadCreateManyInput | AgentScratchpadCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentScratchpad createManyAndReturn
   */
  export type AgentScratchpadCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * The data used to create many AgentScratchpads.
     */
    data: AgentScratchpadCreateManyInput | AgentScratchpadCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentScratchpad update
   */
  export type AgentScratchpadUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * The data needed to update a AgentScratchpad.
     */
    data: XOR<AgentScratchpadUpdateInput, AgentScratchpadUncheckedUpdateInput>
    /**
     * Choose, which AgentScratchpad to update.
     */
    where: AgentScratchpadWhereUniqueInput
  }

  /**
   * AgentScratchpad updateMany
   */
  export type AgentScratchpadUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentScratchpads.
     */
    data: XOR<AgentScratchpadUpdateManyMutationInput, AgentScratchpadUncheckedUpdateManyInput>
    /**
     * Filter which AgentScratchpads to update
     */
    where?: AgentScratchpadWhereInput
    /**
     * Limit how many AgentScratchpads to update.
     */
    limit?: number
  }

  /**
   * AgentScratchpad updateManyAndReturn
   */
  export type AgentScratchpadUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * The data used to update AgentScratchpads.
     */
    data: XOR<AgentScratchpadUpdateManyMutationInput, AgentScratchpadUncheckedUpdateManyInput>
    /**
     * Filter which AgentScratchpads to update
     */
    where?: AgentScratchpadWhereInput
    /**
     * Limit how many AgentScratchpads to update.
     */
    limit?: number
  }

  /**
   * AgentScratchpad upsert
   */
  export type AgentScratchpadUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * The filter to search for the AgentScratchpad to update in case it exists.
     */
    where: AgentScratchpadWhereUniqueInput
    /**
     * In case the AgentScratchpad found by the `where` argument doesn't exist, create a new AgentScratchpad with this data.
     */
    create: XOR<AgentScratchpadCreateInput, AgentScratchpadUncheckedCreateInput>
    /**
     * In case the AgentScratchpad was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentScratchpadUpdateInput, AgentScratchpadUncheckedUpdateInput>
  }

  /**
   * AgentScratchpad delete
   */
  export type AgentScratchpadDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
    /**
     * Filter which AgentScratchpad to delete.
     */
    where: AgentScratchpadWhereUniqueInput
  }

  /**
   * AgentScratchpad deleteMany
   */
  export type AgentScratchpadDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentScratchpads to delete
     */
    where?: AgentScratchpadWhereInput
    /**
     * Limit how many AgentScratchpads to delete.
     */
    limit?: number
  }

  /**
   * AgentScratchpad without action
   */
  export type AgentScratchpadDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentScratchpad
     */
    select?: AgentScratchpadSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentScratchpad
     */
    omit?: AgentScratchpadOmit<ExtArgs> | null
  }


  /**
   * Model StorageBinding
   */

  export type AggregateStorageBinding = {
    _count: StorageBindingCountAggregateOutputType | null
    _min: StorageBindingMinAggregateOutputType | null
    _max: StorageBindingMaxAggregateOutputType | null
  }

  export type StorageBindingMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    scope: $Enums.StorageBindingScope | null
    scopeRefId: string | null
    kind: $Enums.StorageBackendKind | null
    displayName: string | null
    encryptedSecret: string | null
    keyId: string | null
    enabled: boolean | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type StorageBindingMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    scope: $Enums.StorageBindingScope | null
    scopeRefId: string | null
    kind: $Enums.StorageBackendKind | null
    displayName: string | null
    encryptedSecret: string | null
    keyId: string | null
    enabled: boolean | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type StorageBindingCountAggregateOutputType = {
    id: number
    organizationId: number
    scope: number
    scopeRefId: number
    kind: number
    displayName: number
    config: number
    encryptedSecret: number
    keyId: number
    enabled: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type StorageBindingMinAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    kind?: true
    displayName?: true
    encryptedSecret?: true
    keyId?: true
    enabled?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type StorageBindingMaxAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    kind?: true
    displayName?: true
    encryptedSecret?: true
    keyId?: true
    enabled?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type StorageBindingCountAggregateInputType = {
    id?: true
    organizationId?: true
    scope?: true
    scopeRefId?: true
    kind?: true
    displayName?: true
    config?: true
    encryptedSecret?: true
    keyId?: true
    enabled?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type StorageBindingAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StorageBinding to aggregate.
     */
    where?: StorageBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageBindings to fetch.
     */
    orderBy?: StorageBindingOrderByWithRelationInput | StorageBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: StorageBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageBindings 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` StorageBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned StorageBindings
    **/
    _count?: true | StorageBindingCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: StorageBindingMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: StorageBindingMaxAggregateInputType
  }

  export type GetStorageBindingAggregateType<T extends StorageBindingAggregateArgs> = {
        [P in keyof T & keyof AggregateStorageBinding]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateStorageBinding[P]>
      : GetScalarType<T[P], AggregateStorageBinding[P]>
  }




  export type StorageBindingGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StorageBindingWhereInput
    orderBy?: StorageBindingOrderByWithAggregationInput | StorageBindingOrderByWithAggregationInput[]
    by: StorageBindingScalarFieldEnum[] | StorageBindingScalarFieldEnum
    having?: StorageBindingScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: StorageBindingCountAggregateInputType | true
    _min?: StorageBindingMinAggregateInputType
    _max?: StorageBindingMaxAggregateInputType
  }

  export type StorageBindingGroupByOutputType = {
    id: string
    organizationId: string
    scope: $Enums.StorageBindingScope
    scopeRefId: string
    kind: $Enums.StorageBackendKind
    displayName: string
    config: JsonValue
    encryptedSecret: string | null
    keyId: string | null
    enabled: boolean
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: StorageBindingCountAggregateOutputType | null
    _min: StorageBindingMinAggregateOutputType | null
    _max: StorageBindingMaxAggregateOutputType | null
  }

  type GetStorageBindingGroupByPayload<T extends StorageBindingGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<StorageBindingGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof StorageBindingGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], StorageBindingGroupByOutputType[P]>
            : GetScalarType<T[P], StorageBindingGroupByOutputType[P]>
        }
      >
    >


  export type StorageBindingSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    kind?: boolean
    displayName?: boolean
    config?: boolean
    encryptedSecret?: boolean
    keyId?: boolean
    enabled?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    files?: boolean | StorageBinding$filesArgs<ExtArgs>
    _count?: boolean | StorageBindingCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["storageBinding"]>

  export type StorageBindingSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    kind?: boolean
    displayName?: boolean
    config?: boolean
    encryptedSecret?: boolean
    keyId?: boolean
    enabled?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["storageBinding"]>

  export type StorageBindingSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    kind?: boolean
    displayName?: boolean
    config?: boolean
    encryptedSecret?: boolean
    keyId?: boolean
    enabled?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["storageBinding"]>

  export type StorageBindingSelectScalar = {
    id?: boolean
    organizationId?: boolean
    scope?: boolean
    scopeRefId?: boolean
    kind?: boolean
    displayName?: boolean
    config?: boolean
    encryptedSecret?: boolean
    keyId?: boolean
    enabled?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type StorageBindingOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "scope" | "scopeRefId" | "kind" | "displayName" | "config" | "encryptedSecret" | "keyId" | "enabled" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["storageBinding"]>
  export type StorageBindingInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    files?: boolean | StorageBinding$filesArgs<ExtArgs>
    _count?: boolean | StorageBindingCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type StorageBindingIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type StorageBindingIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $StorageBindingPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "StorageBinding"
    objects: {
      files: Prisma.$StorageFilePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      scope: $Enums.StorageBindingScope
      scopeRefId: string
      kind: $Enums.StorageBackendKind
      displayName: string
      config: Prisma.JsonValue
      encryptedSecret: string | null
      keyId: string | null
      enabled: boolean
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["storageBinding"]>
    composites: {}
  }

  type StorageBindingGetPayload<S extends boolean | null | undefined | StorageBindingDefaultArgs> = $Result.GetResult<Prisma.$StorageBindingPayload, S>

  type StorageBindingCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<StorageBindingFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: StorageBindingCountAggregateInputType | true
    }

  export interface StorageBindingDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['StorageBinding'], meta: { name: 'StorageBinding' } }
    /**
     * Find zero or one StorageBinding that matches the filter.
     * @param {StorageBindingFindUniqueArgs} args - Arguments to find a StorageBinding
     * @example
     * // Get one StorageBinding
     * const storageBinding = await prisma.storageBinding.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends StorageBindingFindUniqueArgs>(args: SelectSubset<T, StorageBindingFindUniqueArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one StorageBinding that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {StorageBindingFindUniqueOrThrowArgs} args - Arguments to find a StorageBinding
     * @example
     * // Get one StorageBinding
     * const storageBinding = await prisma.storageBinding.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends StorageBindingFindUniqueOrThrowArgs>(args: SelectSubset<T, StorageBindingFindUniqueOrThrowArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StorageBinding 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 {StorageBindingFindFirstArgs} args - Arguments to find a StorageBinding
     * @example
     * // Get one StorageBinding
     * const storageBinding = await prisma.storageBinding.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends StorageBindingFindFirstArgs>(args?: SelectSubset<T, StorageBindingFindFirstArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StorageBinding 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 {StorageBindingFindFirstOrThrowArgs} args - Arguments to find a StorageBinding
     * @example
     * // Get one StorageBinding
     * const storageBinding = await prisma.storageBinding.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends StorageBindingFindFirstOrThrowArgs>(args?: SelectSubset<T, StorageBindingFindFirstOrThrowArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more StorageBindings 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 {StorageBindingFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all StorageBindings
     * const storageBindings = await prisma.storageBinding.findMany()
     * 
     * // Get first 10 StorageBindings
     * const storageBindings = await prisma.storageBinding.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const storageBindingWithIdOnly = await prisma.storageBinding.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends StorageBindingFindManyArgs>(args?: SelectSubset<T, StorageBindingFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a StorageBinding.
     * @param {StorageBindingCreateArgs} args - Arguments to create a StorageBinding.
     * @example
     * // Create one StorageBinding
     * const StorageBinding = await prisma.storageBinding.create({
     *   data: {
     *     // ... data to create a StorageBinding
     *   }
     * })
     * 
     */
    create<T extends StorageBindingCreateArgs>(args: SelectSubset<T, StorageBindingCreateArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many StorageBindings.
     * @param {StorageBindingCreateManyArgs} args - Arguments to create many StorageBindings.
     * @example
     * // Create many StorageBindings
     * const storageBinding = await prisma.storageBinding.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends StorageBindingCreateManyArgs>(args?: SelectSubset<T, StorageBindingCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many StorageBindings and returns the data saved in the database.
     * @param {StorageBindingCreateManyAndReturnArgs} args - Arguments to create many StorageBindings.
     * @example
     * // Create many StorageBindings
     * const storageBinding = await prisma.storageBinding.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many StorageBindings and only return the `id`
     * const storageBindingWithIdOnly = await prisma.storageBinding.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 StorageBindingCreateManyAndReturnArgs>(args?: SelectSubset<T, StorageBindingCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a StorageBinding.
     * @param {StorageBindingDeleteArgs} args - Arguments to delete one StorageBinding.
     * @example
     * // Delete one StorageBinding
     * const StorageBinding = await prisma.storageBinding.delete({
     *   where: {
     *     // ... filter to delete one StorageBinding
     *   }
     * })
     * 
     */
    delete<T extends StorageBindingDeleteArgs>(args: SelectSubset<T, StorageBindingDeleteArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one StorageBinding.
     * @param {StorageBindingUpdateArgs} args - Arguments to update one StorageBinding.
     * @example
     * // Update one StorageBinding
     * const storageBinding = await prisma.storageBinding.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends StorageBindingUpdateArgs>(args: SelectSubset<T, StorageBindingUpdateArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more StorageBindings.
     * @param {StorageBindingDeleteManyArgs} args - Arguments to filter StorageBindings to delete.
     * @example
     * // Delete a few StorageBindings
     * const { count } = await prisma.storageBinding.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends StorageBindingDeleteManyArgs>(args?: SelectSubset<T, StorageBindingDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StorageBindings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageBindingUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many StorageBindings
     * const storageBinding = await prisma.storageBinding.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends StorageBindingUpdateManyArgs>(args: SelectSubset<T, StorageBindingUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StorageBindings and returns the data updated in the database.
     * @param {StorageBindingUpdateManyAndReturnArgs} args - Arguments to update many StorageBindings.
     * @example
     * // Update many StorageBindings
     * const storageBinding = await prisma.storageBinding.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more StorageBindings and only return the `id`
     * const storageBindingWithIdOnly = await prisma.storageBinding.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 StorageBindingUpdateManyAndReturnArgs>(args: SelectSubset<T, StorageBindingUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one StorageBinding.
     * @param {StorageBindingUpsertArgs} args - Arguments to update or create a StorageBinding.
     * @example
     * // Update or create a StorageBinding
     * const storageBinding = await prisma.storageBinding.upsert({
     *   create: {
     *     // ... data to create a StorageBinding
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the StorageBinding we want to update
     *   }
     * })
     */
    upsert<T extends StorageBindingUpsertArgs>(args: SelectSubset<T, StorageBindingUpsertArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of StorageBindings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageBindingCountArgs} args - Arguments to filter StorageBindings to count.
     * @example
     * // Count the number of StorageBindings
     * const count = await prisma.storageBinding.count({
     *   where: {
     *     // ... the filter for the StorageBindings we want to count
     *   }
     * })
    **/
    count<T extends StorageBindingCountArgs>(
      args?: Subset<T, StorageBindingCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], StorageBindingCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a StorageBinding.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageBindingAggregateArgs} 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 StorageBindingAggregateArgs>(args: Subset<T, StorageBindingAggregateArgs>): Prisma.PrismaPromise<GetStorageBindingAggregateType<T>>

    /**
     * Group by StorageBinding.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageBindingGroupByArgs} 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 StorageBindingGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: StorageBindingGroupByArgs['orderBy'] }
        : { orderBy?: StorageBindingGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, StorageBindingGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetStorageBindingGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the StorageBinding model
   */
  readonly fields: StorageBindingFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for StorageBinding.
   * 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__StorageBindingClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    files<T extends StorageBinding$filesArgs<ExtArgs> = {}>(args?: Subset<T, StorageBinding$filesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the StorageBinding model
   */
  interface StorageBindingFieldRefs {
    readonly id: FieldRef<"StorageBinding", 'String'>
    readonly organizationId: FieldRef<"StorageBinding", 'String'>
    readonly scope: FieldRef<"StorageBinding", 'StorageBindingScope'>
    readonly scopeRefId: FieldRef<"StorageBinding", 'String'>
    readonly kind: FieldRef<"StorageBinding", 'StorageBackendKind'>
    readonly displayName: FieldRef<"StorageBinding", 'String'>
    readonly config: FieldRef<"StorageBinding", 'Json'>
    readonly encryptedSecret: FieldRef<"StorageBinding", 'String'>
    readonly keyId: FieldRef<"StorageBinding", 'String'>
    readonly enabled: FieldRef<"StorageBinding", 'Boolean'>
    readonly createdById: FieldRef<"StorageBinding", 'String'>
    readonly createdAt: FieldRef<"StorageBinding", 'DateTime'>
    readonly updatedAt: FieldRef<"StorageBinding", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * StorageBinding findUnique
   */
  export type StorageBindingFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * Filter, which StorageBinding to fetch.
     */
    where: StorageBindingWhereUniqueInput
  }

  /**
   * StorageBinding findUniqueOrThrow
   */
  export type StorageBindingFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * Filter, which StorageBinding to fetch.
     */
    where: StorageBindingWhereUniqueInput
  }

  /**
   * StorageBinding findFirst
   */
  export type StorageBindingFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * Filter, which StorageBinding to fetch.
     */
    where?: StorageBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageBindings to fetch.
     */
    orderBy?: StorageBindingOrderByWithRelationInput | StorageBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StorageBindings.
     */
    cursor?: StorageBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageBindings 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` StorageBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StorageBindings.
     */
    distinct?: StorageBindingScalarFieldEnum | StorageBindingScalarFieldEnum[]
  }

  /**
   * StorageBinding findFirstOrThrow
   */
  export type StorageBindingFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * Filter, which StorageBinding to fetch.
     */
    where?: StorageBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageBindings to fetch.
     */
    orderBy?: StorageBindingOrderByWithRelationInput | StorageBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StorageBindings.
     */
    cursor?: StorageBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageBindings 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` StorageBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StorageBindings.
     */
    distinct?: StorageBindingScalarFieldEnum | StorageBindingScalarFieldEnum[]
  }

  /**
   * StorageBinding findMany
   */
  export type StorageBindingFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * Filter, which StorageBindings to fetch.
     */
    where?: StorageBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageBindings to fetch.
     */
    orderBy?: StorageBindingOrderByWithRelationInput | StorageBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing StorageBindings.
     */
    cursor?: StorageBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageBindings 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` StorageBindings.
     */
    skip?: number
    distinct?: StorageBindingScalarFieldEnum | StorageBindingScalarFieldEnum[]
  }

  /**
   * StorageBinding create
   */
  export type StorageBindingCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * The data needed to create a StorageBinding.
     */
    data: XOR<StorageBindingCreateInput, StorageBindingUncheckedCreateInput>
  }

  /**
   * StorageBinding createMany
   */
  export type StorageBindingCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many StorageBindings.
     */
    data: StorageBindingCreateManyInput | StorageBindingCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * StorageBinding createManyAndReturn
   */
  export type StorageBindingCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * The data used to create many StorageBindings.
     */
    data: StorageBindingCreateManyInput | StorageBindingCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * StorageBinding update
   */
  export type StorageBindingUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * The data needed to update a StorageBinding.
     */
    data: XOR<StorageBindingUpdateInput, StorageBindingUncheckedUpdateInput>
    /**
     * Choose, which StorageBinding to update.
     */
    where: StorageBindingWhereUniqueInput
  }

  /**
   * StorageBinding updateMany
   */
  export type StorageBindingUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update StorageBindings.
     */
    data: XOR<StorageBindingUpdateManyMutationInput, StorageBindingUncheckedUpdateManyInput>
    /**
     * Filter which StorageBindings to update
     */
    where?: StorageBindingWhereInput
    /**
     * Limit how many StorageBindings to update.
     */
    limit?: number
  }

  /**
   * StorageBinding updateManyAndReturn
   */
  export type StorageBindingUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * The data used to update StorageBindings.
     */
    data: XOR<StorageBindingUpdateManyMutationInput, StorageBindingUncheckedUpdateManyInput>
    /**
     * Filter which StorageBindings to update
     */
    where?: StorageBindingWhereInput
    /**
     * Limit how many StorageBindings to update.
     */
    limit?: number
  }

  /**
   * StorageBinding upsert
   */
  export type StorageBindingUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * The filter to search for the StorageBinding to update in case it exists.
     */
    where: StorageBindingWhereUniqueInput
    /**
     * In case the StorageBinding found by the `where` argument doesn't exist, create a new StorageBinding with this data.
     */
    create: XOR<StorageBindingCreateInput, StorageBindingUncheckedCreateInput>
    /**
     * In case the StorageBinding was found with the provided `where` argument, update it with this data.
     */
    update: XOR<StorageBindingUpdateInput, StorageBindingUncheckedUpdateInput>
  }

  /**
   * StorageBinding delete
   */
  export type StorageBindingDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
    /**
     * Filter which StorageBinding to delete.
     */
    where: StorageBindingWhereUniqueInput
  }

  /**
   * StorageBinding deleteMany
   */
  export type StorageBindingDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StorageBindings to delete
     */
    where?: StorageBindingWhereInput
    /**
     * Limit how many StorageBindings to delete.
     */
    limit?: number
  }

  /**
   * StorageBinding.files
   */
  export type StorageBinding$filesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    where?: StorageFileWhereInput
    orderBy?: StorageFileOrderByWithRelationInput | StorageFileOrderByWithRelationInput[]
    cursor?: StorageFileWhereUniqueInput
    take?: number
    skip?: number
    distinct?: StorageFileScalarFieldEnum | StorageFileScalarFieldEnum[]
  }

  /**
   * StorageBinding without action
   */
  export type StorageBindingDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageBinding
     */
    select?: StorageBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageBinding
     */
    omit?: StorageBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageBindingInclude<ExtArgs> | null
  }


  /**
   * Model StorageFile
   */

  export type AggregateStorageFile = {
    _count: StorageFileCountAggregateOutputType | null
    _avg: StorageFileAvgAggregateOutputType | null
    _sum: StorageFileSumAggregateOutputType | null
    _min: StorageFileMinAggregateOutputType | null
    _max: StorageFileMaxAggregateOutputType | null
  }

  export type StorageFileAvgAggregateOutputType = {
    sizeBytes: number | null
  }

  export type StorageFileSumAggregateOutputType = {
    sizeBytes: number | null
  }

  export type StorageFileMinAggregateOutputType = {
    id: string | null
    bindingId: string | null
    organizationId: string | null
    path: string | null
    externalId: string | null
    sizeBytes: number | null
    mimeType: string | null
    sha256: string | null
    encrypted: boolean | null
    uploadedById: string | null
    createdAt: Date | null
  }

  export type StorageFileMaxAggregateOutputType = {
    id: string | null
    bindingId: string | null
    organizationId: string | null
    path: string | null
    externalId: string | null
    sizeBytes: number | null
    mimeType: string | null
    sha256: string | null
    encrypted: boolean | null
    uploadedById: string | null
    createdAt: Date | null
  }

  export type StorageFileCountAggregateOutputType = {
    id: number
    bindingId: number
    organizationId: number
    path: number
    externalId: number
    sizeBytes: number
    mimeType: number
    sha256: number
    encrypted: number
    uploadedById: number
    createdAt: number
    _all: number
  }


  export type StorageFileAvgAggregateInputType = {
    sizeBytes?: true
  }

  export type StorageFileSumAggregateInputType = {
    sizeBytes?: true
  }

  export type StorageFileMinAggregateInputType = {
    id?: true
    bindingId?: true
    organizationId?: true
    path?: true
    externalId?: true
    sizeBytes?: true
    mimeType?: true
    sha256?: true
    encrypted?: true
    uploadedById?: true
    createdAt?: true
  }

  export type StorageFileMaxAggregateInputType = {
    id?: true
    bindingId?: true
    organizationId?: true
    path?: true
    externalId?: true
    sizeBytes?: true
    mimeType?: true
    sha256?: true
    encrypted?: true
    uploadedById?: true
    createdAt?: true
  }

  export type StorageFileCountAggregateInputType = {
    id?: true
    bindingId?: true
    organizationId?: true
    path?: true
    externalId?: true
    sizeBytes?: true
    mimeType?: true
    sha256?: true
    encrypted?: true
    uploadedById?: true
    createdAt?: true
    _all?: true
  }

  export type StorageFileAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StorageFile to aggregate.
     */
    where?: StorageFileWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageFiles to fetch.
     */
    orderBy?: StorageFileOrderByWithRelationInput | StorageFileOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: StorageFileWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageFiles 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` StorageFiles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned StorageFiles
    **/
    _count?: true | StorageFileCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: StorageFileAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: StorageFileSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: StorageFileMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: StorageFileMaxAggregateInputType
  }

  export type GetStorageFileAggregateType<T extends StorageFileAggregateArgs> = {
        [P in keyof T & keyof AggregateStorageFile]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateStorageFile[P]>
      : GetScalarType<T[P], AggregateStorageFile[P]>
  }




  export type StorageFileGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StorageFileWhereInput
    orderBy?: StorageFileOrderByWithAggregationInput | StorageFileOrderByWithAggregationInput[]
    by: StorageFileScalarFieldEnum[] | StorageFileScalarFieldEnum
    having?: StorageFileScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: StorageFileCountAggregateInputType | true
    _avg?: StorageFileAvgAggregateInputType
    _sum?: StorageFileSumAggregateInputType
    _min?: StorageFileMinAggregateInputType
    _max?: StorageFileMaxAggregateInputType
  }

  export type StorageFileGroupByOutputType = {
    id: string
    bindingId: string
    organizationId: string
    path: string
    externalId: string | null
    sizeBytes: number
    mimeType: string | null
    sha256: string
    encrypted: boolean
    uploadedById: string
    createdAt: Date
    _count: StorageFileCountAggregateOutputType | null
    _avg: StorageFileAvgAggregateOutputType | null
    _sum: StorageFileSumAggregateOutputType | null
    _min: StorageFileMinAggregateOutputType | null
    _max: StorageFileMaxAggregateOutputType | null
  }

  type GetStorageFileGroupByPayload<T extends StorageFileGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<StorageFileGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof StorageFileGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], StorageFileGroupByOutputType[P]>
            : GetScalarType<T[P], StorageFileGroupByOutputType[P]>
        }
      >
    >


  export type StorageFileSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    organizationId?: boolean
    path?: boolean
    externalId?: boolean
    sizeBytes?: boolean
    mimeType?: boolean
    sha256?: boolean
    encrypted?: boolean
    uploadedById?: boolean
    createdAt?: boolean
    binding?: boolean | StorageBindingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["storageFile"]>

  export type StorageFileSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    organizationId?: boolean
    path?: boolean
    externalId?: boolean
    sizeBytes?: boolean
    mimeType?: boolean
    sha256?: boolean
    encrypted?: boolean
    uploadedById?: boolean
    createdAt?: boolean
    binding?: boolean | StorageBindingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["storageFile"]>

  export type StorageFileSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    organizationId?: boolean
    path?: boolean
    externalId?: boolean
    sizeBytes?: boolean
    mimeType?: boolean
    sha256?: boolean
    encrypted?: boolean
    uploadedById?: boolean
    createdAt?: boolean
    binding?: boolean | StorageBindingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["storageFile"]>

  export type StorageFileSelectScalar = {
    id?: boolean
    bindingId?: boolean
    organizationId?: boolean
    path?: boolean
    externalId?: boolean
    sizeBytes?: boolean
    mimeType?: boolean
    sha256?: boolean
    encrypted?: boolean
    uploadedById?: boolean
    createdAt?: boolean
  }

  export type StorageFileOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "bindingId" | "organizationId" | "path" | "externalId" | "sizeBytes" | "mimeType" | "sha256" | "encrypted" | "uploadedById" | "createdAt", ExtArgs["result"]["storageFile"]>
  export type StorageFileInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | StorageBindingDefaultArgs<ExtArgs>
  }
  export type StorageFileIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | StorageBindingDefaultArgs<ExtArgs>
  }
  export type StorageFileIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | StorageBindingDefaultArgs<ExtArgs>
  }

  export type $StorageFilePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "StorageFile"
    objects: {
      binding: Prisma.$StorageBindingPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      bindingId: string
      organizationId: string
      path: string
      externalId: string | null
      sizeBytes: number
      mimeType: string | null
      sha256: string
      encrypted: boolean
      uploadedById: string
      createdAt: Date
    }, ExtArgs["result"]["storageFile"]>
    composites: {}
  }

  type StorageFileGetPayload<S extends boolean | null | undefined | StorageFileDefaultArgs> = $Result.GetResult<Prisma.$StorageFilePayload, S>

  type StorageFileCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<StorageFileFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: StorageFileCountAggregateInputType | true
    }

  export interface StorageFileDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['StorageFile'], meta: { name: 'StorageFile' } }
    /**
     * Find zero or one StorageFile that matches the filter.
     * @param {StorageFileFindUniqueArgs} args - Arguments to find a StorageFile
     * @example
     * // Get one StorageFile
     * const storageFile = await prisma.storageFile.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends StorageFileFindUniqueArgs>(args: SelectSubset<T, StorageFileFindUniqueArgs<ExtArgs>>): Prisma__StorageFileClient<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one StorageFile that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {StorageFileFindUniqueOrThrowArgs} args - Arguments to find a StorageFile
     * @example
     * // Get one StorageFile
     * const storageFile = await prisma.storageFile.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends StorageFileFindUniqueOrThrowArgs>(args: SelectSubset<T, StorageFileFindUniqueOrThrowArgs<ExtArgs>>): Prisma__StorageFileClient<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StorageFile 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 {StorageFileFindFirstArgs} args - Arguments to find a StorageFile
     * @example
     * // Get one StorageFile
     * const storageFile = await prisma.storageFile.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends StorageFileFindFirstArgs>(args?: SelectSubset<T, StorageFileFindFirstArgs<ExtArgs>>): Prisma__StorageFileClient<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StorageFile 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 {StorageFileFindFirstOrThrowArgs} args - Arguments to find a StorageFile
     * @example
     * // Get one StorageFile
     * const storageFile = await prisma.storageFile.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends StorageFileFindFirstOrThrowArgs>(args?: SelectSubset<T, StorageFileFindFirstOrThrowArgs<ExtArgs>>): Prisma__StorageFileClient<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more StorageFiles 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 {StorageFileFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all StorageFiles
     * const storageFiles = await prisma.storageFile.findMany()
     * 
     * // Get first 10 StorageFiles
     * const storageFiles = await prisma.storageFile.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const storageFileWithIdOnly = await prisma.storageFile.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends StorageFileFindManyArgs>(args?: SelectSubset<T, StorageFileFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a StorageFile.
     * @param {StorageFileCreateArgs} args - Arguments to create a StorageFile.
     * @example
     * // Create one StorageFile
     * const StorageFile = await prisma.storageFile.create({
     *   data: {
     *     // ... data to create a StorageFile
     *   }
     * })
     * 
     */
    create<T extends StorageFileCreateArgs>(args: SelectSubset<T, StorageFileCreateArgs<ExtArgs>>): Prisma__StorageFileClient<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many StorageFiles.
     * @param {StorageFileCreateManyArgs} args - Arguments to create many StorageFiles.
     * @example
     * // Create many StorageFiles
     * const storageFile = await prisma.storageFile.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends StorageFileCreateManyArgs>(args?: SelectSubset<T, StorageFileCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many StorageFiles and returns the data saved in the database.
     * @param {StorageFileCreateManyAndReturnArgs} args - Arguments to create many StorageFiles.
     * @example
     * // Create many StorageFiles
     * const storageFile = await prisma.storageFile.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many StorageFiles and only return the `id`
     * const storageFileWithIdOnly = await prisma.storageFile.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 StorageFileCreateManyAndReturnArgs>(args?: SelectSubset<T, StorageFileCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a StorageFile.
     * @param {StorageFileDeleteArgs} args - Arguments to delete one StorageFile.
     * @example
     * // Delete one StorageFile
     * const StorageFile = await prisma.storageFile.delete({
     *   where: {
     *     // ... filter to delete one StorageFile
     *   }
     * })
     * 
     */
    delete<T extends StorageFileDeleteArgs>(args: SelectSubset<T, StorageFileDeleteArgs<ExtArgs>>): Prisma__StorageFileClient<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one StorageFile.
     * @param {StorageFileUpdateArgs} args - Arguments to update one StorageFile.
     * @example
     * // Update one StorageFile
     * const storageFile = await prisma.storageFile.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends StorageFileUpdateArgs>(args: SelectSubset<T, StorageFileUpdateArgs<ExtArgs>>): Prisma__StorageFileClient<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more StorageFiles.
     * @param {StorageFileDeleteManyArgs} args - Arguments to filter StorageFiles to delete.
     * @example
     * // Delete a few StorageFiles
     * const { count } = await prisma.storageFile.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends StorageFileDeleteManyArgs>(args?: SelectSubset<T, StorageFileDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StorageFiles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageFileUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many StorageFiles
     * const storageFile = await prisma.storageFile.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends StorageFileUpdateManyArgs>(args: SelectSubset<T, StorageFileUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StorageFiles and returns the data updated in the database.
     * @param {StorageFileUpdateManyAndReturnArgs} args - Arguments to update many StorageFiles.
     * @example
     * // Update many StorageFiles
     * const storageFile = await prisma.storageFile.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more StorageFiles and only return the `id`
     * const storageFileWithIdOnly = await prisma.storageFile.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 StorageFileUpdateManyAndReturnArgs>(args: SelectSubset<T, StorageFileUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one StorageFile.
     * @param {StorageFileUpsertArgs} args - Arguments to update or create a StorageFile.
     * @example
     * // Update or create a StorageFile
     * const storageFile = await prisma.storageFile.upsert({
     *   create: {
     *     // ... data to create a StorageFile
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the StorageFile we want to update
     *   }
     * })
     */
    upsert<T extends StorageFileUpsertArgs>(args: SelectSubset<T, StorageFileUpsertArgs<ExtArgs>>): Prisma__StorageFileClient<$Result.GetResult<Prisma.$StorageFilePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of StorageFiles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageFileCountArgs} args - Arguments to filter StorageFiles to count.
     * @example
     * // Count the number of StorageFiles
     * const count = await prisma.storageFile.count({
     *   where: {
     *     // ... the filter for the StorageFiles we want to count
     *   }
     * })
    **/
    count<T extends StorageFileCountArgs>(
      args?: Subset<T, StorageFileCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], StorageFileCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a StorageFile.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageFileAggregateArgs} 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 StorageFileAggregateArgs>(args: Subset<T, StorageFileAggregateArgs>): Prisma.PrismaPromise<GetStorageFileAggregateType<T>>

    /**
     * Group by StorageFile.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StorageFileGroupByArgs} 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 StorageFileGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: StorageFileGroupByArgs['orderBy'] }
        : { orderBy?: StorageFileGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, StorageFileGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetStorageFileGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the StorageFile model
   */
  readonly fields: StorageFileFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for StorageFile.
   * 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__StorageFileClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    binding<T extends StorageBindingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, StorageBindingDefaultArgs<ExtArgs>>): Prisma__StorageBindingClient<$Result.GetResult<Prisma.$StorageBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the StorageFile model
   */
  interface StorageFileFieldRefs {
    readonly id: FieldRef<"StorageFile", 'String'>
    readonly bindingId: FieldRef<"StorageFile", 'String'>
    readonly organizationId: FieldRef<"StorageFile", 'String'>
    readonly path: FieldRef<"StorageFile", 'String'>
    readonly externalId: FieldRef<"StorageFile", 'String'>
    readonly sizeBytes: FieldRef<"StorageFile", 'Int'>
    readonly mimeType: FieldRef<"StorageFile", 'String'>
    readonly sha256: FieldRef<"StorageFile", 'String'>
    readonly encrypted: FieldRef<"StorageFile", 'Boolean'>
    readonly uploadedById: FieldRef<"StorageFile", 'String'>
    readonly createdAt: FieldRef<"StorageFile", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * StorageFile findUnique
   */
  export type StorageFileFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * Filter, which StorageFile to fetch.
     */
    where: StorageFileWhereUniqueInput
  }

  /**
   * StorageFile findUniqueOrThrow
   */
  export type StorageFileFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * Filter, which StorageFile to fetch.
     */
    where: StorageFileWhereUniqueInput
  }

  /**
   * StorageFile findFirst
   */
  export type StorageFileFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * Filter, which StorageFile to fetch.
     */
    where?: StorageFileWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageFiles to fetch.
     */
    orderBy?: StorageFileOrderByWithRelationInput | StorageFileOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StorageFiles.
     */
    cursor?: StorageFileWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageFiles 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` StorageFiles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StorageFiles.
     */
    distinct?: StorageFileScalarFieldEnum | StorageFileScalarFieldEnum[]
  }

  /**
   * StorageFile findFirstOrThrow
   */
  export type StorageFileFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * Filter, which StorageFile to fetch.
     */
    where?: StorageFileWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageFiles to fetch.
     */
    orderBy?: StorageFileOrderByWithRelationInput | StorageFileOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StorageFiles.
     */
    cursor?: StorageFileWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageFiles 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` StorageFiles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StorageFiles.
     */
    distinct?: StorageFileScalarFieldEnum | StorageFileScalarFieldEnum[]
  }

  /**
   * StorageFile findMany
   */
  export type StorageFileFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * Filter, which StorageFiles to fetch.
     */
    where?: StorageFileWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StorageFiles to fetch.
     */
    orderBy?: StorageFileOrderByWithRelationInput | StorageFileOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing StorageFiles.
     */
    cursor?: StorageFileWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StorageFiles 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` StorageFiles.
     */
    skip?: number
    distinct?: StorageFileScalarFieldEnum | StorageFileScalarFieldEnum[]
  }

  /**
   * StorageFile create
   */
  export type StorageFileCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * The data needed to create a StorageFile.
     */
    data: XOR<StorageFileCreateInput, StorageFileUncheckedCreateInput>
  }

  /**
   * StorageFile createMany
   */
  export type StorageFileCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many StorageFiles.
     */
    data: StorageFileCreateManyInput | StorageFileCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * StorageFile createManyAndReturn
   */
  export type StorageFileCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * The data used to create many StorageFiles.
     */
    data: StorageFileCreateManyInput | StorageFileCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * StorageFile update
   */
  export type StorageFileUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * The data needed to update a StorageFile.
     */
    data: XOR<StorageFileUpdateInput, StorageFileUncheckedUpdateInput>
    /**
     * Choose, which StorageFile to update.
     */
    where: StorageFileWhereUniqueInput
  }

  /**
   * StorageFile updateMany
   */
  export type StorageFileUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update StorageFiles.
     */
    data: XOR<StorageFileUpdateManyMutationInput, StorageFileUncheckedUpdateManyInput>
    /**
     * Filter which StorageFiles to update
     */
    where?: StorageFileWhereInput
    /**
     * Limit how many StorageFiles to update.
     */
    limit?: number
  }

  /**
   * StorageFile updateManyAndReturn
   */
  export type StorageFileUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * The data used to update StorageFiles.
     */
    data: XOR<StorageFileUpdateManyMutationInput, StorageFileUncheckedUpdateManyInput>
    /**
     * Filter which StorageFiles to update
     */
    where?: StorageFileWhereInput
    /**
     * Limit how many StorageFiles to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * StorageFile upsert
   */
  export type StorageFileUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * The filter to search for the StorageFile to update in case it exists.
     */
    where: StorageFileWhereUniqueInput
    /**
     * In case the StorageFile found by the `where` argument doesn't exist, create a new StorageFile with this data.
     */
    create: XOR<StorageFileCreateInput, StorageFileUncheckedCreateInput>
    /**
     * In case the StorageFile was found with the provided `where` argument, update it with this data.
     */
    update: XOR<StorageFileUpdateInput, StorageFileUncheckedUpdateInput>
  }

  /**
   * StorageFile delete
   */
  export type StorageFileDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
    /**
     * Filter which StorageFile to delete.
     */
    where: StorageFileWhereUniqueInput
  }

  /**
   * StorageFile deleteMany
   */
  export type StorageFileDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StorageFiles to delete
     */
    where?: StorageFileWhereInput
    /**
     * Limit how many StorageFiles to delete.
     */
    limit?: number
  }

  /**
   * StorageFile without action
   */
  export type StorageFileDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StorageFile
     */
    select?: StorageFileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StorageFile
     */
    omit?: StorageFileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StorageFileInclude<ExtArgs> | null
  }


  /**
   * Model AgentProject
   */

  export type AggregateAgentProject = {
    _count: AgentProjectCountAggregateOutputType | null
    _min: AgentProjectMinAggregateOutputType | null
    _max: AgentProjectMaxAggregateOutputType | null
  }

  export type AgentProjectMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    name: string | null
    icon: string | null
    color: string | null
    instructions: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentProjectMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    name: string | null
    icon: string | null
    color: string | null
    instructions: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentProjectCountAggregateOutputType = {
    id: number
    organizationId: number
    createdById: number
    name: number
    icon: number
    color: number
    instructions: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentProjectMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    name?: true
    icon?: true
    color?: true
    instructions?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentProjectMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    name?: true
    icon?: true
    color?: true
    instructions?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentProjectCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    name?: true
    icon?: true
    color?: true
    instructions?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentProjectAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentProject to aggregate.
     */
    where?: AgentProjectWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProjects to fetch.
     */
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentProjectWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProjects 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` AgentProjects.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentProjects
    **/
    _count?: true | AgentProjectCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentProjectMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentProjectMaxAggregateInputType
  }

  export type GetAgentProjectAggregateType<T extends AgentProjectAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentProject]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentProject[P]>
      : GetScalarType<T[P], AggregateAgentProject[P]>
  }




  export type AgentProjectGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentProjectWhereInput
    orderBy?: AgentProjectOrderByWithAggregationInput | AgentProjectOrderByWithAggregationInput[]
    by: AgentProjectScalarFieldEnum[] | AgentProjectScalarFieldEnum
    having?: AgentProjectScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentProjectCountAggregateInputType | true
    _min?: AgentProjectMinAggregateInputType
    _max?: AgentProjectMaxAggregateInputType
  }

  export type AgentProjectGroupByOutputType = {
    id: string
    organizationId: string
    createdById: string
    name: string
    icon: string | null
    color: string | null
    instructions: string | null
    createdAt: Date
    updatedAt: Date
    _count: AgentProjectCountAggregateOutputType | null
    _min: AgentProjectMinAggregateOutputType | null
    _max: AgentProjectMaxAggregateOutputType | null
  }

  type GetAgentProjectGroupByPayload<T extends AgentProjectGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentProjectGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentProjectGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentProjectGroupByOutputType[P]>
            : GetScalarType<T[P], AgentProjectGroupByOutputType[P]>
        }
      >
    >


  export type AgentProjectSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    name?: boolean
    icon?: boolean
    color?: boolean
    instructions?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    memories?: boolean | AgentProject$memoriesArgs<ExtArgs>
    _count?: boolean | AgentProjectCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentProject"]>

  export type AgentProjectSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    name?: boolean
    icon?: boolean
    color?: boolean
    instructions?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentProject"]>

  export type AgentProjectSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    name?: boolean
    icon?: boolean
    color?: boolean
    instructions?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentProject"]>

  export type AgentProjectSelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    name?: boolean
    icon?: boolean
    color?: boolean
    instructions?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentProjectOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdById" | "name" | "icon" | "color" | "instructions" | "createdAt" | "updatedAt", ExtArgs["result"]["agentProject"]>
  export type AgentProjectInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    memories?: boolean | AgentProject$memoriesArgs<ExtArgs>
    _count?: boolean | AgentProjectCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AgentProjectIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type AgentProjectIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $AgentProjectPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentProject"
    objects: {
      memories: Prisma.$AgentMemoryPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      createdById: string
      name: string
      /**
       * emoji / lucide icon name（前端做映射），允许空
       */
      icon: string | null
      /**
       * hex 或 Tailwind 色组（red/orange/amber/...）；前端做映射
       */
      color: string | null
      /**
       * 项目级 instructions（注入到该项目下所有 session 的 system prompt）
       */
      instructions: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentProject"]>
    composites: {}
  }

  type AgentProjectGetPayload<S extends boolean | null | undefined | AgentProjectDefaultArgs> = $Result.GetResult<Prisma.$AgentProjectPayload, S>

  type AgentProjectCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentProjectFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentProjectCountAggregateInputType | true
    }

  export interface AgentProjectDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentProject'], meta: { name: 'AgentProject' } }
    /**
     * Find zero or one AgentProject that matches the filter.
     * @param {AgentProjectFindUniqueArgs} args - Arguments to find a AgentProject
     * @example
     * // Get one AgentProject
     * const agentProject = await prisma.agentProject.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentProjectFindUniqueArgs>(args: SelectSubset<T, AgentProjectFindUniqueArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentProject that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentProjectFindUniqueOrThrowArgs} args - Arguments to find a AgentProject
     * @example
     * // Get one AgentProject
     * const agentProject = await prisma.agentProject.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentProjectFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentProjectFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentProject 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 {AgentProjectFindFirstArgs} args - Arguments to find a AgentProject
     * @example
     * // Get one AgentProject
     * const agentProject = await prisma.agentProject.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentProjectFindFirstArgs>(args?: SelectSubset<T, AgentProjectFindFirstArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentProject 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 {AgentProjectFindFirstOrThrowArgs} args - Arguments to find a AgentProject
     * @example
     * // Get one AgentProject
     * const agentProject = await prisma.agentProject.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentProjectFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentProjectFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentProjects 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 {AgentProjectFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentProjects
     * const agentProjects = await prisma.agentProject.findMany()
     * 
     * // Get first 10 AgentProjects
     * const agentProjects = await prisma.agentProject.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentProjectWithIdOnly = await prisma.agentProject.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentProjectFindManyArgs>(args?: SelectSubset<T, AgentProjectFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentProject.
     * @param {AgentProjectCreateArgs} args - Arguments to create a AgentProject.
     * @example
     * // Create one AgentProject
     * const AgentProject = await prisma.agentProject.create({
     *   data: {
     *     // ... data to create a AgentProject
     *   }
     * })
     * 
     */
    create<T extends AgentProjectCreateArgs>(args: SelectSubset<T, AgentProjectCreateArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentProjects.
     * @param {AgentProjectCreateManyArgs} args - Arguments to create many AgentProjects.
     * @example
     * // Create many AgentProjects
     * const agentProject = await prisma.agentProject.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentProjectCreateManyArgs>(args?: SelectSubset<T, AgentProjectCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentProjects and returns the data saved in the database.
     * @param {AgentProjectCreateManyAndReturnArgs} args - Arguments to create many AgentProjects.
     * @example
     * // Create many AgentProjects
     * const agentProject = await prisma.agentProject.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentProjects and only return the `id`
     * const agentProjectWithIdOnly = await prisma.agentProject.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 AgentProjectCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentProjectCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentProject.
     * @param {AgentProjectDeleteArgs} args - Arguments to delete one AgentProject.
     * @example
     * // Delete one AgentProject
     * const AgentProject = await prisma.agentProject.delete({
     *   where: {
     *     // ... filter to delete one AgentProject
     *   }
     * })
     * 
     */
    delete<T extends AgentProjectDeleteArgs>(args: SelectSubset<T, AgentProjectDeleteArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentProject.
     * @param {AgentProjectUpdateArgs} args - Arguments to update one AgentProject.
     * @example
     * // Update one AgentProject
     * const agentProject = await prisma.agentProject.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentProjectUpdateArgs>(args: SelectSubset<T, AgentProjectUpdateArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentProjects.
     * @param {AgentProjectDeleteManyArgs} args - Arguments to filter AgentProjects to delete.
     * @example
     * // Delete a few AgentProjects
     * const { count } = await prisma.agentProject.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentProjectDeleteManyArgs>(args?: SelectSubset<T, AgentProjectDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentProjects.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentProjects
     * const agentProject = await prisma.agentProject.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentProjectUpdateManyArgs>(args: SelectSubset<T, AgentProjectUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentProjects and returns the data updated in the database.
     * @param {AgentProjectUpdateManyAndReturnArgs} args - Arguments to update many AgentProjects.
     * @example
     * // Update many AgentProjects
     * const agentProject = await prisma.agentProject.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentProjects and only return the `id`
     * const agentProjectWithIdOnly = await prisma.agentProject.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 AgentProjectUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentProjectUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentProject.
     * @param {AgentProjectUpsertArgs} args - Arguments to update or create a AgentProject.
     * @example
     * // Update or create a AgentProject
     * const agentProject = await prisma.agentProject.upsert({
     *   create: {
     *     // ... data to create a AgentProject
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentProject we want to update
     *   }
     * })
     */
    upsert<T extends AgentProjectUpsertArgs>(args: SelectSubset<T, AgentProjectUpsertArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentProjects.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectCountArgs} args - Arguments to filter AgentProjects to count.
     * @example
     * // Count the number of AgentProjects
     * const count = await prisma.agentProject.count({
     *   where: {
     *     // ... the filter for the AgentProjects we want to count
     *   }
     * })
    **/
    count<T extends AgentProjectCountArgs>(
      args?: Subset<T, AgentProjectCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentProjectCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentProject.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectAggregateArgs} 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 AgentProjectAggregateArgs>(args: Subset<T, AgentProjectAggregateArgs>): Prisma.PrismaPromise<GetAgentProjectAggregateType<T>>

    /**
     * Group by AgentProject.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectGroupByArgs} 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 AgentProjectGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentProjectGroupByArgs['orderBy'] }
        : { orderBy?: AgentProjectGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentProjectGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentProjectGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentProject model
   */
  readonly fields: AgentProjectFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentProject.
   * 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__AgentProjectClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    memories<T extends AgentProject$memoriesArgs<ExtArgs> = {}>(args?: Subset<T, AgentProject$memoriesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentProject model
   */
  interface AgentProjectFieldRefs {
    readonly id: FieldRef<"AgentProject", 'String'>
    readonly organizationId: FieldRef<"AgentProject", 'String'>
    readonly createdById: FieldRef<"AgentProject", 'String'>
    readonly name: FieldRef<"AgentProject", 'String'>
    readonly icon: FieldRef<"AgentProject", 'String'>
    readonly color: FieldRef<"AgentProject", 'String'>
    readonly instructions: FieldRef<"AgentProject", 'String'>
    readonly createdAt: FieldRef<"AgentProject", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentProject", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentProject findUnique
   */
  export type AgentProjectFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProject to fetch.
     */
    where: AgentProjectWhereUniqueInput
  }

  /**
   * AgentProject findUniqueOrThrow
   */
  export type AgentProjectFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProject to fetch.
     */
    where: AgentProjectWhereUniqueInput
  }

  /**
   * AgentProject findFirst
   */
  export type AgentProjectFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProject to fetch.
     */
    where?: AgentProjectWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProjects to fetch.
     */
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentProjects.
     */
    cursor?: AgentProjectWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProjects 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` AgentProjects.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentProjects.
     */
    distinct?: AgentProjectScalarFieldEnum | AgentProjectScalarFieldEnum[]
  }

  /**
   * AgentProject findFirstOrThrow
   */
  export type AgentProjectFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProject to fetch.
     */
    where?: AgentProjectWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProjects to fetch.
     */
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentProjects.
     */
    cursor?: AgentProjectWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProjects 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` AgentProjects.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentProjects.
     */
    distinct?: AgentProjectScalarFieldEnum | AgentProjectScalarFieldEnum[]
  }

  /**
   * AgentProject findMany
   */
  export type AgentProjectFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProjects to fetch.
     */
    where?: AgentProjectWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProjects to fetch.
     */
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentProjects.
     */
    cursor?: AgentProjectWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProjects 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` AgentProjects.
     */
    skip?: number
    distinct?: AgentProjectScalarFieldEnum | AgentProjectScalarFieldEnum[]
  }

  /**
   * AgentProject create
   */
  export type AgentProjectCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * The data needed to create a AgentProject.
     */
    data: XOR<AgentProjectCreateInput, AgentProjectUncheckedCreateInput>
  }

  /**
   * AgentProject createMany
   */
  export type AgentProjectCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentProjects.
     */
    data: AgentProjectCreateManyInput | AgentProjectCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentProject createManyAndReturn
   */
  export type AgentProjectCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * The data used to create many AgentProjects.
     */
    data: AgentProjectCreateManyInput | AgentProjectCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentProject update
   */
  export type AgentProjectUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * The data needed to update a AgentProject.
     */
    data: XOR<AgentProjectUpdateInput, AgentProjectUncheckedUpdateInput>
    /**
     * Choose, which AgentProject to update.
     */
    where: AgentProjectWhereUniqueInput
  }

  /**
   * AgentProject updateMany
   */
  export type AgentProjectUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentProjects.
     */
    data: XOR<AgentProjectUpdateManyMutationInput, AgentProjectUncheckedUpdateManyInput>
    /**
     * Filter which AgentProjects to update
     */
    where?: AgentProjectWhereInput
    /**
     * Limit how many AgentProjects to update.
     */
    limit?: number
  }

  /**
   * AgentProject updateManyAndReturn
   */
  export type AgentProjectUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * The data used to update AgentProjects.
     */
    data: XOR<AgentProjectUpdateManyMutationInput, AgentProjectUncheckedUpdateManyInput>
    /**
     * Filter which AgentProjects to update
     */
    where?: AgentProjectWhereInput
    /**
     * Limit how many AgentProjects to update.
     */
    limit?: number
  }

  /**
   * AgentProject upsert
   */
  export type AgentProjectUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * The filter to search for the AgentProject to update in case it exists.
     */
    where: AgentProjectWhereUniqueInput
    /**
     * In case the AgentProject found by the `where` argument doesn't exist, create a new AgentProject with this data.
     */
    create: XOR<AgentProjectCreateInput, AgentProjectUncheckedCreateInput>
    /**
     * In case the AgentProject was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentProjectUpdateInput, AgentProjectUncheckedUpdateInput>
  }

  /**
   * AgentProject delete
   */
  export type AgentProjectDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter which AgentProject to delete.
     */
    where: AgentProjectWhereUniqueInput
  }

  /**
   * AgentProject deleteMany
   */
  export type AgentProjectDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentProjects to delete
     */
    where?: AgentProjectWhereInput
    /**
     * Limit how many AgentProjects to delete.
     */
    limit?: number
  }

  /**
   * AgentProject.memories
   */
  export type AgentProject$memoriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    where?: AgentMemoryWhereInput
    orderBy?: AgentMemoryOrderByWithRelationInput | AgentMemoryOrderByWithRelationInput[]
    cursor?: AgentMemoryWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AgentMemoryScalarFieldEnum | AgentMemoryScalarFieldEnum[]
  }

  /**
   * AgentProject without action
   */
  export type AgentProjectDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
  }


  /**
   * Model AgentMemory
   */

  export type AggregateAgentMemory = {
    _count: AgentMemoryCountAggregateOutputType | null
    _min: AgentMemoryMinAggregateOutputType | null
    _max: AgentMemoryMaxAggregateOutputType | null
  }

  export type AgentMemoryMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    ownerScope: $Enums.MemoryOwnerScope | null
    content: string | null
    scope: $Enums.MemoryScope | null
    category: $Enums.MemoryCategory | null
    projectId: string | null
    personaId: string | null
    source: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentMemoryMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    ownerScope: $Enums.MemoryOwnerScope | null
    content: string | null
    scope: $Enums.MemoryScope | null
    category: $Enums.MemoryCategory | null
    projectId: string | null
    personaId: string | null
    source: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentMemoryCountAggregateOutputType = {
    id: number
    organizationId: number
    createdById: number
    ownerScope: number
    content: number
    scope: number
    category: number
    projectId: number
    personaId: number
    source: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentMemoryMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    ownerScope?: true
    content?: true
    scope?: true
    category?: true
    projectId?: true
    personaId?: true
    source?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentMemoryMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    ownerScope?: true
    content?: true
    scope?: true
    category?: true
    projectId?: true
    personaId?: true
    source?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentMemoryCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    ownerScope?: true
    content?: true
    scope?: true
    category?: true
    projectId?: true
    personaId?: true
    source?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentMemoryAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentMemory to aggregate.
     */
    where?: AgentMemoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMemories to fetch.
     */
    orderBy?: AgentMemoryOrderByWithRelationInput | AgentMemoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentMemoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMemories 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` AgentMemories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentMemories
    **/
    _count?: true | AgentMemoryCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentMemoryMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentMemoryMaxAggregateInputType
  }

  export type GetAgentMemoryAggregateType<T extends AgentMemoryAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentMemory]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentMemory[P]>
      : GetScalarType<T[P], AggregateAgentMemory[P]>
  }




  export type AgentMemoryGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentMemoryWhereInput
    orderBy?: AgentMemoryOrderByWithAggregationInput | AgentMemoryOrderByWithAggregationInput[]
    by: AgentMemoryScalarFieldEnum[] | AgentMemoryScalarFieldEnum
    having?: AgentMemoryScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentMemoryCountAggregateInputType | true
    _min?: AgentMemoryMinAggregateInputType
    _max?: AgentMemoryMaxAggregateInputType
  }

  export type AgentMemoryGroupByOutputType = {
    id: string
    organizationId: string
    createdById: string | null
    ownerScope: $Enums.MemoryOwnerScope
    content: string
    scope: $Enums.MemoryScope
    category: $Enums.MemoryCategory
    projectId: string | null
    personaId: string | null
    source: string | null
    createdAt: Date
    updatedAt: Date
    _count: AgentMemoryCountAggregateOutputType | null
    _min: AgentMemoryMinAggregateOutputType | null
    _max: AgentMemoryMaxAggregateOutputType | null
  }

  type GetAgentMemoryGroupByPayload<T extends AgentMemoryGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentMemoryGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentMemoryGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentMemoryGroupByOutputType[P]>
            : GetScalarType<T[P], AgentMemoryGroupByOutputType[P]>
        }
      >
    >


  export type AgentMemorySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    ownerScope?: boolean
    content?: boolean
    scope?: boolean
    category?: boolean
    projectId?: boolean
    personaId?: boolean
    source?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    project?: boolean | AgentMemory$projectArgs<ExtArgs>
    persona?: boolean | AgentMemory$personaArgs<ExtArgs>
  }, ExtArgs["result"]["agentMemory"]>

  export type AgentMemorySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    ownerScope?: boolean
    content?: boolean
    scope?: boolean
    category?: boolean
    projectId?: boolean
    personaId?: boolean
    source?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    project?: boolean | AgentMemory$projectArgs<ExtArgs>
    persona?: boolean | AgentMemory$personaArgs<ExtArgs>
  }, ExtArgs["result"]["agentMemory"]>

  export type AgentMemorySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    ownerScope?: boolean
    content?: boolean
    scope?: boolean
    category?: boolean
    projectId?: boolean
    personaId?: boolean
    source?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    project?: boolean | AgentMemory$projectArgs<ExtArgs>
    persona?: boolean | AgentMemory$personaArgs<ExtArgs>
  }, ExtArgs["result"]["agentMemory"]>

  export type AgentMemorySelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    ownerScope?: boolean
    content?: boolean
    scope?: boolean
    category?: boolean
    projectId?: boolean
    personaId?: boolean
    source?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentMemoryOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdById" | "ownerScope" | "content" | "scope" | "category" | "projectId" | "personaId" | "source" | "createdAt" | "updatedAt", ExtArgs["result"]["agentMemory"]>
  export type AgentMemoryInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    project?: boolean | AgentMemory$projectArgs<ExtArgs>
    persona?: boolean | AgentMemory$personaArgs<ExtArgs>
  }
  export type AgentMemoryIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    project?: boolean | AgentMemory$projectArgs<ExtArgs>
    persona?: boolean | AgentMemory$personaArgs<ExtArgs>
  }
  export type AgentMemoryIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    project?: boolean | AgentMemory$projectArgs<ExtArgs>
    persona?: boolean | AgentMemory$personaArgs<ExtArgs>
  }

  export type $AgentMemoryPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentMemory"
    objects: {
      project: Prisma.$AgentProjectPayload<ExtArgs> | null
      persona: Prisma.$AgentPersonaPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      /**
       * USER 归属时 NOT NULL；ORG 归属时 NULL（DB 约束 + 应用层校验）
       */
      createdById: string | null
      ownerScope: $Enums.MemoryOwnerScope
      content: string
      scope: $Enums.MemoryScope
      category: $Enums.MemoryCategory
      projectId: string | null
      personaId: string | null
      /**
       * 'user' / 'ai-detected' / 'system'
       */
      source: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentMemory"]>
    composites: {}
  }

  type AgentMemoryGetPayload<S extends boolean | null | undefined | AgentMemoryDefaultArgs> = $Result.GetResult<Prisma.$AgentMemoryPayload, S>

  type AgentMemoryCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentMemoryFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentMemoryCountAggregateInputType | true
    }

  export interface AgentMemoryDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentMemory'], meta: { name: 'AgentMemory' } }
    /**
     * Find zero or one AgentMemory that matches the filter.
     * @param {AgentMemoryFindUniqueArgs} args - Arguments to find a AgentMemory
     * @example
     * // Get one AgentMemory
     * const agentMemory = await prisma.agentMemory.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentMemoryFindUniqueArgs>(args: SelectSubset<T, AgentMemoryFindUniqueArgs<ExtArgs>>): Prisma__AgentMemoryClient<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentMemory that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentMemoryFindUniqueOrThrowArgs} args - Arguments to find a AgentMemory
     * @example
     * // Get one AgentMemory
     * const agentMemory = await prisma.agentMemory.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentMemoryFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentMemoryFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentMemoryClient<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentMemory 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 {AgentMemoryFindFirstArgs} args - Arguments to find a AgentMemory
     * @example
     * // Get one AgentMemory
     * const agentMemory = await prisma.agentMemory.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentMemoryFindFirstArgs>(args?: SelectSubset<T, AgentMemoryFindFirstArgs<ExtArgs>>): Prisma__AgentMemoryClient<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentMemory 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 {AgentMemoryFindFirstOrThrowArgs} args - Arguments to find a AgentMemory
     * @example
     * // Get one AgentMemory
     * const agentMemory = await prisma.agentMemory.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentMemoryFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentMemoryFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentMemoryClient<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentMemories 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 {AgentMemoryFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentMemories
     * const agentMemories = await prisma.agentMemory.findMany()
     * 
     * // Get first 10 AgentMemories
     * const agentMemories = await prisma.agentMemory.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentMemoryWithIdOnly = await prisma.agentMemory.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentMemoryFindManyArgs>(args?: SelectSubset<T, AgentMemoryFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentMemory.
     * @param {AgentMemoryCreateArgs} args - Arguments to create a AgentMemory.
     * @example
     * // Create one AgentMemory
     * const AgentMemory = await prisma.agentMemory.create({
     *   data: {
     *     // ... data to create a AgentMemory
     *   }
     * })
     * 
     */
    create<T extends AgentMemoryCreateArgs>(args: SelectSubset<T, AgentMemoryCreateArgs<ExtArgs>>): Prisma__AgentMemoryClient<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentMemories.
     * @param {AgentMemoryCreateManyArgs} args - Arguments to create many AgentMemories.
     * @example
     * // Create many AgentMemories
     * const agentMemory = await prisma.agentMemory.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentMemoryCreateManyArgs>(args?: SelectSubset<T, AgentMemoryCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentMemories and returns the data saved in the database.
     * @param {AgentMemoryCreateManyAndReturnArgs} args - Arguments to create many AgentMemories.
     * @example
     * // Create many AgentMemories
     * const agentMemory = await prisma.agentMemory.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentMemories and only return the `id`
     * const agentMemoryWithIdOnly = await prisma.agentMemory.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 AgentMemoryCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentMemoryCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentMemory.
     * @param {AgentMemoryDeleteArgs} args - Arguments to delete one AgentMemory.
     * @example
     * // Delete one AgentMemory
     * const AgentMemory = await prisma.agentMemory.delete({
     *   where: {
     *     // ... filter to delete one AgentMemory
     *   }
     * })
     * 
     */
    delete<T extends AgentMemoryDeleteArgs>(args: SelectSubset<T, AgentMemoryDeleteArgs<ExtArgs>>): Prisma__AgentMemoryClient<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentMemory.
     * @param {AgentMemoryUpdateArgs} args - Arguments to update one AgentMemory.
     * @example
     * // Update one AgentMemory
     * const agentMemory = await prisma.agentMemory.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentMemoryUpdateArgs>(args: SelectSubset<T, AgentMemoryUpdateArgs<ExtArgs>>): Prisma__AgentMemoryClient<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentMemories.
     * @param {AgentMemoryDeleteManyArgs} args - Arguments to filter AgentMemories to delete.
     * @example
     * // Delete a few AgentMemories
     * const { count } = await prisma.agentMemory.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentMemoryDeleteManyArgs>(args?: SelectSubset<T, AgentMemoryDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentMemories.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMemoryUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentMemories
     * const agentMemory = await prisma.agentMemory.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentMemoryUpdateManyArgs>(args: SelectSubset<T, AgentMemoryUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentMemories and returns the data updated in the database.
     * @param {AgentMemoryUpdateManyAndReturnArgs} args - Arguments to update many AgentMemories.
     * @example
     * // Update many AgentMemories
     * const agentMemory = await prisma.agentMemory.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentMemories and only return the `id`
     * const agentMemoryWithIdOnly = await prisma.agentMemory.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 AgentMemoryUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentMemoryUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentMemory.
     * @param {AgentMemoryUpsertArgs} args - Arguments to update or create a AgentMemory.
     * @example
     * // Update or create a AgentMemory
     * const agentMemory = await prisma.agentMemory.upsert({
     *   create: {
     *     // ... data to create a AgentMemory
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentMemory we want to update
     *   }
     * })
     */
    upsert<T extends AgentMemoryUpsertArgs>(args: SelectSubset<T, AgentMemoryUpsertArgs<ExtArgs>>): Prisma__AgentMemoryClient<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentMemories.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMemoryCountArgs} args - Arguments to filter AgentMemories to count.
     * @example
     * // Count the number of AgentMemories
     * const count = await prisma.agentMemory.count({
     *   where: {
     *     // ... the filter for the AgentMemories we want to count
     *   }
     * })
    **/
    count<T extends AgentMemoryCountArgs>(
      args?: Subset<T, AgentMemoryCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentMemoryCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentMemory.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMemoryAggregateArgs} 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 AgentMemoryAggregateArgs>(args: Subset<T, AgentMemoryAggregateArgs>): Prisma.PrismaPromise<GetAgentMemoryAggregateType<T>>

    /**
     * Group by AgentMemory.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMemoryGroupByArgs} 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 AgentMemoryGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentMemoryGroupByArgs['orderBy'] }
        : { orderBy?: AgentMemoryGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentMemoryGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentMemoryGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentMemory model
   */
  readonly fields: AgentMemoryFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentMemory.
   * 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__AgentMemoryClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    project<T extends AgentMemory$projectArgs<ExtArgs> = {}>(args?: Subset<T, AgentMemory$projectArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    persona<T extends AgentMemory$personaArgs<ExtArgs> = {}>(args?: Subset<T, AgentMemory$personaArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentMemory model
   */
  interface AgentMemoryFieldRefs {
    readonly id: FieldRef<"AgentMemory", 'String'>
    readonly organizationId: FieldRef<"AgentMemory", 'String'>
    readonly createdById: FieldRef<"AgentMemory", 'String'>
    readonly ownerScope: FieldRef<"AgentMemory", 'MemoryOwnerScope'>
    readonly content: FieldRef<"AgentMemory", 'String'>
    readonly scope: FieldRef<"AgentMemory", 'MemoryScope'>
    readonly category: FieldRef<"AgentMemory", 'MemoryCategory'>
    readonly projectId: FieldRef<"AgentMemory", 'String'>
    readonly personaId: FieldRef<"AgentMemory", 'String'>
    readonly source: FieldRef<"AgentMemory", 'String'>
    readonly createdAt: FieldRef<"AgentMemory", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentMemory", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentMemory findUnique
   */
  export type AgentMemoryFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * Filter, which AgentMemory to fetch.
     */
    where: AgentMemoryWhereUniqueInput
  }

  /**
   * AgentMemory findUniqueOrThrow
   */
  export type AgentMemoryFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * Filter, which AgentMemory to fetch.
     */
    where: AgentMemoryWhereUniqueInput
  }

  /**
   * AgentMemory findFirst
   */
  export type AgentMemoryFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * Filter, which AgentMemory to fetch.
     */
    where?: AgentMemoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMemories to fetch.
     */
    orderBy?: AgentMemoryOrderByWithRelationInput | AgentMemoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentMemories.
     */
    cursor?: AgentMemoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMemories 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` AgentMemories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentMemories.
     */
    distinct?: AgentMemoryScalarFieldEnum | AgentMemoryScalarFieldEnum[]
  }

  /**
   * AgentMemory findFirstOrThrow
   */
  export type AgentMemoryFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * Filter, which AgentMemory to fetch.
     */
    where?: AgentMemoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMemories to fetch.
     */
    orderBy?: AgentMemoryOrderByWithRelationInput | AgentMemoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentMemories.
     */
    cursor?: AgentMemoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMemories 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` AgentMemories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentMemories.
     */
    distinct?: AgentMemoryScalarFieldEnum | AgentMemoryScalarFieldEnum[]
  }

  /**
   * AgentMemory findMany
   */
  export type AgentMemoryFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * Filter, which AgentMemories to fetch.
     */
    where?: AgentMemoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMemories to fetch.
     */
    orderBy?: AgentMemoryOrderByWithRelationInput | AgentMemoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentMemories.
     */
    cursor?: AgentMemoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMemories 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` AgentMemories.
     */
    skip?: number
    distinct?: AgentMemoryScalarFieldEnum | AgentMemoryScalarFieldEnum[]
  }

  /**
   * AgentMemory create
   */
  export type AgentMemoryCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * The data needed to create a AgentMemory.
     */
    data: XOR<AgentMemoryCreateInput, AgentMemoryUncheckedCreateInput>
  }

  /**
   * AgentMemory createMany
   */
  export type AgentMemoryCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentMemories.
     */
    data: AgentMemoryCreateManyInput | AgentMemoryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentMemory createManyAndReturn
   */
  export type AgentMemoryCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * The data used to create many AgentMemories.
     */
    data: AgentMemoryCreateManyInput | AgentMemoryCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentMemory update
   */
  export type AgentMemoryUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * The data needed to update a AgentMemory.
     */
    data: XOR<AgentMemoryUpdateInput, AgentMemoryUncheckedUpdateInput>
    /**
     * Choose, which AgentMemory to update.
     */
    where: AgentMemoryWhereUniqueInput
  }

  /**
   * AgentMemory updateMany
   */
  export type AgentMemoryUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentMemories.
     */
    data: XOR<AgentMemoryUpdateManyMutationInput, AgentMemoryUncheckedUpdateManyInput>
    /**
     * Filter which AgentMemories to update
     */
    where?: AgentMemoryWhereInput
    /**
     * Limit how many AgentMemories to update.
     */
    limit?: number
  }

  /**
   * AgentMemory updateManyAndReturn
   */
  export type AgentMemoryUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * The data used to update AgentMemories.
     */
    data: XOR<AgentMemoryUpdateManyMutationInput, AgentMemoryUncheckedUpdateManyInput>
    /**
     * Filter which AgentMemories to update
     */
    where?: AgentMemoryWhereInput
    /**
     * Limit how many AgentMemories to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentMemory upsert
   */
  export type AgentMemoryUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * The filter to search for the AgentMemory to update in case it exists.
     */
    where: AgentMemoryWhereUniqueInput
    /**
     * In case the AgentMemory found by the `where` argument doesn't exist, create a new AgentMemory with this data.
     */
    create: XOR<AgentMemoryCreateInput, AgentMemoryUncheckedCreateInput>
    /**
     * In case the AgentMemory was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentMemoryUpdateInput, AgentMemoryUncheckedUpdateInput>
  }

  /**
   * AgentMemory delete
   */
  export type AgentMemoryDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    /**
     * Filter which AgentMemory to delete.
     */
    where: AgentMemoryWhereUniqueInput
  }

  /**
   * AgentMemory deleteMany
   */
  export type AgentMemoryDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentMemories to delete
     */
    where?: AgentMemoryWhereInput
    /**
     * Limit how many AgentMemories to delete.
     */
    limit?: number
  }

  /**
   * AgentMemory.project
   */
  export type AgentMemory$projectArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    where?: AgentProjectWhereInput
  }

  /**
   * AgentMemory.persona
   */
  export type AgentMemory$personaArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    where?: AgentPersonaWhereInput
  }

  /**
   * AgentMemory without action
   */
  export type AgentMemoryDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
  }


  /**
   * Model AgentPersona
   */

  export type AggregateAgentPersona = {
    _count: AgentPersonaCountAggregateOutputType | null
    _min: AgentPersonaMinAggregateOutputType | null
    _max: AgentPersonaMaxAggregateOutputType | null
  }

  export type AgentPersonaMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    systemKey: string | null
    name: string | null
    icon: string | null
    description: string | null
    instructions: string | null
    enabled: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentPersonaMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    systemKey: string | null
    name: string | null
    icon: string | null
    description: string | null
    instructions: string | null
    enabled: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentPersonaCountAggregateOutputType = {
    id: number
    organizationId: number
    createdById: number
    systemKey: number
    name: number
    icon: number
    description: number
    instructions: number
    allowedTools: number
    enabled: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentPersonaMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    systemKey?: true
    name?: true
    icon?: true
    description?: true
    instructions?: true
    enabled?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentPersonaMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    systemKey?: true
    name?: true
    icon?: true
    description?: true
    instructions?: true
    enabled?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentPersonaCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    systemKey?: true
    name?: true
    icon?: true
    description?: true
    instructions?: true
    allowedTools?: true
    enabled?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentPersonaAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentPersona to aggregate.
     */
    where?: AgentPersonaWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentPersonas to fetch.
     */
    orderBy?: AgentPersonaOrderByWithRelationInput | AgentPersonaOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentPersonaWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentPersonas 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` AgentPersonas.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentPersonas
    **/
    _count?: true | AgentPersonaCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentPersonaMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentPersonaMaxAggregateInputType
  }

  export type GetAgentPersonaAggregateType<T extends AgentPersonaAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentPersona]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentPersona[P]>
      : GetScalarType<T[P], AggregateAgentPersona[P]>
  }




  export type AgentPersonaGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentPersonaWhereInput
    orderBy?: AgentPersonaOrderByWithAggregationInput | AgentPersonaOrderByWithAggregationInput[]
    by: AgentPersonaScalarFieldEnum[] | AgentPersonaScalarFieldEnum
    having?: AgentPersonaScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentPersonaCountAggregateInputType | true
    _min?: AgentPersonaMinAggregateInputType
    _max?: AgentPersonaMaxAggregateInputType
  }

  export type AgentPersonaGroupByOutputType = {
    id: string
    organizationId: string
    createdById: string | null
    systemKey: string | null
    name: string
    icon: string | null
    description: string | null
    instructions: string | null
    allowedTools: string[]
    enabled: boolean
    createdAt: Date
    updatedAt: Date
    _count: AgentPersonaCountAggregateOutputType | null
    _min: AgentPersonaMinAggregateOutputType | null
    _max: AgentPersonaMaxAggregateOutputType | null
  }

  type GetAgentPersonaGroupByPayload<T extends AgentPersonaGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentPersonaGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentPersonaGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentPersonaGroupByOutputType[P]>
            : GetScalarType<T[P], AgentPersonaGroupByOutputType[P]>
        }
      >
    >


  export type AgentPersonaSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    systemKey?: boolean
    name?: boolean
    icon?: boolean
    description?: boolean
    instructions?: boolean
    allowedTools?: boolean
    enabled?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    memories?: boolean | AgentPersona$memoriesArgs<ExtArgs>
    sessions?: boolean | AgentPersona$sessionsArgs<ExtArgs>
    _count?: boolean | AgentPersonaCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentPersona"]>

  export type AgentPersonaSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    systemKey?: boolean
    name?: boolean
    icon?: boolean
    description?: boolean
    instructions?: boolean
    allowedTools?: boolean
    enabled?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentPersona"]>

  export type AgentPersonaSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    systemKey?: boolean
    name?: boolean
    icon?: boolean
    description?: boolean
    instructions?: boolean
    allowedTools?: boolean
    enabled?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentPersona"]>

  export type AgentPersonaSelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    systemKey?: boolean
    name?: boolean
    icon?: boolean
    description?: boolean
    instructions?: boolean
    allowedTools?: boolean
    enabled?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentPersonaOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdById" | "systemKey" | "name" | "icon" | "description" | "instructions" | "allowedTools" | "enabled" | "createdAt" | "updatedAt", ExtArgs["result"]["agentPersona"]>
  export type AgentPersonaInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    memories?: boolean | AgentPersona$memoriesArgs<ExtArgs>
    sessions?: boolean | AgentPersona$sessionsArgs<ExtArgs>
    _count?: boolean | AgentPersonaCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AgentPersonaIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type AgentPersonaIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $AgentPersonaPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentPersona"
    objects: {
      memories: Prisma.$AgentMemoryPayload<ExtArgs>[]
      sessions: Prisma.$AgentSessionPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      /**
       * NULL = 系统预设（org 内所有人可见）；非 NULL = 用户自创（仅自己可见）
       */
      createdById: string | null
      /**
       * 系统预设的稳定标识（如 'code-reviewer' / 'writer'）；用户自创为 NULL
       * 用于种子幂等 + 跨 org 复制
       */
      systemKey: string | null
      name: string
      /**
       * emoji（"🧑‍💻"）或 lucide 图标名（"code"），前端做映射
       */
      icon: string | null
      /**
       * 一句话说明（show in sidebar tooltip / picker）
       */
      description: string | null
      /**
       * 注入到 system prompt 的核心 instruction
       */
      instructions: string | null
      /**
       * 工具白名单（tool name list），空数组 = 不限（继承全部可用工具）
       */
      allowedTools: string[]
      /**
       * 是否启用（用户可隐藏不想看的预设；系统预设删除走 enabled=false 而非真删）
       */
      enabled: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentPersona"]>
    composites: {}
  }

  type AgentPersonaGetPayload<S extends boolean | null | undefined | AgentPersonaDefaultArgs> = $Result.GetResult<Prisma.$AgentPersonaPayload, S>

  type AgentPersonaCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentPersonaFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentPersonaCountAggregateInputType | true
    }

  export interface AgentPersonaDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentPersona'], meta: { name: 'AgentPersona' } }
    /**
     * Find zero or one AgentPersona that matches the filter.
     * @param {AgentPersonaFindUniqueArgs} args - Arguments to find a AgentPersona
     * @example
     * // Get one AgentPersona
     * const agentPersona = await prisma.agentPersona.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentPersonaFindUniqueArgs>(args: SelectSubset<T, AgentPersonaFindUniqueArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentPersona that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentPersonaFindUniqueOrThrowArgs} args - Arguments to find a AgentPersona
     * @example
     * // Get one AgentPersona
     * const agentPersona = await prisma.agentPersona.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentPersonaFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentPersonaFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentPersona 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 {AgentPersonaFindFirstArgs} args - Arguments to find a AgentPersona
     * @example
     * // Get one AgentPersona
     * const agentPersona = await prisma.agentPersona.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentPersonaFindFirstArgs>(args?: SelectSubset<T, AgentPersonaFindFirstArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentPersona 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 {AgentPersonaFindFirstOrThrowArgs} args - Arguments to find a AgentPersona
     * @example
     * // Get one AgentPersona
     * const agentPersona = await prisma.agentPersona.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentPersonaFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentPersonaFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentPersonas 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 {AgentPersonaFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentPersonas
     * const agentPersonas = await prisma.agentPersona.findMany()
     * 
     * // Get first 10 AgentPersonas
     * const agentPersonas = await prisma.agentPersona.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentPersonaWithIdOnly = await prisma.agentPersona.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentPersonaFindManyArgs>(args?: SelectSubset<T, AgentPersonaFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentPersona.
     * @param {AgentPersonaCreateArgs} args - Arguments to create a AgentPersona.
     * @example
     * // Create one AgentPersona
     * const AgentPersona = await prisma.agentPersona.create({
     *   data: {
     *     // ... data to create a AgentPersona
     *   }
     * })
     * 
     */
    create<T extends AgentPersonaCreateArgs>(args: SelectSubset<T, AgentPersonaCreateArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentPersonas.
     * @param {AgentPersonaCreateManyArgs} args - Arguments to create many AgentPersonas.
     * @example
     * // Create many AgentPersonas
     * const agentPersona = await prisma.agentPersona.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentPersonaCreateManyArgs>(args?: SelectSubset<T, AgentPersonaCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentPersonas and returns the data saved in the database.
     * @param {AgentPersonaCreateManyAndReturnArgs} args - Arguments to create many AgentPersonas.
     * @example
     * // Create many AgentPersonas
     * const agentPersona = await prisma.agentPersona.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentPersonas and only return the `id`
     * const agentPersonaWithIdOnly = await prisma.agentPersona.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 AgentPersonaCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentPersonaCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentPersona.
     * @param {AgentPersonaDeleteArgs} args - Arguments to delete one AgentPersona.
     * @example
     * // Delete one AgentPersona
     * const AgentPersona = await prisma.agentPersona.delete({
     *   where: {
     *     // ... filter to delete one AgentPersona
     *   }
     * })
     * 
     */
    delete<T extends AgentPersonaDeleteArgs>(args: SelectSubset<T, AgentPersonaDeleteArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentPersona.
     * @param {AgentPersonaUpdateArgs} args - Arguments to update one AgentPersona.
     * @example
     * // Update one AgentPersona
     * const agentPersona = await prisma.agentPersona.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentPersonaUpdateArgs>(args: SelectSubset<T, AgentPersonaUpdateArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentPersonas.
     * @param {AgentPersonaDeleteManyArgs} args - Arguments to filter AgentPersonas to delete.
     * @example
     * // Delete a few AgentPersonas
     * const { count } = await prisma.agentPersona.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentPersonaDeleteManyArgs>(args?: SelectSubset<T, AgentPersonaDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentPersonas.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentPersonaUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentPersonas
     * const agentPersona = await prisma.agentPersona.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentPersonaUpdateManyArgs>(args: SelectSubset<T, AgentPersonaUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentPersonas and returns the data updated in the database.
     * @param {AgentPersonaUpdateManyAndReturnArgs} args - Arguments to update many AgentPersonas.
     * @example
     * // Update many AgentPersonas
     * const agentPersona = await prisma.agentPersona.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentPersonas and only return the `id`
     * const agentPersonaWithIdOnly = await prisma.agentPersona.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 AgentPersonaUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentPersonaUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentPersona.
     * @param {AgentPersonaUpsertArgs} args - Arguments to update or create a AgentPersona.
     * @example
     * // Update or create a AgentPersona
     * const agentPersona = await prisma.agentPersona.upsert({
     *   create: {
     *     // ... data to create a AgentPersona
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentPersona we want to update
     *   }
     * })
     */
    upsert<T extends AgentPersonaUpsertArgs>(args: SelectSubset<T, AgentPersonaUpsertArgs<ExtArgs>>): Prisma__AgentPersonaClient<$Result.GetResult<Prisma.$AgentPersonaPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentPersonas.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentPersonaCountArgs} args - Arguments to filter AgentPersonas to count.
     * @example
     * // Count the number of AgentPersonas
     * const count = await prisma.agentPersona.count({
     *   where: {
     *     // ... the filter for the AgentPersonas we want to count
     *   }
     * })
    **/
    count<T extends AgentPersonaCountArgs>(
      args?: Subset<T, AgentPersonaCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentPersonaCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentPersona.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentPersonaAggregateArgs} 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 AgentPersonaAggregateArgs>(args: Subset<T, AgentPersonaAggregateArgs>): Prisma.PrismaPromise<GetAgentPersonaAggregateType<T>>

    /**
     * Group by AgentPersona.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentPersonaGroupByArgs} 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 AgentPersonaGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentPersonaGroupByArgs['orderBy'] }
        : { orderBy?: AgentPersonaGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentPersonaGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentPersonaGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentPersona model
   */
  readonly fields: AgentPersonaFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentPersona.
   * 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__AgentPersonaClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    memories<T extends AgentPersona$memoriesArgs<ExtArgs> = {}>(args?: Subset<T, AgentPersona$memoriesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMemoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    sessions<T extends AgentPersona$sessionsArgs<ExtArgs> = {}>(args?: Subset<T, AgentPersona$sessionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentPersona model
   */
  interface AgentPersonaFieldRefs {
    readonly id: FieldRef<"AgentPersona", 'String'>
    readonly organizationId: FieldRef<"AgentPersona", 'String'>
    readonly createdById: FieldRef<"AgentPersona", 'String'>
    readonly systemKey: FieldRef<"AgentPersona", 'String'>
    readonly name: FieldRef<"AgentPersona", 'String'>
    readonly icon: FieldRef<"AgentPersona", 'String'>
    readonly description: FieldRef<"AgentPersona", 'String'>
    readonly instructions: FieldRef<"AgentPersona", 'String'>
    readonly allowedTools: FieldRef<"AgentPersona", 'String[]'>
    readonly enabled: FieldRef<"AgentPersona", 'Boolean'>
    readonly createdAt: FieldRef<"AgentPersona", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentPersona", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentPersona findUnique
   */
  export type AgentPersonaFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * Filter, which AgentPersona to fetch.
     */
    where: AgentPersonaWhereUniqueInput
  }

  /**
   * AgentPersona findUniqueOrThrow
   */
  export type AgentPersonaFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * Filter, which AgentPersona to fetch.
     */
    where: AgentPersonaWhereUniqueInput
  }

  /**
   * AgentPersona findFirst
   */
  export type AgentPersonaFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * Filter, which AgentPersona to fetch.
     */
    where?: AgentPersonaWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentPersonas to fetch.
     */
    orderBy?: AgentPersonaOrderByWithRelationInput | AgentPersonaOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentPersonas.
     */
    cursor?: AgentPersonaWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentPersonas 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` AgentPersonas.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentPersonas.
     */
    distinct?: AgentPersonaScalarFieldEnum | AgentPersonaScalarFieldEnum[]
  }

  /**
   * AgentPersona findFirstOrThrow
   */
  export type AgentPersonaFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * Filter, which AgentPersona to fetch.
     */
    where?: AgentPersonaWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentPersonas to fetch.
     */
    orderBy?: AgentPersonaOrderByWithRelationInput | AgentPersonaOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentPersonas.
     */
    cursor?: AgentPersonaWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentPersonas 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` AgentPersonas.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentPersonas.
     */
    distinct?: AgentPersonaScalarFieldEnum | AgentPersonaScalarFieldEnum[]
  }

  /**
   * AgentPersona findMany
   */
  export type AgentPersonaFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * Filter, which AgentPersonas to fetch.
     */
    where?: AgentPersonaWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentPersonas to fetch.
     */
    orderBy?: AgentPersonaOrderByWithRelationInput | AgentPersonaOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentPersonas.
     */
    cursor?: AgentPersonaWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentPersonas 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` AgentPersonas.
     */
    skip?: number
    distinct?: AgentPersonaScalarFieldEnum | AgentPersonaScalarFieldEnum[]
  }

  /**
   * AgentPersona create
   */
  export type AgentPersonaCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * The data needed to create a AgentPersona.
     */
    data: XOR<AgentPersonaCreateInput, AgentPersonaUncheckedCreateInput>
  }

  /**
   * AgentPersona createMany
   */
  export type AgentPersonaCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentPersonas.
     */
    data: AgentPersonaCreateManyInput | AgentPersonaCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentPersona createManyAndReturn
   */
  export type AgentPersonaCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * The data used to create many AgentPersonas.
     */
    data: AgentPersonaCreateManyInput | AgentPersonaCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentPersona update
   */
  export type AgentPersonaUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * The data needed to update a AgentPersona.
     */
    data: XOR<AgentPersonaUpdateInput, AgentPersonaUncheckedUpdateInput>
    /**
     * Choose, which AgentPersona to update.
     */
    where: AgentPersonaWhereUniqueInput
  }

  /**
   * AgentPersona updateMany
   */
  export type AgentPersonaUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentPersonas.
     */
    data: XOR<AgentPersonaUpdateManyMutationInput, AgentPersonaUncheckedUpdateManyInput>
    /**
     * Filter which AgentPersonas to update
     */
    where?: AgentPersonaWhereInput
    /**
     * Limit how many AgentPersonas to update.
     */
    limit?: number
  }

  /**
   * AgentPersona updateManyAndReturn
   */
  export type AgentPersonaUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * The data used to update AgentPersonas.
     */
    data: XOR<AgentPersonaUpdateManyMutationInput, AgentPersonaUncheckedUpdateManyInput>
    /**
     * Filter which AgentPersonas to update
     */
    where?: AgentPersonaWhereInput
    /**
     * Limit how many AgentPersonas to update.
     */
    limit?: number
  }

  /**
   * AgentPersona upsert
   */
  export type AgentPersonaUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * The filter to search for the AgentPersona to update in case it exists.
     */
    where: AgentPersonaWhereUniqueInput
    /**
     * In case the AgentPersona found by the `where` argument doesn't exist, create a new AgentPersona with this data.
     */
    create: XOR<AgentPersonaCreateInput, AgentPersonaUncheckedCreateInput>
    /**
     * In case the AgentPersona was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentPersonaUpdateInput, AgentPersonaUncheckedUpdateInput>
  }

  /**
   * AgentPersona delete
   */
  export type AgentPersonaDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
    /**
     * Filter which AgentPersona to delete.
     */
    where: AgentPersonaWhereUniqueInput
  }

  /**
   * AgentPersona deleteMany
   */
  export type AgentPersonaDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentPersonas to delete
     */
    where?: AgentPersonaWhereInput
    /**
     * Limit how many AgentPersonas to delete.
     */
    limit?: number
  }

  /**
   * AgentPersona.memories
   */
  export type AgentPersona$memoriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMemory
     */
    select?: AgentMemorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMemory
     */
    omit?: AgentMemoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentMemoryInclude<ExtArgs> | null
    where?: AgentMemoryWhereInput
    orderBy?: AgentMemoryOrderByWithRelationInput | AgentMemoryOrderByWithRelationInput[]
    cursor?: AgentMemoryWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AgentMemoryScalarFieldEnum | AgentMemoryScalarFieldEnum[]
  }

  /**
   * AgentPersona.sessions
   */
  export type AgentPersona$sessionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentSession
     */
    select?: AgentSessionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentSession
     */
    omit?: AgentSessionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentSessionInclude<ExtArgs> | null
    where?: AgentSessionWhereInput
    orderBy?: AgentSessionOrderByWithRelationInput | AgentSessionOrderByWithRelationInput[]
    cursor?: AgentSessionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AgentSessionScalarFieldEnum | AgentSessionScalarFieldEnum[]
  }

  /**
   * AgentPersona without action
   */
  export type AgentPersonaDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentPersona
     */
    select?: AgentPersonaSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentPersona
     */
    omit?: AgentPersonaOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentPersonaInclude<ExtArgs> | null
  }


  /**
   * Model AgentCron
   */

  export type AggregateAgentCron = {
    _count: AgentCronCountAggregateOutputType | null
    _avg: AgentCronAvgAggregateOutputType | null
    _sum: AgentCronSumAggregateOutputType | null
    _min: AgentCronMinAggregateOutputType | null
    _max: AgentCronMaxAggregateOutputType | null
  }

  export type AgentCronAvgAggregateOutputType = {
    runCount: number | null
    failCount: number | null
  }

  export type AgentCronSumAggregateOutputType = {
    runCount: number | null
    failCount: number | null
  }

  export type AgentCronMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    sessionId: string | null
    name: string | null
    cronExpr: string | null
    prompt: string | null
    enabled: boolean | null
    lastRunAt: Date | null
    nextRunAt: Date | null
    runCount: number | null
    failCount: number | null
    lastError: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentCronMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    sessionId: string | null
    name: string | null
    cronExpr: string | null
    prompt: string | null
    enabled: boolean | null
    lastRunAt: Date | null
    nextRunAt: Date | null
    runCount: number | null
    failCount: number | null
    lastError: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentCronCountAggregateOutputType = {
    id: number
    organizationId: number
    createdById: number
    sessionId: number
    name: number
    cronExpr: number
    prompt: number
    enabled: number
    lastRunAt: number
    nextRunAt: number
    runCount: number
    failCount: number
    lastError: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentCronAvgAggregateInputType = {
    runCount?: true
    failCount?: true
  }

  export type AgentCronSumAggregateInputType = {
    runCount?: true
    failCount?: true
  }

  export type AgentCronMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    sessionId?: true
    name?: true
    cronExpr?: true
    prompt?: true
    enabled?: true
    lastRunAt?: true
    nextRunAt?: true
    runCount?: true
    failCount?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentCronMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    sessionId?: true
    name?: true
    cronExpr?: true
    prompt?: true
    enabled?: true
    lastRunAt?: true
    nextRunAt?: true
    runCount?: true
    failCount?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentCronCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    sessionId?: true
    name?: true
    cronExpr?: true
    prompt?: true
    enabled?: true
    lastRunAt?: true
    nextRunAt?: true
    runCount?: true
    failCount?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentCronAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentCron to aggregate.
     */
    where?: AgentCronWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentCrons to fetch.
     */
    orderBy?: AgentCronOrderByWithRelationInput | AgentCronOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentCronWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentCrons 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` AgentCrons.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentCrons
    **/
    _count?: true | AgentCronCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentCronAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentCronSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentCronMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentCronMaxAggregateInputType
  }

  export type GetAgentCronAggregateType<T extends AgentCronAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentCron]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentCron[P]>
      : GetScalarType<T[P], AggregateAgentCron[P]>
  }




  export type AgentCronGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentCronWhereInput
    orderBy?: AgentCronOrderByWithAggregationInput | AgentCronOrderByWithAggregationInput[]
    by: AgentCronScalarFieldEnum[] | AgentCronScalarFieldEnum
    having?: AgentCronScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentCronCountAggregateInputType | true
    _avg?: AgentCronAvgAggregateInputType
    _sum?: AgentCronSumAggregateInputType
    _min?: AgentCronMinAggregateInputType
    _max?: AgentCronMaxAggregateInputType
  }

  export type AgentCronGroupByOutputType = {
    id: string
    organizationId: string
    createdById: string
    sessionId: string
    name: string
    cronExpr: string
    prompt: string
    enabled: boolean
    lastRunAt: Date | null
    nextRunAt: Date
    runCount: number
    failCount: number
    lastError: string | null
    createdAt: Date
    updatedAt: Date
    _count: AgentCronCountAggregateOutputType | null
    _avg: AgentCronAvgAggregateOutputType | null
    _sum: AgentCronSumAggregateOutputType | null
    _min: AgentCronMinAggregateOutputType | null
    _max: AgentCronMaxAggregateOutputType | null
  }

  type GetAgentCronGroupByPayload<T extends AgentCronGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentCronGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentCronGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentCronGroupByOutputType[P]>
            : GetScalarType<T[P], AgentCronGroupByOutputType[P]>
        }
      >
    >


  export type AgentCronSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    sessionId?: boolean
    name?: boolean
    cronExpr?: boolean
    prompt?: boolean
    enabled?: boolean
    lastRunAt?: boolean
    nextRunAt?: boolean
    runCount?: boolean
    failCount?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentCron"]>

  export type AgentCronSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    sessionId?: boolean
    name?: boolean
    cronExpr?: boolean
    prompt?: boolean
    enabled?: boolean
    lastRunAt?: boolean
    nextRunAt?: boolean
    runCount?: boolean
    failCount?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentCron"]>

  export type AgentCronSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    sessionId?: boolean
    name?: boolean
    cronExpr?: boolean
    prompt?: boolean
    enabled?: boolean
    lastRunAt?: boolean
    nextRunAt?: boolean
    runCount?: boolean
    failCount?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentCron"]>

  export type AgentCronSelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    sessionId?: boolean
    name?: boolean
    cronExpr?: boolean
    prompt?: boolean
    enabled?: boolean
    lastRunAt?: boolean
    nextRunAt?: boolean
    runCount?: boolean
    failCount?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentCronOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdById" | "sessionId" | "name" | "cronExpr" | "prompt" | "enabled" | "lastRunAt" | "nextRunAt" | "runCount" | "failCount" | "lastError" | "createdAt" | "updatedAt", ExtArgs["result"]["agentCron"]>
  export type AgentCronInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }
  export type AgentCronIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }
  export type AgentCronIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    session?: boolean | AgentSessionDefaultArgs<ExtArgs>
  }

  export type $AgentCronPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentCron"
    objects: {
      session: Prisma.$AgentSessionPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      createdById: string
      /**
       * 触发后结果落到的 session（必须先有 session，cron 不自己建 session 避免脏数据）
       * FK + onDelete:Cascade —— session 硬删时 cron 跟着删（cron 没归属 session 就是脏数据）
       */
      sessionId: string
      name: string
      /**
       * 标准 5/6 字段 cron 表达式（POSIX；LLM 帮用户从中文 / 自然语言转换）
       */
      cronExpr: string
      /**
       * 触发时喂给 LLM 的 prompt
       */
      prompt: string
      enabled: boolean
      /**
       * 上次实际执行时间（成功 / 失败都记）
       */
      lastRunAt: Date | null
      /**
       * 下次预定执行时间（每次 fire 后用 cron-parser 算下一个）
       */
      nextRunAt: Date
      /**
       * 累计运行次数（用于 sanity + per-cron quota）
       */
      runCount: number
      /**
       * 累计失败次数
       */
      failCount: number
      /**
       * 最近一次失败信息（脱敏）
       */
      lastError: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentCron"]>
    composites: {}
  }

  type AgentCronGetPayload<S extends boolean | null | undefined | AgentCronDefaultArgs> = $Result.GetResult<Prisma.$AgentCronPayload, S>

  type AgentCronCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentCronFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentCronCountAggregateInputType | true
    }

  export interface AgentCronDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentCron'], meta: { name: 'AgentCron' } }
    /**
     * Find zero or one AgentCron that matches the filter.
     * @param {AgentCronFindUniqueArgs} args - Arguments to find a AgentCron
     * @example
     * // Get one AgentCron
     * const agentCron = await prisma.agentCron.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentCronFindUniqueArgs>(args: SelectSubset<T, AgentCronFindUniqueArgs<ExtArgs>>): Prisma__AgentCronClient<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentCron that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentCronFindUniqueOrThrowArgs} args - Arguments to find a AgentCron
     * @example
     * // Get one AgentCron
     * const agentCron = await prisma.agentCron.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentCronFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentCronFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentCronClient<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentCron 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 {AgentCronFindFirstArgs} args - Arguments to find a AgentCron
     * @example
     * // Get one AgentCron
     * const agentCron = await prisma.agentCron.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentCronFindFirstArgs>(args?: SelectSubset<T, AgentCronFindFirstArgs<ExtArgs>>): Prisma__AgentCronClient<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentCron 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 {AgentCronFindFirstOrThrowArgs} args - Arguments to find a AgentCron
     * @example
     * // Get one AgentCron
     * const agentCron = await prisma.agentCron.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentCronFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentCronFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentCronClient<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentCrons 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 {AgentCronFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentCrons
     * const agentCrons = await prisma.agentCron.findMany()
     * 
     * // Get first 10 AgentCrons
     * const agentCrons = await prisma.agentCron.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentCronWithIdOnly = await prisma.agentCron.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentCronFindManyArgs>(args?: SelectSubset<T, AgentCronFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentCron.
     * @param {AgentCronCreateArgs} args - Arguments to create a AgentCron.
     * @example
     * // Create one AgentCron
     * const AgentCron = await prisma.agentCron.create({
     *   data: {
     *     // ... data to create a AgentCron
     *   }
     * })
     * 
     */
    create<T extends AgentCronCreateArgs>(args: SelectSubset<T, AgentCronCreateArgs<ExtArgs>>): Prisma__AgentCronClient<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentCrons.
     * @param {AgentCronCreateManyArgs} args - Arguments to create many AgentCrons.
     * @example
     * // Create many AgentCrons
     * const agentCron = await prisma.agentCron.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentCronCreateManyArgs>(args?: SelectSubset<T, AgentCronCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentCrons and returns the data saved in the database.
     * @param {AgentCronCreateManyAndReturnArgs} args - Arguments to create many AgentCrons.
     * @example
     * // Create many AgentCrons
     * const agentCron = await prisma.agentCron.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentCrons and only return the `id`
     * const agentCronWithIdOnly = await prisma.agentCron.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 AgentCronCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentCronCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentCron.
     * @param {AgentCronDeleteArgs} args - Arguments to delete one AgentCron.
     * @example
     * // Delete one AgentCron
     * const AgentCron = await prisma.agentCron.delete({
     *   where: {
     *     // ... filter to delete one AgentCron
     *   }
     * })
     * 
     */
    delete<T extends AgentCronDeleteArgs>(args: SelectSubset<T, AgentCronDeleteArgs<ExtArgs>>): Prisma__AgentCronClient<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentCron.
     * @param {AgentCronUpdateArgs} args - Arguments to update one AgentCron.
     * @example
     * // Update one AgentCron
     * const agentCron = await prisma.agentCron.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentCronUpdateArgs>(args: SelectSubset<T, AgentCronUpdateArgs<ExtArgs>>): Prisma__AgentCronClient<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentCrons.
     * @param {AgentCronDeleteManyArgs} args - Arguments to filter AgentCrons to delete.
     * @example
     * // Delete a few AgentCrons
     * const { count } = await prisma.agentCron.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentCronDeleteManyArgs>(args?: SelectSubset<T, AgentCronDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentCrons.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentCronUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentCrons
     * const agentCron = await prisma.agentCron.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentCronUpdateManyArgs>(args: SelectSubset<T, AgentCronUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentCrons and returns the data updated in the database.
     * @param {AgentCronUpdateManyAndReturnArgs} args - Arguments to update many AgentCrons.
     * @example
     * // Update many AgentCrons
     * const agentCron = await prisma.agentCron.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentCrons and only return the `id`
     * const agentCronWithIdOnly = await prisma.agentCron.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 AgentCronUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentCronUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentCron.
     * @param {AgentCronUpsertArgs} args - Arguments to update or create a AgentCron.
     * @example
     * // Update or create a AgentCron
     * const agentCron = await prisma.agentCron.upsert({
     *   create: {
     *     // ... data to create a AgentCron
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentCron we want to update
     *   }
     * })
     */
    upsert<T extends AgentCronUpsertArgs>(args: SelectSubset<T, AgentCronUpsertArgs<ExtArgs>>): Prisma__AgentCronClient<$Result.GetResult<Prisma.$AgentCronPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentCrons.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentCronCountArgs} args - Arguments to filter AgentCrons to count.
     * @example
     * // Count the number of AgentCrons
     * const count = await prisma.agentCron.count({
     *   where: {
     *     // ... the filter for the AgentCrons we want to count
     *   }
     * })
    **/
    count<T extends AgentCronCountArgs>(
      args?: Subset<T, AgentCronCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentCronCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentCron.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentCronAggregateArgs} 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 AgentCronAggregateArgs>(args: Subset<T, AgentCronAggregateArgs>): Prisma.PrismaPromise<GetAgentCronAggregateType<T>>

    /**
     * Group by AgentCron.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentCronGroupByArgs} 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 AgentCronGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentCronGroupByArgs['orderBy'] }
        : { orderBy?: AgentCronGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentCronGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentCronGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentCron model
   */
  readonly fields: AgentCronFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentCron.
   * 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__AgentCronClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    session<T extends AgentSessionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentSessionDefaultArgs<ExtArgs>>): Prisma__AgentSessionClient<$Result.GetResult<Prisma.$AgentSessionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentCron model
   */
  interface AgentCronFieldRefs {
    readonly id: FieldRef<"AgentCron", 'String'>
    readonly organizationId: FieldRef<"AgentCron", 'String'>
    readonly createdById: FieldRef<"AgentCron", 'String'>
    readonly sessionId: FieldRef<"AgentCron", 'String'>
    readonly name: FieldRef<"AgentCron", 'String'>
    readonly cronExpr: FieldRef<"AgentCron", 'String'>
    readonly prompt: FieldRef<"AgentCron", 'String'>
    readonly enabled: FieldRef<"AgentCron", 'Boolean'>
    readonly lastRunAt: FieldRef<"AgentCron", 'DateTime'>
    readonly nextRunAt: FieldRef<"AgentCron", 'DateTime'>
    readonly runCount: FieldRef<"AgentCron", 'Int'>
    readonly failCount: FieldRef<"AgentCron", 'Int'>
    readonly lastError: FieldRef<"AgentCron", 'String'>
    readonly createdAt: FieldRef<"AgentCron", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentCron", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentCron findUnique
   */
  export type AgentCronFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * Filter, which AgentCron to fetch.
     */
    where: AgentCronWhereUniqueInput
  }

  /**
   * AgentCron findUniqueOrThrow
   */
  export type AgentCronFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * Filter, which AgentCron to fetch.
     */
    where: AgentCronWhereUniqueInput
  }

  /**
   * AgentCron findFirst
   */
  export type AgentCronFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * Filter, which AgentCron to fetch.
     */
    where?: AgentCronWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentCrons to fetch.
     */
    orderBy?: AgentCronOrderByWithRelationInput | AgentCronOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentCrons.
     */
    cursor?: AgentCronWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentCrons 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` AgentCrons.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentCrons.
     */
    distinct?: AgentCronScalarFieldEnum | AgentCronScalarFieldEnum[]
  }

  /**
   * AgentCron findFirstOrThrow
   */
  export type AgentCronFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * Filter, which AgentCron to fetch.
     */
    where?: AgentCronWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentCrons to fetch.
     */
    orderBy?: AgentCronOrderByWithRelationInput | AgentCronOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentCrons.
     */
    cursor?: AgentCronWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentCrons 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` AgentCrons.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentCrons.
     */
    distinct?: AgentCronScalarFieldEnum | AgentCronScalarFieldEnum[]
  }

  /**
   * AgentCron findMany
   */
  export type AgentCronFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * Filter, which AgentCrons to fetch.
     */
    where?: AgentCronWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentCrons to fetch.
     */
    orderBy?: AgentCronOrderByWithRelationInput | AgentCronOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentCrons.
     */
    cursor?: AgentCronWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentCrons 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` AgentCrons.
     */
    skip?: number
    distinct?: AgentCronScalarFieldEnum | AgentCronScalarFieldEnum[]
  }

  /**
   * AgentCron create
   */
  export type AgentCronCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * The data needed to create a AgentCron.
     */
    data: XOR<AgentCronCreateInput, AgentCronUncheckedCreateInput>
  }

  /**
   * AgentCron createMany
   */
  export type AgentCronCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentCrons.
     */
    data: AgentCronCreateManyInput | AgentCronCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentCron createManyAndReturn
   */
  export type AgentCronCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * The data used to create many AgentCrons.
     */
    data: AgentCronCreateManyInput | AgentCronCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentCron update
   */
  export type AgentCronUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * The data needed to update a AgentCron.
     */
    data: XOR<AgentCronUpdateInput, AgentCronUncheckedUpdateInput>
    /**
     * Choose, which AgentCron to update.
     */
    where: AgentCronWhereUniqueInput
  }

  /**
   * AgentCron updateMany
   */
  export type AgentCronUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentCrons.
     */
    data: XOR<AgentCronUpdateManyMutationInput, AgentCronUncheckedUpdateManyInput>
    /**
     * Filter which AgentCrons to update
     */
    where?: AgentCronWhereInput
    /**
     * Limit how many AgentCrons to update.
     */
    limit?: number
  }

  /**
   * AgentCron updateManyAndReturn
   */
  export type AgentCronUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * The data used to update AgentCrons.
     */
    data: XOR<AgentCronUpdateManyMutationInput, AgentCronUncheckedUpdateManyInput>
    /**
     * Filter which AgentCrons to update
     */
    where?: AgentCronWhereInput
    /**
     * Limit how many AgentCrons to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentCron upsert
   */
  export type AgentCronUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * The filter to search for the AgentCron to update in case it exists.
     */
    where: AgentCronWhereUniqueInput
    /**
     * In case the AgentCron found by the `where` argument doesn't exist, create a new AgentCron with this data.
     */
    create: XOR<AgentCronCreateInput, AgentCronUncheckedCreateInput>
    /**
     * In case the AgentCron was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentCronUpdateInput, AgentCronUncheckedUpdateInput>
  }

  /**
   * AgentCron delete
   */
  export type AgentCronDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
    /**
     * Filter which AgentCron to delete.
     */
    where: AgentCronWhereUniqueInput
  }

  /**
   * AgentCron deleteMany
   */
  export type AgentCronDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentCrons to delete
     */
    where?: AgentCronWhereInput
    /**
     * Limit how many AgentCrons to delete.
     */
    limit?: number
  }

  /**
   * AgentCron without action
   */
  export type AgentCronDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentCron
     */
    select?: AgentCronSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentCron
     */
    omit?: AgentCronOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentCronInclude<ExtArgs> | null
  }


  /**
   * Model AgentMcpServer
   */

  export type AggregateAgentMcpServer = {
    _count: AgentMcpServerCountAggregateOutputType | null
    _min: AgentMcpServerMinAggregateOutputType | null
    _max: AgentMcpServerMaxAggregateOutputType | null
  }

  export type AgentMcpServerMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    name: string | null
    transport: string | null
    endpoint: string | null
    args: string | null
    env: string | null
    enabled: boolean | null
    lastConnectedAt: Date | null
    lastError: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentMcpServerMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    name: string | null
    transport: string | null
    endpoint: string | null
    args: string | null
    env: string | null
    enabled: boolean | null
    lastConnectedAt: Date | null
    lastError: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AgentMcpServerCountAggregateOutputType = {
    id: number
    organizationId: number
    createdById: number
    name: number
    transport: number
    endpoint: number
    args: number
    env: number
    enabled: number
    lastConnectedAt: number
    lastError: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AgentMcpServerMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    name?: true
    transport?: true
    endpoint?: true
    args?: true
    env?: true
    enabled?: true
    lastConnectedAt?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentMcpServerMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    name?: true
    transport?: true
    endpoint?: true
    args?: true
    env?: true
    enabled?: true
    lastConnectedAt?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AgentMcpServerCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    name?: true
    transport?: true
    endpoint?: true
    args?: true
    env?: true
    enabled?: true
    lastConnectedAt?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AgentMcpServerAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentMcpServer to aggregate.
     */
    where?: AgentMcpServerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMcpServers to fetch.
     */
    orderBy?: AgentMcpServerOrderByWithRelationInput | AgentMcpServerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentMcpServerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMcpServers 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` AgentMcpServers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentMcpServers
    **/
    _count?: true | AgentMcpServerCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentMcpServerMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentMcpServerMaxAggregateInputType
  }

  export type GetAgentMcpServerAggregateType<T extends AgentMcpServerAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentMcpServer]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentMcpServer[P]>
      : GetScalarType<T[P], AggregateAgentMcpServer[P]>
  }




  export type AgentMcpServerGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentMcpServerWhereInput
    orderBy?: AgentMcpServerOrderByWithAggregationInput | AgentMcpServerOrderByWithAggregationInput[]
    by: AgentMcpServerScalarFieldEnum[] | AgentMcpServerScalarFieldEnum
    having?: AgentMcpServerScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentMcpServerCountAggregateInputType | true
    _min?: AgentMcpServerMinAggregateInputType
    _max?: AgentMcpServerMaxAggregateInputType
  }

  export type AgentMcpServerGroupByOutputType = {
    id: string
    organizationId: string
    createdById: string
    name: string
    transport: string
    endpoint: string
    args: string | null
    env: string | null
    enabled: boolean
    lastConnectedAt: Date | null
    lastError: string | null
    createdAt: Date
    updatedAt: Date
    _count: AgentMcpServerCountAggregateOutputType | null
    _min: AgentMcpServerMinAggregateOutputType | null
    _max: AgentMcpServerMaxAggregateOutputType | null
  }

  type GetAgentMcpServerGroupByPayload<T extends AgentMcpServerGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentMcpServerGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentMcpServerGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentMcpServerGroupByOutputType[P]>
            : GetScalarType<T[P], AgentMcpServerGroupByOutputType[P]>
        }
      >
    >


  export type AgentMcpServerSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    name?: boolean
    transport?: boolean
    endpoint?: boolean
    args?: boolean
    env?: boolean
    enabled?: boolean
    lastConnectedAt?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentMcpServer"]>

  export type AgentMcpServerSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    name?: boolean
    transport?: boolean
    endpoint?: boolean
    args?: boolean
    env?: boolean
    enabled?: boolean
    lastConnectedAt?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentMcpServer"]>

  export type AgentMcpServerSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    name?: boolean
    transport?: boolean
    endpoint?: boolean
    args?: boolean
    env?: boolean
    enabled?: boolean
    lastConnectedAt?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["agentMcpServer"]>

  export type AgentMcpServerSelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    name?: boolean
    transport?: boolean
    endpoint?: boolean
    args?: boolean
    env?: boolean
    enabled?: boolean
    lastConnectedAt?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AgentMcpServerOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdById" | "name" | "transport" | "endpoint" | "args" | "env" | "enabled" | "lastConnectedAt" | "lastError" | "createdAt" | "updatedAt", ExtArgs["result"]["agentMcpServer"]>

  export type $AgentMcpServerPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentMcpServer"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      createdById: string
      /**
       * 展示名（如 "GitHub MCP"、"Notion MCP"）
       */
      name: string
      /**
       * 'stdio' | 'sse'（P2 可扩 'streamableHttp'，详见 model JSDoc）
       */
      transport: string
      /**
       * stdio = 命令路径；sse = URL
       */
      endpoint: string
      /**
       * stdio 子进程参数（JSON 数组字符串；其他 transport 留空）
       */
      args: string | null
      /**
       * 环境变量 JSON map（敏感值后续 P2 走 envelope encryption）
       */
      env: string | null
      enabled: boolean
      /**
       * 上次成功连接时间（健康监控）
       */
      lastConnectedAt: Date | null
      /**
       * 上次错误（脱敏，给 admin 看）
       */
      lastError: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["agentMcpServer"]>
    composites: {}
  }

  type AgentMcpServerGetPayload<S extends boolean | null | undefined | AgentMcpServerDefaultArgs> = $Result.GetResult<Prisma.$AgentMcpServerPayload, S>

  type AgentMcpServerCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentMcpServerFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentMcpServerCountAggregateInputType | true
    }

  export interface AgentMcpServerDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentMcpServer'], meta: { name: 'AgentMcpServer' } }
    /**
     * Find zero or one AgentMcpServer that matches the filter.
     * @param {AgentMcpServerFindUniqueArgs} args - Arguments to find a AgentMcpServer
     * @example
     * // Get one AgentMcpServer
     * const agentMcpServer = await prisma.agentMcpServer.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentMcpServerFindUniqueArgs>(args: SelectSubset<T, AgentMcpServerFindUniqueArgs<ExtArgs>>): Prisma__AgentMcpServerClient<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentMcpServer that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentMcpServerFindUniqueOrThrowArgs} args - Arguments to find a AgentMcpServer
     * @example
     * // Get one AgentMcpServer
     * const agentMcpServer = await prisma.agentMcpServer.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentMcpServerFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentMcpServerFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentMcpServerClient<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentMcpServer 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 {AgentMcpServerFindFirstArgs} args - Arguments to find a AgentMcpServer
     * @example
     * // Get one AgentMcpServer
     * const agentMcpServer = await prisma.agentMcpServer.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentMcpServerFindFirstArgs>(args?: SelectSubset<T, AgentMcpServerFindFirstArgs<ExtArgs>>): Prisma__AgentMcpServerClient<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentMcpServer 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 {AgentMcpServerFindFirstOrThrowArgs} args - Arguments to find a AgentMcpServer
     * @example
     * // Get one AgentMcpServer
     * const agentMcpServer = await prisma.agentMcpServer.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentMcpServerFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentMcpServerFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentMcpServerClient<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentMcpServers 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 {AgentMcpServerFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentMcpServers
     * const agentMcpServers = await prisma.agentMcpServer.findMany()
     * 
     * // Get first 10 AgentMcpServers
     * const agentMcpServers = await prisma.agentMcpServer.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentMcpServerWithIdOnly = await prisma.agentMcpServer.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentMcpServerFindManyArgs>(args?: SelectSubset<T, AgentMcpServerFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentMcpServer.
     * @param {AgentMcpServerCreateArgs} args - Arguments to create a AgentMcpServer.
     * @example
     * // Create one AgentMcpServer
     * const AgentMcpServer = await prisma.agentMcpServer.create({
     *   data: {
     *     // ... data to create a AgentMcpServer
     *   }
     * })
     * 
     */
    create<T extends AgentMcpServerCreateArgs>(args: SelectSubset<T, AgentMcpServerCreateArgs<ExtArgs>>): Prisma__AgentMcpServerClient<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentMcpServers.
     * @param {AgentMcpServerCreateManyArgs} args - Arguments to create many AgentMcpServers.
     * @example
     * // Create many AgentMcpServers
     * const agentMcpServer = await prisma.agentMcpServer.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentMcpServerCreateManyArgs>(args?: SelectSubset<T, AgentMcpServerCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentMcpServers and returns the data saved in the database.
     * @param {AgentMcpServerCreateManyAndReturnArgs} args - Arguments to create many AgentMcpServers.
     * @example
     * // Create many AgentMcpServers
     * const agentMcpServer = await prisma.agentMcpServer.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentMcpServers and only return the `id`
     * const agentMcpServerWithIdOnly = await prisma.agentMcpServer.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 AgentMcpServerCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentMcpServerCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentMcpServer.
     * @param {AgentMcpServerDeleteArgs} args - Arguments to delete one AgentMcpServer.
     * @example
     * // Delete one AgentMcpServer
     * const AgentMcpServer = await prisma.agentMcpServer.delete({
     *   where: {
     *     // ... filter to delete one AgentMcpServer
     *   }
     * })
     * 
     */
    delete<T extends AgentMcpServerDeleteArgs>(args: SelectSubset<T, AgentMcpServerDeleteArgs<ExtArgs>>): Prisma__AgentMcpServerClient<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentMcpServer.
     * @param {AgentMcpServerUpdateArgs} args - Arguments to update one AgentMcpServer.
     * @example
     * // Update one AgentMcpServer
     * const agentMcpServer = await prisma.agentMcpServer.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentMcpServerUpdateArgs>(args: SelectSubset<T, AgentMcpServerUpdateArgs<ExtArgs>>): Prisma__AgentMcpServerClient<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentMcpServers.
     * @param {AgentMcpServerDeleteManyArgs} args - Arguments to filter AgentMcpServers to delete.
     * @example
     * // Delete a few AgentMcpServers
     * const { count } = await prisma.agentMcpServer.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentMcpServerDeleteManyArgs>(args?: SelectSubset<T, AgentMcpServerDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentMcpServers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMcpServerUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentMcpServers
     * const agentMcpServer = await prisma.agentMcpServer.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentMcpServerUpdateManyArgs>(args: SelectSubset<T, AgentMcpServerUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentMcpServers and returns the data updated in the database.
     * @param {AgentMcpServerUpdateManyAndReturnArgs} args - Arguments to update many AgentMcpServers.
     * @example
     * // Update many AgentMcpServers
     * const agentMcpServer = await prisma.agentMcpServer.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentMcpServers and only return the `id`
     * const agentMcpServerWithIdOnly = await prisma.agentMcpServer.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 AgentMcpServerUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentMcpServerUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentMcpServer.
     * @param {AgentMcpServerUpsertArgs} args - Arguments to update or create a AgentMcpServer.
     * @example
     * // Update or create a AgentMcpServer
     * const agentMcpServer = await prisma.agentMcpServer.upsert({
     *   create: {
     *     // ... data to create a AgentMcpServer
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentMcpServer we want to update
     *   }
     * })
     */
    upsert<T extends AgentMcpServerUpsertArgs>(args: SelectSubset<T, AgentMcpServerUpsertArgs<ExtArgs>>): Prisma__AgentMcpServerClient<$Result.GetResult<Prisma.$AgentMcpServerPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentMcpServers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMcpServerCountArgs} args - Arguments to filter AgentMcpServers to count.
     * @example
     * // Count the number of AgentMcpServers
     * const count = await prisma.agentMcpServer.count({
     *   where: {
     *     // ... the filter for the AgentMcpServers we want to count
     *   }
     * })
    **/
    count<T extends AgentMcpServerCountArgs>(
      args?: Subset<T, AgentMcpServerCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentMcpServerCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentMcpServer.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMcpServerAggregateArgs} 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 AgentMcpServerAggregateArgs>(args: Subset<T, AgentMcpServerAggregateArgs>): Prisma.PrismaPromise<GetAgentMcpServerAggregateType<T>>

    /**
     * Group by AgentMcpServer.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentMcpServerGroupByArgs} 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 AgentMcpServerGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentMcpServerGroupByArgs['orderBy'] }
        : { orderBy?: AgentMcpServerGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentMcpServerGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentMcpServerGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentMcpServer model
   */
  readonly fields: AgentMcpServerFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentMcpServer.
   * 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__AgentMcpServerClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentMcpServer model
   */
  interface AgentMcpServerFieldRefs {
    readonly id: FieldRef<"AgentMcpServer", 'String'>
    readonly organizationId: FieldRef<"AgentMcpServer", 'String'>
    readonly createdById: FieldRef<"AgentMcpServer", 'String'>
    readonly name: FieldRef<"AgentMcpServer", 'String'>
    readonly transport: FieldRef<"AgentMcpServer", 'String'>
    readonly endpoint: FieldRef<"AgentMcpServer", 'String'>
    readonly args: FieldRef<"AgentMcpServer", 'String'>
    readonly env: FieldRef<"AgentMcpServer", 'String'>
    readonly enabled: FieldRef<"AgentMcpServer", 'Boolean'>
    readonly lastConnectedAt: FieldRef<"AgentMcpServer", 'DateTime'>
    readonly lastError: FieldRef<"AgentMcpServer", 'String'>
    readonly createdAt: FieldRef<"AgentMcpServer", 'DateTime'>
    readonly updatedAt: FieldRef<"AgentMcpServer", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentMcpServer findUnique
   */
  export type AgentMcpServerFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * Filter, which AgentMcpServer to fetch.
     */
    where: AgentMcpServerWhereUniqueInput
  }

  /**
   * AgentMcpServer findUniqueOrThrow
   */
  export type AgentMcpServerFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * Filter, which AgentMcpServer to fetch.
     */
    where: AgentMcpServerWhereUniqueInput
  }

  /**
   * AgentMcpServer findFirst
   */
  export type AgentMcpServerFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * Filter, which AgentMcpServer to fetch.
     */
    where?: AgentMcpServerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMcpServers to fetch.
     */
    orderBy?: AgentMcpServerOrderByWithRelationInput | AgentMcpServerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentMcpServers.
     */
    cursor?: AgentMcpServerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMcpServers 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` AgentMcpServers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentMcpServers.
     */
    distinct?: AgentMcpServerScalarFieldEnum | AgentMcpServerScalarFieldEnum[]
  }

  /**
   * AgentMcpServer findFirstOrThrow
   */
  export type AgentMcpServerFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * Filter, which AgentMcpServer to fetch.
     */
    where?: AgentMcpServerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMcpServers to fetch.
     */
    orderBy?: AgentMcpServerOrderByWithRelationInput | AgentMcpServerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentMcpServers.
     */
    cursor?: AgentMcpServerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMcpServers 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` AgentMcpServers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentMcpServers.
     */
    distinct?: AgentMcpServerScalarFieldEnum | AgentMcpServerScalarFieldEnum[]
  }

  /**
   * AgentMcpServer findMany
   */
  export type AgentMcpServerFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * Filter, which AgentMcpServers to fetch.
     */
    where?: AgentMcpServerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentMcpServers to fetch.
     */
    orderBy?: AgentMcpServerOrderByWithRelationInput | AgentMcpServerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentMcpServers.
     */
    cursor?: AgentMcpServerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentMcpServers 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` AgentMcpServers.
     */
    skip?: number
    distinct?: AgentMcpServerScalarFieldEnum | AgentMcpServerScalarFieldEnum[]
  }

  /**
   * AgentMcpServer create
   */
  export type AgentMcpServerCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * The data needed to create a AgentMcpServer.
     */
    data: XOR<AgentMcpServerCreateInput, AgentMcpServerUncheckedCreateInput>
  }

  /**
   * AgentMcpServer createMany
   */
  export type AgentMcpServerCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentMcpServers.
     */
    data: AgentMcpServerCreateManyInput | AgentMcpServerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentMcpServer createManyAndReturn
   */
  export type AgentMcpServerCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * The data used to create many AgentMcpServers.
     */
    data: AgentMcpServerCreateManyInput | AgentMcpServerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentMcpServer update
   */
  export type AgentMcpServerUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * The data needed to update a AgentMcpServer.
     */
    data: XOR<AgentMcpServerUpdateInput, AgentMcpServerUncheckedUpdateInput>
    /**
     * Choose, which AgentMcpServer to update.
     */
    where: AgentMcpServerWhereUniqueInput
  }

  /**
   * AgentMcpServer updateMany
   */
  export type AgentMcpServerUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentMcpServers.
     */
    data: XOR<AgentMcpServerUpdateManyMutationInput, AgentMcpServerUncheckedUpdateManyInput>
    /**
     * Filter which AgentMcpServers to update
     */
    where?: AgentMcpServerWhereInput
    /**
     * Limit how many AgentMcpServers to update.
     */
    limit?: number
  }

  /**
   * AgentMcpServer updateManyAndReturn
   */
  export type AgentMcpServerUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * The data used to update AgentMcpServers.
     */
    data: XOR<AgentMcpServerUpdateManyMutationInput, AgentMcpServerUncheckedUpdateManyInput>
    /**
     * Filter which AgentMcpServers to update
     */
    where?: AgentMcpServerWhereInput
    /**
     * Limit how many AgentMcpServers to update.
     */
    limit?: number
  }

  /**
   * AgentMcpServer upsert
   */
  export type AgentMcpServerUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * The filter to search for the AgentMcpServer to update in case it exists.
     */
    where: AgentMcpServerWhereUniqueInput
    /**
     * In case the AgentMcpServer found by the `where` argument doesn't exist, create a new AgentMcpServer with this data.
     */
    create: XOR<AgentMcpServerCreateInput, AgentMcpServerUncheckedCreateInput>
    /**
     * In case the AgentMcpServer was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentMcpServerUpdateInput, AgentMcpServerUncheckedUpdateInput>
  }

  /**
   * AgentMcpServer delete
   */
  export type AgentMcpServerDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
    /**
     * Filter which AgentMcpServer to delete.
     */
    where: AgentMcpServerWhereUniqueInput
  }

  /**
   * AgentMcpServer deleteMany
   */
  export type AgentMcpServerDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentMcpServers to delete
     */
    where?: AgentMcpServerWhereInput
    /**
     * Limit how many AgentMcpServers to delete.
     */
    limit?: number
  }

  /**
   * AgentMcpServer without action
   */
  export type AgentMcpServerDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentMcpServer
     */
    select?: AgentMcpServerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentMcpServer
     */
    omit?: AgentMcpServerOmit<ExtArgs> | null
  }


  /**
   * Model AiUsageToken
   */

  export type AggregateAiUsageToken = {
    _count: AiUsageTokenCountAggregateOutputType | null
    _min: AiUsageTokenMinAggregateOutputType | null
    _max: AiUsageTokenMaxAggregateOutputType | null
  }

  export type AiUsageTokenMinAggregateOutputType = {
    id: string | null
    userId: string | null
    name: string | null
    prefix: string | null
    tokenHash: string | null
    lastUsedAt: Date | null
    lastUsedIp: string | null
    revokedAt: Date | null
    revokedById: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageTokenMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    name: string | null
    prefix: string | null
    tokenHash: string | null
    lastUsedAt: Date | null
    lastUsedIp: string | null
    revokedAt: Date | null
    revokedById: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageTokenCountAggregateOutputType = {
    id: number
    userId: number
    name: number
    prefix: number
    tokenHash: number
    lastUsedAt: number
    lastUsedIp: number
    revokedAt: number
    revokedById: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AiUsageTokenMinAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    prefix?: true
    tokenHash?: true
    lastUsedAt?: true
    lastUsedIp?: true
    revokedAt?: true
    revokedById?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageTokenMaxAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    prefix?: true
    tokenHash?: true
    lastUsedAt?: true
    lastUsedIp?: true
    revokedAt?: true
    revokedById?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageTokenCountAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    prefix?: true
    tokenHash?: true
    lastUsedAt?: true
    lastUsedIp?: true
    revokedAt?: true
    revokedById?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AiUsageTokenAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageToken to aggregate.
     */
    where?: AiUsageTokenWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageTokens to fetch.
     */
    orderBy?: AiUsageTokenOrderByWithRelationInput | AiUsageTokenOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AiUsageTokenWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageTokens 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` AiUsageTokens.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AiUsageTokens
    **/
    _count?: true | AiUsageTokenCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AiUsageTokenMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AiUsageTokenMaxAggregateInputType
  }

  export type GetAiUsageTokenAggregateType<T extends AiUsageTokenAggregateArgs> = {
        [P in keyof T & keyof AggregateAiUsageToken]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAiUsageToken[P]>
      : GetScalarType<T[P], AggregateAiUsageToken[P]>
  }




  export type AiUsageTokenGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AiUsageTokenWhereInput
    orderBy?: AiUsageTokenOrderByWithAggregationInput | AiUsageTokenOrderByWithAggregationInput[]
    by: AiUsageTokenScalarFieldEnum[] | AiUsageTokenScalarFieldEnum
    having?: AiUsageTokenScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AiUsageTokenCountAggregateInputType | true
    _min?: AiUsageTokenMinAggregateInputType
    _max?: AiUsageTokenMaxAggregateInputType
  }

  export type AiUsageTokenGroupByOutputType = {
    id: string
    userId: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt: Date | null
    lastUsedIp: string | null
    revokedAt: Date | null
    revokedById: string | null
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: AiUsageTokenCountAggregateOutputType | null
    _min: AiUsageTokenMinAggregateOutputType | null
    _max: AiUsageTokenMaxAggregateOutputType | null
  }

  type GetAiUsageTokenGroupByPayload<T extends AiUsageTokenGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AiUsageTokenGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AiUsageTokenGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AiUsageTokenGroupByOutputType[P]>
            : GetScalarType<T[P], AiUsageTokenGroupByOutputType[P]>
        }
      >
    >


  export type AiUsageTokenSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    prefix?: boolean
    tokenHash?: boolean
    lastUsedAt?: boolean
    lastUsedIp?: boolean
    revokedAt?: boolean
    revokedById?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    revokedBy?: boolean | AiUsageToken$revokedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageToken"]>

  export type AiUsageTokenSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    prefix?: boolean
    tokenHash?: boolean
    lastUsedAt?: boolean
    lastUsedIp?: boolean
    revokedAt?: boolean
    revokedById?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    revokedBy?: boolean | AiUsageToken$revokedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageToken"]>

  export type AiUsageTokenSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    prefix?: boolean
    tokenHash?: boolean
    lastUsedAt?: boolean
    lastUsedIp?: boolean
    revokedAt?: boolean
    revokedById?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    revokedBy?: boolean | AiUsageToken$revokedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageToken"]>

  export type AiUsageTokenSelectScalar = {
    id?: boolean
    userId?: boolean
    name?: boolean
    prefix?: boolean
    tokenHash?: boolean
    lastUsedAt?: boolean
    lastUsedIp?: boolean
    revokedAt?: boolean
    revokedById?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AiUsageTokenOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "name" | "prefix" | "tokenHash" | "lastUsedAt" | "lastUsedIp" | "revokedAt" | "revokedById" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["aiUsageToken"]>
  export type AiUsageTokenInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    revokedBy?: boolean | AiUsageToken$revokedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type AiUsageTokenIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    revokedBy?: boolean | AiUsageToken$revokedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type AiUsageTokenIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    revokedBy?: boolean | AiUsageToken$revokedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $AiUsageTokenPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AiUsageToken"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      revokedBy: Prisma.$UserPayload<ExtArgs> | null
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      name: string
      prefix: string
      tokenHash: string
      lastUsedAt: Date | null
      lastUsedIp: string | null
      revokedAt: Date | null
      revokedById: string | null
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aiUsageToken"]>
    composites: {}
  }

  type AiUsageTokenGetPayload<S extends boolean | null | undefined | AiUsageTokenDefaultArgs> = $Result.GetResult<Prisma.$AiUsageTokenPayload, S>

  type AiUsageTokenCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AiUsageTokenFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AiUsageTokenCountAggregateInputType | true
    }

  export interface AiUsageTokenDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AiUsageToken'], meta: { name: 'AiUsageToken' } }
    /**
     * Find zero or one AiUsageToken that matches the filter.
     * @param {AiUsageTokenFindUniqueArgs} args - Arguments to find a AiUsageToken
     * @example
     * // Get one AiUsageToken
     * const aiUsageToken = await prisma.aiUsageToken.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AiUsageTokenFindUniqueArgs>(args: SelectSubset<T, AiUsageTokenFindUniqueArgs<ExtArgs>>): Prisma__AiUsageTokenClient<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AiUsageToken that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AiUsageTokenFindUniqueOrThrowArgs} args - Arguments to find a AiUsageToken
     * @example
     * // Get one AiUsageToken
     * const aiUsageToken = await prisma.aiUsageToken.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AiUsageTokenFindUniqueOrThrowArgs>(args: SelectSubset<T, AiUsageTokenFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AiUsageTokenClient<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageToken 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 {AiUsageTokenFindFirstArgs} args - Arguments to find a AiUsageToken
     * @example
     * // Get one AiUsageToken
     * const aiUsageToken = await prisma.aiUsageToken.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AiUsageTokenFindFirstArgs>(args?: SelectSubset<T, AiUsageTokenFindFirstArgs<ExtArgs>>): Prisma__AiUsageTokenClient<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageToken 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 {AiUsageTokenFindFirstOrThrowArgs} args - Arguments to find a AiUsageToken
     * @example
     * // Get one AiUsageToken
     * const aiUsageToken = await prisma.aiUsageToken.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AiUsageTokenFindFirstOrThrowArgs>(args?: SelectSubset<T, AiUsageTokenFindFirstOrThrowArgs<ExtArgs>>): Prisma__AiUsageTokenClient<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AiUsageTokens 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 {AiUsageTokenFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AiUsageTokens
     * const aiUsageTokens = await prisma.aiUsageToken.findMany()
     * 
     * // Get first 10 AiUsageTokens
     * const aiUsageTokens = await prisma.aiUsageToken.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aiUsageTokenWithIdOnly = await prisma.aiUsageToken.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AiUsageTokenFindManyArgs>(args?: SelectSubset<T, AiUsageTokenFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AiUsageToken.
     * @param {AiUsageTokenCreateArgs} args - Arguments to create a AiUsageToken.
     * @example
     * // Create one AiUsageToken
     * const AiUsageToken = await prisma.aiUsageToken.create({
     *   data: {
     *     // ... data to create a AiUsageToken
     *   }
     * })
     * 
     */
    create<T extends AiUsageTokenCreateArgs>(args: SelectSubset<T, AiUsageTokenCreateArgs<ExtArgs>>): Prisma__AiUsageTokenClient<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AiUsageTokens.
     * @param {AiUsageTokenCreateManyArgs} args - Arguments to create many AiUsageTokens.
     * @example
     * // Create many AiUsageTokens
     * const aiUsageToken = await prisma.aiUsageToken.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AiUsageTokenCreateManyArgs>(args?: SelectSubset<T, AiUsageTokenCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AiUsageTokens and returns the data saved in the database.
     * @param {AiUsageTokenCreateManyAndReturnArgs} args - Arguments to create many AiUsageTokens.
     * @example
     * // Create many AiUsageTokens
     * const aiUsageToken = await prisma.aiUsageToken.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AiUsageTokens and only return the `id`
     * const aiUsageTokenWithIdOnly = await prisma.aiUsageToken.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 AiUsageTokenCreateManyAndReturnArgs>(args?: SelectSubset<T, AiUsageTokenCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AiUsageToken.
     * @param {AiUsageTokenDeleteArgs} args - Arguments to delete one AiUsageToken.
     * @example
     * // Delete one AiUsageToken
     * const AiUsageToken = await prisma.aiUsageToken.delete({
     *   where: {
     *     // ... filter to delete one AiUsageToken
     *   }
     * })
     * 
     */
    delete<T extends AiUsageTokenDeleteArgs>(args: SelectSubset<T, AiUsageTokenDeleteArgs<ExtArgs>>): Prisma__AiUsageTokenClient<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AiUsageToken.
     * @param {AiUsageTokenUpdateArgs} args - Arguments to update one AiUsageToken.
     * @example
     * // Update one AiUsageToken
     * const aiUsageToken = await prisma.aiUsageToken.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AiUsageTokenUpdateArgs>(args: SelectSubset<T, AiUsageTokenUpdateArgs<ExtArgs>>): Prisma__AiUsageTokenClient<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AiUsageTokens.
     * @param {AiUsageTokenDeleteManyArgs} args - Arguments to filter AiUsageTokens to delete.
     * @example
     * // Delete a few AiUsageTokens
     * const { count } = await prisma.aiUsageToken.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AiUsageTokenDeleteManyArgs>(args?: SelectSubset<T, AiUsageTokenDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageTokens.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageTokenUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AiUsageTokens
     * const aiUsageToken = await prisma.aiUsageToken.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AiUsageTokenUpdateManyArgs>(args: SelectSubset<T, AiUsageTokenUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageTokens and returns the data updated in the database.
     * @param {AiUsageTokenUpdateManyAndReturnArgs} args - Arguments to update many AiUsageTokens.
     * @example
     * // Update many AiUsageTokens
     * const aiUsageToken = await prisma.aiUsageToken.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AiUsageTokens and only return the `id`
     * const aiUsageTokenWithIdOnly = await prisma.aiUsageToken.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 AiUsageTokenUpdateManyAndReturnArgs>(args: SelectSubset<T, AiUsageTokenUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AiUsageToken.
     * @param {AiUsageTokenUpsertArgs} args - Arguments to update or create a AiUsageToken.
     * @example
     * // Update or create a AiUsageToken
     * const aiUsageToken = await prisma.aiUsageToken.upsert({
     *   create: {
     *     // ... data to create a AiUsageToken
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AiUsageToken we want to update
     *   }
     * })
     */
    upsert<T extends AiUsageTokenUpsertArgs>(args: SelectSubset<T, AiUsageTokenUpsertArgs<ExtArgs>>): Prisma__AiUsageTokenClient<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AiUsageTokens.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageTokenCountArgs} args - Arguments to filter AiUsageTokens to count.
     * @example
     * // Count the number of AiUsageTokens
     * const count = await prisma.aiUsageToken.count({
     *   where: {
     *     // ... the filter for the AiUsageTokens we want to count
     *   }
     * })
    **/
    count<T extends AiUsageTokenCountArgs>(
      args?: Subset<T, AiUsageTokenCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AiUsageTokenCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AiUsageToken.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageTokenAggregateArgs} 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 AiUsageTokenAggregateArgs>(args: Subset<T, AiUsageTokenAggregateArgs>): Prisma.PrismaPromise<GetAiUsageTokenAggregateType<T>>

    /**
     * Group by AiUsageToken.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageTokenGroupByArgs} 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 AiUsageTokenGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AiUsageTokenGroupByArgs['orderBy'] }
        : { orderBy?: AiUsageTokenGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AiUsageTokenGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAiUsageTokenGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AiUsageToken model
   */
  readonly fields: AiUsageTokenFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AiUsageToken.
   * 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__AiUsageTokenClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    revokedBy<T extends AiUsageToken$revokedByArgs<ExtArgs> = {}>(args?: Subset<T, AiUsageToken$revokedByArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AiUsageToken model
   */
  interface AiUsageTokenFieldRefs {
    readonly id: FieldRef<"AiUsageToken", 'String'>
    readonly userId: FieldRef<"AiUsageToken", 'String'>
    readonly name: FieldRef<"AiUsageToken", 'String'>
    readonly prefix: FieldRef<"AiUsageToken", 'String'>
    readonly tokenHash: FieldRef<"AiUsageToken", 'String'>
    readonly lastUsedAt: FieldRef<"AiUsageToken", 'DateTime'>
    readonly lastUsedIp: FieldRef<"AiUsageToken", 'String'>
    readonly revokedAt: FieldRef<"AiUsageToken", 'DateTime'>
    readonly revokedById: FieldRef<"AiUsageToken", 'String'>
    readonly organizationId: FieldRef<"AiUsageToken", 'String'>
    readonly createdById: FieldRef<"AiUsageToken", 'String'>
    readonly createdAt: FieldRef<"AiUsageToken", 'DateTime'>
    readonly updatedAt: FieldRef<"AiUsageToken", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AiUsageToken findUnique
   */
  export type AiUsageTokenFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageToken to fetch.
     */
    where: AiUsageTokenWhereUniqueInput
  }

  /**
   * AiUsageToken findUniqueOrThrow
   */
  export type AiUsageTokenFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageToken to fetch.
     */
    where: AiUsageTokenWhereUniqueInput
  }

  /**
   * AiUsageToken findFirst
   */
  export type AiUsageTokenFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageToken to fetch.
     */
    where?: AiUsageTokenWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageTokens to fetch.
     */
    orderBy?: AiUsageTokenOrderByWithRelationInput | AiUsageTokenOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageTokens.
     */
    cursor?: AiUsageTokenWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageTokens 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` AiUsageTokens.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageTokens.
     */
    distinct?: AiUsageTokenScalarFieldEnum | AiUsageTokenScalarFieldEnum[]
  }

  /**
   * AiUsageToken findFirstOrThrow
   */
  export type AiUsageTokenFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageToken to fetch.
     */
    where?: AiUsageTokenWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageTokens to fetch.
     */
    orderBy?: AiUsageTokenOrderByWithRelationInput | AiUsageTokenOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageTokens.
     */
    cursor?: AiUsageTokenWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageTokens 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` AiUsageTokens.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageTokens.
     */
    distinct?: AiUsageTokenScalarFieldEnum | AiUsageTokenScalarFieldEnum[]
  }

  /**
   * AiUsageToken findMany
   */
  export type AiUsageTokenFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageTokens to fetch.
     */
    where?: AiUsageTokenWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageTokens to fetch.
     */
    orderBy?: AiUsageTokenOrderByWithRelationInput | AiUsageTokenOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AiUsageTokens.
     */
    cursor?: AiUsageTokenWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageTokens 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` AiUsageTokens.
     */
    skip?: number
    distinct?: AiUsageTokenScalarFieldEnum | AiUsageTokenScalarFieldEnum[]
  }

  /**
   * AiUsageToken create
   */
  export type AiUsageTokenCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * The data needed to create a AiUsageToken.
     */
    data: XOR<AiUsageTokenCreateInput, AiUsageTokenUncheckedCreateInput>
  }

  /**
   * AiUsageToken createMany
   */
  export type AiUsageTokenCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AiUsageTokens.
     */
    data: AiUsageTokenCreateManyInput | AiUsageTokenCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AiUsageToken createManyAndReturn
   */
  export type AiUsageTokenCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * The data used to create many AiUsageTokens.
     */
    data: AiUsageTokenCreateManyInput | AiUsageTokenCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AiUsageToken update
   */
  export type AiUsageTokenUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * The data needed to update a AiUsageToken.
     */
    data: XOR<AiUsageTokenUpdateInput, AiUsageTokenUncheckedUpdateInput>
    /**
     * Choose, which AiUsageToken to update.
     */
    where: AiUsageTokenWhereUniqueInput
  }

  /**
   * AiUsageToken updateMany
   */
  export type AiUsageTokenUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AiUsageTokens.
     */
    data: XOR<AiUsageTokenUpdateManyMutationInput, AiUsageTokenUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageTokens to update
     */
    where?: AiUsageTokenWhereInput
    /**
     * Limit how many AiUsageTokens to update.
     */
    limit?: number
  }

  /**
   * AiUsageToken updateManyAndReturn
   */
  export type AiUsageTokenUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * The data used to update AiUsageTokens.
     */
    data: XOR<AiUsageTokenUpdateManyMutationInput, AiUsageTokenUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageTokens to update
     */
    where?: AiUsageTokenWhereInput
    /**
     * Limit how many AiUsageTokens to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AiUsageToken upsert
   */
  export type AiUsageTokenUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * The filter to search for the AiUsageToken to update in case it exists.
     */
    where: AiUsageTokenWhereUniqueInput
    /**
     * In case the AiUsageToken found by the `where` argument doesn't exist, create a new AiUsageToken with this data.
     */
    create: XOR<AiUsageTokenCreateInput, AiUsageTokenUncheckedCreateInput>
    /**
     * In case the AiUsageToken was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AiUsageTokenUpdateInput, AiUsageTokenUncheckedUpdateInput>
  }

  /**
   * AiUsageToken delete
   */
  export type AiUsageTokenDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    /**
     * Filter which AiUsageToken to delete.
     */
    where: AiUsageTokenWhereUniqueInput
  }

  /**
   * AiUsageToken deleteMany
   */
  export type AiUsageTokenDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageTokens to delete
     */
    where?: AiUsageTokenWhereInput
    /**
     * Limit how many AiUsageTokens to delete.
     */
    limit?: number
  }

  /**
   * AiUsageToken.revokedBy
   */
  export type AiUsageToken$revokedByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * AiUsageToken without action
   */
  export type AiUsageTokenDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
  }


  /**
   * Model AiUsageDevice
   */

  export type AggregateAiUsageDevice = {
    _count: AiUsageDeviceCountAggregateOutputType | null
    _min: AiUsageDeviceMinAggregateOutputType | null
    _max: AiUsageDeviceMaxAggregateOutputType | null
  }

  export type AiUsageDeviceMinAggregateOutputType = {
    id: string | null
    deviceId: string | null
    userId: string | null
    hostname: string | null
    osUser: string | null
    osPlatform: $Enums.AiUsageOsPlatform | null
    agentVersion: string | null
    firstSeenAt: Date | null
    firstSeenIp: string | null
    lastSeenAt: Date | null
    blockedAt: Date | null
    blockedById: string | null
    blockedReason: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageDeviceMaxAggregateOutputType = {
    id: string | null
    deviceId: string | null
    userId: string | null
    hostname: string | null
    osUser: string | null
    osPlatform: $Enums.AiUsageOsPlatform | null
    agentVersion: string | null
    firstSeenAt: Date | null
    firstSeenIp: string | null
    lastSeenAt: Date | null
    blockedAt: Date | null
    blockedById: string | null
    blockedReason: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageDeviceCountAggregateOutputType = {
    id: number
    deviceId: number
    userId: number
    hostname: number
    osUser: number
    osPlatform: number
    agentVersion: number
    firstSeenAt: number
    firstSeenIp: number
    lastSeenAt: number
    blockedAt: number
    blockedById: number
    blockedReason: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AiUsageDeviceMinAggregateInputType = {
    id?: true
    deviceId?: true
    userId?: true
    hostname?: true
    osUser?: true
    osPlatform?: true
    agentVersion?: true
    firstSeenAt?: true
    firstSeenIp?: true
    lastSeenAt?: true
    blockedAt?: true
    blockedById?: true
    blockedReason?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageDeviceMaxAggregateInputType = {
    id?: true
    deviceId?: true
    userId?: true
    hostname?: true
    osUser?: true
    osPlatform?: true
    agentVersion?: true
    firstSeenAt?: true
    firstSeenIp?: true
    lastSeenAt?: true
    blockedAt?: true
    blockedById?: true
    blockedReason?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageDeviceCountAggregateInputType = {
    id?: true
    deviceId?: true
    userId?: true
    hostname?: true
    osUser?: true
    osPlatform?: true
    agentVersion?: true
    firstSeenAt?: true
    firstSeenIp?: true
    lastSeenAt?: true
    blockedAt?: true
    blockedById?: true
    blockedReason?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AiUsageDeviceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageDevice to aggregate.
     */
    where?: AiUsageDeviceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageDevices to fetch.
     */
    orderBy?: AiUsageDeviceOrderByWithRelationInput | AiUsageDeviceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AiUsageDeviceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageDevices 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` AiUsageDevices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AiUsageDevices
    **/
    _count?: true | AiUsageDeviceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AiUsageDeviceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AiUsageDeviceMaxAggregateInputType
  }

  export type GetAiUsageDeviceAggregateType<T extends AiUsageDeviceAggregateArgs> = {
        [P in keyof T & keyof AggregateAiUsageDevice]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAiUsageDevice[P]>
      : GetScalarType<T[P], AggregateAiUsageDevice[P]>
  }




  export type AiUsageDeviceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AiUsageDeviceWhereInput
    orderBy?: AiUsageDeviceOrderByWithAggregationInput | AiUsageDeviceOrderByWithAggregationInput[]
    by: AiUsageDeviceScalarFieldEnum[] | AiUsageDeviceScalarFieldEnum
    having?: AiUsageDeviceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AiUsageDeviceCountAggregateInputType | true
    _min?: AiUsageDeviceMinAggregateInputType
    _max?: AiUsageDeviceMaxAggregateInputType
  }

  export type AiUsageDeviceGroupByOutputType = {
    id: string
    deviceId: string
    userId: string
    hostname: string
    osUser: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion: string | null
    firstSeenAt: Date
    firstSeenIp: string | null
    lastSeenAt: Date
    blockedAt: Date | null
    blockedById: string | null
    blockedReason: string | null
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: AiUsageDeviceCountAggregateOutputType | null
    _min: AiUsageDeviceMinAggregateOutputType | null
    _max: AiUsageDeviceMaxAggregateOutputType | null
  }

  type GetAiUsageDeviceGroupByPayload<T extends AiUsageDeviceGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AiUsageDeviceGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AiUsageDeviceGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AiUsageDeviceGroupByOutputType[P]>
            : GetScalarType<T[P], AiUsageDeviceGroupByOutputType[P]>
        }
      >
    >


  export type AiUsageDeviceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deviceId?: boolean
    userId?: boolean
    hostname?: boolean
    osUser?: boolean
    osPlatform?: boolean
    agentVersion?: boolean
    firstSeenAt?: boolean
    firstSeenIp?: boolean
    lastSeenAt?: boolean
    blockedAt?: boolean
    blockedById?: boolean
    blockedReason?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    blockedBy?: boolean | AiUsageDevice$blockedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    events?: boolean | AiUsageDevice$eventsArgs<ExtArgs>
    _count?: boolean | AiUsageDeviceCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageDevice"]>

  export type AiUsageDeviceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deviceId?: boolean
    userId?: boolean
    hostname?: boolean
    osUser?: boolean
    osPlatform?: boolean
    agentVersion?: boolean
    firstSeenAt?: boolean
    firstSeenIp?: boolean
    lastSeenAt?: boolean
    blockedAt?: boolean
    blockedById?: boolean
    blockedReason?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    blockedBy?: boolean | AiUsageDevice$blockedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageDevice"]>

  export type AiUsageDeviceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deviceId?: boolean
    userId?: boolean
    hostname?: boolean
    osUser?: boolean
    osPlatform?: boolean
    agentVersion?: boolean
    firstSeenAt?: boolean
    firstSeenIp?: boolean
    lastSeenAt?: boolean
    blockedAt?: boolean
    blockedById?: boolean
    blockedReason?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    blockedBy?: boolean | AiUsageDevice$blockedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageDevice"]>

  export type AiUsageDeviceSelectScalar = {
    id?: boolean
    deviceId?: boolean
    userId?: boolean
    hostname?: boolean
    osUser?: boolean
    osPlatform?: boolean
    agentVersion?: boolean
    firstSeenAt?: boolean
    firstSeenIp?: boolean
    lastSeenAt?: boolean
    blockedAt?: boolean
    blockedById?: boolean
    blockedReason?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AiUsageDeviceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "deviceId" | "userId" | "hostname" | "osUser" | "osPlatform" | "agentVersion" | "firstSeenAt" | "firstSeenIp" | "lastSeenAt" | "blockedAt" | "blockedById" | "blockedReason" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["aiUsageDevice"]>
  export type AiUsageDeviceInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    blockedBy?: boolean | AiUsageDevice$blockedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    events?: boolean | AiUsageDevice$eventsArgs<ExtArgs>
    _count?: boolean | AiUsageDeviceCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AiUsageDeviceIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    blockedBy?: boolean | AiUsageDevice$blockedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type AiUsageDeviceIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    blockedBy?: boolean | AiUsageDevice$blockedByArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $AiUsageDevicePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AiUsageDevice"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      blockedBy: Prisma.$UserPayload<ExtArgs> | null
      organization: Prisma.$OrganizationPayload<ExtArgs>
      events: Prisma.$AiUsageEventPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      deviceId: string
      userId: string
      hostname: string
      osUser: string | null
      osPlatform: $Enums.AiUsageOsPlatform
      agentVersion: string | null
      firstSeenAt: Date
      firstSeenIp: string | null
      lastSeenAt: Date
      blockedAt: Date | null
      blockedById: string | null
      blockedReason: string | null
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aiUsageDevice"]>
    composites: {}
  }

  type AiUsageDeviceGetPayload<S extends boolean | null | undefined | AiUsageDeviceDefaultArgs> = $Result.GetResult<Prisma.$AiUsageDevicePayload, S>

  type AiUsageDeviceCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AiUsageDeviceFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AiUsageDeviceCountAggregateInputType | true
    }

  export interface AiUsageDeviceDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AiUsageDevice'], meta: { name: 'AiUsageDevice' } }
    /**
     * Find zero or one AiUsageDevice that matches the filter.
     * @param {AiUsageDeviceFindUniqueArgs} args - Arguments to find a AiUsageDevice
     * @example
     * // Get one AiUsageDevice
     * const aiUsageDevice = await prisma.aiUsageDevice.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AiUsageDeviceFindUniqueArgs>(args: SelectSubset<T, AiUsageDeviceFindUniqueArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AiUsageDevice that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AiUsageDeviceFindUniqueOrThrowArgs} args - Arguments to find a AiUsageDevice
     * @example
     * // Get one AiUsageDevice
     * const aiUsageDevice = await prisma.aiUsageDevice.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AiUsageDeviceFindUniqueOrThrowArgs>(args: SelectSubset<T, AiUsageDeviceFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageDevice 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 {AiUsageDeviceFindFirstArgs} args - Arguments to find a AiUsageDevice
     * @example
     * // Get one AiUsageDevice
     * const aiUsageDevice = await prisma.aiUsageDevice.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AiUsageDeviceFindFirstArgs>(args?: SelectSubset<T, AiUsageDeviceFindFirstArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageDevice 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 {AiUsageDeviceFindFirstOrThrowArgs} args - Arguments to find a AiUsageDevice
     * @example
     * // Get one AiUsageDevice
     * const aiUsageDevice = await prisma.aiUsageDevice.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AiUsageDeviceFindFirstOrThrowArgs>(args?: SelectSubset<T, AiUsageDeviceFindFirstOrThrowArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AiUsageDevices 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 {AiUsageDeviceFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AiUsageDevices
     * const aiUsageDevices = await prisma.aiUsageDevice.findMany()
     * 
     * // Get first 10 AiUsageDevices
     * const aiUsageDevices = await prisma.aiUsageDevice.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aiUsageDeviceWithIdOnly = await prisma.aiUsageDevice.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AiUsageDeviceFindManyArgs>(args?: SelectSubset<T, AiUsageDeviceFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AiUsageDevice.
     * @param {AiUsageDeviceCreateArgs} args - Arguments to create a AiUsageDevice.
     * @example
     * // Create one AiUsageDevice
     * const AiUsageDevice = await prisma.aiUsageDevice.create({
     *   data: {
     *     // ... data to create a AiUsageDevice
     *   }
     * })
     * 
     */
    create<T extends AiUsageDeviceCreateArgs>(args: SelectSubset<T, AiUsageDeviceCreateArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AiUsageDevices.
     * @param {AiUsageDeviceCreateManyArgs} args - Arguments to create many AiUsageDevices.
     * @example
     * // Create many AiUsageDevices
     * const aiUsageDevice = await prisma.aiUsageDevice.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AiUsageDeviceCreateManyArgs>(args?: SelectSubset<T, AiUsageDeviceCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AiUsageDevices and returns the data saved in the database.
     * @param {AiUsageDeviceCreateManyAndReturnArgs} args - Arguments to create many AiUsageDevices.
     * @example
     * // Create many AiUsageDevices
     * const aiUsageDevice = await prisma.aiUsageDevice.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AiUsageDevices and only return the `id`
     * const aiUsageDeviceWithIdOnly = await prisma.aiUsageDevice.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 AiUsageDeviceCreateManyAndReturnArgs>(args?: SelectSubset<T, AiUsageDeviceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AiUsageDevice.
     * @param {AiUsageDeviceDeleteArgs} args - Arguments to delete one AiUsageDevice.
     * @example
     * // Delete one AiUsageDevice
     * const AiUsageDevice = await prisma.aiUsageDevice.delete({
     *   where: {
     *     // ... filter to delete one AiUsageDevice
     *   }
     * })
     * 
     */
    delete<T extends AiUsageDeviceDeleteArgs>(args: SelectSubset<T, AiUsageDeviceDeleteArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AiUsageDevice.
     * @param {AiUsageDeviceUpdateArgs} args - Arguments to update one AiUsageDevice.
     * @example
     * // Update one AiUsageDevice
     * const aiUsageDevice = await prisma.aiUsageDevice.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AiUsageDeviceUpdateArgs>(args: SelectSubset<T, AiUsageDeviceUpdateArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AiUsageDevices.
     * @param {AiUsageDeviceDeleteManyArgs} args - Arguments to filter AiUsageDevices to delete.
     * @example
     * // Delete a few AiUsageDevices
     * const { count } = await prisma.aiUsageDevice.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AiUsageDeviceDeleteManyArgs>(args?: SelectSubset<T, AiUsageDeviceDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageDevices.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageDeviceUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AiUsageDevices
     * const aiUsageDevice = await prisma.aiUsageDevice.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AiUsageDeviceUpdateManyArgs>(args: SelectSubset<T, AiUsageDeviceUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageDevices and returns the data updated in the database.
     * @param {AiUsageDeviceUpdateManyAndReturnArgs} args - Arguments to update many AiUsageDevices.
     * @example
     * // Update many AiUsageDevices
     * const aiUsageDevice = await prisma.aiUsageDevice.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AiUsageDevices and only return the `id`
     * const aiUsageDeviceWithIdOnly = await prisma.aiUsageDevice.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 AiUsageDeviceUpdateManyAndReturnArgs>(args: SelectSubset<T, AiUsageDeviceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AiUsageDevice.
     * @param {AiUsageDeviceUpsertArgs} args - Arguments to update or create a AiUsageDevice.
     * @example
     * // Update or create a AiUsageDevice
     * const aiUsageDevice = await prisma.aiUsageDevice.upsert({
     *   create: {
     *     // ... data to create a AiUsageDevice
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AiUsageDevice we want to update
     *   }
     * })
     */
    upsert<T extends AiUsageDeviceUpsertArgs>(args: SelectSubset<T, AiUsageDeviceUpsertArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AiUsageDevices.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageDeviceCountArgs} args - Arguments to filter AiUsageDevices to count.
     * @example
     * // Count the number of AiUsageDevices
     * const count = await prisma.aiUsageDevice.count({
     *   where: {
     *     // ... the filter for the AiUsageDevices we want to count
     *   }
     * })
    **/
    count<T extends AiUsageDeviceCountArgs>(
      args?: Subset<T, AiUsageDeviceCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AiUsageDeviceCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AiUsageDevice.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageDeviceAggregateArgs} 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 AiUsageDeviceAggregateArgs>(args: Subset<T, AiUsageDeviceAggregateArgs>): Prisma.PrismaPromise<GetAiUsageDeviceAggregateType<T>>

    /**
     * Group by AiUsageDevice.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageDeviceGroupByArgs} 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 AiUsageDeviceGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AiUsageDeviceGroupByArgs['orderBy'] }
        : { orderBy?: AiUsageDeviceGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AiUsageDeviceGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAiUsageDeviceGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AiUsageDevice model
   */
  readonly fields: AiUsageDeviceFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AiUsageDevice.
   * 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__AiUsageDeviceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    blockedBy<T extends AiUsageDevice$blockedByArgs<ExtArgs> = {}>(args?: Subset<T, AiUsageDevice$blockedByArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    events<T extends AiUsageDevice$eventsArgs<ExtArgs> = {}>(args?: Subset<T, AiUsageDevice$eventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AiUsageDevice model
   */
  interface AiUsageDeviceFieldRefs {
    readonly id: FieldRef<"AiUsageDevice", 'String'>
    readonly deviceId: FieldRef<"AiUsageDevice", 'String'>
    readonly userId: FieldRef<"AiUsageDevice", 'String'>
    readonly hostname: FieldRef<"AiUsageDevice", 'String'>
    readonly osUser: FieldRef<"AiUsageDevice", 'String'>
    readonly osPlatform: FieldRef<"AiUsageDevice", 'AiUsageOsPlatform'>
    readonly agentVersion: FieldRef<"AiUsageDevice", 'String'>
    readonly firstSeenAt: FieldRef<"AiUsageDevice", 'DateTime'>
    readonly firstSeenIp: FieldRef<"AiUsageDevice", 'String'>
    readonly lastSeenAt: FieldRef<"AiUsageDevice", 'DateTime'>
    readonly blockedAt: FieldRef<"AiUsageDevice", 'DateTime'>
    readonly blockedById: FieldRef<"AiUsageDevice", 'String'>
    readonly blockedReason: FieldRef<"AiUsageDevice", 'String'>
    readonly organizationId: FieldRef<"AiUsageDevice", 'String'>
    readonly createdById: FieldRef<"AiUsageDevice", 'String'>
    readonly createdAt: FieldRef<"AiUsageDevice", 'DateTime'>
    readonly updatedAt: FieldRef<"AiUsageDevice", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AiUsageDevice findUnique
   */
  export type AiUsageDeviceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDevice to fetch.
     */
    where: AiUsageDeviceWhereUniqueInput
  }

  /**
   * AiUsageDevice findUniqueOrThrow
   */
  export type AiUsageDeviceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDevice to fetch.
     */
    where: AiUsageDeviceWhereUniqueInput
  }

  /**
   * AiUsageDevice findFirst
   */
  export type AiUsageDeviceFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDevice to fetch.
     */
    where?: AiUsageDeviceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageDevices to fetch.
     */
    orderBy?: AiUsageDeviceOrderByWithRelationInput | AiUsageDeviceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageDevices.
     */
    cursor?: AiUsageDeviceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageDevices 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` AiUsageDevices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageDevices.
     */
    distinct?: AiUsageDeviceScalarFieldEnum | AiUsageDeviceScalarFieldEnum[]
  }

  /**
   * AiUsageDevice findFirstOrThrow
   */
  export type AiUsageDeviceFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDevice to fetch.
     */
    where?: AiUsageDeviceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageDevices to fetch.
     */
    orderBy?: AiUsageDeviceOrderByWithRelationInput | AiUsageDeviceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageDevices.
     */
    cursor?: AiUsageDeviceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageDevices 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` AiUsageDevices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageDevices.
     */
    distinct?: AiUsageDeviceScalarFieldEnum | AiUsageDeviceScalarFieldEnum[]
  }

  /**
   * AiUsageDevice findMany
   */
  export type AiUsageDeviceFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDevices to fetch.
     */
    where?: AiUsageDeviceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageDevices to fetch.
     */
    orderBy?: AiUsageDeviceOrderByWithRelationInput | AiUsageDeviceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AiUsageDevices.
     */
    cursor?: AiUsageDeviceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageDevices 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` AiUsageDevices.
     */
    skip?: number
    distinct?: AiUsageDeviceScalarFieldEnum | AiUsageDeviceScalarFieldEnum[]
  }

  /**
   * AiUsageDevice create
   */
  export type AiUsageDeviceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * The data needed to create a AiUsageDevice.
     */
    data: XOR<AiUsageDeviceCreateInput, AiUsageDeviceUncheckedCreateInput>
  }

  /**
   * AiUsageDevice createMany
   */
  export type AiUsageDeviceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AiUsageDevices.
     */
    data: AiUsageDeviceCreateManyInput | AiUsageDeviceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AiUsageDevice createManyAndReturn
   */
  export type AiUsageDeviceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * The data used to create many AiUsageDevices.
     */
    data: AiUsageDeviceCreateManyInput | AiUsageDeviceCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AiUsageDevice update
   */
  export type AiUsageDeviceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * The data needed to update a AiUsageDevice.
     */
    data: XOR<AiUsageDeviceUpdateInput, AiUsageDeviceUncheckedUpdateInput>
    /**
     * Choose, which AiUsageDevice to update.
     */
    where: AiUsageDeviceWhereUniqueInput
  }

  /**
   * AiUsageDevice updateMany
   */
  export type AiUsageDeviceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AiUsageDevices.
     */
    data: XOR<AiUsageDeviceUpdateManyMutationInput, AiUsageDeviceUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageDevices to update
     */
    where?: AiUsageDeviceWhereInput
    /**
     * Limit how many AiUsageDevices to update.
     */
    limit?: number
  }

  /**
   * AiUsageDevice updateManyAndReturn
   */
  export type AiUsageDeviceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * The data used to update AiUsageDevices.
     */
    data: XOR<AiUsageDeviceUpdateManyMutationInput, AiUsageDeviceUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageDevices to update
     */
    where?: AiUsageDeviceWhereInput
    /**
     * Limit how many AiUsageDevices to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AiUsageDevice upsert
   */
  export type AiUsageDeviceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * The filter to search for the AiUsageDevice to update in case it exists.
     */
    where: AiUsageDeviceWhereUniqueInput
    /**
     * In case the AiUsageDevice found by the `where` argument doesn't exist, create a new AiUsageDevice with this data.
     */
    create: XOR<AiUsageDeviceCreateInput, AiUsageDeviceUncheckedCreateInput>
    /**
     * In case the AiUsageDevice was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AiUsageDeviceUpdateInput, AiUsageDeviceUncheckedUpdateInput>
  }

  /**
   * AiUsageDevice delete
   */
  export type AiUsageDeviceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    /**
     * Filter which AiUsageDevice to delete.
     */
    where: AiUsageDeviceWhereUniqueInput
  }

  /**
   * AiUsageDevice deleteMany
   */
  export type AiUsageDeviceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageDevices to delete
     */
    where?: AiUsageDeviceWhereInput
    /**
     * Limit how many AiUsageDevices to delete.
     */
    limit?: number
  }

  /**
   * AiUsageDevice.blockedBy
   */
  export type AiUsageDevice$blockedByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * AiUsageDevice.events
   */
  export type AiUsageDevice$eventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    where?: AiUsageEventWhereInput
    orderBy?: AiUsageEventOrderByWithRelationInput | AiUsageEventOrderByWithRelationInput[]
    cursor?: AiUsageEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageEventScalarFieldEnum | AiUsageEventScalarFieldEnum[]
  }

  /**
   * AiUsageDevice without action
   */
  export type AiUsageDeviceDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
  }


  /**
   * Model AiUsageEvent
   */

  export type AggregateAiUsageEvent = {
    _count: AiUsageEventCountAggregateOutputType | null
    _avg: AiUsageEventAvgAggregateOutputType | null
    _sum: AiUsageEventSumAggregateOutputType | null
    _min: AiUsageEventMinAggregateOutputType | null
    _max: AiUsageEventMaxAggregateOutputType | null
  }

  export type AiUsageEventAvgAggregateOutputType = {
    inputTokens: number | null
    outputTokens: number | null
    cacheCreationTokens: number | null
    cacheReadTokens: number | null
    totalTokens: number | null
    estimatedCostUsd: Decimal | null
    turnIndex: number | null
    toolUseCount: number | null
  }

  export type AiUsageEventSumAggregateOutputType = {
    inputTokens: number | null
    outputTokens: number | null
    cacheCreationTokens: number | null
    cacheReadTokens: number | null
    totalTokens: number | null
    estimatedCostUsd: Decimal | null
    turnIndex: number | null
    toolUseCount: number | null
  }

  export type AiUsageEventMinAggregateOutputType = {
    id: string | null
    rawMessageId: string | null
    deviceId: string | null
    userId: string | null
    tool: $Enums.AiUsageTool | null
    sessionId: string | null
    projectPath: string | null
    projectBasename: string | null
    model: string | null
    ts: Date | null
    receivedAt: Date | null
    inputTokens: number | null
    outputTokens: number | null
    cacheCreationTokens: number | null
    cacheReadTokens: number | null
    totalTokens: number | null
    estimatedCostUsd: Decimal | null
    gitBranch: string | null
    agentVersionEvent: string | null
    worktreeLabel: string | null
    cwdBasename: string | null
    turnIndex: number | null
    toolUseCount: number | null
    stopReason: string | null
    serviceTier: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageEventMaxAggregateOutputType = {
    id: string | null
    rawMessageId: string | null
    deviceId: string | null
    userId: string | null
    tool: $Enums.AiUsageTool | null
    sessionId: string | null
    projectPath: string | null
    projectBasename: string | null
    model: string | null
    ts: Date | null
    receivedAt: Date | null
    inputTokens: number | null
    outputTokens: number | null
    cacheCreationTokens: number | null
    cacheReadTokens: number | null
    totalTokens: number | null
    estimatedCostUsd: Decimal | null
    gitBranch: string | null
    agentVersionEvent: string | null
    worktreeLabel: string | null
    cwdBasename: string | null
    turnIndex: number | null
    toolUseCount: number | null
    stopReason: string | null
    serviceTier: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageEventCountAggregateOutputType = {
    id: number
    rawMessageId: number
    deviceId: number
    userId: number
    tool: number
    sessionId: number
    projectPath: number
    projectBasename: number
    model: number
    ts: number
    receivedAt: number
    inputTokens: number
    outputTokens: number
    cacheCreationTokens: number
    cacheReadTokens: number
    totalTokens: number
    estimatedCostUsd: number
    gitBranch: number
    agentVersionEvent: number
    worktreeLabel: number
    cwdBasename: number
    turnIndex: number
    toolUseCount: number
    toolNames: number
    stopReason: number
    serviceTier: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AiUsageEventAvgAggregateInputType = {
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalTokens?: true
    estimatedCostUsd?: true
    turnIndex?: true
    toolUseCount?: true
  }

  export type AiUsageEventSumAggregateInputType = {
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalTokens?: true
    estimatedCostUsd?: true
    turnIndex?: true
    toolUseCount?: true
  }

  export type AiUsageEventMinAggregateInputType = {
    id?: true
    rawMessageId?: true
    deviceId?: true
    userId?: true
    tool?: true
    sessionId?: true
    projectPath?: true
    projectBasename?: true
    model?: true
    ts?: true
    receivedAt?: true
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalTokens?: true
    estimatedCostUsd?: true
    gitBranch?: true
    agentVersionEvent?: true
    worktreeLabel?: true
    cwdBasename?: true
    turnIndex?: true
    toolUseCount?: true
    stopReason?: true
    serviceTier?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageEventMaxAggregateInputType = {
    id?: true
    rawMessageId?: true
    deviceId?: true
    userId?: true
    tool?: true
    sessionId?: true
    projectPath?: true
    projectBasename?: true
    model?: true
    ts?: true
    receivedAt?: true
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalTokens?: true
    estimatedCostUsd?: true
    gitBranch?: true
    agentVersionEvent?: true
    worktreeLabel?: true
    cwdBasename?: true
    turnIndex?: true
    toolUseCount?: true
    stopReason?: true
    serviceTier?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageEventCountAggregateInputType = {
    id?: true
    rawMessageId?: true
    deviceId?: true
    userId?: true
    tool?: true
    sessionId?: true
    projectPath?: true
    projectBasename?: true
    model?: true
    ts?: true
    receivedAt?: true
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalTokens?: true
    estimatedCostUsd?: true
    gitBranch?: true
    agentVersionEvent?: true
    worktreeLabel?: true
    cwdBasename?: true
    turnIndex?: true
    toolUseCount?: true
    toolNames?: true
    stopReason?: true
    serviceTier?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AiUsageEventAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageEvent to aggregate.
     */
    where?: AiUsageEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageEvents to fetch.
     */
    orderBy?: AiUsageEventOrderByWithRelationInput | AiUsageEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AiUsageEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageEvents 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` AiUsageEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AiUsageEvents
    **/
    _count?: true | AiUsageEventCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AiUsageEventAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AiUsageEventSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AiUsageEventMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AiUsageEventMaxAggregateInputType
  }

  export type GetAiUsageEventAggregateType<T extends AiUsageEventAggregateArgs> = {
        [P in keyof T & keyof AggregateAiUsageEvent]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAiUsageEvent[P]>
      : GetScalarType<T[P], AggregateAiUsageEvent[P]>
  }




  export type AiUsageEventGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AiUsageEventWhereInput
    orderBy?: AiUsageEventOrderByWithAggregationInput | AiUsageEventOrderByWithAggregationInput[]
    by: AiUsageEventScalarFieldEnum[] | AiUsageEventScalarFieldEnum
    having?: AiUsageEventScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AiUsageEventCountAggregateInputType | true
    _avg?: AiUsageEventAvgAggregateInputType
    _sum?: AiUsageEventSumAggregateInputType
    _min?: AiUsageEventMinAggregateInputType
    _max?: AiUsageEventMaxAggregateInputType
  }

  export type AiUsageEventGroupByOutputType = {
    id: string
    rawMessageId: string
    deviceId: string
    userId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date
    receivedAt: Date
    inputTokens: number
    outputTokens: number
    cacheCreationTokens: number
    cacheReadTokens: number
    totalTokens: number
    estimatedCostUsd: Decimal
    gitBranch: string | null
    agentVersionEvent: string | null
    worktreeLabel: string | null
    cwdBasename: string | null
    turnIndex: number | null
    toolUseCount: number | null
    toolNames: JsonValue | null
    stopReason: string | null
    serviceTier: string | null
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: AiUsageEventCountAggregateOutputType | null
    _avg: AiUsageEventAvgAggregateOutputType | null
    _sum: AiUsageEventSumAggregateOutputType | null
    _min: AiUsageEventMinAggregateOutputType | null
    _max: AiUsageEventMaxAggregateOutputType | null
  }

  type GetAiUsageEventGroupByPayload<T extends AiUsageEventGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AiUsageEventGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AiUsageEventGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AiUsageEventGroupByOutputType[P]>
            : GetScalarType<T[P], AiUsageEventGroupByOutputType[P]>
        }
      >
    >


  export type AiUsageEventSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    rawMessageId?: boolean
    deviceId?: boolean
    userId?: boolean
    tool?: boolean
    sessionId?: boolean
    projectPath?: boolean
    projectBasename?: boolean
    model?: boolean
    ts?: boolean
    receivedAt?: boolean
    inputTokens?: boolean
    outputTokens?: boolean
    cacheCreationTokens?: boolean
    cacheReadTokens?: boolean
    totalTokens?: boolean
    estimatedCostUsd?: boolean
    gitBranch?: boolean
    agentVersionEvent?: boolean
    worktreeLabel?: boolean
    cwdBasename?: boolean
    turnIndex?: boolean
    toolUseCount?: boolean
    toolNames?: boolean
    stopReason?: boolean
    serviceTier?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    device?: boolean | AiUsageDeviceDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageEvent"]>

  export type AiUsageEventSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    rawMessageId?: boolean
    deviceId?: boolean
    userId?: boolean
    tool?: boolean
    sessionId?: boolean
    projectPath?: boolean
    projectBasename?: boolean
    model?: boolean
    ts?: boolean
    receivedAt?: boolean
    inputTokens?: boolean
    outputTokens?: boolean
    cacheCreationTokens?: boolean
    cacheReadTokens?: boolean
    totalTokens?: boolean
    estimatedCostUsd?: boolean
    gitBranch?: boolean
    agentVersionEvent?: boolean
    worktreeLabel?: boolean
    cwdBasename?: boolean
    turnIndex?: boolean
    toolUseCount?: boolean
    toolNames?: boolean
    stopReason?: boolean
    serviceTier?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    device?: boolean | AiUsageDeviceDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageEvent"]>

  export type AiUsageEventSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    rawMessageId?: boolean
    deviceId?: boolean
    userId?: boolean
    tool?: boolean
    sessionId?: boolean
    projectPath?: boolean
    projectBasename?: boolean
    model?: boolean
    ts?: boolean
    receivedAt?: boolean
    inputTokens?: boolean
    outputTokens?: boolean
    cacheCreationTokens?: boolean
    cacheReadTokens?: boolean
    totalTokens?: boolean
    estimatedCostUsd?: boolean
    gitBranch?: boolean
    agentVersionEvent?: boolean
    worktreeLabel?: boolean
    cwdBasename?: boolean
    turnIndex?: boolean
    toolUseCount?: boolean
    toolNames?: boolean
    stopReason?: boolean
    serviceTier?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    device?: boolean | AiUsageDeviceDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageEvent"]>

  export type AiUsageEventSelectScalar = {
    id?: boolean
    rawMessageId?: boolean
    deviceId?: boolean
    userId?: boolean
    tool?: boolean
    sessionId?: boolean
    projectPath?: boolean
    projectBasename?: boolean
    model?: boolean
    ts?: boolean
    receivedAt?: boolean
    inputTokens?: boolean
    outputTokens?: boolean
    cacheCreationTokens?: boolean
    cacheReadTokens?: boolean
    totalTokens?: boolean
    estimatedCostUsd?: boolean
    gitBranch?: boolean
    agentVersionEvent?: boolean
    worktreeLabel?: boolean
    cwdBasename?: boolean
    turnIndex?: boolean
    toolUseCount?: boolean
    toolNames?: boolean
    stopReason?: boolean
    serviceTier?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AiUsageEventOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "rawMessageId" | "deviceId" | "userId" | "tool" | "sessionId" | "projectPath" | "projectBasename" | "model" | "ts" | "receivedAt" | "inputTokens" | "outputTokens" | "cacheCreationTokens" | "cacheReadTokens" | "totalTokens" | "estimatedCostUsd" | "gitBranch" | "agentVersionEvent" | "worktreeLabel" | "cwdBasename" | "turnIndex" | "toolUseCount" | "toolNames" | "stopReason" | "serviceTier" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["aiUsageEvent"]>
  export type AiUsageEventInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    device?: boolean | AiUsageDeviceDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type AiUsageEventIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    device?: boolean | AiUsageDeviceDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type AiUsageEventIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    device?: boolean | AiUsageDeviceDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $AiUsageEventPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AiUsageEvent"
    objects: {
      device: Prisma.$AiUsageDevicePayload<ExtArgs>
      user: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      rawMessageId: string
      deviceId: string
      userId: string
      tool: $Enums.AiUsageTool
      sessionId: string
      projectPath: string
      projectBasename: string
      model: string
      ts: Date
      receivedAt: Date
      inputTokens: number
      outputTokens: number
      cacheCreationTokens: number
      cacheReadTokens: number
      totalTokens: number
      estimatedCostUsd: Prisma.Decimal
      gitBranch: string | null
      agentVersionEvent: string | null
      worktreeLabel: string | null
      cwdBasename: string | null
      turnIndex: number | null
      toolUseCount: number | null
      toolNames: Prisma.JsonValue | null
      stopReason: string | null
      serviceTier: string | null
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aiUsageEvent"]>
    composites: {}
  }

  type AiUsageEventGetPayload<S extends boolean | null | undefined | AiUsageEventDefaultArgs> = $Result.GetResult<Prisma.$AiUsageEventPayload, S>

  type AiUsageEventCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AiUsageEventFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AiUsageEventCountAggregateInputType | true
    }

  export interface AiUsageEventDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AiUsageEvent'], meta: { name: 'AiUsageEvent' } }
    /**
     * Find zero or one AiUsageEvent that matches the filter.
     * @param {AiUsageEventFindUniqueArgs} args - Arguments to find a AiUsageEvent
     * @example
     * // Get one AiUsageEvent
     * const aiUsageEvent = await prisma.aiUsageEvent.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AiUsageEventFindUniqueArgs>(args: SelectSubset<T, AiUsageEventFindUniqueArgs<ExtArgs>>): Prisma__AiUsageEventClient<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AiUsageEvent that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AiUsageEventFindUniqueOrThrowArgs} args - Arguments to find a AiUsageEvent
     * @example
     * // Get one AiUsageEvent
     * const aiUsageEvent = await prisma.aiUsageEvent.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AiUsageEventFindUniqueOrThrowArgs>(args: SelectSubset<T, AiUsageEventFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AiUsageEventClient<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageEvent 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 {AiUsageEventFindFirstArgs} args - Arguments to find a AiUsageEvent
     * @example
     * // Get one AiUsageEvent
     * const aiUsageEvent = await prisma.aiUsageEvent.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AiUsageEventFindFirstArgs>(args?: SelectSubset<T, AiUsageEventFindFirstArgs<ExtArgs>>): Prisma__AiUsageEventClient<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageEvent 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 {AiUsageEventFindFirstOrThrowArgs} args - Arguments to find a AiUsageEvent
     * @example
     * // Get one AiUsageEvent
     * const aiUsageEvent = await prisma.aiUsageEvent.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AiUsageEventFindFirstOrThrowArgs>(args?: SelectSubset<T, AiUsageEventFindFirstOrThrowArgs<ExtArgs>>): Prisma__AiUsageEventClient<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AiUsageEvents 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 {AiUsageEventFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AiUsageEvents
     * const aiUsageEvents = await prisma.aiUsageEvent.findMany()
     * 
     * // Get first 10 AiUsageEvents
     * const aiUsageEvents = await prisma.aiUsageEvent.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aiUsageEventWithIdOnly = await prisma.aiUsageEvent.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AiUsageEventFindManyArgs>(args?: SelectSubset<T, AiUsageEventFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AiUsageEvent.
     * @param {AiUsageEventCreateArgs} args - Arguments to create a AiUsageEvent.
     * @example
     * // Create one AiUsageEvent
     * const AiUsageEvent = await prisma.aiUsageEvent.create({
     *   data: {
     *     // ... data to create a AiUsageEvent
     *   }
     * })
     * 
     */
    create<T extends AiUsageEventCreateArgs>(args: SelectSubset<T, AiUsageEventCreateArgs<ExtArgs>>): Prisma__AiUsageEventClient<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AiUsageEvents.
     * @param {AiUsageEventCreateManyArgs} args - Arguments to create many AiUsageEvents.
     * @example
     * // Create many AiUsageEvents
     * const aiUsageEvent = await prisma.aiUsageEvent.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AiUsageEventCreateManyArgs>(args?: SelectSubset<T, AiUsageEventCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AiUsageEvents and returns the data saved in the database.
     * @param {AiUsageEventCreateManyAndReturnArgs} args - Arguments to create many AiUsageEvents.
     * @example
     * // Create many AiUsageEvents
     * const aiUsageEvent = await prisma.aiUsageEvent.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AiUsageEvents and only return the `id`
     * const aiUsageEventWithIdOnly = await prisma.aiUsageEvent.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 AiUsageEventCreateManyAndReturnArgs>(args?: SelectSubset<T, AiUsageEventCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AiUsageEvent.
     * @param {AiUsageEventDeleteArgs} args - Arguments to delete one AiUsageEvent.
     * @example
     * // Delete one AiUsageEvent
     * const AiUsageEvent = await prisma.aiUsageEvent.delete({
     *   where: {
     *     // ... filter to delete one AiUsageEvent
     *   }
     * })
     * 
     */
    delete<T extends AiUsageEventDeleteArgs>(args: SelectSubset<T, AiUsageEventDeleteArgs<ExtArgs>>): Prisma__AiUsageEventClient<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AiUsageEvent.
     * @param {AiUsageEventUpdateArgs} args - Arguments to update one AiUsageEvent.
     * @example
     * // Update one AiUsageEvent
     * const aiUsageEvent = await prisma.aiUsageEvent.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AiUsageEventUpdateArgs>(args: SelectSubset<T, AiUsageEventUpdateArgs<ExtArgs>>): Prisma__AiUsageEventClient<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AiUsageEvents.
     * @param {AiUsageEventDeleteManyArgs} args - Arguments to filter AiUsageEvents to delete.
     * @example
     * // Delete a few AiUsageEvents
     * const { count } = await prisma.aiUsageEvent.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AiUsageEventDeleteManyArgs>(args?: SelectSubset<T, AiUsageEventDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageEventUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AiUsageEvents
     * const aiUsageEvent = await prisma.aiUsageEvent.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AiUsageEventUpdateManyArgs>(args: SelectSubset<T, AiUsageEventUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageEvents and returns the data updated in the database.
     * @param {AiUsageEventUpdateManyAndReturnArgs} args - Arguments to update many AiUsageEvents.
     * @example
     * // Update many AiUsageEvents
     * const aiUsageEvent = await prisma.aiUsageEvent.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AiUsageEvents and only return the `id`
     * const aiUsageEventWithIdOnly = await prisma.aiUsageEvent.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 AiUsageEventUpdateManyAndReturnArgs>(args: SelectSubset<T, AiUsageEventUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AiUsageEvent.
     * @param {AiUsageEventUpsertArgs} args - Arguments to update or create a AiUsageEvent.
     * @example
     * // Update or create a AiUsageEvent
     * const aiUsageEvent = await prisma.aiUsageEvent.upsert({
     *   create: {
     *     // ... data to create a AiUsageEvent
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AiUsageEvent we want to update
     *   }
     * })
     */
    upsert<T extends AiUsageEventUpsertArgs>(args: SelectSubset<T, AiUsageEventUpsertArgs<ExtArgs>>): Prisma__AiUsageEventClient<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AiUsageEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageEventCountArgs} args - Arguments to filter AiUsageEvents to count.
     * @example
     * // Count the number of AiUsageEvents
     * const count = await prisma.aiUsageEvent.count({
     *   where: {
     *     // ... the filter for the AiUsageEvents we want to count
     *   }
     * })
    **/
    count<T extends AiUsageEventCountArgs>(
      args?: Subset<T, AiUsageEventCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AiUsageEventCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AiUsageEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageEventAggregateArgs} 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 AiUsageEventAggregateArgs>(args: Subset<T, AiUsageEventAggregateArgs>): Prisma.PrismaPromise<GetAiUsageEventAggregateType<T>>

    /**
     * Group by AiUsageEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageEventGroupByArgs} 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 AiUsageEventGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AiUsageEventGroupByArgs['orderBy'] }
        : { orderBy?: AiUsageEventGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AiUsageEventGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAiUsageEventGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AiUsageEvent model
   */
  readonly fields: AiUsageEventFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AiUsageEvent.
   * 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__AiUsageEventClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    device<T extends AiUsageDeviceDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AiUsageDeviceDefaultArgs<ExtArgs>>): Prisma__AiUsageDeviceClient<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AiUsageEvent model
   */
  interface AiUsageEventFieldRefs {
    readonly id: FieldRef<"AiUsageEvent", 'String'>
    readonly rawMessageId: FieldRef<"AiUsageEvent", 'String'>
    readonly deviceId: FieldRef<"AiUsageEvent", 'String'>
    readonly userId: FieldRef<"AiUsageEvent", 'String'>
    readonly tool: FieldRef<"AiUsageEvent", 'AiUsageTool'>
    readonly sessionId: FieldRef<"AiUsageEvent", 'String'>
    readonly projectPath: FieldRef<"AiUsageEvent", 'String'>
    readonly projectBasename: FieldRef<"AiUsageEvent", 'String'>
    readonly model: FieldRef<"AiUsageEvent", 'String'>
    readonly ts: FieldRef<"AiUsageEvent", 'DateTime'>
    readonly receivedAt: FieldRef<"AiUsageEvent", 'DateTime'>
    readonly inputTokens: FieldRef<"AiUsageEvent", 'Int'>
    readonly outputTokens: FieldRef<"AiUsageEvent", 'Int'>
    readonly cacheCreationTokens: FieldRef<"AiUsageEvent", 'Int'>
    readonly cacheReadTokens: FieldRef<"AiUsageEvent", 'Int'>
    readonly totalTokens: FieldRef<"AiUsageEvent", 'Int'>
    readonly estimatedCostUsd: FieldRef<"AiUsageEvent", 'Decimal'>
    readonly gitBranch: FieldRef<"AiUsageEvent", 'String'>
    readonly agentVersionEvent: FieldRef<"AiUsageEvent", 'String'>
    readonly worktreeLabel: FieldRef<"AiUsageEvent", 'String'>
    readonly cwdBasename: FieldRef<"AiUsageEvent", 'String'>
    readonly turnIndex: FieldRef<"AiUsageEvent", 'Int'>
    readonly toolUseCount: FieldRef<"AiUsageEvent", 'Int'>
    readonly toolNames: FieldRef<"AiUsageEvent", 'Json'>
    readonly stopReason: FieldRef<"AiUsageEvent", 'String'>
    readonly serviceTier: FieldRef<"AiUsageEvent", 'String'>
    readonly organizationId: FieldRef<"AiUsageEvent", 'String'>
    readonly createdById: FieldRef<"AiUsageEvent", 'String'>
    readonly createdAt: FieldRef<"AiUsageEvent", 'DateTime'>
    readonly updatedAt: FieldRef<"AiUsageEvent", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AiUsageEvent findUnique
   */
  export type AiUsageEventFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageEvent to fetch.
     */
    where: AiUsageEventWhereUniqueInput
  }

  /**
   * AiUsageEvent findUniqueOrThrow
   */
  export type AiUsageEventFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageEvent to fetch.
     */
    where: AiUsageEventWhereUniqueInput
  }

  /**
   * AiUsageEvent findFirst
   */
  export type AiUsageEventFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageEvent to fetch.
     */
    where?: AiUsageEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageEvents to fetch.
     */
    orderBy?: AiUsageEventOrderByWithRelationInput | AiUsageEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageEvents.
     */
    cursor?: AiUsageEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageEvents 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` AiUsageEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageEvents.
     */
    distinct?: AiUsageEventScalarFieldEnum | AiUsageEventScalarFieldEnum[]
  }

  /**
   * AiUsageEvent findFirstOrThrow
   */
  export type AiUsageEventFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageEvent to fetch.
     */
    where?: AiUsageEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageEvents to fetch.
     */
    orderBy?: AiUsageEventOrderByWithRelationInput | AiUsageEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageEvents.
     */
    cursor?: AiUsageEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageEvents 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` AiUsageEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageEvents.
     */
    distinct?: AiUsageEventScalarFieldEnum | AiUsageEventScalarFieldEnum[]
  }

  /**
   * AiUsageEvent findMany
   */
  export type AiUsageEventFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageEvents to fetch.
     */
    where?: AiUsageEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageEvents to fetch.
     */
    orderBy?: AiUsageEventOrderByWithRelationInput | AiUsageEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AiUsageEvents.
     */
    cursor?: AiUsageEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageEvents 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` AiUsageEvents.
     */
    skip?: number
    distinct?: AiUsageEventScalarFieldEnum | AiUsageEventScalarFieldEnum[]
  }

  /**
   * AiUsageEvent create
   */
  export type AiUsageEventCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * The data needed to create a AiUsageEvent.
     */
    data: XOR<AiUsageEventCreateInput, AiUsageEventUncheckedCreateInput>
  }

  /**
   * AiUsageEvent createMany
   */
  export type AiUsageEventCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AiUsageEvents.
     */
    data: AiUsageEventCreateManyInput | AiUsageEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AiUsageEvent createManyAndReturn
   */
  export type AiUsageEventCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * The data used to create many AiUsageEvents.
     */
    data: AiUsageEventCreateManyInput | AiUsageEventCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AiUsageEvent update
   */
  export type AiUsageEventUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * The data needed to update a AiUsageEvent.
     */
    data: XOR<AiUsageEventUpdateInput, AiUsageEventUncheckedUpdateInput>
    /**
     * Choose, which AiUsageEvent to update.
     */
    where: AiUsageEventWhereUniqueInput
  }

  /**
   * AiUsageEvent updateMany
   */
  export type AiUsageEventUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AiUsageEvents.
     */
    data: XOR<AiUsageEventUpdateManyMutationInput, AiUsageEventUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageEvents to update
     */
    where?: AiUsageEventWhereInput
    /**
     * Limit how many AiUsageEvents to update.
     */
    limit?: number
  }

  /**
   * AiUsageEvent updateManyAndReturn
   */
  export type AiUsageEventUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * The data used to update AiUsageEvents.
     */
    data: XOR<AiUsageEventUpdateManyMutationInput, AiUsageEventUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageEvents to update
     */
    where?: AiUsageEventWhereInput
    /**
     * Limit how many AiUsageEvents to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AiUsageEvent upsert
   */
  export type AiUsageEventUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * The filter to search for the AiUsageEvent to update in case it exists.
     */
    where: AiUsageEventWhereUniqueInput
    /**
     * In case the AiUsageEvent found by the `where` argument doesn't exist, create a new AiUsageEvent with this data.
     */
    create: XOR<AiUsageEventCreateInput, AiUsageEventUncheckedCreateInput>
    /**
     * In case the AiUsageEvent was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AiUsageEventUpdateInput, AiUsageEventUncheckedUpdateInput>
  }

  /**
   * AiUsageEvent delete
   */
  export type AiUsageEventDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    /**
     * Filter which AiUsageEvent to delete.
     */
    where: AiUsageEventWhereUniqueInput
  }

  /**
   * AiUsageEvent deleteMany
   */
  export type AiUsageEventDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageEvents to delete
     */
    where?: AiUsageEventWhereInput
    /**
     * Limit how many AiUsageEvents to delete.
     */
    limit?: number
  }

  /**
   * AiUsageEvent without action
   */
  export type AiUsageEventDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
  }


  /**
   * Model AiUsageEventDlq
   */

  export type AggregateAiUsageEventDlq = {
    _count: AiUsageEventDlqCountAggregateOutputType | null
    _min: AiUsageEventDlqMinAggregateOutputType | null
    _max: AiUsageEventDlqMaxAggregateOutputType | null
  }

  export type AiUsageEventDlqMinAggregateOutputType = {
    id: string | null
    deviceId: string | null
    reason: $Enums.AiUsageDlqReason | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageEventDlqMaxAggregateOutputType = {
    id: string | null
    deviceId: string | null
    reason: $Enums.AiUsageDlqReason | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageEventDlqCountAggregateOutputType = {
    id: number
    deviceId: number
    reason: number
    rawPayload: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AiUsageEventDlqMinAggregateInputType = {
    id?: true
    deviceId?: true
    reason?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageEventDlqMaxAggregateInputType = {
    id?: true
    deviceId?: true
    reason?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageEventDlqCountAggregateInputType = {
    id?: true
    deviceId?: true
    reason?: true
    rawPayload?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AiUsageEventDlqAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageEventDlq to aggregate.
     */
    where?: AiUsageEventDlqWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageEventDlqs to fetch.
     */
    orderBy?: AiUsageEventDlqOrderByWithRelationInput | AiUsageEventDlqOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AiUsageEventDlqWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageEventDlqs 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` AiUsageEventDlqs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AiUsageEventDlqs
    **/
    _count?: true | AiUsageEventDlqCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AiUsageEventDlqMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AiUsageEventDlqMaxAggregateInputType
  }

  export type GetAiUsageEventDlqAggregateType<T extends AiUsageEventDlqAggregateArgs> = {
        [P in keyof T & keyof AggregateAiUsageEventDlq]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAiUsageEventDlq[P]>
      : GetScalarType<T[P], AggregateAiUsageEventDlq[P]>
  }




  export type AiUsageEventDlqGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AiUsageEventDlqWhereInput
    orderBy?: AiUsageEventDlqOrderByWithAggregationInput | AiUsageEventDlqOrderByWithAggregationInput[]
    by: AiUsageEventDlqScalarFieldEnum[] | AiUsageEventDlqScalarFieldEnum
    having?: AiUsageEventDlqScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AiUsageEventDlqCountAggregateInputType | true
    _min?: AiUsageEventDlqMinAggregateInputType
    _max?: AiUsageEventDlqMaxAggregateInputType
  }

  export type AiUsageEventDlqGroupByOutputType = {
    id: string
    deviceId: string | null
    reason: $Enums.AiUsageDlqReason
    rawPayload: JsonValue
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: AiUsageEventDlqCountAggregateOutputType | null
    _min: AiUsageEventDlqMinAggregateOutputType | null
    _max: AiUsageEventDlqMaxAggregateOutputType | null
  }

  type GetAiUsageEventDlqGroupByPayload<T extends AiUsageEventDlqGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AiUsageEventDlqGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AiUsageEventDlqGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AiUsageEventDlqGroupByOutputType[P]>
            : GetScalarType<T[P], AiUsageEventDlqGroupByOutputType[P]>
        }
      >
    >


  export type AiUsageEventDlqSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deviceId?: boolean
    reason?: boolean
    rawPayload?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aiUsageEventDlq"]>

  export type AiUsageEventDlqSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deviceId?: boolean
    reason?: boolean
    rawPayload?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aiUsageEventDlq"]>

  export type AiUsageEventDlqSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deviceId?: boolean
    reason?: boolean
    rawPayload?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["aiUsageEventDlq"]>

  export type AiUsageEventDlqSelectScalar = {
    id?: boolean
    deviceId?: boolean
    reason?: boolean
    rawPayload?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AiUsageEventDlqOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "deviceId" | "reason" | "rawPayload" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["aiUsageEventDlq"]>

  export type $AiUsageEventDlqPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AiUsageEventDlq"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      deviceId: string | null
      reason: $Enums.AiUsageDlqReason
      rawPayload: Prisma.JsonValue
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aiUsageEventDlq"]>
    composites: {}
  }

  type AiUsageEventDlqGetPayload<S extends boolean | null | undefined | AiUsageEventDlqDefaultArgs> = $Result.GetResult<Prisma.$AiUsageEventDlqPayload, S>

  type AiUsageEventDlqCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AiUsageEventDlqFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AiUsageEventDlqCountAggregateInputType | true
    }

  export interface AiUsageEventDlqDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AiUsageEventDlq'], meta: { name: 'AiUsageEventDlq' } }
    /**
     * Find zero or one AiUsageEventDlq that matches the filter.
     * @param {AiUsageEventDlqFindUniqueArgs} args - Arguments to find a AiUsageEventDlq
     * @example
     * // Get one AiUsageEventDlq
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AiUsageEventDlqFindUniqueArgs>(args: SelectSubset<T, AiUsageEventDlqFindUniqueArgs<ExtArgs>>): Prisma__AiUsageEventDlqClient<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AiUsageEventDlq that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AiUsageEventDlqFindUniqueOrThrowArgs} args - Arguments to find a AiUsageEventDlq
     * @example
     * // Get one AiUsageEventDlq
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AiUsageEventDlqFindUniqueOrThrowArgs>(args: SelectSubset<T, AiUsageEventDlqFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AiUsageEventDlqClient<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageEventDlq 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 {AiUsageEventDlqFindFirstArgs} args - Arguments to find a AiUsageEventDlq
     * @example
     * // Get one AiUsageEventDlq
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AiUsageEventDlqFindFirstArgs>(args?: SelectSubset<T, AiUsageEventDlqFindFirstArgs<ExtArgs>>): Prisma__AiUsageEventDlqClient<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageEventDlq 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 {AiUsageEventDlqFindFirstOrThrowArgs} args - Arguments to find a AiUsageEventDlq
     * @example
     * // Get one AiUsageEventDlq
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AiUsageEventDlqFindFirstOrThrowArgs>(args?: SelectSubset<T, AiUsageEventDlqFindFirstOrThrowArgs<ExtArgs>>): Prisma__AiUsageEventDlqClient<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AiUsageEventDlqs 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 {AiUsageEventDlqFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AiUsageEventDlqs
     * const aiUsageEventDlqs = await prisma.aiUsageEventDlq.findMany()
     * 
     * // Get first 10 AiUsageEventDlqs
     * const aiUsageEventDlqs = await prisma.aiUsageEventDlq.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aiUsageEventDlqWithIdOnly = await prisma.aiUsageEventDlq.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AiUsageEventDlqFindManyArgs>(args?: SelectSubset<T, AiUsageEventDlqFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AiUsageEventDlq.
     * @param {AiUsageEventDlqCreateArgs} args - Arguments to create a AiUsageEventDlq.
     * @example
     * // Create one AiUsageEventDlq
     * const AiUsageEventDlq = await prisma.aiUsageEventDlq.create({
     *   data: {
     *     // ... data to create a AiUsageEventDlq
     *   }
     * })
     * 
     */
    create<T extends AiUsageEventDlqCreateArgs>(args: SelectSubset<T, AiUsageEventDlqCreateArgs<ExtArgs>>): Prisma__AiUsageEventDlqClient<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AiUsageEventDlqs.
     * @param {AiUsageEventDlqCreateManyArgs} args - Arguments to create many AiUsageEventDlqs.
     * @example
     * // Create many AiUsageEventDlqs
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AiUsageEventDlqCreateManyArgs>(args?: SelectSubset<T, AiUsageEventDlqCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AiUsageEventDlqs and returns the data saved in the database.
     * @param {AiUsageEventDlqCreateManyAndReturnArgs} args - Arguments to create many AiUsageEventDlqs.
     * @example
     * // Create many AiUsageEventDlqs
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AiUsageEventDlqs and only return the `id`
     * const aiUsageEventDlqWithIdOnly = await prisma.aiUsageEventDlq.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 AiUsageEventDlqCreateManyAndReturnArgs>(args?: SelectSubset<T, AiUsageEventDlqCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AiUsageEventDlq.
     * @param {AiUsageEventDlqDeleteArgs} args - Arguments to delete one AiUsageEventDlq.
     * @example
     * // Delete one AiUsageEventDlq
     * const AiUsageEventDlq = await prisma.aiUsageEventDlq.delete({
     *   where: {
     *     // ... filter to delete one AiUsageEventDlq
     *   }
     * })
     * 
     */
    delete<T extends AiUsageEventDlqDeleteArgs>(args: SelectSubset<T, AiUsageEventDlqDeleteArgs<ExtArgs>>): Prisma__AiUsageEventDlqClient<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AiUsageEventDlq.
     * @param {AiUsageEventDlqUpdateArgs} args - Arguments to update one AiUsageEventDlq.
     * @example
     * // Update one AiUsageEventDlq
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AiUsageEventDlqUpdateArgs>(args: SelectSubset<T, AiUsageEventDlqUpdateArgs<ExtArgs>>): Prisma__AiUsageEventDlqClient<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AiUsageEventDlqs.
     * @param {AiUsageEventDlqDeleteManyArgs} args - Arguments to filter AiUsageEventDlqs to delete.
     * @example
     * // Delete a few AiUsageEventDlqs
     * const { count } = await prisma.aiUsageEventDlq.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AiUsageEventDlqDeleteManyArgs>(args?: SelectSubset<T, AiUsageEventDlqDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageEventDlqs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageEventDlqUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AiUsageEventDlqs
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AiUsageEventDlqUpdateManyArgs>(args: SelectSubset<T, AiUsageEventDlqUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageEventDlqs and returns the data updated in the database.
     * @param {AiUsageEventDlqUpdateManyAndReturnArgs} args - Arguments to update many AiUsageEventDlqs.
     * @example
     * // Update many AiUsageEventDlqs
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AiUsageEventDlqs and only return the `id`
     * const aiUsageEventDlqWithIdOnly = await prisma.aiUsageEventDlq.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 AiUsageEventDlqUpdateManyAndReturnArgs>(args: SelectSubset<T, AiUsageEventDlqUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AiUsageEventDlq.
     * @param {AiUsageEventDlqUpsertArgs} args - Arguments to update or create a AiUsageEventDlq.
     * @example
     * // Update or create a AiUsageEventDlq
     * const aiUsageEventDlq = await prisma.aiUsageEventDlq.upsert({
     *   create: {
     *     // ... data to create a AiUsageEventDlq
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AiUsageEventDlq we want to update
     *   }
     * })
     */
    upsert<T extends AiUsageEventDlqUpsertArgs>(args: SelectSubset<T, AiUsageEventDlqUpsertArgs<ExtArgs>>): Prisma__AiUsageEventDlqClient<$Result.GetResult<Prisma.$AiUsageEventDlqPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AiUsageEventDlqs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageEventDlqCountArgs} args - Arguments to filter AiUsageEventDlqs to count.
     * @example
     * // Count the number of AiUsageEventDlqs
     * const count = await prisma.aiUsageEventDlq.count({
     *   where: {
     *     // ... the filter for the AiUsageEventDlqs we want to count
     *   }
     * })
    **/
    count<T extends AiUsageEventDlqCountArgs>(
      args?: Subset<T, AiUsageEventDlqCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AiUsageEventDlqCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AiUsageEventDlq.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageEventDlqAggregateArgs} 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 AiUsageEventDlqAggregateArgs>(args: Subset<T, AiUsageEventDlqAggregateArgs>): Prisma.PrismaPromise<GetAiUsageEventDlqAggregateType<T>>

    /**
     * Group by AiUsageEventDlq.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageEventDlqGroupByArgs} 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 AiUsageEventDlqGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AiUsageEventDlqGroupByArgs['orderBy'] }
        : { orderBy?: AiUsageEventDlqGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AiUsageEventDlqGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAiUsageEventDlqGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AiUsageEventDlq model
   */
  readonly fields: AiUsageEventDlqFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AiUsageEventDlq.
   * 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__AiUsageEventDlqClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AiUsageEventDlq model
   */
  interface AiUsageEventDlqFieldRefs {
    readonly id: FieldRef<"AiUsageEventDlq", 'String'>
    readonly deviceId: FieldRef<"AiUsageEventDlq", 'String'>
    readonly reason: FieldRef<"AiUsageEventDlq", 'AiUsageDlqReason'>
    readonly rawPayload: FieldRef<"AiUsageEventDlq", 'Json'>
    readonly organizationId: FieldRef<"AiUsageEventDlq", 'String'>
    readonly createdById: FieldRef<"AiUsageEventDlq", 'String'>
    readonly createdAt: FieldRef<"AiUsageEventDlq", 'DateTime'>
    readonly updatedAt: FieldRef<"AiUsageEventDlq", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AiUsageEventDlq findUnique
   */
  export type AiUsageEventDlqFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * Filter, which AiUsageEventDlq to fetch.
     */
    where: AiUsageEventDlqWhereUniqueInput
  }

  /**
   * AiUsageEventDlq findUniqueOrThrow
   */
  export type AiUsageEventDlqFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * Filter, which AiUsageEventDlq to fetch.
     */
    where: AiUsageEventDlqWhereUniqueInput
  }

  /**
   * AiUsageEventDlq findFirst
   */
  export type AiUsageEventDlqFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * Filter, which AiUsageEventDlq to fetch.
     */
    where?: AiUsageEventDlqWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageEventDlqs to fetch.
     */
    orderBy?: AiUsageEventDlqOrderByWithRelationInput | AiUsageEventDlqOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageEventDlqs.
     */
    cursor?: AiUsageEventDlqWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageEventDlqs 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` AiUsageEventDlqs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageEventDlqs.
     */
    distinct?: AiUsageEventDlqScalarFieldEnum | AiUsageEventDlqScalarFieldEnum[]
  }

  /**
   * AiUsageEventDlq findFirstOrThrow
   */
  export type AiUsageEventDlqFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * Filter, which AiUsageEventDlq to fetch.
     */
    where?: AiUsageEventDlqWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageEventDlqs to fetch.
     */
    orderBy?: AiUsageEventDlqOrderByWithRelationInput | AiUsageEventDlqOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageEventDlqs.
     */
    cursor?: AiUsageEventDlqWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageEventDlqs 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` AiUsageEventDlqs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageEventDlqs.
     */
    distinct?: AiUsageEventDlqScalarFieldEnum | AiUsageEventDlqScalarFieldEnum[]
  }

  /**
   * AiUsageEventDlq findMany
   */
  export type AiUsageEventDlqFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * Filter, which AiUsageEventDlqs to fetch.
     */
    where?: AiUsageEventDlqWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageEventDlqs to fetch.
     */
    orderBy?: AiUsageEventDlqOrderByWithRelationInput | AiUsageEventDlqOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AiUsageEventDlqs.
     */
    cursor?: AiUsageEventDlqWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageEventDlqs 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` AiUsageEventDlqs.
     */
    skip?: number
    distinct?: AiUsageEventDlqScalarFieldEnum | AiUsageEventDlqScalarFieldEnum[]
  }

  /**
   * AiUsageEventDlq create
   */
  export type AiUsageEventDlqCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * The data needed to create a AiUsageEventDlq.
     */
    data: XOR<AiUsageEventDlqCreateInput, AiUsageEventDlqUncheckedCreateInput>
  }

  /**
   * AiUsageEventDlq createMany
   */
  export type AiUsageEventDlqCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AiUsageEventDlqs.
     */
    data: AiUsageEventDlqCreateManyInput | AiUsageEventDlqCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AiUsageEventDlq createManyAndReturn
   */
  export type AiUsageEventDlqCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * The data used to create many AiUsageEventDlqs.
     */
    data: AiUsageEventDlqCreateManyInput | AiUsageEventDlqCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AiUsageEventDlq update
   */
  export type AiUsageEventDlqUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * The data needed to update a AiUsageEventDlq.
     */
    data: XOR<AiUsageEventDlqUpdateInput, AiUsageEventDlqUncheckedUpdateInput>
    /**
     * Choose, which AiUsageEventDlq to update.
     */
    where: AiUsageEventDlqWhereUniqueInput
  }

  /**
   * AiUsageEventDlq updateMany
   */
  export type AiUsageEventDlqUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AiUsageEventDlqs.
     */
    data: XOR<AiUsageEventDlqUpdateManyMutationInput, AiUsageEventDlqUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageEventDlqs to update
     */
    where?: AiUsageEventDlqWhereInput
    /**
     * Limit how many AiUsageEventDlqs to update.
     */
    limit?: number
  }

  /**
   * AiUsageEventDlq updateManyAndReturn
   */
  export type AiUsageEventDlqUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * The data used to update AiUsageEventDlqs.
     */
    data: XOR<AiUsageEventDlqUpdateManyMutationInput, AiUsageEventDlqUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageEventDlqs to update
     */
    where?: AiUsageEventDlqWhereInput
    /**
     * Limit how many AiUsageEventDlqs to update.
     */
    limit?: number
  }

  /**
   * AiUsageEventDlq upsert
   */
  export type AiUsageEventDlqUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * The filter to search for the AiUsageEventDlq to update in case it exists.
     */
    where: AiUsageEventDlqWhereUniqueInput
    /**
     * In case the AiUsageEventDlq found by the `where` argument doesn't exist, create a new AiUsageEventDlq with this data.
     */
    create: XOR<AiUsageEventDlqCreateInput, AiUsageEventDlqUncheckedCreateInput>
    /**
     * In case the AiUsageEventDlq was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AiUsageEventDlqUpdateInput, AiUsageEventDlqUncheckedUpdateInput>
  }

  /**
   * AiUsageEventDlq delete
   */
  export type AiUsageEventDlqDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
    /**
     * Filter which AiUsageEventDlq to delete.
     */
    where: AiUsageEventDlqWhereUniqueInput
  }

  /**
   * AiUsageEventDlq deleteMany
   */
  export type AiUsageEventDlqDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageEventDlqs to delete
     */
    where?: AiUsageEventDlqWhereInput
    /**
     * Limit how many AiUsageEventDlqs to delete.
     */
    limit?: number
  }

  /**
   * AiUsageEventDlq without action
   */
  export type AiUsageEventDlqDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEventDlq
     */
    select?: AiUsageEventDlqSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEventDlq
     */
    omit?: AiUsageEventDlqOmit<ExtArgs> | null
  }


  /**
   * Model AiUsageDailyRollup
   */

  export type AggregateAiUsageDailyRollup = {
    _count: AiUsageDailyRollupCountAggregateOutputType | null
    _avg: AiUsageDailyRollupAvgAggregateOutputType | null
    _sum: AiUsageDailyRollupSumAggregateOutputType | null
    _min: AiUsageDailyRollupMinAggregateOutputType | null
    _max: AiUsageDailyRollupMaxAggregateOutputType | null
  }

  export type AiUsageDailyRollupAvgAggregateOutputType = {
    totalTokens: number | null
    inputTokens: number | null
    outputTokens: number | null
    cacheCreationTokens: number | null
    cacheReadTokens: number | null
    totalCostUsd: Decimal | null
    eventCount: number | null
  }

  export type AiUsageDailyRollupSumAggregateOutputType = {
    totalTokens: bigint | null
    inputTokens: bigint | null
    outputTokens: bigint | null
    cacheCreationTokens: bigint | null
    cacheReadTokens: bigint | null
    totalCostUsd: Decimal | null
    eventCount: number | null
  }

  export type AiUsageDailyRollupMinAggregateOutputType = {
    id: string | null
    date: Date | null
    userId: string | null
    projectBasename: string | null
    tool: $Enums.AiUsageTool | null
    model: string | null
    totalTokens: bigint | null
    inputTokens: bigint | null
    outputTokens: bigint | null
    cacheCreationTokens: bigint | null
    cacheReadTokens: bigint | null
    totalCostUsd: Decimal | null
    eventCount: number | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageDailyRollupMaxAggregateOutputType = {
    id: string | null
    date: Date | null
    userId: string | null
    projectBasename: string | null
    tool: $Enums.AiUsageTool | null
    model: string | null
    totalTokens: bigint | null
    inputTokens: bigint | null
    outputTokens: bigint | null
    cacheCreationTokens: bigint | null
    cacheReadTokens: bigint | null
    totalCostUsd: Decimal | null
    eventCount: number | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AiUsageDailyRollupCountAggregateOutputType = {
    id: number
    date: number
    userId: number
    projectBasename: number
    tool: number
    model: number
    totalTokens: number
    inputTokens: number
    outputTokens: number
    cacheCreationTokens: number
    cacheReadTokens: number
    totalCostUsd: number
    eventCount: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AiUsageDailyRollupAvgAggregateInputType = {
    totalTokens?: true
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalCostUsd?: true
    eventCount?: true
  }

  export type AiUsageDailyRollupSumAggregateInputType = {
    totalTokens?: true
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalCostUsd?: true
    eventCount?: true
  }

  export type AiUsageDailyRollupMinAggregateInputType = {
    id?: true
    date?: true
    userId?: true
    projectBasename?: true
    tool?: true
    model?: true
    totalTokens?: true
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalCostUsd?: true
    eventCount?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageDailyRollupMaxAggregateInputType = {
    id?: true
    date?: true
    userId?: true
    projectBasename?: true
    tool?: true
    model?: true
    totalTokens?: true
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalCostUsd?: true
    eventCount?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AiUsageDailyRollupCountAggregateInputType = {
    id?: true
    date?: true
    userId?: true
    projectBasename?: true
    tool?: true
    model?: true
    totalTokens?: true
    inputTokens?: true
    outputTokens?: true
    cacheCreationTokens?: true
    cacheReadTokens?: true
    totalCostUsd?: true
    eventCount?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AiUsageDailyRollupAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageDailyRollup to aggregate.
     */
    where?: AiUsageDailyRollupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageDailyRollups to fetch.
     */
    orderBy?: AiUsageDailyRollupOrderByWithRelationInput | AiUsageDailyRollupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AiUsageDailyRollupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageDailyRollups 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` AiUsageDailyRollups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AiUsageDailyRollups
    **/
    _count?: true | AiUsageDailyRollupCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AiUsageDailyRollupAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AiUsageDailyRollupSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AiUsageDailyRollupMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AiUsageDailyRollupMaxAggregateInputType
  }

  export type GetAiUsageDailyRollupAggregateType<T extends AiUsageDailyRollupAggregateArgs> = {
        [P in keyof T & keyof AggregateAiUsageDailyRollup]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAiUsageDailyRollup[P]>
      : GetScalarType<T[P], AggregateAiUsageDailyRollup[P]>
  }




  export type AiUsageDailyRollupGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AiUsageDailyRollupWhereInput
    orderBy?: AiUsageDailyRollupOrderByWithAggregationInput | AiUsageDailyRollupOrderByWithAggregationInput[]
    by: AiUsageDailyRollupScalarFieldEnum[] | AiUsageDailyRollupScalarFieldEnum
    having?: AiUsageDailyRollupScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AiUsageDailyRollupCountAggregateInputType | true
    _avg?: AiUsageDailyRollupAvgAggregateInputType
    _sum?: AiUsageDailyRollupSumAggregateInputType
    _min?: AiUsageDailyRollupMinAggregateInputType
    _max?: AiUsageDailyRollupMaxAggregateInputType
  }

  export type AiUsageDailyRollupGroupByOutputType = {
    id: string
    date: Date
    userId: string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint
    inputTokens: bigint
    outputTokens: bigint
    cacheCreationTokens: bigint
    cacheReadTokens: bigint
    totalCostUsd: Decimal
    eventCount: number
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: AiUsageDailyRollupCountAggregateOutputType | null
    _avg: AiUsageDailyRollupAvgAggregateOutputType | null
    _sum: AiUsageDailyRollupSumAggregateOutputType | null
    _min: AiUsageDailyRollupMinAggregateOutputType | null
    _max: AiUsageDailyRollupMaxAggregateOutputType | null
  }

  type GetAiUsageDailyRollupGroupByPayload<T extends AiUsageDailyRollupGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AiUsageDailyRollupGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AiUsageDailyRollupGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AiUsageDailyRollupGroupByOutputType[P]>
            : GetScalarType<T[P], AiUsageDailyRollupGroupByOutputType[P]>
        }
      >
    >


  export type AiUsageDailyRollupSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    userId?: boolean
    projectBasename?: boolean
    tool?: boolean
    model?: boolean
    totalTokens?: boolean
    inputTokens?: boolean
    outputTokens?: boolean
    cacheCreationTokens?: boolean
    cacheReadTokens?: boolean
    totalCostUsd?: boolean
    eventCount?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageDailyRollup"]>

  export type AiUsageDailyRollupSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    userId?: boolean
    projectBasename?: boolean
    tool?: boolean
    model?: boolean
    totalTokens?: boolean
    inputTokens?: boolean
    outputTokens?: boolean
    cacheCreationTokens?: boolean
    cacheReadTokens?: boolean
    totalCostUsd?: boolean
    eventCount?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageDailyRollup"]>

  export type AiUsageDailyRollupSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    date?: boolean
    userId?: boolean
    projectBasename?: boolean
    tool?: boolean
    model?: boolean
    totalTokens?: boolean
    inputTokens?: boolean
    outputTokens?: boolean
    cacheCreationTokens?: boolean
    cacheReadTokens?: boolean
    totalCostUsd?: boolean
    eventCount?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aiUsageDailyRollup"]>

  export type AiUsageDailyRollupSelectScalar = {
    id?: boolean
    date?: boolean
    userId?: boolean
    projectBasename?: boolean
    tool?: boolean
    model?: boolean
    totalTokens?: boolean
    inputTokens?: boolean
    outputTokens?: boolean
    cacheCreationTokens?: boolean
    cacheReadTokens?: boolean
    totalCostUsd?: boolean
    eventCount?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AiUsageDailyRollupOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "date" | "userId" | "projectBasename" | "tool" | "model" | "totalTokens" | "inputTokens" | "outputTokens" | "cacheCreationTokens" | "cacheReadTokens" | "totalCostUsd" | "eventCount" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["aiUsageDailyRollup"]>
  export type AiUsageDailyRollupInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type AiUsageDailyRollupIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type AiUsageDailyRollupIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $AiUsageDailyRollupPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AiUsageDailyRollup"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      date: Date
      userId: string
      projectBasename: string
      tool: $Enums.AiUsageTool
      model: string
      totalTokens: bigint
      inputTokens: bigint
      outputTokens: bigint
      cacheCreationTokens: bigint
      cacheReadTokens: bigint
      totalCostUsd: Prisma.Decimal
      eventCount: number
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["aiUsageDailyRollup"]>
    composites: {}
  }

  type AiUsageDailyRollupGetPayload<S extends boolean | null | undefined | AiUsageDailyRollupDefaultArgs> = $Result.GetResult<Prisma.$AiUsageDailyRollupPayload, S>

  type AiUsageDailyRollupCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AiUsageDailyRollupFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AiUsageDailyRollupCountAggregateInputType | true
    }

  export interface AiUsageDailyRollupDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AiUsageDailyRollup'], meta: { name: 'AiUsageDailyRollup' } }
    /**
     * Find zero or one AiUsageDailyRollup that matches the filter.
     * @param {AiUsageDailyRollupFindUniqueArgs} args - Arguments to find a AiUsageDailyRollup
     * @example
     * // Get one AiUsageDailyRollup
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AiUsageDailyRollupFindUniqueArgs>(args: SelectSubset<T, AiUsageDailyRollupFindUniqueArgs<ExtArgs>>): Prisma__AiUsageDailyRollupClient<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AiUsageDailyRollup that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AiUsageDailyRollupFindUniqueOrThrowArgs} args - Arguments to find a AiUsageDailyRollup
     * @example
     * // Get one AiUsageDailyRollup
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AiUsageDailyRollupFindUniqueOrThrowArgs>(args: SelectSubset<T, AiUsageDailyRollupFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AiUsageDailyRollupClient<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageDailyRollup 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 {AiUsageDailyRollupFindFirstArgs} args - Arguments to find a AiUsageDailyRollup
     * @example
     * // Get one AiUsageDailyRollup
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AiUsageDailyRollupFindFirstArgs>(args?: SelectSubset<T, AiUsageDailyRollupFindFirstArgs<ExtArgs>>): Prisma__AiUsageDailyRollupClient<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AiUsageDailyRollup 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 {AiUsageDailyRollupFindFirstOrThrowArgs} args - Arguments to find a AiUsageDailyRollup
     * @example
     * // Get one AiUsageDailyRollup
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AiUsageDailyRollupFindFirstOrThrowArgs>(args?: SelectSubset<T, AiUsageDailyRollupFindFirstOrThrowArgs<ExtArgs>>): Prisma__AiUsageDailyRollupClient<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AiUsageDailyRollups 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 {AiUsageDailyRollupFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AiUsageDailyRollups
     * const aiUsageDailyRollups = await prisma.aiUsageDailyRollup.findMany()
     * 
     * // Get first 10 AiUsageDailyRollups
     * const aiUsageDailyRollups = await prisma.aiUsageDailyRollup.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aiUsageDailyRollupWithIdOnly = await prisma.aiUsageDailyRollup.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AiUsageDailyRollupFindManyArgs>(args?: SelectSubset<T, AiUsageDailyRollupFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AiUsageDailyRollup.
     * @param {AiUsageDailyRollupCreateArgs} args - Arguments to create a AiUsageDailyRollup.
     * @example
     * // Create one AiUsageDailyRollup
     * const AiUsageDailyRollup = await prisma.aiUsageDailyRollup.create({
     *   data: {
     *     // ... data to create a AiUsageDailyRollup
     *   }
     * })
     * 
     */
    create<T extends AiUsageDailyRollupCreateArgs>(args: SelectSubset<T, AiUsageDailyRollupCreateArgs<ExtArgs>>): Prisma__AiUsageDailyRollupClient<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AiUsageDailyRollups.
     * @param {AiUsageDailyRollupCreateManyArgs} args - Arguments to create many AiUsageDailyRollups.
     * @example
     * // Create many AiUsageDailyRollups
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AiUsageDailyRollupCreateManyArgs>(args?: SelectSubset<T, AiUsageDailyRollupCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AiUsageDailyRollups and returns the data saved in the database.
     * @param {AiUsageDailyRollupCreateManyAndReturnArgs} args - Arguments to create many AiUsageDailyRollups.
     * @example
     * // Create many AiUsageDailyRollups
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AiUsageDailyRollups and only return the `id`
     * const aiUsageDailyRollupWithIdOnly = await prisma.aiUsageDailyRollup.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 AiUsageDailyRollupCreateManyAndReturnArgs>(args?: SelectSubset<T, AiUsageDailyRollupCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AiUsageDailyRollup.
     * @param {AiUsageDailyRollupDeleteArgs} args - Arguments to delete one AiUsageDailyRollup.
     * @example
     * // Delete one AiUsageDailyRollup
     * const AiUsageDailyRollup = await prisma.aiUsageDailyRollup.delete({
     *   where: {
     *     // ... filter to delete one AiUsageDailyRollup
     *   }
     * })
     * 
     */
    delete<T extends AiUsageDailyRollupDeleteArgs>(args: SelectSubset<T, AiUsageDailyRollupDeleteArgs<ExtArgs>>): Prisma__AiUsageDailyRollupClient<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AiUsageDailyRollup.
     * @param {AiUsageDailyRollupUpdateArgs} args - Arguments to update one AiUsageDailyRollup.
     * @example
     * // Update one AiUsageDailyRollup
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AiUsageDailyRollupUpdateArgs>(args: SelectSubset<T, AiUsageDailyRollupUpdateArgs<ExtArgs>>): Prisma__AiUsageDailyRollupClient<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AiUsageDailyRollups.
     * @param {AiUsageDailyRollupDeleteManyArgs} args - Arguments to filter AiUsageDailyRollups to delete.
     * @example
     * // Delete a few AiUsageDailyRollups
     * const { count } = await prisma.aiUsageDailyRollup.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AiUsageDailyRollupDeleteManyArgs>(args?: SelectSubset<T, AiUsageDailyRollupDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageDailyRollups.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageDailyRollupUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AiUsageDailyRollups
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AiUsageDailyRollupUpdateManyArgs>(args: SelectSubset<T, AiUsageDailyRollupUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AiUsageDailyRollups and returns the data updated in the database.
     * @param {AiUsageDailyRollupUpdateManyAndReturnArgs} args - Arguments to update many AiUsageDailyRollups.
     * @example
     * // Update many AiUsageDailyRollups
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AiUsageDailyRollups and only return the `id`
     * const aiUsageDailyRollupWithIdOnly = await prisma.aiUsageDailyRollup.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 AiUsageDailyRollupUpdateManyAndReturnArgs>(args: SelectSubset<T, AiUsageDailyRollupUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AiUsageDailyRollup.
     * @param {AiUsageDailyRollupUpsertArgs} args - Arguments to update or create a AiUsageDailyRollup.
     * @example
     * // Update or create a AiUsageDailyRollup
     * const aiUsageDailyRollup = await prisma.aiUsageDailyRollup.upsert({
     *   create: {
     *     // ... data to create a AiUsageDailyRollup
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AiUsageDailyRollup we want to update
     *   }
     * })
     */
    upsert<T extends AiUsageDailyRollupUpsertArgs>(args: SelectSubset<T, AiUsageDailyRollupUpsertArgs<ExtArgs>>): Prisma__AiUsageDailyRollupClient<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AiUsageDailyRollups.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageDailyRollupCountArgs} args - Arguments to filter AiUsageDailyRollups to count.
     * @example
     * // Count the number of AiUsageDailyRollups
     * const count = await prisma.aiUsageDailyRollup.count({
     *   where: {
     *     // ... the filter for the AiUsageDailyRollups we want to count
     *   }
     * })
    **/
    count<T extends AiUsageDailyRollupCountArgs>(
      args?: Subset<T, AiUsageDailyRollupCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AiUsageDailyRollupCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AiUsageDailyRollup.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageDailyRollupAggregateArgs} 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 AiUsageDailyRollupAggregateArgs>(args: Subset<T, AiUsageDailyRollupAggregateArgs>): Prisma.PrismaPromise<GetAiUsageDailyRollupAggregateType<T>>

    /**
     * Group by AiUsageDailyRollup.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AiUsageDailyRollupGroupByArgs} 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 AiUsageDailyRollupGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AiUsageDailyRollupGroupByArgs['orderBy'] }
        : { orderBy?: AiUsageDailyRollupGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AiUsageDailyRollupGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAiUsageDailyRollupGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AiUsageDailyRollup model
   */
  readonly fields: AiUsageDailyRollupFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AiUsageDailyRollup.
   * 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__AiUsageDailyRollupClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AiUsageDailyRollup model
   */
  interface AiUsageDailyRollupFieldRefs {
    readonly id: FieldRef<"AiUsageDailyRollup", 'String'>
    readonly date: FieldRef<"AiUsageDailyRollup", 'DateTime'>
    readonly userId: FieldRef<"AiUsageDailyRollup", 'String'>
    readonly projectBasename: FieldRef<"AiUsageDailyRollup", 'String'>
    readonly tool: FieldRef<"AiUsageDailyRollup", 'AiUsageTool'>
    readonly model: FieldRef<"AiUsageDailyRollup", 'String'>
    readonly totalTokens: FieldRef<"AiUsageDailyRollup", 'BigInt'>
    readonly inputTokens: FieldRef<"AiUsageDailyRollup", 'BigInt'>
    readonly outputTokens: FieldRef<"AiUsageDailyRollup", 'BigInt'>
    readonly cacheCreationTokens: FieldRef<"AiUsageDailyRollup", 'BigInt'>
    readonly cacheReadTokens: FieldRef<"AiUsageDailyRollup", 'BigInt'>
    readonly totalCostUsd: FieldRef<"AiUsageDailyRollup", 'Decimal'>
    readonly eventCount: FieldRef<"AiUsageDailyRollup", 'Int'>
    readonly organizationId: FieldRef<"AiUsageDailyRollup", 'String'>
    readonly createdById: FieldRef<"AiUsageDailyRollup", 'String'>
    readonly createdAt: FieldRef<"AiUsageDailyRollup", 'DateTime'>
    readonly updatedAt: FieldRef<"AiUsageDailyRollup", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AiUsageDailyRollup findUnique
   */
  export type AiUsageDailyRollupFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDailyRollup to fetch.
     */
    where: AiUsageDailyRollupWhereUniqueInput
  }

  /**
   * AiUsageDailyRollup findUniqueOrThrow
   */
  export type AiUsageDailyRollupFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDailyRollup to fetch.
     */
    where: AiUsageDailyRollupWhereUniqueInput
  }

  /**
   * AiUsageDailyRollup findFirst
   */
  export type AiUsageDailyRollupFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDailyRollup to fetch.
     */
    where?: AiUsageDailyRollupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageDailyRollups to fetch.
     */
    orderBy?: AiUsageDailyRollupOrderByWithRelationInput | AiUsageDailyRollupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageDailyRollups.
     */
    cursor?: AiUsageDailyRollupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageDailyRollups 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` AiUsageDailyRollups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageDailyRollups.
     */
    distinct?: AiUsageDailyRollupScalarFieldEnum | AiUsageDailyRollupScalarFieldEnum[]
  }

  /**
   * AiUsageDailyRollup findFirstOrThrow
   */
  export type AiUsageDailyRollupFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDailyRollup to fetch.
     */
    where?: AiUsageDailyRollupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageDailyRollups to fetch.
     */
    orderBy?: AiUsageDailyRollupOrderByWithRelationInput | AiUsageDailyRollupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AiUsageDailyRollups.
     */
    cursor?: AiUsageDailyRollupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageDailyRollups 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` AiUsageDailyRollups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AiUsageDailyRollups.
     */
    distinct?: AiUsageDailyRollupScalarFieldEnum | AiUsageDailyRollupScalarFieldEnum[]
  }

  /**
   * AiUsageDailyRollup findMany
   */
  export type AiUsageDailyRollupFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * Filter, which AiUsageDailyRollups to fetch.
     */
    where?: AiUsageDailyRollupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AiUsageDailyRollups to fetch.
     */
    orderBy?: AiUsageDailyRollupOrderByWithRelationInput | AiUsageDailyRollupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AiUsageDailyRollups.
     */
    cursor?: AiUsageDailyRollupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AiUsageDailyRollups 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` AiUsageDailyRollups.
     */
    skip?: number
    distinct?: AiUsageDailyRollupScalarFieldEnum | AiUsageDailyRollupScalarFieldEnum[]
  }

  /**
   * AiUsageDailyRollup create
   */
  export type AiUsageDailyRollupCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * The data needed to create a AiUsageDailyRollup.
     */
    data: XOR<AiUsageDailyRollupCreateInput, AiUsageDailyRollupUncheckedCreateInput>
  }

  /**
   * AiUsageDailyRollup createMany
   */
  export type AiUsageDailyRollupCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AiUsageDailyRollups.
     */
    data: AiUsageDailyRollupCreateManyInput | AiUsageDailyRollupCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AiUsageDailyRollup createManyAndReturn
   */
  export type AiUsageDailyRollupCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * The data used to create many AiUsageDailyRollups.
     */
    data: AiUsageDailyRollupCreateManyInput | AiUsageDailyRollupCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AiUsageDailyRollup update
   */
  export type AiUsageDailyRollupUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * The data needed to update a AiUsageDailyRollup.
     */
    data: XOR<AiUsageDailyRollupUpdateInput, AiUsageDailyRollupUncheckedUpdateInput>
    /**
     * Choose, which AiUsageDailyRollup to update.
     */
    where: AiUsageDailyRollupWhereUniqueInput
  }

  /**
   * AiUsageDailyRollup updateMany
   */
  export type AiUsageDailyRollupUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AiUsageDailyRollups.
     */
    data: XOR<AiUsageDailyRollupUpdateManyMutationInput, AiUsageDailyRollupUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageDailyRollups to update
     */
    where?: AiUsageDailyRollupWhereInput
    /**
     * Limit how many AiUsageDailyRollups to update.
     */
    limit?: number
  }

  /**
   * AiUsageDailyRollup updateManyAndReturn
   */
  export type AiUsageDailyRollupUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * The data used to update AiUsageDailyRollups.
     */
    data: XOR<AiUsageDailyRollupUpdateManyMutationInput, AiUsageDailyRollupUncheckedUpdateManyInput>
    /**
     * Filter which AiUsageDailyRollups to update
     */
    where?: AiUsageDailyRollupWhereInput
    /**
     * Limit how many AiUsageDailyRollups to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AiUsageDailyRollup upsert
   */
  export type AiUsageDailyRollupUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * The filter to search for the AiUsageDailyRollup to update in case it exists.
     */
    where: AiUsageDailyRollupWhereUniqueInput
    /**
     * In case the AiUsageDailyRollup found by the `where` argument doesn't exist, create a new AiUsageDailyRollup with this data.
     */
    create: XOR<AiUsageDailyRollupCreateInput, AiUsageDailyRollupUncheckedCreateInput>
    /**
     * In case the AiUsageDailyRollup was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AiUsageDailyRollupUpdateInput, AiUsageDailyRollupUncheckedUpdateInput>
  }

  /**
   * AiUsageDailyRollup delete
   */
  export type AiUsageDailyRollupDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    /**
     * Filter which AiUsageDailyRollup to delete.
     */
    where: AiUsageDailyRollupWhereUniqueInput
  }

  /**
   * AiUsageDailyRollup deleteMany
   */
  export type AiUsageDailyRollupDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AiUsageDailyRollups to delete
     */
    where?: AiUsageDailyRollupWhereInput
    /**
     * Limit how many AiUsageDailyRollups to delete.
     */
    limit?: number
  }

  /**
   * AiUsageDailyRollup without action
   */
  export type AiUsageDailyRollupDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
  }


  /**
   * Model AuditLog
   */

  export type AggregateAuditLog = {
    _count: AuditLogCountAggregateOutputType | null
    _avg: AuditLogAvgAggregateOutputType | null
    _sum: AuditLogSumAggregateOutputType | null
    _min: AuditLogMinAggregateOutputType | null
    _max: AuditLogMaxAggregateOutputType | null
  }

  export type AuditLogAvgAggregateOutputType = {
    duration: number | null
    retentionYears: number | null
  }

  export type AuditLogSumAggregateOutputType = {
    duration: number | null
    retentionYears: number | null
  }

  export type AuditLogMinAggregateOutputType = {
    id: string | null
    region: string | null
    tenantId: string | null
    who: string | null
    what: string | null
    when: Date | null
    where: string | null
    why: string | null
    how: string | null
    module: string | null
    action: $Enums.AuditAction | null
    entityType: string | null
    entityId: string | null
    userId: string | null
    sessionId: string | null
    traceId: string | null
    requestId: string | null
    ipAddress: string | null
    userAgent: string | null
    deviceId: string | null
    geoLocation: string | null
    businessType: string | null
    businessKey: string | null
    status: $Enums.AuditStatus | null
    errorMessage: string | null
    duration: number | null
    isFinancial: boolean | null
    isSensitive: boolean | null
    riskLevel: $Enums.RiskLevel | null
    complianceLevel: $Enums.ComplianceLevel | null
    retentionYears: number | null
    previousHash: string | null
    currentHash: string | null
    signature: string | null
    createdAt: Date | null
    archivedAt: Date | null
  }

  export type AuditLogMaxAggregateOutputType = {
    id: string | null
    region: string | null
    tenantId: string | null
    who: string | null
    what: string | null
    when: Date | null
    where: string | null
    why: string | null
    how: string | null
    module: string | null
    action: $Enums.AuditAction | null
    entityType: string | null
    entityId: string | null
    userId: string | null
    sessionId: string | null
    traceId: string | null
    requestId: string | null
    ipAddress: string | null
    userAgent: string | null
    deviceId: string | null
    geoLocation: string | null
    businessType: string | null
    businessKey: string | null
    status: $Enums.AuditStatus | null
    errorMessage: string | null
    duration: number | null
    isFinancial: boolean | null
    isSensitive: boolean | null
    riskLevel: $Enums.RiskLevel | null
    complianceLevel: $Enums.ComplianceLevel | null
    retentionYears: number | null
    previousHash: string | null
    currentHash: string | null
    signature: string | null
    createdAt: Date | null
    archivedAt: Date | null
  }

  export type AuditLogCountAggregateOutputType = {
    id: number
    region: number
    tenantId: number
    who: number
    what: number
    when: number
    where: number
    why: number
    how: number
    module: number
    action: number
    entityType: number
    entityId: number
    oldValue: number
    newValue: number
    changes: number
    userId: number
    sessionId: number
    traceId: number
    requestId: number
    ipAddress: number
    userAgent: number
    deviceId: number
    geoLocation: number
    businessType: number
    businessKey: number
    status: number
    errorMessage: number
    duration: number
    isFinancial: number
    isSensitive: number
    riskLevel: number
    complianceLevel: number
    retentionYears: number
    previousHash: number
    currentHash: number
    signature: number
    createdAt: number
    archivedAt: number
    _all: number
  }


  export type AuditLogAvgAggregateInputType = {
    duration?: true
    retentionYears?: true
  }

  export type AuditLogSumAggregateInputType = {
    duration?: true
    retentionYears?: true
  }

  export type AuditLogMinAggregateInputType = {
    id?: true
    region?: true
    tenantId?: true
    who?: true
    what?: true
    when?: true
    where?: true
    why?: true
    how?: true
    module?: true
    action?: true
    entityType?: true
    entityId?: true
    userId?: true
    sessionId?: true
    traceId?: true
    requestId?: true
    ipAddress?: true
    userAgent?: true
    deviceId?: true
    geoLocation?: true
    businessType?: true
    businessKey?: true
    status?: true
    errorMessage?: true
    duration?: true
    isFinancial?: true
    isSensitive?: true
    riskLevel?: true
    complianceLevel?: true
    retentionYears?: true
    previousHash?: true
    currentHash?: true
    signature?: true
    createdAt?: true
    archivedAt?: true
  }

  export type AuditLogMaxAggregateInputType = {
    id?: true
    region?: true
    tenantId?: true
    who?: true
    what?: true
    when?: true
    where?: true
    why?: true
    how?: true
    module?: true
    action?: true
    entityType?: true
    entityId?: true
    userId?: true
    sessionId?: true
    traceId?: true
    requestId?: true
    ipAddress?: true
    userAgent?: true
    deviceId?: true
    geoLocation?: true
    businessType?: true
    businessKey?: true
    status?: true
    errorMessage?: true
    duration?: true
    isFinancial?: true
    isSensitive?: true
    riskLevel?: true
    complianceLevel?: true
    retentionYears?: true
    previousHash?: true
    currentHash?: true
    signature?: true
    createdAt?: true
    archivedAt?: true
  }

  export type AuditLogCountAggregateInputType = {
    id?: true
    region?: true
    tenantId?: true
    who?: true
    what?: true
    when?: true
    where?: true
    why?: true
    how?: true
    module?: true
    action?: true
    entityType?: true
    entityId?: true
    oldValue?: true
    newValue?: true
    changes?: true
    userId?: true
    sessionId?: true
    traceId?: true
    requestId?: true
    ipAddress?: true
    userAgent?: true
    deviceId?: true
    geoLocation?: true
    businessType?: true
    businessKey?: true
    status?: true
    errorMessage?: true
    duration?: true
    isFinancial?: true
    isSensitive?: true
    riskLevel?: true
    complianceLevel?: true
    retentionYears?: true
    previousHash?: true
    currentHash?: true
    signature?: true
    createdAt?: true
    archivedAt?: true
    _all?: true
  }

  export type AuditLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditLog to aggregate.
     */
    where?: AuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditLogs to fetch.
     */
    orderBy?: AuditLogOrderByWithRelationInput | AuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditLogs 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` AuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AuditLogs
    **/
    _count?: true | AuditLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AuditLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AuditLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AuditLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AuditLogMaxAggregateInputType
  }

  export type GetAuditLogAggregateType<T extends AuditLogAggregateArgs> = {
        [P in keyof T & keyof AggregateAuditLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAuditLog[P]>
      : GetScalarType<T[P], AggregateAuditLog[P]>
  }




  export type AuditLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AuditLogWhereInput
    orderBy?: AuditLogOrderByWithAggregationInput | AuditLogOrderByWithAggregationInput[]
    by: AuditLogScalarFieldEnum[] | AuditLogScalarFieldEnum
    having?: AuditLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AuditLogCountAggregateInputType | true
    _avg?: AuditLogAvgAggregateInputType
    _sum?: AuditLogSumAggregateInputType
    _min?: AuditLogMinAggregateInputType
    _max?: AuditLogMaxAggregateInputType
  }

  export type AuditLogGroupByOutputType = {
    id: string
    region: string
    tenantId: string
    who: string
    what: string
    when: Date
    where: string
    why: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue: JsonValue | null
    newValue: JsonValue | null
    changes: JsonValue | null
    userId: string | null
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId: string | null
    geoLocation: string | null
    businessType: string | null
    businessKey: string | null
    status: $Enums.AuditStatus
    errorMessage: string | null
    duration: number | null
    isFinancial: boolean
    isSensitive: boolean
    riskLevel: $Enums.RiskLevel
    complianceLevel: $Enums.ComplianceLevel
    retentionYears: number
    previousHash: string | null
    currentHash: string
    signature: string | null
    createdAt: Date
    archivedAt: Date | null
    _count: AuditLogCountAggregateOutputType | null
    _avg: AuditLogAvgAggregateOutputType | null
    _sum: AuditLogSumAggregateOutputType | null
    _min: AuditLogMinAggregateOutputType | null
    _max: AuditLogMaxAggregateOutputType | null
  }

  type GetAuditLogGroupByPayload<T extends AuditLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AuditLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AuditLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AuditLogGroupByOutputType[P]>
            : GetScalarType<T[P], AuditLogGroupByOutputType[P]>
        }
      >
    >


  export type AuditLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    region?: boolean
    tenantId?: boolean
    who?: boolean
    what?: boolean
    when?: boolean
    where?: boolean
    why?: boolean
    how?: boolean
    module?: boolean
    action?: boolean
    entityType?: boolean
    entityId?: boolean
    oldValue?: boolean
    newValue?: boolean
    changes?: boolean
    userId?: boolean
    sessionId?: boolean
    traceId?: boolean
    requestId?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    deviceId?: boolean
    geoLocation?: boolean
    businessType?: boolean
    businessKey?: boolean
    status?: boolean
    errorMessage?: boolean
    duration?: boolean
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: boolean
    complianceLevel?: boolean
    retentionYears?: boolean
    previousHash?: boolean
    currentHash?: boolean
    signature?: boolean
    createdAt?: boolean
    archivedAt?: boolean
    databaseChanges?: boolean | AuditLog$databaseChangesArgs<ExtArgs>
    user?: boolean | AuditLog$userArgs<ExtArgs>
    sensitiveOps?: boolean | AuditLog$sensitiveOpsArgs<ExtArgs>
    _count?: boolean | AuditLogCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["auditLog"]>

  export type AuditLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    region?: boolean
    tenantId?: boolean
    who?: boolean
    what?: boolean
    when?: boolean
    where?: boolean
    why?: boolean
    how?: boolean
    module?: boolean
    action?: boolean
    entityType?: boolean
    entityId?: boolean
    oldValue?: boolean
    newValue?: boolean
    changes?: boolean
    userId?: boolean
    sessionId?: boolean
    traceId?: boolean
    requestId?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    deviceId?: boolean
    geoLocation?: boolean
    businessType?: boolean
    businessKey?: boolean
    status?: boolean
    errorMessage?: boolean
    duration?: boolean
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: boolean
    complianceLevel?: boolean
    retentionYears?: boolean
    previousHash?: boolean
    currentHash?: boolean
    signature?: boolean
    createdAt?: boolean
    archivedAt?: boolean
    user?: boolean | AuditLog$userArgs<ExtArgs>
  }, ExtArgs["result"]["auditLog"]>

  export type AuditLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    region?: boolean
    tenantId?: boolean
    who?: boolean
    what?: boolean
    when?: boolean
    where?: boolean
    why?: boolean
    how?: boolean
    module?: boolean
    action?: boolean
    entityType?: boolean
    entityId?: boolean
    oldValue?: boolean
    newValue?: boolean
    changes?: boolean
    userId?: boolean
    sessionId?: boolean
    traceId?: boolean
    requestId?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    deviceId?: boolean
    geoLocation?: boolean
    businessType?: boolean
    businessKey?: boolean
    status?: boolean
    errorMessage?: boolean
    duration?: boolean
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: boolean
    complianceLevel?: boolean
    retentionYears?: boolean
    previousHash?: boolean
    currentHash?: boolean
    signature?: boolean
    createdAt?: boolean
    archivedAt?: boolean
    user?: boolean | AuditLog$userArgs<ExtArgs>
  }, ExtArgs["result"]["auditLog"]>

  export type AuditLogSelectScalar = {
    id?: boolean
    region?: boolean
    tenantId?: boolean
    who?: boolean
    what?: boolean
    when?: boolean
    where?: boolean
    why?: boolean
    how?: boolean
    module?: boolean
    action?: boolean
    entityType?: boolean
    entityId?: boolean
    oldValue?: boolean
    newValue?: boolean
    changes?: boolean
    userId?: boolean
    sessionId?: boolean
    traceId?: boolean
    requestId?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    deviceId?: boolean
    geoLocation?: boolean
    businessType?: boolean
    businessKey?: boolean
    status?: boolean
    errorMessage?: boolean
    duration?: boolean
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: boolean
    complianceLevel?: boolean
    retentionYears?: boolean
    previousHash?: boolean
    currentHash?: boolean
    signature?: boolean
    createdAt?: boolean
    archivedAt?: boolean
  }

  export type AuditLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "region" | "tenantId" | "who" | "what" | "when" | "where" | "why" | "how" | "module" | "action" | "entityType" | "entityId" | "oldValue" | "newValue" | "changes" | "userId" | "sessionId" | "traceId" | "requestId" | "ipAddress" | "userAgent" | "deviceId" | "geoLocation" | "businessType" | "businessKey" | "status" | "errorMessage" | "duration" | "isFinancial" | "isSensitive" | "riskLevel" | "complianceLevel" | "retentionYears" | "previousHash" | "currentHash" | "signature" | "createdAt" | "archivedAt", ExtArgs["result"]["auditLog"]>
  export type AuditLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    databaseChanges?: boolean | AuditLog$databaseChangesArgs<ExtArgs>
    user?: boolean | AuditLog$userArgs<ExtArgs>
    sensitiveOps?: boolean | AuditLog$sensitiveOpsArgs<ExtArgs>
    _count?: boolean | AuditLogCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AuditLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | AuditLog$userArgs<ExtArgs>
  }
  export type AuditLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | AuditLog$userArgs<ExtArgs>
  }

  export type $AuditLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AuditLog"
    objects: {
      databaseChanges: Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>[]
      user: Prisma.$UserPayload<ExtArgs> | null
      sensitiveOps: Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      region: string
      tenantId: string
      who: string
      what: string
      when: Date
      where: string
      why: string | null
      how: string
      module: string
      action: $Enums.AuditAction
      entityType: string
      entityId: string
      oldValue: Prisma.JsonValue | null
      newValue: Prisma.JsonValue | null
      changes: Prisma.JsonValue | null
      userId: string | null
      sessionId: string
      traceId: string
      requestId: string
      ipAddress: string
      userAgent: string
      deviceId: string | null
      geoLocation: string | null
      businessType: string | null
      businessKey: string | null
      status: $Enums.AuditStatus
      errorMessage: string | null
      duration: number | null
      isFinancial: boolean
      isSensitive: boolean
      riskLevel: $Enums.RiskLevel
      complianceLevel: $Enums.ComplianceLevel
      retentionYears: number
      previousHash: string | null
      currentHash: string
      signature: string | null
      createdAt: Date
      archivedAt: Date | null
    }, ExtArgs["result"]["auditLog"]>
    composites: {}
  }

  type AuditLogGetPayload<S extends boolean | null | undefined | AuditLogDefaultArgs> = $Result.GetResult<Prisma.$AuditLogPayload, S>

  type AuditLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AuditLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AuditLogCountAggregateInputType | true
    }

  export interface AuditLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AuditLog'], meta: { name: 'AuditLog' } }
    /**
     * Find zero or one AuditLog that matches the filter.
     * @param {AuditLogFindUniqueArgs} args - Arguments to find a AuditLog
     * @example
     * // Get one AuditLog
     * const auditLog = await prisma.auditLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AuditLogFindUniqueArgs>(args: SelectSubset<T, AuditLogFindUniqueArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AuditLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AuditLogFindUniqueOrThrowArgs} args - Arguments to find a AuditLog
     * @example
     * // Get one AuditLog
     * const auditLog = await prisma.auditLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AuditLogFindUniqueOrThrowArgs>(args: SelectSubset<T, AuditLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditLog 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 {AuditLogFindFirstArgs} args - Arguments to find a AuditLog
     * @example
     * // Get one AuditLog
     * const auditLog = await prisma.auditLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AuditLogFindFirstArgs>(args?: SelectSubset<T, AuditLogFindFirstArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditLog 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 {AuditLogFindFirstOrThrowArgs} args - Arguments to find a AuditLog
     * @example
     * // Get one AuditLog
     * const auditLog = await prisma.auditLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AuditLogFindFirstOrThrowArgs>(args?: SelectSubset<T, AuditLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AuditLogs 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 {AuditLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AuditLogs
     * const auditLogs = await prisma.auditLog.findMany()
     * 
     * // Get first 10 AuditLogs
     * const auditLogs = await prisma.auditLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const auditLogWithIdOnly = await prisma.auditLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AuditLogFindManyArgs>(args?: SelectSubset<T, AuditLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AuditLog.
     * @param {AuditLogCreateArgs} args - Arguments to create a AuditLog.
     * @example
     * // Create one AuditLog
     * const AuditLog = await prisma.auditLog.create({
     *   data: {
     *     // ... data to create a AuditLog
     *   }
     * })
     * 
     */
    create<T extends AuditLogCreateArgs>(args: SelectSubset<T, AuditLogCreateArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AuditLogs.
     * @param {AuditLogCreateManyArgs} args - Arguments to create many AuditLogs.
     * @example
     * // Create many AuditLogs
     * const auditLog = await prisma.auditLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AuditLogCreateManyArgs>(args?: SelectSubset<T, AuditLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AuditLogs and returns the data saved in the database.
     * @param {AuditLogCreateManyAndReturnArgs} args - Arguments to create many AuditLogs.
     * @example
     * // Create many AuditLogs
     * const auditLog = await prisma.auditLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AuditLogs and only return the `id`
     * const auditLogWithIdOnly = await prisma.auditLog.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 AuditLogCreateManyAndReturnArgs>(args?: SelectSubset<T, AuditLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AuditLog.
     * @param {AuditLogDeleteArgs} args - Arguments to delete one AuditLog.
     * @example
     * // Delete one AuditLog
     * const AuditLog = await prisma.auditLog.delete({
     *   where: {
     *     // ... filter to delete one AuditLog
     *   }
     * })
     * 
     */
    delete<T extends AuditLogDeleteArgs>(args: SelectSubset<T, AuditLogDeleteArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AuditLog.
     * @param {AuditLogUpdateArgs} args - Arguments to update one AuditLog.
     * @example
     * // Update one AuditLog
     * const auditLog = await prisma.auditLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AuditLogUpdateArgs>(args: SelectSubset<T, AuditLogUpdateArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AuditLogs.
     * @param {AuditLogDeleteManyArgs} args - Arguments to filter AuditLogs to delete.
     * @example
     * // Delete a few AuditLogs
     * const { count } = await prisma.auditLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AuditLogDeleteManyArgs>(args?: SelectSubset<T, AuditLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AuditLogs
     * const auditLog = await prisma.auditLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AuditLogUpdateManyArgs>(args: SelectSubset<T, AuditLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditLogs and returns the data updated in the database.
     * @param {AuditLogUpdateManyAndReturnArgs} args - Arguments to update many AuditLogs.
     * @example
     * // Update many AuditLogs
     * const auditLog = await prisma.auditLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AuditLogs and only return the `id`
     * const auditLogWithIdOnly = await prisma.auditLog.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 AuditLogUpdateManyAndReturnArgs>(args: SelectSubset<T, AuditLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AuditLog.
     * @param {AuditLogUpsertArgs} args - Arguments to update or create a AuditLog.
     * @example
     * // Update or create a AuditLog
     * const auditLog = await prisma.auditLog.upsert({
     *   create: {
     *     // ... data to create a AuditLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AuditLog we want to update
     *   }
     * })
     */
    upsert<T extends AuditLogUpsertArgs>(args: SelectSubset<T, AuditLogUpsertArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AuditLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditLogCountArgs} args - Arguments to filter AuditLogs to count.
     * @example
     * // Count the number of AuditLogs
     * const count = await prisma.auditLog.count({
     *   where: {
     *     // ... the filter for the AuditLogs we want to count
     *   }
     * })
    **/
    count<T extends AuditLogCountArgs>(
      args?: Subset<T, AuditLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AuditLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AuditLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditLogAggregateArgs} 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 AuditLogAggregateArgs>(args: Subset<T, AuditLogAggregateArgs>): Prisma.PrismaPromise<GetAuditLogAggregateType<T>>

    /**
     * Group by AuditLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditLogGroupByArgs} 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 AuditLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AuditLogGroupByArgs['orderBy'] }
        : { orderBy?: AuditLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AuditLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAuditLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AuditLog model
   */
  readonly fields: AuditLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AuditLog.
   * 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__AuditLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    databaseChanges<T extends AuditLog$databaseChangesArgs<ExtArgs> = {}>(args?: Subset<T, AuditLog$databaseChangesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    user<T extends AuditLog$userArgs<ExtArgs> = {}>(args?: Subset<T, AuditLog$userArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    sensitiveOps<T extends AuditLog$sensitiveOpsArgs<ExtArgs> = {}>(args?: Subset<T, AuditLog$sensitiveOpsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AuditLog model
   */
  interface AuditLogFieldRefs {
    readonly id: FieldRef<"AuditLog", 'String'>
    readonly region: FieldRef<"AuditLog", 'String'>
    readonly tenantId: FieldRef<"AuditLog", 'String'>
    readonly who: FieldRef<"AuditLog", 'String'>
    readonly what: FieldRef<"AuditLog", 'String'>
    readonly when: FieldRef<"AuditLog", 'DateTime'>
    readonly where: FieldRef<"AuditLog", 'String'>
    readonly why: FieldRef<"AuditLog", 'String'>
    readonly how: FieldRef<"AuditLog", 'String'>
    readonly module: FieldRef<"AuditLog", 'String'>
    readonly action: FieldRef<"AuditLog", 'AuditAction'>
    readonly entityType: FieldRef<"AuditLog", 'String'>
    readonly entityId: FieldRef<"AuditLog", 'String'>
    readonly oldValue: FieldRef<"AuditLog", 'Json'>
    readonly newValue: FieldRef<"AuditLog", 'Json'>
    readonly changes: FieldRef<"AuditLog", 'Json'>
    readonly userId: FieldRef<"AuditLog", 'String'>
    readonly sessionId: FieldRef<"AuditLog", 'String'>
    readonly traceId: FieldRef<"AuditLog", 'String'>
    readonly requestId: FieldRef<"AuditLog", 'String'>
    readonly ipAddress: FieldRef<"AuditLog", 'String'>
    readonly userAgent: FieldRef<"AuditLog", 'String'>
    readonly deviceId: FieldRef<"AuditLog", 'String'>
    readonly geoLocation: FieldRef<"AuditLog", 'String'>
    readonly businessType: FieldRef<"AuditLog", 'String'>
    readonly businessKey: FieldRef<"AuditLog", 'String'>
    readonly status: FieldRef<"AuditLog", 'AuditStatus'>
    readonly errorMessage: FieldRef<"AuditLog", 'String'>
    readonly duration: FieldRef<"AuditLog", 'Int'>
    readonly isFinancial: FieldRef<"AuditLog", 'Boolean'>
    readonly isSensitive: FieldRef<"AuditLog", 'Boolean'>
    readonly riskLevel: FieldRef<"AuditLog", 'RiskLevel'>
    readonly complianceLevel: FieldRef<"AuditLog", 'ComplianceLevel'>
    readonly retentionYears: FieldRef<"AuditLog", 'Int'>
    readonly previousHash: FieldRef<"AuditLog", 'String'>
    readonly currentHash: FieldRef<"AuditLog", 'String'>
    readonly signature: FieldRef<"AuditLog", 'String'>
    readonly createdAt: FieldRef<"AuditLog", 'DateTime'>
    readonly archivedAt: FieldRef<"AuditLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AuditLog findUnique
   */
  export type AuditLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditLog to fetch.
     */
    where: AuditLogWhereUniqueInput
  }

  /**
   * AuditLog findUniqueOrThrow
   */
  export type AuditLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditLog to fetch.
     */
    where: AuditLogWhereUniqueInput
  }

  /**
   * AuditLog findFirst
   */
  export type AuditLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditLog to fetch.
     */
    where?: AuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditLogs to fetch.
     */
    orderBy?: AuditLogOrderByWithRelationInput | AuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditLogs.
     */
    cursor?: AuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditLogs 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` AuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditLogs.
     */
    distinct?: AuditLogScalarFieldEnum | AuditLogScalarFieldEnum[]
  }

  /**
   * AuditLog findFirstOrThrow
   */
  export type AuditLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditLog to fetch.
     */
    where?: AuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditLogs to fetch.
     */
    orderBy?: AuditLogOrderByWithRelationInput | AuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditLogs.
     */
    cursor?: AuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditLogs 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` AuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditLogs.
     */
    distinct?: AuditLogScalarFieldEnum | AuditLogScalarFieldEnum[]
  }

  /**
   * AuditLog findMany
   */
  export type AuditLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditLogs to fetch.
     */
    where?: AuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditLogs to fetch.
     */
    orderBy?: AuditLogOrderByWithRelationInput | AuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AuditLogs.
     */
    cursor?: AuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditLogs 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` AuditLogs.
     */
    skip?: number
    distinct?: AuditLogScalarFieldEnum | AuditLogScalarFieldEnum[]
  }

  /**
   * AuditLog create
   */
  export type AuditLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * The data needed to create a AuditLog.
     */
    data: XOR<AuditLogCreateInput, AuditLogUncheckedCreateInput>
  }

  /**
   * AuditLog createMany
   */
  export type AuditLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AuditLogs.
     */
    data: AuditLogCreateManyInput | AuditLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AuditLog createManyAndReturn
   */
  export type AuditLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * The data used to create many AuditLogs.
     */
    data: AuditLogCreateManyInput | AuditLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AuditLog update
   */
  export type AuditLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * The data needed to update a AuditLog.
     */
    data: XOR<AuditLogUpdateInput, AuditLogUncheckedUpdateInput>
    /**
     * Choose, which AuditLog to update.
     */
    where: AuditLogWhereUniqueInput
  }

  /**
   * AuditLog updateMany
   */
  export type AuditLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AuditLogs.
     */
    data: XOR<AuditLogUpdateManyMutationInput, AuditLogUncheckedUpdateManyInput>
    /**
     * Filter which AuditLogs to update
     */
    where?: AuditLogWhereInput
    /**
     * Limit how many AuditLogs to update.
     */
    limit?: number
  }

  /**
   * AuditLog updateManyAndReturn
   */
  export type AuditLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * The data used to update AuditLogs.
     */
    data: XOR<AuditLogUpdateManyMutationInput, AuditLogUncheckedUpdateManyInput>
    /**
     * Filter which AuditLogs to update
     */
    where?: AuditLogWhereInput
    /**
     * Limit how many AuditLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AuditLog upsert
   */
  export type AuditLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * The filter to search for the AuditLog to update in case it exists.
     */
    where: AuditLogWhereUniqueInput
    /**
     * In case the AuditLog found by the `where` argument doesn't exist, create a new AuditLog with this data.
     */
    create: XOR<AuditLogCreateInput, AuditLogUncheckedCreateInput>
    /**
     * In case the AuditLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AuditLogUpdateInput, AuditLogUncheckedUpdateInput>
  }

  /**
   * AuditLog delete
   */
  export type AuditLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    /**
     * Filter which AuditLog to delete.
     */
    where: AuditLogWhereUniqueInput
  }

  /**
   * AuditLog deleteMany
   */
  export type AuditLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditLogs to delete
     */
    where?: AuditLogWhereInput
    /**
     * Limit how many AuditLogs to delete.
     */
    limit?: number
  }

  /**
   * AuditLog.databaseChanges
   */
  export type AuditLog$databaseChangesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    where?: AuditDatabaseChangeLogWhereInput
    orderBy?: AuditDatabaseChangeLogOrderByWithRelationInput | AuditDatabaseChangeLogOrderByWithRelationInput[]
    cursor?: AuditDatabaseChangeLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AuditDatabaseChangeLogScalarFieldEnum | AuditDatabaseChangeLogScalarFieldEnum[]
  }

  /**
   * AuditLog.user
   */
  export type AuditLog$userArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * AuditLog.sensitiveOps
   */
  export type AuditLog$sensitiveOpsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    where?: AuditSensitiveOperationLogWhereInput
    orderBy?: AuditSensitiveOperationLogOrderByWithRelationInput | AuditSensitiveOperationLogOrderByWithRelationInput[]
    cursor?: AuditSensitiveOperationLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AuditSensitiveOperationLogScalarFieldEnum | AuditSensitiveOperationLogScalarFieldEnum[]
  }

  /**
   * AuditLog without action
   */
  export type AuditLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
  }


  /**
   * Model AuditDatabaseChangeLog
   */

  export type AggregateAuditDatabaseChangeLog = {
    _count: AuditDatabaseChangeLogCountAggregateOutputType | null
    _min: AuditDatabaseChangeLogMinAggregateOutputType | null
    _max: AuditDatabaseChangeLogMaxAggregateOutputType | null
  }

  export type AuditDatabaseChangeLogMinAggregateOutputType = {
    id: string | null
    tableName: string | null
    operation: $Enums.DbOperation | null
    recordId: string | null
    userId: string | null
    auditLogId: string | null
    createdAt: Date | null
  }

  export type AuditDatabaseChangeLogMaxAggregateOutputType = {
    id: string | null
    tableName: string | null
    operation: $Enums.DbOperation | null
    recordId: string | null
    userId: string | null
    auditLogId: string | null
    createdAt: Date | null
  }

  export type AuditDatabaseChangeLogCountAggregateOutputType = {
    id: number
    tableName: number
    operation: number
    recordId: number
    oldData: number
    newData: number
    changedFields: number
    userId: number
    auditLogId: number
    createdAt: number
    _all: number
  }


  export type AuditDatabaseChangeLogMinAggregateInputType = {
    id?: true
    tableName?: true
    operation?: true
    recordId?: true
    userId?: true
    auditLogId?: true
    createdAt?: true
  }

  export type AuditDatabaseChangeLogMaxAggregateInputType = {
    id?: true
    tableName?: true
    operation?: true
    recordId?: true
    userId?: true
    auditLogId?: true
    createdAt?: true
  }

  export type AuditDatabaseChangeLogCountAggregateInputType = {
    id?: true
    tableName?: true
    operation?: true
    recordId?: true
    oldData?: true
    newData?: true
    changedFields?: true
    userId?: true
    auditLogId?: true
    createdAt?: true
    _all?: true
  }

  export type AuditDatabaseChangeLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditDatabaseChangeLog to aggregate.
     */
    where?: AuditDatabaseChangeLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditDatabaseChangeLogs to fetch.
     */
    orderBy?: AuditDatabaseChangeLogOrderByWithRelationInput | AuditDatabaseChangeLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AuditDatabaseChangeLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditDatabaseChangeLogs 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` AuditDatabaseChangeLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AuditDatabaseChangeLogs
    **/
    _count?: true | AuditDatabaseChangeLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AuditDatabaseChangeLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AuditDatabaseChangeLogMaxAggregateInputType
  }

  export type GetAuditDatabaseChangeLogAggregateType<T extends AuditDatabaseChangeLogAggregateArgs> = {
        [P in keyof T & keyof AggregateAuditDatabaseChangeLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAuditDatabaseChangeLog[P]>
      : GetScalarType<T[P], AggregateAuditDatabaseChangeLog[P]>
  }




  export type AuditDatabaseChangeLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AuditDatabaseChangeLogWhereInput
    orderBy?: AuditDatabaseChangeLogOrderByWithAggregationInput | AuditDatabaseChangeLogOrderByWithAggregationInput[]
    by: AuditDatabaseChangeLogScalarFieldEnum[] | AuditDatabaseChangeLogScalarFieldEnum
    having?: AuditDatabaseChangeLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AuditDatabaseChangeLogCountAggregateInputType | true
    _min?: AuditDatabaseChangeLogMinAggregateInputType
    _max?: AuditDatabaseChangeLogMaxAggregateInputType
  }

  export type AuditDatabaseChangeLogGroupByOutputType = {
    id: string
    tableName: string
    operation: $Enums.DbOperation
    recordId: string
    oldData: JsonValue | null
    newData: JsonValue | null
    changedFields: string[]
    userId: string
    auditLogId: string
    createdAt: Date
    _count: AuditDatabaseChangeLogCountAggregateOutputType | null
    _min: AuditDatabaseChangeLogMinAggregateOutputType | null
    _max: AuditDatabaseChangeLogMaxAggregateOutputType | null
  }

  type GetAuditDatabaseChangeLogGroupByPayload<T extends AuditDatabaseChangeLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AuditDatabaseChangeLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AuditDatabaseChangeLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AuditDatabaseChangeLogGroupByOutputType[P]>
            : GetScalarType<T[P], AuditDatabaseChangeLogGroupByOutputType[P]>
        }
      >
    >


  export type AuditDatabaseChangeLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    tableName?: boolean
    operation?: boolean
    recordId?: boolean
    oldData?: boolean
    newData?: boolean
    changedFields?: boolean
    userId?: boolean
    auditLogId?: boolean
    createdAt?: boolean
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["auditDatabaseChangeLog"]>

  export type AuditDatabaseChangeLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    tableName?: boolean
    operation?: boolean
    recordId?: boolean
    oldData?: boolean
    newData?: boolean
    changedFields?: boolean
    userId?: boolean
    auditLogId?: boolean
    createdAt?: boolean
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["auditDatabaseChangeLog"]>

  export type AuditDatabaseChangeLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    tableName?: boolean
    operation?: boolean
    recordId?: boolean
    oldData?: boolean
    newData?: boolean
    changedFields?: boolean
    userId?: boolean
    auditLogId?: boolean
    createdAt?: boolean
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["auditDatabaseChangeLog"]>

  export type AuditDatabaseChangeLogSelectScalar = {
    id?: boolean
    tableName?: boolean
    operation?: boolean
    recordId?: boolean
    oldData?: boolean
    newData?: boolean
    changedFields?: boolean
    userId?: boolean
    auditLogId?: boolean
    createdAt?: boolean
  }

  export type AuditDatabaseChangeLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "tableName" | "operation" | "recordId" | "oldData" | "newData" | "changedFields" | "userId" | "auditLogId" | "createdAt", ExtArgs["result"]["auditDatabaseChangeLog"]>
  export type AuditDatabaseChangeLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }
  export type AuditDatabaseChangeLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }
  export type AuditDatabaseChangeLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }

  export type $AuditDatabaseChangeLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AuditDatabaseChangeLog"
    objects: {
      auditLog: Prisma.$AuditLogPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      tableName: string
      operation: $Enums.DbOperation
      recordId: string
      oldData: Prisma.JsonValue | null
      newData: Prisma.JsonValue | null
      changedFields: string[]
      userId: string
      auditLogId: string
      createdAt: Date
    }, ExtArgs["result"]["auditDatabaseChangeLog"]>
    composites: {}
  }

  type AuditDatabaseChangeLogGetPayload<S extends boolean | null | undefined | AuditDatabaseChangeLogDefaultArgs> = $Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload, S>

  type AuditDatabaseChangeLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AuditDatabaseChangeLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AuditDatabaseChangeLogCountAggregateInputType | true
    }

  export interface AuditDatabaseChangeLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AuditDatabaseChangeLog'], meta: { name: 'AuditDatabaseChangeLog' } }
    /**
     * Find zero or one AuditDatabaseChangeLog that matches the filter.
     * @param {AuditDatabaseChangeLogFindUniqueArgs} args - Arguments to find a AuditDatabaseChangeLog
     * @example
     * // Get one AuditDatabaseChangeLog
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AuditDatabaseChangeLogFindUniqueArgs>(args: SelectSubset<T, AuditDatabaseChangeLogFindUniqueArgs<ExtArgs>>): Prisma__AuditDatabaseChangeLogClient<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AuditDatabaseChangeLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AuditDatabaseChangeLogFindUniqueOrThrowArgs} args - Arguments to find a AuditDatabaseChangeLog
     * @example
     * // Get one AuditDatabaseChangeLog
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AuditDatabaseChangeLogFindUniqueOrThrowArgs>(args: SelectSubset<T, AuditDatabaseChangeLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AuditDatabaseChangeLogClient<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditDatabaseChangeLog 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 {AuditDatabaseChangeLogFindFirstArgs} args - Arguments to find a AuditDatabaseChangeLog
     * @example
     * // Get one AuditDatabaseChangeLog
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AuditDatabaseChangeLogFindFirstArgs>(args?: SelectSubset<T, AuditDatabaseChangeLogFindFirstArgs<ExtArgs>>): Prisma__AuditDatabaseChangeLogClient<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditDatabaseChangeLog 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 {AuditDatabaseChangeLogFindFirstOrThrowArgs} args - Arguments to find a AuditDatabaseChangeLog
     * @example
     * // Get one AuditDatabaseChangeLog
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AuditDatabaseChangeLogFindFirstOrThrowArgs>(args?: SelectSubset<T, AuditDatabaseChangeLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__AuditDatabaseChangeLogClient<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AuditDatabaseChangeLogs 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 {AuditDatabaseChangeLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AuditDatabaseChangeLogs
     * const auditDatabaseChangeLogs = await prisma.auditDatabaseChangeLog.findMany()
     * 
     * // Get first 10 AuditDatabaseChangeLogs
     * const auditDatabaseChangeLogs = await prisma.auditDatabaseChangeLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const auditDatabaseChangeLogWithIdOnly = await prisma.auditDatabaseChangeLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AuditDatabaseChangeLogFindManyArgs>(args?: SelectSubset<T, AuditDatabaseChangeLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AuditDatabaseChangeLog.
     * @param {AuditDatabaseChangeLogCreateArgs} args - Arguments to create a AuditDatabaseChangeLog.
     * @example
     * // Create one AuditDatabaseChangeLog
     * const AuditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.create({
     *   data: {
     *     // ... data to create a AuditDatabaseChangeLog
     *   }
     * })
     * 
     */
    create<T extends AuditDatabaseChangeLogCreateArgs>(args: SelectSubset<T, AuditDatabaseChangeLogCreateArgs<ExtArgs>>): Prisma__AuditDatabaseChangeLogClient<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AuditDatabaseChangeLogs.
     * @param {AuditDatabaseChangeLogCreateManyArgs} args - Arguments to create many AuditDatabaseChangeLogs.
     * @example
     * // Create many AuditDatabaseChangeLogs
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AuditDatabaseChangeLogCreateManyArgs>(args?: SelectSubset<T, AuditDatabaseChangeLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AuditDatabaseChangeLogs and returns the data saved in the database.
     * @param {AuditDatabaseChangeLogCreateManyAndReturnArgs} args - Arguments to create many AuditDatabaseChangeLogs.
     * @example
     * // Create many AuditDatabaseChangeLogs
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AuditDatabaseChangeLogs and only return the `id`
     * const auditDatabaseChangeLogWithIdOnly = await prisma.auditDatabaseChangeLog.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 AuditDatabaseChangeLogCreateManyAndReturnArgs>(args?: SelectSubset<T, AuditDatabaseChangeLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AuditDatabaseChangeLog.
     * @param {AuditDatabaseChangeLogDeleteArgs} args - Arguments to delete one AuditDatabaseChangeLog.
     * @example
     * // Delete one AuditDatabaseChangeLog
     * const AuditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.delete({
     *   where: {
     *     // ... filter to delete one AuditDatabaseChangeLog
     *   }
     * })
     * 
     */
    delete<T extends AuditDatabaseChangeLogDeleteArgs>(args: SelectSubset<T, AuditDatabaseChangeLogDeleteArgs<ExtArgs>>): Prisma__AuditDatabaseChangeLogClient<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AuditDatabaseChangeLog.
     * @param {AuditDatabaseChangeLogUpdateArgs} args - Arguments to update one AuditDatabaseChangeLog.
     * @example
     * // Update one AuditDatabaseChangeLog
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AuditDatabaseChangeLogUpdateArgs>(args: SelectSubset<T, AuditDatabaseChangeLogUpdateArgs<ExtArgs>>): Prisma__AuditDatabaseChangeLogClient<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AuditDatabaseChangeLogs.
     * @param {AuditDatabaseChangeLogDeleteManyArgs} args - Arguments to filter AuditDatabaseChangeLogs to delete.
     * @example
     * // Delete a few AuditDatabaseChangeLogs
     * const { count } = await prisma.auditDatabaseChangeLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AuditDatabaseChangeLogDeleteManyArgs>(args?: SelectSubset<T, AuditDatabaseChangeLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditDatabaseChangeLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditDatabaseChangeLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AuditDatabaseChangeLogs
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AuditDatabaseChangeLogUpdateManyArgs>(args: SelectSubset<T, AuditDatabaseChangeLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditDatabaseChangeLogs and returns the data updated in the database.
     * @param {AuditDatabaseChangeLogUpdateManyAndReturnArgs} args - Arguments to update many AuditDatabaseChangeLogs.
     * @example
     * // Update many AuditDatabaseChangeLogs
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AuditDatabaseChangeLogs and only return the `id`
     * const auditDatabaseChangeLogWithIdOnly = await prisma.auditDatabaseChangeLog.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 AuditDatabaseChangeLogUpdateManyAndReturnArgs>(args: SelectSubset<T, AuditDatabaseChangeLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AuditDatabaseChangeLog.
     * @param {AuditDatabaseChangeLogUpsertArgs} args - Arguments to update or create a AuditDatabaseChangeLog.
     * @example
     * // Update or create a AuditDatabaseChangeLog
     * const auditDatabaseChangeLog = await prisma.auditDatabaseChangeLog.upsert({
     *   create: {
     *     // ... data to create a AuditDatabaseChangeLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AuditDatabaseChangeLog we want to update
     *   }
     * })
     */
    upsert<T extends AuditDatabaseChangeLogUpsertArgs>(args: SelectSubset<T, AuditDatabaseChangeLogUpsertArgs<ExtArgs>>): Prisma__AuditDatabaseChangeLogClient<$Result.GetResult<Prisma.$AuditDatabaseChangeLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AuditDatabaseChangeLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditDatabaseChangeLogCountArgs} args - Arguments to filter AuditDatabaseChangeLogs to count.
     * @example
     * // Count the number of AuditDatabaseChangeLogs
     * const count = await prisma.auditDatabaseChangeLog.count({
     *   where: {
     *     // ... the filter for the AuditDatabaseChangeLogs we want to count
     *   }
     * })
    **/
    count<T extends AuditDatabaseChangeLogCountArgs>(
      args?: Subset<T, AuditDatabaseChangeLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AuditDatabaseChangeLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AuditDatabaseChangeLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditDatabaseChangeLogAggregateArgs} 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 AuditDatabaseChangeLogAggregateArgs>(args: Subset<T, AuditDatabaseChangeLogAggregateArgs>): Prisma.PrismaPromise<GetAuditDatabaseChangeLogAggregateType<T>>

    /**
     * Group by AuditDatabaseChangeLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditDatabaseChangeLogGroupByArgs} 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 AuditDatabaseChangeLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AuditDatabaseChangeLogGroupByArgs['orderBy'] }
        : { orderBy?: AuditDatabaseChangeLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AuditDatabaseChangeLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAuditDatabaseChangeLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AuditDatabaseChangeLog model
   */
  readonly fields: AuditDatabaseChangeLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AuditDatabaseChangeLog.
   * 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__AuditDatabaseChangeLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    auditLog<T extends AuditLogDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AuditLogDefaultArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AuditDatabaseChangeLog model
   */
  interface AuditDatabaseChangeLogFieldRefs {
    readonly id: FieldRef<"AuditDatabaseChangeLog", 'String'>
    readonly tableName: FieldRef<"AuditDatabaseChangeLog", 'String'>
    readonly operation: FieldRef<"AuditDatabaseChangeLog", 'DbOperation'>
    readonly recordId: FieldRef<"AuditDatabaseChangeLog", 'String'>
    readonly oldData: FieldRef<"AuditDatabaseChangeLog", 'Json'>
    readonly newData: FieldRef<"AuditDatabaseChangeLog", 'Json'>
    readonly changedFields: FieldRef<"AuditDatabaseChangeLog", 'String[]'>
    readonly userId: FieldRef<"AuditDatabaseChangeLog", 'String'>
    readonly auditLogId: FieldRef<"AuditDatabaseChangeLog", 'String'>
    readonly createdAt: FieldRef<"AuditDatabaseChangeLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AuditDatabaseChangeLog findUnique
   */
  export type AuditDatabaseChangeLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditDatabaseChangeLog to fetch.
     */
    where: AuditDatabaseChangeLogWhereUniqueInput
  }

  /**
   * AuditDatabaseChangeLog findUniqueOrThrow
   */
  export type AuditDatabaseChangeLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditDatabaseChangeLog to fetch.
     */
    where: AuditDatabaseChangeLogWhereUniqueInput
  }

  /**
   * AuditDatabaseChangeLog findFirst
   */
  export type AuditDatabaseChangeLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditDatabaseChangeLog to fetch.
     */
    where?: AuditDatabaseChangeLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditDatabaseChangeLogs to fetch.
     */
    orderBy?: AuditDatabaseChangeLogOrderByWithRelationInput | AuditDatabaseChangeLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditDatabaseChangeLogs.
     */
    cursor?: AuditDatabaseChangeLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditDatabaseChangeLogs 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` AuditDatabaseChangeLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditDatabaseChangeLogs.
     */
    distinct?: AuditDatabaseChangeLogScalarFieldEnum | AuditDatabaseChangeLogScalarFieldEnum[]
  }

  /**
   * AuditDatabaseChangeLog findFirstOrThrow
   */
  export type AuditDatabaseChangeLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditDatabaseChangeLog to fetch.
     */
    where?: AuditDatabaseChangeLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditDatabaseChangeLogs to fetch.
     */
    orderBy?: AuditDatabaseChangeLogOrderByWithRelationInput | AuditDatabaseChangeLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditDatabaseChangeLogs.
     */
    cursor?: AuditDatabaseChangeLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditDatabaseChangeLogs 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` AuditDatabaseChangeLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditDatabaseChangeLogs.
     */
    distinct?: AuditDatabaseChangeLogScalarFieldEnum | AuditDatabaseChangeLogScalarFieldEnum[]
  }

  /**
   * AuditDatabaseChangeLog findMany
   */
  export type AuditDatabaseChangeLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditDatabaseChangeLogs to fetch.
     */
    where?: AuditDatabaseChangeLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditDatabaseChangeLogs to fetch.
     */
    orderBy?: AuditDatabaseChangeLogOrderByWithRelationInput | AuditDatabaseChangeLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AuditDatabaseChangeLogs.
     */
    cursor?: AuditDatabaseChangeLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditDatabaseChangeLogs 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` AuditDatabaseChangeLogs.
     */
    skip?: number
    distinct?: AuditDatabaseChangeLogScalarFieldEnum | AuditDatabaseChangeLogScalarFieldEnum[]
  }

  /**
   * AuditDatabaseChangeLog create
   */
  export type AuditDatabaseChangeLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * The data needed to create a AuditDatabaseChangeLog.
     */
    data: XOR<AuditDatabaseChangeLogCreateInput, AuditDatabaseChangeLogUncheckedCreateInput>
  }

  /**
   * AuditDatabaseChangeLog createMany
   */
  export type AuditDatabaseChangeLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AuditDatabaseChangeLogs.
     */
    data: AuditDatabaseChangeLogCreateManyInput | AuditDatabaseChangeLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AuditDatabaseChangeLog createManyAndReturn
   */
  export type AuditDatabaseChangeLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * The data used to create many AuditDatabaseChangeLogs.
     */
    data: AuditDatabaseChangeLogCreateManyInput | AuditDatabaseChangeLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AuditDatabaseChangeLog update
   */
  export type AuditDatabaseChangeLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * The data needed to update a AuditDatabaseChangeLog.
     */
    data: XOR<AuditDatabaseChangeLogUpdateInput, AuditDatabaseChangeLogUncheckedUpdateInput>
    /**
     * Choose, which AuditDatabaseChangeLog to update.
     */
    where: AuditDatabaseChangeLogWhereUniqueInput
  }

  /**
   * AuditDatabaseChangeLog updateMany
   */
  export type AuditDatabaseChangeLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AuditDatabaseChangeLogs.
     */
    data: XOR<AuditDatabaseChangeLogUpdateManyMutationInput, AuditDatabaseChangeLogUncheckedUpdateManyInput>
    /**
     * Filter which AuditDatabaseChangeLogs to update
     */
    where?: AuditDatabaseChangeLogWhereInput
    /**
     * Limit how many AuditDatabaseChangeLogs to update.
     */
    limit?: number
  }

  /**
   * AuditDatabaseChangeLog updateManyAndReturn
   */
  export type AuditDatabaseChangeLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * The data used to update AuditDatabaseChangeLogs.
     */
    data: XOR<AuditDatabaseChangeLogUpdateManyMutationInput, AuditDatabaseChangeLogUncheckedUpdateManyInput>
    /**
     * Filter which AuditDatabaseChangeLogs to update
     */
    where?: AuditDatabaseChangeLogWhereInput
    /**
     * Limit how many AuditDatabaseChangeLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AuditDatabaseChangeLog upsert
   */
  export type AuditDatabaseChangeLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * The filter to search for the AuditDatabaseChangeLog to update in case it exists.
     */
    where: AuditDatabaseChangeLogWhereUniqueInput
    /**
     * In case the AuditDatabaseChangeLog found by the `where` argument doesn't exist, create a new AuditDatabaseChangeLog with this data.
     */
    create: XOR<AuditDatabaseChangeLogCreateInput, AuditDatabaseChangeLogUncheckedCreateInput>
    /**
     * In case the AuditDatabaseChangeLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AuditDatabaseChangeLogUpdateInput, AuditDatabaseChangeLogUncheckedUpdateInput>
  }

  /**
   * AuditDatabaseChangeLog delete
   */
  export type AuditDatabaseChangeLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
    /**
     * Filter which AuditDatabaseChangeLog to delete.
     */
    where: AuditDatabaseChangeLogWhereUniqueInput
  }

  /**
   * AuditDatabaseChangeLog deleteMany
   */
  export type AuditDatabaseChangeLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditDatabaseChangeLogs to delete
     */
    where?: AuditDatabaseChangeLogWhereInput
    /**
     * Limit how many AuditDatabaseChangeLogs to delete.
     */
    limit?: number
  }

  /**
   * AuditDatabaseChangeLog without action
   */
  export type AuditDatabaseChangeLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditDatabaseChangeLog
     */
    select?: AuditDatabaseChangeLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditDatabaseChangeLog
     */
    omit?: AuditDatabaseChangeLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditDatabaseChangeLogInclude<ExtArgs> | null
  }


  /**
   * Model AuditSensitiveOperationLog
   */

  export type AggregateAuditSensitiveOperationLog = {
    _count: AuditSensitiveOperationLogCountAggregateOutputType | null
    _min: AuditSensitiveOperationLogMinAggregateOutputType | null
    _max: AuditSensitiveOperationLogMaxAggregateOutputType | null
  }

  export type AuditSensitiveOperationLogMinAggregateOutputType = {
    id: string | null
    operationType: string | null
    description: string | null
    requiresApproval: boolean | null
    approvedBy: string | null
    approvalTime: Date | null
    riskLevel: $Enums.RiskLevel | null
    mfaVerified: boolean | null
    userId: string | null
    auditLogId: string | null
    createdAt: Date | null
  }

  export type AuditSensitiveOperationLogMaxAggregateOutputType = {
    id: string | null
    operationType: string | null
    description: string | null
    requiresApproval: boolean | null
    approvedBy: string | null
    approvalTime: Date | null
    riskLevel: $Enums.RiskLevel | null
    mfaVerified: boolean | null
    userId: string | null
    auditLogId: string | null
    createdAt: Date | null
  }

  export type AuditSensitiveOperationLogCountAggregateOutputType = {
    id: number
    operationType: number
    description: number
    requiresApproval: number
    approvedBy: number
    approvalTime: number
    riskLevel: number
    mfaVerified: number
    userId: number
    auditLogId: number
    createdAt: number
    _all: number
  }


  export type AuditSensitiveOperationLogMinAggregateInputType = {
    id?: true
    operationType?: true
    description?: true
    requiresApproval?: true
    approvedBy?: true
    approvalTime?: true
    riskLevel?: true
    mfaVerified?: true
    userId?: true
    auditLogId?: true
    createdAt?: true
  }

  export type AuditSensitiveOperationLogMaxAggregateInputType = {
    id?: true
    operationType?: true
    description?: true
    requiresApproval?: true
    approvedBy?: true
    approvalTime?: true
    riskLevel?: true
    mfaVerified?: true
    userId?: true
    auditLogId?: true
    createdAt?: true
  }

  export type AuditSensitiveOperationLogCountAggregateInputType = {
    id?: true
    operationType?: true
    description?: true
    requiresApproval?: true
    approvedBy?: true
    approvalTime?: true
    riskLevel?: true
    mfaVerified?: true
    userId?: true
    auditLogId?: true
    createdAt?: true
    _all?: true
  }

  export type AuditSensitiveOperationLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditSensitiveOperationLog to aggregate.
     */
    where?: AuditSensitiveOperationLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditSensitiveOperationLogs to fetch.
     */
    orderBy?: AuditSensitiveOperationLogOrderByWithRelationInput | AuditSensitiveOperationLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AuditSensitiveOperationLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditSensitiveOperationLogs 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` AuditSensitiveOperationLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AuditSensitiveOperationLogs
    **/
    _count?: true | AuditSensitiveOperationLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AuditSensitiveOperationLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AuditSensitiveOperationLogMaxAggregateInputType
  }

  export type GetAuditSensitiveOperationLogAggregateType<T extends AuditSensitiveOperationLogAggregateArgs> = {
        [P in keyof T & keyof AggregateAuditSensitiveOperationLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAuditSensitiveOperationLog[P]>
      : GetScalarType<T[P], AggregateAuditSensitiveOperationLog[P]>
  }




  export type AuditSensitiveOperationLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AuditSensitiveOperationLogWhereInput
    orderBy?: AuditSensitiveOperationLogOrderByWithAggregationInput | AuditSensitiveOperationLogOrderByWithAggregationInput[]
    by: AuditSensitiveOperationLogScalarFieldEnum[] | AuditSensitiveOperationLogScalarFieldEnum
    having?: AuditSensitiveOperationLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AuditSensitiveOperationLogCountAggregateInputType | true
    _min?: AuditSensitiveOperationLogMinAggregateInputType
    _max?: AuditSensitiveOperationLogMaxAggregateInputType
  }

  export type AuditSensitiveOperationLogGroupByOutputType = {
    id: string
    operationType: string
    description: string
    requiresApproval: boolean
    approvedBy: string | null
    approvalTime: Date | null
    riskLevel: $Enums.RiskLevel
    mfaVerified: boolean
    userId: string
    auditLogId: string
    createdAt: Date
    _count: AuditSensitiveOperationLogCountAggregateOutputType | null
    _min: AuditSensitiveOperationLogMinAggregateOutputType | null
    _max: AuditSensitiveOperationLogMaxAggregateOutputType | null
  }

  type GetAuditSensitiveOperationLogGroupByPayload<T extends AuditSensitiveOperationLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AuditSensitiveOperationLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AuditSensitiveOperationLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AuditSensitiveOperationLogGroupByOutputType[P]>
            : GetScalarType<T[P], AuditSensitiveOperationLogGroupByOutputType[P]>
        }
      >
    >


  export type AuditSensitiveOperationLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    operationType?: boolean
    description?: boolean
    requiresApproval?: boolean
    approvedBy?: boolean
    approvalTime?: boolean
    riskLevel?: boolean
    mfaVerified?: boolean
    userId?: boolean
    auditLogId?: boolean
    createdAt?: boolean
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["auditSensitiveOperationLog"]>

  export type AuditSensitiveOperationLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    operationType?: boolean
    description?: boolean
    requiresApproval?: boolean
    approvedBy?: boolean
    approvalTime?: boolean
    riskLevel?: boolean
    mfaVerified?: boolean
    userId?: boolean
    auditLogId?: boolean
    createdAt?: boolean
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["auditSensitiveOperationLog"]>

  export type AuditSensitiveOperationLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    operationType?: boolean
    description?: boolean
    requiresApproval?: boolean
    approvedBy?: boolean
    approvalTime?: boolean
    riskLevel?: boolean
    mfaVerified?: boolean
    userId?: boolean
    auditLogId?: boolean
    createdAt?: boolean
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["auditSensitiveOperationLog"]>

  export type AuditSensitiveOperationLogSelectScalar = {
    id?: boolean
    operationType?: boolean
    description?: boolean
    requiresApproval?: boolean
    approvedBy?: boolean
    approvalTime?: boolean
    riskLevel?: boolean
    mfaVerified?: boolean
    userId?: boolean
    auditLogId?: boolean
    createdAt?: boolean
  }

  export type AuditSensitiveOperationLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "operationType" | "description" | "requiresApproval" | "approvedBy" | "approvalTime" | "riskLevel" | "mfaVerified" | "userId" | "auditLogId" | "createdAt", ExtArgs["result"]["auditSensitiveOperationLog"]>
  export type AuditSensitiveOperationLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }
  export type AuditSensitiveOperationLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }
  export type AuditSensitiveOperationLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    auditLog?: boolean | AuditLogDefaultArgs<ExtArgs>
  }

  export type $AuditSensitiveOperationLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AuditSensitiveOperationLog"
    objects: {
      auditLog: Prisma.$AuditLogPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      operationType: string
      description: string
      requiresApproval: boolean
      approvedBy: string | null
      approvalTime: Date | null
      riskLevel: $Enums.RiskLevel
      mfaVerified: boolean
      userId: string
      auditLogId: string
      createdAt: Date
    }, ExtArgs["result"]["auditSensitiveOperationLog"]>
    composites: {}
  }

  type AuditSensitiveOperationLogGetPayload<S extends boolean | null | undefined | AuditSensitiveOperationLogDefaultArgs> = $Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload, S>

  type AuditSensitiveOperationLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AuditSensitiveOperationLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AuditSensitiveOperationLogCountAggregateInputType | true
    }

  export interface AuditSensitiveOperationLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AuditSensitiveOperationLog'], meta: { name: 'AuditSensitiveOperationLog' } }
    /**
     * Find zero or one AuditSensitiveOperationLog that matches the filter.
     * @param {AuditSensitiveOperationLogFindUniqueArgs} args - Arguments to find a AuditSensitiveOperationLog
     * @example
     * // Get one AuditSensitiveOperationLog
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AuditSensitiveOperationLogFindUniqueArgs>(args: SelectSubset<T, AuditSensitiveOperationLogFindUniqueArgs<ExtArgs>>): Prisma__AuditSensitiveOperationLogClient<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AuditSensitiveOperationLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AuditSensitiveOperationLogFindUniqueOrThrowArgs} args - Arguments to find a AuditSensitiveOperationLog
     * @example
     * // Get one AuditSensitiveOperationLog
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AuditSensitiveOperationLogFindUniqueOrThrowArgs>(args: SelectSubset<T, AuditSensitiveOperationLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AuditSensitiveOperationLogClient<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditSensitiveOperationLog 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 {AuditSensitiveOperationLogFindFirstArgs} args - Arguments to find a AuditSensitiveOperationLog
     * @example
     * // Get one AuditSensitiveOperationLog
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AuditSensitiveOperationLogFindFirstArgs>(args?: SelectSubset<T, AuditSensitiveOperationLogFindFirstArgs<ExtArgs>>): Prisma__AuditSensitiveOperationLogClient<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditSensitiveOperationLog 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 {AuditSensitiveOperationLogFindFirstOrThrowArgs} args - Arguments to find a AuditSensitiveOperationLog
     * @example
     * // Get one AuditSensitiveOperationLog
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AuditSensitiveOperationLogFindFirstOrThrowArgs>(args?: SelectSubset<T, AuditSensitiveOperationLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__AuditSensitiveOperationLogClient<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AuditSensitiveOperationLogs 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 {AuditSensitiveOperationLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AuditSensitiveOperationLogs
     * const auditSensitiveOperationLogs = await prisma.auditSensitiveOperationLog.findMany()
     * 
     * // Get first 10 AuditSensitiveOperationLogs
     * const auditSensitiveOperationLogs = await prisma.auditSensitiveOperationLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const auditSensitiveOperationLogWithIdOnly = await prisma.auditSensitiveOperationLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AuditSensitiveOperationLogFindManyArgs>(args?: SelectSubset<T, AuditSensitiveOperationLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AuditSensitiveOperationLog.
     * @param {AuditSensitiveOperationLogCreateArgs} args - Arguments to create a AuditSensitiveOperationLog.
     * @example
     * // Create one AuditSensitiveOperationLog
     * const AuditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.create({
     *   data: {
     *     // ... data to create a AuditSensitiveOperationLog
     *   }
     * })
     * 
     */
    create<T extends AuditSensitiveOperationLogCreateArgs>(args: SelectSubset<T, AuditSensitiveOperationLogCreateArgs<ExtArgs>>): Prisma__AuditSensitiveOperationLogClient<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AuditSensitiveOperationLogs.
     * @param {AuditSensitiveOperationLogCreateManyArgs} args - Arguments to create many AuditSensitiveOperationLogs.
     * @example
     * // Create many AuditSensitiveOperationLogs
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AuditSensitiveOperationLogCreateManyArgs>(args?: SelectSubset<T, AuditSensitiveOperationLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AuditSensitiveOperationLogs and returns the data saved in the database.
     * @param {AuditSensitiveOperationLogCreateManyAndReturnArgs} args - Arguments to create many AuditSensitiveOperationLogs.
     * @example
     * // Create many AuditSensitiveOperationLogs
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AuditSensitiveOperationLogs and only return the `id`
     * const auditSensitiveOperationLogWithIdOnly = await prisma.auditSensitiveOperationLog.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 AuditSensitiveOperationLogCreateManyAndReturnArgs>(args?: SelectSubset<T, AuditSensitiveOperationLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AuditSensitiveOperationLog.
     * @param {AuditSensitiveOperationLogDeleteArgs} args - Arguments to delete one AuditSensitiveOperationLog.
     * @example
     * // Delete one AuditSensitiveOperationLog
     * const AuditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.delete({
     *   where: {
     *     // ... filter to delete one AuditSensitiveOperationLog
     *   }
     * })
     * 
     */
    delete<T extends AuditSensitiveOperationLogDeleteArgs>(args: SelectSubset<T, AuditSensitiveOperationLogDeleteArgs<ExtArgs>>): Prisma__AuditSensitiveOperationLogClient<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AuditSensitiveOperationLog.
     * @param {AuditSensitiveOperationLogUpdateArgs} args - Arguments to update one AuditSensitiveOperationLog.
     * @example
     * // Update one AuditSensitiveOperationLog
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AuditSensitiveOperationLogUpdateArgs>(args: SelectSubset<T, AuditSensitiveOperationLogUpdateArgs<ExtArgs>>): Prisma__AuditSensitiveOperationLogClient<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AuditSensitiveOperationLogs.
     * @param {AuditSensitiveOperationLogDeleteManyArgs} args - Arguments to filter AuditSensitiveOperationLogs to delete.
     * @example
     * // Delete a few AuditSensitiveOperationLogs
     * const { count } = await prisma.auditSensitiveOperationLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AuditSensitiveOperationLogDeleteManyArgs>(args?: SelectSubset<T, AuditSensitiveOperationLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditSensitiveOperationLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditSensitiveOperationLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AuditSensitiveOperationLogs
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AuditSensitiveOperationLogUpdateManyArgs>(args: SelectSubset<T, AuditSensitiveOperationLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditSensitiveOperationLogs and returns the data updated in the database.
     * @param {AuditSensitiveOperationLogUpdateManyAndReturnArgs} args - Arguments to update many AuditSensitiveOperationLogs.
     * @example
     * // Update many AuditSensitiveOperationLogs
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AuditSensitiveOperationLogs and only return the `id`
     * const auditSensitiveOperationLogWithIdOnly = await prisma.auditSensitiveOperationLog.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 AuditSensitiveOperationLogUpdateManyAndReturnArgs>(args: SelectSubset<T, AuditSensitiveOperationLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AuditSensitiveOperationLog.
     * @param {AuditSensitiveOperationLogUpsertArgs} args - Arguments to update or create a AuditSensitiveOperationLog.
     * @example
     * // Update or create a AuditSensitiveOperationLog
     * const auditSensitiveOperationLog = await prisma.auditSensitiveOperationLog.upsert({
     *   create: {
     *     // ... data to create a AuditSensitiveOperationLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AuditSensitiveOperationLog we want to update
     *   }
     * })
     */
    upsert<T extends AuditSensitiveOperationLogUpsertArgs>(args: SelectSubset<T, AuditSensitiveOperationLogUpsertArgs<ExtArgs>>): Prisma__AuditSensitiveOperationLogClient<$Result.GetResult<Prisma.$AuditSensitiveOperationLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AuditSensitiveOperationLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditSensitiveOperationLogCountArgs} args - Arguments to filter AuditSensitiveOperationLogs to count.
     * @example
     * // Count the number of AuditSensitiveOperationLogs
     * const count = await prisma.auditSensitiveOperationLog.count({
     *   where: {
     *     // ... the filter for the AuditSensitiveOperationLogs we want to count
     *   }
     * })
    **/
    count<T extends AuditSensitiveOperationLogCountArgs>(
      args?: Subset<T, AuditSensitiveOperationLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AuditSensitiveOperationLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AuditSensitiveOperationLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditSensitiveOperationLogAggregateArgs} 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 AuditSensitiveOperationLogAggregateArgs>(args: Subset<T, AuditSensitiveOperationLogAggregateArgs>): Prisma.PrismaPromise<GetAuditSensitiveOperationLogAggregateType<T>>

    /**
     * Group by AuditSensitiveOperationLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditSensitiveOperationLogGroupByArgs} 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 AuditSensitiveOperationLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AuditSensitiveOperationLogGroupByArgs['orderBy'] }
        : { orderBy?: AuditSensitiveOperationLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AuditSensitiveOperationLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAuditSensitiveOperationLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AuditSensitiveOperationLog model
   */
  readonly fields: AuditSensitiveOperationLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AuditSensitiveOperationLog.
   * 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__AuditSensitiveOperationLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    auditLog<T extends AuditLogDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AuditLogDefaultArgs<ExtArgs>>): Prisma__AuditLogClient<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AuditSensitiveOperationLog model
   */
  interface AuditSensitiveOperationLogFieldRefs {
    readonly id: FieldRef<"AuditSensitiveOperationLog", 'String'>
    readonly operationType: FieldRef<"AuditSensitiveOperationLog", 'String'>
    readonly description: FieldRef<"AuditSensitiveOperationLog", 'String'>
    readonly requiresApproval: FieldRef<"AuditSensitiveOperationLog", 'Boolean'>
    readonly approvedBy: FieldRef<"AuditSensitiveOperationLog", 'String'>
    readonly approvalTime: FieldRef<"AuditSensitiveOperationLog", 'DateTime'>
    readonly riskLevel: FieldRef<"AuditSensitiveOperationLog", 'RiskLevel'>
    readonly mfaVerified: FieldRef<"AuditSensitiveOperationLog", 'Boolean'>
    readonly userId: FieldRef<"AuditSensitiveOperationLog", 'String'>
    readonly auditLogId: FieldRef<"AuditSensitiveOperationLog", 'String'>
    readonly createdAt: FieldRef<"AuditSensitiveOperationLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AuditSensitiveOperationLog findUnique
   */
  export type AuditSensitiveOperationLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditSensitiveOperationLog to fetch.
     */
    where: AuditSensitiveOperationLogWhereUniqueInput
  }

  /**
   * AuditSensitiveOperationLog findUniqueOrThrow
   */
  export type AuditSensitiveOperationLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditSensitiveOperationLog to fetch.
     */
    where: AuditSensitiveOperationLogWhereUniqueInput
  }

  /**
   * AuditSensitiveOperationLog findFirst
   */
  export type AuditSensitiveOperationLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditSensitiveOperationLog to fetch.
     */
    where?: AuditSensitiveOperationLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditSensitiveOperationLogs to fetch.
     */
    orderBy?: AuditSensitiveOperationLogOrderByWithRelationInput | AuditSensitiveOperationLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditSensitiveOperationLogs.
     */
    cursor?: AuditSensitiveOperationLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditSensitiveOperationLogs 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` AuditSensitiveOperationLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditSensitiveOperationLogs.
     */
    distinct?: AuditSensitiveOperationLogScalarFieldEnum | AuditSensitiveOperationLogScalarFieldEnum[]
  }

  /**
   * AuditSensitiveOperationLog findFirstOrThrow
   */
  export type AuditSensitiveOperationLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditSensitiveOperationLog to fetch.
     */
    where?: AuditSensitiveOperationLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditSensitiveOperationLogs to fetch.
     */
    orderBy?: AuditSensitiveOperationLogOrderByWithRelationInput | AuditSensitiveOperationLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditSensitiveOperationLogs.
     */
    cursor?: AuditSensitiveOperationLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditSensitiveOperationLogs 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` AuditSensitiveOperationLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditSensitiveOperationLogs.
     */
    distinct?: AuditSensitiveOperationLogScalarFieldEnum | AuditSensitiveOperationLogScalarFieldEnum[]
  }

  /**
   * AuditSensitiveOperationLog findMany
   */
  export type AuditSensitiveOperationLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * Filter, which AuditSensitiveOperationLogs to fetch.
     */
    where?: AuditSensitiveOperationLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditSensitiveOperationLogs to fetch.
     */
    orderBy?: AuditSensitiveOperationLogOrderByWithRelationInput | AuditSensitiveOperationLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AuditSensitiveOperationLogs.
     */
    cursor?: AuditSensitiveOperationLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditSensitiveOperationLogs 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` AuditSensitiveOperationLogs.
     */
    skip?: number
    distinct?: AuditSensitiveOperationLogScalarFieldEnum | AuditSensitiveOperationLogScalarFieldEnum[]
  }

  /**
   * AuditSensitiveOperationLog create
   */
  export type AuditSensitiveOperationLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * The data needed to create a AuditSensitiveOperationLog.
     */
    data: XOR<AuditSensitiveOperationLogCreateInput, AuditSensitiveOperationLogUncheckedCreateInput>
  }

  /**
   * AuditSensitiveOperationLog createMany
   */
  export type AuditSensitiveOperationLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AuditSensitiveOperationLogs.
     */
    data: AuditSensitiveOperationLogCreateManyInput | AuditSensitiveOperationLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AuditSensitiveOperationLog createManyAndReturn
   */
  export type AuditSensitiveOperationLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * The data used to create many AuditSensitiveOperationLogs.
     */
    data: AuditSensitiveOperationLogCreateManyInput | AuditSensitiveOperationLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AuditSensitiveOperationLog update
   */
  export type AuditSensitiveOperationLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * The data needed to update a AuditSensitiveOperationLog.
     */
    data: XOR<AuditSensitiveOperationLogUpdateInput, AuditSensitiveOperationLogUncheckedUpdateInput>
    /**
     * Choose, which AuditSensitiveOperationLog to update.
     */
    where: AuditSensitiveOperationLogWhereUniqueInput
  }

  /**
   * AuditSensitiveOperationLog updateMany
   */
  export type AuditSensitiveOperationLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AuditSensitiveOperationLogs.
     */
    data: XOR<AuditSensitiveOperationLogUpdateManyMutationInput, AuditSensitiveOperationLogUncheckedUpdateManyInput>
    /**
     * Filter which AuditSensitiveOperationLogs to update
     */
    where?: AuditSensitiveOperationLogWhereInput
    /**
     * Limit how many AuditSensitiveOperationLogs to update.
     */
    limit?: number
  }

  /**
   * AuditSensitiveOperationLog updateManyAndReturn
   */
  export type AuditSensitiveOperationLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * The data used to update AuditSensitiveOperationLogs.
     */
    data: XOR<AuditSensitiveOperationLogUpdateManyMutationInput, AuditSensitiveOperationLogUncheckedUpdateManyInput>
    /**
     * Filter which AuditSensitiveOperationLogs to update
     */
    where?: AuditSensitiveOperationLogWhereInput
    /**
     * Limit how many AuditSensitiveOperationLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AuditSensitiveOperationLog upsert
   */
  export type AuditSensitiveOperationLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * The filter to search for the AuditSensitiveOperationLog to update in case it exists.
     */
    where: AuditSensitiveOperationLogWhereUniqueInput
    /**
     * In case the AuditSensitiveOperationLog found by the `where` argument doesn't exist, create a new AuditSensitiveOperationLog with this data.
     */
    create: XOR<AuditSensitiveOperationLogCreateInput, AuditSensitiveOperationLogUncheckedCreateInput>
    /**
     * In case the AuditSensitiveOperationLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AuditSensitiveOperationLogUpdateInput, AuditSensitiveOperationLogUncheckedUpdateInput>
  }

  /**
   * AuditSensitiveOperationLog delete
   */
  export type AuditSensitiveOperationLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
    /**
     * Filter which AuditSensitiveOperationLog to delete.
     */
    where: AuditSensitiveOperationLogWhereUniqueInput
  }

  /**
   * AuditSensitiveOperationLog deleteMany
   */
  export type AuditSensitiveOperationLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditSensitiveOperationLogs to delete
     */
    where?: AuditSensitiveOperationLogWhereInput
    /**
     * Limit how many AuditSensitiveOperationLogs to delete.
     */
    limit?: number
  }

  /**
   * AuditSensitiveOperationLog without action
   */
  export type AuditSensitiveOperationLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditSensitiveOperationLog
     */
    select?: AuditSensitiveOperationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditSensitiveOperationLog
     */
    omit?: AuditSensitiveOperationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditSensitiveOperationLogInclude<ExtArgs> | null
  }


  /**
   * Model AuditIntegrityCheckLog
   */

  export type AggregateAuditIntegrityCheckLog = {
    _count: AuditIntegrityCheckLogCountAggregateOutputType | null
    _avg: AuditIntegrityCheckLogAvgAggregateOutputType | null
    _sum: AuditIntegrityCheckLogSumAggregateOutputType | null
    _min: AuditIntegrityCheckLogMinAggregateOutputType | null
    _max: AuditIntegrityCheckLogMaxAggregateOutputType | null
  }

  export type AuditIntegrityCheckLogAvgAggregateOutputType = {
    recordCount: number | null
    passCount: number | null
    failCount: number | null
  }

  export type AuditIntegrityCheckLogSumAggregateOutputType = {
    recordCount: number | null
    passCount: number | null
    failCount: number | null
  }

  export type AuditIntegrityCheckLogMinAggregateOutputType = {
    id: string | null
    region: string | null
    tenantId: string | null
    checkType: $Enums.IntegrityCheckType | null
    startTime: Date | null
    endTime: Date | null
    recordCount: number | null
    passCount: number | null
    failCount: number | null
    status: $Enums.CheckStatus | null
    errorMessage: string | null
    createdAt: Date | null
  }

  export type AuditIntegrityCheckLogMaxAggregateOutputType = {
    id: string | null
    region: string | null
    tenantId: string | null
    checkType: $Enums.IntegrityCheckType | null
    startTime: Date | null
    endTime: Date | null
    recordCount: number | null
    passCount: number | null
    failCount: number | null
    status: $Enums.CheckStatus | null
    errorMessage: string | null
    createdAt: Date | null
  }

  export type AuditIntegrityCheckLogCountAggregateOutputType = {
    id: number
    region: number
    tenantId: number
    checkType: number
    startTime: number
    endTime: number
    recordCount: number
    passCount: number
    failCount: number
    failures: number
    status: number
    errorMessage: number
    createdAt: number
    _all: number
  }


  export type AuditIntegrityCheckLogAvgAggregateInputType = {
    recordCount?: true
    passCount?: true
    failCount?: true
  }

  export type AuditIntegrityCheckLogSumAggregateInputType = {
    recordCount?: true
    passCount?: true
    failCount?: true
  }

  export type AuditIntegrityCheckLogMinAggregateInputType = {
    id?: true
    region?: true
    tenantId?: true
    checkType?: true
    startTime?: true
    endTime?: true
    recordCount?: true
    passCount?: true
    failCount?: true
    status?: true
    errorMessage?: true
    createdAt?: true
  }

  export type AuditIntegrityCheckLogMaxAggregateInputType = {
    id?: true
    region?: true
    tenantId?: true
    checkType?: true
    startTime?: true
    endTime?: true
    recordCount?: true
    passCount?: true
    failCount?: true
    status?: true
    errorMessage?: true
    createdAt?: true
  }

  export type AuditIntegrityCheckLogCountAggregateInputType = {
    id?: true
    region?: true
    tenantId?: true
    checkType?: true
    startTime?: true
    endTime?: true
    recordCount?: true
    passCount?: true
    failCount?: true
    failures?: true
    status?: true
    errorMessage?: true
    createdAt?: true
    _all?: true
  }

  export type AuditIntegrityCheckLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditIntegrityCheckLog to aggregate.
     */
    where?: AuditIntegrityCheckLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditIntegrityCheckLogs to fetch.
     */
    orderBy?: AuditIntegrityCheckLogOrderByWithRelationInput | AuditIntegrityCheckLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AuditIntegrityCheckLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditIntegrityCheckLogs 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` AuditIntegrityCheckLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AuditIntegrityCheckLogs
    **/
    _count?: true | AuditIntegrityCheckLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AuditIntegrityCheckLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AuditIntegrityCheckLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AuditIntegrityCheckLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AuditIntegrityCheckLogMaxAggregateInputType
  }

  export type GetAuditIntegrityCheckLogAggregateType<T extends AuditIntegrityCheckLogAggregateArgs> = {
        [P in keyof T & keyof AggregateAuditIntegrityCheckLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAuditIntegrityCheckLog[P]>
      : GetScalarType<T[P], AggregateAuditIntegrityCheckLog[P]>
  }




  export type AuditIntegrityCheckLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AuditIntegrityCheckLogWhereInput
    orderBy?: AuditIntegrityCheckLogOrderByWithAggregationInput | AuditIntegrityCheckLogOrderByWithAggregationInput[]
    by: AuditIntegrityCheckLogScalarFieldEnum[] | AuditIntegrityCheckLogScalarFieldEnum
    having?: AuditIntegrityCheckLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AuditIntegrityCheckLogCountAggregateInputType | true
    _avg?: AuditIntegrityCheckLogAvgAggregateInputType
    _sum?: AuditIntegrityCheckLogSumAggregateInputType
    _min?: AuditIntegrityCheckLogMinAggregateInputType
    _max?: AuditIntegrityCheckLogMaxAggregateInputType
  }

  export type AuditIntegrityCheckLogGroupByOutputType = {
    id: string
    region: string
    tenantId: string
    checkType: $Enums.IntegrityCheckType
    startTime: Date
    endTime: Date
    recordCount: number
    passCount: number
    failCount: number
    failures: JsonValue | null
    status: $Enums.CheckStatus
    errorMessage: string | null
    createdAt: Date
    _count: AuditIntegrityCheckLogCountAggregateOutputType | null
    _avg: AuditIntegrityCheckLogAvgAggregateOutputType | null
    _sum: AuditIntegrityCheckLogSumAggregateOutputType | null
    _min: AuditIntegrityCheckLogMinAggregateOutputType | null
    _max: AuditIntegrityCheckLogMaxAggregateOutputType | null
  }

  type GetAuditIntegrityCheckLogGroupByPayload<T extends AuditIntegrityCheckLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AuditIntegrityCheckLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AuditIntegrityCheckLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AuditIntegrityCheckLogGroupByOutputType[P]>
            : GetScalarType<T[P], AuditIntegrityCheckLogGroupByOutputType[P]>
        }
      >
    >


  export type AuditIntegrityCheckLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    region?: boolean
    tenantId?: boolean
    checkType?: boolean
    startTime?: boolean
    endTime?: boolean
    recordCount?: boolean
    passCount?: boolean
    failCount?: boolean
    failures?: boolean
    status?: boolean
    errorMessage?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["auditIntegrityCheckLog"]>

  export type AuditIntegrityCheckLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    region?: boolean
    tenantId?: boolean
    checkType?: boolean
    startTime?: boolean
    endTime?: boolean
    recordCount?: boolean
    passCount?: boolean
    failCount?: boolean
    failures?: boolean
    status?: boolean
    errorMessage?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["auditIntegrityCheckLog"]>

  export type AuditIntegrityCheckLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    region?: boolean
    tenantId?: boolean
    checkType?: boolean
    startTime?: boolean
    endTime?: boolean
    recordCount?: boolean
    passCount?: boolean
    failCount?: boolean
    failures?: boolean
    status?: boolean
    errorMessage?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["auditIntegrityCheckLog"]>

  export type AuditIntegrityCheckLogSelectScalar = {
    id?: boolean
    region?: boolean
    tenantId?: boolean
    checkType?: boolean
    startTime?: boolean
    endTime?: boolean
    recordCount?: boolean
    passCount?: boolean
    failCount?: boolean
    failures?: boolean
    status?: boolean
    errorMessage?: boolean
    createdAt?: boolean
  }

  export type AuditIntegrityCheckLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "region" | "tenantId" | "checkType" | "startTime" | "endTime" | "recordCount" | "passCount" | "failCount" | "failures" | "status" | "errorMessage" | "createdAt", ExtArgs["result"]["auditIntegrityCheckLog"]>

  export type $AuditIntegrityCheckLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AuditIntegrityCheckLog"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      region: string
      tenantId: string
      checkType: $Enums.IntegrityCheckType
      startTime: Date
      endTime: Date
      recordCount: number
      passCount: number
      failCount: number
      failures: Prisma.JsonValue | null
      status: $Enums.CheckStatus
      errorMessage: string | null
      createdAt: Date
    }, ExtArgs["result"]["auditIntegrityCheckLog"]>
    composites: {}
  }

  type AuditIntegrityCheckLogGetPayload<S extends boolean | null | undefined | AuditIntegrityCheckLogDefaultArgs> = $Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload, S>

  type AuditIntegrityCheckLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AuditIntegrityCheckLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AuditIntegrityCheckLogCountAggregateInputType | true
    }

  export interface AuditIntegrityCheckLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AuditIntegrityCheckLog'], meta: { name: 'AuditIntegrityCheckLog' } }
    /**
     * Find zero or one AuditIntegrityCheckLog that matches the filter.
     * @param {AuditIntegrityCheckLogFindUniqueArgs} args - Arguments to find a AuditIntegrityCheckLog
     * @example
     * // Get one AuditIntegrityCheckLog
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AuditIntegrityCheckLogFindUniqueArgs>(args: SelectSubset<T, AuditIntegrityCheckLogFindUniqueArgs<ExtArgs>>): Prisma__AuditIntegrityCheckLogClient<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AuditIntegrityCheckLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AuditIntegrityCheckLogFindUniqueOrThrowArgs} args - Arguments to find a AuditIntegrityCheckLog
     * @example
     * // Get one AuditIntegrityCheckLog
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AuditIntegrityCheckLogFindUniqueOrThrowArgs>(args: SelectSubset<T, AuditIntegrityCheckLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AuditIntegrityCheckLogClient<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditIntegrityCheckLog 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 {AuditIntegrityCheckLogFindFirstArgs} args - Arguments to find a AuditIntegrityCheckLog
     * @example
     * // Get one AuditIntegrityCheckLog
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AuditIntegrityCheckLogFindFirstArgs>(args?: SelectSubset<T, AuditIntegrityCheckLogFindFirstArgs<ExtArgs>>): Prisma__AuditIntegrityCheckLogClient<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditIntegrityCheckLog 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 {AuditIntegrityCheckLogFindFirstOrThrowArgs} args - Arguments to find a AuditIntegrityCheckLog
     * @example
     * // Get one AuditIntegrityCheckLog
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AuditIntegrityCheckLogFindFirstOrThrowArgs>(args?: SelectSubset<T, AuditIntegrityCheckLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__AuditIntegrityCheckLogClient<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AuditIntegrityCheckLogs 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 {AuditIntegrityCheckLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AuditIntegrityCheckLogs
     * const auditIntegrityCheckLogs = await prisma.auditIntegrityCheckLog.findMany()
     * 
     * // Get first 10 AuditIntegrityCheckLogs
     * const auditIntegrityCheckLogs = await prisma.auditIntegrityCheckLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const auditIntegrityCheckLogWithIdOnly = await prisma.auditIntegrityCheckLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AuditIntegrityCheckLogFindManyArgs>(args?: SelectSubset<T, AuditIntegrityCheckLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AuditIntegrityCheckLog.
     * @param {AuditIntegrityCheckLogCreateArgs} args - Arguments to create a AuditIntegrityCheckLog.
     * @example
     * // Create one AuditIntegrityCheckLog
     * const AuditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.create({
     *   data: {
     *     // ... data to create a AuditIntegrityCheckLog
     *   }
     * })
     * 
     */
    create<T extends AuditIntegrityCheckLogCreateArgs>(args: SelectSubset<T, AuditIntegrityCheckLogCreateArgs<ExtArgs>>): Prisma__AuditIntegrityCheckLogClient<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AuditIntegrityCheckLogs.
     * @param {AuditIntegrityCheckLogCreateManyArgs} args - Arguments to create many AuditIntegrityCheckLogs.
     * @example
     * // Create many AuditIntegrityCheckLogs
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AuditIntegrityCheckLogCreateManyArgs>(args?: SelectSubset<T, AuditIntegrityCheckLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AuditIntegrityCheckLogs and returns the data saved in the database.
     * @param {AuditIntegrityCheckLogCreateManyAndReturnArgs} args - Arguments to create many AuditIntegrityCheckLogs.
     * @example
     * // Create many AuditIntegrityCheckLogs
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AuditIntegrityCheckLogs and only return the `id`
     * const auditIntegrityCheckLogWithIdOnly = await prisma.auditIntegrityCheckLog.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 AuditIntegrityCheckLogCreateManyAndReturnArgs>(args?: SelectSubset<T, AuditIntegrityCheckLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AuditIntegrityCheckLog.
     * @param {AuditIntegrityCheckLogDeleteArgs} args - Arguments to delete one AuditIntegrityCheckLog.
     * @example
     * // Delete one AuditIntegrityCheckLog
     * const AuditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.delete({
     *   where: {
     *     // ... filter to delete one AuditIntegrityCheckLog
     *   }
     * })
     * 
     */
    delete<T extends AuditIntegrityCheckLogDeleteArgs>(args: SelectSubset<T, AuditIntegrityCheckLogDeleteArgs<ExtArgs>>): Prisma__AuditIntegrityCheckLogClient<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AuditIntegrityCheckLog.
     * @param {AuditIntegrityCheckLogUpdateArgs} args - Arguments to update one AuditIntegrityCheckLog.
     * @example
     * // Update one AuditIntegrityCheckLog
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AuditIntegrityCheckLogUpdateArgs>(args: SelectSubset<T, AuditIntegrityCheckLogUpdateArgs<ExtArgs>>): Prisma__AuditIntegrityCheckLogClient<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AuditIntegrityCheckLogs.
     * @param {AuditIntegrityCheckLogDeleteManyArgs} args - Arguments to filter AuditIntegrityCheckLogs to delete.
     * @example
     * // Delete a few AuditIntegrityCheckLogs
     * const { count } = await prisma.auditIntegrityCheckLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AuditIntegrityCheckLogDeleteManyArgs>(args?: SelectSubset<T, AuditIntegrityCheckLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditIntegrityCheckLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditIntegrityCheckLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AuditIntegrityCheckLogs
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AuditIntegrityCheckLogUpdateManyArgs>(args: SelectSubset<T, AuditIntegrityCheckLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditIntegrityCheckLogs and returns the data updated in the database.
     * @param {AuditIntegrityCheckLogUpdateManyAndReturnArgs} args - Arguments to update many AuditIntegrityCheckLogs.
     * @example
     * // Update many AuditIntegrityCheckLogs
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AuditIntegrityCheckLogs and only return the `id`
     * const auditIntegrityCheckLogWithIdOnly = await prisma.auditIntegrityCheckLog.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 AuditIntegrityCheckLogUpdateManyAndReturnArgs>(args: SelectSubset<T, AuditIntegrityCheckLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AuditIntegrityCheckLog.
     * @param {AuditIntegrityCheckLogUpsertArgs} args - Arguments to update or create a AuditIntegrityCheckLog.
     * @example
     * // Update or create a AuditIntegrityCheckLog
     * const auditIntegrityCheckLog = await prisma.auditIntegrityCheckLog.upsert({
     *   create: {
     *     // ... data to create a AuditIntegrityCheckLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AuditIntegrityCheckLog we want to update
     *   }
     * })
     */
    upsert<T extends AuditIntegrityCheckLogUpsertArgs>(args: SelectSubset<T, AuditIntegrityCheckLogUpsertArgs<ExtArgs>>): Prisma__AuditIntegrityCheckLogClient<$Result.GetResult<Prisma.$AuditIntegrityCheckLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AuditIntegrityCheckLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditIntegrityCheckLogCountArgs} args - Arguments to filter AuditIntegrityCheckLogs to count.
     * @example
     * // Count the number of AuditIntegrityCheckLogs
     * const count = await prisma.auditIntegrityCheckLog.count({
     *   where: {
     *     // ... the filter for the AuditIntegrityCheckLogs we want to count
     *   }
     * })
    **/
    count<T extends AuditIntegrityCheckLogCountArgs>(
      args?: Subset<T, AuditIntegrityCheckLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AuditIntegrityCheckLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AuditIntegrityCheckLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditIntegrityCheckLogAggregateArgs} 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 AuditIntegrityCheckLogAggregateArgs>(args: Subset<T, AuditIntegrityCheckLogAggregateArgs>): Prisma.PrismaPromise<GetAuditIntegrityCheckLogAggregateType<T>>

    /**
     * Group by AuditIntegrityCheckLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditIntegrityCheckLogGroupByArgs} 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 AuditIntegrityCheckLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AuditIntegrityCheckLogGroupByArgs['orderBy'] }
        : { orderBy?: AuditIntegrityCheckLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AuditIntegrityCheckLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAuditIntegrityCheckLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AuditIntegrityCheckLog model
   */
  readonly fields: AuditIntegrityCheckLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AuditIntegrityCheckLog.
   * 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__AuditIntegrityCheckLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AuditIntegrityCheckLog model
   */
  interface AuditIntegrityCheckLogFieldRefs {
    readonly id: FieldRef<"AuditIntegrityCheckLog", 'String'>
    readonly region: FieldRef<"AuditIntegrityCheckLog", 'String'>
    readonly tenantId: FieldRef<"AuditIntegrityCheckLog", 'String'>
    readonly checkType: FieldRef<"AuditIntegrityCheckLog", 'IntegrityCheckType'>
    readonly startTime: FieldRef<"AuditIntegrityCheckLog", 'DateTime'>
    readonly endTime: FieldRef<"AuditIntegrityCheckLog", 'DateTime'>
    readonly recordCount: FieldRef<"AuditIntegrityCheckLog", 'Int'>
    readonly passCount: FieldRef<"AuditIntegrityCheckLog", 'Int'>
    readonly failCount: FieldRef<"AuditIntegrityCheckLog", 'Int'>
    readonly failures: FieldRef<"AuditIntegrityCheckLog", 'Json'>
    readonly status: FieldRef<"AuditIntegrityCheckLog", 'CheckStatus'>
    readonly errorMessage: FieldRef<"AuditIntegrityCheckLog", 'String'>
    readonly createdAt: FieldRef<"AuditIntegrityCheckLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AuditIntegrityCheckLog findUnique
   */
  export type AuditIntegrityCheckLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * Filter, which AuditIntegrityCheckLog to fetch.
     */
    where: AuditIntegrityCheckLogWhereUniqueInput
  }

  /**
   * AuditIntegrityCheckLog findUniqueOrThrow
   */
  export type AuditIntegrityCheckLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * Filter, which AuditIntegrityCheckLog to fetch.
     */
    where: AuditIntegrityCheckLogWhereUniqueInput
  }

  /**
   * AuditIntegrityCheckLog findFirst
   */
  export type AuditIntegrityCheckLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * Filter, which AuditIntegrityCheckLog to fetch.
     */
    where?: AuditIntegrityCheckLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditIntegrityCheckLogs to fetch.
     */
    orderBy?: AuditIntegrityCheckLogOrderByWithRelationInput | AuditIntegrityCheckLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditIntegrityCheckLogs.
     */
    cursor?: AuditIntegrityCheckLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditIntegrityCheckLogs 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` AuditIntegrityCheckLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditIntegrityCheckLogs.
     */
    distinct?: AuditIntegrityCheckLogScalarFieldEnum | AuditIntegrityCheckLogScalarFieldEnum[]
  }

  /**
   * AuditIntegrityCheckLog findFirstOrThrow
   */
  export type AuditIntegrityCheckLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * Filter, which AuditIntegrityCheckLog to fetch.
     */
    where?: AuditIntegrityCheckLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditIntegrityCheckLogs to fetch.
     */
    orderBy?: AuditIntegrityCheckLogOrderByWithRelationInput | AuditIntegrityCheckLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditIntegrityCheckLogs.
     */
    cursor?: AuditIntegrityCheckLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditIntegrityCheckLogs 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` AuditIntegrityCheckLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditIntegrityCheckLogs.
     */
    distinct?: AuditIntegrityCheckLogScalarFieldEnum | AuditIntegrityCheckLogScalarFieldEnum[]
  }

  /**
   * AuditIntegrityCheckLog findMany
   */
  export type AuditIntegrityCheckLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * Filter, which AuditIntegrityCheckLogs to fetch.
     */
    where?: AuditIntegrityCheckLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditIntegrityCheckLogs to fetch.
     */
    orderBy?: AuditIntegrityCheckLogOrderByWithRelationInput | AuditIntegrityCheckLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AuditIntegrityCheckLogs.
     */
    cursor?: AuditIntegrityCheckLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditIntegrityCheckLogs 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` AuditIntegrityCheckLogs.
     */
    skip?: number
    distinct?: AuditIntegrityCheckLogScalarFieldEnum | AuditIntegrityCheckLogScalarFieldEnum[]
  }

  /**
   * AuditIntegrityCheckLog create
   */
  export type AuditIntegrityCheckLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * The data needed to create a AuditIntegrityCheckLog.
     */
    data: XOR<AuditIntegrityCheckLogCreateInput, AuditIntegrityCheckLogUncheckedCreateInput>
  }

  /**
   * AuditIntegrityCheckLog createMany
   */
  export type AuditIntegrityCheckLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AuditIntegrityCheckLogs.
     */
    data: AuditIntegrityCheckLogCreateManyInput | AuditIntegrityCheckLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AuditIntegrityCheckLog createManyAndReturn
   */
  export type AuditIntegrityCheckLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * The data used to create many AuditIntegrityCheckLogs.
     */
    data: AuditIntegrityCheckLogCreateManyInput | AuditIntegrityCheckLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AuditIntegrityCheckLog update
   */
  export type AuditIntegrityCheckLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * The data needed to update a AuditIntegrityCheckLog.
     */
    data: XOR<AuditIntegrityCheckLogUpdateInput, AuditIntegrityCheckLogUncheckedUpdateInput>
    /**
     * Choose, which AuditIntegrityCheckLog to update.
     */
    where: AuditIntegrityCheckLogWhereUniqueInput
  }

  /**
   * AuditIntegrityCheckLog updateMany
   */
  export type AuditIntegrityCheckLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AuditIntegrityCheckLogs.
     */
    data: XOR<AuditIntegrityCheckLogUpdateManyMutationInput, AuditIntegrityCheckLogUncheckedUpdateManyInput>
    /**
     * Filter which AuditIntegrityCheckLogs to update
     */
    where?: AuditIntegrityCheckLogWhereInput
    /**
     * Limit how many AuditIntegrityCheckLogs to update.
     */
    limit?: number
  }

  /**
   * AuditIntegrityCheckLog updateManyAndReturn
   */
  export type AuditIntegrityCheckLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * The data used to update AuditIntegrityCheckLogs.
     */
    data: XOR<AuditIntegrityCheckLogUpdateManyMutationInput, AuditIntegrityCheckLogUncheckedUpdateManyInput>
    /**
     * Filter which AuditIntegrityCheckLogs to update
     */
    where?: AuditIntegrityCheckLogWhereInput
    /**
     * Limit how many AuditIntegrityCheckLogs to update.
     */
    limit?: number
  }

  /**
   * AuditIntegrityCheckLog upsert
   */
  export type AuditIntegrityCheckLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * The filter to search for the AuditIntegrityCheckLog to update in case it exists.
     */
    where: AuditIntegrityCheckLogWhereUniqueInput
    /**
     * In case the AuditIntegrityCheckLog found by the `where` argument doesn't exist, create a new AuditIntegrityCheckLog with this data.
     */
    create: XOR<AuditIntegrityCheckLogCreateInput, AuditIntegrityCheckLogUncheckedCreateInput>
    /**
     * In case the AuditIntegrityCheckLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AuditIntegrityCheckLogUpdateInput, AuditIntegrityCheckLogUncheckedUpdateInput>
  }

  /**
   * AuditIntegrityCheckLog delete
   */
  export type AuditIntegrityCheckLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
    /**
     * Filter which AuditIntegrityCheckLog to delete.
     */
    where: AuditIntegrityCheckLogWhereUniqueInput
  }

  /**
   * AuditIntegrityCheckLog deleteMany
   */
  export type AuditIntegrityCheckLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditIntegrityCheckLogs to delete
     */
    where?: AuditIntegrityCheckLogWhereInput
    /**
     * Limit how many AuditIntegrityCheckLogs to delete.
     */
    limit?: number
  }

  /**
   * AuditIntegrityCheckLog without action
   */
  export type AuditIntegrityCheckLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditIntegrityCheckLog
     */
    select?: AuditIntegrityCheckLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditIntegrityCheckLog
     */
    omit?: AuditIntegrityCheckLogOmit<ExtArgs> | null
  }


  /**
   * Model AutomationTask
   */

  export type AggregateAutomationTask = {
    _count: AutomationTaskCountAggregateOutputType | null
    _avg: AutomationTaskAvgAggregateOutputType | null
    _sum: AutomationTaskSumAggregateOutputType | null
    _min: AutomationTaskMinAggregateOutputType | null
    _max: AutomationTaskMaxAggregateOutputType | null
  }

  export type AutomationTaskAvgAggregateOutputType = {
    timeout: number | null
    retryCount: number | null
    totalRuns: number | null
    successRuns: number | null
    failedRuns: number | null
  }

  export type AutomationTaskSumAggregateOutputType = {
    timeout: number | null
    retryCount: number | null
    totalRuns: number | null
    successRuns: number | null
    failedRuns: number | null
  }

  export type AutomationTaskMinAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    type: $Enums.AutomationTaskType | null
    status: $Enums.AutomationTaskStatus | null
    scheduleType: string | null
    timeout: number | null
    retryCount: number | null
    lastRunAt: Date | null
    lastStatus: $Enums.AutomationExecutionStatus | null
    nextRunAt: Date | null
    totalRuns: number | null
    successRuns: number | null
    failedRuns: number | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AutomationTaskMaxAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    type: $Enums.AutomationTaskType | null
    status: $Enums.AutomationTaskStatus | null
    scheduleType: string | null
    timeout: number | null
    retryCount: number | null
    lastRunAt: Date | null
    lastStatus: $Enums.AutomationExecutionStatus | null
    nextRunAt: Date | null
    totalRuns: number | null
    successRuns: number | null
    failedRuns: number | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AutomationTaskCountAggregateOutputType = {
    id: number
    name: number
    code: number
    description: number
    type: number
    status: number
    scheduleType: number
    scheduleConfig: number
    config: number
    timeout: number
    retryCount: number
    lastRunAt: number
    lastStatus: number
    nextRunAt: number
    totalRuns: number
    successRuns: number
    failedRuns: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AutomationTaskAvgAggregateInputType = {
    timeout?: true
    retryCount?: true
    totalRuns?: true
    successRuns?: true
    failedRuns?: true
  }

  export type AutomationTaskSumAggregateInputType = {
    timeout?: true
    retryCount?: true
    totalRuns?: true
    successRuns?: true
    failedRuns?: true
  }

  export type AutomationTaskMinAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    type?: true
    status?: true
    scheduleType?: true
    timeout?: true
    retryCount?: true
    lastRunAt?: true
    lastStatus?: true
    nextRunAt?: true
    totalRuns?: true
    successRuns?: true
    failedRuns?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AutomationTaskMaxAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    type?: true
    status?: true
    scheduleType?: true
    timeout?: true
    retryCount?: true
    lastRunAt?: true
    lastStatus?: true
    nextRunAt?: true
    totalRuns?: true
    successRuns?: true
    failedRuns?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AutomationTaskCountAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    type?: true
    status?: true
    scheduleType?: true
    scheduleConfig?: true
    config?: true
    timeout?: true
    retryCount?: true
    lastRunAt?: true
    lastStatus?: true
    nextRunAt?: true
    totalRuns?: true
    successRuns?: true
    failedRuns?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AutomationTaskAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AutomationTask to aggregate.
     */
    where?: AutomationTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AutomationTasks to fetch.
     */
    orderBy?: AutomationTaskOrderByWithRelationInput | AutomationTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AutomationTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AutomationTasks 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` AutomationTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AutomationTasks
    **/
    _count?: true | AutomationTaskCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AutomationTaskAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AutomationTaskSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AutomationTaskMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AutomationTaskMaxAggregateInputType
  }

  export type GetAutomationTaskAggregateType<T extends AutomationTaskAggregateArgs> = {
        [P in keyof T & keyof AggregateAutomationTask]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAutomationTask[P]>
      : GetScalarType<T[P], AggregateAutomationTask[P]>
  }




  export type AutomationTaskGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AutomationTaskWhereInput
    orderBy?: AutomationTaskOrderByWithAggregationInput | AutomationTaskOrderByWithAggregationInput[]
    by: AutomationTaskScalarFieldEnum[] | AutomationTaskScalarFieldEnum
    having?: AutomationTaskScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AutomationTaskCountAggregateInputType | true
    _avg?: AutomationTaskAvgAggregateInputType
    _sum?: AutomationTaskSumAggregateInputType
    _min?: AutomationTaskMinAggregateInputType
    _max?: AutomationTaskMaxAggregateInputType
  }

  export type AutomationTaskGroupByOutputType = {
    id: string
    name: string
    code: string
    description: string | null
    type: $Enums.AutomationTaskType
    status: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig: JsonValue
    config: JsonValue
    timeout: number
    retryCount: number
    lastRunAt: Date | null
    lastStatus: $Enums.AutomationExecutionStatus | null
    nextRunAt: Date | null
    totalRuns: number
    successRuns: number
    failedRuns: number
    createdById: string | null
    createdAt: Date
    updatedAt: Date
    _count: AutomationTaskCountAggregateOutputType | null
    _avg: AutomationTaskAvgAggregateOutputType | null
    _sum: AutomationTaskSumAggregateOutputType | null
    _min: AutomationTaskMinAggregateOutputType | null
    _max: AutomationTaskMaxAggregateOutputType | null
  }

  type GetAutomationTaskGroupByPayload<T extends AutomationTaskGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AutomationTaskGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AutomationTaskGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AutomationTaskGroupByOutputType[P]>
            : GetScalarType<T[P], AutomationTaskGroupByOutputType[P]>
        }
      >
    >


  export type AutomationTaskSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    type?: boolean
    status?: boolean
    scheduleType?: boolean
    scheduleConfig?: boolean
    config?: boolean
    timeout?: boolean
    retryCount?: boolean
    lastRunAt?: boolean
    lastStatus?: boolean
    nextRunAt?: boolean
    totalRuns?: boolean
    successRuns?: boolean
    failedRuns?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    executions?: boolean | AutomationTask$executionsArgs<ExtArgs>
    createdBy?: boolean | AutomationTask$createdByArgs<ExtArgs>
    _count?: boolean | AutomationTaskCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["automationTask"]>

  export type AutomationTaskSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    type?: boolean
    status?: boolean
    scheduleType?: boolean
    scheduleConfig?: boolean
    config?: boolean
    timeout?: boolean
    retryCount?: boolean
    lastRunAt?: boolean
    lastStatus?: boolean
    nextRunAt?: boolean
    totalRuns?: boolean
    successRuns?: boolean
    failedRuns?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean | AutomationTask$createdByArgs<ExtArgs>
  }, ExtArgs["result"]["automationTask"]>

  export type AutomationTaskSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    type?: boolean
    status?: boolean
    scheduleType?: boolean
    scheduleConfig?: boolean
    config?: boolean
    timeout?: boolean
    retryCount?: boolean
    lastRunAt?: boolean
    lastStatus?: boolean
    nextRunAt?: boolean
    totalRuns?: boolean
    successRuns?: boolean
    failedRuns?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean | AutomationTask$createdByArgs<ExtArgs>
  }, ExtArgs["result"]["automationTask"]>

  export type AutomationTaskSelectScalar = {
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    type?: boolean
    status?: boolean
    scheduleType?: boolean
    scheduleConfig?: boolean
    config?: boolean
    timeout?: boolean
    retryCount?: boolean
    lastRunAt?: boolean
    lastStatus?: boolean
    nextRunAt?: boolean
    totalRuns?: boolean
    successRuns?: boolean
    failedRuns?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AutomationTaskOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "code" | "description" | "type" | "status" | "scheduleType" | "scheduleConfig" | "config" | "timeout" | "retryCount" | "lastRunAt" | "lastStatus" | "nextRunAt" | "totalRuns" | "successRuns" | "failedRuns" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["automationTask"]>
  export type AutomationTaskInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    executions?: boolean | AutomationTask$executionsArgs<ExtArgs>
    createdBy?: boolean | AutomationTask$createdByArgs<ExtArgs>
    _count?: boolean | AutomationTaskCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AutomationTaskIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    createdBy?: boolean | AutomationTask$createdByArgs<ExtArgs>
  }
  export type AutomationTaskIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    createdBy?: boolean | AutomationTask$createdByArgs<ExtArgs>
  }

  export type $AutomationTaskPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AutomationTask"
    objects: {
      executions: Prisma.$AutomationExecutionPayload<ExtArgs>[]
      createdBy: Prisma.$UserPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      code: string
      description: string | null
      type: $Enums.AutomationTaskType
      status: $Enums.AutomationTaskStatus
      scheduleType: string
      scheduleConfig: Prisma.JsonValue
      config: Prisma.JsonValue
      timeout: number
      retryCount: number
      lastRunAt: Date | null
      lastStatus: $Enums.AutomationExecutionStatus | null
      nextRunAt: Date | null
      totalRuns: number
      successRuns: number
      failedRuns: number
      createdById: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["automationTask"]>
    composites: {}
  }

  type AutomationTaskGetPayload<S extends boolean | null | undefined | AutomationTaskDefaultArgs> = $Result.GetResult<Prisma.$AutomationTaskPayload, S>

  type AutomationTaskCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AutomationTaskFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AutomationTaskCountAggregateInputType | true
    }

  export interface AutomationTaskDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AutomationTask'], meta: { name: 'AutomationTask' } }
    /**
     * Find zero or one AutomationTask that matches the filter.
     * @param {AutomationTaskFindUniqueArgs} args - Arguments to find a AutomationTask
     * @example
     * // Get one AutomationTask
     * const automationTask = await prisma.automationTask.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AutomationTaskFindUniqueArgs>(args: SelectSubset<T, AutomationTaskFindUniqueArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AutomationTask that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AutomationTaskFindUniqueOrThrowArgs} args - Arguments to find a AutomationTask
     * @example
     * // Get one AutomationTask
     * const automationTask = await prisma.automationTask.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AutomationTaskFindUniqueOrThrowArgs>(args: SelectSubset<T, AutomationTaskFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AutomationTask 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 {AutomationTaskFindFirstArgs} args - Arguments to find a AutomationTask
     * @example
     * // Get one AutomationTask
     * const automationTask = await prisma.automationTask.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AutomationTaskFindFirstArgs>(args?: SelectSubset<T, AutomationTaskFindFirstArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AutomationTask 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 {AutomationTaskFindFirstOrThrowArgs} args - Arguments to find a AutomationTask
     * @example
     * // Get one AutomationTask
     * const automationTask = await prisma.automationTask.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AutomationTaskFindFirstOrThrowArgs>(args?: SelectSubset<T, AutomationTaskFindFirstOrThrowArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AutomationTasks 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 {AutomationTaskFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AutomationTasks
     * const automationTasks = await prisma.automationTask.findMany()
     * 
     * // Get first 10 AutomationTasks
     * const automationTasks = await prisma.automationTask.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const automationTaskWithIdOnly = await prisma.automationTask.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AutomationTaskFindManyArgs>(args?: SelectSubset<T, AutomationTaskFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AutomationTask.
     * @param {AutomationTaskCreateArgs} args - Arguments to create a AutomationTask.
     * @example
     * // Create one AutomationTask
     * const AutomationTask = await prisma.automationTask.create({
     *   data: {
     *     // ... data to create a AutomationTask
     *   }
     * })
     * 
     */
    create<T extends AutomationTaskCreateArgs>(args: SelectSubset<T, AutomationTaskCreateArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AutomationTasks.
     * @param {AutomationTaskCreateManyArgs} args - Arguments to create many AutomationTasks.
     * @example
     * // Create many AutomationTasks
     * const automationTask = await prisma.automationTask.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AutomationTaskCreateManyArgs>(args?: SelectSubset<T, AutomationTaskCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AutomationTasks and returns the data saved in the database.
     * @param {AutomationTaskCreateManyAndReturnArgs} args - Arguments to create many AutomationTasks.
     * @example
     * // Create many AutomationTasks
     * const automationTask = await prisma.automationTask.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AutomationTasks and only return the `id`
     * const automationTaskWithIdOnly = await prisma.automationTask.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 AutomationTaskCreateManyAndReturnArgs>(args?: SelectSubset<T, AutomationTaskCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AutomationTask.
     * @param {AutomationTaskDeleteArgs} args - Arguments to delete one AutomationTask.
     * @example
     * // Delete one AutomationTask
     * const AutomationTask = await prisma.automationTask.delete({
     *   where: {
     *     // ... filter to delete one AutomationTask
     *   }
     * })
     * 
     */
    delete<T extends AutomationTaskDeleteArgs>(args: SelectSubset<T, AutomationTaskDeleteArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AutomationTask.
     * @param {AutomationTaskUpdateArgs} args - Arguments to update one AutomationTask.
     * @example
     * // Update one AutomationTask
     * const automationTask = await prisma.automationTask.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AutomationTaskUpdateArgs>(args: SelectSubset<T, AutomationTaskUpdateArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AutomationTasks.
     * @param {AutomationTaskDeleteManyArgs} args - Arguments to filter AutomationTasks to delete.
     * @example
     * // Delete a few AutomationTasks
     * const { count } = await prisma.automationTask.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AutomationTaskDeleteManyArgs>(args?: SelectSubset<T, AutomationTaskDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AutomationTasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AutomationTaskUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AutomationTasks
     * const automationTask = await prisma.automationTask.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AutomationTaskUpdateManyArgs>(args: SelectSubset<T, AutomationTaskUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AutomationTasks and returns the data updated in the database.
     * @param {AutomationTaskUpdateManyAndReturnArgs} args - Arguments to update many AutomationTasks.
     * @example
     * // Update many AutomationTasks
     * const automationTask = await prisma.automationTask.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AutomationTasks and only return the `id`
     * const automationTaskWithIdOnly = await prisma.automationTask.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 AutomationTaskUpdateManyAndReturnArgs>(args: SelectSubset<T, AutomationTaskUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AutomationTask.
     * @param {AutomationTaskUpsertArgs} args - Arguments to update or create a AutomationTask.
     * @example
     * // Update or create a AutomationTask
     * const automationTask = await prisma.automationTask.upsert({
     *   create: {
     *     // ... data to create a AutomationTask
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AutomationTask we want to update
     *   }
     * })
     */
    upsert<T extends AutomationTaskUpsertArgs>(args: SelectSubset<T, AutomationTaskUpsertArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AutomationTasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AutomationTaskCountArgs} args - Arguments to filter AutomationTasks to count.
     * @example
     * // Count the number of AutomationTasks
     * const count = await prisma.automationTask.count({
     *   where: {
     *     // ... the filter for the AutomationTasks we want to count
     *   }
     * })
    **/
    count<T extends AutomationTaskCountArgs>(
      args?: Subset<T, AutomationTaskCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AutomationTaskCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AutomationTask.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AutomationTaskAggregateArgs} 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 AutomationTaskAggregateArgs>(args: Subset<T, AutomationTaskAggregateArgs>): Prisma.PrismaPromise<GetAutomationTaskAggregateType<T>>

    /**
     * Group by AutomationTask.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AutomationTaskGroupByArgs} 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 AutomationTaskGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AutomationTaskGroupByArgs['orderBy'] }
        : { orderBy?: AutomationTaskGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AutomationTaskGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAutomationTaskGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AutomationTask model
   */
  readonly fields: AutomationTaskFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AutomationTask.
   * 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__AutomationTaskClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    executions<T extends AutomationTask$executionsArgs<ExtArgs> = {}>(args?: Subset<T, AutomationTask$executionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdBy<T extends AutomationTask$createdByArgs<ExtArgs> = {}>(args?: Subset<T, AutomationTask$createdByArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AutomationTask model
   */
  interface AutomationTaskFieldRefs {
    readonly id: FieldRef<"AutomationTask", 'String'>
    readonly name: FieldRef<"AutomationTask", 'String'>
    readonly code: FieldRef<"AutomationTask", 'String'>
    readonly description: FieldRef<"AutomationTask", 'String'>
    readonly type: FieldRef<"AutomationTask", 'AutomationTaskType'>
    readonly status: FieldRef<"AutomationTask", 'AutomationTaskStatus'>
    readonly scheduleType: FieldRef<"AutomationTask", 'String'>
    readonly scheduleConfig: FieldRef<"AutomationTask", 'Json'>
    readonly config: FieldRef<"AutomationTask", 'Json'>
    readonly timeout: FieldRef<"AutomationTask", 'Int'>
    readonly retryCount: FieldRef<"AutomationTask", 'Int'>
    readonly lastRunAt: FieldRef<"AutomationTask", 'DateTime'>
    readonly lastStatus: FieldRef<"AutomationTask", 'AutomationExecutionStatus'>
    readonly nextRunAt: FieldRef<"AutomationTask", 'DateTime'>
    readonly totalRuns: FieldRef<"AutomationTask", 'Int'>
    readonly successRuns: FieldRef<"AutomationTask", 'Int'>
    readonly failedRuns: FieldRef<"AutomationTask", 'Int'>
    readonly createdById: FieldRef<"AutomationTask", 'String'>
    readonly createdAt: FieldRef<"AutomationTask", 'DateTime'>
    readonly updatedAt: FieldRef<"AutomationTask", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AutomationTask findUnique
   */
  export type AutomationTaskFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * Filter, which AutomationTask to fetch.
     */
    where: AutomationTaskWhereUniqueInput
  }

  /**
   * AutomationTask findUniqueOrThrow
   */
  export type AutomationTaskFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * Filter, which AutomationTask to fetch.
     */
    where: AutomationTaskWhereUniqueInput
  }

  /**
   * AutomationTask findFirst
   */
  export type AutomationTaskFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * Filter, which AutomationTask to fetch.
     */
    where?: AutomationTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AutomationTasks to fetch.
     */
    orderBy?: AutomationTaskOrderByWithRelationInput | AutomationTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AutomationTasks.
     */
    cursor?: AutomationTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AutomationTasks 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` AutomationTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AutomationTasks.
     */
    distinct?: AutomationTaskScalarFieldEnum | AutomationTaskScalarFieldEnum[]
  }

  /**
   * AutomationTask findFirstOrThrow
   */
  export type AutomationTaskFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * Filter, which AutomationTask to fetch.
     */
    where?: AutomationTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AutomationTasks to fetch.
     */
    orderBy?: AutomationTaskOrderByWithRelationInput | AutomationTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AutomationTasks.
     */
    cursor?: AutomationTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AutomationTasks 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` AutomationTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AutomationTasks.
     */
    distinct?: AutomationTaskScalarFieldEnum | AutomationTaskScalarFieldEnum[]
  }

  /**
   * AutomationTask findMany
   */
  export type AutomationTaskFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * Filter, which AutomationTasks to fetch.
     */
    where?: AutomationTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AutomationTasks to fetch.
     */
    orderBy?: AutomationTaskOrderByWithRelationInput | AutomationTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AutomationTasks.
     */
    cursor?: AutomationTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AutomationTasks 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` AutomationTasks.
     */
    skip?: number
    distinct?: AutomationTaskScalarFieldEnum | AutomationTaskScalarFieldEnum[]
  }

  /**
   * AutomationTask create
   */
  export type AutomationTaskCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * The data needed to create a AutomationTask.
     */
    data: XOR<AutomationTaskCreateInput, AutomationTaskUncheckedCreateInput>
  }

  /**
   * AutomationTask createMany
   */
  export type AutomationTaskCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AutomationTasks.
     */
    data: AutomationTaskCreateManyInput | AutomationTaskCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AutomationTask createManyAndReturn
   */
  export type AutomationTaskCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * The data used to create many AutomationTasks.
     */
    data: AutomationTaskCreateManyInput | AutomationTaskCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AutomationTask update
   */
  export type AutomationTaskUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * The data needed to update a AutomationTask.
     */
    data: XOR<AutomationTaskUpdateInput, AutomationTaskUncheckedUpdateInput>
    /**
     * Choose, which AutomationTask to update.
     */
    where: AutomationTaskWhereUniqueInput
  }

  /**
   * AutomationTask updateMany
   */
  export type AutomationTaskUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AutomationTasks.
     */
    data: XOR<AutomationTaskUpdateManyMutationInput, AutomationTaskUncheckedUpdateManyInput>
    /**
     * Filter which AutomationTasks to update
     */
    where?: AutomationTaskWhereInput
    /**
     * Limit how many AutomationTasks to update.
     */
    limit?: number
  }

  /**
   * AutomationTask updateManyAndReturn
   */
  export type AutomationTaskUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * The data used to update AutomationTasks.
     */
    data: XOR<AutomationTaskUpdateManyMutationInput, AutomationTaskUncheckedUpdateManyInput>
    /**
     * Filter which AutomationTasks to update
     */
    where?: AutomationTaskWhereInput
    /**
     * Limit how many AutomationTasks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AutomationTask upsert
   */
  export type AutomationTaskUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * The filter to search for the AutomationTask to update in case it exists.
     */
    where: AutomationTaskWhereUniqueInput
    /**
     * In case the AutomationTask found by the `where` argument doesn't exist, create a new AutomationTask with this data.
     */
    create: XOR<AutomationTaskCreateInput, AutomationTaskUncheckedCreateInput>
    /**
     * In case the AutomationTask was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AutomationTaskUpdateInput, AutomationTaskUncheckedUpdateInput>
  }

  /**
   * AutomationTask delete
   */
  export type AutomationTaskDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    /**
     * Filter which AutomationTask to delete.
     */
    where: AutomationTaskWhereUniqueInput
  }

  /**
   * AutomationTask deleteMany
   */
  export type AutomationTaskDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AutomationTasks to delete
     */
    where?: AutomationTaskWhereInput
    /**
     * Limit how many AutomationTasks to delete.
     */
    limit?: number
  }

  /**
   * AutomationTask.executions
   */
  export type AutomationTask$executionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    where?: AutomationExecutionWhereInput
    orderBy?: AutomationExecutionOrderByWithRelationInput | AutomationExecutionOrderByWithRelationInput[]
    cursor?: AutomationExecutionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AutomationExecutionScalarFieldEnum | AutomationExecutionScalarFieldEnum[]
  }

  /**
   * AutomationTask.createdBy
   */
  export type AutomationTask$createdByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * AutomationTask without action
   */
  export type AutomationTaskDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
  }


  /**
   * Model AutomationExecution
   */

  export type AggregateAutomationExecution = {
    _count: AutomationExecutionCountAggregateOutputType | null
    _avg: AutomationExecutionAvgAggregateOutputType | null
    _sum: AutomationExecutionSumAggregateOutputType | null
    _min: AutomationExecutionMinAggregateOutputType | null
    _max: AutomationExecutionMaxAggregateOutputType | null
  }

  export type AutomationExecutionAvgAggregateOutputType = {
    duration: number | null
  }

  export type AutomationExecutionSumAggregateOutputType = {
    duration: number | null
  }

  export type AutomationExecutionMinAggregateOutputType = {
    id: string | null
    taskId: string | null
    status: $Enums.AutomationExecutionStatus | null
    startedAt: Date | null
    completedAt: Date | null
    duration: number | null
    error: string | null
    logs: string | null
    triggerType: string | null
    triggeredBy: string | null
    createdAt: Date | null
  }

  export type AutomationExecutionMaxAggregateOutputType = {
    id: string | null
    taskId: string | null
    status: $Enums.AutomationExecutionStatus | null
    startedAt: Date | null
    completedAt: Date | null
    duration: number | null
    error: string | null
    logs: string | null
    triggerType: string | null
    triggeredBy: string | null
    createdAt: Date | null
  }

  export type AutomationExecutionCountAggregateOutputType = {
    id: number
    taskId: number
    status: number
    startedAt: number
    completedAt: number
    duration: number
    result: number
    error: number
    logs: number
    triggerType: number
    triggeredBy: number
    createdAt: number
    _all: number
  }


  export type AutomationExecutionAvgAggregateInputType = {
    duration?: true
  }

  export type AutomationExecutionSumAggregateInputType = {
    duration?: true
  }

  export type AutomationExecutionMinAggregateInputType = {
    id?: true
    taskId?: true
    status?: true
    startedAt?: true
    completedAt?: true
    duration?: true
    error?: true
    logs?: true
    triggerType?: true
    triggeredBy?: true
    createdAt?: true
  }

  export type AutomationExecutionMaxAggregateInputType = {
    id?: true
    taskId?: true
    status?: true
    startedAt?: true
    completedAt?: true
    duration?: true
    error?: true
    logs?: true
    triggerType?: true
    triggeredBy?: true
    createdAt?: true
  }

  export type AutomationExecutionCountAggregateInputType = {
    id?: true
    taskId?: true
    status?: true
    startedAt?: true
    completedAt?: true
    duration?: true
    result?: true
    error?: true
    logs?: true
    triggerType?: true
    triggeredBy?: true
    createdAt?: true
    _all?: true
  }

  export type AutomationExecutionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AutomationExecution to aggregate.
     */
    where?: AutomationExecutionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AutomationExecutions to fetch.
     */
    orderBy?: AutomationExecutionOrderByWithRelationInput | AutomationExecutionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AutomationExecutionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AutomationExecutions 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` AutomationExecutions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AutomationExecutions
    **/
    _count?: true | AutomationExecutionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AutomationExecutionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AutomationExecutionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AutomationExecutionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AutomationExecutionMaxAggregateInputType
  }

  export type GetAutomationExecutionAggregateType<T extends AutomationExecutionAggregateArgs> = {
        [P in keyof T & keyof AggregateAutomationExecution]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAutomationExecution[P]>
      : GetScalarType<T[P], AggregateAutomationExecution[P]>
  }




  export type AutomationExecutionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AutomationExecutionWhereInput
    orderBy?: AutomationExecutionOrderByWithAggregationInput | AutomationExecutionOrderByWithAggregationInput[]
    by: AutomationExecutionScalarFieldEnum[] | AutomationExecutionScalarFieldEnum
    having?: AutomationExecutionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AutomationExecutionCountAggregateInputType | true
    _avg?: AutomationExecutionAvgAggregateInputType
    _sum?: AutomationExecutionSumAggregateInputType
    _min?: AutomationExecutionMinAggregateInputType
    _max?: AutomationExecutionMaxAggregateInputType
  }

  export type AutomationExecutionGroupByOutputType = {
    id: string
    taskId: string
    status: $Enums.AutomationExecutionStatus
    startedAt: Date
    completedAt: Date | null
    duration: number | null
    result: JsonValue | null
    error: string | null
    logs: string | null
    triggerType: string
    triggeredBy: string | null
    createdAt: Date
    _count: AutomationExecutionCountAggregateOutputType | null
    _avg: AutomationExecutionAvgAggregateOutputType | null
    _sum: AutomationExecutionSumAggregateOutputType | null
    _min: AutomationExecutionMinAggregateOutputType | null
    _max: AutomationExecutionMaxAggregateOutputType | null
  }

  type GetAutomationExecutionGroupByPayload<T extends AutomationExecutionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AutomationExecutionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AutomationExecutionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AutomationExecutionGroupByOutputType[P]>
            : GetScalarType<T[P], AutomationExecutionGroupByOutputType[P]>
        }
      >
    >


  export type AutomationExecutionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    status?: boolean
    startedAt?: boolean
    completedAt?: boolean
    duration?: boolean
    result?: boolean
    error?: boolean
    logs?: boolean
    triggerType?: boolean
    triggeredBy?: boolean
    createdAt?: boolean
    task?: boolean | AutomationTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["automationExecution"]>

  export type AutomationExecutionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    status?: boolean
    startedAt?: boolean
    completedAt?: boolean
    duration?: boolean
    result?: boolean
    error?: boolean
    logs?: boolean
    triggerType?: boolean
    triggeredBy?: boolean
    createdAt?: boolean
    task?: boolean | AutomationTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["automationExecution"]>

  export type AutomationExecutionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    status?: boolean
    startedAt?: boolean
    completedAt?: boolean
    duration?: boolean
    result?: boolean
    error?: boolean
    logs?: boolean
    triggerType?: boolean
    triggeredBy?: boolean
    createdAt?: boolean
    task?: boolean | AutomationTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["automationExecution"]>

  export type AutomationExecutionSelectScalar = {
    id?: boolean
    taskId?: boolean
    status?: boolean
    startedAt?: boolean
    completedAt?: boolean
    duration?: boolean
    result?: boolean
    error?: boolean
    logs?: boolean
    triggerType?: boolean
    triggeredBy?: boolean
    createdAt?: boolean
  }

  export type AutomationExecutionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskId" | "status" | "startedAt" | "completedAt" | "duration" | "result" | "error" | "logs" | "triggerType" | "triggeredBy" | "createdAt", ExtArgs["result"]["automationExecution"]>
  export type AutomationExecutionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | AutomationTaskDefaultArgs<ExtArgs>
  }
  export type AutomationExecutionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | AutomationTaskDefaultArgs<ExtArgs>
  }
  export type AutomationExecutionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | AutomationTaskDefaultArgs<ExtArgs>
  }

  export type $AutomationExecutionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AutomationExecution"
    objects: {
      task: Prisma.$AutomationTaskPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskId: string
      status: $Enums.AutomationExecutionStatus
      startedAt: Date
      completedAt: Date | null
      duration: number | null
      result: Prisma.JsonValue | null
      error: string | null
      logs: string | null
      triggerType: string
      triggeredBy: string | null
      createdAt: Date
    }, ExtArgs["result"]["automationExecution"]>
    composites: {}
  }

  type AutomationExecutionGetPayload<S extends boolean | null | undefined | AutomationExecutionDefaultArgs> = $Result.GetResult<Prisma.$AutomationExecutionPayload, S>

  type AutomationExecutionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AutomationExecutionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AutomationExecutionCountAggregateInputType | true
    }

  export interface AutomationExecutionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AutomationExecution'], meta: { name: 'AutomationExecution' } }
    /**
     * Find zero or one AutomationExecution that matches the filter.
     * @param {AutomationExecutionFindUniqueArgs} args - Arguments to find a AutomationExecution
     * @example
     * // Get one AutomationExecution
     * const automationExecution = await prisma.automationExecution.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AutomationExecutionFindUniqueArgs>(args: SelectSubset<T, AutomationExecutionFindUniqueArgs<ExtArgs>>): Prisma__AutomationExecutionClient<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AutomationExecution that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AutomationExecutionFindUniqueOrThrowArgs} args - Arguments to find a AutomationExecution
     * @example
     * // Get one AutomationExecution
     * const automationExecution = await prisma.automationExecution.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AutomationExecutionFindUniqueOrThrowArgs>(args: SelectSubset<T, AutomationExecutionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AutomationExecutionClient<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AutomationExecution 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 {AutomationExecutionFindFirstArgs} args - Arguments to find a AutomationExecution
     * @example
     * // Get one AutomationExecution
     * const automationExecution = await prisma.automationExecution.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AutomationExecutionFindFirstArgs>(args?: SelectSubset<T, AutomationExecutionFindFirstArgs<ExtArgs>>): Prisma__AutomationExecutionClient<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AutomationExecution 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 {AutomationExecutionFindFirstOrThrowArgs} args - Arguments to find a AutomationExecution
     * @example
     * // Get one AutomationExecution
     * const automationExecution = await prisma.automationExecution.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AutomationExecutionFindFirstOrThrowArgs>(args?: SelectSubset<T, AutomationExecutionFindFirstOrThrowArgs<ExtArgs>>): Prisma__AutomationExecutionClient<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AutomationExecutions 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 {AutomationExecutionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AutomationExecutions
     * const automationExecutions = await prisma.automationExecution.findMany()
     * 
     * // Get first 10 AutomationExecutions
     * const automationExecutions = await prisma.automationExecution.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const automationExecutionWithIdOnly = await prisma.automationExecution.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AutomationExecutionFindManyArgs>(args?: SelectSubset<T, AutomationExecutionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AutomationExecution.
     * @param {AutomationExecutionCreateArgs} args - Arguments to create a AutomationExecution.
     * @example
     * // Create one AutomationExecution
     * const AutomationExecution = await prisma.automationExecution.create({
     *   data: {
     *     // ... data to create a AutomationExecution
     *   }
     * })
     * 
     */
    create<T extends AutomationExecutionCreateArgs>(args: SelectSubset<T, AutomationExecutionCreateArgs<ExtArgs>>): Prisma__AutomationExecutionClient<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AutomationExecutions.
     * @param {AutomationExecutionCreateManyArgs} args - Arguments to create many AutomationExecutions.
     * @example
     * // Create many AutomationExecutions
     * const automationExecution = await prisma.automationExecution.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AutomationExecutionCreateManyArgs>(args?: SelectSubset<T, AutomationExecutionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AutomationExecutions and returns the data saved in the database.
     * @param {AutomationExecutionCreateManyAndReturnArgs} args - Arguments to create many AutomationExecutions.
     * @example
     * // Create many AutomationExecutions
     * const automationExecution = await prisma.automationExecution.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AutomationExecutions and only return the `id`
     * const automationExecutionWithIdOnly = await prisma.automationExecution.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 AutomationExecutionCreateManyAndReturnArgs>(args?: SelectSubset<T, AutomationExecutionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AutomationExecution.
     * @param {AutomationExecutionDeleteArgs} args - Arguments to delete one AutomationExecution.
     * @example
     * // Delete one AutomationExecution
     * const AutomationExecution = await prisma.automationExecution.delete({
     *   where: {
     *     // ... filter to delete one AutomationExecution
     *   }
     * })
     * 
     */
    delete<T extends AutomationExecutionDeleteArgs>(args: SelectSubset<T, AutomationExecutionDeleteArgs<ExtArgs>>): Prisma__AutomationExecutionClient<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AutomationExecution.
     * @param {AutomationExecutionUpdateArgs} args - Arguments to update one AutomationExecution.
     * @example
     * // Update one AutomationExecution
     * const automationExecution = await prisma.automationExecution.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AutomationExecutionUpdateArgs>(args: SelectSubset<T, AutomationExecutionUpdateArgs<ExtArgs>>): Prisma__AutomationExecutionClient<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AutomationExecutions.
     * @param {AutomationExecutionDeleteManyArgs} args - Arguments to filter AutomationExecutions to delete.
     * @example
     * // Delete a few AutomationExecutions
     * const { count } = await prisma.automationExecution.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AutomationExecutionDeleteManyArgs>(args?: SelectSubset<T, AutomationExecutionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AutomationExecutions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AutomationExecutionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AutomationExecutions
     * const automationExecution = await prisma.automationExecution.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AutomationExecutionUpdateManyArgs>(args: SelectSubset<T, AutomationExecutionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AutomationExecutions and returns the data updated in the database.
     * @param {AutomationExecutionUpdateManyAndReturnArgs} args - Arguments to update many AutomationExecutions.
     * @example
     * // Update many AutomationExecutions
     * const automationExecution = await prisma.automationExecution.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AutomationExecutions and only return the `id`
     * const automationExecutionWithIdOnly = await prisma.automationExecution.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 AutomationExecutionUpdateManyAndReturnArgs>(args: SelectSubset<T, AutomationExecutionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AutomationExecution.
     * @param {AutomationExecutionUpsertArgs} args - Arguments to update or create a AutomationExecution.
     * @example
     * // Update or create a AutomationExecution
     * const automationExecution = await prisma.automationExecution.upsert({
     *   create: {
     *     // ... data to create a AutomationExecution
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AutomationExecution we want to update
     *   }
     * })
     */
    upsert<T extends AutomationExecutionUpsertArgs>(args: SelectSubset<T, AutomationExecutionUpsertArgs<ExtArgs>>): Prisma__AutomationExecutionClient<$Result.GetResult<Prisma.$AutomationExecutionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AutomationExecutions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AutomationExecutionCountArgs} args - Arguments to filter AutomationExecutions to count.
     * @example
     * // Count the number of AutomationExecutions
     * const count = await prisma.automationExecution.count({
     *   where: {
     *     // ... the filter for the AutomationExecutions we want to count
     *   }
     * })
    **/
    count<T extends AutomationExecutionCountArgs>(
      args?: Subset<T, AutomationExecutionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AutomationExecutionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AutomationExecution.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AutomationExecutionAggregateArgs} 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 AutomationExecutionAggregateArgs>(args: Subset<T, AutomationExecutionAggregateArgs>): Prisma.PrismaPromise<GetAutomationExecutionAggregateType<T>>

    /**
     * Group by AutomationExecution.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AutomationExecutionGroupByArgs} 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 AutomationExecutionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AutomationExecutionGroupByArgs['orderBy'] }
        : { orderBy?: AutomationExecutionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AutomationExecutionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAutomationExecutionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AutomationExecution model
   */
  readonly fields: AutomationExecutionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AutomationExecution.
   * 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__AutomationExecutionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends AutomationTaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AutomationTaskDefaultArgs<ExtArgs>>): Prisma__AutomationTaskClient<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AutomationExecution model
   */
  interface AutomationExecutionFieldRefs {
    readonly id: FieldRef<"AutomationExecution", 'String'>
    readonly taskId: FieldRef<"AutomationExecution", 'String'>
    readonly status: FieldRef<"AutomationExecution", 'AutomationExecutionStatus'>
    readonly startedAt: FieldRef<"AutomationExecution", 'DateTime'>
    readonly completedAt: FieldRef<"AutomationExecution", 'DateTime'>
    readonly duration: FieldRef<"AutomationExecution", 'Int'>
    readonly result: FieldRef<"AutomationExecution", 'Json'>
    readonly error: FieldRef<"AutomationExecution", 'String'>
    readonly logs: FieldRef<"AutomationExecution", 'String'>
    readonly triggerType: FieldRef<"AutomationExecution", 'String'>
    readonly triggeredBy: FieldRef<"AutomationExecution", 'String'>
    readonly createdAt: FieldRef<"AutomationExecution", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AutomationExecution findUnique
   */
  export type AutomationExecutionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * Filter, which AutomationExecution to fetch.
     */
    where: AutomationExecutionWhereUniqueInput
  }

  /**
   * AutomationExecution findUniqueOrThrow
   */
  export type AutomationExecutionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * Filter, which AutomationExecution to fetch.
     */
    where: AutomationExecutionWhereUniqueInput
  }

  /**
   * AutomationExecution findFirst
   */
  export type AutomationExecutionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * Filter, which AutomationExecution to fetch.
     */
    where?: AutomationExecutionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AutomationExecutions to fetch.
     */
    orderBy?: AutomationExecutionOrderByWithRelationInput | AutomationExecutionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AutomationExecutions.
     */
    cursor?: AutomationExecutionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AutomationExecutions 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` AutomationExecutions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AutomationExecutions.
     */
    distinct?: AutomationExecutionScalarFieldEnum | AutomationExecutionScalarFieldEnum[]
  }

  /**
   * AutomationExecution findFirstOrThrow
   */
  export type AutomationExecutionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * Filter, which AutomationExecution to fetch.
     */
    where?: AutomationExecutionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AutomationExecutions to fetch.
     */
    orderBy?: AutomationExecutionOrderByWithRelationInput | AutomationExecutionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AutomationExecutions.
     */
    cursor?: AutomationExecutionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AutomationExecutions 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` AutomationExecutions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AutomationExecutions.
     */
    distinct?: AutomationExecutionScalarFieldEnum | AutomationExecutionScalarFieldEnum[]
  }

  /**
   * AutomationExecution findMany
   */
  export type AutomationExecutionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * Filter, which AutomationExecutions to fetch.
     */
    where?: AutomationExecutionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AutomationExecutions to fetch.
     */
    orderBy?: AutomationExecutionOrderByWithRelationInput | AutomationExecutionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AutomationExecutions.
     */
    cursor?: AutomationExecutionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AutomationExecutions 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` AutomationExecutions.
     */
    skip?: number
    distinct?: AutomationExecutionScalarFieldEnum | AutomationExecutionScalarFieldEnum[]
  }

  /**
   * AutomationExecution create
   */
  export type AutomationExecutionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * The data needed to create a AutomationExecution.
     */
    data: XOR<AutomationExecutionCreateInput, AutomationExecutionUncheckedCreateInput>
  }

  /**
   * AutomationExecution createMany
   */
  export type AutomationExecutionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AutomationExecutions.
     */
    data: AutomationExecutionCreateManyInput | AutomationExecutionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AutomationExecution createManyAndReturn
   */
  export type AutomationExecutionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * The data used to create many AutomationExecutions.
     */
    data: AutomationExecutionCreateManyInput | AutomationExecutionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AutomationExecution update
   */
  export type AutomationExecutionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * The data needed to update a AutomationExecution.
     */
    data: XOR<AutomationExecutionUpdateInput, AutomationExecutionUncheckedUpdateInput>
    /**
     * Choose, which AutomationExecution to update.
     */
    where: AutomationExecutionWhereUniqueInput
  }

  /**
   * AutomationExecution updateMany
   */
  export type AutomationExecutionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AutomationExecutions.
     */
    data: XOR<AutomationExecutionUpdateManyMutationInput, AutomationExecutionUncheckedUpdateManyInput>
    /**
     * Filter which AutomationExecutions to update
     */
    where?: AutomationExecutionWhereInput
    /**
     * Limit how many AutomationExecutions to update.
     */
    limit?: number
  }

  /**
   * AutomationExecution updateManyAndReturn
   */
  export type AutomationExecutionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * The data used to update AutomationExecutions.
     */
    data: XOR<AutomationExecutionUpdateManyMutationInput, AutomationExecutionUncheckedUpdateManyInput>
    /**
     * Filter which AutomationExecutions to update
     */
    where?: AutomationExecutionWhereInput
    /**
     * Limit how many AutomationExecutions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AutomationExecution upsert
   */
  export type AutomationExecutionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * The filter to search for the AutomationExecution to update in case it exists.
     */
    where: AutomationExecutionWhereUniqueInput
    /**
     * In case the AutomationExecution found by the `where` argument doesn't exist, create a new AutomationExecution with this data.
     */
    create: XOR<AutomationExecutionCreateInput, AutomationExecutionUncheckedCreateInput>
    /**
     * In case the AutomationExecution was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AutomationExecutionUpdateInput, AutomationExecutionUncheckedUpdateInput>
  }

  /**
   * AutomationExecution delete
   */
  export type AutomationExecutionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
    /**
     * Filter which AutomationExecution to delete.
     */
    where: AutomationExecutionWhereUniqueInput
  }

  /**
   * AutomationExecution deleteMany
   */
  export type AutomationExecutionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AutomationExecutions to delete
     */
    where?: AutomationExecutionWhereInput
    /**
     * Limit how many AutomationExecutions to delete.
     */
    limit?: number
  }

  /**
   * AutomationExecution without action
   */
  export type AutomationExecutionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationExecution
     */
    select?: AutomationExecutionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationExecution
     */
    omit?: AutomationExecutionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationExecutionInclude<ExtArgs> | null
  }


  /**
   * Model DingtalkSyncConfig
   */

  export type AggregateDingtalkSyncConfig = {
    _count: DingtalkSyncConfigCountAggregateOutputType | null
    _avg: DingtalkSyncConfigAvgAggregateOutputType | null
    _sum: DingtalkSyncConfigSumAggregateOutputType | null
    _min: DingtalkSyncConfigMinAggregateOutputType | null
    _max: DingtalkSyncConfigMaxAggregateOutputType | null
  }

  export type DingtalkSyncConfigAvgAggregateOutputType = {
    lookbackMinutes: number | null
  }

  export type DingtalkSyncConfigSumAggregateOutputType = {
    lookbackMinutes: number | null
  }

  export type DingtalkSyncConfigMinAggregateOutputType = {
    id: string | null
    taskCode: string | null
    formUuid: string | null
    appType: string | null
    syncDirection: string | null
    lookbackMinutes: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkSyncConfigMaxAggregateOutputType = {
    id: string | null
    taskCode: string | null
    formUuid: string | null
    appType: string | null
    syncDirection: string | null
    lookbackMinutes: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkSyncConfigCountAggregateOutputType = {
    id: number
    taskCode: number
    formUuid: number
    appType: number
    fieldMapping: number
    syncDirection: number
    searchCondition: number
    lookbackMinutes: number
    metadata: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DingtalkSyncConfigAvgAggregateInputType = {
    lookbackMinutes?: true
  }

  export type DingtalkSyncConfigSumAggregateInputType = {
    lookbackMinutes?: true
  }

  export type DingtalkSyncConfigMinAggregateInputType = {
    id?: true
    taskCode?: true
    formUuid?: true
    appType?: true
    syncDirection?: true
    lookbackMinutes?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkSyncConfigMaxAggregateInputType = {
    id?: true
    taskCode?: true
    formUuid?: true
    appType?: true
    syncDirection?: true
    lookbackMinutes?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkSyncConfigCountAggregateInputType = {
    id?: true
    taskCode?: true
    formUuid?: true
    appType?: true
    fieldMapping?: true
    syncDirection?: true
    searchCondition?: true
    lookbackMinutes?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DingtalkSyncConfigAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkSyncConfig to aggregate.
     */
    where?: DingtalkSyncConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkSyncConfigs to fetch.
     */
    orderBy?: DingtalkSyncConfigOrderByWithRelationInput | DingtalkSyncConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DingtalkSyncConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkSyncConfigs 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` DingtalkSyncConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DingtalkSyncConfigs
    **/
    _count?: true | DingtalkSyncConfigCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DingtalkSyncConfigAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DingtalkSyncConfigSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DingtalkSyncConfigMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DingtalkSyncConfigMaxAggregateInputType
  }

  export type GetDingtalkSyncConfigAggregateType<T extends DingtalkSyncConfigAggregateArgs> = {
        [P in keyof T & keyof AggregateDingtalkSyncConfig]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDingtalkSyncConfig[P]>
      : GetScalarType<T[P], AggregateDingtalkSyncConfig[P]>
  }




  export type DingtalkSyncConfigGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DingtalkSyncConfigWhereInput
    orderBy?: DingtalkSyncConfigOrderByWithAggregationInput | DingtalkSyncConfigOrderByWithAggregationInput[]
    by: DingtalkSyncConfigScalarFieldEnum[] | DingtalkSyncConfigScalarFieldEnum
    having?: DingtalkSyncConfigScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DingtalkSyncConfigCountAggregateInputType | true
    _avg?: DingtalkSyncConfigAvgAggregateInputType
    _sum?: DingtalkSyncConfigSumAggregateInputType
    _min?: DingtalkSyncConfigMinAggregateInputType
    _max?: DingtalkSyncConfigMaxAggregateInputType
  }

  export type DingtalkSyncConfigGroupByOutputType = {
    id: string
    taskCode: string
    formUuid: string | null
    appType: string | null
    fieldMapping: JsonValue
    syncDirection: string
    searchCondition: JsonValue | null
    lookbackMinutes: number
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    _count: DingtalkSyncConfigCountAggregateOutputType | null
    _avg: DingtalkSyncConfigAvgAggregateOutputType | null
    _sum: DingtalkSyncConfigSumAggregateOutputType | null
    _min: DingtalkSyncConfigMinAggregateOutputType | null
    _max: DingtalkSyncConfigMaxAggregateOutputType | null
  }

  type GetDingtalkSyncConfigGroupByPayload<T extends DingtalkSyncConfigGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DingtalkSyncConfigGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DingtalkSyncConfigGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DingtalkSyncConfigGroupByOutputType[P]>
            : GetScalarType<T[P], DingtalkSyncConfigGroupByOutputType[P]>
        }
      >
    >


  export type DingtalkSyncConfigSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskCode?: boolean
    formUuid?: boolean
    appType?: boolean
    fieldMapping?: boolean
    syncDirection?: boolean
    searchCondition?: boolean
    lookbackMinutes?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkSyncConfig"]>

  export type DingtalkSyncConfigSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskCode?: boolean
    formUuid?: boolean
    appType?: boolean
    fieldMapping?: boolean
    syncDirection?: boolean
    searchCondition?: boolean
    lookbackMinutes?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkSyncConfig"]>

  export type DingtalkSyncConfigSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskCode?: boolean
    formUuid?: boolean
    appType?: boolean
    fieldMapping?: boolean
    syncDirection?: boolean
    searchCondition?: boolean
    lookbackMinutes?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkSyncConfig"]>

  export type DingtalkSyncConfigSelectScalar = {
    id?: boolean
    taskCode?: boolean
    formUuid?: boolean
    appType?: boolean
    fieldMapping?: boolean
    syncDirection?: boolean
    searchCondition?: boolean
    lookbackMinutes?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DingtalkSyncConfigOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskCode" | "formUuid" | "appType" | "fieldMapping" | "syncDirection" | "searchCondition" | "lookbackMinutes" | "metadata" | "createdAt" | "updatedAt", ExtArgs["result"]["dingtalkSyncConfig"]>

  export type $DingtalkSyncConfigPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DingtalkSyncConfig"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskCode: string
      formUuid: string | null
      appType: string | null
      fieldMapping: Prisma.JsonValue
      syncDirection: string
      searchCondition: Prisma.JsonValue | null
      lookbackMinutes: number
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["dingtalkSyncConfig"]>
    composites: {}
  }

  type DingtalkSyncConfigGetPayload<S extends boolean | null | undefined | DingtalkSyncConfigDefaultArgs> = $Result.GetResult<Prisma.$DingtalkSyncConfigPayload, S>

  type DingtalkSyncConfigCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DingtalkSyncConfigFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DingtalkSyncConfigCountAggregateInputType | true
    }

  export interface DingtalkSyncConfigDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DingtalkSyncConfig'], meta: { name: 'DingtalkSyncConfig' } }
    /**
     * Find zero or one DingtalkSyncConfig that matches the filter.
     * @param {DingtalkSyncConfigFindUniqueArgs} args - Arguments to find a DingtalkSyncConfig
     * @example
     * // Get one DingtalkSyncConfig
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DingtalkSyncConfigFindUniqueArgs>(args: SelectSubset<T, DingtalkSyncConfigFindUniqueArgs<ExtArgs>>): Prisma__DingtalkSyncConfigClient<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DingtalkSyncConfig that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DingtalkSyncConfigFindUniqueOrThrowArgs} args - Arguments to find a DingtalkSyncConfig
     * @example
     * // Get one DingtalkSyncConfig
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DingtalkSyncConfigFindUniqueOrThrowArgs>(args: SelectSubset<T, DingtalkSyncConfigFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DingtalkSyncConfigClient<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkSyncConfig 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 {DingtalkSyncConfigFindFirstArgs} args - Arguments to find a DingtalkSyncConfig
     * @example
     * // Get one DingtalkSyncConfig
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DingtalkSyncConfigFindFirstArgs>(args?: SelectSubset<T, DingtalkSyncConfigFindFirstArgs<ExtArgs>>): Prisma__DingtalkSyncConfigClient<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkSyncConfig 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 {DingtalkSyncConfigFindFirstOrThrowArgs} args - Arguments to find a DingtalkSyncConfig
     * @example
     * // Get one DingtalkSyncConfig
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DingtalkSyncConfigFindFirstOrThrowArgs>(args?: SelectSubset<T, DingtalkSyncConfigFindFirstOrThrowArgs<ExtArgs>>): Prisma__DingtalkSyncConfigClient<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DingtalkSyncConfigs 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 {DingtalkSyncConfigFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DingtalkSyncConfigs
     * const dingtalkSyncConfigs = await prisma.dingtalkSyncConfig.findMany()
     * 
     * // Get first 10 DingtalkSyncConfigs
     * const dingtalkSyncConfigs = await prisma.dingtalkSyncConfig.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dingtalkSyncConfigWithIdOnly = await prisma.dingtalkSyncConfig.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DingtalkSyncConfigFindManyArgs>(args?: SelectSubset<T, DingtalkSyncConfigFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DingtalkSyncConfig.
     * @param {DingtalkSyncConfigCreateArgs} args - Arguments to create a DingtalkSyncConfig.
     * @example
     * // Create one DingtalkSyncConfig
     * const DingtalkSyncConfig = await prisma.dingtalkSyncConfig.create({
     *   data: {
     *     // ... data to create a DingtalkSyncConfig
     *   }
     * })
     * 
     */
    create<T extends DingtalkSyncConfigCreateArgs>(args: SelectSubset<T, DingtalkSyncConfigCreateArgs<ExtArgs>>): Prisma__DingtalkSyncConfigClient<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DingtalkSyncConfigs.
     * @param {DingtalkSyncConfigCreateManyArgs} args - Arguments to create many DingtalkSyncConfigs.
     * @example
     * // Create many DingtalkSyncConfigs
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DingtalkSyncConfigCreateManyArgs>(args?: SelectSubset<T, DingtalkSyncConfigCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DingtalkSyncConfigs and returns the data saved in the database.
     * @param {DingtalkSyncConfigCreateManyAndReturnArgs} args - Arguments to create many DingtalkSyncConfigs.
     * @example
     * // Create many DingtalkSyncConfigs
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DingtalkSyncConfigs and only return the `id`
     * const dingtalkSyncConfigWithIdOnly = await prisma.dingtalkSyncConfig.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 DingtalkSyncConfigCreateManyAndReturnArgs>(args?: SelectSubset<T, DingtalkSyncConfigCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DingtalkSyncConfig.
     * @param {DingtalkSyncConfigDeleteArgs} args - Arguments to delete one DingtalkSyncConfig.
     * @example
     * // Delete one DingtalkSyncConfig
     * const DingtalkSyncConfig = await prisma.dingtalkSyncConfig.delete({
     *   where: {
     *     // ... filter to delete one DingtalkSyncConfig
     *   }
     * })
     * 
     */
    delete<T extends DingtalkSyncConfigDeleteArgs>(args: SelectSubset<T, DingtalkSyncConfigDeleteArgs<ExtArgs>>): Prisma__DingtalkSyncConfigClient<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DingtalkSyncConfig.
     * @param {DingtalkSyncConfigUpdateArgs} args - Arguments to update one DingtalkSyncConfig.
     * @example
     * // Update one DingtalkSyncConfig
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DingtalkSyncConfigUpdateArgs>(args: SelectSubset<T, DingtalkSyncConfigUpdateArgs<ExtArgs>>): Prisma__DingtalkSyncConfigClient<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DingtalkSyncConfigs.
     * @param {DingtalkSyncConfigDeleteManyArgs} args - Arguments to filter DingtalkSyncConfigs to delete.
     * @example
     * // Delete a few DingtalkSyncConfigs
     * const { count } = await prisma.dingtalkSyncConfig.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DingtalkSyncConfigDeleteManyArgs>(args?: SelectSubset<T, DingtalkSyncConfigDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkSyncConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkSyncConfigUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DingtalkSyncConfigs
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DingtalkSyncConfigUpdateManyArgs>(args: SelectSubset<T, DingtalkSyncConfigUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkSyncConfigs and returns the data updated in the database.
     * @param {DingtalkSyncConfigUpdateManyAndReturnArgs} args - Arguments to update many DingtalkSyncConfigs.
     * @example
     * // Update many DingtalkSyncConfigs
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DingtalkSyncConfigs and only return the `id`
     * const dingtalkSyncConfigWithIdOnly = await prisma.dingtalkSyncConfig.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 DingtalkSyncConfigUpdateManyAndReturnArgs>(args: SelectSubset<T, DingtalkSyncConfigUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DingtalkSyncConfig.
     * @param {DingtalkSyncConfigUpsertArgs} args - Arguments to update or create a DingtalkSyncConfig.
     * @example
     * // Update or create a DingtalkSyncConfig
     * const dingtalkSyncConfig = await prisma.dingtalkSyncConfig.upsert({
     *   create: {
     *     // ... data to create a DingtalkSyncConfig
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DingtalkSyncConfig we want to update
     *   }
     * })
     */
    upsert<T extends DingtalkSyncConfigUpsertArgs>(args: SelectSubset<T, DingtalkSyncConfigUpsertArgs<ExtArgs>>): Prisma__DingtalkSyncConfigClient<$Result.GetResult<Prisma.$DingtalkSyncConfigPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DingtalkSyncConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkSyncConfigCountArgs} args - Arguments to filter DingtalkSyncConfigs to count.
     * @example
     * // Count the number of DingtalkSyncConfigs
     * const count = await prisma.dingtalkSyncConfig.count({
     *   where: {
     *     // ... the filter for the DingtalkSyncConfigs we want to count
     *   }
     * })
    **/
    count<T extends DingtalkSyncConfigCountArgs>(
      args?: Subset<T, DingtalkSyncConfigCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DingtalkSyncConfigCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DingtalkSyncConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkSyncConfigAggregateArgs} 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 DingtalkSyncConfigAggregateArgs>(args: Subset<T, DingtalkSyncConfigAggregateArgs>): Prisma.PrismaPromise<GetDingtalkSyncConfigAggregateType<T>>

    /**
     * Group by DingtalkSyncConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkSyncConfigGroupByArgs} 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 DingtalkSyncConfigGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DingtalkSyncConfigGroupByArgs['orderBy'] }
        : { orderBy?: DingtalkSyncConfigGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DingtalkSyncConfigGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDingtalkSyncConfigGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DingtalkSyncConfig model
   */
  readonly fields: DingtalkSyncConfigFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DingtalkSyncConfig.
   * 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__DingtalkSyncConfigClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DingtalkSyncConfig model
   */
  interface DingtalkSyncConfigFieldRefs {
    readonly id: FieldRef<"DingtalkSyncConfig", 'String'>
    readonly taskCode: FieldRef<"DingtalkSyncConfig", 'String'>
    readonly formUuid: FieldRef<"DingtalkSyncConfig", 'String'>
    readonly appType: FieldRef<"DingtalkSyncConfig", 'String'>
    readonly fieldMapping: FieldRef<"DingtalkSyncConfig", 'Json'>
    readonly syncDirection: FieldRef<"DingtalkSyncConfig", 'String'>
    readonly searchCondition: FieldRef<"DingtalkSyncConfig", 'Json'>
    readonly lookbackMinutes: FieldRef<"DingtalkSyncConfig", 'Int'>
    readonly metadata: FieldRef<"DingtalkSyncConfig", 'Json'>
    readonly createdAt: FieldRef<"DingtalkSyncConfig", 'DateTime'>
    readonly updatedAt: FieldRef<"DingtalkSyncConfig", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DingtalkSyncConfig findUnique
   */
  export type DingtalkSyncConfigFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkSyncConfig to fetch.
     */
    where: DingtalkSyncConfigWhereUniqueInput
  }

  /**
   * DingtalkSyncConfig findUniqueOrThrow
   */
  export type DingtalkSyncConfigFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkSyncConfig to fetch.
     */
    where: DingtalkSyncConfigWhereUniqueInput
  }

  /**
   * DingtalkSyncConfig findFirst
   */
  export type DingtalkSyncConfigFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkSyncConfig to fetch.
     */
    where?: DingtalkSyncConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkSyncConfigs to fetch.
     */
    orderBy?: DingtalkSyncConfigOrderByWithRelationInput | DingtalkSyncConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkSyncConfigs.
     */
    cursor?: DingtalkSyncConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkSyncConfigs 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` DingtalkSyncConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkSyncConfigs.
     */
    distinct?: DingtalkSyncConfigScalarFieldEnum | DingtalkSyncConfigScalarFieldEnum[]
  }

  /**
   * DingtalkSyncConfig findFirstOrThrow
   */
  export type DingtalkSyncConfigFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkSyncConfig to fetch.
     */
    where?: DingtalkSyncConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkSyncConfigs to fetch.
     */
    orderBy?: DingtalkSyncConfigOrderByWithRelationInput | DingtalkSyncConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkSyncConfigs.
     */
    cursor?: DingtalkSyncConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkSyncConfigs 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` DingtalkSyncConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkSyncConfigs.
     */
    distinct?: DingtalkSyncConfigScalarFieldEnum | DingtalkSyncConfigScalarFieldEnum[]
  }

  /**
   * DingtalkSyncConfig findMany
   */
  export type DingtalkSyncConfigFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkSyncConfigs to fetch.
     */
    where?: DingtalkSyncConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkSyncConfigs to fetch.
     */
    orderBy?: DingtalkSyncConfigOrderByWithRelationInput | DingtalkSyncConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DingtalkSyncConfigs.
     */
    cursor?: DingtalkSyncConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkSyncConfigs 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` DingtalkSyncConfigs.
     */
    skip?: number
    distinct?: DingtalkSyncConfigScalarFieldEnum | DingtalkSyncConfigScalarFieldEnum[]
  }

  /**
   * DingtalkSyncConfig create
   */
  export type DingtalkSyncConfigCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * The data needed to create a DingtalkSyncConfig.
     */
    data: XOR<DingtalkSyncConfigCreateInput, DingtalkSyncConfigUncheckedCreateInput>
  }

  /**
   * DingtalkSyncConfig createMany
   */
  export type DingtalkSyncConfigCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DingtalkSyncConfigs.
     */
    data: DingtalkSyncConfigCreateManyInput | DingtalkSyncConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkSyncConfig createManyAndReturn
   */
  export type DingtalkSyncConfigCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * The data used to create many DingtalkSyncConfigs.
     */
    data: DingtalkSyncConfigCreateManyInput | DingtalkSyncConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkSyncConfig update
   */
  export type DingtalkSyncConfigUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * The data needed to update a DingtalkSyncConfig.
     */
    data: XOR<DingtalkSyncConfigUpdateInput, DingtalkSyncConfigUncheckedUpdateInput>
    /**
     * Choose, which DingtalkSyncConfig to update.
     */
    where: DingtalkSyncConfigWhereUniqueInput
  }

  /**
   * DingtalkSyncConfig updateMany
   */
  export type DingtalkSyncConfigUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DingtalkSyncConfigs.
     */
    data: XOR<DingtalkSyncConfigUpdateManyMutationInput, DingtalkSyncConfigUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkSyncConfigs to update
     */
    where?: DingtalkSyncConfigWhereInput
    /**
     * Limit how many DingtalkSyncConfigs to update.
     */
    limit?: number
  }

  /**
   * DingtalkSyncConfig updateManyAndReturn
   */
  export type DingtalkSyncConfigUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * The data used to update DingtalkSyncConfigs.
     */
    data: XOR<DingtalkSyncConfigUpdateManyMutationInput, DingtalkSyncConfigUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkSyncConfigs to update
     */
    where?: DingtalkSyncConfigWhereInput
    /**
     * Limit how many DingtalkSyncConfigs to update.
     */
    limit?: number
  }

  /**
   * DingtalkSyncConfig upsert
   */
  export type DingtalkSyncConfigUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * The filter to search for the DingtalkSyncConfig to update in case it exists.
     */
    where: DingtalkSyncConfigWhereUniqueInput
    /**
     * In case the DingtalkSyncConfig found by the `where` argument doesn't exist, create a new DingtalkSyncConfig with this data.
     */
    create: XOR<DingtalkSyncConfigCreateInput, DingtalkSyncConfigUncheckedCreateInput>
    /**
     * In case the DingtalkSyncConfig was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DingtalkSyncConfigUpdateInput, DingtalkSyncConfigUncheckedUpdateInput>
  }

  /**
   * DingtalkSyncConfig delete
   */
  export type DingtalkSyncConfigDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
    /**
     * Filter which DingtalkSyncConfig to delete.
     */
    where: DingtalkSyncConfigWhereUniqueInput
  }

  /**
   * DingtalkSyncConfig deleteMany
   */
  export type DingtalkSyncConfigDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkSyncConfigs to delete
     */
    where?: DingtalkSyncConfigWhereInput
    /**
     * Limit how many DingtalkSyncConfigs to delete.
     */
    limit?: number
  }

  /**
   * DingtalkSyncConfig without action
   */
  export type DingtalkSyncConfigDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkSyncConfig
     */
    select?: DingtalkSyncConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkSyncConfig
     */
    omit?: DingtalkSyncConfigOmit<ExtArgs> | null
  }


  /**
   * Model DingtalkLeaveCode
   */

  export type AggregateDingtalkLeaveCode = {
    _count: DingtalkLeaveCodeCountAggregateOutputType | null
    _avg: DingtalkLeaveCodeAvgAggregateOutputType | null
    _sum: DingtalkLeaveCodeSumAggregateOutputType | null
    _min: DingtalkLeaveCodeMinAggregateOutputType | null
    _max: DingtalkLeaveCodeMaxAggregateOutputType | null
  }

  export type DingtalkLeaveCodeAvgAggregateOutputType = {
    year: number | null
  }

  export type DingtalkLeaveCodeSumAggregateOutputType = {
    year: number | null
  }

  export type DingtalkLeaveCodeMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    year: number | null
    category: string | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkLeaveCodeMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    year: number | null
    category: string | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkLeaveCodeCountAggregateOutputType = {
    id: number
    code: number
    name: number
    year: number
    category: number
    isActive: number
    metadata: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DingtalkLeaveCodeAvgAggregateInputType = {
    year?: true
  }

  export type DingtalkLeaveCodeSumAggregateInputType = {
    year?: true
  }

  export type DingtalkLeaveCodeMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    year?: true
    category?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkLeaveCodeMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    year?: true
    category?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkLeaveCodeCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    year?: true
    category?: true
    isActive?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DingtalkLeaveCodeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkLeaveCode to aggregate.
     */
    where?: DingtalkLeaveCodeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkLeaveCodes to fetch.
     */
    orderBy?: DingtalkLeaveCodeOrderByWithRelationInput | DingtalkLeaveCodeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DingtalkLeaveCodeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkLeaveCodes 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` DingtalkLeaveCodes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DingtalkLeaveCodes
    **/
    _count?: true | DingtalkLeaveCodeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DingtalkLeaveCodeAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DingtalkLeaveCodeSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DingtalkLeaveCodeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DingtalkLeaveCodeMaxAggregateInputType
  }

  export type GetDingtalkLeaveCodeAggregateType<T extends DingtalkLeaveCodeAggregateArgs> = {
        [P in keyof T & keyof AggregateDingtalkLeaveCode]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDingtalkLeaveCode[P]>
      : GetScalarType<T[P], AggregateDingtalkLeaveCode[P]>
  }




  export type DingtalkLeaveCodeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DingtalkLeaveCodeWhereInput
    orderBy?: DingtalkLeaveCodeOrderByWithAggregationInput | DingtalkLeaveCodeOrderByWithAggregationInput[]
    by: DingtalkLeaveCodeScalarFieldEnum[] | DingtalkLeaveCodeScalarFieldEnum
    having?: DingtalkLeaveCodeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DingtalkLeaveCodeCountAggregateInputType | true
    _avg?: DingtalkLeaveCodeAvgAggregateInputType
    _sum?: DingtalkLeaveCodeSumAggregateInputType
    _min?: DingtalkLeaveCodeMinAggregateInputType
    _max?: DingtalkLeaveCodeMaxAggregateInputType
  }

  export type DingtalkLeaveCodeGroupByOutputType = {
    id: string
    code: string
    name: string
    year: number | null
    category: string
    isActive: boolean
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    _count: DingtalkLeaveCodeCountAggregateOutputType | null
    _avg: DingtalkLeaveCodeAvgAggregateOutputType | null
    _sum: DingtalkLeaveCodeSumAggregateOutputType | null
    _min: DingtalkLeaveCodeMinAggregateOutputType | null
    _max: DingtalkLeaveCodeMaxAggregateOutputType | null
  }

  type GetDingtalkLeaveCodeGroupByPayload<T extends DingtalkLeaveCodeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DingtalkLeaveCodeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DingtalkLeaveCodeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DingtalkLeaveCodeGroupByOutputType[P]>
            : GetScalarType<T[P], DingtalkLeaveCodeGroupByOutputType[P]>
        }
      >
    >


  export type DingtalkLeaveCodeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    year?: boolean
    category?: boolean
    isActive?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkLeaveCode"]>

  export type DingtalkLeaveCodeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    year?: boolean
    category?: boolean
    isActive?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkLeaveCode"]>

  export type DingtalkLeaveCodeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    year?: boolean
    category?: boolean
    isActive?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkLeaveCode"]>

  export type DingtalkLeaveCodeSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    year?: boolean
    category?: boolean
    isActive?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DingtalkLeaveCodeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "year" | "category" | "isActive" | "metadata" | "createdAt" | "updatedAt", ExtArgs["result"]["dingtalkLeaveCode"]>

  export type $DingtalkLeaveCodePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DingtalkLeaveCode"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      year: number | null
      category: string
      isActive: boolean
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["dingtalkLeaveCode"]>
    composites: {}
  }

  type DingtalkLeaveCodeGetPayload<S extends boolean | null | undefined | DingtalkLeaveCodeDefaultArgs> = $Result.GetResult<Prisma.$DingtalkLeaveCodePayload, S>

  type DingtalkLeaveCodeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DingtalkLeaveCodeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DingtalkLeaveCodeCountAggregateInputType | true
    }

  export interface DingtalkLeaveCodeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DingtalkLeaveCode'], meta: { name: 'DingtalkLeaveCode' } }
    /**
     * Find zero or one DingtalkLeaveCode that matches the filter.
     * @param {DingtalkLeaveCodeFindUniqueArgs} args - Arguments to find a DingtalkLeaveCode
     * @example
     * // Get one DingtalkLeaveCode
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DingtalkLeaveCodeFindUniqueArgs>(args: SelectSubset<T, DingtalkLeaveCodeFindUniqueArgs<ExtArgs>>): Prisma__DingtalkLeaveCodeClient<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DingtalkLeaveCode that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DingtalkLeaveCodeFindUniqueOrThrowArgs} args - Arguments to find a DingtalkLeaveCode
     * @example
     * // Get one DingtalkLeaveCode
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DingtalkLeaveCodeFindUniqueOrThrowArgs>(args: SelectSubset<T, DingtalkLeaveCodeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DingtalkLeaveCodeClient<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkLeaveCode 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 {DingtalkLeaveCodeFindFirstArgs} args - Arguments to find a DingtalkLeaveCode
     * @example
     * // Get one DingtalkLeaveCode
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DingtalkLeaveCodeFindFirstArgs>(args?: SelectSubset<T, DingtalkLeaveCodeFindFirstArgs<ExtArgs>>): Prisma__DingtalkLeaveCodeClient<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkLeaveCode 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 {DingtalkLeaveCodeFindFirstOrThrowArgs} args - Arguments to find a DingtalkLeaveCode
     * @example
     * // Get one DingtalkLeaveCode
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DingtalkLeaveCodeFindFirstOrThrowArgs>(args?: SelectSubset<T, DingtalkLeaveCodeFindFirstOrThrowArgs<ExtArgs>>): Prisma__DingtalkLeaveCodeClient<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DingtalkLeaveCodes 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 {DingtalkLeaveCodeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DingtalkLeaveCodes
     * const dingtalkLeaveCodes = await prisma.dingtalkLeaveCode.findMany()
     * 
     * // Get first 10 DingtalkLeaveCodes
     * const dingtalkLeaveCodes = await prisma.dingtalkLeaveCode.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dingtalkLeaveCodeWithIdOnly = await prisma.dingtalkLeaveCode.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DingtalkLeaveCodeFindManyArgs>(args?: SelectSubset<T, DingtalkLeaveCodeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DingtalkLeaveCode.
     * @param {DingtalkLeaveCodeCreateArgs} args - Arguments to create a DingtalkLeaveCode.
     * @example
     * // Create one DingtalkLeaveCode
     * const DingtalkLeaveCode = await prisma.dingtalkLeaveCode.create({
     *   data: {
     *     // ... data to create a DingtalkLeaveCode
     *   }
     * })
     * 
     */
    create<T extends DingtalkLeaveCodeCreateArgs>(args: SelectSubset<T, DingtalkLeaveCodeCreateArgs<ExtArgs>>): Prisma__DingtalkLeaveCodeClient<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DingtalkLeaveCodes.
     * @param {DingtalkLeaveCodeCreateManyArgs} args - Arguments to create many DingtalkLeaveCodes.
     * @example
     * // Create many DingtalkLeaveCodes
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DingtalkLeaveCodeCreateManyArgs>(args?: SelectSubset<T, DingtalkLeaveCodeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DingtalkLeaveCodes and returns the data saved in the database.
     * @param {DingtalkLeaveCodeCreateManyAndReturnArgs} args - Arguments to create many DingtalkLeaveCodes.
     * @example
     * // Create many DingtalkLeaveCodes
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DingtalkLeaveCodes and only return the `id`
     * const dingtalkLeaveCodeWithIdOnly = await prisma.dingtalkLeaveCode.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 DingtalkLeaveCodeCreateManyAndReturnArgs>(args?: SelectSubset<T, DingtalkLeaveCodeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DingtalkLeaveCode.
     * @param {DingtalkLeaveCodeDeleteArgs} args - Arguments to delete one DingtalkLeaveCode.
     * @example
     * // Delete one DingtalkLeaveCode
     * const DingtalkLeaveCode = await prisma.dingtalkLeaveCode.delete({
     *   where: {
     *     // ... filter to delete one DingtalkLeaveCode
     *   }
     * })
     * 
     */
    delete<T extends DingtalkLeaveCodeDeleteArgs>(args: SelectSubset<T, DingtalkLeaveCodeDeleteArgs<ExtArgs>>): Prisma__DingtalkLeaveCodeClient<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DingtalkLeaveCode.
     * @param {DingtalkLeaveCodeUpdateArgs} args - Arguments to update one DingtalkLeaveCode.
     * @example
     * // Update one DingtalkLeaveCode
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DingtalkLeaveCodeUpdateArgs>(args: SelectSubset<T, DingtalkLeaveCodeUpdateArgs<ExtArgs>>): Prisma__DingtalkLeaveCodeClient<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DingtalkLeaveCodes.
     * @param {DingtalkLeaveCodeDeleteManyArgs} args - Arguments to filter DingtalkLeaveCodes to delete.
     * @example
     * // Delete a few DingtalkLeaveCodes
     * const { count } = await prisma.dingtalkLeaveCode.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DingtalkLeaveCodeDeleteManyArgs>(args?: SelectSubset<T, DingtalkLeaveCodeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkLeaveCodes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkLeaveCodeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DingtalkLeaveCodes
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DingtalkLeaveCodeUpdateManyArgs>(args: SelectSubset<T, DingtalkLeaveCodeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkLeaveCodes and returns the data updated in the database.
     * @param {DingtalkLeaveCodeUpdateManyAndReturnArgs} args - Arguments to update many DingtalkLeaveCodes.
     * @example
     * // Update many DingtalkLeaveCodes
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DingtalkLeaveCodes and only return the `id`
     * const dingtalkLeaveCodeWithIdOnly = await prisma.dingtalkLeaveCode.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 DingtalkLeaveCodeUpdateManyAndReturnArgs>(args: SelectSubset<T, DingtalkLeaveCodeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DingtalkLeaveCode.
     * @param {DingtalkLeaveCodeUpsertArgs} args - Arguments to update or create a DingtalkLeaveCode.
     * @example
     * // Update or create a DingtalkLeaveCode
     * const dingtalkLeaveCode = await prisma.dingtalkLeaveCode.upsert({
     *   create: {
     *     // ... data to create a DingtalkLeaveCode
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DingtalkLeaveCode we want to update
     *   }
     * })
     */
    upsert<T extends DingtalkLeaveCodeUpsertArgs>(args: SelectSubset<T, DingtalkLeaveCodeUpsertArgs<ExtArgs>>): Prisma__DingtalkLeaveCodeClient<$Result.GetResult<Prisma.$DingtalkLeaveCodePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DingtalkLeaveCodes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkLeaveCodeCountArgs} args - Arguments to filter DingtalkLeaveCodes to count.
     * @example
     * // Count the number of DingtalkLeaveCodes
     * const count = await prisma.dingtalkLeaveCode.count({
     *   where: {
     *     // ... the filter for the DingtalkLeaveCodes we want to count
     *   }
     * })
    **/
    count<T extends DingtalkLeaveCodeCountArgs>(
      args?: Subset<T, DingtalkLeaveCodeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DingtalkLeaveCodeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DingtalkLeaveCode.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkLeaveCodeAggregateArgs} 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 DingtalkLeaveCodeAggregateArgs>(args: Subset<T, DingtalkLeaveCodeAggregateArgs>): Prisma.PrismaPromise<GetDingtalkLeaveCodeAggregateType<T>>

    /**
     * Group by DingtalkLeaveCode.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkLeaveCodeGroupByArgs} 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 DingtalkLeaveCodeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DingtalkLeaveCodeGroupByArgs['orderBy'] }
        : { orderBy?: DingtalkLeaveCodeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DingtalkLeaveCodeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDingtalkLeaveCodeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DingtalkLeaveCode model
   */
  readonly fields: DingtalkLeaveCodeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DingtalkLeaveCode.
   * 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__DingtalkLeaveCodeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DingtalkLeaveCode model
   */
  interface DingtalkLeaveCodeFieldRefs {
    readonly id: FieldRef<"DingtalkLeaveCode", 'String'>
    readonly code: FieldRef<"DingtalkLeaveCode", 'String'>
    readonly name: FieldRef<"DingtalkLeaveCode", 'String'>
    readonly year: FieldRef<"DingtalkLeaveCode", 'Int'>
    readonly category: FieldRef<"DingtalkLeaveCode", 'String'>
    readonly isActive: FieldRef<"DingtalkLeaveCode", 'Boolean'>
    readonly metadata: FieldRef<"DingtalkLeaveCode", 'Json'>
    readonly createdAt: FieldRef<"DingtalkLeaveCode", 'DateTime'>
    readonly updatedAt: FieldRef<"DingtalkLeaveCode", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DingtalkLeaveCode findUnique
   */
  export type DingtalkLeaveCodeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveCode to fetch.
     */
    where: DingtalkLeaveCodeWhereUniqueInput
  }

  /**
   * DingtalkLeaveCode findUniqueOrThrow
   */
  export type DingtalkLeaveCodeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveCode to fetch.
     */
    where: DingtalkLeaveCodeWhereUniqueInput
  }

  /**
   * DingtalkLeaveCode findFirst
   */
  export type DingtalkLeaveCodeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveCode to fetch.
     */
    where?: DingtalkLeaveCodeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkLeaveCodes to fetch.
     */
    orderBy?: DingtalkLeaveCodeOrderByWithRelationInput | DingtalkLeaveCodeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkLeaveCodes.
     */
    cursor?: DingtalkLeaveCodeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkLeaveCodes 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` DingtalkLeaveCodes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkLeaveCodes.
     */
    distinct?: DingtalkLeaveCodeScalarFieldEnum | DingtalkLeaveCodeScalarFieldEnum[]
  }

  /**
   * DingtalkLeaveCode findFirstOrThrow
   */
  export type DingtalkLeaveCodeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveCode to fetch.
     */
    where?: DingtalkLeaveCodeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkLeaveCodes to fetch.
     */
    orderBy?: DingtalkLeaveCodeOrderByWithRelationInput | DingtalkLeaveCodeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkLeaveCodes.
     */
    cursor?: DingtalkLeaveCodeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkLeaveCodes 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` DingtalkLeaveCodes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkLeaveCodes.
     */
    distinct?: DingtalkLeaveCodeScalarFieldEnum | DingtalkLeaveCodeScalarFieldEnum[]
  }

  /**
   * DingtalkLeaveCode findMany
   */
  export type DingtalkLeaveCodeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveCodes to fetch.
     */
    where?: DingtalkLeaveCodeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkLeaveCodes to fetch.
     */
    orderBy?: DingtalkLeaveCodeOrderByWithRelationInput | DingtalkLeaveCodeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DingtalkLeaveCodes.
     */
    cursor?: DingtalkLeaveCodeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkLeaveCodes 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` DingtalkLeaveCodes.
     */
    skip?: number
    distinct?: DingtalkLeaveCodeScalarFieldEnum | DingtalkLeaveCodeScalarFieldEnum[]
  }

  /**
   * DingtalkLeaveCode create
   */
  export type DingtalkLeaveCodeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * The data needed to create a DingtalkLeaveCode.
     */
    data: XOR<DingtalkLeaveCodeCreateInput, DingtalkLeaveCodeUncheckedCreateInput>
  }

  /**
   * DingtalkLeaveCode createMany
   */
  export type DingtalkLeaveCodeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DingtalkLeaveCodes.
     */
    data: DingtalkLeaveCodeCreateManyInput | DingtalkLeaveCodeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkLeaveCode createManyAndReturn
   */
  export type DingtalkLeaveCodeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * The data used to create many DingtalkLeaveCodes.
     */
    data: DingtalkLeaveCodeCreateManyInput | DingtalkLeaveCodeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkLeaveCode update
   */
  export type DingtalkLeaveCodeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * The data needed to update a DingtalkLeaveCode.
     */
    data: XOR<DingtalkLeaveCodeUpdateInput, DingtalkLeaveCodeUncheckedUpdateInput>
    /**
     * Choose, which DingtalkLeaveCode to update.
     */
    where: DingtalkLeaveCodeWhereUniqueInput
  }

  /**
   * DingtalkLeaveCode updateMany
   */
  export type DingtalkLeaveCodeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DingtalkLeaveCodes.
     */
    data: XOR<DingtalkLeaveCodeUpdateManyMutationInput, DingtalkLeaveCodeUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkLeaveCodes to update
     */
    where?: DingtalkLeaveCodeWhereInput
    /**
     * Limit how many DingtalkLeaveCodes to update.
     */
    limit?: number
  }

  /**
   * DingtalkLeaveCode updateManyAndReturn
   */
  export type DingtalkLeaveCodeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * The data used to update DingtalkLeaveCodes.
     */
    data: XOR<DingtalkLeaveCodeUpdateManyMutationInput, DingtalkLeaveCodeUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkLeaveCodes to update
     */
    where?: DingtalkLeaveCodeWhereInput
    /**
     * Limit how many DingtalkLeaveCodes to update.
     */
    limit?: number
  }

  /**
   * DingtalkLeaveCode upsert
   */
  export type DingtalkLeaveCodeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * The filter to search for the DingtalkLeaveCode to update in case it exists.
     */
    where: DingtalkLeaveCodeWhereUniqueInput
    /**
     * In case the DingtalkLeaveCode found by the `where` argument doesn't exist, create a new DingtalkLeaveCode with this data.
     */
    create: XOR<DingtalkLeaveCodeCreateInput, DingtalkLeaveCodeUncheckedCreateInput>
    /**
     * In case the DingtalkLeaveCode was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DingtalkLeaveCodeUpdateInput, DingtalkLeaveCodeUncheckedUpdateInput>
  }

  /**
   * DingtalkLeaveCode delete
   */
  export type DingtalkLeaveCodeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
    /**
     * Filter which DingtalkLeaveCode to delete.
     */
    where: DingtalkLeaveCodeWhereUniqueInput
  }

  /**
   * DingtalkLeaveCode deleteMany
   */
  export type DingtalkLeaveCodeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkLeaveCodes to delete
     */
    where?: DingtalkLeaveCodeWhereInput
    /**
     * Limit how many DingtalkLeaveCodes to delete.
     */
    limit?: number
  }

  /**
   * DingtalkLeaveCode without action
   */
  export type DingtalkLeaveCodeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveCode
     */
    select?: DingtalkLeaveCodeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveCode
     */
    omit?: DingtalkLeaveCodeOmit<ExtArgs> | null
  }


  /**
   * Model DingtalkLeaveQuotaSnapshot
   */

  export type AggregateDingtalkLeaveQuotaSnapshot = {
    _count: DingtalkLeaveQuotaSnapshotCountAggregateOutputType | null
    _avg: DingtalkLeaveQuotaSnapshotAvgAggregateOutputType | null
    _sum: DingtalkLeaveQuotaSnapshotSumAggregateOutputType | null
    _min: DingtalkLeaveQuotaSnapshotMinAggregateOutputType | null
    _max: DingtalkLeaveQuotaSnapshotMaxAggregateOutputType | null
  }

  export type DingtalkLeaveQuotaSnapshotAvgAggregateOutputType = {
    totalDays: Decimal | null
    usedDays: Decimal | null
    remainingDays: Decimal | null
  }

  export type DingtalkLeaveQuotaSnapshotSumAggregateOutputType = {
    totalDays: Decimal | null
    usedDays: Decimal | null
    remainingDays: Decimal | null
  }

  export type DingtalkLeaveQuotaSnapshotMinAggregateOutputType = {
    id: string | null
    userId: string | null
    employeeName: string | null
    employeeNumber: string | null
    leaveCode: string | null
    leaveType: string | null
    quotaCycle: string | null
    totalDays: Decimal | null
    usedDays: Decimal | null
    remainingDays: Decimal | null
    startDate: Date | null
    endDate: Date | null
    snapshotAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkLeaveQuotaSnapshotMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    employeeName: string | null
    employeeNumber: string | null
    leaveCode: string | null
    leaveType: string | null
    quotaCycle: string | null
    totalDays: Decimal | null
    usedDays: Decimal | null
    remainingDays: Decimal | null
    startDate: Date | null
    endDate: Date | null
    snapshotAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkLeaveQuotaSnapshotCountAggregateOutputType = {
    id: number
    userId: number
    employeeName: number
    employeeNumber: number
    leaveCode: number
    leaveType: number
    quotaCycle: number
    totalDays: number
    usedDays: number
    remainingDays: number
    startDate: number
    endDate: number
    usageRecords: number
    releaseRecords: number
    snapshotAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DingtalkLeaveQuotaSnapshotAvgAggregateInputType = {
    totalDays?: true
    usedDays?: true
    remainingDays?: true
  }

  export type DingtalkLeaveQuotaSnapshotSumAggregateInputType = {
    totalDays?: true
    usedDays?: true
    remainingDays?: true
  }

  export type DingtalkLeaveQuotaSnapshotMinAggregateInputType = {
    id?: true
    userId?: true
    employeeName?: true
    employeeNumber?: true
    leaveCode?: true
    leaveType?: true
    quotaCycle?: true
    totalDays?: true
    usedDays?: true
    remainingDays?: true
    startDate?: true
    endDate?: true
    snapshotAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkLeaveQuotaSnapshotMaxAggregateInputType = {
    id?: true
    userId?: true
    employeeName?: true
    employeeNumber?: true
    leaveCode?: true
    leaveType?: true
    quotaCycle?: true
    totalDays?: true
    usedDays?: true
    remainingDays?: true
    startDate?: true
    endDate?: true
    snapshotAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkLeaveQuotaSnapshotCountAggregateInputType = {
    id?: true
    userId?: true
    employeeName?: true
    employeeNumber?: true
    leaveCode?: true
    leaveType?: true
    quotaCycle?: true
    totalDays?: true
    usedDays?: true
    remainingDays?: true
    startDate?: true
    endDate?: true
    usageRecords?: true
    releaseRecords?: true
    snapshotAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DingtalkLeaveQuotaSnapshotAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkLeaveQuotaSnapshot to aggregate.
     */
    where?: DingtalkLeaveQuotaSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkLeaveQuotaSnapshots to fetch.
     */
    orderBy?: DingtalkLeaveQuotaSnapshotOrderByWithRelationInput | DingtalkLeaveQuotaSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DingtalkLeaveQuotaSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkLeaveQuotaSnapshots 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` DingtalkLeaveQuotaSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DingtalkLeaveQuotaSnapshots
    **/
    _count?: true | DingtalkLeaveQuotaSnapshotCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DingtalkLeaveQuotaSnapshotAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DingtalkLeaveQuotaSnapshotSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DingtalkLeaveQuotaSnapshotMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DingtalkLeaveQuotaSnapshotMaxAggregateInputType
  }

  export type GetDingtalkLeaveQuotaSnapshotAggregateType<T extends DingtalkLeaveQuotaSnapshotAggregateArgs> = {
        [P in keyof T & keyof AggregateDingtalkLeaveQuotaSnapshot]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDingtalkLeaveQuotaSnapshot[P]>
      : GetScalarType<T[P], AggregateDingtalkLeaveQuotaSnapshot[P]>
  }




  export type DingtalkLeaveQuotaSnapshotGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DingtalkLeaveQuotaSnapshotWhereInput
    orderBy?: DingtalkLeaveQuotaSnapshotOrderByWithAggregationInput | DingtalkLeaveQuotaSnapshotOrderByWithAggregationInput[]
    by: DingtalkLeaveQuotaSnapshotScalarFieldEnum[] | DingtalkLeaveQuotaSnapshotScalarFieldEnum
    having?: DingtalkLeaveQuotaSnapshotScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DingtalkLeaveQuotaSnapshotCountAggregateInputType | true
    _avg?: DingtalkLeaveQuotaSnapshotAvgAggregateInputType
    _sum?: DingtalkLeaveQuotaSnapshotSumAggregateInputType
    _min?: DingtalkLeaveQuotaSnapshotMinAggregateInputType
    _max?: DingtalkLeaveQuotaSnapshotMaxAggregateInputType
  }

  export type DingtalkLeaveQuotaSnapshotGroupByOutputType = {
    id: string
    userId: string
    employeeName: string
    employeeNumber: string
    leaveCode: string
    leaveType: string
    quotaCycle: string
    totalDays: Decimal
    usedDays: Decimal
    remainingDays: Decimal
    startDate: Date | null
    endDate: Date | null
    usageRecords: JsonValue | null
    releaseRecords: JsonValue | null
    snapshotAt: Date
    createdAt: Date
    updatedAt: Date
    _count: DingtalkLeaveQuotaSnapshotCountAggregateOutputType | null
    _avg: DingtalkLeaveQuotaSnapshotAvgAggregateOutputType | null
    _sum: DingtalkLeaveQuotaSnapshotSumAggregateOutputType | null
    _min: DingtalkLeaveQuotaSnapshotMinAggregateOutputType | null
    _max: DingtalkLeaveQuotaSnapshotMaxAggregateOutputType | null
  }

  type GetDingtalkLeaveQuotaSnapshotGroupByPayload<T extends DingtalkLeaveQuotaSnapshotGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DingtalkLeaveQuotaSnapshotGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DingtalkLeaveQuotaSnapshotGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DingtalkLeaveQuotaSnapshotGroupByOutputType[P]>
            : GetScalarType<T[P], DingtalkLeaveQuotaSnapshotGroupByOutputType[P]>
        }
      >
    >


  export type DingtalkLeaveQuotaSnapshotSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeName?: boolean
    employeeNumber?: boolean
    leaveCode?: boolean
    leaveType?: boolean
    quotaCycle?: boolean
    totalDays?: boolean
    usedDays?: boolean
    remainingDays?: boolean
    startDate?: boolean
    endDate?: boolean
    usageRecords?: boolean
    releaseRecords?: boolean
    snapshotAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkLeaveQuotaSnapshot"]>

  export type DingtalkLeaveQuotaSnapshotSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeName?: boolean
    employeeNumber?: boolean
    leaveCode?: boolean
    leaveType?: boolean
    quotaCycle?: boolean
    totalDays?: boolean
    usedDays?: boolean
    remainingDays?: boolean
    startDate?: boolean
    endDate?: boolean
    usageRecords?: boolean
    releaseRecords?: boolean
    snapshotAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkLeaveQuotaSnapshot"]>

  export type DingtalkLeaveQuotaSnapshotSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeName?: boolean
    employeeNumber?: boolean
    leaveCode?: boolean
    leaveType?: boolean
    quotaCycle?: boolean
    totalDays?: boolean
    usedDays?: boolean
    remainingDays?: boolean
    startDate?: boolean
    endDate?: boolean
    usageRecords?: boolean
    releaseRecords?: boolean
    snapshotAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkLeaveQuotaSnapshot"]>

  export type DingtalkLeaveQuotaSnapshotSelectScalar = {
    id?: boolean
    userId?: boolean
    employeeName?: boolean
    employeeNumber?: boolean
    leaveCode?: boolean
    leaveType?: boolean
    quotaCycle?: boolean
    totalDays?: boolean
    usedDays?: boolean
    remainingDays?: boolean
    startDate?: boolean
    endDate?: boolean
    usageRecords?: boolean
    releaseRecords?: boolean
    snapshotAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DingtalkLeaveQuotaSnapshotOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "employeeName" | "employeeNumber" | "leaveCode" | "leaveType" | "quotaCycle" | "totalDays" | "usedDays" | "remainingDays" | "startDate" | "endDate" | "usageRecords" | "releaseRecords" | "snapshotAt" | "createdAt" | "updatedAt", ExtArgs["result"]["dingtalkLeaveQuotaSnapshot"]>

  export type $DingtalkLeaveQuotaSnapshotPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DingtalkLeaveQuotaSnapshot"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      employeeName: string
      employeeNumber: string
      leaveCode: string
      leaveType: string
      quotaCycle: string
      totalDays: Prisma.Decimal
      usedDays: Prisma.Decimal
      remainingDays: Prisma.Decimal
      startDate: Date | null
      endDate: Date | null
      usageRecords: Prisma.JsonValue | null
      releaseRecords: Prisma.JsonValue | null
      snapshotAt: Date
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["dingtalkLeaveQuotaSnapshot"]>
    composites: {}
  }

  type DingtalkLeaveQuotaSnapshotGetPayload<S extends boolean | null | undefined | DingtalkLeaveQuotaSnapshotDefaultArgs> = $Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload, S>

  type DingtalkLeaveQuotaSnapshotCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DingtalkLeaveQuotaSnapshotFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DingtalkLeaveQuotaSnapshotCountAggregateInputType | true
    }

  export interface DingtalkLeaveQuotaSnapshotDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DingtalkLeaveQuotaSnapshot'], meta: { name: 'DingtalkLeaveQuotaSnapshot' } }
    /**
     * Find zero or one DingtalkLeaveQuotaSnapshot that matches the filter.
     * @param {DingtalkLeaveQuotaSnapshotFindUniqueArgs} args - Arguments to find a DingtalkLeaveQuotaSnapshot
     * @example
     * // Get one DingtalkLeaveQuotaSnapshot
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DingtalkLeaveQuotaSnapshotFindUniqueArgs>(args: SelectSubset<T, DingtalkLeaveQuotaSnapshotFindUniqueArgs<ExtArgs>>): Prisma__DingtalkLeaveQuotaSnapshotClient<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DingtalkLeaveQuotaSnapshot that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DingtalkLeaveQuotaSnapshotFindUniqueOrThrowArgs} args - Arguments to find a DingtalkLeaveQuotaSnapshot
     * @example
     * // Get one DingtalkLeaveQuotaSnapshot
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DingtalkLeaveQuotaSnapshotFindUniqueOrThrowArgs>(args: SelectSubset<T, DingtalkLeaveQuotaSnapshotFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DingtalkLeaveQuotaSnapshotClient<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkLeaveQuotaSnapshot 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 {DingtalkLeaveQuotaSnapshotFindFirstArgs} args - Arguments to find a DingtalkLeaveQuotaSnapshot
     * @example
     * // Get one DingtalkLeaveQuotaSnapshot
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DingtalkLeaveQuotaSnapshotFindFirstArgs>(args?: SelectSubset<T, DingtalkLeaveQuotaSnapshotFindFirstArgs<ExtArgs>>): Prisma__DingtalkLeaveQuotaSnapshotClient<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkLeaveQuotaSnapshot 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 {DingtalkLeaveQuotaSnapshotFindFirstOrThrowArgs} args - Arguments to find a DingtalkLeaveQuotaSnapshot
     * @example
     * // Get one DingtalkLeaveQuotaSnapshot
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DingtalkLeaveQuotaSnapshotFindFirstOrThrowArgs>(args?: SelectSubset<T, DingtalkLeaveQuotaSnapshotFindFirstOrThrowArgs<ExtArgs>>): Prisma__DingtalkLeaveQuotaSnapshotClient<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DingtalkLeaveQuotaSnapshots 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 {DingtalkLeaveQuotaSnapshotFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DingtalkLeaveQuotaSnapshots
     * const dingtalkLeaveQuotaSnapshots = await prisma.dingtalkLeaveQuotaSnapshot.findMany()
     * 
     * // Get first 10 DingtalkLeaveQuotaSnapshots
     * const dingtalkLeaveQuotaSnapshots = await prisma.dingtalkLeaveQuotaSnapshot.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dingtalkLeaveQuotaSnapshotWithIdOnly = await prisma.dingtalkLeaveQuotaSnapshot.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DingtalkLeaveQuotaSnapshotFindManyArgs>(args?: SelectSubset<T, DingtalkLeaveQuotaSnapshotFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DingtalkLeaveQuotaSnapshot.
     * @param {DingtalkLeaveQuotaSnapshotCreateArgs} args - Arguments to create a DingtalkLeaveQuotaSnapshot.
     * @example
     * // Create one DingtalkLeaveQuotaSnapshot
     * const DingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.create({
     *   data: {
     *     // ... data to create a DingtalkLeaveQuotaSnapshot
     *   }
     * })
     * 
     */
    create<T extends DingtalkLeaveQuotaSnapshotCreateArgs>(args: SelectSubset<T, DingtalkLeaveQuotaSnapshotCreateArgs<ExtArgs>>): Prisma__DingtalkLeaveQuotaSnapshotClient<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DingtalkLeaveQuotaSnapshots.
     * @param {DingtalkLeaveQuotaSnapshotCreateManyArgs} args - Arguments to create many DingtalkLeaveQuotaSnapshots.
     * @example
     * // Create many DingtalkLeaveQuotaSnapshots
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DingtalkLeaveQuotaSnapshotCreateManyArgs>(args?: SelectSubset<T, DingtalkLeaveQuotaSnapshotCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DingtalkLeaveQuotaSnapshots and returns the data saved in the database.
     * @param {DingtalkLeaveQuotaSnapshotCreateManyAndReturnArgs} args - Arguments to create many DingtalkLeaveQuotaSnapshots.
     * @example
     * // Create many DingtalkLeaveQuotaSnapshots
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DingtalkLeaveQuotaSnapshots and only return the `id`
     * const dingtalkLeaveQuotaSnapshotWithIdOnly = await prisma.dingtalkLeaveQuotaSnapshot.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 DingtalkLeaveQuotaSnapshotCreateManyAndReturnArgs>(args?: SelectSubset<T, DingtalkLeaveQuotaSnapshotCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DingtalkLeaveQuotaSnapshot.
     * @param {DingtalkLeaveQuotaSnapshotDeleteArgs} args - Arguments to delete one DingtalkLeaveQuotaSnapshot.
     * @example
     * // Delete one DingtalkLeaveQuotaSnapshot
     * const DingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.delete({
     *   where: {
     *     // ... filter to delete one DingtalkLeaveQuotaSnapshot
     *   }
     * })
     * 
     */
    delete<T extends DingtalkLeaveQuotaSnapshotDeleteArgs>(args: SelectSubset<T, DingtalkLeaveQuotaSnapshotDeleteArgs<ExtArgs>>): Prisma__DingtalkLeaveQuotaSnapshotClient<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DingtalkLeaveQuotaSnapshot.
     * @param {DingtalkLeaveQuotaSnapshotUpdateArgs} args - Arguments to update one DingtalkLeaveQuotaSnapshot.
     * @example
     * // Update one DingtalkLeaveQuotaSnapshot
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DingtalkLeaveQuotaSnapshotUpdateArgs>(args: SelectSubset<T, DingtalkLeaveQuotaSnapshotUpdateArgs<ExtArgs>>): Prisma__DingtalkLeaveQuotaSnapshotClient<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DingtalkLeaveQuotaSnapshots.
     * @param {DingtalkLeaveQuotaSnapshotDeleteManyArgs} args - Arguments to filter DingtalkLeaveQuotaSnapshots to delete.
     * @example
     * // Delete a few DingtalkLeaveQuotaSnapshots
     * const { count } = await prisma.dingtalkLeaveQuotaSnapshot.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DingtalkLeaveQuotaSnapshotDeleteManyArgs>(args?: SelectSubset<T, DingtalkLeaveQuotaSnapshotDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkLeaveQuotaSnapshots.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkLeaveQuotaSnapshotUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DingtalkLeaveQuotaSnapshots
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DingtalkLeaveQuotaSnapshotUpdateManyArgs>(args: SelectSubset<T, DingtalkLeaveQuotaSnapshotUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkLeaveQuotaSnapshots and returns the data updated in the database.
     * @param {DingtalkLeaveQuotaSnapshotUpdateManyAndReturnArgs} args - Arguments to update many DingtalkLeaveQuotaSnapshots.
     * @example
     * // Update many DingtalkLeaveQuotaSnapshots
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DingtalkLeaveQuotaSnapshots and only return the `id`
     * const dingtalkLeaveQuotaSnapshotWithIdOnly = await prisma.dingtalkLeaveQuotaSnapshot.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 DingtalkLeaveQuotaSnapshotUpdateManyAndReturnArgs>(args: SelectSubset<T, DingtalkLeaveQuotaSnapshotUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DingtalkLeaveQuotaSnapshot.
     * @param {DingtalkLeaveQuotaSnapshotUpsertArgs} args - Arguments to update or create a DingtalkLeaveQuotaSnapshot.
     * @example
     * // Update or create a DingtalkLeaveQuotaSnapshot
     * const dingtalkLeaveQuotaSnapshot = await prisma.dingtalkLeaveQuotaSnapshot.upsert({
     *   create: {
     *     // ... data to create a DingtalkLeaveQuotaSnapshot
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DingtalkLeaveQuotaSnapshot we want to update
     *   }
     * })
     */
    upsert<T extends DingtalkLeaveQuotaSnapshotUpsertArgs>(args: SelectSubset<T, DingtalkLeaveQuotaSnapshotUpsertArgs<ExtArgs>>): Prisma__DingtalkLeaveQuotaSnapshotClient<$Result.GetResult<Prisma.$DingtalkLeaveQuotaSnapshotPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DingtalkLeaveQuotaSnapshots.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkLeaveQuotaSnapshotCountArgs} args - Arguments to filter DingtalkLeaveQuotaSnapshots to count.
     * @example
     * // Count the number of DingtalkLeaveQuotaSnapshots
     * const count = await prisma.dingtalkLeaveQuotaSnapshot.count({
     *   where: {
     *     // ... the filter for the DingtalkLeaveQuotaSnapshots we want to count
     *   }
     * })
    **/
    count<T extends DingtalkLeaveQuotaSnapshotCountArgs>(
      args?: Subset<T, DingtalkLeaveQuotaSnapshotCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DingtalkLeaveQuotaSnapshotCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DingtalkLeaveQuotaSnapshot.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkLeaveQuotaSnapshotAggregateArgs} 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 DingtalkLeaveQuotaSnapshotAggregateArgs>(args: Subset<T, DingtalkLeaveQuotaSnapshotAggregateArgs>): Prisma.PrismaPromise<GetDingtalkLeaveQuotaSnapshotAggregateType<T>>

    /**
     * Group by DingtalkLeaveQuotaSnapshot.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkLeaveQuotaSnapshotGroupByArgs} 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 DingtalkLeaveQuotaSnapshotGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DingtalkLeaveQuotaSnapshotGroupByArgs['orderBy'] }
        : { orderBy?: DingtalkLeaveQuotaSnapshotGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DingtalkLeaveQuotaSnapshotGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDingtalkLeaveQuotaSnapshotGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DingtalkLeaveQuotaSnapshot model
   */
  readonly fields: DingtalkLeaveQuotaSnapshotFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DingtalkLeaveQuotaSnapshot.
   * 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__DingtalkLeaveQuotaSnapshotClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DingtalkLeaveQuotaSnapshot model
   */
  interface DingtalkLeaveQuotaSnapshotFieldRefs {
    readonly id: FieldRef<"DingtalkLeaveQuotaSnapshot", 'String'>
    readonly userId: FieldRef<"DingtalkLeaveQuotaSnapshot", 'String'>
    readonly employeeName: FieldRef<"DingtalkLeaveQuotaSnapshot", 'String'>
    readonly employeeNumber: FieldRef<"DingtalkLeaveQuotaSnapshot", 'String'>
    readonly leaveCode: FieldRef<"DingtalkLeaveQuotaSnapshot", 'String'>
    readonly leaveType: FieldRef<"DingtalkLeaveQuotaSnapshot", 'String'>
    readonly quotaCycle: FieldRef<"DingtalkLeaveQuotaSnapshot", 'String'>
    readonly totalDays: FieldRef<"DingtalkLeaveQuotaSnapshot", 'Decimal'>
    readonly usedDays: FieldRef<"DingtalkLeaveQuotaSnapshot", 'Decimal'>
    readonly remainingDays: FieldRef<"DingtalkLeaveQuotaSnapshot", 'Decimal'>
    readonly startDate: FieldRef<"DingtalkLeaveQuotaSnapshot", 'DateTime'>
    readonly endDate: FieldRef<"DingtalkLeaveQuotaSnapshot", 'DateTime'>
    readonly usageRecords: FieldRef<"DingtalkLeaveQuotaSnapshot", 'Json'>
    readonly releaseRecords: FieldRef<"DingtalkLeaveQuotaSnapshot", 'Json'>
    readonly snapshotAt: FieldRef<"DingtalkLeaveQuotaSnapshot", 'DateTime'>
    readonly createdAt: FieldRef<"DingtalkLeaveQuotaSnapshot", 'DateTime'>
    readonly updatedAt: FieldRef<"DingtalkLeaveQuotaSnapshot", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DingtalkLeaveQuotaSnapshot findUnique
   */
  export type DingtalkLeaveQuotaSnapshotFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveQuotaSnapshot to fetch.
     */
    where: DingtalkLeaveQuotaSnapshotWhereUniqueInput
  }

  /**
   * DingtalkLeaveQuotaSnapshot findUniqueOrThrow
   */
  export type DingtalkLeaveQuotaSnapshotFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveQuotaSnapshot to fetch.
     */
    where: DingtalkLeaveQuotaSnapshotWhereUniqueInput
  }

  /**
   * DingtalkLeaveQuotaSnapshot findFirst
   */
  export type DingtalkLeaveQuotaSnapshotFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveQuotaSnapshot to fetch.
     */
    where?: DingtalkLeaveQuotaSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkLeaveQuotaSnapshots to fetch.
     */
    orderBy?: DingtalkLeaveQuotaSnapshotOrderByWithRelationInput | DingtalkLeaveQuotaSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkLeaveQuotaSnapshots.
     */
    cursor?: DingtalkLeaveQuotaSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkLeaveQuotaSnapshots 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` DingtalkLeaveQuotaSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkLeaveQuotaSnapshots.
     */
    distinct?: DingtalkLeaveQuotaSnapshotScalarFieldEnum | DingtalkLeaveQuotaSnapshotScalarFieldEnum[]
  }

  /**
   * DingtalkLeaveQuotaSnapshot findFirstOrThrow
   */
  export type DingtalkLeaveQuotaSnapshotFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveQuotaSnapshot to fetch.
     */
    where?: DingtalkLeaveQuotaSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkLeaveQuotaSnapshots to fetch.
     */
    orderBy?: DingtalkLeaveQuotaSnapshotOrderByWithRelationInput | DingtalkLeaveQuotaSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkLeaveQuotaSnapshots.
     */
    cursor?: DingtalkLeaveQuotaSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkLeaveQuotaSnapshots 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` DingtalkLeaveQuotaSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkLeaveQuotaSnapshots.
     */
    distinct?: DingtalkLeaveQuotaSnapshotScalarFieldEnum | DingtalkLeaveQuotaSnapshotScalarFieldEnum[]
  }

  /**
   * DingtalkLeaveQuotaSnapshot findMany
   */
  export type DingtalkLeaveQuotaSnapshotFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkLeaveQuotaSnapshots to fetch.
     */
    where?: DingtalkLeaveQuotaSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkLeaveQuotaSnapshots to fetch.
     */
    orderBy?: DingtalkLeaveQuotaSnapshotOrderByWithRelationInput | DingtalkLeaveQuotaSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DingtalkLeaveQuotaSnapshots.
     */
    cursor?: DingtalkLeaveQuotaSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkLeaveQuotaSnapshots 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` DingtalkLeaveQuotaSnapshots.
     */
    skip?: number
    distinct?: DingtalkLeaveQuotaSnapshotScalarFieldEnum | DingtalkLeaveQuotaSnapshotScalarFieldEnum[]
  }

  /**
   * DingtalkLeaveQuotaSnapshot create
   */
  export type DingtalkLeaveQuotaSnapshotCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * The data needed to create a DingtalkLeaveQuotaSnapshot.
     */
    data: XOR<DingtalkLeaveQuotaSnapshotCreateInput, DingtalkLeaveQuotaSnapshotUncheckedCreateInput>
  }

  /**
   * DingtalkLeaveQuotaSnapshot createMany
   */
  export type DingtalkLeaveQuotaSnapshotCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DingtalkLeaveQuotaSnapshots.
     */
    data: DingtalkLeaveQuotaSnapshotCreateManyInput | DingtalkLeaveQuotaSnapshotCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkLeaveQuotaSnapshot createManyAndReturn
   */
  export type DingtalkLeaveQuotaSnapshotCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * The data used to create many DingtalkLeaveQuotaSnapshots.
     */
    data: DingtalkLeaveQuotaSnapshotCreateManyInput | DingtalkLeaveQuotaSnapshotCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkLeaveQuotaSnapshot update
   */
  export type DingtalkLeaveQuotaSnapshotUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * The data needed to update a DingtalkLeaveQuotaSnapshot.
     */
    data: XOR<DingtalkLeaveQuotaSnapshotUpdateInput, DingtalkLeaveQuotaSnapshotUncheckedUpdateInput>
    /**
     * Choose, which DingtalkLeaveQuotaSnapshot to update.
     */
    where: DingtalkLeaveQuotaSnapshotWhereUniqueInput
  }

  /**
   * DingtalkLeaveQuotaSnapshot updateMany
   */
  export type DingtalkLeaveQuotaSnapshotUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DingtalkLeaveQuotaSnapshots.
     */
    data: XOR<DingtalkLeaveQuotaSnapshotUpdateManyMutationInput, DingtalkLeaveQuotaSnapshotUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkLeaveQuotaSnapshots to update
     */
    where?: DingtalkLeaveQuotaSnapshotWhereInput
    /**
     * Limit how many DingtalkLeaveQuotaSnapshots to update.
     */
    limit?: number
  }

  /**
   * DingtalkLeaveQuotaSnapshot updateManyAndReturn
   */
  export type DingtalkLeaveQuotaSnapshotUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * The data used to update DingtalkLeaveQuotaSnapshots.
     */
    data: XOR<DingtalkLeaveQuotaSnapshotUpdateManyMutationInput, DingtalkLeaveQuotaSnapshotUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkLeaveQuotaSnapshots to update
     */
    where?: DingtalkLeaveQuotaSnapshotWhereInput
    /**
     * Limit how many DingtalkLeaveQuotaSnapshots to update.
     */
    limit?: number
  }

  /**
   * DingtalkLeaveQuotaSnapshot upsert
   */
  export type DingtalkLeaveQuotaSnapshotUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * The filter to search for the DingtalkLeaveQuotaSnapshot to update in case it exists.
     */
    where: DingtalkLeaveQuotaSnapshotWhereUniqueInput
    /**
     * In case the DingtalkLeaveQuotaSnapshot found by the `where` argument doesn't exist, create a new DingtalkLeaveQuotaSnapshot with this data.
     */
    create: XOR<DingtalkLeaveQuotaSnapshotCreateInput, DingtalkLeaveQuotaSnapshotUncheckedCreateInput>
    /**
     * In case the DingtalkLeaveQuotaSnapshot was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DingtalkLeaveQuotaSnapshotUpdateInput, DingtalkLeaveQuotaSnapshotUncheckedUpdateInput>
  }

  /**
   * DingtalkLeaveQuotaSnapshot delete
   */
  export type DingtalkLeaveQuotaSnapshotDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
    /**
     * Filter which DingtalkLeaveQuotaSnapshot to delete.
     */
    where: DingtalkLeaveQuotaSnapshotWhereUniqueInput
  }

  /**
   * DingtalkLeaveQuotaSnapshot deleteMany
   */
  export type DingtalkLeaveQuotaSnapshotDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkLeaveQuotaSnapshots to delete
     */
    where?: DingtalkLeaveQuotaSnapshotWhereInput
    /**
     * Limit how many DingtalkLeaveQuotaSnapshots to delete.
     */
    limit?: number
  }

  /**
   * DingtalkLeaveQuotaSnapshot without action
   */
  export type DingtalkLeaveQuotaSnapshotDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkLeaveQuotaSnapshot
     */
    select?: DingtalkLeaveQuotaSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkLeaveQuotaSnapshot
     */
    omit?: DingtalkLeaveQuotaSnapshotOmit<ExtArgs> | null
  }


  /**
   * Model SapPurchaseSyncRecord
   */

  export type AggregateSapPurchaseSyncRecord = {
    _count: SapPurchaseSyncRecordCountAggregateOutputType | null
    _avg: SapPurchaseSyncRecordAvgAggregateOutputType | null
    _sum: SapPurchaseSyncRecordSumAggregateOutputType | null
    _min: SapPurchaseSyncRecordMinAggregateOutputType | null
    _max: SapPurchaseSyncRecordMaxAggregateOutputType | null
  }

  export type SapPurchaseSyncRecordAvgAggregateOutputType = {
    budgetAmount: Decimal | null
  }

  export type SapPurchaseSyncRecordSumAggregateOutputType = {
    budgetAmount: Decimal | null
  }

  export type SapPurchaseSyncRecordMinAggregateOutputType = {
    id: string | null
    serialNumber: string | null
    formInstanceId: string | null
    applicantName: string | null
    budgetAmount: Decimal | null
    sapPrNumber: string | null
    sapStatus: string | null
    approverChain: string | null
    syncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SapPurchaseSyncRecordMaxAggregateOutputType = {
    id: string | null
    serialNumber: string | null
    formInstanceId: string | null
    applicantName: string | null
    budgetAmount: Decimal | null
    sapPrNumber: string | null
    sapStatus: string | null
    approverChain: string | null
    syncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SapPurchaseSyncRecordCountAggregateOutputType = {
    id: number
    serialNumber: number
    formInstanceId: number
    applicantName: number
    budgetAmount: number
    sapPrNumber: number
    sapStatus: number
    sapMessages: number
    sapRawResponse: number
    approverChain: number
    syncedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SapPurchaseSyncRecordAvgAggregateInputType = {
    budgetAmount?: true
  }

  export type SapPurchaseSyncRecordSumAggregateInputType = {
    budgetAmount?: true
  }

  export type SapPurchaseSyncRecordMinAggregateInputType = {
    id?: true
    serialNumber?: true
    formInstanceId?: true
    applicantName?: true
    budgetAmount?: true
    sapPrNumber?: true
    sapStatus?: true
    approverChain?: true
    syncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SapPurchaseSyncRecordMaxAggregateInputType = {
    id?: true
    serialNumber?: true
    formInstanceId?: true
    applicantName?: true
    budgetAmount?: true
    sapPrNumber?: true
    sapStatus?: true
    approverChain?: true
    syncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SapPurchaseSyncRecordCountAggregateInputType = {
    id?: true
    serialNumber?: true
    formInstanceId?: true
    applicantName?: true
    budgetAmount?: true
    sapPrNumber?: true
    sapStatus?: true
    sapMessages?: true
    sapRawResponse?: true
    approverChain?: true
    syncedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SapPurchaseSyncRecordAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SapPurchaseSyncRecord to aggregate.
     */
    where?: SapPurchaseSyncRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SapPurchaseSyncRecords to fetch.
     */
    orderBy?: SapPurchaseSyncRecordOrderByWithRelationInput | SapPurchaseSyncRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SapPurchaseSyncRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SapPurchaseSyncRecords 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` SapPurchaseSyncRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SapPurchaseSyncRecords
    **/
    _count?: true | SapPurchaseSyncRecordCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SapPurchaseSyncRecordAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SapPurchaseSyncRecordSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SapPurchaseSyncRecordMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SapPurchaseSyncRecordMaxAggregateInputType
  }

  export type GetSapPurchaseSyncRecordAggregateType<T extends SapPurchaseSyncRecordAggregateArgs> = {
        [P in keyof T & keyof AggregateSapPurchaseSyncRecord]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSapPurchaseSyncRecord[P]>
      : GetScalarType<T[P], AggregateSapPurchaseSyncRecord[P]>
  }




  export type SapPurchaseSyncRecordGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SapPurchaseSyncRecordWhereInput
    orderBy?: SapPurchaseSyncRecordOrderByWithAggregationInput | SapPurchaseSyncRecordOrderByWithAggregationInput[]
    by: SapPurchaseSyncRecordScalarFieldEnum[] | SapPurchaseSyncRecordScalarFieldEnum
    having?: SapPurchaseSyncRecordScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SapPurchaseSyncRecordCountAggregateInputType | true
    _avg?: SapPurchaseSyncRecordAvgAggregateInputType
    _sum?: SapPurchaseSyncRecordSumAggregateInputType
    _min?: SapPurchaseSyncRecordMinAggregateInputType
    _max?: SapPurchaseSyncRecordMaxAggregateInputType
  }

  export type SapPurchaseSyncRecordGroupByOutputType = {
    id: string
    serialNumber: string
    formInstanceId: string
    applicantName: string
    budgetAmount: Decimal
    sapPrNumber: string | null
    sapStatus: string
    sapMessages: JsonValue | null
    sapRawResponse: JsonValue | null
    approverChain: string | null
    syncedAt: Date
    createdAt: Date
    updatedAt: Date
    _count: SapPurchaseSyncRecordCountAggregateOutputType | null
    _avg: SapPurchaseSyncRecordAvgAggregateOutputType | null
    _sum: SapPurchaseSyncRecordSumAggregateOutputType | null
    _min: SapPurchaseSyncRecordMinAggregateOutputType | null
    _max: SapPurchaseSyncRecordMaxAggregateOutputType | null
  }

  type GetSapPurchaseSyncRecordGroupByPayload<T extends SapPurchaseSyncRecordGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SapPurchaseSyncRecordGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SapPurchaseSyncRecordGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SapPurchaseSyncRecordGroupByOutputType[P]>
            : GetScalarType<T[P], SapPurchaseSyncRecordGroupByOutputType[P]>
        }
      >
    >


  export type SapPurchaseSyncRecordSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    serialNumber?: boolean
    formInstanceId?: boolean
    applicantName?: boolean
    budgetAmount?: boolean
    sapPrNumber?: boolean
    sapStatus?: boolean
    sapMessages?: boolean
    sapRawResponse?: boolean
    approverChain?: boolean
    syncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sapPurchaseSyncRecord"]>

  export type SapPurchaseSyncRecordSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    serialNumber?: boolean
    formInstanceId?: boolean
    applicantName?: boolean
    budgetAmount?: boolean
    sapPrNumber?: boolean
    sapStatus?: boolean
    sapMessages?: boolean
    sapRawResponse?: boolean
    approverChain?: boolean
    syncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sapPurchaseSyncRecord"]>

  export type SapPurchaseSyncRecordSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    serialNumber?: boolean
    formInstanceId?: boolean
    applicantName?: boolean
    budgetAmount?: boolean
    sapPrNumber?: boolean
    sapStatus?: boolean
    sapMessages?: boolean
    sapRawResponse?: boolean
    approverChain?: boolean
    syncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sapPurchaseSyncRecord"]>

  export type SapPurchaseSyncRecordSelectScalar = {
    id?: boolean
    serialNumber?: boolean
    formInstanceId?: boolean
    applicantName?: boolean
    budgetAmount?: boolean
    sapPrNumber?: boolean
    sapStatus?: boolean
    sapMessages?: boolean
    sapRawResponse?: boolean
    approverChain?: boolean
    syncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SapPurchaseSyncRecordOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "serialNumber" | "formInstanceId" | "applicantName" | "budgetAmount" | "sapPrNumber" | "sapStatus" | "sapMessages" | "sapRawResponse" | "approverChain" | "syncedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["sapPurchaseSyncRecord"]>

  export type $SapPurchaseSyncRecordPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SapPurchaseSyncRecord"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      serialNumber: string
      formInstanceId: string
      applicantName: string
      budgetAmount: Prisma.Decimal
      sapPrNumber: string | null
      sapStatus: string
      sapMessages: Prisma.JsonValue | null
      sapRawResponse: Prisma.JsonValue | null
      approverChain: string | null
      syncedAt: Date
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["sapPurchaseSyncRecord"]>
    composites: {}
  }

  type SapPurchaseSyncRecordGetPayload<S extends boolean | null | undefined | SapPurchaseSyncRecordDefaultArgs> = $Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload, S>

  type SapPurchaseSyncRecordCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SapPurchaseSyncRecordFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SapPurchaseSyncRecordCountAggregateInputType | true
    }

  export interface SapPurchaseSyncRecordDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SapPurchaseSyncRecord'], meta: { name: 'SapPurchaseSyncRecord' } }
    /**
     * Find zero or one SapPurchaseSyncRecord that matches the filter.
     * @param {SapPurchaseSyncRecordFindUniqueArgs} args - Arguments to find a SapPurchaseSyncRecord
     * @example
     * // Get one SapPurchaseSyncRecord
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SapPurchaseSyncRecordFindUniqueArgs>(args: SelectSubset<T, SapPurchaseSyncRecordFindUniqueArgs<ExtArgs>>): Prisma__SapPurchaseSyncRecordClient<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SapPurchaseSyncRecord that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SapPurchaseSyncRecordFindUniqueOrThrowArgs} args - Arguments to find a SapPurchaseSyncRecord
     * @example
     * // Get one SapPurchaseSyncRecord
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SapPurchaseSyncRecordFindUniqueOrThrowArgs>(args: SelectSubset<T, SapPurchaseSyncRecordFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SapPurchaseSyncRecordClient<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SapPurchaseSyncRecord 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 {SapPurchaseSyncRecordFindFirstArgs} args - Arguments to find a SapPurchaseSyncRecord
     * @example
     * // Get one SapPurchaseSyncRecord
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SapPurchaseSyncRecordFindFirstArgs>(args?: SelectSubset<T, SapPurchaseSyncRecordFindFirstArgs<ExtArgs>>): Prisma__SapPurchaseSyncRecordClient<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SapPurchaseSyncRecord 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 {SapPurchaseSyncRecordFindFirstOrThrowArgs} args - Arguments to find a SapPurchaseSyncRecord
     * @example
     * // Get one SapPurchaseSyncRecord
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SapPurchaseSyncRecordFindFirstOrThrowArgs>(args?: SelectSubset<T, SapPurchaseSyncRecordFindFirstOrThrowArgs<ExtArgs>>): Prisma__SapPurchaseSyncRecordClient<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SapPurchaseSyncRecords 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 {SapPurchaseSyncRecordFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SapPurchaseSyncRecords
     * const sapPurchaseSyncRecords = await prisma.sapPurchaseSyncRecord.findMany()
     * 
     * // Get first 10 SapPurchaseSyncRecords
     * const sapPurchaseSyncRecords = await prisma.sapPurchaseSyncRecord.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const sapPurchaseSyncRecordWithIdOnly = await prisma.sapPurchaseSyncRecord.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SapPurchaseSyncRecordFindManyArgs>(args?: SelectSubset<T, SapPurchaseSyncRecordFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SapPurchaseSyncRecord.
     * @param {SapPurchaseSyncRecordCreateArgs} args - Arguments to create a SapPurchaseSyncRecord.
     * @example
     * // Create one SapPurchaseSyncRecord
     * const SapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.create({
     *   data: {
     *     // ... data to create a SapPurchaseSyncRecord
     *   }
     * })
     * 
     */
    create<T extends SapPurchaseSyncRecordCreateArgs>(args: SelectSubset<T, SapPurchaseSyncRecordCreateArgs<ExtArgs>>): Prisma__SapPurchaseSyncRecordClient<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SapPurchaseSyncRecords.
     * @param {SapPurchaseSyncRecordCreateManyArgs} args - Arguments to create many SapPurchaseSyncRecords.
     * @example
     * // Create many SapPurchaseSyncRecords
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SapPurchaseSyncRecordCreateManyArgs>(args?: SelectSubset<T, SapPurchaseSyncRecordCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SapPurchaseSyncRecords and returns the data saved in the database.
     * @param {SapPurchaseSyncRecordCreateManyAndReturnArgs} args - Arguments to create many SapPurchaseSyncRecords.
     * @example
     * // Create many SapPurchaseSyncRecords
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SapPurchaseSyncRecords and only return the `id`
     * const sapPurchaseSyncRecordWithIdOnly = await prisma.sapPurchaseSyncRecord.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 SapPurchaseSyncRecordCreateManyAndReturnArgs>(args?: SelectSubset<T, SapPurchaseSyncRecordCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SapPurchaseSyncRecord.
     * @param {SapPurchaseSyncRecordDeleteArgs} args - Arguments to delete one SapPurchaseSyncRecord.
     * @example
     * // Delete one SapPurchaseSyncRecord
     * const SapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.delete({
     *   where: {
     *     // ... filter to delete one SapPurchaseSyncRecord
     *   }
     * })
     * 
     */
    delete<T extends SapPurchaseSyncRecordDeleteArgs>(args: SelectSubset<T, SapPurchaseSyncRecordDeleteArgs<ExtArgs>>): Prisma__SapPurchaseSyncRecordClient<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SapPurchaseSyncRecord.
     * @param {SapPurchaseSyncRecordUpdateArgs} args - Arguments to update one SapPurchaseSyncRecord.
     * @example
     * // Update one SapPurchaseSyncRecord
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SapPurchaseSyncRecordUpdateArgs>(args: SelectSubset<T, SapPurchaseSyncRecordUpdateArgs<ExtArgs>>): Prisma__SapPurchaseSyncRecordClient<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SapPurchaseSyncRecords.
     * @param {SapPurchaseSyncRecordDeleteManyArgs} args - Arguments to filter SapPurchaseSyncRecords to delete.
     * @example
     * // Delete a few SapPurchaseSyncRecords
     * const { count } = await prisma.sapPurchaseSyncRecord.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SapPurchaseSyncRecordDeleteManyArgs>(args?: SelectSubset<T, SapPurchaseSyncRecordDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SapPurchaseSyncRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SapPurchaseSyncRecordUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SapPurchaseSyncRecords
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SapPurchaseSyncRecordUpdateManyArgs>(args: SelectSubset<T, SapPurchaseSyncRecordUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SapPurchaseSyncRecords and returns the data updated in the database.
     * @param {SapPurchaseSyncRecordUpdateManyAndReturnArgs} args - Arguments to update many SapPurchaseSyncRecords.
     * @example
     * // Update many SapPurchaseSyncRecords
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SapPurchaseSyncRecords and only return the `id`
     * const sapPurchaseSyncRecordWithIdOnly = await prisma.sapPurchaseSyncRecord.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 SapPurchaseSyncRecordUpdateManyAndReturnArgs>(args: SelectSubset<T, SapPurchaseSyncRecordUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SapPurchaseSyncRecord.
     * @param {SapPurchaseSyncRecordUpsertArgs} args - Arguments to update or create a SapPurchaseSyncRecord.
     * @example
     * // Update or create a SapPurchaseSyncRecord
     * const sapPurchaseSyncRecord = await prisma.sapPurchaseSyncRecord.upsert({
     *   create: {
     *     // ... data to create a SapPurchaseSyncRecord
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SapPurchaseSyncRecord we want to update
     *   }
     * })
     */
    upsert<T extends SapPurchaseSyncRecordUpsertArgs>(args: SelectSubset<T, SapPurchaseSyncRecordUpsertArgs<ExtArgs>>): Prisma__SapPurchaseSyncRecordClient<$Result.GetResult<Prisma.$SapPurchaseSyncRecordPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SapPurchaseSyncRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SapPurchaseSyncRecordCountArgs} args - Arguments to filter SapPurchaseSyncRecords to count.
     * @example
     * // Count the number of SapPurchaseSyncRecords
     * const count = await prisma.sapPurchaseSyncRecord.count({
     *   where: {
     *     // ... the filter for the SapPurchaseSyncRecords we want to count
     *   }
     * })
    **/
    count<T extends SapPurchaseSyncRecordCountArgs>(
      args?: Subset<T, SapPurchaseSyncRecordCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SapPurchaseSyncRecordCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SapPurchaseSyncRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SapPurchaseSyncRecordAggregateArgs} 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 SapPurchaseSyncRecordAggregateArgs>(args: Subset<T, SapPurchaseSyncRecordAggregateArgs>): Prisma.PrismaPromise<GetSapPurchaseSyncRecordAggregateType<T>>

    /**
     * Group by SapPurchaseSyncRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SapPurchaseSyncRecordGroupByArgs} 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 SapPurchaseSyncRecordGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SapPurchaseSyncRecordGroupByArgs['orderBy'] }
        : { orderBy?: SapPurchaseSyncRecordGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SapPurchaseSyncRecordGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSapPurchaseSyncRecordGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SapPurchaseSyncRecord model
   */
  readonly fields: SapPurchaseSyncRecordFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SapPurchaseSyncRecord.
   * 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__SapPurchaseSyncRecordClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SapPurchaseSyncRecord model
   */
  interface SapPurchaseSyncRecordFieldRefs {
    readonly id: FieldRef<"SapPurchaseSyncRecord", 'String'>
    readonly serialNumber: FieldRef<"SapPurchaseSyncRecord", 'String'>
    readonly formInstanceId: FieldRef<"SapPurchaseSyncRecord", 'String'>
    readonly applicantName: FieldRef<"SapPurchaseSyncRecord", 'String'>
    readonly budgetAmount: FieldRef<"SapPurchaseSyncRecord", 'Decimal'>
    readonly sapPrNumber: FieldRef<"SapPurchaseSyncRecord", 'String'>
    readonly sapStatus: FieldRef<"SapPurchaseSyncRecord", 'String'>
    readonly sapMessages: FieldRef<"SapPurchaseSyncRecord", 'Json'>
    readonly sapRawResponse: FieldRef<"SapPurchaseSyncRecord", 'Json'>
    readonly approverChain: FieldRef<"SapPurchaseSyncRecord", 'String'>
    readonly syncedAt: FieldRef<"SapPurchaseSyncRecord", 'DateTime'>
    readonly createdAt: FieldRef<"SapPurchaseSyncRecord", 'DateTime'>
    readonly updatedAt: FieldRef<"SapPurchaseSyncRecord", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SapPurchaseSyncRecord findUnique
   */
  export type SapPurchaseSyncRecordFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseSyncRecord to fetch.
     */
    where: SapPurchaseSyncRecordWhereUniqueInput
  }

  /**
   * SapPurchaseSyncRecord findUniqueOrThrow
   */
  export type SapPurchaseSyncRecordFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseSyncRecord to fetch.
     */
    where: SapPurchaseSyncRecordWhereUniqueInput
  }

  /**
   * SapPurchaseSyncRecord findFirst
   */
  export type SapPurchaseSyncRecordFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseSyncRecord to fetch.
     */
    where?: SapPurchaseSyncRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SapPurchaseSyncRecords to fetch.
     */
    orderBy?: SapPurchaseSyncRecordOrderByWithRelationInput | SapPurchaseSyncRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SapPurchaseSyncRecords.
     */
    cursor?: SapPurchaseSyncRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SapPurchaseSyncRecords 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` SapPurchaseSyncRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SapPurchaseSyncRecords.
     */
    distinct?: SapPurchaseSyncRecordScalarFieldEnum | SapPurchaseSyncRecordScalarFieldEnum[]
  }

  /**
   * SapPurchaseSyncRecord findFirstOrThrow
   */
  export type SapPurchaseSyncRecordFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseSyncRecord to fetch.
     */
    where?: SapPurchaseSyncRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SapPurchaseSyncRecords to fetch.
     */
    orderBy?: SapPurchaseSyncRecordOrderByWithRelationInput | SapPurchaseSyncRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SapPurchaseSyncRecords.
     */
    cursor?: SapPurchaseSyncRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SapPurchaseSyncRecords 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` SapPurchaseSyncRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SapPurchaseSyncRecords.
     */
    distinct?: SapPurchaseSyncRecordScalarFieldEnum | SapPurchaseSyncRecordScalarFieldEnum[]
  }

  /**
   * SapPurchaseSyncRecord findMany
   */
  export type SapPurchaseSyncRecordFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseSyncRecords to fetch.
     */
    where?: SapPurchaseSyncRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SapPurchaseSyncRecords to fetch.
     */
    orderBy?: SapPurchaseSyncRecordOrderByWithRelationInput | SapPurchaseSyncRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SapPurchaseSyncRecords.
     */
    cursor?: SapPurchaseSyncRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SapPurchaseSyncRecords 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` SapPurchaseSyncRecords.
     */
    skip?: number
    distinct?: SapPurchaseSyncRecordScalarFieldEnum | SapPurchaseSyncRecordScalarFieldEnum[]
  }

  /**
   * SapPurchaseSyncRecord create
   */
  export type SapPurchaseSyncRecordCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * The data needed to create a SapPurchaseSyncRecord.
     */
    data: XOR<SapPurchaseSyncRecordCreateInput, SapPurchaseSyncRecordUncheckedCreateInput>
  }

  /**
   * SapPurchaseSyncRecord createMany
   */
  export type SapPurchaseSyncRecordCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SapPurchaseSyncRecords.
     */
    data: SapPurchaseSyncRecordCreateManyInput | SapPurchaseSyncRecordCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SapPurchaseSyncRecord createManyAndReturn
   */
  export type SapPurchaseSyncRecordCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * The data used to create many SapPurchaseSyncRecords.
     */
    data: SapPurchaseSyncRecordCreateManyInput | SapPurchaseSyncRecordCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SapPurchaseSyncRecord update
   */
  export type SapPurchaseSyncRecordUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * The data needed to update a SapPurchaseSyncRecord.
     */
    data: XOR<SapPurchaseSyncRecordUpdateInput, SapPurchaseSyncRecordUncheckedUpdateInput>
    /**
     * Choose, which SapPurchaseSyncRecord to update.
     */
    where: SapPurchaseSyncRecordWhereUniqueInput
  }

  /**
   * SapPurchaseSyncRecord updateMany
   */
  export type SapPurchaseSyncRecordUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SapPurchaseSyncRecords.
     */
    data: XOR<SapPurchaseSyncRecordUpdateManyMutationInput, SapPurchaseSyncRecordUncheckedUpdateManyInput>
    /**
     * Filter which SapPurchaseSyncRecords to update
     */
    where?: SapPurchaseSyncRecordWhereInput
    /**
     * Limit how many SapPurchaseSyncRecords to update.
     */
    limit?: number
  }

  /**
   * SapPurchaseSyncRecord updateManyAndReturn
   */
  export type SapPurchaseSyncRecordUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * The data used to update SapPurchaseSyncRecords.
     */
    data: XOR<SapPurchaseSyncRecordUpdateManyMutationInput, SapPurchaseSyncRecordUncheckedUpdateManyInput>
    /**
     * Filter which SapPurchaseSyncRecords to update
     */
    where?: SapPurchaseSyncRecordWhereInput
    /**
     * Limit how many SapPurchaseSyncRecords to update.
     */
    limit?: number
  }

  /**
   * SapPurchaseSyncRecord upsert
   */
  export type SapPurchaseSyncRecordUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * The filter to search for the SapPurchaseSyncRecord to update in case it exists.
     */
    where: SapPurchaseSyncRecordWhereUniqueInput
    /**
     * In case the SapPurchaseSyncRecord found by the `where` argument doesn't exist, create a new SapPurchaseSyncRecord with this data.
     */
    create: XOR<SapPurchaseSyncRecordCreateInput, SapPurchaseSyncRecordUncheckedCreateInput>
    /**
     * In case the SapPurchaseSyncRecord was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SapPurchaseSyncRecordUpdateInput, SapPurchaseSyncRecordUncheckedUpdateInput>
  }

  /**
   * SapPurchaseSyncRecord delete
   */
  export type SapPurchaseSyncRecordDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
    /**
     * Filter which SapPurchaseSyncRecord to delete.
     */
    where: SapPurchaseSyncRecordWhereUniqueInput
  }

  /**
   * SapPurchaseSyncRecord deleteMany
   */
  export type SapPurchaseSyncRecordDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SapPurchaseSyncRecords to delete
     */
    where?: SapPurchaseSyncRecordWhereInput
    /**
     * Limit how many SapPurchaseSyncRecords to delete.
     */
    limit?: number
  }

  /**
   * SapPurchaseSyncRecord without action
   */
  export type SapPurchaseSyncRecordDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseSyncRecord
     */
    select?: SapPurchaseSyncRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseSyncRecord
     */
    omit?: SapPurchaseSyncRecordOmit<ExtArgs> | null
  }


  /**
   * Model DingtalkEmployee
   */

  export type AggregateDingtalkEmployee = {
    _count: DingtalkEmployeeCountAggregateOutputType | null
    _avg: DingtalkEmployeeAvgAggregateOutputType | null
    _sum: DingtalkEmployeeSumAggregateOutputType | null
    _min: DingtalkEmployeeMinAggregateOutputType | null
    _max: DingtalkEmployeeMaxAggregateOutputType | null
  }

  export type DingtalkEmployeeAvgAggregateOutputType = {
    tenureDays: number | null
  }

  export type DingtalkEmployeeSumAggregateOutputType = {
    tenureDays: number | null
  }

  export type DingtalkEmployeeMinAggregateOutputType = {
    id: string | null
    userId: string | null
    name: string | null
    employeeNumber: string | null
    department: string | null
    position: string | null
    rank: string | null
    phone: string | null
    country: string | null
    workPlace: string | null
    contractCompany: string | null
    bank: string | null
    bankCardLast4: string | null
    monthlyStandardHours: string | null
    workHourLimit: string | null
    joinDate: Date | null
    workStartDate: Date | null
    tenureDays: number | null
    status: string | null
    lastSyncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkEmployeeMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    name: string | null
    employeeNumber: string | null
    department: string | null
    position: string | null
    rank: string | null
    phone: string | null
    country: string | null
    workPlace: string | null
    contractCompany: string | null
    bank: string | null
    bankCardLast4: string | null
    monthlyStandardHours: string | null
    workHourLimit: string | null
    joinDate: Date | null
    workStartDate: Date | null
    tenureDays: number | null
    status: string | null
    lastSyncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkEmployeeCountAggregateOutputType = {
    id: number
    userId: number
    name: number
    employeeNumber: number
    department: number
    position: number
    rank: number
    phone: number
    country: number
    workPlace: number
    contractCompany: number
    bank: number
    bankCardLast4: number
    monthlyStandardHours: number
    workHourLimit: number
    joinDate: number
    workStartDate: number
    tenureDays: number
    status: number
    lastSyncedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DingtalkEmployeeAvgAggregateInputType = {
    tenureDays?: true
  }

  export type DingtalkEmployeeSumAggregateInputType = {
    tenureDays?: true
  }

  export type DingtalkEmployeeMinAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    employeeNumber?: true
    department?: true
    position?: true
    rank?: true
    phone?: true
    country?: true
    workPlace?: true
    contractCompany?: true
    bank?: true
    bankCardLast4?: true
    monthlyStandardHours?: true
    workHourLimit?: true
    joinDate?: true
    workStartDate?: true
    tenureDays?: true
    status?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkEmployeeMaxAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    employeeNumber?: true
    department?: true
    position?: true
    rank?: true
    phone?: true
    country?: true
    workPlace?: true
    contractCompany?: true
    bank?: true
    bankCardLast4?: true
    monthlyStandardHours?: true
    workHourLimit?: true
    joinDate?: true
    workStartDate?: true
    tenureDays?: true
    status?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkEmployeeCountAggregateInputType = {
    id?: true
    userId?: true
    name?: true
    employeeNumber?: true
    department?: true
    position?: true
    rank?: true
    phone?: true
    country?: true
    workPlace?: true
    contractCompany?: true
    bank?: true
    bankCardLast4?: true
    monthlyStandardHours?: true
    workHourLimit?: true
    joinDate?: true
    workStartDate?: true
    tenureDays?: true
    status?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DingtalkEmployeeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkEmployee to aggregate.
     */
    where?: DingtalkEmployeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployees to fetch.
     */
    orderBy?: DingtalkEmployeeOrderByWithRelationInput | DingtalkEmployeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DingtalkEmployeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployees 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` DingtalkEmployees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DingtalkEmployees
    **/
    _count?: true | DingtalkEmployeeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DingtalkEmployeeAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DingtalkEmployeeSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DingtalkEmployeeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DingtalkEmployeeMaxAggregateInputType
  }

  export type GetDingtalkEmployeeAggregateType<T extends DingtalkEmployeeAggregateArgs> = {
        [P in keyof T & keyof AggregateDingtalkEmployee]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDingtalkEmployee[P]>
      : GetScalarType<T[P], AggregateDingtalkEmployee[P]>
  }




  export type DingtalkEmployeeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DingtalkEmployeeWhereInput
    orderBy?: DingtalkEmployeeOrderByWithAggregationInput | DingtalkEmployeeOrderByWithAggregationInput[]
    by: DingtalkEmployeeScalarFieldEnum[] | DingtalkEmployeeScalarFieldEnum
    having?: DingtalkEmployeeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DingtalkEmployeeCountAggregateInputType | true
    _avg?: DingtalkEmployeeAvgAggregateInputType
    _sum?: DingtalkEmployeeSumAggregateInputType
    _min?: DingtalkEmployeeMinAggregateInputType
    _max?: DingtalkEmployeeMaxAggregateInputType
  }

  export type DingtalkEmployeeGroupByOutputType = {
    id: string
    userId: string
    name: string
    employeeNumber: string
    department: string
    position: string
    rank: string
    phone: string
    country: string
    workPlace: string
    contractCompany: string
    bank: string
    bankCardLast4: string
    monthlyStandardHours: string
    workHourLimit: string
    joinDate: Date | null
    workStartDate: Date | null
    tenureDays: number
    status: string
    lastSyncedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: DingtalkEmployeeCountAggregateOutputType | null
    _avg: DingtalkEmployeeAvgAggregateOutputType | null
    _sum: DingtalkEmployeeSumAggregateOutputType | null
    _min: DingtalkEmployeeMinAggregateOutputType | null
    _max: DingtalkEmployeeMaxAggregateOutputType | null
  }

  type GetDingtalkEmployeeGroupByPayload<T extends DingtalkEmployeeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DingtalkEmployeeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DingtalkEmployeeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DingtalkEmployeeGroupByOutputType[P]>
            : GetScalarType<T[P], DingtalkEmployeeGroupByOutputType[P]>
        }
      >
    >


  export type DingtalkEmployeeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    employeeNumber?: boolean
    department?: boolean
    position?: boolean
    rank?: boolean
    phone?: boolean
    country?: boolean
    workPlace?: boolean
    contractCompany?: boolean
    bank?: boolean
    bankCardLast4?: boolean
    monthlyStandardHours?: boolean
    workHourLimit?: boolean
    joinDate?: boolean
    workStartDate?: boolean
    tenureDays?: boolean
    status?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployee"]>

  export type DingtalkEmployeeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    employeeNumber?: boolean
    department?: boolean
    position?: boolean
    rank?: boolean
    phone?: boolean
    country?: boolean
    workPlace?: boolean
    contractCompany?: boolean
    bank?: boolean
    bankCardLast4?: boolean
    monthlyStandardHours?: boolean
    workHourLimit?: boolean
    joinDate?: boolean
    workStartDate?: boolean
    tenureDays?: boolean
    status?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployee"]>

  export type DingtalkEmployeeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    name?: boolean
    employeeNumber?: boolean
    department?: boolean
    position?: boolean
    rank?: boolean
    phone?: boolean
    country?: boolean
    workPlace?: boolean
    contractCompany?: boolean
    bank?: boolean
    bankCardLast4?: boolean
    monthlyStandardHours?: boolean
    workHourLimit?: boolean
    joinDate?: boolean
    workStartDate?: boolean
    tenureDays?: boolean
    status?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployee"]>

  export type DingtalkEmployeeSelectScalar = {
    id?: boolean
    userId?: boolean
    name?: boolean
    employeeNumber?: boolean
    department?: boolean
    position?: boolean
    rank?: boolean
    phone?: boolean
    country?: boolean
    workPlace?: boolean
    contractCompany?: boolean
    bank?: boolean
    bankCardLast4?: boolean
    monthlyStandardHours?: boolean
    workHourLimit?: boolean
    joinDate?: boolean
    workStartDate?: boolean
    tenureDays?: boolean
    status?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DingtalkEmployeeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "name" | "employeeNumber" | "department" | "position" | "rank" | "phone" | "country" | "workPlace" | "contractCompany" | "bank" | "bankCardLast4" | "monthlyStandardHours" | "workHourLimit" | "joinDate" | "workStartDate" | "tenureDays" | "status" | "lastSyncedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["dingtalkEmployee"]>

  export type $DingtalkEmployeePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DingtalkEmployee"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      name: string
      employeeNumber: string
      department: string
      position: string
      rank: string
      phone: string
      country: string
      workPlace: string
      contractCompany: string
      bank: string
      bankCardLast4: string
      monthlyStandardHours: string
      workHourLimit: string
      joinDate: Date | null
      workStartDate: Date | null
      tenureDays: number
      status: string
      lastSyncedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["dingtalkEmployee"]>
    composites: {}
  }

  type DingtalkEmployeeGetPayload<S extends boolean | null | undefined | DingtalkEmployeeDefaultArgs> = $Result.GetResult<Prisma.$DingtalkEmployeePayload, S>

  type DingtalkEmployeeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DingtalkEmployeeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DingtalkEmployeeCountAggregateInputType | true
    }

  export interface DingtalkEmployeeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DingtalkEmployee'], meta: { name: 'DingtalkEmployee' } }
    /**
     * Find zero or one DingtalkEmployee that matches the filter.
     * @param {DingtalkEmployeeFindUniqueArgs} args - Arguments to find a DingtalkEmployee
     * @example
     * // Get one DingtalkEmployee
     * const dingtalkEmployee = await prisma.dingtalkEmployee.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DingtalkEmployeeFindUniqueArgs>(args: SelectSubset<T, DingtalkEmployeeFindUniqueArgs<ExtArgs>>): Prisma__DingtalkEmployeeClient<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DingtalkEmployee that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DingtalkEmployeeFindUniqueOrThrowArgs} args - Arguments to find a DingtalkEmployee
     * @example
     * // Get one DingtalkEmployee
     * const dingtalkEmployee = await prisma.dingtalkEmployee.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DingtalkEmployeeFindUniqueOrThrowArgs>(args: SelectSubset<T, DingtalkEmployeeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DingtalkEmployeeClient<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkEmployee 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 {DingtalkEmployeeFindFirstArgs} args - Arguments to find a DingtalkEmployee
     * @example
     * // Get one DingtalkEmployee
     * const dingtalkEmployee = await prisma.dingtalkEmployee.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DingtalkEmployeeFindFirstArgs>(args?: SelectSubset<T, DingtalkEmployeeFindFirstArgs<ExtArgs>>): Prisma__DingtalkEmployeeClient<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkEmployee 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 {DingtalkEmployeeFindFirstOrThrowArgs} args - Arguments to find a DingtalkEmployee
     * @example
     * // Get one DingtalkEmployee
     * const dingtalkEmployee = await prisma.dingtalkEmployee.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DingtalkEmployeeFindFirstOrThrowArgs>(args?: SelectSubset<T, DingtalkEmployeeFindFirstOrThrowArgs<ExtArgs>>): Prisma__DingtalkEmployeeClient<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DingtalkEmployees 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 {DingtalkEmployeeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DingtalkEmployees
     * const dingtalkEmployees = await prisma.dingtalkEmployee.findMany()
     * 
     * // Get first 10 DingtalkEmployees
     * const dingtalkEmployees = await prisma.dingtalkEmployee.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dingtalkEmployeeWithIdOnly = await prisma.dingtalkEmployee.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DingtalkEmployeeFindManyArgs>(args?: SelectSubset<T, DingtalkEmployeeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DingtalkEmployee.
     * @param {DingtalkEmployeeCreateArgs} args - Arguments to create a DingtalkEmployee.
     * @example
     * // Create one DingtalkEmployee
     * const DingtalkEmployee = await prisma.dingtalkEmployee.create({
     *   data: {
     *     // ... data to create a DingtalkEmployee
     *   }
     * })
     * 
     */
    create<T extends DingtalkEmployeeCreateArgs>(args: SelectSubset<T, DingtalkEmployeeCreateArgs<ExtArgs>>): Prisma__DingtalkEmployeeClient<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DingtalkEmployees.
     * @param {DingtalkEmployeeCreateManyArgs} args - Arguments to create many DingtalkEmployees.
     * @example
     * // Create many DingtalkEmployees
     * const dingtalkEmployee = await prisma.dingtalkEmployee.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DingtalkEmployeeCreateManyArgs>(args?: SelectSubset<T, DingtalkEmployeeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DingtalkEmployees and returns the data saved in the database.
     * @param {DingtalkEmployeeCreateManyAndReturnArgs} args - Arguments to create many DingtalkEmployees.
     * @example
     * // Create many DingtalkEmployees
     * const dingtalkEmployee = await prisma.dingtalkEmployee.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DingtalkEmployees and only return the `id`
     * const dingtalkEmployeeWithIdOnly = await prisma.dingtalkEmployee.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 DingtalkEmployeeCreateManyAndReturnArgs>(args?: SelectSubset<T, DingtalkEmployeeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DingtalkEmployee.
     * @param {DingtalkEmployeeDeleteArgs} args - Arguments to delete one DingtalkEmployee.
     * @example
     * // Delete one DingtalkEmployee
     * const DingtalkEmployee = await prisma.dingtalkEmployee.delete({
     *   where: {
     *     // ... filter to delete one DingtalkEmployee
     *   }
     * })
     * 
     */
    delete<T extends DingtalkEmployeeDeleteArgs>(args: SelectSubset<T, DingtalkEmployeeDeleteArgs<ExtArgs>>): Prisma__DingtalkEmployeeClient<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DingtalkEmployee.
     * @param {DingtalkEmployeeUpdateArgs} args - Arguments to update one DingtalkEmployee.
     * @example
     * // Update one DingtalkEmployee
     * const dingtalkEmployee = await prisma.dingtalkEmployee.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DingtalkEmployeeUpdateArgs>(args: SelectSubset<T, DingtalkEmployeeUpdateArgs<ExtArgs>>): Prisma__DingtalkEmployeeClient<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DingtalkEmployees.
     * @param {DingtalkEmployeeDeleteManyArgs} args - Arguments to filter DingtalkEmployees to delete.
     * @example
     * // Delete a few DingtalkEmployees
     * const { count } = await prisma.dingtalkEmployee.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DingtalkEmployeeDeleteManyArgs>(args?: SelectSubset<T, DingtalkEmployeeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkEmployees.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DingtalkEmployees
     * const dingtalkEmployee = await prisma.dingtalkEmployee.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DingtalkEmployeeUpdateManyArgs>(args: SelectSubset<T, DingtalkEmployeeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkEmployees and returns the data updated in the database.
     * @param {DingtalkEmployeeUpdateManyAndReturnArgs} args - Arguments to update many DingtalkEmployees.
     * @example
     * // Update many DingtalkEmployees
     * const dingtalkEmployee = await prisma.dingtalkEmployee.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DingtalkEmployees and only return the `id`
     * const dingtalkEmployeeWithIdOnly = await prisma.dingtalkEmployee.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 DingtalkEmployeeUpdateManyAndReturnArgs>(args: SelectSubset<T, DingtalkEmployeeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DingtalkEmployee.
     * @param {DingtalkEmployeeUpsertArgs} args - Arguments to update or create a DingtalkEmployee.
     * @example
     * // Update or create a DingtalkEmployee
     * const dingtalkEmployee = await prisma.dingtalkEmployee.upsert({
     *   create: {
     *     // ... data to create a DingtalkEmployee
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DingtalkEmployee we want to update
     *   }
     * })
     */
    upsert<T extends DingtalkEmployeeUpsertArgs>(args: SelectSubset<T, DingtalkEmployeeUpsertArgs<ExtArgs>>): Prisma__DingtalkEmployeeClient<$Result.GetResult<Prisma.$DingtalkEmployeePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DingtalkEmployees.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeCountArgs} args - Arguments to filter DingtalkEmployees to count.
     * @example
     * // Count the number of DingtalkEmployees
     * const count = await prisma.dingtalkEmployee.count({
     *   where: {
     *     // ... the filter for the DingtalkEmployees we want to count
     *   }
     * })
    **/
    count<T extends DingtalkEmployeeCountArgs>(
      args?: Subset<T, DingtalkEmployeeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DingtalkEmployeeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DingtalkEmployee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeAggregateArgs} 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 DingtalkEmployeeAggregateArgs>(args: Subset<T, DingtalkEmployeeAggregateArgs>): Prisma.PrismaPromise<GetDingtalkEmployeeAggregateType<T>>

    /**
     * Group by DingtalkEmployee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeGroupByArgs} 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 DingtalkEmployeeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DingtalkEmployeeGroupByArgs['orderBy'] }
        : { orderBy?: DingtalkEmployeeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DingtalkEmployeeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDingtalkEmployeeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DingtalkEmployee model
   */
  readonly fields: DingtalkEmployeeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DingtalkEmployee.
   * 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__DingtalkEmployeeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DingtalkEmployee model
   */
  interface DingtalkEmployeeFieldRefs {
    readonly id: FieldRef<"DingtalkEmployee", 'String'>
    readonly userId: FieldRef<"DingtalkEmployee", 'String'>
    readonly name: FieldRef<"DingtalkEmployee", 'String'>
    readonly employeeNumber: FieldRef<"DingtalkEmployee", 'String'>
    readonly department: FieldRef<"DingtalkEmployee", 'String'>
    readonly position: FieldRef<"DingtalkEmployee", 'String'>
    readonly rank: FieldRef<"DingtalkEmployee", 'String'>
    readonly phone: FieldRef<"DingtalkEmployee", 'String'>
    readonly country: FieldRef<"DingtalkEmployee", 'String'>
    readonly workPlace: FieldRef<"DingtalkEmployee", 'String'>
    readonly contractCompany: FieldRef<"DingtalkEmployee", 'String'>
    readonly bank: FieldRef<"DingtalkEmployee", 'String'>
    readonly bankCardLast4: FieldRef<"DingtalkEmployee", 'String'>
    readonly monthlyStandardHours: FieldRef<"DingtalkEmployee", 'String'>
    readonly workHourLimit: FieldRef<"DingtalkEmployee", 'String'>
    readonly joinDate: FieldRef<"DingtalkEmployee", 'DateTime'>
    readonly workStartDate: FieldRef<"DingtalkEmployee", 'DateTime'>
    readonly tenureDays: FieldRef<"DingtalkEmployee", 'Int'>
    readonly status: FieldRef<"DingtalkEmployee", 'String'>
    readonly lastSyncedAt: FieldRef<"DingtalkEmployee", 'DateTime'>
    readonly createdAt: FieldRef<"DingtalkEmployee", 'DateTime'>
    readonly updatedAt: FieldRef<"DingtalkEmployee", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DingtalkEmployee findUnique
   */
  export type DingtalkEmployeeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployee to fetch.
     */
    where: DingtalkEmployeeWhereUniqueInput
  }

  /**
   * DingtalkEmployee findUniqueOrThrow
   */
  export type DingtalkEmployeeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployee to fetch.
     */
    where: DingtalkEmployeeWhereUniqueInput
  }

  /**
   * DingtalkEmployee findFirst
   */
  export type DingtalkEmployeeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployee to fetch.
     */
    where?: DingtalkEmployeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployees to fetch.
     */
    orderBy?: DingtalkEmployeeOrderByWithRelationInput | DingtalkEmployeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkEmployees.
     */
    cursor?: DingtalkEmployeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployees 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` DingtalkEmployees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkEmployees.
     */
    distinct?: DingtalkEmployeeScalarFieldEnum | DingtalkEmployeeScalarFieldEnum[]
  }

  /**
   * DingtalkEmployee findFirstOrThrow
   */
  export type DingtalkEmployeeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployee to fetch.
     */
    where?: DingtalkEmployeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployees to fetch.
     */
    orderBy?: DingtalkEmployeeOrderByWithRelationInput | DingtalkEmployeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkEmployees.
     */
    cursor?: DingtalkEmployeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployees 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` DingtalkEmployees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkEmployees.
     */
    distinct?: DingtalkEmployeeScalarFieldEnum | DingtalkEmployeeScalarFieldEnum[]
  }

  /**
   * DingtalkEmployee findMany
   */
  export type DingtalkEmployeeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployees to fetch.
     */
    where?: DingtalkEmployeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployees to fetch.
     */
    orderBy?: DingtalkEmployeeOrderByWithRelationInput | DingtalkEmployeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DingtalkEmployees.
     */
    cursor?: DingtalkEmployeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployees 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` DingtalkEmployees.
     */
    skip?: number
    distinct?: DingtalkEmployeeScalarFieldEnum | DingtalkEmployeeScalarFieldEnum[]
  }

  /**
   * DingtalkEmployee create
   */
  export type DingtalkEmployeeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * The data needed to create a DingtalkEmployee.
     */
    data: XOR<DingtalkEmployeeCreateInput, DingtalkEmployeeUncheckedCreateInput>
  }

  /**
   * DingtalkEmployee createMany
   */
  export type DingtalkEmployeeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DingtalkEmployees.
     */
    data: DingtalkEmployeeCreateManyInput | DingtalkEmployeeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkEmployee createManyAndReturn
   */
  export type DingtalkEmployeeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * The data used to create many DingtalkEmployees.
     */
    data: DingtalkEmployeeCreateManyInput | DingtalkEmployeeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkEmployee update
   */
  export type DingtalkEmployeeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * The data needed to update a DingtalkEmployee.
     */
    data: XOR<DingtalkEmployeeUpdateInput, DingtalkEmployeeUncheckedUpdateInput>
    /**
     * Choose, which DingtalkEmployee to update.
     */
    where: DingtalkEmployeeWhereUniqueInput
  }

  /**
   * DingtalkEmployee updateMany
   */
  export type DingtalkEmployeeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DingtalkEmployees.
     */
    data: XOR<DingtalkEmployeeUpdateManyMutationInput, DingtalkEmployeeUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkEmployees to update
     */
    where?: DingtalkEmployeeWhereInput
    /**
     * Limit how many DingtalkEmployees to update.
     */
    limit?: number
  }

  /**
   * DingtalkEmployee updateManyAndReturn
   */
  export type DingtalkEmployeeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * The data used to update DingtalkEmployees.
     */
    data: XOR<DingtalkEmployeeUpdateManyMutationInput, DingtalkEmployeeUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkEmployees to update
     */
    where?: DingtalkEmployeeWhereInput
    /**
     * Limit how many DingtalkEmployees to update.
     */
    limit?: number
  }

  /**
   * DingtalkEmployee upsert
   */
  export type DingtalkEmployeeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * The filter to search for the DingtalkEmployee to update in case it exists.
     */
    where: DingtalkEmployeeWhereUniqueInput
    /**
     * In case the DingtalkEmployee found by the `where` argument doesn't exist, create a new DingtalkEmployee with this data.
     */
    create: XOR<DingtalkEmployeeCreateInput, DingtalkEmployeeUncheckedCreateInput>
    /**
     * In case the DingtalkEmployee was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DingtalkEmployeeUpdateInput, DingtalkEmployeeUncheckedUpdateInput>
  }

  /**
   * DingtalkEmployee delete
   */
  export type DingtalkEmployeeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
    /**
     * Filter which DingtalkEmployee to delete.
     */
    where: DingtalkEmployeeWhereUniqueInput
  }

  /**
   * DingtalkEmployee deleteMany
   */
  export type DingtalkEmployeeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkEmployees to delete
     */
    where?: DingtalkEmployeeWhereInput
    /**
     * Limit how many DingtalkEmployees to delete.
     */
    limit?: number
  }

  /**
   * DingtalkEmployee without action
   */
  export type DingtalkEmployeeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployee
     */
    select?: DingtalkEmployeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployee
     */
    omit?: DingtalkEmployeeOmit<ExtArgs> | null
  }


  /**
   * Model DingtalkEmployeeEmploymentPeriod
   */

  export type AggregateDingtalkEmployeeEmploymentPeriod = {
    _count: DingtalkEmployeeEmploymentPeriodCountAggregateOutputType | null
    _avg: DingtalkEmployeeEmploymentPeriodAvgAggregateOutputType | null
    _sum: DingtalkEmployeeEmploymentPeriodSumAggregateOutputType | null
    _min: DingtalkEmployeeEmploymentPeriodMinAggregateOutputType | null
    _max: DingtalkEmployeeEmploymentPeriodMaxAggregateOutputType | null
  }

  export type DingtalkEmployeeEmploymentPeriodAvgAggregateOutputType = {
    periodIndex: number | null
  }

  export type DingtalkEmployeeEmploymentPeriodSumAggregateOutputType = {
    periodIndex: number | null
  }

  export type DingtalkEmployeeEmploymentPeriodMinAggregateOutputType = {
    id: string | null
    userId: string | null
    periodIndex: number | null
    joinDate: Date | null
    leaveDate: Date | null
    countInTenure: boolean | null
    note: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkEmployeeEmploymentPeriodMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    periodIndex: number | null
    joinDate: Date | null
    leaveDate: Date | null
    countInTenure: boolean | null
    note: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkEmployeeEmploymentPeriodCountAggregateOutputType = {
    id: number
    userId: number
    periodIndex: number
    joinDate: number
    leaveDate: number
    countInTenure: number
    note: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DingtalkEmployeeEmploymentPeriodAvgAggregateInputType = {
    periodIndex?: true
  }

  export type DingtalkEmployeeEmploymentPeriodSumAggregateInputType = {
    periodIndex?: true
  }

  export type DingtalkEmployeeEmploymentPeriodMinAggregateInputType = {
    id?: true
    userId?: true
    periodIndex?: true
    joinDate?: true
    leaveDate?: true
    countInTenure?: true
    note?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkEmployeeEmploymentPeriodMaxAggregateInputType = {
    id?: true
    userId?: true
    periodIndex?: true
    joinDate?: true
    leaveDate?: true
    countInTenure?: true
    note?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkEmployeeEmploymentPeriodCountAggregateInputType = {
    id?: true
    userId?: true
    periodIndex?: true
    joinDate?: true
    leaveDate?: true
    countInTenure?: true
    note?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DingtalkEmployeeEmploymentPeriodAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkEmployeeEmploymentPeriod to aggregate.
     */
    where?: DingtalkEmployeeEmploymentPeriodWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployeeEmploymentPeriods to fetch.
     */
    orderBy?: DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput | DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployeeEmploymentPeriods 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` DingtalkEmployeeEmploymentPeriods.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DingtalkEmployeeEmploymentPeriods
    **/
    _count?: true | DingtalkEmployeeEmploymentPeriodCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DingtalkEmployeeEmploymentPeriodAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DingtalkEmployeeEmploymentPeriodSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DingtalkEmployeeEmploymentPeriodMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DingtalkEmployeeEmploymentPeriodMaxAggregateInputType
  }

  export type GetDingtalkEmployeeEmploymentPeriodAggregateType<T extends DingtalkEmployeeEmploymentPeriodAggregateArgs> = {
        [P in keyof T & keyof AggregateDingtalkEmployeeEmploymentPeriod]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDingtalkEmployeeEmploymentPeriod[P]>
      : GetScalarType<T[P], AggregateDingtalkEmployeeEmploymentPeriod[P]>
  }




  export type DingtalkEmployeeEmploymentPeriodGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DingtalkEmployeeEmploymentPeriodWhereInput
    orderBy?: DingtalkEmployeeEmploymentPeriodOrderByWithAggregationInput | DingtalkEmployeeEmploymentPeriodOrderByWithAggregationInput[]
    by: DingtalkEmployeeEmploymentPeriodScalarFieldEnum[] | DingtalkEmployeeEmploymentPeriodScalarFieldEnum
    having?: DingtalkEmployeeEmploymentPeriodScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DingtalkEmployeeEmploymentPeriodCountAggregateInputType | true
    _avg?: DingtalkEmployeeEmploymentPeriodAvgAggregateInputType
    _sum?: DingtalkEmployeeEmploymentPeriodSumAggregateInputType
    _min?: DingtalkEmployeeEmploymentPeriodMinAggregateInputType
    _max?: DingtalkEmployeeEmploymentPeriodMaxAggregateInputType
  }

  export type DingtalkEmployeeEmploymentPeriodGroupByOutputType = {
    id: string
    userId: string
    periodIndex: number
    joinDate: Date
    leaveDate: Date | null
    countInTenure: boolean
    note: string
    createdAt: Date
    updatedAt: Date
    _count: DingtalkEmployeeEmploymentPeriodCountAggregateOutputType | null
    _avg: DingtalkEmployeeEmploymentPeriodAvgAggregateOutputType | null
    _sum: DingtalkEmployeeEmploymentPeriodSumAggregateOutputType | null
    _min: DingtalkEmployeeEmploymentPeriodMinAggregateOutputType | null
    _max: DingtalkEmployeeEmploymentPeriodMaxAggregateOutputType | null
  }

  type GetDingtalkEmployeeEmploymentPeriodGroupByPayload<T extends DingtalkEmployeeEmploymentPeriodGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DingtalkEmployeeEmploymentPeriodGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DingtalkEmployeeEmploymentPeriodGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DingtalkEmployeeEmploymentPeriodGroupByOutputType[P]>
            : GetScalarType<T[P], DingtalkEmployeeEmploymentPeriodGroupByOutputType[P]>
        }
      >
    >


  export type DingtalkEmployeeEmploymentPeriodSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    periodIndex?: boolean
    joinDate?: boolean
    leaveDate?: boolean
    countInTenure?: boolean
    note?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployeeEmploymentPeriod"]>

  export type DingtalkEmployeeEmploymentPeriodSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    periodIndex?: boolean
    joinDate?: boolean
    leaveDate?: boolean
    countInTenure?: boolean
    note?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployeeEmploymentPeriod"]>

  export type DingtalkEmployeeEmploymentPeriodSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    periodIndex?: boolean
    joinDate?: boolean
    leaveDate?: boolean
    countInTenure?: boolean
    note?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployeeEmploymentPeriod"]>

  export type DingtalkEmployeeEmploymentPeriodSelectScalar = {
    id?: boolean
    userId?: boolean
    periodIndex?: boolean
    joinDate?: boolean
    leaveDate?: boolean
    countInTenure?: boolean
    note?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DingtalkEmployeeEmploymentPeriodOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "periodIndex" | "joinDate" | "leaveDate" | "countInTenure" | "note" | "createdAt" | "updatedAt", ExtArgs["result"]["dingtalkEmployeeEmploymentPeriod"]>

  export type $DingtalkEmployeeEmploymentPeriodPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DingtalkEmployeeEmploymentPeriod"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      periodIndex: number
      joinDate: Date
      leaveDate: Date | null
      countInTenure: boolean
      note: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["dingtalkEmployeeEmploymentPeriod"]>
    composites: {}
  }

  type DingtalkEmployeeEmploymentPeriodGetPayload<S extends boolean | null | undefined | DingtalkEmployeeEmploymentPeriodDefaultArgs> = $Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload, S>

  type DingtalkEmployeeEmploymentPeriodCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DingtalkEmployeeEmploymentPeriodFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DingtalkEmployeeEmploymentPeriodCountAggregateInputType | true
    }

  export interface DingtalkEmployeeEmploymentPeriodDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DingtalkEmployeeEmploymentPeriod'], meta: { name: 'DingtalkEmployeeEmploymentPeriod' } }
    /**
     * Find zero or one DingtalkEmployeeEmploymentPeriod that matches the filter.
     * @param {DingtalkEmployeeEmploymentPeriodFindUniqueArgs} args - Arguments to find a DingtalkEmployeeEmploymentPeriod
     * @example
     * // Get one DingtalkEmployeeEmploymentPeriod
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DingtalkEmployeeEmploymentPeriodFindUniqueArgs>(args: SelectSubset<T, DingtalkEmployeeEmploymentPeriodFindUniqueArgs<ExtArgs>>): Prisma__DingtalkEmployeeEmploymentPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DingtalkEmployeeEmploymentPeriod that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DingtalkEmployeeEmploymentPeriodFindUniqueOrThrowArgs} args - Arguments to find a DingtalkEmployeeEmploymentPeriod
     * @example
     * // Get one DingtalkEmployeeEmploymentPeriod
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DingtalkEmployeeEmploymentPeriodFindUniqueOrThrowArgs>(args: SelectSubset<T, DingtalkEmployeeEmploymentPeriodFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DingtalkEmployeeEmploymentPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkEmployeeEmploymentPeriod 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 {DingtalkEmployeeEmploymentPeriodFindFirstArgs} args - Arguments to find a DingtalkEmployeeEmploymentPeriod
     * @example
     * // Get one DingtalkEmployeeEmploymentPeriod
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DingtalkEmployeeEmploymentPeriodFindFirstArgs>(args?: SelectSubset<T, DingtalkEmployeeEmploymentPeriodFindFirstArgs<ExtArgs>>): Prisma__DingtalkEmployeeEmploymentPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkEmployeeEmploymentPeriod 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 {DingtalkEmployeeEmploymentPeriodFindFirstOrThrowArgs} args - Arguments to find a DingtalkEmployeeEmploymentPeriod
     * @example
     * // Get one DingtalkEmployeeEmploymentPeriod
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DingtalkEmployeeEmploymentPeriodFindFirstOrThrowArgs>(args?: SelectSubset<T, DingtalkEmployeeEmploymentPeriodFindFirstOrThrowArgs<ExtArgs>>): Prisma__DingtalkEmployeeEmploymentPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DingtalkEmployeeEmploymentPeriods 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 {DingtalkEmployeeEmploymentPeriodFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DingtalkEmployeeEmploymentPeriods
     * const dingtalkEmployeeEmploymentPeriods = await prisma.dingtalkEmployeeEmploymentPeriod.findMany()
     * 
     * // Get first 10 DingtalkEmployeeEmploymentPeriods
     * const dingtalkEmployeeEmploymentPeriods = await prisma.dingtalkEmployeeEmploymentPeriod.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dingtalkEmployeeEmploymentPeriodWithIdOnly = await prisma.dingtalkEmployeeEmploymentPeriod.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DingtalkEmployeeEmploymentPeriodFindManyArgs>(args?: SelectSubset<T, DingtalkEmployeeEmploymentPeriodFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DingtalkEmployeeEmploymentPeriod.
     * @param {DingtalkEmployeeEmploymentPeriodCreateArgs} args - Arguments to create a DingtalkEmployeeEmploymentPeriod.
     * @example
     * // Create one DingtalkEmployeeEmploymentPeriod
     * const DingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.create({
     *   data: {
     *     // ... data to create a DingtalkEmployeeEmploymentPeriod
     *   }
     * })
     * 
     */
    create<T extends DingtalkEmployeeEmploymentPeriodCreateArgs>(args: SelectSubset<T, DingtalkEmployeeEmploymentPeriodCreateArgs<ExtArgs>>): Prisma__DingtalkEmployeeEmploymentPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DingtalkEmployeeEmploymentPeriods.
     * @param {DingtalkEmployeeEmploymentPeriodCreateManyArgs} args - Arguments to create many DingtalkEmployeeEmploymentPeriods.
     * @example
     * // Create many DingtalkEmployeeEmploymentPeriods
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DingtalkEmployeeEmploymentPeriodCreateManyArgs>(args?: SelectSubset<T, DingtalkEmployeeEmploymentPeriodCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DingtalkEmployeeEmploymentPeriods and returns the data saved in the database.
     * @param {DingtalkEmployeeEmploymentPeriodCreateManyAndReturnArgs} args - Arguments to create many DingtalkEmployeeEmploymentPeriods.
     * @example
     * // Create many DingtalkEmployeeEmploymentPeriods
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DingtalkEmployeeEmploymentPeriods and only return the `id`
     * const dingtalkEmployeeEmploymentPeriodWithIdOnly = await prisma.dingtalkEmployeeEmploymentPeriod.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 DingtalkEmployeeEmploymentPeriodCreateManyAndReturnArgs>(args?: SelectSubset<T, DingtalkEmployeeEmploymentPeriodCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DingtalkEmployeeEmploymentPeriod.
     * @param {DingtalkEmployeeEmploymentPeriodDeleteArgs} args - Arguments to delete one DingtalkEmployeeEmploymentPeriod.
     * @example
     * // Delete one DingtalkEmployeeEmploymentPeriod
     * const DingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.delete({
     *   where: {
     *     // ... filter to delete one DingtalkEmployeeEmploymentPeriod
     *   }
     * })
     * 
     */
    delete<T extends DingtalkEmployeeEmploymentPeriodDeleteArgs>(args: SelectSubset<T, DingtalkEmployeeEmploymentPeriodDeleteArgs<ExtArgs>>): Prisma__DingtalkEmployeeEmploymentPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DingtalkEmployeeEmploymentPeriod.
     * @param {DingtalkEmployeeEmploymentPeriodUpdateArgs} args - Arguments to update one DingtalkEmployeeEmploymentPeriod.
     * @example
     * // Update one DingtalkEmployeeEmploymentPeriod
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DingtalkEmployeeEmploymentPeriodUpdateArgs>(args: SelectSubset<T, DingtalkEmployeeEmploymentPeriodUpdateArgs<ExtArgs>>): Prisma__DingtalkEmployeeEmploymentPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DingtalkEmployeeEmploymentPeriods.
     * @param {DingtalkEmployeeEmploymentPeriodDeleteManyArgs} args - Arguments to filter DingtalkEmployeeEmploymentPeriods to delete.
     * @example
     * // Delete a few DingtalkEmployeeEmploymentPeriods
     * const { count } = await prisma.dingtalkEmployeeEmploymentPeriod.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DingtalkEmployeeEmploymentPeriodDeleteManyArgs>(args?: SelectSubset<T, DingtalkEmployeeEmploymentPeriodDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkEmployeeEmploymentPeriods.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeEmploymentPeriodUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DingtalkEmployeeEmploymentPeriods
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DingtalkEmployeeEmploymentPeriodUpdateManyArgs>(args: SelectSubset<T, DingtalkEmployeeEmploymentPeriodUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkEmployeeEmploymentPeriods and returns the data updated in the database.
     * @param {DingtalkEmployeeEmploymentPeriodUpdateManyAndReturnArgs} args - Arguments to update many DingtalkEmployeeEmploymentPeriods.
     * @example
     * // Update many DingtalkEmployeeEmploymentPeriods
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DingtalkEmployeeEmploymentPeriods and only return the `id`
     * const dingtalkEmployeeEmploymentPeriodWithIdOnly = await prisma.dingtalkEmployeeEmploymentPeriod.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 DingtalkEmployeeEmploymentPeriodUpdateManyAndReturnArgs>(args: SelectSubset<T, DingtalkEmployeeEmploymentPeriodUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DingtalkEmployeeEmploymentPeriod.
     * @param {DingtalkEmployeeEmploymentPeriodUpsertArgs} args - Arguments to update or create a DingtalkEmployeeEmploymentPeriod.
     * @example
     * // Update or create a DingtalkEmployeeEmploymentPeriod
     * const dingtalkEmployeeEmploymentPeriod = await prisma.dingtalkEmployeeEmploymentPeriod.upsert({
     *   create: {
     *     // ... data to create a DingtalkEmployeeEmploymentPeriod
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DingtalkEmployeeEmploymentPeriod we want to update
     *   }
     * })
     */
    upsert<T extends DingtalkEmployeeEmploymentPeriodUpsertArgs>(args: SelectSubset<T, DingtalkEmployeeEmploymentPeriodUpsertArgs<ExtArgs>>): Prisma__DingtalkEmployeeEmploymentPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeEmploymentPeriodPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DingtalkEmployeeEmploymentPeriods.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeEmploymentPeriodCountArgs} args - Arguments to filter DingtalkEmployeeEmploymentPeriods to count.
     * @example
     * // Count the number of DingtalkEmployeeEmploymentPeriods
     * const count = await prisma.dingtalkEmployeeEmploymentPeriod.count({
     *   where: {
     *     // ... the filter for the DingtalkEmployeeEmploymentPeriods we want to count
     *   }
     * })
    **/
    count<T extends DingtalkEmployeeEmploymentPeriodCountArgs>(
      args?: Subset<T, DingtalkEmployeeEmploymentPeriodCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DingtalkEmployeeEmploymentPeriodCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DingtalkEmployeeEmploymentPeriod.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeEmploymentPeriodAggregateArgs} 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 DingtalkEmployeeEmploymentPeriodAggregateArgs>(args: Subset<T, DingtalkEmployeeEmploymentPeriodAggregateArgs>): Prisma.PrismaPromise<GetDingtalkEmployeeEmploymentPeriodAggregateType<T>>

    /**
     * Group by DingtalkEmployeeEmploymentPeriod.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeEmploymentPeriodGroupByArgs} 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 DingtalkEmployeeEmploymentPeriodGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DingtalkEmployeeEmploymentPeriodGroupByArgs['orderBy'] }
        : { orderBy?: DingtalkEmployeeEmploymentPeriodGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DingtalkEmployeeEmploymentPeriodGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDingtalkEmployeeEmploymentPeriodGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DingtalkEmployeeEmploymentPeriod model
   */
  readonly fields: DingtalkEmployeeEmploymentPeriodFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DingtalkEmployeeEmploymentPeriod.
   * 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__DingtalkEmployeeEmploymentPeriodClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DingtalkEmployeeEmploymentPeriod model
   */
  interface DingtalkEmployeeEmploymentPeriodFieldRefs {
    readonly id: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'String'>
    readonly userId: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'String'>
    readonly periodIndex: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'Int'>
    readonly joinDate: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'DateTime'>
    readonly leaveDate: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'DateTime'>
    readonly countInTenure: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'Boolean'>
    readonly note: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'String'>
    readonly createdAt: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'DateTime'>
    readonly updatedAt: FieldRef<"DingtalkEmployeeEmploymentPeriod", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DingtalkEmployeeEmploymentPeriod findUnique
   */
  export type DingtalkEmployeeEmploymentPeriodFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeEmploymentPeriod to fetch.
     */
    where: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
  }

  /**
   * DingtalkEmployeeEmploymentPeriod findUniqueOrThrow
   */
  export type DingtalkEmployeeEmploymentPeriodFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeEmploymentPeriod to fetch.
     */
    where: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
  }

  /**
   * DingtalkEmployeeEmploymentPeriod findFirst
   */
  export type DingtalkEmployeeEmploymentPeriodFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeEmploymentPeriod to fetch.
     */
    where?: DingtalkEmployeeEmploymentPeriodWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployeeEmploymentPeriods to fetch.
     */
    orderBy?: DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput | DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkEmployeeEmploymentPeriods.
     */
    cursor?: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployeeEmploymentPeriods 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` DingtalkEmployeeEmploymentPeriods.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkEmployeeEmploymentPeriods.
     */
    distinct?: DingtalkEmployeeEmploymentPeriodScalarFieldEnum | DingtalkEmployeeEmploymentPeriodScalarFieldEnum[]
  }

  /**
   * DingtalkEmployeeEmploymentPeriod findFirstOrThrow
   */
  export type DingtalkEmployeeEmploymentPeriodFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeEmploymentPeriod to fetch.
     */
    where?: DingtalkEmployeeEmploymentPeriodWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployeeEmploymentPeriods to fetch.
     */
    orderBy?: DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput | DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkEmployeeEmploymentPeriods.
     */
    cursor?: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployeeEmploymentPeriods 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` DingtalkEmployeeEmploymentPeriods.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkEmployeeEmploymentPeriods.
     */
    distinct?: DingtalkEmployeeEmploymentPeriodScalarFieldEnum | DingtalkEmployeeEmploymentPeriodScalarFieldEnum[]
  }

  /**
   * DingtalkEmployeeEmploymentPeriod findMany
   */
  export type DingtalkEmployeeEmploymentPeriodFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeEmploymentPeriods to fetch.
     */
    where?: DingtalkEmployeeEmploymentPeriodWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployeeEmploymentPeriods to fetch.
     */
    orderBy?: DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput | DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DingtalkEmployeeEmploymentPeriods.
     */
    cursor?: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployeeEmploymentPeriods 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` DingtalkEmployeeEmploymentPeriods.
     */
    skip?: number
    distinct?: DingtalkEmployeeEmploymentPeriodScalarFieldEnum | DingtalkEmployeeEmploymentPeriodScalarFieldEnum[]
  }

  /**
   * DingtalkEmployeeEmploymentPeriod create
   */
  export type DingtalkEmployeeEmploymentPeriodCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * The data needed to create a DingtalkEmployeeEmploymentPeriod.
     */
    data: XOR<DingtalkEmployeeEmploymentPeriodCreateInput, DingtalkEmployeeEmploymentPeriodUncheckedCreateInput>
  }

  /**
   * DingtalkEmployeeEmploymentPeriod createMany
   */
  export type DingtalkEmployeeEmploymentPeriodCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DingtalkEmployeeEmploymentPeriods.
     */
    data: DingtalkEmployeeEmploymentPeriodCreateManyInput | DingtalkEmployeeEmploymentPeriodCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkEmployeeEmploymentPeriod createManyAndReturn
   */
  export type DingtalkEmployeeEmploymentPeriodCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * The data used to create many DingtalkEmployeeEmploymentPeriods.
     */
    data: DingtalkEmployeeEmploymentPeriodCreateManyInput | DingtalkEmployeeEmploymentPeriodCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkEmployeeEmploymentPeriod update
   */
  export type DingtalkEmployeeEmploymentPeriodUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * The data needed to update a DingtalkEmployeeEmploymentPeriod.
     */
    data: XOR<DingtalkEmployeeEmploymentPeriodUpdateInput, DingtalkEmployeeEmploymentPeriodUncheckedUpdateInput>
    /**
     * Choose, which DingtalkEmployeeEmploymentPeriod to update.
     */
    where: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
  }

  /**
   * DingtalkEmployeeEmploymentPeriod updateMany
   */
  export type DingtalkEmployeeEmploymentPeriodUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DingtalkEmployeeEmploymentPeriods.
     */
    data: XOR<DingtalkEmployeeEmploymentPeriodUpdateManyMutationInput, DingtalkEmployeeEmploymentPeriodUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkEmployeeEmploymentPeriods to update
     */
    where?: DingtalkEmployeeEmploymentPeriodWhereInput
    /**
     * Limit how many DingtalkEmployeeEmploymentPeriods to update.
     */
    limit?: number
  }

  /**
   * DingtalkEmployeeEmploymentPeriod updateManyAndReturn
   */
  export type DingtalkEmployeeEmploymentPeriodUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * The data used to update DingtalkEmployeeEmploymentPeriods.
     */
    data: XOR<DingtalkEmployeeEmploymentPeriodUpdateManyMutationInput, DingtalkEmployeeEmploymentPeriodUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkEmployeeEmploymentPeriods to update
     */
    where?: DingtalkEmployeeEmploymentPeriodWhereInput
    /**
     * Limit how many DingtalkEmployeeEmploymentPeriods to update.
     */
    limit?: number
  }

  /**
   * DingtalkEmployeeEmploymentPeriod upsert
   */
  export type DingtalkEmployeeEmploymentPeriodUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * The filter to search for the DingtalkEmployeeEmploymentPeriod to update in case it exists.
     */
    where: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
    /**
     * In case the DingtalkEmployeeEmploymentPeriod found by the `where` argument doesn't exist, create a new DingtalkEmployeeEmploymentPeriod with this data.
     */
    create: XOR<DingtalkEmployeeEmploymentPeriodCreateInput, DingtalkEmployeeEmploymentPeriodUncheckedCreateInput>
    /**
     * In case the DingtalkEmployeeEmploymentPeriod was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DingtalkEmployeeEmploymentPeriodUpdateInput, DingtalkEmployeeEmploymentPeriodUncheckedUpdateInput>
  }

  /**
   * DingtalkEmployeeEmploymentPeriod delete
   */
  export type DingtalkEmployeeEmploymentPeriodDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
    /**
     * Filter which DingtalkEmployeeEmploymentPeriod to delete.
     */
    where: DingtalkEmployeeEmploymentPeriodWhereUniqueInput
  }

  /**
   * DingtalkEmployeeEmploymentPeriod deleteMany
   */
  export type DingtalkEmployeeEmploymentPeriodDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkEmployeeEmploymentPeriods to delete
     */
    where?: DingtalkEmployeeEmploymentPeriodWhereInput
    /**
     * Limit how many DingtalkEmployeeEmploymentPeriods to delete.
     */
    limit?: number
  }

  /**
   * DingtalkEmployeeEmploymentPeriod without action
   */
  export type DingtalkEmployeeEmploymentPeriodDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeEmploymentPeriod
     */
    select?: DingtalkEmployeeEmploymentPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeEmploymentPeriod
     */
    omit?: DingtalkEmployeeEmploymentPeriodOmit<ExtArgs> | null
  }


  /**
   * Model DingtalkEmployeeSuspensionPeriod
   */

  export type AggregateDingtalkEmployeeSuspensionPeriod = {
    _count: DingtalkEmployeeSuspensionPeriodCountAggregateOutputType | null
    _min: DingtalkEmployeeSuspensionPeriodMinAggregateOutputType | null
    _max: DingtalkEmployeeSuspensionPeriodMaxAggregateOutputType | null
  }

  export type DingtalkEmployeeSuspensionPeriodMinAggregateOutputType = {
    id: string | null
    userId: string | null
    startDate: Date | null
    endDate: Date | null
    reason: string | null
    note: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkEmployeeSuspensionPeriodMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    startDate: Date | null
    endDate: Date | null
    reason: string | null
    note: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkEmployeeSuspensionPeriodCountAggregateOutputType = {
    id: number
    userId: number
    startDate: number
    endDate: number
    reason: number
    note: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DingtalkEmployeeSuspensionPeriodMinAggregateInputType = {
    id?: true
    userId?: true
    startDate?: true
    endDate?: true
    reason?: true
    note?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkEmployeeSuspensionPeriodMaxAggregateInputType = {
    id?: true
    userId?: true
    startDate?: true
    endDate?: true
    reason?: true
    note?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkEmployeeSuspensionPeriodCountAggregateInputType = {
    id?: true
    userId?: true
    startDate?: true
    endDate?: true
    reason?: true
    note?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DingtalkEmployeeSuspensionPeriodAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkEmployeeSuspensionPeriod to aggregate.
     */
    where?: DingtalkEmployeeSuspensionPeriodWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployeeSuspensionPeriods to fetch.
     */
    orderBy?: DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput | DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployeeSuspensionPeriods 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` DingtalkEmployeeSuspensionPeriods.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DingtalkEmployeeSuspensionPeriods
    **/
    _count?: true | DingtalkEmployeeSuspensionPeriodCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DingtalkEmployeeSuspensionPeriodMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DingtalkEmployeeSuspensionPeriodMaxAggregateInputType
  }

  export type GetDingtalkEmployeeSuspensionPeriodAggregateType<T extends DingtalkEmployeeSuspensionPeriodAggregateArgs> = {
        [P in keyof T & keyof AggregateDingtalkEmployeeSuspensionPeriod]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDingtalkEmployeeSuspensionPeriod[P]>
      : GetScalarType<T[P], AggregateDingtalkEmployeeSuspensionPeriod[P]>
  }




  export type DingtalkEmployeeSuspensionPeriodGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DingtalkEmployeeSuspensionPeriodWhereInput
    orderBy?: DingtalkEmployeeSuspensionPeriodOrderByWithAggregationInput | DingtalkEmployeeSuspensionPeriodOrderByWithAggregationInput[]
    by: DingtalkEmployeeSuspensionPeriodScalarFieldEnum[] | DingtalkEmployeeSuspensionPeriodScalarFieldEnum
    having?: DingtalkEmployeeSuspensionPeriodScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DingtalkEmployeeSuspensionPeriodCountAggregateInputType | true
    _min?: DingtalkEmployeeSuspensionPeriodMinAggregateInputType
    _max?: DingtalkEmployeeSuspensionPeriodMaxAggregateInputType
  }

  export type DingtalkEmployeeSuspensionPeriodGroupByOutputType = {
    id: string
    userId: string
    startDate: Date
    endDate: Date | null
    reason: string
    note: string
    createdAt: Date
    updatedAt: Date
    _count: DingtalkEmployeeSuspensionPeriodCountAggregateOutputType | null
    _min: DingtalkEmployeeSuspensionPeriodMinAggregateOutputType | null
    _max: DingtalkEmployeeSuspensionPeriodMaxAggregateOutputType | null
  }

  type GetDingtalkEmployeeSuspensionPeriodGroupByPayload<T extends DingtalkEmployeeSuspensionPeriodGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DingtalkEmployeeSuspensionPeriodGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DingtalkEmployeeSuspensionPeriodGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DingtalkEmployeeSuspensionPeriodGroupByOutputType[P]>
            : GetScalarType<T[P], DingtalkEmployeeSuspensionPeriodGroupByOutputType[P]>
        }
      >
    >


  export type DingtalkEmployeeSuspensionPeriodSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    startDate?: boolean
    endDate?: boolean
    reason?: boolean
    note?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployeeSuspensionPeriod"]>

  export type DingtalkEmployeeSuspensionPeriodSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    startDate?: boolean
    endDate?: boolean
    reason?: boolean
    note?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployeeSuspensionPeriod"]>

  export type DingtalkEmployeeSuspensionPeriodSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    startDate?: boolean
    endDate?: boolean
    reason?: boolean
    note?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkEmployeeSuspensionPeriod"]>

  export type DingtalkEmployeeSuspensionPeriodSelectScalar = {
    id?: boolean
    userId?: boolean
    startDate?: boolean
    endDate?: boolean
    reason?: boolean
    note?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DingtalkEmployeeSuspensionPeriodOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "startDate" | "endDate" | "reason" | "note" | "createdAt" | "updatedAt", ExtArgs["result"]["dingtalkEmployeeSuspensionPeriod"]>

  export type $DingtalkEmployeeSuspensionPeriodPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DingtalkEmployeeSuspensionPeriod"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      startDate: Date
      endDate: Date | null
      reason: string
      note: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["dingtalkEmployeeSuspensionPeriod"]>
    composites: {}
  }

  type DingtalkEmployeeSuspensionPeriodGetPayload<S extends boolean | null | undefined | DingtalkEmployeeSuspensionPeriodDefaultArgs> = $Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload, S>

  type DingtalkEmployeeSuspensionPeriodCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DingtalkEmployeeSuspensionPeriodFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DingtalkEmployeeSuspensionPeriodCountAggregateInputType | true
    }

  export interface DingtalkEmployeeSuspensionPeriodDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DingtalkEmployeeSuspensionPeriod'], meta: { name: 'DingtalkEmployeeSuspensionPeriod' } }
    /**
     * Find zero or one DingtalkEmployeeSuspensionPeriod that matches the filter.
     * @param {DingtalkEmployeeSuspensionPeriodFindUniqueArgs} args - Arguments to find a DingtalkEmployeeSuspensionPeriod
     * @example
     * // Get one DingtalkEmployeeSuspensionPeriod
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DingtalkEmployeeSuspensionPeriodFindUniqueArgs>(args: SelectSubset<T, DingtalkEmployeeSuspensionPeriodFindUniqueArgs<ExtArgs>>): Prisma__DingtalkEmployeeSuspensionPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DingtalkEmployeeSuspensionPeriod that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DingtalkEmployeeSuspensionPeriodFindUniqueOrThrowArgs} args - Arguments to find a DingtalkEmployeeSuspensionPeriod
     * @example
     * // Get one DingtalkEmployeeSuspensionPeriod
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DingtalkEmployeeSuspensionPeriodFindUniqueOrThrowArgs>(args: SelectSubset<T, DingtalkEmployeeSuspensionPeriodFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DingtalkEmployeeSuspensionPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkEmployeeSuspensionPeriod 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 {DingtalkEmployeeSuspensionPeriodFindFirstArgs} args - Arguments to find a DingtalkEmployeeSuspensionPeriod
     * @example
     * // Get one DingtalkEmployeeSuspensionPeriod
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DingtalkEmployeeSuspensionPeriodFindFirstArgs>(args?: SelectSubset<T, DingtalkEmployeeSuspensionPeriodFindFirstArgs<ExtArgs>>): Prisma__DingtalkEmployeeSuspensionPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkEmployeeSuspensionPeriod 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 {DingtalkEmployeeSuspensionPeriodFindFirstOrThrowArgs} args - Arguments to find a DingtalkEmployeeSuspensionPeriod
     * @example
     * // Get one DingtalkEmployeeSuspensionPeriod
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DingtalkEmployeeSuspensionPeriodFindFirstOrThrowArgs>(args?: SelectSubset<T, DingtalkEmployeeSuspensionPeriodFindFirstOrThrowArgs<ExtArgs>>): Prisma__DingtalkEmployeeSuspensionPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DingtalkEmployeeSuspensionPeriods 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 {DingtalkEmployeeSuspensionPeriodFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DingtalkEmployeeSuspensionPeriods
     * const dingtalkEmployeeSuspensionPeriods = await prisma.dingtalkEmployeeSuspensionPeriod.findMany()
     * 
     * // Get first 10 DingtalkEmployeeSuspensionPeriods
     * const dingtalkEmployeeSuspensionPeriods = await prisma.dingtalkEmployeeSuspensionPeriod.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dingtalkEmployeeSuspensionPeriodWithIdOnly = await prisma.dingtalkEmployeeSuspensionPeriod.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DingtalkEmployeeSuspensionPeriodFindManyArgs>(args?: SelectSubset<T, DingtalkEmployeeSuspensionPeriodFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DingtalkEmployeeSuspensionPeriod.
     * @param {DingtalkEmployeeSuspensionPeriodCreateArgs} args - Arguments to create a DingtalkEmployeeSuspensionPeriod.
     * @example
     * // Create one DingtalkEmployeeSuspensionPeriod
     * const DingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.create({
     *   data: {
     *     // ... data to create a DingtalkEmployeeSuspensionPeriod
     *   }
     * })
     * 
     */
    create<T extends DingtalkEmployeeSuspensionPeriodCreateArgs>(args: SelectSubset<T, DingtalkEmployeeSuspensionPeriodCreateArgs<ExtArgs>>): Prisma__DingtalkEmployeeSuspensionPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DingtalkEmployeeSuspensionPeriods.
     * @param {DingtalkEmployeeSuspensionPeriodCreateManyArgs} args - Arguments to create many DingtalkEmployeeSuspensionPeriods.
     * @example
     * // Create many DingtalkEmployeeSuspensionPeriods
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DingtalkEmployeeSuspensionPeriodCreateManyArgs>(args?: SelectSubset<T, DingtalkEmployeeSuspensionPeriodCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DingtalkEmployeeSuspensionPeriods and returns the data saved in the database.
     * @param {DingtalkEmployeeSuspensionPeriodCreateManyAndReturnArgs} args - Arguments to create many DingtalkEmployeeSuspensionPeriods.
     * @example
     * // Create many DingtalkEmployeeSuspensionPeriods
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DingtalkEmployeeSuspensionPeriods and only return the `id`
     * const dingtalkEmployeeSuspensionPeriodWithIdOnly = await prisma.dingtalkEmployeeSuspensionPeriod.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 DingtalkEmployeeSuspensionPeriodCreateManyAndReturnArgs>(args?: SelectSubset<T, DingtalkEmployeeSuspensionPeriodCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DingtalkEmployeeSuspensionPeriod.
     * @param {DingtalkEmployeeSuspensionPeriodDeleteArgs} args - Arguments to delete one DingtalkEmployeeSuspensionPeriod.
     * @example
     * // Delete one DingtalkEmployeeSuspensionPeriod
     * const DingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.delete({
     *   where: {
     *     // ... filter to delete one DingtalkEmployeeSuspensionPeriod
     *   }
     * })
     * 
     */
    delete<T extends DingtalkEmployeeSuspensionPeriodDeleteArgs>(args: SelectSubset<T, DingtalkEmployeeSuspensionPeriodDeleteArgs<ExtArgs>>): Prisma__DingtalkEmployeeSuspensionPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DingtalkEmployeeSuspensionPeriod.
     * @param {DingtalkEmployeeSuspensionPeriodUpdateArgs} args - Arguments to update one DingtalkEmployeeSuspensionPeriod.
     * @example
     * // Update one DingtalkEmployeeSuspensionPeriod
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DingtalkEmployeeSuspensionPeriodUpdateArgs>(args: SelectSubset<T, DingtalkEmployeeSuspensionPeriodUpdateArgs<ExtArgs>>): Prisma__DingtalkEmployeeSuspensionPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DingtalkEmployeeSuspensionPeriods.
     * @param {DingtalkEmployeeSuspensionPeriodDeleteManyArgs} args - Arguments to filter DingtalkEmployeeSuspensionPeriods to delete.
     * @example
     * // Delete a few DingtalkEmployeeSuspensionPeriods
     * const { count } = await prisma.dingtalkEmployeeSuspensionPeriod.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DingtalkEmployeeSuspensionPeriodDeleteManyArgs>(args?: SelectSubset<T, DingtalkEmployeeSuspensionPeriodDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkEmployeeSuspensionPeriods.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeSuspensionPeriodUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DingtalkEmployeeSuspensionPeriods
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DingtalkEmployeeSuspensionPeriodUpdateManyArgs>(args: SelectSubset<T, DingtalkEmployeeSuspensionPeriodUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkEmployeeSuspensionPeriods and returns the data updated in the database.
     * @param {DingtalkEmployeeSuspensionPeriodUpdateManyAndReturnArgs} args - Arguments to update many DingtalkEmployeeSuspensionPeriods.
     * @example
     * // Update many DingtalkEmployeeSuspensionPeriods
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DingtalkEmployeeSuspensionPeriods and only return the `id`
     * const dingtalkEmployeeSuspensionPeriodWithIdOnly = await prisma.dingtalkEmployeeSuspensionPeriod.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 DingtalkEmployeeSuspensionPeriodUpdateManyAndReturnArgs>(args: SelectSubset<T, DingtalkEmployeeSuspensionPeriodUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DingtalkEmployeeSuspensionPeriod.
     * @param {DingtalkEmployeeSuspensionPeriodUpsertArgs} args - Arguments to update or create a DingtalkEmployeeSuspensionPeriod.
     * @example
     * // Update or create a DingtalkEmployeeSuspensionPeriod
     * const dingtalkEmployeeSuspensionPeriod = await prisma.dingtalkEmployeeSuspensionPeriod.upsert({
     *   create: {
     *     // ... data to create a DingtalkEmployeeSuspensionPeriod
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DingtalkEmployeeSuspensionPeriod we want to update
     *   }
     * })
     */
    upsert<T extends DingtalkEmployeeSuspensionPeriodUpsertArgs>(args: SelectSubset<T, DingtalkEmployeeSuspensionPeriodUpsertArgs<ExtArgs>>): Prisma__DingtalkEmployeeSuspensionPeriodClient<$Result.GetResult<Prisma.$DingtalkEmployeeSuspensionPeriodPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DingtalkEmployeeSuspensionPeriods.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeSuspensionPeriodCountArgs} args - Arguments to filter DingtalkEmployeeSuspensionPeriods to count.
     * @example
     * // Count the number of DingtalkEmployeeSuspensionPeriods
     * const count = await prisma.dingtalkEmployeeSuspensionPeriod.count({
     *   where: {
     *     // ... the filter for the DingtalkEmployeeSuspensionPeriods we want to count
     *   }
     * })
    **/
    count<T extends DingtalkEmployeeSuspensionPeriodCountArgs>(
      args?: Subset<T, DingtalkEmployeeSuspensionPeriodCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DingtalkEmployeeSuspensionPeriodCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DingtalkEmployeeSuspensionPeriod.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeSuspensionPeriodAggregateArgs} 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 DingtalkEmployeeSuspensionPeriodAggregateArgs>(args: Subset<T, DingtalkEmployeeSuspensionPeriodAggregateArgs>): Prisma.PrismaPromise<GetDingtalkEmployeeSuspensionPeriodAggregateType<T>>

    /**
     * Group by DingtalkEmployeeSuspensionPeriod.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkEmployeeSuspensionPeriodGroupByArgs} 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 DingtalkEmployeeSuspensionPeriodGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DingtalkEmployeeSuspensionPeriodGroupByArgs['orderBy'] }
        : { orderBy?: DingtalkEmployeeSuspensionPeriodGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DingtalkEmployeeSuspensionPeriodGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDingtalkEmployeeSuspensionPeriodGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DingtalkEmployeeSuspensionPeriod model
   */
  readonly fields: DingtalkEmployeeSuspensionPeriodFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DingtalkEmployeeSuspensionPeriod.
   * 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__DingtalkEmployeeSuspensionPeriodClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DingtalkEmployeeSuspensionPeriod model
   */
  interface DingtalkEmployeeSuspensionPeriodFieldRefs {
    readonly id: FieldRef<"DingtalkEmployeeSuspensionPeriod", 'String'>
    readonly userId: FieldRef<"DingtalkEmployeeSuspensionPeriod", 'String'>
    readonly startDate: FieldRef<"DingtalkEmployeeSuspensionPeriod", 'DateTime'>
    readonly endDate: FieldRef<"DingtalkEmployeeSuspensionPeriod", 'DateTime'>
    readonly reason: FieldRef<"DingtalkEmployeeSuspensionPeriod", 'String'>
    readonly note: FieldRef<"DingtalkEmployeeSuspensionPeriod", 'String'>
    readonly createdAt: FieldRef<"DingtalkEmployeeSuspensionPeriod", 'DateTime'>
    readonly updatedAt: FieldRef<"DingtalkEmployeeSuspensionPeriod", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DingtalkEmployeeSuspensionPeriod findUnique
   */
  export type DingtalkEmployeeSuspensionPeriodFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeSuspensionPeriod to fetch.
     */
    where: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
  }

  /**
   * DingtalkEmployeeSuspensionPeriod findUniqueOrThrow
   */
  export type DingtalkEmployeeSuspensionPeriodFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeSuspensionPeriod to fetch.
     */
    where: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
  }

  /**
   * DingtalkEmployeeSuspensionPeriod findFirst
   */
  export type DingtalkEmployeeSuspensionPeriodFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeSuspensionPeriod to fetch.
     */
    where?: DingtalkEmployeeSuspensionPeriodWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployeeSuspensionPeriods to fetch.
     */
    orderBy?: DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput | DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkEmployeeSuspensionPeriods.
     */
    cursor?: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployeeSuspensionPeriods 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` DingtalkEmployeeSuspensionPeriods.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkEmployeeSuspensionPeriods.
     */
    distinct?: DingtalkEmployeeSuspensionPeriodScalarFieldEnum | DingtalkEmployeeSuspensionPeriodScalarFieldEnum[]
  }

  /**
   * DingtalkEmployeeSuspensionPeriod findFirstOrThrow
   */
  export type DingtalkEmployeeSuspensionPeriodFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeSuspensionPeriod to fetch.
     */
    where?: DingtalkEmployeeSuspensionPeriodWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployeeSuspensionPeriods to fetch.
     */
    orderBy?: DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput | DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkEmployeeSuspensionPeriods.
     */
    cursor?: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployeeSuspensionPeriods 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` DingtalkEmployeeSuspensionPeriods.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkEmployeeSuspensionPeriods.
     */
    distinct?: DingtalkEmployeeSuspensionPeriodScalarFieldEnum | DingtalkEmployeeSuspensionPeriodScalarFieldEnum[]
  }

  /**
   * DingtalkEmployeeSuspensionPeriod findMany
   */
  export type DingtalkEmployeeSuspensionPeriodFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkEmployeeSuspensionPeriods to fetch.
     */
    where?: DingtalkEmployeeSuspensionPeriodWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkEmployeeSuspensionPeriods to fetch.
     */
    orderBy?: DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput | DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DingtalkEmployeeSuspensionPeriods.
     */
    cursor?: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkEmployeeSuspensionPeriods 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` DingtalkEmployeeSuspensionPeriods.
     */
    skip?: number
    distinct?: DingtalkEmployeeSuspensionPeriodScalarFieldEnum | DingtalkEmployeeSuspensionPeriodScalarFieldEnum[]
  }

  /**
   * DingtalkEmployeeSuspensionPeriod create
   */
  export type DingtalkEmployeeSuspensionPeriodCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * The data needed to create a DingtalkEmployeeSuspensionPeriod.
     */
    data: XOR<DingtalkEmployeeSuspensionPeriodCreateInput, DingtalkEmployeeSuspensionPeriodUncheckedCreateInput>
  }

  /**
   * DingtalkEmployeeSuspensionPeriod createMany
   */
  export type DingtalkEmployeeSuspensionPeriodCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DingtalkEmployeeSuspensionPeriods.
     */
    data: DingtalkEmployeeSuspensionPeriodCreateManyInput | DingtalkEmployeeSuspensionPeriodCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkEmployeeSuspensionPeriod createManyAndReturn
   */
  export type DingtalkEmployeeSuspensionPeriodCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * The data used to create many DingtalkEmployeeSuspensionPeriods.
     */
    data: DingtalkEmployeeSuspensionPeriodCreateManyInput | DingtalkEmployeeSuspensionPeriodCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkEmployeeSuspensionPeriod update
   */
  export type DingtalkEmployeeSuspensionPeriodUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * The data needed to update a DingtalkEmployeeSuspensionPeriod.
     */
    data: XOR<DingtalkEmployeeSuspensionPeriodUpdateInput, DingtalkEmployeeSuspensionPeriodUncheckedUpdateInput>
    /**
     * Choose, which DingtalkEmployeeSuspensionPeriod to update.
     */
    where: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
  }

  /**
   * DingtalkEmployeeSuspensionPeriod updateMany
   */
  export type DingtalkEmployeeSuspensionPeriodUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DingtalkEmployeeSuspensionPeriods.
     */
    data: XOR<DingtalkEmployeeSuspensionPeriodUpdateManyMutationInput, DingtalkEmployeeSuspensionPeriodUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkEmployeeSuspensionPeriods to update
     */
    where?: DingtalkEmployeeSuspensionPeriodWhereInput
    /**
     * Limit how many DingtalkEmployeeSuspensionPeriods to update.
     */
    limit?: number
  }

  /**
   * DingtalkEmployeeSuspensionPeriod updateManyAndReturn
   */
  export type DingtalkEmployeeSuspensionPeriodUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * The data used to update DingtalkEmployeeSuspensionPeriods.
     */
    data: XOR<DingtalkEmployeeSuspensionPeriodUpdateManyMutationInput, DingtalkEmployeeSuspensionPeriodUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkEmployeeSuspensionPeriods to update
     */
    where?: DingtalkEmployeeSuspensionPeriodWhereInput
    /**
     * Limit how many DingtalkEmployeeSuspensionPeriods to update.
     */
    limit?: number
  }

  /**
   * DingtalkEmployeeSuspensionPeriod upsert
   */
  export type DingtalkEmployeeSuspensionPeriodUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * The filter to search for the DingtalkEmployeeSuspensionPeriod to update in case it exists.
     */
    where: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
    /**
     * In case the DingtalkEmployeeSuspensionPeriod found by the `where` argument doesn't exist, create a new DingtalkEmployeeSuspensionPeriod with this data.
     */
    create: XOR<DingtalkEmployeeSuspensionPeriodCreateInput, DingtalkEmployeeSuspensionPeriodUncheckedCreateInput>
    /**
     * In case the DingtalkEmployeeSuspensionPeriod was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DingtalkEmployeeSuspensionPeriodUpdateInput, DingtalkEmployeeSuspensionPeriodUncheckedUpdateInput>
  }

  /**
   * DingtalkEmployeeSuspensionPeriod delete
   */
  export type DingtalkEmployeeSuspensionPeriodDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
    /**
     * Filter which DingtalkEmployeeSuspensionPeriod to delete.
     */
    where: DingtalkEmployeeSuspensionPeriodWhereUniqueInput
  }

  /**
   * DingtalkEmployeeSuspensionPeriod deleteMany
   */
  export type DingtalkEmployeeSuspensionPeriodDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkEmployeeSuspensionPeriods to delete
     */
    where?: DingtalkEmployeeSuspensionPeriodWhereInput
    /**
     * Limit how many DingtalkEmployeeSuspensionPeriods to delete.
     */
    limit?: number
  }

  /**
   * DingtalkEmployeeSuspensionPeriod without action
   */
  export type DingtalkEmployeeSuspensionPeriodDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkEmployeeSuspensionPeriod
     */
    select?: DingtalkEmployeeSuspensionPeriodSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkEmployeeSuspensionPeriod
     */
    omit?: DingtalkEmployeeSuspensionPeriodOmit<ExtArgs> | null
  }


  /**
   * Model SapPurchaseCache
   */

  export type AggregateSapPurchaseCache = {
    _count: SapPurchaseCacheCountAggregateOutputType | null
    _avg: SapPurchaseCacheAvgAggregateOutputType | null
    _sum: SapPurchaseCacheSumAggregateOutputType | null
    _min: SapPurchaseCacheMinAggregateOutputType | null
    _max: SapPurchaseCacheMaxAggregateOutputType | null
  }

  export type SapPurchaseCacheAvgAggregateOutputType = {
    budgetAmount: Decimal | null
  }

  export type SapPurchaseCacheSumAggregateOutputType = {
    budgetAmount: Decimal | null
  }

  export type SapPurchaseCacheMinAggregateOutputType = {
    id: string | null
    serialNumber: string | null
    formInstanceId: string | null
    sapEnv: string | null
    applicantName: string | null
    applicantDept: string | null
    budgetNumber: string | null
    budgetAmount: Decimal | null
    purchaseProjectDescription: string | null
    applicationDate: string | null
    demandCategory: string | null
    purchasingCompanyName: string | null
    materialGroup: string | null
    yidaModifiedAt: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SapPurchaseCacheMaxAggregateOutputType = {
    id: string | null
    serialNumber: string | null
    formInstanceId: string | null
    sapEnv: string | null
    applicantName: string | null
    applicantDept: string | null
    budgetNumber: string | null
    budgetAmount: Decimal | null
    purchaseProjectDescription: string | null
    applicationDate: string | null
    demandCategory: string | null
    purchasingCompanyName: string | null
    materialGroup: string | null
    yidaModifiedAt: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SapPurchaseCacheCountAggregateOutputType = {
    id: number
    serialNumber: number
    formInstanceId: number
    sapEnv: number
    applicantName: number
    applicantDept: number
    budgetNumber: number
    budgetAmount: number
    purchaseProjectDescription: number
    applicationDate: number
    demandCategory: number
    purchasingCompanyName: number
    materialGroup: number
    formData: number
    yidaModifiedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SapPurchaseCacheAvgAggregateInputType = {
    budgetAmount?: true
  }

  export type SapPurchaseCacheSumAggregateInputType = {
    budgetAmount?: true
  }

  export type SapPurchaseCacheMinAggregateInputType = {
    id?: true
    serialNumber?: true
    formInstanceId?: true
    sapEnv?: true
    applicantName?: true
    applicantDept?: true
    budgetNumber?: true
    budgetAmount?: true
    purchaseProjectDescription?: true
    applicationDate?: true
    demandCategory?: true
    purchasingCompanyName?: true
    materialGroup?: true
    yidaModifiedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SapPurchaseCacheMaxAggregateInputType = {
    id?: true
    serialNumber?: true
    formInstanceId?: true
    sapEnv?: true
    applicantName?: true
    applicantDept?: true
    budgetNumber?: true
    budgetAmount?: true
    purchaseProjectDescription?: true
    applicationDate?: true
    demandCategory?: true
    purchasingCompanyName?: true
    materialGroup?: true
    yidaModifiedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SapPurchaseCacheCountAggregateInputType = {
    id?: true
    serialNumber?: true
    formInstanceId?: true
    sapEnv?: true
    applicantName?: true
    applicantDept?: true
    budgetNumber?: true
    budgetAmount?: true
    purchaseProjectDescription?: true
    applicationDate?: true
    demandCategory?: true
    purchasingCompanyName?: true
    materialGroup?: true
    formData?: true
    yidaModifiedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SapPurchaseCacheAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SapPurchaseCache to aggregate.
     */
    where?: SapPurchaseCacheWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SapPurchaseCaches to fetch.
     */
    orderBy?: SapPurchaseCacheOrderByWithRelationInput | SapPurchaseCacheOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SapPurchaseCacheWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SapPurchaseCaches 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` SapPurchaseCaches.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SapPurchaseCaches
    **/
    _count?: true | SapPurchaseCacheCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SapPurchaseCacheAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SapPurchaseCacheSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SapPurchaseCacheMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SapPurchaseCacheMaxAggregateInputType
  }

  export type GetSapPurchaseCacheAggregateType<T extends SapPurchaseCacheAggregateArgs> = {
        [P in keyof T & keyof AggregateSapPurchaseCache]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSapPurchaseCache[P]>
      : GetScalarType<T[P], AggregateSapPurchaseCache[P]>
  }




  export type SapPurchaseCacheGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SapPurchaseCacheWhereInput
    orderBy?: SapPurchaseCacheOrderByWithAggregationInput | SapPurchaseCacheOrderByWithAggregationInput[]
    by: SapPurchaseCacheScalarFieldEnum[] | SapPurchaseCacheScalarFieldEnum
    having?: SapPurchaseCacheScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SapPurchaseCacheCountAggregateInputType | true
    _avg?: SapPurchaseCacheAvgAggregateInputType
    _sum?: SapPurchaseCacheSumAggregateInputType
    _min?: SapPurchaseCacheMinAggregateInputType
    _max?: SapPurchaseCacheMaxAggregateInputType
  }

  export type SapPurchaseCacheGroupByOutputType = {
    id: string
    serialNumber: string
    formInstanceId: string
    sapEnv: string
    applicantName: string
    applicantDept: string
    budgetNumber: string
    budgetAmount: Decimal
    purchaseProjectDescription: string
    applicationDate: string
    demandCategory: string
    purchasingCompanyName: string
    materialGroup: string
    formData: JsonValue
    yidaModifiedAt: string
    createdAt: Date
    updatedAt: Date
    _count: SapPurchaseCacheCountAggregateOutputType | null
    _avg: SapPurchaseCacheAvgAggregateOutputType | null
    _sum: SapPurchaseCacheSumAggregateOutputType | null
    _min: SapPurchaseCacheMinAggregateOutputType | null
    _max: SapPurchaseCacheMaxAggregateOutputType | null
  }

  type GetSapPurchaseCacheGroupByPayload<T extends SapPurchaseCacheGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SapPurchaseCacheGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SapPurchaseCacheGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SapPurchaseCacheGroupByOutputType[P]>
            : GetScalarType<T[P], SapPurchaseCacheGroupByOutputType[P]>
        }
      >
    >


  export type SapPurchaseCacheSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    serialNumber?: boolean
    formInstanceId?: boolean
    sapEnv?: boolean
    applicantName?: boolean
    applicantDept?: boolean
    budgetNumber?: boolean
    budgetAmount?: boolean
    purchaseProjectDescription?: boolean
    applicationDate?: boolean
    demandCategory?: boolean
    purchasingCompanyName?: boolean
    materialGroup?: boolean
    formData?: boolean
    yidaModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sapPurchaseCache"]>

  export type SapPurchaseCacheSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    serialNumber?: boolean
    formInstanceId?: boolean
    sapEnv?: boolean
    applicantName?: boolean
    applicantDept?: boolean
    budgetNumber?: boolean
    budgetAmount?: boolean
    purchaseProjectDescription?: boolean
    applicationDate?: boolean
    demandCategory?: boolean
    purchasingCompanyName?: boolean
    materialGroup?: boolean
    formData?: boolean
    yidaModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sapPurchaseCache"]>

  export type SapPurchaseCacheSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    serialNumber?: boolean
    formInstanceId?: boolean
    sapEnv?: boolean
    applicantName?: boolean
    applicantDept?: boolean
    budgetNumber?: boolean
    budgetAmount?: boolean
    purchaseProjectDescription?: boolean
    applicationDate?: boolean
    demandCategory?: boolean
    purchasingCompanyName?: boolean
    materialGroup?: boolean
    formData?: boolean
    yidaModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sapPurchaseCache"]>

  export type SapPurchaseCacheSelectScalar = {
    id?: boolean
    serialNumber?: boolean
    formInstanceId?: boolean
    sapEnv?: boolean
    applicantName?: boolean
    applicantDept?: boolean
    budgetNumber?: boolean
    budgetAmount?: boolean
    purchaseProjectDescription?: boolean
    applicationDate?: boolean
    demandCategory?: boolean
    purchasingCompanyName?: boolean
    materialGroup?: boolean
    formData?: boolean
    yidaModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SapPurchaseCacheOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "serialNumber" | "formInstanceId" | "sapEnv" | "applicantName" | "applicantDept" | "budgetNumber" | "budgetAmount" | "purchaseProjectDescription" | "applicationDate" | "demandCategory" | "purchasingCompanyName" | "materialGroup" | "formData" | "yidaModifiedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["sapPurchaseCache"]>

  export type $SapPurchaseCachePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SapPurchaseCache"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      serialNumber: string
      formInstanceId: string
      sapEnv: string
      applicantName: string
      applicantDept: string
      budgetNumber: string
      budgetAmount: Prisma.Decimal
      purchaseProjectDescription: string
      applicationDate: string
      demandCategory: string
      purchasingCompanyName: string
      materialGroup: string
      formData: Prisma.JsonValue
      yidaModifiedAt: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["sapPurchaseCache"]>
    composites: {}
  }

  type SapPurchaseCacheGetPayload<S extends boolean | null | undefined | SapPurchaseCacheDefaultArgs> = $Result.GetResult<Prisma.$SapPurchaseCachePayload, S>

  type SapPurchaseCacheCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SapPurchaseCacheFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SapPurchaseCacheCountAggregateInputType | true
    }

  export interface SapPurchaseCacheDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SapPurchaseCache'], meta: { name: 'SapPurchaseCache' } }
    /**
     * Find zero or one SapPurchaseCache that matches the filter.
     * @param {SapPurchaseCacheFindUniqueArgs} args - Arguments to find a SapPurchaseCache
     * @example
     * // Get one SapPurchaseCache
     * const sapPurchaseCache = await prisma.sapPurchaseCache.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SapPurchaseCacheFindUniqueArgs>(args: SelectSubset<T, SapPurchaseCacheFindUniqueArgs<ExtArgs>>): Prisma__SapPurchaseCacheClient<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SapPurchaseCache that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SapPurchaseCacheFindUniqueOrThrowArgs} args - Arguments to find a SapPurchaseCache
     * @example
     * // Get one SapPurchaseCache
     * const sapPurchaseCache = await prisma.sapPurchaseCache.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SapPurchaseCacheFindUniqueOrThrowArgs>(args: SelectSubset<T, SapPurchaseCacheFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SapPurchaseCacheClient<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SapPurchaseCache 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 {SapPurchaseCacheFindFirstArgs} args - Arguments to find a SapPurchaseCache
     * @example
     * // Get one SapPurchaseCache
     * const sapPurchaseCache = await prisma.sapPurchaseCache.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SapPurchaseCacheFindFirstArgs>(args?: SelectSubset<T, SapPurchaseCacheFindFirstArgs<ExtArgs>>): Prisma__SapPurchaseCacheClient<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SapPurchaseCache 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 {SapPurchaseCacheFindFirstOrThrowArgs} args - Arguments to find a SapPurchaseCache
     * @example
     * // Get one SapPurchaseCache
     * const sapPurchaseCache = await prisma.sapPurchaseCache.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SapPurchaseCacheFindFirstOrThrowArgs>(args?: SelectSubset<T, SapPurchaseCacheFindFirstOrThrowArgs<ExtArgs>>): Prisma__SapPurchaseCacheClient<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SapPurchaseCaches 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 {SapPurchaseCacheFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SapPurchaseCaches
     * const sapPurchaseCaches = await prisma.sapPurchaseCache.findMany()
     * 
     * // Get first 10 SapPurchaseCaches
     * const sapPurchaseCaches = await prisma.sapPurchaseCache.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const sapPurchaseCacheWithIdOnly = await prisma.sapPurchaseCache.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SapPurchaseCacheFindManyArgs>(args?: SelectSubset<T, SapPurchaseCacheFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SapPurchaseCache.
     * @param {SapPurchaseCacheCreateArgs} args - Arguments to create a SapPurchaseCache.
     * @example
     * // Create one SapPurchaseCache
     * const SapPurchaseCache = await prisma.sapPurchaseCache.create({
     *   data: {
     *     // ... data to create a SapPurchaseCache
     *   }
     * })
     * 
     */
    create<T extends SapPurchaseCacheCreateArgs>(args: SelectSubset<T, SapPurchaseCacheCreateArgs<ExtArgs>>): Prisma__SapPurchaseCacheClient<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SapPurchaseCaches.
     * @param {SapPurchaseCacheCreateManyArgs} args - Arguments to create many SapPurchaseCaches.
     * @example
     * // Create many SapPurchaseCaches
     * const sapPurchaseCache = await prisma.sapPurchaseCache.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SapPurchaseCacheCreateManyArgs>(args?: SelectSubset<T, SapPurchaseCacheCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SapPurchaseCaches and returns the data saved in the database.
     * @param {SapPurchaseCacheCreateManyAndReturnArgs} args - Arguments to create many SapPurchaseCaches.
     * @example
     * // Create many SapPurchaseCaches
     * const sapPurchaseCache = await prisma.sapPurchaseCache.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SapPurchaseCaches and only return the `id`
     * const sapPurchaseCacheWithIdOnly = await prisma.sapPurchaseCache.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 SapPurchaseCacheCreateManyAndReturnArgs>(args?: SelectSubset<T, SapPurchaseCacheCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SapPurchaseCache.
     * @param {SapPurchaseCacheDeleteArgs} args - Arguments to delete one SapPurchaseCache.
     * @example
     * // Delete one SapPurchaseCache
     * const SapPurchaseCache = await prisma.sapPurchaseCache.delete({
     *   where: {
     *     // ... filter to delete one SapPurchaseCache
     *   }
     * })
     * 
     */
    delete<T extends SapPurchaseCacheDeleteArgs>(args: SelectSubset<T, SapPurchaseCacheDeleteArgs<ExtArgs>>): Prisma__SapPurchaseCacheClient<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SapPurchaseCache.
     * @param {SapPurchaseCacheUpdateArgs} args - Arguments to update one SapPurchaseCache.
     * @example
     * // Update one SapPurchaseCache
     * const sapPurchaseCache = await prisma.sapPurchaseCache.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SapPurchaseCacheUpdateArgs>(args: SelectSubset<T, SapPurchaseCacheUpdateArgs<ExtArgs>>): Prisma__SapPurchaseCacheClient<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SapPurchaseCaches.
     * @param {SapPurchaseCacheDeleteManyArgs} args - Arguments to filter SapPurchaseCaches to delete.
     * @example
     * // Delete a few SapPurchaseCaches
     * const { count } = await prisma.sapPurchaseCache.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SapPurchaseCacheDeleteManyArgs>(args?: SelectSubset<T, SapPurchaseCacheDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SapPurchaseCaches.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SapPurchaseCacheUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SapPurchaseCaches
     * const sapPurchaseCache = await prisma.sapPurchaseCache.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SapPurchaseCacheUpdateManyArgs>(args: SelectSubset<T, SapPurchaseCacheUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SapPurchaseCaches and returns the data updated in the database.
     * @param {SapPurchaseCacheUpdateManyAndReturnArgs} args - Arguments to update many SapPurchaseCaches.
     * @example
     * // Update many SapPurchaseCaches
     * const sapPurchaseCache = await prisma.sapPurchaseCache.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SapPurchaseCaches and only return the `id`
     * const sapPurchaseCacheWithIdOnly = await prisma.sapPurchaseCache.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 SapPurchaseCacheUpdateManyAndReturnArgs>(args: SelectSubset<T, SapPurchaseCacheUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SapPurchaseCache.
     * @param {SapPurchaseCacheUpsertArgs} args - Arguments to update or create a SapPurchaseCache.
     * @example
     * // Update or create a SapPurchaseCache
     * const sapPurchaseCache = await prisma.sapPurchaseCache.upsert({
     *   create: {
     *     // ... data to create a SapPurchaseCache
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SapPurchaseCache we want to update
     *   }
     * })
     */
    upsert<T extends SapPurchaseCacheUpsertArgs>(args: SelectSubset<T, SapPurchaseCacheUpsertArgs<ExtArgs>>): Prisma__SapPurchaseCacheClient<$Result.GetResult<Prisma.$SapPurchaseCachePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SapPurchaseCaches.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SapPurchaseCacheCountArgs} args - Arguments to filter SapPurchaseCaches to count.
     * @example
     * // Count the number of SapPurchaseCaches
     * const count = await prisma.sapPurchaseCache.count({
     *   where: {
     *     // ... the filter for the SapPurchaseCaches we want to count
     *   }
     * })
    **/
    count<T extends SapPurchaseCacheCountArgs>(
      args?: Subset<T, SapPurchaseCacheCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SapPurchaseCacheCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SapPurchaseCache.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SapPurchaseCacheAggregateArgs} 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 SapPurchaseCacheAggregateArgs>(args: Subset<T, SapPurchaseCacheAggregateArgs>): Prisma.PrismaPromise<GetSapPurchaseCacheAggregateType<T>>

    /**
     * Group by SapPurchaseCache.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SapPurchaseCacheGroupByArgs} 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 SapPurchaseCacheGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SapPurchaseCacheGroupByArgs['orderBy'] }
        : { orderBy?: SapPurchaseCacheGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SapPurchaseCacheGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSapPurchaseCacheGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SapPurchaseCache model
   */
  readonly fields: SapPurchaseCacheFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SapPurchaseCache.
   * 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__SapPurchaseCacheClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SapPurchaseCache model
   */
  interface SapPurchaseCacheFieldRefs {
    readonly id: FieldRef<"SapPurchaseCache", 'String'>
    readonly serialNumber: FieldRef<"SapPurchaseCache", 'String'>
    readonly formInstanceId: FieldRef<"SapPurchaseCache", 'String'>
    readonly sapEnv: FieldRef<"SapPurchaseCache", 'String'>
    readonly applicantName: FieldRef<"SapPurchaseCache", 'String'>
    readonly applicantDept: FieldRef<"SapPurchaseCache", 'String'>
    readonly budgetNumber: FieldRef<"SapPurchaseCache", 'String'>
    readonly budgetAmount: FieldRef<"SapPurchaseCache", 'Decimal'>
    readonly purchaseProjectDescription: FieldRef<"SapPurchaseCache", 'String'>
    readonly applicationDate: FieldRef<"SapPurchaseCache", 'String'>
    readonly demandCategory: FieldRef<"SapPurchaseCache", 'String'>
    readonly purchasingCompanyName: FieldRef<"SapPurchaseCache", 'String'>
    readonly materialGroup: FieldRef<"SapPurchaseCache", 'String'>
    readonly formData: FieldRef<"SapPurchaseCache", 'Json'>
    readonly yidaModifiedAt: FieldRef<"SapPurchaseCache", 'String'>
    readonly createdAt: FieldRef<"SapPurchaseCache", 'DateTime'>
    readonly updatedAt: FieldRef<"SapPurchaseCache", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SapPurchaseCache findUnique
   */
  export type SapPurchaseCacheFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseCache to fetch.
     */
    where: SapPurchaseCacheWhereUniqueInput
  }

  /**
   * SapPurchaseCache findUniqueOrThrow
   */
  export type SapPurchaseCacheFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseCache to fetch.
     */
    where: SapPurchaseCacheWhereUniqueInput
  }

  /**
   * SapPurchaseCache findFirst
   */
  export type SapPurchaseCacheFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseCache to fetch.
     */
    where?: SapPurchaseCacheWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SapPurchaseCaches to fetch.
     */
    orderBy?: SapPurchaseCacheOrderByWithRelationInput | SapPurchaseCacheOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SapPurchaseCaches.
     */
    cursor?: SapPurchaseCacheWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SapPurchaseCaches 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` SapPurchaseCaches.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SapPurchaseCaches.
     */
    distinct?: SapPurchaseCacheScalarFieldEnum | SapPurchaseCacheScalarFieldEnum[]
  }

  /**
   * SapPurchaseCache findFirstOrThrow
   */
  export type SapPurchaseCacheFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseCache to fetch.
     */
    where?: SapPurchaseCacheWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SapPurchaseCaches to fetch.
     */
    orderBy?: SapPurchaseCacheOrderByWithRelationInput | SapPurchaseCacheOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SapPurchaseCaches.
     */
    cursor?: SapPurchaseCacheWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SapPurchaseCaches 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` SapPurchaseCaches.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SapPurchaseCaches.
     */
    distinct?: SapPurchaseCacheScalarFieldEnum | SapPurchaseCacheScalarFieldEnum[]
  }

  /**
   * SapPurchaseCache findMany
   */
  export type SapPurchaseCacheFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * Filter, which SapPurchaseCaches to fetch.
     */
    where?: SapPurchaseCacheWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SapPurchaseCaches to fetch.
     */
    orderBy?: SapPurchaseCacheOrderByWithRelationInput | SapPurchaseCacheOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SapPurchaseCaches.
     */
    cursor?: SapPurchaseCacheWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SapPurchaseCaches 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` SapPurchaseCaches.
     */
    skip?: number
    distinct?: SapPurchaseCacheScalarFieldEnum | SapPurchaseCacheScalarFieldEnum[]
  }

  /**
   * SapPurchaseCache create
   */
  export type SapPurchaseCacheCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * The data needed to create a SapPurchaseCache.
     */
    data: XOR<SapPurchaseCacheCreateInput, SapPurchaseCacheUncheckedCreateInput>
  }

  /**
   * SapPurchaseCache createMany
   */
  export type SapPurchaseCacheCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SapPurchaseCaches.
     */
    data: SapPurchaseCacheCreateManyInput | SapPurchaseCacheCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SapPurchaseCache createManyAndReturn
   */
  export type SapPurchaseCacheCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * The data used to create many SapPurchaseCaches.
     */
    data: SapPurchaseCacheCreateManyInput | SapPurchaseCacheCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SapPurchaseCache update
   */
  export type SapPurchaseCacheUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * The data needed to update a SapPurchaseCache.
     */
    data: XOR<SapPurchaseCacheUpdateInput, SapPurchaseCacheUncheckedUpdateInput>
    /**
     * Choose, which SapPurchaseCache to update.
     */
    where: SapPurchaseCacheWhereUniqueInput
  }

  /**
   * SapPurchaseCache updateMany
   */
  export type SapPurchaseCacheUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SapPurchaseCaches.
     */
    data: XOR<SapPurchaseCacheUpdateManyMutationInput, SapPurchaseCacheUncheckedUpdateManyInput>
    /**
     * Filter which SapPurchaseCaches to update
     */
    where?: SapPurchaseCacheWhereInput
    /**
     * Limit how many SapPurchaseCaches to update.
     */
    limit?: number
  }

  /**
   * SapPurchaseCache updateManyAndReturn
   */
  export type SapPurchaseCacheUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * The data used to update SapPurchaseCaches.
     */
    data: XOR<SapPurchaseCacheUpdateManyMutationInput, SapPurchaseCacheUncheckedUpdateManyInput>
    /**
     * Filter which SapPurchaseCaches to update
     */
    where?: SapPurchaseCacheWhereInput
    /**
     * Limit how many SapPurchaseCaches to update.
     */
    limit?: number
  }

  /**
   * SapPurchaseCache upsert
   */
  export type SapPurchaseCacheUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * The filter to search for the SapPurchaseCache to update in case it exists.
     */
    where: SapPurchaseCacheWhereUniqueInput
    /**
     * In case the SapPurchaseCache found by the `where` argument doesn't exist, create a new SapPurchaseCache with this data.
     */
    create: XOR<SapPurchaseCacheCreateInput, SapPurchaseCacheUncheckedCreateInput>
    /**
     * In case the SapPurchaseCache was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SapPurchaseCacheUpdateInput, SapPurchaseCacheUncheckedUpdateInput>
  }

  /**
   * SapPurchaseCache delete
   */
  export type SapPurchaseCacheDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
    /**
     * Filter which SapPurchaseCache to delete.
     */
    where: SapPurchaseCacheWhereUniqueInput
  }

  /**
   * SapPurchaseCache deleteMany
   */
  export type SapPurchaseCacheDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SapPurchaseCaches to delete
     */
    where?: SapPurchaseCacheWhereInput
    /**
     * Limit how many SapPurchaseCaches to delete.
     */
    limit?: number
  }

  /**
   * SapPurchaseCache without action
   */
  export type SapPurchaseCacheDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SapPurchaseCache
     */
    select?: SapPurchaseCacheSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SapPurchaseCache
     */
    omit?: SapPurchaseCacheOmit<ExtArgs> | null
  }


  /**
   * Model AdpPtoSchedule
   */

  export type AggregateAdpPtoSchedule = {
    _count: AdpPtoScheduleCountAggregateOutputType | null
    _min: AdpPtoScheduleMinAggregateOutputType | null
    _max: AdpPtoScheduleMaxAggregateOutputType | null
  }

  export type AdpPtoScheduleMinAggregateOutputType = {
    id: string | null
    userId: string | null
    adpAoid: string | null
    leaveDate: Date | null
    startTime: Date | null
    endTime: Date | null
    adpEntryId: string | null
    syncedAt: Date | null
  }

  export type AdpPtoScheduleMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    adpAoid: string | null
    leaveDate: Date | null
    startTime: Date | null
    endTime: Date | null
    adpEntryId: string | null
    syncedAt: Date | null
  }

  export type AdpPtoScheduleCountAggregateOutputType = {
    id: number
    userId: number
    adpAoid: number
    leaveDate: number
    startTime: number
    endTime: number
    adpEntryId: number
    syncedAt: number
    _all: number
  }


  export type AdpPtoScheduleMinAggregateInputType = {
    id?: true
    userId?: true
    adpAoid?: true
    leaveDate?: true
    startTime?: true
    endTime?: true
    adpEntryId?: true
    syncedAt?: true
  }

  export type AdpPtoScheduleMaxAggregateInputType = {
    id?: true
    userId?: true
    adpAoid?: true
    leaveDate?: true
    startTime?: true
    endTime?: true
    adpEntryId?: true
    syncedAt?: true
  }

  export type AdpPtoScheduleCountAggregateInputType = {
    id?: true
    userId?: true
    adpAoid?: true
    leaveDate?: true
    startTime?: true
    endTime?: true
    adpEntryId?: true
    syncedAt?: true
    _all?: true
  }

  export type AdpPtoScheduleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AdpPtoSchedule to aggregate.
     */
    where?: AdpPtoScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AdpPtoSchedules to fetch.
     */
    orderBy?: AdpPtoScheduleOrderByWithRelationInput | AdpPtoScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AdpPtoScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AdpPtoSchedules 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` AdpPtoSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AdpPtoSchedules
    **/
    _count?: true | AdpPtoScheduleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AdpPtoScheduleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AdpPtoScheduleMaxAggregateInputType
  }

  export type GetAdpPtoScheduleAggregateType<T extends AdpPtoScheduleAggregateArgs> = {
        [P in keyof T & keyof AggregateAdpPtoSchedule]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAdpPtoSchedule[P]>
      : GetScalarType<T[P], AggregateAdpPtoSchedule[P]>
  }




  export type AdpPtoScheduleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AdpPtoScheduleWhereInput
    orderBy?: AdpPtoScheduleOrderByWithAggregationInput | AdpPtoScheduleOrderByWithAggregationInput[]
    by: AdpPtoScheduleScalarFieldEnum[] | AdpPtoScheduleScalarFieldEnum
    having?: AdpPtoScheduleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AdpPtoScheduleCountAggregateInputType | true
    _min?: AdpPtoScheduleMinAggregateInputType
    _max?: AdpPtoScheduleMaxAggregateInputType
  }

  export type AdpPtoScheduleGroupByOutputType = {
    id: string
    userId: string
    adpAoid: string
    leaveDate: Date
    startTime: Date
    endTime: Date
    adpEntryId: string
    syncedAt: Date
    _count: AdpPtoScheduleCountAggregateOutputType | null
    _min: AdpPtoScheduleMinAggregateOutputType | null
    _max: AdpPtoScheduleMaxAggregateOutputType | null
  }

  type GetAdpPtoScheduleGroupByPayload<T extends AdpPtoScheduleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AdpPtoScheduleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AdpPtoScheduleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AdpPtoScheduleGroupByOutputType[P]>
            : GetScalarType<T[P], AdpPtoScheduleGroupByOutputType[P]>
        }
      >
    >


  export type AdpPtoScheduleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    adpAoid?: boolean
    leaveDate?: boolean
    startTime?: boolean
    endTime?: boolean
    adpEntryId?: boolean
    syncedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["adpPtoSchedule"]>

  export type AdpPtoScheduleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    adpAoid?: boolean
    leaveDate?: boolean
    startTime?: boolean
    endTime?: boolean
    adpEntryId?: boolean
    syncedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["adpPtoSchedule"]>

  export type AdpPtoScheduleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    adpAoid?: boolean
    leaveDate?: boolean
    startTime?: boolean
    endTime?: boolean
    adpEntryId?: boolean
    syncedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["adpPtoSchedule"]>

  export type AdpPtoScheduleSelectScalar = {
    id?: boolean
    userId?: boolean
    adpAoid?: boolean
    leaveDate?: boolean
    startTime?: boolean
    endTime?: boolean
    adpEntryId?: boolean
    syncedAt?: boolean
  }

  export type AdpPtoScheduleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "adpAoid" | "leaveDate" | "startTime" | "endTime" | "adpEntryId" | "syncedAt", ExtArgs["result"]["adpPtoSchedule"]>
  export type AdpPtoScheduleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type AdpPtoScheduleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type AdpPtoScheduleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $AdpPtoSchedulePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AdpPtoSchedule"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      adpAoid: string
      leaveDate: Date
      startTime: Date
      endTime: Date
      adpEntryId: string
      syncedAt: Date
    }, ExtArgs["result"]["adpPtoSchedule"]>
    composites: {}
  }

  type AdpPtoScheduleGetPayload<S extends boolean | null | undefined | AdpPtoScheduleDefaultArgs> = $Result.GetResult<Prisma.$AdpPtoSchedulePayload, S>

  type AdpPtoScheduleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AdpPtoScheduleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AdpPtoScheduleCountAggregateInputType | true
    }

  export interface AdpPtoScheduleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AdpPtoSchedule'], meta: { name: 'AdpPtoSchedule' } }
    /**
     * Find zero or one AdpPtoSchedule that matches the filter.
     * @param {AdpPtoScheduleFindUniqueArgs} args - Arguments to find a AdpPtoSchedule
     * @example
     * // Get one AdpPtoSchedule
     * const adpPtoSchedule = await prisma.adpPtoSchedule.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AdpPtoScheduleFindUniqueArgs>(args: SelectSubset<T, AdpPtoScheduleFindUniqueArgs<ExtArgs>>): Prisma__AdpPtoScheduleClient<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AdpPtoSchedule that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AdpPtoScheduleFindUniqueOrThrowArgs} args - Arguments to find a AdpPtoSchedule
     * @example
     * // Get one AdpPtoSchedule
     * const adpPtoSchedule = await prisma.adpPtoSchedule.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AdpPtoScheduleFindUniqueOrThrowArgs>(args: SelectSubset<T, AdpPtoScheduleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AdpPtoScheduleClient<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AdpPtoSchedule 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 {AdpPtoScheduleFindFirstArgs} args - Arguments to find a AdpPtoSchedule
     * @example
     * // Get one AdpPtoSchedule
     * const adpPtoSchedule = await prisma.adpPtoSchedule.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AdpPtoScheduleFindFirstArgs>(args?: SelectSubset<T, AdpPtoScheduleFindFirstArgs<ExtArgs>>): Prisma__AdpPtoScheduleClient<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AdpPtoSchedule 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 {AdpPtoScheduleFindFirstOrThrowArgs} args - Arguments to find a AdpPtoSchedule
     * @example
     * // Get one AdpPtoSchedule
     * const adpPtoSchedule = await prisma.adpPtoSchedule.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AdpPtoScheduleFindFirstOrThrowArgs>(args?: SelectSubset<T, AdpPtoScheduleFindFirstOrThrowArgs<ExtArgs>>): Prisma__AdpPtoScheduleClient<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AdpPtoSchedules 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 {AdpPtoScheduleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AdpPtoSchedules
     * const adpPtoSchedules = await prisma.adpPtoSchedule.findMany()
     * 
     * // Get first 10 AdpPtoSchedules
     * const adpPtoSchedules = await prisma.adpPtoSchedule.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const adpPtoScheduleWithIdOnly = await prisma.adpPtoSchedule.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AdpPtoScheduleFindManyArgs>(args?: SelectSubset<T, AdpPtoScheduleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AdpPtoSchedule.
     * @param {AdpPtoScheduleCreateArgs} args - Arguments to create a AdpPtoSchedule.
     * @example
     * // Create one AdpPtoSchedule
     * const AdpPtoSchedule = await prisma.adpPtoSchedule.create({
     *   data: {
     *     // ... data to create a AdpPtoSchedule
     *   }
     * })
     * 
     */
    create<T extends AdpPtoScheduleCreateArgs>(args: SelectSubset<T, AdpPtoScheduleCreateArgs<ExtArgs>>): Prisma__AdpPtoScheduleClient<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AdpPtoSchedules.
     * @param {AdpPtoScheduleCreateManyArgs} args - Arguments to create many AdpPtoSchedules.
     * @example
     * // Create many AdpPtoSchedules
     * const adpPtoSchedule = await prisma.adpPtoSchedule.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AdpPtoScheduleCreateManyArgs>(args?: SelectSubset<T, AdpPtoScheduleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AdpPtoSchedules and returns the data saved in the database.
     * @param {AdpPtoScheduleCreateManyAndReturnArgs} args - Arguments to create many AdpPtoSchedules.
     * @example
     * // Create many AdpPtoSchedules
     * const adpPtoSchedule = await prisma.adpPtoSchedule.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AdpPtoSchedules and only return the `id`
     * const adpPtoScheduleWithIdOnly = await prisma.adpPtoSchedule.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 AdpPtoScheduleCreateManyAndReturnArgs>(args?: SelectSubset<T, AdpPtoScheduleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AdpPtoSchedule.
     * @param {AdpPtoScheduleDeleteArgs} args - Arguments to delete one AdpPtoSchedule.
     * @example
     * // Delete one AdpPtoSchedule
     * const AdpPtoSchedule = await prisma.adpPtoSchedule.delete({
     *   where: {
     *     // ... filter to delete one AdpPtoSchedule
     *   }
     * })
     * 
     */
    delete<T extends AdpPtoScheduleDeleteArgs>(args: SelectSubset<T, AdpPtoScheduleDeleteArgs<ExtArgs>>): Prisma__AdpPtoScheduleClient<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AdpPtoSchedule.
     * @param {AdpPtoScheduleUpdateArgs} args - Arguments to update one AdpPtoSchedule.
     * @example
     * // Update one AdpPtoSchedule
     * const adpPtoSchedule = await prisma.adpPtoSchedule.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AdpPtoScheduleUpdateArgs>(args: SelectSubset<T, AdpPtoScheduleUpdateArgs<ExtArgs>>): Prisma__AdpPtoScheduleClient<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AdpPtoSchedules.
     * @param {AdpPtoScheduleDeleteManyArgs} args - Arguments to filter AdpPtoSchedules to delete.
     * @example
     * // Delete a few AdpPtoSchedules
     * const { count } = await prisma.adpPtoSchedule.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AdpPtoScheduleDeleteManyArgs>(args?: SelectSubset<T, AdpPtoScheduleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AdpPtoSchedules.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AdpPtoScheduleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AdpPtoSchedules
     * const adpPtoSchedule = await prisma.adpPtoSchedule.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AdpPtoScheduleUpdateManyArgs>(args: SelectSubset<T, AdpPtoScheduleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AdpPtoSchedules and returns the data updated in the database.
     * @param {AdpPtoScheduleUpdateManyAndReturnArgs} args - Arguments to update many AdpPtoSchedules.
     * @example
     * // Update many AdpPtoSchedules
     * const adpPtoSchedule = await prisma.adpPtoSchedule.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AdpPtoSchedules and only return the `id`
     * const adpPtoScheduleWithIdOnly = await prisma.adpPtoSchedule.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 AdpPtoScheduleUpdateManyAndReturnArgs>(args: SelectSubset<T, AdpPtoScheduleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AdpPtoSchedule.
     * @param {AdpPtoScheduleUpsertArgs} args - Arguments to update or create a AdpPtoSchedule.
     * @example
     * // Update or create a AdpPtoSchedule
     * const adpPtoSchedule = await prisma.adpPtoSchedule.upsert({
     *   create: {
     *     // ... data to create a AdpPtoSchedule
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AdpPtoSchedule we want to update
     *   }
     * })
     */
    upsert<T extends AdpPtoScheduleUpsertArgs>(args: SelectSubset<T, AdpPtoScheduleUpsertArgs<ExtArgs>>): Prisma__AdpPtoScheduleClient<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AdpPtoSchedules.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AdpPtoScheduleCountArgs} args - Arguments to filter AdpPtoSchedules to count.
     * @example
     * // Count the number of AdpPtoSchedules
     * const count = await prisma.adpPtoSchedule.count({
     *   where: {
     *     // ... the filter for the AdpPtoSchedules we want to count
     *   }
     * })
    **/
    count<T extends AdpPtoScheduleCountArgs>(
      args?: Subset<T, AdpPtoScheduleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AdpPtoScheduleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AdpPtoSchedule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AdpPtoScheduleAggregateArgs} 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 AdpPtoScheduleAggregateArgs>(args: Subset<T, AdpPtoScheduleAggregateArgs>): Prisma.PrismaPromise<GetAdpPtoScheduleAggregateType<T>>

    /**
     * Group by AdpPtoSchedule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AdpPtoScheduleGroupByArgs} 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 AdpPtoScheduleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AdpPtoScheduleGroupByArgs['orderBy'] }
        : { orderBy?: AdpPtoScheduleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AdpPtoScheduleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAdpPtoScheduleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AdpPtoSchedule model
   */
  readonly fields: AdpPtoScheduleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AdpPtoSchedule.
   * 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__AdpPtoScheduleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AdpPtoSchedule model
   */
  interface AdpPtoScheduleFieldRefs {
    readonly id: FieldRef<"AdpPtoSchedule", 'String'>
    readonly userId: FieldRef<"AdpPtoSchedule", 'String'>
    readonly adpAoid: FieldRef<"AdpPtoSchedule", 'String'>
    readonly leaveDate: FieldRef<"AdpPtoSchedule", 'DateTime'>
    readonly startTime: FieldRef<"AdpPtoSchedule", 'DateTime'>
    readonly endTime: FieldRef<"AdpPtoSchedule", 'DateTime'>
    readonly adpEntryId: FieldRef<"AdpPtoSchedule", 'String'>
    readonly syncedAt: FieldRef<"AdpPtoSchedule", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AdpPtoSchedule findUnique
   */
  export type AdpPtoScheduleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * Filter, which AdpPtoSchedule to fetch.
     */
    where: AdpPtoScheduleWhereUniqueInput
  }

  /**
   * AdpPtoSchedule findUniqueOrThrow
   */
  export type AdpPtoScheduleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * Filter, which AdpPtoSchedule to fetch.
     */
    where: AdpPtoScheduleWhereUniqueInput
  }

  /**
   * AdpPtoSchedule findFirst
   */
  export type AdpPtoScheduleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * Filter, which AdpPtoSchedule to fetch.
     */
    where?: AdpPtoScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AdpPtoSchedules to fetch.
     */
    orderBy?: AdpPtoScheduleOrderByWithRelationInput | AdpPtoScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AdpPtoSchedules.
     */
    cursor?: AdpPtoScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AdpPtoSchedules 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` AdpPtoSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AdpPtoSchedules.
     */
    distinct?: AdpPtoScheduleScalarFieldEnum | AdpPtoScheduleScalarFieldEnum[]
  }

  /**
   * AdpPtoSchedule findFirstOrThrow
   */
  export type AdpPtoScheduleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * Filter, which AdpPtoSchedule to fetch.
     */
    where?: AdpPtoScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AdpPtoSchedules to fetch.
     */
    orderBy?: AdpPtoScheduleOrderByWithRelationInput | AdpPtoScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AdpPtoSchedules.
     */
    cursor?: AdpPtoScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AdpPtoSchedules 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` AdpPtoSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AdpPtoSchedules.
     */
    distinct?: AdpPtoScheduleScalarFieldEnum | AdpPtoScheduleScalarFieldEnum[]
  }

  /**
   * AdpPtoSchedule findMany
   */
  export type AdpPtoScheduleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * Filter, which AdpPtoSchedules to fetch.
     */
    where?: AdpPtoScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AdpPtoSchedules to fetch.
     */
    orderBy?: AdpPtoScheduleOrderByWithRelationInput | AdpPtoScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AdpPtoSchedules.
     */
    cursor?: AdpPtoScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AdpPtoSchedules 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` AdpPtoSchedules.
     */
    skip?: number
    distinct?: AdpPtoScheduleScalarFieldEnum | AdpPtoScheduleScalarFieldEnum[]
  }

  /**
   * AdpPtoSchedule create
   */
  export type AdpPtoScheduleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * The data needed to create a AdpPtoSchedule.
     */
    data: XOR<AdpPtoScheduleCreateInput, AdpPtoScheduleUncheckedCreateInput>
  }

  /**
   * AdpPtoSchedule createMany
   */
  export type AdpPtoScheduleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AdpPtoSchedules.
     */
    data: AdpPtoScheduleCreateManyInput | AdpPtoScheduleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AdpPtoSchedule createManyAndReturn
   */
  export type AdpPtoScheduleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * The data used to create many AdpPtoSchedules.
     */
    data: AdpPtoScheduleCreateManyInput | AdpPtoScheduleCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AdpPtoSchedule update
   */
  export type AdpPtoScheduleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * The data needed to update a AdpPtoSchedule.
     */
    data: XOR<AdpPtoScheduleUpdateInput, AdpPtoScheduleUncheckedUpdateInput>
    /**
     * Choose, which AdpPtoSchedule to update.
     */
    where: AdpPtoScheduleWhereUniqueInput
  }

  /**
   * AdpPtoSchedule updateMany
   */
  export type AdpPtoScheduleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AdpPtoSchedules.
     */
    data: XOR<AdpPtoScheduleUpdateManyMutationInput, AdpPtoScheduleUncheckedUpdateManyInput>
    /**
     * Filter which AdpPtoSchedules to update
     */
    where?: AdpPtoScheduleWhereInput
    /**
     * Limit how many AdpPtoSchedules to update.
     */
    limit?: number
  }

  /**
   * AdpPtoSchedule updateManyAndReturn
   */
  export type AdpPtoScheduleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * The data used to update AdpPtoSchedules.
     */
    data: XOR<AdpPtoScheduleUpdateManyMutationInput, AdpPtoScheduleUncheckedUpdateManyInput>
    /**
     * Filter which AdpPtoSchedules to update
     */
    where?: AdpPtoScheduleWhereInput
    /**
     * Limit how many AdpPtoSchedules to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AdpPtoSchedule upsert
   */
  export type AdpPtoScheduleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * The filter to search for the AdpPtoSchedule to update in case it exists.
     */
    where: AdpPtoScheduleWhereUniqueInput
    /**
     * In case the AdpPtoSchedule found by the `where` argument doesn't exist, create a new AdpPtoSchedule with this data.
     */
    create: XOR<AdpPtoScheduleCreateInput, AdpPtoScheduleUncheckedCreateInput>
    /**
     * In case the AdpPtoSchedule was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AdpPtoScheduleUpdateInput, AdpPtoScheduleUncheckedUpdateInput>
  }

  /**
   * AdpPtoSchedule delete
   */
  export type AdpPtoScheduleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    /**
     * Filter which AdpPtoSchedule to delete.
     */
    where: AdpPtoScheduleWhereUniqueInput
  }

  /**
   * AdpPtoSchedule deleteMany
   */
  export type AdpPtoScheduleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AdpPtoSchedules to delete
     */
    where?: AdpPtoScheduleWhereInput
    /**
     * Limit how many AdpPtoSchedules to delete.
     */
    limit?: number
  }

  /**
   * AdpPtoSchedule without action
   */
  export type AdpPtoScheduleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
  }


  /**
   * Model DingtalkAnnualLeaveReleasePlan
   */

  export type AggregateDingtalkAnnualLeaveReleasePlan = {
    _count: DingtalkAnnualLeaveReleasePlanCountAggregateOutputType | null
    _avg: DingtalkAnnualLeaveReleasePlanAvgAggregateOutputType | null
    _sum: DingtalkAnnualLeaveReleasePlanSumAggregateOutputType | null
    _min: DingtalkAnnualLeaveReleasePlanMinAggregateOutputType | null
    _max: DingtalkAnnualLeaveReleasePlanMaxAggregateOutputType | null
  }

  export type DingtalkAnnualLeaveReleasePlanAvgAggregateOutputType = {
    year: number | null
    adjustmentDays: Decimal | null
    notCountDays: number | null
    totalDays: number | null
  }

  export type DingtalkAnnualLeaveReleasePlanSumAggregateOutputType = {
    year: number | null
    adjustmentDays: Decimal | null
    notCountDays: number | null
    totalDays: number | null
  }

  export type DingtalkAnnualLeaveReleasePlanMinAggregateOutputType = {
    id: string | null
    userId: string | null
    employeeName: string | null
    employeeNumber: string | null
    year: number | null
    status: string | null
    joinDate: Date | null
    workStartDate: Date | null
    adjustmentDays: Decimal | null
    notCountDays: number | null
    totalDays: number | null
    lastCalculatedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkAnnualLeaveReleasePlanMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    employeeName: string | null
    employeeNumber: string | null
    year: number | null
    status: string | null
    joinDate: Date | null
    workStartDate: Date | null
    adjustmentDays: Decimal | null
    notCountDays: number | null
    totalDays: number | null
    lastCalculatedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DingtalkAnnualLeaveReleasePlanCountAggregateOutputType = {
    id: number
    userId: number
    employeeName: number
    employeeNumber: number
    year: number
    status: number
    joinDate: number
    workStartDate: number
    adjustmentDays: number
    notCountDays: number
    totalDays: number
    releaseSchedule: number
    lastCalculatedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DingtalkAnnualLeaveReleasePlanAvgAggregateInputType = {
    year?: true
    adjustmentDays?: true
    notCountDays?: true
    totalDays?: true
  }

  export type DingtalkAnnualLeaveReleasePlanSumAggregateInputType = {
    year?: true
    adjustmentDays?: true
    notCountDays?: true
    totalDays?: true
  }

  export type DingtalkAnnualLeaveReleasePlanMinAggregateInputType = {
    id?: true
    userId?: true
    employeeName?: true
    employeeNumber?: true
    year?: true
    status?: true
    joinDate?: true
    workStartDate?: true
    adjustmentDays?: true
    notCountDays?: true
    totalDays?: true
    lastCalculatedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkAnnualLeaveReleasePlanMaxAggregateInputType = {
    id?: true
    userId?: true
    employeeName?: true
    employeeNumber?: true
    year?: true
    status?: true
    joinDate?: true
    workStartDate?: true
    adjustmentDays?: true
    notCountDays?: true
    totalDays?: true
    lastCalculatedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DingtalkAnnualLeaveReleasePlanCountAggregateInputType = {
    id?: true
    userId?: true
    employeeName?: true
    employeeNumber?: true
    year?: true
    status?: true
    joinDate?: true
    workStartDate?: true
    adjustmentDays?: true
    notCountDays?: true
    totalDays?: true
    releaseSchedule?: true
    lastCalculatedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DingtalkAnnualLeaveReleasePlanAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkAnnualLeaveReleasePlan to aggregate.
     */
    where?: DingtalkAnnualLeaveReleasePlanWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkAnnualLeaveReleasePlans to fetch.
     */
    orderBy?: DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput | DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkAnnualLeaveReleasePlans 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` DingtalkAnnualLeaveReleasePlans.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DingtalkAnnualLeaveReleasePlans
    **/
    _count?: true | DingtalkAnnualLeaveReleasePlanCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DingtalkAnnualLeaveReleasePlanAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DingtalkAnnualLeaveReleasePlanSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DingtalkAnnualLeaveReleasePlanMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DingtalkAnnualLeaveReleasePlanMaxAggregateInputType
  }

  export type GetDingtalkAnnualLeaveReleasePlanAggregateType<T extends DingtalkAnnualLeaveReleasePlanAggregateArgs> = {
        [P in keyof T & keyof AggregateDingtalkAnnualLeaveReleasePlan]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDingtalkAnnualLeaveReleasePlan[P]>
      : GetScalarType<T[P], AggregateDingtalkAnnualLeaveReleasePlan[P]>
  }




  export type DingtalkAnnualLeaveReleasePlanGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DingtalkAnnualLeaveReleasePlanWhereInput
    orderBy?: DingtalkAnnualLeaveReleasePlanOrderByWithAggregationInput | DingtalkAnnualLeaveReleasePlanOrderByWithAggregationInput[]
    by: DingtalkAnnualLeaveReleasePlanScalarFieldEnum[] | DingtalkAnnualLeaveReleasePlanScalarFieldEnum
    having?: DingtalkAnnualLeaveReleasePlanScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DingtalkAnnualLeaveReleasePlanCountAggregateInputType | true
    _avg?: DingtalkAnnualLeaveReleasePlanAvgAggregateInputType
    _sum?: DingtalkAnnualLeaveReleasePlanSumAggregateInputType
    _min?: DingtalkAnnualLeaveReleasePlanMinAggregateInputType
    _max?: DingtalkAnnualLeaveReleasePlanMaxAggregateInputType
  }

  export type DingtalkAnnualLeaveReleasePlanGroupByOutputType = {
    id: string
    userId: string
    employeeName: string
    employeeNumber: string
    year: number
    status: string
    joinDate: Date | null
    workStartDate: Date | null
    adjustmentDays: Decimal
    notCountDays: number
    totalDays: number
    releaseSchedule: JsonValue
    lastCalculatedAt: Date
    createdAt: Date
    updatedAt: Date
    _count: DingtalkAnnualLeaveReleasePlanCountAggregateOutputType | null
    _avg: DingtalkAnnualLeaveReleasePlanAvgAggregateOutputType | null
    _sum: DingtalkAnnualLeaveReleasePlanSumAggregateOutputType | null
    _min: DingtalkAnnualLeaveReleasePlanMinAggregateOutputType | null
    _max: DingtalkAnnualLeaveReleasePlanMaxAggregateOutputType | null
  }

  type GetDingtalkAnnualLeaveReleasePlanGroupByPayload<T extends DingtalkAnnualLeaveReleasePlanGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DingtalkAnnualLeaveReleasePlanGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DingtalkAnnualLeaveReleasePlanGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DingtalkAnnualLeaveReleasePlanGroupByOutputType[P]>
            : GetScalarType<T[P], DingtalkAnnualLeaveReleasePlanGroupByOutputType[P]>
        }
      >
    >


  export type DingtalkAnnualLeaveReleasePlanSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeName?: boolean
    employeeNumber?: boolean
    year?: boolean
    status?: boolean
    joinDate?: boolean
    workStartDate?: boolean
    adjustmentDays?: boolean
    notCountDays?: boolean
    totalDays?: boolean
    releaseSchedule?: boolean
    lastCalculatedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkAnnualLeaveReleasePlan"]>

  export type DingtalkAnnualLeaveReleasePlanSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeName?: boolean
    employeeNumber?: boolean
    year?: boolean
    status?: boolean
    joinDate?: boolean
    workStartDate?: boolean
    adjustmentDays?: boolean
    notCountDays?: boolean
    totalDays?: boolean
    releaseSchedule?: boolean
    lastCalculatedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkAnnualLeaveReleasePlan"]>

  export type DingtalkAnnualLeaveReleasePlanSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeName?: boolean
    employeeNumber?: boolean
    year?: boolean
    status?: boolean
    joinDate?: boolean
    workStartDate?: boolean
    adjustmentDays?: boolean
    notCountDays?: boolean
    totalDays?: boolean
    releaseSchedule?: boolean
    lastCalculatedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dingtalkAnnualLeaveReleasePlan"]>

  export type DingtalkAnnualLeaveReleasePlanSelectScalar = {
    id?: boolean
    userId?: boolean
    employeeName?: boolean
    employeeNumber?: boolean
    year?: boolean
    status?: boolean
    joinDate?: boolean
    workStartDate?: boolean
    adjustmentDays?: boolean
    notCountDays?: boolean
    totalDays?: boolean
    releaseSchedule?: boolean
    lastCalculatedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DingtalkAnnualLeaveReleasePlanOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "employeeName" | "employeeNumber" | "year" | "status" | "joinDate" | "workStartDate" | "adjustmentDays" | "notCountDays" | "totalDays" | "releaseSchedule" | "lastCalculatedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["dingtalkAnnualLeaveReleasePlan"]>

  export type $DingtalkAnnualLeaveReleasePlanPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DingtalkAnnualLeaveReleasePlan"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      employeeName: string
      employeeNumber: string
      year: number
      status: string
      joinDate: Date | null
      workStartDate: Date | null
      adjustmentDays: Prisma.Decimal
      notCountDays: number
      totalDays: number
      releaseSchedule: Prisma.JsonValue
      lastCalculatedAt: Date
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["dingtalkAnnualLeaveReleasePlan"]>
    composites: {}
  }

  type DingtalkAnnualLeaveReleasePlanGetPayload<S extends boolean | null | undefined | DingtalkAnnualLeaveReleasePlanDefaultArgs> = $Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload, S>

  type DingtalkAnnualLeaveReleasePlanCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DingtalkAnnualLeaveReleasePlanFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DingtalkAnnualLeaveReleasePlanCountAggregateInputType | true
    }

  export interface DingtalkAnnualLeaveReleasePlanDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DingtalkAnnualLeaveReleasePlan'], meta: { name: 'DingtalkAnnualLeaveReleasePlan' } }
    /**
     * Find zero or one DingtalkAnnualLeaveReleasePlan that matches the filter.
     * @param {DingtalkAnnualLeaveReleasePlanFindUniqueArgs} args - Arguments to find a DingtalkAnnualLeaveReleasePlan
     * @example
     * // Get one DingtalkAnnualLeaveReleasePlan
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DingtalkAnnualLeaveReleasePlanFindUniqueArgs>(args: SelectSubset<T, DingtalkAnnualLeaveReleasePlanFindUniqueArgs<ExtArgs>>): Prisma__DingtalkAnnualLeaveReleasePlanClient<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DingtalkAnnualLeaveReleasePlan that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DingtalkAnnualLeaveReleasePlanFindUniqueOrThrowArgs} args - Arguments to find a DingtalkAnnualLeaveReleasePlan
     * @example
     * // Get one DingtalkAnnualLeaveReleasePlan
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DingtalkAnnualLeaveReleasePlanFindUniqueOrThrowArgs>(args: SelectSubset<T, DingtalkAnnualLeaveReleasePlanFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DingtalkAnnualLeaveReleasePlanClient<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkAnnualLeaveReleasePlan 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 {DingtalkAnnualLeaveReleasePlanFindFirstArgs} args - Arguments to find a DingtalkAnnualLeaveReleasePlan
     * @example
     * // Get one DingtalkAnnualLeaveReleasePlan
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DingtalkAnnualLeaveReleasePlanFindFirstArgs>(args?: SelectSubset<T, DingtalkAnnualLeaveReleasePlanFindFirstArgs<ExtArgs>>): Prisma__DingtalkAnnualLeaveReleasePlanClient<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DingtalkAnnualLeaveReleasePlan 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 {DingtalkAnnualLeaveReleasePlanFindFirstOrThrowArgs} args - Arguments to find a DingtalkAnnualLeaveReleasePlan
     * @example
     * // Get one DingtalkAnnualLeaveReleasePlan
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DingtalkAnnualLeaveReleasePlanFindFirstOrThrowArgs>(args?: SelectSubset<T, DingtalkAnnualLeaveReleasePlanFindFirstOrThrowArgs<ExtArgs>>): Prisma__DingtalkAnnualLeaveReleasePlanClient<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DingtalkAnnualLeaveReleasePlans 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 {DingtalkAnnualLeaveReleasePlanFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DingtalkAnnualLeaveReleasePlans
     * const dingtalkAnnualLeaveReleasePlans = await prisma.dingtalkAnnualLeaveReleasePlan.findMany()
     * 
     * // Get first 10 DingtalkAnnualLeaveReleasePlans
     * const dingtalkAnnualLeaveReleasePlans = await prisma.dingtalkAnnualLeaveReleasePlan.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dingtalkAnnualLeaveReleasePlanWithIdOnly = await prisma.dingtalkAnnualLeaveReleasePlan.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DingtalkAnnualLeaveReleasePlanFindManyArgs>(args?: SelectSubset<T, DingtalkAnnualLeaveReleasePlanFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DingtalkAnnualLeaveReleasePlan.
     * @param {DingtalkAnnualLeaveReleasePlanCreateArgs} args - Arguments to create a DingtalkAnnualLeaveReleasePlan.
     * @example
     * // Create one DingtalkAnnualLeaveReleasePlan
     * const DingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.create({
     *   data: {
     *     // ... data to create a DingtalkAnnualLeaveReleasePlan
     *   }
     * })
     * 
     */
    create<T extends DingtalkAnnualLeaveReleasePlanCreateArgs>(args: SelectSubset<T, DingtalkAnnualLeaveReleasePlanCreateArgs<ExtArgs>>): Prisma__DingtalkAnnualLeaveReleasePlanClient<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DingtalkAnnualLeaveReleasePlans.
     * @param {DingtalkAnnualLeaveReleasePlanCreateManyArgs} args - Arguments to create many DingtalkAnnualLeaveReleasePlans.
     * @example
     * // Create many DingtalkAnnualLeaveReleasePlans
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DingtalkAnnualLeaveReleasePlanCreateManyArgs>(args?: SelectSubset<T, DingtalkAnnualLeaveReleasePlanCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DingtalkAnnualLeaveReleasePlans and returns the data saved in the database.
     * @param {DingtalkAnnualLeaveReleasePlanCreateManyAndReturnArgs} args - Arguments to create many DingtalkAnnualLeaveReleasePlans.
     * @example
     * // Create many DingtalkAnnualLeaveReleasePlans
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DingtalkAnnualLeaveReleasePlans and only return the `id`
     * const dingtalkAnnualLeaveReleasePlanWithIdOnly = await prisma.dingtalkAnnualLeaveReleasePlan.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 DingtalkAnnualLeaveReleasePlanCreateManyAndReturnArgs>(args?: SelectSubset<T, DingtalkAnnualLeaveReleasePlanCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DingtalkAnnualLeaveReleasePlan.
     * @param {DingtalkAnnualLeaveReleasePlanDeleteArgs} args - Arguments to delete one DingtalkAnnualLeaveReleasePlan.
     * @example
     * // Delete one DingtalkAnnualLeaveReleasePlan
     * const DingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.delete({
     *   where: {
     *     // ... filter to delete one DingtalkAnnualLeaveReleasePlan
     *   }
     * })
     * 
     */
    delete<T extends DingtalkAnnualLeaveReleasePlanDeleteArgs>(args: SelectSubset<T, DingtalkAnnualLeaveReleasePlanDeleteArgs<ExtArgs>>): Prisma__DingtalkAnnualLeaveReleasePlanClient<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DingtalkAnnualLeaveReleasePlan.
     * @param {DingtalkAnnualLeaveReleasePlanUpdateArgs} args - Arguments to update one DingtalkAnnualLeaveReleasePlan.
     * @example
     * // Update one DingtalkAnnualLeaveReleasePlan
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DingtalkAnnualLeaveReleasePlanUpdateArgs>(args: SelectSubset<T, DingtalkAnnualLeaveReleasePlanUpdateArgs<ExtArgs>>): Prisma__DingtalkAnnualLeaveReleasePlanClient<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DingtalkAnnualLeaveReleasePlans.
     * @param {DingtalkAnnualLeaveReleasePlanDeleteManyArgs} args - Arguments to filter DingtalkAnnualLeaveReleasePlans to delete.
     * @example
     * // Delete a few DingtalkAnnualLeaveReleasePlans
     * const { count } = await prisma.dingtalkAnnualLeaveReleasePlan.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DingtalkAnnualLeaveReleasePlanDeleteManyArgs>(args?: SelectSubset<T, DingtalkAnnualLeaveReleasePlanDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkAnnualLeaveReleasePlans.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkAnnualLeaveReleasePlanUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DingtalkAnnualLeaveReleasePlans
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DingtalkAnnualLeaveReleasePlanUpdateManyArgs>(args: SelectSubset<T, DingtalkAnnualLeaveReleasePlanUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DingtalkAnnualLeaveReleasePlans and returns the data updated in the database.
     * @param {DingtalkAnnualLeaveReleasePlanUpdateManyAndReturnArgs} args - Arguments to update many DingtalkAnnualLeaveReleasePlans.
     * @example
     * // Update many DingtalkAnnualLeaveReleasePlans
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DingtalkAnnualLeaveReleasePlans and only return the `id`
     * const dingtalkAnnualLeaveReleasePlanWithIdOnly = await prisma.dingtalkAnnualLeaveReleasePlan.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 DingtalkAnnualLeaveReleasePlanUpdateManyAndReturnArgs>(args: SelectSubset<T, DingtalkAnnualLeaveReleasePlanUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DingtalkAnnualLeaveReleasePlan.
     * @param {DingtalkAnnualLeaveReleasePlanUpsertArgs} args - Arguments to update or create a DingtalkAnnualLeaveReleasePlan.
     * @example
     * // Update or create a DingtalkAnnualLeaveReleasePlan
     * const dingtalkAnnualLeaveReleasePlan = await prisma.dingtalkAnnualLeaveReleasePlan.upsert({
     *   create: {
     *     // ... data to create a DingtalkAnnualLeaveReleasePlan
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DingtalkAnnualLeaveReleasePlan we want to update
     *   }
     * })
     */
    upsert<T extends DingtalkAnnualLeaveReleasePlanUpsertArgs>(args: SelectSubset<T, DingtalkAnnualLeaveReleasePlanUpsertArgs<ExtArgs>>): Prisma__DingtalkAnnualLeaveReleasePlanClient<$Result.GetResult<Prisma.$DingtalkAnnualLeaveReleasePlanPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DingtalkAnnualLeaveReleasePlans.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkAnnualLeaveReleasePlanCountArgs} args - Arguments to filter DingtalkAnnualLeaveReleasePlans to count.
     * @example
     * // Count the number of DingtalkAnnualLeaveReleasePlans
     * const count = await prisma.dingtalkAnnualLeaveReleasePlan.count({
     *   where: {
     *     // ... the filter for the DingtalkAnnualLeaveReleasePlans we want to count
     *   }
     * })
    **/
    count<T extends DingtalkAnnualLeaveReleasePlanCountArgs>(
      args?: Subset<T, DingtalkAnnualLeaveReleasePlanCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DingtalkAnnualLeaveReleasePlanCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DingtalkAnnualLeaveReleasePlan.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkAnnualLeaveReleasePlanAggregateArgs} 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 DingtalkAnnualLeaveReleasePlanAggregateArgs>(args: Subset<T, DingtalkAnnualLeaveReleasePlanAggregateArgs>): Prisma.PrismaPromise<GetDingtalkAnnualLeaveReleasePlanAggregateType<T>>

    /**
     * Group by DingtalkAnnualLeaveReleasePlan.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DingtalkAnnualLeaveReleasePlanGroupByArgs} 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 DingtalkAnnualLeaveReleasePlanGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DingtalkAnnualLeaveReleasePlanGroupByArgs['orderBy'] }
        : { orderBy?: DingtalkAnnualLeaveReleasePlanGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DingtalkAnnualLeaveReleasePlanGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDingtalkAnnualLeaveReleasePlanGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DingtalkAnnualLeaveReleasePlan model
   */
  readonly fields: DingtalkAnnualLeaveReleasePlanFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DingtalkAnnualLeaveReleasePlan.
   * 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__DingtalkAnnualLeaveReleasePlanClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DingtalkAnnualLeaveReleasePlan model
   */
  interface DingtalkAnnualLeaveReleasePlanFieldRefs {
    readonly id: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'String'>
    readonly userId: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'String'>
    readonly employeeName: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'String'>
    readonly employeeNumber: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'String'>
    readonly year: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'Int'>
    readonly status: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'String'>
    readonly joinDate: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'DateTime'>
    readonly workStartDate: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'DateTime'>
    readonly adjustmentDays: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'Decimal'>
    readonly notCountDays: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'Int'>
    readonly totalDays: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'Int'>
    readonly releaseSchedule: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'Json'>
    readonly lastCalculatedAt: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'DateTime'>
    readonly createdAt: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'DateTime'>
    readonly updatedAt: FieldRef<"DingtalkAnnualLeaveReleasePlan", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DingtalkAnnualLeaveReleasePlan findUnique
   */
  export type DingtalkAnnualLeaveReleasePlanFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkAnnualLeaveReleasePlan to fetch.
     */
    where: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
  }

  /**
   * DingtalkAnnualLeaveReleasePlan findUniqueOrThrow
   */
  export type DingtalkAnnualLeaveReleasePlanFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkAnnualLeaveReleasePlan to fetch.
     */
    where: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
  }

  /**
   * DingtalkAnnualLeaveReleasePlan findFirst
   */
  export type DingtalkAnnualLeaveReleasePlanFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkAnnualLeaveReleasePlan to fetch.
     */
    where?: DingtalkAnnualLeaveReleasePlanWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkAnnualLeaveReleasePlans to fetch.
     */
    orderBy?: DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput | DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkAnnualLeaveReleasePlans.
     */
    cursor?: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkAnnualLeaveReleasePlans 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` DingtalkAnnualLeaveReleasePlans.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkAnnualLeaveReleasePlans.
     */
    distinct?: DingtalkAnnualLeaveReleasePlanScalarFieldEnum | DingtalkAnnualLeaveReleasePlanScalarFieldEnum[]
  }

  /**
   * DingtalkAnnualLeaveReleasePlan findFirstOrThrow
   */
  export type DingtalkAnnualLeaveReleasePlanFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkAnnualLeaveReleasePlan to fetch.
     */
    where?: DingtalkAnnualLeaveReleasePlanWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkAnnualLeaveReleasePlans to fetch.
     */
    orderBy?: DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput | DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DingtalkAnnualLeaveReleasePlans.
     */
    cursor?: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkAnnualLeaveReleasePlans 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` DingtalkAnnualLeaveReleasePlans.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DingtalkAnnualLeaveReleasePlans.
     */
    distinct?: DingtalkAnnualLeaveReleasePlanScalarFieldEnum | DingtalkAnnualLeaveReleasePlanScalarFieldEnum[]
  }

  /**
   * DingtalkAnnualLeaveReleasePlan findMany
   */
  export type DingtalkAnnualLeaveReleasePlanFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * Filter, which DingtalkAnnualLeaveReleasePlans to fetch.
     */
    where?: DingtalkAnnualLeaveReleasePlanWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DingtalkAnnualLeaveReleasePlans to fetch.
     */
    orderBy?: DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput | DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DingtalkAnnualLeaveReleasePlans.
     */
    cursor?: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DingtalkAnnualLeaveReleasePlans 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` DingtalkAnnualLeaveReleasePlans.
     */
    skip?: number
    distinct?: DingtalkAnnualLeaveReleasePlanScalarFieldEnum | DingtalkAnnualLeaveReleasePlanScalarFieldEnum[]
  }

  /**
   * DingtalkAnnualLeaveReleasePlan create
   */
  export type DingtalkAnnualLeaveReleasePlanCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * The data needed to create a DingtalkAnnualLeaveReleasePlan.
     */
    data: XOR<DingtalkAnnualLeaveReleasePlanCreateInput, DingtalkAnnualLeaveReleasePlanUncheckedCreateInput>
  }

  /**
   * DingtalkAnnualLeaveReleasePlan createMany
   */
  export type DingtalkAnnualLeaveReleasePlanCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DingtalkAnnualLeaveReleasePlans.
     */
    data: DingtalkAnnualLeaveReleasePlanCreateManyInput | DingtalkAnnualLeaveReleasePlanCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkAnnualLeaveReleasePlan createManyAndReturn
   */
  export type DingtalkAnnualLeaveReleasePlanCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * The data used to create many DingtalkAnnualLeaveReleasePlans.
     */
    data: DingtalkAnnualLeaveReleasePlanCreateManyInput | DingtalkAnnualLeaveReleasePlanCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DingtalkAnnualLeaveReleasePlan update
   */
  export type DingtalkAnnualLeaveReleasePlanUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * The data needed to update a DingtalkAnnualLeaveReleasePlan.
     */
    data: XOR<DingtalkAnnualLeaveReleasePlanUpdateInput, DingtalkAnnualLeaveReleasePlanUncheckedUpdateInput>
    /**
     * Choose, which DingtalkAnnualLeaveReleasePlan to update.
     */
    where: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
  }

  /**
   * DingtalkAnnualLeaveReleasePlan updateMany
   */
  export type DingtalkAnnualLeaveReleasePlanUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DingtalkAnnualLeaveReleasePlans.
     */
    data: XOR<DingtalkAnnualLeaveReleasePlanUpdateManyMutationInput, DingtalkAnnualLeaveReleasePlanUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkAnnualLeaveReleasePlans to update
     */
    where?: DingtalkAnnualLeaveReleasePlanWhereInput
    /**
     * Limit how many DingtalkAnnualLeaveReleasePlans to update.
     */
    limit?: number
  }

  /**
   * DingtalkAnnualLeaveReleasePlan updateManyAndReturn
   */
  export type DingtalkAnnualLeaveReleasePlanUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * The data used to update DingtalkAnnualLeaveReleasePlans.
     */
    data: XOR<DingtalkAnnualLeaveReleasePlanUpdateManyMutationInput, DingtalkAnnualLeaveReleasePlanUncheckedUpdateManyInput>
    /**
     * Filter which DingtalkAnnualLeaveReleasePlans to update
     */
    where?: DingtalkAnnualLeaveReleasePlanWhereInput
    /**
     * Limit how many DingtalkAnnualLeaveReleasePlans to update.
     */
    limit?: number
  }

  /**
   * DingtalkAnnualLeaveReleasePlan upsert
   */
  export type DingtalkAnnualLeaveReleasePlanUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * The filter to search for the DingtalkAnnualLeaveReleasePlan to update in case it exists.
     */
    where: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
    /**
     * In case the DingtalkAnnualLeaveReleasePlan found by the `where` argument doesn't exist, create a new DingtalkAnnualLeaveReleasePlan with this data.
     */
    create: XOR<DingtalkAnnualLeaveReleasePlanCreateInput, DingtalkAnnualLeaveReleasePlanUncheckedCreateInput>
    /**
     * In case the DingtalkAnnualLeaveReleasePlan was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DingtalkAnnualLeaveReleasePlanUpdateInput, DingtalkAnnualLeaveReleasePlanUncheckedUpdateInput>
  }

  /**
   * DingtalkAnnualLeaveReleasePlan delete
   */
  export type DingtalkAnnualLeaveReleasePlanDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
    /**
     * Filter which DingtalkAnnualLeaveReleasePlan to delete.
     */
    where: DingtalkAnnualLeaveReleasePlanWhereUniqueInput
  }

  /**
   * DingtalkAnnualLeaveReleasePlan deleteMany
   */
  export type DingtalkAnnualLeaveReleasePlanDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DingtalkAnnualLeaveReleasePlans to delete
     */
    where?: DingtalkAnnualLeaveReleasePlanWhereInput
    /**
     * Limit how many DingtalkAnnualLeaveReleasePlans to delete.
     */
    limit?: number
  }

  /**
   * DingtalkAnnualLeaveReleasePlan without action
   */
  export type DingtalkAnnualLeaveReleasePlanDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DingtalkAnnualLeaveReleasePlan
     */
    select?: DingtalkAnnualLeaveReleasePlanSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DingtalkAnnualLeaveReleasePlan
     */
    omit?: DingtalkAnnualLeaveReleasePlanOmit<ExtArgs> | null
  }


  /**
   * Model DevItem
   */

  export type AggregateDevItem = {
    _count: DevItemCountAggregateOutputType | null
    _min: DevItemMinAggregateOutputType | null
    _max: DevItemMaxAggregateOutputType | null
  }

  export type DevItemMinAggregateOutputType = {
    id: string | null
    code: string | null
    title: string | null
    description: string | null
    itemType: $Enums.DevItemType | null
    status: $Enums.DevItemStatus | null
    priority: $Enums.DevItemPriority | null
    severity: $Enums.DevItemSeverity | null
    moduleKey: string | null
    parentId: string | null
    ownerId: string | null
    reporterId: string | null
    reviewerId: string | null
    reviewedAt: Date | null
    startAt: Date | null
    devEtaAt: Date | null
    testEtaAt: Date | null
    etaAt: Date | null
    devCompletedAt: Date | null
    testCompletedAt: Date | null
    completedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type DevItemMaxAggregateOutputType = {
    id: string | null
    code: string | null
    title: string | null
    description: string | null
    itemType: $Enums.DevItemType | null
    status: $Enums.DevItemStatus | null
    priority: $Enums.DevItemPriority | null
    severity: $Enums.DevItemSeverity | null
    moduleKey: string | null
    parentId: string | null
    ownerId: string | null
    reporterId: string | null
    reviewerId: string | null
    reviewedAt: Date | null
    startAt: Date | null
    devEtaAt: Date | null
    testEtaAt: Date | null
    etaAt: Date | null
    devCompletedAt: Date | null
    testCompletedAt: Date | null
    completedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type DevItemCountAggregateOutputType = {
    id: number
    code: number
    title: number
    description: number
    itemType: number
    status: number
    priority: number
    severity: number
    moduleKey: number
    parentId: number
    ownerId: number
    reporterId: number
    reviewerId: number
    reviewedAt: number
    startAt: number
    devEtaAt: number
    testEtaAt: number
    etaAt: number
    devCompletedAt: number
    testCompletedAt: number
    completedAt: number
    content: number
    labels: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type DevItemMinAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    itemType?: true
    status?: true
    priority?: true
    severity?: true
    moduleKey?: true
    parentId?: true
    ownerId?: true
    reporterId?: true
    reviewerId?: true
    reviewedAt?: true
    startAt?: true
    devEtaAt?: true
    testEtaAt?: true
    etaAt?: true
    devCompletedAt?: true
    testCompletedAt?: true
    completedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type DevItemMaxAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    itemType?: true
    status?: true
    priority?: true
    severity?: true
    moduleKey?: true
    parentId?: true
    ownerId?: true
    reporterId?: true
    reviewerId?: true
    reviewedAt?: true
    startAt?: true
    devEtaAt?: true
    testEtaAt?: true
    etaAt?: true
    devCompletedAt?: true
    testCompletedAt?: true
    completedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type DevItemCountAggregateInputType = {
    id?: true
    code?: true
    title?: true
    description?: true
    itemType?: true
    status?: true
    priority?: true
    severity?: true
    moduleKey?: true
    parentId?: true
    ownerId?: true
    reporterId?: true
    reviewerId?: true
    reviewedAt?: true
    startAt?: true
    devEtaAt?: true
    testEtaAt?: true
    etaAt?: true
    devCompletedAt?: true
    testCompletedAt?: true
    completedAt?: true
    content?: true
    labels?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type DevItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DevItem to aggregate.
     */
    where?: DevItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DevItems to fetch.
     */
    orderBy?: DevItemOrderByWithRelationInput | DevItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DevItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DevItems 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` DevItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DevItems
    **/
    _count?: true | DevItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DevItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DevItemMaxAggregateInputType
  }

  export type GetDevItemAggregateType<T extends DevItemAggregateArgs> = {
        [P in keyof T & keyof AggregateDevItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDevItem[P]>
      : GetScalarType<T[P], AggregateDevItem[P]>
  }




  export type DevItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DevItemWhereInput
    orderBy?: DevItemOrderByWithAggregationInput | DevItemOrderByWithAggregationInput[]
    by: DevItemScalarFieldEnum[] | DevItemScalarFieldEnum
    having?: DevItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DevItemCountAggregateInputType | true
    _min?: DevItemMinAggregateInputType
    _max?: DevItemMaxAggregateInputType
  }

  export type DevItemGroupByOutputType = {
    id: string
    code: string
    title: string
    description: string | null
    itemType: $Enums.DevItemType
    status: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity: $Enums.DevItemSeverity | null
    moduleKey: string | null
    parentId: string | null
    ownerId: string
    reporterId: string
    reviewerId: string | null
    reviewedAt: Date | null
    startAt: Date | null
    devEtaAt: Date | null
    testEtaAt: Date | null
    etaAt: Date | null
    devCompletedAt: Date | null
    testCompletedAt: Date | null
    completedAt: Date | null
    content: JsonValue | null
    labels: JsonValue | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: DevItemCountAggregateOutputType | null
    _min: DevItemMinAggregateOutputType | null
    _max: DevItemMaxAggregateOutputType | null
  }

  type GetDevItemGroupByPayload<T extends DevItemGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DevItemGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DevItemGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DevItemGroupByOutputType[P]>
            : GetScalarType<T[P], DevItemGroupByOutputType[P]>
        }
      >
    >


  export type DevItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    itemType?: boolean
    status?: boolean
    priority?: boolean
    severity?: boolean
    moduleKey?: boolean
    parentId?: boolean
    ownerId?: boolean
    reporterId?: boolean
    reviewerId?: boolean
    reviewedAt?: boolean
    startAt?: boolean
    devEtaAt?: boolean
    testEtaAt?: boolean
    etaAt?: boolean
    devCompletedAt?: boolean
    testCompletedAt?: boolean
    completedAt?: boolean
    content?: boolean
    labels?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    parent?: boolean | DevItem$parentArgs<ExtArgs>
    children?: boolean | DevItem$childrenArgs<ExtArgs>
    owner?: boolean | UserDefaultArgs<ExtArgs>
    reporter?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | DevItem$reviewerArgs<ExtArgs>
    _count?: boolean | DevItemCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["devItem"]>

  export type DevItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    itemType?: boolean
    status?: boolean
    priority?: boolean
    severity?: boolean
    moduleKey?: boolean
    parentId?: boolean
    ownerId?: boolean
    reporterId?: boolean
    reviewerId?: boolean
    reviewedAt?: boolean
    startAt?: boolean
    devEtaAt?: boolean
    testEtaAt?: boolean
    etaAt?: boolean
    devCompletedAt?: boolean
    testCompletedAt?: boolean
    completedAt?: boolean
    content?: boolean
    labels?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    parent?: boolean | DevItem$parentArgs<ExtArgs>
    owner?: boolean | UserDefaultArgs<ExtArgs>
    reporter?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | DevItem$reviewerArgs<ExtArgs>
  }, ExtArgs["result"]["devItem"]>

  export type DevItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    itemType?: boolean
    status?: boolean
    priority?: boolean
    severity?: boolean
    moduleKey?: boolean
    parentId?: boolean
    ownerId?: boolean
    reporterId?: boolean
    reviewerId?: boolean
    reviewedAt?: boolean
    startAt?: boolean
    devEtaAt?: boolean
    testEtaAt?: boolean
    etaAt?: boolean
    devCompletedAt?: boolean
    testCompletedAt?: boolean
    completedAt?: boolean
    content?: boolean
    labels?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    parent?: boolean | DevItem$parentArgs<ExtArgs>
    owner?: boolean | UserDefaultArgs<ExtArgs>
    reporter?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | DevItem$reviewerArgs<ExtArgs>
  }, ExtArgs["result"]["devItem"]>

  export type DevItemSelectScalar = {
    id?: boolean
    code?: boolean
    title?: boolean
    description?: boolean
    itemType?: boolean
    status?: boolean
    priority?: boolean
    severity?: boolean
    moduleKey?: boolean
    parentId?: boolean
    ownerId?: boolean
    reporterId?: boolean
    reviewerId?: boolean
    reviewedAt?: boolean
    startAt?: boolean
    devEtaAt?: boolean
    testEtaAt?: boolean
    etaAt?: boolean
    devCompletedAt?: boolean
    testCompletedAt?: boolean
    completedAt?: boolean
    content?: boolean
    labels?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type DevItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "title" | "description" | "itemType" | "status" | "priority" | "severity" | "moduleKey" | "parentId" | "ownerId" | "reporterId" | "reviewerId" | "reviewedAt" | "startAt" | "devEtaAt" | "testEtaAt" | "etaAt" | "devCompletedAt" | "testCompletedAt" | "completedAt" | "content" | "labels" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["devItem"]>
  export type DevItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | DevItem$parentArgs<ExtArgs>
    children?: boolean | DevItem$childrenArgs<ExtArgs>
    owner?: boolean | UserDefaultArgs<ExtArgs>
    reporter?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | DevItem$reviewerArgs<ExtArgs>
    _count?: boolean | DevItemCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type DevItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | DevItem$parentArgs<ExtArgs>
    owner?: boolean | UserDefaultArgs<ExtArgs>
    reporter?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | DevItem$reviewerArgs<ExtArgs>
  }
  export type DevItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | DevItem$parentArgs<ExtArgs>
    owner?: boolean | UserDefaultArgs<ExtArgs>
    reporter?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | DevItem$reviewerArgs<ExtArgs>
  }

  export type $DevItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DevItem"
    objects: {
      parent: Prisma.$DevItemPayload<ExtArgs> | null
      children: Prisma.$DevItemPayload<ExtArgs>[]
      owner: Prisma.$UserPayload<ExtArgs>
      reporter: Prisma.$UserPayload<ExtArgs>
      reviewer: Prisma.$UserPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      title: string
      description: string | null
      itemType: $Enums.DevItemType
      status: $Enums.DevItemStatus
      priority: $Enums.DevItemPriority
      severity: $Enums.DevItemSeverity | null
      moduleKey: string | null
      parentId: string | null
      ownerId: string
      reporterId: string
      reviewerId: string | null
      reviewedAt: Date | null
      startAt: Date | null
      devEtaAt: Date | null
      testEtaAt: Date | null
      etaAt: Date | null
      devCompletedAt: Date | null
      testCompletedAt: Date | null
      completedAt: Date | null
      content: Prisma.JsonValue | null
      labels: Prisma.JsonValue | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["devItem"]>
    composites: {}
  }

  type DevItemGetPayload<S extends boolean | null | undefined | DevItemDefaultArgs> = $Result.GetResult<Prisma.$DevItemPayload, S>

  type DevItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DevItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DevItemCountAggregateInputType | true
    }

  export interface DevItemDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DevItem'], meta: { name: 'DevItem' } }
    /**
     * Find zero or one DevItem that matches the filter.
     * @param {DevItemFindUniqueArgs} args - Arguments to find a DevItem
     * @example
     * // Get one DevItem
     * const devItem = await prisma.devItem.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DevItemFindUniqueArgs>(args: SelectSubset<T, DevItemFindUniqueArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DevItem that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DevItemFindUniqueOrThrowArgs} args - Arguments to find a DevItem
     * @example
     * // Get one DevItem
     * const devItem = await prisma.devItem.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DevItemFindUniqueOrThrowArgs>(args: SelectSubset<T, DevItemFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DevItem 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 {DevItemFindFirstArgs} args - Arguments to find a DevItem
     * @example
     * // Get one DevItem
     * const devItem = await prisma.devItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DevItemFindFirstArgs>(args?: SelectSubset<T, DevItemFindFirstArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DevItem 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 {DevItemFindFirstOrThrowArgs} args - Arguments to find a DevItem
     * @example
     * // Get one DevItem
     * const devItem = await prisma.devItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DevItemFindFirstOrThrowArgs>(args?: SelectSubset<T, DevItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DevItems 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 {DevItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DevItems
     * const devItems = await prisma.devItem.findMany()
     * 
     * // Get first 10 DevItems
     * const devItems = await prisma.devItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const devItemWithIdOnly = await prisma.devItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DevItemFindManyArgs>(args?: SelectSubset<T, DevItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DevItem.
     * @param {DevItemCreateArgs} args - Arguments to create a DevItem.
     * @example
     * // Create one DevItem
     * const DevItem = await prisma.devItem.create({
     *   data: {
     *     // ... data to create a DevItem
     *   }
     * })
     * 
     */
    create<T extends DevItemCreateArgs>(args: SelectSubset<T, DevItemCreateArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DevItems.
     * @param {DevItemCreateManyArgs} args - Arguments to create many DevItems.
     * @example
     * // Create many DevItems
     * const devItem = await prisma.devItem.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DevItemCreateManyArgs>(args?: SelectSubset<T, DevItemCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DevItems and returns the data saved in the database.
     * @param {DevItemCreateManyAndReturnArgs} args - Arguments to create many DevItems.
     * @example
     * // Create many DevItems
     * const devItem = await prisma.devItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DevItems and only return the `id`
     * const devItemWithIdOnly = await prisma.devItem.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 DevItemCreateManyAndReturnArgs>(args?: SelectSubset<T, DevItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DevItem.
     * @param {DevItemDeleteArgs} args - Arguments to delete one DevItem.
     * @example
     * // Delete one DevItem
     * const DevItem = await prisma.devItem.delete({
     *   where: {
     *     // ... filter to delete one DevItem
     *   }
     * })
     * 
     */
    delete<T extends DevItemDeleteArgs>(args: SelectSubset<T, DevItemDeleteArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DevItem.
     * @param {DevItemUpdateArgs} args - Arguments to update one DevItem.
     * @example
     * // Update one DevItem
     * const devItem = await prisma.devItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DevItemUpdateArgs>(args: SelectSubset<T, DevItemUpdateArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DevItems.
     * @param {DevItemDeleteManyArgs} args - Arguments to filter DevItems to delete.
     * @example
     * // Delete a few DevItems
     * const { count } = await prisma.devItem.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DevItemDeleteManyArgs>(args?: SelectSubset<T, DevItemDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DevItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DevItemUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DevItems
     * const devItem = await prisma.devItem.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DevItemUpdateManyArgs>(args: SelectSubset<T, DevItemUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DevItems and returns the data updated in the database.
     * @param {DevItemUpdateManyAndReturnArgs} args - Arguments to update many DevItems.
     * @example
     * // Update many DevItems
     * const devItem = await prisma.devItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DevItems and only return the `id`
     * const devItemWithIdOnly = await prisma.devItem.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 DevItemUpdateManyAndReturnArgs>(args: SelectSubset<T, DevItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DevItem.
     * @param {DevItemUpsertArgs} args - Arguments to update or create a DevItem.
     * @example
     * // Update or create a DevItem
     * const devItem = await prisma.devItem.upsert({
     *   create: {
     *     // ... data to create a DevItem
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DevItem we want to update
     *   }
     * })
     */
    upsert<T extends DevItemUpsertArgs>(args: SelectSubset<T, DevItemUpsertArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DevItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DevItemCountArgs} args - Arguments to filter DevItems to count.
     * @example
     * // Count the number of DevItems
     * const count = await prisma.devItem.count({
     *   where: {
     *     // ... the filter for the DevItems we want to count
     *   }
     * })
    **/
    count<T extends DevItemCountArgs>(
      args?: Subset<T, DevItemCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DevItemCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DevItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DevItemAggregateArgs} 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 DevItemAggregateArgs>(args: Subset<T, DevItemAggregateArgs>): Prisma.PrismaPromise<GetDevItemAggregateType<T>>

    /**
     * Group by DevItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DevItemGroupByArgs} 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 DevItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DevItemGroupByArgs['orderBy'] }
        : { orderBy?: DevItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DevItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDevItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DevItem model
   */
  readonly fields: DevItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DevItem.
   * 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__DevItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    parent<T extends DevItem$parentArgs<ExtArgs> = {}>(args?: Subset<T, DevItem$parentArgs<ExtArgs>>): Prisma__DevItemClient<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    children<T extends DevItem$childrenArgs<ExtArgs> = {}>(args?: Subset<T, DevItem$childrenArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    owner<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    reporter<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    reviewer<T extends DevItem$reviewerArgs<ExtArgs> = {}>(args?: Subset<T, DevItem$reviewerArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DevItem model
   */
  interface DevItemFieldRefs {
    readonly id: FieldRef<"DevItem", 'String'>
    readonly code: FieldRef<"DevItem", 'String'>
    readonly title: FieldRef<"DevItem", 'String'>
    readonly description: FieldRef<"DevItem", 'String'>
    readonly itemType: FieldRef<"DevItem", 'DevItemType'>
    readonly status: FieldRef<"DevItem", 'DevItemStatus'>
    readonly priority: FieldRef<"DevItem", 'DevItemPriority'>
    readonly severity: FieldRef<"DevItem", 'DevItemSeverity'>
    readonly moduleKey: FieldRef<"DevItem", 'String'>
    readonly parentId: FieldRef<"DevItem", 'String'>
    readonly ownerId: FieldRef<"DevItem", 'String'>
    readonly reporterId: FieldRef<"DevItem", 'String'>
    readonly reviewerId: FieldRef<"DevItem", 'String'>
    readonly reviewedAt: FieldRef<"DevItem", 'DateTime'>
    readonly startAt: FieldRef<"DevItem", 'DateTime'>
    readonly devEtaAt: FieldRef<"DevItem", 'DateTime'>
    readonly testEtaAt: FieldRef<"DevItem", 'DateTime'>
    readonly etaAt: FieldRef<"DevItem", 'DateTime'>
    readonly devCompletedAt: FieldRef<"DevItem", 'DateTime'>
    readonly testCompletedAt: FieldRef<"DevItem", 'DateTime'>
    readonly completedAt: FieldRef<"DevItem", 'DateTime'>
    readonly content: FieldRef<"DevItem", 'Json'>
    readonly labels: FieldRef<"DevItem", 'Json'>
    readonly createdAt: FieldRef<"DevItem", 'DateTime'>
    readonly updatedAt: FieldRef<"DevItem", 'DateTime'>
    readonly deletedAt: FieldRef<"DevItem", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DevItem findUnique
   */
  export type DevItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * Filter, which DevItem to fetch.
     */
    where: DevItemWhereUniqueInput
  }

  /**
   * DevItem findUniqueOrThrow
   */
  export type DevItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * Filter, which DevItem to fetch.
     */
    where: DevItemWhereUniqueInput
  }

  /**
   * DevItem findFirst
   */
  export type DevItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * Filter, which DevItem to fetch.
     */
    where?: DevItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DevItems to fetch.
     */
    orderBy?: DevItemOrderByWithRelationInput | DevItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DevItems.
     */
    cursor?: DevItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DevItems 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` DevItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DevItems.
     */
    distinct?: DevItemScalarFieldEnum | DevItemScalarFieldEnum[]
  }

  /**
   * DevItem findFirstOrThrow
   */
  export type DevItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * Filter, which DevItem to fetch.
     */
    where?: DevItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DevItems to fetch.
     */
    orderBy?: DevItemOrderByWithRelationInput | DevItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DevItems.
     */
    cursor?: DevItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DevItems 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` DevItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DevItems.
     */
    distinct?: DevItemScalarFieldEnum | DevItemScalarFieldEnum[]
  }

  /**
   * DevItem findMany
   */
  export type DevItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * Filter, which DevItems to fetch.
     */
    where?: DevItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DevItems to fetch.
     */
    orderBy?: DevItemOrderByWithRelationInput | DevItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DevItems.
     */
    cursor?: DevItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DevItems 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` DevItems.
     */
    skip?: number
    distinct?: DevItemScalarFieldEnum | DevItemScalarFieldEnum[]
  }

  /**
   * DevItem create
   */
  export type DevItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * The data needed to create a DevItem.
     */
    data: XOR<DevItemCreateInput, DevItemUncheckedCreateInput>
  }

  /**
   * DevItem createMany
   */
  export type DevItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DevItems.
     */
    data: DevItemCreateManyInput | DevItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DevItem createManyAndReturn
   */
  export type DevItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * The data used to create many DevItems.
     */
    data: DevItemCreateManyInput | DevItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * DevItem update
   */
  export type DevItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * The data needed to update a DevItem.
     */
    data: XOR<DevItemUpdateInput, DevItemUncheckedUpdateInput>
    /**
     * Choose, which DevItem to update.
     */
    where: DevItemWhereUniqueInput
  }

  /**
   * DevItem updateMany
   */
  export type DevItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DevItems.
     */
    data: XOR<DevItemUpdateManyMutationInput, DevItemUncheckedUpdateManyInput>
    /**
     * Filter which DevItems to update
     */
    where?: DevItemWhereInput
    /**
     * Limit how many DevItems to update.
     */
    limit?: number
  }

  /**
   * DevItem updateManyAndReturn
   */
  export type DevItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * The data used to update DevItems.
     */
    data: XOR<DevItemUpdateManyMutationInput, DevItemUncheckedUpdateManyInput>
    /**
     * Filter which DevItems to update
     */
    where?: DevItemWhereInput
    /**
     * Limit how many DevItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * DevItem upsert
   */
  export type DevItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * The filter to search for the DevItem to update in case it exists.
     */
    where: DevItemWhereUniqueInput
    /**
     * In case the DevItem found by the `where` argument doesn't exist, create a new DevItem with this data.
     */
    create: XOR<DevItemCreateInput, DevItemUncheckedCreateInput>
    /**
     * In case the DevItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DevItemUpdateInput, DevItemUncheckedUpdateInput>
  }

  /**
   * DevItem delete
   */
  export type DevItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    /**
     * Filter which DevItem to delete.
     */
    where: DevItemWhereUniqueInput
  }

  /**
   * DevItem deleteMany
   */
  export type DevItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DevItems to delete
     */
    where?: DevItemWhereInput
    /**
     * Limit how many DevItems to delete.
     */
    limit?: number
  }

  /**
   * DevItem.parent
   */
  export type DevItem$parentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    where?: DevItemWhereInput
  }

  /**
   * DevItem.children
   */
  export type DevItem$childrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    where?: DevItemWhereInput
    orderBy?: DevItemOrderByWithRelationInput | DevItemOrderByWithRelationInput[]
    cursor?: DevItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DevItemScalarFieldEnum | DevItemScalarFieldEnum[]
  }

  /**
   * DevItem.reviewer
   */
  export type DevItem$reviewerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * DevItem without action
   */
  export type DevItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
  }


  /**
   * Model DevItemSequence
   */

  export type AggregateDevItemSequence = {
    _count: DevItemSequenceCountAggregateOutputType | null
    _avg: DevItemSequenceAvgAggregateOutputType | null
    _sum: DevItemSequenceSumAggregateOutputType | null
    _min: DevItemSequenceMinAggregateOutputType | null
    _max: DevItemSequenceMaxAggregateOutputType | null
  }

  export type DevItemSequenceAvgAggregateOutputType = {
    current: number | null
  }

  export type DevItemSequenceSumAggregateOutputType = {
    current: number | null
  }

  export type DevItemSequenceMinAggregateOutputType = {
    prefix: string | null
    current: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DevItemSequenceMaxAggregateOutputType = {
    prefix: string | null
    current: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DevItemSequenceCountAggregateOutputType = {
    prefix: number
    current: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DevItemSequenceAvgAggregateInputType = {
    current?: true
  }

  export type DevItemSequenceSumAggregateInputType = {
    current?: true
  }

  export type DevItemSequenceMinAggregateInputType = {
    prefix?: true
    current?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DevItemSequenceMaxAggregateInputType = {
    prefix?: true
    current?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DevItemSequenceCountAggregateInputType = {
    prefix?: true
    current?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DevItemSequenceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DevItemSequence to aggregate.
     */
    where?: DevItemSequenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DevItemSequences to fetch.
     */
    orderBy?: DevItemSequenceOrderByWithRelationInput | DevItemSequenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DevItemSequenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DevItemSequences 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` DevItemSequences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DevItemSequences
    **/
    _count?: true | DevItemSequenceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DevItemSequenceAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DevItemSequenceSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DevItemSequenceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DevItemSequenceMaxAggregateInputType
  }

  export type GetDevItemSequenceAggregateType<T extends DevItemSequenceAggregateArgs> = {
        [P in keyof T & keyof AggregateDevItemSequence]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDevItemSequence[P]>
      : GetScalarType<T[P], AggregateDevItemSequence[P]>
  }




  export type DevItemSequenceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DevItemSequenceWhereInput
    orderBy?: DevItemSequenceOrderByWithAggregationInput | DevItemSequenceOrderByWithAggregationInput[]
    by: DevItemSequenceScalarFieldEnum[] | DevItemSequenceScalarFieldEnum
    having?: DevItemSequenceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DevItemSequenceCountAggregateInputType | true
    _avg?: DevItemSequenceAvgAggregateInputType
    _sum?: DevItemSequenceSumAggregateInputType
    _min?: DevItemSequenceMinAggregateInputType
    _max?: DevItemSequenceMaxAggregateInputType
  }

  export type DevItemSequenceGroupByOutputType = {
    prefix: string
    current: number
    createdAt: Date
    updatedAt: Date
    _count: DevItemSequenceCountAggregateOutputType | null
    _avg: DevItemSequenceAvgAggregateOutputType | null
    _sum: DevItemSequenceSumAggregateOutputType | null
    _min: DevItemSequenceMinAggregateOutputType | null
    _max: DevItemSequenceMaxAggregateOutputType | null
  }

  type GetDevItemSequenceGroupByPayload<T extends DevItemSequenceGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DevItemSequenceGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DevItemSequenceGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DevItemSequenceGroupByOutputType[P]>
            : GetScalarType<T[P], DevItemSequenceGroupByOutputType[P]>
        }
      >
    >


  export type DevItemSequenceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    prefix?: boolean
    current?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["devItemSequence"]>

  export type DevItemSequenceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    prefix?: boolean
    current?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["devItemSequence"]>

  export type DevItemSequenceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    prefix?: boolean
    current?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["devItemSequence"]>

  export type DevItemSequenceSelectScalar = {
    prefix?: boolean
    current?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DevItemSequenceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"prefix" | "current" | "createdAt" | "updatedAt", ExtArgs["result"]["devItemSequence"]>

  export type $DevItemSequencePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DevItemSequence"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      prefix: string
      current: number
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["devItemSequence"]>
    composites: {}
  }

  type DevItemSequenceGetPayload<S extends boolean | null | undefined | DevItemSequenceDefaultArgs> = $Result.GetResult<Prisma.$DevItemSequencePayload, S>

  type DevItemSequenceCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DevItemSequenceFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DevItemSequenceCountAggregateInputType | true
    }

  export interface DevItemSequenceDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DevItemSequence'], meta: { name: 'DevItemSequence' } }
    /**
     * Find zero or one DevItemSequence that matches the filter.
     * @param {DevItemSequenceFindUniqueArgs} args - Arguments to find a DevItemSequence
     * @example
     * // Get one DevItemSequence
     * const devItemSequence = await prisma.devItemSequence.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DevItemSequenceFindUniqueArgs>(args: SelectSubset<T, DevItemSequenceFindUniqueArgs<ExtArgs>>): Prisma__DevItemSequenceClient<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DevItemSequence that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DevItemSequenceFindUniqueOrThrowArgs} args - Arguments to find a DevItemSequence
     * @example
     * // Get one DevItemSequence
     * const devItemSequence = await prisma.devItemSequence.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DevItemSequenceFindUniqueOrThrowArgs>(args: SelectSubset<T, DevItemSequenceFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DevItemSequenceClient<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DevItemSequence 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 {DevItemSequenceFindFirstArgs} args - Arguments to find a DevItemSequence
     * @example
     * // Get one DevItemSequence
     * const devItemSequence = await prisma.devItemSequence.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DevItemSequenceFindFirstArgs>(args?: SelectSubset<T, DevItemSequenceFindFirstArgs<ExtArgs>>): Prisma__DevItemSequenceClient<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DevItemSequence 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 {DevItemSequenceFindFirstOrThrowArgs} args - Arguments to find a DevItemSequence
     * @example
     * // Get one DevItemSequence
     * const devItemSequence = await prisma.devItemSequence.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DevItemSequenceFindFirstOrThrowArgs>(args?: SelectSubset<T, DevItemSequenceFindFirstOrThrowArgs<ExtArgs>>): Prisma__DevItemSequenceClient<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DevItemSequences 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 {DevItemSequenceFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DevItemSequences
     * const devItemSequences = await prisma.devItemSequence.findMany()
     * 
     * // Get first 10 DevItemSequences
     * const devItemSequences = await prisma.devItemSequence.findMany({ take: 10 })
     * 
     * // Only select the `prefix`
     * const devItemSequenceWithPrefixOnly = await prisma.devItemSequence.findMany({ select: { prefix: true } })
     * 
     */
    findMany<T extends DevItemSequenceFindManyArgs>(args?: SelectSubset<T, DevItemSequenceFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DevItemSequence.
     * @param {DevItemSequenceCreateArgs} args - Arguments to create a DevItemSequence.
     * @example
     * // Create one DevItemSequence
     * const DevItemSequence = await prisma.devItemSequence.create({
     *   data: {
     *     // ... data to create a DevItemSequence
     *   }
     * })
     * 
     */
    create<T extends DevItemSequenceCreateArgs>(args: SelectSubset<T, DevItemSequenceCreateArgs<ExtArgs>>): Prisma__DevItemSequenceClient<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DevItemSequences.
     * @param {DevItemSequenceCreateManyArgs} args - Arguments to create many DevItemSequences.
     * @example
     * // Create many DevItemSequences
     * const devItemSequence = await prisma.devItemSequence.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DevItemSequenceCreateManyArgs>(args?: SelectSubset<T, DevItemSequenceCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DevItemSequences and returns the data saved in the database.
     * @param {DevItemSequenceCreateManyAndReturnArgs} args - Arguments to create many DevItemSequences.
     * @example
     * // Create many DevItemSequences
     * const devItemSequence = await prisma.devItemSequence.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DevItemSequences and only return the `prefix`
     * const devItemSequenceWithPrefixOnly = await prisma.devItemSequence.createManyAndReturn({
     *   select: { prefix: 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 DevItemSequenceCreateManyAndReturnArgs>(args?: SelectSubset<T, DevItemSequenceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DevItemSequence.
     * @param {DevItemSequenceDeleteArgs} args - Arguments to delete one DevItemSequence.
     * @example
     * // Delete one DevItemSequence
     * const DevItemSequence = await prisma.devItemSequence.delete({
     *   where: {
     *     // ... filter to delete one DevItemSequence
     *   }
     * })
     * 
     */
    delete<T extends DevItemSequenceDeleteArgs>(args: SelectSubset<T, DevItemSequenceDeleteArgs<ExtArgs>>): Prisma__DevItemSequenceClient<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DevItemSequence.
     * @param {DevItemSequenceUpdateArgs} args - Arguments to update one DevItemSequence.
     * @example
     * // Update one DevItemSequence
     * const devItemSequence = await prisma.devItemSequence.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DevItemSequenceUpdateArgs>(args: SelectSubset<T, DevItemSequenceUpdateArgs<ExtArgs>>): Prisma__DevItemSequenceClient<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DevItemSequences.
     * @param {DevItemSequenceDeleteManyArgs} args - Arguments to filter DevItemSequences to delete.
     * @example
     * // Delete a few DevItemSequences
     * const { count } = await prisma.devItemSequence.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DevItemSequenceDeleteManyArgs>(args?: SelectSubset<T, DevItemSequenceDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DevItemSequences.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DevItemSequenceUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DevItemSequences
     * const devItemSequence = await prisma.devItemSequence.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DevItemSequenceUpdateManyArgs>(args: SelectSubset<T, DevItemSequenceUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DevItemSequences and returns the data updated in the database.
     * @param {DevItemSequenceUpdateManyAndReturnArgs} args - Arguments to update many DevItemSequences.
     * @example
     * // Update many DevItemSequences
     * const devItemSequence = await prisma.devItemSequence.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DevItemSequences and only return the `prefix`
     * const devItemSequenceWithPrefixOnly = await prisma.devItemSequence.updateManyAndReturn({
     *   select: { prefix: 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 DevItemSequenceUpdateManyAndReturnArgs>(args: SelectSubset<T, DevItemSequenceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DevItemSequence.
     * @param {DevItemSequenceUpsertArgs} args - Arguments to update or create a DevItemSequence.
     * @example
     * // Update or create a DevItemSequence
     * const devItemSequence = await prisma.devItemSequence.upsert({
     *   create: {
     *     // ... data to create a DevItemSequence
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DevItemSequence we want to update
     *   }
     * })
     */
    upsert<T extends DevItemSequenceUpsertArgs>(args: SelectSubset<T, DevItemSequenceUpsertArgs<ExtArgs>>): Prisma__DevItemSequenceClient<$Result.GetResult<Prisma.$DevItemSequencePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DevItemSequences.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DevItemSequenceCountArgs} args - Arguments to filter DevItemSequences to count.
     * @example
     * // Count the number of DevItemSequences
     * const count = await prisma.devItemSequence.count({
     *   where: {
     *     // ... the filter for the DevItemSequences we want to count
     *   }
     * })
    **/
    count<T extends DevItemSequenceCountArgs>(
      args?: Subset<T, DevItemSequenceCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DevItemSequenceCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DevItemSequence.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DevItemSequenceAggregateArgs} 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 DevItemSequenceAggregateArgs>(args: Subset<T, DevItemSequenceAggregateArgs>): Prisma.PrismaPromise<GetDevItemSequenceAggregateType<T>>

    /**
     * Group by DevItemSequence.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DevItemSequenceGroupByArgs} 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 DevItemSequenceGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DevItemSequenceGroupByArgs['orderBy'] }
        : { orderBy?: DevItemSequenceGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DevItemSequenceGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDevItemSequenceGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DevItemSequence model
   */
  readonly fields: DevItemSequenceFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DevItemSequence.
   * 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__DevItemSequenceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DevItemSequence model
   */
  interface DevItemSequenceFieldRefs {
    readonly prefix: FieldRef<"DevItemSequence", 'String'>
    readonly current: FieldRef<"DevItemSequence", 'Int'>
    readonly createdAt: FieldRef<"DevItemSequence", 'DateTime'>
    readonly updatedAt: FieldRef<"DevItemSequence", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DevItemSequence findUnique
   */
  export type DevItemSequenceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * Filter, which DevItemSequence to fetch.
     */
    where: DevItemSequenceWhereUniqueInput
  }

  /**
   * DevItemSequence findUniqueOrThrow
   */
  export type DevItemSequenceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * Filter, which DevItemSequence to fetch.
     */
    where: DevItemSequenceWhereUniqueInput
  }

  /**
   * DevItemSequence findFirst
   */
  export type DevItemSequenceFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * Filter, which DevItemSequence to fetch.
     */
    where?: DevItemSequenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DevItemSequences to fetch.
     */
    orderBy?: DevItemSequenceOrderByWithRelationInput | DevItemSequenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DevItemSequences.
     */
    cursor?: DevItemSequenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DevItemSequences 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` DevItemSequences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DevItemSequences.
     */
    distinct?: DevItemSequenceScalarFieldEnum | DevItemSequenceScalarFieldEnum[]
  }

  /**
   * DevItemSequence findFirstOrThrow
   */
  export type DevItemSequenceFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * Filter, which DevItemSequence to fetch.
     */
    where?: DevItemSequenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DevItemSequences to fetch.
     */
    orderBy?: DevItemSequenceOrderByWithRelationInput | DevItemSequenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DevItemSequences.
     */
    cursor?: DevItemSequenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DevItemSequences 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` DevItemSequences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DevItemSequences.
     */
    distinct?: DevItemSequenceScalarFieldEnum | DevItemSequenceScalarFieldEnum[]
  }

  /**
   * DevItemSequence findMany
   */
  export type DevItemSequenceFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * Filter, which DevItemSequences to fetch.
     */
    where?: DevItemSequenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DevItemSequences to fetch.
     */
    orderBy?: DevItemSequenceOrderByWithRelationInput | DevItemSequenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DevItemSequences.
     */
    cursor?: DevItemSequenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DevItemSequences 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` DevItemSequences.
     */
    skip?: number
    distinct?: DevItemSequenceScalarFieldEnum | DevItemSequenceScalarFieldEnum[]
  }

  /**
   * DevItemSequence create
   */
  export type DevItemSequenceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * The data needed to create a DevItemSequence.
     */
    data: XOR<DevItemSequenceCreateInput, DevItemSequenceUncheckedCreateInput>
  }

  /**
   * DevItemSequence createMany
   */
  export type DevItemSequenceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DevItemSequences.
     */
    data: DevItemSequenceCreateManyInput | DevItemSequenceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DevItemSequence createManyAndReturn
   */
  export type DevItemSequenceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * The data used to create many DevItemSequences.
     */
    data: DevItemSequenceCreateManyInput | DevItemSequenceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DevItemSequence update
   */
  export type DevItemSequenceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * The data needed to update a DevItemSequence.
     */
    data: XOR<DevItemSequenceUpdateInput, DevItemSequenceUncheckedUpdateInput>
    /**
     * Choose, which DevItemSequence to update.
     */
    where: DevItemSequenceWhereUniqueInput
  }

  /**
   * DevItemSequence updateMany
   */
  export type DevItemSequenceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DevItemSequences.
     */
    data: XOR<DevItemSequenceUpdateManyMutationInput, DevItemSequenceUncheckedUpdateManyInput>
    /**
     * Filter which DevItemSequences to update
     */
    where?: DevItemSequenceWhereInput
    /**
     * Limit how many DevItemSequences to update.
     */
    limit?: number
  }

  /**
   * DevItemSequence updateManyAndReturn
   */
  export type DevItemSequenceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * The data used to update DevItemSequences.
     */
    data: XOR<DevItemSequenceUpdateManyMutationInput, DevItemSequenceUncheckedUpdateManyInput>
    /**
     * Filter which DevItemSequences to update
     */
    where?: DevItemSequenceWhereInput
    /**
     * Limit how many DevItemSequences to update.
     */
    limit?: number
  }

  /**
   * DevItemSequence upsert
   */
  export type DevItemSequenceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * The filter to search for the DevItemSequence to update in case it exists.
     */
    where: DevItemSequenceWhereUniqueInput
    /**
     * In case the DevItemSequence found by the `where` argument doesn't exist, create a new DevItemSequence with this data.
     */
    create: XOR<DevItemSequenceCreateInput, DevItemSequenceUncheckedCreateInput>
    /**
     * In case the DevItemSequence was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DevItemSequenceUpdateInput, DevItemSequenceUncheckedUpdateInput>
  }

  /**
   * DevItemSequence delete
   */
  export type DevItemSequenceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
    /**
     * Filter which DevItemSequence to delete.
     */
    where: DevItemSequenceWhereUniqueInput
  }

  /**
   * DevItemSequence deleteMany
   */
  export type DevItemSequenceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DevItemSequences to delete
     */
    where?: DevItemSequenceWhereInput
    /**
     * Limit how many DevItemSequences to delete.
     */
    limit?: number
  }

  /**
   * DevItemSequence without action
   */
  export type DevItemSequenceDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItemSequence
     */
    select?: DevItemSequenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItemSequence
     */
    omit?: DevItemSequenceOmit<ExtArgs> | null
  }


  /**
   * Model ReleaseNote
   */

  export type AggregateReleaseNote = {
    _count: ReleaseNoteCountAggregateOutputType | null
    _min: ReleaseNoteMinAggregateOutputType | null
    _max: ReleaseNoteMaxAggregateOutputType | null
  }

  export type ReleaseNoteMinAggregateOutputType = {
    id: string | null
    version: string | null
    title: string | null
    releasedAt: Date | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ReleaseNoteMaxAggregateOutputType = {
    id: string | null
    version: string | null
    title: string | null
    releasedAt: Date | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ReleaseNoteCountAggregateOutputType = {
    id: number
    version: number
    title: number
    content: number
    releasedAt: number
    createdBy: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type ReleaseNoteMinAggregateInputType = {
    id?: true
    version?: true
    title?: true
    releasedAt?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ReleaseNoteMaxAggregateInputType = {
    id?: true
    version?: true
    title?: true
    releasedAt?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ReleaseNoteCountAggregateInputType = {
    id?: true
    version?: true
    title?: true
    content?: true
    releasedAt?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type ReleaseNoteAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ReleaseNote to aggregate.
     */
    where?: ReleaseNoteWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReleaseNotes to fetch.
     */
    orderBy?: ReleaseNoteOrderByWithRelationInput | ReleaseNoteOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ReleaseNoteWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReleaseNotes 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` ReleaseNotes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ReleaseNotes
    **/
    _count?: true | ReleaseNoteCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ReleaseNoteMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ReleaseNoteMaxAggregateInputType
  }

  export type GetReleaseNoteAggregateType<T extends ReleaseNoteAggregateArgs> = {
        [P in keyof T & keyof AggregateReleaseNote]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateReleaseNote[P]>
      : GetScalarType<T[P], AggregateReleaseNote[P]>
  }




  export type ReleaseNoteGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ReleaseNoteWhereInput
    orderBy?: ReleaseNoteOrderByWithAggregationInput | ReleaseNoteOrderByWithAggregationInput[]
    by: ReleaseNoteScalarFieldEnum[] | ReleaseNoteScalarFieldEnum
    having?: ReleaseNoteScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ReleaseNoteCountAggregateInputType | true
    _min?: ReleaseNoteMinAggregateInputType
    _max?: ReleaseNoteMaxAggregateInputType
  }

  export type ReleaseNoteGroupByOutputType = {
    id: string
    version: string
    title: string
    content: JsonValue | null
    releasedAt: Date
    createdBy: string
    createdAt: Date
    updatedAt: Date
    _count: ReleaseNoteCountAggregateOutputType | null
    _min: ReleaseNoteMinAggregateOutputType | null
    _max: ReleaseNoteMaxAggregateOutputType | null
  }

  type GetReleaseNoteGroupByPayload<T extends ReleaseNoteGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ReleaseNoteGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ReleaseNoteGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ReleaseNoteGroupByOutputType[P]>
            : GetScalarType<T[P], ReleaseNoteGroupByOutputType[P]>
        }
      >
    >


  export type ReleaseNoteSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    version?: boolean
    title?: boolean
    content?: boolean
    releasedAt?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["releaseNote"]>

  export type ReleaseNoteSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    version?: boolean
    title?: boolean
    content?: boolean
    releasedAt?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["releaseNote"]>

  export type ReleaseNoteSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    version?: boolean
    title?: boolean
    content?: boolean
    releasedAt?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["releaseNote"]>

  export type ReleaseNoteSelectScalar = {
    id?: boolean
    version?: boolean
    title?: boolean
    content?: boolean
    releasedAt?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type ReleaseNoteOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "version" | "title" | "content" | "releasedAt" | "createdBy" | "createdAt" | "updatedAt", ExtArgs["result"]["releaseNote"]>
  export type ReleaseNoteInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type ReleaseNoteIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type ReleaseNoteIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $ReleaseNotePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ReleaseNote"
    objects: {
      creator: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      version: string
      title: string
      content: Prisma.JsonValue | null
      releasedAt: Date
      createdBy: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["releaseNote"]>
    composites: {}
  }

  type ReleaseNoteGetPayload<S extends boolean | null | undefined | ReleaseNoteDefaultArgs> = $Result.GetResult<Prisma.$ReleaseNotePayload, S>

  type ReleaseNoteCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ReleaseNoteFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ReleaseNoteCountAggregateInputType | true
    }

  export interface ReleaseNoteDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ReleaseNote'], meta: { name: 'ReleaseNote' } }
    /**
     * Find zero or one ReleaseNote that matches the filter.
     * @param {ReleaseNoteFindUniqueArgs} args - Arguments to find a ReleaseNote
     * @example
     * // Get one ReleaseNote
     * const releaseNote = await prisma.releaseNote.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ReleaseNoteFindUniqueArgs>(args: SelectSubset<T, ReleaseNoteFindUniqueArgs<ExtArgs>>): Prisma__ReleaseNoteClient<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ReleaseNote that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ReleaseNoteFindUniqueOrThrowArgs} args - Arguments to find a ReleaseNote
     * @example
     * // Get one ReleaseNote
     * const releaseNote = await prisma.releaseNote.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ReleaseNoteFindUniqueOrThrowArgs>(args: SelectSubset<T, ReleaseNoteFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ReleaseNoteClient<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ReleaseNote 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 {ReleaseNoteFindFirstArgs} args - Arguments to find a ReleaseNote
     * @example
     * // Get one ReleaseNote
     * const releaseNote = await prisma.releaseNote.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ReleaseNoteFindFirstArgs>(args?: SelectSubset<T, ReleaseNoteFindFirstArgs<ExtArgs>>): Prisma__ReleaseNoteClient<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ReleaseNote 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 {ReleaseNoteFindFirstOrThrowArgs} args - Arguments to find a ReleaseNote
     * @example
     * // Get one ReleaseNote
     * const releaseNote = await prisma.releaseNote.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ReleaseNoteFindFirstOrThrowArgs>(args?: SelectSubset<T, ReleaseNoteFindFirstOrThrowArgs<ExtArgs>>): Prisma__ReleaseNoteClient<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ReleaseNotes 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 {ReleaseNoteFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ReleaseNotes
     * const releaseNotes = await prisma.releaseNote.findMany()
     * 
     * // Get first 10 ReleaseNotes
     * const releaseNotes = await prisma.releaseNote.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const releaseNoteWithIdOnly = await prisma.releaseNote.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ReleaseNoteFindManyArgs>(args?: SelectSubset<T, ReleaseNoteFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ReleaseNote.
     * @param {ReleaseNoteCreateArgs} args - Arguments to create a ReleaseNote.
     * @example
     * // Create one ReleaseNote
     * const ReleaseNote = await prisma.releaseNote.create({
     *   data: {
     *     // ... data to create a ReleaseNote
     *   }
     * })
     * 
     */
    create<T extends ReleaseNoteCreateArgs>(args: SelectSubset<T, ReleaseNoteCreateArgs<ExtArgs>>): Prisma__ReleaseNoteClient<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ReleaseNotes.
     * @param {ReleaseNoteCreateManyArgs} args - Arguments to create many ReleaseNotes.
     * @example
     * // Create many ReleaseNotes
     * const releaseNote = await prisma.releaseNote.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ReleaseNoteCreateManyArgs>(args?: SelectSubset<T, ReleaseNoteCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ReleaseNotes and returns the data saved in the database.
     * @param {ReleaseNoteCreateManyAndReturnArgs} args - Arguments to create many ReleaseNotes.
     * @example
     * // Create many ReleaseNotes
     * const releaseNote = await prisma.releaseNote.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ReleaseNotes and only return the `id`
     * const releaseNoteWithIdOnly = await prisma.releaseNote.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 ReleaseNoteCreateManyAndReturnArgs>(args?: SelectSubset<T, ReleaseNoteCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ReleaseNote.
     * @param {ReleaseNoteDeleteArgs} args - Arguments to delete one ReleaseNote.
     * @example
     * // Delete one ReleaseNote
     * const ReleaseNote = await prisma.releaseNote.delete({
     *   where: {
     *     // ... filter to delete one ReleaseNote
     *   }
     * })
     * 
     */
    delete<T extends ReleaseNoteDeleteArgs>(args: SelectSubset<T, ReleaseNoteDeleteArgs<ExtArgs>>): Prisma__ReleaseNoteClient<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ReleaseNote.
     * @param {ReleaseNoteUpdateArgs} args - Arguments to update one ReleaseNote.
     * @example
     * // Update one ReleaseNote
     * const releaseNote = await prisma.releaseNote.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ReleaseNoteUpdateArgs>(args: SelectSubset<T, ReleaseNoteUpdateArgs<ExtArgs>>): Prisma__ReleaseNoteClient<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ReleaseNotes.
     * @param {ReleaseNoteDeleteManyArgs} args - Arguments to filter ReleaseNotes to delete.
     * @example
     * // Delete a few ReleaseNotes
     * const { count } = await prisma.releaseNote.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ReleaseNoteDeleteManyArgs>(args?: SelectSubset<T, ReleaseNoteDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ReleaseNotes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReleaseNoteUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ReleaseNotes
     * const releaseNote = await prisma.releaseNote.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ReleaseNoteUpdateManyArgs>(args: SelectSubset<T, ReleaseNoteUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ReleaseNotes and returns the data updated in the database.
     * @param {ReleaseNoteUpdateManyAndReturnArgs} args - Arguments to update many ReleaseNotes.
     * @example
     * // Update many ReleaseNotes
     * const releaseNote = await prisma.releaseNote.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ReleaseNotes and only return the `id`
     * const releaseNoteWithIdOnly = await prisma.releaseNote.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 ReleaseNoteUpdateManyAndReturnArgs>(args: SelectSubset<T, ReleaseNoteUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ReleaseNote.
     * @param {ReleaseNoteUpsertArgs} args - Arguments to update or create a ReleaseNote.
     * @example
     * // Update or create a ReleaseNote
     * const releaseNote = await prisma.releaseNote.upsert({
     *   create: {
     *     // ... data to create a ReleaseNote
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ReleaseNote we want to update
     *   }
     * })
     */
    upsert<T extends ReleaseNoteUpsertArgs>(args: SelectSubset<T, ReleaseNoteUpsertArgs<ExtArgs>>): Prisma__ReleaseNoteClient<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ReleaseNotes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReleaseNoteCountArgs} args - Arguments to filter ReleaseNotes to count.
     * @example
     * // Count the number of ReleaseNotes
     * const count = await prisma.releaseNote.count({
     *   where: {
     *     // ... the filter for the ReleaseNotes we want to count
     *   }
     * })
    **/
    count<T extends ReleaseNoteCountArgs>(
      args?: Subset<T, ReleaseNoteCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ReleaseNoteCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ReleaseNote.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReleaseNoteAggregateArgs} 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 ReleaseNoteAggregateArgs>(args: Subset<T, ReleaseNoteAggregateArgs>): Prisma.PrismaPromise<GetReleaseNoteAggregateType<T>>

    /**
     * Group by ReleaseNote.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReleaseNoteGroupByArgs} 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 ReleaseNoteGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ReleaseNoteGroupByArgs['orderBy'] }
        : { orderBy?: ReleaseNoteGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ReleaseNoteGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetReleaseNoteGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ReleaseNote model
   */
  readonly fields: ReleaseNoteFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ReleaseNote.
   * 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__ReleaseNoteClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ReleaseNote model
   */
  interface ReleaseNoteFieldRefs {
    readonly id: FieldRef<"ReleaseNote", 'String'>
    readonly version: FieldRef<"ReleaseNote", 'String'>
    readonly title: FieldRef<"ReleaseNote", 'String'>
    readonly content: FieldRef<"ReleaseNote", 'Json'>
    readonly releasedAt: FieldRef<"ReleaseNote", 'DateTime'>
    readonly createdBy: FieldRef<"ReleaseNote", 'String'>
    readonly createdAt: FieldRef<"ReleaseNote", 'DateTime'>
    readonly updatedAt: FieldRef<"ReleaseNote", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ReleaseNote findUnique
   */
  export type ReleaseNoteFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseNote to fetch.
     */
    where: ReleaseNoteWhereUniqueInput
  }

  /**
   * ReleaseNote findUniqueOrThrow
   */
  export type ReleaseNoteFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseNote to fetch.
     */
    where: ReleaseNoteWhereUniqueInput
  }

  /**
   * ReleaseNote findFirst
   */
  export type ReleaseNoteFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseNote to fetch.
     */
    where?: ReleaseNoteWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReleaseNotes to fetch.
     */
    orderBy?: ReleaseNoteOrderByWithRelationInput | ReleaseNoteOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ReleaseNotes.
     */
    cursor?: ReleaseNoteWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReleaseNotes 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` ReleaseNotes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ReleaseNotes.
     */
    distinct?: ReleaseNoteScalarFieldEnum | ReleaseNoteScalarFieldEnum[]
  }

  /**
   * ReleaseNote findFirstOrThrow
   */
  export type ReleaseNoteFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseNote to fetch.
     */
    where?: ReleaseNoteWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReleaseNotes to fetch.
     */
    orderBy?: ReleaseNoteOrderByWithRelationInput | ReleaseNoteOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ReleaseNotes.
     */
    cursor?: ReleaseNoteWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReleaseNotes 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` ReleaseNotes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ReleaseNotes.
     */
    distinct?: ReleaseNoteScalarFieldEnum | ReleaseNoteScalarFieldEnum[]
  }

  /**
   * ReleaseNote findMany
   */
  export type ReleaseNoteFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseNotes to fetch.
     */
    where?: ReleaseNoteWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReleaseNotes to fetch.
     */
    orderBy?: ReleaseNoteOrderByWithRelationInput | ReleaseNoteOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ReleaseNotes.
     */
    cursor?: ReleaseNoteWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReleaseNotes 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` ReleaseNotes.
     */
    skip?: number
    distinct?: ReleaseNoteScalarFieldEnum | ReleaseNoteScalarFieldEnum[]
  }

  /**
   * ReleaseNote create
   */
  export type ReleaseNoteCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * The data needed to create a ReleaseNote.
     */
    data: XOR<ReleaseNoteCreateInput, ReleaseNoteUncheckedCreateInput>
  }

  /**
   * ReleaseNote createMany
   */
  export type ReleaseNoteCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ReleaseNotes.
     */
    data: ReleaseNoteCreateManyInput | ReleaseNoteCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ReleaseNote createManyAndReturn
   */
  export type ReleaseNoteCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * The data used to create many ReleaseNotes.
     */
    data: ReleaseNoteCreateManyInput | ReleaseNoteCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ReleaseNote update
   */
  export type ReleaseNoteUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * The data needed to update a ReleaseNote.
     */
    data: XOR<ReleaseNoteUpdateInput, ReleaseNoteUncheckedUpdateInput>
    /**
     * Choose, which ReleaseNote to update.
     */
    where: ReleaseNoteWhereUniqueInput
  }

  /**
   * ReleaseNote updateMany
   */
  export type ReleaseNoteUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ReleaseNotes.
     */
    data: XOR<ReleaseNoteUpdateManyMutationInput, ReleaseNoteUncheckedUpdateManyInput>
    /**
     * Filter which ReleaseNotes to update
     */
    where?: ReleaseNoteWhereInput
    /**
     * Limit how many ReleaseNotes to update.
     */
    limit?: number
  }

  /**
   * ReleaseNote updateManyAndReturn
   */
  export type ReleaseNoteUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * The data used to update ReleaseNotes.
     */
    data: XOR<ReleaseNoteUpdateManyMutationInput, ReleaseNoteUncheckedUpdateManyInput>
    /**
     * Filter which ReleaseNotes to update
     */
    where?: ReleaseNoteWhereInput
    /**
     * Limit how many ReleaseNotes to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ReleaseNote upsert
   */
  export type ReleaseNoteUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * The filter to search for the ReleaseNote to update in case it exists.
     */
    where: ReleaseNoteWhereUniqueInput
    /**
     * In case the ReleaseNote found by the `where` argument doesn't exist, create a new ReleaseNote with this data.
     */
    create: XOR<ReleaseNoteCreateInput, ReleaseNoteUncheckedCreateInput>
    /**
     * In case the ReleaseNote was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ReleaseNoteUpdateInput, ReleaseNoteUncheckedUpdateInput>
  }

  /**
   * ReleaseNote delete
   */
  export type ReleaseNoteDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    /**
     * Filter which ReleaseNote to delete.
     */
    where: ReleaseNoteWhereUniqueInput
  }

  /**
   * ReleaseNote deleteMany
   */
  export type ReleaseNoteDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ReleaseNotes to delete
     */
    where?: ReleaseNoteWhereInput
    /**
     * Limit how many ReleaseNotes to delete.
     */
    limit?: number
  }

  /**
   * ReleaseNote without action
   */
  export type ReleaseNoteDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
  }


  /**
   * Model Feedback
   */

  export type AggregateFeedback = {
    _count: FeedbackCountAggregateOutputType | null
    _min: FeedbackMinAggregateOutputType | null
    _max: FeedbackMaxAggregateOutputType | null
  }

  export type FeedbackMinAggregateOutputType = {
    id: string | null
    type: $Enums.FeedbackType | null
    title: string | null
    content: string | null
    pageUrl: string | null
    userAgent: string | null
    status: $Enums.FeedbackStatus | null
    priority: $Enums.FeedbackPriority | null
    adminNote: string | null
    adminReply: string | null
    assigneeId: string | null
    resolvedAt: Date | null
    userId: string | null
    region: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type FeedbackMaxAggregateOutputType = {
    id: string | null
    type: $Enums.FeedbackType | null
    title: string | null
    content: string | null
    pageUrl: string | null
    userAgent: string | null
    status: $Enums.FeedbackStatus | null
    priority: $Enums.FeedbackPriority | null
    adminNote: string | null
    adminReply: string | null
    assigneeId: string | null
    resolvedAt: Date | null
    userId: string | null
    region: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type FeedbackCountAggregateOutputType = {
    id: number
    type: number
    title: number
    content: number
    attachments: number
    pageUrl: number
    userAgent: number
    status: number
    priority: number
    adminNote: number
    adminReply: number
    assigneeId: number
    resolvedAt: number
    userId: number
    region: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type FeedbackMinAggregateInputType = {
    id?: true
    type?: true
    title?: true
    content?: true
    pageUrl?: true
    userAgent?: true
    status?: true
    priority?: true
    adminNote?: true
    adminReply?: true
    assigneeId?: true
    resolvedAt?: true
    userId?: true
    region?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type FeedbackMaxAggregateInputType = {
    id?: true
    type?: true
    title?: true
    content?: true
    pageUrl?: true
    userAgent?: true
    status?: true
    priority?: true
    adminNote?: true
    adminReply?: true
    assigneeId?: true
    resolvedAt?: true
    userId?: true
    region?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type FeedbackCountAggregateInputType = {
    id?: true
    type?: true
    title?: true
    content?: true
    attachments?: true
    pageUrl?: true
    userAgent?: true
    status?: true
    priority?: true
    adminNote?: true
    adminReply?: true
    assigneeId?: true
    resolvedAt?: true
    userId?: true
    region?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type FeedbackAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Feedback to aggregate.
     */
    where?: FeedbackWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Feedbacks to fetch.
     */
    orderBy?: FeedbackOrderByWithRelationInput | FeedbackOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FeedbackWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Feedbacks 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` Feedbacks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Feedbacks
    **/
    _count?: true | FeedbackCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FeedbackMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FeedbackMaxAggregateInputType
  }

  export type GetFeedbackAggregateType<T extends FeedbackAggregateArgs> = {
        [P in keyof T & keyof AggregateFeedback]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFeedback[P]>
      : GetScalarType<T[P], AggregateFeedback[P]>
  }




  export type FeedbackGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FeedbackWhereInput
    orderBy?: FeedbackOrderByWithAggregationInput | FeedbackOrderByWithAggregationInput[]
    by: FeedbackScalarFieldEnum[] | FeedbackScalarFieldEnum
    having?: FeedbackScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FeedbackCountAggregateInputType | true
    _min?: FeedbackMinAggregateInputType
    _max?: FeedbackMaxAggregateInputType
  }

  export type FeedbackGroupByOutputType = {
    id: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments: string[]
    pageUrl: string | null
    userAgent: string | null
    status: $Enums.FeedbackStatus
    priority: $Enums.FeedbackPriority | null
    adminNote: string | null
    adminReply: string | null
    assigneeId: string | null
    resolvedAt: Date | null
    userId: string
    region: string
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: FeedbackCountAggregateOutputType | null
    _min: FeedbackMinAggregateOutputType | null
    _max: FeedbackMaxAggregateOutputType | null
  }

  type GetFeedbackGroupByPayload<T extends FeedbackGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FeedbackGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FeedbackGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FeedbackGroupByOutputType[P]>
            : GetScalarType<T[P], FeedbackGroupByOutputType[P]>
        }
      >
    >


  export type FeedbackSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    title?: boolean
    content?: boolean
    attachments?: boolean
    pageUrl?: boolean
    userAgent?: boolean
    status?: boolean
    priority?: boolean
    adminNote?: boolean
    adminReply?: boolean
    assigneeId?: boolean
    resolvedAt?: boolean
    userId?: boolean
    region?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    assignee?: boolean | Feedback$assigneeArgs<ExtArgs>
  }, ExtArgs["result"]["feedback"]>

  export type FeedbackSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    title?: boolean
    content?: boolean
    attachments?: boolean
    pageUrl?: boolean
    userAgent?: boolean
    status?: boolean
    priority?: boolean
    adminNote?: boolean
    adminReply?: boolean
    assigneeId?: boolean
    resolvedAt?: boolean
    userId?: boolean
    region?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    assignee?: boolean | Feedback$assigneeArgs<ExtArgs>
  }, ExtArgs["result"]["feedback"]>

  export type FeedbackSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    title?: boolean
    content?: boolean
    attachments?: boolean
    pageUrl?: boolean
    userAgent?: boolean
    status?: boolean
    priority?: boolean
    adminNote?: boolean
    adminReply?: boolean
    assigneeId?: boolean
    resolvedAt?: boolean
    userId?: boolean
    region?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    assignee?: boolean | Feedback$assigneeArgs<ExtArgs>
  }, ExtArgs["result"]["feedback"]>

  export type FeedbackSelectScalar = {
    id?: boolean
    type?: boolean
    title?: boolean
    content?: boolean
    attachments?: boolean
    pageUrl?: boolean
    userAgent?: boolean
    status?: boolean
    priority?: boolean
    adminNote?: boolean
    adminReply?: boolean
    assigneeId?: boolean
    resolvedAt?: boolean
    userId?: boolean
    region?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type FeedbackOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "type" | "title" | "content" | "attachments" | "pageUrl" | "userAgent" | "status" | "priority" | "adminNote" | "adminReply" | "assigneeId" | "resolvedAt" | "userId" | "region" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["feedback"]>
  export type FeedbackInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    assignee?: boolean | Feedback$assigneeArgs<ExtArgs>
  }
  export type FeedbackIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    assignee?: boolean | Feedback$assigneeArgs<ExtArgs>
  }
  export type FeedbackIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    assignee?: boolean | Feedback$assigneeArgs<ExtArgs>
  }

  export type $FeedbackPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Feedback"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      assignee: Prisma.$UserPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      type: $Enums.FeedbackType
      title: string
      content: string
      attachments: string[]
      pageUrl: string | null
      userAgent: string | null
      status: $Enums.FeedbackStatus
      priority: $Enums.FeedbackPriority | null
      adminNote: string | null
      adminReply: string | null
      assigneeId: string | null
      resolvedAt: Date | null
      userId: string
      region: string
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["feedback"]>
    composites: {}
  }

  type FeedbackGetPayload<S extends boolean | null | undefined | FeedbackDefaultArgs> = $Result.GetResult<Prisma.$FeedbackPayload, S>

  type FeedbackCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FeedbackFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FeedbackCountAggregateInputType | true
    }

  export interface FeedbackDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Feedback'], meta: { name: 'Feedback' } }
    /**
     * Find zero or one Feedback that matches the filter.
     * @param {FeedbackFindUniqueArgs} args - Arguments to find a Feedback
     * @example
     * // Get one Feedback
     * const feedback = await prisma.feedback.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FeedbackFindUniqueArgs>(args: SelectSubset<T, FeedbackFindUniqueArgs<ExtArgs>>): Prisma__FeedbackClient<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Feedback that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FeedbackFindUniqueOrThrowArgs} args - Arguments to find a Feedback
     * @example
     * // Get one Feedback
     * const feedback = await prisma.feedback.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FeedbackFindUniqueOrThrowArgs>(args: SelectSubset<T, FeedbackFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FeedbackClient<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Feedback 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 {FeedbackFindFirstArgs} args - Arguments to find a Feedback
     * @example
     * // Get one Feedback
     * const feedback = await prisma.feedback.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FeedbackFindFirstArgs>(args?: SelectSubset<T, FeedbackFindFirstArgs<ExtArgs>>): Prisma__FeedbackClient<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Feedback 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 {FeedbackFindFirstOrThrowArgs} args - Arguments to find a Feedback
     * @example
     * // Get one Feedback
     * const feedback = await prisma.feedback.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FeedbackFindFirstOrThrowArgs>(args?: SelectSubset<T, FeedbackFindFirstOrThrowArgs<ExtArgs>>): Prisma__FeedbackClient<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Feedbacks 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 {FeedbackFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Feedbacks
     * const feedbacks = await prisma.feedback.findMany()
     * 
     * // Get first 10 Feedbacks
     * const feedbacks = await prisma.feedback.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const feedbackWithIdOnly = await prisma.feedback.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FeedbackFindManyArgs>(args?: SelectSubset<T, FeedbackFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Feedback.
     * @param {FeedbackCreateArgs} args - Arguments to create a Feedback.
     * @example
     * // Create one Feedback
     * const Feedback = await prisma.feedback.create({
     *   data: {
     *     // ... data to create a Feedback
     *   }
     * })
     * 
     */
    create<T extends FeedbackCreateArgs>(args: SelectSubset<T, FeedbackCreateArgs<ExtArgs>>): Prisma__FeedbackClient<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Feedbacks.
     * @param {FeedbackCreateManyArgs} args - Arguments to create many Feedbacks.
     * @example
     * // Create many Feedbacks
     * const feedback = await prisma.feedback.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FeedbackCreateManyArgs>(args?: SelectSubset<T, FeedbackCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Feedbacks and returns the data saved in the database.
     * @param {FeedbackCreateManyAndReturnArgs} args - Arguments to create many Feedbacks.
     * @example
     * // Create many Feedbacks
     * const feedback = await prisma.feedback.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Feedbacks and only return the `id`
     * const feedbackWithIdOnly = await prisma.feedback.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 FeedbackCreateManyAndReturnArgs>(args?: SelectSubset<T, FeedbackCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Feedback.
     * @param {FeedbackDeleteArgs} args - Arguments to delete one Feedback.
     * @example
     * // Delete one Feedback
     * const Feedback = await prisma.feedback.delete({
     *   where: {
     *     // ... filter to delete one Feedback
     *   }
     * })
     * 
     */
    delete<T extends FeedbackDeleteArgs>(args: SelectSubset<T, FeedbackDeleteArgs<ExtArgs>>): Prisma__FeedbackClient<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Feedback.
     * @param {FeedbackUpdateArgs} args - Arguments to update one Feedback.
     * @example
     * // Update one Feedback
     * const feedback = await prisma.feedback.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FeedbackUpdateArgs>(args: SelectSubset<T, FeedbackUpdateArgs<ExtArgs>>): Prisma__FeedbackClient<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Feedbacks.
     * @param {FeedbackDeleteManyArgs} args - Arguments to filter Feedbacks to delete.
     * @example
     * // Delete a few Feedbacks
     * const { count } = await prisma.feedback.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FeedbackDeleteManyArgs>(args?: SelectSubset<T, FeedbackDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Feedbacks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FeedbackUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Feedbacks
     * const feedback = await prisma.feedback.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FeedbackUpdateManyArgs>(args: SelectSubset<T, FeedbackUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Feedbacks and returns the data updated in the database.
     * @param {FeedbackUpdateManyAndReturnArgs} args - Arguments to update many Feedbacks.
     * @example
     * // Update many Feedbacks
     * const feedback = await prisma.feedback.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Feedbacks and only return the `id`
     * const feedbackWithIdOnly = await prisma.feedback.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 FeedbackUpdateManyAndReturnArgs>(args: SelectSubset<T, FeedbackUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Feedback.
     * @param {FeedbackUpsertArgs} args - Arguments to update or create a Feedback.
     * @example
     * // Update or create a Feedback
     * const feedback = await prisma.feedback.upsert({
     *   create: {
     *     // ... data to create a Feedback
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Feedback we want to update
     *   }
     * })
     */
    upsert<T extends FeedbackUpsertArgs>(args: SelectSubset<T, FeedbackUpsertArgs<ExtArgs>>): Prisma__FeedbackClient<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Feedbacks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FeedbackCountArgs} args - Arguments to filter Feedbacks to count.
     * @example
     * // Count the number of Feedbacks
     * const count = await prisma.feedback.count({
     *   where: {
     *     // ... the filter for the Feedbacks we want to count
     *   }
     * })
    **/
    count<T extends FeedbackCountArgs>(
      args?: Subset<T, FeedbackCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FeedbackCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Feedback.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FeedbackAggregateArgs} 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 FeedbackAggregateArgs>(args: Subset<T, FeedbackAggregateArgs>): Prisma.PrismaPromise<GetFeedbackAggregateType<T>>

    /**
     * Group by Feedback.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FeedbackGroupByArgs} 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 FeedbackGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FeedbackGroupByArgs['orderBy'] }
        : { orderBy?: FeedbackGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FeedbackGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFeedbackGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Feedback model
   */
  readonly fields: FeedbackFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Feedback.
   * 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__FeedbackClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    assignee<T extends Feedback$assigneeArgs<ExtArgs> = {}>(args?: Subset<T, Feedback$assigneeArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Feedback model
   */
  interface FeedbackFieldRefs {
    readonly id: FieldRef<"Feedback", 'String'>
    readonly type: FieldRef<"Feedback", 'FeedbackType'>
    readonly title: FieldRef<"Feedback", 'String'>
    readonly content: FieldRef<"Feedback", 'String'>
    readonly attachments: FieldRef<"Feedback", 'String[]'>
    readonly pageUrl: FieldRef<"Feedback", 'String'>
    readonly userAgent: FieldRef<"Feedback", 'String'>
    readonly status: FieldRef<"Feedback", 'FeedbackStatus'>
    readonly priority: FieldRef<"Feedback", 'FeedbackPriority'>
    readonly adminNote: FieldRef<"Feedback", 'String'>
    readonly adminReply: FieldRef<"Feedback", 'String'>
    readonly assigneeId: FieldRef<"Feedback", 'String'>
    readonly resolvedAt: FieldRef<"Feedback", 'DateTime'>
    readonly userId: FieldRef<"Feedback", 'String'>
    readonly region: FieldRef<"Feedback", 'String'>
    readonly createdAt: FieldRef<"Feedback", 'DateTime'>
    readonly updatedAt: FieldRef<"Feedback", 'DateTime'>
    readonly deletedAt: FieldRef<"Feedback", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Feedback findUnique
   */
  export type FeedbackFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * Filter, which Feedback to fetch.
     */
    where: FeedbackWhereUniqueInput
  }

  /**
   * Feedback findUniqueOrThrow
   */
  export type FeedbackFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * Filter, which Feedback to fetch.
     */
    where: FeedbackWhereUniqueInput
  }

  /**
   * Feedback findFirst
   */
  export type FeedbackFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * Filter, which Feedback to fetch.
     */
    where?: FeedbackWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Feedbacks to fetch.
     */
    orderBy?: FeedbackOrderByWithRelationInput | FeedbackOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Feedbacks.
     */
    cursor?: FeedbackWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Feedbacks 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` Feedbacks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Feedbacks.
     */
    distinct?: FeedbackScalarFieldEnum | FeedbackScalarFieldEnum[]
  }

  /**
   * Feedback findFirstOrThrow
   */
  export type FeedbackFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * Filter, which Feedback to fetch.
     */
    where?: FeedbackWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Feedbacks to fetch.
     */
    orderBy?: FeedbackOrderByWithRelationInput | FeedbackOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Feedbacks.
     */
    cursor?: FeedbackWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Feedbacks 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` Feedbacks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Feedbacks.
     */
    distinct?: FeedbackScalarFieldEnum | FeedbackScalarFieldEnum[]
  }

  /**
   * Feedback findMany
   */
  export type FeedbackFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * Filter, which Feedbacks to fetch.
     */
    where?: FeedbackWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Feedbacks to fetch.
     */
    orderBy?: FeedbackOrderByWithRelationInput | FeedbackOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Feedbacks.
     */
    cursor?: FeedbackWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Feedbacks 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` Feedbacks.
     */
    skip?: number
    distinct?: FeedbackScalarFieldEnum | FeedbackScalarFieldEnum[]
  }

  /**
   * Feedback create
   */
  export type FeedbackCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * The data needed to create a Feedback.
     */
    data: XOR<FeedbackCreateInput, FeedbackUncheckedCreateInput>
  }

  /**
   * Feedback createMany
   */
  export type FeedbackCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Feedbacks.
     */
    data: FeedbackCreateManyInput | FeedbackCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Feedback createManyAndReturn
   */
  export type FeedbackCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * The data used to create many Feedbacks.
     */
    data: FeedbackCreateManyInput | FeedbackCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Feedback update
   */
  export type FeedbackUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * The data needed to update a Feedback.
     */
    data: XOR<FeedbackUpdateInput, FeedbackUncheckedUpdateInput>
    /**
     * Choose, which Feedback to update.
     */
    where: FeedbackWhereUniqueInput
  }

  /**
   * Feedback updateMany
   */
  export type FeedbackUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Feedbacks.
     */
    data: XOR<FeedbackUpdateManyMutationInput, FeedbackUncheckedUpdateManyInput>
    /**
     * Filter which Feedbacks to update
     */
    where?: FeedbackWhereInput
    /**
     * Limit how many Feedbacks to update.
     */
    limit?: number
  }

  /**
   * Feedback updateManyAndReturn
   */
  export type FeedbackUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * The data used to update Feedbacks.
     */
    data: XOR<FeedbackUpdateManyMutationInput, FeedbackUncheckedUpdateManyInput>
    /**
     * Filter which Feedbacks to update
     */
    where?: FeedbackWhereInput
    /**
     * Limit how many Feedbacks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Feedback upsert
   */
  export type FeedbackUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * The filter to search for the Feedback to update in case it exists.
     */
    where: FeedbackWhereUniqueInput
    /**
     * In case the Feedback found by the `where` argument doesn't exist, create a new Feedback with this data.
     */
    create: XOR<FeedbackCreateInput, FeedbackUncheckedCreateInput>
    /**
     * In case the Feedback was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FeedbackUpdateInput, FeedbackUncheckedUpdateInput>
  }

  /**
   * Feedback delete
   */
  export type FeedbackDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    /**
     * Filter which Feedback to delete.
     */
    where: FeedbackWhereUniqueInput
  }

  /**
   * Feedback deleteMany
   */
  export type FeedbackDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Feedbacks to delete
     */
    where?: FeedbackWhereInput
    /**
     * Limit how many Feedbacks to delete.
     */
    limit?: number
  }

  /**
   * Feedback.assignee
   */
  export type Feedback$assigneeArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * Feedback without action
   */
  export type FeedbackDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
  }


  /**
   * Model FormDefinition
   */

  export type AggregateFormDefinition = {
    _count: FormDefinitionCountAggregateOutputType | null
    _avg: FormDefinitionAvgAggregateOutputType | null
    _sum: FormDefinitionSumAggregateOutputType | null
    _min: FormDefinitionMinAggregateOutputType | null
    _max: FormDefinitionMaxAggregateOutputType | null
  }

  export type FormDefinitionAvgAggregateOutputType = {
    latestVersion: number | null
  }

  export type FormDefinitionSumAggregateOutputType = {
    latestVersion: number | null
  }

  export type FormDefinitionMinAggregateOutputType = {
    id: string | null
    key: string | null
    slug: string | null
    name: string | null
    category: string | null
    description: string | null
    icon: string | null
    color: string | null
    defaultLocale: string | null
    latestVersion: number | null
    status: $Enums.FormStatus | null
    requiresApproval: boolean | null
    approvalProcessKey: string | null
    organizationId: string | null
    createdBy: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FormDefinitionMaxAggregateOutputType = {
    id: string | null
    key: string | null
    slug: string | null
    name: string | null
    category: string | null
    description: string | null
    icon: string | null
    color: string | null
    defaultLocale: string | null
    latestVersion: number | null
    status: $Enums.FormStatus | null
    requiresApproval: boolean | null
    approvalProcessKey: string | null
    organizationId: string | null
    createdBy: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FormDefinitionCountAggregateOutputType = {
    id: number
    key: number
    slug: number
    slugHistory: number
    aliases: number
    name: number
    category: number
    description: number
    icon: number
    color: number
    defaultLocale: number
    supportedLocales: number
    latestVersion: number
    status: number
    requiresApproval: number
    approvalProcessKey: number
    organizationId: number
    createdBy: number
    updatedBy: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type FormDefinitionAvgAggregateInputType = {
    latestVersion?: true
  }

  export type FormDefinitionSumAggregateInputType = {
    latestVersion?: true
  }

  export type FormDefinitionMinAggregateInputType = {
    id?: true
    key?: true
    slug?: true
    name?: true
    category?: true
    description?: true
    icon?: true
    color?: true
    defaultLocale?: true
    latestVersion?: true
    status?: true
    requiresApproval?: true
    approvalProcessKey?: true
    organizationId?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FormDefinitionMaxAggregateInputType = {
    id?: true
    key?: true
    slug?: true
    name?: true
    category?: true
    description?: true
    icon?: true
    color?: true
    defaultLocale?: true
    latestVersion?: true
    status?: true
    requiresApproval?: true
    approvalProcessKey?: true
    organizationId?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FormDefinitionCountAggregateInputType = {
    id?: true
    key?: true
    slug?: true
    slugHistory?: true
    aliases?: true
    name?: true
    category?: true
    description?: true
    icon?: true
    color?: true
    defaultLocale?: true
    supportedLocales?: true
    latestVersion?: true
    status?: true
    requiresApproval?: true
    approvalProcessKey?: true
    organizationId?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type FormDefinitionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormDefinition to aggregate.
     */
    where?: FormDefinitionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormDefinitions to fetch.
     */
    orderBy?: FormDefinitionOrderByWithRelationInput | FormDefinitionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FormDefinitionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormDefinitions 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` FormDefinitions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned FormDefinitions
    **/
    _count?: true | FormDefinitionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: FormDefinitionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: FormDefinitionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FormDefinitionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FormDefinitionMaxAggregateInputType
  }

  export type GetFormDefinitionAggregateType<T extends FormDefinitionAggregateArgs> = {
        [P in keyof T & keyof AggregateFormDefinition]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFormDefinition[P]>
      : GetScalarType<T[P], AggregateFormDefinition[P]>
  }




  export type FormDefinitionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormDefinitionWhereInput
    orderBy?: FormDefinitionOrderByWithAggregationInput | FormDefinitionOrderByWithAggregationInput[]
    by: FormDefinitionScalarFieldEnum[] | FormDefinitionScalarFieldEnum
    having?: FormDefinitionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FormDefinitionCountAggregateInputType | true
    _avg?: FormDefinitionAvgAggregateInputType
    _sum?: FormDefinitionSumAggregateInputType
    _min?: FormDefinitionMinAggregateInputType
    _max?: FormDefinitionMaxAggregateInputType
  }

  export type FormDefinitionGroupByOutputType = {
    id: string
    key: string
    slug: string
    slugHistory: JsonValue | null
    aliases: JsonValue | null
    name: string
    category: string
    description: string | null
    icon: string | null
    color: string | null
    defaultLocale: string
    supportedLocales: JsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval: boolean
    approvalProcessKey: string | null
    organizationId: string | null
    createdBy: string
    updatedBy: string | null
    createdAt: Date
    updatedAt: Date
    _count: FormDefinitionCountAggregateOutputType | null
    _avg: FormDefinitionAvgAggregateOutputType | null
    _sum: FormDefinitionSumAggregateOutputType | null
    _min: FormDefinitionMinAggregateOutputType | null
    _max: FormDefinitionMaxAggregateOutputType | null
  }

  type GetFormDefinitionGroupByPayload<T extends FormDefinitionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FormDefinitionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FormDefinitionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FormDefinitionGroupByOutputType[P]>
            : GetScalarType<T[P], FormDefinitionGroupByOutputType[P]>
        }
      >
    >


  export type FormDefinitionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    slug?: boolean
    slugHistory?: boolean
    aliases?: boolean
    name?: boolean
    category?: boolean
    description?: boolean
    icon?: boolean
    color?: boolean
    defaultLocale?: boolean
    supportedLocales?: boolean
    latestVersion?: boolean
    status?: boolean
    requiresApproval?: boolean
    approvalProcessKey?: boolean
    organizationId?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | FormDefinition$organizationArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormDefinition$updaterArgs<ExtArgs>
    instances?: boolean | FormDefinition$instancesArgs<ExtArgs>
    versions?: boolean | FormDefinition$versionsArgs<ExtArgs>
    _count?: boolean | FormDefinitionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formDefinition"]>

  export type FormDefinitionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    slug?: boolean
    slugHistory?: boolean
    aliases?: boolean
    name?: boolean
    category?: boolean
    description?: boolean
    icon?: boolean
    color?: boolean
    defaultLocale?: boolean
    supportedLocales?: boolean
    latestVersion?: boolean
    status?: boolean
    requiresApproval?: boolean
    approvalProcessKey?: boolean
    organizationId?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | FormDefinition$organizationArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormDefinition$updaterArgs<ExtArgs>
  }, ExtArgs["result"]["formDefinition"]>

  export type FormDefinitionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    slug?: boolean
    slugHistory?: boolean
    aliases?: boolean
    name?: boolean
    category?: boolean
    description?: boolean
    icon?: boolean
    color?: boolean
    defaultLocale?: boolean
    supportedLocales?: boolean
    latestVersion?: boolean
    status?: boolean
    requiresApproval?: boolean
    approvalProcessKey?: boolean
    organizationId?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | FormDefinition$organizationArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormDefinition$updaterArgs<ExtArgs>
  }, ExtArgs["result"]["formDefinition"]>

  export type FormDefinitionSelectScalar = {
    id?: boolean
    key?: boolean
    slug?: boolean
    slugHistory?: boolean
    aliases?: boolean
    name?: boolean
    category?: boolean
    description?: boolean
    icon?: boolean
    color?: boolean
    defaultLocale?: boolean
    supportedLocales?: boolean
    latestVersion?: boolean
    status?: boolean
    requiresApproval?: boolean
    approvalProcessKey?: boolean
    organizationId?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type FormDefinitionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "key" | "slug" | "slugHistory" | "aliases" | "name" | "category" | "description" | "icon" | "color" | "defaultLocale" | "supportedLocales" | "latestVersion" | "status" | "requiresApproval" | "approvalProcessKey" | "organizationId" | "createdBy" | "updatedBy" | "createdAt" | "updatedAt", ExtArgs["result"]["formDefinition"]>
  export type FormDefinitionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | FormDefinition$organizationArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormDefinition$updaterArgs<ExtArgs>
    instances?: boolean | FormDefinition$instancesArgs<ExtArgs>
    versions?: boolean | FormDefinition$versionsArgs<ExtArgs>
    _count?: boolean | FormDefinitionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type FormDefinitionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | FormDefinition$organizationArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormDefinition$updaterArgs<ExtArgs>
  }
  export type FormDefinitionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | FormDefinition$organizationArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormDefinition$updaterArgs<ExtArgs>
  }

  export type $FormDefinitionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "FormDefinition"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
      creator: Prisma.$UserPayload<ExtArgs>
      updater: Prisma.$UserPayload<ExtArgs> | null
      instances: Prisma.$FormInstancePayload<ExtArgs>[]
      versions: Prisma.$FormVersionPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      /**
       * 内部唯一标识（不可变）
       */
      key: string
      /**
       * URL slug（可修改）
       */
      slug: string
      /**
       * slug 历史记录（用于重定向）
       */
      slugHistory: Prisma.JsonValue | null
      /**
       * 业务别名（用于 API 兼容）
       */
      aliases: Prisma.JsonValue | null
      name: string
      category: string
      description: string | null
      icon: string | null
      color: string | null
      defaultLocale: string
      /**
       * 支持的语言列表，如 ["zh-CN", "en-US"]
       */
      supportedLocales: Prisma.JsonValue
      latestVersion: number
      status: $Enums.FormStatus
      requiresApproval: boolean
      approvalProcessKey: string | null
      /**
       * 表单归属组织（v2.0: 独立组织表）
       * null = 平台级表单（所有组织可用）
       * 非 null = 组织专属表单
       */
      organizationId: string | null
      createdBy: string
      updatedBy: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["formDefinition"]>
    composites: {}
  }

  type FormDefinitionGetPayload<S extends boolean | null | undefined | FormDefinitionDefaultArgs> = $Result.GetResult<Prisma.$FormDefinitionPayload, S>

  type FormDefinitionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FormDefinitionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FormDefinitionCountAggregateInputType | true
    }

  export interface FormDefinitionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['FormDefinition'], meta: { name: 'FormDefinition' } }
    /**
     * Find zero or one FormDefinition that matches the filter.
     * @param {FormDefinitionFindUniqueArgs} args - Arguments to find a FormDefinition
     * @example
     * // Get one FormDefinition
     * const formDefinition = await prisma.formDefinition.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FormDefinitionFindUniqueArgs>(args: SelectSubset<T, FormDefinitionFindUniqueArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one FormDefinition that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FormDefinitionFindUniqueOrThrowArgs} args - Arguments to find a FormDefinition
     * @example
     * // Get one FormDefinition
     * const formDefinition = await prisma.formDefinition.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FormDefinitionFindUniqueOrThrowArgs>(args: SelectSubset<T, FormDefinitionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormDefinition 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 {FormDefinitionFindFirstArgs} args - Arguments to find a FormDefinition
     * @example
     * // Get one FormDefinition
     * const formDefinition = await prisma.formDefinition.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FormDefinitionFindFirstArgs>(args?: SelectSubset<T, FormDefinitionFindFirstArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormDefinition 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 {FormDefinitionFindFirstOrThrowArgs} args - Arguments to find a FormDefinition
     * @example
     * // Get one FormDefinition
     * const formDefinition = await prisma.formDefinition.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FormDefinitionFindFirstOrThrowArgs>(args?: SelectSubset<T, FormDefinitionFindFirstOrThrowArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more FormDefinitions 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 {FormDefinitionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all FormDefinitions
     * const formDefinitions = await prisma.formDefinition.findMany()
     * 
     * // Get first 10 FormDefinitions
     * const formDefinitions = await prisma.formDefinition.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const formDefinitionWithIdOnly = await prisma.formDefinition.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FormDefinitionFindManyArgs>(args?: SelectSubset<T, FormDefinitionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a FormDefinition.
     * @param {FormDefinitionCreateArgs} args - Arguments to create a FormDefinition.
     * @example
     * // Create one FormDefinition
     * const FormDefinition = await prisma.formDefinition.create({
     *   data: {
     *     // ... data to create a FormDefinition
     *   }
     * })
     * 
     */
    create<T extends FormDefinitionCreateArgs>(args: SelectSubset<T, FormDefinitionCreateArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many FormDefinitions.
     * @param {FormDefinitionCreateManyArgs} args - Arguments to create many FormDefinitions.
     * @example
     * // Create many FormDefinitions
     * const formDefinition = await prisma.formDefinition.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FormDefinitionCreateManyArgs>(args?: SelectSubset<T, FormDefinitionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many FormDefinitions and returns the data saved in the database.
     * @param {FormDefinitionCreateManyAndReturnArgs} args - Arguments to create many FormDefinitions.
     * @example
     * // Create many FormDefinitions
     * const formDefinition = await prisma.formDefinition.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many FormDefinitions and only return the `id`
     * const formDefinitionWithIdOnly = await prisma.formDefinition.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 FormDefinitionCreateManyAndReturnArgs>(args?: SelectSubset<T, FormDefinitionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a FormDefinition.
     * @param {FormDefinitionDeleteArgs} args - Arguments to delete one FormDefinition.
     * @example
     * // Delete one FormDefinition
     * const FormDefinition = await prisma.formDefinition.delete({
     *   where: {
     *     // ... filter to delete one FormDefinition
     *   }
     * })
     * 
     */
    delete<T extends FormDefinitionDeleteArgs>(args: SelectSubset<T, FormDefinitionDeleteArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one FormDefinition.
     * @param {FormDefinitionUpdateArgs} args - Arguments to update one FormDefinition.
     * @example
     * // Update one FormDefinition
     * const formDefinition = await prisma.formDefinition.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FormDefinitionUpdateArgs>(args: SelectSubset<T, FormDefinitionUpdateArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more FormDefinitions.
     * @param {FormDefinitionDeleteManyArgs} args - Arguments to filter FormDefinitions to delete.
     * @example
     * // Delete a few FormDefinitions
     * const { count } = await prisma.formDefinition.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FormDefinitionDeleteManyArgs>(args?: SelectSubset<T, FormDefinitionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormDefinitions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormDefinitionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many FormDefinitions
     * const formDefinition = await prisma.formDefinition.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FormDefinitionUpdateManyArgs>(args: SelectSubset<T, FormDefinitionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormDefinitions and returns the data updated in the database.
     * @param {FormDefinitionUpdateManyAndReturnArgs} args - Arguments to update many FormDefinitions.
     * @example
     * // Update many FormDefinitions
     * const formDefinition = await prisma.formDefinition.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more FormDefinitions and only return the `id`
     * const formDefinitionWithIdOnly = await prisma.formDefinition.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 FormDefinitionUpdateManyAndReturnArgs>(args: SelectSubset<T, FormDefinitionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one FormDefinition.
     * @param {FormDefinitionUpsertArgs} args - Arguments to update or create a FormDefinition.
     * @example
     * // Update or create a FormDefinition
     * const formDefinition = await prisma.formDefinition.upsert({
     *   create: {
     *     // ... data to create a FormDefinition
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the FormDefinition we want to update
     *   }
     * })
     */
    upsert<T extends FormDefinitionUpsertArgs>(args: SelectSubset<T, FormDefinitionUpsertArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of FormDefinitions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormDefinitionCountArgs} args - Arguments to filter FormDefinitions to count.
     * @example
     * // Count the number of FormDefinitions
     * const count = await prisma.formDefinition.count({
     *   where: {
     *     // ... the filter for the FormDefinitions we want to count
     *   }
     * })
    **/
    count<T extends FormDefinitionCountArgs>(
      args?: Subset<T, FormDefinitionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FormDefinitionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a FormDefinition.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormDefinitionAggregateArgs} 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 FormDefinitionAggregateArgs>(args: Subset<T, FormDefinitionAggregateArgs>): Prisma.PrismaPromise<GetFormDefinitionAggregateType<T>>

    /**
     * Group by FormDefinition.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormDefinitionGroupByArgs} 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 FormDefinitionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FormDefinitionGroupByArgs['orderBy'] }
        : { orderBy?: FormDefinitionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FormDefinitionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFormDefinitionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the FormDefinition model
   */
  readonly fields: FormDefinitionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for FormDefinition.
   * 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__FormDefinitionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends FormDefinition$organizationArgs<ExtArgs> = {}>(args?: Subset<T, FormDefinition$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    updater<T extends FormDefinition$updaterArgs<ExtArgs> = {}>(args?: Subset<T, FormDefinition$updaterArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    instances<T extends FormDefinition$instancesArgs<ExtArgs> = {}>(args?: Subset<T, FormDefinition$instancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    versions<T extends FormDefinition$versionsArgs<ExtArgs> = {}>(args?: Subset<T, FormDefinition$versionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the FormDefinition model
   */
  interface FormDefinitionFieldRefs {
    readonly id: FieldRef<"FormDefinition", 'String'>
    readonly key: FieldRef<"FormDefinition", 'String'>
    readonly slug: FieldRef<"FormDefinition", 'String'>
    readonly slugHistory: FieldRef<"FormDefinition", 'Json'>
    readonly aliases: FieldRef<"FormDefinition", 'Json'>
    readonly name: FieldRef<"FormDefinition", 'String'>
    readonly category: FieldRef<"FormDefinition", 'String'>
    readonly description: FieldRef<"FormDefinition", 'String'>
    readonly icon: FieldRef<"FormDefinition", 'String'>
    readonly color: FieldRef<"FormDefinition", 'String'>
    readonly defaultLocale: FieldRef<"FormDefinition", 'String'>
    readonly supportedLocales: FieldRef<"FormDefinition", 'Json'>
    readonly latestVersion: FieldRef<"FormDefinition", 'Int'>
    readonly status: FieldRef<"FormDefinition", 'FormStatus'>
    readonly requiresApproval: FieldRef<"FormDefinition", 'Boolean'>
    readonly approvalProcessKey: FieldRef<"FormDefinition", 'String'>
    readonly organizationId: FieldRef<"FormDefinition", 'String'>
    readonly createdBy: FieldRef<"FormDefinition", 'String'>
    readonly updatedBy: FieldRef<"FormDefinition", 'String'>
    readonly createdAt: FieldRef<"FormDefinition", 'DateTime'>
    readonly updatedAt: FieldRef<"FormDefinition", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * FormDefinition findUnique
   */
  export type FormDefinitionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * Filter, which FormDefinition to fetch.
     */
    where: FormDefinitionWhereUniqueInput
  }

  /**
   * FormDefinition findUniqueOrThrow
   */
  export type FormDefinitionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * Filter, which FormDefinition to fetch.
     */
    where: FormDefinitionWhereUniqueInput
  }

  /**
   * FormDefinition findFirst
   */
  export type FormDefinitionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * Filter, which FormDefinition to fetch.
     */
    where?: FormDefinitionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormDefinitions to fetch.
     */
    orderBy?: FormDefinitionOrderByWithRelationInput | FormDefinitionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormDefinitions.
     */
    cursor?: FormDefinitionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormDefinitions 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` FormDefinitions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormDefinitions.
     */
    distinct?: FormDefinitionScalarFieldEnum | FormDefinitionScalarFieldEnum[]
  }

  /**
   * FormDefinition findFirstOrThrow
   */
  export type FormDefinitionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * Filter, which FormDefinition to fetch.
     */
    where?: FormDefinitionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormDefinitions to fetch.
     */
    orderBy?: FormDefinitionOrderByWithRelationInput | FormDefinitionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormDefinitions.
     */
    cursor?: FormDefinitionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormDefinitions 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` FormDefinitions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormDefinitions.
     */
    distinct?: FormDefinitionScalarFieldEnum | FormDefinitionScalarFieldEnum[]
  }

  /**
   * FormDefinition findMany
   */
  export type FormDefinitionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * Filter, which FormDefinitions to fetch.
     */
    where?: FormDefinitionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormDefinitions to fetch.
     */
    orderBy?: FormDefinitionOrderByWithRelationInput | FormDefinitionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing FormDefinitions.
     */
    cursor?: FormDefinitionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormDefinitions 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` FormDefinitions.
     */
    skip?: number
    distinct?: FormDefinitionScalarFieldEnum | FormDefinitionScalarFieldEnum[]
  }

  /**
   * FormDefinition create
   */
  export type FormDefinitionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * The data needed to create a FormDefinition.
     */
    data: XOR<FormDefinitionCreateInput, FormDefinitionUncheckedCreateInput>
  }

  /**
   * FormDefinition createMany
   */
  export type FormDefinitionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many FormDefinitions.
     */
    data: FormDefinitionCreateManyInput | FormDefinitionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FormDefinition createManyAndReturn
   */
  export type FormDefinitionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * The data used to create many FormDefinitions.
     */
    data: FormDefinitionCreateManyInput | FormDefinitionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormDefinition update
   */
  export type FormDefinitionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * The data needed to update a FormDefinition.
     */
    data: XOR<FormDefinitionUpdateInput, FormDefinitionUncheckedUpdateInput>
    /**
     * Choose, which FormDefinition to update.
     */
    where: FormDefinitionWhereUniqueInput
  }

  /**
   * FormDefinition updateMany
   */
  export type FormDefinitionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update FormDefinitions.
     */
    data: XOR<FormDefinitionUpdateManyMutationInput, FormDefinitionUncheckedUpdateManyInput>
    /**
     * Filter which FormDefinitions to update
     */
    where?: FormDefinitionWhereInput
    /**
     * Limit how many FormDefinitions to update.
     */
    limit?: number
  }

  /**
   * FormDefinition updateManyAndReturn
   */
  export type FormDefinitionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * The data used to update FormDefinitions.
     */
    data: XOR<FormDefinitionUpdateManyMutationInput, FormDefinitionUncheckedUpdateManyInput>
    /**
     * Filter which FormDefinitions to update
     */
    where?: FormDefinitionWhereInput
    /**
     * Limit how many FormDefinitions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormDefinition upsert
   */
  export type FormDefinitionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * The filter to search for the FormDefinition to update in case it exists.
     */
    where: FormDefinitionWhereUniqueInput
    /**
     * In case the FormDefinition found by the `where` argument doesn't exist, create a new FormDefinition with this data.
     */
    create: XOR<FormDefinitionCreateInput, FormDefinitionUncheckedCreateInput>
    /**
     * In case the FormDefinition was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FormDefinitionUpdateInput, FormDefinitionUncheckedUpdateInput>
  }

  /**
   * FormDefinition delete
   */
  export type FormDefinitionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    /**
     * Filter which FormDefinition to delete.
     */
    where: FormDefinitionWhereUniqueInput
  }

  /**
   * FormDefinition deleteMany
   */
  export type FormDefinitionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormDefinitions to delete
     */
    where?: FormDefinitionWhereInput
    /**
     * Limit how many FormDefinitions to delete.
     */
    limit?: number
  }

  /**
   * FormDefinition.organization
   */
  export type FormDefinition$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * FormDefinition.updater
   */
  export type FormDefinition$updaterArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * FormDefinition.instances
   */
  export type FormDefinition$instancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    where?: FormInstanceWhereInput
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    cursor?: FormInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * FormDefinition.versions
   */
  export type FormDefinition$versionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    where?: FormVersionWhereInput
    orderBy?: FormVersionOrderByWithRelationInput | FormVersionOrderByWithRelationInput[]
    cursor?: FormVersionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormVersionScalarFieldEnum | FormVersionScalarFieldEnum[]
  }

  /**
   * FormDefinition without action
   */
  export type FormDefinitionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
  }


  /**
   * Model FormVersion
   */

  export type AggregateFormVersion = {
    _count: FormVersionCountAggregateOutputType | null
    _avg: FormVersionAvgAggregateOutputType | null
    _sum: FormVersionSumAggregateOutputType | null
    _min: FormVersionMinAggregateOutputType | null
    _max: FormVersionMaxAggregateOutputType | null
  }

  export type FormVersionAvgAggregateOutputType = {
    version: number | null
  }

  export type FormVersionSumAggregateOutputType = {
    version: number | null
  }

  export type FormVersionMinAggregateOutputType = {
    id: string | null
    definitionId: string | null
    version: number | null
    changelog: string | null
    isDefault: boolean | null
    status: $Enums.FormVersionStatus | null
    reviewedBy: string | null
    reviewedAt: Date | null
    reviewComment: string | null
    publishedAt: Date | null
    createdBy: string | null
    createdAt: Date | null
  }

  export type FormVersionMaxAggregateOutputType = {
    id: string | null
    definitionId: string | null
    version: number | null
    changelog: string | null
    isDefault: boolean | null
    status: $Enums.FormVersionStatus | null
    reviewedBy: string | null
    reviewedAt: Date | null
    reviewComment: string | null
    publishedAt: Date | null
    createdBy: string | null
    createdAt: Date | null
  }

  export type FormVersionCountAggregateOutputType = {
    id: number
    definitionId: number
    version: number
    schema: number
    uiSchema: number
    viewSchema: number
    validation: number
    changelog: number
    nameI18n: number
    descriptionI18n: number
    isDefault: number
    status: number
    reviewedBy: number
    reviewedAt: number
    reviewComment: number
    publishedAt: number
    createdBy: number
    createdAt: number
    _all: number
  }


  export type FormVersionAvgAggregateInputType = {
    version?: true
  }

  export type FormVersionSumAggregateInputType = {
    version?: true
  }

  export type FormVersionMinAggregateInputType = {
    id?: true
    definitionId?: true
    version?: true
    changelog?: true
    isDefault?: true
    status?: true
    reviewedBy?: true
    reviewedAt?: true
    reviewComment?: true
    publishedAt?: true
    createdBy?: true
    createdAt?: true
  }

  export type FormVersionMaxAggregateInputType = {
    id?: true
    definitionId?: true
    version?: true
    changelog?: true
    isDefault?: true
    status?: true
    reviewedBy?: true
    reviewedAt?: true
    reviewComment?: true
    publishedAt?: true
    createdBy?: true
    createdAt?: true
  }

  export type FormVersionCountAggregateInputType = {
    id?: true
    definitionId?: true
    version?: true
    schema?: true
    uiSchema?: true
    viewSchema?: true
    validation?: true
    changelog?: true
    nameI18n?: true
    descriptionI18n?: true
    isDefault?: true
    status?: true
    reviewedBy?: true
    reviewedAt?: true
    reviewComment?: true
    publishedAt?: true
    createdBy?: true
    createdAt?: true
    _all?: true
  }

  export type FormVersionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormVersion to aggregate.
     */
    where?: FormVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormVersions to fetch.
     */
    orderBy?: FormVersionOrderByWithRelationInput | FormVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FormVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormVersions 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` FormVersions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned FormVersions
    **/
    _count?: true | FormVersionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: FormVersionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: FormVersionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FormVersionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FormVersionMaxAggregateInputType
  }

  export type GetFormVersionAggregateType<T extends FormVersionAggregateArgs> = {
        [P in keyof T & keyof AggregateFormVersion]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFormVersion[P]>
      : GetScalarType<T[P], AggregateFormVersion[P]>
  }




  export type FormVersionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormVersionWhereInput
    orderBy?: FormVersionOrderByWithAggregationInput | FormVersionOrderByWithAggregationInput[]
    by: FormVersionScalarFieldEnum[] | FormVersionScalarFieldEnum
    having?: FormVersionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FormVersionCountAggregateInputType | true
    _avg?: FormVersionAvgAggregateInputType
    _sum?: FormVersionSumAggregateInputType
    _min?: FormVersionMinAggregateInputType
    _max?: FormVersionMaxAggregateInputType
  }

  export type FormVersionGroupByOutputType = {
    id: string
    definitionId: string
    version: number
    schema: JsonValue
    uiSchema: JsonValue | null
    viewSchema: JsonValue | null
    validation: JsonValue | null
    changelog: string | null
    nameI18n: JsonValue
    descriptionI18n: JsonValue | null
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy: string | null
    reviewedAt: Date | null
    reviewComment: string | null
    publishedAt: Date | null
    createdBy: string
    createdAt: Date
    _count: FormVersionCountAggregateOutputType | null
    _avg: FormVersionAvgAggregateOutputType | null
    _sum: FormVersionSumAggregateOutputType | null
    _min: FormVersionMinAggregateOutputType | null
    _max: FormVersionMaxAggregateOutputType | null
  }

  type GetFormVersionGroupByPayload<T extends FormVersionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FormVersionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FormVersionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FormVersionGroupByOutputType[P]>
            : GetScalarType<T[P], FormVersionGroupByOutputType[P]>
        }
      >
    >


  export type FormVersionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    definitionId?: boolean
    version?: boolean
    schema?: boolean
    uiSchema?: boolean
    viewSchema?: boolean
    validation?: boolean
    changelog?: boolean
    nameI18n?: boolean
    descriptionI18n?: boolean
    isDefault?: boolean
    status?: boolean
    reviewedBy?: boolean
    reviewedAt?: boolean
    reviewComment?: boolean
    publishedAt?: boolean
    createdBy?: boolean
    createdAt?: boolean
    instances?: boolean | FormVersion$instancesArgs<ExtArgs>
    translations?: boolean | FormVersion$translationsArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | FormVersion$reviewerArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
    _count?: boolean | FormVersionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formVersion"]>

  export type FormVersionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    definitionId?: boolean
    version?: boolean
    schema?: boolean
    uiSchema?: boolean
    viewSchema?: boolean
    validation?: boolean
    changelog?: boolean
    nameI18n?: boolean
    descriptionI18n?: boolean
    isDefault?: boolean
    status?: boolean
    reviewedBy?: boolean
    reviewedAt?: boolean
    reviewComment?: boolean
    publishedAt?: boolean
    createdBy?: boolean
    createdAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | FormVersion$reviewerArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formVersion"]>

  export type FormVersionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    definitionId?: boolean
    version?: boolean
    schema?: boolean
    uiSchema?: boolean
    viewSchema?: boolean
    validation?: boolean
    changelog?: boolean
    nameI18n?: boolean
    descriptionI18n?: boolean
    isDefault?: boolean
    status?: boolean
    reviewedBy?: boolean
    reviewedAt?: boolean
    reviewComment?: boolean
    publishedAt?: boolean
    createdBy?: boolean
    createdAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | FormVersion$reviewerArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formVersion"]>

  export type FormVersionSelectScalar = {
    id?: boolean
    definitionId?: boolean
    version?: boolean
    schema?: boolean
    uiSchema?: boolean
    viewSchema?: boolean
    validation?: boolean
    changelog?: boolean
    nameI18n?: boolean
    descriptionI18n?: boolean
    isDefault?: boolean
    status?: boolean
    reviewedBy?: boolean
    reviewedAt?: boolean
    reviewComment?: boolean
    publishedAt?: boolean
    createdBy?: boolean
    createdAt?: boolean
  }

  export type FormVersionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "definitionId" | "version" | "schema" | "uiSchema" | "viewSchema" | "validation" | "changelog" | "nameI18n" | "descriptionI18n" | "isDefault" | "status" | "reviewedBy" | "reviewedAt" | "reviewComment" | "publishedAt" | "createdBy" | "createdAt", ExtArgs["result"]["formVersion"]>
  export type FormVersionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instances?: boolean | FormVersion$instancesArgs<ExtArgs>
    translations?: boolean | FormVersion$translationsArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | FormVersion$reviewerArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
    _count?: boolean | FormVersionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type FormVersionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | FormVersion$reviewerArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
  }
  export type FormVersionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    reviewer?: boolean | FormVersion$reviewerArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
  }

  export type $FormVersionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "FormVersion"
    objects: {
      instances: Prisma.$FormInstancePayload<ExtArgs>[]
      translations: Prisma.$FormTranslationPayload<ExtArgs>[]
      creator: Prisma.$UserPayload<ExtArgs>
      reviewer: Prisma.$UserPayload<ExtArgs> | null
      definition: Prisma.$FormDefinitionPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      definitionId: string
      version: number
      schema: Prisma.JsonValue
      uiSchema: Prisma.JsonValue | null
      viewSchema: Prisma.JsonValue | null
      validation: Prisma.JsonValue | null
      changelog: string | null
      /**
       * 多语言名称，如 { "zh-CN": "报销申请", "en-US": "Expense Report" }
       */
      nameI18n: Prisma.JsonValue
      descriptionI18n: Prisma.JsonValue | null
      isDefault: boolean
      status: $Enums.FormVersionStatus
      reviewedBy: string | null
      reviewedAt: Date | null
      reviewComment: string | null
      publishedAt: Date | null
      createdBy: string
      createdAt: Date
    }, ExtArgs["result"]["formVersion"]>
    composites: {}
  }

  type FormVersionGetPayload<S extends boolean | null | undefined | FormVersionDefaultArgs> = $Result.GetResult<Prisma.$FormVersionPayload, S>

  type FormVersionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FormVersionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FormVersionCountAggregateInputType | true
    }

  export interface FormVersionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['FormVersion'], meta: { name: 'FormVersion' } }
    /**
     * Find zero or one FormVersion that matches the filter.
     * @param {FormVersionFindUniqueArgs} args - Arguments to find a FormVersion
     * @example
     * // Get one FormVersion
     * const formVersion = await prisma.formVersion.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FormVersionFindUniqueArgs>(args: SelectSubset<T, FormVersionFindUniqueArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one FormVersion that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FormVersionFindUniqueOrThrowArgs} args - Arguments to find a FormVersion
     * @example
     * // Get one FormVersion
     * const formVersion = await prisma.formVersion.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FormVersionFindUniqueOrThrowArgs>(args: SelectSubset<T, FormVersionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormVersion 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 {FormVersionFindFirstArgs} args - Arguments to find a FormVersion
     * @example
     * // Get one FormVersion
     * const formVersion = await prisma.formVersion.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FormVersionFindFirstArgs>(args?: SelectSubset<T, FormVersionFindFirstArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormVersion 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 {FormVersionFindFirstOrThrowArgs} args - Arguments to find a FormVersion
     * @example
     * // Get one FormVersion
     * const formVersion = await prisma.formVersion.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FormVersionFindFirstOrThrowArgs>(args?: SelectSubset<T, FormVersionFindFirstOrThrowArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more FormVersions 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 {FormVersionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all FormVersions
     * const formVersions = await prisma.formVersion.findMany()
     * 
     * // Get first 10 FormVersions
     * const formVersions = await prisma.formVersion.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const formVersionWithIdOnly = await prisma.formVersion.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FormVersionFindManyArgs>(args?: SelectSubset<T, FormVersionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a FormVersion.
     * @param {FormVersionCreateArgs} args - Arguments to create a FormVersion.
     * @example
     * // Create one FormVersion
     * const FormVersion = await prisma.formVersion.create({
     *   data: {
     *     // ... data to create a FormVersion
     *   }
     * })
     * 
     */
    create<T extends FormVersionCreateArgs>(args: SelectSubset<T, FormVersionCreateArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many FormVersions.
     * @param {FormVersionCreateManyArgs} args - Arguments to create many FormVersions.
     * @example
     * // Create many FormVersions
     * const formVersion = await prisma.formVersion.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FormVersionCreateManyArgs>(args?: SelectSubset<T, FormVersionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many FormVersions and returns the data saved in the database.
     * @param {FormVersionCreateManyAndReturnArgs} args - Arguments to create many FormVersions.
     * @example
     * // Create many FormVersions
     * const formVersion = await prisma.formVersion.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many FormVersions and only return the `id`
     * const formVersionWithIdOnly = await prisma.formVersion.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 FormVersionCreateManyAndReturnArgs>(args?: SelectSubset<T, FormVersionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a FormVersion.
     * @param {FormVersionDeleteArgs} args - Arguments to delete one FormVersion.
     * @example
     * // Delete one FormVersion
     * const FormVersion = await prisma.formVersion.delete({
     *   where: {
     *     // ... filter to delete one FormVersion
     *   }
     * })
     * 
     */
    delete<T extends FormVersionDeleteArgs>(args: SelectSubset<T, FormVersionDeleteArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one FormVersion.
     * @param {FormVersionUpdateArgs} args - Arguments to update one FormVersion.
     * @example
     * // Update one FormVersion
     * const formVersion = await prisma.formVersion.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FormVersionUpdateArgs>(args: SelectSubset<T, FormVersionUpdateArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more FormVersions.
     * @param {FormVersionDeleteManyArgs} args - Arguments to filter FormVersions to delete.
     * @example
     * // Delete a few FormVersions
     * const { count } = await prisma.formVersion.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FormVersionDeleteManyArgs>(args?: SelectSubset<T, FormVersionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormVersions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormVersionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many FormVersions
     * const formVersion = await prisma.formVersion.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FormVersionUpdateManyArgs>(args: SelectSubset<T, FormVersionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormVersions and returns the data updated in the database.
     * @param {FormVersionUpdateManyAndReturnArgs} args - Arguments to update many FormVersions.
     * @example
     * // Update many FormVersions
     * const formVersion = await prisma.formVersion.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more FormVersions and only return the `id`
     * const formVersionWithIdOnly = await prisma.formVersion.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 FormVersionUpdateManyAndReturnArgs>(args: SelectSubset<T, FormVersionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one FormVersion.
     * @param {FormVersionUpsertArgs} args - Arguments to update or create a FormVersion.
     * @example
     * // Update or create a FormVersion
     * const formVersion = await prisma.formVersion.upsert({
     *   create: {
     *     // ... data to create a FormVersion
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the FormVersion we want to update
     *   }
     * })
     */
    upsert<T extends FormVersionUpsertArgs>(args: SelectSubset<T, FormVersionUpsertArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of FormVersions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormVersionCountArgs} args - Arguments to filter FormVersions to count.
     * @example
     * // Count the number of FormVersions
     * const count = await prisma.formVersion.count({
     *   where: {
     *     // ... the filter for the FormVersions we want to count
     *   }
     * })
    **/
    count<T extends FormVersionCountArgs>(
      args?: Subset<T, FormVersionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FormVersionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a FormVersion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormVersionAggregateArgs} 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 FormVersionAggregateArgs>(args: Subset<T, FormVersionAggregateArgs>): Prisma.PrismaPromise<GetFormVersionAggregateType<T>>

    /**
     * Group by FormVersion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormVersionGroupByArgs} 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 FormVersionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FormVersionGroupByArgs['orderBy'] }
        : { orderBy?: FormVersionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FormVersionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFormVersionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the FormVersion model
   */
  readonly fields: FormVersionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for FormVersion.
   * 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__FormVersionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    instances<T extends FormVersion$instancesArgs<ExtArgs> = {}>(args?: Subset<T, FormVersion$instancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    translations<T extends FormVersion$translationsArgs<ExtArgs> = {}>(args?: Subset<T, FormVersion$translationsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    reviewer<T extends FormVersion$reviewerArgs<ExtArgs> = {}>(args?: Subset<T, FormVersion$reviewerArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    definition<T extends FormDefinitionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, FormDefinitionDefaultArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the FormVersion model
   */
  interface FormVersionFieldRefs {
    readonly id: FieldRef<"FormVersion", 'String'>
    readonly definitionId: FieldRef<"FormVersion", 'String'>
    readonly version: FieldRef<"FormVersion", 'Int'>
    readonly schema: FieldRef<"FormVersion", 'Json'>
    readonly uiSchema: FieldRef<"FormVersion", 'Json'>
    readonly viewSchema: FieldRef<"FormVersion", 'Json'>
    readonly validation: FieldRef<"FormVersion", 'Json'>
    readonly changelog: FieldRef<"FormVersion", 'String'>
    readonly nameI18n: FieldRef<"FormVersion", 'Json'>
    readonly descriptionI18n: FieldRef<"FormVersion", 'Json'>
    readonly isDefault: FieldRef<"FormVersion", 'Boolean'>
    readonly status: FieldRef<"FormVersion", 'FormVersionStatus'>
    readonly reviewedBy: FieldRef<"FormVersion", 'String'>
    readonly reviewedAt: FieldRef<"FormVersion", 'DateTime'>
    readonly reviewComment: FieldRef<"FormVersion", 'String'>
    readonly publishedAt: FieldRef<"FormVersion", 'DateTime'>
    readonly createdBy: FieldRef<"FormVersion", 'String'>
    readonly createdAt: FieldRef<"FormVersion", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * FormVersion findUnique
   */
  export type FormVersionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * Filter, which FormVersion to fetch.
     */
    where: FormVersionWhereUniqueInput
  }

  /**
   * FormVersion findUniqueOrThrow
   */
  export type FormVersionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * Filter, which FormVersion to fetch.
     */
    where: FormVersionWhereUniqueInput
  }

  /**
   * FormVersion findFirst
   */
  export type FormVersionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * Filter, which FormVersion to fetch.
     */
    where?: FormVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormVersions to fetch.
     */
    orderBy?: FormVersionOrderByWithRelationInput | FormVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormVersions.
     */
    cursor?: FormVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormVersions 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` FormVersions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormVersions.
     */
    distinct?: FormVersionScalarFieldEnum | FormVersionScalarFieldEnum[]
  }

  /**
   * FormVersion findFirstOrThrow
   */
  export type FormVersionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * Filter, which FormVersion to fetch.
     */
    where?: FormVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormVersions to fetch.
     */
    orderBy?: FormVersionOrderByWithRelationInput | FormVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormVersions.
     */
    cursor?: FormVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormVersions 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` FormVersions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormVersions.
     */
    distinct?: FormVersionScalarFieldEnum | FormVersionScalarFieldEnum[]
  }

  /**
   * FormVersion findMany
   */
  export type FormVersionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * Filter, which FormVersions to fetch.
     */
    where?: FormVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormVersions to fetch.
     */
    orderBy?: FormVersionOrderByWithRelationInput | FormVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing FormVersions.
     */
    cursor?: FormVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormVersions 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` FormVersions.
     */
    skip?: number
    distinct?: FormVersionScalarFieldEnum | FormVersionScalarFieldEnum[]
  }

  /**
   * FormVersion create
   */
  export type FormVersionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * The data needed to create a FormVersion.
     */
    data: XOR<FormVersionCreateInput, FormVersionUncheckedCreateInput>
  }

  /**
   * FormVersion createMany
   */
  export type FormVersionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many FormVersions.
     */
    data: FormVersionCreateManyInput | FormVersionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FormVersion createManyAndReturn
   */
  export type FormVersionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * The data used to create many FormVersions.
     */
    data: FormVersionCreateManyInput | FormVersionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormVersion update
   */
  export type FormVersionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * The data needed to update a FormVersion.
     */
    data: XOR<FormVersionUpdateInput, FormVersionUncheckedUpdateInput>
    /**
     * Choose, which FormVersion to update.
     */
    where: FormVersionWhereUniqueInput
  }

  /**
   * FormVersion updateMany
   */
  export type FormVersionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update FormVersions.
     */
    data: XOR<FormVersionUpdateManyMutationInput, FormVersionUncheckedUpdateManyInput>
    /**
     * Filter which FormVersions to update
     */
    where?: FormVersionWhereInput
    /**
     * Limit how many FormVersions to update.
     */
    limit?: number
  }

  /**
   * FormVersion updateManyAndReturn
   */
  export type FormVersionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * The data used to update FormVersions.
     */
    data: XOR<FormVersionUpdateManyMutationInput, FormVersionUncheckedUpdateManyInput>
    /**
     * Filter which FormVersions to update
     */
    where?: FormVersionWhereInput
    /**
     * Limit how many FormVersions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormVersion upsert
   */
  export type FormVersionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * The filter to search for the FormVersion to update in case it exists.
     */
    where: FormVersionWhereUniqueInput
    /**
     * In case the FormVersion found by the `where` argument doesn't exist, create a new FormVersion with this data.
     */
    create: XOR<FormVersionCreateInput, FormVersionUncheckedCreateInput>
    /**
     * In case the FormVersion was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FormVersionUpdateInput, FormVersionUncheckedUpdateInput>
  }

  /**
   * FormVersion delete
   */
  export type FormVersionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    /**
     * Filter which FormVersion to delete.
     */
    where: FormVersionWhereUniqueInput
  }

  /**
   * FormVersion deleteMany
   */
  export type FormVersionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormVersions to delete
     */
    where?: FormVersionWhereInput
    /**
     * Limit how many FormVersions to delete.
     */
    limit?: number
  }

  /**
   * FormVersion.instances
   */
  export type FormVersion$instancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    where?: FormInstanceWhereInput
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    cursor?: FormInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * FormVersion.translations
   */
  export type FormVersion$translationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    where?: FormTranslationWhereInput
    orderBy?: FormTranslationOrderByWithRelationInput | FormTranslationOrderByWithRelationInput[]
    cursor?: FormTranslationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormTranslationScalarFieldEnum | FormTranslationScalarFieldEnum[]
  }

  /**
   * FormVersion.reviewer
   */
  export type FormVersion$reviewerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * FormVersion without action
   */
  export type FormVersionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
  }


  /**
   * Model FormInstance
   */

  export type AggregateFormInstance = {
    _count: FormInstanceCountAggregateOutputType | null
    _avg: FormInstanceAvgAggregateOutputType | null
    _sum: FormInstanceSumAggregateOutputType | null
    _min: FormInstanceMinAggregateOutputType | null
    _max: FormInstanceMaxAggregateOutputType | null
  }

  export type FormInstanceAvgAggregateOutputType = {
    formVersion: number | null
  }

  export type FormInstanceSumAggregateOutputType = {
    formVersion: number | null
  }

  export type FormInstanceMinAggregateOutputType = {
    id: string | null
    formDefinitionId: string | null
    formVersionId: string | null
    formKey: string | null
    formVersion: number | null
    snapshotId: string | null
    businessKey: string | null
    regionId: string | null
    status: $Enums.FormInstanceStatus | null
    createdBy: string | null
    updatedBy: string | null
    submittedBy: string | null
    submittedAt: Date | null
    approvalInstanceId: string | null
    approvalStatus: string | null
    approvalStartTime: Date | null
    approvalEndTime: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type FormInstanceMaxAggregateOutputType = {
    id: string | null
    formDefinitionId: string | null
    formVersionId: string | null
    formKey: string | null
    formVersion: number | null
    snapshotId: string | null
    businessKey: string | null
    regionId: string | null
    status: $Enums.FormInstanceStatus | null
    createdBy: string | null
    updatedBy: string | null
    submittedBy: string | null
    submittedAt: Date | null
    approvalInstanceId: string | null
    approvalStatus: string | null
    approvalStartTime: Date | null
    approvalEndTime: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type FormInstanceCountAggregateOutputType = {
    id: number
    formDefinitionId: number
    formVersionId: number
    formKey: number
    formVersion: number
    snapshotId: number
    businessKey: number
    regionId: number
    data: number
    status: number
    createdBy: number
    updatedBy: number
    submittedBy: number
    submittedAt: number
    approvalInstanceId: number
    approvalStatus: number
    approvalStartTime: number
    approvalEndTime: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type FormInstanceAvgAggregateInputType = {
    formVersion?: true
  }

  export type FormInstanceSumAggregateInputType = {
    formVersion?: true
  }

  export type FormInstanceMinAggregateInputType = {
    id?: true
    formDefinitionId?: true
    formVersionId?: true
    formKey?: true
    formVersion?: true
    snapshotId?: true
    businessKey?: true
    regionId?: true
    status?: true
    createdBy?: true
    updatedBy?: true
    submittedBy?: true
    submittedAt?: true
    approvalInstanceId?: true
    approvalStatus?: true
    approvalStartTime?: true
    approvalEndTime?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type FormInstanceMaxAggregateInputType = {
    id?: true
    formDefinitionId?: true
    formVersionId?: true
    formKey?: true
    formVersion?: true
    snapshotId?: true
    businessKey?: true
    regionId?: true
    status?: true
    createdBy?: true
    updatedBy?: true
    submittedBy?: true
    submittedAt?: true
    approvalInstanceId?: true
    approvalStatus?: true
    approvalStartTime?: true
    approvalEndTime?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type FormInstanceCountAggregateInputType = {
    id?: true
    formDefinitionId?: true
    formVersionId?: true
    formKey?: true
    formVersion?: true
    snapshotId?: true
    businessKey?: true
    regionId?: true
    data?: true
    status?: true
    createdBy?: true
    updatedBy?: true
    submittedBy?: true
    submittedAt?: true
    approvalInstanceId?: true
    approvalStatus?: true
    approvalStartTime?: true
    approvalEndTime?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type FormInstanceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormInstance to aggregate.
     */
    where?: FormInstanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormInstances to fetch.
     */
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FormInstanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormInstances 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` FormInstances.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned FormInstances
    **/
    _count?: true | FormInstanceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: FormInstanceAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: FormInstanceSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FormInstanceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FormInstanceMaxAggregateInputType
  }

  export type GetFormInstanceAggregateType<T extends FormInstanceAggregateArgs> = {
        [P in keyof T & keyof AggregateFormInstance]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFormInstance[P]>
      : GetScalarType<T[P], AggregateFormInstance[P]>
  }




  export type FormInstanceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormInstanceWhereInput
    orderBy?: FormInstanceOrderByWithAggregationInput | FormInstanceOrderByWithAggregationInput[]
    by: FormInstanceScalarFieldEnum[] | FormInstanceScalarFieldEnum
    having?: FormInstanceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FormInstanceCountAggregateInputType | true
    _avg?: FormInstanceAvgAggregateInputType
    _sum?: FormInstanceSumAggregateInputType
    _min?: FormInstanceMinAggregateInputType
    _max?: FormInstanceMaxAggregateInputType
  }

  export type FormInstanceGroupByOutputType = {
    id: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId: string | null
    businessKey: string
    regionId: string | null
    data: JsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy: string | null
    submittedBy: string | null
    submittedAt: Date | null
    approvalInstanceId: string | null
    approvalStatus: string | null
    approvalStartTime: Date | null
    approvalEndTime: Date | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: FormInstanceCountAggregateOutputType | null
    _avg: FormInstanceAvgAggregateOutputType | null
    _sum: FormInstanceSumAggregateOutputType | null
    _min: FormInstanceMinAggregateOutputType | null
    _max: FormInstanceMaxAggregateOutputType | null
  }

  type GetFormInstanceGroupByPayload<T extends FormInstanceGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FormInstanceGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FormInstanceGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FormInstanceGroupByOutputType[P]>
            : GetScalarType<T[P], FormInstanceGroupByOutputType[P]>
        }
      >
    >


  export type FormInstanceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    formDefinitionId?: boolean
    formVersionId?: boolean
    formKey?: boolean
    formVersion?: boolean
    snapshotId?: boolean
    businessKey?: boolean
    regionId?: boolean
    data?: boolean
    status?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    submittedBy?: boolean
    submittedAt?: boolean
    approvalInstanceId?: boolean
    approvalStatus?: boolean
    approvalStartTime?: boolean
    approvalEndTime?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
    snapshot?: boolean | FormInstance$snapshotArgs<ExtArgs>
    submitter?: boolean | FormInstance$submitterArgs<ExtArgs>
    updater?: boolean | FormInstance$updaterArgs<ExtArgs>
  }, ExtArgs["result"]["formInstance"]>

  export type FormInstanceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    formDefinitionId?: boolean
    formVersionId?: boolean
    formKey?: boolean
    formVersion?: boolean
    snapshotId?: boolean
    businessKey?: boolean
    regionId?: boolean
    data?: boolean
    status?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    submittedBy?: boolean
    submittedAt?: boolean
    approvalInstanceId?: boolean
    approvalStatus?: boolean
    approvalStartTime?: boolean
    approvalEndTime?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
    snapshot?: boolean | FormInstance$snapshotArgs<ExtArgs>
    submitter?: boolean | FormInstance$submitterArgs<ExtArgs>
    updater?: boolean | FormInstance$updaterArgs<ExtArgs>
  }, ExtArgs["result"]["formInstance"]>

  export type FormInstanceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    formDefinitionId?: boolean
    formVersionId?: boolean
    formKey?: boolean
    formVersion?: boolean
    snapshotId?: boolean
    businessKey?: boolean
    regionId?: boolean
    data?: boolean
    status?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    submittedBy?: boolean
    submittedAt?: boolean
    approvalInstanceId?: boolean
    approvalStatus?: boolean
    approvalStartTime?: boolean
    approvalEndTime?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
    snapshot?: boolean | FormInstance$snapshotArgs<ExtArgs>
    submitter?: boolean | FormInstance$submitterArgs<ExtArgs>
    updater?: boolean | FormInstance$updaterArgs<ExtArgs>
  }, ExtArgs["result"]["formInstance"]>

  export type FormInstanceSelectScalar = {
    id?: boolean
    formDefinitionId?: boolean
    formVersionId?: boolean
    formKey?: boolean
    formVersion?: boolean
    snapshotId?: boolean
    businessKey?: boolean
    regionId?: boolean
    data?: boolean
    status?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    submittedBy?: boolean
    submittedAt?: boolean
    approvalInstanceId?: boolean
    approvalStatus?: boolean
    approvalStartTime?: boolean
    approvalEndTime?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type FormInstanceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "formDefinitionId" | "formVersionId" | "formKey" | "formVersion" | "snapshotId" | "businessKey" | "regionId" | "data" | "status" | "createdBy" | "updatedBy" | "submittedBy" | "submittedAt" | "approvalInstanceId" | "approvalStatus" | "approvalStartTime" | "approvalEndTime" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["formInstance"]>
  export type FormInstanceInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
    snapshot?: boolean | FormInstance$snapshotArgs<ExtArgs>
    submitter?: boolean | FormInstance$submitterArgs<ExtArgs>
    updater?: boolean | FormInstance$updaterArgs<ExtArgs>
  }
  export type FormInstanceIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
    snapshot?: boolean | FormInstance$snapshotArgs<ExtArgs>
    submitter?: boolean | FormInstance$submitterArgs<ExtArgs>
    updater?: boolean | FormInstance$updaterArgs<ExtArgs>
  }
  export type FormInstanceIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    definition?: boolean | FormDefinitionDefaultArgs<ExtArgs>
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
    snapshot?: boolean | FormInstance$snapshotArgs<ExtArgs>
    submitter?: boolean | FormInstance$submitterArgs<ExtArgs>
    updater?: boolean | FormInstance$updaterArgs<ExtArgs>
  }

  export type $FormInstancePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "FormInstance"
    objects: {
      creator: Prisma.$UserPayload<ExtArgs>
      definition: Prisma.$FormDefinitionPayload<ExtArgs>
      version: Prisma.$FormVersionPayload<ExtArgs>
      snapshot: Prisma.$ReleaseSnapshotPayload<ExtArgs> | null
      submitter: Prisma.$UserPayload<ExtArgs> | null
      updater: Prisma.$UserPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      formDefinitionId: string
      formVersionId: string
      /**
       * 冗余字段（创建时写入，永不修改）
       */
      formKey: string
      formVersion: number
      /**
       * 实例基于哪个发布快照创建
       */
      snapshotId: string | null
      /**
       * 业务单号，如 overtime_2025_0001
       */
      businessKey: string
      /**
       * 提交时记录用户所属区域（用于数据隔离、统计、审批路由）
       */
      regionId: string | null
      data: Prisma.JsonValue
      status: $Enums.FormInstanceStatus
      createdBy: string
      updatedBy: string | null
      submittedBy: string | null
      submittedAt: Date | null
      approvalInstanceId: string | null
      approvalStatus: string | null
      approvalStartTime: Date | null
      approvalEndTime: Date | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["formInstance"]>
    composites: {}
  }

  type FormInstanceGetPayload<S extends boolean | null | undefined | FormInstanceDefaultArgs> = $Result.GetResult<Prisma.$FormInstancePayload, S>

  type FormInstanceCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FormInstanceFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FormInstanceCountAggregateInputType | true
    }

  export interface FormInstanceDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['FormInstance'], meta: { name: 'FormInstance' } }
    /**
     * Find zero or one FormInstance that matches the filter.
     * @param {FormInstanceFindUniqueArgs} args - Arguments to find a FormInstance
     * @example
     * // Get one FormInstance
     * const formInstance = await prisma.formInstance.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FormInstanceFindUniqueArgs>(args: SelectSubset<T, FormInstanceFindUniqueArgs<ExtArgs>>): Prisma__FormInstanceClient<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one FormInstance that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FormInstanceFindUniqueOrThrowArgs} args - Arguments to find a FormInstance
     * @example
     * // Get one FormInstance
     * const formInstance = await prisma.formInstance.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FormInstanceFindUniqueOrThrowArgs>(args: SelectSubset<T, FormInstanceFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FormInstanceClient<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormInstance 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 {FormInstanceFindFirstArgs} args - Arguments to find a FormInstance
     * @example
     * // Get one FormInstance
     * const formInstance = await prisma.formInstance.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FormInstanceFindFirstArgs>(args?: SelectSubset<T, FormInstanceFindFirstArgs<ExtArgs>>): Prisma__FormInstanceClient<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormInstance 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 {FormInstanceFindFirstOrThrowArgs} args - Arguments to find a FormInstance
     * @example
     * // Get one FormInstance
     * const formInstance = await prisma.formInstance.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FormInstanceFindFirstOrThrowArgs>(args?: SelectSubset<T, FormInstanceFindFirstOrThrowArgs<ExtArgs>>): Prisma__FormInstanceClient<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more FormInstances 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 {FormInstanceFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all FormInstances
     * const formInstances = await prisma.formInstance.findMany()
     * 
     * // Get first 10 FormInstances
     * const formInstances = await prisma.formInstance.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const formInstanceWithIdOnly = await prisma.formInstance.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FormInstanceFindManyArgs>(args?: SelectSubset<T, FormInstanceFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a FormInstance.
     * @param {FormInstanceCreateArgs} args - Arguments to create a FormInstance.
     * @example
     * // Create one FormInstance
     * const FormInstance = await prisma.formInstance.create({
     *   data: {
     *     // ... data to create a FormInstance
     *   }
     * })
     * 
     */
    create<T extends FormInstanceCreateArgs>(args: SelectSubset<T, FormInstanceCreateArgs<ExtArgs>>): Prisma__FormInstanceClient<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many FormInstances.
     * @param {FormInstanceCreateManyArgs} args - Arguments to create many FormInstances.
     * @example
     * // Create many FormInstances
     * const formInstance = await prisma.formInstance.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FormInstanceCreateManyArgs>(args?: SelectSubset<T, FormInstanceCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many FormInstances and returns the data saved in the database.
     * @param {FormInstanceCreateManyAndReturnArgs} args - Arguments to create many FormInstances.
     * @example
     * // Create many FormInstances
     * const formInstance = await prisma.formInstance.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many FormInstances and only return the `id`
     * const formInstanceWithIdOnly = await prisma.formInstance.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 FormInstanceCreateManyAndReturnArgs>(args?: SelectSubset<T, FormInstanceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a FormInstance.
     * @param {FormInstanceDeleteArgs} args - Arguments to delete one FormInstance.
     * @example
     * // Delete one FormInstance
     * const FormInstance = await prisma.formInstance.delete({
     *   where: {
     *     // ... filter to delete one FormInstance
     *   }
     * })
     * 
     */
    delete<T extends FormInstanceDeleteArgs>(args: SelectSubset<T, FormInstanceDeleteArgs<ExtArgs>>): Prisma__FormInstanceClient<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one FormInstance.
     * @param {FormInstanceUpdateArgs} args - Arguments to update one FormInstance.
     * @example
     * // Update one FormInstance
     * const formInstance = await prisma.formInstance.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FormInstanceUpdateArgs>(args: SelectSubset<T, FormInstanceUpdateArgs<ExtArgs>>): Prisma__FormInstanceClient<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more FormInstances.
     * @param {FormInstanceDeleteManyArgs} args - Arguments to filter FormInstances to delete.
     * @example
     * // Delete a few FormInstances
     * const { count } = await prisma.formInstance.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FormInstanceDeleteManyArgs>(args?: SelectSubset<T, FormInstanceDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormInstances.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormInstanceUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many FormInstances
     * const formInstance = await prisma.formInstance.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FormInstanceUpdateManyArgs>(args: SelectSubset<T, FormInstanceUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormInstances and returns the data updated in the database.
     * @param {FormInstanceUpdateManyAndReturnArgs} args - Arguments to update many FormInstances.
     * @example
     * // Update many FormInstances
     * const formInstance = await prisma.formInstance.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more FormInstances and only return the `id`
     * const formInstanceWithIdOnly = await prisma.formInstance.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 FormInstanceUpdateManyAndReturnArgs>(args: SelectSubset<T, FormInstanceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one FormInstance.
     * @param {FormInstanceUpsertArgs} args - Arguments to update or create a FormInstance.
     * @example
     * // Update or create a FormInstance
     * const formInstance = await prisma.formInstance.upsert({
     *   create: {
     *     // ... data to create a FormInstance
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the FormInstance we want to update
     *   }
     * })
     */
    upsert<T extends FormInstanceUpsertArgs>(args: SelectSubset<T, FormInstanceUpsertArgs<ExtArgs>>): Prisma__FormInstanceClient<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of FormInstances.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormInstanceCountArgs} args - Arguments to filter FormInstances to count.
     * @example
     * // Count the number of FormInstances
     * const count = await prisma.formInstance.count({
     *   where: {
     *     // ... the filter for the FormInstances we want to count
     *   }
     * })
    **/
    count<T extends FormInstanceCountArgs>(
      args?: Subset<T, FormInstanceCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FormInstanceCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a FormInstance.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormInstanceAggregateArgs} 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 FormInstanceAggregateArgs>(args: Subset<T, FormInstanceAggregateArgs>): Prisma.PrismaPromise<GetFormInstanceAggregateType<T>>

    /**
     * Group by FormInstance.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormInstanceGroupByArgs} 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 FormInstanceGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FormInstanceGroupByArgs['orderBy'] }
        : { orderBy?: FormInstanceGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FormInstanceGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFormInstanceGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the FormInstance model
   */
  readonly fields: FormInstanceFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for FormInstance.
   * 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__FormInstanceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    definition<T extends FormDefinitionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, FormDefinitionDefaultArgs<ExtArgs>>): Prisma__FormDefinitionClient<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    version<T extends FormVersionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, FormVersionDefaultArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    snapshot<T extends FormInstance$snapshotArgs<ExtArgs> = {}>(args?: Subset<T, FormInstance$snapshotArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    submitter<T extends FormInstance$submitterArgs<ExtArgs> = {}>(args?: Subset<T, FormInstance$submitterArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    updater<T extends FormInstance$updaterArgs<ExtArgs> = {}>(args?: Subset<T, FormInstance$updaterArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the FormInstance model
   */
  interface FormInstanceFieldRefs {
    readonly id: FieldRef<"FormInstance", 'String'>
    readonly formDefinitionId: FieldRef<"FormInstance", 'String'>
    readonly formVersionId: FieldRef<"FormInstance", 'String'>
    readonly formKey: FieldRef<"FormInstance", 'String'>
    readonly formVersion: FieldRef<"FormInstance", 'Int'>
    readonly snapshotId: FieldRef<"FormInstance", 'String'>
    readonly businessKey: FieldRef<"FormInstance", 'String'>
    readonly regionId: FieldRef<"FormInstance", 'String'>
    readonly data: FieldRef<"FormInstance", 'Json'>
    readonly status: FieldRef<"FormInstance", 'FormInstanceStatus'>
    readonly createdBy: FieldRef<"FormInstance", 'String'>
    readonly updatedBy: FieldRef<"FormInstance", 'String'>
    readonly submittedBy: FieldRef<"FormInstance", 'String'>
    readonly submittedAt: FieldRef<"FormInstance", 'DateTime'>
    readonly approvalInstanceId: FieldRef<"FormInstance", 'String'>
    readonly approvalStatus: FieldRef<"FormInstance", 'String'>
    readonly approvalStartTime: FieldRef<"FormInstance", 'DateTime'>
    readonly approvalEndTime: FieldRef<"FormInstance", 'DateTime'>
    readonly createdAt: FieldRef<"FormInstance", 'DateTime'>
    readonly updatedAt: FieldRef<"FormInstance", 'DateTime'>
    readonly deletedAt: FieldRef<"FormInstance", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * FormInstance findUnique
   */
  export type FormInstanceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * Filter, which FormInstance to fetch.
     */
    where: FormInstanceWhereUniqueInput
  }

  /**
   * FormInstance findUniqueOrThrow
   */
  export type FormInstanceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * Filter, which FormInstance to fetch.
     */
    where: FormInstanceWhereUniqueInput
  }

  /**
   * FormInstance findFirst
   */
  export type FormInstanceFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * Filter, which FormInstance to fetch.
     */
    where?: FormInstanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormInstances to fetch.
     */
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormInstances.
     */
    cursor?: FormInstanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormInstances 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` FormInstances.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormInstances.
     */
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * FormInstance findFirstOrThrow
   */
  export type FormInstanceFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * Filter, which FormInstance to fetch.
     */
    where?: FormInstanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormInstances to fetch.
     */
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormInstances.
     */
    cursor?: FormInstanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormInstances 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` FormInstances.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormInstances.
     */
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * FormInstance findMany
   */
  export type FormInstanceFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * Filter, which FormInstances to fetch.
     */
    where?: FormInstanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormInstances to fetch.
     */
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing FormInstances.
     */
    cursor?: FormInstanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormInstances 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` FormInstances.
     */
    skip?: number
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * FormInstance create
   */
  export type FormInstanceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * The data needed to create a FormInstance.
     */
    data: XOR<FormInstanceCreateInput, FormInstanceUncheckedCreateInput>
  }

  /**
   * FormInstance createMany
   */
  export type FormInstanceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many FormInstances.
     */
    data: FormInstanceCreateManyInput | FormInstanceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FormInstance createManyAndReturn
   */
  export type FormInstanceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * The data used to create many FormInstances.
     */
    data: FormInstanceCreateManyInput | FormInstanceCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormInstance update
   */
  export type FormInstanceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * The data needed to update a FormInstance.
     */
    data: XOR<FormInstanceUpdateInput, FormInstanceUncheckedUpdateInput>
    /**
     * Choose, which FormInstance to update.
     */
    where: FormInstanceWhereUniqueInput
  }

  /**
   * FormInstance updateMany
   */
  export type FormInstanceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update FormInstances.
     */
    data: XOR<FormInstanceUpdateManyMutationInput, FormInstanceUncheckedUpdateManyInput>
    /**
     * Filter which FormInstances to update
     */
    where?: FormInstanceWhereInput
    /**
     * Limit how many FormInstances to update.
     */
    limit?: number
  }

  /**
   * FormInstance updateManyAndReturn
   */
  export type FormInstanceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * The data used to update FormInstances.
     */
    data: XOR<FormInstanceUpdateManyMutationInput, FormInstanceUncheckedUpdateManyInput>
    /**
     * Filter which FormInstances to update
     */
    where?: FormInstanceWhereInput
    /**
     * Limit how many FormInstances to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormInstance upsert
   */
  export type FormInstanceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * The filter to search for the FormInstance to update in case it exists.
     */
    where: FormInstanceWhereUniqueInput
    /**
     * In case the FormInstance found by the `where` argument doesn't exist, create a new FormInstance with this data.
     */
    create: XOR<FormInstanceCreateInput, FormInstanceUncheckedCreateInput>
    /**
     * In case the FormInstance was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FormInstanceUpdateInput, FormInstanceUncheckedUpdateInput>
  }

  /**
   * FormInstance delete
   */
  export type FormInstanceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    /**
     * Filter which FormInstance to delete.
     */
    where: FormInstanceWhereUniqueInput
  }

  /**
   * FormInstance deleteMany
   */
  export type FormInstanceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormInstances to delete
     */
    where?: FormInstanceWhereInput
    /**
     * Limit how many FormInstances to delete.
     */
    limit?: number
  }

  /**
   * FormInstance.snapshot
   */
  export type FormInstance$snapshotArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    where?: ReleaseSnapshotWhereInput
  }

  /**
   * FormInstance.submitter
   */
  export type FormInstance$submitterArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * FormInstance.updater
   */
  export type FormInstance$updaterArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * FormInstance without action
   */
  export type FormInstanceDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
  }


  /**
   * Model FormTranslation
   */

  export type AggregateFormTranslation = {
    _count: FormTranslationCountAggregateOutputType | null
    _min: FormTranslationMinAggregateOutputType | null
    _max: FormTranslationMaxAggregateOutputType | null
  }

  export type FormTranslationMinAggregateOutputType = {
    id: string | null
    versionId: string | null
    locale: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FormTranslationMaxAggregateOutputType = {
    id: string | null
    versionId: string | null
    locale: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FormTranslationCountAggregateOutputType = {
    id: number
    versionId: number
    locale: number
    translations: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type FormTranslationMinAggregateInputType = {
    id?: true
    versionId?: true
    locale?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FormTranslationMaxAggregateInputType = {
    id?: true
    versionId?: true
    locale?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FormTranslationCountAggregateInputType = {
    id?: true
    versionId?: true
    locale?: true
    translations?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type FormTranslationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormTranslation to aggregate.
     */
    where?: FormTranslationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormTranslations to fetch.
     */
    orderBy?: FormTranslationOrderByWithRelationInput | FormTranslationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FormTranslationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormTranslations 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` FormTranslations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned FormTranslations
    **/
    _count?: true | FormTranslationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FormTranslationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FormTranslationMaxAggregateInputType
  }

  export type GetFormTranslationAggregateType<T extends FormTranslationAggregateArgs> = {
        [P in keyof T & keyof AggregateFormTranslation]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFormTranslation[P]>
      : GetScalarType<T[P], AggregateFormTranslation[P]>
  }




  export type FormTranslationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormTranslationWhereInput
    orderBy?: FormTranslationOrderByWithAggregationInput | FormTranslationOrderByWithAggregationInput[]
    by: FormTranslationScalarFieldEnum[] | FormTranslationScalarFieldEnum
    having?: FormTranslationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FormTranslationCountAggregateInputType | true
    _min?: FormTranslationMinAggregateInputType
    _max?: FormTranslationMaxAggregateInputType
  }

  export type FormTranslationGroupByOutputType = {
    id: string
    versionId: string
    locale: string
    translations: JsonValue
    createdAt: Date
    updatedAt: Date
    _count: FormTranslationCountAggregateOutputType | null
    _min: FormTranslationMinAggregateOutputType | null
    _max: FormTranslationMaxAggregateOutputType | null
  }

  type GetFormTranslationGroupByPayload<T extends FormTranslationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FormTranslationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FormTranslationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FormTranslationGroupByOutputType[P]>
            : GetScalarType<T[P], FormTranslationGroupByOutputType[P]>
        }
      >
    >


  export type FormTranslationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    versionId?: boolean
    locale?: boolean
    translations?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formTranslation"]>

  export type FormTranslationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    versionId?: boolean
    locale?: boolean
    translations?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formTranslation"]>

  export type FormTranslationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    versionId?: boolean
    locale?: boolean
    translations?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formTranslation"]>

  export type FormTranslationSelectScalar = {
    id?: boolean
    versionId?: boolean
    locale?: boolean
    translations?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type FormTranslationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "versionId" | "locale" | "translations" | "createdAt" | "updatedAt", ExtArgs["result"]["formTranslation"]>
  export type FormTranslationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
  }
  export type FormTranslationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
  }
  export type FormTranslationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    version?: boolean | FormVersionDefaultArgs<ExtArgs>
  }

  export type $FormTranslationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "FormTranslation"
    objects: {
      version: Prisma.$FormVersionPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      versionId: string
      locale: string
      translations: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["formTranslation"]>
    composites: {}
  }

  type FormTranslationGetPayload<S extends boolean | null | undefined | FormTranslationDefaultArgs> = $Result.GetResult<Prisma.$FormTranslationPayload, S>

  type FormTranslationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FormTranslationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FormTranslationCountAggregateInputType | true
    }

  export interface FormTranslationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['FormTranslation'], meta: { name: 'FormTranslation' } }
    /**
     * Find zero or one FormTranslation that matches the filter.
     * @param {FormTranslationFindUniqueArgs} args - Arguments to find a FormTranslation
     * @example
     * // Get one FormTranslation
     * const formTranslation = await prisma.formTranslation.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FormTranslationFindUniqueArgs>(args: SelectSubset<T, FormTranslationFindUniqueArgs<ExtArgs>>): Prisma__FormTranslationClient<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one FormTranslation that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FormTranslationFindUniqueOrThrowArgs} args - Arguments to find a FormTranslation
     * @example
     * // Get one FormTranslation
     * const formTranslation = await prisma.formTranslation.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FormTranslationFindUniqueOrThrowArgs>(args: SelectSubset<T, FormTranslationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FormTranslationClient<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormTranslation 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 {FormTranslationFindFirstArgs} args - Arguments to find a FormTranslation
     * @example
     * // Get one FormTranslation
     * const formTranslation = await prisma.formTranslation.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FormTranslationFindFirstArgs>(args?: SelectSubset<T, FormTranslationFindFirstArgs<ExtArgs>>): Prisma__FormTranslationClient<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormTranslation 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 {FormTranslationFindFirstOrThrowArgs} args - Arguments to find a FormTranslation
     * @example
     * // Get one FormTranslation
     * const formTranslation = await prisma.formTranslation.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FormTranslationFindFirstOrThrowArgs>(args?: SelectSubset<T, FormTranslationFindFirstOrThrowArgs<ExtArgs>>): Prisma__FormTranslationClient<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more FormTranslations 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 {FormTranslationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all FormTranslations
     * const formTranslations = await prisma.formTranslation.findMany()
     * 
     * // Get first 10 FormTranslations
     * const formTranslations = await prisma.formTranslation.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const formTranslationWithIdOnly = await prisma.formTranslation.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FormTranslationFindManyArgs>(args?: SelectSubset<T, FormTranslationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a FormTranslation.
     * @param {FormTranslationCreateArgs} args - Arguments to create a FormTranslation.
     * @example
     * // Create one FormTranslation
     * const FormTranslation = await prisma.formTranslation.create({
     *   data: {
     *     // ... data to create a FormTranslation
     *   }
     * })
     * 
     */
    create<T extends FormTranslationCreateArgs>(args: SelectSubset<T, FormTranslationCreateArgs<ExtArgs>>): Prisma__FormTranslationClient<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many FormTranslations.
     * @param {FormTranslationCreateManyArgs} args - Arguments to create many FormTranslations.
     * @example
     * // Create many FormTranslations
     * const formTranslation = await prisma.formTranslation.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FormTranslationCreateManyArgs>(args?: SelectSubset<T, FormTranslationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many FormTranslations and returns the data saved in the database.
     * @param {FormTranslationCreateManyAndReturnArgs} args - Arguments to create many FormTranslations.
     * @example
     * // Create many FormTranslations
     * const formTranslation = await prisma.formTranslation.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many FormTranslations and only return the `id`
     * const formTranslationWithIdOnly = await prisma.formTranslation.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 FormTranslationCreateManyAndReturnArgs>(args?: SelectSubset<T, FormTranslationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a FormTranslation.
     * @param {FormTranslationDeleteArgs} args - Arguments to delete one FormTranslation.
     * @example
     * // Delete one FormTranslation
     * const FormTranslation = await prisma.formTranslation.delete({
     *   where: {
     *     // ... filter to delete one FormTranslation
     *   }
     * })
     * 
     */
    delete<T extends FormTranslationDeleteArgs>(args: SelectSubset<T, FormTranslationDeleteArgs<ExtArgs>>): Prisma__FormTranslationClient<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one FormTranslation.
     * @param {FormTranslationUpdateArgs} args - Arguments to update one FormTranslation.
     * @example
     * // Update one FormTranslation
     * const formTranslation = await prisma.formTranslation.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FormTranslationUpdateArgs>(args: SelectSubset<T, FormTranslationUpdateArgs<ExtArgs>>): Prisma__FormTranslationClient<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more FormTranslations.
     * @param {FormTranslationDeleteManyArgs} args - Arguments to filter FormTranslations to delete.
     * @example
     * // Delete a few FormTranslations
     * const { count } = await prisma.formTranslation.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FormTranslationDeleteManyArgs>(args?: SelectSubset<T, FormTranslationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormTranslations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormTranslationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many FormTranslations
     * const formTranslation = await prisma.formTranslation.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FormTranslationUpdateManyArgs>(args: SelectSubset<T, FormTranslationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormTranslations and returns the data updated in the database.
     * @param {FormTranslationUpdateManyAndReturnArgs} args - Arguments to update many FormTranslations.
     * @example
     * // Update many FormTranslations
     * const formTranslation = await prisma.formTranslation.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more FormTranslations and only return the `id`
     * const formTranslationWithIdOnly = await prisma.formTranslation.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 FormTranslationUpdateManyAndReturnArgs>(args: SelectSubset<T, FormTranslationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one FormTranslation.
     * @param {FormTranslationUpsertArgs} args - Arguments to update or create a FormTranslation.
     * @example
     * // Update or create a FormTranslation
     * const formTranslation = await prisma.formTranslation.upsert({
     *   create: {
     *     // ... data to create a FormTranslation
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the FormTranslation we want to update
     *   }
     * })
     */
    upsert<T extends FormTranslationUpsertArgs>(args: SelectSubset<T, FormTranslationUpsertArgs<ExtArgs>>): Prisma__FormTranslationClient<$Result.GetResult<Prisma.$FormTranslationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of FormTranslations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormTranslationCountArgs} args - Arguments to filter FormTranslations to count.
     * @example
     * // Count the number of FormTranslations
     * const count = await prisma.formTranslation.count({
     *   where: {
     *     // ... the filter for the FormTranslations we want to count
     *   }
     * })
    **/
    count<T extends FormTranslationCountArgs>(
      args?: Subset<T, FormTranslationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FormTranslationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a FormTranslation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormTranslationAggregateArgs} 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 FormTranslationAggregateArgs>(args: Subset<T, FormTranslationAggregateArgs>): Prisma.PrismaPromise<GetFormTranslationAggregateType<T>>

    /**
     * Group by FormTranslation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormTranslationGroupByArgs} 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 FormTranslationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FormTranslationGroupByArgs['orderBy'] }
        : { orderBy?: FormTranslationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FormTranslationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFormTranslationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the FormTranslation model
   */
  readonly fields: FormTranslationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for FormTranslation.
   * 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__FormTranslationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    version<T extends FormVersionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, FormVersionDefaultArgs<ExtArgs>>): Prisma__FormVersionClient<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the FormTranslation model
   */
  interface FormTranslationFieldRefs {
    readonly id: FieldRef<"FormTranslation", 'String'>
    readonly versionId: FieldRef<"FormTranslation", 'String'>
    readonly locale: FieldRef<"FormTranslation", 'String'>
    readonly translations: FieldRef<"FormTranslation", 'Json'>
    readonly createdAt: FieldRef<"FormTranslation", 'DateTime'>
    readonly updatedAt: FieldRef<"FormTranslation", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * FormTranslation findUnique
   */
  export type FormTranslationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * Filter, which FormTranslation to fetch.
     */
    where: FormTranslationWhereUniqueInput
  }

  /**
   * FormTranslation findUniqueOrThrow
   */
  export type FormTranslationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * Filter, which FormTranslation to fetch.
     */
    where: FormTranslationWhereUniqueInput
  }

  /**
   * FormTranslation findFirst
   */
  export type FormTranslationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * Filter, which FormTranslation to fetch.
     */
    where?: FormTranslationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormTranslations to fetch.
     */
    orderBy?: FormTranslationOrderByWithRelationInput | FormTranslationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormTranslations.
     */
    cursor?: FormTranslationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormTranslations 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` FormTranslations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormTranslations.
     */
    distinct?: FormTranslationScalarFieldEnum | FormTranslationScalarFieldEnum[]
  }

  /**
   * FormTranslation findFirstOrThrow
   */
  export type FormTranslationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * Filter, which FormTranslation to fetch.
     */
    where?: FormTranslationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormTranslations to fetch.
     */
    orderBy?: FormTranslationOrderByWithRelationInput | FormTranslationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormTranslations.
     */
    cursor?: FormTranslationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormTranslations 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` FormTranslations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormTranslations.
     */
    distinct?: FormTranslationScalarFieldEnum | FormTranslationScalarFieldEnum[]
  }

  /**
   * FormTranslation findMany
   */
  export type FormTranslationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * Filter, which FormTranslations to fetch.
     */
    where?: FormTranslationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormTranslations to fetch.
     */
    orderBy?: FormTranslationOrderByWithRelationInput | FormTranslationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing FormTranslations.
     */
    cursor?: FormTranslationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormTranslations 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` FormTranslations.
     */
    skip?: number
    distinct?: FormTranslationScalarFieldEnum | FormTranslationScalarFieldEnum[]
  }

  /**
   * FormTranslation create
   */
  export type FormTranslationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * The data needed to create a FormTranslation.
     */
    data: XOR<FormTranslationCreateInput, FormTranslationUncheckedCreateInput>
  }

  /**
   * FormTranslation createMany
   */
  export type FormTranslationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many FormTranslations.
     */
    data: FormTranslationCreateManyInput | FormTranslationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FormTranslation createManyAndReturn
   */
  export type FormTranslationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * The data used to create many FormTranslations.
     */
    data: FormTranslationCreateManyInput | FormTranslationCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormTranslation update
   */
  export type FormTranslationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * The data needed to update a FormTranslation.
     */
    data: XOR<FormTranslationUpdateInput, FormTranslationUncheckedUpdateInput>
    /**
     * Choose, which FormTranslation to update.
     */
    where: FormTranslationWhereUniqueInput
  }

  /**
   * FormTranslation updateMany
   */
  export type FormTranslationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update FormTranslations.
     */
    data: XOR<FormTranslationUpdateManyMutationInput, FormTranslationUncheckedUpdateManyInput>
    /**
     * Filter which FormTranslations to update
     */
    where?: FormTranslationWhereInput
    /**
     * Limit how many FormTranslations to update.
     */
    limit?: number
  }

  /**
   * FormTranslation updateManyAndReturn
   */
  export type FormTranslationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * The data used to update FormTranslations.
     */
    data: XOR<FormTranslationUpdateManyMutationInput, FormTranslationUncheckedUpdateManyInput>
    /**
     * Filter which FormTranslations to update
     */
    where?: FormTranslationWhereInput
    /**
     * Limit how many FormTranslations to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormTranslation upsert
   */
  export type FormTranslationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * The filter to search for the FormTranslation to update in case it exists.
     */
    where: FormTranslationWhereUniqueInput
    /**
     * In case the FormTranslation found by the `where` argument doesn't exist, create a new FormTranslation with this data.
     */
    create: XOR<FormTranslationCreateInput, FormTranslationUncheckedCreateInput>
    /**
     * In case the FormTranslation was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FormTranslationUpdateInput, FormTranslationUncheckedUpdateInput>
  }

  /**
   * FormTranslation delete
   */
  export type FormTranslationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
    /**
     * Filter which FormTranslation to delete.
     */
    where: FormTranslationWhereUniqueInput
  }

  /**
   * FormTranslation deleteMany
   */
  export type FormTranslationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormTranslations to delete
     */
    where?: FormTranslationWhereInput
    /**
     * Limit how many FormTranslations to delete.
     */
    limit?: number
  }

  /**
   * FormTranslation without action
   */
  export type FormTranslationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTranslation
     */
    select?: FormTranslationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTranslation
     */
    omit?: FormTranslationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTranslationInclude<ExtArgs> | null
  }


  /**
   * Model FormTemplate
   */

  export type AggregateFormTemplate = {
    _count: FormTemplateCountAggregateOutputType | null
    _min: FormTemplateMinAggregateOutputType | null
    _max: FormTemplateMaxAggregateOutputType | null
  }

  export type FormTemplateMinAggregateOutputType = {
    id: string | null
    category: string | null
    icon: string | null
    color: string | null
    isBuiltin: boolean | null
    isPublic: boolean | null
    createdBy: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FormTemplateMaxAggregateOutputType = {
    id: string | null
    category: string | null
    icon: string | null
    color: string | null
    isBuiltin: boolean | null
    isPublic: boolean | null
    createdBy: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FormTemplateCountAggregateOutputType = {
    id: number
    nameI18n: number
    descriptionI18n: number
    category: number
    icon: number
    color: number
    template: number
    isBuiltin: number
    isPublic: number
    createdBy: number
    updatedBy: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type FormTemplateMinAggregateInputType = {
    id?: true
    category?: true
    icon?: true
    color?: true
    isBuiltin?: true
    isPublic?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FormTemplateMaxAggregateInputType = {
    id?: true
    category?: true
    icon?: true
    color?: true
    isBuiltin?: true
    isPublic?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FormTemplateCountAggregateInputType = {
    id?: true
    nameI18n?: true
    descriptionI18n?: true
    category?: true
    icon?: true
    color?: true
    template?: true
    isBuiltin?: true
    isPublic?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type FormTemplateAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormTemplate to aggregate.
     */
    where?: FormTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormTemplates to fetch.
     */
    orderBy?: FormTemplateOrderByWithRelationInput | FormTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FormTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormTemplates 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` FormTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned FormTemplates
    **/
    _count?: true | FormTemplateCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FormTemplateMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FormTemplateMaxAggregateInputType
  }

  export type GetFormTemplateAggregateType<T extends FormTemplateAggregateArgs> = {
        [P in keyof T & keyof AggregateFormTemplate]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFormTemplate[P]>
      : GetScalarType<T[P], AggregateFormTemplate[P]>
  }




  export type FormTemplateGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormTemplateWhereInput
    orderBy?: FormTemplateOrderByWithAggregationInput | FormTemplateOrderByWithAggregationInput[]
    by: FormTemplateScalarFieldEnum[] | FormTemplateScalarFieldEnum
    having?: FormTemplateScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FormTemplateCountAggregateInputType | true
    _min?: FormTemplateMinAggregateInputType
    _max?: FormTemplateMaxAggregateInputType
  }

  export type FormTemplateGroupByOutputType = {
    id: string
    nameI18n: JsonValue
    descriptionI18n: JsonValue | null
    category: string
    icon: string | null
    color: string | null
    template: JsonValue
    isBuiltin: boolean
    isPublic: boolean
    createdBy: string
    updatedBy: string | null
    createdAt: Date
    updatedAt: Date
    _count: FormTemplateCountAggregateOutputType | null
    _min: FormTemplateMinAggregateOutputType | null
    _max: FormTemplateMaxAggregateOutputType | null
  }

  type GetFormTemplateGroupByPayload<T extends FormTemplateGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FormTemplateGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FormTemplateGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FormTemplateGroupByOutputType[P]>
            : GetScalarType<T[P], FormTemplateGroupByOutputType[P]>
        }
      >
    >


  export type FormTemplateSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    nameI18n?: boolean
    descriptionI18n?: boolean
    category?: boolean
    icon?: boolean
    color?: boolean
    template?: boolean
    isBuiltin?: boolean
    isPublic?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormTemplate$updaterArgs<ExtArgs>
  }, ExtArgs["result"]["formTemplate"]>

  export type FormTemplateSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    nameI18n?: boolean
    descriptionI18n?: boolean
    category?: boolean
    icon?: boolean
    color?: boolean
    template?: boolean
    isBuiltin?: boolean
    isPublic?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormTemplate$updaterArgs<ExtArgs>
  }, ExtArgs["result"]["formTemplate"]>

  export type FormTemplateSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    nameI18n?: boolean
    descriptionI18n?: boolean
    category?: boolean
    icon?: boolean
    color?: boolean
    template?: boolean
    isBuiltin?: boolean
    isPublic?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormTemplate$updaterArgs<ExtArgs>
  }, ExtArgs["result"]["formTemplate"]>

  export type FormTemplateSelectScalar = {
    id?: boolean
    nameI18n?: boolean
    descriptionI18n?: boolean
    category?: boolean
    icon?: boolean
    color?: boolean
    template?: boolean
    isBuiltin?: boolean
    isPublic?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type FormTemplateOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "nameI18n" | "descriptionI18n" | "category" | "icon" | "color" | "template" | "isBuiltin" | "isPublic" | "createdBy" | "updatedBy" | "createdAt" | "updatedAt", ExtArgs["result"]["formTemplate"]>
  export type FormTemplateInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormTemplate$updaterArgs<ExtArgs>
  }
  export type FormTemplateIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormTemplate$updaterArgs<ExtArgs>
  }
  export type FormTemplateIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | FormTemplate$updaterArgs<ExtArgs>
  }

  export type $FormTemplatePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "FormTemplate"
    objects: {
      creator: Prisma.$UserPayload<ExtArgs>
      updater: Prisma.$UserPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      nameI18n: Prisma.JsonValue
      descriptionI18n: Prisma.JsonValue | null
      category: string
      icon: string | null
      color: string | null
      template: Prisma.JsonValue
      isBuiltin: boolean
      isPublic: boolean
      createdBy: string
      updatedBy: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["formTemplate"]>
    composites: {}
  }

  type FormTemplateGetPayload<S extends boolean | null | undefined | FormTemplateDefaultArgs> = $Result.GetResult<Prisma.$FormTemplatePayload, S>

  type FormTemplateCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FormTemplateFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FormTemplateCountAggregateInputType | true
    }

  export interface FormTemplateDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['FormTemplate'], meta: { name: 'FormTemplate' } }
    /**
     * Find zero or one FormTemplate that matches the filter.
     * @param {FormTemplateFindUniqueArgs} args - Arguments to find a FormTemplate
     * @example
     * // Get one FormTemplate
     * const formTemplate = await prisma.formTemplate.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FormTemplateFindUniqueArgs>(args: SelectSubset<T, FormTemplateFindUniqueArgs<ExtArgs>>): Prisma__FormTemplateClient<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one FormTemplate that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FormTemplateFindUniqueOrThrowArgs} args - Arguments to find a FormTemplate
     * @example
     * // Get one FormTemplate
     * const formTemplate = await prisma.formTemplate.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FormTemplateFindUniqueOrThrowArgs>(args: SelectSubset<T, FormTemplateFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FormTemplateClient<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormTemplate 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 {FormTemplateFindFirstArgs} args - Arguments to find a FormTemplate
     * @example
     * // Get one FormTemplate
     * const formTemplate = await prisma.formTemplate.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FormTemplateFindFirstArgs>(args?: SelectSubset<T, FormTemplateFindFirstArgs<ExtArgs>>): Prisma__FormTemplateClient<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormTemplate 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 {FormTemplateFindFirstOrThrowArgs} args - Arguments to find a FormTemplate
     * @example
     * // Get one FormTemplate
     * const formTemplate = await prisma.formTemplate.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FormTemplateFindFirstOrThrowArgs>(args?: SelectSubset<T, FormTemplateFindFirstOrThrowArgs<ExtArgs>>): Prisma__FormTemplateClient<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more FormTemplates 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 {FormTemplateFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all FormTemplates
     * const formTemplates = await prisma.formTemplate.findMany()
     * 
     * // Get first 10 FormTemplates
     * const formTemplates = await prisma.formTemplate.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const formTemplateWithIdOnly = await prisma.formTemplate.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FormTemplateFindManyArgs>(args?: SelectSubset<T, FormTemplateFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a FormTemplate.
     * @param {FormTemplateCreateArgs} args - Arguments to create a FormTemplate.
     * @example
     * // Create one FormTemplate
     * const FormTemplate = await prisma.formTemplate.create({
     *   data: {
     *     // ... data to create a FormTemplate
     *   }
     * })
     * 
     */
    create<T extends FormTemplateCreateArgs>(args: SelectSubset<T, FormTemplateCreateArgs<ExtArgs>>): Prisma__FormTemplateClient<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many FormTemplates.
     * @param {FormTemplateCreateManyArgs} args - Arguments to create many FormTemplates.
     * @example
     * // Create many FormTemplates
     * const formTemplate = await prisma.formTemplate.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FormTemplateCreateManyArgs>(args?: SelectSubset<T, FormTemplateCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many FormTemplates and returns the data saved in the database.
     * @param {FormTemplateCreateManyAndReturnArgs} args - Arguments to create many FormTemplates.
     * @example
     * // Create many FormTemplates
     * const formTemplate = await prisma.formTemplate.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many FormTemplates and only return the `id`
     * const formTemplateWithIdOnly = await prisma.formTemplate.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 FormTemplateCreateManyAndReturnArgs>(args?: SelectSubset<T, FormTemplateCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a FormTemplate.
     * @param {FormTemplateDeleteArgs} args - Arguments to delete one FormTemplate.
     * @example
     * // Delete one FormTemplate
     * const FormTemplate = await prisma.formTemplate.delete({
     *   where: {
     *     // ... filter to delete one FormTemplate
     *   }
     * })
     * 
     */
    delete<T extends FormTemplateDeleteArgs>(args: SelectSubset<T, FormTemplateDeleteArgs<ExtArgs>>): Prisma__FormTemplateClient<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one FormTemplate.
     * @param {FormTemplateUpdateArgs} args - Arguments to update one FormTemplate.
     * @example
     * // Update one FormTemplate
     * const formTemplate = await prisma.formTemplate.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FormTemplateUpdateArgs>(args: SelectSubset<T, FormTemplateUpdateArgs<ExtArgs>>): Prisma__FormTemplateClient<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more FormTemplates.
     * @param {FormTemplateDeleteManyArgs} args - Arguments to filter FormTemplates to delete.
     * @example
     * // Delete a few FormTemplates
     * const { count } = await prisma.formTemplate.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FormTemplateDeleteManyArgs>(args?: SelectSubset<T, FormTemplateDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormTemplates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormTemplateUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many FormTemplates
     * const formTemplate = await prisma.formTemplate.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FormTemplateUpdateManyArgs>(args: SelectSubset<T, FormTemplateUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormTemplates and returns the data updated in the database.
     * @param {FormTemplateUpdateManyAndReturnArgs} args - Arguments to update many FormTemplates.
     * @example
     * // Update many FormTemplates
     * const formTemplate = await prisma.formTemplate.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more FormTemplates and only return the `id`
     * const formTemplateWithIdOnly = await prisma.formTemplate.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 FormTemplateUpdateManyAndReturnArgs>(args: SelectSubset<T, FormTemplateUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one FormTemplate.
     * @param {FormTemplateUpsertArgs} args - Arguments to update or create a FormTemplate.
     * @example
     * // Update or create a FormTemplate
     * const formTemplate = await prisma.formTemplate.upsert({
     *   create: {
     *     // ... data to create a FormTemplate
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the FormTemplate we want to update
     *   }
     * })
     */
    upsert<T extends FormTemplateUpsertArgs>(args: SelectSubset<T, FormTemplateUpsertArgs<ExtArgs>>): Prisma__FormTemplateClient<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of FormTemplates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormTemplateCountArgs} args - Arguments to filter FormTemplates to count.
     * @example
     * // Count the number of FormTemplates
     * const count = await prisma.formTemplate.count({
     *   where: {
     *     // ... the filter for the FormTemplates we want to count
     *   }
     * })
    **/
    count<T extends FormTemplateCountArgs>(
      args?: Subset<T, FormTemplateCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FormTemplateCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a FormTemplate.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormTemplateAggregateArgs} 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 FormTemplateAggregateArgs>(args: Subset<T, FormTemplateAggregateArgs>): Prisma.PrismaPromise<GetFormTemplateAggregateType<T>>

    /**
     * Group by FormTemplate.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormTemplateGroupByArgs} 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 FormTemplateGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FormTemplateGroupByArgs['orderBy'] }
        : { orderBy?: FormTemplateGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FormTemplateGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFormTemplateGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the FormTemplate model
   */
  readonly fields: FormTemplateFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for FormTemplate.
   * 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__FormTemplateClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    updater<T extends FormTemplate$updaterArgs<ExtArgs> = {}>(args?: Subset<T, FormTemplate$updaterArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the FormTemplate model
   */
  interface FormTemplateFieldRefs {
    readonly id: FieldRef<"FormTemplate", 'String'>
    readonly nameI18n: FieldRef<"FormTemplate", 'Json'>
    readonly descriptionI18n: FieldRef<"FormTemplate", 'Json'>
    readonly category: FieldRef<"FormTemplate", 'String'>
    readonly icon: FieldRef<"FormTemplate", 'String'>
    readonly color: FieldRef<"FormTemplate", 'String'>
    readonly template: FieldRef<"FormTemplate", 'Json'>
    readonly isBuiltin: FieldRef<"FormTemplate", 'Boolean'>
    readonly isPublic: FieldRef<"FormTemplate", 'Boolean'>
    readonly createdBy: FieldRef<"FormTemplate", 'String'>
    readonly updatedBy: FieldRef<"FormTemplate", 'String'>
    readonly createdAt: FieldRef<"FormTemplate", 'DateTime'>
    readonly updatedAt: FieldRef<"FormTemplate", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * FormTemplate findUnique
   */
  export type FormTemplateFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * Filter, which FormTemplate to fetch.
     */
    where: FormTemplateWhereUniqueInput
  }

  /**
   * FormTemplate findUniqueOrThrow
   */
  export type FormTemplateFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * Filter, which FormTemplate to fetch.
     */
    where: FormTemplateWhereUniqueInput
  }

  /**
   * FormTemplate findFirst
   */
  export type FormTemplateFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * Filter, which FormTemplate to fetch.
     */
    where?: FormTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormTemplates to fetch.
     */
    orderBy?: FormTemplateOrderByWithRelationInput | FormTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormTemplates.
     */
    cursor?: FormTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormTemplates 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` FormTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormTemplates.
     */
    distinct?: FormTemplateScalarFieldEnum | FormTemplateScalarFieldEnum[]
  }

  /**
   * FormTemplate findFirstOrThrow
   */
  export type FormTemplateFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * Filter, which FormTemplate to fetch.
     */
    where?: FormTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormTemplates to fetch.
     */
    orderBy?: FormTemplateOrderByWithRelationInput | FormTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormTemplates.
     */
    cursor?: FormTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormTemplates 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` FormTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormTemplates.
     */
    distinct?: FormTemplateScalarFieldEnum | FormTemplateScalarFieldEnum[]
  }

  /**
   * FormTemplate findMany
   */
  export type FormTemplateFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * Filter, which FormTemplates to fetch.
     */
    where?: FormTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormTemplates to fetch.
     */
    orderBy?: FormTemplateOrderByWithRelationInput | FormTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing FormTemplates.
     */
    cursor?: FormTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormTemplates 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` FormTemplates.
     */
    skip?: number
    distinct?: FormTemplateScalarFieldEnum | FormTemplateScalarFieldEnum[]
  }

  /**
   * FormTemplate create
   */
  export type FormTemplateCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * The data needed to create a FormTemplate.
     */
    data: XOR<FormTemplateCreateInput, FormTemplateUncheckedCreateInput>
  }

  /**
   * FormTemplate createMany
   */
  export type FormTemplateCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many FormTemplates.
     */
    data: FormTemplateCreateManyInput | FormTemplateCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FormTemplate createManyAndReturn
   */
  export type FormTemplateCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * The data used to create many FormTemplates.
     */
    data: FormTemplateCreateManyInput | FormTemplateCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormTemplate update
   */
  export type FormTemplateUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * The data needed to update a FormTemplate.
     */
    data: XOR<FormTemplateUpdateInput, FormTemplateUncheckedUpdateInput>
    /**
     * Choose, which FormTemplate to update.
     */
    where: FormTemplateWhereUniqueInput
  }

  /**
   * FormTemplate updateMany
   */
  export type FormTemplateUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update FormTemplates.
     */
    data: XOR<FormTemplateUpdateManyMutationInput, FormTemplateUncheckedUpdateManyInput>
    /**
     * Filter which FormTemplates to update
     */
    where?: FormTemplateWhereInput
    /**
     * Limit how many FormTemplates to update.
     */
    limit?: number
  }

  /**
   * FormTemplate updateManyAndReturn
   */
  export type FormTemplateUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * The data used to update FormTemplates.
     */
    data: XOR<FormTemplateUpdateManyMutationInput, FormTemplateUncheckedUpdateManyInput>
    /**
     * Filter which FormTemplates to update
     */
    where?: FormTemplateWhereInput
    /**
     * Limit how many FormTemplates to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormTemplate upsert
   */
  export type FormTemplateUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * The filter to search for the FormTemplate to update in case it exists.
     */
    where: FormTemplateWhereUniqueInput
    /**
     * In case the FormTemplate found by the `where` argument doesn't exist, create a new FormTemplate with this data.
     */
    create: XOR<FormTemplateCreateInput, FormTemplateUncheckedCreateInput>
    /**
     * In case the FormTemplate was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FormTemplateUpdateInput, FormTemplateUncheckedUpdateInput>
  }

  /**
   * FormTemplate delete
   */
  export type FormTemplateDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    /**
     * Filter which FormTemplate to delete.
     */
    where: FormTemplateWhereUniqueInput
  }

  /**
   * FormTemplate deleteMany
   */
  export type FormTemplateDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormTemplates to delete
     */
    where?: FormTemplateWhereInput
    /**
     * Limit how many FormTemplates to delete.
     */
    limit?: number
  }

  /**
   * FormTemplate.updater
   */
  export type FormTemplate$updaterArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * FormTemplate without action
   */
  export type FormTemplateDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
  }


  /**
   * Model ReleaseSnapshot
   */

  export type AggregateReleaseSnapshot = {
    _count: ReleaseSnapshotCountAggregateOutputType | null
    _min: ReleaseSnapshotMinAggregateOutputType | null
    _max: ReleaseSnapshotMaxAggregateOutputType | null
  }

  export type ReleaseSnapshotMinAggregateOutputType = {
    id: string | null
    formDefinitionId: string | null
    formVersionId: string | null
    processDefinitionId: string | null
    processVersionId: string | null
    status: $Enums.ReleaseSnapshotStatus | null
    versionName: string | null
    releaseNote: string | null
    submittedBy: string | null
    submittedAt: Date | null
    submitComment: string | null
    reviewedBy: string | null
    reviewedAt: Date | null
    reviewComment: string | null
    publishedBy: string | null
    publishedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ReleaseSnapshotMaxAggregateOutputType = {
    id: string | null
    formDefinitionId: string | null
    formVersionId: string | null
    processDefinitionId: string | null
    processVersionId: string | null
    status: $Enums.ReleaseSnapshotStatus | null
    versionName: string | null
    releaseNote: string | null
    submittedBy: string | null
    submittedAt: Date | null
    submitComment: string | null
    reviewedBy: string | null
    reviewedAt: Date | null
    reviewComment: string | null
    publishedBy: string | null
    publishedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type ReleaseSnapshotCountAggregateOutputType = {
    id: number
    formDefinitionId: number
    formVersionId: number
    processDefinitionId: number
    processVersionId: number
    status: number
    versionName: number
    releaseNote: number
    submittedBy: number
    submittedAt: number
    submitComment: number
    reviewedBy: number
    reviewedAt: number
    reviewComment: number
    publishedBy: number
    publishedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type ReleaseSnapshotMinAggregateInputType = {
    id?: true
    formDefinitionId?: true
    formVersionId?: true
    processDefinitionId?: true
    processVersionId?: true
    status?: true
    versionName?: true
    releaseNote?: true
    submittedBy?: true
    submittedAt?: true
    submitComment?: true
    reviewedBy?: true
    reviewedAt?: true
    reviewComment?: true
    publishedBy?: true
    publishedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ReleaseSnapshotMaxAggregateInputType = {
    id?: true
    formDefinitionId?: true
    formVersionId?: true
    processDefinitionId?: true
    processVersionId?: true
    status?: true
    versionName?: true
    releaseNote?: true
    submittedBy?: true
    submittedAt?: true
    submitComment?: true
    reviewedBy?: true
    reviewedAt?: true
    reviewComment?: true
    publishedBy?: true
    publishedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type ReleaseSnapshotCountAggregateInputType = {
    id?: true
    formDefinitionId?: true
    formVersionId?: true
    processDefinitionId?: true
    processVersionId?: true
    status?: true
    versionName?: true
    releaseNote?: true
    submittedBy?: true
    submittedAt?: true
    submitComment?: true
    reviewedBy?: true
    reviewedAt?: true
    reviewComment?: true
    publishedBy?: true
    publishedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type ReleaseSnapshotAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ReleaseSnapshot to aggregate.
     */
    where?: ReleaseSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReleaseSnapshots to fetch.
     */
    orderBy?: ReleaseSnapshotOrderByWithRelationInput | ReleaseSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ReleaseSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReleaseSnapshots 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` ReleaseSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ReleaseSnapshots
    **/
    _count?: true | ReleaseSnapshotCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ReleaseSnapshotMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ReleaseSnapshotMaxAggregateInputType
  }

  export type GetReleaseSnapshotAggregateType<T extends ReleaseSnapshotAggregateArgs> = {
        [P in keyof T & keyof AggregateReleaseSnapshot]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateReleaseSnapshot[P]>
      : GetScalarType<T[P], AggregateReleaseSnapshot[P]>
  }




  export type ReleaseSnapshotGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ReleaseSnapshotWhereInput
    orderBy?: ReleaseSnapshotOrderByWithAggregationInput | ReleaseSnapshotOrderByWithAggregationInput[]
    by: ReleaseSnapshotScalarFieldEnum[] | ReleaseSnapshotScalarFieldEnum
    having?: ReleaseSnapshotScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ReleaseSnapshotCountAggregateInputType | true
    _min?: ReleaseSnapshotMinAggregateInputType
    _max?: ReleaseSnapshotMaxAggregateInputType
  }

  export type ReleaseSnapshotGroupByOutputType = {
    id: string
    formDefinitionId: string
    formVersionId: string
    processDefinitionId: string | null
    processVersionId: string | null
    status: $Enums.ReleaseSnapshotStatus
    versionName: string | null
    releaseNote: string | null
    submittedBy: string | null
    submittedAt: Date | null
    submitComment: string | null
    reviewedBy: string | null
    reviewedAt: Date | null
    reviewComment: string | null
    publishedBy: string | null
    publishedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: ReleaseSnapshotCountAggregateOutputType | null
    _min: ReleaseSnapshotMinAggregateOutputType | null
    _max: ReleaseSnapshotMaxAggregateOutputType | null
  }

  type GetReleaseSnapshotGroupByPayload<T extends ReleaseSnapshotGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ReleaseSnapshotGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ReleaseSnapshotGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ReleaseSnapshotGroupByOutputType[P]>
            : GetScalarType<T[P], ReleaseSnapshotGroupByOutputType[P]>
        }
      >
    >


  export type ReleaseSnapshotSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    formDefinitionId?: boolean
    formVersionId?: boolean
    processDefinitionId?: boolean
    processVersionId?: boolean
    status?: boolean
    versionName?: boolean
    releaseNote?: boolean
    submittedBy?: boolean
    submittedAt?: boolean
    submitComment?: boolean
    reviewedBy?: boolean
    reviewedAt?: boolean
    reviewComment?: boolean
    publishedBy?: boolean
    publishedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    instances?: boolean | ReleaseSnapshot$instancesArgs<ExtArgs>
    _count?: boolean | ReleaseSnapshotCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["releaseSnapshot"]>

  export type ReleaseSnapshotSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    formDefinitionId?: boolean
    formVersionId?: boolean
    processDefinitionId?: boolean
    processVersionId?: boolean
    status?: boolean
    versionName?: boolean
    releaseNote?: boolean
    submittedBy?: boolean
    submittedAt?: boolean
    submitComment?: boolean
    reviewedBy?: boolean
    reviewedAt?: boolean
    reviewComment?: boolean
    publishedBy?: boolean
    publishedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["releaseSnapshot"]>

  export type ReleaseSnapshotSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    formDefinitionId?: boolean
    formVersionId?: boolean
    processDefinitionId?: boolean
    processVersionId?: boolean
    status?: boolean
    versionName?: boolean
    releaseNote?: boolean
    submittedBy?: boolean
    submittedAt?: boolean
    submitComment?: boolean
    reviewedBy?: boolean
    reviewedAt?: boolean
    reviewComment?: boolean
    publishedBy?: boolean
    publishedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["releaseSnapshot"]>

  export type ReleaseSnapshotSelectScalar = {
    id?: boolean
    formDefinitionId?: boolean
    formVersionId?: boolean
    processDefinitionId?: boolean
    processVersionId?: boolean
    status?: boolean
    versionName?: boolean
    releaseNote?: boolean
    submittedBy?: boolean
    submittedAt?: boolean
    submitComment?: boolean
    reviewedBy?: boolean
    reviewedAt?: boolean
    reviewComment?: boolean
    publishedBy?: boolean
    publishedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type ReleaseSnapshotOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "formDefinitionId" | "formVersionId" | "processDefinitionId" | "processVersionId" | "status" | "versionName" | "releaseNote" | "submittedBy" | "submittedAt" | "submitComment" | "reviewedBy" | "reviewedAt" | "reviewComment" | "publishedBy" | "publishedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["releaseSnapshot"]>
  export type ReleaseSnapshotInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    instances?: boolean | ReleaseSnapshot$instancesArgs<ExtArgs>
    _count?: boolean | ReleaseSnapshotCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ReleaseSnapshotIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type ReleaseSnapshotIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $ReleaseSnapshotPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ReleaseSnapshot"
    objects: {
      instances: Prisma.$FormInstancePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      formDefinitionId: string
      formVersionId: string
      processDefinitionId: string | null
      processVersionId: string | null
      status: $Enums.ReleaseSnapshotStatus
      versionName: string | null
      releaseNote: string | null
      submittedBy: string | null
      submittedAt: Date | null
      submitComment: string | null
      reviewedBy: string | null
      reviewedAt: Date | null
      reviewComment: string | null
      publishedBy: string | null
      publishedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["releaseSnapshot"]>
    composites: {}
  }

  type ReleaseSnapshotGetPayload<S extends boolean | null | undefined | ReleaseSnapshotDefaultArgs> = $Result.GetResult<Prisma.$ReleaseSnapshotPayload, S>

  type ReleaseSnapshotCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ReleaseSnapshotFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ReleaseSnapshotCountAggregateInputType | true
    }

  export interface ReleaseSnapshotDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ReleaseSnapshot'], meta: { name: 'ReleaseSnapshot' } }
    /**
     * Find zero or one ReleaseSnapshot that matches the filter.
     * @param {ReleaseSnapshotFindUniqueArgs} args - Arguments to find a ReleaseSnapshot
     * @example
     * // Get one ReleaseSnapshot
     * const releaseSnapshot = await prisma.releaseSnapshot.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ReleaseSnapshotFindUniqueArgs>(args: SelectSubset<T, ReleaseSnapshotFindUniqueArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ReleaseSnapshot that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ReleaseSnapshotFindUniqueOrThrowArgs} args - Arguments to find a ReleaseSnapshot
     * @example
     * // Get one ReleaseSnapshot
     * const releaseSnapshot = await prisma.releaseSnapshot.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ReleaseSnapshotFindUniqueOrThrowArgs>(args: SelectSubset<T, ReleaseSnapshotFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ReleaseSnapshot 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 {ReleaseSnapshotFindFirstArgs} args - Arguments to find a ReleaseSnapshot
     * @example
     * // Get one ReleaseSnapshot
     * const releaseSnapshot = await prisma.releaseSnapshot.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ReleaseSnapshotFindFirstArgs>(args?: SelectSubset<T, ReleaseSnapshotFindFirstArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ReleaseSnapshot 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 {ReleaseSnapshotFindFirstOrThrowArgs} args - Arguments to find a ReleaseSnapshot
     * @example
     * // Get one ReleaseSnapshot
     * const releaseSnapshot = await prisma.releaseSnapshot.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ReleaseSnapshotFindFirstOrThrowArgs>(args?: SelectSubset<T, ReleaseSnapshotFindFirstOrThrowArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ReleaseSnapshots 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 {ReleaseSnapshotFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ReleaseSnapshots
     * const releaseSnapshots = await prisma.releaseSnapshot.findMany()
     * 
     * // Get first 10 ReleaseSnapshots
     * const releaseSnapshots = await prisma.releaseSnapshot.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const releaseSnapshotWithIdOnly = await prisma.releaseSnapshot.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ReleaseSnapshotFindManyArgs>(args?: SelectSubset<T, ReleaseSnapshotFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ReleaseSnapshot.
     * @param {ReleaseSnapshotCreateArgs} args - Arguments to create a ReleaseSnapshot.
     * @example
     * // Create one ReleaseSnapshot
     * const ReleaseSnapshot = await prisma.releaseSnapshot.create({
     *   data: {
     *     // ... data to create a ReleaseSnapshot
     *   }
     * })
     * 
     */
    create<T extends ReleaseSnapshotCreateArgs>(args: SelectSubset<T, ReleaseSnapshotCreateArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ReleaseSnapshots.
     * @param {ReleaseSnapshotCreateManyArgs} args - Arguments to create many ReleaseSnapshots.
     * @example
     * // Create many ReleaseSnapshots
     * const releaseSnapshot = await prisma.releaseSnapshot.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ReleaseSnapshotCreateManyArgs>(args?: SelectSubset<T, ReleaseSnapshotCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ReleaseSnapshots and returns the data saved in the database.
     * @param {ReleaseSnapshotCreateManyAndReturnArgs} args - Arguments to create many ReleaseSnapshots.
     * @example
     * // Create many ReleaseSnapshots
     * const releaseSnapshot = await prisma.releaseSnapshot.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ReleaseSnapshots and only return the `id`
     * const releaseSnapshotWithIdOnly = await prisma.releaseSnapshot.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 ReleaseSnapshotCreateManyAndReturnArgs>(args?: SelectSubset<T, ReleaseSnapshotCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ReleaseSnapshot.
     * @param {ReleaseSnapshotDeleteArgs} args - Arguments to delete one ReleaseSnapshot.
     * @example
     * // Delete one ReleaseSnapshot
     * const ReleaseSnapshot = await prisma.releaseSnapshot.delete({
     *   where: {
     *     // ... filter to delete one ReleaseSnapshot
     *   }
     * })
     * 
     */
    delete<T extends ReleaseSnapshotDeleteArgs>(args: SelectSubset<T, ReleaseSnapshotDeleteArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ReleaseSnapshot.
     * @param {ReleaseSnapshotUpdateArgs} args - Arguments to update one ReleaseSnapshot.
     * @example
     * // Update one ReleaseSnapshot
     * const releaseSnapshot = await prisma.releaseSnapshot.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ReleaseSnapshotUpdateArgs>(args: SelectSubset<T, ReleaseSnapshotUpdateArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ReleaseSnapshots.
     * @param {ReleaseSnapshotDeleteManyArgs} args - Arguments to filter ReleaseSnapshots to delete.
     * @example
     * // Delete a few ReleaseSnapshots
     * const { count } = await prisma.releaseSnapshot.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ReleaseSnapshotDeleteManyArgs>(args?: SelectSubset<T, ReleaseSnapshotDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ReleaseSnapshots.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReleaseSnapshotUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ReleaseSnapshots
     * const releaseSnapshot = await prisma.releaseSnapshot.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ReleaseSnapshotUpdateManyArgs>(args: SelectSubset<T, ReleaseSnapshotUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ReleaseSnapshots and returns the data updated in the database.
     * @param {ReleaseSnapshotUpdateManyAndReturnArgs} args - Arguments to update many ReleaseSnapshots.
     * @example
     * // Update many ReleaseSnapshots
     * const releaseSnapshot = await prisma.releaseSnapshot.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ReleaseSnapshots and only return the `id`
     * const releaseSnapshotWithIdOnly = await prisma.releaseSnapshot.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 ReleaseSnapshotUpdateManyAndReturnArgs>(args: SelectSubset<T, ReleaseSnapshotUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ReleaseSnapshot.
     * @param {ReleaseSnapshotUpsertArgs} args - Arguments to update or create a ReleaseSnapshot.
     * @example
     * // Update or create a ReleaseSnapshot
     * const releaseSnapshot = await prisma.releaseSnapshot.upsert({
     *   create: {
     *     // ... data to create a ReleaseSnapshot
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ReleaseSnapshot we want to update
     *   }
     * })
     */
    upsert<T extends ReleaseSnapshotUpsertArgs>(args: SelectSubset<T, ReleaseSnapshotUpsertArgs<ExtArgs>>): Prisma__ReleaseSnapshotClient<$Result.GetResult<Prisma.$ReleaseSnapshotPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ReleaseSnapshots.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReleaseSnapshotCountArgs} args - Arguments to filter ReleaseSnapshots to count.
     * @example
     * // Count the number of ReleaseSnapshots
     * const count = await prisma.releaseSnapshot.count({
     *   where: {
     *     // ... the filter for the ReleaseSnapshots we want to count
     *   }
     * })
    **/
    count<T extends ReleaseSnapshotCountArgs>(
      args?: Subset<T, ReleaseSnapshotCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ReleaseSnapshotCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ReleaseSnapshot.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReleaseSnapshotAggregateArgs} 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 ReleaseSnapshotAggregateArgs>(args: Subset<T, ReleaseSnapshotAggregateArgs>): Prisma.PrismaPromise<GetReleaseSnapshotAggregateType<T>>

    /**
     * Group by ReleaseSnapshot.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ReleaseSnapshotGroupByArgs} 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 ReleaseSnapshotGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ReleaseSnapshotGroupByArgs['orderBy'] }
        : { orderBy?: ReleaseSnapshotGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ReleaseSnapshotGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetReleaseSnapshotGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ReleaseSnapshot model
   */
  readonly fields: ReleaseSnapshotFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ReleaseSnapshot.
   * 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__ReleaseSnapshotClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    instances<T extends ReleaseSnapshot$instancesArgs<ExtArgs> = {}>(args?: Subset<T, ReleaseSnapshot$instancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ReleaseSnapshot model
   */
  interface ReleaseSnapshotFieldRefs {
    readonly id: FieldRef<"ReleaseSnapshot", 'String'>
    readonly formDefinitionId: FieldRef<"ReleaseSnapshot", 'String'>
    readonly formVersionId: FieldRef<"ReleaseSnapshot", 'String'>
    readonly processDefinitionId: FieldRef<"ReleaseSnapshot", 'String'>
    readonly processVersionId: FieldRef<"ReleaseSnapshot", 'String'>
    readonly status: FieldRef<"ReleaseSnapshot", 'ReleaseSnapshotStatus'>
    readonly versionName: FieldRef<"ReleaseSnapshot", 'String'>
    readonly releaseNote: FieldRef<"ReleaseSnapshot", 'String'>
    readonly submittedBy: FieldRef<"ReleaseSnapshot", 'String'>
    readonly submittedAt: FieldRef<"ReleaseSnapshot", 'DateTime'>
    readonly submitComment: FieldRef<"ReleaseSnapshot", 'String'>
    readonly reviewedBy: FieldRef<"ReleaseSnapshot", 'String'>
    readonly reviewedAt: FieldRef<"ReleaseSnapshot", 'DateTime'>
    readonly reviewComment: FieldRef<"ReleaseSnapshot", 'String'>
    readonly publishedBy: FieldRef<"ReleaseSnapshot", 'String'>
    readonly publishedAt: FieldRef<"ReleaseSnapshot", 'DateTime'>
    readonly createdAt: FieldRef<"ReleaseSnapshot", 'DateTime'>
    readonly updatedAt: FieldRef<"ReleaseSnapshot", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ReleaseSnapshot findUnique
   */
  export type ReleaseSnapshotFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseSnapshot to fetch.
     */
    where: ReleaseSnapshotWhereUniqueInput
  }

  /**
   * ReleaseSnapshot findUniqueOrThrow
   */
  export type ReleaseSnapshotFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseSnapshot to fetch.
     */
    where: ReleaseSnapshotWhereUniqueInput
  }

  /**
   * ReleaseSnapshot findFirst
   */
  export type ReleaseSnapshotFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseSnapshot to fetch.
     */
    where?: ReleaseSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReleaseSnapshots to fetch.
     */
    orderBy?: ReleaseSnapshotOrderByWithRelationInput | ReleaseSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ReleaseSnapshots.
     */
    cursor?: ReleaseSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReleaseSnapshots 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` ReleaseSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ReleaseSnapshots.
     */
    distinct?: ReleaseSnapshotScalarFieldEnum | ReleaseSnapshotScalarFieldEnum[]
  }

  /**
   * ReleaseSnapshot findFirstOrThrow
   */
  export type ReleaseSnapshotFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseSnapshot to fetch.
     */
    where?: ReleaseSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReleaseSnapshots to fetch.
     */
    orderBy?: ReleaseSnapshotOrderByWithRelationInput | ReleaseSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ReleaseSnapshots.
     */
    cursor?: ReleaseSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReleaseSnapshots 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` ReleaseSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ReleaseSnapshots.
     */
    distinct?: ReleaseSnapshotScalarFieldEnum | ReleaseSnapshotScalarFieldEnum[]
  }

  /**
   * ReleaseSnapshot findMany
   */
  export type ReleaseSnapshotFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which ReleaseSnapshots to fetch.
     */
    where?: ReleaseSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ReleaseSnapshots to fetch.
     */
    orderBy?: ReleaseSnapshotOrderByWithRelationInput | ReleaseSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ReleaseSnapshots.
     */
    cursor?: ReleaseSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ReleaseSnapshots 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` ReleaseSnapshots.
     */
    skip?: number
    distinct?: ReleaseSnapshotScalarFieldEnum | ReleaseSnapshotScalarFieldEnum[]
  }

  /**
   * ReleaseSnapshot create
   */
  export type ReleaseSnapshotCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * The data needed to create a ReleaseSnapshot.
     */
    data: XOR<ReleaseSnapshotCreateInput, ReleaseSnapshotUncheckedCreateInput>
  }

  /**
   * ReleaseSnapshot createMany
   */
  export type ReleaseSnapshotCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ReleaseSnapshots.
     */
    data: ReleaseSnapshotCreateManyInput | ReleaseSnapshotCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ReleaseSnapshot createManyAndReturn
   */
  export type ReleaseSnapshotCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * The data used to create many ReleaseSnapshots.
     */
    data: ReleaseSnapshotCreateManyInput | ReleaseSnapshotCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ReleaseSnapshot update
   */
  export type ReleaseSnapshotUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * The data needed to update a ReleaseSnapshot.
     */
    data: XOR<ReleaseSnapshotUpdateInput, ReleaseSnapshotUncheckedUpdateInput>
    /**
     * Choose, which ReleaseSnapshot to update.
     */
    where: ReleaseSnapshotWhereUniqueInput
  }

  /**
   * ReleaseSnapshot updateMany
   */
  export type ReleaseSnapshotUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ReleaseSnapshots.
     */
    data: XOR<ReleaseSnapshotUpdateManyMutationInput, ReleaseSnapshotUncheckedUpdateManyInput>
    /**
     * Filter which ReleaseSnapshots to update
     */
    where?: ReleaseSnapshotWhereInput
    /**
     * Limit how many ReleaseSnapshots to update.
     */
    limit?: number
  }

  /**
   * ReleaseSnapshot updateManyAndReturn
   */
  export type ReleaseSnapshotUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * The data used to update ReleaseSnapshots.
     */
    data: XOR<ReleaseSnapshotUpdateManyMutationInput, ReleaseSnapshotUncheckedUpdateManyInput>
    /**
     * Filter which ReleaseSnapshots to update
     */
    where?: ReleaseSnapshotWhereInput
    /**
     * Limit how many ReleaseSnapshots to update.
     */
    limit?: number
  }

  /**
   * ReleaseSnapshot upsert
   */
  export type ReleaseSnapshotUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * The filter to search for the ReleaseSnapshot to update in case it exists.
     */
    where: ReleaseSnapshotWhereUniqueInput
    /**
     * In case the ReleaseSnapshot found by the `where` argument doesn't exist, create a new ReleaseSnapshot with this data.
     */
    create: XOR<ReleaseSnapshotCreateInput, ReleaseSnapshotUncheckedCreateInput>
    /**
     * In case the ReleaseSnapshot was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ReleaseSnapshotUpdateInput, ReleaseSnapshotUncheckedUpdateInput>
  }

  /**
   * ReleaseSnapshot delete
   */
  export type ReleaseSnapshotDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
    /**
     * Filter which ReleaseSnapshot to delete.
     */
    where: ReleaseSnapshotWhereUniqueInput
  }

  /**
   * ReleaseSnapshot deleteMany
   */
  export type ReleaseSnapshotDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ReleaseSnapshots to delete
     */
    where?: ReleaseSnapshotWhereInput
    /**
     * Limit how many ReleaseSnapshots to delete.
     */
    limit?: number
  }

  /**
   * ReleaseSnapshot.instances
   */
  export type ReleaseSnapshot$instancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    where?: FormInstanceWhereInput
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    cursor?: FormInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * ReleaseSnapshot without action
   */
  export type ReleaseSnapshotDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseSnapshot
     */
    select?: ReleaseSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseSnapshot
     */
    omit?: ReleaseSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseSnapshotInclude<ExtArgs> | null
  }


  /**
   * Model FormWebhook
   */

  export type AggregateFormWebhook = {
    _count: FormWebhookCountAggregateOutputType | null
    _avg: FormWebhookAvgAggregateOutputType | null
    _sum: FormWebhookSumAggregateOutputType | null
    _min: FormWebhookMinAggregateOutputType | null
    _max: FormWebhookMaxAggregateOutputType | null
  }

  export type FormWebhookAvgAggregateOutputType = {
    maxRetries: number | null
    timeoutMs: number | null
  }

  export type FormWebhookSumAggregateOutputType = {
    maxRetries: number | null
    timeoutMs: number | null
  }

  export type FormWebhookMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    name: string | null
    description: string | null
    url: string | null
    secret: string | null
    enabled: boolean | null
    maxRetries: number | null
    timeoutMs: number | null
    createdBy: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FormWebhookMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    name: string | null
    description: string | null
    url: string | null
    secret: string | null
    enabled: boolean | null
    maxRetries: number | null
    timeoutMs: number | null
    createdBy: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FormWebhookCountAggregateOutputType = {
    id: number
    organizationId: number
    name: number
    description: number
    url: number
    secret: number
    events: number
    enabled: number
    maxRetries: number
    timeoutMs: number
    headers: number
    createdBy: number
    updatedBy: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type FormWebhookAvgAggregateInputType = {
    maxRetries?: true
    timeoutMs?: true
  }

  export type FormWebhookSumAggregateInputType = {
    maxRetries?: true
    timeoutMs?: true
  }

  export type FormWebhookMinAggregateInputType = {
    id?: true
    organizationId?: true
    name?: true
    description?: true
    url?: true
    secret?: true
    enabled?: true
    maxRetries?: true
    timeoutMs?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FormWebhookMaxAggregateInputType = {
    id?: true
    organizationId?: true
    name?: true
    description?: true
    url?: true
    secret?: true
    enabled?: true
    maxRetries?: true
    timeoutMs?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FormWebhookCountAggregateInputType = {
    id?: true
    organizationId?: true
    name?: true
    description?: true
    url?: true
    secret?: true
    events?: true
    enabled?: true
    maxRetries?: true
    timeoutMs?: true
    headers?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type FormWebhookAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormWebhook to aggregate.
     */
    where?: FormWebhookWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormWebhooks to fetch.
     */
    orderBy?: FormWebhookOrderByWithRelationInput | FormWebhookOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FormWebhookWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormWebhooks 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` FormWebhooks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned FormWebhooks
    **/
    _count?: true | FormWebhookCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: FormWebhookAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: FormWebhookSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FormWebhookMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FormWebhookMaxAggregateInputType
  }

  export type GetFormWebhookAggregateType<T extends FormWebhookAggregateArgs> = {
        [P in keyof T & keyof AggregateFormWebhook]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFormWebhook[P]>
      : GetScalarType<T[P], AggregateFormWebhook[P]>
  }




  export type FormWebhookGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormWebhookWhereInput
    orderBy?: FormWebhookOrderByWithAggregationInput | FormWebhookOrderByWithAggregationInput[]
    by: FormWebhookScalarFieldEnum[] | FormWebhookScalarFieldEnum
    having?: FormWebhookScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FormWebhookCountAggregateInputType | true
    _avg?: FormWebhookAvgAggregateInputType
    _sum?: FormWebhookSumAggregateInputType
    _min?: FormWebhookMinAggregateInputType
    _max?: FormWebhookMaxAggregateInputType
  }

  export type FormWebhookGroupByOutputType = {
    id: string
    organizationId: string | null
    name: string
    description: string | null
    url: string
    secret: string
    events: JsonValue
    enabled: boolean
    maxRetries: number
    timeoutMs: number
    headers: JsonValue | null
    createdBy: string
    updatedBy: string | null
    createdAt: Date
    updatedAt: Date
    _count: FormWebhookCountAggregateOutputType | null
    _avg: FormWebhookAvgAggregateOutputType | null
    _sum: FormWebhookSumAggregateOutputType | null
    _min: FormWebhookMinAggregateOutputType | null
    _max: FormWebhookMaxAggregateOutputType | null
  }

  type GetFormWebhookGroupByPayload<T extends FormWebhookGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FormWebhookGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FormWebhookGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FormWebhookGroupByOutputType[P]>
            : GetScalarType<T[P], FormWebhookGroupByOutputType[P]>
        }
      >
    >


  export type FormWebhookSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    name?: boolean
    description?: boolean
    url?: boolean
    secret?: boolean
    events?: boolean
    enabled?: boolean
    maxRetries?: boolean
    timeoutMs?: boolean
    headers?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | FormWebhook$organizationArgs<ExtArgs>
    logs?: boolean | FormWebhook$logsArgs<ExtArgs>
    _count?: boolean | FormWebhookCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formWebhook"]>

  export type FormWebhookSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    name?: boolean
    description?: boolean
    url?: boolean
    secret?: boolean
    events?: boolean
    enabled?: boolean
    maxRetries?: boolean
    timeoutMs?: boolean
    headers?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | FormWebhook$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["formWebhook"]>

  export type FormWebhookSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    name?: boolean
    description?: boolean
    url?: boolean
    secret?: boolean
    events?: boolean
    enabled?: boolean
    maxRetries?: boolean
    timeoutMs?: boolean
    headers?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    organization?: boolean | FormWebhook$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["formWebhook"]>

  export type FormWebhookSelectScalar = {
    id?: boolean
    organizationId?: boolean
    name?: boolean
    description?: boolean
    url?: boolean
    secret?: boolean
    events?: boolean
    enabled?: boolean
    maxRetries?: boolean
    timeoutMs?: boolean
    headers?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type FormWebhookOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "name" | "description" | "url" | "secret" | "events" | "enabled" | "maxRetries" | "timeoutMs" | "headers" | "createdBy" | "updatedBy" | "createdAt" | "updatedAt", ExtArgs["result"]["formWebhook"]>
  export type FormWebhookInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | FormWebhook$organizationArgs<ExtArgs>
    logs?: boolean | FormWebhook$logsArgs<ExtArgs>
    _count?: boolean | FormWebhookCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type FormWebhookIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | FormWebhook$organizationArgs<ExtArgs>
  }
  export type FormWebhookIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | FormWebhook$organizationArgs<ExtArgs>
  }

  export type $FormWebhookPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "FormWebhook"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
      logs: Prisma.$FormWebhookLogPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      /**
       * null = 订阅平台级所有事件，非 null = 订阅指定组织的事件 (v2.0: 独立组织表)
       */
      organizationId: string | null
      name: string
      description: string | null
      url: string
      secret: string
      events: Prisma.JsonValue
      enabled: boolean
      maxRetries: number
      timeoutMs: number
      headers: Prisma.JsonValue | null
      createdBy: string
      updatedBy: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["formWebhook"]>
    composites: {}
  }

  type FormWebhookGetPayload<S extends boolean | null | undefined | FormWebhookDefaultArgs> = $Result.GetResult<Prisma.$FormWebhookPayload, S>

  type FormWebhookCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FormWebhookFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FormWebhookCountAggregateInputType | true
    }

  export interface FormWebhookDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['FormWebhook'], meta: { name: 'FormWebhook' } }
    /**
     * Find zero or one FormWebhook that matches the filter.
     * @param {FormWebhookFindUniqueArgs} args - Arguments to find a FormWebhook
     * @example
     * // Get one FormWebhook
     * const formWebhook = await prisma.formWebhook.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FormWebhookFindUniqueArgs>(args: SelectSubset<T, FormWebhookFindUniqueArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one FormWebhook that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FormWebhookFindUniqueOrThrowArgs} args - Arguments to find a FormWebhook
     * @example
     * // Get one FormWebhook
     * const formWebhook = await prisma.formWebhook.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FormWebhookFindUniqueOrThrowArgs>(args: SelectSubset<T, FormWebhookFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormWebhook 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 {FormWebhookFindFirstArgs} args - Arguments to find a FormWebhook
     * @example
     * // Get one FormWebhook
     * const formWebhook = await prisma.formWebhook.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FormWebhookFindFirstArgs>(args?: SelectSubset<T, FormWebhookFindFirstArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormWebhook 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 {FormWebhookFindFirstOrThrowArgs} args - Arguments to find a FormWebhook
     * @example
     * // Get one FormWebhook
     * const formWebhook = await prisma.formWebhook.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FormWebhookFindFirstOrThrowArgs>(args?: SelectSubset<T, FormWebhookFindFirstOrThrowArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more FormWebhooks 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 {FormWebhookFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all FormWebhooks
     * const formWebhooks = await prisma.formWebhook.findMany()
     * 
     * // Get first 10 FormWebhooks
     * const formWebhooks = await prisma.formWebhook.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const formWebhookWithIdOnly = await prisma.formWebhook.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FormWebhookFindManyArgs>(args?: SelectSubset<T, FormWebhookFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a FormWebhook.
     * @param {FormWebhookCreateArgs} args - Arguments to create a FormWebhook.
     * @example
     * // Create one FormWebhook
     * const FormWebhook = await prisma.formWebhook.create({
     *   data: {
     *     // ... data to create a FormWebhook
     *   }
     * })
     * 
     */
    create<T extends FormWebhookCreateArgs>(args: SelectSubset<T, FormWebhookCreateArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many FormWebhooks.
     * @param {FormWebhookCreateManyArgs} args - Arguments to create many FormWebhooks.
     * @example
     * // Create many FormWebhooks
     * const formWebhook = await prisma.formWebhook.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FormWebhookCreateManyArgs>(args?: SelectSubset<T, FormWebhookCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many FormWebhooks and returns the data saved in the database.
     * @param {FormWebhookCreateManyAndReturnArgs} args - Arguments to create many FormWebhooks.
     * @example
     * // Create many FormWebhooks
     * const formWebhook = await prisma.formWebhook.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many FormWebhooks and only return the `id`
     * const formWebhookWithIdOnly = await prisma.formWebhook.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 FormWebhookCreateManyAndReturnArgs>(args?: SelectSubset<T, FormWebhookCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a FormWebhook.
     * @param {FormWebhookDeleteArgs} args - Arguments to delete one FormWebhook.
     * @example
     * // Delete one FormWebhook
     * const FormWebhook = await prisma.formWebhook.delete({
     *   where: {
     *     // ... filter to delete one FormWebhook
     *   }
     * })
     * 
     */
    delete<T extends FormWebhookDeleteArgs>(args: SelectSubset<T, FormWebhookDeleteArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one FormWebhook.
     * @param {FormWebhookUpdateArgs} args - Arguments to update one FormWebhook.
     * @example
     * // Update one FormWebhook
     * const formWebhook = await prisma.formWebhook.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FormWebhookUpdateArgs>(args: SelectSubset<T, FormWebhookUpdateArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more FormWebhooks.
     * @param {FormWebhookDeleteManyArgs} args - Arguments to filter FormWebhooks to delete.
     * @example
     * // Delete a few FormWebhooks
     * const { count } = await prisma.formWebhook.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FormWebhookDeleteManyArgs>(args?: SelectSubset<T, FormWebhookDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormWebhooks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormWebhookUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many FormWebhooks
     * const formWebhook = await prisma.formWebhook.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FormWebhookUpdateManyArgs>(args: SelectSubset<T, FormWebhookUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormWebhooks and returns the data updated in the database.
     * @param {FormWebhookUpdateManyAndReturnArgs} args - Arguments to update many FormWebhooks.
     * @example
     * // Update many FormWebhooks
     * const formWebhook = await prisma.formWebhook.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more FormWebhooks and only return the `id`
     * const formWebhookWithIdOnly = await prisma.formWebhook.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 FormWebhookUpdateManyAndReturnArgs>(args: SelectSubset<T, FormWebhookUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one FormWebhook.
     * @param {FormWebhookUpsertArgs} args - Arguments to update or create a FormWebhook.
     * @example
     * // Update or create a FormWebhook
     * const formWebhook = await prisma.formWebhook.upsert({
     *   create: {
     *     // ... data to create a FormWebhook
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the FormWebhook we want to update
     *   }
     * })
     */
    upsert<T extends FormWebhookUpsertArgs>(args: SelectSubset<T, FormWebhookUpsertArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of FormWebhooks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormWebhookCountArgs} args - Arguments to filter FormWebhooks to count.
     * @example
     * // Count the number of FormWebhooks
     * const count = await prisma.formWebhook.count({
     *   where: {
     *     // ... the filter for the FormWebhooks we want to count
     *   }
     * })
    **/
    count<T extends FormWebhookCountArgs>(
      args?: Subset<T, FormWebhookCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FormWebhookCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a FormWebhook.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormWebhookAggregateArgs} 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 FormWebhookAggregateArgs>(args: Subset<T, FormWebhookAggregateArgs>): Prisma.PrismaPromise<GetFormWebhookAggregateType<T>>

    /**
     * Group by FormWebhook.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormWebhookGroupByArgs} 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 FormWebhookGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FormWebhookGroupByArgs['orderBy'] }
        : { orderBy?: FormWebhookGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FormWebhookGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFormWebhookGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the FormWebhook model
   */
  readonly fields: FormWebhookFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for FormWebhook.
   * 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__FormWebhookClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends FormWebhook$organizationArgs<ExtArgs> = {}>(args?: Subset<T, FormWebhook$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    logs<T extends FormWebhook$logsArgs<ExtArgs> = {}>(args?: Subset<T, FormWebhook$logsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the FormWebhook model
   */
  interface FormWebhookFieldRefs {
    readonly id: FieldRef<"FormWebhook", 'String'>
    readonly organizationId: FieldRef<"FormWebhook", 'String'>
    readonly name: FieldRef<"FormWebhook", 'String'>
    readonly description: FieldRef<"FormWebhook", 'String'>
    readonly url: FieldRef<"FormWebhook", 'String'>
    readonly secret: FieldRef<"FormWebhook", 'String'>
    readonly events: FieldRef<"FormWebhook", 'Json'>
    readonly enabled: FieldRef<"FormWebhook", 'Boolean'>
    readonly maxRetries: FieldRef<"FormWebhook", 'Int'>
    readonly timeoutMs: FieldRef<"FormWebhook", 'Int'>
    readonly headers: FieldRef<"FormWebhook", 'Json'>
    readonly createdBy: FieldRef<"FormWebhook", 'String'>
    readonly updatedBy: FieldRef<"FormWebhook", 'String'>
    readonly createdAt: FieldRef<"FormWebhook", 'DateTime'>
    readonly updatedAt: FieldRef<"FormWebhook", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * FormWebhook findUnique
   */
  export type FormWebhookFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhook to fetch.
     */
    where: FormWebhookWhereUniqueInput
  }

  /**
   * FormWebhook findUniqueOrThrow
   */
  export type FormWebhookFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhook to fetch.
     */
    where: FormWebhookWhereUniqueInput
  }

  /**
   * FormWebhook findFirst
   */
  export type FormWebhookFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhook to fetch.
     */
    where?: FormWebhookWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormWebhooks to fetch.
     */
    orderBy?: FormWebhookOrderByWithRelationInput | FormWebhookOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormWebhooks.
     */
    cursor?: FormWebhookWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormWebhooks 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` FormWebhooks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormWebhooks.
     */
    distinct?: FormWebhookScalarFieldEnum | FormWebhookScalarFieldEnum[]
  }

  /**
   * FormWebhook findFirstOrThrow
   */
  export type FormWebhookFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhook to fetch.
     */
    where?: FormWebhookWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormWebhooks to fetch.
     */
    orderBy?: FormWebhookOrderByWithRelationInput | FormWebhookOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormWebhooks.
     */
    cursor?: FormWebhookWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormWebhooks 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` FormWebhooks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormWebhooks.
     */
    distinct?: FormWebhookScalarFieldEnum | FormWebhookScalarFieldEnum[]
  }

  /**
   * FormWebhook findMany
   */
  export type FormWebhookFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhooks to fetch.
     */
    where?: FormWebhookWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormWebhooks to fetch.
     */
    orderBy?: FormWebhookOrderByWithRelationInput | FormWebhookOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing FormWebhooks.
     */
    cursor?: FormWebhookWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormWebhooks 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` FormWebhooks.
     */
    skip?: number
    distinct?: FormWebhookScalarFieldEnum | FormWebhookScalarFieldEnum[]
  }

  /**
   * FormWebhook create
   */
  export type FormWebhookCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * The data needed to create a FormWebhook.
     */
    data: XOR<FormWebhookCreateInput, FormWebhookUncheckedCreateInput>
  }

  /**
   * FormWebhook createMany
   */
  export type FormWebhookCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many FormWebhooks.
     */
    data: FormWebhookCreateManyInput | FormWebhookCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FormWebhook createManyAndReturn
   */
  export type FormWebhookCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * The data used to create many FormWebhooks.
     */
    data: FormWebhookCreateManyInput | FormWebhookCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormWebhook update
   */
  export type FormWebhookUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * The data needed to update a FormWebhook.
     */
    data: XOR<FormWebhookUpdateInput, FormWebhookUncheckedUpdateInput>
    /**
     * Choose, which FormWebhook to update.
     */
    where: FormWebhookWhereUniqueInput
  }

  /**
   * FormWebhook updateMany
   */
  export type FormWebhookUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update FormWebhooks.
     */
    data: XOR<FormWebhookUpdateManyMutationInput, FormWebhookUncheckedUpdateManyInput>
    /**
     * Filter which FormWebhooks to update
     */
    where?: FormWebhookWhereInput
    /**
     * Limit how many FormWebhooks to update.
     */
    limit?: number
  }

  /**
   * FormWebhook updateManyAndReturn
   */
  export type FormWebhookUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * The data used to update FormWebhooks.
     */
    data: XOR<FormWebhookUpdateManyMutationInput, FormWebhookUncheckedUpdateManyInput>
    /**
     * Filter which FormWebhooks to update
     */
    where?: FormWebhookWhereInput
    /**
     * Limit how many FormWebhooks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormWebhook upsert
   */
  export type FormWebhookUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * The filter to search for the FormWebhook to update in case it exists.
     */
    where: FormWebhookWhereUniqueInput
    /**
     * In case the FormWebhook found by the `where` argument doesn't exist, create a new FormWebhook with this data.
     */
    create: XOR<FormWebhookCreateInput, FormWebhookUncheckedCreateInput>
    /**
     * In case the FormWebhook was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FormWebhookUpdateInput, FormWebhookUncheckedUpdateInput>
  }

  /**
   * FormWebhook delete
   */
  export type FormWebhookDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
    /**
     * Filter which FormWebhook to delete.
     */
    where: FormWebhookWhereUniqueInput
  }

  /**
   * FormWebhook deleteMany
   */
  export type FormWebhookDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormWebhooks to delete
     */
    where?: FormWebhookWhereInput
    /**
     * Limit how many FormWebhooks to delete.
     */
    limit?: number
  }

  /**
   * FormWebhook.organization
   */
  export type FormWebhook$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * FormWebhook.logs
   */
  export type FormWebhook$logsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    where?: FormWebhookLogWhereInput
    orderBy?: FormWebhookLogOrderByWithRelationInput | FormWebhookLogOrderByWithRelationInput[]
    cursor?: FormWebhookLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormWebhookLogScalarFieldEnum | FormWebhookLogScalarFieldEnum[]
  }

  /**
   * FormWebhook without action
   */
  export type FormWebhookDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhook
     */
    select?: FormWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhook
     */
    omit?: FormWebhookOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookInclude<ExtArgs> | null
  }


  /**
   * Model FormWebhookLog
   */

  export type AggregateFormWebhookLog = {
    _count: FormWebhookLogCountAggregateOutputType | null
    _avg: FormWebhookLogAvgAggregateOutputType | null
    _sum: FormWebhookLogSumAggregateOutputType | null
    _min: FormWebhookLogMinAggregateOutputType | null
    _max: FormWebhookLogMaxAggregateOutputType | null
  }

  export type FormWebhookLogAvgAggregateOutputType = {
    statusCode: number | null
    retryCount: number | null
    duration: number | null
  }

  export type FormWebhookLogSumAggregateOutputType = {
    statusCode: number | null
    retryCount: number | null
    duration: number | null
  }

  export type FormWebhookLogMinAggregateOutputType = {
    id: string | null
    webhookId: string | null
    eventType: string | null
    statusCode: number | null
    response: string | null
    success: boolean | null
    error: string | null
    retryCount: number | null
    duration: number | null
    createdAt: Date | null
  }

  export type FormWebhookLogMaxAggregateOutputType = {
    id: string | null
    webhookId: string | null
    eventType: string | null
    statusCode: number | null
    response: string | null
    success: boolean | null
    error: string | null
    retryCount: number | null
    duration: number | null
    createdAt: Date | null
  }

  export type FormWebhookLogCountAggregateOutputType = {
    id: number
    webhookId: number
    eventType: number
    payload: number
    statusCode: number
    response: number
    success: number
    error: number
    retryCount: number
    duration: number
    createdAt: number
    _all: number
  }


  export type FormWebhookLogAvgAggregateInputType = {
    statusCode?: true
    retryCount?: true
    duration?: true
  }

  export type FormWebhookLogSumAggregateInputType = {
    statusCode?: true
    retryCount?: true
    duration?: true
  }

  export type FormWebhookLogMinAggregateInputType = {
    id?: true
    webhookId?: true
    eventType?: true
    statusCode?: true
    response?: true
    success?: true
    error?: true
    retryCount?: true
    duration?: true
    createdAt?: true
  }

  export type FormWebhookLogMaxAggregateInputType = {
    id?: true
    webhookId?: true
    eventType?: true
    statusCode?: true
    response?: true
    success?: true
    error?: true
    retryCount?: true
    duration?: true
    createdAt?: true
  }

  export type FormWebhookLogCountAggregateInputType = {
    id?: true
    webhookId?: true
    eventType?: true
    payload?: true
    statusCode?: true
    response?: true
    success?: true
    error?: true
    retryCount?: true
    duration?: true
    createdAt?: true
    _all?: true
  }

  export type FormWebhookLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormWebhookLog to aggregate.
     */
    where?: FormWebhookLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormWebhookLogs to fetch.
     */
    orderBy?: FormWebhookLogOrderByWithRelationInput | FormWebhookLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FormWebhookLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormWebhookLogs 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` FormWebhookLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned FormWebhookLogs
    **/
    _count?: true | FormWebhookLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: FormWebhookLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: FormWebhookLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FormWebhookLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FormWebhookLogMaxAggregateInputType
  }

  export type GetFormWebhookLogAggregateType<T extends FormWebhookLogAggregateArgs> = {
        [P in keyof T & keyof AggregateFormWebhookLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFormWebhookLog[P]>
      : GetScalarType<T[P], AggregateFormWebhookLog[P]>
  }




  export type FormWebhookLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FormWebhookLogWhereInput
    orderBy?: FormWebhookLogOrderByWithAggregationInput | FormWebhookLogOrderByWithAggregationInput[]
    by: FormWebhookLogScalarFieldEnum[] | FormWebhookLogScalarFieldEnum
    having?: FormWebhookLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FormWebhookLogCountAggregateInputType | true
    _avg?: FormWebhookLogAvgAggregateInputType
    _sum?: FormWebhookLogSumAggregateInputType
    _min?: FormWebhookLogMinAggregateInputType
    _max?: FormWebhookLogMaxAggregateInputType
  }

  export type FormWebhookLogGroupByOutputType = {
    id: string
    webhookId: string
    eventType: string
    payload: JsonValue
    statusCode: number | null
    response: string | null
    success: boolean
    error: string | null
    retryCount: number
    duration: number | null
    createdAt: Date
    _count: FormWebhookLogCountAggregateOutputType | null
    _avg: FormWebhookLogAvgAggregateOutputType | null
    _sum: FormWebhookLogSumAggregateOutputType | null
    _min: FormWebhookLogMinAggregateOutputType | null
    _max: FormWebhookLogMaxAggregateOutputType | null
  }

  type GetFormWebhookLogGroupByPayload<T extends FormWebhookLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FormWebhookLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FormWebhookLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FormWebhookLogGroupByOutputType[P]>
            : GetScalarType<T[P], FormWebhookLogGroupByOutputType[P]>
        }
      >
    >


  export type FormWebhookLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    webhookId?: boolean
    eventType?: boolean
    payload?: boolean
    statusCode?: boolean
    response?: boolean
    success?: boolean
    error?: boolean
    retryCount?: boolean
    duration?: boolean
    createdAt?: boolean
    webhook?: boolean | FormWebhookDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formWebhookLog"]>

  export type FormWebhookLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    webhookId?: boolean
    eventType?: boolean
    payload?: boolean
    statusCode?: boolean
    response?: boolean
    success?: boolean
    error?: boolean
    retryCount?: boolean
    duration?: boolean
    createdAt?: boolean
    webhook?: boolean | FormWebhookDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formWebhookLog"]>

  export type FormWebhookLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    webhookId?: boolean
    eventType?: boolean
    payload?: boolean
    statusCode?: boolean
    response?: boolean
    success?: boolean
    error?: boolean
    retryCount?: boolean
    duration?: boolean
    createdAt?: boolean
    webhook?: boolean | FormWebhookDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["formWebhookLog"]>

  export type FormWebhookLogSelectScalar = {
    id?: boolean
    webhookId?: boolean
    eventType?: boolean
    payload?: boolean
    statusCode?: boolean
    response?: boolean
    success?: boolean
    error?: boolean
    retryCount?: boolean
    duration?: boolean
    createdAt?: boolean
  }

  export type FormWebhookLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "webhookId" | "eventType" | "payload" | "statusCode" | "response" | "success" | "error" | "retryCount" | "duration" | "createdAt", ExtArgs["result"]["formWebhookLog"]>
  export type FormWebhookLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    webhook?: boolean | FormWebhookDefaultArgs<ExtArgs>
  }
  export type FormWebhookLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    webhook?: boolean | FormWebhookDefaultArgs<ExtArgs>
  }
  export type FormWebhookLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    webhook?: boolean | FormWebhookDefaultArgs<ExtArgs>
  }

  export type $FormWebhookLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "FormWebhookLog"
    objects: {
      webhook: Prisma.$FormWebhookPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      webhookId: string
      eventType: string
      payload: Prisma.JsonValue
      statusCode: number | null
      response: string | null
      success: boolean
      error: string | null
      retryCount: number
      duration: number | null
      createdAt: Date
    }, ExtArgs["result"]["formWebhookLog"]>
    composites: {}
  }

  type FormWebhookLogGetPayload<S extends boolean | null | undefined | FormWebhookLogDefaultArgs> = $Result.GetResult<Prisma.$FormWebhookLogPayload, S>

  type FormWebhookLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FormWebhookLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FormWebhookLogCountAggregateInputType | true
    }

  export interface FormWebhookLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['FormWebhookLog'], meta: { name: 'FormWebhookLog' } }
    /**
     * Find zero or one FormWebhookLog that matches the filter.
     * @param {FormWebhookLogFindUniqueArgs} args - Arguments to find a FormWebhookLog
     * @example
     * // Get one FormWebhookLog
     * const formWebhookLog = await prisma.formWebhookLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FormWebhookLogFindUniqueArgs>(args: SelectSubset<T, FormWebhookLogFindUniqueArgs<ExtArgs>>): Prisma__FormWebhookLogClient<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one FormWebhookLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FormWebhookLogFindUniqueOrThrowArgs} args - Arguments to find a FormWebhookLog
     * @example
     * // Get one FormWebhookLog
     * const formWebhookLog = await prisma.formWebhookLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FormWebhookLogFindUniqueOrThrowArgs>(args: SelectSubset<T, FormWebhookLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FormWebhookLogClient<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormWebhookLog 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 {FormWebhookLogFindFirstArgs} args - Arguments to find a FormWebhookLog
     * @example
     * // Get one FormWebhookLog
     * const formWebhookLog = await prisma.formWebhookLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FormWebhookLogFindFirstArgs>(args?: SelectSubset<T, FormWebhookLogFindFirstArgs<ExtArgs>>): Prisma__FormWebhookLogClient<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FormWebhookLog 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 {FormWebhookLogFindFirstOrThrowArgs} args - Arguments to find a FormWebhookLog
     * @example
     * // Get one FormWebhookLog
     * const formWebhookLog = await prisma.formWebhookLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FormWebhookLogFindFirstOrThrowArgs>(args?: SelectSubset<T, FormWebhookLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__FormWebhookLogClient<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more FormWebhookLogs 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 {FormWebhookLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all FormWebhookLogs
     * const formWebhookLogs = await prisma.formWebhookLog.findMany()
     * 
     * // Get first 10 FormWebhookLogs
     * const formWebhookLogs = await prisma.formWebhookLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const formWebhookLogWithIdOnly = await prisma.formWebhookLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FormWebhookLogFindManyArgs>(args?: SelectSubset<T, FormWebhookLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a FormWebhookLog.
     * @param {FormWebhookLogCreateArgs} args - Arguments to create a FormWebhookLog.
     * @example
     * // Create one FormWebhookLog
     * const FormWebhookLog = await prisma.formWebhookLog.create({
     *   data: {
     *     // ... data to create a FormWebhookLog
     *   }
     * })
     * 
     */
    create<T extends FormWebhookLogCreateArgs>(args: SelectSubset<T, FormWebhookLogCreateArgs<ExtArgs>>): Prisma__FormWebhookLogClient<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many FormWebhookLogs.
     * @param {FormWebhookLogCreateManyArgs} args - Arguments to create many FormWebhookLogs.
     * @example
     * // Create many FormWebhookLogs
     * const formWebhookLog = await prisma.formWebhookLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FormWebhookLogCreateManyArgs>(args?: SelectSubset<T, FormWebhookLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many FormWebhookLogs and returns the data saved in the database.
     * @param {FormWebhookLogCreateManyAndReturnArgs} args - Arguments to create many FormWebhookLogs.
     * @example
     * // Create many FormWebhookLogs
     * const formWebhookLog = await prisma.formWebhookLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many FormWebhookLogs and only return the `id`
     * const formWebhookLogWithIdOnly = await prisma.formWebhookLog.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 FormWebhookLogCreateManyAndReturnArgs>(args?: SelectSubset<T, FormWebhookLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a FormWebhookLog.
     * @param {FormWebhookLogDeleteArgs} args - Arguments to delete one FormWebhookLog.
     * @example
     * // Delete one FormWebhookLog
     * const FormWebhookLog = await prisma.formWebhookLog.delete({
     *   where: {
     *     // ... filter to delete one FormWebhookLog
     *   }
     * })
     * 
     */
    delete<T extends FormWebhookLogDeleteArgs>(args: SelectSubset<T, FormWebhookLogDeleteArgs<ExtArgs>>): Prisma__FormWebhookLogClient<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one FormWebhookLog.
     * @param {FormWebhookLogUpdateArgs} args - Arguments to update one FormWebhookLog.
     * @example
     * // Update one FormWebhookLog
     * const formWebhookLog = await prisma.formWebhookLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FormWebhookLogUpdateArgs>(args: SelectSubset<T, FormWebhookLogUpdateArgs<ExtArgs>>): Prisma__FormWebhookLogClient<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more FormWebhookLogs.
     * @param {FormWebhookLogDeleteManyArgs} args - Arguments to filter FormWebhookLogs to delete.
     * @example
     * // Delete a few FormWebhookLogs
     * const { count } = await prisma.formWebhookLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FormWebhookLogDeleteManyArgs>(args?: SelectSubset<T, FormWebhookLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormWebhookLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormWebhookLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many FormWebhookLogs
     * const formWebhookLog = await prisma.formWebhookLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FormWebhookLogUpdateManyArgs>(args: SelectSubset<T, FormWebhookLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FormWebhookLogs and returns the data updated in the database.
     * @param {FormWebhookLogUpdateManyAndReturnArgs} args - Arguments to update many FormWebhookLogs.
     * @example
     * // Update many FormWebhookLogs
     * const formWebhookLog = await prisma.formWebhookLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more FormWebhookLogs and only return the `id`
     * const formWebhookLogWithIdOnly = await prisma.formWebhookLog.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 FormWebhookLogUpdateManyAndReturnArgs>(args: SelectSubset<T, FormWebhookLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one FormWebhookLog.
     * @param {FormWebhookLogUpsertArgs} args - Arguments to update or create a FormWebhookLog.
     * @example
     * // Update or create a FormWebhookLog
     * const formWebhookLog = await prisma.formWebhookLog.upsert({
     *   create: {
     *     // ... data to create a FormWebhookLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the FormWebhookLog we want to update
     *   }
     * })
     */
    upsert<T extends FormWebhookLogUpsertArgs>(args: SelectSubset<T, FormWebhookLogUpsertArgs<ExtArgs>>): Prisma__FormWebhookLogClient<$Result.GetResult<Prisma.$FormWebhookLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of FormWebhookLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormWebhookLogCountArgs} args - Arguments to filter FormWebhookLogs to count.
     * @example
     * // Count the number of FormWebhookLogs
     * const count = await prisma.formWebhookLog.count({
     *   where: {
     *     // ... the filter for the FormWebhookLogs we want to count
     *   }
     * })
    **/
    count<T extends FormWebhookLogCountArgs>(
      args?: Subset<T, FormWebhookLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FormWebhookLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a FormWebhookLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormWebhookLogAggregateArgs} 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 FormWebhookLogAggregateArgs>(args: Subset<T, FormWebhookLogAggregateArgs>): Prisma.PrismaPromise<GetFormWebhookLogAggregateType<T>>

    /**
     * Group by FormWebhookLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FormWebhookLogGroupByArgs} 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 FormWebhookLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FormWebhookLogGroupByArgs['orderBy'] }
        : { orderBy?: FormWebhookLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FormWebhookLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFormWebhookLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the FormWebhookLog model
   */
  readonly fields: FormWebhookLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for FormWebhookLog.
   * 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__FormWebhookLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    webhook<T extends FormWebhookDefaultArgs<ExtArgs> = {}>(args?: Subset<T, FormWebhookDefaultArgs<ExtArgs>>): Prisma__FormWebhookClient<$Result.GetResult<Prisma.$FormWebhookPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the FormWebhookLog model
   */
  interface FormWebhookLogFieldRefs {
    readonly id: FieldRef<"FormWebhookLog", 'String'>
    readonly webhookId: FieldRef<"FormWebhookLog", 'String'>
    readonly eventType: FieldRef<"FormWebhookLog", 'String'>
    readonly payload: FieldRef<"FormWebhookLog", 'Json'>
    readonly statusCode: FieldRef<"FormWebhookLog", 'Int'>
    readonly response: FieldRef<"FormWebhookLog", 'String'>
    readonly success: FieldRef<"FormWebhookLog", 'Boolean'>
    readonly error: FieldRef<"FormWebhookLog", 'String'>
    readonly retryCount: FieldRef<"FormWebhookLog", 'Int'>
    readonly duration: FieldRef<"FormWebhookLog", 'Int'>
    readonly createdAt: FieldRef<"FormWebhookLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * FormWebhookLog findUnique
   */
  export type FormWebhookLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhookLog to fetch.
     */
    where: FormWebhookLogWhereUniqueInput
  }

  /**
   * FormWebhookLog findUniqueOrThrow
   */
  export type FormWebhookLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhookLog to fetch.
     */
    where: FormWebhookLogWhereUniqueInput
  }

  /**
   * FormWebhookLog findFirst
   */
  export type FormWebhookLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhookLog to fetch.
     */
    where?: FormWebhookLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormWebhookLogs to fetch.
     */
    orderBy?: FormWebhookLogOrderByWithRelationInput | FormWebhookLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormWebhookLogs.
     */
    cursor?: FormWebhookLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormWebhookLogs 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` FormWebhookLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormWebhookLogs.
     */
    distinct?: FormWebhookLogScalarFieldEnum | FormWebhookLogScalarFieldEnum[]
  }

  /**
   * FormWebhookLog findFirstOrThrow
   */
  export type FormWebhookLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhookLog to fetch.
     */
    where?: FormWebhookLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormWebhookLogs to fetch.
     */
    orderBy?: FormWebhookLogOrderByWithRelationInput | FormWebhookLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FormWebhookLogs.
     */
    cursor?: FormWebhookLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormWebhookLogs 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` FormWebhookLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FormWebhookLogs.
     */
    distinct?: FormWebhookLogScalarFieldEnum | FormWebhookLogScalarFieldEnum[]
  }

  /**
   * FormWebhookLog findMany
   */
  export type FormWebhookLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * Filter, which FormWebhookLogs to fetch.
     */
    where?: FormWebhookLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FormWebhookLogs to fetch.
     */
    orderBy?: FormWebhookLogOrderByWithRelationInput | FormWebhookLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing FormWebhookLogs.
     */
    cursor?: FormWebhookLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FormWebhookLogs 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` FormWebhookLogs.
     */
    skip?: number
    distinct?: FormWebhookLogScalarFieldEnum | FormWebhookLogScalarFieldEnum[]
  }

  /**
   * FormWebhookLog create
   */
  export type FormWebhookLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * The data needed to create a FormWebhookLog.
     */
    data: XOR<FormWebhookLogCreateInput, FormWebhookLogUncheckedCreateInput>
  }

  /**
   * FormWebhookLog createMany
   */
  export type FormWebhookLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many FormWebhookLogs.
     */
    data: FormWebhookLogCreateManyInput | FormWebhookLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FormWebhookLog createManyAndReturn
   */
  export type FormWebhookLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * The data used to create many FormWebhookLogs.
     */
    data: FormWebhookLogCreateManyInput | FormWebhookLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormWebhookLog update
   */
  export type FormWebhookLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * The data needed to update a FormWebhookLog.
     */
    data: XOR<FormWebhookLogUpdateInput, FormWebhookLogUncheckedUpdateInput>
    /**
     * Choose, which FormWebhookLog to update.
     */
    where: FormWebhookLogWhereUniqueInput
  }

  /**
   * FormWebhookLog updateMany
   */
  export type FormWebhookLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update FormWebhookLogs.
     */
    data: XOR<FormWebhookLogUpdateManyMutationInput, FormWebhookLogUncheckedUpdateManyInput>
    /**
     * Filter which FormWebhookLogs to update
     */
    where?: FormWebhookLogWhereInput
    /**
     * Limit how many FormWebhookLogs to update.
     */
    limit?: number
  }

  /**
   * FormWebhookLog updateManyAndReturn
   */
  export type FormWebhookLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * The data used to update FormWebhookLogs.
     */
    data: XOR<FormWebhookLogUpdateManyMutationInput, FormWebhookLogUncheckedUpdateManyInput>
    /**
     * Filter which FormWebhookLogs to update
     */
    where?: FormWebhookLogWhereInput
    /**
     * Limit how many FormWebhookLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * FormWebhookLog upsert
   */
  export type FormWebhookLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * The filter to search for the FormWebhookLog to update in case it exists.
     */
    where: FormWebhookLogWhereUniqueInput
    /**
     * In case the FormWebhookLog found by the `where` argument doesn't exist, create a new FormWebhookLog with this data.
     */
    create: XOR<FormWebhookLogCreateInput, FormWebhookLogUncheckedCreateInput>
    /**
     * In case the FormWebhookLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FormWebhookLogUpdateInput, FormWebhookLogUncheckedUpdateInput>
  }

  /**
   * FormWebhookLog delete
   */
  export type FormWebhookLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
    /**
     * Filter which FormWebhookLog to delete.
     */
    where: FormWebhookLogWhereUniqueInput
  }

  /**
   * FormWebhookLog deleteMany
   */
  export type FormWebhookLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FormWebhookLogs to delete
     */
    where?: FormWebhookLogWhereInput
    /**
     * Limit how many FormWebhookLogs to delete.
     */
    limit?: number
  }

  /**
   * FormWebhookLog without action
   */
  export type FormWebhookLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormWebhookLog
     */
    select?: FormWebhookLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormWebhookLog
     */
    omit?: FormWebhookLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormWebhookLogInclude<ExtArgs> | null
  }


  /**
   * Model User
   */

  export type AggregateUser = {
    _count: UserCountAggregateOutputType | null
    _min: UserMinAggregateOutputType | null
    _max: UserMaxAggregateOutputType | null
  }

  export type UserMinAggregateOutputType = {
    id: string | null
    username: string | null
    email: string | null
    passwordHash: string | null
    displayName: string | null
    avatar: string | null
    phone: string | null
    status: $Enums.UserStatus | null
    source: $Enums.UserSource | null
    ldapDn: string | null
    employeeId: string | null
    ldapSyncedAt: Date | null
    externalId: string | null
    externalSource: string | null
    adpAoid: string | null
    adpLinkedAt: Date | null
    tenantId: string | null
    defaultRegion: string | null
    workCity: string | null
    hiredAt: Date | null
    terminatedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type UserMaxAggregateOutputType = {
    id: string | null
    username: string | null
    email: string | null
    passwordHash: string | null
    displayName: string | null
    avatar: string | null
    phone: string | null
    status: $Enums.UserStatus | null
    source: $Enums.UserSource | null
    ldapDn: string | null
    employeeId: string | null
    ldapSyncedAt: Date | null
    externalId: string | null
    externalSource: string | null
    adpAoid: string | null
    adpLinkedAt: Date | null
    tenantId: string | null
    defaultRegion: string | null
    workCity: string | null
    hiredAt: Date | null
    terminatedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type UserCountAggregateOutputType = {
    id: number
    username: number
    email: number
    passwordHash: number
    displayName: number
    avatar: number
    phone: number
    status: number
    source: number
    ldapDn: number
    employeeId: number
    ldapSyncedAt: number
    externalId: number
    externalSource: number
    adpAoid: number
    adpLinkedAt: number
    tenantId: number
    defaultRegion: number
    workCity: number
    hiredAt: number
    terminatedAt: number
    metadata: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type UserMinAggregateInputType = {
    id?: true
    username?: true
    email?: true
    passwordHash?: true
    displayName?: true
    avatar?: true
    phone?: true
    status?: true
    source?: true
    ldapDn?: true
    employeeId?: true
    ldapSyncedAt?: true
    externalId?: true
    externalSource?: true
    adpAoid?: true
    adpLinkedAt?: true
    tenantId?: true
    defaultRegion?: true
    workCity?: true
    hiredAt?: true
    terminatedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type UserMaxAggregateInputType = {
    id?: true
    username?: true
    email?: true
    passwordHash?: true
    displayName?: true
    avatar?: true
    phone?: true
    status?: true
    source?: true
    ldapDn?: true
    employeeId?: true
    ldapSyncedAt?: true
    externalId?: true
    externalSource?: true
    adpAoid?: true
    adpLinkedAt?: true
    tenantId?: true
    defaultRegion?: true
    workCity?: true
    hiredAt?: true
    terminatedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type UserCountAggregateInputType = {
    id?: true
    username?: true
    email?: true
    passwordHash?: true
    displayName?: true
    avatar?: true
    phone?: true
    status?: true
    source?: true
    ldapDn?: true
    employeeId?: true
    ldapSyncedAt?: true
    externalId?: true
    externalSource?: true
    adpAoid?: true
    adpLinkedAt?: true
    tenantId?: true
    defaultRegion?: true
    workCity?: true
    hiredAt?: true
    terminatedAt?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type UserAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which User to aggregate.
     */
    where?: UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Users to fetch.
     */
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Users from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Users
    **/
    _count?: true | UserCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: UserMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: UserMaxAggregateInputType
  }

  export type GetUserAggregateType<T extends UserAggregateArgs> = {
        [P in keyof T & keyof AggregateUser]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateUser[P]>
      : GetScalarType<T[P], AggregateUser[P]>
  }




  export type UserGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserWhereInput
    orderBy?: UserOrderByWithAggregationInput | UserOrderByWithAggregationInput[]
    by: UserScalarFieldEnum[] | UserScalarFieldEnum
    having?: UserScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: UserCountAggregateInputType | true
    _min?: UserMinAggregateInputType
    _max?: UserMaxAggregateInputType
  }

  export type UserGroupByOutputType = {
    id: string
    username: string
    email: string
    passwordHash: string | null
    displayName: string
    avatar: string | null
    phone: string | null
    status: $Enums.UserStatus
    source: $Enums.UserSource
    ldapDn: string | null
    employeeId: string | null
    ldapSyncedAt: Date | null
    externalId: string | null
    externalSource: string | null
    adpAoid: string | null
    adpLinkedAt: Date | null
    tenantId: string | null
    defaultRegion: string
    workCity: string | null
    hiredAt: Date | null
    terminatedAt: Date | null
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: UserCountAggregateOutputType | null
    _min: UserMinAggregateOutputType | null
    _max: UserMaxAggregateOutputType | null
  }

  type GetUserGroupByPayload<T extends UserGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<UserGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof UserGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], UserGroupByOutputType[P]>
            : GetScalarType<T[P], UserGroupByOutputType[P]>
        }
      >
    >


  export type UserSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    username?: boolean
    email?: boolean
    passwordHash?: boolean
    displayName?: boolean
    avatar?: boolean
    phone?: boolean
    status?: boolean
    source?: boolean
    ldapDn?: boolean
    employeeId?: boolean
    ldapSyncedAt?: boolean
    externalId?: boolean
    externalSource?: boolean
    adpAoid?: boolean
    adpLinkedAt?: boolean
    tenantId?: boolean
    defaultRegion?: boolean
    workCity?: boolean
    hiredAt?: boolean
    terminatedAt?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    initiatedProcesses?: boolean | User$initiatedProcessesArgs<ExtArgs>
    approvalActionLogs?: boolean | User$approvalActionLogsArgs<ExtArgs>
    approvalActionTargets?: boolean | User$approvalActionTargetsArgs<ExtArgs>
    approvalAdminExports?: boolean | User$approvalAdminExportsArgs<ExtArgs>
    createdContracts?: boolean | User$createdContractsArgs<ExtArgs>
    createdExpenses?: boolean | User$createdExpensesArgs<ExtArgs>
    createdPurchases?: boolean | User$createdPurchasesArgs<ExtArgs>
    auditLogs?: boolean | User$auditLogsArgs<ExtArgs>
    createdAutomationTasks?: boolean | User$createdAutomationTasksArgs<ExtArgs>
    createdFormDefinitions?: boolean | User$createdFormDefinitionsArgs<ExtArgs>
    updatedFormDefinitions?: boolean | User$updatedFormDefinitionsArgs<ExtArgs>
    createdFormInstances?: boolean | User$createdFormInstancesArgs<ExtArgs>
    submittedFormInstances?: boolean | User$submittedFormInstancesArgs<ExtArgs>
    updatedFormInstances?: boolean | User$updatedFormInstancesArgs<ExtArgs>
    createdFormTemplates?: boolean | User$createdFormTemplatesArgs<ExtArgs>
    updatedFormTemplates?: boolean | User$updatedFormTemplatesArgs<ExtArgs>
    createdFormVersions?: boolean | User$createdFormVersionsArgs<ExtArgs>
    reviewedFormVersions?: boolean | User$reviewedFormVersionsArgs<ExtArgs>
    roles?: boolean | User$rolesArgs<ExtArgs>
    workflowRoles?: boolean | User$workflowRolesArgs<ExtArgs>
    departmentMemberships?: boolean | User$departmentMembershipsArgs<ExtArgs>
    managedUsers?: boolean | User$managedUsersArgs<ExtArgs>
    notificationLogs?: boolean | User$notificationLogsArgs<ExtArgs>
    notifications?: boolean | User$notificationsArgs<ExtArgs>
    delegationSettings?: boolean | User$delegationSettingsArgs<ExtArgs>
    delegatedToMe?: boolean | User$delegatedToMeArgs<ExtArgs>
    knowledgeArticles?: boolean | User$knowledgeArticlesArgs<ExtArgs>
    aiQALogs?: boolean | User$aiQALogsArgs<ExtArgs>
    documentViews?: boolean | User$documentViewsArgs<ExtArgs>
    documentLikes?: boolean | User$documentLikesArgs<ExtArgs>
    documentComments?: boolean | User$documentCommentsArgs<ExtArgs>
    mentionedIn?: boolean | User$mentionedInArgs<ExtArgs>
    strategicObjectiveAssignments?: boolean | User$strategicObjectiveAssignmentsArgs<ExtArgs>
    feedbacks?: boolean | User$feedbacksArgs<ExtArgs>
    assignedFeedbacks?: boolean | User$assignedFeedbacksArgs<ExtArgs>
    devItemsOwned?: boolean | User$devItemsOwnedArgs<ExtArgs>
    devItemsReported?: boolean | User$devItemsReportedArgs<ExtArgs>
    devItemsReviewed?: boolean | User$devItemsReviewedArgs<ExtArgs>
    releaseNotes?: boolean | User$releaseNotesArgs<ExtArgs>
    siteCheckpointsCreated?: boolean | User$siteCheckpointsCreatedArgs<ExtArgs>
    siteAttendanceEvents?: boolean | User$siteAttendanceEventsArgs<ExtArgs>
    siteDailySummaries?: boolean | User$siteDailySummariesArgs<ExtArgs>
    sharedCheckinPartnersCreated?: boolean | User$sharedCheckinPartnersCreatedArgs<ExtArgs>
    sharedCheckinPartnersUpdated?: boolean | User$sharedCheckinPartnersUpdatedArgs<ExtArgs>
    meetingAttendances?: boolean | User$meetingAttendancesArgs<ExtArgs>
    meetingRequiredAttendees?: boolean | User$meetingRequiredAttendeesArgs<ExtArgs>
    meetingTemplatesCreated?: boolean | User$meetingTemplatesCreatedArgs<ExtArgs>
    meetingTemplateAttendees?: boolean | User$meetingTemplateAttendeesArgs<ExtArgs>
    meetingAttendanceLeaveLogs?: boolean | User$meetingAttendanceLeaveLogsArgs<ExtArgs>
    meetingAttendanceAuditLogs?: boolean | User$meetingAttendanceAuditLogsArgs<ExtArgs>
    meetingsCreated?: boolean | User$meetingsCreatedArgs<ExtArgs>
    meetingSeriesCreated?: boolean | User$meetingSeriesCreatedArgs<ExtArgs>
    meetingSeriesAttendeePreferences?: boolean | User$meetingSeriesAttendeePreferencesArgs<ExtArgs>
    meetingSeriesAttendeeExceptions?: boolean | User$meetingSeriesAttendeeExceptionsArgs<ExtArgs>
    agendaSectionsCreated?: boolean | User$agendaSectionsCreatedArgs<ExtArgs>
    agendaItemsCreated?: boolean | User$agendaItemsCreatedArgs<ExtArgs>
    agendaItemsPresented?: boolean | User$agendaItemsPresentedArgs<ExtArgs>
    uploadTasksAssigned?: boolean | User$uploadTasksAssignedArgs<ExtArgs>
    uploadTasksAssignedBy?: boolean | User$uploadTasksAssignedByArgs<ExtArgs>
    uploadTasksCreated?: boolean | User$uploadTasksCreatedArgs<ExtArgs>
    agendaAttachmentsUploaded?: boolean | User$agendaAttachmentsUploadedArgs<ExtArgs>
    agendaAttachmentsCreated?: boolean | User$agendaAttachmentsCreatedArgs<ExtArgs>
    meetingAttachmentsUploaded?: boolean | User$meetingAttachmentsUploadedArgs<ExtArgs>
    meetingAttachmentsCreated?: boolean | User$meetingAttachmentsCreatedArgs<ExtArgs>
    aiToolGrantsDirect?: boolean | User$aiToolGrantsDirectArgs<ExtArgs>
    adpPtoSchedules?: boolean | User$adpPtoSchedulesArgs<ExtArgs>
    internalAppSlugBinding?: boolean | User$internalAppSlugBindingArgs<ExtArgs>
    internalAppsCreated?: boolean | User$internalAppsCreatedArgs<ExtArgs>
    internalAppsForceDisabled?: boolean | User$internalAppsForceDisabledArgs<ExtArgs>
    internalAppDeploymentsTriggered?: boolean | User$internalAppDeploymentsTriggeredArgs<ExtArgs>
    internalAppEnvVarsManaged?: boolean | User$internalAppEnvVarsManagedArgs<ExtArgs>
    internalAppTokens?: boolean | User$internalAppTokensArgs<ExtArgs>
    internalAppEvents?: boolean | User$internalAppEventsArgs<ExtArgs>
    aiUsageTokens?: boolean | User$aiUsageTokensArgs<ExtArgs>
    aiUsageTokensRevoked?: boolean | User$aiUsageTokensRevokedArgs<ExtArgs>
    aiUsageDevices?: boolean | User$aiUsageDevicesArgs<ExtArgs>
    aiUsageDevicesBlocked?: boolean | User$aiUsageDevicesBlockedArgs<ExtArgs>
    aiUsageEvents?: boolean | User$aiUsageEventsArgs<ExtArgs>
    aiUsageRollups?: boolean | User$aiUsageRollupsArgs<ExtArgs>
    _count?: boolean | UserCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["user"]>

  export type UserSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    username?: boolean
    email?: boolean
    passwordHash?: boolean
    displayName?: boolean
    avatar?: boolean
    phone?: boolean
    status?: boolean
    source?: boolean
    ldapDn?: boolean
    employeeId?: boolean
    ldapSyncedAt?: boolean
    externalId?: boolean
    externalSource?: boolean
    adpAoid?: boolean
    adpLinkedAt?: boolean
    tenantId?: boolean
    defaultRegion?: boolean
    workCity?: boolean
    hiredAt?: boolean
    terminatedAt?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["user"]>

  export type UserSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    username?: boolean
    email?: boolean
    passwordHash?: boolean
    displayName?: boolean
    avatar?: boolean
    phone?: boolean
    status?: boolean
    source?: boolean
    ldapDn?: boolean
    employeeId?: boolean
    ldapSyncedAt?: boolean
    externalId?: boolean
    externalSource?: boolean
    adpAoid?: boolean
    adpLinkedAt?: boolean
    tenantId?: boolean
    defaultRegion?: boolean
    workCity?: boolean
    hiredAt?: boolean
    terminatedAt?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["user"]>

  export type UserSelectScalar = {
    id?: boolean
    username?: boolean
    email?: boolean
    passwordHash?: boolean
    displayName?: boolean
    avatar?: boolean
    phone?: boolean
    status?: boolean
    source?: boolean
    ldapDn?: boolean
    employeeId?: boolean
    ldapSyncedAt?: boolean
    externalId?: boolean
    externalSource?: boolean
    adpAoid?: boolean
    adpLinkedAt?: boolean
    tenantId?: boolean
    defaultRegion?: boolean
    workCity?: boolean
    hiredAt?: boolean
    terminatedAt?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type UserOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "username" | "email" | "passwordHash" | "displayName" | "avatar" | "phone" | "status" | "source" | "ldapDn" | "employeeId" | "ldapSyncedAt" | "externalId" | "externalSource" | "adpAoid" | "adpLinkedAt" | "tenantId" | "defaultRegion" | "workCity" | "hiredAt" | "terminatedAt" | "metadata" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["user"]>
  export type UserInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    initiatedProcesses?: boolean | User$initiatedProcessesArgs<ExtArgs>
    approvalActionLogs?: boolean | User$approvalActionLogsArgs<ExtArgs>
    approvalActionTargets?: boolean | User$approvalActionTargetsArgs<ExtArgs>
    approvalAdminExports?: boolean | User$approvalAdminExportsArgs<ExtArgs>
    createdContracts?: boolean | User$createdContractsArgs<ExtArgs>
    createdExpenses?: boolean | User$createdExpensesArgs<ExtArgs>
    createdPurchases?: boolean | User$createdPurchasesArgs<ExtArgs>
    auditLogs?: boolean | User$auditLogsArgs<ExtArgs>
    createdAutomationTasks?: boolean | User$createdAutomationTasksArgs<ExtArgs>
    createdFormDefinitions?: boolean | User$createdFormDefinitionsArgs<ExtArgs>
    updatedFormDefinitions?: boolean | User$updatedFormDefinitionsArgs<ExtArgs>
    createdFormInstances?: boolean | User$createdFormInstancesArgs<ExtArgs>
    submittedFormInstances?: boolean | User$submittedFormInstancesArgs<ExtArgs>
    updatedFormInstances?: boolean | User$updatedFormInstancesArgs<ExtArgs>
    createdFormTemplates?: boolean | User$createdFormTemplatesArgs<ExtArgs>
    updatedFormTemplates?: boolean | User$updatedFormTemplatesArgs<ExtArgs>
    createdFormVersions?: boolean | User$createdFormVersionsArgs<ExtArgs>
    reviewedFormVersions?: boolean | User$reviewedFormVersionsArgs<ExtArgs>
    roles?: boolean | User$rolesArgs<ExtArgs>
    workflowRoles?: boolean | User$workflowRolesArgs<ExtArgs>
    departmentMemberships?: boolean | User$departmentMembershipsArgs<ExtArgs>
    managedUsers?: boolean | User$managedUsersArgs<ExtArgs>
    notificationLogs?: boolean | User$notificationLogsArgs<ExtArgs>
    notifications?: boolean | User$notificationsArgs<ExtArgs>
    delegationSettings?: boolean | User$delegationSettingsArgs<ExtArgs>
    delegatedToMe?: boolean | User$delegatedToMeArgs<ExtArgs>
    knowledgeArticles?: boolean | User$knowledgeArticlesArgs<ExtArgs>
    aiQALogs?: boolean | User$aiQALogsArgs<ExtArgs>
    documentViews?: boolean | User$documentViewsArgs<ExtArgs>
    documentLikes?: boolean | User$documentLikesArgs<ExtArgs>
    documentComments?: boolean | User$documentCommentsArgs<ExtArgs>
    mentionedIn?: boolean | User$mentionedInArgs<ExtArgs>
    strategicObjectiveAssignments?: boolean | User$strategicObjectiveAssignmentsArgs<ExtArgs>
    feedbacks?: boolean | User$feedbacksArgs<ExtArgs>
    assignedFeedbacks?: boolean | User$assignedFeedbacksArgs<ExtArgs>
    devItemsOwned?: boolean | User$devItemsOwnedArgs<ExtArgs>
    devItemsReported?: boolean | User$devItemsReportedArgs<ExtArgs>
    devItemsReviewed?: boolean | User$devItemsReviewedArgs<ExtArgs>
    releaseNotes?: boolean | User$releaseNotesArgs<ExtArgs>
    siteCheckpointsCreated?: boolean | User$siteCheckpointsCreatedArgs<ExtArgs>
    siteAttendanceEvents?: boolean | User$siteAttendanceEventsArgs<ExtArgs>
    siteDailySummaries?: boolean | User$siteDailySummariesArgs<ExtArgs>
    sharedCheckinPartnersCreated?: boolean | User$sharedCheckinPartnersCreatedArgs<ExtArgs>
    sharedCheckinPartnersUpdated?: boolean | User$sharedCheckinPartnersUpdatedArgs<ExtArgs>
    meetingAttendances?: boolean | User$meetingAttendancesArgs<ExtArgs>
    meetingRequiredAttendees?: boolean | User$meetingRequiredAttendeesArgs<ExtArgs>
    meetingTemplatesCreated?: boolean | User$meetingTemplatesCreatedArgs<ExtArgs>
    meetingTemplateAttendees?: boolean | User$meetingTemplateAttendeesArgs<ExtArgs>
    meetingAttendanceLeaveLogs?: boolean | User$meetingAttendanceLeaveLogsArgs<ExtArgs>
    meetingAttendanceAuditLogs?: boolean | User$meetingAttendanceAuditLogsArgs<ExtArgs>
    meetingsCreated?: boolean | User$meetingsCreatedArgs<ExtArgs>
    meetingSeriesCreated?: boolean | User$meetingSeriesCreatedArgs<ExtArgs>
    meetingSeriesAttendeePreferences?: boolean | User$meetingSeriesAttendeePreferencesArgs<ExtArgs>
    meetingSeriesAttendeeExceptions?: boolean | User$meetingSeriesAttendeeExceptionsArgs<ExtArgs>
    agendaSectionsCreated?: boolean | User$agendaSectionsCreatedArgs<ExtArgs>
    agendaItemsCreated?: boolean | User$agendaItemsCreatedArgs<ExtArgs>
    agendaItemsPresented?: boolean | User$agendaItemsPresentedArgs<ExtArgs>
    uploadTasksAssigned?: boolean | User$uploadTasksAssignedArgs<ExtArgs>
    uploadTasksAssignedBy?: boolean | User$uploadTasksAssignedByArgs<ExtArgs>
    uploadTasksCreated?: boolean | User$uploadTasksCreatedArgs<ExtArgs>
    agendaAttachmentsUploaded?: boolean | User$agendaAttachmentsUploadedArgs<ExtArgs>
    agendaAttachmentsCreated?: boolean | User$agendaAttachmentsCreatedArgs<ExtArgs>
    meetingAttachmentsUploaded?: boolean | User$meetingAttachmentsUploadedArgs<ExtArgs>
    meetingAttachmentsCreated?: boolean | User$meetingAttachmentsCreatedArgs<ExtArgs>
    aiToolGrantsDirect?: boolean | User$aiToolGrantsDirectArgs<ExtArgs>
    adpPtoSchedules?: boolean | User$adpPtoSchedulesArgs<ExtArgs>
    internalAppSlugBinding?: boolean | User$internalAppSlugBindingArgs<ExtArgs>
    internalAppsCreated?: boolean | User$internalAppsCreatedArgs<ExtArgs>
    internalAppsForceDisabled?: boolean | User$internalAppsForceDisabledArgs<ExtArgs>
    internalAppDeploymentsTriggered?: boolean | User$internalAppDeploymentsTriggeredArgs<ExtArgs>
    internalAppEnvVarsManaged?: boolean | User$internalAppEnvVarsManagedArgs<ExtArgs>
    internalAppTokens?: boolean | User$internalAppTokensArgs<ExtArgs>
    internalAppEvents?: boolean | User$internalAppEventsArgs<ExtArgs>
    aiUsageTokens?: boolean | User$aiUsageTokensArgs<ExtArgs>
    aiUsageTokensRevoked?: boolean | User$aiUsageTokensRevokedArgs<ExtArgs>
    aiUsageDevices?: boolean | User$aiUsageDevicesArgs<ExtArgs>
    aiUsageDevicesBlocked?: boolean | User$aiUsageDevicesBlockedArgs<ExtArgs>
    aiUsageEvents?: boolean | User$aiUsageEventsArgs<ExtArgs>
    aiUsageRollups?: boolean | User$aiUsageRollupsArgs<ExtArgs>
    _count?: boolean | UserCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type UserIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type UserIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $UserPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "User"
    objects: {
      initiatedProcesses: Prisma.$ApprovalInstancePayload<ExtArgs>[]
      approvalActionLogs: Prisma.$ApprovalTaskLogPayload<ExtArgs>[]
      approvalActionTargets: Prisma.$ApprovalTaskLogPayload<ExtArgs>[]
      approvalAdminExports: Prisma.$ApprovalAdminExportPayload<ExtArgs>[]
      createdContracts: Prisma.$ContractRequestPayload<ExtArgs>[]
      createdExpenses: Prisma.$ExpenseRequestPayload<ExtArgs>[]
      createdPurchases: Prisma.$PurchaseRequestPayload<ExtArgs>[]
      auditLogs: Prisma.$AuditLogPayload<ExtArgs>[]
      createdAutomationTasks: Prisma.$AutomationTaskPayload<ExtArgs>[]
      createdFormDefinitions: Prisma.$FormDefinitionPayload<ExtArgs>[]
      updatedFormDefinitions: Prisma.$FormDefinitionPayload<ExtArgs>[]
      createdFormInstances: Prisma.$FormInstancePayload<ExtArgs>[]
      submittedFormInstances: Prisma.$FormInstancePayload<ExtArgs>[]
      updatedFormInstances: Prisma.$FormInstancePayload<ExtArgs>[]
      createdFormTemplates: Prisma.$FormTemplatePayload<ExtArgs>[]
      updatedFormTemplates: Prisma.$FormTemplatePayload<ExtArgs>[]
      createdFormVersions: Prisma.$FormVersionPayload<ExtArgs>[]
      reviewedFormVersions: Prisma.$FormVersionPayload<ExtArgs>[]
      roles: Prisma.$UserRolePayload<ExtArgs>[]
      workflowRoles: Prisma.$WorkflowRoleUserPayload<ExtArgs>[]
      departmentMemberships: Prisma.$UserDepartmentPayload<ExtArgs>[]
      managedUsers: Prisma.$UserDepartmentPayload<ExtArgs>[]
      notificationLogs: Prisma.$NotificationLogPayload<ExtArgs>[]
      notifications: Prisma.$NotificationMessagePayload<ExtArgs>[]
      delegationSettings: Prisma.$UserDelegationSettingPayload<ExtArgs>[]
      delegatedToMe: Prisma.$UserDelegationSettingPayload<ExtArgs>[]
      knowledgeArticles: Prisma.$KnowledgeArticlePayload<ExtArgs>[]
      aiQALogs: Prisma.$AIQALogPayload<ExtArgs>[]
      documentViews: Prisma.$DocumentViewPayload<ExtArgs>[]
      documentLikes: Prisma.$DocumentLikePayload<ExtArgs>[]
      documentComments: Prisma.$DocumentCommentPayload<ExtArgs>[]
      mentionedIn: Prisma.$UserMentionPayload<ExtArgs>[]
      strategicObjectiveAssignments: Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>[]
      feedbacks: Prisma.$FeedbackPayload<ExtArgs>[]
      assignedFeedbacks: Prisma.$FeedbackPayload<ExtArgs>[]
      devItemsOwned: Prisma.$DevItemPayload<ExtArgs>[]
      devItemsReported: Prisma.$DevItemPayload<ExtArgs>[]
      devItemsReviewed: Prisma.$DevItemPayload<ExtArgs>[]
      releaseNotes: Prisma.$ReleaseNotePayload<ExtArgs>[]
      siteCheckpointsCreated: Prisma.$SiteCheckpointPayload<ExtArgs>[]
      siteAttendanceEvents: Prisma.$SiteAttendanceEventPayload<ExtArgs>[]
      siteDailySummaries: Prisma.$SiteDailySummaryPayload<ExtArgs>[]
      sharedCheckinPartnersCreated: Prisma.$SharedCheckinPartnerPayload<ExtArgs>[]
      sharedCheckinPartnersUpdated: Prisma.$SharedCheckinPartnerPayload<ExtArgs>[]
      meetingAttendances: Prisma.$MeetingAttendancePayload<ExtArgs>[]
      meetingRequiredAttendees: Prisma.$MeetingRequiredAttendeePayload<ExtArgs>[]
      meetingTemplatesCreated: Prisma.$MeetingTemplatePayload<ExtArgs>[]
      meetingTemplateAttendees: Prisma.$MeetingTemplateAttendeePayload<ExtArgs>[]
      meetingAttendanceLeaveLogs: Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>[]
      meetingAttendanceAuditLogs: Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>[]
      meetingsCreated: Prisma.$MeetingPayload<ExtArgs>[]
      meetingSeriesCreated: Prisma.$MeetingSeriesPayload<ExtArgs>[]
      meetingSeriesAttendeePreferences: Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>[]
      meetingSeriesAttendeeExceptions: Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>[]
      agendaSectionsCreated: Prisma.$MeetingAgendaSectionPayload<ExtArgs>[]
      agendaItemsCreated: Prisma.$MeetingAgendaItemPayload<ExtArgs>[]
      agendaItemsPresented: Prisma.$MeetingAgendaItemPayload<ExtArgs>[]
      uploadTasksAssigned: Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>[]
      uploadTasksAssignedBy: Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>[]
      uploadTasksCreated: Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>[]
      agendaAttachmentsUploaded: Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>[]
      agendaAttachmentsCreated: Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>[]
      meetingAttachmentsUploaded: Prisma.$MeetingAttachmentPayload<ExtArgs>[]
      meetingAttachmentsCreated: Prisma.$MeetingAttachmentPayload<ExtArgs>[]
      aiToolGrantsDirect: Prisma.$AIToolGrantUserPayload<ExtArgs>[]
      adpPtoSchedules: Prisma.$AdpPtoSchedulePayload<ExtArgs>[]
      internalAppSlugBinding: Prisma.$EmployeeSlugBindingPayload<ExtArgs> | null
      internalAppsCreated: Prisma.$InternalAppPayload<ExtArgs>[]
      internalAppsForceDisabled: Prisma.$InternalAppPayload<ExtArgs>[]
      internalAppDeploymentsTriggered: Prisma.$InternalAppDeploymentPayload<ExtArgs>[]
      internalAppEnvVarsManaged: Prisma.$InternalAppEnvVarPayload<ExtArgs>[]
      internalAppTokens: Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>[]
      internalAppEvents: Prisma.$InternalAppEventPayload<ExtArgs>[]
      aiUsageTokens: Prisma.$AiUsageTokenPayload<ExtArgs>[]
      aiUsageTokensRevoked: Prisma.$AiUsageTokenPayload<ExtArgs>[]
      aiUsageDevices: Prisma.$AiUsageDevicePayload<ExtArgs>[]
      aiUsageDevicesBlocked: Prisma.$AiUsageDevicePayload<ExtArgs>[]
      aiUsageEvents: Prisma.$AiUsageEventPayload<ExtArgs>[]
      aiUsageRollups: Prisma.$AiUsageDailyRollupPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      username: string
      email: string
      passwordHash: string | null
      displayName: string
      avatar: string | null
      phone: string | null
      status: $Enums.UserStatus
      source: $Enums.UserSource
      ldapDn: string | null
      employeeId: string | null
      ldapSyncedAt: Date | null
      externalId: string | null
      externalSource: string | null
      adpAoid: string | null
      adpLinkedAt: Date | null
      tenantId: string | null
      defaultRegion: string
      workCity: string | null
      hiredAt: Date | null
      terminatedAt: Date | null
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["user"]>
    composites: {}
  }

  type UserGetPayload<S extends boolean | null | undefined | UserDefaultArgs> = $Result.GetResult<Prisma.$UserPayload, S>

  type UserCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<UserFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: UserCountAggregateInputType | true
    }

  export interface UserDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['User'], meta: { name: 'User' } }
    /**
     * Find zero or one User that matches the filter.
     * @param {UserFindUniqueArgs} args - Arguments to find a User
     * @example
     * // Get one User
     * const user = await prisma.user.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends UserFindUniqueArgs>(args: SelectSubset<T, UserFindUniqueArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one User that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {UserFindUniqueOrThrowArgs} args - Arguments to find a User
     * @example
     * // Get one User
     * const user = await prisma.user.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends UserFindUniqueOrThrowArgs>(args: SelectSubset<T, UserFindUniqueOrThrowArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first User that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserFindFirstArgs} args - Arguments to find a User
     * @example
     * // Get one User
     * const user = await prisma.user.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends UserFindFirstArgs>(args?: SelectSubset<T, UserFindFirstArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first User that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserFindFirstOrThrowArgs} args - Arguments to find a User
     * @example
     * // Get one User
     * const user = await prisma.user.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends UserFindFirstOrThrowArgs>(args?: SelectSubset<T, UserFindFirstOrThrowArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Users that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Users
     * const users = await prisma.user.findMany()
     * 
     * // Get first 10 Users
     * const users = await prisma.user.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const userWithIdOnly = await prisma.user.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends UserFindManyArgs>(args?: SelectSubset<T, UserFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a User.
     * @param {UserCreateArgs} args - Arguments to create a User.
     * @example
     * // Create one User
     * const User = await prisma.user.create({
     *   data: {
     *     // ... data to create a User
     *   }
     * })
     * 
     */
    create<T extends UserCreateArgs>(args: SelectSubset<T, UserCreateArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Users.
     * @param {UserCreateManyArgs} args - Arguments to create many Users.
     * @example
     * // Create many Users
     * const user = await prisma.user.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends UserCreateManyArgs>(args?: SelectSubset<T, UserCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Users and returns the data saved in the database.
     * @param {UserCreateManyAndReturnArgs} args - Arguments to create many Users.
     * @example
     * // Create many Users
     * const user = await prisma.user.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Users and only return the `id`
     * const userWithIdOnly = await prisma.user.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends UserCreateManyAndReturnArgs>(args?: SelectSubset<T, UserCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a User.
     * @param {UserDeleteArgs} args - Arguments to delete one User.
     * @example
     * // Delete one User
     * const User = await prisma.user.delete({
     *   where: {
     *     // ... filter to delete one User
     *   }
     * })
     * 
     */
    delete<T extends UserDeleteArgs>(args: SelectSubset<T, UserDeleteArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one User.
     * @param {UserUpdateArgs} args - Arguments to update one User.
     * @example
     * // Update one User
     * const user = await prisma.user.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends UserUpdateArgs>(args: SelectSubset<T, UserUpdateArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Users.
     * @param {UserDeleteManyArgs} args - Arguments to filter Users to delete.
     * @example
     * // Delete a few Users
     * const { count } = await prisma.user.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends UserDeleteManyArgs>(args?: SelectSubset<T, UserDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Users.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Users
     * const user = await prisma.user.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends UserUpdateManyArgs>(args: SelectSubset<T, UserUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Users and returns the data updated in the database.
     * @param {UserUpdateManyAndReturnArgs} args - Arguments to update many Users.
     * @example
     * // Update many Users
     * const user = await prisma.user.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Users and only return the `id`
     * const userWithIdOnly = await prisma.user.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends UserUpdateManyAndReturnArgs>(args: SelectSubset<T, UserUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one User.
     * @param {UserUpsertArgs} args - Arguments to update or create a User.
     * @example
     * // Update or create a User
     * const user = await prisma.user.upsert({
     *   create: {
     *     // ... data to create a User
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the User we want to update
     *   }
     * })
     */
    upsert<T extends UserUpsertArgs>(args: SelectSubset<T, UserUpsertArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Users.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserCountArgs} args - Arguments to filter Users to count.
     * @example
     * // Count the number of Users
     * const count = await prisma.user.count({
     *   where: {
     *     // ... the filter for the Users we want to count
     *   }
     * })
    **/
    count<T extends UserCountArgs>(
      args?: Subset<T, UserCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], UserCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a User.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends UserAggregateArgs>(args: Subset<T, UserAggregateArgs>): Prisma.PrismaPromise<GetUserAggregateType<T>>

    /**
     * Group by User.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends UserGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: UserGroupByArgs['orderBy'] }
        : { orderBy?: UserGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, UserGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetUserGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the User model
   */
  readonly fields: UserFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for User.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__UserClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    initiatedProcesses<T extends User$initiatedProcessesArgs<ExtArgs> = {}>(args?: Subset<T, User$initiatedProcessesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    approvalActionLogs<T extends User$approvalActionLogsArgs<ExtArgs> = {}>(args?: Subset<T, User$approvalActionLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    approvalActionTargets<T extends User$approvalActionTargetsArgs<ExtArgs> = {}>(args?: Subset<T, User$approvalActionTargetsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalTaskLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    approvalAdminExports<T extends User$approvalAdminExportsArgs<ExtArgs> = {}>(args?: Subset<T, User$approvalAdminExportsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ApprovalAdminExportPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdContracts<T extends User$createdContractsArgs<ExtArgs> = {}>(args?: Subset<T, User$createdContractsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ContractRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdExpenses<T extends User$createdExpensesArgs<ExtArgs> = {}>(args?: Subset<T, User$createdExpensesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ExpenseRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdPurchases<T extends User$createdPurchasesArgs<ExtArgs> = {}>(args?: Subset<T, User$createdPurchasesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    auditLogs<T extends User$auditLogsArgs<ExtArgs> = {}>(args?: Subset<T, User$auditLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdAutomationTasks<T extends User$createdAutomationTasksArgs<ExtArgs> = {}>(args?: Subset<T, User$createdAutomationTasksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AutomationTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdFormDefinitions<T extends User$createdFormDefinitionsArgs<ExtArgs> = {}>(args?: Subset<T, User$createdFormDefinitionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    updatedFormDefinitions<T extends User$updatedFormDefinitionsArgs<ExtArgs> = {}>(args?: Subset<T, User$updatedFormDefinitionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormDefinitionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdFormInstances<T extends User$createdFormInstancesArgs<ExtArgs> = {}>(args?: Subset<T, User$createdFormInstancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    submittedFormInstances<T extends User$submittedFormInstancesArgs<ExtArgs> = {}>(args?: Subset<T, User$submittedFormInstancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    updatedFormInstances<T extends User$updatedFormInstancesArgs<ExtArgs> = {}>(args?: Subset<T, User$updatedFormInstancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormInstancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdFormTemplates<T extends User$createdFormTemplatesArgs<ExtArgs> = {}>(args?: Subset<T, User$createdFormTemplatesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    updatedFormTemplates<T extends User$updatedFormTemplatesArgs<ExtArgs> = {}>(args?: Subset<T, User$updatedFormTemplatesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormTemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    createdFormVersions<T extends User$createdFormVersionsArgs<ExtArgs> = {}>(args?: Subset<T, User$createdFormVersionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    reviewedFormVersions<T extends User$reviewedFormVersionsArgs<ExtArgs> = {}>(args?: Subset<T, User$reviewedFormVersionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FormVersionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    roles<T extends User$rolesArgs<ExtArgs> = {}>(args?: Subset<T, User$rolesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    workflowRoles<T extends User$workflowRolesArgs<ExtArgs> = {}>(args?: Subset<T, User$workflowRolesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    departmentMemberships<T extends User$departmentMembershipsArgs<ExtArgs> = {}>(args?: Subset<T, User$departmentMembershipsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    managedUsers<T extends User$managedUsersArgs<ExtArgs> = {}>(args?: Subset<T, User$managedUsersArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDepartmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    notificationLogs<T extends User$notificationLogsArgs<ExtArgs> = {}>(args?: Subset<T, User$notificationLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    notifications<T extends User$notificationsArgs<ExtArgs> = {}>(args?: Subset<T, User$notificationsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    delegationSettings<T extends User$delegationSettingsArgs<ExtArgs> = {}>(args?: Subset<T, User$delegationSettingsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    delegatedToMe<T extends User$delegatedToMeArgs<ExtArgs> = {}>(args?: Subset<T, User$delegatedToMeArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserDelegationSettingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    knowledgeArticles<T extends User$knowledgeArticlesArgs<ExtArgs> = {}>(args?: Subset<T, User$knowledgeArticlesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiQALogs<T extends User$aiQALogsArgs<ExtArgs> = {}>(args?: Subset<T, User$aiQALogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    documentViews<T extends User$documentViewsArgs<ExtArgs> = {}>(args?: Subset<T, User$documentViewsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    documentLikes<T extends User$documentLikesArgs<ExtArgs> = {}>(args?: Subset<T, User$documentLikesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    documentComments<T extends User$documentCommentsArgs<ExtArgs> = {}>(args?: Subset<T, User$documentCommentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    mentionedIn<T extends User$mentionedInArgs<ExtArgs> = {}>(args?: Subset<T, User$mentionedInArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    strategicObjectiveAssignments<T extends User$strategicObjectiveAssignmentsArgs<ExtArgs> = {}>(args?: Subset<T, User$strategicObjectiveAssignmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    feedbacks<T extends User$feedbacksArgs<ExtArgs> = {}>(args?: Subset<T, User$feedbacksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    assignedFeedbacks<T extends User$assignedFeedbacksArgs<ExtArgs> = {}>(args?: Subset<T, User$assignedFeedbacksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FeedbackPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    devItemsOwned<T extends User$devItemsOwnedArgs<ExtArgs> = {}>(args?: Subset<T, User$devItemsOwnedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    devItemsReported<T extends User$devItemsReportedArgs<ExtArgs> = {}>(args?: Subset<T, User$devItemsReportedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    devItemsReviewed<T extends User$devItemsReviewedArgs<ExtArgs> = {}>(args?: Subset<T, User$devItemsReviewedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DevItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    releaseNotes<T extends User$releaseNotesArgs<ExtArgs> = {}>(args?: Subset<T, User$releaseNotesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ReleaseNotePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    siteCheckpointsCreated<T extends User$siteCheckpointsCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$siteCheckpointsCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    siteAttendanceEvents<T extends User$siteAttendanceEventsArgs<ExtArgs> = {}>(args?: Subset<T, User$siteAttendanceEventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    siteDailySummaries<T extends User$siteDailySummariesArgs<ExtArgs> = {}>(args?: Subset<T, User$siteDailySummariesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    sharedCheckinPartnersCreated<T extends User$sharedCheckinPartnersCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$sharedCheckinPartnersCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    sharedCheckinPartnersUpdated<T extends User$sharedCheckinPartnersUpdatedArgs<ExtArgs> = {}>(args?: Subset<T, User$sharedCheckinPartnersUpdatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAttendances<T extends User$meetingAttendancesArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingAttendancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingRequiredAttendees<T extends User$meetingRequiredAttendeesArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingRequiredAttendeesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingTemplatesCreated<T extends User$meetingTemplatesCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingTemplatesCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingTemplateAttendees<T extends User$meetingTemplateAttendeesArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingTemplateAttendeesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAttendanceLeaveLogs<T extends User$meetingAttendanceLeaveLogsArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingAttendanceLeaveLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAttendanceAuditLogs<T extends User$meetingAttendanceAuditLogsArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingAttendanceAuditLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingsCreated<T extends User$meetingsCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingsCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingSeriesCreated<T extends User$meetingSeriesCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingSeriesCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingSeriesAttendeePreferences<T extends User$meetingSeriesAttendeePreferencesArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingSeriesAttendeePreferencesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingSeriesAttendeeExceptions<T extends User$meetingSeriesAttendeeExceptionsArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingSeriesAttendeeExceptionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    agendaSectionsCreated<T extends User$agendaSectionsCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$agendaSectionsCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    agendaItemsCreated<T extends User$agendaItemsCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$agendaItemsCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    agendaItemsPresented<T extends User$agendaItemsPresentedArgs<ExtArgs> = {}>(args?: Subset<T, User$agendaItemsPresentedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    uploadTasksAssigned<T extends User$uploadTasksAssignedArgs<ExtArgs> = {}>(args?: Subset<T, User$uploadTasksAssignedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    uploadTasksAssignedBy<T extends User$uploadTasksAssignedByArgs<ExtArgs> = {}>(args?: Subset<T, User$uploadTasksAssignedByArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    uploadTasksCreated<T extends User$uploadTasksCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$uploadTasksCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    agendaAttachmentsUploaded<T extends User$agendaAttachmentsUploadedArgs<ExtArgs> = {}>(args?: Subset<T, User$agendaAttachmentsUploadedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    agendaAttachmentsCreated<T extends User$agendaAttachmentsCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$agendaAttachmentsCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAttachmentsUploaded<T extends User$meetingAttachmentsUploadedArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingAttachmentsUploadedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    meetingAttachmentsCreated<T extends User$meetingAttachmentsCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$meetingAttachmentsCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiToolGrantsDirect<T extends User$aiToolGrantsDirectArgs<ExtArgs> = {}>(args?: Subset<T, User$aiToolGrantsDirectArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    adpPtoSchedules<T extends User$adpPtoSchedulesArgs<ExtArgs> = {}>(args?: Subset<T, User$adpPtoSchedulesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AdpPtoSchedulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    internalAppSlugBinding<T extends User$internalAppSlugBindingArgs<ExtArgs> = {}>(args?: Subset<T, User$internalAppSlugBindingArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    internalAppsCreated<T extends User$internalAppsCreatedArgs<ExtArgs> = {}>(args?: Subset<T, User$internalAppsCreatedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    internalAppsForceDisabled<T extends User$internalAppsForceDisabledArgs<ExtArgs> = {}>(args?: Subset<T, User$internalAppsForceDisabledArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    internalAppDeploymentsTriggered<T extends User$internalAppDeploymentsTriggeredArgs<ExtArgs> = {}>(args?: Subset<T, User$internalAppDeploymentsTriggeredArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    internalAppEnvVarsManaged<T extends User$internalAppEnvVarsManagedArgs<ExtArgs> = {}>(args?: Subset<T, User$internalAppEnvVarsManagedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    internalAppTokens<T extends User$internalAppTokensArgs<ExtArgs> = {}>(args?: Subset<T, User$internalAppTokensArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    internalAppEvents<T extends User$internalAppEventsArgs<ExtArgs> = {}>(args?: Subset<T, User$internalAppEventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageTokens<T extends User$aiUsageTokensArgs<ExtArgs> = {}>(args?: Subset<T, User$aiUsageTokensArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageTokensRevoked<T extends User$aiUsageTokensRevokedArgs<ExtArgs> = {}>(args?: Subset<T, User$aiUsageTokensRevokedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageTokenPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageDevices<T extends User$aiUsageDevicesArgs<ExtArgs> = {}>(args?: Subset<T, User$aiUsageDevicesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageDevicesBlocked<T extends User$aiUsageDevicesBlockedArgs<ExtArgs> = {}>(args?: Subset<T, User$aiUsageDevicesBlockedArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDevicePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageEvents<T extends User$aiUsageEventsArgs<ExtArgs> = {}>(args?: Subset<T, User$aiUsageEventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiUsageRollups<T extends User$aiUsageRollupsArgs<ExtArgs> = {}>(args?: Subset<T, User$aiUsageRollupsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AiUsageDailyRollupPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the User model
   */
  interface UserFieldRefs {
    readonly id: FieldRef<"User", 'String'>
    readonly username: FieldRef<"User", 'String'>
    readonly email: FieldRef<"User", 'String'>
    readonly passwordHash: FieldRef<"User", 'String'>
    readonly displayName: FieldRef<"User", 'String'>
    readonly avatar: FieldRef<"User", 'String'>
    readonly phone: FieldRef<"User", 'String'>
    readonly status: FieldRef<"User", 'UserStatus'>
    readonly source: FieldRef<"User", 'UserSource'>
    readonly ldapDn: FieldRef<"User", 'String'>
    readonly employeeId: FieldRef<"User", 'String'>
    readonly ldapSyncedAt: FieldRef<"User", 'DateTime'>
    readonly externalId: FieldRef<"User", 'String'>
    readonly externalSource: FieldRef<"User", 'String'>
    readonly adpAoid: FieldRef<"User", 'String'>
    readonly adpLinkedAt: FieldRef<"User", 'DateTime'>
    readonly tenantId: FieldRef<"User", 'String'>
    readonly defaultRegion: FieldRef<"User", 'String'>
    readonly workCity: FieldRef<"User", 'String'>
    readonly hiredAt: FieldRef<"User", 'DateTime'>
    readonly terminatedAt: FieldRef<"User", 'DateTime'>
    readonly metadata: FieldRef<"User", 'Json'>
    readonly createdAt: FieldRef<"User", 'DateTime'>
    readonly updatedAt: FieldRef<"User", 'DateTime'>
    readonly deletedAt: FieldRef<"User", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * User findUnique
   */
  export type UserFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which User to fetch.
     */
    where: UserWhereUniqueInput
  }

  /**
   * User findUniqueOrThrow
   */
  export type UserFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which User to fetch.
     */
    where: UserWhereUniqueInput
  }

  /**
   * User findFirst
   */
  export type UserFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which User to fetch.
     */
    where?: UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Users to fetch.
     */
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Users.
     */
    cursor?: UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Users from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Users.
     */
    distinct?: UserScalarFieldEnum | UserScalarFieldEnum[]
  }

  /**
   * User findFirstOrThrow
   */
  export type UserFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which User to fetch.
     */
    where?: UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Users to fetch.
     */
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Users.
     */
    cursor?: UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Users from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Users.
     */
    distinct?: UserScalarFieldEnum | UserScalarFieldEnum[]
  }

  /**
   * User findMany
   */
  export type UserFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter, which Users to fetch.
     */
    where?: UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Users to fetch.
     */
    orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Users.
     */
    cursor?: UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Users from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Users.
     */
    skip?: number
    distinct?: UserScalarFieldEnum | UserScalarFieldEnum[]
  }

  /**
   * User create
   */
  export type UserCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * The data needed to create a User.
     */
    data: XOR<UserCreateInput, UserUncheckedCreateInput>
  }

  /**
   * User createMany
   */
  export type UserCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Users.
     */
    data: UserCreateManyInput | UserCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * User createManyAndReturn
   */
  export type UserCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * The data used to create many Users.
     */
    data: UserCreateManyInput | UserCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * User update
   */
  export type UserUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * The data needed to update a User.
     */
    data: XOR<UserUpdateInput, UserUncheckedUpdateInput>
    /**
     * Choose, which User to update.
     */
    where: UserWhereUniqueInput
  }

  /**
   * User updateMany
   */
  export type UserUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Users.
     */
    data: XOR<UserUpdateManyMutationInput, UserUncheckedUpdateManyInput>
    /**
     * Filter which Users to update
     */
    where?: UserWhereInput
    /**
     * Limit how many Users to update.
     */
    limit?: number
  }

  /**
   * User updateManyAndReturn
   */
  export type UserUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * The data used to update Users.
     */
    data: XOR<UserUpdateManyMutationInput, UserUncheckedUpdateManyInput>
    /**
     * Filter which Users to update
     */
    where?: UserWhereInput
    /**
     * Limit how many Users to update.
     */
    limit?: number
  }

  /**
   * User upsert
   */
  export type UserUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * The filter to search for the User to update in case it exists.
     */
    where: UserWhereUniqueInput
    /**
     * In case the User found by the `where` argument doesn't exist, create a new User with this data.
     */
    create: XOR<UserCreateInput, UserUncheckedCreateInput>
    /**
     * In case the User was found with the provided `where` argument, update it with this data.
     */
    update: XOR<UserUpdateInput, UserUncheckedUpdateInput>
  }

  /**
   * User delete
   */
  export type UserDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    /**
     * Filter which User to delete.
     */
    where: UserWhereUniqueInput
  }

  /**
   * User deleteMany
   */
  export type UserDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Users to delete
     */
    where?: UserWhereInput
    /**
     * Limit how many Users to delete.
     */
    limit?: number
  }

  /**
   * User.initiatedProcesses
   */
  export type User$initiatedProcessesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalInstance
     */
    select?: ApprovalInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalInstance
     */
    omit?: ApprovalInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalInstanceInclude<ExtArgs> | null
    where?: ApprovalInstanceWhereInput
    orderBy?: ApprovalInstanceOrderByWithRelationInput | ApprovalInstanceOrderByWithRelationInput[]
    cursor?: ApprovalInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalInstanceScalarFieldEnum | ApprovalInstanceScalarFieldEnum[]
  }

  /**
   * User.approvalActionLogs
   */
  export type User$approvalActionLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    where?: ApprovalTaskLogWhereInput
    orderBy?: ApprovalTaskLogOrderByWithRelationInput | ApprovalTaskLogOrderByWithRelationInput[]
    cursor?: ApprovalTaskLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalTaskLogScalarFieldEnum | ApprovalTaskLogScalarFieldEnum[]
  }

  /**
   * User.approvalActionTargets
   */
  export type User$approvalActionTargetsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalTaskLog
     */
    select?: ApprovalTaskLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalTaskLog
     */
    omit?: ApprovalTaskLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalTaskLogInclude<ExtArgs> | null
    where?: ApprovalTaskLogWhereInput
    orderBy?: ApprovalTaskLogOrderByWithRelationInput | ApprovalTaskLogOrderByWithRelationInput[]
    cursor?: ApprovalTaskLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalTaskLogScalarFieldEnum | ApprovalTaskLogScalarFieldEnum[]
  }

  /**
   * User.approvalAdminExports
   */
  export type User$approvalAdminExportsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ApprovalAdminExport
     */
    select?: ApprovalAdminExportSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ApprovalAdminExport
     */
    omit?: ApprovalAdminExportOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ApprovalAdminExportInclude<ExtArgs> | null
    where?: ApprovalAdminExportWhereInput
    orderBy?: ApprovalAdminExportOrderByWithRelationInput | ApprovalAdminExportOrderByWithRelationInput[]
    cursor?: ApprovalAdminExportWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ApprovalAdminExportScalarFieldEnum | ApprovalAdminExportScalarFieldEnum[]
  }

  /**
   * User.createdContracts
   */
  export type User$createdContractsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ContractRequest
     */
    select?: ContractRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ContractRequest
     */
    omit?: ContractRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ContractRequestInclude<ExtArgs> | null
    where?: ContractRequestWhereInput
    orderBy?: ContractRequestOrderByWithRelationInput | ContractRequestOrderByWithRelationInput[]
    cursor?: ContractRequestWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ContractRequestScalarFieldEnum | ContractRequestScalarFieldEnum[]
  }

  /**
   * User.createdExpenses
   */
  export type User$createdExpensesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ExpenseRequest
     */
    select?: ExpenseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ExpenseRequest
     */
    omit?: ExpenseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ExpenseRequestInclude<ExtArgs> | null
    where?: ExpenseRequestWhereInput
    orderBy?: ExpenseRequestOrderByWithRelationInput | ExpenseRequestOrderByWithRelationInput[]
    cursor?: ExpenseRequestWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ExpenseRequestScalarFieldEnum | ExpenseRequestScalarFieldEnum[]
  }

  /**
   * User.createdPurchases
   */
  export type User$createdPurchasesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseRequest
     */
    select?: PurchaseRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseRequest
     */
    omit?: PurchaseRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseRequestInclude<ExtArgs> | null
    where?: PurchaseRequestWhereInput
    orderBy?: PurchaseRequestOrderByWithRelationInput | PurchaseRequestOrderByWithRelationInput[]
    cursor?: PurchaseRequestWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PurchaseRequestScalarFieldEnum | PurchaseRequestScalarFieldEnum[]
  }

  /**
   * User.auditLogs
   */
  export type User$auditLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditLog
     */
    select?: AuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditLog
     */
    omit?: AuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AuditLogInclude<ExtArgs> | null
    where?: AuditLogWhereInput
    orderBy?: AuditLogOrderByWithRelationInput | AuditLogOrderByWithRelationInput[]
    cursor?: AuditLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AuditLogScalarFieldEnum | AuditLogScalarFieldEnum[]
  }

  /**
   * User.createdAutomationTasks
   */
  export type User$createdAutomationTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AutomationTask
     */
    select?: AutomationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AutomationTask
     */
    omit?: AutomationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AutomationTaskInclude<ExtArgs> | null
    where?: AutomationTaskWhereInput
    orderBy?: AutomationTaskOrderByWithRelationInput | AutomationTaskOrderByWithRelationInput[]
    cursor?: AutomationTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AutomationTaskScalarFieldEnum | AutomationTaskScalarFieldEnum[]
  }

  /**
   * User.createdFormDefinitions
   */
  export type User$createdFormDefinitionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    where?: FormDefinitionWhereInput
    orderBy?: FormDefinitionOrderByWithRelationInput | FormDefinitionOrderByWithRelationInput[]
    cursor?: FormDefinitionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormDefinitionScalarFieldEnum | FormDefinitionScalarFieldEnum[]
  }

  /**
   * User.updatedFormDefinitions
   */
  export type User$updatedFormDefinitionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormDefinition
     */
    select?: FormDefinitionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormDefinition
     */
    omit?: FormDefinitionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormDefinitionInclude<ExtArgs> | null
    where?: FormDefinitionWhereInput
    orderBy?: FormDefinitionOrderByWithRelationInput | FormDefinitionOrderByWithRelationInput[]
    cursor?: FormDefinitionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormDefinitionScalarFieldEnum | FormDefinitionScalarFieldEnum[]
  }

  /**
   * User.createdFormInstances
   */
  export type User$createdFormInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    where?: FormInstanceWhereInput
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    cursor?: FormInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * User.submittedFormInstances
   */
  export type User$submittedFormInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    where?: FormInstanceWhereInput
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    cursor?: FormInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * User.updatedFormInstances
   */
  export type User$updatedFormInstancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormInstance
     */
    select?: FormInstanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormInstance
     */
    omit?: FormInstanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormInstanceInclude<ExtArgs> | null
    where?: FormInstanceWhereInput
    orderBy?: FormInstanceOrderByWithRelationInput | FormInstanceOrderByWithRelationInput[]
    cursor?: FormInstanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormInstanceScalarFieldEnum | FormInstanceScalarFieldEnum[]
  }

  /**
   * User.createdFormTemplates
   */
  export type User$createdFormTemplatesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    where?: FormTemplateWhereInput
    orderBy?: FormTemplateOrderByWithRelationInput | FormTemplateOrderByWithRelationInput[]
    cursor?: FormTemplateWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormTemplateScalarFieldEnum | FormTemplateScalarFieldEnum[]
  }

  /**
   * User.updatedFormTemplates
   */
  export type User$updatedFormTemplatesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormTemplate
     */
    select?: FormTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormTemplate
     */
    omit?: FormTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormTemplateInclude<ExtArgs> | null
    where?: FormTemplateWhereInput
    orderBy?: FormTemplateOrderByWithRelationInput | FormTemplateOrderByWithRelationInput[]
    cursor?: FormTemplateWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormTemplateScalarFieldEnum | FormTemplateScalarFieldEnum[]
  }

  /**
   * User.createdFormVersions
   */
  export type User$createdFormVersionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    where?: FormVersionWhereInput
    orderBy?: FormVersionOrderByWithRelationInput | FormVersionOrderByWithRelationInput[]
    cursor?: FormVersionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormVersionScalarFieldEnum | FormVersionScalarFieldEnum[]
  }

  /**
   * User.reviewedFormVersions
   */
  export type User$reviewedFormVersionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FormVersion
     */
    select?: FormVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FormVersion
     */
    omit?: FormVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FormVersionInclude<ExtArgs> | null
    where?: FormVersionWhereInput
    orderBy?: FormVersionOrderByWithRelationInput | FormVersionOrderByWithRelationInput[]
    cursor?: FormVersionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FormVersionScalarFieldEnum | FormVersionScalarFieldEnum[]
  }

  /**
   * User.roles
   */
  export type User$rolesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    where?: UserRoleWhereInput
    orderBy?: UserRoleOrderByWithRelationInput | UserRoleOrderByWithRelationInput[]
    cursor?: UserRoleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserRoleScalarFieldEnum | UserRoleScalarFieldEnum[]
  }

  /**
   * User.workflowRoles
   */
  export type User$workflowRolesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    where?: WorkflowRoleUserWhereInput
    orderBy?: WorkflowRoleUserOrderByWithRelationInput | WorkflowRoleUserOrderByWithRelationInput[]
    cursor?: WorkflowRoleUserWhereUniqueInput
    take?: number
    skip?: number
    distinct?: WorkflowRoleUserScalarFieldEnum | WorkflowRoleUserScalarFieldEnum[]
  }

  /**
   * User.departmentMemberships
   */
  export type User$departmentMembershipsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    where?: UserDepartmentWhereInput
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    cursor?: UserDepartmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserDepartmentScalarFieldEnum | UserDepartmentScalarFieldEnum[]
  }

  /**
   * User.managedUsers
   */
  export type User$managedUsersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDepartment
     */
    select?: UserDepartmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDepartment
     */
    omit?: UserDepartmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDepartmentInclude<ExtArgs> | null
    where?: UserDepartmentWhereInput
    orderBy?: UserDepartmentOrderByWithRelationInput | UserDepartmentOrderByWithRelationInput[]
    cursor?: UserDepartmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserDepartmentScalarFieldEnum | UserDepartmentScalarFieldEnum[]
  }

  /**
   * User.notificationLogs
   */
  export type User$notificationLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    where?: NotificationLogWhereInput
    orderBy?: NotificationLogOrderByWithRelationInput | NotificationLogOrderByWithRelationInput[]
    cursor?: NotificationLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: NotificationLogScalarFieldEnum | NotificationLogScalarFieldEnum[]
  }

  /**
   * User.notifications
   */
  export type User$notificationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    where?: NotificationMessageWhereInput
    orderBy?: NotificationMessageOrderByWithRelationInput | NotificationMessageOrderByWithRelationInput[]
    cursor?: NotificationMessageWhereUniqueInput
    take?: number
    skip?: number
    distinct?: NotificationMessageScalarFieldEnum | NotificationMessageScalarFieldEnum[]
  }

  /**
   * User.delegationSettings
   */
  export type User$delegationSettingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    where?: UserDelegationSettingWhereInput
    orderBy?: UserDelegationSettingOrderByWithRelationInput | UserDelegationSettingOrderByWithRelationInput[]
    cursor?: UserDelegationSettingWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserDelegationSettingScalarFieldEnum | UserDelegationSettingScalarFieldEnum[]
  }

  /**
   * User.delegatedToMe
   */
  export type User$delegatedToMeArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserDelegationSetting
     */
    select?: UserDelegationSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserDelegationSetting
     */
    omit?: UserDelegationSettingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserDelegationSettingInclude<ExtArgs> | null
    where?: UserDelegationSettingWhereInput
    orderBy?: UserDelegationSettingOrderByWithRelationInput | UserDelegationSettingOrderByWithRelationInput[]
    cursor?: UserDelegationSettingWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserDelegationSettingScalarFieldEnum | UserDelegationSettingScalarFieldEnum[]
  }

  /**
   * User.knowledgeArticles
   */
  export type User$knowledgeArticlesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    where?: KnowledgeArticleWhereInput
    orderBy?: KnowledgeArticleOrderByWithRelationInput | KnowledgeArticleOrderByWithRelationInput[]
    cursor?: KnowledgeArticleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: KnowledgeArticleScalarFieldEnum | KnowledgeArticleScalarFieldEnum[]
  }

  /**
   * User.aiQALogs
   */
  export type User$aiQALogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    where?: AIQALogWhereInput
    orderBy?: AIQALogOrderByWithRelationInput | AIQALogOrderByWithRelationInput[]
    cursor?: AIQALogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AIQALogScalarFieldEnum | AIQALogScalarFieldEnum[]
  }

  /**
   * User.documentViews
   */
  export type User$documentViewsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    where?: DocumentViewWhereInput
    orderBy?: DocumentViewOrderByWithRelationInput | DocumentViewOrderByWithRelationInput[]
    cursor?: DocumentViewWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentViewScalarFieldEnum | DocumentViewScalarFieldEnum[]
  }

  /**
   * User.documentLikes
   */
  export type User$documentLikesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    where?: DocumentLikeWhereInput
    orderBy?: DocumentLikeOrderByWithRelationInput | DocumentLikeOrderByWithRelationInput[]
    cursor?: DocumentLikeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentLikeScalarFieldEnum | DocumentLikeScalarFieldEnum[]
  }

  /**
   * User.documentComments
   */
  export type User$documentCommentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    where?: DocumentCommentWhereInput
    orderBy?: DocumentCommentOrderByWithRelationInput | DocumentCommentOrderByWithRelationInput[]
    cursor?: DocumentCommentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentCommentScalarFieldEnum | DocumentCommentScalarFieldEnum[]
  }

  /**
   * User.mentionedIn
   */
  export type User$mentionedInArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    where?: UserMentionWhereInput
    orderBy?: UserMentionOrderByWithRelationInput | UserMentionOrderByWithRelationInput[]
    cursor?: UserMentionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserMentionScalarFieldEnum | UserMentionScalarFieldEnum[]
  }

  /**
   * User.strategicObjectiveAssignments
   */
  export type User$strategicObjectiveAssignmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    where?: StrategicObjectiveAssignmentWhereInput
    orderBy?: StrategicObjectiveAssignmentOrderByWithRelationInput | StrategicObjectiveAssignmentOrderByWithRelationInput[]
    cursor?: StrategicObjectiveAssignmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: StrategicObjectiveAssignmentScalarFieldEnum | StrategicObjectiveAssignmentScalarFieldEnum[]
  }

  /**
   * User.feedbacks
   */
  export type User$feedbacksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    where?: FeedbackWhereInput
    orderBy?: FeedbackOrderByWithRelationInput | FeedbackOrderByWithRelationInput[]
    cursor?: FeedbackWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FeedbackScalarFieldEnum | FeedbackScalarFieldEnum[]
  }

  /**
   * User.assignedFeedbacks
   */
  export type User$assignedFeedbacksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Feedback
     */
    select?: FeedbackSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Feedback
     */
    omit?: FeedbackOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: FeedbackInclude<ExtArgs> | null
    where?: FeedbackWhereInput
    orderBy?: FeedbackOrderByWithRelationInput | FeedbackOrderByWithRelationInput[]
    cursor?: FeedbackWhereUniqueInput
    take?: number
    skip?: number
    distinct?: FeedbackScalarFieldEnum | FeedbackScalarFieldEnum[]
  }

  /**
   * User.devItemsOwned
   */
  export type User$devItemsOwnedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    where?: DevItemWhereInput
    orderBy?: DevItemOrderByWithRelationInput | DevItemOrderByWithRelationInput[]
    cursor?: DevItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DevItemScalarFieldEnum | DevItemScalarFieldEnum[]
  }

  /**
   * User.devItemsReported
   */
  export type User$devItemsReportedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    where?: DevItemWhereInput
    orderBy?: DevItemOrderByWithRelationInput | DevItemOrderByWithRelationInput[]
    cursor?: DevItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DevItemScalarFieldEnum | DevItemScalarFieldEnum[]
  }

  /**
   * User.devItemsReviewed
   */
  export type User$devItemsReviewedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DevItem
     */
    select?: DevItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DevItem
     */
    omit?: DevItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DevItemInclude<ExtArgs> | null
    where?: DevItemWhereInput
    orderBy?: DevItemOrderByWithRelationInput | DevItemOrderByWithRelationInput[]
    cursor?: DevItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DevItemScalarFieldEnum | DevItemScalarFieldEnum[]
  }

  /**
   * User.releaseNotes
   */
  export type User$releaseNotesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ReleaseNote
     */
    select?: ReleaseNoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ReleaseNote
     */
    omit?: ReleaseNoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ReleaseNoteInclude<ExtArgs> | null
    where?: ReleaseNoteWhereInput
    orderBy?: ReleaseNoteOrderByWithRelationInput | ReleaseNoteOrderByWithRelationInput[]
    cursor?: ReleaseNoteWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ReleaseNoteScalarFieldEnum | ReleaseNoteScalarFieldEnum[]
  }

  /**
   * User.siteCheckpointsCreated
   */
  export type User$siteCheckpointsCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    where?: SiteCheckpointWhereInput
    orderBy?: SiteCheckpointOrderByWithRelationInput | SiteCheckpointOrderByWithRelationInput[]
    cursor?: SiteCheckpointWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SiteCheckpointScalarFieldEnum | SiteCheckpointScalarFieldEnum[]
  }

  /**
   * User.siteAttendanceEvents
   */
  export type User$siteAttendanceEventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    where?: SiteAttendanceEventWhereInput
    orderBy?: SiteAttendanceEventOrderByWithRelationInput | SiteAttendanceEventOrderByWithRelationInput[]
    cursor?: SiteAttendanceEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SiteAttendanceEventScalarFieldEnum | SiteAttendanceEventScalarFieldEnum[]
  }

  /**
   * User.siteDailySummaries
   */
  export type User$siteDailySummariesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    where?: SiteDailySummaryWhereInput
    orderBy?: SiteDailySummaryOrderByWithRelationInput | SiteDailySummaryOrderByWithRelationInput[]
    cursor?: SiteDailySummaryWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SiteDailySummaryScalarFieldEnum | SiteDailySummaryScalarFieldEnum[]
  }

  /**
   * User.sharedCheckinPartnersCreated
   */
  export type User$sharedCheckinPartnersCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    where?: SharedCheckinPartnerWhereInput
    orderBy?: SharedCheckinPartnerOrderByWithRelationInput | SharedCheckinPartnerOrderByWithRelationInput[]
    cursor?: SharedCheckinPartnerWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SharedCheckinPartnerScalarFieldEnum | SharedCheckinPartnerScalarFieldEnum[]
  }

  /**
   * User.sharedCheckinPartnersUpdated
   */
  export type User$sharedCheckinPartnersUpdatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    where?: SharedCheckinPartnerWhereInput
    orderBy?: SharedCheckinPartnerOrderByWithRelationInput | SharedCheckinPartnerOrderByWithRelationInput[]
    cursor?: SharedCheckinPartnerWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SharedCheckinPartnerScalarFieldEnum | SharedCheckinPartnerScalarFieldEnum[]
  }

  /**
   * User.meetingAttendances
   */
  export type User$meetingAttendancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    where?: MeetingAttendanceWhereInput
    orderBy?: MeetingAttendanceOrderByWithRelationInput | MeetingAttendanceOrderByWithRelationInput[]
    cursor?: MeetingAttendanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttendanceScalarFieldEnum | MeetingAttendanceScalarFieldEnum[]
  }

  /**
   * User.meetingRequiredAttendees
   */
  export type User$meetingRequiredAttendeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    where?: MeetingRequiredAttendeeWhereInput
    orderBy?: MeetingRequiredAttendeeOrderByWithRelationInput | MeetingRequiredAttendeeOrderByWithRelationInput[]
    cursor?: MeetingRequiredAttendeeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingRequiredAttendeeScalarFieldEnum | MeetingRequiredAttendeeScalarFieldEnum[]
  }

  /**
   * User.meetingTemplatesCreated
   */
  export type User$meetingTemplatesCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    where?: MeetingTemplateWhereInput
    orderBy?: MeetingTemplateOrderByWithRelationInput | MeetingTemplateOrderByWithRelationInput[]
    cursor?: MeetingTemplateWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingTemplateScalarFieldEnum | MeetingTemplateScalarFieldEnum[]
  }

  /**
   * User.meetingTemplateAttendees
   */
  export type User$meetingTemplateAttendeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    where?: MeetingTemplateAttendeeWhereInput
    orderBy?: MeetingTemplateAttendeeOrderByWithRelationInput | MeetingTemplateAttendeeOrderByWithRelationInput[]
    cursor?: MeetingTemplateAttendeeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingTemplateAttendeeScalarFieldEnum | MeetingTemplateAttendeeScalarFieldEnum[]
  }

  /**
   * User.meetingAttendanceLeaveLogs
   */
  export type User$meetingAttendanceLeaveLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    where?: MeetingAttendanceLeaveRecordWhereInput
    orderBy?: MeetingAttendanceLeaveRecordOrderByWithRelationInput | MeetingAttendanceLeaveRecordOrderByWithRelationInput[]
    cursor?: MeetingAttendanceLeaveRecordWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttendanceLeaveRecordScalarFieldEnum | MeetingAttendanceLeaveRecordScalarFieldEnum[]
  }

  /**
   * User.meetingAttendanceAuditLogs
   */
  export type User$meetingAttendanceAuditLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    where?: MeetingAttendanceAuditLogWhereInput
    orderBy?: MeetingAttendanceAuditLogOrderByWithRelationInput | MeetingAttendanceAuditLogOrderByWithRelationInput[]
    cursor?: MeetingAttendanceAuditLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttendanceAuditLogScalarFieldEnum | MeetingAttendanceAuditLogScalarFieldEnum[]
  }

  /**
   * User.meetingsCreated
   */
  export type User$meetingsCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    where?: MeetingWhereInput
    orderBy?: MeetingOrderByWithRelationInput | MeetingOrderByWithRelationInput[]
    cursor?: MeetingWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingScalarFieldEnum | MeetingScalarFieldEnum[]
  }

  /**
   * User.meetingSeriesCreated
   */
  export type User$meetingSeriesCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    where?: MeetingSeriesWhereInput
    orderBy?: MeetingSeriesOrderByWithRelationInput | MeetingSeriesOrderByWithRelationInput[]
    cursor?: MeetingSeriesWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingSeriesScalarFieldEnum | MeetingSeriesScalarFieldEnum[]
  }

  /**
   * User.meetingSeriesAttendeePreferences
   */
  export type User$meetingSeriesAttendeePreferencesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    where?: MeetingSeriesAttendeePreferenceWhereInput
    orderBy?: MeetingSeriesAttendeePreferenceOrderByWithRelationInput | MeetingSeriesAttendeePreferenceOrderByWithRelationInput[]
    cursor?: MeetingSeriesAttendeePreferenceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingSeriesAttendeePreferenceScalarFieldEnum | MeetingSeriesAttendeePreferenceScalarFieldEnum[]
  }

  /**
   * User.meetingSeriesAttendeeExceptions
   */
  export type User$meetingSeriesAttendeeExceptionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    where?: MeetingSeriesAttendeeExceptionWhereInput
    orderBy?: MeetingSeriesAttendeeExceptionOrderByWithRelationInput | MeetingSeriesAttendeeExceptionOrderByWithRelationInput[]
    cursor?: MeetingSeriesAttendeeExceptionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingSeriesAttendeeExceptionScalarFieldEnum | MeetingSeriesAttendeeExceptionScalarFieldEnum[]
  }

  /**
   * User.agendaSectionsCreated
   */
  export type User$agendaSectionsCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    where?: MeetingAgendaSectionWhereInput
    orderBy?: MeetingAgendaSectionOrderByWithRelationInput | MeetingAgendaSectionOrderByWithRelationInput[]
    cursor?: MeetingAgendaSectionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaSectionScalarFieldEnum | MeetingAgendaSectionScalarFieldEnum[]
  }

  /**
   * User.agendaItemsCreated
   */
  export type User$agendaItemsCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    where?: MeetingAgendaItemWhereInput
    orderBy?: MeetingAgendaItemOrderByWithRelationInput | MeetingAgendaItemOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemScalarFieldEnum | MeetingAgendaItemScalarFieldEnum[]
  }

  /**
   * User.agendaItemsPresented
   */
  export type User$agendaItemsPresentedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    where?: MeetingAgendaItemWhereInput
    orderBy?: MeetingAgendaItemOrderByWithRelationInput | MeetingAgendaItemOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemScalarFieldEnum | MeetingAgendaItemScalarFieldEnum[]
  }

  /**
   * User.uploadTasksAssigned
   */
  export type User$uploadTasksAssignedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    where?: MeetingAgendaItemUploadTaskWhereInput
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemUploadTaskScalarFieldEnum | MeetingAgendaItemUploadTaskScalarFieldEnum[]
  }

  /**
   * User.uploadTasksAssignedBy
   */
  export type User$uploadTasksAssignedByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    where?: MeetingAgendaItemUploadTaskWhereInput
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemUploadTaskScalarFieldEnum | MeetingAgendaItemUploadTaskScalarFieldEnum[]
  }

  /**
   * User.uploadTasksCreated
   */
  export type User$uploadTasksCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    where?: MeetingAgendaItemUploadTaskWhereInput
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemUploadTaskScalarFieldEnum | MeetingAgendaItemUploadTaskScalarFieldEnum[]
  }

  /**
   * User.agendaAttachmentsUploaded
   */
  export type User$agendaAttachmentsUploadedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    where?: MeetingAgendaItemAttachmentWhereInput
    orderBy?: MeetingAgendaItemAttachmentOrderByWithRelationInput | MeetingAgendaItemAttachmentOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemAttachmentScalarFieldEnum | MeetingAgendaItemAttachmentScalarFieldEnum[]
  }

  /**
   * User.agendaAttachmentsCreated
   */
  export type User$agendaAttachmentsCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    where?: MeetingAgendaItemAttachmentWhereInput
    orderBy?: MeetingAgendaItemAttachmentOrderByWithRelationInput | MeetingAgendaItemAttachmentOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemAttachmentScalarFieldEnum | MeetingAgendaItemAttachmentScalarFieldEnum[]
  }

  /**
   * User.meetingAttachmentsUploaded
   */
  export type User$meetingAttachmentsUploadedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    where?: MeetingAttachmentWhereInput
    orderBy?: MeetingAttachmentOrderByWithRelationInput | MeetingAttachmentOrderByWithRelationInput[]
    cursor?: MeetingAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttachmentScalarFieldEnum | MeetingAttachmentScalarFieldEnum[]
  }

  /**
   * User.meetingAttachmentsCreated
   */
  export type User$meetingAttachmentsCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    where?: MeetingAttachmentWhereInput
    orderBy?: MeetingAttachmentOrderByWithRelationInput | MeetingAttachmentOrderByWithRelationInput[]
    cursor?: MeetingAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttachmentScalarFieldEnum | MeetingAttachmentScalarFieldEnum[]
  }

  /**
   * User.aiToolGrantsDirect
   */
  export type User$aiToolGrantsDirectArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    where?: AIToolGrantUserWhereInput
    orderBy?: AIToolGrantUserOrderByWithRelationInput | AIToolGrantUserOrderByWithRelationInput[]
    cursor?: AIToolGrantUserWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AIToolGrantUserScalarFieldEnum | AIToolGrantUserScalarFieldEnum[]
  }

  /**
   * User.adpPtoSchedules
   */
  export type User$adpPtoSchedulesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AdpPtoSchedule
     */
    select?: AdpPtoScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AdpPtoSchedule
     */
    omit?: AdpPtoScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AdpPtoScheduleInclude<ExtArgs> | null
    where?: AdpPtoScheduleWhereInput
    orderBy?: AdpPtoScheduleOrderByWithRelationInput | AdpPtoScheduleOrderByWithRelationInput[]
    cursor?: AdpPtoScheduleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AdpPtoScheduleScalarFieldEnum | AdpPtoScheduleScalarFieldEnum[]
  }

  /**
   * User.internalAppSlugBinding
   */
  export type User$internalAppSlugBindingArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    where?: EmployeeSlugBindingWhereInput
  }

  /**
   * User.internalAppsCreated
   */
  export type User$internalAppsCreatedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    where?: InternalAppWhereInput
    orderBy?: InternalAppOrderByWithRelationInput | InternalAppOrderByWithRelationInput[]
    cursor?: InternalAppWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppScalarFieldEnum | InternalAppScalarFieldEnum[]
  }

  /**
   * User.internalAppsForceDisabled
   */
  export type User$internalAppsForceDisabledArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    where?: InternalAppWhereInput
    orderBy?: InternalAppOrderByWithRelationInput | InternalAppOrderByWithRelationInput[]
    cursor?: InternalAppWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppScalarFieldEnum | InternalAppScalarFieldEnum[]
  }

  /**
   * User.internalAppDeploymentsTriggered
   */
  export type User$internalAppDeploymentsTriggeredArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    where?: InternalAppDeploymentWhereInput
    orderBy?: InternalAppDeploymentOrderByWithRelationInput | InternalAppDeploymentOrderByWithRelationInput[]
    cursor?: InternalAppDeploymentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppDeploymentScalarFieldEnum | InternalAppDeploymentScalarFieldEnum[]
  }

  /**
   * User.internalAppEnvVarsManaged
   */
  export type User$internalAppEnvVarsManagedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    where?: InternalAppEnvVarWhereInput
    orderBy?: InternalAppEnvVarOrderByWithRelationInput | InternalAppEnvVarOrderByWithRelationInput[]
    cursor?: InternalAppEnvVarWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppEnvVarScalarFieldEnum | InternalAppEnvVarScalarFieldEnum[]
  }

  /**
   * User.internalAppTokens
   */
  export type User$internalAppTokensArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    where?: InternalAppEmployeeTokenWhereInput
    orderBy?: InternalAppEmployeeTokenOrderByWithRelationInput | InternalAppEmployeeTokenOrderByWithRelationInput[]
    cursor?: InternalAppEmployeeTokenWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppEmployeeTokenScalarFieldEnum | InternalAppEmployeeTokenScalarFieldEnum[]
  }

  /**
   * User.internalAppEvents
   */
  export type User$internalAppEventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    where?: InternalAppEventWhereInput
    orderBy?: InternalAppEventOrderByWithRelationInput | InternalAppEventOrderByWithRelationInput[]
    cursor?: InternalAppEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppEventScalarFieldEnum | InternalAppEventScalarFieldEnum[]
  }

  /**
   * User.aiUsageTokens
   */
  export type User$aiUsageTokensArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    where?: AiUsageTokenWhereInput
    orderBy?: AiUsageTokenOrderByWithRelationInput | AiUsageTokenOrderByWithRelationInput[]
    cursor?: AiUsageTokenWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageTokenScalarFieldEnum | AiUsageTokenScalarFieldEnum[]
  }

  /**
   * User.aiUsageTokensRevoked
   */
  export type User$aiUsageTokensRevokedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageToken
     */
    select?: AiUsageTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageToken
     */
    omit?: AiUsageTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageTokenInclude<ExtArgs> | null
    where?: AiUsageTokenWhereInput
    orderBy?: AiUsageTokenOrderByWithRelationInput | AiUsageTokenOrderByWithRelationInput[]
    cursor?: AiUsageTokenWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageTokenScalarFieldEnum | AiUsageTokenScalarFieldEnum[]
  }

  /**
   * User.aiUsageDevices
   */
  export type User$aiUsageDevicesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    where?: AiUsageDeviceWhereInput
    orderBy?: AiUsageDeviceOrderByWithRelationInput | AiUsageDeviceOrderByWithRelationInput[]
    cursor?: AiUsageDeviceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageDeviceScalarFieldEnum | AiUsageDeviceScalarFieldEnum[]
  }

  /**
   * User.aiUsageDevicesBlocked
   */
  export type User$aiUsageDevicesBlockedArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDevice
     */
    select?: AiUsageDeviceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDevice
     */
    omit?: AiUsageDeviceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDeviceInclude<ExtArgs> | null
    where?: AiUsageDeviceWhereInput
    orderBy?: AiUsageDeviceOrderByWithRelationInput | AiUsageDeviceOrderByWithRelationInput[]
    cursor?: AiUsageDeviceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageDeviceScalarFieldEnum | AiUsageDeviceScalarFieldEnum[]
  }

  /**
   * User.aiUsageEvents
   */
  export type User$aiUsageEventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageEvent
     */
    select?: AiUsageEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageEvent
     */
    omit?: AiUsageEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageEventInclude<ExtArgs> | null
    where?: AiUsageEventWhereInput
    orderBy?: AiUsageEventOrderByWithRelationInput | AiUsageEventOrderByWithRelationInput[]
    cursor?: AiUsageEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageEventScalarFieldEnum | AiUsageEventScalarFieldEnum[]
  }

  /**
   * User.aiUsageRollups
   */
  export type User$aiUsageRollupsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AiUsageDailyRollup
     */
    select?: AiUsageDailyRollupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AiUsageDailyRollup
     */
    omit?: AiUsageDailyRollupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AiUsageDailyRollupInclude<ExtArgs> | null
    where?: AiUsageDailyRollupWhereInput
    orderBy?: AiUsageDailyRollupOrderByWithRelationInput | AiUsageDailyRollupOrderByWithRelationInput[]
    cursor?: AiUsageDailyRollupWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AiUsageDailyRollupScalarFieldEnum | AiUsageDailyRollupScalarFieldEnum[]
  }

  /**
   * User without action
   */
  export type UserDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
  }


  /**
   * Model Role
   */

  export type AggregateRole = {
    _count: RoleCountAggregateOutputType | null
    _min: RoleMinAggregateOutputType | null
    _max: RoleMaxAggregateOutputType | null
  }

  export type RoleMinAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    isBuiltIn: boolean | null
    enabled: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type RoleMaxAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    isBuiltIn: boolean | null
    enabled: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type RoleCountAggregateOutputType = {
    id: number
    name: number
    code: number
    description: number
    isBuiltIn: number
    enabled: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type RoleMinAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    isBuiltIn?: true
    enabled?: true
    createdAt?: true
    updatedAt?: true
  }

  export type RoleMaxAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    isBuiltIn?: true
    enabled?: true
    createdAt?: true
    updatedAt?: true
  }

  export type RoleCountAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    isBuiltIn?: true
    enabled?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type RoleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Role to aggregate.
     */
    where?: RoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Roles to fetch.
     */
    orderBy?: RoleOrderByWithRelationInput | RoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Roles 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` Roles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Roles
    **/
    _count?: true | RoleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RoleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RoleMaxAggregateInputType
  }

  export type GetRoleAggregateType<T extends RoleAggregateArgs> = {
        [P in keyof T & keyof AggregateRole]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRole[P]>
      : GetScalarType<T[P], AggregateRole[P]>
  }




  export type RoleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RoleWhereInput
    orderBy?: RoleOrderByWithAggregationInput | RoleOrderByWithAggregationInput[]
    by: RoleScalarFieldEnum[] | RoleScalarFieldEnum
    having?: RoleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RoleCountAggregateInputType | true
    _min?: RoleMinAggregateInputType
    _max?: RoleMaxAggregateInputType
  }

  export type RoleGroupByOutputType = {
    id: string
    name: string
    code: string
    description: string | null
    isBuiltIn: boolean
    enabled: boolean
    createdAt: Date
    updatedAt: Date
    _count: RoleCountAggregateOutputType | null
    _min: RoleMinAggregateOutputType | null
    _max: RoleMaxAggregateOutputType | null
  }

  type GetRoleGroupByPayload<T extends RoleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RoleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RoleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RoleGroupByOutputType[P]>
            : GetScalarType<T[P], RoleGroupByOutputType[P]>
        }
      >
    >


  export type RoleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    permissions?: boolean | Role$permissionsArgs<ExtArgs>
    users?: boolean | Role$usersArgs<ExtArgs>
    aiToolGrants?: boolean | Role$aiToolGrantsArgs<ExtArgs>
    dataScopes?: boolean | Role$dataScopesArgs<ExtArgs>
    _count?: boolean | RoleCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["role"]>

  export type RoleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["role"]>

  export type RoleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["role"]>

  export type RoleSelectScalar = {
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type RoleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "code" | "description" | "isBuiltIn" | "enabled" | "createdAt" | "updatedAt", ExtArgs["result"]["role"]>
  export type RoleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    permissions?: boolean | Role$permissionsArgs<ExtArgs>
    users?: boolean | Role$usersArgs<ExtArgs>
    aiToolGrants?: boolean | Role$aiToolGrantsArgs<ExtArgs>
    dataScopes?: boolean | Role$dataScopesArgs<ExtArgs>
    _count?: boolean | RoleCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type RoleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type RoleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $RolePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Role"
    objects: {
      permissions: Prisma.$RolePermissionPayload<ExtArgs>[]
      users: Prisma.$UserRolePayload<ExtArgs>[]
      aiToolGrants: Prisma.$AIToolGrantPayload<ExtArgs>[]
      dataScopes: Prisma.$RoleDataScopePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      code: string
      description: string | null
      isBuiltIn: boolean
      enabled: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["role"]>
    composites: {}
  }

  type RoleGetPayload<S extends boolean | null | undefined | RoleDefaultArgs> = $Result.GetResult<Prisma.$RolePayload, S>

  type RoleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RoleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RoleCountAggregateInputType | true
    }

  export interface RoleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Role'], meta: { name: 'Role' } }
    /**
     * Find zero or one Role that matches the filter.
     * @param {RoleFindUniqueArgs} args - Arguments to find a Role
     * @example
     * // Get one Role
     * const role = await prisma.role.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RoleFindUniqueArgs>(args: SelectSubset<T, RoleFindUniqueArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Role that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RoleFindUniqueOrThrowArgs} args - Arguments to find a Role
     * @example
     * // Get one Role
     * const role = await prisma.role.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RoleFindUniqueOrThrowArgs>(args: SelectSubset<T, RoleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Role 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 {RoleFindFirstArgs} args - Arguments to find a Role
     * @example
     * // Get one Role
     * const role = await prisma.role.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RoleFindFirstArgs>(args?: SelectSubset<T, RoleFindFirstArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Role 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 {RoleFindFirstOrThrowArgs} args - Arguments to find a Role
     * @example
     * // Get one Role
     * const role = await prisma.role.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RoleFindFirstOrThrowArgs>(args?: SelectSubset<T, RoleFindFirstOrThrowArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Roles 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 {RoleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Roles
     * const roles = await prisma.role.findMany()
     * 
     * // Get first 10 Roles
     * const roles = await prisma.role.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const roleWithIdOnly = await prisma.role.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RoleFindManyArgs>(args?: SelectSubset<T, RoleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Role.
     * @param {RoleCreateArgs} args - Arguments to create a Role.
     * @example
     * // Create one Role
     * const Role = await prisma.role.create({
     *   data: {
     *     // ... data to create a Role
     *   }
     * })
     * 
     */
    create<T extends RoleCreateArgs>(args: SelectSubset<T, RoleCreateArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Roles.
     * @param {RoleCreateManyArgs} args - Arguments to create many Roles.
     * @example
     * // Create many Roles
     * const role = await prisma.role.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RoleCreateManyArgs>(args?: SelectSubset<T, RoleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Roles and returns the data saved in the database.
     * @param {RoleCreateManyAndReturnArgs} args - Arguments to create many Roles.
     * @example
     * // Create many Roles
     * const role = await prisma.role.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Roles and only return the `id`
     * const roleWithIdOnly = await prisma.role.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 RoleCreateManyAndReturnArgs>(args?: SelectSubset<T, RoleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Role.
     * @param {RoleDeleteArgs} args - Arguments to delete one Role.
     * @example
     * // Delete one Role
     * const Role = await prisma.role.delete({
     *   where: {
     *     // ... filter to delete one Role
     *   }
     * })
     * 
     */
    delete<T extends RoleDeleteArgs>(args: SelectSubset<T, RoleDeleteArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Role.
     * @param {RoleUpdateArgs} args - Arguments to update one Role.
     * @example
     * // Update one Role
     * const role = await prisma.role.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RoleUpdateArgs>(args: SelectSubset<T, RoleUpdateArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Roles.
     * @param {RoleDeleteManyArgs} args - Arguments to filter Roles to delete.
     * @example
     * // Delete a few Roles
     * const { count } = await prisma.role.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RoleDeleteManyArgs>(args?: SelectSubset<T, RoleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Roles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RoleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Roles
     * const role = await prisma.role.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RoleUpdateManyArgs>(args: SelectSubset<T, RoleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Roles and returns the data updated in the database.
     * @param {RoleUpdateManyAndReturnArgs} args - Arguments to update many Roles.
     * @example
     * // Update many Roles
     * const role = await prisma.role.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Roles and only return the `id`
     * const roleWithIdOnly = await prisma.role.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 RoleUpdateManyAndReturnArgs>(args: SelectSubset<T, RoleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Role.
     * @param {RoleUpsertArgs} args - Arguments to update or create a Role.
     * @example
     * // Update or create a Role
     * const role = await prisma.role.upsert({
     *   create: {
     *     // ... data to create a Role
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Role we want to update
     *   }
     * })
     */
    upsert<T extends RoleUpsertArgs>(args: SelectSubset<T, RoleUpsertArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Roles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RoleCountArgs} args - Arguments to filter Roles to count.
     * @example
     * // Count the number of Roles
     * const count = await prisma.role.count({
     *   where: {
     *     // ... the filter for the Roles we want to count
     *   }
     * })
    **/
    count<T extends RoleCountArgs>(
      args?: Subset<T, RoleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RoleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Role.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RoleAggregateArgs} 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 RoleAggregateArgs>(args: Subset<T, RoleAggregateArgs>): Prisma.PrismaPromise<GetRoleAggregateType<T>>

    /**
     * Group by Role.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RoleGroupByArgs} 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 RoleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RoleGroupByArgs['orderBy'] }
        : { orderBy?: RoleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RoleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRoleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Role model
   */
  readonly fields: RoleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Role.
   * 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__RoleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    permissions<T extends Role$permissionsArgs<ExtArgs> = {}>(args?: Subset<T, Role$permissionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    users<T extends Role$usersArgs<ExtArgs> = {}>(args?: Subset<T, Role$usersArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    aiToolGrants<T extends Role$aiToolGrantsArgs<ExtArgs> = {}>(args?: Subset<T, Role$aiToolGrantsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    dataScopes<T extends Role$dataScopesArgs<ExtArgs> = {}>(args?: Subset<T, Role$dataScopesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Role model
   */
  interface RoleFieldRefs {
    readonly id: FieldRef<"Role", 'String'>
    readonly name: FieldRef<"Role", 'String'>
    readonly code: FieldRef<"Role", 'String'>
    readonly description: FieldRef<"Role", 'String'>
    readonly isBuiltIn: FieldRef<"Role", 'Boolean'>
    readonly enabled: FieldRef<"Role", 'Boolean'>
    readonly createdAt: FieldRef<"Role", 'DateTime'>
    readonly updatedAt: FieldRef<"Role", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Role findUnique
   */
  export type RoleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * Filter, which Role to fetch.
     */
    where: RoleWhereUniqueInput
  }

  /**
   * Role findUniqueOrThrow
   */
  export type RoleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * Filter, which Role to fetch.
     */
    where: RoleWhereUniqueInput
  }

  /**
   * Role findFirst
   */
  export type RoleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * Filter, which Role to fetch.
     */
    where?: RoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Roles to fetch.
     */
    orderBy?: RoleOrderByWithRelationInput | RoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Roles.
     */
    cursor?: RoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Roles 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` Roles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Roles.
     */
    distinct?: RoleScalarFieldEnum | RoleScalarFieldEnum[]
  }

  /**
   * Role findFirstOrThrow
   */
  export type RoleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * Filter, which Role to fetch.
     */
    where?: RoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Roles to fetch.
     */
    orderBy?: RoleOrderByWithRelationInput | RoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Roles.
     */
    cursor?: RoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Roles 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` Roles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Roles.
     */
    distinct?: RoleScalarFieldEnum | RoleScalarFieldEnum[]
  }

  /**
   * Role findMany
   */
  export type RoleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * Filter, which Roles to fetch.
     */
    where?: RoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Roles to fetch.
     */
    orderBy?: RoleOrderByWithRelationInput | RoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Roles.
     */
    cursor?: RoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Roles 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` Roles.
     */
    skip?: number
    distinct?: RoleScalarFieldEnum | RoleScalarFieldEnum[]
  }

  /**
   * Role create
   */
  export type RoleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * The data needed to create a Role.
     */
    data: XOR<RoleCreateInput, RoleUncheckedCreateInput>
  }

  /**
   * Role createMany
   */
  export type RoleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Roles.
     */
    data: RoleCreateManyInput | RoleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Role createManyAndReturn
   */
  export type RoleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * The data used to create many Roles.
     */
    data: RoleCreateManyInput | RoleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Role update
   */
  export type RoleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * The data needed to update a Role.
     */
    data: XOR<RoleUpdateInput, RoleUncheckedUpdateInput>
    /**
     * Choose, which Role to update.
     */
    where: RoleWhereUniqueInput
  }

  /**
   * Role updateMany
   */
  export type RoleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Roles.
     */
    data: XOR<RoleUpdateManyMutationInput, RoleUncheckedUpdateManyInput>
    /**
     * Filter which Roles to update
     */
    where?: RoleWhereInput
    /**
     * Limit how many Roles to update.
     */
    limit?: number
  }

  /**
   * Role updateManyAndReturn
   */
  export type RoleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * The data used to update Roles.
     */
    data: XOR<RoleUpdateManyMutationInput, RoleUncheckedUpdateManyInput>
    /**
     * Filter which Roles to update
     */
    where?: RoleWhereInput
    /**
     * Limit how many Roles to update.
     */
    limit?: number
  }

  /**
   * Role upsert
   */
  export type RoleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * The filter to search for the Role to update in case it exists.
     */
    where: RoleWhereUniqueInput
    /**
     * In case the Role found by the `where` argument doesn't exist, create a new Role with this data.
     */
    create: XOR<RoleCreateInput, RoleUncheckedCreateInput>
    /**
     * In case the Role was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RoleUpdateInput, RoleUncheckedUpdateInput>
  }

  /**
   * Role delete
   */
  export type RoleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
    /**
     * Filter which Role to delete.
     */
    where: RoleWhereUniqueInput
  }

  /**
   * Role deleteMany
   */
  export type RoleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Roles to delete
     */
    where?: RoleWhereInput
    /**
     * Limit how many Roles to delete.
     */
    limit?: number
  }

  /**
   * Role.permissions
   */
  export type Role$permissionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    where?: RolePermissionWhereInput
    orderBy?: RolePermissionOrderByWithRelationInput | RolePermissionOrderByWithRelationInput[]
    cursor?: RolePermissionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RolePermissionScalarFieldEnum | RolePermissionScalarFieldEnum[]
  }

  /**
   * Role.users
   */
  export type Role$usersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    where?: UserRoleWhereInput
    orderBy?: UserRoleOrderByWithRelationInput | UserRoleOrderByWithRelationInput[]
    cursor?: UserRoleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserRoleScalarFieldEnum | UserRoleScalarFieldEnum[]
  }

  /**
   * Role.aiToolGrants
   */
  export type Role$aiToolGrantsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    where?: AIToolGrantWhereInput
    orderBy?: AIToolGrantOrderByWithRelationInput | AIToolGrantOrderByWithRelationInput[]
    cursor?: AIToolGrantWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AIToolGrantScalarFieldEnum | AIToolGrantScalarFieldEnum[]
  }

  /**
   * Role.dataScopes
   */
  export type Role$dataScopesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    where?: RoleDataScopeWhereInput
    orderBy?: RoleDataScopeOrderByWithRelationInput | RoleDataScopeOrderByWithRelationInput[]
    cursor?: RoleDataScopeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RoleDataScopeScalarFieldEnum | RoleDataScopeScalarFieldEnum[]
  }

  /**
   * Role without action
   */
  export type RoleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Role
     */
    select?: RoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Role
     */
    omit?: RoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleInclude<ExtArgs> | null
  }


  /**
   * Model Permission
   */

  export type AggregatePermission = {
    _count: PermissionCountAggregateOutputType | null
    _min: PermissionMinAggregateOutputType | null
    _max: PermissionMaxAggregateOutputType | null
  }

  export type PermissionMinAggregateOutputType = {
    id: string | null
    resource: string | null
    action: string | null
    description: string | null
    module: string | null
    isBuiltIn: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PermissionMaxAggregateOutputType = {
    id: string | null
    resource: string | null
    action: string | null
    description: string | null
    module: string | null
    isBuiltIn: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PermissionCountAggregateOutputType = {
    id: number
    resource: number
    action: number
    description: number
    module: number
    isBuiltIn: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type PermissionMinAggregateInputType = {
    id?: true
    resource?: true
    action?: true
    description?: true
    module?: true
    isBuiltIn?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PermissionMaxAggregateInputType = {
    id?: true
    resource?: true
    action?: true
    description?: true
    module?: true
    isBuiltIn?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PermissionCountAggregateInputType = {
    id?: true
    resource?: true
    action?: true
    description?: true
    module?: true
    isBuiltIn?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type PermissionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Permission to aggregate.
     */
    where?: PermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Permissions to fetch.
     */
    orderBy?: PermissionOrderByWithRelationInput | PermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Permissions 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` Permissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Permissions
    **/
    _count?: true | PermissionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PermissionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PermissionMaxAggregateInputType
  }

  export type GetPermissionAggregateType<T extends PermissionAggregateArgs> = {
        [P in keyof T & keyof AggregatePermission]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePermission[P]>
      : GetScalarType<T[P], AggregatePermission[P]>
  }




  export type PermissionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PermissionWhereInput
    orderBy?: PermissionOrderByWithAggregationInput | PermissionOrderByWithAggregationInput[]
    by: PermissionScalarFieldEnum[] | PermissionScalarFieldEnum
    having?: PermissionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PermissionCountAggregateInputType | true
    _min?: PermissionMinAggregateInputType
    _max?: PermissionMaxAggregateInputType
  }

  export type PermissionGroupByOutputType = {
    id: string
    resource: string
    action: string
    description: string | null
    module: string | null
    isBuiltIn: boolean
    createdAt: Date
    updatedAt: Date
    _count: PermissionCountAggregateOutputType | null
    _min: PermissionMinAggregateOutputType | null
    _max: PermissionMaxAggregateOutputType | null
  }

  type GetPermissionGroupByPayload<T extends PermissionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PermissionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PermissionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PermissionGroupByOutputType[P]>
            : GetScalarType<T[P], PermissionGroupByOutputType[P]>
        }
      >
    >


  export type PermissionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    resource?: boolean
    action?: boolean
    description?: boolean
    module?: boolean
    isBuiltIn?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    roles?: boolean | Permission$rolesArgs<ExtArgs>
    _count?: boolean | PermissionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["permission"]>

  export type PermissionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    resource?: boolean
    action?: boolean
    description?: boolean
    module?: boolean
    isBuiltIn?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["permission"]>

  export type PermissionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    resource?: boolean
    action?: boolean
    description?: boolean
    module?: boolean
    isBuiltIn?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["permission"]>

  export type PermissionSelectScalar = {
    id?: boolean
    resource?: boolean
    action?: boolean
    description?: boolean
    module?: boolean
    isBuiltIn?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type PermissionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "resource" | "action" | "description" | "module" | "isBuiltIn" | "createdAt" | "updatedAt", ExtArgs["result"]["permission"]>
  export type PermissionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    roles?: boolean | Permission$rolesArgs<ExtArgs>
    _count?: boolean | PermissionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PermissionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type PermissionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $PermissionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Permission"
    objects: {
      roles: Prisma.$RolePermissionPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      resource: string
      action: string
      description: string | null
      module: string | null
      isBuiltIn: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["permission"]>
    composites: {}
  }

  type PermissionGetPayload<S extends boolean | null | undefined | PermissionDefaultArgs> = $Result.GetResult<Prisma.$PermissionPayload, S>

  type PermissionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PermissionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PermissionCountAggregateInputType | true
    }

  export interface PermissionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Permission'], meta: { name: 'Permission' } }
    /**
     * Find zero or one Permission that matches the filter.
     * @param {PermissionFindUniqueArgs} args - Arguments to find a Permission
     * @example
     * // Get one Permission
     * const permission = await prisma.permission.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PermissionFindUniqueArgs>(args: SelectSubset<T, PermissionFindUniqueArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Permission that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PermissionFindUniqueOrThrowArgs} args - Arguments to find a Permission
     * @example
     * // Get one Permission
     * const permission = await prisma.permission.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PermissionFindUniqueOrThrowArgs>(args: SelectSubset<T, PermissionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Permission 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 {PermissionFindFirstArgs} args - Arguments to find a Permission
     * @example
     * // Get one Permission
     * const permission = await prisma.permission.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PermissionFindFirstArgs>(args?: SelectSubset<T, PermissionFindFirstArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Permission 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 {PermissionFindFirstOrThrowArgs} args - Arguments to find a Permission
     * @example
     * // Get one Permission
     * const permission = await prisma.permission.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PermissionFindFirstOrThrowArgs>(args?: SelectSubset<T, PermissionFindFirstOrThrowArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Permissions 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 {PermissionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Permissions
     * const permissions = await prisma.permission.findMany()
     * 
     * // Get first 10 Permissions
     * const permissions = await prisma.permission.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const permissionWithIdOnly = await prisma.permission.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PermissionFindManyArgs>(args?: SelectSubset<T, PermissionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Permission.
     * @param {PermissionCreateArgs} args - Arguments to create a Permission.
     * @example
     * // Create one Permission
     * const Permission = await prisma.permission.create({
     *   data: {
     *     // ... data to create a Permission
     *   }
     * })
     * 
     */
    create<T extends PermissionCreateArgs>(args: SelectSubset<T, PermissionCreateArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Permissions.
     * @param {PermissionCreateManyArgs} args - Arguments to create many Permissions.
     * @example
     * // Create many Permissions
     * const permission = await prisma.permission.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PermissionCreateManyArgs>(args?: SelectSubset<T, PermissionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Permissions and returns the data saved in the database.
     * @param {PermissionCreateManyAndReturnArgs} args - Arguments to create many Permissions.
     * @example
     * // Create many Permissions
     * const permission = await prisma.permission.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Permissions and only return the `id`
     * const permissionWithIdOnly = await prisma.permission.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 PermissionCreateManyAndReturnArgs>(args?: SelectSubset<T, PermissionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Permission.
     * @param {PermissionDeleteArgs} args - Arguments to delete one Permission.
     * @example
     * // Delete one Permission
     * const Permission = await prisma.permission.delete({
     *   where: {
     *     // ... filter to delete one Permission
     *   }
     * })
     * 
     */
    delete<T extends PermissionDeleteArgs>(args: SelectSubset<T, PermissionDeleteArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Permission.
     * @param {PermissionUpdateArgs} args - Arguments to update one Permission.
     * @example
     * // Update one Permission
     * const permission = await prisma.permission.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PermissionUpdateArgs>(args: SelectSubset<T, PermissionUpdateArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Permissions.
     * @param {PermissionDeleteManyArgs} args - Arguments to filter Permissions to delete.
     * @example
     * // Delete a few Permissions
     * const { count } = await prisma.permission.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PermissionDeleteManyArgs>(args?: SelectSubset<T, PermissionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Permissions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PermissionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Permissions
     * const permission = await prisma.permission.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PermissionUpdateManyArgs>(args: SelectSubset<T, PermissionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Permissions and returns the data updated in the database.
     * @param {PermissionUpdateManyAndReturnArgs} args - Arguments to update many Permissions.
     * @example
     * // Update many Permissions
     * const permission = await prisma.permission.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Permissions and only return the `id`
     * const permissionWithIdOnly = await prisma.permission.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 PermissionUpdateManyAndReturnArgs>(args: SelectSubset<T, PermissionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Permission.
     * @param {PermissionUpsertArgs} args - Arguments to update or create a Permission.
     * @example
     * // Update or create a Permission
     * const permission = await prisma.permission.upsert({
     *   create: {
     *     // ... data to create a Permission
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Permission we want to update
     *   }
     * })
     */
    upsert<T extends PermissionUpsertArgs>(args: SelectSubset<T, PermissionUpsertArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Permissions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PermissionCountArgs} args - Arguments to filter Permissions to count.
     * @example
     * // Count the number of Permissions
     * const count = await prisma.permission.count({
     *   where: {
     *     // ... the filter for the Permissions we want to count
     *   }
     * })
    **/
    count<T extends PermissionCountArgs>(
      args?: Subset<T, PermissionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PermissionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Permission.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PermissionAggregateArgs} 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 PermissionAggregateArgs>(args: Subset<T, PermissionAggregateArgs>): Prisma.PrismaPromise<GetPermissionAggregateType<T>>

    /**
     * Group by Permission.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PermissionGroupByArgs} 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 PermissionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PermissionGroupByArgs['orderBy'] }
        : { orderBy?: PermissionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PermissionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPermissionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Permission model
   */
  readonly fields: PermissionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Permission.
   * 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__PermissionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    roles<T extends Permission$rolesArgs<ExtArgs> = {}>(args?: Subset<T, Permission$rolesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Permission model
   */
  interface PermissionFieldRefs {
    readonly id: FieldRef<"Permission", 'String'>
    readonly resource: FieldRef<"Permission", 'String'>
    readonly action: FieldRef<"Permission", 'String'>
    readonly description: FieldRef<"Permission", 'String'>
    readonly module: FieldRef<"Permission", 'String'>
    readonly isBuiltIn: FieldRef<"Permission", 'Boolean'>
    readonly createdAt: FieldRef<"Permission", 'DateTime'>
    readonly updatedAt: FieldRef<"Permission", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Permission findUnique
   */
  export type PermissionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * Filter, which Permission to fetch.
     */
    where: PermissionWhereUniqueInput
  }

  /**
   * Permission findUniqueOrThrow
   */
  export type PermissionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * Filter, which Permission to fetch.
     */
    where: PermissionWhereUniqueInput
  }

  /**
   * Permission findFirst
   */
  export type PermissionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * Filter, which Permission to fetch.
     */
    where?: PermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Permissions to fetch.
     */
    orderBy?: PermissionOrderByWithRelationInput | PermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Permissions.
     */
    cursor?: PermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Permissions 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` Permissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Permissions.
     */
    distinct?: PermissionScalarFieldEnum | PermissionScalarFieldEnum[]
  }

  /**
   * Permission findFirstOrThrow
   */
  export type PermissionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * Filter, which Permission to fetch.
     */
    where?: PermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Permissions to fetch.
     */
    orderBy?: PermissionOrderByWithRelationInput | PermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Permissions.
     */
    cursor?: PermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Permissions 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` Permissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Permissions.
     */
    distinct?: PermissionScalarFieldEnum | PermissionScalarFieldEnum[]
  }

  /**
   * Permission findMany
   */
  export type PermissionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * Filter, which Permissions to fetch.
     */
    where?: PermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Permissions to fetch.
     */
    orderBy?: PermissionOrderByWithRelationInput | PermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Permissions.
     */
    cursor?: PermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Permissions 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` Permissions.
     */
    skip?: number
    distinct?: PermissionScalarFieldEnum | PermissionScalarFieldEnum[]
  }

  /**
   * Permission create
   */
  export type PermissionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * The data needed to create a Permission.
     */
    data: XOR<PermissionCreateInput, PermissionUncheckedCreateInput>
  }

  /**
   * Permission createMany
   */
  export type PermissionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Permissions.
     */
    data: PermissionCreateManyInput | PermissionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Permission createManyAndReturn
   */
  export type PermissionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * The data used to create many Permissions.
     */
    data: PermissionCreateManyInput | PermissionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Permission update
   */
  export type PermissionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * The data needed to update a Permission.
     */
    data: XOR<PermissionUpdateInput, PermissionUncheckedUpdateInput>
    /**
     * Choose, which Permission to update.
     */
    where: PermissionWhereUniqueInput
  }

  /**
   * Permission updateMany
   */
  export type PermissionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Permissions.
     */
    data: XOR<PermissionUpdateManyMutationInput, PermissionUncheckedUpdateManyInput>
    /**
     * Filter which Permissions to update
     */
    where?: PermissionWhereInput
    /**
     * Limit how many Permissions to update.
     */
    limit?: number
  }

  /**
   * Permission updateManyAndReturn
   */
  export type PermissionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * The data used to update Permissions.
     */
    data: XOR<PermissionUpdateManyMutationInput, PermissionUncheckedUpdateManyInput>
    /**
     * Filter which Permissions to update
     */
    where?: PermissionWhereInput
    /**
     * Limit how many Permissions to update.
     */
    limit?: number
  }

  /**
   * Permission upsert
   */
  export type PermissionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * The filter to search for the Permission to update in case it exists.
     */
    where: PermissionWhereUniqueInput
    /**
     * In case the Permission found by the `where` argument doesn't exist, create a new Permission with this data.
     */
    create: XOR<PermissionCreateInput, PermissionUncheckedCreateInput>
    /**
     * In case the Permission was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PermissionUpdateInput, PermissionUncheckedUpdateInput>
  }

  /**
   * Permission delete
   */
  export type PermissionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
    /**
     * Filter which Permission to delete.
     */
    where: PermissionWhereUniqueInput
  }

  /**
   * Permission deleteMany
   */
  export type PermissionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Permissions to delete
     */
    where?: PermissionWhereInput
    /**
     * Limit how many Permissions to delete.
     */
    limit?: number
  }

  /**
   * Permission.roles
   */
  export type Permission$rolesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    where?: RolePermissionWhereInput
    orderBy?: RolePermissionOrderByWithRelationInput | RolePermissionOrderByWithRelationInput[]
    cursor?: RolePermissionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RolePermissionScalarFieldEnum | RolePermissionScalarFieldEnum[]
  }

  /**
   * Permission without action
   */
  export type PermissionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Permission
     */
    select?: PermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Permission
     */
    omit?: PermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PermissionInclude<ExtArgs> | null
  }


  /**
   * Model WorkflowRole
   */

  export type AggregateWorkflowRole = {
    _count: WorkflowRoleCountAggregateOutputType | null
    _min: WorkflowRoleMinAggregateOutputType | null
    _max: WorkflowRoleMaxAggregateOutputType | null
  }

  export type WorkflowRoleMinAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    ruleType: $Enums.WorkflowRuleType | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type WorkflowRoleMaxAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    ruleType: $Enums.WorkflowRuleType | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type WorkflowRoleCountAggregateOutputType = {
    id: number
    name: number
    code: number
    description: number
    ruleType: number
    ruleConfig: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type WorkflowRoleMinAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    ruleType?: true
    createdAt?: true
    updatedAt?: true
  }

  export type WorkflowRoleMaxAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    ruleType?: true
    createdAt?: true
    updatedAt?: true
  }

  export type WorkflowRoleCountAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    ruleType?: true
    ruleConfig?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type WorkflowRoleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WorkflowRole to aggregate.
     */
    where?: WorkflowRoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WorkflowRoles to fetch.
     */
    orderBy?: WorkflowRoleOrderByWithRelationInput | WorkflowRoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: WorkflowRoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WorkflowRoles 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` WorkflowRoles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned WorkflowRoles
    **/
    _count?: true | WorkflowRoleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: WorkflowRoleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: WorkflowRoleMaxAggregateInputType
  }

  export type GetWorkflowRoleAggregateType<T extends WorkflowRoleAggregateArgs> = {
        [P in keyof T & keyof AggregateWorkflowRole]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateWorkflowRole[P]>
      : GetScalarType<T[P], AggregateWorkflowRole[P]>
  }




  export type WorkflowRoleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WorkflowRoleWhereInput
    orderBy?: WorkflowRoleOrderByWithAggregationInput | WorkflowRoleOrderByWithAggregationInput[]
    by: WorkflowRoleScalarFieldEnum[] | WorkflowRoleScalarFieldEnum
    having?: WorkflowRoleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: WorkflowRoleCountAggregateInputType | true
    _min?: WorkflowRoleMinAggregateInputType
    _max?: WorkflowRoleMaxAggregateInputType
  }

  export type WorkflowRoleGroupByOutputType = {
    id: string
    name: string
    code: string
    description: string | null
    ruleType: $Enums.WorkflowRuleType
    ruleConfig: JsonValue
    createdAt: Date
    updatedAt: Date
    _count: WorkflowRoleCountAggregateOutputType | null
    _min: WorkflowRoleMinAggregateOutputType | null
    _max: WorkflowRoleMaxAggregateOutputType | null
  }

  type GetWorkflowRoleGroupByPayload<T extends WorkflowRoleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<WorkflowRoleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof WorkflowRoleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], WorkflowRoleGroupByOutputType[P]>
            : GetScalarType<T[P], WorkflowRoleGroupByOutputType[P]>
        }
      >
    >


  export type WorkflowRoleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    ruleType?: boolean
    ruleConfig?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    userAssignments?: boolean | WorkflowRole$userAssignmentsArgs<ExtArgs>
    _count?: boolean | WorkflowRoleCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["workflowRole"]>

  export type WorkflowRoleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    ruleType?: boolean
    ruleConfig?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["workflowRole"]>

  export type WorkflowRoleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    ruleType?: boolean
    ruleConfig?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["workflowRole"]>

  export type WorkflowRoleSelectScalar = {
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    ruleType?: boolean
    ruleConfig?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type WorkflowRoleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "code" | "description" | "ruleType" | "ruleConfig" | "createdAt" | "updatedAt", ExtArgs["result"]["workflowRole"]>
  export type WorkflowRoleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    userAssignments?: boolean | WorkflowRole$userAssignmentsArgs<ExtArgs>
    _count?: boolean | WorkflowRoleCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type WorkflowRoleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type WorkflowRoleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $WorkflowRolePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "WorkflowRole"
    objects: {
      userAssignments: Prisma.$WorkflowRoleUserPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      code: string
      description: string | null
      ruleType: $Enums.WorkflowRuleType
      ruleConfig: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["workflowRole"]>
    composites: {}
  }

  type WorkflowRoleGetPayload<S extends boolean | null | undefined | WorkflowRoleDefaultArgs> = $Result.GetResult<Prisma.$WorkflowRolePayload, S>

  type WorkflowRoleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<WorkflowRoleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: WorkflowRoleCountAggregateInputType | true
    }

  export interface WorkflowRoleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['WorkflowRole'], meta: { name: 'WorkflowRole' } }
    /**
     * Find zero or one WorkflowRole that matches the filter.
     * @param {WorkflowRoleFindUniqueArgs} args - Arguments to find a WorkflowRole
     * @example
     * // Get one WorkflowRole
     * const workflowRole = await prisma.workflowRole.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends WorkflowRoleFindUniqueArgs>(args: SelectSubset<T, WorkflowRoleFindUniqueArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one WorkflowRole that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {WorkflowRoleFindUniqueOrThrowArgs} args - Arguments to find a WorkflowRole
     * @example
     * // Get one WorkflowRole
     * const workflowRole = await prisma.workflowRole.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends WorkflowRoleFindUniqueOrThrowArgs>(args: SelectSubset<T, WorkflowRoleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first WorkflowRole 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 {WorkflowRoleFindFirstArgs} args - Arguments to find a WorkflowRole
     * @example
     * // Get one WorkflowRole
     * const workflowRole = await prisma.workflowRole.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends WorkflowRoleFindFirstArgs>(args?: SelectSubset<T, WorkflowRoleFindFirstArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first WorkflowRole 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 {WorkflowRoleFindFirstOrThrowArgs} args - Arguments to find a WorkflowRole
     * @example
     * // Get one WorkflowRole
     * const workflowRole = await prisma.workflowRole.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends WorkflowRoleFindFirstOrThrowArgs>(args?: SelectSubset<T, WorkflowRoleFindFirstOrThrowArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more WorkflowRoles 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 {WorkflowRoleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all WorkflowRoles
     * const workflowRoles = await prisma.workflowRole.findMany()
     * 
     * // Get first 10 WorkflowRoles
     * const workflowRoles = await prisma.workflowRole.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const workflowRoleWithIdOnly = await prisma.workflowRole.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends WorkflowRoleFindManyArgs>(args?: SelectSubset<T, WorkflowRoleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a WorkflowRole.
     * @param {WorkflowRoleCreateArgs} args - Arguments to create a WorkflowRole.
     * @example
     * // Create one WorkflowRole
     * const WorkflowRole = await prisma.workflowRole.create({
     *   data: {
     *     // ... data to create a WorkflowRole
     *   }
     * })
     * 
     */
    create<T extends WorkflowRoleCreateArgs>(args: SelectSubset<T, WorkflowRoleCreateArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many WorkflowRoles.
     * @param {WorkflowRoleCreateManyArgs} args - Arguments to create many WorkflowRoles.
     * @example
     * // Create many WorkflowRoles
     * const workflowRole = await prisma.workflowRole.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends WorkflowRoleCreateManyArgs>(args?: SelectSubset<T, WorkflowRoleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many WorkflowRoles and returns the data saved in the database.
     * @param {WorkflowRoleCreateManyAndReturnArgs} args - Arguments to create many WorkflowRoles.
     * @example
     * // Create many WorkflowRoles
     * const workflowRole = await prisma.workflowRole.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many WorkflowRoles and only return the `id`
     * const workflowRoleWithIdOnly = await prisma.workflowRole.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 WorkflowRoleCreateManyAndReturnArgs>(args?: SelectSubset<T, WorkflowRoleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a WorkflowRole.
     * @param {WorkflowRoleDeleteArgs} args - Arguments to delete one WorkflowRole.
     * @example
     * // Delete one WorkflowRole
     * const WorkflowRole = await prisma.workflowRole.delete({
     *   where: {
     *     // ... filter to delete one WorkflowRole
     *   }
     * })
     * 
     */
    delete<T extends WorkflowRoleDeleteArgs>(args: SelectSubset<T, WorkflowRoleDeleteArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one WorkflowRole.
     * @param {WorkflowRoleUpdateArgs} args - Arguments to update one WorkflowRole.
     * @example
     * // Update one WorkflowRole
     * const workflowRole = await prisma.workflowRole.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends WorkflowRoleUpdateArgs>(args: SelectSubset<T, WorkflowRoleUpdateArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more WorkflowRoles.
     * @param {WorkflowRoleDeleteManyArgs} args - Arguments to filter WorkflowRoles to delete.
     * @example
     * // Delete a few WorkflowRoles
     * const { count } = await prisma.workflowRole.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends WorkflowRoleDeleteManyArgs>(args?: SelectSubset<T, WorkflowRoleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more WorkflowRoles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WorkflowRoleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many WorkflowRoles
     * const workflowRole = await prisma.workflowRole.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends WorkflowRoleUpdateManyArgs>(args: SelectSubset<T, WorkflowRoleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more WorkflowRoles and returns the data updated in the database.
     * @param {WorkflowRoleUpdateManyAndReturnArgs} args - Arguments to update many WorkflowRoles.
     * @example
     * // Update many WorkflowRoles
     * const workflowRole = await prisma.workflowRole.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more WorkflowRoles and only return the `id`
     * const workflowRoleWithIdOnly = await prisma.workflowRole.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 WorkflowRoleUpdateManyAndReturnArgs>(args: SelectSubset<T, WorkflowRoleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one WorkflowRole.
     * @param {WorkflowRoleUpsertArgs} args - Arguments to update or create a WorkflowRole.
     * @example
     * // Update or create a WorkflowRole
     * const workflowRole = await prisma.workflowRole.upsert({
     *   create: {
     *     // ... data to create a WorkflowRole
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the WorkflowRole we want to update
     *   }
     * })
     */
    upsert<T extends WorkflowRoleUpsertArgs>(args: SelectSubset<T, WorkflowRoleUpsertArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of WorkflowRoles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WorkflowRoleCountArgs} args - Arguments to filter WorkflowRoles to count.
     * @example
     * // Count the number of WorkflowRoles
     * const count = await prisma.workflowRole.count({
     *   where: {
     *     // ... the filter for the WorkflowRoles we want to count
     *   }
     * })
    **/
    count<T extends WorkflowRoleCountArgs>(
      args?: Subset<T, WorkflowRoleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], WorkflowRoleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a WorkflowRole.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WorkflowRoleAggregateArgs} 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 WorkflowRoleAggregateArgs>(args: Subset<T, WorkflowRoleAggregateArgs>): Prisma.PrismaPromise<GetWorkflowRoleAggregateType<T>>

    /**
     * Group by WorkflowRole.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WorkflowRoleGroupByArgs} 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 WorkflowRoleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: WorkflowRoleGroupByArgs['orderBy'] }
        : { orderBy?: WorkflowRoleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, WorkflowRoleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetWorkflowRoleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the WorkflowRole model
   */
  readonly fields: WorkflowRoleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for WorkflowRole.
   * 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__WorkflowRoleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    userAssignments<T extends WorkflowRole$userAssignmentsArgs<ExtArgs> = {}>(args?: Subset<T, WorkflowRole$userAssignmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the WorkflowRole model
   */
  interface WorkflowRoleFieldRefs {
    readonly id: FieldRef<"WorkflowRole", 'String'>
    readonly name: FieldRef<"WorkflowRole", 'String'>
    readonly code: FieldRef<"WorkflowRole", 'String'>
    readonly description: FieldRef<"WorkflowRole", 'String'>
    readonly ruleType: FieldRef<"WorkflowRole", 'WorkflowRuleType'>
    readonly ruleConfig: FieldRef<"WorkflowRole", 'Json'>
    readonly createdAt: FieldRef<"WorkflowRole", 'DateTime'>
    readonly updatedAt: FieldRef<"WorkflowRole", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * WorkflowRole findUnique
   */
  export type WorkflowRoleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRole to fetch.
     */
    where: WorkflowRoleWhereUniqueInput
  }

  /**
   * WorkflowRole findUniqueOrThrow
   */
  export type WorkflowRoleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRole to fetch.
     */
    where: WorkflowRoleWhereUniqueInput
  }

  /**
   * WorkflowRole findFirst
   */
  export type WorkflowRoleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRole to fetch.
     */
    where?: WorkflowRoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WorkflowRoles to fetch.
     */
    orderBy?: WorkflowRoleOrderByWithRelationInput | WorkflowRoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WorkflowRoles.
     */
    cursor?: WorkflowRoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WorkflowRoles 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` WorkflowRoles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WorkflowRoles.
     */
    distinct?: WorkflowRoleScalarFieldEnum | WorkflowRoleScalarFieldEnum[]
  }

  /**
   * WorkflowRole findFirstOrThrow
   */
  export type WorkflowRoleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRole to fetch.
     */
    where?: WorkflowRoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WorkflowRoles to fetch.
     */
    orderBy?: WorkflowRoleOrderByWithRelationInput | WorkflowRoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WorkflowRoles.
     */
    cursor?: WorkflowRoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WorkflowRoles 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` WorkflowRoles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WorkflowRoles.
     */
    distinct?: WorkflowRoleScalarFieldEnum | WorkflowRoleScalarFieldEnum[]
  }

  /**
   * WorkflowRole findMany
   */
  export type WorkflowRoleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRoles to fetch.
     */
    where?: WorkflowRoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WorkflowRoles to fetch.
     */
    orderBy?: WorkflowRoleOrderByWithRelationInput | WorkflowRoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing WorkflowRoles.
     */
    cursor?: WorkflowRoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WorkflowRoles 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` WorkflowRoles.
     */
    skip?: number
    distinct?: WorkflowRoleScalarFieldEnum | WorkflowRoleScalarFieldEnum[]
  }

  /**
   * WorkflowRole create
   */
  export type WorkflowRoleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * The data needed to create a WorkflowRole.
     */
    data: XOR<WorkflowRoleCreateInput, WorkflowRoleUncheckedCreateInput>
  }

  /**
   * WorkflowRole createMany
   */
  export type WorkflowRoleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many WorkflowRoles.
     */
    data: WorkflowRoleCreateManyInput | WorkflowRoleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * WorkflowRole createManyAndReturn
   */
  export type WorkflowRoleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * The data used to create many WorkflowRoles.
     */
    data: WorkflowRoleCreateManyInput | WorkflowRoleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * WorkflowRole update
   */
  export type WorkflowRoleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * The data needed to update a WorkflowRole.
     */
    data: XOR<WorkflowRoleUpdateInput, WorkflowRoleUncheckedUpdateInput>
    /**
     * Choose, which WorkflowRole to update.
     */
    where: WorkflowRoleWhereUniqueInput
  }

  /**
   * WorkflowRole updateMany
   */
  export type WorkflowRoleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update WorkflowRoles.
     */
    data: XOR<WorkflowRoleUpdateManyMutationInput, WorkflowRoleUncheckedUpdateManyInput>
    /**
     * Filter which WorkflowRoles to update
     */
    where?: WorkflowRoleWhereInput
    /**
     * Limit how many WorkflowRoles to update.
     */
    limit?: number
  }

  /**
   * WorkflowRole updateManyAndReturn
   */
  export type WorkflowRoleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * The data used to update WorkflowRoles.
     */
    data: XOR<WorkflowRoleUpdateManyMutationInput, WorkflowRoleUncheckedUpdateManyInput>
    /**
     * Filter which WorkflowRoles to update
     */
    where?: WorkflowRoleWhereInput
    /**
     * Limit how many WorkflowRoles to update.
     */
    limit?: number
  }

  /**
   * WorkflowRole upsert
   */
  export type WorkflowRoleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * The filter to search for the WorkflowRole to update in case it exists.
     */
    where: WorkflowRoleWhereUniqueInput
    /**
     * In case the WorkflowRole found by the `where` argument doesn't exist, create a new WorkflowRole with this data.
     */
    create: XOR<WorkflowRoleCreateInput, WorkflowRoleUncheckedCreateInput>
    /**
     * In case the WorkflowRole was found with the provided `where` argument, update it with this data.
     */
    update: XOR<WorkflowRoleUpdateInput, WorkflowRoleUncheckedUpdateInput>
  }

  /**
   * WorkflowRole delete
   */
  export type WorkflowRoleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
    /**
     * Filter which WorkflowRole to delete.
     */
    where: WorkflowRoleWhereUniqueInput
  }

  /**
   * WorkflowRole deleteMany
   */
  export type WorkflowRoleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WorkflowRoles to delete
     */
    where?: WorkflowRoleWhereInput
    /**
     * Limit how many WorkflowRoles to delete.
     */
    limit?: number
  }

  /**
   * WorkflowRole.userAssignments
   */
  export type WorkflowRole$userAssignmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    where?: WorkflowRoleUserWhereInput
    orderBy?: WorkflowRoleUserOrderByWithRelationInput | WorkflowRoleUserOrderByWithRelationInput[]
    cursor?: WorkflowRoleUserWhereUniqueInput
    take?: number
    skip?: number
    distinct?: WorkflowRoleUserScalarFieldEnum | WorkflowRoleUserScalarFieldEnum[]
  }

  /**
   * WorkflowRole without action
   */
  export type WorkflowRoleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRole
     */
    select?: WorkflowRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRole
     */
    omit?: WorkflowRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleInclude<ExtArgs> | null
  }


  /**
   * Model WorkflowRoleUser
   */

  export type AggregateWorkflowRoleUser = {
    _count: WorkflowRoleUserCountAggregateOutputType | null
    _min: WorkflowRoleUserMinAggregateOutputType | null
    _max: WorkflowRoleUserMaxAggregateOutputType | null
  }

  export type WorkflowRoleUserMinAggregateOutputType = {
    id: string | null
    workflowRoleId: string | null
    userId: string | null
    createdAt: Date | null
  }

  export type WorkflowRoleUserMaxAggregateOutputType = {
    id: string | null
    workflowRoleId: string | null
    userId: string | null
    createdAt: Date | null
  }

  export type WorkflowRoleUserCountAggregateOutputType = {
    id: number
    workflowRoleId: number
    userId: number
    createdAt: number
    _all: number
  }


  export type WorkflowRoleUserMinAggregateInputType = {
    id?: true
    workflowRoleId?: true
    userId?: true
    createdAt?: true
  }

  export type WorkflowRoleUserMaxAggregateInputType = {
    id?: true
    workflowRoleId?: true
    userId?: true
    createdAt?: true
  }

  export type WorkflowRoleUserCountAggregateInputType = {
    id?: true
    workflowRoleId?: true
    userId?: true
    createdAt?: true
    _all?: true
  }

  export type WorkflowRoleUserAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WorkflowRoleUser to aggregate.
     */
    where?: WorkflowRoleUserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WorkflowRoleUsers to fetch.
     */
    orderBy?: WorkflowRoleUserOrderByWithRelationInput | WorkflowRoleUserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: WorkflowRoleUserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WorkflowRoleUsers 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` WorkflowRoleUsers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned WorkflowRoleUsers
    **/
    _count?: true | WorkflowRoleUserCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: WorkflowRoleUserMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: WorkflowRoleUserMaxAggregateInputType
  }

  export type GetWorkflowRoleUserAggregateType<T extends WorkflowRoleUserAggregateArgs> = {
        [P in keyof T & keyof AggregateWorkflowRoleUser]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateWorkflowRoleUser[P]>
      : GetScalarType<T[P], AggregateWorkflowRoleUser[P]>
  }




  export type WorkflowRoleUserGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WorkflowRoleUserWhereInput
    orderBy?: WorkflowRoleUserOrderByWithAggregationInput | WorkflowRoleUserOrderByWithAggregationInput[]
    by: WorkflowRoleUserScalarFieldEnum[] | WorkflowRoleUserScalarFieldEnum
    having?: WorkflowRoleUserScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: WorkflowRoleUserCountAggregateInputType | true
    _min?: WorkflowRoleUserMinAggregateInputType
    _max?: WorkflowRoleUserMaxAggregateInputType
  }

  export type WorkflowRoleUserGroupByOutputType = {
    id: string
    workflowRoleId: string
    userId: string
    createdAt: Date
    _count: WorkflowRoleUserCountAggregateOutputType | null
    _min: WorkflowRoleUserMinAggregateOutputType | null
    _max: WorkflowRoleUserMaxAggregateOutputType | null
  }

  type GetWorkflowRoleUserGroupByPayload<T extends WorkflowRoleUserGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<WorkflowRoleUserGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof WorkflowRoleUserGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], WorkflowRoleUserGroupByOutputType[P]>
            : GetScalarType<T[P], WorkflowRoleUserGroupByOutputType[P]>
        }
      >
    >


  export type WorkflowRoleUserSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    workflowRoleId?: boolean
    userId?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    workflowRole?: boolean | WorkflowRoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["workflowRoleUser"]>

  export type WorkflowRoleUserSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    workflowRoleId?: boolean
    userId?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    workflowRole?: boolean | WorkflowRoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["workflowRoleUser"]>

  export type WorkflowRoleUserSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    workflowRoleId?: boolean
    userId?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    workflowRole?: boolean | WorkflowRoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["workflowRoleUser"]>

  export type WorkflowRoleUserSelectScalar = {
    id?: boolean
    workflowRoleId?: boolean
    userId?: boolean
    createdAt?: boolean
  }

  export type WorkflowRoleUserOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "workflowRoleId" | "userId" | "createdAt", ExtArgs["result"]["workflowRoleUser"]>
  export type WorkflowRoleUserInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    workflowRole?: boolean | WorkflowRoleDefaultArgs<ExtArgs>
  }
  export type WorkflowRoleUserIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    workflowRole?: boolean | WorkflowRoleDefaultArgs<ExtArgs>
  }
  export type WorkflowRoleUserIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    workflowRole?: boolean | WorkflowRoleDefaultArgs<ExtArgs>
  }

  export type $WorkflowRoleUserPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "WorkflowRoleUser"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      workflowRole: Prisma.$WorkflowRolePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      workflowRoleId: string
      userId: string
      createdAt: Date
    }, ExtArgs["result"]["workflowRoleUser"]>
    composites: {}
  }

  type WorkflowRoleUserGetPayload<S extends boolean | null | undefined | WorkflowRoleUserDefaultArgs> = $Result.GetResult<Prisma.$WorkflowRoleUserPayload, S>

  type WorkflowRoleUserCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<WorkflowRoleUserFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: WorkflowRoleUserCountAggregateInputType | true
    }

  export interface WorkflowRoleUserDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['WorkflowRoleUser'], meta: { name: 'WorkflowRoleUser' } }
    /**
     * Find zero or one WorkflowRoleUser that matches the filter.
     * @param {WorkflowRoleUserFindUniqueArgs} args - Arguments to find a WorkflowRoleUser
     * @example
     * // Get one WorkflowRoleUser
     * const workflowRoleUser = await prisma.workflowRoleUser.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends WorkflowRoleUserFindUniqueArgs>(args: SelectSubset<T, WorkflowRoleUserFindUniqueArgs<ExtArgs>>): Prisma__WorkflowRoleUserClient<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one WorkflowRoleUser that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {WorkflowRoleUserFindUniqueOrThrowArgs} args - Arguments to find a WorkflowRoleUser
     * @example
     * // Get one WorkflowRoleUser
     * const workflowRoleUser = await prisma.workflowRoleUser.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends WorkflowRoleUserFindUniqueOrThrowArgs>(args: SelectSubset<T, WorkflowRoleUserFindUniqueOrThrowArgs<ExtArgs>>): Prisma__WorkflowRoleUserClient<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first WorkflowRoleUser 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 {WorkflowRoleUserFindFirstArgs} args - Arguments to find a WorkflowRoleUser
     * @example
     * // Get one WorkflowRoleUser
     * const workflowRoleUser = await prisma.workflowRoleUser.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends WorkflowRoleUserFindFirstArgs>(args?: SelectSubset<T, WorkflowRoleUserFindFirstArgs<ExtArgs>>): Prisma__WorkflowRoleUserClient<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first WorkflowRoleUser 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 {WorkflowRoleUserFindFirstOrThrowArgs} args - Arguments to find a WorkflowRoleUser
     * @example
     * // Get one WorkflowRoleUser
     * const workflowRoleUser = await prisma.workflowRoleUser.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends WorkflowRoleUserFindFirstOrThrowArgs>(args?: SelectSubset<T, WorkflowRoleUserFindFirstOrThrowArgs<ExtArgs>>): Prisma__WorkflowRoleUserClient<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more WorkflowRoleUsers 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 {WorkflowRoleUserFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all WorkflowRoleUsers
     * const workflowRoleUsers = await prisma.workflowRoleUser.findMany()
     * 
     * // Get first 10 WorkflowRoleUsers
     * const workflowRoleUsers = await prisma.workflowRoleUser.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const workflowRoleUserWithIdOnly = await prisma.workflowRoleUser.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends WorkflowRoleUserFindManyArgs>(args?: SelectSubset<T, WorkflowRoleUserFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a WorkflowRoleUser.
     * @param {WorkflowRoleUserCreateArgs} args - Arguments to create a WorkflowRoleUser.
     * @example
     * // Create one WorkflowRoleUser
     * const WorkflowRoleUser = await prisma.workflowRoleUser.create({
     *   data: {
     *     // ... data to create a WorkflowRoleUser
     *   }
     * })
     * 
     */
    create<T extends WorkflowRoleUserCreateArgs>(args: SelectSubset<T, WorkflowRoleUserCreateArgs<ExtArgs>>): Prisma__WorkflowRoleUserClient<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many WorkflowRoleUsers.
     * @param {WorkflowRoleUserCreateManyArgs} args - Arguments to create many WorkflowRoleUsers.
     * @example
     * // Create many WorkflowRoleUsers
     * const workflowRoleUser = await prisma.workflowRoleUser.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends WorkflowRoleUserCreateManyArgs>(args?: SelectSubset<T, WorkflowRoleUserCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many WorkflowRoleUsers and returns the data saved in the database.
     * @param {WorkflowRoleUserCreateManyAndReturnArgs} args - Arguments to create many WorkflowRoleUsers.
     * @example
     * // Create many WorkflowRoleUsers
     * const workflowRoleUser = await prisma.workflowRoleUser.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many WorkflowRoleUsers and only return the `id`
     * const workflowRoleUserWithIdOnly = await prisma.workflowRoleUser.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 WorkflowRoleUserCreateManyAndReturnArgs>(args?: SelectSubset<T, WorkflowRoleUserCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a WorkflowRoleUser.
     * @param {WorkflowRoleUserDeleteArgs} args - Arguments to delete one WorkflowRoleUser.
     * @example
     * // Delete one WorkflowRoleUser
     * const WorkflowRoleUser = await prisma.workflowRoleUser.delete({
     *   where: {
     *     // ... filter to delete one WorkflowRoleUser
     *   }
     * })
     * 
     */
    delete<T extends WorkflowRoleUserDeleteArgs>(args: SelectSubset<T, WorkflowRoleUserDeleteArgs<ExtArgs>>): Prisma__WorkflowRoleUserClient<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one WorkflowRoleUser.
     * @param {WorkflowRoleUserUpdateArgs} args - Arguments to update one WorkflowRoleUser.
     * @example
     * // Update one WorkflowRoleUser
     * const workflowRoleUser = await prisma.workflowRoleUser.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends WorkflowRoleUserUpdateArgs>(args: SelectSubset<T, WorkflowRoleUserUpdateArgs<ExtArgs>>): Prisma__WorkflowRoleUserClient<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more WorkflowRoleUsers.
     * @param {WorkflowRoleUserDeleteManyArgs} args - Arguments to filter WorkflowRoleUsers to delete.
     * @example
     * // Delete a few WorkflowRoleUsers
     * const { count } = await prisma.workflowRoleUser.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends WorkflowRoleUserDeleteManyArgs>(args?: SelectSubset<T, WorkflowRoleUserDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more WorkflowRoleUsers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WorkflowRoleUserUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many WorkflowRoleUsers
     * const workflowRoleUser = await prisma.workflowRoleUser.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends WorkflowRoleUserUpdateManyArgs>(args: SelectSubset<T, WorkflowRoleUserUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more WorkflowRoleUsers and returns the data updated in the database.
     * @param {WorkflowRoleUserUpdateManyAndReturnArgs} args - Arguments to update many WorkflowRoleUsers.
     * @example
     * // Update many WorkflowRoleUsers
     * const workflowRoleUser = await prisma.workflowRoleUser.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more WorkflowRoleUsers and only return the `id`
     * const workflowRoleUserWithIdOnly = await prisma.workflowRoleUser.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 WorkflowRoleUserUpdateManyAndReturnArgs>(args: SelectSubset<T, WorkflowRoleUserUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one WorkflowRoleUser.
     * @param {WorkflowRoleUserUpsertArgs} args - Arguments to update or create a WorkflowRoleUser.
     * @example
     * // Update or create a WorkflowRoleUser
     * const workflowRoleUser = await prisma.workflowRoleUser.upsert({
     *   create: {
     *     // ... data to create a WorkflowRoleUser
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the WorkflowRoleUser we want to update
     *   }
     * })
     */
    upsert<T extends WorkflowRoleUserUpsertArgs>(args: SelectSubset<T, WorkflowRoleUserUpsertArgs<ExtArgs>>): Prisma__WorkflowRoleUserClient<$Result.GetResult<Prisma.$WorkflowRoleUserPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of WorkflowRoleUsers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WorkflowRoleUserCountArgs} args - Arguments to filter WorkflowRoleUsers to count.
     * @example
     * // Count the number of WorkflowRoleUsers
     * const count = await prisma.workflowRoleUser.count({
     *   where: {
     *     // ... the filter for the WorkflowRoleUsers we want to count
     *   }
     * })
    **/
    count<T extends WorkflowRoleUserCountArgs>(
      args?: Subset<T, WorkflowRoleUserCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], WorkflowRoleUserCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a WorkflowRoleUser.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WorkflowRoleUserAggregateArgs} 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 WorkflowRoleUserAggregateArgs>(args: Subset<T, WorkflowRoleUserAggregateArgs>): Prisma.PrismaPromise<GetWorkflowRoleUserAggregateType<T>>

    /**
     * Group by WorkflowRoleUser.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WorkflowRoleUserGroupByArgs} 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 WorkflowRoleUserGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: WorkflowRoleUserGroupByArgs['orderBy'] }
        : { orderBy?: WorkflowRoleUserGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, WorkflowRoleUserGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetWorkflowRoleUserGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the WorkflowRoleUser model
   */
  readonly fields: WorkflowRoleUserFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for WorkflowRoleUser.
   * 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__WorkflowRoleUserClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    workflowRole<T extends WorkflowRoleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, WorkflowRoleDefaultArgs<ExtArgs>>): Prisma__WorkflowRoleClient<$Result.GetResult<Prisma.$WorkflowRolePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the WorkflowRoleUser model
   */
  interface WorkflowRoleUserFieldRefs {
    readonly id: FieldRef<"WorkflowRoleUser", 'String'>
    readonly workflowRoleId: FieldRef<"WorkflowRoleUser", 'String'>
    readonly userId: FieldRef<"WorkflowRoleUser", 'String'>
    readonly createdAt: FieldRef<"WorkflowRoleUser", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * WorkflowRoleUser findUnique
   */
  export type WorkflowRoleUserFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRoleUser to fetch.
     */
    where: WorkflowRoleUserWhereUniqueInput
  }

  /**
   * WorkflowRoleUser findUniqueOrThrow
   */
  export type WorkflowRoleUserFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRoleUser to fetch.
     */
    where: WorkflowRoleUserWhereUniqueInput
  }

  /**
   * WorkflowRoleUser findFirst
   */
  export type WorkflowRoleUserFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRoleUser to fetch.
     */
    where?: WorkflowRoleUserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WorkflowRoleUsers to fetch.
     */
    orderBy?: WorkflowRoleUserOrderByWithRelationInput | WorkflowRoleUserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WorkflowRoleUsers.
     */
    cursor?: WorkflowRoleUserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WorkflowRoleUsers 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` WorkflowRoleUsers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WorkflowRoleUsers.
     */
    distinct?: WorkflowRoleUserScalarFieldEnum | WorkflowRoleUserScalarFieldEnum[]
  }

  /**
   * WorkflowRoleUser findFirstOrThrow
   */
  export type WorkflowRoleUserFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRoleUser to fetch.
     */
    where?: WorkflowRoleUserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WorkflowRoleUsers to fetch.
     */
    orderBy?: WorkflowRoleUserOrderByWithRelationInput | WorkflowRoleUserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WorkflowRoleUsers.
     */
    cursor?: WorkflowRoleUserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WorkflowRoleUsers 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` WorkflowRoleUsers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WorkflowRoleUsers.
     */
    distinct?: WorkflowRoleUserScalarFieldEnum | WorkflowRoleUserScalarFieldEnum[]
  }

  /**
   * WorkflowRoleUser findMany
   */
  export type WorkflowRoleUserFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * Filter, which WorkflowRoleUsers to fetch.
     */
    where?: WorkflowRoleUserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WorkflowRoleUsers to fetch.
     */
    orderBy?: WorkflowRoleUserOrderByWithRelationInput | WorkflowRoleUserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing WorkflowRoleUsers.
     */
    cursor?: WorkflowRoleUserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WorkflowRoleUsers 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` WorkflowRoleUsers.
     */
    skip?: number
    distinct?: WorkflowRoleUserScalarFieldEnum | WorkflowRoleUserScalarFieldEnum[]
  }

  /**
   * WorkflowRoleUser create
   */
  export type WorkflowRoleUserCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * The data needed to create a WorkflowRoleUser.
     */
    data: XOR<WorkflowRoleUserCreateInput, WorkflowRoleUserUncheckedCreateInput>
  }

  /**
   * WorkflowRoleUser createMany
   */
  export type WorkflowRoleUserCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many WorkflowRoleUsers.
     */
    data: WorkflowRoleUserCreateManyInput | WorkflowRoleUserCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * WorkflowRoleUser createManyAndReturn
   */
  export type WorkflowRoleUserCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * The data used to create many WorkflowRoleUsers.
     */
    data: WorkflowRoleUserCreateManyInput | WorkflowRoleUserCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * WorkflowRoleUser update
   */
  export type WorkflowRoleUserUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * The data needed to update a WorkflowRoleUser.
     */
    data: XOR<WorkflowRoleUserUpdateInput, WorkflowRoleUserUncheckedUpdateInput>
    /**
     * Choose, which WorkflowRoleUser to update.
     */
    where: WorkflowRoleUserWhereUniqueInput
  }

  /**
   * WorkflowRoleUser updateMany
   */
  export type WorkflowRoleUserUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update WorkflowRoleUsers.
     */
    data: XOR<WorkflowRoleUserUpdateManyMutationInput, WorkflowRoleUserUncheckedUpdateManyInput>
    /**
     * Filter which WorkflowRoleUsers to update
     */
    where?: WorkflowRoleUserWhereInput
    /**
     * Limit how many WorkflowRoleUsers to update.
     */
    limit?: number
  }

  /**
   * WorkflowRoleUser updateManyAndReturn
   */
  export type WorkflowRoleUserUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * The data used to update WorkflowRoleUsers.
     */
    data: XOR<WorkflowRoleUserUpdateManyMutationInput, WorkflowRoleUserUncheckedUpdateManyInput>
    /**
     * Filter which WorkflowRoleUsers to update
     */
    where?: WorkflowRoleUserWhereInput
    /**
     * Limit how many WorkflowRoleUsers to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * WorkflowRoleUser upsert
   */
  export type WorkflowRoleUserUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * The filter to search for the WorkflowRoleUser to update in case it exists.
     */
    where: WorkflowRoleUserWhereUniqueInput
    /**
     * In case the WorkflowRoleUser found by the `where` argument doesn't exist, create a new WorkflowRoleUser with this data.
     */
    create: XOR<WorkflowRoleUserCreateInput, WorkflowRoleUserUncheckedCreateInput>
    /**
     * In case the WorkflowRoleUser was found with the provided `where` argument, update it with this data.
     */
    update: XOR<WorkflowRoleUserUpdateInput, WorkflowRoleUserUncheckedUpdateInput>
  }

  /**
   * WorkflowRoleUser delete
   */
  export type WorkflowRoleUserDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
    /**
     * Filter which WorkflowRoleUser to delete.
     */
    where: WorkflowRoleUserWhereUniqueInput
  }

  /**
   * WorkflowRoleUser deleteMany
   */
  export type WorkflowRoleUserDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WorkflowRoleUsers to delete
     */
    where?: WorkflowRoleUserWhereInput
    /**
     * Limit how many WorkflowRoleUsers to delete.
     */
    limit?: number
  }

  /**
   * WorkflowRoleUser without action
   */
  export type WorkflowRoleUserDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WorkflowRoleUser
     */
    select?: WorkflowRoleUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WorkflowRoleUser
     */
    omit?: WorkflowRoleUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: WorkflowRoleUserInclude<ExtArgs> | null
  }


  /**
   * Model UserRole
   */

  export type AggregateUserRole = {
    _count: UserRoleCountAggregateOutputType | null
    _min: UserRoleMinAggregateOutputType | null
    _max: UserRoleMaxAggregateOutputType | null
  }

  export type UserRoleMinAggregateOutputType = {
    id: string | null
    userId: string | null
    roleId: string | null
    organizationId: string | null
    createdAt: Date | null
    lastReviewedAt: Date | null
    lastReviewedBy: string | null
    reviewComment: string | null
  }

  export type UserRoleMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    roleId: string | null
    organizationId: string | null
    createdAt: Date | null
    lastReviewedAt: Date | null
    lastReviewedBy: string | null
    reviewComment: string | null
  }

  export type UserRoleCountAggregateOutputType = {
    id: number
    userId: number
    roleId: number
    organizationId: number
    createdAt: number
    lastReviewedAt: number
    lastReviewedBy: number
    reviewComment: number
    _all: number
  }


  export type UserRoleMinAggregateInputType = {
    id?: true
    userId?: true
    roleId?: true
    organizationId?: true
    createdAt?: true
    lastReviewedAt?: true
    lastReviewedBy?: true
    reviewComment?: true
  }

  export type UserRoleMaxAggregateInputType = {
    id?: true
    userId?: true
    roleId?: true
    organizationId?: true
    createdAt?: true
    lastReviewedAt?: true
    lastReviewedBy?: true
    reviewComment?: true
  }

  export type UserRoleCountAggregateInputType = {
    id?: true
    userId?: true
    roleId?: true
    organizationId?: true
    createdAt?: true
    lastReviewedAt?: true
    lastReviewedBy?: true
    reviewComment?: true
    _all?: true
  }

  export type UserRoleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UserRole to aggregate.
     */
    where?: UserRoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserRoles to fetch.
     */
    orderBy?: UserRoleOrderByWithRelationInput | UserRoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: UserRoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserRoles 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` UserRoles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned UserRoles
    **/
    _count?: true | UserRoleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: UserRoleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: UserRoleMaxAggregateInputType
  }

  export type GetUserRoleAggregateType<T extends UserRoleAggregateArgs> = {
        [P in keyof T & keyof AggregateUserRole]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateUserRole[P]>
      : GetScalarType<T[P], AggregateUserRole[P]>
  }




  export type UserRoleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserRoleWhereInput
    orderBy?: UserRoleOrderByWithAggregationInput | UserRoleOrderByWithAggregationInput[]
    by: UserRoleScalarFieldEnum[] | UserRoleScalarFieldEnum
    having?: UserRoleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: UserRoleCountAggregateInputType | true
    _min?: UserRoleMinAggregateInputType
    _max?: UserRoleMaxAggregateInputType
  }

  export type UserRoleGroupByOutputType = {
    id: string
    userId: string
    roleId: string
    organizationId: string | null
    createdAt: Date
    lastReviewedAt: Date | null
    lastReviewedBy: string | null
    reviewComment: string | null
    _count: UserRoleCountAggregateOutputType | null
    _min: UserRoleMinAggregateOutputType | null
    _max: UserRoleMaxAggregateOutputType | null
  }

  type GetUserRoleGroupByPayload<T extends UserRoleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<UserRoleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof UserRoleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], UserRoleGroupByOutputType[P]>
            : GetScalarType<T[P], UserRoleGroupByOutputType[P]>
        }
      >
    >


  export type UserRoleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    roleId?: boolean
    organizationId?: boolean
    createdAt?: boolean
    lastReviewedAt?: boolean
    lastReviewedBy?: boolean
    reviewComment?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | UserRole$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["userRole"]>

  export type UserRoleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    roleId?: boolean
    organizationId?: boolean
    createdAt?: boolean
    lastReviewedAt?: boolean
    lastReviewedBy?: boolean
    reviewComment?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | UserRole$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["userRole"]>

  export type UserRoleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    roleId?: boolean
    organizationId?: boolean
    createdAt?: boolean
    lastReviewedAt?: boolean
    lastReviewedBy?: boolean
    reviewComment?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | UserRole$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["userRole"]>

  export type UserRoleSelectScalar = {
    id?: boolean
    userId?: boolean
    roleId?: boolean
    organizationId?: boolean
    createdAt?: boolean
    lastReviewedAt?: boolean
    lastReviewedBy?: boolean
    reviewComment?: boolean
  }

  export type UserRoleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "roleId" | "organizationId" | "createdAt" | "lastReviewedAt" | "lastReviewedBy" | "reviewComment", ExtArgs["result"]["userRole"]>
  export type UserRoleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | UserRole$organizationArgs<ExtArgs>
  }
  export type UserRoleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | UserRole$organizationArgs<ExtArgs>
  }
  export type UserRoleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | UserRole$organizationArgs<ExtArgs>
  }

  export type $UserRolePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "UserRole"
    objects: {
      role: Prisma.$RolePayload<ExtArgs>
      user: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      roleId: string
      organizationId: string | null
      createdAt: Date
      lastReviewedAt: Date | null
      lastReviewedBy: string | null
      reviewComment: string | null
    }, ExtArgs["result"]["userRole"]>
    composites: {}
  }

  type UserRoleGetPayload<S extends boolean | null | undefined | UserRoleDefaultArgs> = $Result.GetResult<Prisma.$UserRolePayload, S>

  type UserRoleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<UserRoleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: UserRoleCountAggregateInputType | true
    }

  export interface UserRoleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['UserRole'], meta: { name: 'UserRole' } }
    /**
     * Find zero or one UserRole that matches the filter.
     * @param {UserRoleFindUniqueArgs} args - Arguments to find a UserRole
     * @example
     * // Get one UserRole
     * const userRole = await prisma.userRole.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends UserRoleFindUniqueArgs>(args: SelectSubset<T, UserRoleFindUniqueArgs<ExtArgs>>): Prisma__UserRoleClient<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one UserRole that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {UserRoleFindUniqueOrThrowArgs} args - Arguments to find a UserRole
     * @example
     * // Get one UserRole
     * const userRole = await prisma.userRole.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends UserRoleFindUniqueOrThrowArgs>(args: SelectSubset<T, UserRoleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__UserRoleClient<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UserRole 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 {UserRoleFindFirstArgs} args - Arguments to find a UserRole
     * @example
     * // Get one UserRole
     * const userRole = await prisma.userRole.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends UserRoleFindFirstArgs>(args?: SelectSubset<T, UserRoleFindFirstArgs<ExtArgs>>): Prisma__UserRoleClient<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UserRole 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 {UserRoleFindFirstOrThrowArgs} args - Arguments to find a UserRole
     * @example
     * // Get one UserRole
     * const userRole = await prisma.userRole.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends UserRoleFindFirstOrThrowArgs>(args?: SelectSubset<T, UserRoleFindFirstOrThrowArgs<ExtArgs>>): Prisma__UserRoleClient<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more UserRoles 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 {UserRoleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all UserRoles
     * const userRoles = await prisma.userRole.findMany()
     * 
     * // Get first 10 UserRoles
     * const userRoles = await prisma.userRole.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const userRoleWithIdOnly = await prisma.userRole.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends UserRoleFindManyArgs>(args?: SelectSubset<T, UserRoleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a UserRole.
     * @param {UserRoleCreateArgs} args - Arguments to create a UserRole.
     * @example
     * // Create one UserRole
     * const UserRole = await prisma.userRole.create({
     *   data: {
     *     // ... data to create a UserRole
     *   }
     * })
     * 
     */
    create<T extends UserRoleCreateArgs>(args: SelectSubset<T, UserRoleCreateArgs<ExtArgs>>): Prisma__UserRoleClient<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many UserRoles.
     * @param {UserRoleCreateManyArgs} args - Arguments to create many UserRoles.
     * @example
     * // Create many UserRoles
     * const userRole = await prisma.userRole.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends UserRoleCreateManyArgs>(args?: SelectSubset<T, UserRoleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many UserRoles and returns the data saved in the database.
     * @param {UserRoleCreateManyAndReturnArgs} args - Arguments to create many UserRoles.
     * @example
     * // Create many UserRoles
     * const userRole = await prisma.userRole.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many UserRoles and only return the `id`
     * const userRoleWithIdOnly = await prisma.userRole.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 UserRoleCreateManyAndReturnArgs>(args?: SelectSubset<T, UserRoleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a UserRole.
     * @param {UserRoleDeleteArgs} args - Arguments to delete one UserRole.
     * @example
     * // Delete one UserRole
     * const UserRole = await prisma.userRole.delete({
     *   where: {
     *     // ... filter to delete one UserRole
     *   }
     * })
     * 
     */
    delete<T extends UserRoleDeleteArgs>(args: SelectSubset<T, UserRoleDeleteArgs<ExtArgs>>): Prisma__UserRoleClient<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one UserRole.
     * @param {UserRoleUpdateArgs} args - Arguments to update one UserRole.
     * @example
     * // Update one UserRole
     * const userRole = await prisma.userRole.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends UserRoleUpdateArgs>(args: SelectSubset<T, UserRoleUpdateArgs<ExtArgs>>): Prisma__UserRoleClient<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more UserRoles.
     * @param {UserRoleDeleteManyArgs} args - Arguments to filter UserRoles to delete.
     * @example
     * // Delete a few UserRoles
     * const { count } = await prisma.userRole.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends UserRoleDeleteManyArgs>(args?: SelectSubset<T, UserRoleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UserRoles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserRoleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many UserRoles
     * const userRole = await prisma.userRole.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends UserRoleUpdateManyArgs>(args: SelectSubset<T, UserRoleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UserRoles and returns the data updated in the database.
     * @param {UserRoleUpdateManyAndReturnArgs} args - Arguments to update many UserRoles.
     * @example
     * // Update many UserRoles
     * const userRole = await prisma.userRole.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more UserRoles and only return the `id`
     * const userRoleWithIdOnly = await prisma.userRole.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 UserRoleUpdateManyAndReturnArgs>(args: SelectSubset<T, UserRoleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one UserRole.
     * @param {UserRoleUpsertArgs} args - Arguments to update or create a UserRole.
     * @example
     * // Update or create a UserRole
     * const userRole = await prisma.userRole.upsert({
     *   create: {
     *     // ... data to create a UserRole
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the UserRole we want to update
     *   }
     * })
     */
    upsert<T extends UserRoleUpsertArgs>(args: SelectSubset<T, UserRoleUpsertArgs<ExtArgs>>): Prisma__UserRoleClient<$Result.GetResult<Prisma.$UserRolePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of UserRoles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserRoleCountArgs} args - Arguments to filter UserRoles to count.
     * @example
     * // Count the number of UserRoles
     * const count = await prisma.userRole.count({
     *   where: {
     *     // ... the filter for the UserRoles we want to count
     *   }
     * })
    **/
    count<T extends UserRoleCountArgs>(
      args?: Subset<T, UserRoleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], UserRoleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a UserRole.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserRoleAggregateArgs} 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 UserRoleAggregateArgs>(args: Subset<T, UserRoleAggregateArgs>): Prisma.PrismaPromise<GetUserRoleAggregateType<T>>

    /**
     * Group by UserRole.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserRoleGroupByArgs} 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 UserRoleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: UserRoleGroupByArgs['orderBy'] }
        : { orderBy?: UserRoleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, UserRoleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetUserRoleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the UserRole model
   */
  readonly fields: UserRoleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for UserRole.
   * 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__UserRoleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    role<T extends RoleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RoleDefaultArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends UserRole$organizationArgs<ExtArgs> = {}>(args?: Subset<T, UserRole$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the UserRole model
   */
  interface UserRoleFieldRefs {
    readonly id: FieldRef<"UserRole", 'String'>
    readonly userId: FieldRef<"UserRole", 'String'>
    readonly roleId: FieldRef<"UserRole", 'String'>
    readonly organizationId: FieldRef<"UserRole", 'String'>
    readonly createdAt: FieldRef<"UserRole", 'DateTime'>
    readonly lastReviewedAt: FieldRef<"UserRole", 'DateTime'>
    readonly lastReviewedBy: FieldRef<"UserRole", 'String'>
    readonly reviewComment: FieldRef<"UserRole", 'String'>
  }
    

  // Custom InputTypes
  /**
   * UserRole findUnique
   */
  export type UserRoleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * Filter, which UserRole to fetch.
     */
    where: UserRoleWhereUniqueInput
  }

  /**
   * UserRole findUniqueOrThrow
   */
  export type UserRoleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * Filter, which UserRole to fetch.
     */
    where: UserRoleWhereUniqueInput
  }

  /**
   * UserRole findFirst
   */
  export type UserRoleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * Filter, which UserRole to fetch.
     */
    where?: UserRoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserRoles to fetch.
     */
    orderBy?: UserRoleOrderByWithRelationInput | UserRoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UserRoles.
     */
    cursor?: UserRoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserRoles 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` UserRoles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UserRoles.
     */
    distinct?: UserRoleScalarFieldEnum | UserRoleScalarFieldEnum[]
  }

  /**
   * UserRole findFirstOrThrow
   */
  export type UserRoleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * Filter, which UserRole to fetch.
     */
    where?: UserRoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserRoles to fetch.
     */
    orderBy?: UserRoleOrderByWithRelationInput | UserRoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UserRoles.
     */
    cursor?: UserRoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserRoles 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` UserRoles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UserRoles.
     */
    distinct?: UserRoleScalarFieldEnum | UserRoleScalarFieldEnum[]
  }

  /**
   * UserRole findMany
   */
  export type UserRoleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * Filter, which UserRoles to fetch.
     */
    where?: UserRoleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserRoles to fetch.
     */
    orderBy?: UserRoleOrderByWithRelationInput | UserRoleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing UserRoles.
     */
    cursor?: UserRoleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserRoles 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` UserRoles.
     */
    skip?: number
    distinct?: UserRoleScalarFieldEnum | UserRoleScalarFieldEnum[]
  }

  /**
   * UserRole create
   */
  export type UserRoleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * The data needed to create a UserRole.
     */
    data: XOR<UserRoleCreateInput, UserRoleUncheckedCreateInput>
  }

  /**
   * UserRole createMany
   */
  export type UserRoleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many UserRoles.
     */
    data: UserRoleCreateManyInput | UserRoleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * UserRole createManyAndReturn
   */
  export type UserRoleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * The data used to create many UserRoles.
     */
    data: UserRoleCreateManyInput | UserRoleCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * UserRole update
   */
  export type UserRoleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * The data needed to update a UserRole.
     */
    data: XOR<UserRoleUpdateInput, UserRoleUncheckedUpdateInput>
    /**
     * Choose, which UserRole to update.
     */
    where: UserRoleWhereUniqueInput
  }

  /**
   * UserRole updateMany
   */
  export type UserRoleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update UserRoles.
     */
    data: XOR<UserRoleUpdateManyMutationInput, UserRoleUncheckedUpdateManyInput>
    /**
     * Filter which UserRoles to update
     */
    where?: UserRoleWhereInput
    /**
     * Limit how many UserRoles to update.
     */
    limit?: number
  }

  /**
   * UserRole updateManyAndReturn
   */
  export type UserRoleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * The data used to update UserRoles.
     */
    data: XOR<UserRoleUpdateManyMutationInput, UserRoleUncheckedUpdateManyInput>
    /**
     * Filter which UserRoles to update
     */
    where?: UserRoleWhereInput
    /**
     * Limit how many UserRoles to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * UserRole upsert
   */
  export type UserRoleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * The filter to search for the UserRole to update in case it exists.
     */
    where: UserRoleWhereUniqueInput
    /**
     * In case the UserRole found by the `where` argument doesn't exist, create a new UserRole with this data.
     */
    create: XOR<UserRoleCreateInput, UserRoleUncheckedCreateInput>
    /**
     * In case the UserRole was found with the provided `where` argument, update it with this data.
     */
    update: XOR<UserRoleUpdateInput, UserRoleUncheckedUpdateInput>
  }

  /**
   * UserRole delete
   */
  export type UserRoleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
    /**
     * Filter which UserRole to delete.
     */
    where: UserRoleWhereUniqueInput
  }

  /**
   * UserRole deleteMany
   */
  export type UserRoleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UserRoles to delete
     */
    where?: UserRoleWhereInput
    /**
     * Limit how many UserRoles to delete.
     */
    limit?: number
  }

  /**
   * UserRole.organization
   */
  export type UserRole$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * UserRole without action
   */
  export type UserRoleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserRole
     */
    select?: UserRoleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserRole
     */
    omit?: UserRoleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserRoleInclude<ExtArgs> | null
  }


  /**
   * Model RolePermission
   */

  export type AggregateRolePermission = {
    _count: RolePermissionCountAggregateOutputType | null
    _min: RolePermissionMinAggregateOutputType | null
    _max: RolePermissionMaxAggregateOutputType | null
  }

  export type RolePermissionMinAggregateOutputType = {
    id: string | null
    roleId: string | null
    permissionId: string | null
    createdAt: Date | null
  }

  export type RolePermissionMaxAggregateOutputType = {
    id: string | null
    roleId: string | null
    permissionId: string | null
    createdAt: Date | null
  }

  export type RolePermissionCountAggregateOutputType = {
    id: number
    roleId: number
    permissionId: number
    createdAt: number
    _all: number
  }


  export type RolePermissionMinAggregateInputType = {
    id?: true
    roleId?: true
    permissionId?: true
    createdAt?: true
  }

  export type RolePermissionMaxAggregateInputType = {
    id?: true
    roleId?: true
    permissionId?: true
    createdAt?: true
  }

  export type RolePermissionCountAggregateInputType = {
    id?: true
    roleId?: true
    permissionId?: true
    createdAt?: true
    _all?: true
  }

  export type RolePermissionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RolePermission to aggregate.
     */
    where?: RolePermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RolePermissions to fetch.
     */
    orderBy?: RolePermissionOrderByWithRelationInput | RolePermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RolePermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RolePermissions 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` RolePermissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RolePermissions
    **/
    _count?: true | RolePermissionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RolePermissionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RolePermissionMaxAggregateInputType
  }

  export type GetRolePermissionAggregateType<T extends RolePermissionAggregateArgs> = {
        [P in keyof T & keyof AggregateRolePermission]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRolePermission[P]>
      : GetScalarType<T[P], AggregateRolePermission[P]>
  }




  export type RolePermissionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RolePermissionWhereInput
    orderBy?: RolePermissionOrderByWithAggregationInput | RolePermissionOrderByWithAggregationInput[]
    by: RolePermissionScalarFieldEnum[] | RolePermissionScalarFieldEnum
    having?: RolePermissionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RolePermissionCountAggregateInputType | true
    _min?: RolePermissionMinAggregateInputType
    _max?: RolePermissionMaxAggregateInputType
  }

  export type RolePermissionGroupByOutputType = {
    id: string
    roleId: string
    permissionId: string
    createdAt: Date
    _count: RolePermissionCountAggregateOutputType | null
    _min: RolePermissionMinAggregateOutputType | null
    _max: RolePermissionMaxAggregateOutputType | null
  }

  type GetRolePermissionGroupByPayload<T extends RolePermissionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RolePermissionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RolePermissionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RolePermissionGroupByOutputType[P]>
            : GetScalarType<T[P], RolePermissionGroupByOutputType[P]>
        }
      >
    >


  export type RolePermissionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    permissionId?: boolean
    createdAt?: boolean
    permission?: boolean | PermissionDefaultArgs<ExtArgs>
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["rolePermission"]>

  export type RolePermissionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    permissionId?: boolean
    createdAt?: boolean
    permission?: boolean | PermissionDefaultArgs<ExtArgs>
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["rolePermission"]>

  export type RolePermissionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    permissionId?: boolean
    createdAt?: boolean
    permission?: boolean | PermissionDefaultArgs<ExtArgs>
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["rolePermission"]>

  export type RolePermissionSelectScalar = {
    id?: boolean
    roleId?: boolean
    permissionId?: boolean
    createdAt?: boolean
  }

  export type RolePermissionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "roleId" | "permissionId" | "createdAt", ExtArgs["result"]["rolePermission"]>
  export type RolePermissionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    permission?: boolean | PermissionDefaultArgs<ExtArgs>
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }
  export type RolePermissionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    permission?: boolean | PermissionDefaultArgs<ExtArgs>
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }
  export type RolePermissionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    permission?: boolean | PermissionDefaultArgs<ExtArgs>
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }

  export type $RolePermissionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RolePermission"
    objects: {
      permission: Prisma.$PermissionPayload<ExtArgs>
      role: Prisma.$RolePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      roleId: string
      permissionId: string
      createdAt: Date
    }, ExtArgs["result"]["rolePermission"]>
    composites: {}
  }

  type RolePermissionGetPayload<S extends boolean | null | undefined | RolePermissionDefaultArgs> = $Result.GetResult<Prisma.$RolePermissionPayload, S>

  type RolePermissionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RolePermissionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RolePermissionCountAggregateInputType | true
    }

  export interface RolePermissionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RolePermission'], meta: { name: 'RolePermission' } }
    /**
     * Find zero or one RolePermission that matches the filter.
     * @param {RolePermissionFindUniqueArgs} args - Arguments to find a RolePermission
     * @example
     * // Get one RolePermission
     * const rolePermission = await prisma.rolePermission.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RolePermissionFindUniqueArgs>(args: SelectSubset<T, RolePermissionFindUniqueArgs<ExtArgs>>): Prisma__RolePermissionClient<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RolePermission that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RolePermissionFindUniqueOrThrowArgs} args - Arguments to find a RolePermission
     * @example
     * // Get one RolePermission
     * const rolePermission = await prisma.rolePermission.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RolePermissionFindUniqueOrThrowArgs>(args: SelectSubset<T, RolePermissionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RolePermissionClient<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RolePermission 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 {RolePermissionFindFirstArgs} args - Arguments to find a RolePermission
     * @example
     * // Get one RolePermission
     * const rolePermission = await prisma.rolePermission.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RolePermissionFindFirstArgs>(args?: SelectSubset<T, RolePermissionFindFirstArgs<ExtArgs>>): Prisma__RolePermissionClient<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RolePermission 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 {RolePermissionFindFirstOrThrowArgs} args - Arguments to find a RolePermission
     * @example
     * // Get one RolePermission
     * const rolePermission = await prisma.rolePermission.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RolePermissionFindFirstOrThrowArgs>(args?: SelectSubset<T, RolePermissionFindFirstOrThrowArgs<ExtArgs>>): Prisma__RolePermissionClient<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RolePermissions 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 {RolePermissionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RolePermissions
     * const rolePermissions = await prisma.rolePermission.findMany()
     * 
     * // Get first 10 RolePermissions
     * const rolePermissions = await prisma.rolePermission.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const rolePermissionWithIdOnly = await prisma.rolePermission.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RolePermissionFindManyArgs>(args?: SelectSubset<T, RolePermissionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RolePermission.
     * @param {RolePermissionCreateArgs} args - Arguments to create a RolePermission.
     * @example
     * // Create one RolePermission
     * const RolePermission = await prisma.rolePermission.create({
     *   data: {
     *     // ... data to create a RolePermission
     *   }
     * })
     * 
     */
    create<T extends RolePermissionCreateArgs>(args: SelectSubset<T, RolePermissionCreateArgs<ExtArgs>>): Prisma__RolePermissionClient<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RolePermissions.
     * @param {RolePermissionCreateManyArgs} args - Arguments to create many RolePermissions.
     * @example
     * // Create many RolePermissions
     * const rolePermission = await prisma.rolePermission.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RolePermissionCreateManyArgs>(args?: SelectSubset<T, RolePermissionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RolePermissions and returns the data saved in the database.
     * @param {RolePermissionCreateManyAndReturnArgs} args - Arguments to create many RolePermissions.
     * @example
     * // Create many RolePermissions
     * const rolePermission = await prisma.rolePermission.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RolePermissions and only return the `id`
     * const rolePermissionWithIdOnly = await prisma.rolePermission.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 RolePermissionCreateManyAndReturnArgs>(args?: SelectSubset<T, RolePermissionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RolePermission.
     * @param {RolePermissionDeleteArgs} args - Arguments to delete one RolePermission.
     * @example
     * // Delete one RolePermission
     * const RolePermission = await prisma.rolePermission.delete({
     *   where: {
     *     // ... filter to delete one RolePermission
     *   }
     * })
     * 
     */
    delete<T extends RolePermissionDeleteArgs>(args: SelectSubset<T, RolePermissionDeleteArgs<ExtArgs>>): Prisma__RolePermissionClient<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RolePermission.
     * @param {RolePermissionUpdateArgs} args - Arguments to update one RolePermission.
     * @example
     * // Update one RolePermission
     * const rolePermission = await prisma.rolePermission.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RolePermissionUpdateArgs>(args: SelectSubset<T, RolePermissionUpdateArgs<ExtArgs>>): Prisma__RolePermissionClient<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RolePermissions.
     * @param {RolePermissionDeleteManyArgs} args - Arguments to filter RolePermissions to delete.
     * @example
     * // Delete a few RolePermissions
     * const { count } = await prisma.rolePermission.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RolePermissionDeleteManyArgs>(args?: SelectSubset<T, RolePermissionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RolePermissions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RolePermissionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RolePermissions
     * const rolePermission = await prisma.rolePermission.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RolePermissionUpdateManyArgs>(args: SelectSubset<T, RolePermissionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RolePermissions and returns the data updated in the database.
     * @param {RolePermissionUpdateManyAndReturnArgs} args - Arguments to update many RolePermissions.
     * @example
     * // Update many RolePermissions
     * const rolePermission = await prisma.rolePermission.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RolePermissions and only return the `id`
     * const rolePermissionWithIdOnly = await prisma.rolePermission.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 RolePermissionUpdateManyAndReturnArgs>(args: SelectSubset<T, RolePermissionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RolePermission.
     * @param {RolePermissionUpsertArgs} args - Arguments to update or create a RolePermission.
     * @example
     * // Update or create a RolePermission
     * const rolePermission = await prisma.rolePermission.upsert({
     *   create: {
     *     // ... data to create a RolePermission
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RolePermission we want to update
     *   }
     * })
     */
    upsert<T extends RolePermissionUpsertArgs>(args: SelectSubset<T, RolePermissionUpsertArgs<ExtArgs>>): Prisma__RolePermissionClient<$Result.GetResult<Prisma.$RolePermissionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RolePermissions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RolePermissionCountArgs} args - Arguments to filter RolePermissions to count.
     * @example
     * // Count the number of RolePermissions
     * const count = await prisma.rolePermission.count({
     *   where: {
     *     // ... the filter for the RolePermissions we want to count
     *   }
     * })
    **/
    count<T extends RolePermissionCountArgs>(
      args?: Subset<T, RolePermissionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RolePermissionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RolePermission.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RolePermissionAggregateArgs} 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 RolePermissionAggregateArgs>(args: Subset<T, RolePermissionAggregateArgs>): Prisma.PrismaPromise<GetRolePermissionAggregateType<T>>

    /**
     * Group by RolePermission.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RolePermissionGroupByArgs} 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 RolePermissionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RolePermissionGroupByArgs['orderBy'] }
        : { orderBy?: RolePermissionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RolePermissionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRolePermissionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RolePermission model
   */
  readonly fields: RolePermissionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RolePermission.
   * 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__RolePermissionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    permission<T extends PermissionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PermissionDefaultArgs<ExtArgs>>): Prisma__PermissionClient<$Result.GetResult<Prisma.$PermissionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    role<T extends RoleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RoleDefaultArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RolePermission model
   */
  interface RolePermissionFieldRefs {
    readonly id: FieldRef<"RolePermission", 'String'>
    readonly roleId: FieldRef<"RolePermission", 'String'>
    readonly permissionId: FieldRef<"RolePermission", 'String'>
    readonly createdAt: FieldRef<"RolePermission", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RolePermission findUnique
   */
  export type RolePermissionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * Filter, which RolePermission to fetch.
     */
    where: RolePermissionWhereUniqueInput
  }

  /**
   * RolePermission findUniqueOrThrow
   */
  export type RolePermissionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * Filter, which RolePermission to fetch.
     */
    where: RolePermissionWhereUniqueInput
  }

  /**
   * RolePermission findFirst
   */
  export type RolePermissionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * Filter, which RolePermission to fetch.
     */
    where?: RolePermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RolePermissions to fetch.
     */
    orderBy?: RolePermissionOrderByWithRelationInput | RolePermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RolePermissions.
     */
    cursor?: RolePermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RolePermissions 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` RolePermissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RolePermissions.
     */
    distinct?: RolePermissionScalarFieldEnum | RolePermissionScalarFieldEnum[]
  }

  /**
   * RolePermission findFirstOrThrow
   */
  export type RolePermissionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * Filter, which RolePermission to fetch.
     */
    where?: RolePermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RolePermissions to fetch.
     */
    orderBy?: RolePermissionOrderByWithRelationInput | RolePermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RolePermissions.
     */
    cursor?: RolePermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RolePermissions 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` RolePermissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RolePermissions.
     */
    distinct?: RolePermissionScalarFieldEnum | RolePermissionScalarFieldEnum[]
  }

  /**
   * RolePermission findMany
   */
  export type RolePermissionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * Filter, which RolePermissions to fetch.
     */
    where?: RolePermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RolePermissions to fetch.
     */
    orderBy?: RolePermissionOrderByWithRelationInput | RolePermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RolePermissions.
     */
    cursor?: RolePermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RolePermissions 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` RolePermissions.
     */
    skip?: number
    distinct?: RolePermissionScalarFieldEnum | RolePermissionScalarFieldEnum[]
  }

  /**
   * RolePermission create
   */
  export type RolePermissionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * The data needed to create a RolePermission.
     */
    data: XOR<RolePermissionCreateInput, RolePermissionUncheckedCreateInput>
  }

  /**
   * RolePermission createMany
   */
  export type RolePermissionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RolePermissions.
     */
    data: RolePermissionCreateManyInput | RolePermissionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RolePermission createManyAndReturn
   */
  export type RolePermissionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * The data used to create many RolePermissions.
     */
    data: RolePermissionCreateManyInput | RolePermissionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RolePermission update
   */
  export type RolePermissionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * The data needed to update a RolePermission.
     */
    data: XOR<RolePermissionUpdateInput, RolePermissionUncheckedUpdateInput>
    /**
     * Choose, which RolePermission to update.
     */
    where: RolePermissionWhereUniqueInput
  }

  /**
   * RolePermission updateMany
   */
  export type RolePermissionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RolePermissions.
     */
    data: XOR<RolePermissionUpdateManyMutationInput, RolePermissionUncheckedUpdateManyInput>
    /**
     * Filter which RolePermissions to update
     */
    where?: RolePermissionWhereInput
    /**
     * Limit how many RolePermissions to update.
     */
    limit?: number
  }

  /**
   * RolePermission updateManyAndReturn
   */
  export type RolePermissionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * The data used to update RolePermissions.
     */
    data: XOR<RolePermissionUpdateManyMutationInput, RolePermissionUncheckedUpdateManyInput>
    /**
     * Filter which RolePermissions to update
     */
    where?: RolePermissionWhereInput
    /**
     * Limit how many RolePermissions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RolePermission upsert
   */
  export type RolePermissionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * The filter to search for the RolePermission to update in case it exists.
     */
    where: RolePermissionWhereUniqueInput
    /**
     * In case the RolePermission found by the `where` argument doesn't exist, create a new RolePermission with this data.
     */
    create: XOR<RolePermissionCreateInput, RolePermissionUncheckedCreateInput>
    /**
     * In case the RolePermission was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RolePermissionUpdateInput, RolePermissionUncheckedUpdateInput>
  }

  /**
   * RolePermission delete
   */
  export type RolePermissionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
    /**
     * Filter which RolePermission to delete.
     */
    where: RolePermissionWhereUniqueInput
  }

  /**
   * RolePermission deleteMany
   */
  export type RolePermissionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RolePermissions to delete
     */
    where?: RolePermissionWhereInput
    /**
     * Limit how many RolePermissions to delete.
     */
    limit?: number
  }

  /**
   * RolePermission without action
   */
  export type RolePermissionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RolePermission
     */
    select?: RolePermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RolePermission
     */
    omit?: RolePermissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RolePermissionInclude<ExtArgs> | null
  }


  /**
   * Model DataScope
   */

  export type AggregateDataScope = {
    _count: DataScopeCountAggregateOutputType | null
    _min: DataScopeMinAggregateOutputType | null
    _max: DataScopeMaxAggregateOutputType | null
  }

  export type DataScopeMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    scopeType: $Enums.DataScopeType | null
    isBuiltIn: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DataScopeMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    scopeType: $Enums.DataScopeType | null
    isBuiltIn: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type DataScopeCountAggregateOutputType = {
    id: number
    code: number
    name: number
    scopeType: number
    rules: number
    isBuiltIn: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type DataScopeMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    scopeType?: true
    isBuiltIn?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DataScopeMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    scopeType?: true
    isBuiltIn?: true
    createdAt?: true
    updatedAt?: true
  }

  export type DataScopeCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    scopeType?: true
    rules?: true
    isBuiltIn?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type DataScopeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DataScope to aggregate.
     */
    where?: DataScopeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DataScopes to fetch.
     */
    orderBy?: DataScopeOrderByWithRelationInput | DataScopeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DataScopeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DataScopes 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` DataScopes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DataScopes
    **/
    _count?: true | DataScopeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DataScopeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DataScopeMaxAggregateInputType
  }

  export type GetDataScopeAggregateType<T extends DataScopeAggregateArgs> = {
        [P in keyof T & keyof AggregateDataScope]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDataScope[P]>
      : GetScalarType<T[P], AggregateDataScope[P]>
  }




  export type DataScopeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DataScopeWhereInput
    orderBy?: DataScopeOrderByWithAggregationInput | DataScopeOrderByWithAggregationInput[]
    by: DataScopeScalarFieldEnum[] | DataScopeScalarFieldEnum
    having?: DataScopeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DataScopeCountAggregateInputType | true
    _min?: DataScopeMinAggregateInputType
    _max?: DataScopeMaxAggregateInputType
  }

  export type DataScopeGroupByOutputType = {
    id: string
    code: string
    name: string
    scopeType: $Enums.DataScopeType
    rules: JsonValue | null
    isBuiltIn: boolean
    createdAt: Date
    updatedAt: Date
    _count: DataScopeCountAggregateOutputType | null
    _min: DataScopeMinAggregateOutputType | null
    _max: DataScopeMaxAggregateOutputType | null
  }

  type GetDataScopeGroupByPayload<T extends DataScopeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DataScopeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DataScopeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DataScopeGroupByOutputType[P]>
            : GetScalarType<T[P], DataScopeGroupByOutputType[P]>
        }
      >
    >


  export type DataScopeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    scopeType?: boolean
    rules?: boolean
    isBuiltIn?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    roleScopes?: boolean | DataScope$roleScopesArgs<ExtArgs>
    _count?: boolean | DataScopeCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["dataScope"]>

  export type DataScopeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    scopeType?: boolean
    rules?: boolean
    isBuiltIn?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dataScope"]>

  export type DataScopeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    scopeType?: boolean
    rules?: boolean
    isBuiltIn?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["dataScope"]>

  export type DataScopeSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    scopeType?: boolean
    rules?: boolean
    isBuiltIn?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type DataScopeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "scopeType" | "rules" | "isBuiltIn" | "createdAt" | "updatedAt", ExtArgs["result"]["dataScope"]>
  export type DataScopeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    roleScopes?: boolean | DataScope$roleScopesArgs<ExtArgs>
    _count?: boolean | DataScopeCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type DataScopeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type DataScopeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $DataScopePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DataScope"
    objects: {
      roleScopes: Prisma.$RoleDataScopePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      scopeType: $Enums.DataScopeType
      rules: Prisma.JsonValue | null
      isBuiltIn: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["dataScope"]>
    composites: {}
  }

  type DataScopeGetPayload<S extends boolean | null | undefined | DataScopeDefaultArgs> = $Result.GetResult<Prisma.$DataScopePayload, S>

  type DataScopeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DataScopeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DataScopeCountAggregateInputType | true
    }

  export interface DataScopeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DataScope'], meta: { name: 'DataScope' } }
    /**
     * Find zero or one DataScope that matches the filter.
     * @param {DataScopeFindUniqueArgs} args - Arguments to find a DataScope
     * @example
     * // Get one DataScope
     * const dataScope = await prisma.dataScope.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DataScopeFindUniqueArgs>(args: SelectSubset<T, DataScopeFindUniqueArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DataScope that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DataScopeFindUniqueOrThrowArgs} args - Arguments to find a DataScope
     * @example
     * // Get one DataScope
     * const dataScope = await prisma.dataScope.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DataScopeFindUniqueOrThrowArgs>(args: SelectSubset<T, DataScopeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DataScope 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 {DataScopeFindFirstArgs} args - Arguments to find a DataScope
     * @example
     * // Get one DataScope
     * const dataScope = await prisma.dataScope.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DataScopeFindFirstArgs>(args?: SelectSubset<T, DataScopeFindFirstArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DataScope 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 {DataScopeFindFirstOrThrowArgs} args - Arguments to find a DataScope
     * @example
     * // Get one DataScope
     * const dataScope = await prisma.dataScope.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DataScopeFindFirstOrThrowArgs>(args?: SelectSubset<T, DataScopeFindFirstOrThrowArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DataScopes 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 {DataScopeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DataScopes
     * const dataScopes = await prisma.dataScope.findMany()
     * 
     * // Get first 10 DataScopes
     * const dataScopes = await prisma.dataScope.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dataScopeWithIdOnly = await prisma.dataScope.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DataScopeFindManyArgs>(args?: SelectSubset<T, DataScopeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DataScope.
     * @param {DataScopeCreateArgs} args - Arguments to create a DataScope.
     * @example
     * // Create one DataScope
     * const DataScope = await prisma.dataScope.create({
     *   data: {
     *     // ... data to create a DataScope
     *   }
     * })
     * 
     */
    create<T extends DataScopeCreateArgs>(args: SelectSubset<T, DataScopeCreateArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DataScopes.
     * @param {DataScopeCreateManyArgs} args - Arguments to create many DataScopes.
     * @example
     * // Create many DataScopes
     * const dataScope = await prisma.dataScope.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DataScopeCreateManyArgs>(args?: SelectSubset<T, DataScopeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DataScopes and returns the data saved in the database.
     * @param {DataScopeCreateManyAndReturnArgs} args - Arguments to create many DataScopes.
     * @example
     * // Create many DataScopes
     * const dataScope = await prisma.dataScope.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DataScopes and only return the `id`
     * const dataScopeWithIdOnly = await prisma.dataScope.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 DataScopeCreateManyAndReturnArgs>(args?: SelectSubset<T, DataScopeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DataScope.
     * @param {DataScopeDeleteArgs} args - Arguments to delete one DataScope.
     * @example
     * // Delete one DataScope
     * const DataScope = await prisma.dataScope.delete({
     *   where: {
     *     // ... filter to delete one DataScope
     *   }
     * })
     * 
     */
    delete<T extends DataScopeDeleteArgs>(args: SelectSubset<T, DataScopeDeleteArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DataScope.
     * @param {DataScopeUpdateArgs} args - Arguments to update one DataScope.
     * @example
     * // Update one DataScope
     * const dataScope = await prisma.dataScope.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DataScopeUpdateArgs>(args: SelectSubset<T, DataScopeUpdateArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DataScopes.
     * @param {DataScopeDeleteManyArgs} args - Arguments to filter DataScopes to delete.
     * @example
     * // Delete a few DataScopes
     * const { count } = await prisma.dataScope.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DataScopeDeleteManyArgs>(args?: SelectSubset<T, DataScopeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DataScopes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DataScopeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DataScopes
     * const dataScope = await prisma.dataScope.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DataScopeUpdateManyArgs>(args: SelectSubset<T, DataScopeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DataScopes and returns the data updated in the database.
     * @param {DataScopeUpdateManyAndReturnArgs} args - Arguments to update many DataScopes.
     * @example
     * // Update many DataScopes
     * const dataScope = await prisma.dataScope.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DataScopes and only return the `id`
     * const dataScopeWithIdOnly = await prisma.dataScope.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 DataScopeUpdateManyAndReturnArgs>(args: SelectSubset<T, DataScopeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DataScope.
     * @param {DataScopeUpsertArgs} args - Arguments to update or create a DataScope.
     * @example
     * // Update or create a DataScope
     * const dataScope = await prisma.dataScope.upsert({
     *   create: {
     *     // ... data to create a DataScope
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DataScope we want to update
     *   }
     * })
     */
    upsert<T extends DataScopeUpsertArgs>(args: SelectSubset<T, DataScopeUpsertArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DataScopes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DataScopeCountArgs} args - Arguments to filter DataScopes to count.
     * @example
     * // Count the number of DataScopes
     * const count = await prisma.dataScope.count({
     *   where: {
     *     // ... the filter for the DataScopes we want to count
     *   }
     * })
    **/
    count<T extends DataScopeCountArgs>(
      args?: Subset<T, DataScopeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DataScopeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DataScope.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DataScopeAggregateArgs} 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 DataScopeAggregateArgs>(args: Subset<T, DataScopeAggregateArgs>): Prisma.PrismaPromise<GetDataScopeAggregateType<T>>

    /**
     * Group by DataScope.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DataScopeGroupByArgs} 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 DataScopeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DataScopeGroupByArgs['orderBy'] }
        : { orderBy?: DataScopeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DataScopeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDataScopeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DataScope model
   */
  readonly fields: DataScopeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DataScope.
   * 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__DataScopeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    roleScopes<T extends DataScope$roleScopesArgs<ExtArgs> = {}>(args?: Subset<T, DataScope$roleScopesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DataScope model
   */
  interface DataScopeFieldRefs {
    readonly id: FieldRef<"DataScope", 'String'>
    readonly code: FieldRef<"DataScope", 'String'>
    readonly name: FieldRef<"DataScope", 'String'>
    readonly scopeType: FieldRef<"DataScope", 'DataScopeType'>
    readonly rules: FieldRef<"DataScope", 'Json'>
    readonly isBuiltIn: FieldRef<"DataScope", 'Boolean'>
    readonly createdAt: FieldRef<"DataScope", 'DateTime'>
    readonly updatedAt: FieldRef<"DataScope", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DataScope findUnique
   */
  export type DataScopeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * Filter, which DataScope to fetch.
     */
    where: DataScopeWhereUniqueInput
  }

  /**
   * DataScope findUniqueOrThrow
   */
  export type DataScopeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * Filter, which DataScope to fetch.
     */
    where: DataScopeWhereUniqueInput
  }

  /**
   * DataScope findFirst
   */
  export type DataScopeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * Filter, which DataScope to fetch.
     */
    where?: DataScopeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DataScopes to fetch.
     */
    orderBy?: DataScopeOrderByWithRelationInput | DataScopeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DataScopes.
     */
    cursor?: DataScopeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DataScopes 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` DataScopes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DataScopes.
     */
    distinct?: DataScopeScalarFieldEnum | DataScopeScalarFieldEnum[]
  }

  /**
   * DataScope findFirstOrThrow
   */
  export type DataScopeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * Filter, which DataScope to fetch.
     */
    where?: DataScopeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DataScopes to fetch.
     */
    orderBy?: DataScopeOrderByWithRelationInput | DataScopeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DataScopes.
     */
    cursor?: DataScopeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DataScopes 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` DataScopes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DataScopes.
     */
    distinct?: DataScopeScalarFieldEnum | DataScopeScalarFieldEnum[]
  }

  /**
   * DataScope findMany
   */
  export type DataScopeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * Filter, which DataScopes to fetch.
     */
    where?: DataScopeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DataScopes to fetch.
     */
    orderBy?: DataScopeOrderByWithRelationInput | DataScopeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DataScopes.
     */
    cursor?: DataScopeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DataScopes 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` DataScopes.
     */
    skip?: number
    distinct?: DataScopeScalarFieldEnum | DataScopeScalarFieldEnum[]
  }

  /**
   * DataScope create
   */
  export type DataScopeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * The data needed to create a DataScope.
     */
    data: XOR<DataScopeCreateInput, DataScopeUncheckedCreateInput>
  }

  /**
   * DataScope createMany
   */
  export type DataScopeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DataScopes.
     */
    data: DataScopeCreateManyInput | DataScopeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DataScope createManyAndReturn
   */
  export type DataScopeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * The data used to create many DataScopes.
     */
    data: DataScopeCreateManyInput | DataScopeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DataScope update
   */
  export type DataScopeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * The data needed to update a DataScope.
     */
    data: XOR<DataScopeUpdateInput, DataScopeUncheckedUpdateInput>
    /**
     * Choose, which DataScope to update.
     */
    where: DataScopeWhereUniqueInput
  }

  /**
   * DataScope updateMany
   */
  export type DataScopeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DataScopes.
     */
    data: XOR<DataScopeUpdateManyMutationInput, DataScopeUncheckedUpdateManyInput>
    /**
     * Filter which DataScopes to update
     */
    where?: DataScopeWhereInput
    /**
     * Limit how many DataScopes to update.
     */
    limit?: number
  }

  /**
   * DataScope updateManyAndReturn
   */
  export type DataScopeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * The data used to update DataScopes.
     */
    data: XOR<DataScopeUpdateManyMutationInput, DataScopeUncheckedUpdateManyInput>
    /**
     * Filter which DataScopes to update
     */
    where?: DataScopeWhereInput
    /**
     * Limit how many DataScopes to update.
     */
    limit?: number
  }

  /**
   * DataScope upsert
   */
  export type DataScopeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * The filter to search for the DataScope to update in case it exists.
     */
    where: DataScopeWhereUniqueInput
    /**
     * In case the DataScope found by the `where` argument doesn't exist, create a new DataScope with this data.
     */
    create: XOR<DataScopeCreateInput, DataScopeUncheckedCreateInput>
    /**
     * In case the DataScope was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DataScopeUpdateInput, DataScopeUncheckedUpdateInput>
  }

  /**
   * DataScope delete
   */
  export type DataScopeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
    /**
     * Filter which DataScope to delete.
     */
    where: DataScopeWhereUniqueInput
  }

  /**
   * DataScope deleteMany
   */
  export type DataScopeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DataScopes to delete
     */
    where?: DataScopeWhereInput
    /**
     * Limit how many DataScopes to delete.
     */
    limit?: number
  }

  /**
   * DataScope.roleScopes
   */
  export type DataScope$roleScopesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    where?: RoleDataScopeWhereInput
    orderBy?: RoleDataScopeOrderByWithRelationInput | RoleDataScopeOrderByWithRelationInput[]
    cursor?: RoleDataScopeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RoleDataScopeScalarFieldEnum | RoleDataScopeScalarFieldEnum[]
  }

  /**
   * DataScope without action
   */
  export type DataScopeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DataScope
     */
    select?: DataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DataScope
     */
    omit?: DataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DataScopeInclude<ExtArgs> | null
  }


  /**
   * Model RoleDataScope
   */

  export type AggregateRoleDataScope = {
    _count: RoleDataScopeCountAggregateOutputType | null
    _min: RoleDataScopeMinAggregateOutputType | null
    _max: RoleDataScopeMaxAggregateOutputType | null
  }

  export type RoleDataScopeMinAggregateOutputType = {
    id: string | null
    roleId: string | null
    dataScopeId: string | null
    resource: string | null
    createdAt: Date | null
  }

  export type RoleDataScopeMaxAggregateOutputType = {
    id: string | null
    roleId: string | null
    dataScopeId: string | null
    resource: string | null
    createdAt: Date | null
  }

  export type RoleDataScopeCountAggregateOutputType = {
    id: number
    roleId: number
    dataScopeId: number
    resource: number
    createdAt: number
    _all: number
  }


  export type RoleDataScopeMinAggregateInputType = {
    id?: true
    roleId?: true
    dataScopeId?: true
    resource?: true
    createdAt?: true
  }

  export type RoleDataScopeMaxAggregateInputType = {
    id?: true
    roleId?: true
    dataScopeId?: true
    resource?: true
    createdAt?: true
  }

  export type RoleDataScopeCountAggregateInputType = {
    id?: true
    roleId?: true
    dataScopeId?: true
    resource?: true
    createdAt?: true
    _all?: true
  }

  export type RoleDataScopeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RoleDataScope to aggregate.
     */
    where?: RoleDataScopeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RoleDataScopes to fetch.
     */
    orderBy?: RoleDataScopeOrderByWithRelationInput | RoleDataScopeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RoleDataScopeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RoleDataScopes 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` RoleDataScopes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RoleDataScopes
    **/
    _count?: true | RoleDataScopeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RoleDataScopeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RoleDataScopeMaxAggregateInputType
  }

  export type GetRoleDataScopeAggregateType<T extends RoleDataScopeAggregateArgs> = {
        [P in keyof T & keyof AggregateRoleDataScope]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRoleDataScope[P]>
      : GetScalarType<T[P], AggregateRoleDataScope[P]>
  }




  export type RoleDataScopeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RoleDataScopeWhereInput
    orderBy?: RoleDataScopeOrderByWithAggregationInput | RoleDataScopeOrderByWithAggregationInput[]
    by: RoleDataScopeScalarFieldEnum[] | RoleDataScopeScalarFieldEnum
    having?: RoleDataScopeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RoleDataScopeCountAggregateInputType | true
    _min?: RoleDataScopeMinAggregateInputType
    _max?: RoleDataScopeMaxAggregateInputType
  }

  export type RoleDataScopeGroupByOutputType = {
    id: string
    roleId: string
    dataScopeId: string
    resource: string
    createdAt: Date
    _count: RoleDataScopeCountAggregateOutputType | null
    _min: RoleDataScopeMinAggregateOutputType | null
    _max: RoleDataScopeMaxAggregateOutputType | null
  }

  type GetRoleDataScopeGroupByPayload<T extends RoleDataScopeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RoleDataScopeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RoleDataScopeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RoleDataScopeGroupByOutputType[P]>
            : GetScalarType<T[P], RoleDataScopeGroupByOutputType[P]>
        }
      >
    >


  export type RoleDataScopeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    dataScopeId?: boolean
    resource?: boolean
    createdAt?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
    dataScope?: boolean | DataScopeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["roleDataScope"]>

  export type RoleDataScopeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    dataScopeId?: boolean
    resource?: boolean
    createdAt?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
    dataScope?: boolean | DataScopeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["roleDataScope"]>

  export type RoleDataScopeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    dataScopeId?: boolean
    resource?: boolean
    createdAt?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
    dataScope?: boolean | DataScopeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["roleDataScope"]>

  export type RoleDataScopeSelectScalar = {
    id?: boolean
    roleId?: boolean
    dataScopeId?: boolean
    resource?: boolean
    createdAt?: boolean
  }

  export type RoleDataScopeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "roleId" | "dataScopeId" | "resource" | "createdAt", ExtArgs["result"]["roleDataScope"]>
  export type RoleDataScopeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
    dataScope?: boolean | DataScopeDefaultArgs<ExtArgs>
  }
  export type RoleDataScopeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
    dataScope?: boolean | DataScopeDefaultArgs<ExtArgs>
  }
  export type RoleDataScopeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
    dataScope?: boolean | DataScopeDefaultArgs<ExtArgs>
  }

  export type $RoleDataScopePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RoleDataScope"
    objects: {
      role: Prisma.$RolePayload<ExtArgs>
      dataScope: Prisma.$DataScopePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      roleId: string
      dataScopeId: string
      resource: string
      createdAt: Date
    }, ExtArgs["result"]["roleDataScope"]>
    composites: {}
  }

  type RoleDataScopeGetPayload<S extends boolean | null | undefined | RoleDataScopeDefaultArgs> = $Result.GetResult<Prisma.$RoleDataScopePayload, S>

  type RoleDataScopeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RoleDataScopeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RoleDataScopeCountAggregateInputType | true
    }

  export interface RoleDataScopeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RoleDataScope'], meta: { name: 'RoleDataScope' } }
    /**
     * Find zero or one RoleDataScope that matches the filter.
     * @param {RoleDataScopeFindUniqueArgs} args - Arguments to find a RoleDataScope
     * @example
     * // Get one RoleDataScope
     * const roleDataScope = await prisma.roleDataScope.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RoleDataScopeFindUniqueArgs>(args: SelectSubset<T, RoleDataScopeFindUniqueArgs<ExtArgs>>): Prisma__RoleDataScopeClient<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RoleDataScope that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RoleDataScopeFindUniqueOrThrowArgs} args - Arguments to find a RoleDataScope
     * @example
     * // Get one RoleDataScope
     * const roleDataScope = await prisma.roleDataScope.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RoleDataScopeFindUniqueOrThrowArgs>(args: SelectSubset<T, RoleDataScopeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RoleDataScopeClient<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RoleDataScope 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 {RoleDataScopeFindFirstArgs} args - Arguments to find a RoleDataScope
     * @example
     * // Get one RoleDataScope
     * const roleDataScope = await prisma.roleDataScope.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RoleDataScopeFindFirstArgs>(args?: SelectSubset<T, RoleDataScopeFindFirstArgs<ExtArgs>>): Prisma__RoleDataScopeClient<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RoleDataScope 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 {RoleDataScopeFindFirstOrThrowArgs} args - Arguments to find a RoleDataScope
     * @example
     * // Get one RoleDataScope
     * const roleDataScope = await prisma.roleDataScope.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RoleDataScopeFindFirstOrThrowArgs>(args?: SelectSubset<T, RoleDataScopeFindFirstOrThrowArgs<ExtArgs>>): Prisma__RoleDataScopeClient<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RoleDataScopes 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 {RoleDataScopeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RoleDataScopes
     * const roleDataScopes = await prisma.roleDataScope.findMany()
     * 
     * // Get first 10 RoleDataScopes
     * const roleDataScopes = await prisma.roleDataScope.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const roleDataScopeWithIdOnly = await prisma.roleDataScope.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RoleDataScopeFindManyArgs>(args?: SelectSubset<T, RoleDataScopeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RoleDataScope.
     * @param {RoleDataScopeCreateArgs} args - Arguments to create a RoleDataScope.
     * @example
     * // Create one RoleDataScope
     * const RoleDataScope = await prisma.roleDataScope.create({
     *   data: {
     *     // ... data to create a RoleDataScope
     *   }
     * })
     * 
     */
    create<T extends RoleDataScopeCreateArgs>(args: SelectSubset<T, RoleDataScopeCreateArgs<ExtArgs>>): Prisma__RoleDataScopeClient<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RoleDataScopes.
     * @param {RoleDataScopeCreateManyArgs} args - Arguments to create many RoleDataScopes.
     * @example
     * // Create many RoleDataScopes
     * const roleDataScope = await prisma.roleDataScope.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RoleDataScopeCreateManyArgs>(args?: SelectSubset<T, RoleDataScopeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RoleDataScopes and returns the data saved in the database.
     * @param {RoleDataScopeCreateManyAndReturnArgs} args - Arguments to create many RoleDataScopes.
     * @example
     * // Create many RoleDataScopes
     * const roleDataScope = await prisma.roleDataScope.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RoleDataScopes and only return the `id`
     * const roleDataScopeWithIdOnly = await prisma.roleDataScope.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 RoleDataScopeCreateManyAndReturnArgs>(args?: SelectSubset<T, RoleDataScopeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RoleDataScope.
     * @param {RoleDataScopeDeleteArgs} args - Arguments to delete one RoleDataScope.
     * @example
     * // Delete one RoleDataScope
     * const RoleDataScope = await prisma.roleDataScope.delete({
     *   where: {
     *     // ... filter to delete one RoleDataScope
     *   }
     * })
     * 
     */
    delete<T extends RoleDataScopeDeleteArgs>(args: SelectSubset<T, RoleDataScopeDeleteArgs<ExtArgs>>): Prisma__RoleDataScopeClient<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RoleDataScope.
     * @param {RoleDataScopeUpdateArgs} args - Arguments to update one RoleDataScope.
     * @example
     * // Update one RoleDataScope
     * const roleDataScope = await prisma.roleDataScope.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RoleDataScopeUpdateArgs>(args: SelectSubset<T, RoleDataScopeUpdateArgs<ExtArgs>>): Prisma__RoleDataScopeClient<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RoleDataScopes.
     * @param {RoleDataScopeDeleteManyArgs} args - Arguments to filter RoleDataScopes to delete.
     * @example
     * // Delete a few RoleDataScopes
     * const { count } = await prisma.roleDataScope.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RoleDataScopeDeleteManyArgs>(args?: SelectSubset<T, RoleDataScopeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RoleDataScopes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RoleDataScopeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RoleDataScopes
     * const roleDataScope = await prisma.roleDataScope.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RoleDataScopeUpdateManyArgs>(args: SelectSubset<T, RoleDataScopeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RoleDataScopes and returns the data updated in the database.
     * @param {RoleDataScopeUpdateManyAndReturnArgs} args - Arguments to update many RoleDataScopes.
     * @example
     * // Update many RoleDataScopes
     * const roleDataScope = await prisma.roleDataScope.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RoleDataScopes and only return the `id`
     * const roleDataScopeWithIdOnly = await prisma.roleDataScope.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 RoleDataScopeUpdateManyAndReturnArgs>(args: SelectSubset<T, RoleDataScopeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RoleDataScope.
     * @param {RoleDataScopeUpsertArgs} args - Arguments to update or create a RoleDataScope.
     * @example
     * // Update or create a RoleDataScope
     * const roleDataScope = await prisma.roleDataScope.upsert({
     *   create: {
     *     // ... data to create a RoleDataScope
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RoleDataScope we want to update
     *   }
     * })
     */
    upsert<T extends RoleDataScopeUpsertArgs>(args: SelectSubset<T, RoleDataScopeUpsertArgs<ExtArgs>>): Prisma__RoleDataScopeClient<$Result.GetResult<Prisma.$RoleDataScopePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RoleDataScopes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RoleDataScopeCountArgs} args - Arguments to filter RoleDataScopes to count.
     * @example
     * // Count the number of RoleDataScopes
     * const count = await prisma.roleDataScope.count({
     *   where: {
     *     // ... the filter for the RoleDataScopes we want to count
     *   }
     * })
    **/
    count<T extends RoleDataScopeCountArgs>(
      args?: Subset<T, RoleDataScopeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RoleDataScopeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RoleDataScope.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RoleDataScopeAggregateArgs} 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 RoleDataScopeAggregateArgs>(args: Subset<T, RoleDataScopeAggregateArgs>): Prisma.PrismaPromise<GetRoleDataScopeAggregateType<T>>

    /**
     * Group by RoleDataScope.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RoleDataScopeGroupByArgs} 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 RoleDataScopeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RoleDataScopeGroupByArgs['orderBy'] }
        : { orderBy?: RoleDataScopeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RoleDataScopeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRoleDataScopeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RoleDataScope model
   */
  readonly fields: RoleDataScopeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RoleDataScope.
   * 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__RoleDataScopeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    role<T extends RoleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RoleDefaultArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    dataScope<T extends DataScopeDefaultArgs<ExtArgs> = {}>(args?: Subset<T, DataScopeDefaultArgs<ExtArgs>>): Prisma__DataScopeClient<$Result.GetResult<Prisma.$DataScopePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RoleDataScope model
   */
  interface RoleDataScopeFieldRefs {
    readonly id: FieldRef<"RoleDataScope", 'String'>
    readonly roleId: FieldRef<"RoleDataScope", 'String'>
    readonly dataScopeId: FieldRef<"RoleDataScope", 'String'>
    readonly resource: FieldRef<"RoleDataScope", 'String'>
    readonly createdAt: FieldRef<"RoleDataScope", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RoleDataScope findUnique
   */
  export type RoleDataScopeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * Filter, which RoleDataScope to fetch.
     */
    where: RoleDataScopeWhereUniqueInput
  }

  /**
   * RoleDataScope findUniqueOrThrow
   */
  export type RoleDataScopeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * Filter, which RoleDataScope to fetch.
     */
    where: RoleDataScopeWhereUniqueInput
  }

  /**
   * RoleDataScope findFirst
   */
  export type RoleDataScopeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * Filter, which RoleDataScope to fetch.
     */
    where?: RoleDataScopeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RoleDataScopes to fetch.
     */
    orderBy?: RoleDataScopeOrderByWithRelationInput | RoleDataScopeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RoleDataScopes.
     */
    cursor?: RoleDataScopeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RoleDataScopes 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` RoleDataScopes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RoleDataScopes.
     */
    distinct?: RoleDataScopeScalarFieldEnum | RoleDataScopeScalarFieldEnum[]
  }

  /**
   * RoleDataScope findFirstOrThrow
   */
  export type RoleDataScopeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * Filter, which RoleDataScope to fetch.
     */
    where?: RoleDataScopeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RoleDataScopes to fetch.
     */
    orderBy?: RoleDataScopeOrderByWithRelationInput | RoleDataScopeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RoleDataScopes.
     */
    cursor?: RoleDataScopeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RoleDataScopes 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` RoleDataScopes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RoleDataScopes.
     */
    distinct?: RoleDataScopeScalarFieldEnum | RoleDataScopeScalarFieldEnum[]
  }

  /**
   * RoleDataScope findMany
   */
  export type RoleDataScopeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * Filter, which RoleDataScopes to fetch.
     */
    where?: RoleDataScopeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RoleDataScopes to fetch.
     */
    orderBy?: RoleDataScopeOrderByWithRelationInput | RoleDataScopeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RoleDataScopes.
     */
    cursor?: RoleDataScopeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RoleDataScopes 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` RoleDataScopes.
     */
    skip?: number
    distinct?: RoleDataScopeScalarFieldEnum | RoleDataScopeScalarFieldEnum[]
  }

  /**
   * RoleDataScope create
   */
  export type RoleDataScopeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * The data needed to create a RoleDataScope.
     */
    data: XOR<RoleDataScopeCreateInput, RoleDataScopeUncheckedCreateInput>
  }

  /**
   * RoleDataScope createMany
   */
  export type RoleDataScopeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RoleDataScopes.
     */
    data: RoleDataScopeCreateManyInput | RoleDataScopeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RoleDataScope createManyAndReturn
   */
  export type RoleDataScopeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * The data used to create many RoleDataScopes.
     */
    data: RoleDataScopeCreateManyInput | RoleDataScopeCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RoleDataScope update
   */
  export type RoleDataScopeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * The data needed to update a RoleDataScope.
     */
    data: XOR<RoleDataScopeUpdateInput, RoleDataScopeUncheckedUpdateInput>
    /**
     * Choose, which RoleDataScope to update.
     */
    where: RoleDataScopeWhereUniqueInput
  }

  /**
   * RoleDataScope updateMany
   */
  export type RoleDataScopeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RoleDataScopes.
     */
    data: XOR<RoleDataScopeUpdateManyMutationInput, RoleDataScopeUncheckedUpdateManyInput>
    /**
     * Filter which RoleDataScopes to update
     */
    where?: RoleDataScopeWhereInput
    /**
     * Limit how many RoleDataScopes to update.
     */
    limit?: number
  }

  /**
   * RoleDataScope updateManyAndReturn
   */
  export type RoleDataScopeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * The data used to update RoleDataScopes.
     */
    data: XOR<RoleDataScopeUpdateManyMutationInput, RoleDataScopeUncheckedUpdateManyInput>
    /**
     * Filter which RoleDataScopes to update
     */
    where?: RoleDataScopeWhereInput
    /**
     * Limit how many RoleDataScopes to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RoleDataScope upsert
   */
  export type RoleDataScopeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * The filter to search for the RoleDataScope to update in case it exists.
     */
    where: RoleDataScopeWhereUniqueInput
    /**
     * In case the RoleDataScope found by the `where` argument doesn't exist, create a new RoleDataScope with this data.
     */
    create: XOR<RoleDataScopeCreateInput, RoleDataScopeUncheckedCreateInput>
    /**
     * In case the RoleDataScope was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RoleDataScopeUpdateInput, RoleDataScopeUncheckedUpdateInput>
  }

  /**
   * RoleDataScope delete
   */
  export type RoleDataScopeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
    /**
     * Filter which RoleDataScope to delete.
     */
    where: RoleDataScopeWhereUniqueInput
  }

  /**
   * RoleDataScope deleteMany
   */
  export type RoleDataScopeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RoleDataScopes to delete
     */
    where?: RoleDataScopeWhereInput
    /**
     * Limit how many RoleDataScopes to delete.
     */
    limit?: number
  }

  /**
   * RoleDataScope without action
   */
  export type RoleDataScopeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RoleDataScope
     */
    select?: RoleDataScopeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RoleDataScope
     */
    omit?: RoleDataScopeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RoleDataScopeInclude<ExtArgs> | null
  }


  /**
   * Model AIToolGrant
   */

  export type AggregateAIToolGrant = {
    _count: AIToolGrantCountAggregateOutputType | null
    _min: AIToolGrantMinAggregateOutputType | null
    _max: AIToolGrantMaxAggregateOutputType | null
  }

  export type AIToolGrantMinAggregateOutputType = {
    id: string | null
    roleId: string | null
    toolName: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdBy: string | null
  }

  export type AIToolGrantMaxAggregateOutputType = {
    id: string | null
    roleId: string | null
    toolName: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdBy: string | null
  }

  export type AIToolGrantCountAggregateOutputType = {
    id: number
    roleId: number
    toolName: number
    createdAt: number
    updatedAt: number
    createdBy: number
    _all: number
  }


  export type AIToolGrantMinAggregateInputType = {
    id?: true
    roleId?: true
    toolName?: true
    createdAt?: true
    updatedAt?: true
    createdBy?: true
  }

  export type AIToolGrantMaxAggregateInputType = {
    id?: true
    roleId?: true
    toolName?: true
    createdAt?: true
    updatedAt?: true
    createdBy?: true
  }

  export type AIToolGrantCountAggregateInputType = {
    id?: true
    roleId?: true
    toolName?: true
    createdAt?: true
    updatedAt?: true
    createdBy?: true
    _all?: true
  }

  export type AIToolGrantAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIToolGrant to aggregate.
     */
    where?: AIToolGrantWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIToolGrants to fetch.
     */
    orderBy?: AIToolGrantOrderByWithRelationInput | AIToolGrantOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIToolGrantWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIToolGrants 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` AIToolGrants.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIToolGrants
    **/
    _count?: true | AIToolGrantCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIToolGrantMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIToolGrantMaxAggregateInputType
  }

  export type GetAIToolGrantAggregateType<T extends AIToolGrantAggregateArgs> = {
        [P in keyof T & keyof AggregateAIToolGrant]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIToolGrant[P]>
      : GetScalarType<T[P], AggregateAIToolGrant[P]>
  }




  export type AIToolGrantGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIToolGrantWhereInput
    orderBy?: AIToolGrantOrderByWithAggregationInput | AIToolGrantOrderByWithAggregationInput[]
    by: AIToolGrantScalarFieldEnum[] | AIToolGrantScalarFieldEnum
    having?: AIToolGrantScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIToolGrantCountAggregateInputType | true
    _min?: AIToolGrantMinAggregateInputType
    _max?: AIToolGrantMaxAggregateInputType
  }

  export type AIToolGrantGroupByOutputType = {
    id: string
    roleId: string
    toolName: string
    createdAt: Date
    updatedAt: Date
    createdBy: string | null
    _count: AIToolGrantCountAggregateOutputType | null
    _min: AIToolGrantMinAggregateOutputType | null
    _max: AIToolGrantMaxAggregateOutputType | null
  }

  type GetAIToolGrantGroupByPayload<T extends AIToolGrantGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIToolGrantGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIToolGrantGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIToolGrantGroupByOutputType[P]>
            : GetScalarType<T[P], AIToolGrantGroupByOutputType[P]>
        }
      >
    >


  export type AIToolGrantSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    toolName?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIToolGrant"]>

  export type AIToolGrantSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    toolName?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIToolGrant"]>

  export type AIToolGrantSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    toolName?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIToolGrant"]>

  export type AIToolGrantSelectScalar = {
    id?: boolean
    roleId?: boolean
    toolName?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean
  }

  export type AIToolGrantOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "roleId" | "toolName" | "createdAt" | "updatedAt" | "createdBy", ExtArgs["result"]["aIToolGrant"]>
  export type AIToolGrantInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }
  export type AIToolGrantIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }
  export type AIToolGrantIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    role?: boolean | RoleDefaultArgs<ExtArgs>
  }

  export type $AIToolGrantPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIToolGrant"
    objects: {
      role: Prisma.$RolePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      roleId: string
      toolName: string
      createdAt: Date
      updatedAt: Date
      createdBy: string | null
    }, ExtArgs["result"]["aIToolGrant"]>
    composites: {}
  }

  type AIToolGrantGetPayload<S extends boolean | null | undefined | AIToolGrantDefaultArgs> = $Result.GetResult<Prisma.$AIToolGrantPayload, S>

  type AIToolGrantCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIToolGrantFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIToolGrantCountAggregateInputType | true
    }

  export interface AIToolGrantDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIToolGrant'], meta: { name: 'AIToolGrant' } }
    /**
     * Find zero or one AIToolGrant that matches the filter.
     * @param {AIToolGrantFindUniqueArgs} args - Arguments to find a AIToolGrant
     * @example
     * // Get one AIToolGrant
     * const aIToolGrant = await prisma.aIToolGrant.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIToolGrantFindUniqueArgs>(args: SelectSubset<T, AIToolGrantFindUniqueArgs<ExtArgs>>): Prisma__AIToolGrantClient<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIToolGrant that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIToolGrantFindUniqueOrThrowArgs} args - Arguments to find a AIToolGrant
     * @example
     * // Get one AIToolGrant
     * const aIToolGrant = await prisma.aIToolGrant.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIToolGrantFindUniqueOrThrowArgs>(args: SelectSubset<T, AIToolGrantFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIToolGrantClient<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIToolGrant 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 {AIToolGrantFindFirstArgs} args - Arguments to find a AIToolGrant
     * @example
     * // Get one AIToolGrant
     * const aIToolGrant = await prisma.aIToolGrant.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIToolGrantFindFirstArgs>(args?: SelectSubset<T, AIToolGrantFindFirstArgs<ExtArgs>>): Prisma__AIToolGrantClient<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIToolGrant 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 {AIToolGrantFindFirstOrThrowArgs} args - Arguments to find a AIToolGrant
     * @example
     * // Get one AIToolGrant
     * const aIToolGrant = await prisma.aIToolGrant.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIToolGrantFindFirstOrThrowArgs>(args?: SelectSubset<T, AIToolGrantFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIToolGrantClient<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIToolGrants 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 {AIToolGrantFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIToolGrants
     * const aIToolGrants = await prisma.aIToolGrant.findMany()
     * 
     * // Get first 10 AIToolGrants
     * const aIToolGrants = await prisma.aIToolGrant.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIToolGrantWithIdOnly = await prisma.aIToolGrant.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIToolGrantFindManyArgs>(args?: SelectSubset<T, AIToolGrantFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIToolGrant.
     * @param {AIToolGrantCreateArgs} args - Arguments to create a AIToolGrant.
     * @example
     * // Create one AIToolGrant
     * const AIToolGrant = await prisma.aIToolGrant.create({
     *   data: {
     *     // ... data to create a AIToolGrant
     *   }
     * })
     * 
     */
    create<T extends AIToolGrantCreateArgs>(args: SelectSubset<T, AIToolGrantCreateArgs<ExtArgs>>): Prisma__AIToolGrantClient<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIToolGrants.
     * @param {AIToolGrantCreateManyArgs} args - Arguments to create many AIToolGrants.
     * @example
     * // Create many AIToolGrants
     * const aIToolGrant = await prisma.aIToolGrant.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIToolGrantCreateManyArgs>(args?: SelectSubset<T, AIToolGrantCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIToolGrants and returns the data saved in the database.
     * @param {AIToolGrantCreateManyAndReturnArgs} args - Arguments to create many AIToolGrants.
     * @example
     * // Create many AIToolGrants
     * const aIToolGrant = await prisma.aIToolGrant.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIToolGrants and only return the `id`
     * const aIToolGrantWithIdOnly = await prisma.aIToolGrant.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 AIToolGrantCreateManyAndReturnArgs>(args?: SelectSubset<T, AIToolGrantCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIToolGrant.
     * @param {AIToolGrantDeleteArgs} args - Arguments to delete one AIToolGrant.
     * @example
     * // Delete one AIToolGrant
     * const AIToolGrant = await prisma.aIToolGrant.delete({
     *   where: {
     *     // ... filter to delete one AIToolGrant
     *   }
     * })
     * 
     */
    delete<T extends AIToolGrantDeleteArgs>(args: SelectSubset<T, AIToolGrantDeleteArgs<ExtArgs>>): Prisma__AIToolGrantClient<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIToolGrant.
     * @param {AIToolGrantUpdateArgs} args - Arguments to update one AIToolGrant.
     * @example
     * // Update one AIToolGrant
     * const aIToolGrant = await prisma.aIToolGrant.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIToolGrantUpdateArgs>(args: SelectSubset<T, AIToolGrantUpdateArgs<ExtArgs>>): Prisma__AIToolGrantClient<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIToolGrants.
     * @param {AIToolGrantDeleteManyArgs} args - Arguments to filter AIToolGrants to delete.
     * @example
     * // Delete a few AIToolGrants
     * const { count } = await prisma.aIToolGrant.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIToolGrantDeleteManyArgs>(args?: SelectSubset<T, AIToolGrantDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIToolGrants.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIToolGrantUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIToolGrants
     * const aIToolGrant = await prisma.aIToolGrant.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIToolGrantUpdateManyArgs>(args: SelectSubset<T, AIToolGrantUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIToolGrants and returns the data updated in the database.
     * @param {AIToolGrantUpdateManyAndReturnArgs} args - Arguments to update many AIToolGrants.
     * @example
     * // Update many AIToolGrants
     * const aIToolGrant = await prisma.aIToolGrant.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIToolGrants and only return the `id`
     * const aIToolGrantWithIdOnly = await prisma.aIToolGrant.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 AIToolGrantUpdateManyAndReturnArgs>(args: SelectSubset<T, AIToolGrantUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIToolGrant.
     * @param {AIToolGrantUpsertArgs} args - Arguments to update or create a AIToolGrant.
     * @example
     * // Update or create a AIToolGrant
     * const aIToolGrant = await prisma.aIToolGrant.upsert({
     *   create: {
     *     // ... data to create a AIToolGrant
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIToolGrant we want to update
     *   }
     * })
     */
    upsert<T extends AIToolGrantUpsertArgs>(args: SelectSubset<T, AIToolGrantUpsertArgs<ExtArgs>>): Prisma__AIToolGrantClient<$Result.GetResult<Prisma.$AIToolGrantPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIToolGrants.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIToolGrantCountArgs} args - Arguments to filter AIToolGrants to count.
     * @example
     * // Count the number of AIToolGrants
     * const count = await prisma.aIToolGrant.count({
     *   where: {
     *     // ... the filter for the AIToolGrants we want to count
     *   }
     * })
    **/
    count<T extends AIToolGrantCountArgs>(
      args?: Subset<T, AIToolGrantCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIToolGrantCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIToolGrant.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIToolGrantAggregateArgs} 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 AIToolGrantAggregateArgs>(args: Subset<T, AIToolGrantAggregateArgs>): Prisma.PrismaPromise<GetAIToolGrantAggregateType<T>>

    /**
     * Group by AIToolGrant.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIToolGrantGroupByArgs} 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 AIToolGrantGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIToolGrantGroupByArgs['orderBy'] }
        : { orderBy?: AIToolGrantGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIToolGrantGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIToolGrantGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIToolGrant model
   */
  readonly fields: AIToolGrantFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIToolGrant.
   * 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__AIToolGrantClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    role<T extends RoleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RoleDefaultArgs<ExtArgs>>): Prisma__RoleClient<$Result.GetResult<Prisma.$RolePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIToolGrant model
   */
  interface AIToolGrantFieldRefs {
    readonly id: FieldRef<"AIToolGrant", 'String'>
    readonly roleId: FieldRef<"AIToolGrant", 'String'>
    readonly toolName: FieldRef<"AIToolGrant", 'String'>
    readonly createdAt: FieldRef<"AIToolGrant", 'DateTime'>
    readonly updatedAt: FieldRef<"AIToolGrant", 'DateTime'>
    readonly createdBy: FieldRef<"AIToolGrant", 'String'>
  }
    

  // Custom InputTypes
  /**
   * AIToolGrant findUnique
   */
  export type AIToolGrantFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrant to fetch.
     */
    where: AIToolGrantWhereUniqueInput
  }

  /**
   * AIToolGrant findUniqueOrThrow
   */
  export type AIToolGrantFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrant to fetch.
     */
    where: AIToolGrantWhereUniqueInput
  }

  /**
   * AIToolGrant findFirst
   */
  export type AIToolGrantFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrant to fetch.
     */
    where?: AIToolGrantWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIToolGrants to fetch.
     */
    orderBy?: AIToolGrantOrderByWithRelationInput | AIToolGrantOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIToolGrants.
     */
    cursor?: AIToolGrantWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIToolGrants 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` AIToolGrants.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIToolGrants.
     */
    distinct?: AIToolGrantScalarFieldEnum | AIToolGrantScalarFieldEnum[]
  }

  /**
   * AIToolGrant findFirstOrThrow
   */
  export type AIToolGrantFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrant to fetch.
     */
    where?: AIToolGrantWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIToolGrants to fetch.
     */
    orderBy?: AIToolGrantOrderByWithRelationInput | AIToolGrantOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIToolGrants.
     */
    cursor?: AIToolGrantWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIToolGrants 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` AIToolGrants.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIToolGrants.
     */
    distinct?: AIToolGrantScalarFieldEnum | AIToolGrantScalarFieldEnum[]
  }

  /**
   * AIToolGrant findMany
   */
  export type AIToolGrantFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrants to fetch.
     */
    where?: AIToolGrantWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIToolGrants to fetch.
     */
    orderBy?: AIToolGrantOrderByWithRelationInput | AIToolGrantOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIToolGrants.
     */
    cursor?: AIToolGrantWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIToolGrants 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` AIToolGrants.
     */
    skip?: number
    distinct?: AIToolGrantScalarFieldEnum | AIToolGrantScalarFieldEnum[]
  }

  /**
   * AIToolGrant create
   */
  export type AIToolGrantCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * The data needed to create a AIToolGrant.
     */
    data: XOR<AIToolGrantCreateInput, AIToolGrantUncheckedCreateInput>
  }

  /**
   * AIToolGrant createMany
   */
  export type AIToolGrantCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIToolGrants.
     */
    data: AIToolGrantCreateManyInput | AIToolGrantCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIToolGrant createManyAndReturn
   */
  export type AIToolGrantCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * The data used to create many AIToolGrants.
     */
    data: AIToolGrantCreateManyInput | AIToolGrantCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIToolGrant update
   */
  export type AIToolGrantUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * The data needed to update a AIToolGrant.
     */
    data: XOR<AIToolGrantUpdateInput, AIToolGrantUncheckedUpdateInput>
    /**
     * Choose, which AIToolGrant to update.
     */
    where: AIToolGrantWhereUniqueInput
  }

  /**
   * AIToolGrant updateMany
   */
  export type AIToolGrantUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIToolGrants.
     */
    data: XOR<AIToolGrantUpdateManyMutationInput, AIToolGrantUncheckedUpdateManyInput>
    /**
     * Filter which AIToolGrants to update
     */
    where?: AIToolGrantWhereInput
    /**
     * Limit how many AIToolGrants to update.
     */
    limit?: number
  }

  /**
   * AIToolGrant updateManyAndReturn
   */
  export type AIToolGrantUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * The data used to update AIToolGrants.
     */
    data: XOR<AIToolGrantUpdateManyMutationInput, AIToolGrantUncheckedUpdateManyInput>
    /**
     * Filter which AIToolGrants to update
     */
    where?: AIToolGrantWhereInput
    /**
     * Limit how many AIToolGrants to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIToolGrant upsert
   */
  export type AIToolGrantUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * The filter to search for the AIToolGrant to update in case it exists.
     */
    where: AIToolGrantWhereUniqueInput
    /**
     * In case the AIToolGrant found by the `where` argument doesn't exist, create a new AIToolGrant with this data.
     */
    create: XOR<AIToolGrantCreateInput, AIToolGrantUncheckedCreateInput>
    /**
     * In case the AIToolGrant was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIToolGrantUpdateInput, AIToolGrantUncheckedUpdateInput>
  }

  /**
   * AIToolGrant delete
   */
  export type AIToolGrantDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
    /**
     * Filter which AIToolGrant to delete.
     */
    where: AIToolGrantWhereUniqueInput
  }

  /**
   * AIToolGrant deleteMany
   */
  export type AIToolGrantDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIToolGrants to delete
     */
    where?: AIToolGrantWhereInput
    /**
     * Limit how many AIToolGrants to delete.
     */
    limit?: number
  }

  /**
   * AIToolGrant without action
   */
  export type AIToolGrantDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrant
     */
    select?: AIToolGrantSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrant
     */
    omit?: AIToolGrantOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantInclude<ExtArgs> | null
  }


  /**
   * Model AIToolGrantUser
   */

  export type AggregateAIToolGrantUser = {
    _count: AIToolGrantUserCountAggregateOutputType | null
    _min: AIToolGrantUserMinAggregateOutputType | null
    _max: AIToolGrantUserMaxAggregateOutputType | null
  }

  export type AIToolGrantUserMinAggregateOutputType = {
    id: string | null
    userId: string | null
    toolName: string | null
    effect: string | null
    reason: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdBy: string | null
  }

  export type AIToolGrantUserMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    toolName: string | null
    effect: string | null
    reason: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdBy: string | null
  }

  export type AIToolGrantUserCountAggregateOutputType = {
    id: number
    userId: number
    toolName: number
    effect: number
    reason: number
    createdAt: number
    updatedAt: number
    createdBy: number
    _all: number
  }


  export type AIToolGrantUserMinAggregateInputType = {
    id?: true
    userId?: true
    toolName?: true
    effect?: true
    reason?: true
    createdAt?: true
    updatedAt?: true
    createdBy?: true
  }

  export type AIToolGrantUserMaxAggregateInputType = {
    id?: true
    userId?: true
    toolName?: true
    effect?: true
    reason?: true
    createdAt?: true
    updatedAt?: true
    createdBy?: true
  }

  export type AIToolGrantUserCountAggregateInputType = {
    id?: true
    userId?: true
    toolName?: true
    effect?: true
    reason?: true
    createdAt?: true
    updatedAt?: true
    createdBy?: true
    _all?: true
  }

  export type AIToolGrantUserAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIToolGrantUser to aggregate.
     */
    where?: AIToolGrantUserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIToolGrantUsers to fetch.
     */
    orderBy?: AIToolGrantUserOrderByWithRelationInput | AIToolGrantUserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIToolGrantUserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIToolGrantUsers 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` AIToolGrantUsers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIToolGrantUsers
    **/
    _count?: true | AIToolGrantUserCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIToolGrantUserMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIToolGrantUserMaxAggregateInputType
  }

  export type GetAIToolGrantUserAggregateType<T extends AIToolGrantUserAggregateArgs> = {
        [P in keyof T & keyof AggregateAIToolGrantUser]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIToolGrantUser[P]>
      : GetScalarType<T[P], AggregateAIToolGrantUser[P]>
  }




  export type AIToolGrantUserGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIToolGrantUserWhereInput
    orderBy?: AIToolGrantUserOrderByWithAggregationInput | AIToolGrantUserOrderByWithAggregationInput[]
    by: AIToolGrantUserScalarFieldEnum[] | AIToolGrantUserScalarFieldEnum
    having?: AIToolGrantUserScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIToolGrantUserCountAggregateInputType | true
    _min?: AIToolGrantUserMinAggregateInputType
    _max?: AIToolGrantUserMaxAggregateInputType
  }

  export type AIToolGrantUserGroupByOutputType = {
    id: string
    userId: string
    toolName: string
    effect: string
    reason: string | null
    createdAt: Date
    updatedAt: Date
    createdBy: string | null
    _count: AIToolGrantUserCountAggregateOutputType | null
    _min: AIToolGrantUserMinAggregateOutputType | null
    _max: AIToolGrantUserMaxAggregateOutputType | null
  }

  type GetAIToolGrantUserGroupByPayload<T extends AIToolGrantUserGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIToolGrantUserGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIToolGrantUserGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIToolGrantUserGroupByOutputType[P]>
            : GetScalarType<T[P], AIToolGrantUserGroupByOutputType[P]>
        }
      >
    >


  export type AIToolGrantUserSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    toolName?: boolean
    effect?: boolean
    reason?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIToolGrantUser"]>

  export type AIToolGrantUserSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    toolName?: boolean
    effect?: boolean
    reason?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIToolGrantUser"]>

  export type AIToolGrantUserSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    toolName?: boolean
    effect?: boolean
    reason?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIToolGrantUser"]>

  export type AIToolGrantUserSelectScalar = {
    id?: boolean
    userId?: boolean
    toolName?: boolean
    effect?: boolean
    reason?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdBy?: boolean
  }

  export type AIToolGrantUserOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "toolName" | "effect" | "reason" | "createdAt" | "updatedAt" | "createdBy", ExtArgs["result"]["aIToolGrantUser"]>
  export type AIToolGrantUserInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type AIToolGrantUserIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type AIToolGrantUserIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $AIToolGrantUserPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIToolGrantUser"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      toolName: string
      effect: string
      reason: string | null
      createdAt: Date
      updatedAt: Date
      createdBy: string | null
    }, ExtArgs["result"]["aIToolGrantUser"]>
    composites: {}
  }

  type AIToolGrantUserGetPayload<S extends boolean | null | undefined | AIToolGrantUserDefaultArgs> = $Result.GetResult<Prisma.$AIToolGrantUserPayload, S>

  type AIToolGrantUserCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIToolGrantUserFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIToolGrantUserCountAggregateInputType | true
    }

  export interface AIToolGrantUserDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIToolGrantUser'], meta: { name: 'AIToolGrantUser' } }
    /**
     * Find zero or one AIToolGrantUser that matches the filter.
     * @param {AIToolGrantUserFindUniqueArgs} args - Arguments to find a AIToolGrantUser
     * @example
     * // Get one AIToolGrantUser
     * const aIToolGrantUser = await prisma.aIToolGrantUser.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIToolGrantUserFindUniqueArgs>(args: SelectSubset<T, AIToolGrantUserFindUniqueArgs<ExtArgs>>): Prisma__AIToolGrantUserClient<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIToolGrantUser that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIToolGrantUserFindUniqueOrThrowArgs} args - Arguments to find a AIToolGrantUser
     * @example
     * // Get one AIToolGrantUser
     * const aIToolGrantUser = await prisma.aIToolGrantUser.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIToolGrantUserFindUniqueOrThrowArgs>(args: SelectSubset<T, AIToolGrantUserFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIToolGrantUserClient<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIToolGrantUser 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 {AIToolGrantUserFindFirstArgs} args - Arguments to find a AIToolGrantUser
     * @example
     * // Get one AIToolGrantUser
     * const aIToolGrantUser = await prisma.aIToolGrantUser.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIToolGrantUserFindFirstArgs>(args?: SelectSubset<T, AIToolGrantUserFindFirstArgs<ExtArgs>>): Prisma__AIToolGrantUserClient<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIToolGrantUser 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 {AIToolGrantUserFindFirstOrThrowArgs} args - Arguments to find a AIToolGrantUser
     * @example
     * // Get one AIToolGrantUser
     * const aIToolGrantUser = await prisma.aIToolGrantUser.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIToolGrantUserFindFirstOrThrowArgs>(args?: SelectSubset<T, AIToolGrantUserFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIToolGrantUserClient<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIToolGrantUsers 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 {AIToolGrantUserFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIToolGrantUsers
     * const aIToolGrantUsers = await prisma.aIToolGrantUser.findMany()
     * 
     * // Get first 10 AIToolGrantUsers
     * const aIToolGrantUsers = await prisma.aIToolGrantUser.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIToolGrantUserWithIdOnly = await prisma.aIToolGrantUser.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIToolGrantUserFindManyArgs>(args?: SelectSubset<T, AIToolGrantUserFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIToolGrantUser.
     * @param {AIToolGrantUserCreateArgs} args - Arguments to create a AIToolGrantUser.
     * @example
     * // Create one AIToolGrantUser
     * const AIToolGrantUser = await prisma.aIToolGrantUser.create({
     *   data: {
     *     // ... data to create a AIToolGrantUser
     *   }
     * })
     * 
     */
    create<T extends AIToolGrantUserCreateArgs>(args: SelectSubset<T, AIToolGrantUserCreateArgs<ExtArgs>>): Prisma__AIToolGrantUserClient<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIToolGrantUsers.
     * @param {AIToolGrantUserCreateManyArgs} args - Arguments to create many AIToolGrantUsers.
     * @example
     * // Create many AIToolGrantUsers
     * const aIToolGrantUser = await prisma.aIToolGrantUser.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIToolGrantUserCreateManyArgs>(args?: SelectSubset<T, AIToolGrantUserCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIToolGrantUsers and returns the data saved in the database.
     * @param {AIToolGrantUserCreateManyAndReturnArgs} args - Arguments to create many AIToolGrantUsers.
     * @example
     * // Create many AIToolGrantUsers
     * const aIToolGrantUser = await prisma.aIToolGrantUser.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIToolGrantUsers and only return the `id`
     * const aIToolGrantUserWithIdOnly = await prisma.aIToolGrantUser.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 AIToolGrantUserCreateManyAndReturnArgs>(args?: SelectSubset<T, AIToolGrantUserCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIToolGrantUser.
     * @param {AIToolGrantUserDeleteArgs} args - Arguments to delete one AIToolGrantUser.
     * @example
     * // Delete one AIToolGrantUser
     * const AIToolGrantUser = await prisma.aIToolGrantUser.delete({
     *   where: {
     *     // ... filter to delete one AIToolGrantUser
     *   }
     * })
     * 
     */
    delete<T extends AIToolGrantUserDeleteArgs>(args: SelectSubset<T, AIToolGrantUserDeleteArgs<ExtArgs>>): Prisma__AIToolGrantUserClient<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIToolGrantUser.
     * @param {AIToolGrantUserUpdateArgs} args - Arguments to update one AIToolGrantUser.
     * @example
     * // Update one AIToolGrantUser
     * const aIToolGrantUser = await prisma.aIToolGrantUser.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIToolGrantUserUpdateArgs>(args: SelectSubset<T, AIToolGrantUserUpdateArgs<ExtArgs>>): Prisma__AIToolGrantUserClient<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIToolGrantUsers.
     * @param {AIToolGrantUserDeleteManyArgs} args - Arguments to filter AIToolGrantUsers to delete.
     * @example
     * // Delete a few AIToolGrantUsers
     * const { count } = await prisma.aIToolGrantUser.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIToolGrantUserDeleteManyArgs>(args?: SelectSubset<T, AIToolGrantUserDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIToolGrantUsers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIToolGrantUserUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIToolGrantUsers
     * const aIToolGrantUser = await prisma.aIToolGrantUser.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIToolGrantUserUpdateManyArgs>(args: SelectSubset<T, AIToolGrantUserUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIToolGrantUsers and returns the data updated in the database.
     * @param {AIToolGrantUserUpdateManyAndReturnArgs} args - Arguments to update many AIToolGrantUsers.
     * @example
     * // Update many AIToolGrantUsers
     * const aIToolGrantUser = await prisma.aIToolGrantUser.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIToolGrantUsers and only return the `id`
     * const aIToolGrantUserWithIdOnly = await prisma.aIToolGrantUser.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 AIToolGrantUserUpdateManyAndReturnArgs>(args: SelectSubset<T, AIToolGrantUserUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIToolGrantUser.
     * @param {AIToolGrantUserUpsertArgs} args - Arguments to update or create a AIToolGrantUser.
     * @example
     * // Update or create a AIToolGrantUser
     * const aIToolGrantUser = await prisma.aIToolGrantUser.upsert({
     *   create: {
     *     // ... data to create a AIToolGrantUser
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIToolGrantUser we want to update
     *   }
     * })
     */
    upsert<T extends AIToolGrantUserUpsertArgs>(args: SelectSubset<T, AIToolGrantUserUpsertArgs<ExtArgs>>): Prisma__AIToolGrantUserClient<$Result.GetResult<Prisma.$AIToolGrantUserPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIToolGrantUsers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIToolGrantUserCountArgs} args - Arguments to filter AIToolGrantUsers to count.
     * @example
     * // Count the number of AIToolGrantUsers
     * const count = await prisma.aIToolGrantUser.count({
     *   where: {
     *     // ... the filter for the AIToolGrantUsers we want to count
     *   }
     * })
    **/
    count<T extends AIToolGrantUserCountArgs>(
      args?: Subset<T, AIToolGrantUserCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIToolGrantUserCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIToolGrantUser.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIToolGrantUserAggregateArgs} 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 AIToolGrantUserAggregateArgs>(args: Subset<T, AIToolGrantUserAggregateArgs>): Prisma.PrismaPromise<GetAIToolGrantUserAggregateType<T>>

    /**
     * Group by AIToolGrantUser.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIToolGrantUserGroupByArgs} 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 AIToolGrantUserGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIToolGrantUserGroupByArgs['orderBy'] }
        : { orderBy?: AIToolGrantUserGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIToolGrantUserGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIToolGrantUserGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIToolGrantUser model
   */
  readonly fields: AIToolGrantUserFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIToolGrantUser.
   * 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__AIToolGrantUserClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIToolGrantUser model
   */
  interface AIToolGrantUserFieldRefs {
    readonly id: FieldRef<"AIToolGrantUser", 'String'>
    readonly userId: FieldRef<"AIToolGrantUser", 'String'>
    readonly toolName: FieldRef<"AIToolGrantUser", 'String'>
    readonly effect: FieldRef<"AIToolGrantUser", 'String'>
    readonly reason: FieldRef<"AIToolGrantUser", 'String'>
    readonly createdAt: FieldRef<"AIToolGrantUser", 'DateTime'>
    readonly updatedAt: FieldRef<"AIToolGrantUser", 'DateTime'>
    readonly createdBy: FieldRef<"AIToolGrantUser", 'String'>
  }
    

  // Custom InputTypes
  /**
   * AIToolGrantUser findUnique
   */
  export type AIToolGrantUserFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrantUser to fetch.
     */
    where: AIToolGrantUserWhereUniqueInput
  }

  /**
   * AIToolGrantUser findUniqueOrThrow
   */
  export type AIToolGrantUserFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrantUser to fetch.
     */
    where: AIToolGrantUserWhereUniqueInput
  }

  /**
   * AIToolGrantUser findFirst
   */
  export type AIToolGrantUserFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrantUser to fetch.
     */
    where?: AIToolGrantUserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIToolGrantUsers to fetch.
     */
    orderBy?: AIToolGrantUserOrderByWithRelationInput | AIToolGrantUserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIToolGrantUsers.
     */
    cursor?: AIToolGrantUserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIToolGrantUsers 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` AIToolGrantUsers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIToolGrantUsers.
     */
    distinct?: AIToolGrantUserScalarFieldEnum | AIToolGrantUserScalarFieldEnum[]
  }

  /**
   * AIToolGrantUser findFirstOrThrow
   */
  export type AIToolGrantUserFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrantUser to fetch.
     */
    where?: AIToolGrantUserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIToolGrantUsers to fetch.
     */
    orderBy?: AIToolGrantUserOrderByWithRelationInput | AIToolGrantUserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIToolGrantUsers.
     */
    cursor?: AIToolGrantUserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIToolGrantUsers 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` AIToolGrantUsers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIToolGrantUsers.
     */
    distinct?: AIToolGrantUserScalarFieldEnum | AIToolGrantUserScalarFieldEnum[]
  }

  /**
   * AIToolGrantUser findMany
   */
  export type AIToolGrantUserFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * Filter, which AIToolGrantUsers to fetch.
     */
    where?: AIToolGrantUserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIToolGrantUsers to fetch.
     */
    orderBy?: AIToolGrantUserOrderByWithRelationInput | AIToolGrantUserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIToolGrantUsers.
     */
    cursor?: AIToolGrantUserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIToolGrantUsers 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` AIToolGrantUsers.
     */
    skip?: number
    distinct?: AIToolGrantUserScalarFieldEnum | AIToolGrantUserScalarFieldEnum[]
  }

  /**
   * AIToolGrantUser create
   */
  export type AIToolGrantUserCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * The data needed to create a AIToolGrantUser.
     */
    data: XOR<AIToolGrantUserCreateInput, AIToolGrantUserUncheckedCreateInput>
  }

  /**
   * AIToolGrantUser createMany
   */
  export type AIToolGrantUserCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIToolGrantUsers.
     */
    data: AIToolGrantUserCreateManyInput | AIToolGrantUserCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIToolGrantUser createManyAndReturn
   */
  export type AIToolGrantUserCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * The data used to create many AIToolGrantUsers.
     */
    data: AIToolGrantUserCreateManyInput | AIToolGrantUserCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIToolGrantUser update
   */
  export type AIToolGrantUserUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * The data needed to update a AIToolGrantUser.
     */
    data: XOR<AIToolGrantUserUpdateInput, AIToolGrantUserUncheckedUpdateInput>
    /**
     * Choose, which AIToolGrantUser to update.
     */
    where: AIToolGrantUserWhereUniqueInput
  }

  /**
   * AIToolGrantUser updateMany
   */
  export type AIToolGrantUserUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIToolGrantUsers.
     */
    data: XOR<AIToolGrantUserUpdateManyMutationInput, AIToolGrantUserUncheckedUpdateManyInput>
    /**
     * Filter which AIToolGrantUsers to update
     */
    where?: AIToolGrantUserWhereInput
    /**
     * Limit how many AIToolGrantUsers to update.
     */
    limit?: number
  }

  /**
   * AIToolGrantUser updateManyAndReturn
   */
  export type AIToolGrantUserUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * The data used to update AIToolGrantUsers.
     */
    data: XOR<AIToolGrantUserUpdateManyMutationInput, AIToolGrantUserUncheckedUpdateManyInput>
    /**
     * Filter which AIToolGrantUsers to update
     */
    where?: AIToolGrantUserWhereInput
    /**
     * Limit how many AIToolGrantUsers to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIToolGrantUser upsert
   */
  export type AIToolGrantUserUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * The filter to search for the AIToolGrantUser to update in case it exists.
     */
    where: AIToolGrantUserWhereUniqueInput
    /**
     * In case the AIToolGrantUser found by the `where` argument doesn't exist, create a new AIToolGrantUser with this data.
     */
    create: XOR<AIToolGrantUserCreateInput, AIToolGrantUserUncheckedCreateInput>
    /**
     * In case the AIToolGrantUser was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIToolGrantUserUpdateInput, AIToolGrantUserUncheckedUpdateInput>
  }

  /**
   * AIToolGrantUser delete
   */
  export type AIToolGrantUserDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
    /**
     * Filter which AIToolGrantUser to delete.
     */
    where: AIToolGrantUserWhereUniqueInput
  }

  /**
   * AIToolGrantUser deleteMany
   */
  export type AIToolGrantUserDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIToolGrantUsers to delete
     */
    where?: AIToolGrantUserWhereInput
    /**
     * Limit how many AIToolGrantUsers to delete.
     */
    limit?: number
  }

  /**
   * AIToolGrantUser without action
   */
  export type AIToolGrantUserDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIToolGrantUser
     */
    select?: AIToolGrantUserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIToolGrantUser
     */
    omit?: AIToolGrantUserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIToolGrantUserInclude<ExtArgs> | null
  }


  /**
   * Model PermissionDelegation
   */

  export type AggregatePermissionDelegation = {
    _count: PermissionDelegationCountAggregateOutputType | null
    _min: PermissionDelegationMinAggregateOutputType | null
    _max: PermissionDelegationMaxAggregateOutputType | null
  }

  export type PermissionDelegationMinAggregateOutputType = {
    id: string | null
    fromUserId: string | null
    toUserId: string | null
    resource: string | null
    validFrom: Date | null
    validTo: Date | null
    reason: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
    revokedAt: Date | null
  }

  export type PermissionDelegationMaxAggregateOutputType = {
    id: string | null
    fromUserId: string | null
    toUserId: string | null
    resource: string | null
    validFrom: Date | null
    validTo: Date | null
    reason: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
    revokedAt: Date | null
  }

  export type PermissionDelegationCountAggregateOutputType = {
    id: number
    fromUserId: number
    toUserId: number
    resource: number
    validFrom: number
    validTo: number
    reason: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    revokedAt: number
    _all: number
  }


  export type PermissionDelegationMinAggregateInputType = {
    id?: true
    fromUserId?: true
    toUserId?: true
    resource?: true
    validFrom?: true
    validTo?: true
    reason?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    revokedAt?: true
  }

  export type PermissionDelegationMaxAggregateInputType = {
    id?: true
    fromUserId?: true
    toUserId?: true
    resource?: true
    validFrom?: true
    validTo?: true
    reason?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    revokedAt?: true
  }

  export type PermissionDelegationCountAggregateInputType = {
    id?: true
    fromUserId?: true
    toUserId?: true
    resource?: true
    validFrom?: true
    validTo?: true
    reason?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    revokedAt?: true
    _all?: true
  }

  export type PermissionDelegationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PermissionDelegation to aggregate.
     */
    where?: PermissionDelegationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PermissionDelegations to fetch.
     */
    orderBy?: PermissionDelegationOrderByWithRelationInput | PermissionDelegationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PermissionDelegationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PermissionDelegations 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` PermissionDelegations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PermissionDelegations
    **/
    _count?: true | PermissionDelegationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PermissionDelegationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PermissionDelegationMaxAggregateInputType
  }

  export type GetPermissionDelegationAggregateType<T extends PermissionDelegationAggregateArgs> = {
        [P in keyof T & keyof AggregatePermissionDelegation]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePermissionDelegation[P]>
      : GetScalarType<T[P], AggregatePermissionDelegation[P]>
  }




  export type PermissionDelegationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PermissionDelegationWhereInput
    orderBy?: PermissionDelegationOrderByWithAggregationInput | PermissionDelegationOrderByWithAggregationInput[]
    by: PermissionDelegationScalarFieldEnum[] | PermissionDelegationScalarFieldEnum
    having?: PermissionDelegationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PermissionDelegationCountAggregateInputType | true
    _min?: PermissionDelegationMinAggregateInputType
    _max?: PermissionDelegationMaxAggregateInputType
  }

  export type PermissionDelegationGroupByOutputType = {
    id: string
    fromUserId: string
    toUserId: string
    resource: string
    validFrom: Date
    validTo: Date
    reason: string
    organizationId: string | null
    createdById: string
    createdAt: Date
    updatedAt: Date
    revokedAt: Date | null
    _count: PermissionDelegationCountAggregateOutputType | null
    _min: PermissionDelegationMinAggregateOutputType | null
    _max: PermissionDelegationMaxAggregateOutputType | null
  }

  type GetPermissionDelegationGroupByPayload<T extends PermissionDelegationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PermissionDelegationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PermissionDelegationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PermissionDelegationGroupByOutputType[P]>
            : GetScalarType<T[P], PermissionDelegationGroupByOutputType[P]>
        }
      >
    >


  export type PermissionDelegationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fromUserId?: boolean
    toUserId?: boolean
    resource?: boolean
    validFrom?: boolean
    validTo?: boolean
    reason?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    revokedAt?: boolean
  }, ExtArgs["result"]["permissionDelegation"]>

  export type PermissionDelegationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fromUserId?: boolean
    toUserId?: boolean
    resource?: boolean
    validFrom?: boolean
    validTo?: boolean
    reason?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    revokedAt?: boolean
  }, ExtArgs["result"]["permissionDelegation"]>

  export type PermissionDelegationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    fromUserId?: boolean
    toUserId?: boolean
    resource?: boolean
    validFrom?: boolean
    validTo?: boolean
    reason?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    revokedAt?: boolean
  }, ExtArgs["result"]["permissionDelegation"]>

  export type PermissionDelegationSelectScalar = {
    id?: boolean
    fromUserId?: boolean
    toUserId?: boolean
    resource?: boolean
    validFrom?: boolean
    validTo?: boolean
    reason?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    revokedAt?: boolean
  }

  export type PermissionDelegationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "fromUserId" | "toUserId" | "resource" | "validFrom" | "validTo" | "reason" | "organizationId" | "createdById" | "createdAt" | "updatedAt" | "revokedAt", ExtArgs["result"]["permissionDelegation"]>

  export type $PermissionDelegationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PermissionDelegation"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      fromUserId: string
      toUserId: string
      resource: string
      validFrom: Date
      validTo: Date
      reason: string
      organizationId: string | null
      createdById: string
      createdAt: Date
      updatedAt: Date
      revokedAt: Date | null
    }, ExtArgs["result"]["permissionDelegation"]>
    composites: {}
  }

  type PermissionDelegationGetPayload<S extends boolean | null | undefined | PermissionDelegationDefaultArgs> = $Result.GetResult<Prisma.$PermissionDelegationPayload, S>

  type PermissionDelegationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PermissionDelegationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PermissionDelegationCountAggregateInputType | true
    }

  export interface PermissionDelegationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PermissionDelegation'], meta: { name: 'PermissionDelegation' } }
    /**
     * Find zero or one PermissionDelegation that matches the filter.
     * @param {PermissionDelegationFindUniqueArgs} args - Arguments to find a PermissionDelegation
     * @example
     * // Get one PermissionDelegation
     * const permissionDelegation = await prisma.permissionDelegation.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PermissionDelegationFindUniqueArgs>(args: SelectSubset<T, PermissionDelegationFindUniqueArgs<ExtArgs>>): Prisma__PermissionDelegationClient<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PermissionDelegation that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PermissionDelegationFindUniqueOrThrowArgs} args - Arguments to find a PermissionDelegation
     * @example
     * // Get one PermissionDelegation
     * const permissionDelegation = await prisma.permissionDelegation.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PermissionDelegationFindUniqueOrThrowArgs>(args: SelectSubset<T, PermissionDelegationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PermissionDelegationClient<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PermissionDelegation 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 {PermissionDelegationFindFirstArgs} args - Arguments to find a PermissionDelegation
     * @example
     * // Get one PermissionDelegation
     * const permissionDelegation = await prisma.permissionDelegation.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PermissionDelegationFindFirstArgs>(args?: SelectSubset<T, PermissionDelegationFindFirstArgs<ExtArgs>>): Prisma__PermissionDelegationClient<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PermissionDelegation 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 {PermissionDelegationFindFirstOrThrowArgs} args - Arguments to find a PermissionDelegation
     * @example
     * // Get one PermissionDelegation
     * const permissionDelegation = await prisma.permissionDelegation.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PermissionDelegationFindFirstOrThrowArgs>(args?: SelectSubset<T, PermissionDelegationFindFirstOrThrowArgs<ExtArgs>>): Prisma__PermissionDelegationClient<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PermissionDelegations 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 {PermissionDelegationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PermissionDelegations
     * const permissionDelegations = await prisma.permissionDelegation.findMany()
     * 
     * // Get first 10 PermissionDelegations
     * const permissionDelegations = await prisma.permissionDelegation.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const permissionDelegationWithIdOnly = await prisma.permissionDelegation.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PermissionDelegationFindManyArgs>(args?: SelectSubset<T, PermissionDelegationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PermissionDelegation.
     * @param {PermissionDelegationCreateArgs} args - Arguments to create a PermissionDelegation.
     * @example
     * // Create one PermissionDelegation
     * const PermissionDelegation = await prisma.permissionDelegation.create({
     *   data: {
     *     // ... data to create a PermissionDelegation
     *   }
     * })
     * 
     */
    create<T extends PermissionDelegationCreateArgs>(args: SelectSubset<T, PermissionDelegationCreateArgs<ExtArgs>>): Prisma__PermissionDelegationClient<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PermissionDelegations.
     * @param {PermissionDelegationCreateManyArgs} args - Arguments to create many PermissionDelegations.
     * @example
     * // Create many PermissionDelegations
     * const permissionDelegation = await prisma.permissionDelegation.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PermissionDelegationCreateManyArgs>(args?: SelectSubset<T, PermissionDelegationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PermissionDelegations and returns the data saved in the database.
     * @param {PermissionDelegationCreateManyAndReturnArgs} args - Arguments to create many PermissionDelegations.
     * @example
     * // Create many PermissionDelegations
     * const permissionDelegation = await prisma.permissionDelegation.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PermissionDelegations and only return the `id`
     * const permissionDelegationWithIdOnly = await prisma.permissionDelegation.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 PermissionDelegationCreateManyAndReturnArgs>(args?: SelectSubset<T, PermissionDelegationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PermissionDelegation.
     * @param {PermissionDelegationDeleteArgs} args - Arguments to delete one PermissionDelegation.
     * @example
     * // Delete one PermissionDelegation
     * const PermissionDelegation = await prisma.permissionDelegation.delete({
     *   where: {
     *     // ... filter to delete one PermissionDelegation
     *   }
     * })
     * 
     */
    delete<T extends PermissionDelegationDeleteArgs>(args: SelectSubset<T, PermissionDelegationDeleteArgs<ExtArgs>>): Prisma__PermissionDelegationClient<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PermissionDelegation.
     * @param {PermissionDelegationUpdateArgs} args - Arguments to update one PermissionDelegation.
     * @example
     * // Update one PermissionDelegation
     * const permissionDelegation = await prisma.permissionDelegation.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PermissionDelegationUpdateArgs>(args: SelectSubset<T, PermissionDelegationUpdateArgs<ExtArgs>>): Prisma__PermissionDelegationClient<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PermissionDelegations.
     * @param {PermissionDelegationDeleteManyArgs} args - Arguments to filter PermissionDelegations to delete.
     * @example
     * // Delete a few PermissionDelegations
     * const { count } = await prisma.permissionDelegation.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PermissionDelegationDeleteManyArgs>(args?: SelectSubset<T, PermissionDelegationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PermissionDelegations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PermissionDelegationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PermissionDelegations
     * const permissionDelegation = await prisma.permissionDelegation.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PermissionDelegationUpdateManyArgs>(args: SelectSubset<T, PermissionDelegationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PermissionDelegations and returns the data updated in the database.
     * @param {PermissionDelegationUpdateManyAndReturnArgs} args - Arguments to update many PermissionDelegations.
     * @example
     * // Update many PermissionDelegations
     * const permissionDelegation = await prisma.permissionDelegation.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PermissionDelegations and only return the `id`
     * const permissionDelegationWithIdOnly = await prisma.permissionDelegation.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 PermissionDelegationUpdateManyAndReturnArgs>(args: SelectSubset<T, PermissionDelegationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PermissionDelegation.
     * @param {PermissionDelegationUpsertArgs} args - Arguments to update or create a PermissionDelegation.
     * @example
     * // Update or create a PermissionDelegation
     * const permissionDelegation = await prisma.permissionDelegation.upsert({
     *   create: {
     *     // ... data to create a PermissionDelegation
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PermissionDelegation we want to update
     *   }
     * })
     */
    upsert<T extends PermissionDelegationUpsertArgs>(args: SelectSubset<T, PermissionDelegationUpsertArgs<ExtArgs>>): Prisma__PermissionDelegationClient<$Result.GetResult<Prisma.$PermissionDelegationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PermissionDelegations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PermissionDelegationCountArgs} args - Arguments to filter PermissionDelegations to count.
     * @example
     * // Count the number of PermissionDelegations
     * const count = await prisma.permissionDelegation.count({
     *   where: {
     *     // ... the filter for the PermissionDelegations we want to count
     *   }
     * })
    **/
    count<T extends PermissionDelegationCountArgs>(
      args?: Subset<T, PermissionDelegationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PermissionDelegationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PermissionDelegation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PermissionDelegationAggregateArgs} 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 PermissionDelegationAggregateArgs>(args: Subset<T, PermissionDelegationAggregateArgs>): Prisma.PrismaPromise<GetPermissionDelegationAggregateType<T>>

    /**
     * Group by PermissionDelegation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PermissionDelegationGroupByArgs} 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 PermissionDelegationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PermissionDelegationGroupByArgs['orderBy'] }
        : { orderBy?: PermissionDelegationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PermissionDelegationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPermissionDelegationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PermissionDelegation model
   */
  readonly fields: PermissionDelegationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PermissionDelegation.
   * 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__PermissionDelegationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PermissionDelegation model
   */
  interface PermissionDelegationFieldRefs {
    readonly id: FieldRef<"PermissionDelegation", 'String'>
    readonly fromUserId: FieldRef<"PermissionDelegation", 'String'>
    readonly toUserId: FieldRef<"PermissionDelegation", 'String'>
    readonly resource: FieldRef<"PermissionDelegation", 'String'>
    readonly validFrom: FieldRef<"PermissionDelegation", 'DateTime'>
    readonly validTo: FieldRef<"PermissionDelegation", 'DateTime'>
    readonly reason: FieldRef<"PermissionDelegation", 'String'>
    readonly organizationId: FieldRef<"PermissionDelegation", 'String'>
    readonly createdById: FieldRef<"PermissionDelegation", 'String'>
    readonly createdAt: FieldRef<"PermissionDelegation", 'DateTime'>
    readonly updatedAt: FieldRef<"PermissionDelegation", 'DateTime'>
    readonly revokedAt: FieldRef<"PermissionDelegation", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PermissionDelegation findUnique
   */
  export type PermissionDelegationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * Filter, which PermissionDelegation to fetch.
     */
    where: PermissionDelegationWhereUniqueInput
  }

  /**
   * PermissionDelegation findUniqueOrThrow
   */
  export type PermissionDelegationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * Filter, which PermissionDelegation to fetch.
     */
    where: PermissionDelegationWhereUniqueInput
  }

  /**
   * PermissionDelegation findFirst
   */
  export type PermissionDelegationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * Filter, which PermissionDelegation to fetch.
     */
    where?: PermissionDelegationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PermissionDelegations to fetch.
     */
    orderBy?: PermissionDelegationOrderByWithRelationInput | PermissionDelegationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PermissionDelegations.
     */
    cursor?: PermissionDelegationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PermissionDelegations 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` PermissionDelegations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PermissionDelegations.
     */
    distinct?: PermissionDelegationScalarFieldEnum | PermissionDelegationScalarFieldEnum[]
  }

  /**
   * PermissionDelegation findFirstOrThrow
   */
  export type PermissionDelegationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * Filter, which PermissionDelegation to fetch.
     */
    where?: PermissionDelegationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PermissionDelegations to fetch.
     */
    orderBy?: PermissionDelegationOrderByWithRelationInput | PermissionDelegationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PermissionDelegations.
     */
    cursor?: PermissionDelegationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PermissionDelegations 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` PermissionDelegations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PermissionDelegations.
     */
    distinct?: PermissionDelegationScalarFieldEnum | PermissionDelegationScalarFieldEnum[]
  }

  /**
   * PermissionDelegation findMany
   */
  export type PermissionDelegationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * Filter, which PermissionDelegations to fetch.
     */
    where?: PermissionDelegationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PermissionDelegations to fetch.
     */
    orderBy?: PermissionDelegationOrderByWithRelationInput | PermissionDelegationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PermissionDelegations.
     */
    cursor?: PermissionDelegationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PermissionDelegations 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` PermissionDelegations.
     */
    skip?: number
    distinct?: PermissionDelegationScalarFieldEnum | PermissionDelegationScalarFieldEnum[]
  }

  /**
   * PermissionDelegation create
   */
  export type PermissionDelegationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * The data needed to create a PermissionDelegation.
     */
    data: XOR<PermissionDelegationCreateInput, PermissionDelegationUncheckedCreateInput>
  }

  /**
   * PermissionDelegation createMany
   */
  export type PermissionDelegationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PermissionDelegations.
     */
    data: PermissionDelegationCreateManyInput | PermissionDelegationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PermissionDelegation createManyAndReturn
   */
  export type PermissionDelegationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * The data used to create many PermissionDelegations.
     */
    data: PermissionDelegationCreateManyInput | PermissionDelegationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PermissionDelegation update
   */
  export type PermissionDelegationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * The data needed to update a PermissionDelegation.
     */
    data: XOR<PermissionDelegationUpdateInput, PermissionDelegationUncheckedUpdateInput>
    /**
     * Choose, which PermissionDelegation to update.
     */
    where: PermissionDelegationWhereUniqueInput
  }

  /**
   * PermissionDelegation updateMany
   */
  export type PermissionDelegationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PermissionDelegations.
     */
    data: XOR<PermissionDelegationUpdateManyMutationInput, PermissionDelegationUncheckedUpdateManyInput>
    /**
     * Filter which PermissionDelegations to update
     */
    where?: PermissionDelegationWhereInput
    /**
     * Limit how many PermissionDelegations to update.
     */
    limit?: number
  }

  /**
   * PermissionDelegation updateManyAndReturn
   */
  export type PermissionDelegationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * The data used to update PermissionDelegations.
     */
    data: XOR<PermissionDelegationUpdateManyMutationInput, PermissionDelegationUncheckedUpdateManyInput>
    /**
     * Filter which PermissionDelegations to update
     */
    where?: PermissionDelegationWhereInput
    /**
     * Limit how many PermissionDelegations to update.
     */
    limit?: number
  }

  /**
   * PermissionDelegation upsert
   */
  export type PermissionDelegationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * The filter to search for the PermissionDelegation to update in case it exists.
     */
    where: PermissionDelegationWhereUniqueInput
    /**
     * In case the PermissionDelegation found by the `where` argument doesn't exist, create a new PermissionDelegation with this data.
     */
    create: XOR<PermissionDelegationCreateInput, PermissionDelegationUncheckedCreateInput>
    /**
     * In case the PermissionDelegation was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PermissionDelegationUpdateInput, PermissionDelegationUncheckedUpdateInput>
  }

  /**
   * PermissionDelegation delete
   */
  export type PermissionDelegationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
    /**
     * Filter which PermissionDelegation to delete.
     */
    where: PermissionDelegationWhereUniqueInput
  }

  /**
   * PermissionDelegation deleteMany
   */
  export type PermissionDelegationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PermissionDelegations to delete
     */
    where?: PermissionDelegationWhereInput
    /**
     * Limit how many PermissionDelegations to delete.
     */
    limit?: number
  }

  /**
   * PermissionDelegation without action
   */
  export type PermissionDelegationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PermissionDelegation
     */
    select?: PermissionDelegationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PermissionDelegation
     */
    omit?: PermissionDelegationOmit<ExtArgs> | null
  }


  /**
   * Model FieldPermission
   */

  export type AggregateFieldPermission = {
    _count: FieldPermissionCountAggregateOutputType | null
    _min: FieldPermissionMinAggregateOutputType | null
    _max: FieldPermissionMaxAggregateOutputType | null
  }

  export type FieldPermissionMinAggregateOutputType = {
    id: string | null
    roleId: string | null
    resource: string | null
    field: string | null
    access: $Enums.FieldAccess | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FieldPermissionMaxAggregateOutputType = {
    id: string | null
    roleId: string | null
    resource: string | null
    field: string | null
    access: $Enums.FieldAccess | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type FieldPermissionCountAggregateOutputType = {
    id: number
    roleId: number
    resource: number
    field: number
    access: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type FieldPermissionMinAggregateInputType = {
    id?: true
    roleId?: true
    resource?: true
    field?: true
    access?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FieldPermissionMaxAggregateInputType = {
    id?: true
    roleId?: true
    resource?: true
    field?: true
    access?: true
    createdAt?: true
    updatedAt?: true
  }

  export type FieldPermissionCountAggregateInputType = {
    id?: true
    roleId?: true
    resource?: true
    field?: true
    access?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type FieldPermissionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FieldPermission to aggregate.
     */
    where?: FieldPermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FieldPermissions to fetch.
     */
    orderBy?: FieldPermissionOrderByWithRelationInput | FieldPermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: FieldPermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FieldPermissions 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` FieldPermissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned FieldPermissions
    **/
    _count?: true | FieldPermissionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: FieldPermissionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: FieldPermissionMaxAggregateInputType
  }

  export type GetFieldPermissionAggregateType<T extends FieldPermissionAggregateArgs> = {
        [P in keyof T & keyof AggregateFieldPermission]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateFieldPermission[P]>
      : GetScalarType<T[P], AggregateFieldPermission[P]>
  }




  export type FieldPermissionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: FieldPermissionWhereInput
    orderBy?: FieldPermissionOrderByWithAggregationInput | FieldPermissionOrderByWithAggregationInput[]
    by: FieldPermissionScalarFieldEnum[] | FieldPermissionScalarFieldEnum
    having?: FieldPermissionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: FieldPermissionCountAggregateInputType | true
    _min?: FieldPermissionMinAggregateInputType
    _max?: FieldPermissionMaxAggregateInputType
  }

  export type FieldPermissionGroupByOutputType = {
    id: string
    roleId: string
    resource: string
    field: string
    access: $Enums.FieldAccess
    createdAt: Date
    updatedAt: Date
    _count: FieldPermissionCountAggregateOutputType | null
    _min: FieldPermissionMinAggregateOutputType | null
    _max: FieldPermissionMaxAggregateOutputType | null
  }

  type GetFieldPermissionGroupByPayload<T extends FieldPermissionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<FieldPermissionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof FieldPermissionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], FieldPermissionGroupByOutputType[P]>
            : GetScalarType<T[P], FieldPermissionGroupByOutputType[P]>
        }
      >
    >


  export type FieldPermissionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    resource?: boolean
    field?: boolean
    access?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["fieldPermission"]>

  export type FieldPermissionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    resource?: boolean
    field?: boolean
    access?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["fieldPermission"]>

  export type FieldPermissionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    roleId?: boolean
    resource?: boolean
    field?: boolean
    access?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["fieldPermission"]>

  export type FieldPermissionSelectScalar = {
    id?: boolean
    roleId?: boolean
    resource?: boolean
    field?: boolean
    access?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type FieldPermissionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "roleId" | "resource" | "field" | "access" | "createdAt" | "updatedAt", ExtArgs["result"]["fieldPermission"]>

  export type $FieldPermissionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "FieldPermission"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      roleId: string
      resource: string
      field: string
      access: $Enums.FieldAccess
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["fieldPermission"]>
    composites: {}
  }

  type FieldPermissionGetPayload<S extends boolean | null | undefined | FieldPermissionDefaultArgs> = $Result.GetResult<Prisma.$FieldPermissionPayload, S>

  type FieldPermissionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<FieldPermissionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: FieldPermissionCountAggregateInputType | true
    }

  export interface FieldPermissionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['FieldPermission'], meta: { name: 'FieldPermission' } }
    /**
     * Find zero or one FieldPermission that matches the filter.
     * @param {FieldPermissionFindUniqueArgs} args - Arguments to find a FieldPermission
     * @example
     * // Get one FieldPermission
     * const fieldPermission = await prisma.fieldPermission.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends FieldPermissionFindUniqueArgs>(args: SelectSubset<T, FieldPermissionFindUniqueArgs<ExtArgs>>): Prisma__FieldPermissionClient<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one FieldPermission that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {FieldPermissionFindUniqueOrThrowArgs} args - Arguments to find a FieldPermission
     * @example
     * // Get one FieldPermission
     * const fieldPermission = await prisma.fieldPermission.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends FieldPermissionFindUniqueOrThrowArgs>(args: SelectSubset<T, FieldPermissionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__FieldPermissionClient<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FieldPermission 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 {FieldPermissionFindFirstArgs} args - Arguments to find a FieldPermission
     * @example
     * // Get one FieldPermission
     * const fieldPermission = await prisma.fieldPermission.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends FieldPermissionFindFirstArgs>(args?: SelectSubset<T, FieldPermissionFindFirstArgs<ExtArgs>>): Prisma__FieldPermissionClient<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first FieldPermission 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 {FieldPermissionFindFirstOrThrowArgs} args - Arguments to find a FieldPermission
     * @example
     * // Get one FieldPermission
     * const fieldPermission = await prisma.fieldPermission.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends FieldPermissionFindFirstOrThrowArgs>(args?: SelectSubset<T, FieldPermissionFindFirstOrThrowArgs<ExtArgs>>): Prisma__FieldPermissionClient<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more FieldPermissions 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 {FieldPermissionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all FieldPermissions
     * const fieldPermissions = await prisma.fieldPermission.findMany()
     * 
     * // Get first 10 FieldPermissions
     * const fieldPermissions = await prisma.fieldPermission.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const fieldPermissionWithIdOnly = await prisma.fieldPermission.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends FieldPermissionFindManyArgs>(args?: SelectSubset<T, FieldPermissionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a FieldPermission.
     * @param {FieldPermissionCreateArgs} args - Arguments to create a FieldPermission.
     * @example
     * // Create one FieldPermission
     * const FieldPermission = await prisma.fieldPermission.create({
     *   data: {
     *     // ... data to create a FieldPermission
     *   }
     * })
     * 
     */
    create<T extends FieldPermissionCreateArgs>(args: SelectSubset<T, FieldPermissionCreateArgs<ExtArgs>>): Prisma__FieldPermissionClient<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many FieldPermissions.
     * @param {FieldPermissionCreateManyArgs} args - Arguments to create many FieldPermissions.
     * @example
     * // Create many FieldPermissions
     * const fieldPermission = await prisma.fieldPermission.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends FieldPermissionCreateManyArgs>(args?: SelectSubset<T, FieldPermissionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many FieldPermissions and returns the data saved in the database.
     * @param {FieldPermissionCreateManyAndReturnArgs} args - Arguments to create many FieldPermissions.
     * @example
     * // Create many FieldPermissions
     * const fieldPermission = await prisma.fieldPermission.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many FieldPermissions and only return the `id`
     * const fieldPermissionWithIdOnly = await prisma.fieldPermission.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 FieldPermissionCreateManyAndReturnArgs>(args?: SelectSubset<T, FieldPermissionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a FieldPermission.
     * @param {FieldPermissionDeleteArgs} args - Arguments to delete one FieldPermission.
     * @example
     * // Delete one FieldPermission
     * const FieldPermission = await prisma.fieldPermission.delete({
     *   where: {
     *     // ... filter to delete one FieldPermission
     *   }
     * })
     * 
     */
    delete<T extends FieldPermissionDeleteArgs>(args: SelectSubset<T, FieldPermissionDeleteArgs<ExtArgs>>): Prisma__FieldPermissionClient<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one FieldPermission.
     * @param {FieldPermissionUpdateArgs} args - Arguments to update one FieldPermission.
     * @example
     * // Update one FieldPermission
     * const fieldPermission = await prisma.fieldPermission.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends FieldPermissionUpdateArgs>(args: SelectSubset<T, FieldPermissionUpdateArgs<ExtArgs>>): Prisma__FieldPermissionClient<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more FieldPermissions.
     * @param {FieldPermissionDeleteManyArgs} args - Arguments to filter FieldPermissions to delete.
     * @example
     * // Delete a few FieldPermissions
     * const { count } = await prisma.fieldPermission.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends FieldPermissionDeleteManyArgs>(args?: SelectSubset<T, FieldPermissionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FieldPermissions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FieldPermissionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many FieldPermissions
     * const fieldPermission = await prisma.fieldPermission.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends FieldPermissionUpdateManyArgs>(args: SelectSubset<T, FieldPermissionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more FieldPermissions and returns the data updated in the database.
     * @param {FieldPermissionUpdateManyAndReturnArgs} args - Arguments to update many FieldPermissions.
     * @example
     * // Update many FieldPermissions
     * const fieldPermission = await prisma.fieldPermission.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more FieldPermissions and only return the `id`
     * const fieldPermissionWithIdOnly = await prisma.fieldPermission.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 FieldPermissionUpdateManyAndReturnArgs>(args: SelectSubset<T, FieldPermissionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one FieldPermission.
     * @param {FieldPermissionUpsertArgs} args - Arguments to update or create a FieldPermission.
     * @example
     * // Update or create a FieldPermission
     * const fieldPermission = await prisma.fieldPermission.upsert({
     *   create: {
     *     // ... data to create a FieldPermission
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the FieldPermission we want to update
     *   }
     * })
     */
    upsert<T extends FieldPermissionUpsertArgs>(args: SelectSubset<T, FieldPermissionUpsertArgs<ExtArgs>>): Prisma__FieldPermissionClient<$Result.GetResult<Prisma.$FieldPermissionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of FieldPermissions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FieldPermissionCountArgs} args - Arguments to filter FieldPermissions to count.
     * @example
     * // Count the number of FieldPermissions
     * const count = await prisma.fieldPermission.count({
     *   where: {
     *     // ... the filter for the FieldPermissions we want to count
     *   }
     * })
    **/
    count<T extends FieldPermissionCountArgs>(
      args?: Subset<T, FieldPermissionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], FieldPermissionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a FieldPermission.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FieldPermissionAggregateArgs} 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 FieldPermissionAggregateArgs>(args: Subset<T, FieldPermissionAggregateArgs>): Prisma.PrismaPromise<GetFieldPermissionAggregateType<T>>

    /**
     * Group by FieldPermission.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {FieldPermissionGroupByArgs} 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 FieldPermissionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: FieldPermissionGroupByArgs['orderBy'] }
        : { orderBy?: FieldPermissionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, FieldPermissionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetFieldPermissionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the FieldPermission model
   */
  readonly fields: FieldPermissionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for FieldPermission.
   * 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__FieldPermissionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the FieldPermission model
   */
  interface FieldPermissionFieldRefs {
    readonly id: FieldRef<"FieldPermission", 'String'>
    readonly roleId: FieldRef<"FieldPermission", 'String'>
    readonly resource: FieldRef<"FieldPermission", 'String'>
    readonly field: FieldRef<"FieldPermission", 'String'>
    readonly access: FieldRef<"FieldPermission", 'FieldAccess'>
    readonly createdAt: FieldRef<"FieldPermission", 'DateTime'>
    readonly updatedAt: FieldRef<"FieldPermission", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * FieldPermission findUnique
   */
  export type FieldPermissionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * Filter, which FieldPermission to fetch.
     */
    where: FieldPermissionWhereUniqueInput
  }

  /**
   * FieldPermission findUniqueOrThrow
   */
  export type FieldPermissionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * Filter, which FieldPermission to fetch.
     */
    where: FieldPermissionWhereUniqueInput
  }

  /**
   * FieldPermission findFirst
   */
  export type FieldPermissionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * Filter, which FieldPermission to fetch.
     */
    where?: FieldPermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FieldPermissions to fetch.
     */
    orderBy?: FieldPermissionOrderByWithRelationInput | FieldPermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FieldPermissions.
     */
    cursor?: FieldPermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FieldPermissions 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` FieldPermissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FieldPermissions.
     */
    distinct?: FieldPermissionScalarFieldEnum | FieldPermissionScalarFieldEnum[]
  }

  /**
   * FieldPermission findFirstOrThrow
   */
  export type FieldPermissionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * Filter, which FieldPermission to fetch.
     */
    where?: FieldPermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FieldPermissions to fetch.
     */
    orderBy?: FieldPermissionOrderByWithRelationInput | FieldPermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for FieldPermissions.
     */
    cursor?: FieldPermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FieldPermissions 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` FieldPermissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of FieldPermissions.
     */
    distinct?: FieldPermissionScalarFieldEnum | FieldPermissionScalarFieldEnum[]
  }

  /**
   * FieldPermission findMany
   */
  export type FieldPermissionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * Filter, which FieldPermissions to fetch.
     */
    where?: FieldPermissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of FieldPermissions to fetch.
     */
    orderBy?: FieldPermissionOrderByWithRelationInput | FieldPermissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing FieldPermissions.
     */
    cursor?: FieldPermissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` FieldPermissions 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` FieldPermissions.
     */
    skip?: number
    distinct?: FieldPermissionScalarFieldEnum | FieldPermissionScalarFieldEnum[]
  }

  /**
   * FieldPermission create
   */
  export type FieldPermissionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * The data needed to create a FieldPermission.
     */
    data: XOR<FieldPermissionCreateInput, FieldPermissionUncheckedCreateInput>
  }

  /**
   * FieldPermission createMany
   */
  export type FieldPermissionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many FieldPermissions.
     */
    data: FieldPermissionCreateManyInput | FieldPermissionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FieldPermission createManyAndReturn
   */
  export type FieldPermissionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * The data used to create many FieldPermissions.
     */
    data: FieldPermissionCreateManyInput | FieldPermissionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * FieldPermission update
   */
  export type FieldPermissionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * The data needed to update a FieldPermission.
     */
    data: XOR<FieldPermissionUpdateInput, FieldPermissionUncheckedUpdateInput>
    /**
     * Choose, which FieldPermission to update.
     */
    where: FieldPermissionWhereUniqueInput
  }

  /**
   * FieldPermission updateMany
   */
  export type FieldPermissionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update FieldPermissions.
     */
    data: XOR<FieldPermissionUpdateManyMutationInput, FieldPermissionUncheckedUpdateManyInput>
    /**
     * Filter which FieldPermissions to update
     */
    where?: FieldPermissionWhereInput
    /**
     * Limit how many FieldPermissions to update.
     */
    limit?: number
  }

  /**
   * FieldPermission updateManyAndReturn
   */
  export type FieldPermissionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * The data used to update FieldPermissions.
     */
    data: XOR<FieldPermissionUpdateManyMutationInput, FieldPermissionUncheckedUpdateManyInput>
    /**
     * Filter which FieldPermissions to update
     */
    where?: FieldPermissionWhereInput
    /**
     * Limit how many FieldPermissions to update.
     */
    limit?: number
  }

  /**
   * FieldPermission upsert
   */
  export type FieldPermissionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * The filter to search for the FieldPermission to update in case it exists.
     */
    where: FieldPermissionWhereUniqueInput
    /**
     * In case the FieldPermission found by the `where` argument doesn't exist, create a new FieldPermission with this data.
     */
    create: XOR<FieldPermissionCreateInput, FieldPermissionUncheckedCreateInput>
    /**
     * In case the FieldPermission was found with the provided `where` argument, update it with this data.
     */
    update: XOR<FieldPermissionUpdateInput, FieldPermissionUncheckedUpdateInput>
  }

  /**
   * FieldPermission delete
   */
  export type FieldPermissionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
    /**
     * Filter which FieldPermission to delete.
     */
    where: FieldPermissionWhereUniqueInput
  }

  /**
   * FieldPermission deleteMany
   */
  export type FieldPermissionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which FieldPermissions to delete
     */
    where?: FieldPermissionWhereInput
    /**
     * Limit how many FieldPermissions to delete.
     */
    limit?: number
  }

  /**
   * FieldPermission without action
   */
  export type FieldPermissionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the FieldPermission
     */
    select?: FieldPermissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the FieldPermission
     */
    omit?: FieldPermissionOmit<ExtArgs> | null
  }


  /**
   * Model IamAuditLog
   */

  export type AggregateIamAuditLog = {
    _count: IamAuditLogCountAggregateOutputType | null
    _min: IamAuditLogMinAggregateOutputType | null
    _max: IamAuditLogMaxAggregateOutputType | null
  }

  export type IamAuditLogMinAggregateOutputType = {
    id: string | null
    actor: string | null
    action: string | null
    resource: string | null
    targetId: string | null
    ip: string | null
    userAgent: string | null
    timestamp: Date | null
  }

  export type IamAuditLogMaxAggregateOutputType = {
    id: string | null
    actor: string | null
    action: string | null
    resource: string | null
    targetId: string | null
    ip: string | null
    userAgent: string | null
    timestamp: Date | null
  }

  export type IamAuditLogCountAggregateOutputType = {
    id: number
    actor: number
    action: number
    resource: number
    targetId: number
    before: number
    after: number
    ip: number
    userAgent: number
    timestamp: number
    _all: number
  }


  export type IamAuditLogMinAggregateInputType = {
    id?: true
    actor?: true
    action?: true
    resource?: true
    targetId?: true
    ip?: true
    userAgent?: true
    timestamp?: true
  }

  export type IamAuditLogMaxAggregateInputType = {
    id?: true
    actor?: true
    action?: true
    resource?: true
    targetId?: true
    ip?: true
    userAgent?: true
    timestamp?: true
  }

  export type IamAuditLogCountAggregateInputType = {
    id?: true
    actor?: true
    action?: true
    resource?: true
    targetId?: true
    before?: true
    after?: true
    ip?: true
    userAgent?: true
    timestamp?: true
    _all?: true
  }

  export type IamAuditLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which IamAuditLog to aggregate.
     */
    where?: IamAuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of IamAuditLogs to fetch.
     */
    orderBy?: IamAuditLogOrderByWithRelationInput | IamAuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: IamAuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` IamAuditLogs 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` IamAuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned IamAuditLogs
    **/
    _count?: true | IamAuditLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: IamAuditLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: IamAuditLogMaxAggregateInputType
  }

  export type GetIamAuditLogAggregateType<T extends IamAuditLogAggregateArgs> = {
        [P in keyof T & keyof AggregateIamAuditLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateIamAuditLog[P]>
      : GetScalarType<T[P], AggregateIamAuditLog[P]>
  }




  export type IamAuditLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: IamAuditLogWhereInput
    orderBy?: IamAuditLogOrderByWithAggregationInput | IamAuditLogOrderByWithAggregationInput[]
    by: IamAuditLogScalarFieldEnum[] | IamAuditLogScalarFieldEnum
    having?: IamAuditLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: IamAuditLogCountAggregateInputType | true
    _min?: IamAuditLogMinAggregateInputType
    _max?: IamAuditLogMaxAggregateInputType
  }

  export type IamAuditLogGroupByOutputType = {
    id: string
    actor: string
    action: string
    resource: string
    targetId: string | null
    before: JsonValue | null
    after: JsonValue | null
    ip: string | null
    userAgent: string | null
    timestamp: Date
    _count: IamAuditLogCountAggregateOutputType | null
    _min: IamAuditLogMinAggregateOutputType | null
    _max: IamAuditLogMaxAggregateOutputType | null
  }

  type GetIamAuditLogGroupByPayload<T extends IamAuditLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<IamAuditLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof IamAuditLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], IamAuditLogGroupByOutputType[P]>
            : GetScalarType<T[P], IamAuditLogGroupByOutputType[P]>
        }
      >
    >


  export type IamAuditLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actor?: boolean
    action?: boolean
    resource?: boolean
    targetId?: boolean
    before?: boolean
    after?: boolean
    ip?: boolean
    userAgent?: boolean
    timestamp?: boolean
  }, ExtArgs["result"]["iamAuditLog"]>

  export type IamAuditLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actor?: boolean
    action?: boolean
    resource?: boolean
    targetId?: boolean
    before?: boolean
    after?: boolean
    ip?: boolean
    userAgent?: boolean
    timestamp?: boolean
  }, ExtArgs["result"]["iamAuditLog"]>

  export type IamAuditLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actor?: boolean
    action?: boolean
    resource?: boolean
    targetId?: boolean
    before?: boolean
    after?: boolean
    ip?: boolean
    userAgent?: boolean
    timestamp?: boolean
  }, ExtArgs["result"]["iamAuditLog"]>

  export type IamAuditLogSelectScalar = {
    id?: boolean
    actor?: boolean
    action?: boolean
    resource?: boolean
    targetId?: boolean
    before?: boolean
    after?: boolean
    ip?: boolean
    userAgent?: boolean
    timestamp?: boolean
  }

  export type IamAuditLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "actor" | "action" | "resource" | "targetId" | "before" | "after" | "ip" | "userAgent" | "timestamp", ExtArgs["result"]["iamAuditLog"]>

  export type $IamAuditLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "IamAuditLog"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      actor: string
      action: string
      resource: string
      targetId: string | null
      before: Prisma.JsonValue | null
      after: Prisma.JsonValue | null
      ip: string | null
      userAgent: string | null
      timestamp: Date
    }, ExtArgs["result"]["iamAuditLog"]>
    composites: {}
  }

  type IamAuditLogGetPayload<S extends boolean | null | undefined | IamAuditLogDefaultArgs> = $Result.GetResult<Prisma.$IamAuditLogPayload, S>

  type IamAuditLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<IamAuditLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: IamAuditLogCountAggregateInputType | true
    }

  export interface IamAuditLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['IamAuditLog'], meta: { name: 'IamAuditLog' } }
    /**
     * Find zero or one IamAuditLog that matches the filter.
     * @param {IamAuditLogFindUniqueArgs} args - Arguments to find a IamAuditLog
     * @example
     * // Get one IamAuditLog
     * const iamAuditLog = await prisma.iamAuditLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends IamAuditLogFindUniqueArgs>(args: SelectSubset<T, IamAuditLogFindUniqueArgs<ExtArgs>>): Prisma__IamAuditLogClient<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one IamAuditLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {IamAuditLogFindUniqueOrThrowArgs} args - Arguments to find a IamAuditLog
     * @example
     * // Get one IamAuditLog
     * const iamAuditLog = await prisma.iamAuditLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends IamAuditLogFindUniqueOrThrowArgs>(args: SelectSubset<T, IamAuditLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__IamAuditLogClient<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first IamAuditLog 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 {IamAuditLogFindFirstArgs} args - Arguments to find a IamAuditLog
     * @example
     * // Get one IamAuditLog
     * const iamAuditLog = await prisma.iamAuditLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends IamAuditLogFindFirstArgs>(args?: SelectSubset<T, IamAuditLogFindFirstArgs<ExtArgs>>): Prisma__IamAuditLogClient<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first IamAuditLog 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 {IamAuditLogFindFirstOrThrowArgs} args - Arguments to find a IamAuditLog
     * @example
     * // Get one IamAuditLog
     * const iamAuditLog = await prisma.iamAuditLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends IamAuditLogFindFirstOrThrowArgs>(args?: SelectSubset<T, IamAuditLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__IamAuditLogClient<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more IamAuditLogs 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 {IamAuditLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all IamAuditLogs
     * const iamAuditLogs = await prisma.iamAuditLog.findMany()
     * 
     * // Get first 10 IamAuditLogs
     * const iamAuditLogs = await prisma.iamAuditLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const iamAuditLogWithIdOnly = await prisma.iamAuditLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends IamAuditLogFindManyArgs>(args?: SelectSubset<T, IamAuditLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a IamAuditLog.
     * @param {IamAuditLogCreateArgs} args - Arguments to create a IamAuditLog.
     * @example
     * // Create one IamAuditLog
     * const IamAuditLog = await prisma.iamAuditLog.create({
     *   data: {
     *     // ... data to create a IamAuditLog
     *   }
     * })
     * 
     */
    create<T extends IamAuditLogCreateArgs>(args: SelectSubset<T, IamAuditLogCreateArgs<ExtArgs>>): Prisma__IamAuditLogClient<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many IamAuditLogs.
     * @param {IamAuditLogCreateManyArgs} args - Arguments to create many IamAuditLogs.
     * @example
     * // Create many IamAuditLogs
     * const iamAuditLog = await prisma.iamAuditLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends IamAuditLogCreateManyArgs>(args?: SelectSubset<T, IamAuditLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many IamAuditLogs and returns the data saved in the database.
     * @param {IamAuditLogCreateManyAndReturnArgs} args - Arguments to create many IamAuditLogs.
     * @example
     * // Create many IamAuditLogs
     * const iamAuditLog = await prisma.iamAuditLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many IamAuditLogs and only return the `id`
     * const iamAuditLogWithIdOnly = await prisma.iamAuditLog.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 IamAuditLogCreateManyAndReturnArgs>(args?: SelectSubset<T, IamAuditLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a IamAuditLog.
     * @param {IamAuditLogDeleteArgs} args - Arguments to delete one IamAuditLog.
     * @example
     * // Delete one IamAuditLog
     * const IamAuditLog = await prisma.iamAuditLog.delete({
     *   where: {
     *     // ... filter to delete one IamAuditLog
     *   }
     * })
     * 
     */
    delete<T extends IamAuditLogDeleteArgs>(args: SelectSubset<T, IamAuditLogDeleteArgs<ExtArgs>>): Prisma__IamAuditLogClient<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one IamAuditLog.
     * @param {IamAuditLogUpdateArgs} args - Arguments to update one IamAuditLog.
     * @example
     * // Update one IamAuditLog
     * const iamAuditLog = await prisma.iamAuditLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends IamAuditLogUpdateArgs>(args: SelectSubset<T, IamAuditLogUpdateArgs<ExtArgs>>): Prisma__IamAuditLogClient<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more IamAuditLogs.
     * @param {IamAuditLogDeleteManyArgs} args - Arguments to filter IamAuditLogs to delete.
     * @example
     * // Delete a few IamAuditLogs
     * const { count } = await prisma.iamAuditLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends IamAuditLogDeleteManyArgs>(args?: SelectSubset<T, IamAuditLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more IamAuditLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {IamAuditLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many IamAuditLogs
     * const iamAuditLog = await prisma.iamAuditLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends IamAuditLogUpdateManyArgs>(args: SelectSubset<T, IamAuditLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more IamAuditLogs and returns the data updated in the database.
     * @param {IamAuditLogUpdateManyAndReturnArgs} args - Arguments to update many IamAuditLogs.
     * @example
     * // Update many IamAuditLogs
     * const iamAuditLog = await prisma.iamAuditLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more IamAuditLogs and only return the `id`
     * const iamAuditLogWithIdOnly = await prisma.iamAuditLog.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 IamAuditLogUpdateManyAndReturnArgs>(args: SelectSubset<T, IamAuditLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one IamAuditLog.
     * @param {IamAuditLogUpsertArgs} args - Arguments to update or create a IamAuditLog.
     * @example
     * // Update or create a IamAuditLog
     * const iamAuditLog = await prisma.iamAuditLog.upsert({
     *   create: {
     *     // ... data to create a IamAuditLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the IamAuditLog we want to update
     *   }
     * })
     */
    upsert<T extends IamAuditLogUpsertArgs>(args: SelectSubset<T, IamAuditLogUpsertArgs<ExtArgs>>): Prisma__IamAuditLogClient<$Result.GetResult<Prisma.$IamAuditLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of IamAuditLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {IamAuditLogCountArgs} args - Arguments to filter IamAuditLogs to count.
     * @example
     * // Count the number of IamAuditLogs
     * const count = await prisma.iamAuditLog.count({
     *   where: {
     *     // ... the filter for the IamAuditLogs we want to count
     *   }
     * })
    **/
    count<T extends IamAuditLogCountArgs>(
      args?: Subset<T, IamAuditLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], IamAuditLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a IamAuditLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {IamAuditLogAggregateArgs} 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 IamAuditLogAggregateArgs>(args: Subset<T, IamAuditLogAggregateArgs>): Prisma.PrismaPromise<GetIamAuditLogAggregateType<T>>

    /**
     * Group by IamAuditLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {IamAuditLogGroupByArgs} 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 IamAuditLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: IamAuditLogGroupByArgs['orderBy'] }
        : { orderBy?: IamAuditLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, IamAuditLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetIamAuditLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the IamAuditLog model
   */
  readonly fields: IamAuditLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for IamAuditLog.
   * 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__IamAuditLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the IamAuditLog model
   */
  interface IamAuditLogFieldRefs {
    readonly id: FieldRef<"IamAuditLog", 'String'>
    readonly actor: FieldRef<"IamAuditLog", 'String'>
    readonly action: FieldRef<"IamAuditLog", 'String'>
    readonly resource: FieldRef<"IamAuditLog", 'String'>
    readonly targetId: FieldRef<"IamAuditLog", 'String'>
    readonly before: FieldRef<"IamAuditLog", 'Json'>
    readonly after: FieldRef<"IamAuditLog", 'Json'>
    readonly ip: FieldRef<"IamAuditLog", 'String'>
    readonly userAgent: FieldRef<"IamAuditLog", 'String'>
    readonly timestamp: FieldRef<"IamAuditLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * IamAuditLog findUnique
   */
  export type IamAuditLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * Filter, which IamAuditLog to fetch.
     */
    where: IamAuditLogWhereUniqueInput
  }

  /**
   * IamAuditLog findUniqueOrThrow
   */
  export type IamAuditLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * Filter, which IamAuditLog to fetch.
     */
    where: IamAuditLogWhereUniqueInput
  }

  /**
   * IamAuditLog findFirst
   */
  export type IamAuditLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * Filter, which IamAuditLog to fetch.
     */
    where?: IamAuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of IamAuditLogs to fetch.
     */
    orderBy?: IamAuditLogOrderByWithRelationInput | IamAuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for IamAuditLogs.
     */
    cursor?: IamAuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` IamAuditLogs 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` IamAuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of IamAuditLogs.
     */
    distinct?: IamAuditLogScalarFieldEnum | IamAuditLogScalarFieldEnum[]
  }

  /**
   * IamAuditLog findFirstOrThrow
   */
  export type IamAuditLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * Filter, which IamAuditLog to fetch.
     */
    where?: IamAuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of IamAuditLogs to fetch.
     */
    orderBy?: IamAuditLogOrderByWithRelationInput | IamAuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for IamAuditLogs.
     */
    cursor?: IamAuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` IamAuditLogs 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` IamAuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of IamAuditLogs.
     */
    distinct?: IamAuditLogScalarFieldEnum | IamAuditLogScalarFieldEnum[]
  }

  /**
   * IamAuditLog findMany
   */
  export type IamAuditLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * Filter, which IamAuditLogs to fetch.
     */
    where?: IamAuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of IamAuditLogs to fetch.
     */
    orderBy?: IamAuditLogOrderByWithRelationInput | IamAuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing IamAuditLogs.
     */
    cursor?: IamAuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` IamAuditLogs 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` IamAuditLogs.
     */
    skip?: number
    distinct?: IamAuditLogScalarFieldEnum | IamAuditLogScalarFieldEnum[]
  }

  /**
   * IamAuditLog create
   */
  export type IamAuditLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * The data needed to create a IamAuditLog.
     */
    data: XOR<IamAuditLogCreateInput, IamAuditLogUncheckedCreateInput>
  }

  /**
   * IamAuditLog createMany
   */
  export type IamAuditLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many IamAuditLogs.
     */
    data: IamAuditLogCreateManyInput | IamAuditLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * IamAuditLog createManyAndReturn
   */
  export type IamAuditLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * The data used to create many IamAuditLogs.
     */
    data: IamAuditLogCreateManyInput | IamAuditLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * IamAuditLog update
   */
  export type IamAuditLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * The data needed to update a IamAuditLog.
     */
    data: XOR<IamAuditLogUpdateInput, IamAuditLogUncheckedUpdateInput>
    /**
     * Choose, which IamAuditLog to update.
     */
    where: IamAuditLogWhereUniqueInput
  }

  /**
   * IamAuditLog updateMany
   */
  export type IamAuditLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update IamAuditLogs.
     */
    data: XOR<IamAuditLogUpdateManyMutationInput, IamAuditLogUncheckedUpdateManyInput>
    /**
     * Filter which IamAuditLogs to update
     */
    where?: IamAuditLogWhereInput
    /**
     * Limit how many IamAuditLogs to update.
     */
    limit?: number
  }

  /**
   * IamAuditLog updateManyAndReturn
   */
  export type IamAuditLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * The data used to update IamAuditLogs.
     */
    data: XOR<IamAuditLogUpdateManyMutationInput, IamAuditLogUncheckedUpdateManyInput>
    /**
     * Filter which IamAuditLogs to update
     */
    where?: IamAuditLogWhereInput
    /**
     * Limit how many IamAuditLogs to update.
     */
    limit?: number
  }

  /**
   * IamAuditLog upsert
   */
  export type IamAuditLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * The filter to search for the IamAuditLog to update in case it exists.
     */
    where: IamAuditLogWhereUniqueInput
    /**
     * In case the IamAuditLog found by the `where` argument doesn't exist, create a new IamAuditLog with this data.
     */
    create: XOR<IamAuditLogCreateInput, IamAuditLogUncheckedCreateInput>
    /**
     * In case the IamAuditLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<IamAuditLogUpdateInput, IamAuditLogUncheckedUpdateInput>
  }

  /**
   * IamAuditLog delete
   */
  export type IamAuditLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
    /**
     * Filter which IamAuditLog to delete.
     */
    where: IamAuditLogWhereUniqueInput
  }

  /**
   * IamAuditLog deleteMany
   */
  export type IamAuditLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which IamAuditLogs to delete
     */
    where?: IamAuditLogWhereInput
    /**
     * Limit how many IamAuditLogs to delete.
     */
    limit?: number
  }

  /**
   * IamAuditLog without action
   */
  export type IamAuditLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the IamAuditLog
     */
    select?: IamAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the IamAuditLog
     */
    omit?: IamAuditLogOmit<ExtArgs> | null
  }


  /**
   * Model EmployeeSlugBinding
   */

  export type AggregateEmployeeSlugBinding = {
    _count: EmployeeSlugBindingCountAggregateOutputType | null
    _min: EmployeeSlugBindingMinAggregateOutputType | null
    _max: EmployeeSlugBindingMaxAggregateOutputType | null
  }

  export type EmployeeSlugBindingMinAggregateOutputType = {
    id: string | null
    userId: string | null
    employeeSlug: string | null
    sourceMailNickname: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type EmployeeSlugBindingMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    employeeSlug: string | null
    sourceMailNickname: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type EmployeeSlugBindingCountAggregateOutputType = {
    id: number
    userId: number
    employeeSlug: number
    sourceMailNickname: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type EmployeeSlugBindingMinAggregateInputType = {
    id?: true
    userId?: true
    employeeSlug?: true
    sourceMailNickname?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type EmployeeSlugBindingMaxAggregateInputType = {
    id?: true
    userId?: true
    employeeSlug?: true
    sourceMailNickname?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type EmployeeSlugBindingCountAggregateInputType = {
    id?: true
    userId?: true
    employeeSlug?: true
    sourceMailNickname?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type EmployeeSlugBindingAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which EmployeeSlugBinding to aggregate.
     */
    where?: EmployeeSlugBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EmployeeSlugBindings to fetch.
     */
    orderBy?: EmployeeSlugBindingOrderByWithRelationInput | EmployeeSlugBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: EmployeeSlugBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EmployeeSlugBindings 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` EmployeeSlugBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned EmployeeSlugBindings
    **/
    _count?: true | EmployeeSlugBindingCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: EmployeeSlugBindingMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: EmployeeSlugBindingMaxAggregateInputType
  }

  export type GetEmployeeSlugBindingAggregateType<T extends EmployeeSlugBindingAggregateArgs> = {
        [P in keyof T & keyof AggregateEmployeeSlugBinding]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateEmployeeSlugBinding[P]>
      : GetScalarType<T[P], AggregateEmployeeSlugBinding[P]>
  }




  export type EmployeeSlugBindingGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EmployeeSlugBindingWhereInput
    orderBy?: EmployeeSlugBindingOrderByWithAggregationInput | EmployeeSlugBindingOrderByWithAggregationInput[]
    by: EmployeeSlugBindingScalarFieldEnum[] | EmployeeSlugBindingScalarFieldEnum
    having?: EmployeeSlugBindingScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: EmployeeSlugBindingCountAggregateInputType | true
    _min?: EmployeeSlugBindingMinAggregateInputType
    _max?: EmployeeSlugBindingMaxAggregateInputType
  }

  export type EmployeeSlugBindingGroupByOutputType = {
    id: string
    userId: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: EmployeeSlugBindingCountAggregateOutputType | null
    _min: EmployeeSlugBindingMinAggregateOutputType | null
    _max: EmployeeSlugBindingMaxAggregateOutputType | null
  }

  type GetEmployeeSlugBindingGroupByPayload<T extends EmployeeSlugBindingGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<EmployeeSlugBindingGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof EmployeeSlugBindingGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], EmployeeSlugBindingGroupByOutputType[P]>
            : GetScalarType<T[P], EmployeeSlugBindingGroupByOutputType[P]>
        }
      >
    >


  export type EmployeeSlugBindingSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeSlug?: boolean
    sourceMailNickname?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    apps?: boolean | EmployeeSlugBinding$appsArgs<ExtArgs>
    tokens?: boolean | EmployeeSlugBinding$tokensArgs<ExtArgs>
    _count?: boolean | EmployeeSlugBindingCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employeeSlugBinding"]>

  export type EmployeeSlugBindingSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeSlug?: boolean
    sourceMailNickname?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employeeSlugBinding"]>

  export type EmployeeSlugBindingSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    employeeSlug?: boolean
    sourceMailNickname?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["employeeSlugBinding"]>

  export type EmployeeSlugBindingSelectScalar = {
    id?: boolean
    userId?: boolean
    employeeSlug?: boolean
    sourceMailNickname?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type EmployeeSlugBindingOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "employeeSlug" | "sourceMailNickname" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["employeeSlugBinding"]>
  export type EmployeeSlugBindingInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    apps?: boolean | EmployeeSlugBinding$appsArgs<ExtArgs>
    tokens?: boolean | EmployeeSlugBinding$tokensArgs<ExtArgs>
    _count?: boolean | EmployeeSlugBindingCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type EmployeeSlugBindingIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type EmployeeSlugBindingIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $EmployeeSlugBindingPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "EmployeeSlugBinding"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      apps: Prisma.$InternalAppPayload<ExtArgs>[]
      tokens: Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      employeeSlug: string
      sourceMailNickname: string
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["employeeSlugBinding"]>
    composites: {}
  }

  type EmployeeSlugBindingGetPayload<S extends boolean | null | undefined | EmployeeSlugBindingDefaultArgs> = $Result.GetResult<Prisma.$EmployeeSlugBindingPayload, S>

  type EmployeeSlugBindingCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<EmployeeSlugBindingFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: EmployeeSlugBindingCountAggregateInputType | true
    }

  export interface EmployeeSlugBindingDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['EmployeeSlugBinding'], meta: { name: 'EmployeeSlugBinding' } }
    /**
     * Find zero or one EmployeeSlugBinding that matches the filter.
     * @param {EmployeeSlugBindingFindUniqueArgs} args - Arguments to find a EmployeeSlugBinding
     * @example
     * // Get one EmployeeSlugBinding
     * const employeeSlugBinding = await prisma.employeeSlugBinding.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends EmployeeSlugBindingFindUniqueArgs>(args: SelectSubset<T, EmployeeSlugBindingFindUniqueArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one EmployeeSlugBinding that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {EmployeeSlugBindingFindUniqueOrThrowArgs} args - Arguments to find a EmployeeSlugBinding
     * @example
     * // Get one EmployeeSlugBinding
     * const employeeSlugBinding = await prisma.employeeSlugBinding.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends EmployeeSlugBindingFindUniqueOrThrowArgs>(args: SelectSubset<T, EmployeeSlugBindingFindUniqueOrThrowArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first EmployeeSlugBinding 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 {EmployeeSlugBindingFindFirstArgs} args - Arguments to find a EmployeeSlugBinding
     * @example
     * // Get one EmployeeSlugBinding
     * const employeeSlugBinding = await prisma.employeeSlugBinding.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends EmployeeSlugBindingFindFirstArgs>(args?: SelectSubset<T, EmployeeSlugBindingFindFirstArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first EmployeeSlugBinding 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 {EmployeeSlugBindingFindFirstOrThrowArgs} args - Arguments to find a EmployeeSlugBinding
     * @example
     * // Get one EmployeeSlugBinding
     * const employeeSlugBinding = await prisma.employeeSlugBinding.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends EmployeeSlugBindingFindFirstOrThrowArgs>(args?: SelectSubset<T, EmployeeSlugBindingFindFirstOrThrowArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more EmployeeSlugBindings 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 {EmployeeSlugBindingFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all EmployeeSlugBindings
     * const employeeSlugBindings = await prisma.employeeSlugBinding.findMany()
     * 
     * // Get first 10 EmployeeSlugBindings
     * const employeeSlugBindings = await prisma.employeeSlugBinding.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const employeeSlugBindingWithIdOnly = await prisma.employeeSlugBinding.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends EmployeeSlugBindingFindManyArgs>(args?: SelectSubset<T, EmployeeSlugBindingFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a EmployeeSlugBinding.
     * @param {EmployeeSlugBindingCreateArgs} args - Arguments to create a EmployeeSlugBinding.
     * @example
     * // Create one EmployeeSlugBinding
     * const EmployeeSlugBinding = await prisma.employeeSlugBinding.create({
     *   data: {
     *     // ... data to create a EmployeeSlugBinding
     *   }
     * })
     * 
     */
    create<T extends EmployeeSlugBindingCreateArgs>(args: SelectSubset<T, EmployeeSlugBindingCreateArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many EmployeeSlugBindings.
     * @param {EmployeeSlugBindingCreateManyArgs} args - Arguments to create many EmployeeSlugBindings.
     * @example
     * // Create many EmployeeSlugBindings
     * const employeeSlugBinding = await prisma.employeeSlugBinding.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends EmployeeSlugBindingCreateManyArgs>(args?: SelectSubset<T, EmployeeSlugBindingCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many EmployeeSlugBindings and returns the data saved in the database.
     * @param {EmployeeSlugBindingCreateManyAndReturnArgs} args - Arguments to create many EmployeeSlugBindings.
     * @example
     * // Create many EmployeeSlugBindings
     * const employeeSlugBinding = await prisma.employeeSlugBinding.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many EmployeeSlugBindings and only return the `id`
     * const employeeSlugBindingWithIdOnly = await prisma.employeeSlugBinding.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 EmployeeSlugBindingCreateManyAndReturnArgs>(args?: SelectSubset<T, EmployeeSlugBindingCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a EmployeeSlugBinding.
     * @param {EmployeeSlugBindingDeleteArgs} args - Arguments to delete one EmployeeSlugBinding.
     * @example
     * // Delete one EmployeeSlugBinding
     * const EmployeeSlugBinding = await prisma.employeeSlugBinding.delete({
     *   where: {
     *     // ... filter to delete one EmployeeSlugBinding
     *   }
     * })
     * 
     */
    delete<T extends EmployeeSlugBindingDeleteArgs>(args: SelectSubset<T, EmployeeSlugBindingDeleteArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one EmployeeSlugBinding.
     * @param {EmployeeSlugBindingUpdateArgs} args - Arguments to update one EmployeeSlugBinding.
     * @example
     * // Update one EmployeeSlugBinding
     * const employeeSlugBinding = await prisma.employeeSlugBinding.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends EmployeeSlugBindingUpdateArgs>(args: SelectSubset<T, EmployeeSlugBindingUpdateArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more EmployeeSlugBindings.
     * @param {EmployeeSlugBindingDeleteManyArgs} args - Arguments to filter EmployeeSlugBindings to delete.
     * @example
     * // Delete a few EmployeeSlugBindings
     * const { count } = await prisma.employeeSlugBinding.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends EmployeeSlugBindingDeleteManyArgs>(args?: SelectSubset<T, EmployeeSlugBindingDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more EmployeeSlugBindings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EmployeeSlugBindingUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many EmployeeSlugBindings
     * const employeeSlugBinding = await prisma.employeeSlugBinding.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends EmployeeSlugBindingUpdateManyArgs>(args: SelectSubset<T, EmployeeSlugBindingUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more EmployeeSlugBindings and returns the data updated in the database.
     * @param {EmployeeSlugBindingUpdateManyAndReturnArgs} args - Arguments to update many EmployeeSlugBindings.
     * @example
     * // Update many EmployeeSlugBindings
     * const employeeSlugBinding = await prisma.employeeSlugBinding.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more EmployeeSlugBindings and only return the `id`
     * const employeeSlugBindingWithIdOnly = await prisma.employeeSlugBinding.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 EmployeeSlugBindingUpdateManyAndReturnArgs>(args: SelectSubset<T, EmployeeSlugBindingUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one EmployeeSlugBinding.
     * @param {EmployeeSlugBindingUpsertArgs} args - Arguments to update or create a EmployeeSlugBinding.
     * @example
     * // Update or create a EmployeeSlugBinding
     * const employeeSlugBinding = await prisma.employeeSlugBinding.upsert({
     *   create: {
     *     // ... data to create a EmployeeSlugBinding
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the EmployeeSlugBinding we want to update
     *   }
     * })
     */
    upsert<T extends EmployeeSlugBindingUpsertArgs>(args: SelectSubset<T, EmployeeSlugBindingUpsertArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of EmployeeSlugBindings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EmployeeSlugBindingCountArgs} args - Arguments to filter EmployeeSlugBindings to count.
     * @example
     * // Count the number of EmployeeSlugBindings
     * const count = await prisma.employeeSlugBinding.count({
     *   where: {
     *     // ... the filter for the EmployeeSlugBindings we want to count
     *   }
     * })
    **/
    count<T extends EmployeeSlugBindingCountArgs>(
      args?: Subset<T, EmployeeSlugBindingCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], EmployeeSlugBindingCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a EmployeeSlugBinding.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EmployeeSlugBindingAggregateArgs} 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 EmployeeSlugBindingAggregateArgs>(args: Subset<T, EmployeeSlugBindingAggregateArgs>): Prisma.PrismaPromise<GetEmployeeSlugBindingAggregateType<T>>

    /**
     * Group by EmployeeSlugBinding.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EmployeeSlugBindingGroupByArgs} 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 EmployeeSlugBindingGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: EmployeeSlugBindingGroupByArgs['orderBy'] }
        : { orderBy?: EmployeeSlugBindingGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, EmployeeSlugBindingGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetEmployeeSlugBindingGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the EmployeeSlugBinding model
   */
  readonly fields: EmployeeSlugBindingFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for EmployeeSlugBinding.
   * 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__EmployeeSlugBindingClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    apps<T extends EmployeeSlugBinding$appsArgs<ExtArgs> = {}>(args?: Subset<T, EmployeeSlugBinding$appsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    tokens<T extends EmployeeSlugBinding$tokensArgs<ExtArgs> = {}>(args?: Subset<T, EmployeeSlugBinding$tokensArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the EmployeeSlugBinding model
   */
  interface EmployeeSlugBindingFieldRefs {
    readonly id: FieldRef<"EmployeeSlugBinding", 'String'>
    readonly userId: FieldRef<"EmployeeSlugBinding", 'String'>
    readonly employeeSlug: FieldRef<"EmployeeSlugBinding", 'String'>
    readonly sourceMailNickname: FieldRef<"EmployeeSlugBinding", 'String'>
    readonly organizationId: FieldRef<"EmployeeSlugBinding", 'String'>
    readonly createdById: FieldRef<"EmployeeSlugBinding", 'String'>
    readonly createdAt: FieldRef<"EmployeeSlugBinding", 'DateTime'>
    readonly updatedAt: FieldRef<"EmployeeSlugBinding", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * EmployeeSlugBinding findUnique
   */
  export type EmployeeSlugBindingFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSlugBinding to fetch.
     */
    where: EmployeeSlugBindingWhereUniqueInput
  }

  /**
   * EmployeeSlugBinding findUniqueOrThrow
   */
  export type EmployeeSlugBindingFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSlugBinding to fetch.
     */
    where: EmployeeSlugBindingWhereUniqueInput
  }

  /**
   * EmployeeSlugBinding findFirst
   */
  export type EmployeeSlugBindingFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSlugBinding to fetch.
     */
    where?: EmployeeSlugBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EmployeeSlugBindings to fetch.
     */
    orderBy?: EmployeeSlugBindingOrderByWithRelationInput | EmployeeSlugBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for EmployeeSlugBindings.
     */
    cursor?: EmployeeSlugBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EmployeeSlugBindings 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` EmployeeSlugBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of EmployeeSlugBindings.
     */
    distinct?: EmployeeSlugBindingScalarFieldEnum | EmployeeSlugBindingScalarFieldEnum[]
  }

  /**
   * EmployeeSlugBinding findFirstOrThrow
   */
  export type EmployeeSlugBindingFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSlugBinding to fetch.
     */
    where?: EmployeeSlugBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EmployeeSlugBindings to fetch.
     */
    orderBy?: EmployeeSlugBindingOrderByWithRelationInput | EmployeeSlugBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for EmployeeSlugBindings.
     */
    cursor?: EmployeeSlugBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EmployeeSlugBindings 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` EmployeeSlugBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of EmployeeSlugBindings.
     */
    distinct?: EmployeeSlugBindingScalarFieldEnum | EmployeeSlugBindingScalarFieldEnum[]
  }

  /**
   * EmployeeSlugBinding findMany
   */
  export type EmployeeSlugBindingFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * Filter, which EmployeeSlugBindings to fetch.
     */
    where?: EmployeeSlugBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EmployeeSlugBindings to fetch.
     */
    orderBy?: EmployeeSlugBindingOrderByWithRelationInput | EmployeeSlugBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing EmployeeSlugBindings.
     */
    cursor?: EmployeeSlugBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EmployeeSlugBindings 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` EmployeeSlugBindings.
     */
    skip?: number
    distinct?: EmployeeSlugBindingScalarFieldEnum | EmployeeSlugBindingScalarFieldEnum[]
  }

  /**
   * EmployeeSlugBinding create
   */
  export type EmployeeSlugBindingCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * The data needed to create a EmployeeSlugBinding.
     */
    data: XOR<EmployeeSlugBindingCreateInput, EmployeeSlugBindingUncheckedCreateInput>
  }

  /**
   * EmployeeSlugBinding createMany
   */
  export type EmployeeSlugBindingCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many EmployeeSlugBindings.
     */
    data: EmployeeSlugBindingCreateManyInput | EmployeeSlugBindingCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * EmployeeSlugBinding createManyAndReturn
   */
  export type EmployeeSlugBindingCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * The data used to create many EmployeeSlugBindings.
     */
    data: EmployeeSlugBindingCreateManyInput | EmployeeSlugBindingCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * EmployeeSlugBinding update
   */
  export type EmployeeSlugBindingUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * The data needed to update a EmployeeSlugBinding.
     */
    data: XOR<EmployeeSlugBindingUpdateInput, EmployeeSlugBindingUncheckedUpdateInput>
    /**
     * Choose, which EmployeeSlugBinding to update.
     */
    where: EmployeeSlugBindingWhereUniqueInput
  }

  /**
   * EmployeeSlugBinding updateMany
   */
  export type EmployeeSlugBindingUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update EmployeeSlugBindings.
     */
    data: XOR<EmployeeSlugBindingUpdateManyMutationInput, EmployeeSlugBindingUncheckedUpdateManyInput>
    /**
     * Filter which EmployeeSlugBindings to update
     */
    where?: EmployeeSlugBindingWhereInput
    /**
     * Limit how many EmployeeSlugBindings to update.
     */
    limit?: number
  }

  /**
   * EmployeeSlugBinding updateManyAndReturn
   */
  export type EmployeeSlugBindingUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * The data used to update EmployeeSlugBindings.
     */
    data: XOR<EmployeeSlugBindingUpdateManyMutationInput, EmployeeSlugBindingUncheckedUpdateManyInput>
    /**
     * Filter which EmployeeSlugBindings to update
     */
    where?: EmployeeSlugBindingWhereInput
    /**
     * Limit how many EmployeeSlugBindings to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * EmployeeSlugBinding upsert
   */
  export type EmployeeSlugBindingUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * The filter to search for the EmployeeSlugBinding to update in case it exists.
     */
    where: EmployeeSlugBindingWhereUniqueInput
    /**
     * In case the EmployeeSlugBinding found by the `where` argument doesn't exist, create a new EmployeeSlugBinding with this data.
     */
    create: XOR<EmployeeSlugBindingCreateInput, EmployeeSlugBindingUncheckedCreateInput>
    /**
     * In case the EmployeeSlugBinding was found with the provided `where` argument, update it with this data.
     */
    update: XOR<EmployeeSlugBindingUpdateInput, EmployeeSlugBindingUncheckedUpdateInput>
  }

  /**
   * EmployeeSlugBinding delete
   */
  export type EmployeeSlugBindingDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
    /**
     * Filter which EmployeeSlugBinding to delete.
     */
    where: EmployeeSlugBindingWhereUniqueInput
  }

  /**
   * EmployeeSlugBinding deleteMany
   */
  export type EmployeeSlugBindingDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which EmployeeSlugBindings to delete
     */
    where?: EmployeeSlugBindingWhereInput
    /**
     * Limit how many EmployeeSlugBindings to delete.
     */
    limit?: number
  }

  /**
   * EmployeeSlugBinding.apps
   */
  export type EmployeeSlugBinding$appsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    where?: InternalAppWhereInput
    orderBy?: InternalAppOrderByWithRelationInput | InternalAppOrderByWithRelationInput[]
    cursor?: InternalAppWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppScalarFieldEnum | InternalAppScalarFieldEnum[]
  }

  /**
   * EmployeeSlugBinding.tokens
   */
  export type EmployeeSlugBinding$tokensArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    where?: InternalAppEmployeeTokenWhereInput
    orderBy?: InternalAppEmployeeTokenOrderByWithRelationInput | InternalAppEmployeeTokenOrderByWithRelationInput[]
    cursor?: InternalAppEmployeeTokenWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppEmployeeTokenScalarFieldEnum | InternalAppEmployeeTokenScalarFieldEnum[]
  }

  /**
   * EmployeeSlugBinding without action
   */
  export type EmployeeSlugBindingDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EmployeeSlugBinding
     */
    select?: EmployeeSlugBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EmployeeSlugBinding
     */
    omit?: EmployeeSlugBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EmployeeSlugBindingInclude<ExtArgs> | null
  }


  /**
   * Model InternalApp
   */

  export type AggregateInternalApp = {
    _count: InternalAppCountAggregateOutputType | null
    _min: InternalAppMinAggregateOutputType | null
    _max: InternalAppMaxAggregateOutputType | null
  }

  export type InternalAppMinAggregateOutputType = {
    id: string | null
    employeeSlug: string | null
    appSlug: string | null
    displayName: string | null
    runtime: $Enums.InternalAppRuntime | null
    status: $Enums.InternalAppStatus | null
    url: string | null
    giteaRepoFullName: string | null
    lastDeployedAt: Date | null
    currentDeploymentId: string | null
    destroyedAt: Date | null
    retentionUntil: Date | null
    forceDisabledAt: Date | null
    forceDisabledReason: string | null
    forceDisabledById: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type InternalAppMaxAggregateOutputType = {
    id: string | null
    employeeSlug: string | null
    appSlug: string | null
    displayName: string | null
    runtime: $Enums.InternalAppRuntime | null
    status: $Enums.InternalAppStatus | null
    url: string | null
    giteaRepoFullName: string | null
    lastDeployedAt: Date | null
    currentDeploymentId: string | null
    destroyedAt: Date | null
    retentionUntil: Date | null
    forceDisabledAt: Date | null
    forceDisabledReason: string | null
    forceDisabledById: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type InternalAppCountAggregateOutputType = {
    id: number
    employeeSlug: number
    appSlug: number
    displayName: number
    runtime: number
    status: number
    url: number
    giteaRepoFullName: number
    lastDeployedAt: number
    currentDeploymentId: number
    destroyedAt: number
    retentionUntil: number
    forceDisabledAt: number
    forceDisabledReason: number
    forceDisabledById: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type InternalAppMinAggregateInputType = {
    id?: true
    employeeSlug?: true
    appSlug?: true
    displayName?: true
    runtime?: true
    status?: true
    url?: true
    giteaRepoFullName?: true
    lastDeployedAt?: true
    currentDeploymentId?: true
    destroyedAt?: true
    retentionUntil?: true
    forceDisabledAt?: true
    forceDisabledReason?: true
    forceDisabledById?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type InternalAppMaxAggregateInputType = {
    id?: true
    employeeSlug?: true
    appSlug?: true
    displayName?: true
    runtime?: true
    status?: true
    url?: true
    giteaRepoFullName?: true
    lastDeployedAt?: true
    currentDeploymentId?: true
    destroyedAt?: true
    retentionUntil?: true
    forceDisabledAt?: true
    forceDisabledReason?: true
    forceDisabledById?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type InternalAppCountAggregateInputType = {
    id?: true
    employeeSlug?: true
    appSlug?: true
    displayName?: true
    runtime?: true
    status?: true
    url?: true
    giteaRepoFullName?: true
    lastDeployedAt?: true
    currentDeploymentId?: true
    destroyedAt?: true
    retentionUntil?: true
    forceDisabledAt?: true
    forceDisabledReason?: true
    forceDisabledById?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type InternalAppAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalApp to aggregate.
     */
    where?: InternalAppWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalApps to fetch.
     */
    orderBy?: InternalAppOrderByWithRelationInput | InternalAppOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: InternalAppWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalApps 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` InternalApps.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned InternalApps
    **/
    _count?: true | InternalAppCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: InternalAppMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: InternalAppMaxAggregateInputType
  }

  export type GetInternalAppAggregateType<T extends InternalAppAggregateArgs> = {
        [P in keyof T & keyof AggregateInternalApp]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateInternalApp[P]>
      : GetScalarType<T[P], AggregateInternalApp[P]>
  }




  export type InternalAppGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppWhereInput
    orderBy?: InternalAppOrderByWithAggregationInput | InternalAppOrderByWithAggregationInput[]
    by: InternalAppScalarFieldEnum[] | InternalAppScalarFieldEnum
    having?: InternalAppScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: InternalAppCountAggregateInputType | true
    _min?: InternalAppMinAggregateInputType
    _max?: InternalAppMaxAggregateInputType
  }

  export type InternalAppGroupByOutputType = {
    id: string
    employeeSlug: string
    appSlug: string
    displayName: string | null
    runtime: $Enums.InternalAppRuntime
    status: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt: Date | null
    currentDeploymentId: string | null
    destroyedAt: Date | null
    retentionUntil: Date | null
    forceDisabledAt: Date | null
    forceDisabledReason: string | null
    forceDisabledById: string | null
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: InternalAppCountAggregateOutputType | null
    _min: InternalAppMinAggregateOutputType | null
    _max: InternalAppMaxAggregateOutputType | null
  }

  type GetInternalAppGroupByPayload<T extends InternalAppGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<InternalAppGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof InternalAppGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], InternalAppGroupByOutputType[P]>
            : GetScalarType<T[P], InternalAppGroupByOutputType[P]>
        }
      >
    >


  export type InternalAppSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    employeeSlug?: boolean
    appSlug?: boolean
    displayName?: boolean
    runtime?: boolean
    status?: boolean
    url?: boolean
    giteaRepoFullName?: boolean
    lastDeployedAt?: boolean
    currentDeploymentId?: boolean
    destroyedAt?: boolean
    retentionUntil?: boolean
    forceDisabledAt?: boolean
    forceDisabledReason?: boolean
    forceDisabledById?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    ownerBinding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    forceDisabler?: boolean | InternalApp$forceDisablerArgs<ExtArgs>
    deployments?: boolean | InternalApp$deploymentsArgs<ExtArgs>
    envVars?: boolean | InternalApp$envVarsArgs<ExtArgs>
    events?: boolean | InternalApp$eventsArgs<ExtArgs>
    _count?: boolean | InternalAppCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalApp"]>

  export type InternalAppSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    employeeSlug?: boolean
    appSlug?: boolean
    displayName?: boolean
    runtime?: boolean
    status?: boolean
    url?: boolean
    giteaRepoFullName?: boolean
    lastDeployedAt?: boolean
    currentDeploymentId?: boolean
    destroyedAt?: boolean
    retentionUntil?: boolean
    forceDisabledAt?: boolean
    forceDisabledReason?: boolean
    forceDisabledById?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    ownerBinding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    forceDisabler?: boolean | InternalApp$forceDisablerArgs<ExtArgs>
  }, ExtArgs["result"]["internalApp"]>

  export type InternalAppSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    employeeSlug?: boolean
    appSlug?: boolean
    displayName?: boolean
    runtime?: boolean
    status?: boolean
    url?: boolean
    giteaRepoFullName?: boolean
    lastDeployedAt?: boolean
    currentDeploymentId?: boolean
    destroyedAt?: boolean
    retentionUntil?: boolean
    forceDisabledAt?: boolean
    forceDisabledReason?: boolean
    forceDisabledById?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    ownerBinding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    forceDisabler?: boolean | InternalApp$forceDisablerArgs<ExtArgs>
  }, ExtArgs["result"]["internalApp"]>

  export type InternalAppSelectScalar = {
    id?: boolean
    employeeSlug?: boolean
    appSlug?: boolean
    displayName?: boolean
    runtime?: boolean
    status?: boolean
    url?: boolean
    giteaRepoFullName?: boolean
    lastDeployedAt?: boolean
    currentDeploymentId?: boolean
    destroyedAt?: boolean
    retentionUntil?: boolean
    forceDisabledAt?: boolean
    forceDisabledReason?: boolean
    forceDisabledById?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type InternalAppOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "employeeSlug" | "appSlug" | "displayName" | "runtime" | "status" | "url" | "giteaRepoFullName" | "lastDeployedAt" | "currentDeploymentId" | "destroyedAt" | "retentionUntil" | "forceDisabledAt" | "forceDisabledReason" | "forceDisabledById" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["internalApp"]>
  export type InternalAppInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ownerBinding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    forceDisabler?: boolean | InternalApp$forceDisablerArgs<ExtArgs>
    deployments?: boolean | InternalApp$deploymentsArgs<ExtArgs>
    envVars?: boolean | InternalApp$envVarsArgs<ExtArgs>
    events?: boolean | InternalApp$eventsArgs<ExtArgs>
    _count?: boolean | InternalAppCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type InternalAppIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ownerBinding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    forceDisabler?: boolean | InternalApp$forceDisablerArgs<ExtArgs>
  }
  export type InternalAppIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ownerBinding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    forceDisabler?: boolean | InternalApp$forceDisablerArgs<ExtArgs>
  }

  export type $InternalAppPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "InternalApp"
    objects: {
      ownerBinding: Prisma.$EmployeeSlugBindingPayload<ExtArgs>
      creator: Prisma.$UserPayload<ExtArgs>
      forceDisabler: Prisma.$UserPayload<ExtArgs> | null
      deployments: Prisma.$InternalAppDeploymentPayload<ExtArgs>[]
      envVars: Prisma.$InternalAppEnvVarPayload<ExtArgs>[]
      events: Prisma.$InternalAppEventPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      employeeSlug: string
      appSlug: string
      displayName: string | null
      runtime: $Enums.InternalAppRuntime
      status: $Enums.InternalAppStatus
      url: string
      giteaRepoFullName: string
      lastDeployedAt: Date | null
      currentDeploymentId: string | null
      destroyedAt: Date | null
      retentionUntil: Date | null
      forceDisabledAt: Date | null
      forceDisabledReason: string | null
      forceDisabledById: string | null
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["internalApp"]>
    composites: {}
  }

  type InternalAppGetPayload<S extends boolean | null | undefined | InternalAppDefaultArgs> = $Result.GetResult<Prisma.$InternalAppPayload, S>

  type InternalAppCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<InternalAppFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: InternalAppCountAggregateInputType | true
    }

  export interface InternalAppDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['InternalApp'], meta: { name: 'InternalApp' } }
    /**
     * Find zero or one InternalApp that matches the filter.
     * @param {InternalAppFindUniqueArgs} args - Arguments to find a InternalApp
     * @example
     * // Get one InternalApp
     * const internalApp = await prisma.internalApp.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends InternalAppFindUniqueArgs>(args: SelectSubset<T, InternalAppFindUniqueArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one InternalApp that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {InternalAppFindUniqueOrThrowArgs} args - Arguments to find a InternalApp
     * @example
     * // Get one InternalApp
     * const internalApp = await prisma.internalApp.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends InternalAppFindUniqueOrThrowArgs>(args: SelectSubset<T, InternalAppFindUniqueOrThrowArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalApp 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 {InternalAppFindFirstArgs} args - Arguments to find a InternalApp
     * @example
     * // Get one InternalApp
     * const internalApp = await prisma.internalApp.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends InternalAppFindFirstArgs>(args?: SelectSubset<T, InternalAppFindFirstArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalApp 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 {InternalAppFindFirstOrThrowArgs} args - Arguments to find a InternalApp
     * @example
     * // Get one InternalApp
     * const internalApp = await prisma.internalApp.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends InternalAppFindFirstOrThrowArgs>(args?: SelectSubset<T, InternalAppFindFirstOrThrowArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more InternalApps 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 {InternalAppFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all InternalApps
     * const internalApps = await prisma.internalApp.findMany()
     * 
     * // Get first 10 InternalApps
     * const internalApps = await prisma.internalApp.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const internalAppWithIdOnly = await prisma.internalApp.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends InternalAppFindManyArgs>(args?: SelectSubset<T, InternalAppFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a InternalApp.
     * @param {InternalAppCreateArgs} args - Arguments to create a InternalApp.
     * @example
     * // Create one InternalApp
     * const InternalApp = await prisma.internalApp.create({
     *   data: {
     *     // ... data to create a InternalApp
     *   }
     * })
     * 
     */
    create<T extends InternalAppCreateArgs>(args: SelectSubset<T, InternalAppCreateArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many InternalApps.
     * @param {InternalAppCreateManyArgs} args - Arguments to create many InternalApps.
     * @example
     * // Create many InternalApps
     * const internalApp = await prisma.internalApp.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends InternalAppCreateManyArgs>(args?: SelectSubset<T, InternalAppCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many InternalApps and returns the data saved in the database.
     * @param {InternalAppCreateManyAndReturnArgs} args - Arguments to create many InternalApps.
     * @example
     * // Create many InternalApps
     * const internalApp = await prisma.internalApp.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many InternalApps and only return the `id`
     * const internalAppWithIdOnly = await prisma.internalApp.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 InternalAppCreateManyAndReturnArgs>(args?: SelectSubset<T, InternalAppCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a InternalApp.
     * @param {InternalAppDeleteArgs} args - Arguments to delete one InternalApp.
     * @example
     * // Delete one InternalApp
     * const InternalApp = await prisma.internalApp.delete({
     *   where: {
     *     // ... filter to delete one InternalApp
     *   }
     * })
     * 
     */
    delete<T extends InternalAppDeleteArgs>(args: SelectSubset<T, InternalAppDeleteArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one InternalApp.
     * @param {InternalAppUpdateArgs} args - Arguments to update one InternalApp.
     * @example
     * // Update one InternalApp
     * const internalApp = await prisma.internalApp.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends InternalAppUpdateArgs>(args: SelectSubset<T, InternalAppUpdateArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more InternalApps.
     * @param {InternalAppDeleteManyArgs} args - Arguments to filter InternalApps to delete.
     * @example
     * // Delete a few InternalApps
     * const { count } = await prisma.internalApp.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends InternalAppDeleteManyArgs>(args?: SelectSubset<T, InternalAppDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalApps.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many InternalApps
     * const internalApp = await prisma.internalApp.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends InternalAppUpdateManyArgs>(args: SelectSubset<T, InternalAppUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalApps and returns the data updated in the database.
     * @param {InternalAppUpdateManyAndReturnArgs} args - Arguments to update many InternalApps.
     * @example
     * // Update many InternalApps
     * const internalApp = await prisma.internalApp.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more InternalApps and only return the `id`
     * const internalAppWithIdOnly = await prisma.internalApp.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 InternalAppUpdateManyAndReturnArgs>(args: SelectSubset<T, InternalAppUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one InternalApp.
     * @param {InternalAppUpsertArgs} args - Arguments to update or create a InternalApp.
     * @example
     * // Update or create a InternalApp
     * const internalApp = await prisma.internalApp.upsert({
     *   create: {
     *     // ... data to create a InternalApp
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the InternalApp we want to update
     *   }
     * })
     */
    upsert<T extends InternalAppUpsertArgs>(args: SelectSubset<T, InternalAppUpsertArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of InternalApps.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppCountArgs} args - Arguments to filter InternalApps to count.
     * @example
     * // Count the number of InternalApps
     * const count = await prisma.internalApp.count({
     *   where: {
     *     // ... the filter for the InternalApps we want to count
     *   }
     * })
    **/
    count<T extends InternalAppCountArgs>(
      args?: Subset<T, InternalAppCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], InternalAppCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a InternalApp.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppAggregateArgs} 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 InternalAppAggregateArgs>(args: Subset<T, InternalAppAggregateArgs>): Prisma.PrismaPromise<GetInternalAppAggregateType<T>>

    /**
     * Group by InternalApp.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppGroupByArgs} 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 InternalAppGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: InternalAppGroupByArgs['orderBy'] }
        : { orderBy?: InternalAppGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, InternalAppGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetInternalAppGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the InternalApp model
   */
  readonly fields: InternalAppFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for InternalApp.
   * 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__InternalAppClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    ownerBinding<T extends EmployeeSlugBindingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, EmployeeSlugBindingDefaultArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    forceDisabler<T extends InternalApp$forceDisablerArgs<ExtArgs> = {}>(args?: Subset<T, InternalApp$forceDisablerArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    deployments<T extends InternalApp$deploymentsArgs<ExtArgs> = {}>(args?: Subset<T, InternalApp$deploymentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    envVars<T extends InternalApp$envVarsArgs<ExtArgs> = {}>(args?: Subset<T, InternalApp$envVarsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    events<T extends InternalApp$eventsArgs<ExtArgs> = {}>(args?: Subset<T, InternalApp$eventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the InternalApp model
   */
  interface InternalAppFieldRefs {
    readonly id: FieldRef<"InternalApp", 'String'>
    readonly employeeSlug: FieldRef<"InternalApp", 'String'>
    readonly appSlug: FieldRef<"InternalApp", 'String'>
    readonly displayName: FieldRef<"InternalApp", 'String'>
    readonly runtime: FieldRef<"InternalApp", 'InternalAppRuntime'>
    readonly status: FieldRef<"InternalApp", 'InternalAppStatus'>
    readonly url: FieldRef<"InternalApp", 'String'>
    readonly giteaRepoFullName: FieldRef<"InternalApp", 'String'>
    readonly lastDeployedAt: FieldRef<"InternalApp", 'DateTime'>
    readonly currentDeploymentId: FieldRef<"InternalApp", 'String'>
    readonly destroyedAt: FieldRef<"InternalApp", 'DateTime'>
    readonly retentionUntil: FieldRef<"InternalApp", 'DateTime'>
    readonly forceDisabledAt: FieldRef<"InternalApp", 'DateTime'>
    readonly forceDisabledReason: FieldRef<"InternalApp", 'String'>
    readonly forceDisabledById: FieldRef<"InternalApp", 'String'>
    readonly organizationId: FieldRef<"InternalApp", 'String'>
    readonly createdById: FieldRef<"InternalApp", 'String'>
    readonly createdAt: FieldRef<"InternalApp", 'DateTime'>
    readonly updatedAt: FieldRef<"InternalApp", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * InternalApp findUnique
   */
  export type InternalAppFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * Filter, which InternalApp to fetch.
     */
    where: InternalAppWhereUniqueInput
  }

  /**
   * InternalApp findUniqueOrThrow
   */
  export type InternalAppFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * Filter, which InternalApp to fetch.
     */
    where: InternalAppWhereUniqueInput
  }

  /**
   * InternalApp findFirst
   */
  export type InternalAppFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * Filter, which InternalApp to fetch.
     */
    where?: InternalAppWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalApps to fetch.
     */
    orderBy?: InternalAppOrderByWithRelationInput | InternalAppOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalApps.
     */
    cursor?: InternalAppWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalApps 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` InternalApps.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalApps.
     */
    distinct?: InternalAppScalarFieldEnum | InternalAppScalarFieldEnum[]
  }

  /**
   * InternalApp findFirstOrThrow
   */
  export type InternalAppFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * Filter, which InternalApp to fetch.
     */
    where?: InternalAppWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalApps to fetch.
     */
    orderBy?: InternalAppOrderByWithRelationInput | InternalAppOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalApps.
     */
    cursor?: InternalAppWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalApps 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` InternalApps.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalApps.
     */
    distinct?: InternalAppScalarFieldEnum | InternalAppScalarFieldEnum[]
  }

  /**
   * InternalApp findMany
   */
  export type InternalAppFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * Filter, which InternalApps to fetch.
     */
    where?: InternalAppWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalApps to fetch.
     */
    orderBy?: InternalAppOrderByWithRelationInput | InternalAppOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing InternalApps.
     */
    cursor?: InternalAppWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalApps 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` InternalApps.
     */
    skip?: number
    distinct?: InternalAppScalarFieldEnum | InternalAppScalarFieldEnum[]
  }

  /**
   * InternalApp create
   */
  export type InternalAppCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * The data needed to create a InternalApp.
     */
    data: XOR<InternalAppCreateInput, InternalAppUncheckedCreateInput>
  }

  /**
   * InternalApp createMany
   */
  export type InternalAppCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many InternalApps.
     */
    data: InternalAppCreateManyInput | InternalAppCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InternalApp createManyAndReturn
   */
  export type InternalAppCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * The data used to create many InternalApps.
     */
    data: InternalAppCreateManyInput | InternalAppCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalApp update
   */
  export type InternalAppUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * The data needed to update a InternalApp.
     */
    data: XOR<InternalAppUpdateInput, InternalAppUncheckedUpdateInput>
    /**
     * Choose, which InternalApp to update.
     */
    where: InternalAppWhereUniqueInput
  }

  /**
   * InternalApp updateMany
   */
  export type InternalAppUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update InternalApps.
     */
    data: XOR<InternalAppUpdateManyMutationInput, InternalAppUncheckedUpdateManyInput>
    /**
     * Filter which InternalApps to update
     */
    where?: InternalAppWhereInput
    /**
     * Limit how many InternalApps to update.
     */
    limit?: number
  }

  /**
   * InternalApp updateManyAndReturn
   */
  export type InternalAppUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * The data used to update InternalApps.
     */
    data: XOR<InternalAppUpdateManyMutationInput, InternalAppUncheckedUpdateManyInput>
    /**
     * Filter which InternalApps to update
     */
    where?: InternalAppWhereInput
    /**
     * Limit how many InternalApps to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalApp upsert
   */
  export type InternalAppUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * The filter to search for the InternalApp to update in case it exists.
     */
    where: InternalAppWhereUniqueInput
    /**
     * In case the InternalApp found by the `where` argument doesn't exist, create a new InternalApp with this data.
     */
    create: XOR<InternalAppCreateInput, InternalAppUncheckedCreateInput>
    /**
     * In case the InternalApp was found with the provided `where` argument, update it with this data.
     */
    update: XOR<InternalAppUpdateInput, InternalAppUncheckedUpdateInput>
  }

  /**
   * InternalApp delete
   */
  export type InternalAppDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    /**
     * Filter which InternalApp to delete.
     */
    where: InternalAppWhereUniqueInput
  }

  /**
   * InternalApp deleteMany
   */
  export type InternalAppDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalApps to delete
     */
    where?: InternalAppWhereInput
    /**
     * Limit how many InternalApps to delete.
     */
    limit?: number
  }

  /**
   * InternalApp.forceDisabler
   */
  export type InternalApp$forceDisablerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * InternalApp.deployments
   */
  export type InternalApp$deploymentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    where?: InternalAppDeploymentWhereInput
    orderBy?: InternalAppDeploymentOrderByWithRelationInput | InternalAppDeploymentOrderByWithRelationInput[]
    cursor?: InternalAppDeploymentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppDeploymentScalarFieldEnum | InternalAppDeploymentScalarFieldEnum[]
  }

  /**
   * InternalApp.envVars
   */
  export type InternalApp$envVarsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    where?: InternalAppEnvVarWhereInput
    orderBy?: InternalAppEnvVarOrderByWithRelationInput | InternalAppEnvVarOrderByWithRelationInput[]
    cursor?: InternalAppEnvVarWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppEnvVarScalarFieldEnum | InternalAppEnvVarScalarFieldEnum[]
  }

  /**
   * InternalApp.events
   */
  export type InternalApp$eventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    where?: InternalAppEventWhereInput
    orderBy?: InternalAppEventOrderByWithRelationInput | InternalAppEventOrderByWithRelationInput[]
    cursor?: InternalAppEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InternalAppEventScalarFieldEnum | InternalAppEventScalarFieldEnum[]
  }

  /**
   * InternalApp without action
   */
  export type InternalAppDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
  }


  /**
   * Model InternalAppDeployment
   */

  export type AggregateInternalAppDeployment = {
    _count: InternalAppDeploymentCountAggregateOutputType | null
    _min: InternalAppDeploymentMinAggregateOutputType | null
    _max: InternalAppDeploymentMaxAggregateOutputType | null
  }

  export type InternalAppDeploymentMinAggregateOutputType = {
    id: string | null
    appId: string | null
    commitSha: string | null
    status: $Enums.InternalAppDeploymentStatus | null
    buildLogSummary: string | null
    startedAt: Date | null
    finishedAt: Date | null
    trigger: $Enums.InternalAppDeploymentTrigger | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type InternalAppDeploymentMaxAggregateOutputType = {
    id: string | null
    appId: string | null
    commitSha: string | null
    status: $Enums.InternalAppDeploymentStatus | null
    buildLogSummary: string | null
    startedAt: Date | null
    finishedAt: Date | null
    trigger: $Enums.InternalAppDeploymentTrigger | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type InternalAppDeploymentCountAggregateOutputType = {
    id: number
    appId: number
    commitSha: number
    status: number
    buildLogSummary: number
    healthCheckLog: number
    startedAt: number
    finishedAt: number
    trigger: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type InternalAppDeploymentMinAggregateInputType = {
    id?: true
    appId?: true
    commitSha?: true
    status?: true
    buildLogSummary?: true
    startedAt?: true
    finishedAt?: true
    trigger?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type InternalAppDeploymentMaxAggregateInputType = {
    id?: true
    appId?: true
    commitSha?: true
    status?: true
    buildLogSummary?: true
    startedAt?: true
    finishedAt?: true
    trigger?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type InternalAppDeploymentCountAggregateInputType = {
    id?: true
    appId?: true
    commitSha?: true
    status?: true
    buildLogSummary?: true
    healthCheckLog?: true
    startedAt?: true
    finishedAt?: true
    trigger?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type InternalAppDeploymentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalAppDeployment to aggregate.
     */
    where?: InternalAppDeploymentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppDeployments to fetch.
     */
    orderBy?: InternalAppDeploymentOrderByWithRelationInput | InternalAppDeploymentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: InternalAppDeploymentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppDeployments 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` InternalAppDeployments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned InternalAppDeployments
    **/
    _count?: true | InternalAppDeploymentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: InternalAppDeploymentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: InternalAppDeploymentMaxAggregateInputType
  }

  export type GetInternalAppDeploymentAggregateType<T extends InternalAppDeploymentAggregateArgs> = {
        [P in keyof T & keyof AggregateInternalAppDeployment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateInternalAppDeployment[P]>
      : GetScalarType<T[P], AggregateInternalAppDeployment[P]>
  }




  export type InternalAppDeploymentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppDeploymentWhereInput
    orderBy?: InternalAppDeploymentOrderByWithAggregationInput | InternalAppDeploymentOrderByWithAggregationInput[]
    by: InternalAppDeploymentScalarFieldEnum[] | InternalAppDeploymentScalarFieldEnum
    having?: InternalAppDeploymentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: InternalAppDeploymentCountAggregateInputType | true
    _min?: InternalAppDeploymentMinAggregateInputType
    _max?: InternalAppDeploymentMaxAggregateInputType
  }

  export type InternalAppDeploymentGroupByOutputType = {
    id: string
    appId: string
    commitSha: string | null
    status: $Enums.InternalAppDeploymentStatus
    buildLogSummary: string | null
    healthCheckLog: JsonValue | null
    startedAt: Date | null
    finishedAt: Date | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: InternalAppDeploymentCountAggregateOutputType | null
    _min: InternalAppDeploymentMinAggregateOutputType | null
    _max: InternalAppDeploymentMaxAggregateOutputType | null
  }

  type GetInternalAppDeploymentGroupByPayload<T extends InternalAppDeploymentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<InternalAppDeploymentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof InternalAppDeploymentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], InternalAppDeploymentGroupByOutputType[P]>
            : GetScalarType<T[P], InternalAppDeploymentGroupByOutputType[P]>
        }
      >
    >


  export type InternalAppDeploymentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    commitSha?: boolean
    status?: boolean
    buildLogSummary?: boolean
    healthCheckLog?: boolean
    startedAt?: boolean
    finishedAt?: boolean
    trigger?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppDeployment"]>

  export type InternalAppDeploymentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    commitSha?: boolean
    status?: boolean
    buildLogSummary?: boolean
    healthCheckLog?: boolean
    startedAt?: boolean
    finishedAt?: boolean
    trigger?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppDeployment"]>

  export type InternalAppDeploymentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    commitSha?: boolean
    status?: boolean
    buildLogSummary?: boolean
    healthCheckLog?: boolean
    startedAt?: boolean
    finishedAt?: boolean
    trigger?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppDeployment"]>

  export type InternalAppDeploymentSelectScalar = {
    id?: boolean
    appId?: boolean
    commitSha?: boolean
    status?: boolean
    buildLogSummary?: boolean
    healthCheckLog?: boolean
    startedAt?: boolean
    finishedAt?: boolean
    trigger?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type InternalAppDeploymentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "appId" | "commitSha" | "status" | "buildLogSummary" | "healthCheckLog" | "startedAt" | "finishedAt" | "trigger" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["internalAppDeployment"]>
  export type InternalAppDeploymentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type InternalAppDeploymentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type InternalAppDeploymentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $InternalAppDeploymentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "InternalAppDeployment"
    objects: {
      app: Prisma.$InternalAppPayload<ExtArgs>
      creator: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      appId: string
      commitSha: string | null
      status: $Enums.InternalAppDeploymentStatus
      buildLogSummary: string | null
      healthCheckLog: Prisma.JsonValue | null
      startedAt: Date | null
      finishedAt: Date | null
      trigger: $Enums.InternalAppDeploymentTrigger
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["internalAppDeployment"]>
    composites: {}
  }

  type InternalAppDeploymentGetPayload<S extends boolean | null | undefined | InternalAppDeploymentDefaultArgs> = $Result.GetResult<Prisma.$InternalAppDeploymentPayload, S>

  type InternalAppDeploymentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<InternalAppDeploymentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: InternalAppDeploymentCountAggregateInputType | true
    }

  export interface InternalAppDeploymentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['InternalAppDeployment'], meta: { name: 'InternalAppDeployment' } }
    /**
     * Find zero or one InternalAppDeployment that matches the filter.
     * @param {InternalAppDeploymentFindUniqueArgs} args - Arguments to find a InternalAppDeployment
     * @example
     * // Get one InternalAppDeployment
     * const internalAppDeployment = await prisma.internalAppDeployment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends InternalAppDeploymentFindUniqueArgs>(args: SelectSubset<T, InternalAppDeploymentFindUniqueArgs<ExtArgs>>): Prisma__InternalAppDeploymentClient<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one InternalAppDeployment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {InternalAppDeploymentFindUniqueOrThrowArgs} args - Arguments to find a InternalAppDeployment
     * @example
     * // Get one InternalAppDeployment
     * const internalAppDeployment = await prisma.internalAppDeployment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends InternalAppDeploymentFindUniqueOrThrowArgs>(args: SelectSubset<T, InternalAppDeploymentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__InternalAppDeploymentClient<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalAppDeployment 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 {InternalAppDeploymentFindFirstArgs} args - Arguments to find a InternalAppDeployment
     * @example
     * // Get one InternalAppDeployment
     * const internalAppDeployment = await prisma.internalAppDeployment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends InternalAppDeploymentFindFirstArgs>(args?: SelectSubset<T, InternalAppDeploymentFindFirstArgs<ExtArgs>>): Prisma__InternalAppDeploymentClient<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalAppDeployment 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 {InternalAppDeploymentFindFirstOrThrowArgs} args - Arguments to find a InternalAppDeployment
     * @example
     * // Get one InternalAppDeployment
     * const internalAppDeployment = await prisma.internalAppDeployment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends InternalAppDeploymentFindFirstOrThrowArgs>(args?: SelectSubset<T, InternalAppDeploymentFindFirstOrThrowArgs<ExtArgs>>): Prisma__InternalAppDeploymentClient<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more InternalAppDeployments 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 {InternalAppDeploymentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all InternalAppDeployments
     * const internalAppDeployments = await prisma.internalAppDeployment.findMany()
     * 
     * // Get first 10 InternalAppDeployments
     * const internalAppDeployments = await prisma.internalAppDeployment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const internalAppDeploymentWithIdOnly = await prisma.internalAppDeployment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends InternalAppDeploymentFindManyArgs>(args?: SelectSubset<T, InternalAppDeploymentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a InternalAppDeployment.
     * @param {InternalAppDeploymentCreateArgs} args - Arguments to create a InternalAppDeployment.
     * @example
     * // Create one InternalAppDeployment
     * const InternalAppDeployment = await prisma.internalAppDeployment.create({
     *   data: {
     *     // ... data to create a InternalAppDeployment
     *   }
     * })
     * 
     */
    create<T extends InternalAppDeploymentCreateArgs>(args: SelectSubset<T, InternalAppDeploymentCreateArgs<ExtArgs>>): Prisma__InternalAppDeploymentClient<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many InternalAppDeployments.
     * @param {InternalAppDeploymentCreateManyArgs} args - Arguments to create many InternalAppDeployments.
     * @example
     * // Create many InternalAppDeployments
     * const internalAppDeployment = await prisma.internalAppDeployment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends InternalAppDeploymentCreateManyArgs>(args?: SelectSubset<T, InternalAppDeploymentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many InternalAppDeployments and returns the data saved in the database.
     * @param {InternalAppDeploymentCreateManyAndReturnArgs} args - Arguments to create many InternalAppDeployments.
     * @example
     * // Create many InternalAppDeployments
     * const internalAppDeployment = await prisma.internalAppDeployment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many InternalAppDeployments and only return the `id`
     * const internalAppDeploymentWithIdOnly = await prisma.internalAppDeployment.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 InternalAppDeploymentCreateManyAndReturnArgs>(args?: SelectSubset<T, InternalAppDeploymentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a InternalAppDeployment.
     * @param {InternalAppDeploymentDeleteArgs} args - Arguments to delete one InternalAppDeployment.
     * @example
     * // Delete one InternalAppDeployment
     * const InternalAppDeployment = await prisma.internalAppDeployment.delete({
     *   where: {
     *     // ... filter to delete one InternalAppDeployment
     *   }
     * })
     * 
     */
    delete<T extends InternalAppDeploymentDeleteArgs>(args: SelectSubset<T, InternalAppDeploymentDeleteArgs<ExtArgs>>): Prisma__InternalAppDeploymentClient<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one InternalAppDeployment.
     * @param {InternalAppDeploymentUpdateArgs} args - Arguments to update one InternalAppDeployment.
     * @example
     * // Update one InternalAppDeployment
     * const internalAppDeployment = await prisma.internalAppDeployment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends InternalAppDeploymentUpdateArgs>(args: SelectSubset<T, InternalAppDeploymentUpdateArgs<ExtArgs>>): Prisma__InternalAppDeploymentClient<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more InternalAppDeployments.
     * @param {InternalAppDeploymentDeleteManyArgs} args - Arguments to filter InternalAppDeployments to delete.
     * @example
     * // Delete a few InternalAppDeployments
     * const { count } = await prisma.internalAppDeployment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends InternalAppDeploymentDeleteManyArgs>(args?: SelectSubset<T, InternalAppDeploymentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalAppDeployments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppDeploymentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many InternalAppDeployments
     * const internalAppDeployment = await prisma.internalAppDeployment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends InternalAppDeploymentUpdateManyArgs>(args: SelectSubset<T, InternalAppDeploymentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalAppDeployments and returns the data updated in the database.
     * @param {InternalAppDeploymentUpdateManyAndReturnArgs} args - Arguments to update many InternalAppDeployments.
     * @example
     * // Update many InternalAppDeployments
     * const internalAppDeployment = await prisma.internalAppDeployment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more InternalAppDeployments and only return the `id`
     * const internalAppDeploymentWithIdOnly = await prisma.internalAppDeployment.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 InternalAppDeploymentUpdateManyAndReturnArgs>(args: SelectSubset<T, InternalAppDeploymentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one InternalAppDeployment.
     * @param {InternalAppDeploymentUpsertArgs} args - Arguments to update or create a InternalAppDeployment.
     * @example
     * // Update or create a InternalAppDeployment
     * const internalAppDeployment = await prisma.internalAppDeployment.upsert({
     *   create: {
     *     // ... data to create a InternalAppDeployment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the InternalAppDeployment we want to update
     *   }
     * })
     */
    upsert<T extends InternalAppDeploymentUpsertArgs>(args: SelectSubset<T, InternalAppDeploymentUpsertArgs<ExtArgs>>): Prisma__InternalAppDeploymentClient<$Result.GetResult<Prisma.$InternalAppDeploymentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of InternalAppDeployments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppDeploymentCountArgs} args - Arguments to filter InternalAppDeployments to count.
     * @example
     * // Count the number of InternalAppDeployments
     * const count = await prisma.internalAppDeployment.count({
     *   where: {
     *     // ... the filter for the InternalAppDeployments we want to count
     *   }
     * })
    **/
    count<T extends InternalAppDeploymentCountArgs>(
      args?: Subset<T, InternalAppDeploymentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], InternalAppDeploymentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a InternalAppDeployment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppDeploymentAggregateArgs} 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 InternalAppDeploymentAggregateArgs>(args: Subset<T, InternalAppDeploymentAggregateArgs>): Prisma.PrismaPromise<GetInternalAppDeploymentAggregateType<T>>

    /**
     * Group by InternalAppDeployment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppDeploymentGroupByArgs} 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 InternalAppDeploymentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: InternalAppDeploymentGroupByArgs['orderBy'] }
        : { orderBy?: InternalAppDeploymentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, InternalAppDeploymentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetInternalAppDeploymentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the InternalAppDeployment model
   */
  readonly fields: InternalAppDeploymentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for InternalAppDeployment.
   * 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__InternalAppDeploymentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    app<T extends InternalAppDefaultArgs<ExtArgs> = {}>(args?: Subset<T, InternalAppDefaultArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the InternalAppDeployment model
   */
  interface InternalAppDeploymentFieldRefs {
    readonly id: FieldRef<"InternalAppDeployment", 'String'>
    readonly appId: FieldRef<"InternalAppDeployment", 'String'>
    readonly commitSha: FieldRef<"InternalAppDeployment", 'String'>
    readonly status: FieldRef<"InternalAppDeployment", 'InternalAppDeploymentStatus'>
    readonly buildLogSummary: FieldRef<"InternalAppDeployment", 'String'>
    readonly healthCheckLog: FieldRef<"InternalAppDeployment", 'Json'>
    readonly startedAt: FieldRef<"InternalAppDeployment", 'DateTime'>
    readonly finishedAt: FieldRef<"InternalAppDeployment", 'DateTime'>
    readonly trigger: FieldRef<"InternalAppDeployment", 'InternalAppDeploymentTrigger'>
    readonly organizationId: FieldRef<"InternalAppDeployment", 'String'>
    readonly createdById: FieldRef<"InternalAppDeployment", 'String'>
    readonly createdAt: FieldRef<"InternalAppDeployment", 'DateTime'>
    readonly updatedAt: FieldRef<"InternalAppDeployment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * InternalAppDeployment findUnique
   */
  export type InternalAppDeploymentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppDeployment to fetch.
     */
    where: InternalAppDeploymentWhereUniqueInput
  }

  /**
   * InternalAppDeployment findUniqueOrThrow
   */
  export type InternalAppDeploymentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppDeployment to fetch.
     */
    where: InternalAppDeploymentWhereUniqueInput
  }

  /**
   * InternalAppDeployment findFirst
   */
  export type InternalAppDeploymentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppDeployment to fetch.
     */
    where?: InternalAppDeploymentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppDeployments to fetch.
     */
    orderBy?: InternalAppDeploymentOrderByWithRelationInput | InternalAppDeploymentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalAppDeployments.
     */
    cursor?: InternalAppDeploymentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppDeployments 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` InternalAppDeployments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalAppDeployments.
     */
    distinct?: InternalAppDeploymentScalarFieldEnum | InternalAppDeploymentScalarFieldEnum[]
  }

  /**
   * InternalAppDeployment findFirstOrThrow
   */
  export type InternalAppDeploymentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppDeployment to fetch.
     */
    where?: InternalAppDeploymentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppDeployments to fetch.
     */
    orderBy?: InternalAppDeploymentOrderByWithRelationInput | InternalAppDeploymentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalAppDeployments.
     */
    cursor?: InternalAppDeploymentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppDeployments 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` InternalAppDeployments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalAppDeployments.
     */
    distinct?: InternalAppDeploymentScalarFieldEnum | InternalAppDeploymentScalarFieldEnum[]
  }

  /**
   * InternalAppDeployment findMany
   */
  export type InternalAppDeploymentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppDeployments to fetch.
     */
    where?: InternalAppDeploymentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppDeployments to fetch.
     */
    orderBy?: InternalAppDeploymentOrderByWithRelationInput | InternalAppDeploymentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing InternalAppDeployments.
     */
    cursor?: InternalAppDeploymentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppDeployments 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` InternalAppDeployments.
     */
    skip?: number
    distinct?: InternalAppDeploymentScalarFieldEnum | InternalAppDeploymentScalarFieldEnum[]
  }

  /**
   * InternalAppDeployment create
   */
  export type InternalAppDeploymentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * The data needed to create a InternalAppDeployment.
     */
    data: XOR<InternalAppDeploymentCreateInput, InternalAppDeploymentUncheckedCreateInput>
  }

  /**
   * InternalAppDeployment createMany
   */
  export type InternalAppDeploymentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many InternalAppDeployments.
     */
    data: InternalAppDeploymentCreateManyInput | InternalAppDeploymentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InternalAppDeployment createManyAndReturn
   */
  export type InternalAppDeploymentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * The data used to create many InternalAppDeployments.
     */
    data: InternalAppDeploymentCreateManyInput | InternalAppDeploymentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalAppDeployment update
   */
  export type InternalAppDeploymentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * The data needed to update a InternalAppDeployment.
     */
    data: XOR<InternalAppDeploymentUpdateInput, InternalAppDeploymentUncheckedUpdateInput>
    /**
     * Choose, which InternalAppDeployment to update.
     */
    where: InternalAppDeploymentWhereUniqueInput
  }

  /**
   * InternalAppDeployment updateMany
   */
  export type InternalAppDeploymentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update InternalAppDeployments.
     */
    data: XOR<InternalAppDeploymentUpdateManyMutationInput, InternalAppDeploymentUncheckedUpdateManyInput>
    /**
     * Filter which InternalAppDeployments to update
     */
    where?: InternalAppDeploymentWhereInput
    /**
     * Limit how many InternalAppDeployments to update.
     */
    limit?: number
  }

  /**
   * InternalAppDeployment updateManyAndReturn
   */
  export type InternalAppDeploymentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * The data used to update InternalAppDeployments.
     */
    data: XOR<InternalAppDeploymentUpdateManyMutationInput, InternalAppDeploymentUncheckedUpdateManyInput>
    /**
     * Filter which InternalAppDeployments to update
     */
    where?: InternalAppDeploymentWhereInput
    /**
     * Limit how many InternalAppDeployments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalAppDeployment upsert
   */
  export type InternalAppDeploymentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * The filter to search for the InternalAppDeployment to update in case it exists.
     */
    where: InternalAppDeploymentWhereUniqueInput
    /**
     * In case the InternalAppDeployment found by the `where` argument doesn't exist, create a new InternalAppDeployment with this data.
     */
    create: XOR<InternalAppDeploymentCreateInput, InternalAppDeploymentUncheckedCreateInput>
    /**
     * In case the InternalAppDeployment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<InternalAppDeploymentUpdateInput, InternalAppDeploymentUncheckedUpdateInput>
  }

  /**
   * InternalAppDeployment delete
   */
  export type InternalAppDeploymentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
    /**
     * Filter which InternalAppDeployment to delete.
     */
    where: InternalAppDeploymentWhereUniqueInput
  }

  /**
   * InternalAppDeployment deleteMany
   */
  export type InternalAppDeploymentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalAppDeployments to delete
     */
    where?: InternalAppDeploymentWhereInput
    /**
     * Limit how many InternalAppDeployments to delete.
     */
    limit?: number
  }

  /**
   * InternalAppDeployment without action
   */
  export type InternalAppDeploymentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppDeployment
     */
    select?: InternalAppDeploymentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppDeployment
     */
    omit?: InternalAppDeploymentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppDeploymentInclude<ExtArgs> | null
  }


  /**
   * Model InternalAppEnvVar
   */

  export type AggregateInternalAppEnvVar = {
    _count: InternalAppEnvVarCountAggregateOutputType | null
    _avg: InternalAppEnvVarAvgAggregateOutputType | null
    _sum: InternalAppEnvVarSumAggregateOutputType | null
    _min: InternalAppEnvVarMinAggregateOutputType | null
    _max: InternalAppEnvVarMaxAggregateOutputType | null
  }

  export type InternalAppEnvVarAvgAggregateOutputType = {
    kmsKeyVersion: number | null
  }

  export type InternalAppEnvVarSumAggregateOutputType = {
    kmsKeyVersion: number | null
  }

  export type InternalAppEnvVarMinAggregateOutputType = {
    id: string | null
    appId: string | null
    key: string | null
    valueEncrypted: Bytes | null
    valueIv: Bytes | null
    kmsKeyVersion: number | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type InternalAppEnvVarMaxAggregateOutputType = {
    id: string | null
    appId: string | null
    key: string | null
    valueEncrypted: Bytes | null
    valueIv: Bytes | null
    kmsKeyVersion: number | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type InternalAppEnvVarCountAggregateOutputType = {
    id: number
    appId: number
    key: number
    valueEncrypted: number
    valueIv: number
    kmsKeyVersion: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type InternalAppEnvVarAvgAggregateInputType = {
    kmsKeyVersion?: true
  }

  export type InternalAppEnvVarSumAggregateInputType = {
    kmsKeyVersion?: true
  }

  export type InternalAppEnvVarMinAggregateInputType = {
    id?: true
    appId?: true
    key?: true
    valueEncrypted?: true
    valueIv?: true
    kmsKeyVersion?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type InternalAppEnvVarMaxAggregateInputType = {
    id?: true
    appId?: true
    key?: true
    valueEncrypted?: true
    valueIv?: true
    kmsKeyVersion?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type InternalAppEnvVarCountAggregateInputType = {
    id?: true
    appId?: true
    key?: true
    valueEncrypted?: true
    valueIv?: true
    kmsKeyVersion?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type InternalAppEnvVarAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalAppEnvVar to aggregate.
     */
    where?: InternalAppEnvVarWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEnvVars to fetch.
     */
    orderBy?: InternalAppEnvVarOrderByWithRelationInput | InternalAppEnvVarOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: InternalAppEnvVarWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEnvVars 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` InternalAppEnvVars.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned InternalAppEnvVars
    **/
    _count?: true | InternalAppEnvVarCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: InternalAppEnvVarAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: InternalAppEnvVarSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: InternalAppEnvVarMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: InternalAppEnvVarMaxAggregateInputType
  }

  export type GetInternalAppEnvVarAggregateType<T extends InternalAppEnvVarAggregateArgs> = {
        [P in keyof T & keyof AggregateInternalAppEnvVar]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateInternalAppEnvVar[P]>
      : GetScalarType<T[P], AggregateInternalAppEnvVar[P]>
  }




  export type InternalAppEnvVarGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppEnvVarWhereInput
    orderBy?: InternalAppEnvVarOrderByWithAggregationInput | InternalAppEnvVarOrderByWithAggregationInput[]
    by: InternalAppEnvVarScalarFieldEnum[] | InternalAppEnvVarScalarFieldEnum
    having?: InternalAppEnvVarScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: InternalAppEnvVarCountAggregateInputType | true
    _avg?: InternalAppEnvVarAvgAggregateInputType
    _sum?: InternalAppEnvVarSumAggregateInputType
    _min?: InternalAppEnvVarMinAggregateInputType
    _max?: InternalAppEnvVarMaxAggregateInputType
  }

  export type InternalAppEnvVarGroupByOutputType = {
    id: string
    appId: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: InternalAppEnvVarCountAggregateOutputType | null
    _avg: InternalAppEnvVarAvgAggregateOutputType | null
    _sum: InternalAppEnvVarSumAggregateOutputType | null
    _min: InternalAppEnvVarMinAggregateOutputType | null
    _max: InternalAppEnvVarMaxAggregateOutputType | null
  }

  type GetInternalAppEnvVarGroupByPayload<T extends InternalAppEnvVarGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<InternalAppEnvVarGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof InternalAppEnvVarGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], InternalAppEnvVarGroupByOutputType[P]>
            : GetScalarType<T[P], InternalAppEnvVarGroupByOutputType[P]>
        }
      >
    >


  export type InternalAppEnvVarSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    key?: boolean
    valueEncrypted?: boolean
    valueIv?: boolean
    kmsKeyVersion?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEnvVar"]>

  export type InternalAppEnvVarSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    key?: boolean
    valueEncrypted?: boolean
    valueIv?: boolean
    kmsKeyVersion?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEnvVar"]>

  export type InternalAppEnvVarSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    key?: boolean
    valueEncrypted?: boolean
    valueIv?: boolean
    kmsKeyVersion?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEnvVar"]>

  export type InternalAppEnvVarSelectScalar = {
    id?: boolean
    appId?: boolean
    key?: boolean
    valueEncrypted?: boolean
    valueIv?: boolean
    kmsKeyVersion?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type InternalAppEnvVarOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "appId" | "key" | "valueEncrypted" | "valueIv" | "kmsKeyVersion" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["internalAppEnvVar"]>
  export type InternalAppEnvVarInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type InternalAppEnvVarIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type InternalAppEnvVarIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $InternalAppEnvVarPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "InternalAppEnvVar"
    objects: {
      app: Prisma.$InternalAppPayload<ExtArgs>
      creator: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      appId: string
      key: string
      valueEncrypted: Prisma.Bytes
      valueIv: Prisma.Bytes
      kmsKeyVersion: number
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["internalAppEnvVar"]>
    composites: {}
  }

  type InternalAppEnvVarGetPayload<S extends boolean | null | undefined | InternalAppEnvVarDefaultArgs> = $Result.GetResult<Prisma.$InternalAppEnvVarPayload, S>

  type InternalAppEnvVarCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<InternalAppEnvVarFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: InternalAppEnvVarCountAggregateInputType | true
    }

  export interface InternalAppEnvVarDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['InternalAppEnvVar'], meta: { name: 'InternalAppEnvVar' } }
    /**
     * Find zero or one InternalAppEnvVar that matches the filter.
     * @param {InternalAppEnvVarFindUniqueArgs} args - Arguments to find a InternalAppEnvVar
     * @example
     * // Get one InternalAppEnvVar
     * const internalAppEnvVar = await prisma.internalAppEnvVar.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends InternalAppEnvVarFindUniqueArgs>(args: SelectSubset<T, InternalAppEnvVarFindUniqueArgs<ExtArgs>>): Prisma__InternalAppEnvVarClient<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one InternalAppEnvVar that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {InternalAppEnvVarFindUniqueOrThrowArgs} args - Arguments to find a InternalAppEnvVar
     * @example
     * // Get one InternalAppEnvVar
     * const internalAppEnvVar = await prisma.internalAppEnvVar.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends InternalAppEnvVarFindUniqueOrThrowArgs>(args: SelectSubset<T, InternalAppEnvVarFindUniqueOrThrowArgs<ExtArgs>>): Prisma__InternalAppEnvVarClient<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalAppEnvVar 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 {InternalAppEnvVarFindFirstArgs} args - Arguments to find a InternalAppEnvVar
     * @example
     * // Get one InternalAppEnvVar
     * const internalAppEnvVar = await prisma.internalAppEnvVar.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends InternalAppEnvVarFindFirstArgs>(args?: SelectSubset<T, InternalAppEnvVarFindFirstArgs<ExtArgs>>): Prisma__InternalAppEnvVarClient<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalAppEnvVar 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 {InternalAppEnvVarFindFirstOrThrowArgs} args - Arguments to find a InternalAppEnvVar
     * @example
     * // Get one InternalAppEnvVar
     * const internalAppEnvVar = await prisma.internalAppEnvVar.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends InternalAppEnvVarFindFirstOrThrowArgs>(args?: SelectSubset<T, InternalAppEnvVarFindFirstOrThrowArgs<ExtArgs>>): Prisma__InternalAppEnvVarClient<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more InternalAppEnvVars 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 {InternalAppEnvVarFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all InternalAppEnvVars
     * const internalAppEnvVars = await prisma.internalAppEnvVar.findMany()
     * 
     * // Get first 10 InternalAppEnvVars
     * const internalAppEnvVars = await prisma.internalAppEnvVar.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const internalAppEnvVarWithIdOnly = await prisma.internalAppEnvVar.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends InternalAppEnvVarFindManyArgs>(args?: SelectSubset<T, InternalAppEnvVarFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a InternalAppEnvVar.
     * @param {InternalAppEnvVarCreateArgs} args - Arguments to create a InternalAppEnvVar.
     * @example
     * // Create one InternalAppEnvVar
     * const InternalAppEnvVar = await prisma.internalAppEnvVar.create({
     *   data: {
     *     // ... data to create a InternalAppEnvVar
     *   }
     * })
     * 
     */
    create<T extends InternalAppEnvVarCreateArgs>(args: SelectSubset<T, InternalAppEnvVarCreateArgs<ExtArgs>>): Prisma__InternalAppEnvVarClient<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many InternalAppEnvVars.
     * @param {InternalAppEnvVarCreateManyArgs} args - Arguments to create many InternalAppEnvVars.
     * @example
     * // Create many InternalAppEnvVars
     * const internalAppEnvVar = await prisma.internalAppEnvVar.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends InternalAppEnvVarCreateManyArgs>(args?: SelectSubset<T, InternalAppEnvVarCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many InternalAppEnvVars and returns the data saved in the database.
     * @param {InternalAppEnvVarCreateManyAndReturnArgs} args - Arguments to create many InternalAppEnvVars.
     * @example
     * // Create many InternalAppEnvVars
     * const internalAppEnvVar = await prisma.internalAppEnvVar.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many InternalAppEnvVars and only return the `id`
     * const internalAppEnvVarWithIdOnly = await prisma.internalAppEnvVar.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 InternalAppEnvVarCreateManyAndReturnArgs>(args?: SelectSubset<T, InternalAppEnvVarCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a InternalAppEnvVar.
     * @param {InternalAppEnvVarDeleteArgs} args - Arguments to delete one InternalAppEnvVar.
     * @example
     * // Delete one InternalAppEnvVar
     * const InternalAppEnvVar = await prisma.internalAppEnvVar.delete({
     *   where: {
     *     // ... filter to delete one InternalAppEnvVar
     *   }
     * })
     * 
     */
    delete<T extends InternalAppEnvVarDeleteArgs>(args: SelectSubset<T, InternalAppEnvVarDeleteArgs<ExtArgs>>): Prisma__InternalAppEnvVarClient<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one InternalAppEnvVar.
     * @param {InternalAppEnvVarUpdateArgs} args - Arguments to update one InternalAppEnvVar.
     * @example
     * // Update one InternalAppEnvVar
     * const internalAppEnvVar = await prisma.internalAppEnvVar.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends InternalAppEnvVarUpdateArgs>(args: SelectSubset<T, InternalAppEnvVarUpdateArgs<ExtArgs>>): Prisma__InternalAppEnvVarClient<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more InternalAppEnvVars.
     * @param {InternalAppEnvVarDeleteManyArgs} args - Arguments to filter InternalAppEnvVars to delete.
     * @example
     * // Delete a few InternalAppEnvVars
     * const { count } = await prisma.internalAppEnvVar.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends InternalAppEnvVarDeleteManyArgs>(args?: SelectSubset<T, InternalAppEnvVarDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalAppEnvVars.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEnvVarUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many InternalAppEnvVars
     * const internalAppEnvVar = await prisma.internalAppEnvVar.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends InternalAppEnvVarUpdateManyArgs>(args: SelectSubset<T, InternalAppEnvVarUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalAppEnvVars and returns the data updated in the database.
     * @param {InternalAppEnvVarUpdateManyAndReturnArgs} args - Arguments to update many InternalAppEnvVars.
     * @example
     * // Update many InternalAppEnvVars
     * const internalAppEnvVar = await prisma.internalAppEnvVar.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more InternalAppEnvVars and only return the `id`
     * const internalAppEnvVarWithIdOnly = await prisma.internalAppEnvVar.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 InternalAppEnvVarUpdateManyAndReturnArgs>(args: SelectSubset<T, InternalAppEnvVarUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one InternalAppEnvVar.
     * @param {InternalAppEnvVarUpsertArgs} args - Arguments to update or create a InternalAppEnvVar.
     * @example
     * // Update or create a InternalAppEnvVar
     * const internalAppEnvVar = await prisma.internalAppEnvVar.upsert({
     *   create: {
     *     // ... data to create a InternalAppEnvVar
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the InternalAppEnvVar we want to update
     *   }
     * })
     */
    upsert<T extends InternalAppEnvVarUpsertArgs>(args: SelectSubset<T, InternalAppEnvVarUpsertArgs<ExtArgs>>): Prisma__InternalAppEnvVarClient<$Result.GetResult<Prisma.$InternalAppEnvVarPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of InternalAppEnvVars.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEnvVarCountArgs} args - Arguments to filter InternalAppEnvVars to count.
     * @example
     * // Count the number of InternalAppEnvVars
     * const count = await prisma.internalAppEnvVar.count({
     *   where: {
     *     // ... the filter for the InternalAppEnvVars we want to count
     *   }
     * })
    **/
    count<T extends InternalAppEnvVarCountArgs>(
      args?: Subset<T, InternalAppEnvVarCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], InternalAppEnvVarCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a InternalAppEnvVar.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEnvVarAggregateArgs} 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 InternalAppEnvVarAggregateArgs>(args: Subset<T, InternalAppEnvVarAggregateArgs>): Prisma.PrismaPromise<GetInternalAppEnvVarAggregateType<T>>

    /**
     * Group by InternalAppEnvVar.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEnvVarGroupByArgs} 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 InternalAppEnvVarGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: InternalAppEnvVarGroupByArgs['orderBy'] }
        : { orderBy?: InternalAppEnvVarGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, InternalAppEnvVarGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetInternalAppEnvVarGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the InternalAppEnvVar model
   */
  readonly fields: InternalAppEnvVarFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for InternalAppEnvVar.
   * 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__InternalAppEnvVarClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    app<T extends InternalAppDefaultArgs<ExtArgs> = {}>(args?: Subset<T, InternalAppDefaultArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the InternalAppEnvVar model
   */
  interface InternalAppEnvVarFieldRefs {
    readonly id: FieldRef<"InternalAppEnvVar", 'String'>
    readonly appId: FieldRef<"InternalAppEnvVar", 'String'>
    readonly key: FieldRef<"InternalAppEnvVar", 'String'>
    readonly valueEncrypted: FieldRef<"InternalAppEnvVar", 'Bytes'>
    readonly valueIv: FieldRef<"InternalAppEnvVar", 'Bytes'>
    readonly kmsKeyVersion: FieldRef<"InternalAppEnvVar", 'Int'>
    readonly organizationId: FieldRef<"InternalAppEnvVar", 'String'>
    readonly createdById: FieldRef<"InternalAppEnvVar", 'String'>
    readonly createdAt: FieldRef<"InternalAppEnvVar", 'DateTime'>
    readonly updatedAt: FieldRef<"InternalAppEnvVar", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * InternalAppEnvVar findUnique
   */
  export type InternalAppEnvVarFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEnvVar to fetch.
     */
    where: InternalAppEnvVarWhereUniqueInput
  }

  /**
   * InternalAppEnvVar findUniqueOrThrow
   */
  export type InternalAppEnvVarFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEnvVar to fetch.
     */
    where: InternalAppEnvVarWhereUniqueInput
  }

  /**
   * InternalAppEnvVar findFirst
   */
  export type InternalAppEnvVarFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEnvVar to fetch.
     */
    where?: InternalAppEnvVarWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEnvVars to fetch.
     */
    orderBy?: InternalAppEnvVarOrderByWithRelationInput | InternalAppEnvVarOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalAppEnvVars.
     */
    cursor?: InternalAppEnvVarWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEnvVars 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` InternalAppEnvVars.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalAppEnvVars.
     */
    distinct?: InternalAppEnvVarScalarFieldEnum | InternalAppEnvVarScalarFieldEnum[]
  }

  /**
   * InternalAppEnvVar findFirstOrThrow
   */
  export type InternalAppEnvVarFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEnvVar to fetch.
     */
    where?: InternalAppEnvVarWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEnvVars to fetch.
     */
    orderBy?: InternalAppEnvVarOrderByWithRelationInput | InternalAppEnvVarOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalAppEnvVars.
     */
    cursor?: InternalAppEnvVarWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEnvVars 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` InternalAppEnvVars.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalAppEnvVars.
     */
    distinct?: InternalAppEnvVarScalarFieldEnum | InternalAppEnvVarScalarFieldEnum[]
  }

  /**
   * InternalAppEnvVar findMany
   */
  export type InternalAppEnvVarFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEnvVars to fetch.
     */
    where?: InternalAppEnvVarWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEnvVars to fetch.
     */
    orderBy?: InternalAppEnvVarOrderByWithRelationInput | InternalAppEnvVarOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing InternalAppEnvVars.
     */
    cursor?: InternalAppEnvVarWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEnvVars 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` InternalAppEnvVars.
     */
    skip?: number
    distinct?: InternalAppEnvVarScalarFieldEnum | InternalAppEnvVarScalarFieldEnum[]
  }

  /**
   * InternalAppEnvVar create
   */
  export type InternalAppEnvVarCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * The data needed to create a InternalAppEnvVar.
     */
    data: XOR<InternalAppEnvVarCreateInput, InternalAppEnvVarUncheckedCreateInput>
  }

  /**
   * InternalAppEnvVar createMany
   */
  export type InternalAppEnvVarCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many InternalAppEnvVars.
     */
    data: InternalAppEnvVarCreateManyInput | InternalAppEnvVarCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InternalAppEnvVar createManyAndReturn
   */
  export type InternalAppEnvVarCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * The data used to create many InternalAppEnvVars.
     */
    data: InternalAppEnvVarCreateManyInput | InternalAppEnvVarCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalAppEnvVar update
   */
  export type InternalAppEnvVarUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * The data needed to update a InternalAppEnvVar.
     */
    data: XOR<InternalAppEnvVarUpdateInput, InternalAppEnvVarUncheckedUpdateInput>
    /**
     * Choose, which InternalAppEnvVar to update.
     */
    where: InternalAppEnvVarWhereUniqueInput
  }

  /**
   * InternalAppEnvVar updateMany
   */
  export type InternalAppEnvVarUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update InternalAppEnvVars.
     */
    data: XOR<InternalAppEnvVarUpdateManyMutationInput, InternalAppEnvVarUncheckedUpdateManyInput>
    /**
     * Filter which InternalAppEnvVars to update
     */
    where?: InternalAppEnvVarWhereInput
    /**
     * Limit how many InternalAppEnvVars to update.
     */
    limit?: number
  }

  /**
   * InternalAppEnvVar updateManyAndReturn
   */
  export type InternalAppEnvVarUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * The data used to update InternalAppEnvVars.
     */
    data: XOR<InternalAppEnvVarUpdateManyMutationInput, InternalAppEnvVarUncheckedUpdateManyInput>
    /**
     * Filter which InternalAppEnvVars to update
     */
    where?: InternalAppEnvVarWhereInput
    /**
     * Limit how many InternalAppEnvVars to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalAppEnvVar upsert
   */
  export type InternalAppEnvVarUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * The filter to search for the InternalAppEnvVar to update in case it exists.
     */
    where: InternalAppEnvVarWhereUniqueInput
    /**
     * In case the InternalAppEnvVar found by the `where` argument doesn't exist, create a new InternalAppEnvVar with this data.
     */
    create: XOR<InternalAppEnvVarCreateInput, InternalAppEnvVarUncheckedCreateInput>
    /**
     * In case the InternalAppEnvVar was found with the provided `where` argument, update it with this data.
     */
    update: XOR<InternalAppEnvVarUpdateInput, InternalAppEnvVarUncheckedUpdateInput>
  }

  /**
   * InternalAppEnvVar delete
   */
  export type InternalAppEnvVarDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
    /**
     * Filter which InternalAppEnvVar to delete.
     */
    where: InternalAppEnvVarWhereUniqueInput
  }

  /**
   * InternalAppEnvVar deleteMany
   */
  export type InternalAppEnvVarDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalAppEnvVars to delete
     */
    where?: InternalAppEnvVarWhereInput
    /**
     * Limit how many InternalAppEnvVars to delete.
     */
    limit?: number
  }

  /**
   * InternalAppEnvVar without action
   */
  export type InternalAppEnvVarDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEnvVar
     */
    select?: InternalAppEnvVarSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEnvVar
     */
    omit?: InternalAppEnvVarOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEnvVarInclude<ExtArgs> | null
  }


  /**
   * Model InternalAppEmployeeToken
   */

  export type AggregateInternalAppEmployeeToken = {
    _count: InternalAppEmployeeTokenCountAggregateOutputType | null
    _min: InternalAppEmployeeTokenMinAggregateOutputType | null
    _max: InternalAppEmployeeTokenMaxAggregateOutputType | null
  }

  export type InternalAppEmployeeTokenMinAggregateOutputType = {
    id: string | null
    employeeSlug: string | null
    tokenHash: string | null
    prefix: string | null
    status: $Enums.InternalAppTokenStatus | null
    issuedAt: Date | null
    expiresAt: Date | null
    revokedAt: Date | null
    revokedReason: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt: Date | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type InternalAppEmployeeTokenMaxAggregateOutputType = {
    id: string | null
    employeeSlug: string | null
    tokenHash: string | null
    prefix: string | null
    status: $Enums.InternalAppTokenStatus | null
    issuedAt: Date | null
    expiresAt: Date | null
    revokedAt: Date | null
    revokedReason: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt: Date | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type InternalAppEmployeeTokenCountAggregateOutputType = {
    id: number
    employeeSlug: number
    tokenHash: number
    prefix: number
    status: number
    issuedAt: number
    expiresAt: number
    revokedAt: number
    revokedReason: number
    lastUsedAt: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type InternalAppEmployeeTokenMinAggregateInputType = {
    id?: true
    employeeSlug?: true
    tokenHash?: true
    prefix?: true
    status?: true
    issuedAt?: true
    expiresAt?: true
    revokedAt?: true
    revokedReason?: true
    lastUsedAt?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type InternalAppEmployeeTokenMaxAggregateInputType = {
    id?: true
    employeeSlug?: true
    tokenHash?: true
    prefix?: true
    status?: true
    issuedAt?: true
    expiresAt?: true
    revokedAt?: true
    revokedReason?: true
    lastUsedAt?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
  }

  export type InternalAppEmployeeTokenCountAggregateInputType = {
    id?: true
    employeeSlug?: true
    tokenHash?: true
    prefix?: true
    status?: true
    issuedAt?: true
    expiresAt?: true
    revokedAt?: true
    revokedReason?: true
    lastUsedAt?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type InternalAppEmployeeTokenAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalAppEmployeeToken to aggregate.
     */
    where?: InternalAppEmployeeTokenWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEmployeeTokens to fetch.
     */
    orderBy?: InternalAppEmployeeTokenOrderByWithRelationInput | InternalAppEmployeeTokenOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: InternalAppEmployeeTokenWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEmployeeTokens 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` InternalAppEmployeeTokens.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned InternalAppEmployeeTokens
    **/
    _count?: true | InternalAppEmployeeTokenCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: InternalAppEmployeeTokenMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: InternalAppEmployeeTokenMaxAggregateInputType
  }

  export type GetInternalAppEmployeeTokenAggregateType<T extends InternalAppEmployeeTokenAggregateArgs> = {
        [P in keyof T & keyof AggregateInternalAppEmployeeToken]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateInternalAppEmployeeToken[P]>
      : GetScalarType<T[P], AggregateInternalAppEmployeeToken[P]>
  }




  export type InternalAppEmployeeTokenGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppEmployeeTokenWhereInput
    orderBy?: InternalAppEmployeeTokenOrderByWithAggregationInput | InternalAppEmployeeTokenOrderByWithAggregationInput[]
    by: InternalAppEmployeeTokenScalarFieldEnum[] | InternalAppEmployeeTokenScalarFieldEnum
    having?: InternalAppEmployeeTokenScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: InternalAppEmployeeTokenCountAggregateInputType | true
    _min?: InternalAppEmployeeTokenMinAggregateInputType
    _max?: InternalAppEmployeeTokenMaxAggregateInputType
  }

  export type InternalAppEmployeeTokenGroupByOutputType = {
    id: string
    employeeSlug: string
    tokenHash: string
    prefix: string
    status: $Enums.InternalAppTokenStatus
    issuedAt: Date
    expiresAt: Date
    revokedAt: Date | null
    revokedReason: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt: Date | null
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    _count: InternalAppEmployeeTokenCountAggregateOutputType | null
    _min: InternalAppEmployeeTokenMinAggregateOutputType | null
    _max: InternalAppEmployeeTokenMaxAggregateOutputType | null
  }

  type GetInternalAppEmployeeTokenGroupByPayload<T extends InternalAppEmployeeTokenGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<InternalAppEmployeeTokenGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof InternalAppEmployeeTokenGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], InternalAppEmployeeTokenGroupByOutputType[P]>
            : GetScalarType<T[P], InternalAppEmployeeTokenGroupByOutputType[P]>
        }
      >
    >


  export type InternalAppEmployeeTokenSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    employeeSlug?: boolean
    tokenHash?: boolean
    prefix?: boolean
    status?: boolean
    issuedAt?: boolean
    expiresAt?: boolean
    revokedAt?: boolean
    revokedReason?: boolean
    lastUsedAt?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    binding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEmployeeToken"]>

  export type InternalAppEmployeeTokenSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    employeeSlug?: boolean
    tokenHash?: boolean
    prefix?: boolean
    status?: boolean
    issuedAt?: boolean
    expiresAt?: boolean
    revokedAt?: boolean
    revokedReason?: boolean
    lastUsedAt?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    binding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEmployeeToken"]>

  export type InternalAppEmployeeTokenSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    employeeSlug?: boolean
    tokenHash?: boolean
    prefix?: boolean
    status?: boolean
    issuedAt?: boolean
    expiresAt?: boolean
    revokedAt?: boolean
    revokedReason?: boolean
    lastUsedAt?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    binding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEmployeeToken"]>

  export type InternalAppEmployeeTokenSelectScalar = {
    id?: boolean
    employeeSlug?: boolean
    tokenHash?: boolean
    prefix?: boolean
    status?: boolean
    issuedAt?: boolean
    expiresAt?: boolean
    revokedAt?: boolean
    revokedReason?: boolean
    lastUsedAt?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type InternalAppEmployeeTokenOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "employeeSlug" | "tokenHash" | "prefix" | "status" | "issuedAt" | "expiresAt" | "revokedAt" | "revokedReason" | "lastUsedAt" | "organizationId" | "createdById" | "createdAt" | "updatedAt", ExtArgs["result"]["internalAppEmployeeToken"]>
  export type InternalAppEmployeeTokenInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type InternalAppEmployeeTokenIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type InternalAppEmployeeTokenIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | EmployeeSlugBindingDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $InternalAppEmployeeTokenPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "InternalAppEmployeeToken"
    objects: {
      binding: Prisma.$EmployeeSlugBindingPayload<ExtArgs>
      creator: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      employeeSlug: string
      tokenHash: string
      prefix: string
      status: $Enums.InternalAppTokenStatus
      issuedAt: Date
      expiresAt: Date
      revokedAt: Date | null
      revokedReason: $Enums.InternalAppTokenRevokeReason | null
      lastUsedAt: Date | null
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["internalAppEmployeeToken"]>
    composites: {}
  }

  type InternalAppEmployeeTokenGetPayload<S extends boolean | null | undefined | InternalAppEmployeeTokenDefaultArgs> = $Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload, S>

  type InternalAppEmployeeTokenCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<InternalAppEmployeeTokenFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: InternalAppEmployeeTokenCountAggregateInputType | true
    }

  export interface InternalAppEmployeeTokenDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['InternalAppEmployeeToken'], meta: { name: 'InternalAppEmployeeToken' } }
    /**
     * Find zero or one InternalAppEmployeeToken that matches the filter.
     * @param {InternalAppEmployeeTokenFindUniqueArgs} args - Arguments to find a InternalAppEmployeeToken
     * @example
     * // Get one InternalAppEmployeeToken
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends InternalAppEmployeeTokenFindUniqueArgs>(args: SelectSubset<T, InternalAppEmployeeTokenFindUniqueArgs<ExtArgs>>): Prisma__InternalAppEmployeeTokenClient<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one InternalAppEmployeeToken that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {InternalAppEmployeeTokenFindUniqueOrThrowArgs} args - Arguments to find a InternalAppEmployeeToken
     * @example
     * // Get one InternalAppEmployeeToken
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends InternalAppEmployeeTokenFindUniqueOrThrowArgs>(args: SelectSubset<T, InternalAppEmployeeTokenFindUniqueOrThrowArgs<ExtArgs>>): Prisma__InternalAppEmployeeTokenClient<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalAppEmployeeToken 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 {InternalAppEmployeeTokenFindFirstArgs} args - Arguments to find a InternalAppEmployeeToken
     * @example
     * // Get one InternalAppEmployeeToken
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends InternalAppEmployeeTokenFindFirstArgs>(args?: SelectSubset<T, InternalAppEmployeeTokenFindFirstArgs<ExtArgs>>): Prisma__InternalAppEmployeeTokenClient<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalAppEmployeeToken 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 {InternalAppEmployeeTokenFindFirstOrThrowArgs} args - Arguments to find a InternalAppEmployeeToken
     * @example
     * // Get one InternalAppEmployeeToken
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends InternalAppEmployeeTokenFindFirstOrThrowArgs>(args?: SelectSubset<T, InternalAppEmployeeTokenFindFirstOrThrowArgs<ExtArgs>>): Prisma__InternalAppEmployeeTokenClient<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more InternalAppEmployeeTokens 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 {InternalAppEmployeeTokenFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all InternalAppEmployeeTokens
     * const internalAppEmployeeTokens = await prisma.internalAppEmployeeToken.findMany()
     * 
     * // Get first 10 InternalAppEmployeeTokens
     * const internalAppEmployeeTokens = await prisma.internalAppEmployeeToken.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const internalAppEmployeeTokenWithIdOnly = await prisma.internalAppEmployeeToken.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends InternalAppEmployeeTokenFindManyArgs>(args?: SelectSubset<T, InternalAppEmployeeTokenFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a InternalAppEmployeeToken.
     * @param {InternalAppEmployeeTokenCreateArgs} args - Arguments to create a InternalAppEmployeeToken.
     * @example
     * // Create one InternalAppEmployeeToken
     * const InternalAppEmployeeToken = await prisma.internalAppEmployeeToken.create({
     *   data: {
     *     // ... data to create a InternalAppEmployeeToken
     *   }
     * })
     * 
     */
    create<T extends InternalAppEmployeeTokenCreateArgs>(args: SelectSubset<T, InternalAppEmployeeTokenCreateArgs<ExtArgs>>): Prisma__InternalAppEmployeeTokenClient<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many InternalAppEmployeeTokens.
     * @param {InternalAppEmployeeTokenCreateManyArgs} args - Arguments to create many InternalAppEmployeeTokens.
     * @example
     * // Create many InternalAppEmployeeTokens
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends InternalAppEmployeeTokenCreateManyArgs>(args?: SelectSubset<T, InternalAppEmployeeTokenCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many InternalAppEmployeeTokens and returns the data saved in the database.
     * @param {InternalAppEmployeeTokenCreateManyAndReturnArgs} args - Arguments to create many InternalAppEmployeeTokens.
     * @example
     * // Create many InternalAppEmployeeTokens
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many InternalAppEmployeeTokens and only return the `id`
     * const internalAppEmployeeTokenWithIdOnly = await prisma.internalAppEmployeeToken.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 InternalAppEmployeeTokenCreateManyAndReturnArgs>(args?: SelectSubset<T, InternalAppEmployeeTokenCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a InternalAppEmployeeToken.
     * @param {InternalAppEmployeeTokenDeleteArgs} args - Arguments to delete one InternalAppEmployeeToken.
     * @example
     * // Delete one InternalAppEmployeeToken
     * const InternalAppEmployeeToken = await prisma.internalAppEmployeeToken.delete({
     *   where: {
     *     // ... filter to delete one InternalAppEmployeeToken
     *   }
     * })
     * 
     */
    delete<T extends InternalAppEmployeeTokenDeleteArgs>(args: SelectSubset<T, InternalAppEmployeeTokenDeleteArgs<ExtArgs>>): Prisma__InternalAppEmployeeTokenClient<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one InternalAppEmployeeToken.
     * @param {InternalAppEmployeeTokenUpdateArgs} args - Arguments to update one InternalAppEmployeeToken.
     * @example
     * // Update one InternalAppEmployeeToken
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends InternalAppEmployeeTokenUpdateArgs>(args: SelectSubset<T, InternalAppEmployeeTokenUpdateArgs<ExtArgs>>): Prisma__InternalAppEmployeeTokenClient<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more InternalAppEmployeeTokens.
     * @param {InternalAppEmployeeTokenDeleteManyArgs} args - Arguments to filter InternalAppEmployeeTokens to delete.
     * @example
     * // Delete a few InternalAppEmployeeTokens
     * const { count } = await prisma.internalAppEmployeeToken.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends InternalAppEmployeeTokenDeleteManyArgs>(args?: SelectSubset<T, InternalAppEmployeeTokenDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalAppEmployeeTokens.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEmployeeTokenUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many InternalAppEmployeeTokens
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends InternalAppEmployeeTokenUpdateManyArgs>(args: SelectSubset<T, InternalAppEmployeeTokenUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalAppEmployeeTokens and returns the data updated in the database.
     * @param {InternalAppEmployeeTokenUpdateManyAndReturnArgs} args - Arguments to update many InternalAppEmployeeTokens.
     * @example
     * // Update many InternalAppEmployeeTokens
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more InternalAppEmployeeTokens and only return the `id`
     * const internalAppEmployeeTokenWithIdOnly = await prisma.internalAppEmployeeToken.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 InternalAppEmployeeTokenUpdateManyAndReturnArgs>(args: SelectSubset<T, InternalAppEmployeeTokenUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one InternalAppEmployeeToken.
     * @param {InternalAppEmployeeTokenUpsertArgs} args - Arguments to update or create a InternalAppEmployeeToken.
     * @example
     * // Update or create a InternalAppEmployeeToken
     * const internalAppEmployeeToken = await prisma.internalAppEmployeeToken.upsert({
     *   create: {
     *     // ... data to create a InternalAppEmployeeToken
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the InternalAppEmployeeToken we want to update
     *   }
     * })
     */
    upsert<T extends InternalAppEmployeeTokenUpsertArgs>(args: SelectSubset<T, InternalAppEmployeeTokenUpsertArgs<ExtArgs>>): Prisma__InternalAppEmployeeTokenClient<$Result.GetResult<Prisma.$InternalAppEmployeeTokenPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of InternalAppEmployeeTokens.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEmployeeTokenCountArgs} args - Arguments to filter InternalAppEmployeeTokens to count.
     * @example
     * // Count the number of InternalAppEmployeeTokens
     * const count = await prisma.internalAppEmployeeToken.count({
     *   where: {
     *     // ... the filter for the InternalAppEmployeeTokens we want to count
     *   }
     * })
    **/
    count<T extends InternalAppEmployeeTokenCountArgs>(
      args?: Subset<T, InternalAppEmployeeTokenCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], InternalAppEmployeeTokenCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a InternalAppEmployeeToken.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEmployeeTokenAggregateArgs} 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 InternalAppEmployeeTokenAggregateArgs>(args: Subset<T, InternalAppEmployeeTokenAggregateArgs>): Prisma.PrismaPromise<GetInternalAppEmployeeTokenAggregateType<T>>

    /**
     * Group by InternalAppEmployeeToken.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEmployeeTokenGroupByArgs} 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 InternalAppEmployeeTokenGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: InternalAppEmployeeTokenGroupByArgs['orderBy'] }
        : { orderBy?: InternalAppEmployeeTokenGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, InternalAppEmployeeTokenGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetInternalAppEmployeeTokenGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the InternalAppEmployeeToken model
   */
  readonly fields: InternalAppEmployeeTokenFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for InternalAppEmployeeToken.
   * 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__InternalAppEmployeeTokenClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    binding<T extends EmployeeSlugBindingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, EmployeeSlugBindingDefaultArgs<ExtArgs>>): Prisma__EmployeeSlugBindingClient<$Result.GetResult<Prisma.$EmployeeSlugBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the InternalAppEmployeeToken model
   */
  interface InternalAppEmployeeTokenFieldRefs {
    readonly id: FieldRef<"InternalAppEmployeeToken", 'String'>
    readonly employeeSlug: FieldRef<"InternalAppEmployeeToken", 'String'>
    readonly tokenHash: FieldRef<"InternalAppEmployeeToken", 'String'>
    readonly prefix: FieldRef<"InternalAppEmployeeToken", 'String'>
    readonly status: FieldRef<"InternalAppEmployeeToken", 'InternalAppTokenStatus'>
    readonly issuedAt: FieldRef<"InternalAppEmployeeToken", 'DateTime'>
    readonly expiresAt: FieldRef<"InternalAppEmployeeToken", 'DateTime'>
    readonly revokedAt: FieldRef<"InternalAppEmployeeToken", 'DateTime'>
    readonly revokedReason: FieldRef<"InternalAppEmployeeToken", 'InternalAppTokenRevokeReason'>
    readonly lastUsedAt: FieldRef<"InternalAppEmployeeToken", 'DateTime'>
    readonly organizationId: FieldRef<"InternalAppEmployeeToken", 'String'>
    readonly createdById: FieldRef<"InternalAppEmployeeToken", 'String'>
    readonly createdAt: FieldRef<"InternalAppEmployeeToken", 'DateTime'>
    readonly updatedAt: FieldRef<"InternalAppEmployeeToken", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * InternalAppEmployeeToken findUnique
   */
  export type InternalAppEmployeeTokenFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEmployeeToken to fetch.
     */
    where: InternalAppEmployeeTokenWhereUniqueInput
  }

  /**
   * InternalAppEmployeeToken findUniqueOrThrow
   */
  export type InternalAppEmployeeTokenFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEmployeeToken to fetch.
     */
    where: InternalAppEmployeeTokenWhereUniqueInput
  }

  /**
   * InternalAppEmployeeToken findFirst
   */
  export type InternalAppEmployeeTokenFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEmployeeToken to fetch.
     */
    where?: InternalAppEmployeeTokenWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEmployeeTokens to fetch.
     */
    orderBy?: InternalAppEmployeeTokenOrderByWithRelationInput | InternalAppEmployeeTokenOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalAppEmployeeTokens.
     */
    cursor?: InternalAppEmployeeTokenWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEmployeeTokens 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` InternalAppEmployeeTokens.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalAppEmployeeTokens.
     */
    distinct?: InternalAppEmployeeTokenScalarFieldEnum | InternalAppEmployeeTokenScalarFieldEnum[]
  }

  /**
   * InternalAppEmployeeToken findFirstOrThrow
   */
  export type InternalAppEmployeeTokenFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEmployeeToken to fetch.
     */
    where?: InternalAppEmployeeTokenWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEmployeeTokens to fetch.
     */
    orderBy?: InternalAppEmployeeTokenOrderByWithRelationInput | InternalAppEmployeeTokenOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalAppEmployeeTokens.
     */
    cursor?: InternalAppEmployeeTokenWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEmployeeTokens 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` InternalAppEmployeeTokens.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalAppEmployeeTokens.
     */
    distinct?: InternalAppEmployeeTokenScalarFieldEnum | InternalAppEmployeeTokenScalarFieldEnum[]
  }

  /**
   * InternalAppEmployeeToken findMany
   */
  export type InternalAppEmployeeTokenFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEmployeeTokens to fetch.
     */
    where?: InternalAppEmployeeTokenWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEmployeeTokens to fetch.
     */
    orderBy?: InternalAppEmployeeTokenOrderByWithRelationInput | InternalAppEmployeeTokenOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing InternalAppEmployeeTokens.
     */
    cursor?: InternalAppEmployeeTokenWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEmployeeTokens 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` InternalAppEmployeeTokens.
     */
    skip?: number
    distinct?: InternalAppEmployeeTokenScalarFieldEnum | InternalAppEmployeeTokenScalarFieldEnum[]
  }

  /**
   * InternalAppEmployeeToken create
   */
  export type InternalAppEmployeeTokenCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * The data needed to create a InternalAppEmployeeToken.
     */
    data: XOR<InternalAppEmployeeTokenCreateInput, InternalAppEmployeeTokenUncheckedCreateInput>
  }

  /**
   * InternalAppEmployeeToken createMany
   */
  export type InternalAppEmployeeTokenCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many InternalAppEmployeeTokens.
     */
    data: InternalAppEmployeeTokenCreateManyInput | InternalAppEmployeeTokenCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InternalAppEmployeeToken createManyAndReturn
   */
  export type InternalAppEmployeeTokenCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * The data used to create many InternalAppEmployeeTokens.
     */
    data: InternalAppEmployeeTokenCreateManyInput | InternalAppEmployeeTokenCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalAppEmployeeToken update
   */
  export type InternalAppEmployeeTokenUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * The data needed to update a InternalAppEmployeeToken.
     */
    data: XOR<InternalAppEmployeeTokenUpdateInput, InternalAppEmployeeTokenUncheckedUpdateInput>
    /**
     * Choose, which InternalAppEmployeeToken to update.
     */
    where: InternalAppEmployeeTokenWhereUniqueInput
  }

  /**
   * InternalAppEmployeeToken updateMany
   */
  export type InternalAppEmployeeTokenUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update InternalAppEmployeeTokens.
     */
    data: XOR<InternalAppEmployeeTokenUpdateManyMutationInput, InternalAppEmployeeTokenUncheckedUpdateManyInput>
    /**
     * Filter which InternalAppEmployeeTokens to update
     */
    where?: InternalAppEmployeeTokenWhereInput
    /**
     * Limit how many InternalAppEmployeeTokens to update.
     */
    limit?: number
  }

  /**
   * InternalAppEmployeeToken updateManyAndReturn
   */
  export type InternalAppEmployeeTokenUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * The data used to update InternalAppEmployeeTokens.
     */
    data: XOR<InternalAppEmployeeTokenUpdateManyMutationInput, InternalAppEmployeeTokenUncheckedUpdateManyInput>
    /**
     * Filter which InternalAppEmployeeTokens to update
     */
    where?: InternalAppEmployeeTokenWhereInput
    /**
     * Limit how many InternalAppEmployeeTokens to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalAppEmployeeToken upsert
   */
  export type InternalAppEmployeeTokenUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * The filter to search for the InternalAppEmployeeToken to update in case it exists.
     */
    where: InternalAppEmployeeTokenWhereUniqueInput
    /**
     * In case the InternalAppEmployeeToken found by the `where` argument doesn't exist, create a new InternalAppEmployeeToken with this data.
     */
    create: XOR<InternalAppEmployeeTokenCreateInput, InternalAppEmployeeTokenUncheckedCreateInput>
    /**
     * In case the InternalAppEmployeeToken was found with the provided `where` argument, update it with this data.
     */
    update: XOR<InternalAppEmployeeTokenUpdateInput, InternalAppEmployeeTokenUncheckedUpdateInput>
  }

  /**
   * InternalAppEmployeeToken delete
   */
  export type InternalAppEmployeeTokenDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
    /**
     * Filter which InternalAppEmployeeToken to delete.
     */
    where: InternalAppEmployeeTokenWhereUniqueInput
  }

  /**
   * InternalAppEmployeeToken deleteMany
   */
  export type InternalAppEmployeeTokenDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalAppEmployeeTokens to delete
     */
    where?: InternalAppEmployeeTokenWhereInput
    /**
     * Limit how many InternalAppEmployeeTokens to delete.
     */
    limit?: number
  }

  /**
   * InternalAppEmployeeToken without action
   */
  export type InternalAppEmployeeTokenDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEmployeeToken
     */
    select?: InternalAppEmployeeTokenSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEmployeeToken
     */
    omit?: InternalAppEmployeeTokenOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEmployeeTokenInclude<ExtArgs> | null
  }


  /**
   * Model InternalAppEvent
   */

  export type AggregateInternalAppEvent = {
    _count: InternalAppEventCountAggregateOutputType | null
    _avg: InternalAppEventAvgAggregateOutputType | null
    _sum: InternalAppEventSumAggregateOutputType | null
    _min: InternalAppEventMinAggregateOutputType | null
    _max: InternalAppEventMaxAggregateOutputType | null
  }

  export type InternalAppEventAvgAggregateOutputType = {
    durationMs: number | null
  }

  export type InternalAppEventSumAggregateOutputType = {
    durationMs: number | null
  }

  export type InternalAppEventMinAggregateOutputType = {
    id: string | null
    appId: string | null
    employeeSlug: string | null
    actorId: string | null
    actorRole: $Enums.InternalAppActorRole | null
    eventType: string | null
    outcome: $Enums.InternalAppEventOutcome | null
    errorCode: string | null
    durationMs: number | null
    requestId: string | null
    ipAddr: string | null
    userAgent: string | null
    organizationId: string | null
    createdAt: Date | null
  }

  export type InternalAppEventMaxAggregateOutputType = {
    id: string | null
    appId: string | null
    employeeSlug: string | null
    actorId: string | null
    actorRole: $Enums.InternalAppActorRole | null
    eventType: string | null
    outcome: $Enums.InternalAppEventOutcome | null
    errorCode: string | null
    durationMs: number | null
    requestId: string | null
    ipAddr: string | null
    userAgent: string | null
    organizationId: string | null
    createdAt: Date | null
  }

  export type InternalAppEventCountAggregateOutputType = {
    id: number
    appId: number
    employeeSlug: number
    actorId: number
    actorRole: number
    eventType: number
    outcome: number
    errorCode: number
    durationMs: number
    payload: number
    requestId: number
    ipAddr: number
    userAgent: number
    organizationId: number
    createdAt: number
    _all: number
  }


  export type InternalAppEventAvgAggregateInputType = {
    durationMs?: true
  }

  export type InternalAppEventSumAggregateInputType = {
    durationMs?: true
  }

  export type InternalAppEventMinAggregateInputType = {
    id?: true
    appId?: true
    employeeSlug?: true
    actorId?: true
    actorRole?: true
    eventType?: true
    outcome?: true
    errorCode?: true
    durationMs?: true
    requestId?: true
    ipAddr?: true
    userAgent?: true
    organizationId?: true
    createdAt?: true
  }

  export type InternalAppEventMaxAggregateInputType = {
    id?: true
    appId?: true
    employeeSlug?: true
    actorId?: true
    actorRole?: true
    eventType?: true
    outcome?: true
    errorCode?: true
    durationMs?: true
    requestId?: true
    ipAddr?: true
    userAgent?: true
    organizationId?: true
    createdAt?: true
  }

  export type InternalAppEventCountAggregateInputType = {
    id?: true
    appId?: true
    employeeSlug?: true
    actorId?: true
    actorRole?: true
    eventType?: true
    outcome?: true
    errorCode?: true
    durationMs?: true
    payload?: true
    requestId?: true
    ipAddr?: true
    userAgent?: true
    organizationId?: true
    createdAt?: true
    _all?: true
  }

  export type InternalAppEventAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalAppEvent to aggregate.
     */
    where?: InternalAppEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEvents to fetch.
     */
    orderBy?: InternalAppEventOrderByWithRelationInput | InternalAppEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: InternalAppEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEvents 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` InternalAppEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned InternalAppEvents
    **/
    _count?: true | InternalAppEventCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: InternalAppEventAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: InternalAppEventSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: InternalAppEventMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: InternalAppEventMaxAggregateInputType
  }

  export type GetInternalAppEventAggregateType<T extends InternalAppEventAggregateArgs> = {
        [P in keyof T & keyof AggregateInternalAppEvent]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateInternalAppEvent[P]>
      : GetScalarType<T[P], AggregateInternalAppEvent[P]>
  }




  export type InternalAppEventGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InternalAppEventWhereInput
    orderBy?: InternalAppEventOrderByWithAggregationInput | InternalAppEventOrderByWithAggregationInput[]
    by: InternalAppEventScalarFieldEnum[] | InternalAppEventScalarFieldEnum
    having?: InternalAppEventScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: InternalAppEventCountAggregateInputType | true
    _avg?: InternalAppEventAvgAggregateInputType
    _sum?: InternalAppEventSumAggregateInputType
    _min?: InternalAppEventMinAggregateInputType
    _max?: InternalAppEventMaxAggregateInputType
  }

  export type InternalAppEventGroupByOutputType = {
    id: string
    appId: string | null
    employeeSlug: string | null
    actorId: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome: $Enums.InternalAppEventOutcome
    errorCode: string | null
    durationMs: number | null
    payload: JsonValue
    requestId: string | null
    ipAddr: string | null
    userAgent: string | null
    organizationId: string
    createdAt: Date
    _count: InternalAppEventCountAggregateOutputType | null
    _avg: InternalAppEventAvgAggregateOutputType | null
    _sum: InternalAppEventSumAggregateOutputType | null
    _min: InternalAppEventMinAggregateOutputType | null
    _max: InternalAppEventMaxAggregateOutputType | null
  }

  type GetInternalAppEventGroupByPayload<T extends InternalAppEventGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<InternalAppEventGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof InternalAppEventGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], InternalAppEventGroupByOutputType[P]>
            : GetScalarType<T[P], InternalAppEventGroupByOutputType[P]>
        }
      >
    >


  export type InternalAppEventSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    employeeSlug?: boolean
    actorId?: boolean
    actorRole?: boolean
    eventType?: boolean
    outcome?: boolean
    errorCode?: boolean
    durationMs?: boolean
    payload?: boolean
    requestId?: boolean
    ipAddr?: boolean
    userAgent?: boolean
    organizationId?: boolean
    createdAt?: boolean
    app?: boolean | InternalAppEvent$appArgs<ExtArgs>
    actor?: boolean | InternalAppEvent$actorArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEvent"]>

  export type InternalAppEventSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    employeeSlug?: boolean
    actorId?: boolean
    actorRole?: boolean
    eventType?: boolean
    outcome?: boolean
    errorCode?: boolean
    durationMs?: boolean
    payload?: boolean
    requestId?: boolean
    ipAddr?: boolean
    userAgent?: boolean
    organizationId?: boolean
    createdAt?: boolean
    app?: boolean | InternalAppEvent$appArgs<ExtArgs>
    actor?: boolean | InternalAppEvent$actorArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEvent"]>

  export type InternalAppEventSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    appId?: boolean
    employeeSlug?: boolean
    actorId?: boolean
    actorRole?: boolean
    eventType?: boolean
    outcome?: boolean
    errorCode?: boolean
    durationMs?: boolean
    payload?: boolean
    requestId?: boolean
    ipAddr?: boolean
    userAgent?: boolean
    organizationId?: boolean
    createdAt?: boolean
    app?: boolean | InternalAppEvent$appArgs<ExtArgs>
    actor?: boolean | InternalAppEvent$actorArgs<ExtArgs>
  }, ExtArgs["result"]["internalAppEvent"]>

  export type InternalAppEventSelectScalar = {
    id?: boolean
    appId?: boolean
    employeeSlug?: boolean
    actorId?: boolean
    actorRole?: boolean
    eventType?: boolean
    outcome?: boolean
    errorCode?: boolean
    durationMs?: boolean
    payload?: boolean
    requestId?: boolean
    ipAddr?: boolean
    userAgent?: boolean
    organizationId?: boolean
    createdAt?: boolean
  }

  export type InternalAppEventOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "appId" | "employeeSlug" | "actorId" | "actorRole" | "eventType" | "outcome" | "errorCode" | "durationMs" | "payload" | "requestId" | "ipAddr" | "userAgent" | "organizationId" | "createdAt", ExtArgs["result"]["internalAppEvent"]>
  export type InternalAppEventInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppEvent$appArgs<ExtArgs>
    actor?: boolean | InternalAppEvent$actorArgs<ExtArgs>
  }
  export type InternalAppEventIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppEvent$appArgs<ExtArgs>
    actor?: boolean | InternalAppEvent$actorArgs<ExtArgs>
  }
  export type InternalAppEventIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    app?: boolean | InternalAppEvent$appArgs<ExtArgs>
    actor?: boolean | InternalAppEvent$actorArgs<ExtArgs>
  }

  export type $InternalAppEventPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "InternalAppEvent"
    objects: {
      app: Prisma.$InternalAppPayload<ExtArgs> | null
      actor: Prisma.$UserPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      appId: string | null
      employeeSlug: string | null
      actorId: string | null
      actorRole: $Enums.InternalAppActorRole
      eventType: string
      outcome: $Enums.InternalAppEventOutcome
      errorCode: string | null
      durationMs: number | null
      payload: Prisma.JsonValue
      requestId: string | null
      ipAddr: string | null
      userAgent: string | null
      organizationId: string
      createdAt: Date
    }, ExtArgs["result"]["internalAppEvent"]>
    composites: {}
  }

  type InternalAppEventGetPayload<S extends boolean | null | undefined | InternalAppEventDefaultArgs> = $Result.GetResult<Prisma.$InternalAppEventPayload, S>

  type InternalAppEventCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<InternalAppEventFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: InternalAppEventCountAggregateInputType | true
    }

  export interface InternalAppEventDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['InternalAppEvent'], meta: { name: 'InternalAppEvent' } }
    /**
     * Find zero or one InternalAppEvent that matches the filter.
     * @param {InternalAppEventFindUniqueArgs} args - Arguments to find a InternalAppEvent
     * @example
     * // Get one InternalAppEvent
     * const internalAppEvent = await prisma.internalAppEvent.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends InternalAppEventFindUniqueArgs>(args: SelectSubset<T, InternalAppEventFindUniqueArgs<ExtArgs>>): Prisma__InternalAppEventClient<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one InternalAppEvent that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {InternalAppEventFindUniqueOrThrowArgs} args - Arguments to find a InternalAppEvent
     * @example
     * // Get one InternalAppEvent
     * const internalAppEvent = await prisma.internalAppEvent.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends InternalAppEventFindUniqueOrThrowArgs>(args: SelectSubset<T, InternalAppEventFindUniqueOrThrowArgs<ExtArgs>>): Prisma__InternalAppEventClient<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalAppEvent 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 {InternalAppEventFindFirstArgs} args - Arguments to find a InternalAppEvent
     * @example
     * // Get one InternalAppEvent
     * const internalAppEvent = await prisma.internalAppEvent.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends InternalAppEventFindFirstArgs>(args?: SelectSubset<T, InternalAppEventFindFirstArgs<ExtArgs>>): Prisma__InternalAppEventClient<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InternalAppEvent 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 {InternalAppEventFindFirstOrThrowArgs} args - Arguments to find a InternalAppEvent
     * @example
     * // Get one InternalAppEvent
     * const internalAppEvent = await prisma.internalAppEvent.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends InternalAppEventFindFirstOrThrowArgs>(args?: SelectSubset<T, InternalAppEventFindFirstOrThrowArgs<ExtArgs>>): Prisma__InternalAppEventClient<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more InternalAppEvents 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 {InternalAppEventFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all InternalAppEvents
     * const internalAppEvents = await prisma.internalAppEvent.findMany()
     * 
     * // Get first 10 InternalAppEvents
     * const internalAppEvents = await prisma.internalAppEvent.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const internalAppEventWithIdOnly = await prisma.internalAppEvent.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends InternalAppEventFindManyArgs>(args?: SelectSubset<T, InternalAppEventFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a InternalAppEvent.
     * @param {InternalAppEventCreateArgs} args - Arguments to create a InternalAppEvent.
     * @example
     * // Create one InternalAppEvent
     * const InternalAppEvent = await prisma.internalAppEvent.create({
     *   data: {
     *     // ... data to create a InternalAppEvent
     *   }
     * })
     * 
     */
    create<T extends InternalAppEventCreateArgs>(args: SelectSubset<T, InternalAppEventCreateArgs<ExtArgs>>): Prisma__InternalAppEventClient<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many InternalAppEvents.
     * @param {InternalAppEventCreateManyArgs} args - Arguments to create many InternalAppEvents.
     * @example
     * // Create many InternalAppEvents
     * const internalAppEvent = await prisma.internalAppEvent.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends InternalAppEventCreateManyArgs>(args?: SelectSubset<T, InternalAppEventCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many InternalAppEvents and returns the data saved in the database.
     * @param {InternalAppEventCreateManyAndReturnArgs} args - Arguments to create many InternalAppEvents.
     * @example
     * // Create many InternalAppEvents
     * const internalAppEvent = await prisma.internalAppEvent.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many InternalAppEvents and only return the `id`
     * const internalAppEventWithIdOnly = await prisma.internalAppEvent.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 InternalAppEventCreateManyAndReturnArgs>(args?: SelectSubset<T, InternalAppEventCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a InternalAppEvent.
     * @param {InternalAppEventDeleteArgs} args - Arguments to delete one InternalAppEvent.
     * @example
     * // Delete one InternalAppEvent
     * const InternalAppEvent = await prisma.internalAppEvent.delete({
     *   where: {
     *     // ... filter to delete one InternalAppEvent
     *   }
     * })
     * 
     */
    delete<T extends InternalAppEventDeleteArgs>(args: SelectSubset<T, InternalAppEventDeleteArgs<ExtArgs>>): Prisma__InternalAppEventClient<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one InternalAppEvent.
     * @param {InternalAppEventUpdateArgs} args - Arguments to update one InternalAppEvent.
     * @example
     * // Update one InternalAppEvent
     * const internalAppEvent = await prisma.internalAppEvent.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends InternalAppEventUpdateArgs>(args: SelectSubset<T, InternalAppEventUpdateArgs<ExtArgs>>): Prisma__InternalAppEventClient<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more InternalAppEvents.
     * @param {InternalAppEventDeleteManyArgs} args - Arguments to filter InternalAppEvents to delete.
     * @example
     * // Delete a few InternalAppEvents
     * const { count } = await prisma.internalAppEvent.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends InternalAppEventDeleteManyArgs>(args?: SelectSubset<T, InternalAppEventDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalAppEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEventUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many InternalAppEvents
     * const internalAppEvent = await prisma.internalAppEvent.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends InternalAppEventUpdateManyArgs>(args: SelectSubset<T, InternalAppEventUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InternalAppEvents and returns the data updated in the database.
     * @param {InternalAppEventUpdateManyAndReturnArgs} args - Arguments to update many InternalAppEvents.
     * @example
     * // Update many InternalAppEvents
     * const internalAppEvent = await prisma.internalAppEvent.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more InternalAppEvents and only return the `id`
     * const internalAppEventWithIdOnly = await prisma.internalAppEvent.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 InternalAppEventUpdateManyAndReturnArgs>(args: SelectSubset<T, InternalAppEventUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one InternalAppEvent.
     * @param {InternalAppEventUpsertArgs} args - Arguments to update or create a InternalAppEvent.
     * @example
     * // Update or create a InternalAppEvent
     * const internalAppEvent = await prisma.internalAppEvent.upsert({
     *   create: {
     *     // ... data to create a InternalAppEvent
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the InternalAppEvent we want to update
     *   }
     * })
     */
    upsert<T extends InternalAppEventUpsertArgs>(args: SelectSubset<T, InternalAppEventUpsertArgs<ExtArgs>>): Prisma__InternalAppEventClient<$Result.GetResult<Prisma.$InternalAppEventPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of InternalAppEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEventCountArgs} args - Arguments to filter InternalAppEvents to count.
     * @example
     * // Count the number of InternalAppEvents
     * const count = await prisma.internalAppEvent.count({
     *   where: {
     *     // ... the filter for the InternalAppEvents we want to count
     *   }
     * })
    **/
    count<T extends InternalAppEventCountArgs>(
      args?: Subset<T, InternalAppEventCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], InternalAppEventCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a InternalAppEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEventAggregateArgs} 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 InternalAppEventAggregateArgs>(args: Subset<T, InternalAppEventAggregateArgs>): Prisma.PrismaPromise<GetInternalAppEventAggregateType<T>>

    /**
     * Group by InternalAppEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InternalAppEventGroupByArgs} 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 InternalAppEventGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: InternalAppEventGroupByArgs['orderBy'] }
        : { orderBy?: InternalAppEventGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, InternalAppEventGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetInternalAppEventGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the InternalAppEvent model
   */
  readonly fields: InternalAppEventFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for InternalAppEvent.
   * 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__InternalAppEventClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    app<T extends InternalAppEvent$appArgs<ExtArgs> = {}>(args?: Subset<T, InternalAppEvent$appArgs<ExtArgs>>): Prisma__InternalAppClient<$Result.GetResult<Prisma.$InternalAppPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    actor<T extends InternalAppEvent$actorArgs<ExtArgs> = {}>(args?: Subset<T, InternalAppEvent$actorArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the InternalAppEvent model
   */
  interface InternalAppEventFieldRefs {
    readonly id: FieldRef<"InternalAppEvent", 'String'>
    readonly appId: FieldRef<"InternalAppEvent", 'String'>
    readonly employeeSlug: FieldRef<"InternalAppEvent", 'String'>
    readonly actorId: FieldRef<"InternalAppEvent", 'String'>
    readonly actorRole: FieldRef<"InternalAppEvent", 'InternalAppActorRole'>
    readonly eventType: FieldRef<"InternalAppEvent", 'String'>
    readonly outcome: FieldRef<"InternalAppEvent", 'InternalAppEventOutcome'>
    readonly errorCode: FieldRef<"InternalAppEvent", 'String'>
    readonly durationMs: FieldRef<"InternalAppEvent", 'Int'>
    readonly payload: FieldRef<"InternalAppEvent", 'Json'>
    readonly requestId: FieldRef<"InternalAppEvent", 'String'>
    readonly ipAddr: FieldRef<"InternalAppEvent", 'String'>
    readonly userAgent: FieldRef<"InternalAppEvent", 'String'>
    readonly organizationId: FieldRef<"InternalAppEvent", 'String'>
    readonly createdAt: FieldRef<"InternalAppEvent", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * InternalAppEvent findUnique
   */
  export type InternalAppEventFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEvent to fetch.
     */
    where: InternalAppEventWhereUniqueInput
  }

  /**
   * InternalAppEvent findUniqueOrThrow
   */
  export type InternalAppEventFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEvent to fetch.
     */
    where: InternalAppEventWhereUniqueInput
  }

  /**
   * InternalAppEvent findFirst
   */
  export type InternalAppEventFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEvent to fetch.
     */
    where?: InternalAppEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEvents to fetch.
     */
    orderBy?: InternalAppEventOrderByWithRelationInput | InternalAppEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalAppEvents.
     */
    cursor?: InternalAppEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEvents 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` InternalAppEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalAppEvents.
     */
    distinct?: InternalAppEventScalarFieldEnum | InternalAppEventScalarFieldEnum[]
  }

  /**
   * InternalAppEvent findFirstOrThrow
   */
  export type InternalAppEventFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEvent to fetch.
     */
    where?: InternalAppEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEvents to fetch.
     */
    orderBy?: InternalAppEventOrderByWithRelationInput | InternalAppEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InternalAppEvents.
     */
    cursor?: InternalAppEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEvents 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` InternalAppEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InternalAppEvents.
     */
    distinct?: InternalAppEventScalarFieldEnum | InternalAppEventScalarFieldEnum[]
  }

  /**
   * InternalAppEvent findMany
   */
  export type InternalAppEventFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * Filter, which InternalAppEvents to fetch.
     */
    where?: InternalAppEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InternalAppEvents to fetch.
     */
    orderBy?: InternalAppEventOrderByWithRelationInput | InternalAppEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing InternalAppEvents.
     */
    cursor?: InternalAppEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InternalAppEvents 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` InternalAppEvents.
     */
    skip?: number
    distinct?: InternalAppEventScalarFieldEnum | InternalAppEventScalarFieldEnum[]
  }

  /**
   * InternalAppEvent create
   */
  export type InternalAppEventCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * The data needed to create a InternalAppEvent.
     */
    data: XOR<InternalAppEventCreateInput, InternalAppEventUncheckedCreateInput>
  }

  /**
   * InternalAppEvent createMany
   */
  export type InternalAppEventCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many InternalAppEvents.
     */
    data: InternalAppEventCreateManyInput | InternalAppEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InternalAppEvent createManyAndReturn
   */
  export type InternalAppEventCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * The data used to create many InternalAppEvents.
     */
    data: InternalAppEventCreateManyInput | InternalAppEventCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalAppEvent update
   */
  export type InternalAppEventUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * The data needed to update a InternalAppEvent.
     */
    data: XOR<InternalAppEventUpdateInput, InternalAppEventUncheckedUpdateInput>
    /**
     * Choose, which InternalAppEvent to update.
     */
    where: InternalAppEventWhereUniqueInput
  }

  /**
   * InternalAppEvent updateMany
   */
  export type InternalAppEventUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update InternalAppEvents.
     */
    data: XOR<InternalAppEventUpdateManyMutationInput, InternalAppEventUncheckedUpdateManyInput>
    /**
     * Filter which InternalAppEvents to update
     */
    where?: InternalAppEventWhereInput
    /**
     * Limit how many InternalAppEvents to update.
     */
    limit?: number
  }

  /**
   * InternalAppEvent updateManyAndReturn
   */
  export type InternalAppEventUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * The data used to update InternalAppEvents.
     */
    data: XOR<InternalAppEventUpdateManyMutationInput, InternalAppEventUncheckedUpdateManyInput>
    /**
     * Filter which InternalAppEvents to update
     */
    where?: InternalAppEventWhereInput
    /**
     * Limit how many InternalAppEvents to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * InternalAppEvent upsert
   */
  export type InternalAppEventUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * The filter to search for the InternalAppEvent to update in case it exists.
     */
    where: InternalAppEventWhereUniqueInput
    /**
     * In case the InternalAppEvent found by the `where` argument doesn't exist, create a new InternalAppEvent with this data.
     */
    create: XOR<InternalAppEventCreateInput, InternalAppEventUncheckedCreateInput>
    /**
     * In case the InternalAppEvent was found with the provided `where` argument, update it with this data.
     */
    update: XOR<InternalAppEventUpdateInput, InternalAppEventUncheckedUpdateInput>
  }

  /**
   * InternalAppEvent delete
   */
  export type InternalAppEventDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
    /**
     * Filter which InternalAppEvent to delete.
     */
    where: InternalAppEventWhereUniqueInput
  }

  /**
   * InternalAppEvent deleteMany
   */
  export type InternalAppEventDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InternalAppEvents to delete
     */
    where?: InternalAppEventWhereInput
    /**
     * Limit how many InternalAppEvents to delete.
     */
    limit?: number
  }

  /**
   * InternalAppEvent.app
   */
  export type InternalAppEvent$appArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalApp
     */
    select?: InternalAppSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalApp
     */
    omit?: InternalAppOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppInclude<ExtArgs> | null
    where?: InternalAppWhereInput
  }

  /**
   * InternalAppEvent.actor
   */
  export type InternalAppEvent$actorArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * InternalAppEvent without action
   */
  export type InternalAppEventDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InternalAppEvent
     */
    select?: InternalAppEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InternalAppEvent
     */
    omit?: InternalAppEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InternalAppEventInclude<ExtArgs> | null
  }


  /**
   * Model KnowledgeArticle
   */

  export type AggregateKnowledgeArticle = {
    _count: KnowledgeArticleCountAggregateOutputType | null
    _min: KnowledgeArticleMinAggregateOutputType | null
    _max: KnowledgeArticleMaxAggregateOutputType | null
  }

  export type KnowledgeArticleMinAggregateOutputType = {
    id: string | null
    title: string | null
    content: string | null
    status: $Enums.KnowledgeArticleStatus | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type KnowledgeArticleMaxAggregateOutputType = {
    id: string | null
    title: string | null
    content: string | null
    status: $Enums.KnowledgeArticleStatus | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type KnowledgeArticleCountAggregateOutputType = {
    id: number
    title: number
    content: number
    status: number
    createdById: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type KnowledgeArticleMinAggregateInputType = {
    id?: true
    title?: true
    content?: true
    status?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type KnowledgeArticleMaxAggregateInputType = {
    id?: true
    title?: true
    content?: true
    status?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type KnowledgeArticleCountAggregateInputType = {
    id?: true
    title?: true
    content?: true
    status?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type KnowledgeArticleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which KnowledgeArticle to aggregate.
     */
    where?: KnowledgeArticleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KnowledgeArticles to fetch.
     */
    orderBy?: KnowledgeArticleOrderByWithRelationInput | KnowledgeArticleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: KnowledgeArticleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KnowledgeArticles 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` KnowledgeArticles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned KnowledgeArticles
    **/
    _count?: true | KnowledgeArticleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: KnowledgeArticleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: KnowledgeArticleMaxAggregateInputType
  }

  export type GetKnowledgeArticleAggregateType<T extends KnowledgeArticleAggregateArgs> = {
        [P in keyof T & keyof AggregateKnowledgeArticle]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateKnowledgeArticle[P]>
      : GetScalarType<T[P], AggregateKnowledgeArticle[P]>
  }




  export type KnowledgeArticleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: KnowledgeArticleWhereInput
    orderBy?: KnowledgeArticleOrderByWithAggregationInput | KnowledgeArticleOrderByWithAggregationInput[]
    by: KnowledgeArticleScalarFieldEnum[] | KnowledgeArticleScalarFieldEnum
    having?: KnowledgeArticleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: KnowledgeArticleCountAggregateInputType | true
    _min?: KnowledgeArticleMinAggregateInputType
    _max?: KnowledgeArticleMaxAggregateInputType
  }

  export type KnowledgeArticleGroupByOutputType = {
    id: string
    title: string
    content: string
    status: $Enums.KnowledgeArticleStatus
    createdById: string
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: KnowledgeArticleCountAggregateOutputType | null
    _min: KnowledgeArticleMinAggregateOutputType | null
    _max: KnowledgeArticleMaxAggregateOutputType | null
  }

  type GetKnowledgeArticleGroupByPayload<T extends KnowledgeArticleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<KnowledgeArticleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof KnowledgeArticleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], KnowledgeArticleGroupByOutputType[P]>
            : GetScalarType<T[P], KnowledgeArticleGroupByOutputType[P]>
        }
      >
    >


  export type KnowledgeArticleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    content?: boolean
    status?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    views?: boolean | KnowledgeArticle$viewsArgs<ExtArgs>
    likes?: boolean | KnowledgeArticle$likesArgs<ExtArgs>
    comments?: boolean | KnowledgeArticle$commentsArgs<ExtArgs>
    _count?: boolean | KnowledgeArticleCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["knowledgeArticle"]>

  export type KnowledgeArticleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    content?: boolean
    status?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["knowledgeArticle"]>

  export type KnowledgeArticleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    content?: boolean
    status?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["knowledgeArticle"]>

  export type KnowledgeArticleSelectScalar = {
    id?: boolean
    title?: boolean
    content?: boolean
    status?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type KnowledgeArticleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "title" | "content" | "status" | "createdById" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["knowledgeArticle"]>
  export type KnowledgeArticleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    views?: boolean | KnowledgeArticle$viewsArgs<ExtArgs>
    likes?: boolean | KnowledgeArticle$likesArgs<ExtArgs>
    comments?: boolean | KnowledgeArticle$commentsArgs<ExtArgs>
    _count?: boolean | KnowledgeArticleCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type KnowledgeArticleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type KnowledgeArticleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $KnowledgeArticlePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "KnowledgeArticle"
    objects: {
      createdBy: Prisma.$UserPayload<ExtArgs>
      views: Prisma.$DocumentViewPayload<ExtArgs>[]
      likes: Prisma.$DocumentLikePayload<ExtArgs>[]
      comments: Prisma.$DocumentCommentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      title: string
      content: string
      status: $Enums.KnowledgeArticleStatus
      createdById: string
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["knowledgeArticle"]>
    composites: {}
  }

  type KnowledgeArticleGetPayload<S extends boolean | null | undefined | KnowledgeArticleDefaultArgs> = $Result.GetResult<Prisma.$KnowledgeArticlePayload, S>

  type KnowledgeArticleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<KnowledgeArticleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: KnowledgeArticleCountAggregateInputType | true
    }

  export interface KnowledgeArticleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['KnowledgeArticle'], meta: { name: 'KnowledgeArticle' } }
    /**
     * Find zero or one KnowledgeArticle that matches the filter.
     * @param {KnowledgeArticleFindUniqueArgs} args - Arguments to find a KnowledgeArticle
     * @example
     * // Get one KnowledgeArticle
     * const knowledgeArticle = await prisma.knowledgeArticle.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends KnowledgeArticleFindUniqueArgs>(args: SelectSubset<T, KnowledgeArticleFindUniqueArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one KnowledgeArticle that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {KnowledgeArticleFindUniqueOrThrowArgs} args - Arguments to find a KnowledgeArticle
     * @example
     * // Get one KnowledgeArticle
     * const knowledgeArticle = await prisma.knowledgeArticle.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends KnowledgeArticleFindUniqueOrThrowArgs>(args: SelectSubset<T, KnowledgeArticleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first KnowledgeArticle 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 {KnowledgeArticleFindFirstArgs} args - Arguments to find a KnowledgeArticle
     * @example
     * // Get one KnowledgeArticle
     * const knowledgeArticle = await prisma.knowledgeArticle.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends KnowledgeArticleFindFirstArgs>(args?: SelectSubset<T, KnowledgeArticleFindFirstArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first KnowledgeArticle 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 {KnowledgeArticleFindFirstOrThrowArgs} args - Arguments to find a KnowledgeArticle
     * @example
     * // Get one KnowledgeArticle
     * const knowledgeArticle = await prisma.knowledgeArticle.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends KnowledgeArticleFindFirstOrThrowArgs>(args?: SelectSubset<T, KnowledgeArticleFindFirstOrThrowArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more KnowledgeArticles 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 {KnowledgeArticleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all KnowledgeArticles
     * const knowledgeArticles = await prisma.knowledgeArticle.findMany()
     * 
     * // Get first 10 KnowledgeArticles
     * const knowledgeArticles = await prisma.knowledgeArticle.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const knowledgeArticleWithIdOnly = await prisma.knowledgeArticle.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends KnowledgeArticleFindManyArgs>(args?: SelectSubset<T, KnowledgeArticleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a KnowledgeArticle.
     * @param {KnowledgeArticleCreateArgs} args - Arguments to create a KnowledgeArticle.
     * @example
     * // Create one KnowledgeArticle
     * const KnowledgeArticle = await prisma.knowledgeArticle.create({
     *   data: {
     *     // ... data to create a KnowledgeArticle
     *   }
     * })
     * 
     */
    create<T extends KnowledgeArticleCreateArgs>(args: SelectSubset<T, KnowledgeArticleCreateArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many KnowledgeArticles.
     * @param {KnowledgeArticleCreateManyArgs} args - Arguments to create many KnowledgeArticles.
     * @example
     * // Create many KnowledgeArticles
     * const knowledgeArticle = await prisma.knowledgeArticle.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends KnowledgeArticleCreateManyArgs>(args?: SelectSubset<T, KnowledgeArticleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many KnowledgeArticles and returns the data saved in the database.
     * @param {KnowledgeArticleCreateManyAndReturnArgs} args - Arguments to create many KnowledgeArticles.
     * @example
     * // Create many KnowledgeArticles
     * const knowledgeArticle = await prisma.knowledgeArticle.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many KnowledgeArticles and only return the `id`
     * const knowledgeArticleWithIdOnly = await prisma.knowledgeArticle.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 KnowledgeArticleCreateManyAndReturnArgs>(args?: SelectSubset<T, KnowledgeArticleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a KnowledgeArticle.
     * @param {KnowledgeArticleDeleteArgs} args - Arguments to delete one KnowledgeArticle.
     * @example
     * // Delete one KnowledgeArticle
     * const KnowledgeArticle = await prisma.knowledgeArticle.delete({
     *   where: {
     *     // ... filter to delete one KnowledgeArticle
     *   }
     * })
     * 
     */
    delete<T extends KnowledgeArticleDeleteArgs>(args: SelectSubset<T, KnowledgeArticleDeleteArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one KnowledgeArticle.
     * @param {KnowledgeArticleUpdateArgs} args - Arguments to update one KnowledgeArticle.
     * @example
     * // Update one KnowledgeArticle
     * const knowledgeArticle = await prisma.knowledgeArticle.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends KnowledgeArticleUpdateArgs>(args: SelectSubset<T, KnowledgeArticleUpdateArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more KnowledgeArticles.
     * @param {KnowledgeArticleDeleteManyArgs} args - Arguments to filter KnowledgeArticles to delete.
     * @example
     * // Delete a few KnowledgeArticles
     * const { count } = await prisma.knowledgeArticle.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends KnowledgeArticleDeleteManyArgs>(args?: SelectSubset<T, KnowledgeArticleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more KnowledgeArticles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KnowledgeArticleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many KnowledgeArticles
     * const knowledgeArticle = await prisma.knowledgeArticle.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends KnowledgeArticleUpdateManyArgs>(args: SelectSubset<T, KnowledgeArticleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more KnowledgeArticles and returns the data updated in the database.
     * @param {KnowledgeArticleUpdateManyAndReturnArgs} args - Arguments to update many KnowledgeArticles.
     * @example
     * // Update many KnowledgeArticles
     * const knowledgeArticle = await prisma.knowledgeArticle.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more KnowledgeArticles and only return the `id`
     * const knowledgeArticleWithIdOnly = await prisma.knowledgeArticle.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 KnowledgeArticleUpdateManyAndReturnArgs>(args: SelectSubset<T, KnowledgeArticleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one KnowledgeArticle.
     * @param {KnowledgeArticleUpsertArgs} args - Arguments to update or create a KnowledgeArticle.
     * @example
     * // Update or create a KnowledgeArticle
     * const knowledgeArticle = await prisma.knowledgeArticle.upsert({
     *   create: {
     *     // ... data to create a KnowledgeArticle
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the KnowledgeArticle we want to update
     *   }
     * })
     */
    upsert<T extends KnowledgeArticleUpsertArgs>(args: SelectSubset<T, KnowledgeArticleUpsertArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of KnowledgeArticles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KnowledgeArticleCountArgs} args - Arguments to filter KnowledgeArticles to count.
     * @example
     * // Count the number of KnowledgeArticles
     * const count = await prisma.knowledgeArticle.count({
     *   where: {
     *     // ... the filter for the KnowledgeArticles we want to count
     *   }
     * })
    **/
    count<T extends KnowledgeArticleCountArgs>(
      args?: Subset<T, KnowledgeArticleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], KnowledgeArticleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a KnowledgeArticle.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KnowledgeArticleAggregateArgs} 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 KnowledgeArticleAggregateArgs>(args: Subset<T, KnowledgeArticleAggregateArgs>): Prisma.PrismaPromise<GetKnowledgeArticleAggregateType<T>>

    /**
     * Group by KnowledgeArticle.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KnowledgeArticleGroupByArgs} 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 KnowledgeArticleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: KnowledgeArticleGroupByArgs['orderBy'] }
        : { orderBy?: KnowledgeArticleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, KnowledgeArticleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetKnowledgeArticleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the KnowledgeArticle model
   */
  readonly fields: KnowledgeArticleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for KnowledgeArticle.
   * 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__KnowledgeArticleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    createdBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    views<T extends KnowledgeArticle$viewsArgs<ExtArgs> = {}>(args?: Subset<T, KnowledgeArticle$viewsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    likes<T extends KnowledgeArticle$likesArgs<ExtArgs> = {}>(args?: Subset<T, KnowledgeArticle$likesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    comments<T extends KnowledgeArticle$commentsArgs<ExtArgs> = {}>(args?: Subset<T, KnowledgeArticle$commentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the KnowledgeArticle model
   */
  interface KnowledgeArticleFieldRefs {
    readonly id: FieldRef<"KnowledgeArticle", 'String'>
    readonly title: FieldRef<"KnowledgeArticle", 'String'>
    readonly content: FieldRef<"KnowledgeArticle", 'String'>
    readonly status: FieldRef<"KnowledgeArticle", 'KnowledgeArticleStatus'>
    readonly createdById: FieldRef<"KnowledgeArticle", 'String'>
    readonly createdAt: FieldRef<"KnowledgeArticle", 'DateTime'>
    readonly updatedAt: FieldRef<"KnowledgeArticle", 'DateTime'>
    readonly deletedAt: FieldRef<"KnowledgeArticle", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * KnowledgeArticle findUnique
   */
  export type KnowledgeArticleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * Filter, which KnowledgeArticle to fetch.
     */
    where: KnowledgeArticleWhereUniqueInput
  }

  /**
   * KnowledgeArticle findUniqueOrThrow
   */
  export type KnowledgeArticleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * Filter, which KnowledgeArticle to fetch.
     */
    where: KnowledgeArticleWhereUniqueInput
  }

  /**
   * KnowledgeArticle findFirst
   */
  export type KnowledgeArticleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * Filter, which KnowledgeArticle to fetch.
     */
    where?: KnowledgeArticleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KnowledgeArticles to fetch.
     */
    orderBy?: KnowledgeArticleOrderByWithRelationInput | KnowledgeArticleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for KnowledgeArticles.
     */
    cursor?: KnowledgeArticleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KnowledgeArticles 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` KnowledgeArticles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of KnowledgeArticles.
     */
    distinct?: KnowledgeArticleScalarFieldEnum | KnowledgeArticleScalarFieldEnum[]
  }

  /**
   * KnowledgeArticle findFirstOrThrow
   */
  export type KnowledgeArticleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * Filter, which KnowledgeArticle to fetch.
     */
    where?: KnowledgeArticleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KnowledgeArticles to fetch.
     */
    orderBy?: KnowledgeArticleOrderByWithRelationInput | KnowledgeArticleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for KnowledgeArticles.
     */
    cursor?: KnowledgeArticleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KnowledgeArticles 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` KnowledgeArticles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of KnowledgeArticles.
     */
    distinct?: KnowledgeArticleScalarFieldEnum | KnowledgeArticleScalarFieldEnum[]
  }

  /**
   * KnowledgeArticle findMany
   */
  export type KnowledgeArticleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * Filter, which KnowledgeArticles to fetch.
     */
    where?: KnowledgeArticleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KnowledgeArticles to fetch.
     */
    orderBy?: KnowledgeArticleOrderByWithRelationInput | KnowledgeArticleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing KnowledgeArticles.
     */
    cursor?: KnowledgeArticleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KnowledgeArticles 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` KnowledgeArticles.
     */
    skip?: number
    distinct?: KnowledgeArticleScalarFieldEnum | KnowledgeArticleScalarFieldEnum[]
  }

  /**
   * KnowledgeArticle create
   */
  export type KnowledgeArticleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * The data needed to create a KnowledgeArticle.
     */
    data: XOR<KnowledgeArticleCreateInput, KnowledgeArticleUncheckedCreateInput>
  }

  /**
   * KnowledgeArticle createMany
   */
  export type KnowledgeArticleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many KnowledgeArticles.
     */
    data: KnowledgeArticleCreateManyInput | KnowledgeArticleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * KnowledgeArticle createManyAndReturn
   */
  export type KnowledgeArticleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * The data used to create many KnowledgeArticles.
     */
    data: KnowledgeArticleCreateManyInput | KnowledgeArticleCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * KnowledgeArticle update
   */
  export type KnowledgeArticleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * The data needed to update a KnowledgeArticle.
     */
    data: XOR<KnowledgeArticleUpdateInput, KnowledgeArticleUncheckedUpdateInput>
    /**
     * Choose, which KnowledgeArticle to update.
     */
    where: KnowledgeArticleWhereUniqueInput
  }

  /**
   * KnowledgeArticle updateMany
   */
  export type KnowledgeArticleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update KnowledgeArticles.
     */
    data: XOR<KnowledgeArticleUpdateManyMutationInput, KnowledgeArticleUncheckedUpdateManyInput>
    /**
     * Filter which KnowledgeArticles to update
     */
    where?: KnowledgeArticleWhereInput
    /**
     * Limit how many KnowledgeArticles to update.
     */
    limit?: number
  }

  /**
   * KnowledgeArticle updateManyAndReturn
   */
  export type KnowledgeArticleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * The data used to update KnowledgeArticles.
     */
    data: XOR<KnowledgeArticleUpdateManyMutationInput, KnowledgeArticleUncheckedUpdateManyInput>
    /**
     * Filter which KnowledgeArticles to update
     */
    where?: KnowledgeArticleWhereInput
    /**
     * Limit how many KnowledgeArticles to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * KnowledgeArticle upsert
   */
  export type KnowledgeArticleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * The filter to search for the KnowledgeArticle to update in case it exists.
     */
    where: KnowledgeArticleWhereUniqueInput
    /**
     * In case the KnowledgeArticle found by the `where` argument doesn't exist, create a new KnowledgeArticle with this data.
     */
    create: XOR<KnowledgeArticleCreateInput, KnowledgeArticleUncheckedCreateInput>
    /**
     * In case the KnowledgeArticle was found with the provided `where` argument, update it with this data.
     */
    update: XOR<KnowledgeArticleUpdateInput, KnowledgeArticleUncheckedUpdateInput>
  }

  /**
   * KnowledgeArticle delete
   */
  export type KnowledgeArticleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    /**
     * Filter which KnowledgeArticle to delete.
     */
    where: KnowledgeArticleWhereUniqueInput
  }

  /**
   * KnowledgeArticle deleteMany
   */
  export type KnowledgeArticleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which KnowledgeArticles to delete
     */
    where?: KnowledgeArticleWhereInput
    /**
     * Limit how many KnowledgeArticles to delete.
     */
    limit?: number
  }

  /**
   * KnowledgeArticle.views
   */
  export type KnowledgeArticle$viewsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    where?: DocumentViewWhereInput
    orderBy?: DocumentViewOrderByWithRelationInput | DocumentViewOrderByWithRelationInput[]
    cursor?: DocumentViewWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentViewScalarFieldEnum | DocumentViewScalarFieldEnum[]
  }

  /**
   * KnowledgeArticle.likes
   */
  export type KnowledgeArticle$likesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    where?: DocumentLikeWhereInput
    orderBy?: DocumentLikeOrderByWithRelationInput | DocumentLikeOrderByWithRelationInput[]
    cursor?: DocumentLikeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentLikeScalarFieldEnum | DocumentLikeScalarFieldEnum[]
  }

  /**
   * KnowledgeArticle.comments
   */
  export type KnowledgeArticle$commentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    where?: DocumentCommentWhereInput
    orderBy?: DocumentCommentOrderByWithRelationInput | DocumentCommentOrderByWithRelationInput[]
    cursor?: DocumentCommentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentCommentScalarFieldEnum | DocumentCommentScalarFieldEnum[]
  }

  /**
   * KnowledgeArticle without action
   */
  export type KnowledgeArticleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
  }


  /**
   * Model SPDocumentIndex
   */

  export type AggregateSPDocumentIndex = {
    _count: SPDocumentIndexCountAggregateOutputType | null
    _avg: SPDocumentIndexAvgAggregateOutputType | null
    _sum: SPDocumentIndexSumAggregateOutputType | null
    _min: SPDocumentIndexMinAggregateOutputType | null
    _max: SPDocumentIndexMaxAggregateOutputType | null
  }

  export type SPDocumentIndexAvgAggregateOutputType = {
    size: number | null
  }

  export type SPDocumentIndexSumAggregateOutputType = {
    size: bigint | null
  }

  export type SPDocumentIndexMinAggregateOutputType = {
    id: string | null
    spItemId: string | null
    spDriveId: string | null
    spSiteId: string | null
    title: string | null
    webUrl: string | null
    fileType: string | null
    fileExtension: string | null
    size: bigint | null
    spEtag: string | null
    docAuthorityLevel: $Enums.DocAuthorityLevel | null
    docLifecycleStatus: $Enums.DocLifecycleStatus | null
    docType: $Enums.DocType | null
    createdBy: string | null
    lastModifiedBy: string | null
    spCreatedAt: Date | null
    spModifiedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SPDocumentIndexMaxAggregateOutputType = {
    id: string | null
    spItemId: string | null
    spDriveId: string | null
    spSiteId: string | null
    title: string | null
    webUrl: string | null
    fileType: string | null
    fileExtension: string | null
    size: bigint | null
    spEtag: string | null
    docAuthorityLevel: $Enums.DocAuthorityLevel | null
    docLifecycleStatus: $Enums.DocLifecycleStatus | null
    docType: $Enums.DocType | null
    createdBy: string | null
    lastModifiedBy: string | null
    spCreatedAt: Date | null
    spModifiedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SPDocumentIndexCountAggregateOutputType = {
    id: number
    spItemId: number
    spDriveId: number
    spSiteId: number
    title: number
    webUrl: number
    fileType: number
    fileExtension: number
    size: number
    spEtag: number
    docAuthorityLevel: number
    docLifecycleStatus: number
    docType: number
    createdBy: number
    lastModifiedBy: number
    spCreatedAt: number
    spModifiedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SPDocumentIndexAvgAggregateInputType = {
    size?: true
  }

  export type SPDocumentIndexSumAggregateInputType = {
    size?: true
  }

  export type SPDocumentIndexMinAggregateInputType = {
    id?: true
    spItemId?: true
    spDriveId?: true
    spSiteId?: true
    title?: true
    webUrl?: true
    fileType?: true
    fileExtension?: true
    size?: true
    spEtag?: true
    docAuthorityLevel?: true
    docLifecycleStatus?: true
    docType?: true
    createdBy?: true
    lastModifiedBy?: true
    spCreatedAt?: true
    spModifiedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SPDocumentIndexMaxAggregateInputType = {
    id?: true
    spItemId?: true
    spDriveId?: true
    spSiteId?: true
    title?: true
    webUrl?: true
    fileType?: true
    fileExtension?: true
    size?: true
    spEtag?: true
    docAuthorityLevel?: true
    docLifecycleStatus?: true
    docType?: true
    createdBy?: true
    lastModifiedBy?: true
    spCreatedAt?: true
    spModifiedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SPDocumentIndexCountAggregateInputType = {
    id?: true
    spItemId?: true
    spDriveId?: true
    spSiteId?: true
    title?: true
    webUrl?: true
    fileType?: true
    fileExtension?: true
    size?: true
    spEtag?: true
    docAuthorityLevel?: true
    docLifecycleStatus?: true
    docType?: true
    createdBy?: true
    lastModifiedBy?: true
    spCreatedAt?: true
    spModifiedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SPDocumentIndexAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SPDocumentIndex to aggregate.
     */
    where?: SPDocumentIndexWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SPDocumentIndices to fetch.
     */
    orderBy?: SPDocumentIndexOrderByWithRelationInput | SPDocumentIndexOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SPDocumentIndexWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SPDocumentIndices 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` SPDocumentIndices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SPDocumentIndices
    **/
    _count?: true | SPDocumentIndexCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SPDocumentIndexAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SPDocumentIndexSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SPDocumentIndexMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SPDocumentIndexMaxAggregateInputType
  }

  export type GetSPDocumentIndexAggregateType<T extends SPDocumentIndexAggregateArgs> = {
        [P in keyof T & keyof AggregateSPDocumentIndex]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSPDocumentIndex[P]>
      : GetScalarType<T[P], AggregateSPDocumentIndex[P]>
  }




  export type SPDocumentIndexGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SPDocumentIndexWhereInput
    orderBy?: SPDocumentIndexOrderByWithAggregationInput | SPDocumentIndexOrderByWithAggregationInput[]
    by: SPDocumentIndexScalarFieldEnum[] | SPDocumentIndexScalarFieldEnum
    having?: SPDocumentIndexScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SPDocumentIndexCountAggregateInputType | true
    _avg?: SPDocumentIndexAvgAggregateInputType
    _sum?: SPDocumentIndexSumAggregateInputType
    _min?: SPDocumentIndexMinAggregateInputType
    _max?: SPDocumentIndexMaxAggregateInputType
  }

  export type SPDocumentIndexGroupByOutputType = {
    id: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType: string | null
    fileExtension: string | null
    size: bigint | null
    spEtag: string | null
    docAuthorityLevel: $Enums.DocAuthorityLevel
    docLifecycleStatus: $Enums.DocLifecycleStatus
    docType: $Enums.DocType
    createdBy: string | null
    lastModifiedBy: string | null
    spCreatedAt: Date | null
    spModifiedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: SPDocumentIndexCountAggregateOutputType | null
    _avg: SPDocumentIndexAvgAggregateOutputType | null
    _sum: SPDocumentIndexSumAggregateOutputType | null
    _min: SPDocumentIndexMinAggregateOutputType | null
    _max: SPDocumentIndexMaxAggregateOutputType | null
  }

  type GetSPDocumentIndexGroupByPayload<T extends SPDocumentIndexGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SPDocumentIndexGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SPDocumentIndexGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SPDocumentIndexGroupByOutputType[P]>
            : GetScalarType<T[P], SPDocumentIndexGroupByOutputType[P]>
        }
      >
    >


  export type SPDocumentIndexSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spItemId?: boolean
    spDriveId?: boolean
    spSiteId?: boolean
    title?: boolean
    webUrl?: boolean
    fileType?: boolean
    fileExtension?: boolean
    size?: boolean
    spEtag?: boolean
    docAuthorityLevel?: boolean
    docLifecycleStatus?: boolean
    docType?: boolean
    createdBy?: boolean
    lastModifiedBy?: boolean
    spCreatedAt?: boolean
    spModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    views?: boolean | SPDocumentIndex$viewsArgs<ExtArgs>
    likes?: boolean | SPDocumentIndex$likesArgs<ExtArgs>
    comments?: boolean | SPDocumentIndex$commentsArgs<ExtArgs>
    _count?: boolean | SPDocumentIndexCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["sPDocumentIndex"]>

  export type SPDocumentIndexSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spItemId?: boolean
    spDriveId?: boolean
    spSiteId?: boolean
    title?: boolean
    webUrl?: boolean
    fileType?: boolean
    fileExtension?: boolean
    size?: boolean
    spEtag?: boolean
    docAuthorityLevel?: boolean
    docLifecycleStatus?: boolean
    docType?: boolean
    createdBy?: boolean
    lastModifiedBy?: boolean
    spCreatedAt?: boolean
    spModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sPDocumentIndex"]>

  export type SPDocumentIndexSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spItemId?: boolean
    spDriveId?: boolean
    spSiteId?: boolean
    title?: boolean
    webUrl?: boolean
    fileType?: boolean
    fileExtension?: boolean
    size?: boolean
    spEtag?: boolean
    docAuthorityLevel?: boolean
    docLifecycleStatus?: boolean
    docType?: boolean
    createdBy?: boolean
    lastModifiedBy?: boolean
    spCreatedAt?: boolean
    spModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sPDocumentIndex"]>

  export type SPDocumentIndexSelectScalar = {
    id?: boolean
    spItemId?: boolean
    spDriveId?: boolean
    spSiteId?: boolean
    title?: boolean
    webUrl?: boolean
    fileType?: boolean
    fileExtension?: boolean
    size?: boolean
    spEtag?: boolean
    docAuthorityLevel?: boolean
    docLifecycleStatus?: boolean
    docType?: boolean
    createdBy?: boolean
    lastModifiedBy?: boolean
    spCreatedAt?: boolean
    spModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SPDocumentIndexOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "spItemId" | "spDriveId" | "spSiteId" | "title" | "webUrl" | "fileType" | "fileExtension" | "size" | "spEtag" | "docAuthorityLevel" | "docLifecycleStatus" | "docType" | "createdBy" | "lastModifiedBy" | "spCreatedAt" | "spModifiedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["sPDocumentIndex"]>
  export type SPDocumentIndexInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    views?: boolean | SPDocumentIndex$viewsArgs<ExtArgs>
    likes?: boolean | SPDocumentIndex$likesArgs<ExtArgs>
    comments?: boolean | SPDocumentIndex$commentsArgs<ExtArgs>
    _count?: boolean | SPDocumentIndexCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type SPDocumentIndexIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type SPDocumentIndexIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $SPDocumentIndexPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SPDocumentIndex"
    objects: {
      views: Prisma.$DocumentViewPayload<ExtArgs>[]
      likes: Prisma.$DocumentLikePayload<ExtArgs>[]
      comments: Prisma.$DocumentCommentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      spItemId: string
      spDriveId: string
      spSiteId: string
      title: string
      webUrl: string
      fileType: string | null
      fileExtension: string | null
      size: bigint | null
      spEtag: string | null
      docAuthorityLevel: $Enums.DocAuthorityLevel
      docLifecycleStatus: $Enums.DocLifecycleStatus
      docType: $Enums.DocType
      createdBy: string | null
      lastModifiedBy: string | null
      spCreatedAt: Date | null
      spModifiedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["sPDocumentIndex"]>
    composites: {}
  }

  type SPDocumentIndexGetPayload<S extends boolean | null | undefined | SPDocumentIndexDefaultArgs> = $Result.GetResult<Prisma.$SPDocumentIndexPayload, S>

  type SPDocumentIndexCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SPDocumentIndexFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SPDocumentIndexCountAggregateInputType | true
    }

  export interface SPDocumentIndexDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SPDocumentIndex'], meta: { name: 'SPDocumentIndex' } }
    /**
     * Find zero or one SPDocumentIndex that matches the filter.
     * @param {SPDocumentIndexFindUniqueArgs} args - Arguments to find a SPDocumentIndex
     * @example
     * // Get one SPDocumentIndex
     * const sPDocumentIndex = await prisma.sPDocumentIndex.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SPDocumentIndexFindUniqueArgs>(args: SelectSubset<T, SPDocumentIndexFindUniqueArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SPDocumentIndex that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SPDocumentIndexFindUniqueOrThrowArgs} args - Arguments to find a SPDocumentIndex
     * @example
     * // Get one SPDocumentIndex
     * const sPDocumentIndex = await prisma.sPDocumentIndex.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SPDocumentIndexFindUniqueOrThrowArgs>(args: SelectSubset<T, SPDocumentIndexFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SPDocumentIndex 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 {SPDocumentIndexFindFirstArgs} args - Arguments to find a SPDocumentIndex
     * @example
     * // Get one SPDocumentIndex
     * const sPDocumentIndex = await prisma.sPDocumentIndex.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SPDocumentIndexFindFirstArgs>(args?: SelectSubset<T, SPDocumentIndexFindFirstArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SPDocumentIndex 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 {SPDocumentIndexFindFirstOrThrowArgs} args - Arguments to find a SPDocumentIndex
     * @example
     * // Get one SPDocumentIndex
     * const sPDocumentIndex = await prisma.sPDocumentIndex.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SPDocumentIndexFindFirstOrThrowArgs>(args?: SelectSubset<T, SPDocumentIndexFindFirstOrThrowArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SPDocumentIndices 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 {SPDocumentIndexFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SPDocumentIndices
     * const sPDocumentIndices = await prisma.sPDocumentIndex.findMany()
     * 
     * // Get first 10 SPDocumentIndices
     * const sPDocumentIndices = await prisma.sPDocumentIndex.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const sPDocumentIndexWithIdOnly = await prisma.sPDocumentIndex.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SPDocumentIndexFindManyArgs>(args?: SelectSubset<T, SPDocumentIndexFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SPDocumentIndex.
     * @param {SPDocumentIndexCreateArgs} args - Arguments to create a SPDocumentIndex.
     * @example
     * // Create one SPDocumentIndex
     * const SPDocumentIndex = await prisma.sPDocumentIndex.create({
     *   data: {
     *     // ... data to create a SPDocumentIndex
     *   }
     * })
     * 
     */
    create<T extends SPDocumentIndexCreateArgs>(args: SelectSubset<T, SPDocumentIndexCreateArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SPDocumentIndices.
     * @param {SPDocumentIndexCreateManyArgs} args - Arguments to create many SPDocumentIndices.
     * @example
     * // Create many SPDocumentIndices
     * const sPDocumentIndex = await prisma.sPDocumentIndex.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SPDocumentIndexCreateManyArgs>(args?: SelectSubset<T, SPDocumentIndexCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SPDocumentIndices and returns the data saved in the database.
     * @param {SPDocumentIndexCreateManyAndReturnArgs} args - Arguments to create many SPDocumentIndices.
     * @example
     * // Create many SPDocumentIndices
     * const sPDocumentIndex = await prisma.sPDocumentIndex.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SPDocumentIndices and only return the `id`
     * const sPDocumentIndexWithIdOnly = await prisma.sPDocumentIndex.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 SPDocumentIndexCreateManyAndReturnArgs>(args?: SelectSubset<T, SPDocumentIndexCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SPDocumentIndex.
     * @param {SPDocumentIndexDeleteArgs} args - Arguments to delete one SPDocumentIndex.
     * @example
     * // Delete one SPDocumentIndex
     * const SPDocumentIndex = await prisma.sPDocumentIndex.delete({
     *   where: {
     *     // ... filter to delete one SPDocumentIndex
     *   }
     * })
     * 
     */
    delete<T extends SPDocumentIndexDeleteArgs>(args: SelectSubset<T, SPDocumentIndexDeleteArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SPDocumentIndex.
     * @param {SPDocumentIndexUpdateArgs} args - Arguments to update one SPDocumentIndex.
     * @example
     * // Update one SPDocumentIndex
     * const sPDocumentIndex = await prisma.sPDocumentIndex.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SPDocumentIndexUpdateArgs>(args: SelectSubset<T, SPDocumentIndexUpdateArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SPDocumentIndices.
     * @param {SPDocumentIndexDeleteManyArgs} args - Arguments to filter SPDocumentIndices to delete.
     * @example
     * // Delete a few SPDocumentIndices
     * const { count } = await prisma.sPDocumentIndex.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SPDocumentIndexDeleteManyArgs>(args?: SelectSubset<T, SPDocumentIndexDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SPDocumentIndices.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SPDocumentIndexUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SPDocumentIndices
     * const sPDocumentIndex = await prisma.sPDocumentIndex.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SPDocumentIndexUpdateManyArgs>(args: SelectSubset<T, SPDocumentIndexUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SPDocumentIndices and returns the data updated in the database.
     * @param {SPDocumentIndexUpdateManyAndReturnArgs} args - Arguments to update many SPDocumentIndices.
     * @example
     * // Update many SPDocumentIndices
     * const sPDocumentIndex = await prisma.sPDocumentIndex.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SPDocumentIndices and only return the `id`
     * const sPDocumentIndexWithIdOnly = await prisma.sPDocumentIndex.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 SPDocumentIndexUpdateManyAndReturnArgs>(args: SelectSubset<T, SPDocumentIndexUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SPDocumentIndex.
     * @param {SPDocumentIndexUpsertArgs} args - Arguments to update or create a SPDocumentIndex.
     * @example
     * // Update or create a SPDocumentIndex
     * const sPDocumentIndex = await prisma.sPDocumentIndex.upsert({
     *   create: {
     *     // ... data to create a SPDocumentIndex
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SPDocumentIndex we want to update
     *   }
     * })
     */
    upsert<T extends SPDocumentIndexUpsertArgs>(args: SelectSubset<T, SPDocumentIndexUpsertArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SPDocumentIndices.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SPDocumentIndexCountArgs} args - Arguments to filter SPDocumentIndices to count.
     * @example
     * // Count the number of SPDocumentIndices
     * const count = await prisma.sPDocumentIndex.count({
     *   where: {
     *     // ... the filter for the SPDocumentIndices we want to count
     *   }
     * })
    **/
    count<T extends SPDocumentIndexCountArgs>(
      args?: Subset<T, SPDocumentIndexCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SPDocumentIndexCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SPDocumentIndex.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SPDocumentIndexAggregateArgs} 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 SPDocumentIndexAggregateArgs>(args: Subset<T, SPDocumentIndexAggregateArgs>): Prisma.PrismaPromise<GetSPDocumentIndexAggregateType<T>>

    /**
     * Group by SPDocumentIndex.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SPDocumentIndexGroupByArgs} 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 SPDocumentIndexGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SPDocumentIndexGroupByArgs['orderBy'] }
        : { orderBy?: SPDocumentIndexGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SPDocumentIndexGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSPDocumentIndexGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SPDocumentIndex model
   */
  readonly fields: SPDocumentIndexFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SPDocumentIndex.
   * 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__SPDocumentIndexClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    views<T extends SPDocumentIndex$viewsArgs<ExtArgs> = {}>(args?: Subset<T, SPDocumentIndex$viewsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    likes<T extends SPDocumentIndex$likesArgs<ExtArgs> = {}>(args?: Subset<T, SPDocumentIndex$likesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    comments<T extends SPDocumentIndex$commentsArgs<ExtArgs> = {}>(args?: Subset<T, SPDocumentIndex$commentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SPDocumentIndex model
   */
  interface SPDocumentIndexFieldRefs {
    readonly id: FieldRef<"SPDocumentIndex", 'String'>
    readonly spItemId: FieldRef<"SPDocumentIndex", 'String'>
    readonly spDriveId: FieldRef<"SPDocumentIndex", 'String'>
    readonly spSiteId: FieldRef<"SPDocumentIndex", 'String'>
    readonly title: FieldRef<"SPDocumentIndex", 'String'>
    readonly webUrl: FieldRef<"SPDocumentIndex", 'String'>
    readonly fileType: FieldRef<"SPDocumentIndex", 'String'>
    readonly fileExtension: FieldRef<"SPDocumentIndex", 'String'>
    readonly size: FieldRef<"SPDocumentIndex", 'BigInt'>
    readonly spEtag: FieldRef<"SPDocumentIndex", 'String'>
    readonly docAuthorityLevel: FieldRef<"SPDocumentIndex", 'DocAuthorityLevel'>
    readonly docLifecycleStatus: FieldRef<"SPDocumentIndex", 'DocLifecycleStatus'>
    readonly docType: FieldRef<"SPDocumentIndex", 'DocType'>
    readonly createdBy: FieldRef<"SPDocumentIndex", 'String'>
    readonly lastModifiedBy: FieldRef<"SPDocumentIndex", 'String'>
    readonly spCreatedAt: FieldRef<"SPDocumentIndex", 'DateTime'>
    readonly spModifiedAt: FieldRef<"SPDocumentIndex", 'DateTime'>
    readonly createdAt: FieldRef<"SPDocumentIndex", 'DateTime'>
    readonly updatedAt: FieldRef<"SPDocumentIndex", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SPDocumentIndex findUnique
   */
  export type SPDocumentIndexFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * Filter, which SPDocumentIndex to fetch.
     */
    where: SPDocumentIndexWhereUniqueInput
  }

  /**
   * SPDocumentIndex findUniqueOrThrow
   */
  export type SPDocumentIndexFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * Filter, which SPDocumentIndex to fetch.
     */
    where: SPDocumentIndexWhereUniqueInput
  }

  /**
   * SPDocumentIndex findFirst
   */
  export type SPDocumentIndexFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * Filter, which SPDocumentIndex to fetch.
     */
    where?: SPDocumentIndexWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SPDocumentIndices to fetch.
     */
    orderBy?: SPDocumentIndexOrderByWithRelationInput | SPDocumentIndexOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SPDocumentIndices.
     */
    cursor?: SPDocumentIndexWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SPDocumentIndices 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` SPDocumentIndices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SPDocumentIndices.
     */
    distinct?: SPDocumentIndexScalarFieldEnum | SPDocumentIndexScalarFieldEnum[]
  }

  /**
   * SPDocumentIndex findFirstOrThrow
   */
  export type SPDocumentIndexFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * Filter, which SPDocumentIndex to fetch.
     */
    where?: SPDocumentIndexWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SPDocumentIndices to fetch.
     */
    orderBy?: SPDocumentIndexOrderByWithRelationInput | SPDocumentIndexOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SPDocumentIndices.
     */
    cursor?: SPDocumentIndexWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SPDocumentIndices 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` SPDocumentIndices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SPDocumentIndices.
     */
    distinct?: SPDocumentIndexScalarFieldEnum | SPDocumentIndexScalarFieldEnum[]
  }

  /**
   * SPDocumentIndex findMany
   */
  export type SPDocumentIndexFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * Filter, which SPDocumentIndices to fetch.
     */
    where?: SPDocumentIndexWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SPDocumentIndices to fetch.
     */
    orderBy?: SPDocumentIndexOrderByWithRelationInput | SPDocumentIndexOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SPDocumentIndices.
     */
    cursor?: SPDocumentIndexWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SPDocumentIndices 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` SPDocumentIndices.
     */
    skip?: number
    distinct?: SPDocumentIndexScalarFieldEnum | SPDocumentIndexScalarFieldEnum[]
  }

  /**
   * SPDocumentIndex create
   */
  export type SPDocumentIndexCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * The data needed to create a SPDocumentIndex.
     */
    data: XOR<SPDocumentIndexCreateInput, SPDocumentIndexUncheckedCreateInput>
  }

  /**
   * SPDocumentIndex createMany
   */
  export type SPDocumentIndexCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SPDocumentIndices.
     */
    data: SPDocumentIndexCreateManyInput | SPDocumentIndexCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SPDocumentIndex createManyAndReturn
   */
  export type SPDocumentIndexCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * The data used to create many SPDocumentIndices.
     */
    data: SPDocumentIndexCreateManyInput | SPDocumentIndexCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SPDocumentIndex update
   */
  export type SPDocumentIndexUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * The data needed to update a SPDocumentIndex.
     */
    data: XOR<SPDocumentIndexUpdateInput, SPDocumentIndexUncheckedUpdateInput>
    /**
     * Choose, which SPDocumentIndex to update.
     */
    where: SPDocumentIndexWhereUniqueInput
  }

  /**
   * SPDocumentIndex updateMany
   */
  export type SPDocumentIndexUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SPDocumentIndices.
     */
    data: XOR<SPDocumentIndexUpdateManyMutationInput, SPDocumentIndexUncheckedUpdateManyInput>
    /**
     * Filter which SPDocumentIndices to update
     */
    where?: SPDocumentIndexWhereInput
    /**
     * Limit how many SPDocumentIndices to update.
     */
    limit?: number
  }

  /**
   * SPDocumentIndex updateManyAndReturn
   */
  export type SPDocumentIndexUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * The data used to update SPDocumentIndices.
     */
    data: XOR<SPDocumentIndexUpdateManyMutationInput, SPDocumentIndexUncheckedUpdateManyInput>
    /**
     * Filter which SPDocumentIndices to update
     */
    where?: SPDocumentIndexWhereInput
    /**
     * Limit how many SPDocumentIndices to update.
     */
    limit?: number
  }

  /**
   * SPDocumentIndex upsert
   */
  export type SPDocumentIndexUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * The filter to search for the SPDocumentIndex to update in case it exists.
     */
    where: SPDocumentIndexWhereUniqueInput
    /**
     * In case the SPDocumentIndex found by the `where` argument doesn't exist, create a new SPDocumentIndex with this data.
     */
    create: XOR<SPDocumentIndexCreateInput, SPDocumentIndexUncheckedCreateInput>
    /**
     * In case the SPDocumentIndex was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SPDocumentIndexUpdateInput, SPDocumentIndexUncheckedUpdateInput>
  }

  /**
   * SPDocumentIndex delete
   */
  export type SPDocumentIndexDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    /**
     * Filter which SPDocumentIndex to delete.
     */
    where: SPDocumentIndexWhereUniqueInput
  }

  /**
   * SPDocumentIndex deleteMany
   */
  export type SPDocumentIndexDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SPDocumentIndices to delete
     */
    where?: SPDocumentIndexWhereInput
    /**
     * Limit how many SPDocumentIndices to delete.
     */
    limit?: number
  }

  /**
   * SPDocumentIndex.views
   */
  export type SPDocumentIndex$viewsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    where?: DocumentViewWhereInput
    orderBy?: DocumentViewOrderByWithRelationInput | DocumentViewOrderByWithRelationInput[]
    cursor?: DocumentViewWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentViewScalarFieldEnum | DocumentViewScalarFieldEnum[]
  }

  /**
   * SPDocumentIndex.likes
   */
  export type SPDocumentIndex$likesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    where?: DocumentLikeWhereInput
    orderBy?: DocumentLikeOrderByWithRelationInput | DocumentLikeOrderByWithRelationInput[]
    cursor?: DocumentLikeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentLikeScalarFieldEnum | DocumentLikeScalarFieldEnum[]
  }

  /**
   * SPDocumentIndex.comments
   */
  export type SPDocumentIndex$commentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    where?: DocumentCommentWhereInput
    orderBy?: DocumentCommentOrderByWithRelationInput | DocumentCommentOrderByWithRelationInput[]
    cursor?: DocumentCommentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentCommentScalarFieldEnum | DocumentCommentScalarFieldEnum[]
  }

  /**
   * SPDocumentIndex without action
   */
  export type SPDocumentIndexDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
  }


  /**
   * Model SPFolderIndex
   */

  export type AggregateSPFolderIndex = {
    _count: SPFolderIndexCountAggregateOutputType | null
    _min: SPFolderIndexMinAggregateOutputType | null
    _max: SPFolderIndexMaxAggregateOutputType | null
  }

  export type SPFolderIndexMinAggregateOutputType = {
    id: string | null
    spItemId: string | null
    spDriveId: string | null
    spSiteId: string | null
    title: string | null
    folderPath: string | null
    webUrl: string | null
    createdBy: string | null
    lastModifiedBy: string | null
    spCreatedAt: Date | null
    spModifiedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SPFolderIndexMaxAggregateOutputType = {
    id: string | null
    spItemId: string | null
    spDriveId: string | null
    spSiteId: string | null
    title: string | null
    folderPath: string | null
    webUrl: string | null
    createdBy: string | null
    lastModifiedBy: string | null
    spCreatedAt: Date | null
    spModifiedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SPFolderIndexCountAggregateOutputType = {
    id: number
    spItemId: number
    spDriveId: number
    spSiteId: number
    title: number
    folderPath: number
    webUrl: number
    createdBy: number
    lastModifiedBy: number
    spCreatedAt: number
    spModifiedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SPFolderIndexMinAggregateInputType = {
    id?: true
    spItemId?: true
    spDriveId?: true
    spSiteId?: true
    title?: true
    folderPath?: true
    webUrl?: true
    createdBy?: true
    lastModifiedBy?: true
    spCreatedAt?: true
    spModifiedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SPFolderIndexMaxAggregateInputType = {
    id?: true
    spItemId?: true
    spDriveId?: true
    spSiteId?: true
    title?: true
    folderPath?: true
    webUrl?: true
    createdBy?: true
    lastModifiedBy?: true
    spCreatedAt?: true
    spModifiedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SPFolderIndexCountAggregateInputType = {
    id?: true
    spItemId?: true
    spDriveId?: true
    spSiteId?: true
    title?: true
    folderPath?: true
    webUrl?: true
    createdBy?: true
    lastModifiedBy?: true
    spCreatedAt?: true
    spModifiedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SPFolderIndexAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SPFolderIndex to aggregate.
     */
    where?: SPFolderIndexWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SPFolderIndices to fetch.
     */
    orderBy?: SPFolderIndexOrderByWithRelationInput | SPFolderIndexOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SPFolderIndexWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SPFolderIndices 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` SPFolderIndices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SPFolderIndices
    **/
    _count?: true | SPFolderIndexCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SPFolderIndexMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SPFolderIndexMaxAggregateInputType
  }

  export type GetSPFolderIndexAggregateType<T extends SPFolderIndexAggregateArgs> = {
        [P in keyof T & keyof AggregateSPFolderIndex]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSPFolderIndex[P]>
      : GetScalarType<T[P], AggregateSPFolderIndex[P]>
  }




  export type SPFolderIndexGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SPFolderIndexWhereInput
    orderBy?: SPFolderIndexOrderByWithAggregationInput | SPFolderIndexOrderByWithAggregationInput[]
    by: SPFolderIndexScalarFieldEnum[] | SPFolderIndexScalarFieldEnum
    having?: SPFolderIndexScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SPFolderIndexCountAggregateInputType | true
    _min?: SPFolderIndexMinAggregateInputType
    _max?: SPFolderIndexMaxAggregateInputType
  }

  export type SPFolderIndexGroupByOutputType = {
    id: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    folderPath: string
    webUrl: string
    createdBy: string | null
    lastModifiedBy: string | null
    spCreatedAt: Date | null
    spModifiedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: SPFolderIndexCountAggregateOutputType | null
    _min: SPFolderIndexMinAggregateOutputType | null
    _max: SPFolderIndexMaxAggregateOutputType | null
  }

  type GetSPFolderIndexGroupByPayload<T extends SPFolderIndexGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SPFolderIndexGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SPFolderIndexGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SPFolderIndexGroupByOutputType[P]>
            : GetScalarType<T[P], SPFolderIndexGroupByOutputType[P]>
        }
      >
    >


  export type SPFolderIndexSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spItemId?: boolean
    spDriveId?: boolean
    spSiteId?: boolean
    title?: boolean
    folderPath?: boolean
    webUrl?: boolean
    createdBy?: boolean
    lastModifiedBy?: boolean
    spCreatedAt?: boolean
    spModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sPFolderIndex"]>

  export type SPFolderIndexSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spItemId?: boolean
    spDriveId?: boolean
    spSiteId?: boolean
    title?: boolean
    folderPath?: boolean
    webUrl?: boolean
    createdBy?: boolean
    lastModifiedBy?: boolean
    spCreatedAt?: boolean
    spModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sPFolderIndex"]>

  export type SPFolderIndexSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spItemId?: boolean
    spDriveId?: boolean
    spSiteId?: boolean
    title?: boolean
    folderPath?: boolean
    webUrl?: boolean
    createdBy?: boolean
    lastModifiedBy?: boolean
    spCreatedAt?: boolean
    spModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sPFolderIndex"]>

  export type SPFolderIndexSelectScalar = {
    id?: boolean
    spItemId?: boolean
    spDriveId?: boolean
    spSiteId?: boolean
    title?: boolean
    folderPath?: boolean
    webUrl?: boolean
    createdBy?: boolean
    lastModifiedBy?: boolean
    spCreatedAt?: boolean
    spModifiedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SPFolderIndexOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "spItemId" | "spDriveId" | "spSiteId" | "title" | "folderPath" | "webUrl" | "createdBy" | "lastModifiedBy" | "spCreatedAt" | "spModifiedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["sPFolderIndex"]>

  export type $SPFolderIndexPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SPFolderIndex"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      spItemId: string
      spDriveId: string
      spSiteId: string
      title: string
      folderPath: string
      webUrl: string
      createdBy: string | null
      lastModifiedBy: string | null
      spCreatedAt: Date | null
      spModifiedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["sPFolderIndex"]>
    composites: {}
  }

  type SPFolderIndexGetPayload<S extends boolean | null | undefined | SPFolderIndexDefaultArgs> = $Result.GetResult<Prisma.$SPFolderIndexPayload, S>

  type SPFolderIndexCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SPFolderIndexFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SPFolderIndexCountAggregateInputType | true
    }

  export interface SPFolderIndexDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SPFolderIndex'], meta: { name: 'SPFolderIndex' } }
    /**
     * Find zero or one SPFolderIndex that matches the filter.
     * @param {SPFolderIndexFindUniqueArgs} args - Arguments to find a SPFolderIndex
     * @example
     * // Get one SPFolderIndex
     * const sPFolderIndex = await prisma.sPFolderIndex.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SPFolderIndexFindUniqueArgs>(args: SelectSubset<T, SPFolderIndexFindUniqueArgs<ExtArgs>>): Prisma__SPFolderIndexClient<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SPFolderIndex that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SPFolderIndexFindUniqueOrThrowArgs} args - Arguments to find a SPFolderIndex
     * @example
     * // Get one SPFolderIndex
     * const sPFolderIndex = await prisma.sPFolderIndex.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SPFolderIndexFindUniqueOrThrowArgs>(args: SelectSubset<T, SPFolderIndexFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SPFolderIndexClient<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SPFolderIndex 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 {SPFolderIndexFindFirstArgs} args - Arguments to find a SPFolderIndex
     * @example
     * // Get one SPFolderIndex
     * const sPFolderIndex = await prisma.sPFolderIndex.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SPFolderIndexFindFirstArgs>(args?: SelectSubset<T, SPFolderIndexFindFirstArgs<ExtArgs>>): Prisma__SPFolderIndexClient<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SPFolderIndex 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 {SPFolderIndexFindFirstOrThrowArgs} args - Arguments to find a SPFolderIndex
     * @example
     * // Get one SPFolderIndex
     * const sPFolderIndex = await prisma.sPFolderIndex.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SPFolderIndexFindFirstOrThrowArgs>(args?: SelectSubset<T, SPFolderIndexFindFirstOrThrowArgs<ExtArgs>>): Prisma__SPFolderIndexClient<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SPFolderIndices 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 {SPFolderIndexFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SPFolderIndices
     * const sPFolderIndices = await prisma.sPFolderIndex.findMany()
     * 
     * // Get first 10 SPFolderIndices
     * const sPFolderIndices = await prisma.sPFolderIndex.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const sPFolderIndexWithIdOnly = await prisma.sPFolderIndex.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SPFolderIndexFindManyArgs>(args?: SelectSubset<T, SPFolderIndexFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SPFolderIndex.
     * @param {SPFolderIndexCreateArgs} args - Arguments to create a SPFolderIndex.
     * @example
     * // Create one SPFolderIndex
     * const SPFolderIndex = await prisma.sPFolderIndex.create({
     *   data: {
     *     // ... data to create a SPFolderIndex
     *   }
     * })
     * 
     */
    create<T extends SPFolderIndexCreateArgs>(args: SelectSubset<T, SPFolderIndexCreateArgs<ExtArgs>>): Prisma__SPFolderIndexClient<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SPFolderIndices.
     * @param {SPFolderIndexCreateManyArgs} args - Arguments to create many SPFolderIndices.
     * @example
     * // Create many SPFolderIndices
     * const sPFolderIndex = await prisma.sPFolderIndex.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SPFolderIndexCreateManyArgs>(args?: SelectSubset<T, SPFolderIndexCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SPFolderIndices and returns the data saved in the database.
     * @param {SPFolderIndexCreateManyAndReturnArgs} args - Arguments to create many SPFolderIndices.
     * @example
     * // Create many SPFolderIndices
     * const sPFolderIndex = await prisma.sPFolderIndex.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SPFolderIndices and only return the `id`
     * const sPFolderIndexWithIdOnly = await prisma.sPFolderIndex.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 SPFolderIndexCreateManyAndReturnArgs>(args?: SelectSubset<T, SPFolderIndexCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SPFolderIndex.
     * @param {SPFolderIndexDeleteArgs} args - Arguments to delete one SPFolderIndex.
     * @example
     * // Delete one SPFolderIndex
     * const SPFolderIndex = await prisma.sPFolderIndex.delete({
     *   where: {
     *     // ... filter to delete one SPFolderIndex
     *   }
     * })
     * 
     */
    delete<T extends SPFolderIndexDeleteArgs>(args: SelectSubset<T, SPFolderIndexDeleteArgs<ExtArgs>>): Prisma__SPFolderIndexClient<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SPFolderIndex.
     * @param {SPFolderIndexUpdateArgs} args - Arguments to update one SPFolderIndex.
     * @example
     * // Update one SPFolderIndex
     * const sPFolderIndex = await prisma.sPFolderIndex.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SPFolderIndexUpdateArgs>(args: SelectSubset<T, SPFolderIndexUpdateArgs<ExtArgs>>): Prisma__SPFolderIndexClient<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SPFolderIndices.
     * @param {SPFolderIndexDeleteManyArgs} args - Arguments to filter SPFolderIndices to delete.
     * @example
     * // Delete a few SPFolderIndices
     * const { count } = await prisma.sPFolderIndex.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SPFolderIndexDeleteManyArgs>(args?: SelectSubset<T, SPFolderIndexDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SPFolderIndices.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SPFolderIndexUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SPFolderIndices
     * const sPFolderIndex = await prisma.sPFolderIndex.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SPFolderIndexUpdateManyArgs>(args: SelectSubset<T, SPFolderIndexUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SPFolderIndices and returns the data updated in the database.
     * @param {SPFolderIndexUpdateManyAndReturnArgs} args - Arguments to update many SPFolderIndices.
     * @example
     * // Update many SPFolderIndices
     * const sPFolderIndex = await prisma.sPFolderIndex.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SPFolderIndices and only return the `id`
     * const sPFolderIndexWithIdOnly = await prisma.sPFolderIndex.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 SPFolderIndexUpdateManyAndReturnArgs>(args: SelectSubset<T, SPFolderIndexUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SPFolderIndex.
     * @param {SPFolderIndexUpsertArgs} args - Arguments to update or create a SPFolderIndex.
     * @example
     * // Update or create a SPFolderIndex
     * const sPFolderIndex = await prisma.sPFolderIndex.upsert({
     *   create: {
     *     // ... data to create a SPFolderIndex
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SPFolderIndex we want to update
     *   }
     * })
     */
    upsert<T extends SPFolderIndexUpsertArgs>(args: SelectSubset<T, SPFolderIndexUpsertArgs<ExtArgs>>): Prisma__SPFolderIndexClient<$Result.GetResult<Prisma.$SPFolderIndexPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SPFolderIndices.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SPFolderIndexCountArgs} args - Arguments to filter SPFolderIndices to count.
     * @example
     * // Count the number of SPFolderIndices
     * const count = await prisma.sPFolderIndex.count({
     *   where: {
     *     // ... the filter for the SPFolderIndices we want to count
     *   }
     * })
    **/
    count<T extends SPFolderIndexCountArgs>(
      args?: Subset<T, SPFolderIndexCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SPFolderIndexCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SPFolderIndex.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SPFolderIndexAggregateArgs} 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 SPFolderIndexAggregateArgs>(args: Subset<T, SPFolderIndexAggregateArgs>): Prisma.PrismaPromise<GetSPFolderIndexAggregateType<T>>

    /**
     * Group by SPFolderIndex.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SPFolderIndexGroupByArgs} 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 SPFolderIndexGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SPFolderIndexGroupByArgs['orderBy'] }
        : { orderBy?: SPFolderIndexGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SPFolderIndexGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSPFolderIndexGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SPFolderIndex model
   */
  readonly fields: SPFolderIndexFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SPFolderIndex.
   * 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__SPFolderIndexClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SPFolderIndex model
   */
  interface SPFolderIndexFieldRefs {
    readonly id: FieldRef<"SPFolderIndex", 'String'>
    readonly spItemId: FieldRef<"SPFolderIndex", 'String'>
    readonly spDriveId: FieldRef<"SPFolderIndex", 'String'>
    readonly spSiteId: FieldRef<"SPFolderIndex", 'String'>
    readonly title: FieldRef<"SPFolderIndex", 'String'>
    readonly folderPath: FieldRef<"SPFolderIndex", 'String'>
    readonly webUrl: FieldRef<"SPFolderIndex", 'String'>
    readonly createdBy: FieldRef<"SPFolderIndex", 'String'>
    readonly lastModifiedBy: FieldRef<"SPFolderIndex", 'String'>
    readonly spCreatedAt: FieldRef<"SPFolderIndex", 'DateTime'>
    readonly spModifiedAt: FieldRef<"SPFolderIndex", 'DateTime'>
    readonly createdAt: FieldRef<"SPFolderIndex", 'DateTime'>
    readonly updatedAt: FieldRef<"SPFolderIndex", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SPFolderIndex findUnique
   */
  export type SPFolderIndexFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * Filter, which SPFolderIndex to fetch.
     */
    where: SPFolderIndexWhereUniqueInput
  }

  /**
   * SPFolderIndex findUniqueOrThrow
   */
  export type SPFolderIndexFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * Filter, which SPFolderIndex to fetch.
     */
    where: SPFolderIndexWhereUniqueInput
  }

  /**
   * SPFolderIndex findFirst
   */
  export type SPFolderIndexFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * Filter, which SPFolderIndex to fetch.
     */
    where?: SPFolderIndexWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SPFolderIndices to fetch.
     */
    orderBy?: SPFolderIndexOrderByWithRelationInput | SPFolderIndexOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SPFolderIndices.
     */
    cursor?: SPFolderIndexWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SPFolderIndices 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` SPFolderIndices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SPFolderIndices.
     */
    distinct?: SPFolderIndexScalarFieldEnum | SPFolderIndexScalarFieldEnum[]
  }

  /**
   * SPFolderIndex findFirstOrThrow
   */
  export type SPFolderIndexFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * Filter, which SPFolderIndex to fetch.
     */
    where?: SPFolderIndexWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SPFolderIndices to fetch.
     */
    orderBy?: SPFolderIndexOrderByWithRelationInput | SPFolderIndexOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SPFolderIndices.
     */
    cursor?: SPFolderIndexWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SPFolderIndices 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` SPFolderIndices.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SPFolderIndices.
     */
    distinct?: SPFolderIndexScalarFieldEnum | SPFolderIndexScalarFieldEnum[]
  }

  /**
   * SPFolderIndex findMany
   */
  export type SPFolderIndexFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * Filter, which SPFolderIndices to fetch.
     */
    where?: SPFolderIndexWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SPFolderIndices to fetch.
     */
    orderBy?: SPFolderIndexOrderByWithRelationInput | SPFolderIndexOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SPFolderIndices.
     */
    cursor?: SPFolderIndexWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SPFolderIndices 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` SPFolderIndices.
     */
    skip?: number
    distinct?: SPFolderIndexScalarFieldEnum | SPFolderIndexScalarFieldEnum[]
  }

  /**
   * SPFolderIndex create
   */
  export type SPFolderIndexCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * The data needed to create a SPFolderIndex.
     */
    data: XOR<SPFolderIndexCreateInput, SPFolderIndexUncheckedCreateInput>
  }

  /**
   * SPFolderIndex createMany
   */
  export type SPFolderIndexCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SPFolderIndices.
     */
    data: SPFolderIndexCreateManyInput | SPFolderIndexCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SPFolderIndex createManyAndReturn
   */
  export type SPFolderIndexCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * The data used to create many SPFolderIndices.
     */
    data: SPFolderIndexCreateManyInput | SPFolderIndexCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SPFolderIndex update
   */
  export type SPFolderIndexUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * The data needed to update a SPFolderIndex.
     */
    data: XOR<SPFolderIndexUpdateInput, SPFolderIndexUncheckedUpdateInput>
    /**
     * Choose, which SPFolderIndex to update.
     */
    where: SPFolderIndexWhereUniqueInput
  }

  /**
   * SPFolderIndex updateMany
   */
  export type SPFolderIndexUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SPFolderIndices.
     */
    data: XOR<SPFolderIndexUpdateManyMutationInput, SPFolderIndexUncheckedUpdateManyInput>
    /**
     * Filter which SPFolderIndices to update
     */
    where?: SPFolderIndexWhereInput
    /**
     * Limit how many SPFolderIndices to update.
     */
    limit?: number
  }

  /**
   * SPFolderIndex updateManyAndReturn
   */
  export type SPFolderIndexUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * The data used to update SPFolderIndices.
     */
    data: XOR<SPFolderIndexUpdateManyMutationInput, SPFolderIndexUncheckedUpdateManyInput>
    /**
     * Filter which SPFolderIndices to update
     */
    where?: SPFolderIndexWhereInput
    /**
     * Limit how many SPFolderIndices to update.
     */
    limit?: number
  }

  /**
   * SPFolderIndex upsert
   */
  export type SPFolderIndexUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * The filter to search for the SPFolderIndex to update in case it exists.
     */
    where: SPFolderIndexWhereUniqueInput
    /**
     * In case the SPFolderIndex found by the `where` argument doesn't exist, create a new SPFolderIndex with this data.
     */
    create: XOR<SPFolderIndexCreateInput, SPFolderIndexUncheckedCreateInput>
    /**
     * In case the SPFolderIndex was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SPFolderIndexUpdateInput, SPFolderIndexUncheckedUpdateInput>
  }

  /**
   * SPFolderIndex delete
   */
  export type SPFolderIndexDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
    /**
     * Filter which SPFolderIndex to delete.
     */
    where: SPFolderIndexWhereUniqueInput
  }

  /**
   * SPFolderIndex deleteMany
   */
  export type SPFolderIndexDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SPFolderIndices to delete
     */
    where?: SPFolderIndexWhereInput
    /**
     * Limit how many SPFolderIndices to delete.
     */
    limit?: number
  }

  /**
   * SPFolderIndex without action
   */
  export type SPFolderIndexDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPFolderIndex
     */
    select?: SPFolderIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPFolderIndex
     */
    omit?: SPFolderIndexOmit<ExtArgs> | null
  }


  /**
   * Model RagflowDocument
   */

  export type AggregateRagflowDocument = {
    _count: RagflowDocumentCountAggregateOutputType | null
    _min: RagflowDocumentMinAggregateOutputType | null
    _max: RagflowDocumentMaxAggregateOutputType | null
  }

  export type RagflowDocumentMinAggregateOutputType = {
    id: string | null
    sourceType: $Enums.RagflowSourceType | null
    sourceId: string | null
    ragflowDocumentId: string | null
    datasetId: string | null
    contentHash: string | null
    status: $Enums.SyncStatus | null
    syncError: string | null
    lastSyncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type RagflowDocumentMaxAggregateOutputType = {
    id: string | null
    sourceType: $Enums.RagflowSourceType | null
    sourceId: string | null
    ragflowDocumentId: string | null
    datasetId: string | null
    contentHash: string | null
    status: $Enums.SyncStatus | null
    syncError: string | null
    lastSyncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type RagflowDocumentCountAggregateOutputType = {
    id: number
    sourceType: number
    sourceId: number
    ragflowDocumentId: number
    datasetId: number
    contentHash: number
    status: number
    syncError: number
    lastSyncedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type RagflowDocumentMinAggregateInputType = {
    id?: true
    sourceType?: true
    sourceId?: true
    ragflowDocumentId?: true
    datasetId?: true
    contentHash?: true
    status?: true
    syncError?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type RagflowDocumentMaxAggregateInputType = {
    id?: true
    sourceType?: true
    sourceId?: true
    ragflowDocumentId?: true
    datasetId?: true
    contentHash?: true
    status?: true
    syncError?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type RagflowDocumentCountAggregateInputType = {
    id?: true
    sourceType?: true
    sourceId?: true
    ragflowDocumentId?: true
    datasetId?: true
    contentHash?: true
    status?: true
    syncError?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type RagflowDocumentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RagflowDocument to aggregate.
     */
    where?: RagflowDocumentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RagflowDocuments to fetch.
     */
    orderBy?: RagflowDocumentOrderByWithRelationInput | RagflowDocumentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RagflowDocumentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RagflowDocuments 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` RagflowDocuments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RagflowDocuments
    **/
    _count?: true | RagflowDocumentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RagflowDocumentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RagflowDocumentMaxAggregateInputType
  }

  export type GetRagflowDocumentAggregateType<T extends RagflowDocumentAggregateArgs> = {
        [P in keyof T & keyof AggregateRagflowDocument]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRagflowDocument[P]>
      : GetScalarType<T[P], AggregateRagflowDocument[P]>
  }




  export type RagflowDocumentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RagflowDocumentWhereInput
    orderBy?: RagflowDocumentOrderByWithAggregationInput | RagflowDocumentOrderByWithAggregationInput[]
    by: RagflowDocumentScalarFieldEnum[] | RagflowDocumentScalarFieldEnum
    having?: RagflowDocumentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RagflowDocumentCountAggregateInputType | true
    _min?: RagflowDocumentMinAggregateInputType
    _max?: RagflowDocumentMaxAggregateInputType
  }

  export type RagflowDocumentGroupByOutputType = {
    id: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    ragflowDocumentId: string
    datasetId: string
    contentHash: string
    status: $Enums.SyncStatus
    syncError: string | null
    lastSyncedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: RagflowDocumentCountAggregateOutputType | null
    _min: RagflowDocumentMinAggregateOutputType | null
    _max: RagflowDocumentMaxAggregateOutputType | null
  }

  type GetRagflowDocumentGroupByPayload<T extends RagflowDocumentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RagflowDocumentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RagflowDocumentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RagflowDocumentGroupByOutputType[P]>
            : GetScalarType<T[P], RagflowDocumentGroupByOutputType[P]>
        }
      >
    >


  export type RagflowDocumentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sourceType?: boolean
    sourceId?: boolean
    ragflowDocumentId?: boolean
    datasetId?: boolean
    contentHash?: boolean
    status?: boolean
    syncError?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["ragflowDocument"]>

  export type RagflowDocumentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sourceType?: boolean
    sourceId?: boolean
    ragflowDocumentId?: boolean
    datasetId?: boolean
    contentHash?: boolean
    status?: boolean
    syncError?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["ragflowDocument"]>

  export type RagflowDocumentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sourceType?: boolean
    sourceId?: boolean
    ragflowDocumentId?: boolean
    datasetId?: boolean
    contentHash?: boolean
    status?: boolean
    syncError?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["ragflowDocument"]>

  export type RagflowDocumentSelectScalar = {
    id?: boolean
    sourceType?: boolean
    sourceId?: boolean
    ragflowDocumentId?: boolean
    datasetId?: boolean
    contentHash?: boolean
    status?: boolean
    syncError?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type RagflowDocumentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "sourceType" | "sourceId" | "ragflowDocumentId" | "datasetId" | "contentHash" | "status" | "syncError" | "lastSyncedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["ragflowDocument"]>

  export type $RagflowDocumentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RagflowDocument"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      sourceType: $Enums.RagflowSourceType
      sourceId: string
      ragflowDocumentId: string
      datasetId: string
      contentHash: string
      status: $Enums.SyncStatus
      syncError: string | null
      lastSyncedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["ragflowDocument"]>
    composites: {}
  }

  type RagflowDocumentGetPayload<S extends boolean | null | undefined | RagflowDocumentDefaultArgs> = $Result.GetResult<Prisma.$RagflowDocumentPayload, S>

  type RagflowDocumentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RagflowDocumentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RagflowDocumentCountAggregateInputType | true
    }

  export interface RagflowDocumentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RagflowDocument'], meta: { name: 'RagflowDocument' } }
    /**
     * Find zero or one RagflowDocument that matches the filter.
     * @param {RagflowDocumentFindUniqueArgs} args - Arguments to find a RagflowDocument
     * @example
     * // Get one RagflowDocument
     * const ragflowDocument = await prisma.ragflowDocument.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RagflowDocumentFindUniqueArgs>(args: SelectSubset<T, RagflowDocumentFindUniqueArgs<ExtArgs>>): Prisma__RagflowDocumentClient<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RagflowDocument that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RagflowDocumentFindUniqueOrThrowArgs} args - Arguments to find a RagflowDocument
     * @example
     * // Get one RagflowDocument
     * const ragflowDocument = await prisma.ragflowDocument.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RagflowDocumentFindUniqueOrThrowArgs>(args: SelectSubset<T, RagflowDocumentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RagflowDocumentClient<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RagflowDocument 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 {RagflowDocumentFindFirstArgs} args - Arguments to find a RagflowDocument
     * @example
     * // Get one RagflowDocument
     * const ragflowDocument = await prisma.ragflowDocument.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RagflowDocumentFindFirstArgs>(args?: SelectSubset<T, RagflowDocumentFindFirstArgs<ExtArgs>>): Prisma__RagflowDocumentClient<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RagflowDocument 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 {RagflowDocumentFindFirstOrThrowArgs} args - Arguments to find a RagflowDocument
     * @example
     * // Get one RagflowDocument
     * const ragflowDocument = await prisma.ragflowDocument.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RagflowDocumentFindFirstOrThrowArgs>(args?: SelectSubset<T, RagflowDocumentFindFirstOrThrowArgs<ExtArgs>>): Prisma__RagflowDocumentClient<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RagflowDocuments 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 {RagflowDocumentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RagflowDocuments
     * const ragflowDocuments = await prisma.ragflowDocument.findMany()
     * 
     * // Get first 10 RagflowDocuments
     * const ragflowDocuments = await prisma.ragflowDocument.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const ragflowDocumentWithIdOnly = await prisma.ragflowDocument.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RagflowDocumentFindManyArgs>(args?: SelectSubset<T, RagflowDocumentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RagflowDocument.
     * @param {RagflowDocumentCreateArgs} args - Arguments to create a RagflowDocument.
     * @example
     * // Create one RagflowDocument
     * const RagflowDocument = await prisma.ragflowDocument.create({
     *   data: {
     *     // ... data to create a RagflowDocument
     *   }
     * })
     * 
     */
    create<T extends RagflowDocumentCreateArgs>(args: SelectSubset<T, RagflowDocumentCreateArgs<ExtArgs>>): Prisma__RagflowDocumentClient<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RagflowDocuments.
     * @param {RagflowDocumentCreateManyArgs} args - Arguments to create many RagflowDocuments.
     * @example
     * // Create many RagflowDocuments
     * const ragflowDocument = await prisma.ragflowDocument.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RagflowDocumentCreateManyArgs>(args?: SelectSubset<T, RagflowDocumentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RagflowDocuments and returns the data saved in the database.
     * @param {RagflowDocumentCreateManyAndReturnArgs} args - Arguments to create many RagflowDocuments.
     * @example
     * // Create many RagflowDocuments
     * const ragflowDocument = await prisma.ragflowDocument.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RagflowDocuments and only return the `id`
     * const ragflowDocumentWithIdOnly = await prisma.ragflowDocument.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 RagflowDocumentCreateManyAndReturnArgs>(args?: SelectSubset<T, RagflowDocumentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RagflowDocument.
     * @param {RagflowDocumentDeleteArgs} args - Arguments to delete one RagflowDocument.
     * @example
     * // Delete one RagflowDocument
     * const RagflowDocument = await prisma.ragflowDocument.delete({
     *   where: {
     *     // ... filter to delete one RagflowDocument
     *   }
     * })
     * 
     */
    delete<T extends RagflowDocumentDeleteArgs>(args: SelectSubset<T, RagflowDocumentDeleteArgs<ExtArgs>>): Prisma__RagflowDocumentClient<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RagflowDocument.
     * @param {RagflowDocumentUpdateArgs} args - Arguments to update one RagflowDocument.
     * @example
     * // Update one RagflowDocument
     * const ragflowDocument = await prisma.ragflowDocument.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RagflowDocumentUpdateArgs>(args: SelectSubset<T, RagflowDocumentUpdateArgs<ExtArgs>>): Prisma__RagflowDocumentClient<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RagflowDocuments.
     * @param {RagflowDocumentDeleteManyArgs} args - Arguments to filter RagflowDocuments to delete.
     * @example
     * // Delete a few RagflowDocuments
     * const { count } = await prisma.ragflowDocument.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RagflowDocumentDeleteManyArgs>(args?: SelectSubset<T, RagflowDocumentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RagflowDocuments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RagflowDocumentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RagflowDocuments
     * const ragflowDocument = await prisma.ragflowDocument.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RagflowDocumentUpdateManyArgs>(args: SelectSubset<T, RagflowDocumentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RagflowDocuments and returns the data updated in the database.
     * @param {RagflowDocumentUpdateManyAndReturnArgs} args - Arguments to update many RagflowDocuments.
     * @example
     * // Update many RagflowDocuments
     * const ragflowDocument = await prisma.ragflowDocument.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RagflowDocuments and only return the `id`
     * const ragflowDocumentWithIdOnly = await prisma.ragflowDocument.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 RagflowDocumentUpdateManyAndReturnArgs>(args: SelectSubset<T, RagflowDocumentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RagflowDocument.
     * @param {RagflowDocumentUpsertArgs} args - Arguments to update or create a RagflowDocument.
     * @example
     * // Update or create a RagflowDocument
     * const ragflowDocument = await prisma.ragflowDocument.upsert({
     *   create: {
     *     // ... data to create a RagflowDocument
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RagflowDocument we want to update
     *   }
     * })
     */
    upsert<T extends RagflowDocumentUpsertArgs>(args: SelectSubset<T, RagflowDocumentUpsertArgs<ExtArgs>>): Prisma__RagflowDocumentClient<$Result.GetResult<Prisma.$RagflowDocumentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RagflowDocuments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RagflowDocumentCountArgs} args - Arguments to filter RagflowDocuments to count.
     * @example
     * // Count the number of RagflowDocuments
     * const count = await prisma.ragflowDocument.count({
     *   where: {
     *     // ... the filter for the RagflowDocuments we want to count
     *   }
     * })
    **/
    count<T extends RagflowDocumentCountArgs>(
      args?: Subset<T, RagflowDocumentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RagflowDocumentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RagflowDocument.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RagflowDocumentAggregateArgs} 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 RagflowDocumentAggregateArgs>(args: Subset<T, RagflowDocumentAggregateArgs>): Prisma.PrismaPromise<GetRagflowDocumentAggregateType<T>>

    /**
     * Group by RagflowDocument.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RagflowDocumentGroupByArgs} 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 RagflowDocumentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RagflowDocumentGroupByArgs['orderBy'] }
        : { orderBy?: RagflowDocumentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RagflowDocumentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRagflowDocumentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RagflowDocument model
   */
  readonly fields: RagflowDocumentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RagflowDocument.
   * 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__RagflowDocumentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RagflowDocument model
   */
  interface RagflowDocumentFieldRefs {
    readonly id: FieldRef<"RagflowDocument", 'String'>
    readonly sourceType: FieldRef<"RagflowDocument", 'RagflowSourceType'>
    readonly sourceId: FieldRef<"RagflowDocument", 'String'>
    readonly ragflowDocumentId: FieldRef<"RagflowDocument", 'String'>
    readonly datasetId: FieldRef<"RagflowDocument", 'String'>
    readonly contentHash: FieldRef<"RagflowDocument", 'String'>
    readonly status: FieldRef<"RagflowDocument", 'SyncStatus'>
    readonly syncError: FieldRef<"RagflowDocument", 'String'>
    readonly lastSyncedAt: FieldRef<"RagflowDocument", 'DateTime'>
    readonly createdAt: FieldRef<"RagflowDocument", 'DateTime'>
    readonly updatedAt: FieldRef<"RagflowDocument", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RagflowDocument findUnique
   */
  export type RagflowDocumentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * Filter, which RagflowDocument to fetch.
     */
    where: RagflowDocumentWhereUniqueInput
  }

  /**
   * RagflowDocument findUniqueOrThrow
   */
  export type RagflowDocumentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * Filter, which RagflowDocument to fetch.
     */
    where: RagflowDocumentWhereUniqueInput
  }

  /**
   * RagflowDocument findFirst
   */
  export type RagflowDocumentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * Filter, which RagflowDocument to fetch.
     */
    where?: RagflowDocumentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RagflowDocuments to fetch.
     */
    orderBy?: RagflowDocumentOrderByWithRelationInput | RagflowDocumentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RagflowDocuments.
     */
    cursor?: RagflowDocumentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RagflowDocuments 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` RagflowDocuments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RagflowDocuments.
     */
    distinct?: RagflowDocumentScalarFieldEnum | RagflowDocumentScalarFieldEnum[]
  }

  /**
   * RagflowDocument findFirstOrThrow
   */
  export type RagflowDocumentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * Filter, which RagflowDocument to fetch.
     */
    where?: RagflowDocumentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RagflowDocuments to fetch.
     */
    orderBy?: RagflowDocumentOrderByWithRelationInput | RagflowDocumentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RagflowDocuments.
     */
    cursor?: RagflowDocumentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RagflowDocuments 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` RagflowDocuments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RagflowDocuments.
     */
    distinct?: RagflowDocumentScalarFieldEnum | RagflowDocumentScalarFieldEnum[]
  }

  /**
   * RagflowDocument findMany
   */
  export type RagflowDocumentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * Filter, which RagflowDocuments to fetch.
     */
    where?: RagflowDocumentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RagflowDocuments to fetch.
     */
    orderBy?: RagflowDocumentOrderByWithRelationInput | RagflowDocumentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RagflowDocuments.
     */
    cursor?: RagflowDocumentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RagflowDocuments 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` RagflowDocuments.
     */
    skip?: number
    distinct?: RagflowDocumentScalarFieldEnum | RagflowDocumentScalarFieldEnum[]
  }

  /**
   * RagflowDocument create
   */
  export type RagflowDocumentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * The data needed to create a RagflowDocument.
     */
    data: XOR<RagflowDocumentCreateInput, RagflowDocumentUncheckedCreateInput>
  }

  /**
   * RagflowDocument createMany
   */
  export type RagflowDocumentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RagflowDocuments.
     */
    data: RagflowDocumentCreateManyInput | RagflowDocumentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RagflowDocument createManyAndReturn
   */
  export type RagflowDocumentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * The data used to create many RagflowDocuments.
     */
    data: RagflowDocumentCreateManyInput | RagflowDocumentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RagflowDocument update
   */
  export type RagflowDocumentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * The data needed to update a RagflowDocument.
     */
    data: XOR<RagflowDocumentUpdateInput, RagflowDocumentUncheckedUpdateInput>
    /**
     * Choose, which RagflowDocument to update.
     */
    where: RagflowDocumentWhereUniqueInput
  }

  /**
   * RagflowDocument updateMany
   */
  export type RagflowDocumentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RagflowDocuments.
     */
    data: XOR<RagflowDocumentUpdateManyMutationInput, RagflowDocumentUncheckedUpdateManyInput>
    /**
     * Filter which RagflowDocuments to update
     */
    where?: RagflowDocumentWhereInput
    /**
     * Limit how many RagflowDocuments to update.
     */
    limit?: number
  }

  /**
   * RagflowDocument updateManyAndReturn
   */
  export type RagflowDocumentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * The data used to update RagflowDocuments.
     */
    data: XOR<RagflowDocumentUpdateManyMutationInput, RagflowDocumentUncheckedUpdateManyInput>
    /**
     * Filter which RagflowDocuments to update
     */
    where?: RagflowDocumentWhereInput
    /**
     * Limit how many RagflowDocuments to update.
     */
    limit?: number
  }

  /**
   * RagflowDocument upsert
   */
  export type RagflowDocumentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * The filter to search for the RagflowDocument to update in case it exists.
     */
    where: RagflowDocumentWhereUniqueInput
    /**
     * In case the RagflowDocument found by the `where` argument doesn't exist, create a new RagflowDocument with this data.
     */
    create: XOR<RagflowDocumentCreateInput, RagflowDocumentUncheckedCreateInput>
    /**
     * In case the RagflowDocument was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RagflowDocumentUpdateInput, RagflowDocumentUncheckedUpdateInput>
  }

  /**
   * RagflowDocument delete
   */
  export type RagflowDocumentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
    /**
     * Filter which RagflowDocument to delete.
     */
    where: RagflowDocumentWhereUniqueInput
  }

  /**
   * RagflowDocument deleteMany
   */
  export type RagflowDocumentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RagflowDocuments to delete
     */
    where?: RagflowDocumentWhereInput
    /**
     * Limit how many RagflowDocuments to delete.
     */
    limit?: number
  }

  /**
   * RagflowDocument without action
   */
  export type RagflowDocumentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RagflowDocument
     */
    select?: RagflowDocumentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RagflowDocument
     */
    omit?: RagflowDocumentOmit<ExtArgs> | null
  }


  /**
   * Model AIQALog
   */

  export type AggregateAIQALog = {
    _count: AIQALogCountAggregateOutputType | null
    _avg: AIQALogAvgAggregateOutputType | null
    _sum: AIQALogSumAggregateOutputType | null
    _min: AIQALogMinAggregateOutputType | null
    _max: AIQALogMaxAggregateOutputType | null
  }

  export type AIQALogAvgAggregateOutputType = {
    confidence: number | null
    tokensUsed: number | null
    cost: number | null
    responseTimeMs: number | null
  }

  export type AIQALogSumAggregateOutputType = {
    confidence: number | null
    tokensUsed: number | null
    cost: number | null
    responseTimeMs: number | null
  }

  export type AIQALogMinAggregateOutputType = {
    id: string | null
    userId: string | null
    question: string | null
    answer: string | null
    confidence: number | null
    modelUsed: string | null
    tokensUsed: number | null
    cost: number | null
    responseTimeMs: number | null
    feedback: $Enums.QAFeedback | null
    feedbackComment: string | null
    createdAt: Date | null
  }

  export type AIQALogMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    question: string | null
    answer: string | null
    confidence: number | null
    modelUsed: string | null
    tokensUsed: number | null
    cost: number | null
    responseTimeMs: number | null
    feedback: $Enums.QAFeedback | null
    feedbackComment: string | null
    createdAt: Date | null
  }

  export type AIQALogCountAggregateOutputType = {
    id: number
    userId: number
    question: number
    answer: number
    sourceDocuments: number
    confidence: number
    modelUsed: number
    tokensUsed: number
    cost: number
    responseTimeMs: number
    feedback: number
    feedbackComment: number
    createdAt: number
    _all: number
  }


  export type AIQALogAvgAggregateInputType = {
    confidence?: true
    tokensUsed?: true
    cost?: true
    responseTimeMs?: true
  }

  export type AIQALogSumAggregateInputType = {
    confidence?: true
    tokensUsed?: true
    cost?: true
    responseTimeMs?: true
  }

  export type AIQALogMinAggregateInputType = {
    id?: true
    userId?: true
    question?: true
    answer?: true
    confidence?: true
    modelUsed?: true
    tokensUsed?: true
    cost?: true
    responseTimeMs?: true
    feedback?: true
    feedbackComment?: true
    createdAt?: true
  }

  export type AIQALogMaxAggregateInputType = {
    id?: true
    userId?: true
    question?: true
    answer?: true
    confidence?: true
    modelUsed?: true
    tokensUsed?: true
    cost?: true
    responseTimeMs?: true
    feedback?: true
    feedbackComment?: true
    createdAt?: true
  }

  export type AIQALogCountAggregateInputType = {
    id?: true
    userId?: true
    question?: true
    answer?: true
    sourceDocuments?: true
    confidence?: true
    modelUsed?: true
    tokensUsed?: true
    cost?: true
    responseTimeMs?: true
    feedback?: true
    feedbackComment?: true
    createdAt?: true
    _all?: true
  }

  export type AIQALogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIQALog to aggregate.
     */
    where?: AIQALogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIQALogs to fetch.
     */
    orderBy?: AIQALogOrderByWithRelationInput | AIQALogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AIQALogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIQALogs 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` AIQALogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AIQALogs
    **/
    _count?: true | AIQALogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AIQALogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AIQALogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AIQALogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AIQALogMaxAggregateInputType
  }

  export type GetAIQALogAggregateType<T extends AIQALogAggregateArgs> = {
        [P in keyof T & keyof AggregateAIQALog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAIQALog[P]>
      : GetScalarType<T[P], AggregateAIQALog[P]>
  }




  export type AIQALogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AIQALogWhereInput
    orderBy?: AIQALogOrderByWithAggregationInput | AIQALogOrderByWithAggregationInput[]
    by: AIQALogScalarFieldEnum[] | AIQALogScalarFieldEnum
    having?: AIQALogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AIQALogCountAggregateInputType | true
    _avg?: AIQALogAvgAggregateInputType
    _sum?: AIQALogSumAggregateInputType
    _min?: AIQALogMinAggregateInputType
    _max?: AIQALogMaxAggregateInputType
  }

  export type AIQALogGroupByOutputType = {
    id: string
    userId: string
    question: string
    answer: string
    sourceDocuments: JsonValue | null
    confidence: number | null
    modelUsed: string | null
    tokensUsed: number | null
    cost: number | null
    responseTimeMs: number | null
    feedback: $Enums.QAFeedback | null
    feedbackComment: string | null
    createdAt: Date
    _count: AIQALogCountAggregateOutputType | null
    _avg: AIQALogAvgAggregateOutputType | null
    _sum: AIQALogSumAggregateOutputType | null
    _min: AIQALogMinAggregateOutputType | null
    _max: AIQALogMaxAggregateOutputType | null
  }

  type GetAIQALogGroupByPayload<T extends AIQALogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AIQALogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AIQALogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AIQALogGroupByOutputType[P]>
            : GetScalarType<T[P], AIQALogGroupByOutputType[P]>
        }
      >
    >


  export type AIQALogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    question?: boolean
    answer?: boolean
    sourceDocuments?: boolean
    confidence?: boolean
    modelUsed?: boolean
    tokensUsed?: boolean
    cost?: boolean
    responseTimeMs?: boolean
    feedback?: boolean
    feedbackComment?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIQALog"]>

  export type AIQALogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    question?: boolean
    answer?: boolean
    sourceDocuments?: boolean
    confidence?: boolean
    modelUsed?: boolean
    tokensUsed?: boolean
    cost?: boolean
    responseTimeMs?: boolean
    feedback?: boolean
    feedbackComment?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIQALog"]>

  export type AIQALogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    question?: boolean
    answer?: boolean
    sourceDocuments?: boolean
    confidence?: boolean
    modelUsed?: boolean
    tokensUsed?: boolean
    cost?: boolean
    responseTimeMs?: boolean
    feedback?: boolean
    feedbackComment?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["aIQALog"]>

  export type AIQALogSelectScalar = {
    id?: boolean
    userId?: boolean
    question?: boolean
    answer?: boolean
    sourceDocuments?: boolean
    confidence?: boolean
    modelUsed?: boolean
    tokensUsed?: boolean
    cost?: boolean
    responseTimeMs?: boolean
    feedback?: boolean
    feedbackComment?: boolean
    createdAt?: boolean
  }

  export type AIQALogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "question" | "answer" | "sourceDocuments" | "confidence" | "modelUsed" | "tokensUsed" | "cost" | "responseTimeMs" | "feedback" | "feedbackComment" | "createdAt", ExtArgs["result"]["aIQALog"]>
  export type AIQALogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type AIQALogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type AIQALogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $AIQALogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AIQALog"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      question: string
      answer: string
      sourceDocuments: Prisma.JsonValue | null
      confidence: number | null
      modelUsed: string | null
      tokensUsed: number | null
      cost: number | null
      responseTimeMs: number | null
      feedback: $Enums.QAFeedback | null
      feedbackComment: string | null
      createdAt: Date
    }, ExtArgs["result"]["aIQALog"]>
    composites: {}
  }

  type AIQALogGetPayload<S extends boolean | null | undefined | AIQALogDefaultArgs> = $Result.GetResult<Prisma.$AIQALogPayload, S>

  type AIQALogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AIQALogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AIQALogCountAggregateInputType | true
    }

  export interface AIQALogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AIQALog'], meta: { name: 'AIQALog' } }
    /**
     * Find zero or one AIQALog that matches the filter.
     * @param {AIQALogFindUniqueArgs} args - Arguments to find a AIQALog
     * @example
     * // Get one AIQALog
     * const aIQALog = await prisma.aIQALog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AIQALogFindUniqueArgs>(args: SelectSubset<T, AIQALogFindUniqueArgs<ExtArgs>>): Prisma__AIQALogClient<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AIQALog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AIQALogFindUniqueOrThrowArgs} args - Arguments to find a AIQALog
     * @example
     * // Get one AIQALog
     * const aIQALog = await prisma.aIQALog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AIQALogFindUniqueOrThrowArgs>(args: SelectSubset<T, AIQALogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AIQALogClient<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIQALog 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 {AIQALogFindFirstArgs} args - Arguments to find a AIQALog
     * @example
     * // Get one AIQALog
     * const aIQALog = await prisma.aIQALog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AIQALogFindFirstArgs>(args?: SelectSubset<T, AIQALogFindFirstArgs<ExtArgs>>): Prisma__AIQALogClient<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AIQALog 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 {AIQALogFindFirstOrThrowArgs} args - Arguments to find a AIQALog
     * @example
     * // Get one AIQALog
     * const aIQALog = await prisma.aIQALog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AIQALogFindFirstOrThrowArgs>(args?: SelectSubset<T, AIQALogFindFirstOrThrowArgs<ExtArgs>>): Prisma__AIQALogClient<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AIQALogs 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 {AIQALogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AIQALogs
     * const aIQALogs = await prisma.aIQALog.findMany()
     * 
     * // Get first 10 AIQALogs
     * const aIQALogs = await prisma.aIQALog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const aIQALogWithIdOnly = await prisma.aIQALog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AIQALogFindManyArgs>(args?: SelectSubset<T, AIQALogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AIQALog.
     * @param {AIQALogCreateArgs} args - Arguments to create a AIQALog.
     * @example
     * // Create one AIQALog
     * const AIQALog = await prisma.aIQALog.create({
     *   data: {
     *     // ... data to create a AIQALog
     *   }
     * })
     * 
     */
    create<T extends AIQALogCreateArgs>(args: SelectSubset<T, AIQALogCreateArgs<ExtArgs>>): Prisma__AIQALogClient<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AIQALogs.
     * @param {AIQALogCreateManyArgs} args - Arguments to create many AIQALogs.
     * @example
     * // Create many AIQALogs
     * const aIQALog = await prisma.aIQALog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AIQALogCreateManyArgs>(args?: SelectSubset<T, AIQALogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AIQALogs and returns the data saved in the database.
     * @param {AIQALogCreateManyAndReturnArgs} args - Arguments to create many AIQALogs.
     * @example
     * // Create many AIQALogs
     * const aIQALog = await prisma.aIQALog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AIQALogs and only return the `id`
     * const aIQALogWithIdOnly = await prisma.aIQALog.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 AIQALogCreateManyAndReturnArgs>(args?: SelectSubset<T, AIQALogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AIQALog.
     * @param {AIQALogDeleteArgs} args - Arguments to delete one AIQALog.
     * @example
     * // Delete one AIQALog
     * const AIQALog = await prisma.aIQALog.delete({
     *   where: {
     *     // ... filter to delete one AIQALog
     *   }
     * })
     * 
     */
    delete<T extends AIQALogDeleteArgs>(args: SelectSubset<T, AIQALogDeleteArgs<ExtArgs>>): Prisma__AIQALogClient<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AIQALog.
     * @param {AIQALogUpdateArgs} args - Arguments to update one AIQALog.
     * @example
     * // Update one AIQALog
     * const aIQALog = await prisma.aIQALog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AIQALogUpdateArgs>(args: SelectSubset<T, AIQALogUpdateArgs<ExtArgs>>): Prisma__AIQALogClient<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AIQALogs.
     * @param {AIQALogDeleteManyArgs} args - Arguments to filter AIQALogs to delete.
     * @example
     * // Delete a few AIQALogs
     * const { count } = await prisma.aIQALog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AIQALogDeleteManyArgs>(args?: SelectSubset<T, AIQALogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIQALogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIQALogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AIQALogs
     * const aIQALog = await prisma.aIQALog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AIQALogUpdateManyArgs>(args: SelectSubset<T, AIQALogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AIQALogs and returns the data updated in the database.
     * @param {AIQALogUpdateManyAndReturnArgs} args - Arguments to update many AIQALogs.
     * @example
     * // Update many AIQALogs
     * const aIQALog = await prisma.aIQALog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AIQALogs and only return the `id`
     * const aIQALogWithIdOnly = await prisma.aIQALog.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 AIQALogUpdateManyAndReturnArgs>(args: SelectSubset<T, AIQALogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AIQALog.
     * @param {AIQALogUpsertArgs} args - Arguments to update or create a AIQALog.
     * @example
     * // Update or create a AIQALog
     * const aIQALog = await prisma.aIQALog.upsert({
     *   create: {
     *     // ... data to create a AIQALog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AIQALog we want to update
     *   }
     * })
     */
    upsert<T extends AIQALogUpsertArgs>(args: SelectSubset<T, AIQALogUpsertArgs<ExtArgs>>): Prisma__AIQALogClient<$Result.GetResult<Prisma.$AIQALogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AIQALogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIQALogCountArgs} args - Arguments to filter AIQALogs to count.
     * @example
     * // Count the number of AIQALogs
     * const count = await prisma.aIQALog.count({
     *   where: {
     *     // ... the filter for the AIQALogs we want to count
     *   }
     * })
    **/
    count<T extends AIQALogCountArgs>(
      args?: Subset<T, AIQALogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AIQALogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AIQALog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIQALogAggregateArgs} 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 AIQALogAggregateArgs>(args: Subset<T, AIQALogAggregateArgs>): Prisma.PrismaPromise<GetAIQALogAggregateType<T>>

    /**
     * Group by AIQALog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AIQALogGroupByArgs} 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 AIQALogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AIQALogGroupByArgs['orderBy'] }
        : { orderBy?: AIQALogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AIQALogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAIQALogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AIQALog model
   */
  readonly fields: AIQALogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AIQALog.
   * 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__AIQALogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AIQALog model
   */
  interface AIQALogFieldRefs {
    readonly id: FieldRef<"AIQALog", 'String'>
    readonly userId: FieldRef<"AIQALog", 'String'>
    readonly question: FieldRef<"AIQALog", 'String'>
    readonly answer: FieldRef<"AIQALog", 'String'>
    readonly sourceDocuments: FieldRef<"AIQALog", 'Json'>
    readonly confidence: FieldRef<"AIQALog", 'Float'>
    readonly modelUsed: FieldRef<"AIQALog", 'String'>
    readonly tokensUsed: FieldRef<"AIQALog", 'Int'>
    readonly cost: FieldRef<"AIQALog", 'Float'>
    readonly responseTimeMs: FieldRef<"AIQALog", 'Int'>
    readonly feedback: FieldRef<"AIQALog", 'QAFeedback'>
    readonly feedbackComment: FieldRef<"AIQALog", 'String'>
    readonly createdAt: FieldRef<"AIQALog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AIQALog findUnique
   */
  export type AIQALogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * Filter, which AIQALog to fetch.
     */
    where: AIQALogWhereUniqueInput
  }

  /**
   * AIQALog findUniqueOrThrow
   */
  export type AIQALogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * Filter, which AIQALog to fetch.
     */
    where: AIQALogWhereUniqueInput
  }

  /**
   * AIQALog findFirst
   */
  export type AIQALogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * Filter, which AIQALog to fetch.
     */
    where?: AIQALogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIQALogs to fetch.
     */
    orderBy?: AIQALogOrderByWithRelationInput | AIQALogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIQALogs.
     */
    cursor?: AIQALogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIQALogs 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` AIQALogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIQALogs.
     */
    distinct?: AIQALogScalarFieldEnum | AIQALogScalarFieldEnum[]
  }

  /**
   * AIQALog findFirstOrThrow
   */
  export type AIQALogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * Filter, which AIQALog to fetch.
     */
    where?: AIQALogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIQALogs to fetch.
     */
    orderBy?: AIQALogOrderByWithRelationInput | AIQALogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AIQALogs.
     */
    cursor?: AIQALogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIQALogs 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` AIQALogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AIQALogs.
     */
    distinct?: AIQALogScalarFieldEnum | AIQALogScalarFieldEnum[]
  }

  /**
   * AIQALog findMany
   */
  export type AIQALogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * Filter, which AIQALogs to fetch.
     */
    where?: AIQALogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AIQALogs to fetch.
     */
    orderBy?: AIQALogOrderByWithRelationInput | AIQALogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AIQALogs.
     */
    cursor?: AIQALogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AIQALogs 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` AIQALogs.
     */
    skip?: number
    distinct?: AIQALogScalarFieldEnum | AIQALogScalarFieldEnum[]
  }

  /**
   * AIQALog create
   */
  export type AIQALogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * The data needed to create a AIQALog.
     */
    data: XOR<AIQALogCreateInput, AIQALogUncheckedCreateInput>
  }

  /**
   * AIQALog createMany
   */
  export type AIQALogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AIQALogs.
     */
    data: AIQALogCreateManyInput | AIQALogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AIQALog createManyAndReturn
   */
  export type AIQALogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * The data used to create many AIQALogs.
     */
    data: AIQALogCreateManyInput | AIQALogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIQALog update
   */
  export type AIQALogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * The data needed to update a AIQALog.
     */
    data: XOR<AIQALogUpdateInput, AIQALogUncheckedUpdateInput>
    /**
     * Choose, which AIQALog to update.
     */
    where: AIQALogWhereUniqueInput
  }

  /**
   * AIQALog updateMany
   */
  export type AIQALogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AIQALogs.
     */
    data: XOR<AIQALogUpdateManyMutationInput, AIQALogUncheckedUpdateManyInput>
    /**
     * Filter which AIQALogs to update
     */
    where?: AIQALogWhereInput
    /**
     * Limit how many AIQALogs to update.
     */
    limit?: number
  }

  /**
   * AIQALog updateManyAndReturn
   */
  export type AIQALogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * The data used to update AIQALogs.
     */
    data: XOR<AIQALogUpdateManyMutationInput, AIQALogUncheckedUpdateManyInput>
    /**
     * Filter which AIQALogs to update
     */
    where?: AIQALogWhereInput
    /**
     * Limit how many AIQALogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AIQALog upsert
   */
  export type AIQALogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * The filter to search for the AIQALog to update in case it exists.
     */
    where: AIQALogWhereUniqueInput
    /**
     * In case the AIQALog found by the `where` argument doesn't exist, create a new AIQALog with this data.
     */
    create: XOR<AIQALogCreateInput, AIQALogUncheckedCreateInput>
    /**
     * In case the AIQALog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AIQALogUpdateInput, AIQALogUncheckedUpdateInput>
  }

  /**
   * AIQALog delete
   */
  export type AIQALogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
    /**
     * Filter which AIQALog to delete.
     */
    where: AIQALogWhereUniqueInput
  }

  /**
   * AIQALog deleteMany
   */
  export type AIQALogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AIQALogs to delete
     */
    where?: AIQALogWhereInput
    /**
     * Limit how many AIQALogs to delete.
     */
    limit?: number
  }

  /**
   * AIQALog without action
   */
  export type AIQALogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AIQALog
     */
    select?: AIQALogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AIQALog
     */
    omit?: AIQALogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AIQALogInclude<ExtArgs> | null
  }


  /**
   * Model SearchLog
   */

  export type AggregateSearchLog = {
    _count: SearchLogCountAggregateOutputType | null
    _avg: SearchLogAvgAggregateOutputType | null
    _sum: SearchLogSumAggregateOutputType | null
    _min: SearchLogMinAggregateOutputType | null
    _max: SearchLogMaxAggregateOutputType | null
  }

  export type SearchLogAvgAggregateOutputType = {
    resultCount: number | null
    responseTimeMs: number | null
  }

  export type SearchLogSumAggregateOutputType = {
    resultCount: number | null
    responseTimeMs: number | null
  }

  export type SearchLogMinAggregateOutputType = {
    id: string | null
    userIdHash: string | null
    query: string | null
    resultCount: number | null
    responseTimeMs: number | null
    searchType: $Enums.SearchType | null
    createdAt: Date | null
  }

  export type SearchLogMaxAggregateOutputType = {
    id: string | null
    userIdHash: string | null
    query: string | null
    resultCount: number | null
    responseTimeMs: number | null
    searchType: $Enums.SearchType | null
    createdAt: Date | null
  }

  export type SearchLogCountAggregateOutputType = {
    id: number
    userIdHash: number
    query: number
    resultCount: number
    responseTimeMs: number
    searchType: number
    filters: number
    createdAt: number
    _all: number
  }


  export type SearchLogAvgAggregateInputType = {
    resultCount?: true
    responseTimeMs?: true
  }

  export type SearchLogSumAggregateInputType = {
    resultCount?: true
    responseTimeMs?: true
  }

  export type SearchLogMinAggregateInputType = {
    id?: true
    userIdHash?: true
    query?: true
    resultCount?: true
    responseTimeMs?: true
    searchType?: true
    createdAt?: true
  }

  export type SearchLogMaxAggregateInputType = {
    id?: true
    userIdHash?: true
    query?: true
    resultCount?: true
    responseTimeMs?: true
    searchType?: true
    createdAt?: true
  }

  export type SearchLogCountAggregateInputType = {
    id?: true
    userIdHash?: true
    query?: true
    resultCount?: true
    responseTimeMs?: true
    searchType?: true
    filters?: true
    createdAt?: true
    _all?: true
  }

  export type SearchLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SearchLog to aggregate.
     */
    where?: SearchLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SearchLogs to fetch.
     */
    orderBy?: SearchLogOrderByWithRelationInput | SearchLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SearchLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SearchLogs 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` SearchLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SearchLogs
    **/
    _count?: true | SearchLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SearchLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SearchLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SearchLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SearchLogMaxAggregateInputType
  }

  export type GetSearchLogAggregateType<T extends SearchLogAggregateArgs> = {
        [P in keyof T & keyof AggregateSearchLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSearchLog[P]>
      : GetScalarType<T[P], AggregateSearchLog[P]>
  }




  export type SearchLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SearchLogWhereInput
    orderBy?: SearchLogOrderByWithAggregationInput | SearchLogOrderByWithAggregationInput[]
    by: SearchLogScalarFieldEnum[] | SearchLogScalarFieldEnum
    having?: SearchLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SearchLogCountAggregateInputType | true
    _avg?: SearchLogAvgAggregateInputType
    _sum?: SearchLogSumAggregateInputType
    _min?: SearchLogMinAggregateInputType
    _max?: SearchLogMaxAggregateInputType
  }

  export type SearchLogGroupByOutputType = {
    id: string
    userIdHash: string
    query: string
    resultCount: number
    responseTimeMs: number
    searchType: $Enums.SearchType
    filters: JsonValue | null
    createdAt: Date
    _count: SearchLogCountAggregateOutputType | null
    _avg: SearchLogAvgAggregateOutputType | null
    _sum: SearchLogSumAggregateOutputType | null
    _min: SearchLogMinAggregateOutputType | null
    _max: SearchLogMaxAggregateOutputType | null
  }

  type GetSearchLogGroupByPayload<T extends SearchLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SearchLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SearchLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SearchLogGroupByOutputType[P]>
            : GetScalarType<T[P], SearchLogGroupByOutputType[P]>
        }
      >
    >


  export type SearchLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userIdHash?: boolean
    query?: boolean
    resultCount?: boolean
    responseTimeMs?: boolean
    searchType?: boolean
    filters?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["searchLog"]>

  export type SearchLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userIdHash?: boolean
    query?: boolean
    resultCount?: boolean
    responseTimeMs?: boolean
    searchType?: boolean
    filters?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["searchLog"]>

  export type SearchLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userIdHash?: boolean
    query?: boolean
    resultCount?: boolean
    responseTimeMs?: boolean
    searchType?: boolean
    filters?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["searchLog"]>

  export type SearchLogSelectScalar = {
    id?: boolean
    userIdHash?: boolean
    query?: boolean
    resultCount?: boolean
    responseTimeMs?: boolean
    searchType?: boolean
    filters?: boolean
    createdAt?: boolean
  }

  export type SearchLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userIdHash" | "query" | "resultCount" | "responseTimeMs" | "searchType" | "filters" | "createdAt", ExtArgs["result"]["searchLog"]>

  export type $SearchLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SearchLog"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userIdHash: string
      query: string
      resultCount: number
      responseTimeMs: number
      searchType: $Enums.SearchType
      filters: Prisma.JsonValue | null
      createdAt: Date
    }, ExtArgs["result"]["searchLog"]>
    composites: {}
  }

  type SearchLogGetPayload<S extends boolean | null | undefined | SearchLogDefaultArgs> = $Result.GetResult<Prisma.$SearchLogPayload, S>

  type SearchLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SearchLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SearchLogCountAggregateInputType | true
    }

  export interface SearchLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SearchLog'], meta: { name: 'SearchLog' } }
    /**
     * Find zero or one SearchLog that matches the filter.
     * @param {SearchLogFindUniqueArgs} args - Arguments to find a SearchLog
     * @example
     * // Get one SearchLog
     * const searchLog = await prisma.searchLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SearchLogFindUniqueArgs>(args: SelectSubset<T, SearchLogFindUniqueArgs<ExtArgs>>): Prisma__SearchLogClient<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SearchLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SearchLogFindUniqueOrThrowArgs} args - Arguments to find a SearchLog
     * @example
     * // Get one SearchLog
     * const searchLog = await prisma.searchLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SearchLogFindUniqueOrThrowArgs>(args: SelectSubset<T, SearchLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SearchLogClient<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SearchLog 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 {SearchLogFindFirstArgs} args - Arguments to find a SearchLog
     * @example
     * // Get one SearchLog
     * const searchLog = await prisma.searchLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SearchLogFindFirstArgs>(args?: SelectSubset<T, SearchLogFindFirstArgs<ExtArgs>>): Prisma__SearchLogClient<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SearchLog 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 {SearchLogFindFirstOrThrowArgs} args - Arguments to find a SearchLog
     * @example
     * // Get one SearchLog
     * const searchLog = await prisma.searchLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SearchLogFindFirstOrThrowArgs>(args?: SelectSubset<T, SearchLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__SearchLogClient<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SearchLogs 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 {SearchLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SearchLogs
     * const searchLogs = await prisma.searchLog.findMany()
     * 
     * // Get first 10 SearchLogs
     * const searchLogs = await prisma.searchLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const searchLogWithIdOnly = await prisma.searchLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SearchLogFindManyArgs>(args?: SelectSubset<T, SearchLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SearchLog.
     * @param {SearchLogCreateArgs} args - Arguments to create a SearchLog.
     * @example
     * // Create one SearchLog
     * const SearchLog = await prisma.searchLog.create({
     *   data: {
     *     // ... data to create a SearchLog
     *   }
     * })
     * 
     */
    create<T extends SearchLogCreateArgs>(args: SelectSubset<T, SearchLogCreateArgs<ExtArgs>>): Prisma__SearchLogClient<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SearchLogs.
     * @param {SearchLogCreateManyArgs} args - Arguments to create many SearchLogs.
     * @example
     * // Create many SearchLogs
     * const searchLog = await prisma.searchLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SearchLogCreateManyArgs>(args?: SelectSubset<T, SearchLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SearchLogs and returns the data saved in the database.
     * @param {SearchLogCreateManyAndReturnArgs} args - Arguments to create many SearchLogs.
     * @example
     * // Create many SearchLogs
     * const searchLog = await prisma.searchLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SearchLogs and only return the `id`
     * const searchLogWithIdOnly = await prisma.searchLog.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 SearchLogCreateManyAndReturnArgs>(args?: SelectSubset<T, SearchLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SearchLog.
     * @param {SearchLogDeleteArgs} args - Arguments to delete one SearchLog.
     * @example
     * // Delete one SearchLog
     * const SearchLog = await prisma.searchLog.delete({
     *   where: {
     *     // ... filter to delete one SearchLog
     *   }
     * })
     * 
     */
    delete<T extends SearchLogDeleteArgs>(args: SelectSubset<T, SearchLogDeleteArgs<ExtArgs>>): Prisma__SearchLogClient<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SearchLog.
     * @param {SearchLogUpdateArgs} args - Arguments to update one SearchLog.
     * @example
     * // Update one SearchLog
     * const searchLog = await prisma.searchLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SearchLogUpdateArgs>(args: SelectSubset<T, SearchLogUpdateArgs<ExtArgs>>): Prisma__SearchLogClient<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SearchLogs.
     * @param {SearchLogDeleteManyArgs} args - Arguments to filter SearchLogs to delete.
     * @example
     * // Delete a few SearchLogs
     * const { count } = await prisma.searchLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SearchLogDeleteManyArgs>(args?: SelectSubset<T, SearchLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SearchLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SearchLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SearchLogs
     * const searchLog = await prisma.searchLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SearchLogUpdateManyArgs>(args: SelectSubset<T, SearchLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SearchLogs and returns the data updated in the database.
     * @param {SearchLogUpdateManyAndReturnArgs} args - Arguments to update many SearchLogs.
     * @example
     * // Update many SearchLogs
     * const searchLog = await prisma.searchLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SearchLogs and only return the `id`
     * const searchLogWithIdOnly = await prisma.searchLog.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 SearchLogUpdateManyAndReturnArgs>(args: SelectSubset<T, SearchLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SearchLog.
     * @param {SearchLogUpsertArgs} args - Arguments to update or create a SearchLog.
     * @example
     * // Update or create a SearchLog
     * const searchLog = await prisma.searchLog.upsert({
     *   create: {
     *     // ... data to create a SearchLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SearchLog we want to update
     *   }
     * })
     */
    upsert<T extends SearchLogUpsertArgs>(args: SelectSubset<T, SearchLogUpsertArgs<ExtArgs>>): Prisma__SearchLogClient<$Result.GetResult<Prisma.$SearchLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SearchLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SearchLogCountArgs} args - Arguments to filter SearchLogs to count.
     * @example
     * // Count the number of SearchLogs
     * const count = await prisma.searchLog.count({
     *   where: {
     *     // ... the filter for the SearchLogs we want to count
     *   }
     * })
    **/
    count<T extends SearchLogCountArgs>(
      args?: Subset<T, SearchLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SearchLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SearchLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SearchLogAggregateArgs} 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 SearchLogAggregateArgs>(args: Subset<T, SearchLogAggregateArgs>): Prisma.PrismaPromise<GetSearchLogAggregateType<T>>

    /**
     * Group by SearchLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SearchLogGroupByArgs} 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 SearchLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SearchLogGroupByArgs['orderBy'] }
        : { orderBy?: SearchLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SearchLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSearchLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SearchLog model
   */
  readonly fields: SearchLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SearchLog.
   * 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__SearchLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SearchLog model
   */
  interface SearchLogFieldRefs {
    readonly id: FieldRef<"SearchLog", 'String'>
    readonly userIdHash: FieldRef<"SearchLog", 'String'>
    readonly query: FieldRef<"SearchLog", 'String'>
    readonly resultCount: FieldRef<"SearchLog", 'Int'>
    readonly responseTimeMs: FieldRef<"SearchLog", 'Int'>
    readonly searchType: FieldRef<"SearchLog", 'SearchType'>
    readonly filters: FieldRef<"SearchLog", 'Json'>
    readonly createdAt: FieldRef<"SearchLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SearchLog findUnique
   */
  export type SearchLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * Filter, which SearchLog to fetch.
     */
    where: SearchLogWhereUniqueInput
  }

  /**
   * SearchLog findUniqueOrThrow
   */
  export type SearchLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * Filter, which SearchLog to fetch.
     */
    where: SearchLogWhereUniqueInput
  }

  /**
   * SearchLog findFirst
   */
  export type SearchLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * Filter, which SearchLog to fetch.
     */
    where?: SearchLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SearchLogs to fetch.
     */
    orderBy?: SearchLogOrderByWithRelationInput | SearchLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SearchLogs.
     */
    cursor?: SearchLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SearchLogs 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` SearchLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SearchLogs.
     */
    distinct?: SearchLogScalarFieldEnum | SearchLogScalarFieldEnum[]
  }

  /**
   * SearchLog findFirstOrThrow
   */
  export type SearchLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * Filter, which SearchLog to fetch.
     */
    where?: SearchLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SearchLogs to fetch.
     */
    orderBy?: SearchLogOrderByWithRelationInput | SearchLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SearchLogs.
     */
    cursor?: SearchLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SearchLogs 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` SearchLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SearchLogs.
     */
    distinct?: SearchLogScalarFieldEnum | SearchLogScalarFieldEnum[]
  }

  /**
   * SearchLog findMany
   */
  export type SearchLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * Filter, which SearchLogs to fetch.
     */
    where?: SearchLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SearchLogs to fetch.
     */
    orderBy?: SearchLogOrderByWithRelationInput | SearchLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SearchLogs.
     */
    cursor?: SearchLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SearchLogs 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` SearchLogs.
     */
    skip?: number
    distinct?: SearchLogScalarFieldEnum | SearchLogScalarFieldEnum[]
  }

  /**
   * SearchLog create
   */
  export type SearchLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * The data needed to create a SearchLog.
     */
    data: XOR<SearchLogCreateInput, SearchLogUncheckedCreateInput>
  }

  /**
   * SearchLog createMany
   */
  export type SearchLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SearchLogs.
     */
    data: SearchLogCreateManyInput | SearchLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SearchLog createManyAndReturn
   */
  export type SearchLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * The data used to create many SearchLogs.
     */
    data: SearchLogCreateManyInput | SearchLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SearchLog update
   */
  export type SearchLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * The data needed to update a SearchLog.
     */
    data: XOR<SearchLogUpdateInput, SearchLogUncheckedUpdateInput>
    /**
     * Choose, which SearchLog to update.
     */
    where: SearchLogWhereUniqueInput
  }

  /**
   * SearchLog updateMany
   */
  export type SearchLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SearchLogs.
     */
    data: XOR<SearchLogUpdateManyMutationInput, SearchLogUncheckedUpdateManyInput>
    /**
     * Filter which SearchLogs to update
     */
    where?: SearchLogWhereInput
    /**
     * Limit how many SearchLogs to update.
     */
    limit?: number
  }

  /**
   * SearchLog updateManyAndReturn
   */
  export type SearchLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * The data used to update SearchLogs.
     */
    data: XOR<SearchLogUpdateManyMutationInput, SearchLogUncheckedUpdateManyInput>
    /**
     * Filter which SearchLogs to update
     */
    where?: SearchLogWhereInput
    /**
     * Limit how many SearchLogs to update.
     */
    limit?: number
  }

  /**
   * SearchLog upsert
   */
  export type SearchLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * The filter to search for the SearchLog to update in case it exists.
     */
    where: SearchLogWhereUniqueInput
    /**
     * In case the SearchLog found by the `where` argument doesn't exist, create a new SearchLog with this data.
     */
    create: XOR<SearchLogCreateInput, SearchLogUncheckedCreateInput>
    /**
     * In case the SearchLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SearchLogUpdateInput, SearchLogUncheckedUpdateInput>
  }

  /**
   * SearchLog delete
   */
  export type SearchLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
    /**
     * Filter which SearchLog to delete.
     */
    where: SearchLogWhereUniqueInput
  }

  /**
   * SearchLog deleteMany
   */
  export type SearchLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SearchLogs to delete
     */
    where?: SearchLogWhereInput
    /**
     * Limit how many SearchLogs to delete.
     */
    limit?: number
  }

  /**
   * SearchLog without action
   */
  export type SearchLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SearchLog
     */
    select?: SearchLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SearchLog
     */
    omit?: SearchLogOmit<ExtArgs> | null
  }


  /**
   * Model DocumentView
   */

  export type AggregateDocumentView = {
    _count: DocumentViewCountAggregateOutputType | null
    _min: DocumentViewMinAggregateOutputType | null
    _max: DocumentViewMaxAggregateOutputType | null
  }

  export type DocumentViewMinAggregateOutputType = {
    id: string | null
    spDocumentId: string | null
    articleId: string | null
    userId: string | null
    viewedAt: Date | null
    viewDate: Date | null
  }

  export type DocumentViewMaxAggregateOutputType = {
    id: string | null
    spDocumentId: string | null
    articleId: string | null
    userId: string | null
    viewedAt: Date | null
    viewDate: Date | null
  }

  export type DocumentViewCountAggregateOutputType = {
    id: number
    spDocumentId: number
    articleId: number
    userId: number
    viewedAt: number
    viewDate: number
    _all: number
  }


  export type DocumentViewMinAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    viewedAt?: true
    viewDate?: true
  }

  export type DocumentViewMaxAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    viewedAt?: true
    viewDate?: true
  }

  export type DocumentViewCountAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    viewedAt?: true
    viewDate?: true
    _all?: true
  }

  export type DocumentViewAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DocumentView to aggregate.
     */
    where?: DocumentViewWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentViews to fetch.
     */
    orderBy?: DocumentViewOrderByWithRelationInput | DocumentViewOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DocumentViewWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentViews 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` DocumentViews.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DocumentViews
    **/
    _count?: true | DocumentViewCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DocumentViewMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DocumentViewMaxAggregateInputType
  }

  export type GetDocumentViewAggregateType<T extends DocumentViewAggregateArgs> = {
        [P in keyof T & keyof AggregateDocumentView]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDocumentView[P]>
      : GetScalarType<T[P], AggregateDocumentView[P]>
  }




  export type DocumentViewGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentViewWhereInput
    orderBy?: DocumentViewOrderByWithAggregationInput | DocumentViewOrderByWithAggregationInput[]
    by: DocumentViewScalarFieldEnum[] | DocumentViewScalarFieldEnum
    having?: DocumentViewScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DocumentViewCountAggregateInputType | true
    _min?: DocumentViewMinAggregateInputType
    _max?: DocumentViewMaxAggregateInputType
  }

  export type DocumentViewGroupByOutputType = {
    id: string
    spDocumentId: string | null
    articleId: string | null
    userId: string
    viewedAt: Date
    viewDate: Date
    _count: DocumentViewCountAggregateOutputType | null
    _min: DocumentViewMinAggregateOutputType | null
    _max: DocumentViewMaxAggregateOutputType | null
  }

  type GetDocumentViewGroupByPayload<T extends DocumentViewGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DocumentViewGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DocumentViewGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DocumentViewGroupByOutputType[P]>
            : GetScalarType<T[P], DocumentViewGroupByOutputType[P]>
        }
      >
    >


  export type DocumentViewSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    viewedAt?: boolean
    viewDate?: boolean
    spDocument?: boolean | DocumentView$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentView$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["documentView"]>

  export type DocumentViewSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    viewedAt?: boolean
    viewDate?: boolean
    spDocument?: boolean | DocumentView$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentView$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["documentView"]>

  export type DocumentViewSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    viewedAt?: boolean
    viewDate?: boolean
    spDocument?: boolean | DocumentView$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentView$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["documentView"]>

  export type DocumentViewSelectScalar = {
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    viewedAt?: boolean
    viewDate?: boolean
  }

  export type DocumentViewOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "spDocumentId" | "articleId" | "userId" | "viewedAt" | "viewDate", ExtArgs["result"]["documentView"]>
  export type DocumentViewInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentView$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentView$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type DocumentViewIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentView$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentView$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type DocumentViewIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentView$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentView$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $DocumentViewPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DocumentView"
    objects: {
      spDocument: Prisma.$SPDocumentIndexPayload<ExtArgs> | null
      article: Prisma.$KnowledgeArticlePayload<ExtArgs> | null
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      spDocumentId: string | null
      articleId: string | null
      userId: string
      viewedAt: Date
      viewDate: Date
    }, ExtArgs["result"]["documentView"]>
    composites: {}
  }

  type DocumentViewGetPayload<S extends boolean | null | undefined | DocumentViewDefaultArgs> = $Result.GetResult<Prisma.$DocumentViewPayload, S>

  type DocumentViewCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DocumentViewFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DocumentViewCountAggregateInputType | true
    }

  export interface DocumentViewDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DocumentView'], meta: { name: 'DocumentView' } }
    /**
     * Find zero or one DocumentView that matches the filter.
     * @param {DocumentViewFindUniqueArgs} args - Arguments to find a DocumentView
     * @example
     * // Get one DocumentView
     * const documentView = await prisma.documentView.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DocumentViewFindUniqueArgs>(args: SelectSubset<T, DocumentViewFindUniqueArgs<ExtArgs>>): Prisma__DocumentViewClient<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DocumentView that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DocumentViewFindUniqueOrThrowArgs} args - Arguments to find a DocumentView
     * @example
     * // Get one DocumentView
     * const documentView = await prisma.documentView.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DocumentViewFindUniqueOrThrowArgs>(args: SelectSubset<T, DocumentViewFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DocumentViewClient<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DocumentView 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 {DocumentViewFindFirstArgs} args - Arguments to find a DocumentView
     * @example
     * // Get one DocumentView
     * const documentView = await prisma.documentView.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DocumentViewFindFirstArgs>(args?: SelectSubset<T, DocumentViewFindFirstArgs<ExtArgs>>): Prisma__DocumentViewClient<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DocumentView 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 {DocumentViewFindFirstOrThrowArgs} args - Arguments to find a DocumentView
     * @example
     * // Get one DocumentView
     * const documentView = await prisma.documentView.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DocumentViewFindFirstOrThrowArgs>(args?: SelectSubset<T, DocumentViewFindFirstOrThrowArgs<ExtArgs>>): Prisma__DocumentViewClient<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DocumentViews 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 {DocumentViewFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DocumentViews
     * const documentViews = await prisma.documentView.findMany()
     * 
     * // Get first 10 DocumentViews
     * const documentViews = await prisma.documentView.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const documentViewWithIdOnly = await prisma.documentView.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DocumentViewFindManyArgs>(args?: SelectSubset<T, DocumentViewFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DocumentView.
     * @param {DocumentViewCreateArgs} args - Arguments to create a DocumentView.
     * @example
     * // Create one DocumentView
     * const DocumentView = await prisma.documentView.create({
     *   data: {
     *     // ... data to create a DocumentView
     *   }
     * })
     * 
     */
    create<T extends DocumentViewCreateArgs>(args: SelectSubset<T, DocumentViewCreateArgs<ExtArgs>>): Prisma__DocumentViewClient<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DocumentViews.
     * @param {DocumentViewCreateManyArgs} args - Arguments to create many DocumentViews.
     * @example
     * // Create many DocumentViews
     * const documentView = await prisma.documentView.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DocumentViewCreateManyArgs>(args?: SelectSubset<T, DocumentViewCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DocumentViews and returns the data saved in the database.
     * @param {DocumentViewCreateManyAndReturnArgs} args - Arguments to create many DocumentViews.
     * @example
     * // Create many DocumentViews
     * const documentView = await prisma.documentView.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DocumentViews and only return the `id`
     * const documentViewWithIdOnly = await prisma.documentView.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 DocumentViewCreateManyAndReturnArgs>(args?: SelectSubset<T, DocumentViewCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DocumentView.
     * @param {DocumentViewDeleteArgs} args - Arguments to delete one DocumentView.
     * @example
     * // Delete one DocumentView
     * const DocumentView = await prisma.documentView.delete({
     *   where: {
     *     // ... filter to delete one DocumentView
     *   }
     * })
     * 
     */
    delete<T extends DocumentViewDeleteArgs>(args: SelectSubset<T, DocumentViewDeleteArgs<ExtArgs>>): Prisma__DocumentViewClient<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DocumentView.
     * @param {DocumentViewUpdateArgs} args - Arguments to update one DocumentView.
     * @example
     * // Update one DocumentView
     * const documentView = await prisma.documentView.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DocumentViewUpdateArgs>(args: SelectSubset<T, DocumentViewUpdateArgs<ExtArgs>>): Prisma__DocumentViewClient<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DocumentViews.
     * @param {DocumentViewDeleteManyArgs} args - Arguments to filter DocumentViews to delete.
     * @example
     * // Delete a few DocumentViews
     * const { count } = await prisma.documentView.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DocumentViewDeleteManyArgs>(args?: SelectSubset<T, DocumentViewDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DocumentViews.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentViewUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DocumentViews
     * const documentView = await prisma.documentView.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DocumentViewUpdateManyArgs>(args: SelectSubset<T, DocumentViewUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DocumentViews and returns the data updated in the database.
     * @param {DocumentViewUpdateManyAndReturnArgs} args - Arguments to update many DocumentViews.
     * @example
     * // Update many DocumentViews
     * const documentView = await prisma.documentView.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DocumentViews and only return the `id`
     * const documentViewWithIdOnly = await prisma.documentView.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 DocumentViewUpdateManyAndReturnArgs>(args: SelectSubset<T, DocumentViewUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DocumentView.
     * @param {DocumentViewUpsertArgs} args - Arguments to update or create a DocumentView.
     * @example
     * // Update or create a DocumentView
     * const documentView = await prisma.documentView.upsert({
     *   create: {
     *     // ... data to create a DocumentView
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DocumentView we want to update
     *   }
     * })
     */
    upsert<T extends DocumentViewUpsertArgs>(args: SelectSubset<T, DocumentViewUpsertArgs<ExtArgs>>): Prisma__DocumentViewClient<$Result.GetResult<Prisma.$DocumentViewPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DocumentViews.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentViewCountArgs} args - Arguments to filter DocumentViews to count.
     * @example
     * // Count the number of DocumentViews
     * const count = await prisma.documentView.count({
     *   where: {
     *     // ... the filter for the DocumentViews we want to count
     *   }
     * })
    **/
    count<T extends DocumentViewCountArgs>(
      args?: Subset<T, DocumentViewCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DocumentViewCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DocumentView.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentViewAggregateArgs} 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 DocumentViewAggregateArgs>(args: Subset<T, DocumentViewAggregateArgs>): Prisma.PrismaPromise<GetDocumentViewAggregateType<T>>

    /**
     * Group by DocumentView.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentViewGroupByArgs} 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 DocumentViewGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DocumentViewGroupByArgs['orderBy'] }
        : { orderBy?: DocumentViewGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DocumentViewGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDocumentViewGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DocumentView model
   */
  readonly fields: DocumentViewFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DocumentView.
   * 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__DocumentViewClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    spDocument<T extends DocumentView$spDocumentArgs<ExtArgs> = {}>(args?: Subset<T, DocumentView$spDocumentArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    article<T extends DocumentView$articleArgs<ExtArgs> = {}>(args?: Subset<T, DocumentView$articleArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DocumentView model
   */
  interface DocumentViewFieldRefs {
    readonly id: FieldRef<"DocumentView", 'String'>
    readonly spDocumentId: FieldRef<"DocumentView", 'String'>
    readonly articleId: FieldRef<"DocumentView", 'String'>
    readonly userId: FieldRef<"DocumentView", 'String'>
    readonly viewedAt: FieldRef<"DocumentView", 'DateTime'>
    readonly viewDate: FieldRef<"DocumentView", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DocumentView findUnique
   */
  export type DocumentViewFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * Filter, which DocumentView to fetch.
     */
    where: DocumentViewWhereUniqueInput
  }

  /**
   * DocumentView findUniqueOrThrow
   */
  export type DocumentViewFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * Filter, which DocumentView to fetch.
     */
    where: DocumentViewWhereUniqueInput
  }

  /**
   * DocumentView findFirst
   */
  export type DocumentViewFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * Filter, which DocumentView to fetch.
     */
    where?: DocumentViewWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentViews to fetch.
     */
    orderBy?: DocumentViewOrderByWithRelationInput | DocumentViewOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DocumentViews.
     */
    cursor?: DocumentViewWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentViews 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` DocumentViews.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DocumentViews.
     */
    distinct?: DocumentViewScalarFieldEnum | DocumentViewScalarFieldEnum[]
  }

  /**
   * DocumentView findFirstOrThrow
   */
  export type DocumentViewFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * Filter, which DocumentView to fetch.
     */
    where?: DocumentViewWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentViews to fetch.
     */
    orderBy?: DocumentViewOrderByWithRelationInput | DocumentViewOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DocumentViews.
     */
    cursor?: DocumentViewWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentViews 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` DocumentViews.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DocumentViews.
     */
    distinct?: DocumentViewScalarFieldEnum | DocumentViewScalarFieldEnum[]
  }

  /**
   * DocumentView findMany
   */
  export type DocumentViewFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * Filter, which DocumentViews to fetch.
     */
    where?: DocumentViewWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentViews to fetch.
     */
    orderBy?: DocumentViewOrderByWithRelationInput | DocumentViewOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DocumentViews.
     */
    cursor?: DocumentViewWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentViews 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` DocumentViews.
     */
    skip?: number
    distinct?: DocumentViewScalarFieldEnum | DocumentViewScalarFieldEnum[]
  }

  /**
   * DocumentView create
   */
  export type DocumentViewCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * The data needed to create a DocumentView.
     */
    data: XOR<DocumentViewCreateInput, DocumentViewUncheckedCreateInput>
  }

  /**
   * DocumentView createMany
   */
  export type DocumentViewCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DocumentViews.
     */
    data: DocumentViewCreateManyInput | DocumentViewCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DocumentView createManyAndReturn
   */
  export type DocumentViewCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * The data used to create many DocumentViews.
     */
    data: DocumentViewCreateManyInput | DocumentViewCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * DocumentView update
   */
  export type DocumentViewUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * The data needed to update a DocumentView.
     */
    data: XOR<DocumentViewUpdateInput, DocumentViewUncheckedUpdateInput>
    /**
     * Choose, which DocumentView to update.
     */
    where: DocumentViewWhereUniqueInput
  }

  /**
   * DocumentView updateMany
   */
  export type DocumentViewUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DocumentViews.
     */
    data: XOR<DocumentViewUpdateManyMutationInput, DocumentViewUncheckedUpdateManyInput>
    /**
     * Filter which DocumentViews to update
     */
    where?: DocumentViewWhereInput
    /**
     * Limit how many DocumentViews to update.
     */
    limit?: number
  }

  /**
   * DocumentView updateManyAndReturn
   */
  export type DocumentViewUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * The data used to update DocumentViews.
     */
    data: XOR<DocumentViewUpdateManyMutationInput, DocumentViewUncheckedUpdateManyInput>
    /**
     * Filter which DocumentViews to update
     */
    where?: DocumentViewWhereInput
    /**
     * Limit how many DocumentViews to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * DocumentView upsert
   */
  export type DocumentViewUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * The filter to search for the DocumentView to update in case it exists.
     */
    where: DocumentViewWhereUniqueInput
    /**
     * In case the DocumentView found by the `where` argument doesn't exist, create a new DocumentView with this data.
     */
    create: XOR<DocumentViewCreateInput, DocumentViewUncheckedCreateInput>
    /**
     * In case the DocumentView was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DocumentViewUpdateInput, DocumentViewUncheckedUpdateInput>
  }

  /**
   * DocumentView delete
   */
  export type DocumentViewDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
    /**
     * Filter which DocumentView to delete.
     */
    where: DocumentViewWhereUniqueInput
  }

  /**
   * DocumentView deleteMany
   */
  export type DocumentViewDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DocumentViews to delete
     */
    where?: DocumentViewWhereInput
    /**
     * Limit how many DocumentViews to delete.
     */
    limit?: number
  }

  /**
   * DocumentView.spDocument
   */
  export type DocumentView$spDocumentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    where?: SPDocumentIndexWhereInput
  }

  /**
   * DocumentView.article
   */
  export type DocumentView$articleArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    where?: KnowledgeArticleWhereInput
  }

  /**
   * DocumentView without action
   */
  export type DocumentViewDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentView
     */
    select?: DocumentViewSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentView
     */
    omit?: DocumentViewOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentViewInclude<ExtArgs> | null
  }


  /**
   * Model DocumentLike
   */

  export type AggregateDocumentLike = {
    _count: DocumentLikeCountAggregateOutputType | null
    _min: DocumentLikeMinAggregateOutputType | null
    _max: DocumentLikeMaxAggregateOutputType | null
  }

  export type DocumentLikeMinAggregateOutputType = {
    id: string | null
    spDocumentId: string | null
    articleId: string | null
    userId: string | null
    type: $Enums.LikeType | null
    createdAt: Date | null
  }

  export type DocumentLikeMaxAggregateOutputType = {
    id: string | null
    spDocumentId: string | null
    articleId: string | null
    userId: string | null
    type: $Enums.LikeType | null
    createdAt: Date | null
  }

  export type DocumentLikeCountAggregateOutputType = {
    id: number
    spDocumentId: number
    articleId: number
    userId: number
    type: number
    createdAt: number
    _all: number
  }


  export type DocumentLikeMinAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    type?: true
    createdAt?: true
  }

  export type DocumentLikeMaxAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    type?: true
    createdAt?: true
  }

  export type DocumentLikeCountAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    type?: true
    createdAt?: true
    _all?: true
  }

  export type DocumentLikeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DocumentLike to aggregate.
     */
    where?: DocumentLikeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentLikes to fetch.
     */
    orderBy?: DocumentLikeOrderByWithRelationInput | DocumentLikeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DocumentLikeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentLikes 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` DocumentLikes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DocumentLikes
    **/
    _count?: true | DocumentLikeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DocumentLikeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DocumentLikeMaxAggregateInputType
  }

  export type GetDocumentLikeAggregateType<T extends DocumentLikeAggregateArgs> = {
        [P in keyof T & keyof AggregateDocumentLike]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDocumentLike[P]>
      : GetScalarType<T[P], AggregateDocumentLike[P]>
  }




  export type DocumentLikeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentLikeWhereInput
    orderBy?: DocumentLikeOrderByWithAggregationInput | DocumentLikeOrderByWithAggregationInput[]
    by: DocumentLikeScalarFieldEnum[] | DocumentLikeScalarFieldEnum
    having?: DocumentLikeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DocumentLikeCountAggregateInputType | true
    _min?: DocumentLikeMinAggregateInputType
    _max?: DocumentLikeMaxAggregateInputType
  }

  export type DocumentLikeGroupByOutputType = {
    id: string
    spDocumentId: string | null
    articleId: string | null
    userId: string
    type: $Enums.LikeType
    createdAt: Date
    _count: DocumentLikeCountAggregateOutputType | null
    _min: DocumentLikeMinAggregateOutputType | null
    _max: DocumentLikeMaxAggregateOutputType | null
  }

  type GetDocumentLikeGroupByPayload<T extends DocumentLikeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DocumentLikeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DocumentLikeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DocumentLikeGroupByOutputType[P]>
            : GetScalarType<T[P], DocumentLikeGroupByOutputType[P]>
        }
      >
    >


  export type DocumentLikeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    type?: boolean
    createdAt?: boolean
    spDocument?: boolean | DocumentLike$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentLike$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["documentLike"]>

  export type DocumentLikeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    type?: boolean
    createdAt?: boolean
    spDocument?: boolean | DocumentLike$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentLike$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["documentLike"]>

  export type DocumentLikeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    type?: boolean
    createdAt?: boolean
    spDocument?: boolean | DocumentLike$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentLike$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["documentLike"]>

  export type DocumentLikeSelectScalar = {
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    type?: boolean
    createdAt?: boolean
  }

  export type DocumentLikeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "spDocumentId" | "articleId" | "userId" | "type" | "createdAt", ExtArgs["result"]["documentLike"]>
  export type DocumentLikeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentLike$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentLike$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type DocumentLikeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentLike$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentLike$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type DocumentLikeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentLike$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentLike$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $DocumentLikePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DocumentLike"
    objects: {
      spDocument: Prisma.$SPDocumentIndexPayload<ExtArgs> | null
      article: Prisma.$KnowledgeArticlePayload<ExtArgs> | null
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      spDocumentId: string | null
      articleId: string | null
      userId: string
      type: $Enums.LikeType
      createdAt: Date
    }, ExtArgs["result"]["documentLike"]>
    composites: {}
  }

  type DocumentLikeGetPayload<S extends boolean | null | undefined | DocumentLikeDefaultArgs> = $Result.GetResult<Prisma.$DocumentLikePayload, S>

  type DocumentLikeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DocumentLikeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DocumentLikeCountAggregateInputType | true
    }

  export interface DocumentLikeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DocumentLike'], meta: { name: 'DocumentLike' } }
    /**
     * Find zero or one DocumentLike that matches the filter.
     * @param {DocumentLikeFindUniqueArgs} args - Arguments to find a DocumentLike
     * @example
     * // Get one DocumentLike
     * const documentLike = await prisma.documentLike.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DocumentLikeFindUniqueArgs>(args: SelectSubset<T, DocumentLikeFindUniqueArgs<ExtArgs>>): Prisma__DocumentLikeClient<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DocumentLike that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DocumentLikeFindUniqueOrThrowArgs} args - Arguments to find a DocumentLike
     * @example
     * // Get one DocumentLike
     * const documentLike = await prisma.documentLike.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DocumentLikeFindUniqueOrThrowArgs>(args: SelectSubset<T, DocumentLikeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DocumentLikeClient<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DocumentLike 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 {DocumentLikeFindFirstArgs} args - Arguments to find a DocumentLike
     * @example
     * // Get one DocumentLike
     * const documentLike = await prisma.documentLike.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DocumentLikeFindFirstArgs>(args?: SelectSubset<T, DocumentLikeFindFirstArgs<ExtArgs>>): Prisma__DocumentLikeClient<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DocumentLike 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 {DocumentLikeFindFirstOrThrowArgs} args - Arguments to find a DocumentLike
     * @example
     * // Get one DocumentLike
     * const documentLike = await prisma.documentLike.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DocumentLikeFindFirstOrThrowArgs>(args?: SelectSubset<T, DocumentLikeFindFirstOrThrowArgs<ExtArgs>>): Prisma__DocumentLikeClient<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DocumentLikes 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 {DocumentLikeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DocumentLikes
     * const documentLikes = await prisma.documentLike.findMany()
     * 
     * // Get first 10 DocumentLikes
     * const documentLikes = await prisma.documentLike.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const documentLikeWithIdOnly = await prisma.documentLike.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DocumentLikeFindManyArgs>(args?: SelectSubset<T, DocumentLikeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DocumentLike.
     * @param {DocumentLikeCreateArgs} args - Arguments to create a DocumentLike.
     * @example
     * // Create one DocumentLike
     * const DocumentLike = await prisma.documentLike.create({
     *   data: {
     *     // ... data to create a DocumentLike
     *   }
     * })
     * 
     */
    create<T extends DocumentLikeCreateArgs>(args: SelectSubset<T, DocumentLikeCreateArgs<ExtArgs>>): Prisma__DocumentLikeClient<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DocumentLikes.
     * @param {DocumentLikeCreateManyArgs} args - Arguments to create many DocumentLikes.
     * @example
     * // Create many DocumentLikes
     * const documentLike = await prisma.documentLike.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DocumentLikeCreateManyArgs>(args?: SelectSubset<T, DocumentLikeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DocumentLikes and returns the data saved in the database.
     * @param {DocumentLikeCreateManyAndReturnArgs} args - Arguments to create many DocumentLikes.
     * @example
     * // Create many DocumentLikes
     * const documentLike = await prisma.documentLike.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DocumentLikes and only return the `id`
     * const documentLikeWithIdOnly = await prisma.documentLike.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 DocumentLikeCreateManyAndReturnArgs>(args?: SelectSubset<T, DocumentLikeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DocumentLike.
     * @param {DocumentLikeDeleteArgs} args - Arguments to delete one DocumentLike.
     * @example
     * // Delete one DocumentLike
     * const DocumentLike = await prisma.documentLike.delete({
     *   where: {
     *     // ... filter to delete one DocumentLike
     *   }
     * })
     * 
     */
    delete<T extends DocumentLikeDeleteArgs>(args: SelectSubset<T, DocumentLikeDeleteArgs<ExtArgs>>): Prisma__DocumentLikeClient<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DocumentLike.
     * @param {DocumentLikeUpdateArgs} args - Arguments to update one DocumentLike.
     * @example
     * // Update one DocumentLike
     * const documentLike = await prisma.documentLike.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DocumentLikeUpdateArgs>(args: SelectSubset<T, DocumentLikeUpdateArgs<ExtArgs>>): Prisma__DocumentLikeClient<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DocumentLikes.
     * @param {DocumentLikeDeleteManyArgs} args - Arguments to filter DocumentLikes to delete.
     * @example
     * // Delete a few DocumentLikes
     * const { count } = await prisma.documentLike.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DocumentLikeDeleteManyArgs>(args?: SelectSubset<T, DocumentLikeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DocumentLikes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentLikeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DocumentLikes
     * const documentLike = await prisma.documentLike.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DocumentLikeUpdateManyArgs>(args: SelectSubset<T, DocumentLikeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DocumentLikes and returns the data updated in the database.
     * @param {DocumentLikeUpdateManyAndReturnArgs} args - Arguments to update many DocumentLikes.
     * @example
     * // Update many DocumentLikes
     * const documentLike = await prisma.documentLike.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DocumentLikes and only return the `id`
     * const documentLikeWithIdOnly = await prisma.documentLike.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 DocumentLikeUpdateManyAndReturnArgs>(args: SelectSubset<T, DocumentLikeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DocumentLike.
     * @param {DocumentLikeUpsertArgs} args - Arguments to update or create a DocumentLike.
     * @example
     * // Update or create a DocumentLike
     * const documentLike = await prisma.documentLike.upsert({
     *   create: {
     *     // ... data to create a DocumentLike
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DocumentLike we want to update
     *   }
     * })
     */
    upsert<T extends DocumentLikeUpsertArgs>(args: SelectSubset<T, DocumentLikeUpsertArgs<ExtArgs>>): Prisma__DocumentLikeClient<$Result.GetResult<Prisma.$DocumentLikePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DocumentLikes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentLikeCountArgs} args - Arguments to filter DocumentLikes to count.
     * @example
     * // Count the number of DocumentLikes
     * const count = await prisma.documentLike.count({
     *   where: {
     *     // ... the filter for the DocumentLikes we want to count
     *   }
     * })
    **/
    count<T extends DocumentLikeCountArgs>(
      args?: Subset<T, DocumentLikeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DocumentLikeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DocumentLike.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentLikeAggregateArgs} 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 DocumentLikeAggregateArgs>(args: Subset<T, DocumentLikeAggregateArgs>): Prisma.PrismaPromise<GetDocumentLikeAggregateType<T>>

    /**
     * Group by DocumentLike.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentLikeGroupByArgs} 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 DocumentLikeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DocumentLikeGroupByArgs['orderBy'] }
        : { orderBy?: DocumentLikeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DocumentLikeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDocumentLikeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DocumentLike model
   */
  readonly fields: DocumentLikeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DocumentLike.
   * 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__DocumentLikeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    spDocument<T extends DocumentLike$spDocumentArgs<ExtArgs> = {}>(args?: Subset<T, DocumentLike$spDocumentArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    article<T extends DocumentLike$articleArgs<ExtArgs> = {}>(args?: Subset<T, DocumentLike$articleArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DocumentLike model
   */
  interface DocumentLikeFieldRefs {
    readonly id: FieldRef<"DocumentLike", 'String'>
    readonly spDocumentId: FieldRef<"DocumentLike", 'String'>
    readonly articleId: FieldRef<"DocumentLike", 'String'>
    readonly userId: FieldRef<"DocumentLike", 'String'>
    readonly type: FieldRef<"DocumentLike", 'LikeType'>
    readonly createdAt: FieldRef<"DocumentLike", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DocumentLike findUnique
   */
  export type DocumentLikeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * Filter, which DocumentLike to fetch.
     */
    where: DocumentLikeWhereUniqueInput
  }

  /**
   * DocumentLike findUniqueOrThrow
   */
  export type DocumentLikeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * Filter, which DocumentLike to fetch.
     */
    where: DocumentLikeWhereUniqueInput
  }

  /**
   * DocumentLike findFirst
   */
  export type DocumentLikeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * Filter, which DocumentLike to fetch.
     */
    where?: DocumentLikeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentLikes to fetch.
     */
    orderBy?: DocumentLikeOrderByWithRelationInput | DocumentLikeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DocumentLikes.
     */
    cursor?: DocumentLikeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentLikes 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` DocumentLikes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DocumentLikes.
     */
    distinct?: DocumentLikeScalarFieldEnum | DocumentLikeScalarFieldEnum[]
  }

  /**
   * DocumentLike findFirstOrThrow
   */
  export type DocumentLikeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * Filter, which DocumentLike to fetch.
     */
    where?: DocumentLikeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentLikes to fetch.
     */
    orderBy?: DocumentLikeOrderByWithRelationInput | DocumentLikeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DocumentLikes.
     */
    cursor?: DocumentLikeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentLikes 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` DocumentLikes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DocumentLikes.
     */
    distinct?: DocumentLikeScalarFieldEnum | DocumentLikeScalarFieldEnum[]
  }

  /**
   * DocumentLike findMany
   */
  export type DocumentLikeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * Filter, which DocumentLikes to fetch.
     */
    where?: DocumentLikeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentLikes to fetch.
     */
    orderBy?: DocumentLikeOrderByWithRelationInput | DocumentLikeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DocumentLikes.
     */
    cursor?: DocumentLikeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentLikes 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` DocumentLikes.
     */
    skip?: number
    distinct?: DocumentLikeScalarFieldEnum | DocumentLikeScalarFieldEnum[]
  }

  /**
   * DocumentLike create
   */
  export type DocumentLikeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * The data needed to create a DocumentLike.
     */
    data: XOR<DocumentLikeCreateInput, DocumentLikeUncheckedCreateInput>
  }

  /**
   * DocumentLike createMany
   */
  export type DocumentLikeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DocumentLikes.
     */
    data: DocumentLikeCreateManyInput | DocumentLikeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DocumentLike createManyAndReturn
   */
  export type DocumentLikeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * The data used to create many DocumentLikes.
     */
    data: DocumentLikeCreateManyInput | DocumentLikeCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * DocumentLike update
   */
  export type DocumentLikeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * The data needed to update a DocumentLike.
     */
    data: XOR<DocumentLikeUpdateInput, DocumentLikeUncheckedUpdateInput>
    /**
     * Choose, which DocumentLike to update.
     */
    where: DocumentLikeWhereUniqueInput
  }

  /**
   * DocumentLike updateMany
   */
  export type DocumentLikeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DocumentLikes.
     */
    data: XOR<DocumentLikeUpdateManyMutationInput, DocumentLikeUncheckedUpdateManyInput>
    /**
     * Filter which DocumentLikes to update
     */
    where?: DocumentLikeWhereInput
    /**
     * Limit how many DocumentLikes to update.
     */
    limit?: number
  }

  /**
   * DocumentLike updateManyAndReturn
   */
  export type DocumentLikeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * The data used to update DocumentLikes.
     */
    data: XOR<DocumentLikeUpdateManyMutationInput, DocumentLikeUncheckedUpdateManyInput>
    /**
     * Filter which DocumentLikes to update
     */
    where?: DocumentLikeWhereInput
    /**
     * Limit how many DocumentLikes to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * DocumentLike upsert
   */
  export type DocumentLikeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * The filter to search for the DocumentLike to update in case it exists.
     */
    where: DocumentLikeWhereUniqueInput
    /**
     * In case the DocumentLike found by the `where` argument doesn't exist, create a new DocumentLike with this data.
     */
    create: XOR<DocumentLikeCreateInput, DocumentLikeUncheckedCreateInput>
    /**
     * In case the DocumentLike was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DocumentLikeUpdateInput, DocumentLikeUncheckedUpdateInput>
  }

  /**
   * DocumentLike delete
   */
  export type DocumentLikeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
    /**
     * Filter which DocumentLike to delete.
     */
    where: DocumentLikeWhereUniqueInput
  }

  /**
   * DocumentLike deleteMany
   */
  export type DocumentLikeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DocumentLikes to delete
     */
    where?: DocumentLikeWhereInput
    /**
     * Limit how many DocumentLikes to delete.
     */
    limit?: number
  }

  /**
   * DocumentLike.spDocument
   */
  export type DocumentLike$spDocumentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    where?: SPDocumentIndexWhereInput
  }

  /**
   * DocumentLike.article
   */
  export type DocumentLike$articleArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    where?: KnowledgeArticleWhereInput
  }

  /**
   * DocumentLike without action
   */
  export type DocumentLikeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentLike
     */
    select?: DocumentLikeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentLike
     */
    omit?: DocumentLikeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentLikeInclude<ExtArgs> | null
  }


  /**
   * Model DocumentComment
   */

  export type AggregateDocumentComment = {
    _count: DocumentCommentCountAggregateOutputType | null
    _min: DocumentCommentMinAggregateOutputType | null
    _max: DocumentCommentMaxAggregateOutputType | null
  }

  export type DocumentCommentMinAggregateOutputType = {
    id: string | null
    spDocumentId: string | null
    articleId: string | null
    userId: string | null
    content: string | null
    parentId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type DocumentCommentMaxAggregateOutputType = {
    id: string | null
    spDocumentId: string | null
    articleId: string | null
    userId: string | null
    content: string | null
    parentId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type DocumentCommentCountAggregateOutputType = {
    id: number
    spDocumentId: number
    articleId: number
    userId: number
    content: number
    parentId: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type DocumentCommentMinAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    content?: true
    parentId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type DocumentCommentMaxAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    content?: true
    parentId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type DocumentCommentCountAggregateInputType = {
    id?: true
    spDocumentId?: true
    articleId?: true
    userId?: true
    content?: true
    parentId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type DocumentCommentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DocumentComment to aggregate.
     */
    where?: DocumentCommentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentComments to fetch.
     */
    orderBy?: DocumentCommentOrderByWithRelationInput | DocumentCommentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DocumentCommentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentComments 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` DocumentComments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DocumentComments
    **/
    _count?: true | DocumentCommentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DocumentCommentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DocumentCommentMaxAggregateInputType
  }

  export type GetDocumentCommentAggregateType<T extends DocumentCommentAggregateArgs> = {
        [P in keyof T & keyof AggregateDocumentComment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDocumentComment[P]>
      : GetScalarType<T[P], AggregateDocumentComment[P]>
  }




  export type DocumentCommentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DocumentCommentWhereInput
    orderBy?: DocumentCommentOrderByWithAggregationInput | DocumentCommentOrderByWithAggregationInput[]
    by: DocumentCommentScalarFieldEnum[] | DocumentCommentScalarFieldEnum
    having?: DocumentCommentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DocumentCommentCountAggregateInputType | true
    _min?: DocumentCommentMinAggregateInputType
    _max?: DocumentCommentMaxAggregateInputType
  }

  export type DocumentCommentGroupByOutputType = {
    id: string
    spDocumentId: string | null
    articleId: string | null
    userId: string
    content: string
    parentId: string | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: DocumentCommentCountAggregateOutputType | null
    _min: DocumentCommentMinAggregateOutputType | null
    _max: DocumentCommentMaxAggregateOutputType | null
  }

  type GetDocumentCommentGroupByPayload<T extends DocumentCommentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DocumentCommentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DocumentCommentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DocumentCommentGroupByOutputType[P]>
            : GetScalarType<T[P], DocumentCommentGroupByOutputType[P]>
        }
      >
    >


  export type DocumentCommentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    content?: boolean
    parentId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    spDocument?: boolean | DocumentComment$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentComment$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    parent?: boolean | DocumentComment$parentArgs<ExtArgs>
    replies?: boolean | DocumentComment$repliesArgs<ExtArgs>
    mentions?: boolean | DocumentComment$mentionsArgs<ExtArgs>
    _count?: boolean | DocumentCommentCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["documentComment"]>

  export type DocumentCommentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    content?: boolean
    parentId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    spDocument?: boolean | DocumentComment$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentComment$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    parent?: boolean | DocumentComment$parentArgs<ExtArgs>
  }, ExtArgs["result"]["documentComment"]>

  export type DocumentCommentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    content?: boolean
    parentId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    spDocument?: boolean | DocumentComment$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentComment$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    parent?: boolean | DocumentComment$parentArgs<ExtArgs>
  }, ExtArgs["result"]["documentComment"]>

  export type DocumentCommentSelectScalar = {
    id?: boolean
    spDocumentId?: boolean
    articleId?: boolean
    userId?: boolean
    content?: boolean
    parentId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type DocumentCommentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "spDocumentId" | "articleId" | "userId" | "content" | "parentId" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["documentComment"]>
  export type DocumentCommentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentComment$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentComment$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    parent?: boolean | DocumentComment$parentArgs<ExtArgs>
    replies?: boolean | DocumentComment$repliesArgs<ExtArgs>
    mentions?: boolean | DocumentComment$mentionsArgs<ExtArgs>
    _count?: boolean | DocumentCommentCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type DocumentCommentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentComment$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentComment$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    parent?: boolean | DocumentComment$parentArgs<ExtArgs>
  }
  export type DocumentCommentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    spDocument?: boolean | DocumentComment$spDocumentArgs<ExtArgs>
    article?: boolean | DocumentComment$articleArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
    parent?: boolean | DocumentComment$parentArgs<ExtArgs>
  }

  export type $DocumentCommentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DocumentComment"
    objects: {
      spDocument: Prisma.$SPDocumentIndexPayload<ExtArgs> | null
      article: Prisma.$KnowledgeArticlePayload<ExtArgs> | null
      user: Prisma.$UserPayload<ExtArgs>
      parent: Prisma.$DocumentCommentPayload<ExtArgs> | null
      replies: Prisma.$DocumentCommentPayload<ExtArgs>[]
      mentions: Prisma.$UserMentionPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      spDocumentId: string | null
      articleId: string | null
      userId: string
      content: string
      parentId: string | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["documentComment"]>
    composites: {}
  }

  type DocumentCommentGetPayload<S extends boolean | null | undefined | DocumentCommentDefaultArgs> = $Result.GetResult<Prisma.$DocumentCommentPayload, S>

  type DocumentCommentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DocumentCommentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DocumentCommentCountAggregateInputType | true
    }

  export interface DocumentCommentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DocumentComment'], meta: { name: 'DocumentComment' } }
    /**
     * Find zero or one DocumentComment that matches the filter.
     * @param {DocumentCommentFindUniqueArgs} args - Arguments to find a DocumentComment
     * @example
     * // Get one DocumentComment
     * const documentComment = await prisma.documentComment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DocumentCommentFindUniqueArgs>(args: SelectSubset<T, DocumentCommentFindUniqueArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DocumentComment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DocumentCommentFindUniqueOrThrowArgs} args - Arguments to find a DocumentComment
     * @example
     * // Get one DocumentComment
     * const documentComment = await prisma.documentComment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DocumentCommentFindUniqueOrThrowArgs>(args: SelectSubset<T, DocumentCommentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DocumentComment 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 {DocumentCommentFindFirstArgs} args - Arguments to find a DocumentComment
     * @example
     * // Get one DocumentComment
     * const documentComment = await prisma.documentComment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DocumentCommentFindFirstArgs>(args?: SelectSubset<T, DocumentCommentFindFirstArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DocumentComment 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 {DocumentCommentFindFirstOrThrowArgs} args - Arguments to find a DocumentComment
     * @example
     * // Get one DocumentComment
     * const documentComment = await prisma.documentComment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DocumentCommentFindFirstOrThrowArgs>(args?: SelectSubset<T, DocumentCommentFindFirstOrThrowArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DocumentComments 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 {DocumentCommentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DocumentComments
     * const documentComments = await prisma.documentComment.findMany()
     * 
     * // Get first 10 DocumentComments
     * const documentComments = await prisma.documentComment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const documentCommentWithIdOnly = await prisma.documentComment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DocumentCommentFindManyArgs>(args?: SelectSubset<T, DocumentCommentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DocumentComment.
     * @param {DocumentCommentCreateArgs} args - Arguments to create a DocumentComment.
     * @example
     * // Create one DocumentComment
     * const DocumentComment = await prisma.documentComment.create({
     *   data: {
     *     // ... data to create a DocumentComment
     *   }
     * })
     * 
     */
    create<T extends DocumentCommentCreateArgs>(args: SelectSubset<T, DocumentCommentCreateArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DocumentComments.
     * @param {DocumentCommentCreateManyArgs} args - Arguments to create many DocumentComments.
     * @example
     * // Create many DocumentComments
     * const documentComment = await prisma.documentComment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DocumentCommentCreateManyArgs>(args?: SelectSubset<T, DocumentCommentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DocumentComments and returns the data saved in the database.
     * @param {DocumentCommentCreateManyAndReturnArgs} args - Arguments to create many DocumentComments.
     * @example
     * // Create many DocumentComments
     * const documentComment = await prisma.documentComment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DocumentComments and only return the `id`
     * const documentCommentWithIdOnly = await prisma.documentComment.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 DocumentCommentCreateManyAndReturnArgs>(args?: SelectSubset<T, DocumentCommentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DocumentComment.
     * @param {DocumentCommentDeleteArgs} args - Arguments to delete one DocumentComment.
     * @example
     * // Delete one DocumentComment
     * const DocumentComment = await prisma.documentComment.delete({
     *   where: {
     *     // ... filter to delete one DocumentComment
     *   }
     * })
     * 
     */
    delete<T extends DocumentCommentDeleteArgs>(args: SelectSubset<T, DocumentCommentDeleteArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DocumentComment.
     * @param {DocumentCommentUpdateArgs} args - Arguments to update one DocumentComment.
     * @example
     * // Update one DocumentComment
     * const documentComment = await prisma.documentComment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DocumentCommentUpdateArgs>(args: SelectSubset<T, DocumentCommentUpdateArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DocumentComments.
     * @param {DocumentCommentDeleteManyArgs} args - Arguments to filter DocumentComments to delete.
     * @example
     * // Delete a few DocumentComments
     * const { count } = await prisma.documentComment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DocumentCommentDeleteManyArgs>(args?: SelectSubset<T, DocumentCommentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DocumentComments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentCommentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DocumentComments
     * const documentComment = await prisma.documentComment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DocumentCommentUpdateManyArgs>(args: SelectSubset<T, DocumentCommentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DocumentComments and returns the data updated in the database.
     * @param {DocumentCommentUpdateManyAndReturnArgs} args - Arguments to update many DocumentComments.
     * @example
     * // Update many DocumentComments
     * const documentComment = await prisma.documentComment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DocumentComments and only return the `id`
     * const documentCommentWithIdOnly = await prisma.documentComment.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 DocumentCommentUpdateManyAndReturnArgs>(args: SelectSubset<T, DocumentCommentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DocumentComment.
     * @param {DocumentCommentUpsertArgs} args - Arguments to update or create a DocumentComment.
     * @example
     * // Update or create a DocumentComment
     * const documentComment = await prisma.documentComment.upsert({
     *   create: {
     *     // ... data to create a DocumentComment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DocumentComment we want to update
     *   }
     * })
     */
    upsert<T extends DocumentCommentUpsertArgs>(args: SelectSubset<T, DocumentCommentUpsertArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DocumentComments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentCommentCountArgs} args - Arguments to filter DocumentComments to count.
     * @example
     * // Count the number of DocumentComments
     * const count = await prisma.documentComment.count({
     *   where: {
     *     // ... the filter for the DocumentComments we want to count
     *   }
     * })
    **/
    count<T extends DocumentCommentCountArgs>(
      args?: Subset<T, DocumentCommentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DocumentCommentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DocumentComment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentCommentAggregateArgs} 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 DocumentCommentAggregateArgs>(args: Subset<T, DocumentCommentAggregateArgs>): Prisma.PrismaPromise<GetDocumentCommentAggregateType<T>>

    /**
     * Group by DocumentComment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DocumentCommentGroupByArgs} 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 DocumentCommentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DocumentCommentGroupByArgs['orderBy'] }
        : { orderBy?: DocumentCommentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DocumentCommentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDocumentCommentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DocumentComment model
   */
  readonly fields: DocumentCommentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DocumentComment.
   * 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__DocumentCommentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    spDocument<T extends DocumentComment$spDocumentArgs<ExtArgs> = {}>(args?: Subset<T, DocumentComment$spDocumentArgs<ExtArgs>>): Prisma__SPDocumentIndexClient<$Result.GetResult<Prisma.$SPDocumentIndexPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    article<T extends DocumentComment$articleArgs<ExtArgs> = {}>(args?: Subset<T, DocumentComment$articleArgs<ExtArgs>>): Prisma__KnowledgeArticleClient<$Result.GetResult<Prisma.$KnowledgeArticlePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    parent<T extends DocumentComment$parentArgs<ExtArgs> = {}>(args?: Subset<T, DocumentComment$parentArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    replies<T extends DocumentComment$repliesArgs<ExtArgs> = {}>(args?: Subset<T, DocumentComment$repliesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    mentions<T extends DocumentComment$mentionsArgs<ExtArgs> = {}>(args?: Subset<T, DocumentComment$mentionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DocumentComment model
   */
  interface DocumentCommentFieldRefs {
    readonly id: FieldRef<"DocumentComment", 'String'>
    readonly spDocumentId: FieldRef<"DocumentComment", 'String'>
    readonly articleId: FieldRef<"DocumentComment", 'String'>
    readonly userId: FieldRef<"DocumentComment", 'String'>
    readonly content: FieldRef<"DocumentComment", 'String'>
    readonly parentId: FieldRef<"DocumentComment", 'String'>
    readonly createdAt: FieldRef<"DocumentComment", 'DateTime'>
    readonly updatedAt: FieldRef<"DocumentComment", 'DateTime'>
    readonly deletedAt: FieldRef<"DocumentComment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DocumentComment findUnique
   */
  export type DocumentCommentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * Filter, which DocumentComment to fetch.
     */
    where: DocumentCommentWhereUniqueInput
  }

  /**
   * DocumentComment findUniqueOrThrow
   */
  export type DocumentCommentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * Filter, which DocumentComment to fetch.
     */
    where: DocumentCommentWhereUniqueInput
  }

  /**
   * DocumentComment findFirst
   */
  export type DocumentCommentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * Filter, which DocumentComment to fetch.
     */
    where?: DocumentCommentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentComments to fetch.
     */
    orderBy?: DocumentCommentOrderByWithRelationInput | DocumentCommentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DocumentComments.
     */
    cursor?: DocumentCommentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentComments 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` DocumentComments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DocumentComments.
     */
    distinct?: DocumentCommentScalarFieldEnum | DocumentCommentScalarFieldEnum[]
  }

  /**
   * DocumentComment findFirstOrThrow
   */
  export type DocumentCommentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * Filter, which DocumentComment to fetch.
     */
    where?: DocumentCommentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentComments to fetch.
     */
    orderBy?: DocumentCommentOrderByWithRelationInput | DocumentCommentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DocumentComments.
     */
    cursor?: DocumentCommentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentComments 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` DocumentComments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DocumentComments.
     */
    distinct?: DocumentCommentScalarFieldEnum | DocumentCommentScalarFieldEnum[]
  }

  /**
   * DocumentComment findMany
   */
  export type DocumentCommentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * Filter, which DocumentComments to fetch.
     */
    where?: DocumentCommentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DocumentComments to fetch.
     */
    orderBy?: DocumentCommentOrderByWithRelationInput | DocumentCommentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DocumentComments.
     */
    cursor?: DocumentCommentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DocumentComments 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` DocumentComments.
     */
    skip?: number
    distinct?: DocumentCommentScalarFieldEnum | DocumentCommentScalarFieldEnum[]
  }

  /**
   * DocumentComment create
   */
  export type DocumentCommentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * The data needed to create a DocumentComment.
     */
    data: XOR<DocumentCommentCreateInput, DocumentCommentUncheckedCreateInput>
  }

  /**
   * DocumentComment createMany
   */
  export type DocumentCommentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DocumentComments.
     */
    data: DocumentCommentCreateManyInput | DocumentCommentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DocumentComment createManyAndReturn
   */
  export type DocumentCommentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * The data used to create many DocumentComments.
     */
    data: DocumentCommentCreateManyInput | DocumentCommentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * DocumentComment update
   */
  export type DocumentCommentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * The data needed to update a DocumentComment.
     */
    data: XOR<DocumentCommentUpdateInput, DocumentCommentUncheckedUpdateInput>
    /**
     * Choose, which DocumentComment to update.
     */
    where: DocumentCommentWhereUniqueInput
  }

  /**
   * DocumentComment updateMany
   */
  export type DocumentCommentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DocumentComments.
     */
    data: XOR<DocumentCommentUpdateManyMutationInput, DocumentCommentUncheckedUpdateManyInput>
    /**
     * Filter which DocumentComments to update
     */
    where?: DocumentCommentWhereInput
    /**
     * Limit how many DocumentComments to update.
     */
    limit?: number
  }

  /**
   * DocumentComment updateManyAndReturn
   */
  export type DocumentCommentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * The data used to update DocumentComments.
     */
    data: XOR<DocumentCommentUpdateManyMutationInput, DocumentCommentUncheckedUpdateManyInput>
    /**
     * Filter which DocumentComments to update
     */
    where?: DocumentCommentWhereInput
    /**
     * Limit how many DocumentComments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * DocumentComment upsert
   */
  export type DocumentCommentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * The filter to search for the DocumentComment to update in case it exists.
     */
    where: DocumentCommentWhereUniqueInput
    /**
     * In case the DocumentComment found by the `where` argument doesn't exist, create a new DocumentComment with this data.
     */
    create: XOR<DocumentCommentCreateInput, DocumentCommentUncheckedCreateInput>
    /**
     * In case the DocumentComment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DocumentCommentUpdateInput, DocumentCommentUncheckedUpdateInput>
  }

  /**
   * DocumentComment delete
   */
  export type DocumentCommentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    /**
     * Filter which DocumentComment to delete.
     */
    where: DocumentCommentWhereUniqueInput
  }

  /**
   * DocumentComment deleteMany
   */
  export type DocumentCommentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DocumentComments to delete
     */
    where?: DocumentCommentWhereInput
    /**
     * Limit how many DocumentComments to delete.
     */
    limit?: number
  }

  /**
   * DocumentComment.spDocument
   */
  export type DocumentComment$spDocumentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SPDocumentIndex
     */
    select?: SPDocumentIndexSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SPDocumentIndex
     */
    omit?: SPDocumentIndexOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SPDocumentIndexInclude<ExtArgs> | null
    where?: SPDocumentIndexWhereInput
  }

  /**
   * DocumentComment.article
   */
  export type DocumentComment$articleArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KnowledgeArticle
     */
    select?: KnowledgeArticleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KnowledgeArticle
     */
    omit?: KnowledgeArticleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KnowledgeArticleInclude<ExtArgs> | null
    where?: KnowledgeArticleWhereInput
  }

  /**
   * DocumentComment.parent
   */
  export type DocumentComment$parentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    where?: DocumentCommentWhereInput
  }

  /**
   * DocumentComment.replies
   */
  export type DocumentComment$repliesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
    where?: DocumentCommentWhereInput
    orderBy?: DocumentCommentOrderByWithRelationInput | DocumentCommentOrderByWithRelationInput[]
    cursor?: DocumentCommentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DocumentCommentScalarFieldEnum | DocumentCommentScalarFieldEnum[]
  }

  /**
   * DocumentComment.mentions
   */
  export type DocumentComment$mentionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    where?: UserMentionWhereInput
    orderBy?: UserMentionOrderByWithRelationInput | UserMentionOrderByWithRelationInput[]
    cursor?: UserMentionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: UserMentionScalarFieldEnum | UserMentionScalarFieldEnum[]
  }

  /**
   * DocumentComment without action
   */
  export type DocumentCommentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DocumentComment
     */
    select?: DocumentCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DocumentComment
     */
    omit?: DocumentCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DocumentCommentInclude<ExtArgs> | null
  }


  /**
   * Model UserMention
   */

  export type AggregateUserMention = {
    _count: UserMentionCountAggregateOutputType | null
    _min: UserMentionMinAggregateOutputType | null
    _max: UserMentionMaxAggregateOutputType | null
  }

  export type UserMentionMinAggregateOutputType = {
    id: string | null
    commentId: string | null
    mentionedUserId: string | null
    readAt: Date | null
    createdAt: Date | null
  }

  export type UserMentionMaxAggregateOutputType = {
    id: string | null
    commentId: string | null
    mentionedUserId: string | null
    readAt: Date | null
    createdAt: Date | null
  }

  export type UserMentionCountAggregateOutputType = {
    id: number
    commentId: number
    mentionedUserId: number
    readAt: number
    createdAt: number
    _all: number
  }


  export type UserMentionMinAggregateInputType = {
    id?: true
    commentId?: true
    mentionedUserId?: true
    readAt?: true
    createdAt?: true
  }

  export type UserMentionMaxAggregateInputType = {
    id?: true
    commentId?: true
    mentionedUserId?: true
    readAt?: true
    createdAt?: true
  }

  export type UserMentionCountAggregateInputType = {
    id?: true
    commentId?: true
    mentionedUserId?: true
    readAt?: true
    createdAt?: true
    _all?: true
  }

  export type UserMentionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UserMention to aggregate.
     */
    where?: UserMentionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserMentions to fetch.
     */
    orderBy?: UserMentionOrderByWithRelationInput | UserMentionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: UserMentionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserMentions 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` UserMentions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned UserMentions
    **/
    _count?: true | UserMentionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: UserMentionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: UserMentionMaxAggregateInputType
  }

  export type GetUserMentionAggregateType<T extends UserMentionAggregateArgs> = {
        [P in keyof T & keyof AggregateUserMention]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateUserMention[P]>
      : GetScalarType<T[P], AggregateUserMention[P]>
  }




  export type UserMentionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UserMentionWhereInput
    orderBy?: UserMentionOrderByWithAggregationInput | UserMentionOrderByWithAggregationInput[]
    by: UserMentionScalarFieldEnum[] | UserMentionScalarFieldEnum
    having?: UserMentionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: UserMentionCountAggregateInputType | true
    _min?: UserMentionMinAggregateInputType
    _max?: UserMentionMaxAggregateInputType
  }

  export type UserMentionGroupByOutputType = {
    id: string
    commentId: string
    mentionedUserId: string
    readAt: Date | null
    createdAt: Date
    _count: UserMentionCountAggregateOutputType | null
    _min: UserMentionMinAggregateOutputType | null
    _max: UserMentionMaxAggregateOutputType | null
  }

  type GetUserMentionGroupByPayload<T extends UserMentionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<UserMentionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof UserMentionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], UserMentionGroupByOutputType[P]>
            : GetScalarType<T[P], UserMentionGroupByOutputType[P]>
        }
      >
    >


  export type UserMentionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    commentId?: boolean
    mentionedUserId?: boolean
    readAt?: boolean
    createdAt?: boolean
    comment?: boolean | DocumentCommentDefaultArgs<ExtArgs>
    mentionedUser?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["userMention"]>

  export type UserMentionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    commentId?: boolean
    mentionedUserId?: boolean
    readAt?: boolean
    createdAt?: boolean
    comment?: boolean | DocumentCommentDefaultArgs<ExtArgs>
    mentionedUser?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["userMention"]>

  export type UserMentionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    commentId?: boolean
    mentionedUserId?: boolean
    readAt?: boolean
    createdAt?: boolean
    comment?: boolean | DocumentCommentDefaultArgs<ExtArgs>
    mentionedUser?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["userMention"]>

  export type UserMentionSelectScalar = {
    id?: boolean
    commentId?: boolean
    mentionedUserId?: boolean
    readAt?: boolean
    createdAt?: boolean
  }

  export type UserMentionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "commentId" | "mentionedUserId" | "readAt" | "createdAt", ExtArgs["result"]["userMention"]>
  export type UserMentionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    comment?: boolean | DocumentCommentDefaultArgs<ExtArgs>
    mentionedUser?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type UserMentionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    comment?: boolean | DocumentCommentDefaultArgs<ExtArgs>
    mentionedUser?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type UserMentionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    comment?: boolean | DocumentCommentDefaultArgs<ExtArgs>
    mentionedUser?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $UserMentionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "UserMention"
    objects: {
      comment: Prisma.$DocumentCommentPayload<ExtArgs>
      mentionedUser: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      commentId: string
      mentionedUserId: string
      readAt: Date | null
      createdAt: Date
    }, ExtArgs["result"]["userMention"]>
    composites: {}
  }

  type UserMentionGetPayload<S extends boolean | null | undefined | UserMentionDefaultArgs> = $Result.GetResult<Prisma.$UserMentionPayload, S>

  type UserMentionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<UserMentionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: UserMentionCountAggregateInputType | true
    }

  export interface UserMentionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['UserMention'], meta: { name: 'UserMention' } }
    /**
     * Find zero or one UserMention that matches the filter.
     * @param {UserMentionFindUniqueArgs} args - Arguments to find a UserMention
     * @example
     * // Get one UserMention
     * const userMention = await prisma.userMention.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends UserMentionFindUniqueArgs>(args: SelectSubset<T, UserMentionFindUniqueArgs<ExtArgs>>): Prisma__UserMentionClient<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one UserMention that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {UserMentionFindUniqueOrThrowArgs} args - Arguments to find a UserMention
     * @example
     * // Get one UserMention
     * const userMention = await prisma.userMention.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends UserMentionFindUniqueOrThrowArgs>(args: SelectSubset<T, UserMentionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__UserMentionClient<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UserMention 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 {UserMentionFindFirstArgs} args - Arguments to find a UserMention
     * @example
     * // Get one UserMention
     * const userMention = await prisma.userMention.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends UserMentionFindFirstArgs>(args?: SelectSubset<T, UserMentionFindFirstArgs<ExtArgs>>): Prisma__UserMentionClient<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UserMention 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 {UserMentionFindFirstOrThrowArgs} args - Arguments to find a UserMention
     * @example
     * // Get one UserMention
     * const userMention = await prisma.userMention.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends UserMentionFindFirstOrThrowArgs>(args?: SelectSubset<T, UserMentionFindFirstOrThrowArgs<ExtArgs>>): Prisma__UserMentionClient<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more UserMentions 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 {UserMentionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all UserMentions
     * const userMentions = await prisma.userMention.findMany()
     * 
     * // Get first 10 UserMentions
     * const userMentions = await prisma.userMention.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const userMentionWithIdOnly = await prisma.userMention.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends UserMentionFindManyArgs>(args?: SelectSubset<T, UserMentionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a UserMention.
     * @param {UserMentionCreateArgs} args - Arguments to create a UserMention.
     * @example
     * // Create one UserMention
     * const UserMention = await prisma.userMention.create({
     *   data: {
     *     // ... data to create a UserMention
     *   }
     * })
     * 
     */
    create<T extends UserMentionCreateArgs>(args: SelectSubset<T, UserMentionCreateArgs<ExtArgs>>): Prisma__UserMentionClient<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many UserMentions.
     * @param {UserMentionCreateManyArgs} args - Arguments to create many UserMentions.
     * @example
     * // Create many UserMentions
     * const userMention = await prisma.userMention.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends UserMentionCreateManyArgs>(args?: SelectSubset<T, UserMentionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many UserMentions and returns the data saved in the database.
     * @param {UserMentionCreateManyAndReturnArgs} args - Arguments to create many UserMentions.
     * @example
     * // Create many UserMentions
     * const userMention = await prisma.userMention.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many UserMentions and only return the `id`
     * const userMentionWithIdOnly = await prisma.userMention.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 UserMentionCreateManyAndReturnArgs>(args?: SelectSubset<T, UserMentionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a UserMention.
     * @param {UserMentionDeleteArgs} args - Arguments to delete one UserMention.
     * @example
     * // Delete one UserMention
     * const UserMention = await prisma.userMention.delete({
     *   where: {
     *     // ... filter to delete one UserMention
     *   }
     * })
     * 
     */
    delete<T extends UserMentionDeleteArgs>(args: SelectSubset<T, UserMentionDeleteArgs<ExtArgs>>): Prisma__UserMentionClient<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one UserMention.
     * @param {UserMentionUpdateArgs} args - Arguments to update one UserMention.
     * @example
     * // Update one UserMention
     * const userMention = await prisma.userMention.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends UserMentionUpdateArgs>(args: SelectSubset<T, UserMentionUpdateArgs<ExtArgs>>): Prisma__UserMentionClient<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more UserMentions.
     * @param {UserMentionDeleteManyArgs} args - Arguments to filter UserMentions to delete.
     * @example
     * // Delete a few UserMentions
     * const { count } = await prisma.userMention.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends UserMentionDeleteManyArgs>(args?: SelectSubset<T, UserMentionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UserMentions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserMentionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many UserMentions
     * const userMention = await prisma.userMention.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends UserMentionUpdateManyArgs>(args: SelectSubset<T, UserMentionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UserMentions and returns the data updated in the database.
     * @param {UserMentionUpdateManyAndReturnArgs} args - Arguments to update many UserMentions.
     * @example
     * // Update many UserMentions
     * const userMention = await prisma.userMention.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more UserMentions and only return the `id`
     * const userMentionWithIdOnly = await prisma.userMention.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 UserMentionUpdateManyAndReturnArgs>(args: SelectSubset<T, UserMentionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one UserMention.
     * @param {UserMentionUpsertArgs} args - Arguments to update or create a UserMention.
     * @example
     * // Update or create a UserMention
     * const userMention = await prisma.userMention.upsert({
     *   create: {
     *     // ... data to create a UserMention
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the UserMention we want to update
     *   }
     * })
     */
    upsert<T extends UserMentionUpsertArgs>(args: SelectSubset<T, UserMentionUpsertArgs<ExtArgs>>): Prisma__UserMentionClient<$Result.GetResult<Prisma.$UserMentionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of UserMentions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserMentionCountArgs} args - Arguments to filter UserMentions to count.
     * @example
     * // Count the number of UserMentions
     * const count = await prisma.userMention.count({
     *   where: {
     *     // ... the filter for the UserMentions we want to count
     *   }
     * })
    **/
    count<T extends UserMentionCountArgs>(
      args?: Subset<T, UserMentionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], UserMentionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a UserMention.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserMentionAggregateArgs} 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 UserMentionAggregateArgs>(args: Subset<T, UserMentionAggregateArgs>): Prisma.PrismaPromise<GetUserMentionAggregateType<T>>

    /**
     * Group by UserMention.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UserMentionGroupByArgs} 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 UserMentionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: UserMentionGroupByArgs['orderBy'] }
        : { orderBy?: UserMentionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, UserMentionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetUserMentionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the UserMention model
   */
  readonly fields: UserMentionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for UserMention.
   * 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__UserMentionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    comment<T extends DocumentCommentDefaultArgs<ExtArgs> = {}>(args?: Subset<T, DocumentCommentDefaultArgs<ExtArgs>>): Prisma__DocumentCommentClient<$Result.GetResult<Prisma.$DocumentCommentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    mentionedUser<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the UserMention model
   */
  interface UserMentionFieldRefs {
    readonly id: FieldRef<"UserMention", 'String'>
    readonly commentId: FieldRef<"UserMention", 'String'>
    readonly mentionedUserId: FieldRef<"UserMention", 'String'>
    readonly readAt: FieldRef<"UserMention", 'DateTime'>
    readonly createdAt: FieldRef<"UserMention", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * UserMention findUnique
   */
  export type UserMentionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * Filter, which UserMention to fetch.
     */
    where: UserMentionWhereUniqueInput
  }

  /**
   * UserMention findUniqueOrThrow
   */
  export type UserMentionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * Filter, which UserMention to fetch.
     */
    where: UserMentionWhereUniqueInput
  }

  /**
   * UserMention findFirst
   */
  export type UserMentionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * Filter, which UserMention to fetch.
     */
    where?: UserMentionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserMentions to fetch.
     */
    orderBy?: UserMentionOrderByWithRelationInput | UserMentionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UserMentions.
     */
    cursor?: UserMentionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserMentions 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` UserMentions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UserMentions.
     */
    distinct?: UserMentionScalarFieldEnum | UserMentionScalarFieldEnum[]
  }

  /**
   * UserMention findFirstOrThrow
   */
  export type UserMentionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * Filter, which UserMention to fetch.
     */
    where?: UserMentionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserMentions to fetch.
     */
    orderBy?: UserMentionOrderByWithRelationInput | UserMentionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UserMentions.
     */
    cursor?: UserMentionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserMentions 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` UserMentions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UserMentions.
     */
    distinct?: UserMentionScalarFieldEnum | UserMentionScalarFieldEnum[]
  }

  /**
   * UserMention findMany
   */
  export type UserMentionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * Filter, which UserMentions to fetch.
     */
    where?: UserMentionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UserMentions to fetch.
     */
    orderBy?: UserMentionOrderByWithRelationInput | UserMentionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing UserMentions.
     */
    cursor?: UserMentionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UserMentions 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` UserMentions.
     */
    skip?: number
    distinct?: UserMentionScalarFieldEnum | UserMentionScalarFieldEnum[]
  }

  /**
   * UserMention create
   */
  export type UserMentionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * The data needed to create a UserMention.
     */
    data: XOR<UserMentionCreateInput, UserMentionUncheckedCreateInput>
  }

  /**
   * UserMention createMany
   */
  export type UserMentionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many UserMentions.
     */
    data: UserMentionCreateManyInput | UserMentionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * UserMention createManyAndReturn
   */
  export type UserMentionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * The data used to create many UserMentions.
     */
    data: UserMentionCreateManyInput | UserMentionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * UserMention update
   */
  export type UserMentionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * The data needed to update a UserMention.
     */
    data: XOR<UserMentionUpdateInput, UserMentionUncheckedUpdateInput>
    /**
     * Choose, which UserMention to update.
     */
    where: UserMentionWhereUniqueInput
  }

  /**
   * UserMention updateMany
   */
  export type UserMentionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update UserMentions.
     */
    data: XOR<UserMentionUpdateManyMutationInput, UserMentionUncheckedUpdateManyInput>
    /**
     * Filter which UserMentions to update
     */
    where?: UserMentionWhereInput
    /**
     * Limit how many UserMentions to update.
     */
    limit?: number
  }

  /**
   * UserMention updateManyAndReturn
   */
  export type UserMentionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * The data used to update UserMentions.
     */
    data: XOR<UserMentionUpdateManyMutationInput, UserMentionUncheckedUpdateManyInput>
    /**
     * Filter which UserMentions to update
     */
    where?: UserMentionWhereInput
    /**
     * Limit how many UserMentions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * UserMention upsert
   */
  export type UserMentionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * The filter to search for the UserMention to update in case it exists.
     */
    where: UserMentionWhereUniqueInput
    /**
     * In case the UserMention found by the `where` argument doesn't exist, create a new UserMention with this data.
     */
    create: XOR<UserMentionCreateInput, UserMentionUncheckedCreateInput>
    /**
     * In case the UserMention was found with the provided `where` argument, update it with this data.
     */
    update: XOR<UserMentionUpdateInput, UserMentionUncheckedUpdateInput>
  }

  /**
   * UserMention delete
   */
  export type UserMentionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
    /**
     * Filter which UserMention to delete.
     */
    where: UserMentionWhereUniqueInput
  }

  /**
   * UserMention deleteMany
   */
  export type UserMentionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UserMentions to delete
     */
    where?: UserMentionWhereInput
    /**
     * Limit how many UserMentions to delete.
     */
    limit?: number
  }

  /**
   * UserMention without action
   */
  export type UserMentionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UserMention
     */
    select?: UserMentionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UserMention
     */
    omit?: UserMentionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserMentionInclude<ExtArgs> | null
  }


  /**
   * Model SyncTask
   */

  export type AggregateSyncTask = {
    _count: SyncTaskCountAggregateOutputType | null
    _avg: SyncTaskAvgAggregateOutputType | null
    _sum: SyncTaskSumAggregateOutputType | null
    _min: SyncTaskMinAggregateOutputType | null
    _max: SyncTaskMaxAggregateOutputType | null
  }

  export type SyncTaskAvgAggregateOutputType = {
    totalItems: number | null
    processedItems: number | null
    processingItems: number | null
    failedItems: number | null
    skippedItems: number | null
    processedTokens: number | null
    processedChunks: number | null
  }

  export type SyncTaskSumAggregateOutputType = {
    totalItems: number | null
    processedItems: number | null
    processingItems: number | null
    failedItems: number | null
    skippedItems: number | null
    processedTokens: number | null
    processedChunks: number | null
  }

  export type SyncTaskMinAggregateOutputType = {
    id: string | null
    taskType: string | null
    triggerSource: string | null
    status: $Enums.SyncStatus | null
    totalItems: number | null
    processedItems: number | null
    processingItems: number | null
    failedItems: number | null
    skippedItems: number | null
    processedTokens: number | null
    processedChunks: number | null
    error: string | null
    startedAt: Date | null
    completedAt: Date | null
    lastProgressAt: Date | null
    createdAt: Date | null
  }

  export type SyncTaskMaxAggregateOutputType = {
    id: string | null
    taskType: string | null
    triggerSource: string | null
    status: $Enums.SyncStatus | null
    totalItems: number | null
    processedItems: number | null
    processingItems: number | null
    failedItems: number | null
    skippedItems: number | null
    processedTokens: number | null
    processedChunks: number | null
    error: string | null
    startedAt: Date | null
    completedAt: Date | null
    lastProgressAt: Date | null
    createdAt: Date | null
  }

  export type SyncTaskCountAggregateOutputType = {
    id: number
    taskType: number
    triggerSource: number
    status: number
    totalItems: number
    processedItems: number
    processingItems: number
    failedItems: number
    skippedItems: number
    processedTokens: number
    processedChunks: number
    error: number
    startedAt: number
    completedAt: number
    lastProgressAt: number
    createdAt: number
    _all: number
  }


  export type SyncTaskAvgAggregateInputType = {
    totalItems?: true
    processedItems?: true
    processingItems?: true
    failedItems?: true
    skippedItems?: true
    processedTokens?: true
    processedChunks?: true
  }

  export type SyncTaskSumAggregateInputType = {
    totalItems?: true
    processedItems?: true
    processingItems?: true
    failedItems?: true
    skippedItems?: true
    processedTokens?: true
    processedChunks?: true
  }

  export type SyncTaskMinAggregateInputType = {
    id?: true
    taskType?: true
    triggerSource?: true
    status?: true
    totalItems?: true
    processedItems?: true
    processingItems?: true
    failedItems?: true
    skippedItems?: true
    processedTokens?: true
    processedChunks?: true
    error?: true
    startedAt?: true
    completedAt?: true
    lastProgressAt?: true
    createdAt?: true
  }

  export type SyncTaskMaxAggregateInputType = {
    id?: true
    taskType?: true
    triggerSource?: true
    status?: true
    totalItems?: true
    processedItems?: true
    processingItems?: true
    failedItems?: true
    skippedItems?: true
    processedTokens?: true
    processedChunks?: true
    error?: true
    startedAt?: true
    completedAt?: true
    lastProgressAt?: true
    createdAt?: true
  }

  export type SyncTaskCountAggregateInputType = {
    id?: true
    taskType?: true
    triggerSource?: true
    status?: true
    totalItems?: true
    processedItems?: true
    processingItems?: true
    failedItems?: true
    skippedItems?: true
    processedTokens?: true
    processedChunks?: true
    error?: true
    startedAt?: true
    completedAt?: true
    lastProgressAt?: true
    createdAt?: true
    _all?: true
  }

  export type SyncTaskAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SyncTask to aggregate.
     */
    where?: SyncTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTasks to fetch.
     */
    orderBy?: SyncTaskOrderByWithRelationInput | SyncTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SyncTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTasks 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` SyncTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SyncTasks
    **/
    _count?: true | SyncTaskCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SyncTaskAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SyncTaskSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SyncTaskMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SyncTaskMaxAggregateInputType
  }

  export type GetSyncTaskAggregateType<T extends SyncTaskAggregateArgs> = {
        [P in keyof T & keyof AggregateSyncTask]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSyncTask[P]>
      : GetScalarType<T[P], AggregateSyncTask[P]>
  }




  export type SyncTaskGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SyncTaskWhereInput
    orderBy?: SyncTaskOrderByWithAggregationInput | SyncTaskOrderByWithAggregationInput[]
    by: SyncTaskScalarFieldEnum[] | SyncTaskScalarFieldEnum
    having?: SyncTaskScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SyncTaskCountAggregateInputType | true
    _avg?: SyncTaskAvgAggregateInputType
    _sum?: SyncTaskSumAggregateInputType
    _min?: SyncTaskMinAggregateInputType
    _max?: SyncTaskMaxAggregateInputType
  }

  export type SyncTaskGroupByOutputType = {
    id: string
    taskType: string
    triggerSource: string | null
    status: $Enums.SyncStatus
    totalItems: number | null
    processedItems: number
    processingItems: number
    failedItems: number
    skippedItems: number
    processedTokens: number
    processedChunks: number
    error: string | null
    startedAt: Date | null
    completedAt: Date | null
    lastProgressAt: Date | null
    createdAt: Date
    _count: SyncTaskCountAggregateOutputType | null
    _avg: SyncTaskAvgAggregateOutputType | null
    _sum: SyncTaskSumAggregateOutputType | null
    _min: SyncTaskMinAggregateOutputType | null
    _max: SyncTaskMaxAggregateOutputType | null
  }

  type GetSyncTaskGroupByPayload<T extends SyncTaskGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SyncTaskGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SyncTaskGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SyncTaskGroupByOutputType[P]>
            : GetScalarType<T[P], SyncTaskGroupByOutputType[P]>
        }
      >
    >


  export type SyncTaskSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskType?: boolean
    triggerSource?: boolean
    status?: boolean
    totalItems?: boolean
    processedItems?: boolean
    processingItems?: boolean
    failedItems?: boolean
    skippedItems?: boolean
    processedTokens?: boolean
    processedChunks?: boolean
    error?: boolean
    startedAt?: boolean
    completedAt?: boolean
    lastProgressAt?: boolean
    createdAt?: boolean
    skippedDetails?: boolean | SyncTask$skippedDetailsArgs<ExtArgs>
    processedDetails?: boolean | SyncTask$processedDetailsArgs<ExtArgs>
    failedDetails?: boolean | SyncTask$failedDetailsArgs<ExtArgs>
    _count?: boolean | SyncTaskCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTask"]>

  export type SyncTaskSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskType?: boolean
    triggerSource?: boolean
    status?: boolean
    totalItems?: boolean
    processedItems?: boolean
    processingItems?: boolean
    failedItems?: boolean
    skippedItems?: boolean
    processedTokens?: boolean
    processedChunks?: boolean
    error?: boolean
    startedAt?: boolean
    completedAt?: boolean
    lastProgressAt?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["syncTask"]>

  export type SyncTaskSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskType?: boolean
    triggerSource?: boolean
    status?: boolean
    totalItems?: boolean
    processedItems?: boolean
    processingItems?: boolean
    failedItems?: boolean
    skippedItems?: boolean
    processedTokens?: boolean
    processedChunks?: boolean
    error?: boolean
    startedAt?: boolean
    completedAt?: boolean
    lastProgressAt?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["syncTask"]>

  export type SyncTaskSelectScalar = {
    id?: boolean
    taskType?: boolean
    triggerSource?: boolean
    status?: boolean
    totalItems?: boolean
    processedItems?: boolean
    processingItems?: boolean
    failedItems?: boolean
    skippedItems?: boolean
    processedTokens?: boolean
    processedChunks?: boolean
    error?: boolean
    startedAt?: boolean
    completedAt?: boolean
    lastProgressAt?: boolean
    createdAt?: boolean
  }

  export type SyncTaskOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskType" | "triggerSource" | "status" | "totalItems" | "processedItems" | "processingItems" | "failedItems" | "skippedItems" | "processedTokens" | "processedChunks" | "error" | "startedAt" | "completedAt" | "lastProgressAt" | "createdAt", ExtArgs["result"]["syncTask"]>
  export type SyncTaskInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    skippedDetails?: boolean | SyncTask$skippedDetailsArgs<ExtArgs>
    processedDetails?: boolean | SyncTask$processedDetailsArgs<ExtArgs>
    failedDetails?: boolean | SyncTask$failedDetailsArgs<ExtArgs>
    _count?: boolean | SyncTaskCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type SyncTaskIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type SyncTaskIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $SyncTaskPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SyncTask"
    objects: {
      skippedDetails: Prisma.$SyncTaskSkippedItemPayload<ExtArgs>[]
      processedDetails: Prisma.$SyncTaskProcessedItemPayload<ExtArgs>[]
      failedDetails: Prisma.$SyncTaskFailedItemPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskType: string
      triggerSource: string | null
      status: $Enums.SyncStatus
      totalItems: number | null
      processedItems: number
      processingItems: number
      failedItems: number
      skippedItems: number
      processedTokens: number
      processedChunks: number
      error: string | null
      startedAt: Date | null
      completedAt: Date | null
      lastProgressAt: Date | null
      createdAt: Date
    }, ExtArgs["result"]["syncTask"]>
    composites: {}
  }

  type SyncTaskGetPayload<S extends boolean | null | undefined | SyncTaskDefaultArgs> = $Result.GetResult<Prisma.$SyncTaskPayload, S>

  type SyncTaskCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SyncTaskFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SyncTaskCountAggregateInputType | true
    }

  export interface SyncTaskDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SyncTask'], meta: { name: 'SyncTask' } }
    /**
     * Find zero or one SyncTask that matches the filter.
     * @param {SyncTaskFindUniqueArgs} args - Arguments to find a SyncTask
     * @example
     * // Get one SyncTask
     * const syncTask = await prisma.syncTask.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SyncTaskFindUniqueArgs>(args: SelectSubset<T, SyncTaskFindUniqueArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SyncTask that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SyncTaskFindUniqueOrThrowArgs} args - Arguments to find a SyncTask
     * @example
     * // Get one SyncTask
     * const syncTask = await prisma.syncTask.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SyncTaskFindUniqueOrThrowArgs>(args: SelectSubset<T, SyncTaskFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SyncTask 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 {SyncTaskFindFirstArgs} args - Arguments to find a SyncTask
     * @example
     * // Get one SyncTask
     * const syncTask = await prisma.syncTask.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SyncTaskFindFirstArgs>(args?: SelectSubset<T, SyncTaskFindFirstArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SyncTask 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 {SyncTaskFindFirstOrThrowArgs} args - Arguments to find a SyncTask
     * @example
     * // Get one SyncTask
     * const syncTask = await prisma.syncTask.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SyncTaskFindFirstOrThrowArgs>(args?: SelectSubset<T, SyncTaskFindFirstOrThrowArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SyncTasks 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 {SyncTaskFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SyncTasks
     * const syncTasks = await prisma.syncTask.findMany()
     * 
     * // Get first 10 SyncTasks
     * const syncTasks = await prisma.syncTask.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const syncTaskWithIdOnly = await prisma.syncTask.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SyncTaskFindManyArgs>(args?: SelectSubset<T, SyncTaskFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SyncTask.
     * @param {SyncTaskCreateArgs} args - Arguments to create a SyncTask.
     * @example
     * // Create one SyncTask
     * const SyncTask = await prisma.syncTask.create({
     *   data: {
     *     // ... data to create a SyncTask
     *   }
     * })
     * 
     */
    create<T extends SyncTaskCreateArgs>(args: SelectSubset<T, SyncTaskCreateArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SyncTasks.
     * @param {SyncTaskCreateManyArgs} args - Arguments to create many SyncTasks.
     * @example
     * // Create many SyncTasks
     * const syncTask = await prisma.syncTask.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SyncTaskCreateManyArgs>(args?: SelectSubset<T, SyncTaskCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SyncTasks and returns the data saved in the database.
     * @param {SyncTaskCreateManyAndReturnArgs} args - Arguments to create many SyncTasks.
     * @example
     * // Create many SyncTasks
     * const syncTask = await prisma.syncTask.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SyncTasks and only return the `id`
     * const syncTaskWithIdOnly = await prisma.syncTask.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 SyncTaskCreateManyAndReturnArgs>(args?: SelectSubset<T, SyncTaskCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SyncTask.
     * @param {SyncTaskDeleteArgs} args - Arguments to delete one SyncTask.
     * @example
     * // Delete one SyncTask
     * const SyncTask = await prisma.syncTask.delete({
     *   where: {
     *     // ... filter to delete one SyncTask
     *   }
     * })
     * 
     */
    delete<T extends SyncTaskDeleteArgs>(args: SelectSubset<T, SyncTaskDeleteArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SyncTask.
     * @param {SyncTaskUpdateArgs} args - Arguments to update one SyncTask.
     * @example
     * // Update one SyncTask
     * const syncTask = await prisma.syncTask.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SyncTaskUpdateArgs>(args: SelectSubset<T, SyncTaskUpdateArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SyncTasks.
     * @param {SyncTaskDeleteManyArgs} args - Arguments to filter SyncTasks to delete.
     * @example
     * // Delete a few SyncTasks
     * const { count } = await prisma.syncTask.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SyncTaskDeleteManyArgs>(args?: SelectSubset<T, SyncTaskDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SyncTasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SyncTasks
     * const syncTask = await prisma.syncTask.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SyncTaskUpdateManyArgs>(args: SelectSubset<T, SyncTaskUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SyncTasks and returns the data updated in the database.
     * @param {SyncTaskUpdateManyAndReturnArgs} args - Arguments to update many SyncTasks.
     * @example
     * // Update many SyncTasks
     * const syncTask = await prisma.syncTask.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SyncTasks and only return the `id`
     * const syncTaskWithIdOnly = await prisma.syncTask.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 SyncTaskUpdateManyAndReturnArgs>(args: SelectSubset<T, SyncTaskUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SyncTask.
     * @param {SyncTaskUpsertArgs} args - Arguments to update or create a SyncTask.
     * @example
     * // Update or create a SyncTask
     * const syncTask = await prisma.syncTask.upsert({
     *   create: {
     *     // ... data to create a SyncTask
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SyncTask we want to update
     *   }
     * })
     */
    upsert<T extends SyncTaskUpsertArgs>(args: SelectSubset<T, SyncTaskUpsertArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SyncTasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskCountArgs} args - Arguments to filter SyncTasks to count.
     * @example
     * // Count the number of SyncTasks
     * const count = await prisma.syncTask.count({
     *   where: {
     *     // ... the filter for the SyncTasks we want to count
     *   }
     * })
    **/
    count<T extends SyncTaskCountArgs>(
      args?: Subset<T, SyncTaskCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SyncTaskCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SyncTask.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskAggregateArgs} 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 SyncTaskAggregateArgs>(args: Subset<T, SyncTaskAggregateArgs>): Prisma.PrismaPromise<GetSyncTaskAggregateType<T>>

    /**
     * Group by SyncTask.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskGroupByArgs} 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 SyncTaskGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SyncTaskGroupByArgs['orderBy'] }
        : { orderBy?: SyncTaskGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SyncTaskGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSyncTaskGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SyncTask model
   */
  readonly fields: SyncTaskFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SyncTask.
   * 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__SyncTaskClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    skippedDetails<T extends SyncTask$skippedDetailsArgs<ExtArgs> = {}>(args?: Subset<T, SyncTask$skippedDetailsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    processedDetails<T extends SyncTask$processedDetailsArgs<ExtArgs> = {}>(args?: Subset<T, SyncTask$processedDetailsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    failedDetails<T extends SyncTask$failedDetailsArgs<ExtArgs> = {}>(args?: Subset<T, SyncTask$failedDetailsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SyncTask model
   */
  interface SyncTaskFieldRefs {
    readonly id: FieldRef<"SyncTask", 'String'>
    readonly taskType: FieldRef<"SyncTask", 'String'>
    readonly triggerSource: FieldRef<"SyncTask", 'String'>
    readonly status: FieldRef<"SyncTask", 'SyncStatus'>
    readonly totalItems: FieldRef<"SyncTask", 'Int'>
    readonly processedItems: FieldRef<"SyncTask", 'Int'>
    readonly processingItems: FieldRef<"SyncTask", 'Int'>
    readonly failedItems: FieldRef<"SyncTask", 'Int'>
    readonly skippedItems: FieldRef<"SyncTask", 'Int'>
    readonly processedTokens: FieldRef<"SyncTask", 'Int'>
    readonly processedChunks: FieldRef<"SyncTask", 'Int'>
    readonly error: FieldRef<"SyncTask", 'String'>
    readonly startedAt: FieldRef<"SyncTask", 'DateTime'>
    readonly completedAt: FieldRef<"SyncTask", 'DateTime'>
    readonly lastProgressAt: FieldRef<"SyncTask", 'DateTime'>
    readonly createdAt: FieldRef<"SyncTask", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SyncTask findUnique
   */
  export type SyncTaskFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * Filter, which SyncTask to fetch.
     */
    where: SyncTaskWhereUniqueInput
  }

  /**
   * SyncTask findUniqueOrThrow
   */
  export type SyncTaskFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * Filter, which SyncTask to fetch.
     */
    where: SyncTaskWhereUniqueInput
  }

  /**
   * SyncTask findFirst
   */
  export type SyncTaskFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * Filter, which SyncTask to fetch.
     */
    where?: SyncTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTasks to fetch.
     */
    orderBy?: SyncTaskOrderByWithRelationInput | SyncTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SyncTasks.
     */
    cursor?: SyncTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTasks 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` SyncTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SyncTasks.
     */
    distinct?: SyncTaskScalarFieldEnum | SyncTaskScalarFieldEnum[]
  }

  /**
   * SyncTask findFirstOrThrow
   */
  export type SyncTaskFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * Filter, which SyncTask to fetch.
     */
    where?: SyncTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTasks to fetch.
     */
    orderBy?: SyncTaskOrderByWithRelationInput | SyncTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SyncTasks.
     */
    cursor?: SyncTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTasks 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` SyncTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SyncTasks.
     */
    distinct?: SyncTaskScalarFieldEnum | SyncTaskScalarFieldEnum[]
  }

  /**
   * SyncTask findMany
   */
  export type SyncTaskFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * Filter, which SyncTasks to fetch.
     */
    where?: SyncTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTasks to fetch.
     */
    orderBy?: SyncTaskOrderByWithRelationInput | SyncTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SyncTasks.
     */
    cursor?: SyncTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTasks 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` SyncTasks.
     */
    skip?: number
    distinct?: SyncTaskScalarFieldEnum | SyncTaskScalarFieldEnum[]
  }

  /**
   * SyncTask create
   */
  export type SyncTaskCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * The data needed to create a SyncTask.
     */
    data: XOR<SyncTaskCreateInput, SyncTaskUncheckedCreateInput>
  }

  /**
   * SyncTask createMany
   */
  export type SyncTaskCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SyncTasks.
     */
    data: SyncTaskCreateManyInput | SyncTaskCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SyncTask createManyAndReturn
   */
  export type SyncTaskCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * The data used to create many SyncTasks.
     */
    data: SyncTaskCreateManyInput | SyncTaskCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SyncTask update
   */
  export type SyncTaskUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * The data needed to update a SyncTask.
     */
    data: XOR<SyncTaskUpdateInput, SyncTaskUncheckedUpdateInput>
    /**
     * Choose, which SyncTask to update.
     */
    where: SyncTaskWhereUniqueInput
  }

  /**
   * SyncTask updateMany
   */
  export type SyncTaskUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SyncTasks.
     */
    data: XOR<SyncTaskUpdateManyMutationInput, SyncTaskUncheckedUpdateManyInput>
    /**
     * Filter which SyncTasks to update
     */
    where?: SyncTaskWhereInput
    /**
     * Limit how many SyncTasks to update.
     */
    limit?: number
  }

  /**
   * SyncTask updateManyAndReturn
   */
  export type SyncTaskUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * The data used to update SyncTasks.
     */
    data: XOR<SyncTaskUpdateManyMutationInput, SyncTaskUncheckedUpdateManyInput>
    /**
     * Filter which SyncTasks to update
     */
    where?: SyncTaskWhereInput
    /**
     * Limit how many SyncTasks to update.
     */
    limit?: number
  }

  /**
   * SyncTask upsert
   */
  export type SyncTaskUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * The filter to search for the SyncTask to update in case it exists.
     */
    where: SyncTaskWhereUniqueInput
    /**
     * In case the SyncTask found by the `where` argument doesn't exist, create a new SyncTask with this data.
     */
    create: XOR<SyncTaskCreateInput, SyncTaskUncheckedCreateInput>
    /**
     * In case the SyncTask was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SyncTaskUpdateInput, SyncTaskUncheckedUpdateInput>
  }

  /**
   * SyncTask delete
   */
  export type SyncTaskDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
    /**
     * Filter which SyncTask to delete.
     */
    where: SyncTaskWhereUniqueInput
  }

  /**
   * SyncTask deleteMany
   */
  export type SyncTaskDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SyncTasks to delete
     */
    where?: SyncTaskWhereInput
    /**
     * Limit how many SyncTasks to delete.
     */
    limit?: number
  }

  /**
   * SyncTask.skippedDetails
   */
  export type SyncTask$skippedDetailsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    where?: SyncTaskSkippedItemWhereInput
    orderBy?: SyncTaskSkippedItemOrderByWithRelationInput | SyncTaskSkippedItemOrderByWithRelationInput[]
    cursor?: SyncTaskSkippedItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SyncTaskSkippedItemScalarFieldEnum | SyncTaskSkippedItemScalarFieldEnum[]
  }

  /**
   * SyncTask.processedDetails
   */
  export type SyncTask$processedDetailsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    where?: SyncTaskProcessedItemWhereInput
    orderBy?: SyncTaskProcessedItemOrderByWithRelationInput | SyncTaskProcessedItemOrderByWithRelationInput[]
    cursor?: SyncTaskProcessedItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SyncTaskProcessedItemScalarFieldEnum | SyncTaskProcessedItemScalarFieldEnum[]
  }

  /**
   * SyncTask.failedDetails
   */
  export type SyncTask$failedDetailsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    where?: SyncTaskFailedItemWhereInput
    orderBy?: SyncTaskFailedItemOrderByWithRelationInput | SyncTaskFailedItemOrderByWithRelationInput[]
    cursor?: SyncTaskFailedItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SyncTaskFailedItemScalarFieldEnum | SyncTaskFailedItemScalarFieldEnum[]
  }

  /**
   * SyncTask without action
   */
  export type SyncTaskDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTask
     */
    select?: SyncTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTask
     */
    omit?: SyncTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskInclude<ExtArgs> | null
  }


  /**
   * Model SyncTaskSkippedItem
   */

  export type AggregateSyncTaskSkippedItem = {
    _count: SyncTaskSkippedItemCountAggregateOutputType | null
    _min: SyncTaskSkippedItemMinAggregateOutputType | null
    _max: SyncTaskSkippedItemMaxAggregateOutputType | null
  }

  export type SyncTaskSkippedItemMinAggregateOutputType = {
    id: string | null
    taskId: string | null
    sourceType: $Enums.RagflowSourceType | null
    sourceId: string | null
    filename: string | null
    fileExtension: string | null
    mimeType: string | null
    reason: string | null
    createdAt: Date | null
  }

  export type SyncTaskSkippedItemMaxAggregateOutputType = {
    id: string | null
    taskId: string | null
    sourceType: $Enums.RagflowSourceType | null
    sourceId: string | null
    filename: string | null
    fileExtension: string | null
    mimeType: string | null
    reason: string | null
    createdAt: Date | null
  }

  export type SyncTaskSkippedItemCountAggregateOutputType = {
    id: number
    taskId: number
    sourceType: number
    sourceId: number
    filename: number
    fileExtension: number
    mimeType: number
    reason: number
    createdAt: number
    _all: number
  }


  export type SyncTaskSkippedItemMinAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    reason?: true
    createdAt?: true
  }

  export type SyncTaskSkippedItemMaxAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    reason?: true
    createdAt?: true
  }

  export type SyncTaskSkippedItemCountAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    reason?: true
    createdAt?: true
    _all?: true
  }

  export type SyncTaskSkippedItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SyncTaskSkippedItem to aggregate.
     */
    where?: SyncTaskSkippedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskSkippedItems to fetch.
     */
    orderBy?: SyncTaskSkippedItemOrderByWithRelationInput | SyncTaskSkippedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SyncTaskSkippedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskSkippedItems 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` SyncTaskSkippedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SyncTaskSkippedItems
    **/
    _count?: true | SyncTaskSkippedItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SyncTaskSkippedItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SyncTaskSkippedItemMaxAggregateInputType
  }

  export type GetSyncTaskSkippedItemAggregateType<T extends SyncTaskSkippedItemAggregateArgs> = {
        [P in keyof T & keyof AggregateSyncTaskSkippedItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSyncTaskSkippedItem[P]>
      : GetScalarType<T[P], AggregateSyncTaskSkippedItem[P]>
  }




  export type SyncTaskSkippedItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SyncTaskSkippedItemWhereInput
    orderBy?: SyncTaskSkippedItemOrderByWithAggregationInput | SyncTaskSkippedItemOrderByWithAggregationInput[]
    by: SyncTaskSkippedItemScalarFieldEnum[] | SyncTaskSkippedItemScalarFieldEnum
    having?: SyncTaskSkippedItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SyncTaskSkippedItemCountAggregateInputType | true
    _min?: SyncTaskSkippedItemMinAggregateInputType
    _max?: SyncTaskSkippedItemMaxAggregateInputType
  }

  export type SyncTaskSkippedItemGroupByOutputType = {
    id: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension: string | null
    mimeType: string | null
    reason: string
    createdAt: Date
    _count: SyncTaskSkippedItemCountAggregateOutputType | null
    _min: SyncTaskSkippedItemMinAggregateOutputType | null
    _max: SyncTaskSkippedItemMaxAggregateOutputType | null
  }

  type GetSyncTaskSkippedItemGroupByPayload<T extends SyncTaskSkippedItemGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SyncTaskSkippedItemGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SyncTaskSkippedItemGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SyncTaskSkippedItemGroupByOutputType[P]>
            : GetScalarType<T[P], SyncTaskSkippedItemGroupByOutputType[P]>
        }
      >
    >


  export type SyncTaskSkippedItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    reason?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskSkippedItem"]>

  export type SyncTaskSkippedItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    reason?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskSkippedItem"]>

  export type SyncTaskSkippedItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    reason?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskSkippedItem"]>

  export type SyncTaskSkippedItemSelectScalar = {
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    reason?: boolean
    createdAt?: boolean
  }

  export type SyncTaskSkippedItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskId" | "sourceType" | "sourceId" | "filename" | "fileExtension" | "mimeType" | "reason" | "createdAt", ExtArgs["result"]["syncTaskSkippedItem"]>
  export type SyncTaskSkippedItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }
  export type SyncTaskSkippedItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }
  export type SyncTaskSkippedItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }

  export type $SyncTaskSkippedItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SyncTaskSkippedItem"
    objects: {
      task: Prisma.$SyncTaskPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskId: string
      sourceType: $Enums.RagflowSourceType
      sourceId: string
      filename: string
      fileExtension: string | null
      mimeType: string | null
      reason: string
      createdAt: Date
    }, ExtArgs["result"]["syncTaskSkippedItem"]>
    composites: {}
  }

  type SyncTaskSkippedItemGetPayload<S extends boolean | null | undefined | SyncTaskSkippedItemDefaultArgs> = $Result.GetResult<Prisma.$SyncTaskSkippedItemPayload, S>

  type SyncTaskSkippedItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SyncTaskSkippedItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SyncTaskSkippedItemCountAggregateInputType | true
    }

  export interface SyncTaskSkippedItemDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SyncTaskSkippedItem'], meta: { name: 'SyncTaskSkippedItem' } }
    /**
     * Find zero or one SyncTaskSkippedItem that matches the filter.
     * @param {SyncTaskSkippedItemFindUniqueArgs} args - Arguments to find a SyncTaskSkippedItem
     * @example
     * // Get one SyncTaskSkippedItem
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SyncTaskSkippedItemFindUniqueArgs>(args: SelectSubset<T, SyncTaskSkippedItemFindUniqueArgs<ExtArgs>>): Prisma__SyncTaskSkippedItemClient<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SyncTaskSkippedItem that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SyncTaskSkippedItemFindUniqueOrThrowArgs} args - Arguments to find a SyncTaskSkippedItem
     * @example
     * // Get one SyncTaskSkippedItem
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SyncTaskSkippedItemFindUniqueOrThrowArgs>(args: SelectSubset<T, SyncTaskSkippedItemFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SyncTaskSkippedItemClient<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SyncTaskSkippedItem 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 {SyncTaskSkippedItemFindFirstArgs} args - Arguments to find a SyncTaskSkippedItem
     * @example
     * // Get one SyncTaskSkippedItem
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SyncTaskSkippedItemFindFirstArgs>(args?: SelectSubset<T, SyncTaskSkippedItemFindFirstArgs<ExtArgs>>): Prisma__SyncTaskSkippedItemClient<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SyncTaskSkippedItem 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 {SyncTaskSkippedItemFindFirstOrThrowArgs} args - Arguments to find a SyncTaskSkippedItem
     * @example
     * // Get one SyncTaskSkippedItem
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SyncTaskSkippedItemFindFirstOrThrowArgs>(args?: SelectSubset<T, SyncTaskSkippedItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__SyncTaskSkippedItemClient<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SyncTaskSkippedItems 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 {SyncTaskSkippedItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SyncTaskSkippedItems
     * const syncTaskSkippedItems = await prisma.syncTaskSkippedItem.findMany()
     * 
     * // Get first 10 SyncTaskSkippedItems
     * const syncTaskSkippedItems = await prisma.syncTaskSkippedItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const syncTaskSkippedItemWithIdOnly = await prisma.syncTaskSkippedItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SyncTaskSkippedItemFindManyArgs>(args?: SelectSubset<T, SyncTaskSkippedItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SyncTaskSkippedItem.
     * @param {SyncTaskSkippedItemCreateArgs} args - Arguments to create a SyncTaskSkippedItem.
     * @example
     * // Create one SyncTaskSkippedItem
     * const SyncTaskSkippedItem = await prisma.syncTaskSkippedItem.create({
     *   data: {
     *     // ... data to create a SyncTaskSkippedItem
     *   }
     * })
     * 
     */
    create<T extends SyncTaskSkippedItemCreateArgs>(args: SelectSubset<T, SyncTaskSkippedItemCreateArgs<ExtArgs>>): Prisma__SyncTaskSkippedItemClient<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SyncTaskSkippedItems.
     * @param {SyncTaskSkippedItemCreateManyArgs} args - Arguments to create many SyncTaskSkippedItems.
     * @example
     * // Create many SyncTaskSkippedItems
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SyncTaskSkippedItemCreateManyArgs>(args?: SelectSubset<T, SyncTaskSkippedItemCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SyncTaskSkippedItems and returns the data saved in the database.
     * @param {SyncTaskSkippedItemCreateManyAndReturnArgs} args - Arguments to create many SyncTaskSkippedItems.
     * @example
     * // Create many SyncTaskSkippedItems
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SyncTaskSkippedItems and only return the `id`
     * const syncTaskSkippedItemWithIdOnly = await prisma.syncTaskSkippedItem.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 SyncTaskSkippedItemCreateManyAndReturnArgs>(args?: SelectSubset<T, SyncTaskSkippedItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SyncTaskSkippedItem.
     * @param {SyncTaskSkippedItemDeleteArgs} args - Arguments to delete one SyncTaskSkippedItem.
     * @example
     * // Delete one SyncTaskSkippedItem
     * const SyncTaskSkippedItem = await prisma.syncTaskSkippedItem.delete({
     *   where: {
     *     // ... filter to delete one SyncTaskSkippedItem
     *   }
     * })
     * 
     */
    delete<T extends SyncTaskSkippedItemDeleteArgs>(args: SelectSubset<T, SyncTaskSkippedItemDeleteArgs<ExtArgs>>): Prisma__SyncTaskSkippedItemClient<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SyncTaskSkippedItem.
     * @param {SyncTaskSkippedItemUpdateArgs} args - Arguments to update one SyncTaskSkippedItem.
     * @example
     * // Update one SyncTaskSkippedItem
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SyncTaskSkippedItemUpdateArgs>(args: SelectSubset<T, SyncTaskSkippedItemUpdateArgs<ExtArgs>>): Prisma__SyncTaskSkippedItemClient<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SyncTaskSkippedItems.
     * @param {SyncTaskSkippedItemDeleteManyArgs} args - Arguments to filter SyncTaskSkippedItems to delete.
     * @example
     * // Delete a few SyncTaskSkippedItems
     * const { count } = await prisma.syncTaskSkippedItem.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SyncTaskSkippedItemDeleteManyArgs>(args?: SelectSubset<T, SyncTaskSkippedItemDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SyncTaskSkippedItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskSkippedItemUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SyncTaskSkippedItems
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SyncTaskSkippedItemUpdateManyArgs>(args: SelectSubset<T, SyncTaskSkippedItemUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SyncTaskSkippedItems and returns the data updated in the database.
     * @param {SyncTaskSkippedItemUpdateManyAndReturnArgs} args - Arguments to update many SyncTaskSkippedItems.
     * @example
     * // Update many SyncTaskSkippedItems
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SyncTaskSkippedItems and only return the `id`
     * const syncTaskSkippedItemWithIdOnly = await prisma.syncTaskSkippedItem.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 SyncTaskSkippedItemUpdateManyAndReturnArgs>(args: SelectSubset<T, SyncTaskSkippedItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SyncTaskSkippedItem.
     * @param {SyncTaskSkippedItemUpsertArgs} args - Arguments to update or create a SyncTaskSkippedItem.
     * @example
     * // Update or create a SyncTaskSkippedItem
     * const syncTaskSkippedItem = await prisma.syncTaskSkippedItem.upsert({
     *   create: {
     *     // ... data to create a SyncTaskSkippedItem
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SyncTaskSkippedItem we want to update
     *   }
     * })
     */
    upsert<T extends SyncTaskSkippedItemUpsertArgs>(args: SelectSubset<T, SyncTaskSkippedItemUpsertArgs<ExtArgs>>): Prisma__SyncTaskSkippedItemClient<$Result.GetResult<Prisma.$SyncTaskSkippedItemPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SyncTaskSkippedItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskSkippedItemCountArgs} args - Arguments to filter SyncTaskSkippedItems to count.
     * @example
     * // Count the number of SyncTaskSkippedItems
     * const count = await prisma.syncTaskSkippedItem.count({
     *   where: {
     *     // ... the filter for the SyncTaskSkippedItems we want to count
     *   }
     * })
    **/
    count<T extends SyncTaskSkippedItemCountArgs>(
      args?: Subset<T, SyncTaskSkippedItemCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SyncTaskSkippedItemCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SyncTaskSkippedItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskSkippedItemAggregateArgs} 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 SyncTaskSkippedItemAggregateArgs>(args: Subset<T, SyncTaskSkippedItemAggregateArgs>): Prisma.PrismaPromise<GetSyncTaskSkippedItemAggregateType<T>>

    /**
     * Group by SyncTaskSkippedItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskSkippedItemGroupByArgs} 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 SyncTaskSkippedItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SyncTaskSkippedItemGroupByArgs['orderBy'] }
        : { orderBy?: SyncTaskSkippedItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SyncTaskSkippedItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSyncTaskSkippedItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SyncTaskSkippedItem model
   */
  readonly fields: SyncTaskSkippedItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SyncTaskSkippedItem.
   * 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__SyncTaskSkippedItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends SyncTaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SyncTaskDefaultArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SyncTaskSkippedItem model
   */
  interface SyncTaskSkippedItemFieldRefs {
    readonly id: FieldRef<"SyncTaskSkippedItem", 'String'>
    readonly taskId: FieldRef<"SyncTaskSkippedItem", 'String'>
    readonly sourceType: FieldRef<"SyncTaskSkippedItem", 'RagflowSourceType'>
    readonly sourceId: FieldRef<"SyncTaskSkippedItem", 'String'>
    readonly filename: FieldRef<"SyncTaskSkippedItem", 'String'>
    readonly fileExtension: FieldRef<"SyncTaskSkippedItem", 'String'>
    readonly mimeType: FieldRef<"SyncTaskSkippedItem", 'String'>
    readonly reason: FieldRef<"SyncTaskSkippedItem", 'String'>
    readonly createdAt: FieldRef<"SyncTaskSkippedItem", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SyncTaskSkippedItem findUnique
   */
  export type SyncTaskSkippedItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskSkippedItem to fetch.
     */
    where: SyncTaskSkippedItemWhereUniqueInput
  }

  /**
   * SyncTaskSkippedItem findUniqueOrThrow
   */
  export type SyncTaskSkippedItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskSkippedItem to fetch.
     */
    where: SyncTaskSkippedItemWhereUniqueInput
  }

  /**
   * SyncTaskSkippedItem findFirst
   */
  export type SyncTaskSkippedItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskSkippedItem to fetch.
     */
    where?: SyncTaskSkippedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskSkippedItems to fetch.
     */
    orderBy?: SyncTaskSkippedItemOrderByWithRelationInput | SyncTaskSkippedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SyncTaskSkippedItems.
     */
    cursor?: SyncTaskSkippedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskSkippedItems 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` SyncTaskSkippedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SyncTaskSkippedItems.
     */
    distinct?: SyncTaskSkippedItemScalarFieldEnum | SyncTaskSkippedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskSkippedItem findFirstOrThrow
   */
  export type SyncTaskSkippedItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskSkippedItem to fetch.
     */
    where?: SyncTaskSkippedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskSkippedItems to fetch.
     */
    orderBy?: SyncTaskSkippedItemOrderByWithRelationInput | SyncTaskSkippedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SyncTaskSkippedItems.
     */
    cursor?: SyncTaskSkippedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskSkippedItems 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` SyncTaskSkippedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SyncTaskSkippedItems.
     */
    distinct?: SyncTaskSkippedItemScalarFieldEnum | SyncTaskSkippedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskSkippedItem findMany
   */
  export type SyncTaskSkippedItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskSkippedItems to fetch.
     */
    where?: SyncTaskSkippedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskSkippedItems to fetch.
     */
    orderBy?: SyncTaskSkippedItemOrderByWithRelationInput | SyncTaskSkippedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SyncTaskSkippedItems.
     */
    cursor?: SyncTaskSkippedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskSkippedItems 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` SyncTaskSkippedItems.
     */
    skip?: number
    distinct?: SyncTaskSkippedItemScalarFieldEnum | SyncTaskSkippedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskSkippedItem create
   */
  export type SyncTaskSkippedItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * The data needed to create a SyncTaskSkippedItem.
     */
    data: XOR<SyncTaskSkippedItemCreateInput, SyncTaskSkippedItemUncheckedCreateInput>
  }

  /**
   * SyncTaskSkippedItem createMany
   */
  export type SyncTaskSkippedItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SyncTaskSkippedItems.
     */
    data: SyncTaskSkippedItemCreateManyInput | SyncTaskSkippedItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SyncTaskSkippedItem createManyAndReturn
   */
  export type SyncTaskSkippedItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * The data used to create many SyncTaskSkippedItems.
     */
    data: SyncTaskSkippedItemCreateManyInput | SyncTaskSkippedItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SyncTaskSkippedItem update
   */
  export type SyncTaskSkippedItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * The data needed to update a SyncTaskSkippedItem.
     */
    data: XOR<SyncTaskSkippedItemUpdateInput, SyncTaskSkippedItemUncheckedUpdateInput>
    /**
     * Choose, which SyncTaskSkippedItem to update.
     */
    where: SyncTaskSkippedItemWhereUniqueInput
  }

  /**
   * SyncTaskSkippedItem updateMany
   */
  export type SyncTaskSkippedItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SyncTaskSkippedItems.
     */
    data: XOR<SyncTaskSkippedItemUpdateManyMutationInput, SyncTaskSkippedItemUncheckedUpdateManyInput>
    /**
     * Filter which SyncTaskSkippedItems to update
     */
    where?: SyncTaskSkippedItemWhereInput
    /**
     * Limit how many SyncTaskSkippedItems to update.
     */
    limit?: number
  }

  /**
   * SyncTaskSkippedItem updateManyAndReturn
   */
  export type SyncTaskSkippedItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * The data used to update SyncTaskSkippedItems.
     */
    data: XOR<SyncTaskSkippedItemUpdateManyMutationInput, SyncTaskSkippedItemUncheckedUpdateManyInput>
    /**
     * Filter which SyncTaskSkippedItems to update
     */
    where?: SyncTaskSkippedItemWhereInput
    /**
     * Limit how many SyncTaskSkippedItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SyncTaskSkippedItem upsert
   */
  export type SyncTaskSkippedItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * The filter to search for the SyncTaskSkippedItem to update in case it exists.
     */
    where: SyncTaskSkippedItemWhereUniqueInput
    /**
     * In case the SyncTaskSkippedItem found by the `where` argument doesn't exist, create a new SyncTaskSkippedItem with this data.
     */
    create: XOR<SyncTaskSkippedItemCreateInput, SyncTaskSkippedItemUncheckedCreateInput>
    /**
     * In case the SyncTaskSkippedItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SyncTaskSkippedItemUpdateInput, SyncTaskSkippedItemUncheckedUpdateInput>
  }

  /**
   * SyncTaskSkippedItem delete
   */
  export type SyncTaskSkippedItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
    /**
     * Filter which SyncTaskSkippedItem to delete.
     */
    where: SyncTaskSkippedItemWhereUniqueInput
  }

  /**
   * SyncTaskSkippedItem deleteMany
   */
  export type SyncTaskSkippedItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SyncTaskSkippedItems to delete
     */
    where?: SyncTaskSkippedItemWhereInput
    /**
     * Limit how many SyncTaskSkippedItems to delete.
     */
    limit?: number
  }

  /**
   * SyncTaskSkippedItem without action
   */
  export type SyncTaskSkippedItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskSkippedItem
     */
    select?: SyncTaskSkippedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskSkippedItem
     */
    omit?: SyncTaskSkippedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskSkippedItemInclude<ExtArgs> | null
  }


  /**
   * Model SyncTaskProcessedItem
   */

  export type AggregateSyncTaskProcessedItem = {
    _count: SyncTaskProcessedItemCountAggregateOutputType | null
    _avg: SyncTaskProcessedItemAvgAggregateOutputType | null
    _sum: SyncTaskProcessedItemSumAggregateOutputType | null
    _min: SyncTaskProcessedItemMinAggregateOutputType | null
    _max: SyncTaskProcessedItemMaxAggregateOutputType | null
  }

  export type SyncTaskProcessedItemAvgAggregateOutputType = {
    tokenCount: number | null
    chunkCount: number | null
    sourceSizeBytes: number | null
  }

  export type SyncTaskProcessedItemSumAggregateOutputType = {
    tokenCount: number | null
    chunkCount: number | null
    sourceSizeBytes: bigint | null
  }

  export type SyncTaskProcessedItemMinAggregateOutputType = {
    id: string | null
    taskId: string | null
    sourceType: $Enums.RagflowSourceType | null
    sourceId: string | null
    filename: string | null
    fileExtension: string | null
    mimeType: string | null
    ragflowDocumentId: string | null
    tokenCount: number | null
    chunkCount: number | null
    sourceSizeBytes: bigint | null
    status: $Enums.SyncItemStatus | null
    createdAt: Date | null
  }

  export type SyncTaskProcessedItemMaxAggregateOutputType = {
    id: string | null
    taskId: string | null
    sourceType: $Enums.RagflowSourceType | null
    sourceId: string | null
    filename: string | null
    fileExtension: string | null
    mimeType: string | null
    ragflowDocumentId: string | null
    tokenCount: number | null
    chunkCount: number | null
    sourceSizeBytes: bigint | null
    status: $Enums.SyncItemStatus | null
    createdAt: Date | null
  }

  export type SyncTaskProcessedItemCountAggregateOutputType = {
    id: number
    taskId: number
    sourceType: number
    sourceId: number
    filename: number
    fileExtension: number
    mimeType: number
    ragflowDocumentId: number
    tokenCount: number
    chunkCount: number
    sourceSizeBytes: number
    status: number
    createdAt: number
    _all: number
  }


  export type SyncTaskProcessedItemAvgAggregateInputType = {
    tokenCount?: true
    chunkCount?: true
    sourceSizeBytes?: true
  }

  export type SyncTaskProcessedItemSumAggregateInputType = {
    tokenCount?: true
    chunkCount?: true
    sourceSizeBytes?: true
  }

  export type SyncTaskProcessedItemMinAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    ragflowDocumentId?: true
    tokenCount?: true
    chunkCount?: true
    sourceSizeBytes?: true
    status?: true
    createdAt?: true
  }

  export type SyncTaskProcessedItemMaxAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    ragflowDocumentId?: true
    tokenCount?: true
    chunkCount?: true
    sourceSizeBytes?: true
    status?: true
    createdAt?: true
  }

  export type SyncTaskProcessedItemCountAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    ragflowDocumentId?: true
    tokenCount?: true
    chunkCount?: true
    sourceSizeBytes?: true
    status?: true
    createdAt?: true
    _all?: true
  }

  export type SyncTaskProcessedItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SyncTaskProcessedItem to aggregate.
     */
    where?: SyncTaskProcessedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskProcessedItems to fetch.
     */
    orderBy?: SyncTaskProcessedItemOrderByWithRelationInput | SyncTaskProcessedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SyncTaskProcessedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskProcessedItems 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` SyncTaskProcessedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SyncTaskProcessedItems
    **/
    _count?: true | SyncTaskProcessedItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SyncTaskProcessedItemAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SyncTaskProcessedItemSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SyncTaskProcessedItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SyncTaskProcessedItemMaxAggregateInputType
  }

  export type GetSyncTaskProcessedItemAggregateType<T extends SyncTaskProcessedItemAggregateArgs> = {
        [P in keyof T & keyof AggregateSyncTaskProcessedItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSyncTaskProcessedItem[P]>
      : GetScalarType<T[P], AggregateSyncTaskProcessedItem[P]>
  }




  export type SyncTaskProcessedItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SyncTaskProcessedItemWhereInput
    orderBy?: SyncTaskProcessedItemOrderByWithAggregationInput | SyncTaskProcessedItemOrderByWithAggregationInput[]
    by: SyncTaskProcessedItemScalarFieldEnum[] | SyncTaskProcessedItemScalarFieldEnum
    having?: SyncTaskProcessedItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SyncTaskProcessedItemCountAggregateInputType | true
    _avg?: SyncTaskProcessedItemAvgAggregateInputType
    _sum?: SyncTaskProcessedItemSumAggregateInputType
    _min?: SyncTaskProcessedItemMinAggregateInputType
    _max?: SyncTaskProcessedItemMaxAggregateInputType
  }

  export type SyncTaskProcessedItemGroupByOutputType = {
    id: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension: string | null
    mimeType: string | null
    ragflowDocumentId: string | null
    tokenCount: number | null
    chunkCount: number | null
    sourceSizeBytes: bigint | null
    status: $Enums.SyncItemStatus
    createdAt: Date
    _count: SyncTaskProcessedItemCountAggregateOutputType | null
    _avg: SyncTaskProcessedItemAvgAggregateOutputType | null
    _sum: SyncTaskProcessedItemSumAggregateOutputType | null
    _min: SyncTaskProcessedItemMinAggregateOutputType | null
    _max: SyncTaskProcessedItemMaxAggregateOutputType | null
  }

  type GetSyncTaskProcessedItemGroupByPayload<T extends SyncTaskProcessedItemGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SyncTaskProcessedItemGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SyncTaskProcessedItemGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SyncTaskProcessedItemGroupByOutputType[P]>
            : GetScalarType<T[P], SyncTaskProcessedItemGroupByOutputType[P]>
        }
      >
    >


  export type SyncTaskProcessedItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    ragflowDocumentId?: boolean
    tokenCount?: boolean
    chunkCount?: boolean
    sourceSizeBytes?: boolean
    status?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskProcessedItem"]>

  export type SyncTaskProcessedItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    ragflowDocumentId?: boolean
    tokenCount?: boolean
    chunkCount?: boolean
    sourceSizeBytes?: boolean
    status?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskProcessedItem"]>

  export type SyncTaskProcessedItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    ragflowDocumentId?: boolean
    tokenCount?: boolean
    chunkCount?: boolean
    sourceSizeBytes?: boolean
    status?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskProcessedItem"]>

  export type SyncTaskProcessedItemSelectScalar = {
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    ragflowDocumentId?: boolean
    tokenCount?: boolean
    chunkCount?: boolean
    sourceSizeBytes?: boolean
    status?: boolean
    createdAt?: boolean
  }

  export type SyncTaskProcessedItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskId" | "sourceType" | "sourceId" | "filename" | "fileExtension" | "mimeType" | "ragflowDocumentId" | "tokenCount" | "chunkCount" | "sourceSizeBytes" | "status" | "createdAt", ExtArgs["result"]["syncTaskProcessedItem"]>
  export type SyncTaskProcessedItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }
  export type SyncTaskProcessedItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }
  export type SyncTaskProcessedItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }

  export type $SyncTaskProcessedItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SyncTaskProcessedItem"
    objects: {
      task: Prisma.$SyncTaskPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskId: string
      sourceType: $Enums.RagflowSourceType
      sourceId: string
      filename: string
      fileExtension: string | null
      mimeType: string | null
      ragflowDocumentId: string | null
      tokenCount: number | null
      chunkCount: number | null
      sourceSizeBytes: bigint | null
      status: $Enums.SyncItemStatus
      createdAt: Date
    }, ExtArgs["result"]["syncTaskProcessedItem"]>
    composites: {}
  }

  type SyncTaskProcessedItemGetPayload<S extends boolean | null | undefined | SyncTaskProcessedItemDefaultArgs> = $Result.GetResult<Prisma.$SyncTaskProcessedItemPayload, S>

  type SyncTaskProcessedItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SyncTaskProcessedItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SyncTaskProcessedItemCountAggregateInputType | true
    }

  export interface SyncTaskProcessedItemDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SyncTaskProcessedItem'], meta: { name: 'SyncTaskProcessedItem' } }
    /**
     * Find zero or one SyncTaskProcessedItem that matches the filter.
     * @param {SyncTaskProcessedItemFindUniqueArgs} args - Arguments to find a SyncTaskProcessedItem
     * @example
     * // Get one SyncTaskProcessedItem
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SyncTaskProcessedItemFindUniqueArgs>(args: SelectSubset<T, SyncTaskProcessedItemFindUniqueArgs<ExtArgs>>): Prisma__SyncTaskProcessedItemClient<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SyncTaskProcessedItem that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SyncTaskProcessedItemFindUniqueOrThrowArgs} args - Arguments to find a SyncTaskProcessedItem
     * @example
     * // Get one SyncTaskProcessedItem
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SyncTaskProcessedItemFindUniqueOrThrowArgs>(args: SelectSubset<T, SyncTaskProcessedItemFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SyncTaskProcessedItemClient<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SyncTaskProcessedItem 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 {SyncTaskProcessedItemFindFirstArgs} args - Arguments to find a SyncTaskProcessedItem
     * @example
     * // Get one SyncTaskProcessedItem
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SyncTaskProcessedItemFindFirstArgs>(args?: SelectSubset<T, SyncTaskProcessedItemFindFirstArgs<ExtArgs>>): Prisma__SyncTaskProcessedItemClient<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SyncTaskProcessedItem 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 {SyncTaskProcessedItemFindFirstOrThrowArgs} args - Arguments to find a SyncTaskProcessedItem
     * @example
     * // Get one SyncTaskProcessedItem
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SyncTaskProcessedItemFindFirstOrThrowArgs>(args?: SelectSubset<T, SyncTaskProcessedItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__SyncTaskProcessedItemClient<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SyncTaskProcessedItems 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 {SyncTaskProcessedItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SyncTaskProcessedItems
     * const syncTaskProcessedItems = await prisma.syncTaskProcessedItem.findMany()
     * 
     * // Get first 10 SyncTaskProcessedItems
     * const syncTaskProcessedItems = await prisma.syncTaskProcessedItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const syncTaskProcessedItemWithIdOnly = await prisma.syncTaskProcessedItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SyncTaskProcessedItemFindManyArgs>(args?: SelectSubset<T, SyncTaskProcessedItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SyncTaskProcessedItem.
     * @param {SyncTaskProcessedItemCreateArgs} args - Arguments to create a SyncTaskProcessedItem.
     * @example
     * // Create one SyncTaskProcessedItem
     * const SyncTaskProcessedItem = await prisma.syncTaskProcessedItem.create({
     *   data: {
     *     // ... data to create a SyncTaskProcessedItem
     *   }
     * })
     * 
     */
    create<T extends SyncTaskProcessedItemCreateArgs>(args: SelectSubset<T, SyncTaskProcessedItemCreateArgs<ExtArgs>>): Prisma__SyncTaskProcessedItemClient<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SyncTaskProcessedItems.
     * @param {SyncTaskProcessedItemCreateManyArgs} args - Arguments to create many SyncTaskProcessedItems.
     * @example
     * // Create many SyncTaskProcessedItems
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SyncTaskProcessedItemCreateManyArgs>(args?: SelectSubset<T, SyncTaskProcessedItemCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SyncTaskProcessedItems and returns the data saved in the database.
     * @param {SyncTaskProcessedItemCreateManyAndReturnArgs} args - Arguments to create many SyncTaskProcessedItems.
     * @example
     * // Create many SyncTaskProcessedItems
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SyncTaskProcessedItems and only return the `id`
     * const syncTaskProcessedItemWithIdOnly = await prisma.syncTaskProcessedItem.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 SyncTaskProcessedItemCreateManyAndReturnArgs>(args?: SelectSubset<T, SyncTaskProcessedItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SyncTaskProcessedItem.
     * @param {SyncTaskProcessedItemDeleteArgs} args - Arguments to delete one SyncTaskProcessedItem.
     * @example
     * // Delete one SyncTaskProcessedItem
     * const SyncTaskProcessedItem = await prisma.syncTaskProcessedItem.delete({
     *   where: {
     *     // ... filter to delete one SyncTaskProcessedItem
     *   }
     * })
     * 
     */
    delete<T extends SyncTaskProcessedItemDeleteArgs>(args: SelectSubset<T, SyncTaskProcessedItemDeleteArgs<ExtArgs>>): Prisma__SyncTaskProcessedItemClient<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SyncTaskProcessedItem.
     * @param {SyncTaskProcessedItemUpdateArgs} args - Arguments to update one SyncTaskProcessedItem.
     * @example
     * // Update one SyncTaskProcessedItem
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SyncTaskProcessedItemUpdateArgs>(args: SelectSubset<T, SyncTaskProcessedItemUpdateArgs<ExtArgs>>): Prisma__SyncTaskProcessedItemClient<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SyncTaskProcessedItems.
     * @param {SyncTaskProcessedItemDeleteManyArgs} args - Arguments to filter SyncTaskProcessedItems to delete.
     * @example
     * // Delete a few SyncTaskProcessedItems
     * const { count } = await prisma.syncTaskProcessedItem.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SyncTaskProcessedItemDeleteManyArgs>(args?: SelectSubset<T, SyncTaskProcessedItemDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SyncTaskProcessedItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskProcessedItemUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SyncTaskProcessedItems
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SyncTaskProcessedItemUpdateManyArgs>(args: SelectSubset<T, SyncTaskProcessedItemUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SyncTaskProcessedItems and returns the data updated in the database.
     * @param {SyncTaskProcessedItemUpdateManyAndReturnArgs} args - Arguments to update many SyncTaskProcessedItems.
     * @example
     * // Update many SyncTaskProcessedItems
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SyncTaskProcessedItems and only return the `id`
     * const syncTaskProcessedItemWithIdOnly = await prisma.syncTaskProcessedItem.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 SyncTaskProcessedItemUpdateManyAndReturnArgs>(args: SelectSubset<T, SyncTaskProcessedItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SyncTaskProcessedItem.
     * @param {SyncTaskProcessedItemUpsertArgs} args - Arguments to update or create a SyncTaskProcessedItem.
     * @example
     * // Update or create a SyncTaskProcessedItem
     * const syncTaskProcessedItem = await prisma.syncTaskProcessedItem.upsert({
     *   create: {
     *     // ... data to create a SyncTaskProcessedItem
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SyncTaskProcessedItem we want to update
     *   }
     * })
     */
    upsert<T extends SyncTaskProcessedItemUpsertArgs>(args: SelectSubset<T, SyncTaskProcessedItemUpsertArgs<ExtArgs>>): Prisma__SyncTaskProcessedItemClient<$Result.GetResult<Prisma.$SyncTaskProcessedItemPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SyncTaskProcessedItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskProcessedItemCountArgs} args - Arguments to filter SyncTaskProcessedItems to count.
     * @example
     * // Count the number of SyncTaskProcessedItems
     * const count = await prisma.syncTaskProcessedItem.count({
     *   where: {
     *     // ... the filter for the SyncTaskProcessedItems we want to count
     *   }
     * })
    **/
    count<T extends SyncTaskProcessedItemCountArgs>(
      args?: Subset<T, SyncTaskProcessedItemCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SyncTaskProcessedItemCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SyncTaskProcessedItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskProcessedItemAggregateArgs} 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 SyncTaskProcessedItemAggregateArgs>(args: Subset<T, SyncTaskProcessedItemAggregateArgs>): Prisma.PrismaPromise<GetSyncTaskProcessedItemAggregateType<T>>

    /**
     * Group by SyncTaskProcessedItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskProcessedItemGroupByArgs} 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 SyncTaskProcessedItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SyncTaskProcessedItemGroupByArgs['orderBy'] }
        : { orderBy?: SyncTaskProcessedItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SyncTaskProcessedItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSyncTaskProcessedItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SyncTaskProcessedItem model
   */
  readonly fields: SyncTaskProcessedItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SyncTaskProcessedItem.
   * 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__SyncTaskProcessedItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends SyncTaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SyncTaskDefaultArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SyncTaskProcessedItem model
   */
  interface SyncTaskProcessedItemFieldRefs {
    readonly id: FieldRef<"SyncTaskProcessedItem", 'String'>
    readonly taskId: FieldRef<"SyncTaskProcessedItem", 'String'>
    readonly sourceType: FieldRef<"SyncTaskProcessedItem", 'RagflowSourceType'>
    readonly sourceId: FieldRef<"SyncTaskProcessedItem", 'String'>
    readonly filename: FieldRef<"SyncTaskProcessedItem", 'String'>
    readonly fileExtension: FieldRef<"SyncTaskProcessedItem", 'String'>
    readonly mimeType: FieldRef<"SyncTaskProcessedItem", 'String'>
    readonly ragflowDocumentId: FieldRef<"SyncTaskProcessedItem", 'String'>
    readonly tokenCount: FieldRef<"SyncTaskProcessedItem", 'Int'>
    readonly chunkCount: FieldRef<"SyncTaskProcessedItem", 'Int'>
    readonly sourceSizeBytes: FieldRef<"SyncTaskProcessedItem", 'BigInt'>
    readonly status: FieldRef<"SyncTaskProcessedItem", 'SyncItemStatus'>
    readonly createdAt: FieldRef<"SyncTaskProcessedItem", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SyncTaskProcessedItem findUnique
   */
  export type SyncTaskProcessedItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskProcessedItem to fetch.
     */
    where: SyncTaskProcessedItemWhereUniqueInput
  }

  /**
   * SyncTaskProcessedItem findUniqueOrThrow
   */
  export type SyncTaskProcessedItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskProcessedItem to fetch.
     */
    where: SyncTaskProcessedItemWhereUniqueInput
  }

  /**
   * SyncTaskProcessedItem findFirst
   */
  export type SyncTaskProcessedItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskProcessedItem to fetch.
     */
    where?: SyncTaskProcessedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskProcessedItems to fetch.
     */
    orderBy?: SyncTaskProcessedItemOrderByWithRelationInput | SyncTaskProcessedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SyncTaskProcessedItems.
     */
    cursor?: SyncTaskProcessedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskProcessedItems 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` SyncTaskProcessedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SyncTaskProcessedItems.
     */
    distinct?: SyncTaskProcessedItemScalarFieldEnum | SyncTaskProcessedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskProcessedItem findFirstOrThrow
   */
  export type SyncTaskProcessedItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskProcessedItem to fetch.
     */
    where?: SyncTaskProcessedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskProcessedItems to fetch.
     */
    orderBy?: SyncTaskProcessedItemOrderByWithRelationInput | SyncTaskProcessedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SyncTaskProcessedItems.
     */
    cursor?: SyncTaskProcessedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskProcessedItems 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` SyncTaskProcessedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SyncTaskProcessedItems.
     */
    distinct?: SyncTaskProcessedItemScalarFieldEnum | SyncTaskProcessedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskProcessedItem findMany
   */
  export type SyncTaskProcessedItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskProcessedItems to fetch.
     */
    where?: SyncTaskProcessedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskProcessedItems to fetch.
     */
    orderBy?: SyncTaskProcessedItemOrderByWithRelationInput | SyncTaskProcessedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SyncTaskProcessedItems.
     */
    cursor?: SyncTaskProcessedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskProcessedItems 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` SyncTaskProcessedItems.
     */
    skip?: number
    distinct?: SyncTaskProcessedItemScalarFieldEnum | SyncTaskProcessedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskProcessedItem create
   */
  export type SyncTaskProcessedItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * The data needed to create a SyncTaskProcessedItem.
     */
    data: XOR<SyncTaskProcessedItemCreateInput, SyncTaskProcessedItemUncheckedCreateInput>
  }

  /**
   * SyncTaskProcessedItem createMany
   */
  export type SyncTaskProcessedItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SyncTaskProcessedItems.
     */
    data: SyncTaskProcessedItemCreateManyInput | SyncTaskProcessedItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SyncTaskProcessedItem createManyAndReturn
   */
  export type SyncTaskProcessedItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * The data used to create many SyncTaskProcessedItems.
     */
    data: SyncTaskProcessedItemCreateManyInput | SyncTaskProcessedItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SyncTaskProcessedItem update
   */
  export type SyncTaskProcessedItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * The data needed to update a SyncTaskProcessedItem.
     */
    data: XOR<SyncTaskProcessedItemUpdateInput, SyncTaskProcessedItemUncheckedUpdateInput>
    /**
     * Choose, which SyncTaskProcessedItem to update.
     */
    where: SyncTaskProcessedItemWhereUniqueInput
  }

  /**
   * SyncTaskProcessedItem updateMany
   */
  export type SyncTaskProcessedItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SyncTaskProcessedItems.
     */
    data: XOR<SyncTaskProcessedItemUpdateManyMutationInput, SyncTaskProcessedItemUncheckedUpdateManyInput>
    /**
     * Filter which SyncTaskProcessedItems to update
     */
    where?: SyncTaskProcessedItemWhereInput
    /**
     * Limit how many SyncTaskProcessedItems to update.
     */
    limit?: number
  }

  /**
   * SyncTaskProcessedItem updateManyAndReturn
   */
  export type SyncTaskProcessedItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * The data used to update SyncTaskProcessedItems.
     */
    data: XOR<SyncTaskProcessedItemUpdateManyMutationInput, SyncTaskProcessedItemUncheckedUpdateManyInput>
    /**
     * Filter which SyncTaskProcessedItems to update
     */
    where?: SyncTaskProcessedItemWhereInput
    /**
     * Limit how many SyncTaskProcessedItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SyncTaskProcessedItem upsert
   */
  export type SyncTaskProcessedItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * The filter to search for the SyncTaskProcessedItem to update in case it exists.
     */
    where: SyncTaskProcessedItemWhereUniqueInput
    /**
     * In case the SyncTaskProcessedItem found by the `where` argument doesn't exist, create a new SyncTaskProcessedItem with this data.
     */
    create: XOR<SyncTaskProcessedItemCreateInput, SyncTaskProcessedItemUncheckedCreateInput>
    /**
     * In case the SyncTaskProcessedItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SyncTaskProcessedItemUpdateInput, SyncTaskProcessedItemUncheckedUpdateInput>
  }

  /**
   * SyncTaskProcessedItem delete
   */
  export type SyncTaskProcessedItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
    /**
     * Filter which SyncTaskProcessedItem to delete.
     */
    where: SyncTaskProcessedItemWhereUniqueInput
  }

  /**
   * SyncTaskProcessedItem deleteMany
   */
  export type SyncTaskProcessedItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SyncTaskProcessedItems to delete
     */
    where?: SyncTaskProcessedItemWhereInput
    /**
     * Limit how many SyncTaskProcessedItems to delete.
     */
    limit?: number
  }

  /**
   * SyncTaskProcessedItem without action
   */
  export type SyncTaskProcessedItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskProcessedItem
     */
    select?: SyncTaskProcessedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskProcessedItem
     */
    omit?: SyncTaskProcessedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskProcessedItemInclude<ExtArgs> | null
  }


  /**
   * Model SyncTaskFailedItem
   */

  export type AggregateSyncTaskFailedItem = {
    _count: SyncTaskFailedItemCountAggregateOutputType | null
    _min: SyncTaskFailedItemMinAggregateOutputType | null
    _max: SyncTaskFailedItemMaxAggregateOutputType | null
  }

  export type SyncTaskFailedItemMinAggregateOutputType = {
    id: string | null
    taskId: string | null
    sourceType: $Enums.RagflowSourceType | null
    sourceId: string | null
    filename: string | null
    fileExtension: string | null
    mimeType: string | null
    error: string | null
    createdAt: Date | null
  }

  export type SyncTaskFailedItemMaxAggregateOutputType = {
    id: string | null
    taskId: string | null
    sourceType: $Enums.RagflowSourceType | null
    sourceId: string | null
    filename: string | null
    fileExtension: string | null
    mimeType: string | null
    error: string | null
    createdAt: Date | null
  }

  export type SyncTaskFailedItemCountAggregateOutputType = {
    id: number
    taskId: number
    sourceType: number
    sourceId: number
    filename: number
    fileExtension: number
    mimeType: number
    error: number
    createdAt: number
    _all: number
  }


  export type SyncTaskFailedItemMinAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    error?: true
    createdAt?: true
  }

  export type SyncTaskFailedItemMaxAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    error?: true
    createdAt?: true
  }

  export type SyncTaskFailedItemCountAggregateInputType = {
    id?: true
    taskId?: true
    sourceType?: true
    sourceId?: true
    filename?: true
    fileExtension?: true
    mimeType?: true
    error?: true
    createdAt?: true
    _all?: true
  }

  export type SyncTaskFailedItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SyncTaskFailedItem to aggregate.
     */
    where?: SyncTaskFailedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskFailedItems to fetch.
     */
    orderBy?: SyncTaskFailedItemOrderByWithRelationInput | SyncTaskFailedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SyncTaskFailedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskFailedItems 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` SyncTaskFailedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SyncTaskFailedItems
    **/
    _count?: true | SyncTaskFailedItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SyncTaskFailedItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SyncTaskFailedItemMaxAggregateInputType
  }

  export type GetSyncTaskFailedItemAggregateType<T extends SyncTaskFailedItemAggregateArgs> = {
        [P in keyof T & keyof AggregateSyncTaskFailedItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSyncTaskFailedItem[P]>
      : GetScalarType<T[P], AggregateSyncTaskFailedItem[P]>
  }




  export type SyncTaskFailedItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SyncTaskFailedItemWhereInput
    orderBy?: SyncTaskFailedItemOrderByWithAggregationInput | SyncTaskFailedItemOrderByWithAggregationInput[]
    by: SyncTaskFailedItemScalarFieldEnum[] | SyncTaskFailedItemScalarFieldEnum
    having?: SyncTaskFailedItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SyncTaskFailedItemCountAggregateInputType | true
    _min?: SyncTaskFailedItemMinAggregateInputType
    _max?: SyncTaskFailedItemMaxAggregateInputType
  }

  export type SyncTaskFailedItemGroupByOutputType = {
    id: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension: string | null
    mimeType: string | null
    error: string
    createdAt: Date
    _count: SyncTaskFailedItemCountAggregateOutputType | null
    _min: SyncTaskFailedItemMinAggregateOutputType | null
    _max: SyncTaskFailedItemMaxAggregateOutputType | null
  }

  type GetSyncTaskFailedItemGroupByPayload<T extends SyncTaskFailedItemGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SyncTaskFailedItemGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SyncTaskFailedItemGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SyncTaskFailedItemGroupByOutputType[P]>
            : GetScalarType<T[P], SyncTaskFailedItemGroupByOutputType[P]>
        }
      >
    >


  export type SyncTaskFailedItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    error?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskFailedItem"]>

  export type SyncTaskFailedItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    error?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskFailedItem"]>

  export type SyncTaskFailedItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    error?: boolean
    createdAt?: boolean
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["syncTaskFailedItem"]>

  export type SyncTaskFailedItemSelectScalar = {
    id?: boolean
    taskId?: boolean
    sourceType?: boolean
    sourceId?: boolean
    filename?: boolean
    fileExtension?: boolean
    mimeType?: boolean
    error?: boolean
    createdAt?: boolean
  }

  export type SyncTaskFailedItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskId" | "sourceType" | "sourceId" | "filename" | "fileExtension" | "mimeType" | "error" | "createdAt", ExtArgs["result"]["syncTaskFailedItem"]>
  export type SyncTaskFailedItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }
  export type SyncTaskFailedItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }
  export type SyncTaskFailedItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | SyncTaskDefaultArgs<ExtArgs>
  }

  export type $SyncTaskFailedItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SyncTaskFailedItem"
    objects: {
      task: Prisma.$SyncTaskPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskId: string
      sourceType: $Enums.RagflowSourceType
      sourceId: string
      filename: string
      fileExtension: string | null
      mimeType: string | null
      error: string
      createdAt: Date
    }, ExtArgs["result"]["syncTaskFailedItem"]>
    composites: {}
  }

  type SyncTaskFailedItemGetPayload<S extends boolean | null | undefined | SyncTaskFailedItemDefaultArgs> = $Result.GetResult<Prisma.$SyncTaskFailedItemPayload, S>

  type SyncTaskFailedItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SyncTaskFailedItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SyncTaskFailedItemCountAggregateInputType | true
    }

  export interface SyncTaskFailedItemDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SyncTaskFailedItem'], meta: { name: 'SyncTaskFailedItem' } }
    /**
     * Find zero or one SyncTaskFailedItem that matches the filter.
     * @param {SyncTaskFailedItemFindUniqueArgs} args - Arguments to find a SyncTaskFailedItem
     * @example
     * // Get one SyncTaskFailedItem
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SyncTaskFailedItemFindUniqueArgs>(args: SelectSubset<T, SyncTaskFailedItemFindUniqueArgs<ExtArgs>>): Prisma__SyncTaskFailedItemClient<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SyncTaskFailedItem that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SyncTaskFailedItemFindUniqueOrThrowArgs} args - Arguments to find a SyncTaskFailedItem
     * @example
     * // Get one SyncTaskFailedItem
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SyncTaskFailedItemFindUniqueOrThrowArgs>(args: SelectSubset<T, SyncTaskFailedItemFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SyncTaskFailedItemClient<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SyncTaskFailedItem 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 {SyncTaskFailedItemFindFirstArgs} args - Arguments to find a SyncTaskFailedItem
     * @example
     * // Get one SyncTaskFailedItem
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SyncTaskFailedItemFindFirstArgs>(args?: SelectSubset<T, SyncTaskFailedItemFindFirstArgs<ExtArgs>>): Prisma__SyncTaskFailedItemClient<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SyncTaskFailedItem 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 {SyncTaskFailedItemFindFirstOrThrowArgs} args - Arguments to find a SyncTaskFailedItem
     * @example
     * // Get one SyncTaskFailedItem
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SyncTaskFailedItemFindFirstOrThrowArgs>(args?: SelectSubset<T, SyncTaskFailedItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__SyncTaskFailedItemClient<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SyncTaskFailedItems 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 {SyncTaskFailedItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SyncTaskFailedItems
     * const syncTaskFailedItems = await prisma.syncTaskFailedItem.findMany()
     * 
     * // Get first 10 SyncTaskFailedItems
     * const syncTaskFailedItems = await prisma.syncTaskFailedItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const syncTaskFailedItemWithIdOnly = await prisma.syncTaskFailedItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SyncTaskFailedItemFindManyArgs>(args?: SelectSubset<T, SyncTaskFailedItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SyncTaskFailedItem.
     * @param {SyncTaskFailedItemCreateArgs} args - Arguments to create a SyncTaskFailedItem.
     * @example
     * // Create one SyncTaskFailedItem
     * const SyncTaskFailedItem = await prisma.syncTaskFailedItem.create({
     *   data: {
     *     // ... data to create a SyncTaskFailedItem
     *   }
     * })
     * 
     */
    create<T extends SyncTaskFailedItemCreateArgs>(args: SelectSubset<T, SyncTaskFailedItemCreateArgs<ExtArgs>>): Prisma__SyncTaskFailedItemClient<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SyncTaskFailedItems.
     * @param {SyncTaskFailedItemCreateManyArgs} args - Arguments to create many SyncTaskFailedItems.
     * @example
     * // Create many SyncTaskFailedItems
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SyncTaskFailedItemCreateManyArgs>(args?: SelectSubset<T, SyncTaskFailedItemCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SyncTaskFailedItems and returns the data saved in the database.
     * @param {SyncTaskFailedItemCreateManyAndReturnArgs} args - Arguments to create many SyncTaskFailedItems.
     * @example
     * // Create many SyncTaskFailedItems
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SyncTaskFailedItems and only return the `id`
     * const syncTaskFailedItemWithIdOnly = await prisma.syncTaskFailedItem.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 SyncTaskFailedItemCreateManyAndReturnArgs>(args?: SelectSubset<T, SyncTaskFailedItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SyncTaskFailedItem.
     * @param {SyncTaskFailedItemDeleteArgs} args - Arguments to delete one SyncTaskFailedItem.
     * @example
     * // Delete one SyncTaskFailedItem
     * const SyncTaskFailedItem = await prisma.syncTaskFailedItem.delete({
     *   where: {
     *     // ... filter to delete one SyncTaskFailedItem
     *   }
     * })
     * 
     */
    delete<T extends SyncTaskFailedItemDeleteArgs>(args: SelectSubset<T, SyncTaskFailedItemDeleteArgs<ExtArgs>>): Prisma__SyncTaskFailedItemClient<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SyncTaskFailedItem.
     * @param {SyncTaskFailedItemUpdateArgs} args - Arguments to update one SyncTaskFailedItem.
     * @example
     * // Update one SyncTaskFailedItem
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SyncTaskFailedItemUpdateArgs>(args: SelectSubset<T, SyncTaskFailedItemUpdateArgs<ExtArgs>>): Prisma__SyncTaskFailedItemClient<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SyncTaskFailedItems.
     * @param {SyncTaskFailedItemDeleteManyArgs} args - Arguments to filter SyncTaskFailedItems to delete.
     * @example
     * // Delete a few SyncTaskFailedItems
     * const { count } = await prisma.syncTaskFailedItem.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SyncTaskFailedItemDeleteManyArgs>(args?: SelectSubset<T, SyncTaskFailedItemDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SyncTaskFailedItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskFailedItemUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SyncTaskFailedItems
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SyncTaskFailedItemUpdateManyArgs>(args: SelectSubset<T, SyncTaskFailedItemUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SyncTaskFailedItems and returns the data updated in the database.
     * @param {SyncTaskFailedItemUpdateManyAndReturnArgs} args - Arguments to update many SyncTaskFailedItems.
     * @example
     * // Update many SyncTaskFailedItems
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SyncTaskFailedItems and only return the `id`
     * const syncTaskFailedItemWithIdOnly = await prisma.syncTaskFailedItem.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 SyncTaskFailedItemUpdateManyAndReturnArgs>(args: SelectSubset<T, SyncTaskFailedItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SyncTaskFailedItem.
     * @param {SyncTaskFailedItemUpsertArgs} args - Arguments to update or create a SyncTaskFailedItem.
     * @example
     * // Update or create a SyncTaskFailedItem
     * const syncTaskFailedItem = await prisma.syncTaskFailedItem.upsert({
     *   create: {
     *     // ... data to create a SyncTaskFailedItem
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SyncTaskFailedItem we want to update
     *   }
     * })
     */
    upsert<T extends SyncTaskFailedItemUpsertArgs>(args: SelectSubset<T, SyncTaskFailedItemUpsertArgs<ExtArgs>>): Prisma__SyncTaskFailedItemClient<$Result.GetResult<Prisma.$SyncTaskFailedItemPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SyncTaskFailedItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskFailedItemCountArgs} args - Arguments to filter SyncTaskFailedItems to count.
     * @example
     * // Count the number of SyncTaskFailedItems
     * const count = await prisma.syncTaskFailedItem.count({
     *   where: {
     *     // ... the filter for the SyncTaskFailedItems we want to count
     *   }
     * })
    **/
    count<T extends SyncTaskFailedItemCountArgs>(
      args?: Subset<T, SyncTaskFailedItemCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SyncTaskFailedItemCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SyncTaskFailedItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskFailedItemAggregateArgs} 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 SyncTaskFailedItemAggregateArgs>(args: Subset<T, SyncTaskFailedItemAggregateArgs>): Prisma.PrismaPromise<GetSyncTaskFailedItemAggregateType<T>>

    /**
     * Group by SyncTaskFailedItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SyncTaskFailedItemGroupByArgs} 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 SyncTaskFailedItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SyncTaskFailedItemGroupByArgs['orderBy'] }
        : { orderBy?: SyncTaskFailedItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SyncTaskFailedItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSyncTaskFailedItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SyncTaskFailedItem model
   */
  readonly fields: SyncTaskFailedItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SyncTaskFailedItem.
   * 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__SyncTaskFailedItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends SyncTaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SyncTaskDefaultArgs<ExtArgs>>): Prisma__SyncTaskClient<$Result.GetResult<Prisma.$SyncTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SyncTaskFailedItem model
   */
  interface SyncTaskFailedItemFieldRefs {
    readonly id: FieldRef<"SyncTaskFailedItem", 'String'>
    readonly taskId: FieldRef<"SyncTaskFailedItem", 'String'>
    readonly sourceType: FieldRef<"SyncTaskFailedItem", 'RagflowSourceType'>
    readonly sourceId: FieldRef<"SyncTaskFailedItem", 'String'>
    readonly filename: FieldRef<"SyncTaskFailedItem", 'String'>
    readonly fileExtension: FieldRef<"SyncTaskFailedItem", 'String'>
    readonly mimeType: FieldRef<"SyncTaskFailedItem", 'String'>
    readonly error: FieldRef<"SyncTaskFailedItem", 'String'>
    readonly createdAt: FieldRef<"SyncTaskFailedItem", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SyncTaskFailedItem findUnique
   */
  export type SyncTaskFailedItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskFailedItem to fetch.
     */
    where: SyncTaskFailedItemWhereUniqueInput
  }

  /**
   * SyncTaskFailedItem findUniqueOrThrow
   */
  export type SyncTaskFailedItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskFailedItem to fetch.
     */
    where: SyncTaskFailedItemWhereUniqueInput
  }

  /**
   * SyncTaskFailedItem findFirst
   */
  export type SyncTaskFailedItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskFailedItem to fetch.
     */
    where?: SyncTaskFailedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskFailedItems to fetch.
     */
    orderBy?: SyncTaskFailedItemOrderByWithRelationInput | SyncTaskFailedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SyncTaskFailedItems.
     */
    cursor?: SyncTaskFailedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskFailedItems 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` SyncTaskFailedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SyncTaskFailedItems.
     */
    distinct?: SyncTaskFailedItemScalarFieldEnum | SyncTaskFailedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskFailedItem findFirstOrThrow
   */
  export type SyncTaskFailedItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskFailedItem to fetch.
     */
    where?: SyncTaskFailedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskFailedItems to fetch.
     */
    orderBy?: SyncTaskFailedItemOrderByWithRelationInput | SyncTaskFailedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SyncTaskFailedItems.
     */
    cursor?: SyncTaskFailedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskFailedItems 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` SyncTaskFailedItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SyncTaskFailedItems.
     */
    distinct?: SyncTaskFailedItemScalarFieldEnum | SyncTaskFailedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskFailedItem findMany
   */
  export type SyncTaskFailedItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * Filter, which SyncTaskFailedItems to fetch.
     */
    where?: SyncTaskFailedItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SyncTaskFailedItems to fetch.
     */
    orderBy?: SyncTaskFailedItemOrderByWithRelationInput | SyncTaskFailedItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SyncTaskFailedItems.
     */
    cursor?: SyncTaskFailedItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SyncTaskFailedItems 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` SyncTaskFailedItems.
     */
    skip?: number
    distinct?: SyncTaskFailedItemScalarFieldEnum | SyncTaskFailedItemScalarFieldEnum[]
  }

  /**
   * SyncTaskFailedItem create
   */
  export type SyncTaskFailedItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * The data needed to create a SyncTaskFailedItem.
     */
    data: XOR<SyncTaskFailedItemCreateInput, SyncTaskFailedItemUncheckedCreateInput>
  }

  /**
   * SyncTaskFailedItem createMany
   */
  export type SyncTaskFailedItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SyncTaskFailedItems.
     */
    data: SyncTaskFailedItemCreateManyInput | SyncTaskFailedItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SyncTaskFailedItem createManyAndReturn
   */
  export type SyncTaskFailedItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * The data used to create many SyncTaskFailedItems.
     */
    data: SyncTaskFailedItemCreateManyInput | SyncTaskFailedItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SyncTaskFailedItem update
   */
  export type SyncTaskFailedItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * The data needed to update a SyncTaskFailedItem.
     */
    data: XOR<SyncTaskFailedItemUpdateInput, SyncTaskFailedItemUncheckedUpdateInput>
    /**
     * Choose, which SyncTaskFailedItem to update.
     */
    where: SyncTaskFailedItemWhereUniqueInput
  }

  /**
   * SyncTaskFailedItem updateMany
   */
  export type SyncTaskFailedItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SyncTaskFailedItems.
     */
    data: XOR<SyncTaskFailedItemUpdateManyMutationInput, SyncTaskFailedItemUncheckedUpdateManyInput>
    /**
     * Filter which SyncTaskFailedItems to update
     */
    where?: SyncTaskFailedItemWhereInput
    /**
     * Limit how many SyncTaskFailedItems to update.
     */
    limit?: number
  }

  /**
   * SyncTaskFailedItem updateManyAndReturn
   */
  export type SyncTaskFailedItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * The data used to update SyncTaskFailedItems.
     */
    data: XOR<SyncTaskFailedItemUpdateManyMutationInput, SyncTaskFailedItemUncheckedUpdateManyInput>
    /**
     * Filter which SyncTaskFailedItems to update
     */
    where?: SyncTaskFailedItemWhereInput
    /**
     * Limit how many SyncTaskFailedItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SyncTaskFailedItem upsert
   */
  export type SyncTaskFailedItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * The filter to search for the SyncTaskFailedItem to update in case it exists.
     */
    where: SyncTaskFailedItemWhereUniqueInput
    /**
     * In case the SyncTaskFailedItem found by the `where` argument doesn't exist, create a new SyncTaskFailedItem with this data.
     */
    create: XOR<SyncTaskFailedItemCreateInput, SyncTaskFailedItemUncheckedCreateInput>
    /**
     * In case the SyncTaskFailedItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SyncTaskFailedItemUpdateInput, SyncTaskFailedItemUncheckedUpdateInput>
  }

  /**
   * SyncTaskFailedItem delete
   */
  export type SyncTaskFailedItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
    /**
     * Filter which SyncTaskFailedItem to delete.
     */
    where: SyncTaskFailedItemWhereUniqueInput
  }

  /**
   * SyncTaskFailedItem deleteMany
   */
  export type SyncTaskFailedItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SyncTaskFailedItems to delete
     */
    where?: SyncTaskFailedItemWhereInput
    /**
     * Limit how many SyncTaskFailedItems to delete.
     */
    limit?: number
  }

  /**
   * SyncTaskFailedItem without action
   */
  export type SyncTaskFailedItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SyncTaskFailedItem
     */
    select?: SyncTaskFailedItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SyncTaskFailedItem
     */
    omit?: SyncTaskFailedItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SyncTaskFailedItemInclude<ExtArgs> | null
  }


  /**
   * Model SharePointSyncCursor
   */

  export type AggregateSharePointSyncCursor = {
    _count: SharePointSyncCursorCountAggregateOutputType | null
    _min: SharePointSyncCursorMinAggregateOutputType | null
    _max: SharePointSyncCursorMaxAggregateOutputType | null
  }

  export type SharePointSyncCursorMinAggregateOutputType = {
    id: string | null
    driveId: string | null
    scopePath: string | null
    deltaLink: string | null
    lastSyncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SharePointSyncCursorMaxAggregateOutputType = {
    id: string | null
    driveId: string | null
    scopePath: string | null
    deltaLink: string | null
    lastSyncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SharePointSyncCursorCountAggregateOutputType = {
    id: number
    driveId: number
    scopePath: number
    deltaLink: number
    lastSyncedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SharePointSyncCursorMinAggregateInputType = {
    id?: true
    driveId?: true
    scopePath?: true
    deltaLink?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SharePointSyncCursorMaxAggregateInputType = {
    id?: true
    driveId?: true
    scopePath?: true
    deltaLink?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SharePointSyncCursorCountAggregateInputType = {
    id?: true
    driveId?: true
    scopePath?: true
    deltaLink?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SharePointSyncCursorAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SharePointSyncCursor to aggregate.
     */
    where?: SharePointSyncCursorWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharePointSyncCursors to fetch.
     */
    orderBy?: SharePointSyncCursorOrderByWithRelationInput | SharePointSyncCursorOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SharePointSyncCursorWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharePointSyncCursors 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` SharePointSyncCursors.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SharePointSyncCursors
    **/
    _count?: true | SharePointSyncCursorCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SharePointSyncCursorMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SharePointSyncCursorMaxAggregateInputType
  }

  export type GetSharePointSyncCursorAggregateType<T extends SharePointSyncCursorAggregateArgs> = {
        [P in keyof T & keyof AggregateSharePointSyncCursor]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSharePointSyncCursor[P]>
      : GetScalarType<T[P], AggregateSharePointSyncCursor[P]>
  }




  export type SharePointSyncCursorGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SharePointSyncCursorWhereInput
    orderBy?: SharePointSyncCursorOrderByWithAggregationInput | SharePointSyncCursorOrderByWithAggregationInput[]
    by: SharePointSyncCursorScalarFieldEnum[] | SharePointSyncCursorScalarFieldEnum
    having?: SharePointSyncCursorScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SharePointSyncCursorCountAggregateInputType | true
    _min?: SharePointSyncCursorMinAggregateInputType
    _max?: SharePointSyncCursorMaxAggregateInputType
  }

  export type SharePointSyncCursorGroupByOutputType = {
    id: string
    driveId: string
    scopePath: string
    deltaLink: string
    lastSyncedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: SharePointSyncCursorCountAggregateOutputType | null
    _min: SharePointSyncCursorMinAggregateOutputType | null
    _max: SharePointSyncCursorMaxAggregateOutputType | null
  }

  type GetSharePointSyncCursorGroupByPayload<T extends SharePointSyncCursorGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SharePointSyncCursorGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SharePointSyncCursorGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SharePointSyncCursorGroupByOutputType[P]>
            : GetScalarType<T[P], SharePointSyncCursorGroupByOutputType[P]>
        }
      >
    >


  export type SharePointSyncCursorSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    driveId?: boolean
    scopePath?: boolean
    deltaLink?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sharePointSyncCursor"]>

  export type SharePointSyncCursorSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    driveId?: boolean
    scopePath?: boolean
    deltaLink?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sharePointSyncCursor"]>

  export type SharePointSyncCursorSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    driveId?: boolean
    scopePath?: boolean
    deltaLink?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["sharePointSyncCursor"]>

  export type SharePointSyncCursorSelectScalar = {
    id?: boolean
    driveId?: boolean
    scopePath?: boolean
    deltaLink?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SharePointSyncCursorOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "driveId" | "scopePath" | "deltaLink" | "lastSyncedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["sharePointSyncCursor"]>

  export type $SharePointSyncCursorPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SharePointSyncCursor"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      driveId: string
      scopePath: string
      deltaLink: string
      lastSyncedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["sharePointSyncCursor"]>
    composites: {}
  }

  type SharePointSyncCursorGetPayload<S extends boolean | null | undefined | SharePointSyncCursorDefaultArgs> = $Result.GetResult<Prisma.$SharePointSyncCursorPayload, S>

  type SharePointSyncCursorCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SharePointSyncCursorFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SharePointSyncCursorCountAggregateInputType | true
    }

  export interface SharePointSyncCursorDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SharePointSyncCursor'], meta: { name: 'SharePointSyncCursor' } }
    /**
     * Find zero or one SharePointSyncCursor that matches the filter.
     * @param {SharePointSyncCursorFindUniqueArgs} args - Arguments to find a SharePointSyncCursor
     * @example
     * // Get one SharePointSyncCursor
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SharePointSyncCursorFindUniqueArgs>(args: SelectSubset<T, SharePointSyncCursorFindUniqueArgs<ExtArgs>>): Prisma__SharePointSyncCursorClient<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SharePointSyncCursor that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SharePointSyncCursorFindUniqueOrThrowArgs} args - Arguments to find a SharePointSyncCursor
     * @example
     * // Get one SharePointSyncCursor
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SharePointSyncCursorFindUniqueOrThrowArgs>(args: SelectSubset<T, SharePointSyncCursorFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SharePointSyncCursorClient<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SharePointSyncCursor 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 {SharePointSyncCursorFindFirstArgs} args - Arguments to find a SharePointSyncCursor
     * @example
     * // Get one SharePointSyncCursor
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SharePointSyncCursorFindFirstArgs>(args?: SelectSubset<T, SharePointSyncCursorFindFirstArgs<ExtArgs>>): Prisma__SharePointSyncCursorClient<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SharePointSyncCursor 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 {SharePointSyncCursorFindFirstOrThrowArgs} args - Arguments to find a SharePointSyncCursor
     * @example
     * // Get one SharePointSyncCursor
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SharePointSyncCursorFindFirstOrThrowArgs>(args?: SelectSubset<T, SharePointSyncCursorFindFirstOrThrowArgs<ExtArgs>>): Prisma__SharePointSyncCursorClient<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SharePointSyncCursors 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 {SharePointSyncCursorFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SharePointSyncCursors
     * const sharePointSyncCursors = await prisma.sharePointSyncCursor.findMany()
     * 
     * // Get first 10 SharePointSyncCursors
     * const sharePointSyncCursors = await prisma.sharePointSyncCursor.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const sharePointSyncCursorWithIdOnly = await prisma.sharePointSyncCursor.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SharePointSyncCursorFindManyArgs>(args?: SelectSubset<T, SharePointSyncCursorFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SharePointSyncCursor.
     * @param {SharePointSyncCursorCreateArgs} args - Arguments to create a SharePointSyncCursor.
     * @example
     * // Create one SharePointSyncCursor
     * const SharePointSyncCursor = await prisma.sharePointSyncCursor.create({
     *   data: {
     *     // ... data to create a SharePointSyncCursor
     *   }
     * })
     * 
     */
    create<T extends SharePointSyncCursorCreateArgs>(args: SelectSubset<T, SharePointSyncCursorCreateArgs<ExtArgs>>): Prisma__SharePointSyncCursorClient<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SharePointSyncCursors.
     * @param {SharePointSyncCursorCreateManyArgs} args - Arguments to create many SharePointSyncCursors.
     * @example
     * // Create many SharePointSyncCursors
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SharePointSyncCursorCreateManyArgs>(args?: SelectSubset<T, SharePointSyncCursorCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SharePointSyncCursors and returns the data saved in the database.
     * @param {SharePointSyncCursorCreateManyAndReturnArgs} args - Arguments to create many SharePointSyncCursors.
     * @example
     * // Create many SharePointSyncCursors
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SharePointSyncCursors and only return the `id`
     * const sharePointSyncCursorWithIdOnly = await prisma.sharePointSyncCursor.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 SharePointSyncCursorCreateManyAndReturnArgs>(args?: SelectSubset<T, SharePointSyncCursorCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SharePointSyncCursor.
     * @param {SharePointSyncCursorDeleteArgs} args - Arguments to delete one SharePointSyncCursor.
     * @example
     * // Delete one SharePointSyncCursor
     * const SharePointSyncCursor = await prisma.sharePointSyncCursor.delete({
     *   where: {
     *     // ... filter to delete one SharePointSyncCursor
     *   }
     * })
     * 
     */
    delete<T extends SharePointSyncCursorDeleteArgs>(args: SelectSubset<T, SharePointSyncCursorDeleteArgs<ExtArgs>>): Prisma__SharePointSyncCursorClient<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SharePointSyncCursor.
     * @param {SharePointSyncCursorUpdateArgs} args - Arguments to update one SharePointSyncCursor.
     * @example
     * // Update one SharePointSyncCursor
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SharePointSyncCursorUpdateArgs>(args: SelectSubset<T, SharePointSyncCursorUpdateArgs<ExtArgs>>): Prisma__SharePointSyncCursorClient<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SharePointSyncCursors.
     * @param {SharePointSyncCursorDeleteManyArgs} args - Arguments to filter SharePointSyncCursors to delete.
     * @example
     * // Delete a few SharePointSyncCursors
     * const { count } = await prisma.sharePointSyncCursor.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SharePointSyncCursorDeleteManyArgs>(args?: SelectSubset<T, SharePointSyncCursorDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SharePointSyncCursors.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharePointSyncCursorUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SharePointSyncCursors
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SharePointSyncCursorUpdateManyArgs>(args: SelectSubset<T, SharePointSyncCursorUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SharePointSyncCursors and returns the data updated in the database.
     * @param {SharePointSyncCursorUpdateManyAndReturnArgs} args - Arguments to update many SharePointSyncCursors.
     * @example
     * // Update many SharePointSyncCursors
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SharePointSyncCursors and only return the `id`
     * const sharePointSyncCursorWithIdOnly = await prisma.sharePointSyncCursor.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 SharePointSyncCursorUpdateManyAndReturnArgs>(args: SelectSubset<T, SharePointSyncCursorUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SharePointSyncCursor.
     * @param {SharePointSyncCursorUpsertArgs} args - Arguments to update or create a SharePointSyncCursor.
     * @example
     * // Update or create a SharePointSyncCursor
     * const sharePointSyncCursor = await prisma.sharePointSyncCursor.upsert({
     *   create: {
     *     // ... data to create a SharePointSyncCursor
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SharePointSyncCursor we want to update
     *   }
     * })
     */
    upsert<T extends SharePointSyncCursorUpsertArgs>(args: SelectSubset<T, SharePointSyncCursorUpsertArgs<ExtArgs>>): Prisma__SharePointSyncCursorClient<$Result.GetResult<Prisma.$SharePointSyncCursorPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SharePointSyncCursors.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharePointSyncCursorCountArgs} args - Arguments to filter SharePointSyncCursors to count.
     * @example
     * // Count the number of SharePointSyncCursors
     * const count = await prisma.sharePointSyncCursor.count({
     *   where: {
     *     // ... the filter for the SharePointSyncCursors we want to count
     *   }
     * })
    **/
    count<T extends SharePointSyncCursorCountArgs>(
      args?: Subset<T, SharePointSyncCursorCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SharePointSyncCursorCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SharePointSyncCursor.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharePointSyncCursorAggregateArgs} 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 SharePointSyncCursorAggregateArgs>(args: Subset<T, SharePointSyncCursorAggregateArgs>): Prisma.PrismaPromise<GetSharePointSyncCursorAggregateType<T>>

    /**
     * Group by SharePointSyncCursor.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharePointSyncCursorGroupByArgs} 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 SharePointSyncCursorGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SharePointSyncCursorGroupByArgs['orderBy'] }
        : { orderBy?: SharePointSyncCursorGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SharePointSyncCursorGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSharePointSyncCursorGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SharePointSyncCursor model
   */
  readonly fields: SharePointSyncCursorFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SharePointSyncCursor.
   * 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__SharePointSyncCursorClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SharePointSyncCursor model
   */
  interface SharePointSyncCursorFieldRefs {
    readonly id: FieldRef<"SharePointSyncCursor", 'String'>
    readonly driveId: FieldRef<"SharePointSyncCursor", 'String'>
    readonly scopePath: FieldRef<"SharePointSyncCursor", 'String'>
    readonly deltaLink: FieldRef<"SharePointSyncCursor", 'String'>
    readonly lastSyncedAt: FieldRef<"SharePointSyncCursor", 'DateTime'>
    readonly createdAt: FieldRef<"SharePointSyncCursor", 'DateTime'>
    readonly updatedAt: FieldRef<"SharePointSyncCursor", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SharePointSyncCursor findUnique
   */
  export type SharePointSyncCursorFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * Filter, which SharePointSyncCursor to fetch.
     */
    where: SharePointSyncCursorWhereUniqueInput
  }

  /**
   * SharePointSyncCursor findUniqueOrThrow
   */
  export type SharePointSyncCursorFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * Filter, which SharePointSyncCursor to fetch.
     */
    where: SharePointSyncCursorWhereUniqueInput
  }

  /**
   * SharePointSyncCursor findFirst
   */
  export type SharePointSyncCursorFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * Filter, which SharePointSyncCursor to fetch.
     */
    where?: SharePointSyncCursorWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharePointSyncCursors to fetch.
     */
    orderBy?: SharePointSyncCursorOrderByWithRelationInput | SharePointSyncCursorOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SharePointSyncCursors.
     */
    cursor?: SharePointSyncCursorWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharePointSyncCursors 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` SharePointSyncCursors.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SharePointSyncCursors.
     */
    distinct?: SharePointSyncCursorScalarFieldEnum | SharePointSyncCursorScalarFieldEnum[]
  }

  /**
   * SharePointSyncCursor findFirstOrThrow
   */
  export type SharePointSyncCursorFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * Filter, which SharePointSyncCursor to fetch.
     */
    where?: SharePointSyncCursorWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharePointSyncCursors to fetch.
     */
    orderBy?: SharePointSyncCursorOrderByWithRelationInput | SharePointSyncCursorOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SharePointSyncCursors.
     */
    cursor?: SharePointSyncCursorWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharePointSyncCursors 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` SharePointSyncCursors.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SharePointSyncCursors.
     */
    distinct?: SharePointSyncCursorScalarFieldEnum | SharePointSyncCursorScalarFieldEnum[]
  }

  /**
   * SharePointSyncCursor findMany
   */
  export type SharePointSyncCursorFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * Filter, which SharePointSyncCursors to fetch.
     */
    where?: SharePointSyncCursorWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharePointSyncCursors to fetch.
     */
    orderBy?: SharePointSyncCursorOrderByWithRelationInput | SharePointSyncCursorOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SharePointSyncCursors.
     */
    cursor?: SharePointSyncCursorWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharePointSyncCursors 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` SharePointSyncCursors.
     */
    skip?: number
    distinct?: SharePointSyncCursorScalarFieldEnum | SharePointSyncCursorScalarFieldEnum[]
  }

  /**
   * SharePointSyncCursor create
   */
  export type SharePointSyncCursorCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * The data needed to create a SharePointSyncCursor.
     */
    data: XOR<SharePointSyncCursorCreateInput, SharePointSyncCursorUncheckedCreateInput>
  }

  /**
   * SharePointSyncCursor createMany
   */
  export type SharePointSyncCursorCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SharePointSyncCursors.
     */
    data: SharePointSyncCursorCreateManyInput | SharePointSyncCursorCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SharePointSyncCursor createManyAndReturn
   */
  export type SharePointSyncCursorCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * The data used to create many SharePointSyncCursors.
     */
    data: SharePointSyncCursorCreateManyInput | SharePointSyncCursorCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SharePointSyncCursor update
   */
  export type SharePointSyncCursorUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * The data needed to update a SharePointSyncCursor.
     */
    data: XOR<SharePointSyncCursorUpdateInput, SharePointSyncCursorUncheckedUpdateInput>
    /**
     * Choose, which SharePointSyncCursor to update.
     */
    where: SharePointSyncCursorWhereUniqueInput
  }

  /**
   * SharePointSyncCursor updateMany
   */
  export type SharePointSyncCursorUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SharePointSyncCursors.
     */
    data: XOR<SharePointSyncCursorUpdateManyMutationInput, SharePointSyncCursorUncheckedUpdateManyInput>
    /**
     * Filter which SharePointSyncCursors to update
     */
    where?: SharePointSyncCursorWhereInput
    /**
     * Limit how many SharePointSyncCursors to update.
     */
    limit?: number
  }

  /**
   * SharePointSyncCursor updateManyAndReturn
   */
  export type SharePointSyncCursorUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * The data used to update SharePointSyncCursors.
     */
    data: XOR<SharePointSyncCursorUpdateManyMutationInput, SharePointSyncCursorUncheckedUpdateManyInput>
    /**
     * Filter which SharePointSyncCursors to update
     */
    where?: SharePointSyncCursorWhereInput
    /**
     * Limit how many SharePointSyncCursors to update.
     */
    limit?: number
  }

  /**
   * SharePointSyncCursor upsert
   */
  export type SharePointSyncCursorUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * The filter to search for the SharePointSyncCursor to update in case it exists.
     */
    where: SharePointSyncCursorWhereUniqueInput
    /**
     * In case the SharePointSyncCursor found by the `where` argument doesn't exist, create a new SharePointSyncCursor with this data.
     */
    create: XOR<SharePointSyncCursorCreateInput, SharePointSyncCursorUncheckedCreateInput>
    /**
     * In case the SharePointSyncCursor was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SharePointSyncCursorUpdateInput, SharePointSyncCursorUncheckedUpdateInput>
  }

  /**
   * SharePointSyncCursor delete
   */
  export type SharePointSyncCursorDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
    /**
     * Filter which SharePointSyncCursor to delete.
     */
    where: SharePointSyncCursorWhereUniqueInput
  }

  /**
   * SharePointSyncCursor deleteMany
   */
  export type SharePointSyncCursorDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SharePointSyncCursors to delete
     */
    where?: SharePointSyncCursorWhereInput
    /**
     * Limit how many SharePointSyncCursors to delete.
     */
    limit?: number
  }

  /**
   * SharePointSyncCursor without action
   */
  export type SharePointSyncCursorDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharePointSyncCursor
     */
    select?: SharePointSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharePointSyncCursor
     */
    omit?: SharePointSyncCursorOmit<ExtArgs> | null
  }


  /**
   * Model WebhookSubscription
   */

  export type AggregateWebhookSubscription = {
    _count: WebhookSubscriptionCountAggregateOutputType | null
    _min: WebhookSubscriptionMinAggregateOutputType | null
    _max: WebhookSubscriptionMaxAggregateOutputType | null
  }

  export type WebhookSubscriptionMinAggregateOutputType = {
    id: string | null
    subscriptionId: string | null
    driveId: string | null
    resource: string | null
    expirationDateTime: Date | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type WebhookSubscriptionMaxAggregateOutputType = {
    id: string | null
    subscriptionId: string | null
    driveId: string | null
    resource: string | null
    expirationDateTime: Date | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type WebhookSubscriptionCountAggregateOutputType = {
    id: number
    subscriptionId: number
    driveId: number
    resource: number
    expirationDateTime: number
    isActive: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type WebhookSubscriptionMinAggregateInputType = {
    id?: true
    subscriptionId?: true
    driveId?: true
    resource?: true
    expirationDateTime?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type WebhookSubscriptionMaxAggregateInputType = {
    id?: true
    subscriptionId?: true
    driveId?: true
    resource?: true
    expirationDateTime?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type WebhookSubscriptionCountAggregateInputType = {
    id?: true
    subscriptionId?: true
    driveId?: true
    resource?: true
    expirationDateTime?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type WebhookSubscriptionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WebhookSubscription to aggregate.
     */
    where?: WebhookSubscriptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WebhookSubscriptions to fetch.
     */
    orderBy?: WebhookSubscriptionOrderByWithRelationInput | WebhookSubscriptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: WebhookSubscriptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WebhookSubscriptions 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` WebhookSubscriptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned WebhookSubscriptions
    **/
    _count?: true | WebhookSubscriptionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: WebhookSubscriptionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: WebhookSubscriptionMaxAggregateInputType
  }

  export type GetWebhookSubscriptionAggregateType<T extends WebhookSubscriptionAggregateArgs> = {
        [P in keyof T & keyof AggregateWebhookSubscription]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateWebhookSubscription[P]>
      : GetScalarType<T[P], AggregateWebhookSubscription[P]>
  }




  export type WebhookSubscriptionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: WebhookSubscriptionWhereInput
    orderBy?: WebhookSubscriptionOrderByWithAggregationInput | WebhookSubscriptionOrderByWithAggregationInput[]
    by: WebhookSubscriptionScalarFieldEnum[] | WebhookSubscriptionScalarFieldEnum
    having?: WebhookSubscriptionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: WebhookSubscriptionCountAggregateInputType | true
    _min?: WebhookSubscriptionMinAggregateInputType
    _max?: WebhookSubscriptionMaxAggregateInputType
  }

  export type WebhookSubscriptionGroupByOutputType = {
    id: string
    subscriptionId: string
    driveId: string
    resource: string
    expirationDateTime: Date
    isActive: boolean
    createdAt: Date
    updatedAt: Date
    _count: WebhookSubscriptionCountAggregateOutputType | null
    _min: WebhookSubscriptionMinAggregateOutputType | null
    _max: WebhookSubscriptionMaxAggregateOutputType | null
  }

  type GetWebhookSubscriptionGroupByPayload<T extends WebhookSubscriptionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<WebhookSubscriptionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof WebhookSubscriptionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], WebhookSubscriptionGroupByOutputType[P]>
            : GetScalarType<T[P], WebhookSubscriptionGroupByOutputType[P]>
        }
      >
    >


  export type WebhookSubscriptionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    subscriptionId?: boolean
    driveId?: boolean
    resource?: boolean
    expirationDateTime?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["webhookSubscription"]>

  export type WebhookSubscriptionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    subscriptionId?: boolean
    driveId?: boolean
    resource?: boolean
    expirationDateTime?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["webhookSubscription"]>

  export type WebhookSubscriptionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    subscriptionId?: boolean
    driveId?: boolean
    resource?: boolean
    expirationDateTime?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["webhookSubscription"]>

  export type WebhookSubscriptionSelectScalar = {
    id?: boolean
    subscriptionId?: boolean
    driveId?: boolean
    resource?: boolean
    expirationDateTime?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type WebhookSubscriptionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "subscriptionId" | "driveId" | "resource" | "expirationDateTime" | "isActive" | "createdAt" | "updatedAt", ExtArgs["result"]["webhookSubscription"]>

  export type $WebhookSubscriptionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "WebhookSubscription"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      subscriptionId: string
      driveId: string
      resource: string
      expirationDateTime: Date
      isActive: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["webhookSubscription"]>
    composites: {}
  }

  type WebhookSubscriptionGetPayload<S extends boolean | null | undefined | WebhookSubscriptionDefaultArgs> = $Result.GetResult<Prisma.$WebhookSubscriptionPayload, S>

  type WebhookSubscriptionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<WebhookSubscriptionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: WebhookSubscriptionCountAggregateInputType | true
    }

  export interface WebhookSubscriptionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['WebhookSubscription'], meta: { name: 'WebhookSubscription' } }
    /**
     * Find zero or one WebhookSubscription that matches the filter.
     * @param {WebhookSubscriptionFindUniqueArgs} args - Arguments to find a WebhookSubscription
     * @example
     * // Get one WebhookSubscription
     * const webhookSubscription = await prisma.webhookSubscription.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends WebhookSubscriptionFindUniqueArgs>(args: SelectSubset<T, WebhookSubscriptionFindUniqueArgs<ExtArgs>>): Prisma__WebhookSubscriptionClient<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one WebhookSubscription that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {WebhookSubscriptionFindUniqueOrThrowArgs} args - Arguments to find a WebhookSubscription
     * @example
     * // Get one WebhookSubscription
     * const webhookSubscription = await prisma.webhookSubscription.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends WebhookSubscriptionFindUniqueOrThrowArgs>(args: SelectSubset<T, WebhookSubscriptionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__WebhookSubscriptionClient<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first WebhookSubscription 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 {WebhookSubscriptionFindFirstArgs} args - Arguments to find a WebhookSubscription
     * @example
     * // Get one WebhookSubscription
     * const webhookSubscription = await prisma.webhookSubscription.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends WebhookSubscriptionFindFirstArgs>(args?: SelectSubset<T, WebhookSubscriptionFindFirstArgs<ExtArgs>>): Prisma__WebhookSubscriptionClient<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first WebhookSubscription 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 {WebhookSubscriptionFindFirstOrThrowArgs} args - Arguments to find a WebhookSubscription
     * @example
     * // Get one WebhookSubscription
     * const webhookSubscription = await prisma.webhookSubscription.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends WebhookSubscriptionFindFirstOrThrowArgs>(args?: SelectSubset<T, WebhookSubscriptionFindFirstOrThrowArgs<ExtArgs>>): Prisma__WebhookSubscriptionClient<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more WebhookSubscriptions 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 {WebhookSubscriptionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all WebhookSubscriptions
     * const webhookSubscriptions = await prisma.webhookSubscription.findMany()
     * 
     * // Get first 10 WebhookSubscriptions
     * const webhookSubscriptions = await prisma.webhookSubscription.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const webhookSubscriptionWithIdOnly = await prisma.webhookSubscription.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends WebhookSubscriptionFindManyArgs>(args?: SelectSubset<T, WebhookSubscriptionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a WebhookSubscription.
     * @param {WebhookSubscriptionCreateArgs} args - Arguments to create a WebhookSubscription.
     * @example
     * // Create one WebhookSubscription
     * const WebhookSubscription = await prisma.webhookSubscription.create({
     *   data: {
     *     // ... data to create a WebhookSubscription
     *   }
     * })
     * 
     */
    create<T extends WebhookSubscriptionCreateArgs>(args: SelectSubset<T, WebhookSubscriptionCreateArgs<ExtArgs>>): Prisma__WebhookSubscriptionClient<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many WebhookSubscriptions.
     * @param {WebhookSubscriptionCreateManyArgs} args - Arguments to create many WebhookSubscriptions.
     * @example
     * // Create many WebhookSubscriptions
     * const webhookSubscription = await prisma.webhookSubscription.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends WebhookSubscriptionCreateManyArgs>(args?: SelectSubset<T, WebhookSubscriptionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many WebhookSubscriptions and returns the data saved in the database.
     * @param {WebhookSubscriptionCreateManyAndReturnArgs} args - Arguments to create many WebhookSubscriptions.
     * @example
     * // Create many WebhookSubscriptions
     * const webhookSubscription = await prisma.webhookSubscription.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many WebhookSubscriptions and only return the `id`
     * const webhookSubscriptionWithIdOnly = await prisma.webhookSubscription.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 WebhookSubscriptionCreateManyAndReturnArgs>(args?: SelectSubset<T, WebhookSubscriptionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a WebhookSubscription.
     * @param {WebhookSubscriptionDeleteArgs} args - Arguments to delete one WebhookSubscription.
     * @example
     * // Delete one WebhookSubscription
     * const WebhookSubscription = await prisma.webhookSubscription.delete({
     *   where: {
     *     // ... filter to delete one WebhookSubscription
     *   }
     * })
     * 
     */
    delete<T extends WebhookSubscriptionDeleteArgs>(args: SelectSubset<T, WebhookSubscriptionDeleteArgs<ExtArgs>>): Prisma__WebhookSubscriptionClient<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one WebhookSubscription.
     * @param {WebhookSubscriptionUpdateArgs} args - Arguments to update one WebhookSubscription.
     * @example
     * // Update one WebhookSubscription
     * const webhookSubscription = await prisma.webhookSubscription.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends WebhookSubscriptionUpdateArgs>(args: SelectSubset<T, WebhookSubscriptionUpdateArgs<ExtArgs>>): Prisma__WebhookSubscriptionClient<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more WebhookSubscriptions.
     * @param {WebhookSubscriptionDeleteManyArgs} args - Arguments to filter WebhookSubscriptions to delete.
     * @example
     * // Delete a few WebhookSubscriptions
     * const { count } = await prisma.webhookSubscription.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends WebhookSubscriptionDeleteManyArgs>(args?: SelectSubset<T, WebhookSubscriptionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more WebhookSubscriptions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WebhookSubscriptionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many WebhookSubscriptions
     * const webhookSubscription = await prisma.webhookSubscription.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends WebhookSubscriptionUpdateManyArgs>(args: SelectSubset<T, WebhookSubscriptionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more WebhookSubscriptions and returns the data updated in the database.
     * @param {WebhookSubscriptionUpdateManyAndReturnArgs} args - Arguments to update many WebhookSubscriptions.
     * @example
     * // Update many WebhookSubscriptions
     * const webhookSubscription = await prisma.webhookSubscription.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more WebhookSubscriptions and only return the `id`
     * const webhookSubscriptionWithIdOnly = await prisma.webhookSubscription.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 WebhookSubscriptionUpdateManyAndReturnArgs>(args: SelectSubset<T, WebhookSubscriptionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one WebhookSubscription.
     * @param {WebhookSubscriptionUpsertArgs} args - Arguments to update or create a WebhookSubscription.
     * @example
     * // Update or create a WebhookSubscription
     * const webhookSubscription = await prisma.webhookSubscription.upsert({
     *   create: {
     *     // ... data to create a WebhookSubscription
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the WebhookSubscription we want to update
     *   }
     * })
     */
    upsert<T extends WebhookSubscriptionUpsertArgs>(args: SelectSubset<T, WebhookSubscriptionUpsertArgs<ExtArgs>>): Prisma__WebhookSubscriptionClient<$Result.GetResult<Prisma.$WebhookSubscriptionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of WebhookSubscriptions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WebhookSubscriptionCountArgs} args - Arguments to filter WebhookSubscriptions to count.
     * @example
     * // Count the number of WebhookSubscriptions
     * const count = await prisma.webhookSubscription.count({
     *   where: {
     *     // ... the filter for the WebhookSubscriptions we want to count
     *   }
     * })
    **/
    count<T extends WebhookSubscriptionCountArgs>(
      args?: Subset<T, WebhookSubscriptionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], WebhookSubscriptionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a WebhookSubscription.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WebhookSubscriptionAggregateArgs} 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 WebhookSubscriptionAggregateArgs>(args: Subset<T, WebhookSubscriptionAggregateArgs>): Prisma.PrismaPromise<GetWebhookSubscriptionAggregateType<T>>

    /**
     * Group by WebhookSubscription.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {WebhookSubscriptionGroupByArgs} 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 WebhookSubscriptionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: WebhookSubscriptionGroupByArgs['orderBy'] }
        : { orderBy?: WebhookSubscriptionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, WebhookSubscriptionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetWebhookSubscriptionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the WebhookSubscription model
   */
  readonly fields: WebhookSubscriptionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for WebhookSubscription.
   * 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__WebhookSubscriptionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the WebhookSubscription model
   */
  interface WebhookSubscriptionFieldRefs {
    readonly id: FieldRef<"WebhookSubscription", 'String'>
    readonly subscriptionId: FieldRef<"WebhookSubscription", 'String'>
    readonly driveId: FieldRef<"WebhookSubscription", 'String'>
    readonly resource: FieldRef<"WebhookSubscription", 'String'>
    readonly expirationDateTime: FieldRef<"WebhookSubscription", 'DateTime'>
    readonly isActive: FieldRef<"WebhookSubscription", 'Boolean'>
    readonly createdAt: FieldRef<"WebhookSubscription", 'DateTime'>
    readonly updatedAt: FieldRef<"WebhookSubscription", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * WebhookSubscription findUnique
   */
  export type WebhookSubscriptionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * Filter, which WebhookSubscription to fetch.
     */
    where: WebhookSubscriptionWhereUniqueInput
  }

  /**
   * WebhookSubscription findUniqueOrThrow
   */
  export type WebhookSubscriptionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * Filter, which WebhookSubscription to fetch.
     */
    where: WebhookSubscriptionWhereUniqueInput
  }

  /**
   * WebhookSubscription findFirst
   */
  export type WebhookSubscriptionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * Filter, which WebhookSubscription to fetch.
     */
    where?: WebhookSubscriptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WebhookSubscriptions to fetch.
     */
    orderBy?: WebhookSubscriptionOrderByWithRelationInput | WebhookSubscriptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WebhookSubscriptions.
     */
    cursor?: WebhookSubscriptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WebhookSubscriptions 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` WebhookSubscriptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WebhookSubscriptions.
     */
    distinct?: WebhookSubscriptionScalarFieldEnum | WebhookSubscriptionScalarFieldEnum[]
  }

  /**
   * WebhookSubscription findFirstOrThrow
   */
  export type WebhookSubscriptionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * Filter, which WebhookSubscription to fetch.
     */
    where?: WebhookSubscriptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WebhookSubscriptions to fetch.
     */
    orderBy?: WebhookSubscriptionOrderByWithRelationInput | WebhookSubscriptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for WebhookSubscriptions.
     */
    cursor?: WebhookSubscriptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WebhookSubscriptions 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` WebhookSubscriptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of WebhookSubscriptions.
     */
    distinct?: WebhookSubscriptionScalarFieldEnum | WebhookSubscriptionScalarFieldEnum[]
  }

  /**
   * WebhookSubscription findMany
   */
  export type WebhookSubscriptionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * Filter, which WebhookSubscriptions to fetch.
     */
    where?: WebhookSubscriptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of WebhookSubscriptions to fetch.
     */
    orderBy?: WebhookSubscriptionOrderByWithRelationInput | WebhookSubscriptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing WebhookSubscriptions.
     */
    cursor?: WebhookSubscriptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` WebhookSubscriptions 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` WebhookSubscriptions.
     */
    skip?: number
    distinct?: WebhookSubscriptionScalarFieldEnum | WebhookSubscriptionScalarFieldEnum[]
  }

  /**
   * WebhookSubscription create
   */
  export type WebhookSubscriptionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * The data needed to create a WebhookSubscription.
     */
    data: XOR<WebhookSubscriptionCreateInput, WebhookSubscriptionUncheckedCreateInput>
  }

  /**
   * WebhookSubscription createMany
   */
  export type WebhookSubscriptionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many WebhookSubscriptions.
     */
    data: WebhookSubscriptionCreateManyInput | WebhookSubscriptionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * WebhookSubscription createManyAndReturn
   */
  export type WebhookSubscriptionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * The data used to create many WebhookSubscriptions.
     */
    data: WebhookSubscriptionCreateManyInput | WebhookSubscriptionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * WebhookSubscription update
   */
  export type WebhookSubscriptionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * The data needed to update a WebhookSubscription.
     */
    data: XOR<WebhookSubscriptionUpdateInput, WebhookSubscriptionUncheckedUpdateInput>
    /**
     * Choose, which WebhookSubscription to update.
     */
    where: WebhookSubscriptionWhereUniqueInput
  }

  /**
   * WebhookSubscription updateMany
   */
  export type WebhookSubscriptionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update WebhookSubscriptions.
     */
    data: XOR<WebhookSubscriptionUpdateManyMutationInput, WebhookSubscriptionUncheckedUpdateManyInput>
    /**
     * Filter which WebhookSubscriptions to update
     */
    where?: WebhookSubscriptionWhereInput
    /**
     * Limit how many WebhookSubscriptions to update.
     */
    limit?: number
  }

  /**
   * WebhookSubscription updateManyAndReturn
   */
  export type WebhookSubscriptionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * The data used to update WebhookSubscriptions.
     */
    data: XOR<WebhookSubscriptionUpdateManyMutationInput, WebhookSubscriptionUncheckedUpdateManyInput>
    /**
     * Filter which WebhookSubscriptions to update
     */
    where?: WebhookSubscriptionWhereInput
    /**
     * Limit how many WebhookSubscriptions to update.
     */
    limit?: number
  }

  /**
   * WebhookSubscription upsert
   */
  export type WebhookSubscriptionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * The filter to search for the WebhookSubscription to update in case it exists.
     */
    where: WebhookSubscriptionWhereUniqueInput
    /**
     * In case the WebhookSubscription found by the `where` argument doesn't exist, create a new WebhookSubscription with this data.
     */
    create: XOR<WebhookSubscriptionCreateInput, WebhookSubscriptionUncheckedCreateInput>
    /**
     * In case the WebhookSubscription was found with the provided `where` argument, update it with this data.
     */
    update: XOR<WebhookSubscriptionUpdateInput, WebhookSubscriptionUncheckedUpdateInput>
  }

  /**
   * WebhookSubscription delete
   */
  export type WebhookSubscriptionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
    /**
     * Filter which WebhookSubscription to delete.
     */
    where: WebhookSubscriptionWhereUniqueInput
  }

  /**
   * WebhookSubscription deleteMany
   */
  export type WebhookSubscriptionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which WebhookSubscriptions to delete
     */
    where?: WebhookSubscriptionWhereInput
    /**
     * Limit how many WebhookSubscriptions to delete.
     */
    limit?: number
  }

  /**
   * WebhookSubscription without action
   */
  export type WebhookSubscriptionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the WebhookSubscription
     */
    select?: WebhookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the WebhookSubscription
     */
    omit?: WebhookSubscriptionOmit<ExtArgs> | null
  }


  /**
   * Model SystemLog
   */

  export type AggregateSystemLog = {
    _count: SystemLogCountAggregateOutputType | null
    _avg: SystemLogAvgAggregateOutputType | null
    _sum: SystemLogSumAggregateOutputType | null
    _min: SystemLogMinAggregateOutputType | null
    _max: SystemLogMaxAggregateOutputType | null
  }

  export type SystemLogAvgAggregateOutputType = {
    statusCode: number | null
    durationMs: number | null
  }

  export type SystemLogSumAggregateOutputType = {
    statusCode: number | null
    durationMs: number | null
  }

  export type SystemLogMinAggregateOutputType = {
    id: string | null
    traceId: string | null
    spanId: string | null
    parentSpanId: string | null
    requestId: string | null
    level: $Enums.LogLevel | null
    message: string | null
    method: string | null
    url: string | null
    statusCode: number | null
    durationMs: number | null
    userId: string | null
    userName: string | null
    clientIp: string | null
    userAgent: string | null
    service: string | null
    region: string | null
    instance: string | null
    errorType: string | null
    errorMessage: string | null
    errorCode: string | null
    errorStack: string | null
    createdAt: Date | null
  }

  export type SystemLogMaxAggregateOutputType = {
    id: string | null
    traceId: string | null
    spanId: string | null
    parentSpanId: string | null
    requestId: string | null
    level: $Enums.LogLevel | null
    message: string | null
    method: string | null
    url: string | null
    statusCode: number | null
    durationMs: number | null
    userId: string | null
    userName: string | null
    clientIp: string | null
    userAgent: string | null
    service: string | null
    region: string | null
    instance: string | null
    errorType: string | null
    errorMessage: string | null
    errorCode: string | null
    errorStack: string | null
    createdAt: Date | null
  }

  export type SystemLogCountAggregateOutputType = {
    id: number
    traceId: number
    spanId: number
    parentSpanId: number
    requestId: number
    level: number
    message: number
    method: number
    url: number
    statusCode: number
    durationMs: number
    userId: number
    userName: number
    clientIp: number
    userAgent: number
    service: number
    region: number
    instance: number
    errorType: number
    errorMessage: number
    errorCode: number
    errorStack: number
    requestBody: number
    responseBody: number
    metadata: number
    createdAt: number
    _all: number
  }


  export type SystemLogAvgAggregateInputType = {
    statusCode?: true
    durationMs?: true
  }

  export type SystemLogSumAggregateInputType = {
    statusCode?: true
    durationMs?: true
  }

  export type SystemLogMinAggregateInputType = {
    id?: true
    traceId?: true
    spanId?: true
    parentSpanId?: true
    requestId?: true
    level?: true
    message?: true
    method?: true
    url?: true
    statusCode?: true
    durationMs?: true
    userId?: true
    userName?: true
    clientIp?: true
    userAgent?: true
    service?: true
    region?: true
    instance?: true
    errorType?: true
    errorMessage?: true
    errorCode?: true
    errorStack?: true
    createdAt?: true
  }

  export type SystemLogMaxAggregateInputType = {
    id?: true
    traceId?: true
    spanId?: true
    parentSpanId?: true
    requestId?: true
    level?: true
    message?: true
    method?: true
    url?: true
    statusCode?: true
    durationMs?: true
    userId?: true
    userName?: true
    clientIp?: true
    userAgent?: true
    service?: true
    region?: true
    instance?: true
    errorType?: true
    errorMessage?: true
    errorCode?: true
    errorStack?: true
    createdAt?: true
  }

  export type SystemLogCountAggregateInputType = {
    id?: true
    traceId?: true
    spanId?: true
    parentSpanId?: true
    requestId?: true
    level?: true
    message?: true
    method?: true
    url?: true
    statusCode?: true
    durationMs?: true
    userId?: true
    userName?: true
    clientIp?: true
    userAgent?: true
    service?: true
    region?: true
    instance?: true
    errorType?: true
    errorMessage?: true
    errorCode?: true
    errorStack?: true
    requestBody?: true
    responseBody?: true
    metadata?: true
    createdAt?: true
    _all?: true
  }

  export type SystemLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SystemLog to aggregate.
     */
    where?: SystemLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SystemLogs to fetch.
     */
    orderBy?: SystemLogOrderByWithRelationInput | SystemLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SystemLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SystemLogs 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` SystemLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SystemLogs
    **/
    _count?: true | SystemLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SystemLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SystemLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SystemLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SystemLogMaxAggregateInputType
  }

  export type GetSystemLogAggregateType<T extends SystemLogAggregateArgs> = {
        [P in keyof T & keyof AggregateSystemLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSystemLog[P]>
      : GetScalarType<T[P], AggregateSystemLog[P]>
  }




  export type SystemLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SystemLogWhereInput
    orderBy?: SystemLogOrderByWithAggregationInput | SystemLogOrderByWithAggregationInput[]
    by: SystemLogScalarFieldEnum[] | SystemLogScalarFieldEnum
    having?: SystemLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SystemLogCountAggregateInputType | true
    _avg?: SystemLogAvgAggregateInputType
    _sum?: SystemLogSumAggregateInputType
    _min?: SystemLogMinAggregateInputType
    _max?: SystemLogMaxAggregateInputType
  }

  export type SystemLogGroupByOutputType = {
    id: string
    traceId: string
    spanId: string | null
    parentSpanId: string | null
    requestId: string
    level: $Enums.LogLevel
    message: string | null
    method: string | null
    url: string | null
    statusCode: number | null
    durationMs: number | null
    userId: string | null
    userName: string | null
    clientIp: string | null
    userAgent: string | null
    service: string
    region: string
    instance: string | null
    errorType: string | null
    errorMessage: string | null
    errorCode: string | null
    errorStack: string | null
    requestBody: JsonValue | null
    responseBody: JsonValue | null
    metadata: JsonValue | null
    createdAt: Date
    _count: SystemLogCountAggregateOutputType | null
    _avg: SystemLogAvgAggregateOutputType | null
    _sum: SystemLogSumAggregateOutputType | null
    _min: SystemLogMinAggregateOutputType | null
    _max: SystemLogMaxAggregateOutputType | null
  }

  type GetSystemLogGroupByPayload<T extends SystemLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SystemLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SystemLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SystemLogGroupByOutputType[P]>
            : GetScalarType<T[P], SystemLogGroupByOutputType[P]>
        }
      >
    >


  export type SystemLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    traceId?: boolean
    spanId?: boolean
    parentSpanId?: boolean
    requestId?: boolean
    level?: boolean
    message?: boolean
    method?: boolean
    url?: boolean
    statusCode?: boolean
    durationMs?: boolean
    userId?: boolean
    userName?: boolean
    clientIp?: boolean
    userAgent?: boolean
    service?: boolean
    region?: boolean
    instance?: boolean
    errorType?: boolean
    errorMessage?: boolean
    errorCode?: boolean
    errorStack?: boolean
    requestBody?: boolean
    responseBody?: boolean
    metadata?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["systemLog"]>

  export type SystemLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    traceId?: boolean
    spanId?: boolean
    parentSpanId?: boolean
    requestId?: boolean
    level?: boolean
    message?: boolean
    method?: boolean
    url?: boolean
    statusCode?: boolean
    durationMs?: boolean
    userId?: boolean
    userName?: boolean
    clientIp?: boolean
    userAgent?: boolean
    service?: boolean
    region?: boolean
    instance?: boolean
    errorType?: boolean
    errorMessage?: boolean
    errorCode?: boolean
    errorStack?: boolean
    requestBody?: boolean
    responseBody?: boolean
    metadata?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["systemLog"]>

  export type SystemLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    traceId?: boolean
    spanId?: boolean
    parentSpanId?: boolean
    requestId?: boolean
    level?: boolean
    message?: boolean
    method?: boolean
    url?: boolean
    statusCode?: boolean
    durationMs?: boolean
    userId?: boolean
    userName?: boolean
    clientIp?: boolean
    userAgent?: boolean
    service?: boolean
    region?: boolean
    instance?: boolean
    errorType?: boolean
    errorMessage?: boolean
    errorCode?: boolean
    errorStack?: boolean
    requestBody?: boolean
    responseBody?: boolean
    metadata?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["systemLog"]>

  export type SystemLogSelectScalar = {
    id?: boolean
    traceId?: boolean
    spanId?: boolean
    parentSpanId?: boolean
    requestId?: boolean
    level?: boolean
    message?: boolean
    method?: boolean
    url?: boolean
    statusCode?: boolean
    durationMs?: boolean
    userId?: boolean
    userName?: boolean
    clientIp?: boolean
    userAgent?: boolean
    service?: boolean
    region?: boolean
    instance?: boolean
    errorType?: boolean
    errorMessage?: boolean
    errorCode?: boolean
    errorStack?: boolean
    requestBody?: boolean
    responseBody?: boolean
    metadata?: boolean
    createdAt?: boolean
  }

  export type SystemLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "traceId" | "spanId" | "parentSpanId" | "requestId" | "level" | "message" | "method" | "url" | "statusCode" | "durationMs" | "userId" | "userName" | "clientIp" | "userAgent" | "service" | "region" | "instance" | "errorType" | "errorMessage" | "errorCode" | "errorStack" | "requestBody" | "responseBody" | "metadata" | "createdAt", ExtArgs["result"]["systemLog"]>

  export type $SystemLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SystemLog"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      traceId: string
      spanId: string | null
      parentSpanId: string | null
      requestId: string
      level: $Enums.LogLevel
      message: string | null
      method: string | null
      url: string | null
      statusCode: number | null
      durationMs: number | null
      userId: string | null
      userName: string | null
      clientIp: string | null
      userAgent: string | null
      service: string
      region: string
      instance: string | null
      errorType: string | null
      errorMessage: string | null
      errorCode: string | null
      errorStack: string | null
      requestBody: Prisma.JsonValue | null
      responseBody: Prisma.JsonValue | null
      metadata: Prisma.JsonValue | null
      createdAt: Date
    }, ExtArgs["result"]["systemLog"]>
    composites: {}
  }

  type SystemLogGetPayload<S extends boolean | null | undefined | SystemLogDefaultArgs> = $Result.GetResult<Prisma.$SystemLogPayload, S>

  type SystemLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SystemLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SystemLogCountAggregateInputType | true
    }

  export interface SystemLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SystemLog'], meta: { name: 'SystemLog' } }
    /**
     * Find zero or one SystemLog that matches the filter.
     * @param {SystemLogFindUniqueArgs} args - Arguments to find a SystemLog
     * @example
     * // Get one SystemLog
     * const systemLog = await prisma.systemLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SystemLogFindUniqueArgs>(args: SelectSubset<T, SystemLogFindUniqueArgs<ExtArgs>>): Prisma__SystemLogClient<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SystemLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SystemLogFindUniqueOrThrowArgs} args - Arguments to find a SystemLog
     * @example
     * // Get one SystemLog
     * const systemLog = await prisma.systemLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SystemLogFindUniqueOrThrowArgs>(args: SelectSubset<T, SystemLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SystemLogClient<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SystemLog 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 {SystemLogFindFirstArgs} args - Arguments to find a SystemLog
     * @example
     * // Get one SystemLog
     * const systemLog = await prisma.systemLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SystemLogFindFirstArgs>(args?: SelectSubset<T, SystemLogFindFirstArgs<ExtArgs>>): Prisma__SystemLogClient<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SystemLog 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 {SystemLogFindFirstOrThrowArgs} args - Arguments to find a SystemLog
     * @example
     * // Get one SystemLog
     * const systemLog = await prisma.systemLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SystemLogFindFirstOrThrowArgs>(args?: SelectSubset<T, SystemLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__SystemLogClient<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SystemLogs 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 {SystemLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SystemLogs
     * const systemLogs = await prisma.systemLog.findMany()
     * 
     * // Get first 10 SystemLogs
     * const systemLogs = await prisma.systemLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const systemLogWithIdOnly = await prisma.systemLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SystemLogFindManyArgs>(args?: SelectSubset<T, SystemLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SystemLog.
     * @param {SystemLogCreateArgs} args - Arguments to create a SystemLog.
     * @example
     * // Create one SystemLog
     * const SystemLog = await prisma.systemLog.create({
     *   data: {
     *     // ... data to create a SystemLog
     *   }
     * })
     * 
     */
    create<T extends SystemLogCreateArgs>(args: SelectSubset<T, SystemLogCreateArgs<ExtArgs>>): Prisma__SystemLogClient<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SystemLogs.
     * @param {SystemLogCreateManyArgs} args - Arguments to create many SystemLogs.
     * @example
     * // Create many SystemLogs
     * const systemLog = await prisma.systemLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SystemLogCreateManyArgs>(args?: SelectSubset<T, SystemLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SystemLogs and returns the data saved in the database.
     * @param {SystemLogCreateManyAndReturnArgs} args - Arguments to create many SystemLogs.
     * @example
     * // Create many SystemLogs
     * const systemLog = await prisma.systemLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SystemLogs and only return the `id`
     * const systemLogWithIdOnly = await prisma.systemLog.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 SystemLogCreateManyAndReturnArgs>(args?: SelectSubset<T, SystemLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SystemLog.
     * @param {SystemLogDeleteArgs} args - Arguments to delete one SystemLog.
     * @example
     * // Delete one SystemLog
     * const SystemLog = await prisma.systemLog.delete({
     *   where: {
     *     // ... filter to delete one SystemLog
     *   }
     * })
     * 
     */
    delete<T extends SystemLogDeleteArgs>(args: SelectSubset<T, SystemLogDeleteArgs<ExtArgs>>): Prisma__SystemLogClient<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SystemLog.
     * @param {SystemLogUpdateArgs} args - Arguments to update one SystemLog.
     * @example
     * // Update one SystemLog
     * const systemLog = await prisma.systemLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SystemLogUpdateArgs>(args: SelectSubset<T, SystemLogUpdateArgs<ExtArgs>>): Prisma__SystemLogClient<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SystemLogs.
     * @param {SystemLogDeleteManyArgs} args - Arguments to filter SystemLogs to delete.
     * @example
     * // Delete a few SystemLogs
     * const { count } = await prisma.systemLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SystemLogDeleteManyArgs>(args?: SelectSubset<T, SystemLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SystemLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SystemLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SystemLogs
     * const systemLog = await prisma.systemLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SystemLogUpdateManyArgs>(args: SelectSubset<T, SystemLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SystemLogs and returns the data updated in the database.
     * @param {SystemLogUpdateManyAndReturnArgs} args - Arguments to update many SystemLogs.
     * @example
     * // Update many SystemLogs
     * const systemLog = await prisma.systemLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SystemLogs and only return the `id`
     * const systemLogWithIdOnly = await prisma.systemLog.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 SystemLogUpdateManyAndReturnArgs>(args: SelectSubset<T, SystemLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SystemLog.
     * @param {SystemLogUpsertArgs} args - Arguments to update or create a SystemLog.
     * @example
     * // Update or create a SystemLog
     * const systemLog = await prisma.systemLog.upsert({
     *   create: {
     *     // ... data to create a SystemLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SystemLog we want to update
     *   }
     * })
     */
    upsert<T extends SystemLogUpsertArgs>(args: SelectSubset<T, SystemLogUpsertArgs<ExtArgs>>): Prisma__SystemLogClient<$Result.GetResult<Prisma.$SystemLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SystemLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SystemLogCountArgs} args - Arguments to filter SystemLogs to count.
     * @example
     * // Count the number of SystemLogs
     * const count = await prisma.systemLog.count({
     *   where: {
     *     // ... the filter for the SystemLogs we want to count
     *   }
     * })
    **/
    count<T extends SystemLogCountArgs>(
      args?: Subset<T, SystemLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SystemLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SystemLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SystemLogAggregateArgs} 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 SystemLogAggregateArgs>(args: Subset<T, SystemLogAggregateArgs>): Prisma.PrismaPromise<GetSystemLogAggregateType<T>>

    /**
     * Group by SystemLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SystemLogGroupByArgs} 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 SystemLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SystemLogGroupByArgs['orderBy'] }
        : { orderBy?: SystemLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SystemLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSystemLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SystemLog model
   */
  readonly fields: SystemLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SystemLog.
   * 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__SystemLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SystemLog model
   */
  interface SystemLogFieldRefs {
    readonly id: FieldRef<"SystemLog", 'String'>
    readonly traceId: FieldRef<"SystemLog", 'String'>
    readonly spanId: FieldRef<"SystemLog", 'String'>
    readonly parentSpanId: FieldRef<"SystemLog", 'String'>
    readonly requestId: FieldRef<"SystemLog", 'String'>
    readonly level: FieldRef<"SystemLog", 'LogLevel'>
    readonly message: FieldRef<"SystemLog", 'String'>
    readonly method: FieldRef<"SystemLog", 'String'>
    readonly url: FieldRef<"SystemLog", 'String'>
    readonly statusCode: FieldRef<"SystemLog", 'Int'>
    readonly durationMs: FieldRef<"SystemLog", 'Int'>
    readonly userId: FieldRef<"SystemLog", 'String'>
    readonly userName: FieldRef<"SystemLog", 'String'>
    readonly clientIp: FieldRef<"SystemLog", 'String'>
    readonly userAgent: FieldRef<"SystemLog", 'String'>
    readonly service: FieldRef<"SystemLog", 'String'>
    readonly region: FieldRef<"SystemLog", 'String'>
    readonly instance: FieldRef<"SystemLog", 'String'>
    readonly errorType: FieldRef<"SystemLog", 'String'>
    readonly errorMessage: FieldRef<"SystemLog", 'String'>
    readonly errorCode: FieldRef<"SystemLog", 'String'>
    readonly errorStack: FieldRef<"SystemLog", 'String'>
    readonly requestBody: FieldRef<"SystemLog", 'Json'>
    readonly responseBody: FieldRef<"SystemLog", 'Json'>
    readonly metadata: FieldRef<"SystemLog", 'Json'>
    readonly createdAt: FieldRef<"SystemLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SystemLog findUnique
   */
  export type SystemLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * Filter, which SystemLog to fetch.
     */
    where: SystemLogWhereUniqueInput
  }

  /**
   * SystemLog findUniqueOrThrow
   */
  export type SystemLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * Filter, which SystemLog to fetch.
     */
    where: SystemLogWhereUniqueInput
  }

  /**
   * SystemLog findFirst
   */
  export type SystemLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * Filter, which SystemLog to fetch.
     */
    where?: SystemLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SystemLogs to fetch.
     */
    orderBy?: SystemLogOrderByWithRelationInput | SystemLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SystemLogs.
     */
    cursor?: SystemLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SystemLogs 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` SystemLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SystemLogs.
     */
    distinct?: SystemLogScalarFieldEnum | SystemLogScalarFieldEnum[]
  }

  /**
   * SystemLog findFirstOrThrow
   */
  export type SystemLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * Filter, which SystemLog to fetch.
     */
    where?: SystemLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SystemLogs to fetch.
     */
    orderBy?: SystemLogOrderByWithRelationInput | SystemLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SystemLogs.
     */
    cursor?: SystemLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SystemLogs 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` SystemLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SystemLogs.
     */
    distinct?: SystemLogScalarFieldEnum | SystemLogScalarFieldEnum[]
  }

  /**
   * SystemLog findMany
   */
  export type SystemLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * Filter, which SystemLogs to fetch.
     */
    where?: SystemLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SystemLogs to fetch.
     */
    orderBy?: SystemLogOrderByWithRelationInput | SystemLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SystemLogs.
     */
    cursor?: SystemLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SystemLogs 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` SystemLogs.
     */
    skip?: number
    distinct?: SystemLogScalarFieldEnum | SystemLogScalarFieldEnum[]
  }

  /**
   * SystemLog create
   */
  export type SystemLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * The data needed to create a SystemLog.
     */
    data: XOR<SystemLogCreateInput, SystemLogUncheckedCreateInput>
  }

  /**
   * SystemLog createMany
   */
  export type SystemLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SystemLogs.
     */
    data: SystemLogCreateManyInput | SystemLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SystemLog createManyAndReturn
   */
  export type SystemLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * The data used to create many SystemLogs.
     */
    data: SystemLogCreateManyInput | SystemLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SystemLog update
   */
  export type SystemLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * The data needed to update a SystemLog.
     */
    data: XOR<SystemLogUpdateInput, SystemLogUncheckedUpdateInput>
    /**
     * Choose, which SystemLog to update.
     */
    where: SystemLogWhereUniqueInput
  }

  /**
   * SystemLog updateMany
   */
  export type SystemLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SystemLogs.
     */
    data: XOR<SystemLogUpdateManyMutationInput, SystemLogUncheckedUpdateManyInput>
    /**
     * Filter which SystemLogs to update
     */
    where?: SystemLogWhereInput
    /**
     * Limit how many SystemLogs to update.
     */
    limit?: number
  }

  /**
   * SystemLog updateManyAndReturn
   */
  export type SystemLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * The data used to update SystemLogs.
     */
    data: XOR<SystemLogUpdateManyMutationInput, SystemLogUncheckedUpdateManyInput>
    /**
     * Filter which SystemLogs to update
     */
    where?: SystemLogWhereInput
    /**
     * Limit how many SystemLogs to update.
     */
    limit?: number
  }

  /**
   * SystemLog upsert
   */
  export type SystemLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * The filter to search for the SystemLog to update in case it exists.
     */
    where: SystemLogWhereUniqueInput
    /**
     * In case the SystemLog found by the `where` argument doesn't exist, create a new SystemLog with this data.
     */
    create: XOR<SystemLogCreateInput, SystemLogUncheckedCreateInput>
    /**
     * In case the SystemLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SystemLogUpdateInput, SystemLogUncheckedUpdateInput>
  }

  /**
   * SystemLog delete
   */
  export type SystemLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
    /**
     * Filter which SystemLog to delete.
     */
    where: SystemLogWhereUniqueInput
  }

  /**
   * SystemLog deleteMany
   */
  export type SystemLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SystemLogs to delete
     */
    where?: SystemLogWhereInput
    /**
     * Limit how many SystemLogs to delete.
     */
    limit?: number
  }

  /**
   * SystemLog without action
   */
  export type SystemLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SystemLog
     */
    select?: SystemLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SystemLog
     */
    omit?: SystemLogOmit<ExtArgs> | null
  }


  /**
   * Model LogConfig
   */

  export type AggregateLogConfig = {
    _count: LogConfigCountAggregateOutputType | null
    _min: LogConfigMinAggregateOutputType | null
    _max: LogConfigMaxAggregateOutputType | null
  }

  export type LogConfigMinAggregateOutputType = {
    id: string | null
    key: string | null
    description: string | null
    updatedAt: Date | null
    updatedBy: string | null
  }

  export type LogConfigMaxAggregateOutputType = {
    id: string | null
    key: string | null
    description: string | null
    updatedAt: Date | null
    updatedBy: string | null
  }

  export type LogConfigCountAggregateOutputType = {
    id: number
    key: number
    value: number
    description: number
    updatedAt: number
    updatedBy: number
    _all: number
  }


  export type LogConfigMinAggregateInputType = {
    id?: true
    key?: true
    description?: true
    updatedAt?: true
    updatedBy?: true
  }

  export type LogConfigMaxAggregateInputType = {
    id?: true
    key?: true
    description?: true
    updatedAt?: true
    updatedBy?: true
  }

  export type LogConfigCountAggregateInputType = {
    id?: true
    key?: true
    value?: true
    description?: true
    updatedAt?: true
    updatedBy?: true
    _all?: true
  }

  export type LogConfigAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LogConfig to aggregate.
     */
    where?: LogConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogConfigs to fetch.
     */
    orderBy?: LogConfigOrderByWithRelationInput | LogConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: LogConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogConfigs 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` LogConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned LogConfigs
    **/
    _count?: true | LogConfigCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: LogConfigMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: LogConfigMaxAggregateInputType
  }

  export type GetLogConfigAggregateType<T extends LogConfigAggregateArgs> = {
        [P in keyof T & keyof AggregateLogConfig]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateLogConfig[P]>
      : GetScalarType<T[P], AggregateLogConfig[P]>
  }




  export type LogConfigGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LogConfigWhereInput
    orderBy?: LogConfigOrderByWithAggregationInput | LogConfigOrderByWithAggregationInput[]
    by: LogConfigScalarFieldEnum[] | LogConfigScalarFieldEnum
    having?: LogConfigScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: LogConfigCountAggregateInputType | true
    _min?: LogConfigMinAggregateInputType
    _max?: LogConfigMaxAggregateInputType
  }

  export type LogConfigGroupByOutputType = {
    id: string
    key: string
    value: JsonValue
    description: string | null
    updatedAt: Date
    updatedBy: string | null
    _count: LogConfigCountAggregateOutputType | null
    _min: LogConfigMinAggregateOutputType | null
    _max: LogConfigMaxAggregateOutputType | null
  }

  type GetLogConfigGroupByPayload<T extends LogConfigGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<LogConfigGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof LogConfigGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], LogConfigGroupByOutputType[P]>
            : GetScalarType<T[P], LogConfigGroupByOutputType[P]>
        }
      >
    >


  export type LogConfigSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    updatedAt?: boolean
    updatedBy?: boolean
  }, ExtArgs["result"]["logConfig"]>

  export type LogConfigSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    updatedAt?: boolean
    updatedBy?: boolean
  }, ExtArgs["result"]["logConfig"]>

  export type LogConfigSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    updatedAt?: boolean
    updatedBy?: boolean
  }, ExtArgs["result"]["logConfig"]>

  export type LogConfigSelectScalar = {
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    updatedAt?: boolean
    updatedBy?: boolean
  }

  export type LogConfigOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "key" | "value" | "description" | "updatedAt" | "updatedBy", ExtArgs["result"]["logConfig"]>

  export type $LogConfigPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "LogConfig"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      key: string
      value: Prisma.JsonValue
      description: string | null
      updatedAt: Date
      updatedBy: string | null
    }, ExtArgs["result"]["logConfig"]>
    composites: {}
  }

  type LogConfigGetPayload<S extends boolean | null | undefined | LogConfigDefaultArgs> = $Result.GetResult<Prisma.$LogConfigPayload, S>

  type LogConfigCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<LogConfigFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: LogConfigCountAggregateInputType | true
    }

  export interface LogConfigDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['LogConfig'], meta: { name: 'LogConfig' } }
    /**
     * Find zero or one LogConfig that matches the filter.
     * @param {LogConfigFindUniqueArgs} args - Arguments to find a LogConfig
     * @example
     * // Get one LogConfig
     * const logConfig = await prisma.logConfig.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends LogConfigFindUniqueArgs>(args: SelectSubset<T, LogConfigFindUniqueArgs<ExtArgs>>): Prisma__LogConfigClient<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one LogConfig that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {LogConfigFindUniqueOrThrowArgs} args - Arguments to find a LogConfig
     * @example
     * // Get one LogConfig
     * const logConfig = await prisma.logConfig.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends LogConfigFindUniqueOrThrowArgs>(args: SelectSubset<T, LogConfigFindUniqueOrThrowArgs<ExtArgs>>): Prisma__LogConfigClient<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LogConfig 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 {LogConfigFindFirstArgs} args - Arguments to find a LogConfig
     * @example
     * // Get one LogConfig
     * const logConfig = await prisma.logConfig.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends LogConfigFindFirstArgs>(args?: SelectSubset<T, LogConfigFindFirstArgs<ExtArgs>>): Prisma__LogConfigClient<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LogConfig 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 {LogConfigFindFirstOrThrowArgs} args - Arguments to find a LogConfig
     * @example
     * // Get one LogConfig
     * const logConfig = await prisma.logConfig.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends LogConfigFindFirstOrThrowArgs>(args?: SelectSubset<T, LogConfigFindFirstOrThrowArgs<ExtArgs>>): Prisma__LogConfigClient<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more LogConfigs 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 {LogConfigFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all LogConfigs
     * const logConfigs = await prisma.logConfig.findMany()
     * 
     * // Get first 10 LogConfigs
     * const logConfigs = await prisma.logConfig.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const logConfigWithIdOnly = await prisma.logConfig.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends LogConfigFindManyArgs>(args?: SelectSubset<T, LogConfigFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a LogConfig.
     * @param {LogConfigCreateArgs} args - Arguments to create a LogConfig.
     * @example
     * // Create one LogConfig
     * const LogConfig = await prisma.logConfig.create({
     *   data: {
     *     // ... data to create a LogConfig
     *   }
     * })
     * 
     */
    create<T extends LogConfigCreateArgs>(args: SelectSubset<T, LogConfigCreateArgs<ExtArgs>>): Prisma__LogConfigClient<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many LogConfigs.
     * @param {LogConfigCreateManyArgs} args - Arguments to create many LogConfigs.
     * @example
     * // Create many LogConfigs
     * const logConfig = await prisma.logConfig.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends LogConfigCreateManyArgs>(args?: SelectSubset<T, LogConfigCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many LogConfigs and returns the data saved in the database.
     * @param {LogConfigCreateManyAndReturnArgs} args - Arguments to create many LogConfigs.
     * @example
     * // Create many LogConfigs
     * const logConfig = await prisma.logConfig.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many LogConfigs and only return the `id`
     * const logConfigWithIdOnly = await prisma.logConfig.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 LogConfigCreateManyAndReturnArgs>(args?: SelectSubset<T, LogConfigCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a LogConfig.
     * @param {LogConfigDeleteArgs} args - Arguments to delete one LogConfig.
     * @example
     * // Delete one LogConfig
     * const LogConfig = await prisma.logConfig.delete({
     *   where: {
     *     // ... filter to delete one LogConfig
     *   }
     * })
     * 
     */
    delete<T extends LogConfigDeleteArgs>(args: SelectSubset<T, LogConfigDeleteArgs<ExtArgs>>): Prisma__LogConfigClient<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one LogConfig.
     * @param {LogConfigUpdateArgs} args - Arguments to update one LogConfig.
     * @example
     * // Update one LogConfig
     * const logConfig = await prisma.logConfig.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends LogConfigUpdateArgs>(args: SelectSubset<T, LogConfigUpdateArgs<ExtArgs>>): Prisma__LogConfigClient<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more LogConfigs.
     * @param {LogConfigDeleteManyArgs} args - Arguments to filter LogConfigs to delete.
     * @example
     * // Delete a few LogConfigs
     * const { count } = await prisma.logConfig.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends LogConfigDeleteManyArgs>(args?: SelectSubset<T, LogConfigDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LogConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogConfigUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many LogConfigs
     * const logConfig = await prisma.logConfig.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends LogConfigUpdateManyArgs>(args: SelectSubset<T, LogConfigUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LogConfigs and returns the data updated in the database.
     * @param {LogConfigUpdateManyAndReturnArgs} args - Arguments to update many LogConfigs.
     * @example
     * // Update many LogConfigs
     * const logConfig = await prisma.logConfig.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more LogConfigs and only return the `id`
     * const logConfigWithIdOnly = await prisma.logConfig.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 LogConfigUpdateManyAndReturnArgs>(args: SelectSubset<T, LogConfigUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one LogConfig.
     * @param {LogConfigUpsertArgs} args - Arguments to update or create a LogConfig.
     * @example
     * // Update or create a LogConfig
     * const logConfig = await prisma.logConfig.upsert({
     *   create: {
     *     // ... data to create a LogConfig
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the LogConfig we want to update
     *   }
     * })
     */
    upsert<T extends LogConfigUpsertArgs>(args: SelectSubset<T, LogConfigUpsertArgs<ExtArgs>>): Prisma__LogConfigClient<$Result.GetResult<Prisma.$LogConfigPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of LogConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogConfigCountArgs} args - Arguments to filter LogConfigs to count.
     * @example
     * // Count the number of LogConfigs
     * const count = await prisma.logConfig.count({
     *   where: {
     *     // ... the filter for the LogConfigs we want to count
     *   }
     * })
    **/
    count<T extends LogConfigCountArgs>(
      args?: Subset<T, LogConfigCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], LogConfigCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a LogConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogConfigAggregateArgs} 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 LogConfigAggregateArgs>(args: Subset<T, LogConfigAggregateArgs>): Prisma.PrismaPromise<GetLogConfigAggregateType<T>>

    /**
     * Group by LogConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogConfigGroupByArgs} 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 LogConfigGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: LogConfigGroupByArgs['orderBy'] }
        : { orderBy?: LogConfigGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, LogConfigGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetLogConfigGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the LogConfig model
   */
  readonly fields: LogConfigFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for LogConfig.
   * 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__LogConfigClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the LogConfig model
   */
  interface LogConfigFieldRefs {
    readonly id: FieldRef<"LogConfig", 'String'>
    readonly key: FieldRef<"LogConfig", 'String'>
    readonly value: FieldRef<"LogConfig", 'Json'>
    readonly description: FieldRef<"LogConfig", 'String'>
    readonly updatedAt: FieldRef<"LogConfig", 'DateTime'>
    readonly updatedBy: FieldRef<"LogConfig", 'String'>
  }
    

  // Custom InputTypes
  /**
   * LogConfig findUnique
   */
  export type LogConfigFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * Filter, which LogConfig to fetch.
     */
    where: LogConfigWhereUniqueInput
  }

  /**
   * LogConfig findUniqueOrThrow
   */
  export type LogConfigFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * Filter, which LogConfig to fetch.
     */
    where: LogConfigWhereUniqueInput
  }

  /**
   * LogConfig findFirst
   */
  export type LogConfigFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * Filter, which LogConfig to fetch.
     */
    where?: LogConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogConfigs to fetch.
     */
    orderBy?: LogConfigOrderByWithRelationInput | LogConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LogConfigs.
     */
    cursor?: LogConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogConfigs 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` LogConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LogConfigs.
     */
    distinct?: LogConfigScalarFieldEnum | LogConfigScalarFieldEnum[]
  }

  /**
   * LogConfig findFirstOrThrow
   */
  export type LogConfigFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * Filter, which LogConfig to fetch.
     */
    where?: LogConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogConfigs to fetch.
     */
    orderBy?: LogConfigOrderByWithRelationInput | LogConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LogConfigs.
     */
    cursor?: LogConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogConfigs 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` LogConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LogConfigs.
     */
    distinct?: LogConfigScalarFieldEnum | LogConfigScalarFieldEnum[]
  }

  /**
   * LogConfig findMany
   */
  export type LogConfigFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * Filter, which LogConfigs to fetch.
     */
    where?: LogConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogConfigs to fetch.
     */
    orderBy?: LogConfigOrderByWithRelationInput | LogConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing LogConfigs.
     */
    cursor?: LogConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogConfigs 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` LogConfigs.
     */
    skip?: number
    distinct?: LogConfigScalarFieldEnum | LogConfigScalarFieldEnum[]
  }

  /**
   * LogConfig create
   */
  export type LogConfigCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * The data needed to create a LogConfig.
     */
    data: XOR<LogConfigCreateInput, LogConfigUncheckedCreateInput>
  }

  /**
   * LogConfig createMany
   */
  export type LogConfigCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many LogConfigs.
     */
    data: LogConfigCreateManyInput | LogConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LogConfig createManyAndReturn
   */
  export type LogConfigCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * The data used to create many LogConfigs.
     */
    data: LogConfigCreateManyInput | LogConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LogConfig update
   */
  export type LogConfigUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * The data needed to update a LogConfig.
     */
    data: XOR<LogConfigUpdateInput, LogConfigUncheckedUpdateInput>
    /**
     * Choose, which LogConfig to update.
     */
    where: LogConfigWhereUniqueInput
  }

  /**
   * LogConfig updateMany
   */
  export type LogConfigUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update LogConfigs.
     */
    data: XOR<LogConfigUpdateManyMutationInput, LogConfigUncheckedUpdateManyInput>
    /**
     * Filter which LogConfigs to update
     */
    where?: LogConfigWhereInput
    /**
     * Limit how many LogConfigs to update.
     */
    limit?: number
  }

  /**
   * LogConfig updateManyAndReturn
   */
  export type LogConfigUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * The data used to update LogConfigs.
     */
    data: XOR<LogConfigUpdateManyMutationInput, LogConfigUncheckedUpdateManyInput>
    /**
     * Filter which LogConfigs to update
     */
    where?: LogConfigWhereInput
    /**
     * Limit how many LogConfigs to update.
     */
    limit?: number
  }

  /**
   * LogConfig upsert
   */
  export type LogConfigUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * The filter to search for the LogConfig to update in case it exists.
     */
    where: LogConfigWhereUniqueInput
    /**
     * In case the LogConfig found by the `where` argument doesn't exist, create a new LogConfig with this data.
     */
    create: XOR<LogConfigCreateInput, LogConfigUncheckedCreateInput>
    /**
     * In case the LogConfig was found with the provided `where` argument, update it with this data.
     */
    update: XOR<LogConfigUpdateInput, LogConfigUncheckedUpdateInput>
  }

  /**
   * LogConfig delete
   */
  export type LogConfigDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
    /**
     * Filter which LogConfig to delete.
     */
    where: LogConfigWhereUniqueInput
  }

  /**
   * LogConfig deleteMany
   */
  export type LogConfigDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LogConfigs to delete
     */
    where?: LogConfigWhereInput
    /**
     * Limit how many LogConfigs to delete.
     */
    limit?: number
  }

  /**
   * LogConfig without action
   */
  export type LogConfigDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogConfig
     */
    select?: LogConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogConfig
     */
    omit?: LogConfigOmit<ExtArgs> | null
  }


  /**
   * Model LogAlert
   */

  export type AggregateLogAlert = {
    _count: LogAlertCountAggregateOutputType | null
    _min: LogAlertMinAggregateOutputType | null
    _max: LogAlertMaxAggregateOutputType | null
  }

  export type LogAlertMinAggregateOutputType = {
    id: string | null
    type: $Enums.LogAlertType | null
    severity: $Enums.LogAlertSeverity | null
    message: string | null
    status: $Enums.LogAlertStatus | null
    errorMessage: string | null
    traceId: string | null
    logId: string | null
    acknowledgedAt: Date | null
    acknowledgedBy: string | null
    createdAt: Date | null
  }

  export type LogAlertMaxAggregateOutputType = {
    id: string | null
    type: $Enums.LogAlertType | null
    severity: $Enums.LogAlertSeverity | null
    message: string | null
    status: $Enums.LogAlertStatus | null
    errorMessage: string | null
    traceId: string | null
    logId: string | null
    acknowledgedAt: Date | null
    acknowledgedBy: string | null
    createdAt: Date | null
  }

  export type LogAlertCountAggregateOutputType = {
    id: number
    type: number
    severity: number
    message: number
    context: number
    channels: number
    status: number
    errorMessage: number
    traceId: number
    logId: number
    acknowledgedAt: number
    acknowledgedBy: number
    createdAt: number
    _all: number
  }


  export type LogAlertMinAggregateInputType = {
    id?: true
    type?: true
    severity?: true
    message?: true
    status?: true
    errorMessage?: true
    traceId?: true
    logId?: true
    acknowledgedAt?: true
    acknowledgedBy?: true
    createdAt?: true
  }

  export type LogAlertMaxAggregateInputType = {
    id?: true
    type?: true
    severity?: true
    message?: true
    status?: true
    errorMessage?: true
    traceId?: true
    logId?: true
    acknowledgedAt?: true
    acknowledgedBy?: true
    createdAt?: true
  }

  export type LogAlertCountAggregateInputType = {
    id?: true
    type?: true
    severity?: true
    message?: true
    context?: true
    channels?: true
    status?: true
    errorMessage?: true
    traceId?: true
    logId?: true
    acknowledgedAt?: true
    acknowledgedBy?: true
    createdAt?: true
    _all?: true
  }

  export type LogAlertAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LogAlert to aggregate.
     */
    where?: LogAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogAlerts to fetch.
     */
    orderBy?: LogAlertOrderByWithRelationInput | LogAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: LogAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogAlerts 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` LogAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned LogAlerts
    **/
    _count?: true | LogAlertCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: LogAlertMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: LogAlertMaxAggregateInputType
  }

  export type GetLogAlertAggregateType<T extends LogAlertAggregateArgs> = {
        [P in keyof T & keyof AggregateLogAlert]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateLogAlert[P]>
      : GetScalarType<T[P], AggregateLogAlert[P]>
  }




  export type LogAlertGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LogAlertWhereInput
    orderBy?: LogAlertOrderByWithAggregationInput | LogAlertOrderByWithAggregationInput[]
    by: LogAlertScalarFieldEnum[] | LogAlertScalarFieldEnum
    having?: LogAlertScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: LogAlertCountAggregateInputType | true
    _min?: LogAlertMinAggregateInputType
    _max?: LogAlertMaxAggregateInputType
  }

  export type LogAlertGroupByOutputType = {
    id: string
    type: $Enums.LogAlertType
    severity: $Enums.LogAlertSeverity
    message: string
    context: JsonValue | null
    channels: string[]
    status: $Enums.LogAlertStatus
    errorMessage: string | null
    traceId: string | null
    logId: string | null
    acknowledgedAt: Date | null
    acknowledgedBy: string | null
    createdAt: Date
    _count: LogAlertCountAggregateOutputType | null
    _min: LogAlertMinAggregateOutputType | null
    _max: LogAlertMaxAggregateOutputType | null
  }

  type GetLogAlertGroupByPayload<T extends LogAlertGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<LogAlertGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof LogAlertGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], LogAlertGroupByOutputType[P]>
            : GetScalarType<T[P], LogAlertGroupByOutputType[P]>
        }
      >
    >


  export type LogAlertSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    severity?: boolean
    message?: boolean
    context?: boolean
    channels?: boolean
    status?: boolean
    errorMessage?: boolean
    traceId?: boolean
    logId?: boolean
    acknowledgedAt?: boolean
    acknowledgedBy?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["logAlert"]>

  export type LogAlertSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    severity?: boolean
    message?: boolean
    context?: boolean
    channels?: boolean
    status?: boolean
    errorMessage?: boolean
    traceId?: boolean
    logId?: boolean
    acknowledgedAt?: boolean
    acknowledgedBy?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["logAlert"]>

  export type LogAlertSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    severity?: boolean
    message?: boolean
    context?: boolean
    channels?: boolean
    status?: boolean
    errorMessage?: boolean
    traceId?: boolean
    logId?: boolean
    acknowledgedAt?: boolean
    acknowledgedBy?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["logAlert"]>

  export type LogAlertSelectScalar = {
    id?: boolean
    type?: boolean
    severity?: boolean
    message?: boolean
    context?: boolean
    channels?: boolean
    status?: boolean
    errorMessage?: boolean
    traceId?: boolean
    logId?: boolean
    acknowledgedAt?: boolean
    acknowledgedBy?: boolean
    createdAt?: boolean
  }

  export type LogAlertOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "type" | "severity" | "message" | "context" | "channels" | "status" | "errorMessage" | "traceId" | "logId" | "acknowledgedAt" | "acknowledgedBy" | "createdAt", ExtArgs["result"]["logAlert"]>

  export type $LogAlertPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "LogAlert"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      type: $Enums.LogAlertType
      severity: $Enums.LogAlertSeverity
      message: string
      context: Prisma.JsonValue | null
      channels: string[]
      status: $Enums.LogAlertStatus
      errorMessage: string | null
      traceId: string | null
      logId: string | null
      acknowledgedAt: Date | null
      acknowledgedBy: string | null
      createdAt: Date
    }, ExtArgs["result"]["logAlert"]>
    composites: {}
  }

  type LogAlertGetPayload<S extends boolean | null | undefined | LogAlertDefaultArgs> = $Result.GetResult<Prisma.$LogAlertPayload, S>

  type LogAlertCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<LogAlertFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: LogAlertCountAggregateInputType | true
    }

  export interface LogAlertDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['LogAlert'], meta: { name: 'LogAlert' } }
    /**
     * Find zero or one LogAlert that matches the filter.
     * @param {LogAlertFindUniqueArgs} args - Arguments to find a LogAlert
     * @example
     * // Get one LogAlert
     * const logAlert = await prisma.logAlert.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends LogAlertFindUniqueArgs>(args: SelectSubset<T, LogAlertFindUniqueArgs<ExtArgs>>): Prisma__LogAlertClient<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one LogAlert that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {LogAlertFindUniqueOrThrowArgs} args - Arguments to find a LogAlert
     * @example
     * // Get one LogAlert
     * const logAlert = await prisma.logAlert.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends LogAlertFindUniqueOrThrowArgs>(args: SelectSubset<T, LogAlertFindUniqueOrThrowArgs<ExtArgs>>): Prisma__LogAlertClient<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LogAlert 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 {LogAlertFindFirstArgs} args - Arguments to find a LogAlert
     * @example
     * // Get one LogAlert
     * const logAlert = await prisma.logAlert.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends LogAlertFindFirstArgs>(args?: SelectSubset<T, LogAlertFindFirstArgs<ExtArgs>>): Prisma__LogAlertClient<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LogAlert 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 {LogAlertFindFirstOrThrowArgs} args - Arguments to find a LogAlert
     * @example
     * // Get one LogAlert
     * const logAlert = await prisma.logAlert.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends LogAlertFindFirstOrThrowArgs>(args?: SelectSubset<T, LogAlertFindFirstOrThrowArgs<ExtArgs>>): Prisma__LogAlertClient<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more LogAlerts 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 {LogAlertFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all LogAlerts
     * const logAlerts = await prisma.logAlert.findMany()
     * 
     * // Get first 10 LogAlerts
     * const logAlerts = await prisma.logAlert.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const logAlertWithIdOnly = await prisma.logAlert.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends LogAlertFindManyArgs>(args?: SelectSubset<T, LogAlertFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a LogAlert.
     * @param {LogAlertCreateArgs} args - Arguments to create a LogAlert.
     * @example
     * // Create one LogAlert
     * const LogAlert = await prisma.logAlert.create({
     *   data: {
     *     // ... data to create a LogAlert
     *   }
     * })
     * 
     */
    create<T extends LogAlertCreateArgs>(args: SelectSubset<T, LogAlertCreateArgs<ExtArgs>>): Prisma__LogAlertClient<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many LogAlerts.
     * @param {LogAlertCreateManyArgs} args - Arguments to create many LogAlerts.
     * @example
     * // Create many LogAlerts
     * const logAlert = await prisma.logAlert.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends LogAlertCreateManyArgs>(args?: SelectSubset<T, LogAlertCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many LogAlerts and returns the data saved in the database.
     * @param {LogAlertCreateManyAndReturnArgs} args - Arguments to create many LogAlerts.
     * @example
     * // Create many LogAlerts
     * const logAlert = await prisma.logAlert.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many LogAlerts and only return the `id`
     * const logAlertWithIdOnly = await prisma.logAlert.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 LogAlertCreateManyAndReturnArgs>(args?: SelectSubset<T, LogAlertCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a LogAlert.
     * @param {LogAlertDeleteArgs} args - Arguments to delete one LogAlert.
     * @example
     * // Delete one LogAlert
     * const LogAlert = await prisma.logAlert.delete({
     *   where: {
     *     // ... filter to delete one LogAlert
     *   }
     * })
     * 
     */
    delete<T extends LogAlertDeleteArgs>(args: SelectSubset<T, LogAlertDeleteArgs<ExtArgs>>): Prisma__LogAlertClient<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one LogAlert.
     * @param {LogAlertUpdateArgs} args - Arguments to update one LogAlert.
     * @example
     * // Update one LogAlert
     * const logAlert = await prisma.logAlert.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends LogAlertUpdateArgs>(args: SelectSubset<T, LogAlertUpdateArgs<ExtArgs>>): Prisma__LogAlertClient<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more LogAlerts.
     * @param {LogAlertDeleteManyArgs} args - Arguments to filter LogAlerts to delete.
     * @example
     * // Delete a few LogAlerts
     * const { count } = await prisma.logAlert.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends LogAlertDeleteManyArgs>(args?: SelectSubset<T, LogAlertDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LogAlerts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogAlertUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many LogAlerts
     * const logAlert = await prisma.logAlert.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends LogAlertUpdateManyArgs>(args: SelectSubset<T, LogAlertUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LogAlerts and returns the data updated in the database.
     * @param {LogAlertUpdateManyAndReturnArgs} args - Arguments to update many LogAlerts.
     * @example
     * // Update many LogAlerts
     * const logAlert = await prisma.logAlert.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more LogAlerts and only return the `id`
     * const logAlertWithIdOnly = await prisma.logAlert.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 LogAlertUpdateManyAndReturnArgs>(args: SelectSubset<T, LogAlertUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one LogAlert.
     * @param {LogAlertUpsertArgs} args - Arguments to update or create a LogAlert.
     * @example
     * // Update or create a LogAlert
     * const logAlert = await prisma.logAlert.upsert({
     *   create: {
     *     // ... data to create a LogAlert
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the LogAlert we want to update
     *   }
     * })
     */
    upsert<T extends LogAlertUpsertArgs>(args: SelectSubset<T, LogAlertUpsertArgs<ExtArgs>>): Prisma__LogAlertClient<$Result.GetResult<Prisma.$LogAlertPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of LogAlerts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogAlertCountArgs} args - Arguments to filter LogAlerts to count.
     * @example
     * // Count the number of LogAlerts
     * const count = await prisma.logAlert.count({
     *   where: {
     *     // ... the filter for the LogAlerts we want to count
     *   }
     * })
    **/
    count<T extends LogAlertCountArgs>(
      args?: Subset<T, LogAlertCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], LogAlertCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a LogAlert.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogAlertAggregateArgs} 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 LogAlertAggregateArgs>(args: Subset<T, LogAlertAggregateArgs>): Prisma.PrismaPromise<GetLogAlertAggregateType<T>>

    /**
     * Group by LogAlert.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogAlertGroupByArgs} 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 LogAlertGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: LogAlertGroupByArgs['orderBy'] }
        : { orderBy?: LogAlertGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, LogAlertGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetLogAlertGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the LogAlert model
   */
  readonly fields: LogAlertFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for LogAlert.
   * 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__LogAlertClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the LogAlert model
   */
  interface LogAlertFieldRefs {
    readonly id: FieldRef<"LogAlert", 'String'>
    readonly type: FieldRef<"LogAlert", 'LogAlertType'>
    readonly severity: FieldRef<"LogAlert", 'LogAlertSeverity'>
    readonly message: FieldRef<"LogAlert", 'String'>
    readonly context: FieldRef<"LogAlert", 'Json'>
    readonly channels: FieldRef<"LogAlert", 'String[]'>
    readonly status: FieldRef<"LogAlert", 'LogAlertStatus'>
    readonly errorMessage: FieldRef<"LogAlert", 'String'>
    readonly traceId: FieldRef<"LogAlert", 'String'>
    readonly logId: FieldRef<"LogAlert", 'String'>
    readonly acknowledgedAt: FieldRef<"LogAlert", 'DateTime'>
    readonly acknowledgedBy: FieldRef<"LogAlert", 'String'>
    readonly createdAt: FieldRef<"LogAlert", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * LogAlert findUnique
   */
  export type LogAlertFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * Filter, which LogAlert to fetch.
     */
    where: LogAlertWhereUniqueInput
  }

  /**
   * LogAlert findUniqueOrThrow
   */
  export type LogAlertFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * Filter, which LogAlert to fetch.
     */
    where: LogAlertWhereUniqueInput
  }

  /**
   * LogAlert findFirst
   */
  export type LogAlertFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * Filter, which LogAlert to fetch.
     */
    where?: LogAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogAlerts to fetch.
     */
    orderBy?: LogAlertOrderByWithRelationInput | LogAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LogAlerts.
     */
    cursor?: LogAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogAlerts 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` LogAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LogAlerts.
     */
    distinct?: LogAlertScalarFieldEnum | LogAlertScalarFieldEnum[]
  }

  /**
   * LogAlert findFirstOrThrow
   */
  export type LogAlertFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * Filter, which LogAlert to fetch.
     */
    where?: LogAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogAlerts to fetch.
     */
    orderBy?: LogAlertOrderByWithRelationInput | LogAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LogAlerts.
     */
    cursor?: LogAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogAlerts 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` LogAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LogAlerts.
     */
    distinct?: LogAlertScalarFieldEnum | LogAlertScalarFieldEnum[]
  }

  /**
   * LogAlert findMany
   */
  export type LogAlertFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * Filter, which LogAlerts to fetch.
     */
    where?: LogAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogAlerts to fetch.
     */
    orderBy?: LogAlertOrderByWithRelationInput | LogAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing LogAlerts.
     */
    cursor?: LogAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogAlerts 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` LogAlerts.
     */
    skip?: number
    distinct?: LogAlertScalarFieldEnum | LogAlertScalarFieldEnum[]
  }

  /**
   * LogAlert create
   */
  export type LogAlertCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * The data needed to create a LogAlert.
     */
    data: XOR<LogAlertCreateInput, LogAlertUncheckedCreateInput>
  }

  /**
   * LogAlert createMany
   */
  export type LogAlertCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many LogAlerts.
     */
    data: LogAlertCreateManyInput | LogAlertCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LogAlert createManyAndReturn
   */
  export type LogAlertCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * The data used to create many LogAlerts.
     */
    data: LogAlertCreateManyInput | LogAlertCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LogAlert update
   */
  export type LogAlertUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * The data needed to update a LogAlert.
     */
    data: XOR<LogAlertUpdateInput, LogAlertUncheckedUpdateInput>
    /**
     * Choose, which LogAlert to update.
     */
    where: LogAlertWhereUniqueInput
  }

  /**
   * LogAlert updateMany
   */
  export type LogAlertUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update LogAlerts.
     */
    data: XOR<LogAlertUpdateManyMutationInput, LogAlertUncheckedUpdateManyInput>
    /**
     * Filter which LogAlerts to update
     */
    where?: LogAlertWhereInput
    /**
     * Limit how many LogAlerts to update.
     */
    limit?: number
  }

  /**
   * LogAlert updateManyAndReturn
   */
  export type LogAlertUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * The data used to update LogAlerts.
     */
    data: XOR<LogAlertUpdateManyMutationInput, LogAlertUncheckedUpdateManyInput>
    /**
     * Filter which LogAlerts to update
     */
    where?: LogAlertWhereInput
    /**
     * Limit how many LogAlerts to update.
     */
    limit?: number
  }

  /**
   * LogAlert upsert
   */
  export type LogAlertUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * The filter to search for the LogAlert to update in case it exists.
     */
    where: LogAlertWhereUniqueInput
    /**
     * In case the LogAlert found by the `where` argument doesn't exist, create a new LogAlert with this data.
     */
    create: XOR<LogAlertCreateInput, LogAlertUncheckedCreateInput>
    /**
     * In case the LogAlert was found with the provided `where` argument, update it with this data.
     */
    update: XOR<LogAlertUpdateInput, LogAlertUncheckedUpdateInput>
  }

  /**
   * LogAlert delete
   */
  export type LogAlertDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
    /**
     * Filter which LogAlert to delete.
     */
    where: LogAlertWhereUniqueInput
  }

  /**
   * LogAlert deleteMany
   */
  export type LogAlertDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LogAlerts to delete
     */
    where?: LogAlertWhereInput
    /**
     * Limit how many LogAlerts to delete.
     */
    limit?: number
  }

  /**
   * LogAlert without action
   */
  export type LogAlertDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogAlert
     */
    select?: LogAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogAlert
     */
    omit?: LogAlertOmit<ExtArgs> | null
  }


  /**
   * Model LogCleanupRecord
   */

  export type AggregateLogCleanupRecord = {
    _count: LogCleanupRecordCountAggregateOutputType | null
    _avg: LogCleanupRecordAvgAggregateOutputType | null
    _sum: LogCleanupRecordSumAggregateOutputType | null
    _min: LogCleanupRecordMinAggregateOutputType | null
    _max: LogCleanupRecordMaxAggregateOutputType | null
  }

  export type LogCleanupRecordAvgAggregateOutputType = {
    olderThanDays: number | null
    deletedCount: number | null
    freedBytes: number | null
  }

  export type LogCleanupRecordSumAggregateOutputType = {
    olderThanDays: number | null
    deletedCount: number | null
    freedBytes: bigint | null
  }

  export type LogCleanupRecordMinAggregateOutputType = {
    id: string | null
    type: string | null
    olderThanDays: number | null
    dryRun: boolean | null
    deletedCount: number | null
    freedBytes: bigint | null
    status: string | null
    errorMessage: string | null
    startedAt: Date | null
    completedAt: Date | null
  }

  export type LogCleanupRecordMaxAggregateOutputType = {
    id: string | null
    type: string | null
    olderThanDays: number | null
    dryRun: boolean | null
    deletedCount: number | null
    freedBytes: bigint | null
    status: string | null
    errorMessage: string | null
    startedAt: Date | null
    completedAt: Date | null
  }

  export type LogCleanupRecordCountAggregateOutputType = {
    id: number
    type: number
    olderThanDays: number
    dryRun: number
    deletedCount: number
    freedBytes: number
    status: number
    errorMessage: number
    startedAt: number
    completedAt: number
    _all: number
  }


  export type LogCleanupRecordAvgAggregateInputType = {
    olderThanDays?: true
    deletedCount?: true
    freedBytes?: true
  }

  export type LogCleanupRecordSumAggregateInputType = {
    olderThanDays?: true
    deletedCount?: true
    freedBytes?: true
  }

  export type LogCleanupRecordMinAggregateInputType = {
    id?: true
    type?: true
    olderThanDays?: true
    dryRun?: true
    deletedCount?: true
    freedBytes?: true
    status?: true
    errorMessage?: true
    startedAt?: true
    completedAt?: true
  }

  export type LogCleanupRecordMaxAggregateInputType = {
    id?: true
    type?: true
    olderThanDays?: true
    dryRun?: true
    deletedCount?: true
    freedBytes?: true
    status?: true
    errorMessage?: true
    startedAt?: true
    completedAt?: true
  }

  export type LogCleanupRecordCountAggregateInputType = {
    id?: true
    type?: true
    olderThanDays?: true
    dryRun?: true
    deletedCount?: true
    freedBytes?: true
    status?: true
    errorMessage?: true
    startedAt?: true
    completedAt?: true
    _all?: true
  }

  export type LogCleanupRecordAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LogCleanupRecord to aggregate.
     */
    where?: LogCleanupRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogCleanupRecords to fetch.
     */
    orderBy?: LogCleanupRecordOrderByWithRelationInput | LogCleanupRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: LogCleanupRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogCleanupRecords 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` LogCleanupRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned LogCleanupRecords
    **/
    _count?: true | LogCleanupRecordCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: LogCleanupRecordAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: LogCleanupRecordSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: LogCleanupRecordMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: LogCleanupRecordMaxAggregateInputType
  }

  export type GetLogCleanupRecordAggregateType<T extends LogCleanupRecordAggregateArgs> = {
        [P in keyof T & keyof AggregateLogCleanupRecord]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateLogCleanupRecord[P]>
      : GetScalarType<T[P], AggregateLogCleanupRecord[P]>
  }




  export type LogCleanupRecordGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LogCleanupRecordWhereInput
    orderBy?: LogCleanupRecordOrderByWithAggregationInput | LogCleanupRecordOrderByWithAggregationInput[]
    by: LogCleanupRecordScalarFieldEnum[] | LogCleanupRecordScalarFieldEnum
    having?: LogCleanupRecordScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: LogCleanupRecordCountAggregateInputType | true
    _avg?: LogCleanupRecordAvgAggregateInputType
    _sum?: LogCleanupRecordSumAggregateInputType
    _min?: LogCleanupRecordMinAggregateInputType
    _max?: LogCleanupRecordMaxAggregateInputType
  }

  export type LogCleanupRecordGroupByOutputType = {
    id: string
    type: string
    olderThanDays: number
    dryRun: boolean
    deletedCount: number
    freedBytes: bigint
    status: string
    errorMessage: string | null
    startedAt: Date
    completedAt: Date | null
    _count: LogCleanupRecordCountAggregateOutputType | null
    _avg: LogCleanupRecordAvgAggregateOutputType | null
    _sum: LogCleanupRecordSumAggregateOutputType | null
    _min: LogCleanupRecordMinAggregateOutputType | null
    _max: LogCleanupRecordMaxAggregateOutputType | null
  }

  type GetLogCleanupRecordGroupByPayload<T extends LogCleanupRecordGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<LogCleanupRecordGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof LogCleanupRecordGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], LogCleanupRecordGroupByOutputType[P]>
            : GetScalarType<T[P], LogCleanupRecordGroupByOutputType[P]>
        }
      >
    >


  export type LogCleanupRecordSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    olderThanDays?: boolean
    dryRun?: boolean
    deletedCount?: boolean
    freedBytes?: boolean
    status?: boolean
    errorMessage?: boolean
    startedAt?: boolean
    completedAt?: boolean
  }, ExtArgs["result"]["logCleanupRecord"]>

  export type LogCleanupRecordSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    olderThanDays?: boolean
    dryRun?: boolean
    deletedCount?: boolean
    freedBytes?: boolean
    status?: boolean
    errorMessage?: boolean
    startedAt?: boolean
    completedAt?: boolean
  }, ExtArgs["result"]["logCleanupRecord"]>

  export type LogCleanupRecordSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    olderThanDays?: boolean
    dryRun?: boolean
    deletedCount?: boolean
    freedBytes?: boolean
    status?: boolean
    errorMessage?: boolean
    startedAt?: boolean
    completedAt?: boolean
  }, ExtArgs["result"]["logCleanupRecord"]>

  export type LogCleanupRecordSelectScalar = {
    id?: boolean
    type?: boolean
    olderThanDays?: boolean
    dryRun?: boolean
    deletedCount?: boolean
    freedBytes?: boolean
    status?: boolean
    errorMessage?: boolean
    startedAt?: boolean
    completedAt?: boolean
  }

  export type LogCleanupRecordOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "type" | "olderThanDays" | "dryRun" | "deletedCount" | "freedBytes" | "status" | "errorMessage" | "startedAt" | "completedAt", ExtArgs["result"]["logCleanupRecord"]>

  export type $LogCleanupRecordPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "LogCleanupRecord"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      type: string
      olderThanDays: number
      dryRun: boolean
      deletedCount: number
      freedBytes: bigint
      status: string
      errorMessage: string | null
      startedAt: Date
      completedAt: Date | null
    }, ExtArgs["result"]["logCleanupRecord"]>
    composites: {}
  }

  type LogCleanupRecordGetPayload<S extends boolean | null | undefined | LogCleanupRecordDefaultArgs> = $Result.GetResult<Prisma.$LogCleanupRecordPayload, S>

  type LogCleanupRecordCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<LogCleanupRecordFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: LogCleanupRecordCountAggregateInputType | true
    }

  export interface LogCleanupRecordDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['LogCleanupRecord'], meta: { name: 'LogCleanupRecord' } }
    /**
     * Find zero or one LogCleanupRecord that matches the filter.
     * @param {LogCleanupRecordFindUniqueArgs} args - Arguments to find a LogCleanupRecord
     * @example
     * // Get one LogCleanupRecord
     * const logCleanupRecord = await prisma.logCleanupRecord.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends LogCleanupRecordFindUniqueArgs>(args: SelectSubset<T, LogCleanupRecordFindUniqueArgs<ExtArgs>>): Prisma__LogCleanupRecordClient<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one LogCleanupRecord that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {LogCleanupRecordFindUniqueOrThrowArgs} args - Arguments to find a LogCleanupRecord
     * @example
     * // Get one LogCleanupRecord
     * const logCleanupRecord = await prisma.logCleanupRecord.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends LogCleanupRecordFindUniqueOrThrowArgs>(args: SelectSubset<T, LogCleanupRecordFindUniqueOrThrowArgs<ExtArgs>>): Prisma__LogCleanupRecordClient<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LogCleanupRecord 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 {LogCleanupRecordFindFirstArgs} args - Arguments to find a LogCleanupRecord
     * @example
     * // Get one LogCleanupRecord
     * const logCleanupRecord = await prisma.logCleanupRecord.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends LogCleanupRecordFindFirstArgs>(args?: SelectSubset<T, LogCleanupRecordFindFirstArgs<ExtArgs>>): Prisma__LogCleanupRecordClient<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LogCleanupRecord 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 {LogCleanupRecordFindFirstOrThrowArgs} args - Arguments to find a LogCleanupRecord
     * @example
     * // Get one LogCleanupRecord
     * const logCleanupRecord = await prisma.logCleanupRecord.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends LogCleanupRecordFindFirstOrThrowArgs>(args?: SelectSubset<T, LogCleanupRecordFindFirstOrThrowArgs<ExtArgs>>): Prisma__LogCleanupRecordClient<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more LogCleanupRecords 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 {LogCleanupRecordFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all LogCleanupRecords
     * const logCleanupRecords = await prisma.logCleanupRecord.findMany()
     * 
     * // Get first 10 LogCleanupRecords
     * const logCleanupRecords = await prisma.logCleanupRecord.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const logCleanupRecordWithIdOnly = await prisma.logCleanupRecord.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends LogCleanupRecordFindManyArgs>(args?: SelectSubset<T, LogCleanupRecordFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a LogCleanupRecord.
     * @param {LogCleanupRecordCreateArgs} args - Arguments to create a LogCleanupRecord.
     * @example
     * // Create one LogCleanupRecord
     * const LogCleanupRecord = await prisma.logCleanupRecord.create({
     *   data: {
     *     // ... data to create a LogCleanupRecord
     *   }
     * })
     * 
     */
    create<T extends LogCleanupRecordCreateArgs>(args: SelectSubset<T, LogCleanupRecordCreateArgs<ExtArgs>>): Prisma__LogCleanupRecordClient<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many LogCleanupRecords.
     * @param {LogCleanupRecordCreateManyArgs} args - Arguments to create many LogCleanupRecords.
     * @example
     * // Create many LogCleanupRecords
     * const logCleanupRecord = await prisma.logCleanupRecord.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends LogCleanupRecordCreateManyArgs>(args?: SelectSubset<T, LogCleanupRecordCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many LogCleanupRecords and returns the data saved in the database.
     * @param {LogCleanupRecordCreateManyAndReturnArgs} args - Arguments to create many LogCleanupRecords.
     * @example
     * // Create many LogCleanupRecords
     * const logCleanupRecord = await prisma.logCleanupRecord.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many LogCleanupRecords and only return the `id`
     * const logCleanupRecordWithIdOnly = await prisma.logCleanupRecord.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 LogCleanupRecordCreateManyAndReturnArgs>(args?: SelectSubset<T, LogCleanupRecordCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a LogCleanupRecord.
     * @param {LogCleanupRecordDeleteArgs} args - Arguments to delete one LogCleanupRecord.
     * @example
     * // Delete one LogCleanupRecord
     * const LogCleanupRecord = await prisma.logCleanupRecord.delete({
     *   where: {
     *     // ... filter to delete one LogCleanupRecord
     *   }
     * })
     * 
     */
    delete<T extends LogCleanupRecordDeleteArgs>(args: SelectSubset<T, LogCleanupRecordDeleteArgs<ExtArgs>>): Prisma__LogCleanupRecordClient<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one LogCleanupRecord.
     * @param {LogCleanupRecordUpdateArgs} args - Arguments to update one LogCleanupRecord.
     * @example
     * // Update one LogCleanupRecord
     * const logCleanupRecord = await prisma.logCleanupRecord.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends LogCleanupRecordUpdateArgs>(args: SelectSubset<T, LogCleanupRecordUpdateArgs<ExtArgs>>): Prisma__LogCleanupRecordClient<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more LogCleanupRecords.
     * @param {LogCleanupRecordDeleteManyArgs} args - Arguments to filter LogCleanupRecords to delete.
     * @example
     * // Delete a few LogCleanupRecords
     * const { count } = await prisma.logCleanupRecord.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends LogCleanupRecordDeleteManyArgs>(args?: SelectSubset<T, LogCleanupRecordDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LogCleanupRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogCleanupRecordUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many LogCleanupRecords
     * const logCleanupRecord = await prisma.logCleanupRecord.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends LogCleanupRecordUpdateManyArgs>(args: SelectSubset<T, LogCleanupRecordUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LogCleanupRecords and returns the data updated in the database.
     * @param {LogCleanupRecordUpdateManyAndReturnArgs} args - Arguments to update many LogCleanupRecords.
     * @example
     * // Update many LogCleanupRecords
     * const logCleanupRecord = await prisma.logCleanupRecord.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more LogCleanupRecords and only return the `id`
     * const logCleanupRecordWithIdOnly = await prisma.logCleanupRecord.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 LogCleanupRecordUpdateManyAndReturnArgs>(args: SelectSubset<T, LogCleanupRecordUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one LogCleanupRecord.
     * @param {LogCleanupRecordUpsertArgs} args - Arguments to update or create a LogCleanupRecord.
     * @example
     * // Update or create a LogCleanupRecord
     * const logCleanupRecord = await prisma.logCleanupRecord.upsert({
     *   create: {
     *     // ... data to create a LogCleanupRecord
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the LogCleanupRecord we want to update
     *   }
     * })
     */
    upsert<T extends LogCleanupRecordUpsertArgs>(args: SelectSubset<T, LogCleanupRecordUpsertArgs<ExtArgs>>): Prisma__LogCleanupRecordClient<$Result.GetResult<Prisma.$LogCleanupRecordPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of LogCleanupRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogCleanupRecordCountArgs} args - Arguments to filter LogCleanupRecords to count.
     * @example
     * // Count the number of LogCleanupRecords
     * const count = await prisma.logCleanupRecord.count({
     *   where: {
     *     // ... the filter for the LogCleanupRecords we want to count
     *   }
     * })
    **/
    count<T extends LogCleanupRecordCountArgs>(
      args?: Subset<T, LogCleanupRecordCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], LogCleanupRecordCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a LogCleanupRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogCleanupRecordAggregateArgs} 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 LogCleanupRecordAggregateArgs>(args: Subset<T, LogCleanupRecordAggregateArgs>): Prisma.PrismaPromise<GetLogCleanupRecordAggregateType<T>>

    /**
     * Group by LogCleanupRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogCleanupRecordGroupByArgs} 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 LogCleanupRecordGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: LogCleanupRecordGroupByArgs['orderBy'] }
        : { orderBy?: LogCleanupRecordGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, LogCleanupRecordGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetLogCleanupRecordGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the LogCleanupRecord model
   */
  readonly fields: LogCleanupRecordFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for LogCleanupRecord.
   * 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__LogCleanupRecordClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the LogCleanupRecord model
   */
  interface LogCleanupRecordFieldRefs {
    readonly id: FieldRef<"LogCleanupRecord", 'String'>
    readonly type: FieldRef<"LogCleanupRecord", 'String'>
    readonly olderThanDays: FieldRef<"LogCleanupRecord", 'Int'>
    readonly dryRun: FieldRef<"LogCleanupRecord", 'Boolean'>
    readonly deletedCount: FieldRef<"LogCleanupRecord", 'Int'>
    readonly freedBytes: FieldRef<"LogCleanupRecord", 'BigInt'>
    readonly status: FieldRef<"LogCleanupRecord", 'String'>
    readonly errorMessage: FieldRef<"LogCleanupRecord", 'String'>
    readonly startedAt: FieldRef<"LogCleanupRecord", 'DateTime'>
    readonly completedAt: FieldRef<"LogCleanupRecord", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * LogCleanupRecord findUnique
   */
  export type LogCleanupRecordFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * Filter, which LogCleanupRecord to fetch.
     */
    where: LogCleanupRecordWhereUniqueInput
  }

  /**
   * LogCleanupRecord findUniqueOrThrow
   */
  export type LogCleanupRecordFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * Filter, which LogCleanupRecord to fetch.
     */
    where: LogCleanupRecordWhereUniqueInput
  }

  /**
   * LogCleanupRecord findFirst
   */
  export type LogCleanupRecordFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * Filter, which LogCleanupRecord to fetch.
     */
    where?: LogCleanupRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogCleanupRecords to fetch.
     */
    orderBy?: LogCleanupRecordOrderByWithRelationInput | LogCleanupRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LogCleanupRecords.
     */
    cursor?: LogCleanupRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogCleanupRecords 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` LogCleanupRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LogCleanupRecords.
     */
    distinct?: LogCleanupRecordScalarFieldEnum | LogCleanupRecordScalarFieldEnum[]
  }

  /**
   * LogCleanupRecord findFirstOrThrow
   */
  export type LogCleanupRecordFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * Filter, which LogCleanupRecord to fetch.
     */
    where?: LogCleanupRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogCleanupRecords to fetch.
     */
    orderBy?: LogCleanupRecordOrderByWithRelationInput | LogCleanupRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LogCleanupRecords.
     */
    cursor?: LogCleanupRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogCleanupRecords 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` LogCleanupRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LogCleanupRecords.
     */
    distinct?: LogCleanupRecordScalarFieldEnum | LogCleanupRecordScalarFieldEnum[]
  }

  /**
   * LogCleanupRecord findMany
   */
  export type LogCleanupRecordFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * Filter, which LogCleanupRecords to fetch.
     */
    where?: LogCleanupRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogCleanupRecords to fetch.
     */
    orderBy?: LogCleanupRecordOrderByWithRelationInput | LogCleanupRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing LogCleanupRecords.
     */
    cursor?: LogCleanupRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogCleanupRecords 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` LogCleanupRecords.
     */
    skip?: number
    distinct?: LogCleanupRecordScalarFieldEnum | LogCleanupRecordScalarFieldEnum[]
  }

  /**
   * LogCleanupRecord create
   */
  export type LogCleanupRecordCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * The data needed to create a LogCleanupRecord.
     */
    data: XOR<LogCleanupRecordCreateInput, LogCleanupRecordUncheckedCreateInput>
  }

  /**
   * LogCleanupRecord createMany
   */
  export type LogCleanupRecordCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many LogCleanupRecords.
     */
    data: LogCleanupRecordCreateManyInput | LogCleanupRecordCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LogCleanupRecord createManyAndReturn
   */
  export type LogCleanupRecordCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * The data used to create many LogCleanupRecords.
     */
    data: LogCleanupRecordCreateManyInput | LogCleanupRecordCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LogCleanupRecord update
   */
  export type LogCleanupRecordUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * The data needed to update a LogCleanupRecord.
     */
    data: XOR<LogCleanupRecordUpdateInput, LogCleanupRecordUncheckedUpdateInput>
    /**
     * Choose, which LogCleanupRecord to update.
     */
    where: LogCleanupRecordWhereUniqueInput
  }

  /**
   * LogCleanupRecord updateMany
   */
  export type LogCleanupRecordUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update LogCleanupRecords.
     */
    data: XOR<LogCleanupRecordUpdateManyMutationInput, LogCleanupRecordUncheckedUpdateManyInput>
    /**
     * Filter which LogCleanupRecords to update
     */
    where?: LogCleanupRecordWhereInput
    /**
     * Limit how many LogCleanupRecords to update.
     */
    limit?: number
  }

  /**
   * LogCleanupRecord updateManyAndReturn
   */
  export type LogCleanupRecordUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * The data used to update LogCleanupRecords.
     */
    data: XOR<LogCleanupRecordUpdateManyMutationInput, LogCleanupRecordUncheckedUpdateManyInput>
    /**
     * Filter which LogCleanupRecords to update
     */
    where?: LogCleanupRecordWhereInput
    /**
     * Limit how many LogCleanupRecords to update.
     */
    limit?: number
  }

  /**
   * LogCleanupRecord upsert
   */
  export type LogCleanupRecordUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * The filter to search for the LogCleanupRecord to update in case it exists.
     */
    where: LogCleanupRecordWhereUniqueInput
    /**
     * In case the LogCleanupRecord found by the `where` argument doesn't exist, create a new LogCleanupRecord with this data.
     */
    create: XOR<LogCleanupRecordCreateInput, LogCleanupRecordUncheckedCreateInput>
    /**
     * In case the LogCleanupRecord was found with the provided `where` argument, update it with this data.
     */
    update: XOR<LogCleanupRecordUpdateInput, LogCleanupRecordUncheckedUpdateInput>
  }

  /**
   * LogCleanupRecord delete
   */
  export type LogCleanupRecordDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
    /**
     * Filter which LogCleanupRecord to delete.
     */
    where: LogCleanupRecordWhereUniqueInput
  }

  /**
   * LogCleanupRecord deleteMany
   */
  export type LogCleanupRecordDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LogCleanupRecords to delete
     */
    where?: LogCleanupRecordWhereInput
    /**
     * Limit how many LogCleanupRecords to delete.
     */
    limit?: number
  }

  /**
   * LogCleanupRecord without action
   */
  export type LogCleanupRecordDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogCleanupRecord
     */
    select?: LogCleanupRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogCleanupRecord
     */
    omit?: LogCleanupRecordOmit<ExtArgs> | null
  }


  /**
   * Model Customer
   */

  export type AggregateCustomer = {
    _count: CustomerCountAggregateOutputType | null
    _avg: CustomerAvgAggregateOutputType | null
    _sum: CustomerSumAggregateOutputType | null
    _min: CustomerMinAggregateOutputType | null
    _max: CustomerMaxAggregateOutputType | null
  }

  export type CustomerAvgAggregateOutputType = {
    creditLimit: Decimal | null
  }

  export type CustomerSumAggregateOutputType = {
    creditLimit: Decimal | null
  }

  export type CustomerMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    type: $Enums.CustomerType | null
    industry: string | null
    countryCode: string | null
    taxId: string | null
    creditLimit: Decimal | null
    currencyCode: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type CustomerMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    type: $Enums.CustomerType | null
    industry: string | null
    countryCode: string | null
    taxId: string | null
    creditLimit: Decimal | null
    currencyCode: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type CustomerCountAggregateOutputType = {
    id: number
    code: number
    name: number
    type: number
    industry: number
    countryCode: number
    taxId: number
    creditLimit: number
    currencyCode: number
    enabled: number
    metadata: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type CustomerAvgAggregateInputType = {
    creditLimit?: true
  }

  export type CustomerSumAggregateInputType = {
    creditLimit?: true
  }

  export type CustomerMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    industry?: true
    countryCode?: true
    taxId?: true
    creditLimit?: true
    currencyCode?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type CustomerMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    industry?: true
    countryCode?: true
    taxId?: true
    creditLimit?: true
    currencyCode?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type CustomerCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    industry?: true
    countryCode?: true
    taxId?: true
    creditLimit?: true
    currencyCode?: true
    enabled?: true
    metadata?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type CustomerAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Customer to aggregate.
     */
    where?: CustomerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Customers to fetch.
     */
    orderBy?: CustomerOrderByWithRelationInput | CustomerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CustomerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Customers 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` Customers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Customers
    **/
    _count?: true | CustomerCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: CustomerAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: CustomerSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CustomerMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CustomerMaxAggregateInputType
  }

  export type GetCustomerAggregateType<T extends CustomerAggregateArgs> = {
        [P in keyof T & keyof AggregateCustomer]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCustomer[P]>
      : GetScalarType<T[P], AggregateCustomer[P]>
  }




  export type CustomerGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CustomerWhereInput
    orderBy?: CustomerOrderByWithAggregationInput | CustomerOrderByWithAggregationInput[]
    by: CustomerScalarFieldEnum[] | CustomerScalarFieldEnum
    having?: CustomerScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CustomerCountAggregateInputType | true
    _avg?: CustomerAvgAggregateInputType
    _sum?: CustomerSumAggregateInputType
    _min?: CustomerMinAggregateInputType
    _max?: CustomerMaxAggregateInputType
  }

  export type CustomerGroupByOutputType = {
    id: string
    code: string
    name: string
    type: $Enums.CustomerType
    industry: string | null
    countryCode: string | null
    taxId: string | null
    creditLimit: Decimal | null
    currencyCode: string | null
    enabled: boolean
    metadata: JsonValue
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: CustomerCountAggregateOutputType | null
    _avg: CustomerAvgAggregateOutputType | null
    _sum: CustomerSumAggregateOutputType | null
    _min: CustomerMinAggregateOutputType | null
    _max: CustomerMaxAggregateOutputType | null
  }

  type GetCustomerGroupByPayload<T extends CustomerGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<CustomerGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof CustomerGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], CustomerGroupByOutputType[P]>
            : GetScalarType<T[P], CustomerGroupByOutputType[P]>
        }
      >
    >


  export type CustomerSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    industry?: boolean
    countryCode?: boolean
    taxId?: boolean
    creditLimit?: boolean
    currencyCode?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    contacts?: boolean | Customer$contactsArgs<ExtArgs>
    addresses?: boolean | Customer$addressesArgs<ExtArgs>
    locations?: boolean | Customer$locationsArgs<ExtArgs>
    _count?: boolean | CustomerCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["customer"]>

  export type CustomerSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    industry?: boolean
    countryCode?: boolean
    taxId?: boolean
    creditLimit?: boolean
    currencyCode?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["customer"]>

  export type CustomerSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    industry?: boolean
    countryCode?: boolean
    taxId?: boolean
    creditLimit?: boolean
    currencyCode?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["customer"]>

  export type CustomerSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    industry?: boolean
    countryCode?: boolean
    taxId?: boolean
    creditLimit?: boolean
    currencyCode?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type CustomerOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "type" | "industry" | "countryCode" | "taxId" | "creditLimit" | "currencyCode" | "enabled" | "metadata" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["customer"]>
  export type CustomerInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    contacts?: boolean | Customer$contactsArgs<ExtArgs>
    addresses?: boolean | Customer$addressesArgs<ExtArgs>
    locations?: boolean | Customer$locationsArgs<ExtArgs>
    _count?: boolean | CustomerCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type CustomerIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type CustomerIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $CustomerPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Customer"
    objects: {
      contacts: Prisma.$CustomerContactPayload<ExtArgs>[]
      addresses: Prisma.$CustomerAddressPayload<ExtArgs>[]
      locations: Prisma.$LocationPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      type: $Enums.CustomerType
      industry: string | null
      countryCode: string | null
      taxId: string | null
      creditLimit: Prisma.Decimal | null
      currencyCode: string | null
      enabled: boolean
      /**
       * ⚠️ 仅未结构化的扩展属性（外部系统回传 / 待迁出的临时字段）。业务字段必须独立列（原则 5）。
       */
      metadata: Prisma.JsonValue
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["customer"]>
    composites: {}
  }

  type CustomerGetPayload<S extends boolean | null | undefined | CustomerDefaultArgs> = $Result.GetResult<Prisma.$CustomerPayload, S>

  type CustomerCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CustomerFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CustomerCountAggregateInputType | true
    }

  export interface CustomerDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Customer'], meta: { name: 'Customer' } }
    /**
     * Find zero or one Customer that matches the filter.
     * @param {CustomerFindUniqueArgs} args - Arguments to find a Customer
     * @example
     * // Get one Customer
     * const customer = await prisma.customer.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends CustomerFindUniqueArgs>(args: SelectSubset<T, CustomerFindUniqueArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Customer that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {CustomerFindUniqueOrThrowArgs} args - Arguments to find a Customer
     * @example
     * // Get one Customer
     * const customer = await prisma.customer.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends CustomerFindUniqueOrThrowArgs>(args: SelectSubset<T, CustomerFindUniqueOrThrowArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Customer 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 {CustomerFindFirstArgs} args - Arguments to find a Customer
     * @example
     * // Get one Customer
     * const customer = await prisma.customer.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CustomerFindFirstArgs>(args?: SelectSubset<T, CustomerFindFirstArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Customer 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 {CustomerFindFirstOrThrowArgs} args - Arguments to find a Customer
     * @example
     * // Get one Customer
     * const customer = await prisma.customer.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CustomerFindFirstOrThrowArgs>(args?: SelectSubset<T, CustomerFindFirstOrThrowArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Customers 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 {CustomerFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Customers
     * const customers = await prisma.customer.findMany()
     * 
     * // Get first 10 Customers
     * const customers = await prisma.customer.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const customerWithIdOnly = await prisma.customer.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CustomerFindManyArgs>(args?: SelectSubset<T, CustomerFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Customer.
     * @param {CustomerCreateArgs} args - Arguments to create a Customer.
     * @example
     * // Create one Customer
     * const Customer = await prisma.customer.create({
     *   data: {
     *     // ... data to create a Customer
     *   }
     * })
     * 
     */
    create<T extends CustomerCreateArgs>(args: SelectSubset<T, CustomerCreateArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Customers.
     * @param {CustomerCreateManyArgs} args - Arguments to create many Customers.
     * @example
     * // Create many Customers
     * const customer = await prisma.customer.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends CustomerCreateManyArgs>(args?: SelectSubset<T, CustomerCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Customers and returns the data saved in the database.
     * @param {CustomerCreateManyAndReturnArgs} args - Arguments to create many Customers.
     * @example
     * // Create many Customers
     * const customer = await prisma.customer.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Customers and only return the `id`
     * const customerWithIdOnly = await prisma.customer.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 CustomerCreateManyAndReturnArgs>(args?: SelectSubset<T, CustomerCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Customer.
     * @param {CustomerDeleteArgs} args - Arguments to delete one Customer.
     * @example
     * // Delete one Customer
     * const Customer = await prisma.customer.delete({
     *   where: {
     *     // ... filter to delete one Customer
     *   }
     * })
     * 
     */
    delete<T extends CustomerDeleteArgs>(args: SelectSubset<T, CustomerDeleteArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Customer.
     * @param {CustomerUpdateArgs} args - Arguments to update one Customer.
     * @example
     * // Update one Customer
     * const customer = await prisma.customer.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CustomerUpdateArgs>(args: SelectSubset<T, CustomerUpdateArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Customers.
     * @param {CustomerDeleteManyArgs} args - Arguments to filter Customers to delete.
     * @example
     * // Delete a few Customers
     * const { count } = await prisma.customer.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends CustomerDeleteManyArgs>(args?: SelectSubset<T, CustomerDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Customers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Customers
     * const customer = await prisma.customer.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends CustomerUpdateManyArgs>(args: SelectSubset<T, CustomerUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Customers and returns the data updated in the database.
     * @param {CustomerUpdateManyAndReturnArgs} args - Arguments to update many Customers.
     * @example
     * // Update many Customers
     * const customer = await prisma.customer.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Customers and only return the `id`
     * const customerWithIdOnly = await prisma.customer.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 CustomerUpdateManyAndReturnArgs>(args: SelectSubset<T, CustomerUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Customer.
     * @param {CustomerUpsertArgs} args - Arguments to update or create a Customer.
     * @example
     * // Update or create a Customer
     * const customer = await prisma.customer.upsert({
     *   create: {
     *     // ... data to create a Customer
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Customer we want to update
     *   }
     * })
     */
    upsert<T extends CustomerUpsertArgs>(args: SelectSubset<T, CustomerUpsertArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Customers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerCountArgs} args - Arguments to filter Customers to count.
     * @example
     * // Count the number of Customers
     * const count = await prisma.customer.count({
     *   where: {
     *     // ... the filter for the Customers we want to count
     *   }
     * })
    **/
    count<T extends CustomerCountArgs>(
      args?: Subset<T, CustomerCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], CustomerCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Customer.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerAggregateArgs} 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 CustomerAggregateArgs>(args: Subset<T, CustomerAggregateArgs>): Prisma.PrismaPromise<GetCustomerAggregateType<T>>

    /**
     * Group by Customer.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerGroupByArgs} 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 CustomerGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CustomerGroupByArgs['orderBy'] }
        : { orderBy?: CustomerGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CustomerGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCustomerGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Customer model
   */
  readonly fields: CustomerFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Customer.
   * 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__CustomerClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    contacts<T extends Customer$contactsArgs<ExtArgs> = {}>(args?: Subset<T, Customer$contactsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    addresses<T extends Customer$addressesArgs<ExtArgs> = {}>(args?: Subset<T, Customer$addressesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    locations<T extends Customer$locationsArgs<ExtArgs> = {}>(args?: Subset<T, Customer$locationsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Customer model
   */
  interface CustomerFieldRefs {
    readonly id: FieldRef<"Customer", 'String'>
    readonly code: FieldRef<"Customer", 'String'>
    readonly name: FieldRef<"Customer", 'String'>
    readonly type: FieldRef<"Customer", 'CustomerType'>
    readonly industry: FieldRef<"Customer", 'String'>
    readonly countryCode: FieldRef<"Customer", 'String'>
    readonly taxId: FieldRef<"Customer", 'String'>
    readonly creditLimit: FieldRef<"Customer", 'Decimal'>
    readonly currencyCode: FieldRef<"Customer", 'String'>
    readonly enabled: FieldRef<"Customer", 'Boolean'>
    readonly metadata: FieldRef<"Customer", 'Json'>
    readonly organizationId: FieldRef<"Customer", 'String'>
    readonly createdAt: FieldRef<"Customer", 'DateTime'>
    readonly updatedAt: FieldRef<"Customer", 'DateTime'>
    readonly createdById: FieldRef<"Customer", 'String'>
    readonly deletedAt: FieldRef<"Customer", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Customer findUnique
   */
  export type CustomerFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * Filter, which Customer to fetch.
     */
    where: CustomerWhereUniqueInput
  }

  /**
   * Customer findUniqueOrThrow
   */
  export type CustomerFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * Filter, which Customer to fetch.
     */
    where: CustomerWhereUniqueInput
  }

  /**
   * Customer findFirst
   */
  export type CustomerFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * Filter, which Customer to fetch.
     */
    where?: CustomerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Customers to fetch.
     */
    orderBy?: CustomerOrderByWithRelationInput | CustomerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Customers.
     */
    cursor?: CustomerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Customers 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` Customers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Customers.
     */
    distinct?: CustomerScalarFieldEnum | CustomerScalarFieldEnum[]
  }

  /**
   * Customer findFirstOrThrow
   */
  export type CustomerFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * Filter, which Customer to fetch.
     */
    where?: CustomerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Customers to fetch.
     */
    orderBy?: CustomerOrderByWithRelationInput | CustomerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Customers.
     */
    cursor?: CustomerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Customers 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` Customers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Customers.
     */
    distinct?: CustomerScalarFieldEnum | CustomerScalarFieldEnum[]
  }

  /**
   * Customer findMany
   */
  export type CustomerFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * Filter, which Customers to fetch.
     */
    where?: CustomerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Customers to fetch.
     */
    orderBy?: CustomerOrderByWithRelationInput | CustomerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Customers.
     */
    cursor?: CustomerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Customers 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` Customers.
     */
    skip?: number
    distinct?: CustomerScalarFieldEnum | CustomerScalarFieldEnum[]
  }

  /**
   * Customer create
   */
  export type CustomerCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * The data needed to create a Customer.
     */
    data: XOR<CustomerCreateInput, CustomerUncheckedCreateInput>
  }

  /**
   * Customer createMany
   */
  export type CustomerCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Customers.
     */
    data: CustomerCreateManyInput | CustomerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Customer createManyAndReturn
   */
  export type CustomerCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * The data used to create many Customers.
     */
    data: CustomerCreateManyInput | CustomerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Customer update
   */
  export type CustomerUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * The data needed to update a Customer.
     */
    data: XOR<CustomerUpdateInput, CustomerUncheckedUpdateInput>
    /**
     * Choose, which Customer to update.
     */
    where: CustomerWhereUniqueInput
  }

  /**
   * Customer updateMany
   */
  export type CustomerUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Customers.
     */
    data: XOR<CustomerUpdateManyMutationInput, CustomerUncheckedUpdateManyInput>
    /**
     * Filter which Customers to update
     */
    where?: CustomerWhereInput
    /**
     * Limit how many Customers to update.
     */
    limit?: number
  }

  /**
   * Customer updateManyAndReturn
   */
  export type CustomerUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * The data used to update Customers.
     */
    data: XOR<CustomerUpdateManyMutationInput, CustomerUncheckedUpdateManyInput>
    /**
     * Filter which Customers to update
     */
    where?: CustomerWhereInput
    /**
     * Limit how many Customers to update.
     */
    limit?: number
  }

  /**
   * Customer upsert
   */
  export type CustomerUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * The filter to search for the Customer to update in case it exists.
     */
    where: CustomerWhereUniqueInput
    /**
     * In case the Customer found by the `where` argument doesn't exist, create a new Customer with this data.
     */
    create: XOR<CustomerCreateInput, CustomerUncheckedCreateInput>
    /**
     * In case the Customer was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CustomerUpdateInput, CustomerUncheckedUpdateInput>
  }

  /**
   * Customer delete
   */
  export type CustomerDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    /**
     * Filter which Customer to delete.
     */
    where: CustomerWhereUniqueInput
  }

  /**
   * Customer deleteMany
   */
  export type CustomerDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Customers to delete
     */
    where?: CustomerWhereInput
    /**
     * Limit how many Customers to delete.
     */
    limit?: number
  }

  /**
   * Customer.contacts
   */
  export type Customer$contactsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    where?: CustomerContactWhereInput
    orderBy?: CustomerContactOrderByWithRelationInput | CustomerContactOrderByWithRelationInput[]
    cursor?: CustomerContactWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CustomerContactScalarFieldEnum | CustomerContactScalarFieldEnum[]
  }

  /**
   * Customer.addresses
   */
  export type Customer$addressesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    where?: CustomerAddressWhereInput
    orderBy?: CustomerAddressOrderByWithRelationInput | CustomerAddressOrderByWithRelationInput[]
    cursor?: CustomerAddressWhereUniqueInput
    take?: number
    skip?: number
    distinct?: CustomerAddressScalarFieldEnum | CustomerAddressScalarFieldEnum[]
  }

  /**
   * Customer.locations
   */
  export type Customer$locationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    where?: LocationWhereInput
    orderBy?: LocationOrderByWithRelationInput | LocationOrderByWithRelationInput[]
    cursor?: LocationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: LocationScalarFieldEnum | LocationScalarFieldEnum[]
  }

  /**
   * Customer without action
   */
  export type CustomerDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
  }


  /**
   * Model CustomerContact
   */

  export type AggregateCustomerContact = {
    _count: CustomerContactCountAggregateOutputType | null
    _min: CustomerContactMinAggregateOutputType | null
    _max: CustomerContactMaxAggregateOutputType | null
  }

  export type CustomerContactMinAggregateOutputType = {
    id: string | null
    customerId: string | null
    name: string | null
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CustomerContactMaxAggregateOutputType = {
    id: string | null
    customerId: string | null
    name: string | null
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CustomerContactCountAggregateOutputType = {
    id: number
    customerId: number
    name: number
    role: number
    phone: number
    email: number
    isPrimary: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type CustomerContactMinAggregateInputType = {
    id?: true
    customerId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CustomerContactMaxAggregateInputType = {
    id?: true
    customerId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CustomerContactCountAggregateInputType = {
    id?: true
    customerId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type CustomerContactAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CustomerContact to aggregate.
     */
    where?: CustomerContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CustomerContacts to fetch.
     */
    orderBy?: CustomerContactOrderByWithRelationInput | CustomerContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CustomerContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CustomerContacts 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` CustomerContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned CustomerContacts
    **/
    _count?: true | CustomerContactCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CustomerContactMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CustomerContactMaxAggregateInputType
  }

  export type GetCustomerContactAggregateType<T extends CustomerContactAggregateArgs> = {
        [P in keyof T & keyof AggregateCustomerContact]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCustomerContact[P]>
      : GetScalarType<T[P], AggregateCustomerContact[P]>
  }




  export type CustomerContactGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CustomerContactWhereInput
    orderBy?: CustomerContactOrderByWithAggregationInput | CustomerContactOrderByWithAggregationInput[]
    by: CustomerContactScalarFieldEnum[] | CustomerContactScalarFieldEnum
    having?: CustomerContactScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CustomerContactCountAggregateInputType | true
    _min?: CustomerContactMinAggregateInputType
    _max?: CustomerContactMaxAggregateInputType
  }

  export type CustomerContactGroupByOutputType = {
    id: string
    customerId: string
    name: string
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean
    createdAt: Date
    updatedAt: Date
    _count: CustomerContactCountAggregateOutputType | null
    _min: CustomerContactMinAggregateOutputType | null
    _max: CustomerContactMaxAggregateOutputType | null
  }

  type GetCustomerContactGroupByPayload<T extends CustomerContactGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<CustomerContactGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof CustomerContactGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], CustomerContactGroupByOutputType[P]>
            : GetScalarType<T[P], CustomerContactGroupByOutputType[P]>
        }
      >
    >


  export type CustomerContactSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    customerId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["customerContact"]>

  export type CustomerContactSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    customerId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["customerContact"]>

  export type CustomerContactSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    customerId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["customerContact"]>

  export type CustomerContactSelectScalar = {
    id?: boolean
    customerId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type CustomerContactOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "customerId" | "name" | "role" | "phone" | "email" | "isPrimary" | "createdAt" | "updatedAt", ExtArgs["result"]["customerContact"]>
  export type CustomerContactInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }
  export type CustomerContactIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }
  export type CustomerContactIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }

  export type $CustomerContactPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "CustomerContact"
    objects: {
      customer: Prisma.$CustomerPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      customerId: string
      name: string
      role: string | null
      phone: string | null
      email: string | null
      isPrimary: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["customerContact"]>
    composites: {}
  }

  type CustomerContactGetPayload<S extends boolean | null | undefined | CustomerContactDefaultArgs> = $Result.GetResult<Prisma.$CustomerContactPayload, S>

  type CustomerContactCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CustomerContactFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CustomerContactCountAggregateInputType | true
    }

  export interface CustomerContactDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['CustomerContact'], meta: { name: 'CustomerContact' } }
    /**
     * Find zero or one CustomerContact that matches the filter.
     * @param {CustomerContactFindUniqueArgs} args - Arguments to find a CustomerContact
     * @example
     * // Get one CustomerContact
     * const customerContact = await prisma.customerContact.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends CustomerContactFindUniqueArgs>(args: SelectSubset<T, CustomerContactFindUniqueArgs<ExtArgs>>): Prisma__CustomerContactClient<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one CustomerContact that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {CustomerContactFindUniqueOrThrowArgs} args - Arguments to find a CustomerContact
     * @example
     * // Get one CustomerContact
     * const customerContact = await prisma.customerContact.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends CustomerContactFindUniqueOrThrowArgs>(args: SelectSubset<T, CustomerContactFindUniqueOrThrowArgs<ExtArgs>>): Prisma__CustomerContactClient<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first CustomerContact 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 {CustomerContactFindFirstArgs} args - Arguments to find a CustomerContact
     * @example
     * // Get one CustomerContact
     * const customerContact = await prisma.customerContact.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CustomerContactFindFirstArgs>(args?: SelectSubset<T, CustomerContactFindFirstArgs<ExtArgs>>): Prisma__CustomerContactClient<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first CustomerContact 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 {CustomerContactFindFirstOrThrowArgs} args - Arguments to find a CustomerContact
     * @example
     * // Get one CustomerContact
     * const customerContact = await prisma.customerContact.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CustomerContactFindFirstOrThrowArgs>(args?: SelectSubset<T, CustomerContactFindFirstOrThrowArgs<ExtArgs>>): Prisma__CustomerContactClient<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more CustomerContacts 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 {CustomerContactFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all CustomerContacts
     * const customerContacts = await prisma.customerContact.findMany()
     * 
     * // Get first 10 CustomerContacts
     * const customerContacts = await prisma.customerContact.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const customerContactWithIdOnly = await prisma.customerContact.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CustomerContactFindManyArgs>(args?: SelectSubset<T, CustomerContactFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a CustomerContact.
     * @param {CustomerContactCreateArgs} args - Arguments to create a CustomerContact.
     * @example
     * // Create one CustomerContact
     * const CustomerContact = await prisma.customerContact.create({
     *   data: {
     *     // ... data to create a CustomerContact
     *   }
     * })
     * 
     */
    create<T extends CustomerContactCreateArgs>(args: SelectSubset<T, CustomerContactCreateArgs<ExtArgs>>): Prisma__CustomerContactClient<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many CustomerContacts.
     * @param {CustomerContactCreateManyArgs} args - Arguments to create many CustomerContacts.
     * @example
     * // Create many CustomerContacts
     * const customerContact = await prisma.customerContact.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends CustomerContactCreateManyArgs>(args?: SelectSubset<T, CustomerContactCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many CustomerContacts and returns the data saved in the database.
     * @param {CustomerContactCreateManyAndReturnArgs} args - Arguments to create many CustomerContacts.
     * @example
     * // Create many CustomerContacts
     * const customerContact = await prisma.customerContact.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many CustomerContacts and only return the `id`
     * const customerContactWithIdOnly = await prisma.customerContact.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 CustomerContactCreateManyAndReturnArgs>(args?: SelectSubset<T, CustomerContactCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a CustomerContact.
     * @param {CustomerContactDeleteArgs} args - Arguments to delete one CustomerContact.
     * @example
     * // Delete one CustomerContact
     * const CustomerContact = await prisma.customerContact.delete({
     *   where: {
     *     // ... filter to delete one CustomerContact
     *   }
     * })
     * 
     */
    delete<T extends CustomerContactDeleteArgs>(args: SelectSubset<T, CustomerContactDeleteArgs<ExtArgs>>): Prisma__CustomerContactClient<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one CustomerContact.
     * @param {CustomerContactUpdateArgs} args - Arguments to update one CustomerContact.
     * @example
     * // Update one CustomerContact
     * const customerContact = await prisma.customerContact.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CustomerContactUpdateArgs>(args: SelectSubset<T, CustomerContactUpdateArgs<ExtArgs>>): Prisma__CustomerContactClient<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more CustomerContacts.
     * @param {CustomerContactDeleteManyArgs} args - Arguments to filter CustomerContacts to delete.
     * @example
     * // Delete a few CustomerContacts
     * const { count } = await prisma.customerContact.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends CustomerContactDeleteManyArgs>(args?: SelectSubset<T, CustomerContactDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more CustomerContacts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerContactUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many CustomerContacts
     * const customerContact = await prisma.customerContact.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends CustomerContactUpdateManyArgs>(args: SelectSubset<T, CustomerContactUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more CustomerContacts and returns the data updated in the database.
     * @param {CustomerContactUpdateManyAndReturnArgs} args - Arguments to update many CustomerContacts.
     * @example
     * // Update many CustomerContacts
     * const customerContact = await prisma.customerContact.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more CustomerContacts and only return the `id`
     * const customerContactWithIdOnly = await prisma.customerContact.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 CustomerContactUpdateManyAndReturnArgs>(args: SelectSubset<T, CustomerContactUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one CustomerContact.
     * @param {CustomerContactUpsertArgs} args - Arguments to update or create a CustomerContact.
     * @example
     * // Update or create a CustomerContact
     * const customerContact = await prisma.customerContact.upsert({
     *   create: {
     *     // ... data to create a CustomerContact
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the CustomerContact we want to update
     *   }
     * })
     */
    upsert<T extends CustomerContactUpsertArgs>(args: SelectSubset<T, CustomerContactUpsertArgs<ExtArgs>>): Prisma__CustomerContactClient<$Result.GetResult<Prisma.$CustomerContactPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of CustomerContacts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerContactCountArgs} args - Arguments to filter CustomerContacts to count.
     * @example
     * // Count the number of CustomerContacts
     * const count = await prisma.customerContact.count({
     *   where: {
     *     // ... the filter for the CustomerContacts we want to count
     *   }
     * })
    **/
    count<T extends CustomerContactCountArgs>(
      args?: Subset<T, CustomerContactCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], CustomerContactCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a CustomerContact.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerContactAggregateArgs} 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 CustomerContactAggregateArgs>(args: Subset<T, CustomerContactAggregateArgs>): Prisma.PrismaPromise<GetCustomerContactAggregateType<T>>

    /**
     * Group by CustomerContact.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerContactGroupByArgs} 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 CustomerContactGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CustomerContactGroupByArgs['orderBy'] }
        : { orderBy?: CustomerContactGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CustomerContactGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCustomerContactGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the CustomerContact model
   */
  readonly fields: CustomerContactFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for CustomerContact.
   * 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__CustomerContactClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    customer<T extends CustomerDefaultArgs<ExtArgs> = {}>(args?: Subset<T, CustomerDefaultArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the CustomerContact model
   */
  interface CustomerContactFieldRefs {
    readonly id: FieldRef<"CustomerContact", 'String'>
    readonly customerId: FieldRef<"CustomerContact", 'String'>
    readonly name: FieldRef<"CustomerContact", 'String'>
    readonly role: FieldRef<"CustomerContact", 'String'>
    readonly phone: FieldRef<"CustomerContact", 'String'>
    readonly email: FieldRef<"CustomerContact", 'String'>
    readonly isPrimary: FieldRef<"CustomerContact", 'Boolean'>
    readonly createdAt: FieldRef<"CustomerContact", 'DateTime'>
    readonly updatedAt: FieldRef<"CustomerContact", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * CustomerContact findUnique
   */
  export type CustomerContactFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * Filter, which CustomerContact to fetch.
     */
    where: CustomerContactWhereUniqueInput
  }

  /**
   * CustomerContact findUniqueOrThrow
   */
  export type CustomerContactFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * Filter, which CustomerContact to fetch.
     */
    where: CustomerContactWhereUniqueInput
  }

  /**
   * CustomerContact findFirst
   */
  export type CustomerContactFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * Filter, which CustomerContact to fetch.
     */
    where?: CustomerContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CustomerContacts to fetch.
     */
    orderBy?: CustomerContactOrderByWithRelationInput | CustomerContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CustomerContacts.
     */
    cursor?: CustomerContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CustomerContacts 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` CustomerContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CustomerContacts.
     */
    distinct?: CustomerContactScalarFieldEnum | CustomerContactScalarFieldEnum[]
  }

  /**
   * CustomerContact findFirstOrThrow
   */
  export type CustomerContactFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * Filter, which CustomerContact to fetch.
     */
    where?: CustomerContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CustomerContacts to fetch.
     */
    orderBy?: CustomerContactOrderByWithRelationInput | CustomerContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CustomerContacts.
     */
    cursor?: CustomerContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CustomerContacts 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` CustomerContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CustomerContacts.
     */
    distinct?: CustomerContactScalarFieldEnum | CustomerContactScalarFieldEnum[]
  }

  /**
   * CustomerContact findMany
   */
  export type CustomerContactFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * Filter, which CustomerContacts to fetch.
     */
    where?: CustomerContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CustomerContacts to fetch.
     */
    orderBy?: CustomerContactOrderByWithRelationInput | CustomerContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing CustomerContacts.
     */
    cursor?: CustomerContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CustomerContacts 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` CustomerContacts.
     */
    skip?: number
    distinct?: CustomerContactScalarFieldEnum | CustomerContactScalarFieldEnum[]
  }

  /**
   * CustomerContact create
   */
  export type CustomerContactCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * The data needed to create a CustomerContact.
     */
    data: XOR<CustomerContactCreateInput, CustomerContactUncheckedCreateInput>
  }

  /**
   * CustomerContact createMany
   */
  export type CustomerContactCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many CustomerContacts.
     */
    data: CustomerContactCreateManyInput | CustomerContactCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * CustomerContact createManyAndReturn
   */
  export type CustomerContactCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * The data used to create many CustomerContacts.
     */
    data: CustomerContactCreateManyInput | CustomerContactCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * CustomerContact update
   */
  export type CustomerContactUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * The data needed to update a CustomerContact.
     */
    data: XOR<CustomerContactUpdateInput, CustomerContactUncheckedUpdateInput>
    /**
     * Choose, which CustomerContact to update.
     */
    where: CustomerContactWhereUniqueInput
  }

  /**
   * CustomerContact updateMany
   */
  export type CustomerContactUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update CustomerContacts.
     */
    data: XOR<CustomerContactUpdateManyMutationInput, CustomerContactUncheckedUpdateManyInput>
    /**
     * Filter which CustomerContacts to update
     */
    where?: CustomerContactWhereInput
    /**
     * Limit how many CustomerContacts to update.
     */
    limit?: number
  }

  /**
   * CustomerContact updateManyAndReturn
   */
  export type CustomerContactUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * The data used to update CustomerContacts.
     */
    data: XOR<CustomerContactUpdateManyMutationInput, CustomerContactUncheckedUpdateManyInput>
    /**
     * Filter which CustomerContacts to update
     */
    where?: CustomerContactWhereInput
    /**
     * Limit how many CustomerContacts to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * CustomerContact upsert
   */
  export type CustomerContactUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * The filter to search for the CustomerContact to update in case it exists.
     */
    where: CustomerContactWhereUniqueInput
    /**
     * In case the CustomerContact found by the `where` argument doesn't exist, create a new CustomerContact with this data.
     */
    create: XOR<CustomerContactCreateInput, CustomerContactUncheckedCreateInput>
    /**
     * In case the CustomerContact was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CustomerContactUpdateInput, CustomerContactUncheckedUpdateInput>
  }

  /**
   * CustomerContact delete
   */
  export type CustomerContactDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
    /**
     * Filter which CustomerContact to delete.
     */
    where: CustomerContactWhereUniqueInput
  }

  /**
   * CustomerContact deleteMany
   */
  export type CustomerContactDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CustomerContacts to delete
     */
    where?: CustomerContactWhereInput
    /**
     * Limit how many CustomerContacts to delete.
     */
    limit?: number
  }

  /**
   * CustomerContact without action
   */
  export type CustomerContactDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerContact
     */
    select?: CustomerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerContact
     */
    omit?: CustomerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerContactInclude<ExtArgs> | null
  }


  /**
   * Model CustomerAddress
   */

  export type AggregateCustomerAddress = {
    _count: CustomerAddressCountAggregateOutputType | null
    _min: CustomerAddressMinAggregateOutputType | null
    _max: CustomerAddressMaxAggregateOutputType | null
  }

  export type CustomerAddressMinAggregateOutputType = {
    id: string | null
    customerId: string | null
    addressType: string | null
    line1: string | null
    line2: string | null
    city: string | null
    state: string | null
    postalCode: string | null
    countryCode: string | null
    isDefault: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CustomerAddressMaxAggregateOutputType = {
    id: string | null
    customerId: string | null
    addressType: string | null
    line1: string | null
    line2: string | null
    city: string | null
    state: string | null
    postalCode: string | null
    countryCode: string | null
    isDefault: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type CustomerAddressCountAggregateOutputType = {
    id: number
    customerId: number
    addressType: number
    line1: number
    line2: number
    city: number
    state: number
    postalCode: number
    countryCode: number
    isDefault: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type CustomerAddressMinAggregateInputType = {
    id?: true
    customerId?: true
    addressType?: true
    line1?: true
    line2?: true
    city?: true
    state?: true
    postalCode?: true
    countryCode?: true
    isDefault?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CustomerAddressMaxAggregateInputType = {
    id?: true
    customerId?: true
    addressType?: true
    line1?: true
    line2?: true
    city?: true
    state?: true
    postalCode?: true
    countryCode?: true
    isDefault?: true
    createdAt?: true
    updatedAt?: true
  }

  export type CustomerAddressCountAggregateInputType = {
    id?: true
    customerId?: true
    addressType?: true
    line1?: true
    line2?: true
    city?: true
    state?: true
    postalCode?: true
    countryCode?: true
    isDefault?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type CustomerAddressAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CustomerAddress to aggregate.
     */
    where?: CustomerAddressWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CustomerAddresses to fetch.
     */
    orderBy?: CustomerAddressOrderByWithRelationInput | CustomerAddressOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CustomerAddressWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CustomerAddresses 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` CustomerAddresses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned CustomerAddresses
    **/
    _count?: true | CustomerAddressCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CustomerAddressMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CustomerAddressMaxAggregateInputType
  }

  export type GetCustomerAddressAggregateType<T extends CustomerAddressAggregateArgs> = {
        [P in keyof T & keyof AggregateCustomerAddress]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCustomerAddress[P]>
      : GetScalarType<T[P], AggregateCustomerAddress[P]>
  }




  export type CustomerAddressGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CustomerAddressWhereInput
    orderBy?: CustomerAddressOrderByWithAggregationInput | CustomerAddressOrderByWithAggregationInput[]
    by: CustomerAddressScalarFieldEnum[] | CustomerAddressScalarFieldEnum
    having?: CustomerAddressScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CustomerAddressCountAggregateInputType | true
    _min?: CustomerAddressMinAggregateInputType
    _max?: CustomerAddressMaxAggregateInputType
  }

  export type CustomerAddressGroupByOutputType = {
    id: string
    customerId: string
    addressType: string
    line1: string
    line2: string | null
    city: string | null
    state: string | null
    postalCode: string | null
    countryCode: string | null
    isDefault: boolean
    createdAt: Date
    updatedAt: Date
    _count: CustomerAddressCountAggregateOutputType | null
    _min: CustomerAddressMinAggregateOutputType | null
    _max: CustomerAddressMaxAggregateOutputType | null
  }

  type GetCustomerAddressGroupByPayload<T extends CustomerAddressGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<CustomerAddressGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof CustomerAddressGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], CustomerAddressGroupByOutputType[P]>
            : GetScalarType<T[P], CustomerAddressGroupByOutputType[P]>
        }
      >
    >


  export type CustomerAddressSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    customerId?: boolean
    addressType?: boolean
    line1?: boolean
    line2?: boolean
    city?: boolean
    state?: boolean
    postalCode?: boolean
    countryCode?: boolean
    isDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["customerAddress"]>

  export type CustomerAddressSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    customerId?: boolean
    addressType?: boolean
    line1?: boolean
    line2?: boolean
    city?: boolean
    state?: boolean
    postalCode?: boolean
    countryCode?: boolean
    isDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["customerAddress"]>

  export type CustomerAddressSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    customerId?: boolean
    addressType?: boolean
    line1?: boolean
    line2?: boolean
    city?: boolean
    state?: boolean
    postalCode?: boolean
    countryCode?: boolean
    isDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["customerAddress"]>

  export type CustomerAddressSelectScalar = {
    id?: boolean
    customerId?: boolean
    addressType?: boolean
    line1?: boolean
    line2?: boolean
    city?: boolean
    state?: boolean
    postalCode?: boolean
    countryCode?: boolean
    isDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type CustomerAddressOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "customerId" | "addressType" | "line1" | "line2" | "city" | "state" | "postalCode" | "countryCode" | "isDefault" | "createdAt" | "updatedAt", ExtArgs["result"]["customerAddress"]>
  export type CustomerAddressInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }
  export type CustomerAddressIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }
  export type CustomerAddressIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    customer?: boolean | CustomerDefaultArgs<ExtArgs>
  }

  export type $CustomerAddressPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "CustomerAddress"
    objects: {
      customer: Prisma.$CustomerPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      customerId: string
      addressType: string
      line1: string
      line2: string | null
      city: string | null
      state: string | null
      postalCode: string | null
      countryCode: string | null
      isDefault: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["customerAddress"]>
    composites: {}
  }

  type CustomerAddressGetPayload<S extends boolean | null | undefined | CustomerAddressDefaultArgs> = $Result.GetResult<Prisma.$CustomerAddressPayload, S>

  type CustomerAddressCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CustomerAddressFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CustomerAddressCountAggregateInputType | true
    }

  export interface CustomerAddressDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['CustomerAddress'], meta: { name: 'CustomerAddress' } }
    /**
     * Find zero or one CustomerAddress that matches the filter.
     * @param {CustomerAddressFindUniqueArgs} args - Arguments to find a CustomerAddress
     * @example
     * // Get one CustomerAddress
     * const customerAddress = await prisma.customerAddress.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends CustomerAddressFindUniqueArgs>(args: SelectSubset<T, CustomerAddressFindUniqueArgs<ExtArgs>>): Prisma__CustomerAddressClient<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one CustomerAddress that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {CustomerAddressFindUniqueOrThrowArgs} args - Arguments to find a CustomerAddress
     * @example
     * // Get one CustomerAddress
     * const customerAddress = await prisma.customerAddress.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends CustomerAddressFindUniqueOrThrowArgs>(args: SelectSubset<T, CustomerAddressFindUniqueOrThrowArgs<ExtArgs>>): Prisma__CustomerAddressClient<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first CustomerAddress 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 {CustomerAddressFindFirstArgs} args - Arguments to find a CustomerAddress
     * @example
     * // Get one CustomerAddress
     * const customerAddress = await prisma.customerAddress.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CustomerAddressFindFirstArgs>(args?: SelectSubset<T, CustomerAddressFindFirstArgs<ExtArgs>>): Prisma__CustomerAddressClient<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first CustomerAddress 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 {CustomerAddressFindFirstOrThrowArgs} args - Arguments to find a CustomerAddress
     * @example
     * // Get one CustomerAddress
     * const customerAddress = await prisma.customerAddress.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CustomerAddressFindFirstOrThrowArgs>(args?: SelectSubset<T, CustomerAddressFindFirstOrThrowArgs<ExtArgs>>): Prisma__CustomerAddressClient<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more CustomerAddresses 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 {CustomerAddressFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all CustomerAddresses
     * const customerAddresses = await prisma.customerAddress.findMany()
     * 
     * // Get first 10 CustomerAddresses
     * const customerAddresses = await prisma.customerAddress.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const customerAddressWithIdOnly = await prisma.customerAddress.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CustomerAddressFindManyArgs>(args?: SelectSubset<T, CustomerAddressFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a CustomerAddress.
     * @param {CustomerAddressCreateArgs} args - Arguments to create a CustomerAddress.
     * @example
     * // Create one CustomerAddress
     * const CustomerAddress = await prisma.customerAddress.create({
     *   data: {
     *     // ... data to create a CustomerAddress
     *   }
     * })
     * 
     */
    create<T extends CustomerAddressCreateArgs>(args: SelectSubset<T, CustomerAddressCreateArgs<ExtArgs>>): Prisma__CustomerAddressClient<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many CustomerAddresses.
     * @param {CustomerAddressCreateManyArgs} args - Arguments to create many CustomerAddresses.
     * @example
     * // Create many CustomerAddresses
     * const customerAddress = await prisma.customerAddress.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends CustomerAddressCreateManyArgs>(args?: SelectSubset<T, CustomerAddressCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many CustomerAddresses and returns the data saved in the database.
     * @param {CustomerAddressCreateManyAndReturnArgs} args - Arguments to create many CustomerAddresses.
     * @example
     * // Create many CustomerAddresses
     * const customerAddress = await prisma.customerAddress.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many CustomerAddresses and only return the `id`
     * const customerAddressWithIdOnly = await prisma.customerAddress.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 CustomerAddressCreateManyAndReturnArgs>(args?: SelectSubset<T, CustomerAddressCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a CustomerAddress.
     * @param {CustomerAddressDeleteArgs} args - Arguments to delete one CustomerAddress.
     * @example
     * // Delete one CustomerAddress
     * const CustomerAddress = await prisma.customerAddress.delete({
     *   where: {
     *     // ... filter to delete one CustomerAddress
     *   }
     * })
     * 
     */
    delete<T extends CustomerAddressDeleteArgs>(args: SelectSubset<T, CustomerAddressDeleteArgs<ExtArgs>>): Prisma__CustomerAddressClient<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one CustomerAddress.
     * @param {CustomerAddressUpdateArgs} args - Arguments to update one CustomerAddress.
     * @example
     * // Update one CustomerAddress
     * const customerAddress = await prisma.customerAddress.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CustomerAddressUpdateArgs>(args: SelectSubset<T, CustomerAddressUpdateArgs<ExtArgs>>): Prisma__CustomerAddressClient<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more CustomerAddresses.
     * @param {CustomerAddressDeleteManyArgs} args - Arguments to filter CustomerAddresses to delete.
     * @example
     * // Delete a few CustomerAddresses
     * const { count } = await prisma.customerAddress.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends CustomerAddressDeleteManyArgs>(args?: SelectSubset<T, CustomerAddressDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more CustomerAddresses.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerAddressUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many CustomerAddresses
     * const customerAddress = await prisma.customerAddress.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends CustomerAddressUpdateManyArgs>(args: SelectSubset<T, CustomerAddressUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more CustomerAddresses and returns the data updated in the database.
     * @param {CustomerAddressUpdateManyAndReturnArgs} args - Arguments to update many CustomerAddresses.
     * @example
     * // Update many CustomerAddresses
     * const customerAddress = await prisma.customerAddress.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more CustomerAddresses and only return the `id`
     * const customerAddressWithIdOnly = await prisma.customerAddress.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 CustomerAddressUpdateManyAndReturnArgs>(args: SelectSubset<T, CustomerAddressUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one CustomerAddress.
     * @param {CustomerAddressUpsertArgs} args - Arguments to update or create a CustomerAddress.
     * @example
     * // Update or create a CustomerAddress
     * const customerAddress = await prisma.customerAddress.upsert({
     *   create: {
     *     // ... data to create a CustomerAddress
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the CustomerAddress we want to update
     *   }
     * })
     */
    upsert<T extends CustomerAddressUpsertArgs>(args: SelectSubset<T, CustomerAddressUpsertArgs<ExtArgs>>): Prisma__CustomerAddressClient<$Result.GetResult<Prisma.$CustomerAddressPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of CustomerAddresses.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerAddressCountArgs} args - Arguments to filter CustomerAddresses to count.
     * @example
     * // Count the number of CustomerAddresses
     * const count = await prisma.customerAddress.count({
     *   where: {
     *     // ... the filter for the CustomerAddresses we want to count
     *   }
     * })
    **/
    count<T extends CustomerAddressCountArgs>(
      args?: Subset<T, CustomerAddressCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], CustomerAddressCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a CustomerAddress.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerAddressAggregateArgs} 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 CustomerAddressAggregateArgs>(args: Subset<T, CustomerAddressAggregateArgs>): Prisma.PrismaPromise<GetCustomerAddressAggregateType<T>>

    /**
     * Group by CustomerAddress.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CustomerAddressGroupByArgs} 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 CustomerAddressGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CustomerAddressGroupByArgs['orderBy'] }
        : { orderBy?: CustomerAddressGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CustomerAddressGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCustomerAddressGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the CustomerAddress model
   */
  readonly fields: CustomerAddressFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for CustomerAddress.
   * 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__CustomerAddressClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    customer<T extends CustomerDefaultArgs<ExtArgs> = {}>(args?: Subset<T, CustomerDefaultArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the CustomerAddress model
   */
  interface CustomerAddressFieldRefs {
    readonly id: FieldRef<"CustomerAddress", 'String'>
    readonly customerId: FieldRef<"CustomerAddress", 'String'>
    readonly addressType: FieldRef<"CustomerAddress", 'String'>
    readonly line1: FieldRef<"CustomerAddress", 'String'>
    readonly line2: FieldRef<"CustomerAddress", 'String'>
    readonly city: FieldRef<"CustomerAddress", 'String'>
    readonly state: FieldRef<"CustomerAddress", 'String'>
    readonly postalCode: FieldRef<"CustomerAddress", 'String'>
    readonly countryCode: FieldRef<"CustomerAddress", 'String'>
    readonly isDefault: FieldRef<"CustomerAddress", 'Boolean'>
    readonly createdAt: FieldRef<"CustomerAddress", 'DateTime'>
    readonly updatedAt: FieldRef<"CustomerAddress", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * CustomerAddress findUnique
   */
  export type CustomerAddressFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * Filter, which CustomerAddress to fetch.
     */
    where: CustomerAddressWhereUniqueInput
  }

  /**
   * CustomerAddress findUniqueOrThrow
   */
  export type CustomerAddressFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * Filter, which CustomerAddress to fetch.
     */
    where: CustomerAddressWhereUniqueInput
  }

  /**
   * CustomerAddress findFirst
   */
  export type CustomerAddressFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * Filter, which CustomerAddress to fetch.
     */
    where?: CustomerAddressWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CustomerAddresses to fetch.
     */
    orderBy?: CustomerAddressOrderByWithRelationInput | CustomerAddressOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CustomerAddresses.
     */
    cursor?: CustomerAddressWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CustomerAddresses 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` CustomerAddresses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CustomerAddresses.
     */
    distinct?: CustomerAddressScalarFieldEnum | CustomerAddressScalarFieldEnum[]
  }

  /**
   * CustomerAddress findFirstOrThrow
   */
  export type CustomerAddressFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * Filter, which CustomerAddress to fetch.
     */
    where?: CustomerAddressWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CustomerAddresses to fetch.
     */
    orderBy?: CustomerAddressOrderByWithRelationInput | CustomerAddressOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for CustomerAddresses.
     */
    cursor?: CustomerAddressWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CustomerAddresses 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` CustomerAddresses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of CustomerAddresses.
     */
    distinct?: CustomerAddressScalarFieldEnum | CustomerAddressScalarFieldEnum[]
  }

  /**
   * CustomerAddress findMany
   */
  export type CustomerAddressFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * Filter, which CustomerAddresses to fetch.
     */
    where?: CustomerAddressWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of CustomerAddresses to fetch.
     */
    orderBy?: CustomerAddressOrderByWithRelationInput | CustomerAddressOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing CustomerAddresses.
     */
    cursor?: CustomerAddressWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` CustomerAddresses 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` CustomerAddresses.
     */
    skip?: number
    distinct?: CustomerAddressScalarFieldEnum | CustomerAddressScalarFieldEnum[]
  }

  /**
   * CustomerAddress create
   */
  export type CustomerAddressCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * The data needed to create a CustomerAddress.
     */
    data: XOR<CustomerAddressCreateInput, CustomerAddressUncheckedCreateInput>
  }

  /**
   * CustomerAddress createMany
   */
  export type CustomerAddressCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many CustomerAddresses.
     */
    data: CustomerAddressCreateManyInput | CustomerAddressCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * CustomerAddress createManyAndReturn
   */
  export type CustomerAddressCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * The data used to create many CustomerAddresses.
     */
    data: CustomerAddressCreateManyInput | CustomerAddressCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * CustomerAddress update
   */
  export type CustomerAddressUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * The data needed to update a CustomerAddress.
     */
    data: XOR<CustomerAddressUpdateInput, CustomerAddressUncheckedUpdateInput>
    /**
     * Choose, which CustomerAddress to update.
     */
    where: CustomerAddressWhereUniqueInput
  }

  /**
   * CustomerAddress updateMany
   */
  export type CustomerAddressUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update CustomerAddresses.
     */
    data: XOR<CustomerAddressUpdateManyMutationInput, CustomerAddressUncheckedUpdateManyInput>
    /**
     * Filter which CustomerAddresses to update
     */
    where?: CustomerAddressWhereInput
    /**
     * Limit how many CustomerAddresses to update.
     */
    limit?: number
  }

  /**
   * CustomerAddress updateManyAndReturn
   */
  export type CustomerAddressUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * The data used to update CustomerAddresses.
     */
    data: XOR<CustomerAddressUpdateManyMutationInput, CustomerAddressUncheckedUpdateManyInput>
    /**
     * Filter which CustomerAddresses to update
     */
    where?: CustomerAddressWhereInput
    /**
     * Limit how many CustomerAddresses to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * CustomerAddress upsert
   */
  export type CustomerAddressUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * The filter to search for the CustomerAddress to update in case it exists.
     */
    where: CustomerAddressWhereUniqueInput
    /**
     * In case the CustomerAddress found by the `where` argument doesn't exist, create a new CustomerAddress with this data.
     */
    create: XOR<CustomerAddressCreateInput, CustomerAddressUncheckedCreateInput>
    /**
     * In case the CustomerAddress was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CustomerAddressUpdateInput, CustomerAddressUncheckedUpdateInput>
  }

  /**
   * CustomerAddress delete
   */
  export type CustomerAddressDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
    /**
     * Filter which CustomerAddress to delete.
     */
    where: CustomerAddressWhereUniqueInput
  }

  /**
   * CustomerAddress deleteMany
   */
  export type CustomerAddressDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which CustomerAddresses to delete
     */
    where?: CustomerAddressWhereInput
    /**
     * Limit how many CustomerAddresses to delete.
     */
    limit?: number
  }

  /**
   * CustomerAddress without action
   */
  export type CustomerAddressDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the CustomerAddress
     */
    select?: CustomerAddressSelect<ExtArgs> | null
    /**
     * Omit specific fields from the CustomerAddress
     */
    omit?: CustomerAddressOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerAddressInclude<ExtArgs> | null
  }


  /**
   * Model Supplier
   */

  export type AggregateSupplier = {
    _count: SupplierCountAggregateOutputType | null
    _avg: SupplierAvgAggregateOutputType | null
    _sum: SupplierSumAggregateOutputType | null
    _min: SupplierMinAggregateOutputType | null
    _max: SupplierMaxAggregateOutputType | null
  }

  export type SupplierAvgAggregateOutputType = {
    leadTimeDays: number | null
  }

  export type SupplierSumAggregateOutputType = {
    leadTimeDays: number | null
  }

  export type SupplierMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    type: $Enums.SupplierType | null
    countryCode: string | null
    currencyCode: string | null
    paymentTerms: string | null
    leadTimeDays: number | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type SupplierMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    type: $Enums.SupplierType | null
    countryCode: string | null
    currencyCode: string | null
    paymentTerms: string | null
    leadTimeDays: number | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type SupplierCountAggregateOutputType = {
    id: number
    code: number
    name: number
    type: number
    countryCode: number
    currencyCode: number
    paymentTerms: number
    leadTimeDays: number
    enabled: number
    metadata: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type SupplierAvgAggregateInputType = {
    leadTimeDays?: true
  }

  export type SupplierSumAggregateInputType = {
    leadTimeDays?: true
  }

  export type SupplierMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    countryCode?: true
    currencyCode?: true
    paymentTerms?: true
    leadTimeDays?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type SupplierMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    countryCode?: true
    currencyCode?: true
    paymentTerms?: true
    leadTimeDays?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type SupplierCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    countryCode?: true
    currencyCode?: true
    paymentTerms?: true
    leadTimeDays?: true
    enabled?: true
    metadata?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type SupplierAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Supplier to aggregate.
     */
    where?: SupplierWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Suppliers to fetch.
     */
    orderBy?: SupplierOrderByWithRelationInput | SupplierOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SupplierWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Suppliers 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` Suppliers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Suppliers
    **/
    _count?: true | SupplierCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SupplierAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SupplierSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SupplierMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SupplierMaxAggregateInputType
  }

  export type GetSupplierAggregateType<T extends SupplierAggregateArgs> = {
        [P in keyof T & keyof AggregateSupplier]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSupplier[P]>
      : GetScalarType<T[P], AggregateSupplier[P]>
  }




  export type SupplierGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplierWhereInput
    orderBy?: SupplierOrderByWithAggregationInput | SupplierOrderByWithAggregationInput[]
    by: SupplierScalarFieldEnum[] | SupplierScalarFieldEnum
    having?: SupplierScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SupplierCountAggregateInputType | true
    _avg?: SupplierAvgAggregateInputType
    _sum?: SupplierSumAggregateInputType
    _min?: SupplierMinAggregateInputType
    _max?: SupplierMaxAggregateInputType
  }

  export type SupplierGroupByOutputType = {
    id: string
    code: string
    name: string
    type: $Enums.SupplierType
    countryCode: string | null
    currencyCode: string | null
    paymentTerms: string | null
    leadTimeDays: number | null
    enabled: boolean
    metadata: JsonValue
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: SupplierCountAggregateOutputType | null
    _avg: SupplierAvgAggregateOutputType | null
    _sum: SupplierSumAggregateOutputType | null
    _min: SupplierMinAggregateOutputType | null
    _max: SupplierMaxAggregateOutputType | null
  }

  type GetSupplierGroupByPayload<T extends SupplierGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SupplierGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SupplierGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SupplierGroupByOutputType[P]>
            : GetScalarType<T[P], SupplierGroupByOutputType[P]>
        }
      >
    >


  export type SupplierSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    countryCode?: boolean
    currencyCode?: boolean
    paymentTerms?: boolean
    leadTimeDays?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    contacts?: boolean | Supplier$contactsArgs<ExtArgs>
    _count?: boolean | SupplierCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplier"]>

  export type SupplierSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    countryCode?: boolean
    currencyCode?: boolean
    paymentTerms?: boolean
    leadTimeDays?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["supplier"]>

  export type SupplierSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    countryCode?: boolean
    currencyCode?: boolean
    paymentTerms?: boolean
    leadTimeDays?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["supplier"]>

  export type SupplierSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    countryCode?: boolean
    currencyCode?: boolean
    paymentTerms?: boolean
    leadTimeDays?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type SupplierOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "type" | "countryCode" | "currencyCode" | "paymentTerms" | "leadTimeDays" | "enabled" | "metadata" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["supplier"]>
  export type SupplierInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    contacts?: boolean | Supplier$contactsArgs<ExtArgs>
    _count?: boolean | SupplierCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type SupplierIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type SupplierIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $SupplierPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Supplier"
    objects: {
      contacts: Prisma.$SupplierContactPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      type: $Enums.SupplierType
      countryCode: string | null
      currencyCode: string | null
      paymentTerms: string | null
      leadTimeDays: number | null
      enabled: boolean
      /**
       * ⚠️ 仅未结构化扩展属性。业务字段必须独立列（原则 5）。
       */
      metadata: Prisma.JsonValue
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["supplier"]>
    composites: {}
  }

  type SupplierGetPayload<S extends boolean | null | undefined | SupplierDefaultArgs> = $Result.GetResult<Prisma.$SupplierPayload, S>

  type SupplierCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SupplierFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SupplierCountAggregateInputType | true
    }

  export interface SupplierDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Supplier'], meta: { name: 'Supplier' } }
    /**
     * Find zero or one Supplier that matches the filter.
     * @param {SupplierFindUniqueArgs} args - Arguments to find a Supplier
     * @example
     * // Get one Supplier
     * const supplier = await prisma.supplier.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SupplierFindUniqueArgs>(args: SelectSubset<T, SupplierFindUniqueArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Supplier that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SupplierFindUniqueOrThrowArgs} args - Arguments to find a Supplier
     * @example
     * // Get one Supplier
     * const supplier = await prisma.supplier.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SupplierFindUniqueOrThrowArgs>(args: SelectSubset<T, SupplierFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Supplier 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 {SupplierFindFirstArgs} args - Arguments to find a Supplier
     * @example
     * // Get one Supplier
     * const supplier = await prisma.supplier.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SupplierFindFirstArgs>(args?: SelectSubset<T, SupplierFindFirstArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Supplier 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 {SupplierFindFirstOrThrowArgs} args - Arguments to find a Supplier
     * @example
     * // Get one Supplier
     * const supplier = await prisma.supplier.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SupplierFindFirstOrThrowArgs>(args?: SelectSubset<T, SupplierFindFirstOrThrowArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Suppliers 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 {SupplierFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Suppliers
     * const suppliers = await prisma.supplier.findMany()
     * 
     * // Get first 10 Suppliers
     * const suppliers = await prisma.supplier.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const supplierWithIdOnly = await prisma.supplier.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SupplierFindManyArgs>(args?: SelectSubset<T, SupplierFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Supplier.
     * @param {SupplierCreateArgs} args - Arguments to create a Supplier.
     * @example
     * // Create one Supplier
     * const Supplier = await prisma.supplier.create({
     *   data: {
     *     // ... data to create a Supplier
     *   }
     * })
     * 
     */
    create<T extends SupplierCreateArgs>(args: SelectSubset<T, SupplierCreateArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Suppliers.
     * @param {SupplierCreateManyArgs} args - Arguments to create many Suppliers.
     * @example
     * // Create many Suppliers
     * const supplier = await prisma.supplier.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SupplierCreateManyArgs>(args?: SelectSubset<T, SupplierCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Suppliers and returns the data saved in the database.
     * @param {SupplierCreateManyAndReturnArgs} args - Arguments to create many Suppliers.
     * @example
     * // Create many Suppliers
     * const supplier = await prisma.supplier.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Suppliers and only return the `id`
     * const supplierWithIdOnly = await prisma.supplier.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 SupplierCreateManyAndReturnArgs>(args?: SelectSubset<T, SupplierCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Supplier.
     * @param {SupplierDeleteArgs} args - Arguments to delete one Supplier.
     * @example
     * // Delete one Supplier
     * const Supplier = await prisma.supplier.delete({
     *   where: {
     *     // ... filter to delete one Supplier
     *   }
     * })
     * 
     */
    delete<T extends SupplierDeleteArgs>(args: SelectSubset<T, SupplierDeleteArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Supplier.
     * @param {SupplierUpdateArgs} args - Arguments to update one Supplier.
     * @example
     * // Update one Supplier
     * const supplier = await prisma.supplier.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SupplierUpdateArgs>(args: SelectSubset<T, SupplierUpdateArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Suppliers.
     * @param {SupplierDeleteManyArgs} args - Arguments to filter Suppliers to delete.
     * @example
     * // Delete a few Suppliers
     * const { count } = await prisma.supplier.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SupplierDeleteManyArgs>(args?: SelectSubset<T, SupplierDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Suppliers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplierUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Suppliers
     * const supplier = await prisma.supplier.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SupplierUpdateManyArgs>(args: SelectSubset<T, SupplierUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Suppliers and returns the data updated in the database.
     * @param {SupplierUpdateManyAndReturnArgs} args - Arguments to update many Suppliers.
     * @example
     * // Update many Suppliers
     * const supplier = await prisma.supplier.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Suppliers and only return the `id`
     * const supplierWithIdOnly = await prisma.supplier.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 SupplierUpdateManyAndReturnArgs>(args: SelectSubset<T, SupplierUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Supplier.
     * @param {SupplierUpsertArgs} args - Arguments to update or create a Supplier.
     * @example
     * // Update or create a Supplier
     * const supplier = await prisma.supplier.upsert({
     *   create: {
     *     // ... data to create a Supplier
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Supplier we want to update
     *   }
     * })
     */
    upsert<T extends SupplierUpsertArgs>(args: SelectSubset<T, SupplierUpsertArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Suppliers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplierCountArgs} args - Arguments to filter Suppliers to count.
     * @example
     * // Count the number of Suppliers
     * const count = await prisma.supplier.count({
     *   where: {
     *     // ... the filter for the Suppliers we want to count
     *   }
     * })
    **/
    count<T extends SupplierCountArgs>(
      args?: Subset<T, SupplierCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SupplierCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Supplier.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplierAggregateArgs} 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 SupplierAggregateArgs>(args: Subset<T, SupplierAggregateArgs>): Prisma.PrismaPromise<GetSupplierAggregateType<T>>

    /**
     * Group by Supplier.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplierGroupByArgs} 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 SupplierGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SupplierGroupByArgs['orderBy'] }
        : { orderBy?: SupplierGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SupplierGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSupplierGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Supplier model
   */
  readonly fields: SupplierFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Supplier.
   * 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__SupplierClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    contacts<T extends Supplier$contactsArgs<ExtArgs> = {}>(args?: Subset<T, Supplier$contactsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Supplier model
   */
  interface SupplierFieldRefs {
    readonly id: FieldRef<"Supplier", 'String'>
    readonly code: FieldRef<"Supplier", 'String'>
    readonly name: FieldRef<"Supplier", 'String'>
    readonly type: FieldRef<"Supplier", 'SupplierType'>
    readonly countryCode: FieldRef<"Supplier", 'String'>
    readonly currencyCode: FieldRef<"Supplier", 'String'>
    readonly paymentTerms: FieldRef<"Supplier", 'String'>
    readonly leadTimeDays: FieldRef<"Supplier", 'Int'>
    readonly enabled: FieldRef<"Supplier", 'Boolean'>
    readonly metadata: FieldRef<"Supplier", 'Json'>
    readonly organizationId: FieldRef<"Supplier", 'String'>
    readonly createdAt: FieldRef<"Supplier", 'DateTime'>
    readonly updatedAt: FieldRef<"Supplier", 'DateTime'>
    readonly createdById: FieldRef<"Supplier", 'String'>
    readonly deletedAt: FieldRef<"Supplier", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Supplier findUnique
   */
  export type SupplierFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * Filter, which Supplier to fetch.
     */
    where: SupplierWhereUniqueInput
  }

  /**
   * Supplier findUniqueOrThrow
   */
  export type SupplierFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * Filter, which Supplier to fetch.
     */
    where: SupplierWhereUniqueInput
  }

  /**
   * Supplier findFirst
   */
  export type SupplierFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * Filter, which Supplier to fetch.
     */
    where?: SupplierWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Suppliers to fetch.
     */
    orderBy?: SupplierOrderByWithRelationInput | SupplierOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Suppliers.
     */
    cursor?: SupplierWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Suppliers 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` Suppliers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Suppliers.
     */
    distinct?: SupplierScalarFieldEnum | SupplierScalarFieldEnum[]
  }

  /**
   * Supplier findFirstOrThrow
   */
  export type SupplierFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * Filter, which Supplier to fetch.
     */
    where?: SupplierWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Suppliers to fetch.
     */
    orderBy?: SupplierOrderByWithRelationInput | SupplierOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Suppliers.
     */
    cursor?: SupplierWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Suppliers 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` Suppliers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Suppliers.
     */
    distinct?: SupplierScalarFieldEnum | SupplierScalarFieldEnum[]
  }

  /**
   * Supplier findMany
   */
  export type SupplierFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * Filter, which Suppliers to fetch.
     */
    where?: SupplierWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Suppliers to fetch.
     */
    orderBy?: SupplierOrderByWithRelationInput | SupplierOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Suppliers.
     */
    cursor?: SupplierWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Suppliers 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` Suppliers.
     */
    skip?: number
    distinct?: SupplierScalarFieldEnum | SupplierScalarFieldEnum[]
  }

  /**
   * Supplier create
   */
  export type SupplierCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * The data needed to create a Supplier.
     */
    data: XOR<SupplierCreateInput, SupplierUncheckedCreateInput>
  }

  /**
   * Supplier createMany
   */
  export type SupplierCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Suppliers.
     */
    data: SupplierCreateManyInput | SupplierCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Supplier createManyAndReturn
   */
  export type SupplierCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * The data used to create many Suppliers.
     */
    data: SupplierCreateManyInput | SupplierCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Supplier update
   */
  export type SupplierUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * The data needed to update a Supplier.
     */
    data: XOR<SupplierUpdateInput, SupplierUncheckedUpdateInput>
    /**
     * Choose, which Supplier to update.
     */
    where: SupplierWhereUniqueInput
  }

  /**
   * Supplier updateMany
   */
  export type SupplierUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Suppliers.
     */
    data: XOR<SupplierUpdateManyMutationInput, SupplierUncheckedUpdateManyInput>
    /**
     * Filter which Suppliers to update
     */
    where?: SupplierWhereInput
    /**
     * Limit how many Suppliers to update.
     */
    limit?: number
  }

  /**
   * Supplier updateManyAndReturn
   */
  export type SupplierUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * The data used to update Suppliers.
     */
    data: XOR<SupplierUpdateManyMutationInput, SupplierUncheckedUpdateManyInput>
    /**
     * Filter which Suppliers to update
     */
    where?: SupplierWhereInput
    /**
     * Limit how many Suppliers to update.
     */
    limit?: number
  }

  /**
   * Supplier upsert
   */
  export type SupplierUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * The filter to search for the Supplier to update in case it exists.
     */
    where: SupplierWhereUniqueInput
    /**
     * In case the Supplier found by the `where` argument doesn't exist, create a new Supplier with this data.
     */
    create: XOR<SupplierCreateInput, SupplierUncheckedCreateInput>
    /**
     * In case the Supplier was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SupplierUpdateInput, SupplierUncheckedUpdateInput>
  }

  /**
   * Supplier delete
   */
  export type SupplierDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
    /**
     * Filter which Supplier to delete.
     */
    where: SupplierWhereUniqueInput
  }

  /**
   * Supplier deleteMany
   */
  export type SupplierDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Suppliers to delete
     */
    where?: SupplierWhereInput
    /**
     * Limit how many Suppliers to delete.
     */
    limit?: number
  }

  /**
   * Supplier.contacts
   */
  export type Supplier$contactsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    where?: SupplierContactWhereInput
    orderBy?: SupplierContactOrderByWithRelationInput | SupplierContactOrderByWithRelationInput[]
    cursor?: SupplierContactWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SupplierContactScalarFieldEnum | SupplierContactScalarFieldEnum[]
  }

  /**
   * Supplier without action
   */
  export type SupplierDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Supplier
     */
    select?: SupplierSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Supplier
     */
    omit?: SupplierOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierInclude<ExtArgs> | null
  }


  /**
   * Model SupplierContact
   */

  export type AggregateSupplierContact = {
    _count: SupplierContactCountAggregateOutputType | null
    _min: SupplierContactMinAggregateOutputType | null
    _max: SupplierContactMaxAggregateOutputType | null
  }

  export type SupplierContactMinAggregateOutputType = {
    id: string | null
    supplierId: string | null
    name: string | null
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SupplierContactMaxAggregateOutputType = {
    id: string | null
    supplierId: string | null
    name: string | null
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SupplierContactCountAggregateOutputType = {
    id: number
    supplierId: number
    name: number
    role: number
    phone: number
    email: number
    isPrimary: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SupplierContactMinAggregateInputType = {
    id?: true
    supplierId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SupplierContactMaxAggregateInputType = {
    id?: true
    supplierId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SupplierContactCountAggregateInputType = {
    id?: true
    supplierId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SupplierContactAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SupplierContact to aggregate.
     */
    where?: SupplierContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplierContacts to fetch.
     */
    orderBy?: SupplierContactOrderByWithRelationInput | SupplierContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SupplierContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplierContacts 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` SupplierContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SupplierContacts
    **/
    _count?: true | SupplierContactCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SupplierContactMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SupplierContactMaxAggregateInputType
  }

  export type GetSupplierContactAggregateType<T extends SupplierContactAggregateArgs> = {
        [P in keyof T & keyof AggregateSupplierContact]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSupplierContact[P]>
      : GetScalarType<T[P], AggregateSupplierContact[P]>
  }




  export type SupplierContactGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SupplierContactWhereInput
    orderBy?: SupplierContactOrderByWithAggregationInput | SupplierContactOrderByWithAggregationInput[]
    by: SupplierContactScalarFieldEnum[] | SupplierContactScalarFieldEnum
    having?: SupplierContactScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SupplierContactCountAggregateInputType | true
    _min?: SupplierContactMinAggregateInputType
    _max?: SupplierContactMaxAggregateInputType
  }

  export type SupplierContactGroupByOutputType = {
    id: string
    supplierId: string
    name: string
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean
    createdAt: Date
    updatedAt: Date
    _count: SupplierContactCountAggregateOutputType | null
    _min: SupplierContactMinAggregateOutputType | null
    _max: SupplierContactMaxAggregateOutputType | null
  }

  type GetSupplierContactGroupByPayload<T extends SupplierContactGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SupplierContactGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SupplierContactGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SupplierContactGroupByOutputType[P]>
            : GetScalarType<T[P], SupplierContactGroupByOutputType[P]>
        }
      >
    >


  export type SupplierContactSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplierId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supplier?: boolean | SupplierDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplierContact"]>

  export type SupplierContactSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplierId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supplier?: boolean | SupplierDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplierContact"]>

  export type SupplierContactSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    supplierId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    supplier?: boolean | SupplierDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["supplierContact"]>

  export type SupplierContactSelectScalar = {
    id?: boolean
    supplierId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SupplierContactOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "supplierId" | "name" | "role" | "phone" | "email" | "isPrimary" | "createdAt" | "updatedAt", ExtArgs["result"]["supplierContact"]>
  export type SupplierContactInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supplier?: boolean | SupplierDefaultArgs<ExtArgs>
  }
  export type SupplierContactIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supplier?: boolean | SupplierDefaultArgs<ExtArgs>
  }
  export type SupplierContactIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    supplier?: boolean | SupplierDefaultArgs<ExtArgs>
  }

  export type $SupplierContactPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SupplierContact"
    objects: {
      supplier: Prisma.$SupplierPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      supplierId: string
      name: string
      role: string | null
      phone: string | null
      email: string | null
      isPrimary: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["supplierContact"]>
    composites: {}
  }

  type SupplierContactGetPayload<S extends boolean | null | undefined | SupplierContactDefaultArgs> = $Result.GetResult<Prisma.$SupplierContactPayload, S>

  type SupplierContactCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SupplierContactFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SupplierContactCountAggregateInputType | true
    }

  export interface SupplierContactDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SupplierContact'], meta: { name: 'SupplierContact' } }
    /**
     * Find zero or one SupplierContact that matches the filter.
     * @param {SupplierContactFindUniqueArgs} args - Arguments to find a SupplierContact
     * @example
     * // Get one SupplierContact
     * const supplierContact = await prisma.supplierContact.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SupplierContactFindUniqueArgs>(args: SelectSubset<T, SupplierContactFindUniqueArgs<ExtArgs>>): Prisma__SupplierContactClient<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SupplierContact that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SupplierContactFindUniqueOrThrowArgs} args - Arguments to find a SupplierContact
     * @example
     * // Get one SupplierContact
     * const supplierContact = await prisma.supplierContact.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SupplierContactFindUniqueOrThrowArgs>(args: SelectSubset<T, SupplierContactFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SupplierContactClient<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SupplierContact 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 {SupplierContactFindFirstArgs} args - Arguments to find a SupplierContact
     * @example
     * // Get one SupplierContact
     * const supplierContact = await prisma.supplierContact.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SupplierContactFindFirstArgs>(args?: SelectSubset<T, SupplierContactFindFirstArgs<ExtArgs>>): Prisma__SupplierContactClient<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SupplierContact 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 {SupplierContactFindFirstOrThrowArgs} args - Arguments to find a SupplierContact
     * @example
     * // Get one SupplierContact
     * const supplierContact = await prisma.supplierContact.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SupplierContactFindFirstOrThrowArgs>(args?: SelectSubset<T, SupplierContactFindFirstOrThrowArgs<ExtArgs>>): Prisma__SupplierContactClient<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SupplierContacts 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 {SupplierContactFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SupplierContacts
     * const supplierContacts = await prisma.supplierContact.findMany()
     * 
     * // Get first 10 SupplierContacts
     * const supplierContacts = await prisma.supplierContact.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const supplierContactWithIdOnly = await prisma.supplierContact.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SupplierContactFindManyArgs>(args?: SelectSubset<T, SupplierContactFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SupplierContact.
     * @param {SupplierContactCreateArgs} args - Arguments to create a SupplierContact.
     * @example
     * // Create one SupplierContact
     * const SupplierContact = await prisma.supplierContact.create({
     *   data: {
     *     // ... data to create a SupplierContact
     *   }
     * })
     * 
     */
    create<T extends SupplierContactCreateArgs>(args: SelectSubset<T, SupplierContactCreateArgs<ExtArgs>>): Prisma__SupplierContactClient<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SupplierContacts.
     * @param {SupplierContactCreateManyArgs} args - Arguments to create many SupplierContacts.
     * @example
     * // Create many SupplierContacts
     * const supplierContact = await prisma.supplierContact.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SupplierContactCreateManyArgs>(args?: SelectSubset<T, SupplierContactCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SupplierContacts and returns the data saved in the database.
     * @param {SupplierContactCreateManyAndReturnArgs} args - Arguments to create many SupplierContacts.
     * @example
     * // Create many SupplierContacts
     * const supplierContact = await prisma.supplierContact.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SupplierContacts and only return the `id`
     * const supplierContactWithIdOnly = await prisma.supplierContact.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 SupplierContactCreateManyAndReturnArgs>(args?: SelectSubset<T, SupplierContactCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SupplierContact.
     * @param {SupplierContactDeleteArgs} args - Arguments to delete one SupplierContact.
     * @example
     * // Delete one SupplierContact
     * const SupplierContact = await prisma.supplierContact.delete({
     *   where: {
     *     // ... filter to delete one SupplierContact
     *   }
     * })
     * 
     */
    delete<T extends SupplierContactDeleteArgs>(args: SelectSubset<T, SupplierContactDeleteArgs<ExtArgs>>): Prisma__SupplierContactClient<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SupplierContact.
     * @param {SupplierContactUpdateArgs} args - Arguments to update one SupplierContact.
     * @example
     * // Update one SupplierContact
     * const supplierContact = await prisma.supplierContact.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SupplierContactUpdateArgs>(args: SelectSubset<T, SupplierContactUpdateArgs<ExtArgs>>): Prisma__SupplierContactClient<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SupplierContacts.
     * @param {SupplierContactDeleteManyArgs} args - Arguments to filter SupplierContacts to delete.
     * @example
     * // Delete a few SupplierContacts
     * const { count } = await prisma.supplierContact.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SupplierContactDeleteManyArgs>(args?: SelectSubset<T, SupplierContactDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SupplierContacts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplierContactUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SupplierContacts
     * const supplierContact = await prisma.supplierContact.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SupplierContactUpdateManyArgs>(args: SelectSubset<T, SupplierContactUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SupplierContacts and returns the data updated in the database.
     * @param {SupplierContactUpdateManyAndReturnArgs} args - Arguments to update many SupplierContacts.
     * @example
     * // Update many SupplierContacts
     * const supplierContact = await prisma.supplierContact.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SupplierContacts and only return the `id`
     * const supplierContactWithIdOnly = await prisma.supplierContact.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 SupplierContactUpdateManyAndReturnArgs>(args: SelectSubset<T, SupplierContactUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SupplierContact.
     * @param {SupplierContactUpsertArgs} args - Arguments to update or create a SupplierContact.
     * @example
     * // Update or create a SupplierContact
     * const supplierContact = await prisma.supplierContact.upsert({
     *   create: {
     *     // ... data to create a SupplierContact
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SupplierContact we want to update
     *   }
     * })
     */
    upsert<T extends SupplierContactUpsertArgs>(args: SelectSubset<T, SupplierContactUpsertArgs<ExtArgs>>): Prisma__SupplierContactClient<$Result.GetResult<Prisma.$SupplierContactPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SupplierContacts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplierContactCountArgs} args - Arguments to filter SupplierContacts to count.
     * @example
     * // Count the number of SupplierContacts
     * const count = await prisma.supplierContact.count({
     *   where: {
     *     // ... the filter for the SupplierContacts we want to count
     *   }
     * })
    **/
    count<T extends SupplierContactCountArgs>(
      args?: Subset<T, SupplierContactCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SupplierContactCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SupplierContact.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplierContactAggregateArgs} 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 SupplierContactAggregateArgs>(args: Subset<T, SupplierContactAggregateArgs>): Prisma.PrismaPromise<GetSupplierContactAggregateType<T>>

    /**
     * Group by SupplierContact.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SupplierContactGroupByArgs} 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 SupplierContactGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SupplierContactGroupByArgs['orderBy'] }
        : { orderBy?: SupplierContactGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SupplierContactGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSupplierContactGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SupplierContact model
   */
  readonly fields: SupplierContactFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SupplierContact.
   * 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__SupplierContactClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    supplier<T extends SupplierDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SupplierDefaultArgs<ExtArgs>>): Prisma__SupplierClient<$Result.GetResult<Prisma.$SupplierPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SupplierContact model
   */
  interface SupplierContactFieldRefs {
    readonly id: FieldRef<"SupplierContact", 'String'>
    readonly supplierId: FieldRef<"SupplierContact", 'String'>
    readonly name: FieldRef<"SupplierContact", 'String'>
    readonly role: FieldRef<"SupplierContact", 'String'>
    readonly phone: FieldRef<"SupplierContact", 'String'>
    readonly email: FieldRef<"SupplierContact", 'String'>
    readonly isPrimary: FieldRef<"SupplierContact", 'Boolean'>
    readonly createdAt: FieldRef<"SupplierContact", 'DateTime'>
    readonly updatedAt: FieldRef<"SupplierContact", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SupplierContact findUnique
   */
  export type SupplierContactFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * Filter, which SupplierContact to fetch.
     */
    where: SupplierContactWhereUniqueInput
  }

  /**
   * SupplierContact findUniqueOrThrow
   */
  export type SupplierContactFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * Filter, which SupplierContact to fetch.
     */
    where: SupplierContactWhereUniqueInput
  }

  /**
   * SupplierContact findFirst
   */
  export type SupplierContactFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * Filter, which SupplierContact to fetch.
     */
    where?: SupplierContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplierContacts to fetch.
     */
    orderBy?: SupplierContactOrderByWithRelationInput | SupplierContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SupplierContacts.
     */
    cursor?: SupplierContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplierContacts 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` SupplierContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SupplierContacts.
     */
    distinct?: SupplierContactScalarFieldEnum | SupplierContactScalarFieldEnum[]
  }

  /**
   * SupplierContact findFirstOrThrow
   */
  export type SupplierContactFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * Filter, which SupplierContact to fetch.
     */
    where?: SupplierContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplierContacts to fetch.
     */
    orderBy?: SupplierContactOrderByWithRelationInput | SupplierContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SupplierContacts.
     */
    cursor?: SupplierContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplierContacts 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` SupplierContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SupplierContacts.
     */
    distinct?: SupplierContactScalarFieldEnum | SupplierContactScalarFieldEnum[]
  }

  /**
   * SupplierContact findMany
   */
  export type SupplierContactFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * Filter, which SupplierContacts to fetch.
     */
    where?: SupplierContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SupplierContacts to fetch.
     */
    orderBy?: SupplierContactOrderByWithRelationInput | SupplierContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SupplierContacts.
     */
    cursor?: SupplierContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SupplierContacts 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` SupplierContacts.
     */
    skip?: number
    distinct?: SupplierContactScalarFieldEnum | SupplierContactScalarFieldEnum[]
  }

  /**
   * SupplierContact create
   */
  export type SupplierContactCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * The data needed to create a SupplierContact.
     */
    data: XOR<SupplierContactCreateInput, SupplierContactUncheckedCreateInput>
  }

  /**
   * SupplierContact createMany
   */
  export type SupplierContactCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SupplierContacts.
     */
    data: SupplierContactCreateManyInput | SupplierContactCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SupplierContact createManyAndReturn
   */
  export type SupplierContactCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * The data used to create many SupplierContacts.
     */
    data: SupplierContactCreateManyInput | SupplierContactCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SupplierContact update
   */
  export type SupplierContactUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * The data needed to update a SupplierContact.
     */
    data: XOR<SupplierContactUpdateInput, SupplierContactUncheckedUpdateInput>
    /**
     * Choose, which SupplierContact to update.
     */
    where: SupplierContactWhereUniqueInput
  }

  /**
   * SupplierContact updateMany
   */
  export type SupplierContactUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SupplierContacts.
     */
    data: XOR<SupplierContactUpdateManyMutationInput, SupplierContactUncheckedUpdateManyInput>
    /**
     * Filter which SupplierContacts to update
     */
    where?: SupplierContactWhereInput
    /**
     * Limit how many SupplierContacts to update.
     */
    limit?: number
  }

  /**
   * SupplierContact updateManyAndReturn
   */
  export type SupplierContactUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * The data used to update SupplierContacts.
     */
    data: XOR<SupplierContactUpdateManyMutationInput, SupplierContactUncheckedUpdateManyInput>
    /**
     * Filter which SupplierContacts to update
     */
    where?: SupplierContactWhereInput
    /**
     * Limit how many SupplierContacts to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SupplierContact upsert
   */
  export type SupplierContactUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * The filter to search for the SupplierContact to update in case it exists.
     */
    where: SupplierContactWhereUniqueInput
    /**
     * In case the SupplierContact found by the `where` argument doesn't exist, create a new SupplierContact with this data.
     */
    create: XOR<SupplierContactCreateInput, SupplierContactUncheckedCreateInput>
    /**
     * In case the SupplierContact was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SupplierContactUpdateInput, SupplierContactUncheckedUpdateInput>
  }

  /**
   * SupplierContact delete
   */
  export type SupplierContactDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
    /**
     * Filter which SupplierContact to delete.
     */
    where: SupplierContactWhereUniqueInput
  }

  /**
   * SupplierContact deleteMany
   */
  export type SupplierContactDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SupplierContacts to delete
     */
    where?: SupplierContactWhereInput
    /**
     * Limit how many SupplierContacts to delete.
     */
    limit?: number
  }

  /**
   * SupplierContact without action
   */
  export type SupplierContactDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SupplierContact
     */
    select?: SupplierContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SupplierContact
     */
    omit?: SupplierContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SupplierContactInclude<ExtArgs> | null
  }


  /**
   * Model Partner
   */

  export type AggregatePartner = {
    _count: PartnerCountAggregateOutputType | null
    _min: PartnerMinAggregateOutputType | null
    _max: PartnerMaxAggregateOutputType | null
  }

  export type PartnerMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    role: $Enums.PartnerRole | null
    countryCode: string | null
    currencyCode: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type PartnerMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    role: $Enums.PartnerRole | null
    countryCode: string | null
    currencyCode: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type PartnerCountAggregateOutputType = {
    id: number
    code: number
    name: number
    role: number
    countryCode: number
    currencyCode: number
    enabled: number
    metadata: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type PartnerMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    role?: true
    countryCode?: true
    currencyCode?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type PartnerMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    role?: true
    countryCode?: true
    currencyCode?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type PartnerCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    role?: true
    countryCode?: true
    currencyCode?: true
    enabled?: true
    metadata?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type PartnerAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Partner to aggregate.
     */
    where?: PartnerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Partners to fetch.
     */
    orderBy?: PartnerOrderByWithRelationInput | PartnerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PartnerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Partners 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` Partners.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Partners
    **/
    _count?: true | PartnerCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PartnerMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PartnerMaxAggregateInputType
  }

  export type GetPartnerAggregateType<T extends PartnerAggregateArgs> = {
        [P in keyof T & keyof AggregatePartner]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePartner[P]>
      : GetScalarType<T[P], AggregatePartner[P]>
  }




  export type PartnerGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartnerWhereInput
    orderBy?: PartnerOrderByWithAggregationInput | PartnerOrderByWithAggregationInput[]
    by: PartnerScalarFieldEnum[] | PartnerScalarFieldEnum
    having?: PartnerScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PartnerCountAggregateInputType | true
    _min?: PartnerMinAggregateInputType
    _max?: PartnerMaxAggregateInputType
  }

  export type PartnerGroupByOutputType = {
    id: string
    code: string
    name: string
    role: $Enums.PartnerRole
    countryCode: string | null
    currencyCode: string | null
    enabled: boolean
    metadata: JsonValue
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: PartnerCountAggregateOutputType | null
    _min: PartnerMinAggregateOutputType | null
    _max: PartnerMaxAggregateOutputType | null
  }

  type GetPartnerGroupByPayload<T extends PartnerGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PartnerGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PartnerGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PartnerGroupByOutputType[P]>
            : GetScalarType<T[P], PartnerGroupByOutputType[P]>
        }
      >
    >


  export type PartnerSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    role?: boolean
    countryCode?: boolean
    currencyCode?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    contacts?: boolean | Partner$contactsArgs<ExtArgs>
    _count?: boolean | PartnerCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partner"]>

  export type PartnerSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    role?: boolean
    countryCode?: boolean
    currencyCode?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["partner"]>

  export type PartnerSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    role?: boolean
    countryCode?: boolean
    currencyCode?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["partner"]>

  export type PartnerSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    role?: boolean
    countryCode?: boolean
    currencyCode?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type PartnerOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "role" | "countryCode" | "currencyCode" | "enabled" | "metadata" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["partner"]>
  export type PartnerInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    contacts?: boolean | Partner$contactsArgs<ExtArgs>
    _count?: boolean | PartnerCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PartnerIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type PartnerIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $PartnerPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Partner"
    objects: {
      contacts: Prisma.$PartnerContactPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      role: $Enums.PartnerRole
      countryCode: string | null
      currencyCode: string | null
      enabled: boolean
      /**
       * ⚠️ 仅未结构化扩展属性。业务字段必须独立列（原则 5）。
       */
      metadata: Prisma.JsonValue
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["partner"]>
    composites: {}
  }

  type PartnerGetPayload<S extends boolean | null | undefined | PartnerDefaultArgs> = $Result.GetResult<Prisma.$PartnerPayload, S>

  type PartnerCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PartnerFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PartnerCountAggregateInputType | true
    }

  export interface PartnerDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Partner'], meta: { name: 'Partner' } }
    /**
     * Find zero or one Partner that matches the filter.
     * @param {PartnerFindUniqueArgs} args - Arguments to find a Partner
     * @example
     * // Get one Partner
     * const partner = await prisma.partner.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PartnerFindUniqueArgs>(args: SelectSubset<T, PartnerFindUniqueArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Partner that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PartnerFindUniqueOrThrowArgs} args - Arguments to find a Partner
     * @example
     * // Get one Partner
     * const partner = await prisma.partner.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PartnerFindUniqueOrThrowArgs>(args: SelectSubset<T, PartnerFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Partner 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 {PartnerFindFirstArgs} args - Arguments to find a Partner
     * @example
     * // Get one Partner
     * const partner = await prisma.partner.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PartnerFindFirstArgs>(args?: SelectSubset<T, PartnerFindFirstArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Partner 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 {PartnerFindFirstOrThrowArgs} args - Arguments to find a Partner
     * @example
     * // Get one Partner
     * const partner = await prisma.partner.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PartnerFindFirstOrThrowArgs>(args?: SelectSubset<T, PartnerFindFirstOrThrowArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Partners 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 {PartnerFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Partners
     * const partners = await prisma.partner.findMany()
     * 
     * // Get first 10 Partners
     * const partners = await prisma.partner.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const partnerWithIdOnly = await prisma.partner.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PartnerFindManyArgs>(args?: SelectSubset<T, PartnerFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Partner.
     * @param {PartnerCreateArgs} args - Arguments to create a Partner.
     * @example
     * // Create one Partner
     * const Partner = await prisma.partner.create({
     *   data: {
     *     // ... data to create a Partner
     *   }
     * })
     * 
     */
    create<T extends PartnerCreateArgs>(args: SelectSubset<T, PartnerCreateArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Partners.
     * @param {PartnerCreateManyArgs} args - Arguments to create many Partners.
     * @example
     * // Create many Partners
     * const partner = await prisma.partner.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PartnerCreateManyArgs>(args?: SelectSubset<T, PartnerCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Partners and returns the data saved in the database.
     * @param {PartnerCreateManyAndReturnArgs} args - Arguments to create many Partners.
     * @example
     * // Create many Partners
     * const partner = await prisma.partner.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Partners and only return the `id`
     * const partnerWithIdOnly = await prisma.partner.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 PartnerCreateManyAndReturnArgs>(args?: SelectSubset<T, PartnerCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Partner.
     * @param {PartnerDeleteArgs} args - Arguments to delete one Partner.
     * @example
     * // Delete one Partner
     * const Partner = await prisma.partner.delete({
     *   where: {
     *     // ... filter to delete one Partner
     *   }
     * })
     * 
     */
    delete<T extends PartnerDeleteArgs>(args: SelectSubset<T, PartnerDeleteArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Partner.
     * @param {PartnerUpdateArgs} args - Arguments to update one Partner.
     * @example
     * // Update one Partner
     * const partner = await prisma.partner.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PartnerUpdateArgs>(args: SelectSubset<T, PartnerUpdateArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Partners.
     * @param {PartnerDeleteManyArgs} args - Arguments to filter Partners to delete.
     * @example
     * // Delete a few Partners
     * const { count } = await prisma.partner.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PartnerDeleteManyArgs>(args?: SelectSubset<T, PartnerDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Partners.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartnerUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Partners
     * const partner = await prisma.partner.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PartnerUpdateManyArgs>(args: SelectSubset<T, PartnerUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Partners and returns the data updated in the database.
     * @param {PartnerUpdateManyAndReturnArgs} args - Arguments to update many Partners.
     * @example
     * // Update many Partners
     * const partner = await prisma.partner.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Partners and only return the `id`
     * const partnerWithIdOnly = await prisma.partner.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 PartnerUpdateManyAndReturnArgs>(args: SelectSubset<T, PartnerUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Partner.
     * @param {PartnerUpsertArgs} args - Arguments to update or create a Partner.
     * @example
     * // Update or create a Partner
     * const partner = await prisma.partner.upsert({
     *   create: {
     *     // ... data to create a Partner
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Partner we want to update
     *   }
     * })
     */
    upsert<T extends PartnerUpsertArgs>(args: SelectSubset<T, PartnerUpsertArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Partners.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartnerCountArgs} args - Arguments to filter Partners to count.
     * @example
     * // Count the number of Partners
     * const count = await prisma.partner.count({
     *   where: {
     *     // ... the filter for the Partners we want to count
     *   }
     * })
    **/
    count<T extends PartnerCountArgs>(
      args?: Subset<T, PartnerCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PartnerCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Partner.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartnerAggregateArgs} 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 PartnerAggregateArgs>(args: Subset<T, PartnerAggregateArgs>): Prisma.PrismaPromise<GetPartnerAggregateType<T>>

    /**
     * Group by Partner.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartnerGroupByArgs} 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 PartnerGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PartnerGroupByArgs['orderBy'] }
        : { orderBy?: PartnerGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PartnerGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPartnerGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Partner model
   */
  readonly fields: PartnerFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Partner.
   * 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__PartnerClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    contacts<T extends Partner$contactsArgs<ExtArgs> = {}>(args?: Subset<T, Partner$contactsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Partner model
   */
  interface PartnerFieldRefs {
    readonly id: FieldRef<"Partner", 'String'>
    readonly code: FieldRef<"Partner", 'String'>
    readonly name: FieldRef<"Partner", 'String'>
    readonly role: FieldRef<"Partner", 'PartnerRole'>
    readonly countryCode: FieldRef<"Partner", 'String'>
    readonly currencyCode: FieldRef<"Partner", 'String'>
    readonly enabled: FieldRef<"Partner", 'Boolean'>
    readonly metadata: FieldRef<"Partner", 'Json'>
    readonly organizationId: FieldRef<"Partner", 'String'>
    readonly createdAt: FieldRef<"Partner", 'DateTime'>
    readonly updatedAt: FieldRef<"Partner", 'DateTime'>
    readonly createdById: FieldRef<"Partner", 'String'>
    readonly deletedAt: FieldRef<"Partner", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Partner findUnique
   */
  export type PartnerFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * Filter, which Partner to fetch.
     */
    where: PartnerWhereUniqueInput
  }

  /**
   * Partner findUniqueOrThrow
   */
  export type PartnerFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * Filter, which Partner to fetch.
     */
    where: PartnerWhereUniqueInput
  }

  /**
   * Partner findFirst
   */
  export type PartnerFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * Filter, which Partner to fetch.
     */
    where?: PartnerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Partners to fetch.
     */
    orderBy?: PartnerOrderByWithRelationInput | PartnerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Partners.
     */
    cursor?: PartnerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Partners 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` Partners.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Partners.
     */
    distinct?: PartnerScalarFieldEnum | PartnerScalarFieldEnum[]
  }

  /**
   * Partner findFirstOrThrow
   */
  export type PartnerFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * Filter, which Partner to fetch.
     */
    where?: PartnerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Partners to fetch.
     */
    orderBy?: PartnerOrderByWithRelationInput | PartnerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Partners.
     */
    cursor?: PartnerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Partners 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` Partners.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Partners.
     */
    distinct?: PartnerScalarFieldEnum | PartnerScalarFieldEnum[]
  }

  /**
   * Partner findMany
   */
  export type PartnerFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * Filter, which Partners to fetch.
     */
    where?: PartnerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Partners to fetch.
     */
    orderBy?: PartnerOrderByWithRelationInput | PartnerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Partners.
     */
    cursor?: PartnerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Partners 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` Partners.
     */
    skip?: number
    distinct?: PartnerScalarFieldEnum | PartnerScalarFieldEnum[]
  }

  /**
   * Partner create
   */
  export type PartnerCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * The data needed to create a Partner.
     */
    data: XOR<PartnerCreateInput, PartnerUncheckedCreateInput>
  }

  /**
   * Partner createMany
   */
  export type PartnerCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Partners.
     */
    data: PartnerCreateManyInput | PartnerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Partner createManyAndReturn
   */
  export type PartnerCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * The data used to create many Partners.
     */
    data: PartnerCreateManyInput | PartnerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Partner update
   */
  export type PartnerUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * The data needed to update a Partner.
     */
    data: XOR<PartnerUpdateInput, PartnerUncheckedUpdateInput>
    /**
     * Choose, which Partner to update.
     */
    where: PartnerWhereUniqueInput
  }

  /**
   * Partner updateMany
   */
  export type PartnerUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Partners.
     */
    data: XOR<PartnerUpdateManyMutationInput, PartnerUncheckedUpdateManyInput>
    /**
     * Filter which Partners to update
     */
    where?: PartnerWhereInput
    /**
     * Limit how many Partners to update.
     */
    limit?: number
  }

  /**
   * Partner updateManyAndReturn
   */
  export type PartnerUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * The data used to update Partners.
     */
    data: XOR<PartnerUpdateManyMutationInput, PartnerUncheckedUpdateManyInput>
    /**
     * Filter which Partners to update
     */
    where?: PartnerWhereInput
    /**
     * Limit how many Partners to update.
     */
    limit?: number
  }

  /**
   * Partner upsert
   */
  export type PartnerUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * The filter to search for the Partner to update in case it exists.
     */
    where: PartnerWhereUniqueInput
    /**
     * In case the Partner found by the `where` argument doesn't exist, create a new Partner with this data.
     */
    create: XOR<PartnerCreateInput, PartnerUncheckedCreateInput>
    /**
     * In case the Partner was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PartnerUpdateInput, PartnerUncheckedUpdateInput>
  }

  /**
   * Partner delete
   */
  export type PartnerDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
    /**
     * Filter which Partner to delete.
     */
    where: PartnerWhereUniqueInput
  }

  /**
   * Partner deleteMany
   */
  export type PartnerDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Partners to delete
     */
    where?: PartnerWhereInput
    /**
     * Limit how many Partners to delete.
     */
    limit?: number
  }

  /**
   * Partner.contacts
   */
  export type Partner$contactsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    where?: PartnerContactWhereInput
    orderBy?: PartnerContactOrderByWithRelationInput | PartnerContactOrderByWithRelationInput[]
    cursor?: PartnerContactWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PartnerContactScalarFieldEnum | PartnerContactScalarFieldEnum[]
  }

  /**
   * Partner without action
   */
  export type PartnerDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Partner
     */
    select?: PartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Partner
     */
    omit?: PartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerInclude<ExtArgs> | null
  }


  /**
   * Model PartnerContact
   */

  export type AggregatePartnerContact = {
    _count: PartnerContactCountAggregateOutputType | null
    _min: PartnerContactMinAggregateOutputType | null
    _max: PartnerContactMaxAggregateOutputType | null
  }

  export type PartnerContactMinAggregateOutputType = {
    id: string | null
    partnerId: string | null
    name: string | null
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PartnerContactMaxAggregateOutputType = {
    id: string | null
    partnerId: string | null
    name: string | null
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PartnerContactCountAggregateOutputType = {
    id: number
    partnerId: number
    name: number
    role: number
    phone: number
    email: number
    isPrimary: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type PartnerContactMinAggregateInputType = {
    id?: true
    partnerId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PartnerContactMaxAggregateInputType = {
    id?: true
    partnerId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PartnerContactCountAggregateInputType = {
    id?: true
    partnerId?: true
    name?: true
    role?: true
    phone?: true
    email?: true
    isPrimary?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type PartnerContactAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartnerContact to aggregate.
     */
    where?: PartnerContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartnerContacts to fetch.
     */
    orderBy?: PartnerContactOrderByWithRelationInput | PartnerContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PartnerContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartnerContacts 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` PartnerContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PartnerContacts
    **/
    _count?: true | PartnerContactCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PartnerContactMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PartnerContactMaxAggregateInputType
  }

  export type GetPartnerContactAggregateType<T extends PartnerContactAggregateArgs> = {
        [P in keyof T & keyof AggregatePartnerContact]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePartnerContact[P]>
      : GetScalarType<T[P], AggregatePartnerContact[P]>
  }




  export type PartnerContactGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PartnerContactWhereInput
    orderBy?: PartnerContactOrderByWithAggregationInput | PartnerContactOrderByWithAggregationInput[]
    by: PartnerContactScalarFieldEnum[] | PartnerContactScalarFieldEnum
    having?: PartnerContactScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PartnerContactCountAggregateInputType | true
    _min?: PartnerContactMinAggregateInputType
    _max?: PartnerContactMaxAggregateInputType
  }

  export type PartnerContactGroupByOutputType = {
    id: string
    partnerId: string
    name: string
    role: string | null
    phone: string | null
    email: string | null
    isPrimary: boolean
    createdAt: Date
    updatedAt: Date
    _count: PartnerContactCountAggregateOutputType | null
    _min: PartnerContactMinAggregateOutputType | null
    _max: PartnerContactMaxAggregateOutputType | null
  }

  type GetPartnerContactGroupByPayload<T extends PartnerContactGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PartnerContactGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PartnerContactGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PartnerContactGroupByOutputType[P]>
            : GetScalarType<T[P], PartnerContactGroupByOutputType[P]>
        }
      >
    >


  export type PartnerContactSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partnerId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    partner?: boolean | PartnerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partnerContact"]>

  export type PartnerContactSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partnerId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    partner?: boolean | PartnerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partnerContact"]>

  export type PartnerContactSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    partnerId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    partner?: boolean | PartnerDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["partnerContact"]>

  export type PartnerContactSelectScalar = {
    id?: boolean
    partnerId?: boolean
    name?: boolean
    role?: boolean
    phone?: boolean
    email?: boolean
    isPrimary?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type PartnerContactOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "partnerId" | "name" | "role" | "phone" | "email" | "isPrimary" | "createdAt" | "updatedAt", ExtArgs["result"]["partnerContact"]>
  export type PartnerContactInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    partner?: boolean | PartnerDefaultArgs<ExtArgs>
  }
  export type PartnerContactIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    partner?: boolean | PartnerDefaultArgs<ExtArgs>
  }
  export type PartnerContactIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    partner?: boolean | PartnerDefaultArgs<ExtArgs>
  }

  export type $PartnerContactPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PartnerContact"
    objects: {
      partner: Prisma.$PartnerPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      partnerId: string
      name: string
      role: string | null
      phone: string | null
      email: string | null
      isPrimary: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["partnerContact"]>
    composites: {}
  }

  type PartnerContactGetPayload<S extends boolean | null | undefined | PartnerContactDefaultArgs> = $Result.GetResult<Prisma.$PartnerContactPayload, S>

  type PartnerContactCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PartnerContactFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PartnerContactCountAggregateInputType | true
    }

  export interface PartnerContactDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PartnerContact'], meta: { name: 'PartnerContact' } }
    /**
     * Find zero or one PartnerContact that matches the filter.
     * @param {PartnerContactFindUniqueArgs} args - Arguments to find a PartnerContact
     * @example
     * // Get one PartnerContact
     * const partnerContact = await prisma.partnerContact.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PartnerContactFindUniqueArgs>(args: SelectSubset<T, PartnerContactFindUniqueArgs<ExtArgs>>): Prisma__PartnerContactClient<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PartnerContact that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PartnerContactFindUniqueOrThrowArgs} args - Arguments to find a PartnerContact
     * @example
     * // Get one PartnerContact
     * const partnerContact = await prisma.partnerContact.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PartnerContactFindUniqueOrThrowArgs>(args: SelectSubset<T, PartnerContactFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PartnerContactClient<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartnerContact 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 {PartnerContactFindFirstArgs} args - Arguments to find a PartnerContact
     * @example
     * // Get one PartnerContact
     * const partnerContact = await prisma.partnerContact.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PartnerContactFindFirstArgs>(args?: SelectSubset<T, PartnerContactFindFirstArgs<ExtArgs>>): Prisma__PartnerContactClient<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PartnerContact 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 {PartnerContactFindFirstOrThrowArgs} args - Arguments to find a PartnerContact
     * @example
     * // Get one PartnerContact
     * const partnerContact = await prisma.partnerContact.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PartnerContactFindFirstOrThrowArgs>(args?: SelectSubset<T, PartnerContactFindFirstOrThrowArgs<ExtArgs>>): Prisma__PartnerContactClient<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PartnerContacts 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 {PartnerContactFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PartnerContacts
     * const partnerContacts = await prisma.partnerContact.findMany()
     * 
     * // Get first 10 PartnerContacts
     * const partnerContacts = await prisma.partnerContact.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const partnerContactWithIdOnly = await prisma.partnerContact.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PartnerContactFindManyArgs>(args?: SelectSubset<T, PartnerContactFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PartnerContact.
     * @param {PartnerContactCreateArgs} args - Arguments to create a PartnerContact.
     * @example
     * // Create one PartnerContact
     * const PartnerContact = await prisma.partnerContact.create({
     *   data: {
     *     // ... data to create a PartnerContact
     *   }
     * })
     * 
     */
    create<T extends PartnerContactCreateArgs>(args: SelectSubset<T, PartnerContactCreateArgs<ExtArgs>>): Prisma__PartnerContactClient<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PartnerContacts.
     * @param {PartnerContactCreateManyArgs} args - Arguments to create many PartnerContacts.
     * @example
     * // Create many PartnerContacts
     * const partnerContact = await prisma.partnerContact.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PartnerContactCreateManyArgs>(args?: SelectSubset<T, PartnerContactCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PartnerContacts and returns the data saved in the database.
     * @param {PartnerContactCreateManyAndReturnArgs} args - Arguments to create many PartnerContacts.
     * @example
     * // Create many PartnerContacts
     * const partnerContact = await prisma.partnerContact.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PartnerContacts and only return the `id`
     * const partnerContactWithIdOnly = await prisma.partnerContact.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 PartnerContactCreateManyAndReturnArgs>(args?: SelectSubset<T, PartnerContactCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PartnerContact.
     * @param {PartnerContactDeleteArgs} args - Arguments to delete one PartnerContact.
     * @example
     * // Delete one PartnerContact
     * const PartnerContact = await prisma.partnerContact.delete({
     *   where: {
     *     // ... filter to delete one PartnerContact
     *   }
     * })
     * 
     */
    delete<T extends PartnerContactDeleteArgs>(args: SelectSubset<T, PartnerContactDeleteArgs<ExtArgs>>): Prisma__PartnerContactClient<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PartnerContact.
     * @param {PartnerContactUpdateArgs} args - Arguments to update one PartnerContact.
     * @example
     * // Update one PartnerContact
     * const partnerContact = await prisma.partnerContact.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PartnerContactUpdateArgs>(args: SelectSubset<T, PartnerContactUpdateArgs<ExtArgs>>): Prisma__PartnerContactClient<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PartnerContacts.
     * @param {PartnerContactDeleteManyArgs} args - Arguments to filter PartnerContacts to delete.
     * @example
     * // Delete a few PartnerContacts
     * const { count } = await prisma.partnerContact.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PartnerContactDeleteManyArgs>(args?: SelectSubset<T, PartnerContactDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartnerContacts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartnerContactUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PartnerContacts
     * const partnerContact = await prisma.partnerContact.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PartnerContactUpdateManyArgs>(args: SelectSubset<T, PartnerContactUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PartnerContacts and returns the data updated in the database.
     * @param {PartnerContactUpdateManyAndReturnArgs} args - Arguments to update many PartnerContacts.
     * @example
     * // Update many PartnerContacts
     * const partnerContact = await prisma.partnerContact.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PartnerContacts and only return the `id`
     * const partnerContactWithIdOnly = await prisma.partnerContact.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 PartnerContactUpdateManyAndReturnArgs>(args: SelectSubset<T, PartnerContactUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PartnerContact.
     * @param {PartnerContactUpsertArgs} args - Arguments to update or create a PartnerContact.
     * @example
     * // Update or create a PartnerContact
     * const partnerContact = await prisma.partnerContact.upsert({
     *   create: {
     *     // ... data to create a PartnerContact
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PartnerContact we want to update
     *   }
     * })
     */
    upsert<T extends PartnerContactUpsertArgs>(args: SelectSubset<T, PartnerContactUpsertArgs<ExtArgs>>): Prisma__PartnerContactClient<$Result.GetResult<Prisma.$PartnerContactPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PartnerContacts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartnerContactCountArgs} args - Arguments to filter PartnerContacts to count.
     * @example
     * // Count the number of PartnerContacts
     * const count = await prisma.partnerContact.count({
     *   where: {
     *     // ... the filter for the PartnerContacts we want to count
     *   }
     * })
    **/
    count<T extends PartnerContactCountArgs>(
      args?: Subset<T, PartnerContactCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PartnerContactCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PartnerContact.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartnerContactAggregateArgs} 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 PartnerContactAggregateArgs>(args: Subset<T, PartnerContactAggregateArgs>): Prisma.PrismaPromise<GetPartnerContactAggregateType<T>>

    /**
     * Group by PartnerContact.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PartnerContactGroupByArgs} 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 PartnerContactGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PartnerContactGroupByArgs['orderBy'] }
        : { orderBy?: PartnerContactGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PartnerContactGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPartnerContactGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PartnerContact model
   */
  readonly fields: PartnerContactFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PartnerContact.
   * 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__PartnerContactClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    partner<T extends PartnerDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PartnerDefaultArgs<ExtArgs>>): Prisma__PartnerClient<$Result.GetResult<Prisma.$PartnerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PartnerContact model
   */
  interface PartnerContactFieldRefs {
    readonly id: FieldRef<"PartnerContact", 'String'>
    readonly partnerId: FieldRef<"PartnerContact", 'String'>
    readonly name: FieldRef<"PartnerContact", 'String'>
    readonly role: FieldRef<"PartnerContact", 'String'>
    readonly phone: FieldRef<"PartnerContact", 'String'>
    readonly email: FieldRef<"PartnerContact", 'String'>
    readonly isPrimary: FieldRef<"PartnerContact", 'Boolean'>
    readonly createdAt: FieldRef<"PartnerContact", 'DateTime'>
    readonly updatedAt: FieldRef<"PartnerContact", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PartnerContact findUnique
   */
  export type PartnerContactFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * Filter, which PartnerContact to fetch.
     */
    where: PartnerContactWhereUniqueInput
  }

  /**
   * PartnerContact findUniqueOrThrow
   */
  export type PartnerContactFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * Filter, which PartnerContact to fetch.
     */
    where: PartnerContactWhereUniqueInput
  }

  /**
   * PartnerContact findFirst
   */
  export type PartnerContactFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * Filter, which PartnerContact to fetch.
     */
    where?: PartnerContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartnerContacts to fetch.
     */
    orderBy?: PartnerContactOrderByWithRelationInput | PartnerContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartnerContacts.
     */
    cursor?: PartnerContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartnerContacts 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` PartnerContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartnerContacts.
     */
    distinct?: PartnerContactScalarFieldEnum | PartnerContactScalarFieldEnum[]
  }

  /**
   * PartnerContact findFirstOrThrow
   */
  export type PartnerContactFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * Filter, which PartnerContact to fetch.
     */
    where?: PartnerContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartnerContacts to fetch.
     */
    orderBy?: PartnerContactOrderByWithRelationInput | PartnerContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PartnerContacts.
     */
    cursor?: PartnerContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartnerContacts 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` PartnerContacts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PartnerContacts.
     */
    distinct?: PartnerContactScalarFieldEnum | PartnerContactScalarFieldEnum[]
  }

  /**
   * PartnerContact findMany
   */
  export type PartnerContactFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * Filter, which PartnerContacts to fetch.
     */
    where?: PartnerContactWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PartnerContacts to fetch.
     */
    orderBy?: PartnerContactOrderByWithRelationInput | PartnerContactOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PartnerContacts.
     */
    cursor?: PartnerContactWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PartnerContacts 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` PartnerContacts.
     */
    skip?: number
    distinct?: PartnerContactScalarFieldEnum | PartnerContactScalarFieldEnum[]
  }

  /**
   * PartnerContact create
   */
  export type PartnerContactCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * The data needed to create a PartnerContact.
     */
    data: XOR<PartnerContactCreateInput, PartnerContactUncheckedCreateInput>
  }

  /**
   * PartnerContact createMany
   */
  export type PartnerContactCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PartnerContacts.
     */
    data: PartnerContactCreateManyInput | PartnerContactCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PartnerContact createManyAndReturn
   */
  export type PartnerContactCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * The data used to create many PartnerContacts.
     */
    data: PartnerContactCreateManyInput | PartnerContactCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PartnerContact update
   */
  export type PartnerContactUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * The data needed to update a PartnerContact.
     */
    data: XOR<PartnerContactUpdateInput, PartnerContactUncheckedUpdateInput>
    /**
     * Choose, which PartnerContact to update.
     */
    where: PartnerContactWhereUniqueInput
  }

  /**
   * PartnerContact updateMany
   */
  export type PartnerContactUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PartnerContacts.
     */
    data: XOR<PartnerContactUpdateManyMutationInput, PartnerContactUncheckedUpdateManyInput>
    /**
     * Filter which PartnerContacts to update
     */
    where?: PartnerContactWhereInput
    /**
     * Limit how many PartnerContacts to update.
     */
    limit?: number
  }

  /**
   * PartnerContact updateManyAndReturn
   */
  export type PartnerContactUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * The data used to update PartnerContacts.
     */
    data: XOR<PartnerContactUpdateManyMutationInput, PartnerContactUncheckedUpdateManyInput>
    /**
     * Filter which PartnerContacts to update
     */
    where?: PartnerContactWhereInput
    /**
     * Limit how many PartnerContacts to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PartnerContact upsert
   */
  export type PartnerContactUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * The filter to search for the PartnerContact to update in case it exists.
     */
    where: PartnerContactWhereUniqueInput
    /**
     * In case the PartnerContact found by the `where` argument doesn't exist, create a new PartnerContact with this data.
     */
    create: XOR<PartnerContactCreateInput, PartnerContactUncheckedCreateInput>
    /**
     * In case the PartnerContact was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PartnerContactUpdateInput, PartnerContactUncheckedUpdateInput>
  }

  /**
   * PartnerContact delete
   */
  export type PartnerContactDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
    /**
     * Filter which PartnerContact to delete.
     */
    where: PartnerContactWhereUniqueInput
  }

  /**
   * PartnerContact deleteMany
   */
  export type PartnerContactDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PartnerContacts to delete
     */
    where?: PartnerContactWhereInput
    /**
     * Limit how many PartnerContacts to delete.
     */
    limit?: number
  }

  /**
   * PartnerContact without action
   */
  export type PartnerContactDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PartnerContact
     */
    select?: PartnerContactSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PartnerContact
     */
    omit?: PartnerContactOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PartnerContactInclude<ExtArgs> | null
  }


  /**
   * Model Location
   */

  export type AggregateLocation = {
    _count: LocationCountAggregateOutputType | null
    _avg: LocationAvgAggregateOutputType | null
    _sum: LocationSumAggregateOutputType | null
    _min: LocationMinAggregateOutputType | null
    _max: LocationMaxAggregateOutputType | null
  }

  export type LocationAvgAggregateOutputType = {
    latitude: Decimal | null
    longitude: Decimal | null
  }

  export type LocationSumAggregateOutputType = {
    latitude: Decimal | null
    longitude: Decimal | null
  }

  export type LocationMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    type: $Enums.LocationType | null
    countryCode: string | null
    address: string | null
    latitude: Decimal | null
    longitude: Decimal | null
    parentLocationId: string | null
    customerId: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type LocationMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    type: $Enums.LocationType | null
    countryCode: string | null
    address: string | null
    latitude: Decimal | null
    longitude: Decimal | null
    parentLocationId: string | null
    customerId: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type LocationCountAggregateOutputType = {
    id: number
    code: number
    name: number
    type: number
    countryCode: number
    address: number
    latitude: number
    longitude: number
    parentLocationId: number
    customerId: number
    enabled: number
    metadata: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type LocationAvgAggregateInputType = {
    latitude?: true
    longitude?: true
  }

  export type LocationSumAggregateInputType = {
    latitude?: true
    longitude?: true
  }

  export type LocationMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    countryCode?: true
    address?: true
    latitude?: true
    longitude?: true
    parentLocationId?: true
    customerId?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type LocationMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    countryCode?: true
    address?: true
    latitude?: true
    longitude?: true
    parentLocationId?: true
    customerId?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type LocationCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    type?: true
    countryCode?: true
    address?: true
    latitude?: true
    longitude?: true
    parentLocationId?: true
    customerId?: true
    enabled?: true
    metadata?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type LocationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Location to aggregate.
     */
    where?: LocationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Locations to fetch.
     */
    orderBy?: LocationOrderByWithRelationInput | LocationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: LocationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Locations 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` Locations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Locations
    **/
    _count?: true | LocationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: LocationAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: LocationSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: LocationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: LocationMaxAggregateInputType
  }

  export type GetLocationAggregateType<T extends LocationAggregateArgs> = {
        [P in keyof T & keyof AggregateLocation]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateLocation[P]>
      : GetScalarType<T[P], AggregateLocation[P]>
  }




  export type LocationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LocationWhereInput
    orderBy?: LocationOrderByWithAggregationInput | LocationOrderByWithAggregationInput[]
    by: LocationScalarFieldEnum[] | LocationScalarFieldEnum
    having?: LocationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: LocationCountAggregateInputType | true
    _avg?: LocationAvgAggregateInputType
    _sum?: LocationSumAggregateInputType
    _min?: LocationMinAggregateInputType
    _max?: LocationMaxAggregateInputType
  }

  export type LocationGroupByOutputType = {
    id: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode: string | null
    address: string | null
    latitude: Decimal | null
    longitude: Decimal | null
    parentLocationId: string | null
    customerId: string | null
    enabled: boolean
    metadata: JsonValue
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: LocationCountAggregateOutputType | null
    _avg: LocationAvgAggregateOutputType | null
    _sum: LocationSumAggregateOutputType | null
    _min: LocationMinAggregateOutputType | null
    _max: LocationMaxAggregateOutputType | null
  }

  type GetLocationGroupByPayload<T extends LocationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<LocationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof LocationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], LocationGroupByOutputType[P]>
            : GetScalarType<T[P], LocationGroupByOutputType[P]>
        }
      >
    >


  export type LocationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    countryCode?: boolean
    address?: boolean
    latitude?: boolean
    longitude?: boolean
    parentLocationId?: boolean
    customerId?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    parent?: boolean | Location$parentArgs<ExtArgs>
    children?: boolean | Location$childrenArgs<ExtArgs>
    customer?: boolean | Location$customerArgs<ExtArgs>
    _count?: boolean | LocationCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["location"]>

  export type LocationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    countryCode?: boolean
    address?: boolean
    latitude?: boolean
    longitude?: boolean
    parentLocationId?: boolean
    customerId?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    parent?: boolean | Location$parentArgs<ExtArgs>
    customer?: boolean | Location$customerArgs<ExtArgs>
  }, ExtArgs["result"]["location"]>

  export type LocationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    countryCode?: boolean
    address?: boolean
    latitude?: boolean
    longitude?: boolean
    parentLocationId?: boolean
    customerId?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    parent?: boolean | Location$parentArgs<ExtArgs>
    customer?: boolean | Location$customerArgs<ExtArgs>
  }, ExtArgs["result"]["location"]>

  export type LocationSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    type?: boolean
    countryCode?: boolean
    address?: boolean
    latitude?: boolean
    longitude?: boolean
    parentLocationId?: boolean
    customerId?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type LocationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "type" | "countryCode" | "address" | "latitude" | "longitude" | "parentLocationId" | "customerId" | "enabled" | "metadata" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["location"]>
  export type LocationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | Location$parentArgs<ExtArgs>
    children?: boolean | Location$childrenArgs<ExtArgs>
    customer?: boolean | Location$customerArgs<ExtArgs>
    _count?: boolean | LocationCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type LocationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | Location$parentArgs<ExtArgs>
    customer?: boolean | Location$customerArgs<ExtArgs>
  }
  export type LocationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | Location$parentArgs<ExtArgs>
    customer?: boolean | Location$customerArgs<ExtArgs>
  }

  export type $LocationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Location"
    objects: {
      parent: Prisma.$LocationPayload<ExtArgs> | null
      children: Prisma.$LocationPayload<ExtArgs>[]
      /**
       * 业务关联：location 可能挂客户（客户站点）。同 schema 内 @relation FK constraint（原则 14）。
       */
      customer: Prisma.$CustomerPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      type: $Enums.LocationType
      countryCode: string | null
      address: string | null
      latitude: Prisma.Decimal | null
      longitude: Prisma.Decimal | null
      parentLocationId: string | null
      customerId: string | null
      enabled: boolean
      /**
       * ⚠️ 仅未结构化扩展属性。业务字段必须独立列（原则 5）。
       */
      metadata: Prisma.JsonValue
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["location"]>
    composites: {}
  }

  type LocationGetPayload<S extends boolean | null | undefined | LocationDefaultArgs> = $Result.GetResult<Prisma.$LocationPayload, S>

  type LocationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<LocationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: LocationCountAggregateInputType | true
    }

  export interface LocationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Location'], meta: { name: 'Location' } }
    /**
     * Find zero or one Location that matches the filter.
     * @param {LocationFindUniqueArgs} args - Arguments to find a Location
     * @example
     * // Get one Location
     * const location = await prisma.location.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends LocationFindUniqueArgs>(args: SelectSubset<T, LocationFindUniqueArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Location that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {LocationFindUniqueOrThrowArgs} args - Arguments to find a Location
     * @example
     * // Get one Location
     * const location = await prisma.location.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends LocationFindUniqueOrThrowArgs>(args: SelectSubset<T, LocationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Location 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 {LocationFindFirstArgs} args - Arguments to find a Location
     * @example
     * // Get one Location
     * const location = await prisma.location.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends LocationFindFirstArgs>(args?: SelectSubset<T, LocationFindFirstArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Location 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 {LocationFindFirstOrThrowArgs} args - Arguments to find a Location
     * @example
     * // Get one Location
     * const location = await prisma.location.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends LocationFindFirstOrThrowArgs>(args?: SelectSubset<T, LocationFindFirstOrThrowArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Locations 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 {LocationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Locations
     * const locations = await prisma.location.findMany()
     * 
     * // Get first 10 Locations
     * const locations = await prisma.location.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const locationWithIdOnly = await prisma.location.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends LocationFindManyArgs>(args?: SelectSubset<T, LocationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Location.
     * @param {LocationCreateArgs} args - Arguments to create a Location.
     * @example
     * // Create one Location
     * const Location = await prisma.location.create({
     *   data: {
     *     // ... data to create a Location
     *   }
     * })
     * 
     */
    create<T extends LocationCreateArgs>(args: SelectSubset<T, LocationCreateArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Locations.
     * @param {LocationCreateManyArgs} args - Arguments to create many Locations.
     * @example
     * // Create many Locations
     * const location = await prisma.location.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends LocationCreateManyArgs>(args?: SelectSubset<T, LocationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Locations and returns the data saved in the database.
     * @param {LocationCreateManyAndReturnArgs} args - Arguments to create many Locations.
     * @example
     * // Create many Locations
     * const location = await prisma.location.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Locations and only return the `id`
     * const locationWithIdOnly = await prisma.location.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 LocationCreateManyAndReturnArgs>(args?: SelectSubset<T, LocationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Location.
     * @param {LocationDeleteArgs} args - Arguments to delete one Location.
     * @example
     * // Delete one Location
     * const Location = await prisma.location.delete({
     *   where: {
     *     // ... filter to delete one Location
     *   }
     * })
     * 
     */
    delete<T extends LocationDeleteArgs>(args: SelectSubset<T, LocationDeleteArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Location.
     * @param {LocationUpdateArgs} args - Arguments to update one Location.
     * @example
     * // Update one Location
     * const location = await prisma.location.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends LocationUpdateArgs>(args: SelectSubset<T, LocationUpdateArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Locations.
     * @param {LocationDeleteManyArgs} args - Arguments to filter Locations to delete.
     * @example
     * // Delete a few Locations
     * const { count } = await prisma.location.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends LocationDeleteManyArgs>(args?: SelectSubset<T, LocationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Locations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LocationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Locations
     * const location = await prisma.location.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends LocationUpdateManyArgs>(args: SelectSubset<T, LocationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Locations and returns the data updated in the database.
     * @param {LocationUpdateManyAndReturnArgs} args - Arguments to update many Locations.
     * @example
     * // Update many Locations
     * const location = await prisma.location.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Locations and only return the `id`
     * const locationWithIdOnly = await prisma.location.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 LocationUpdateManyAndReturnArgs>(args: SelectSubset<T, LocationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Location.
     * @param {LocationUpsertArgs} args - Arguments to update or create a Location.
     * @example
     * // Update or create a Location
     * const location = await prisma.location.upsert({
     *   create: {
     *     // ... data to create a Location
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Location we want to update
     *   }
     * })
     */
    upsert<T extends LocationUpsertArgs>(args: SelectSubset<T, LocationUpsertArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Locations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LocationCountArgs} args - Arguments to filter Locations to count.
     * @example
     * // Count the number of Locations
     * const count = await prisma.location.count({
     *   where: {
     *     // ... the filter for the Locations we want to count
     *   }
     * })
    **/
    count<T extends LocationCountArgs>(
      args?: Subset<T, LocationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], LocationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Location.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LocationAggregateArgs} 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 LocationAggregateArgs>(args: Subset<T, LocationAggregateArgs>): Prisma.PrismaPromise<GetLocationAggregateType<T>>

    /**
     * Group by Location.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LocationGroupByArgs} 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 LocationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: LocationGroupByArgs['orderBy'] }
        : { orderBy?: LocationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, LocationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetLocationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Location model
   */
  readonly fields: LocationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Location.
   * 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__LocationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    parent<T extends Location$parentArgs<ExtArgs> = {}>(args?: Subset<T, Location$parentArgs<ExtArgs>>): Prisma__LocationClient<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    children<T extends Location$childrenArgs<ExtArgs> = {}>(args?: Subset<T, Location$childrenArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LocationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    customer<T extends Location$customerArgs<ExtArgs> = {}>(args?: Subset<T, Location$customerArgs<ExtArgs>>): Prisma__CustomerClient<$Result.GetResult<Prisma.$CustomerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Location model
   */
  interface LocationFieldRefs {
    readonly id: FieldRef<"Location", 'String'>
    readonly code: FieldRef<"Location", 'String'>
    readonly name: FieldRef<"Location", 'String'>
    readonly type: FieldRef<"Location", 'LocationType'>
    readonly countryCode: FieldRef<"Location", 'String'>
    readonly address: FieldRef<"Location", 'String'>
    readonly latitude: FieldRef<"Location", 'Decimal'>
    readonly longitude: FieldRef<"Location", 'Decimal'>
    readonly parentLocationId: FieldRef<"Location", 'String'>
    readonly customerId: FieldRef<"Location", 'String'>
    readonly enabled: FieldRef<"Location", 'Boolean'>
    readonly metadata: FieldRef<"Location", 'Json'>
    readonly organizationId: FieldRef<"Location", 'String'>
    readonly createdAt: FieldRef<"Location", 'DateTime'>
    readonly updatedAt: FieldRef<"Location", 'DateTime'>
    readonly createdById: FieldRef<"Location", 'String'>
    readonly deletedAt: FieldRef<"Location", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Location findUnique
   */
  export type LocationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * Filter, which Location to fetch.
     */
    where: LocationWhereUniqueInput
  }

  /**
   * Location findUniqueOrThrow
   */
  export type LocationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * Filter, which Location to fetch.
     */
    where: LocationWhereUniqueInput
  }

  /**
   * Location findFirst
   */
  export type LocationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * Filter, which Location to fetch.
     */
    where?: LocationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Locations to fetch.
     */
    orderBy?: LocationOrderByWithRelationInput | LocationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Locations.
     */
    cursor?: LocationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Locations 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` Locations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Locations.
     */
    distinct?: LocationScalarFieldEnum | LocationScalarFieldEnum[]
  }

  /**
   * Location findFirstOrThrow
   */
  export type LocationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * Filter, which Location to fetch.
     */
    where?: LocationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Locations to fetch.
     */
    orderBy?: LocationOrderByWithRelationInput | LocationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Locations.
     */
    cursor?: LocationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Locations 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` Locations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Locations.
     */
    distinct?: LocationScalarFieldEnum | LocationScalarFieldEnum[]
  }

  /**
   * Location findMany
   */
  export type LocationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * Filter, which Locations to fetch.
     */
    where?: LocationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Locations to fetch.
     */
    orderBy?: LocationOrderByWithRelationInput | LocationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Locations.
     */
    cursor?: LocationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Locations 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` Locations.
     */
    skip?: number
    distinct?: LocationScalarFieldEnum | LocationScalarFieldEnum[]
  }

  /**
   * Location create
   */
  export type LocationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * The data needed to create a Location.
     */
    data: XOR<LocationCreateInput, LocationUncheckedCreateInput>
  }

  /**
   * Location createMany
   */
  export type LocationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Locations.
     */
    data: LocationCreateManyInput | LocationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Location createManyAndReturn
   */
  export type LocationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * The data used to create many Locations.
     */
    data: LocationCreateManyInput | LocationCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Location update
   */
  export type LocationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * The data needed to update a Location.
     */
    data: XOR<LocationUpdateInput, LocationUncheckedUpdateInput>
    /**
     * Choose, which Location to update.
     */
    where: LocationWhereUniqueInput
  }

  /**
   * Location updateMany
   */
  export type LocationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Locations.
     */
    data: XOR<LocationUpdateManyMutationInput, LocationUncheckedUpdateManyInput>
    /**
     * Filter which Locations to update
     */
    where?: LocationWhereInput
    /**
     * Limit how many Locations to update.
     */
    limit?: number
  }

  /**
   * Location updateManyAndReturn
   */
  export type LocationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * The data used to update Locations.
     */
    data: XOR<LocationUpdateManyMutationInput, LocationUncheckedUpdateManyInput>
    /**
     * Filter which Locations to update
     */
    where?: LocationWhereInput
    /**
     * Limit how many Locations to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Location upsert
   */
  export type LocationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * The filter to search for the Location to update in case it exists.
     */
    where: LocationWhereUniqueInput
    /**
     * In case the Location found by the `where` argument doesn't exist, create a new Location with this data.
     */
    create: XOR<LocationCreateInput, LocationUncheckedCreateInput>
    /**
     * In case the Location was found with the provided `where` argument, update it with this data.
     */
    update: XOR<LocationUpdateInput, LocationUncheckedUpdateInput>
  }

  /**
   * Location delete
   */
  export type LocationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    /**
     * Filter which Location to delete.
     */
    where: LocationWhereUniqueInput
  }

  /**
   * Location deleteMany
   */
  export type LocationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Locations to delete
     */
    where?: LocationWhereInput
    /**
     * Limit how many Locations to delete.
     */
    limit?: number
  }

  /**
   * Location.parent
   */
  export type Location$parentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    where?: LocationWhereInput
  }

  /**
   * Location.children
   */
  export type Location$childrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
    where?: LocationWhereInput
    orderBy?: LocationOrderByWithRelationInput | LocationOrderByWithRelationInput[]
    cursor?: LocationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: LocationScalarFieldEnum | LocationScalarFieldEnum[]
  }

  /**
   * Location.customer
   */
  export type Location$customerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Customer
     */
    select?: CustomerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Customer
     */
    omit?: CustomerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: CustomerInclude<ExtArgs> | null
    where?: CustomerWhereInput
  }

  /**
   * Location without action
   */
  export type LocationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Location
     */
    select?: LocationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Location
     */
    omit?: LocationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LocationInclude<ExtArgs> | null
  }


  /**
   * Model Attachment
   */

  export type AggregateAttachment = {
    _count: AttachmentCountAggregateOutputType | null
    _avg: AttachmentAvgAggregateOutputType | null
    _sum: AttachmentSumAggregateOutputType | null
    _min: AttachmentMinAggregateOutputType | null
    _max: AttachmentMaxAggregateOutputType | null
  }

  export type AttachmentAvgAggregateOutputType = {
    size: number | null
  }

  export type AttachmentSumAggregateOutputType = {
    size: number | null
  }

  export type AttachmentMinAggregateOutputType = {
    id: string | null
    ownerType: string | null
    ownerId: string | null
    category: string | null
    filename: string | null
    mimeType: string | null
    size: number | null
    storagePath: string | null
    organizationId: string | null
    uploadedById: string | null
    uploadedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type AttachmentMaxAggregateOutputType = {
    id: string | null
    ownerType: string | null
    ownerId: string | null
    category: string | null
    filename: string | null
    mimeType: string | null
    size: number | null
    storagePath: string | null
    organizationId: string | null
    uploadedById: string | null
    uploadedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type AttachmentCountAggregateOutputType = {
    id: number
    ownerType: number
    ownerId: number
    category: number
    filename: number
    mimeType: number
    size: number
    storagePath: number
    organizationId: number
    uploadedById: number
    uploadedAt: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type AttachmentAvgAggregateInputType = {
    size?: true
  }

  export type AttachmentSumAggregateInputType = {
    size?: true
  }

  export type AttachmentMinAggregateInputType = {
    id?: true
    ownerType?: true
    ownerId?: true
    category?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    organizationId?: true
    uploadedById?: true
    uploadedAt?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type AttachmentMaxAggregateInputType = {
    id?: true
    ownerType?: true
    ownerId?: true
    category?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    organizationId?: true
    uploadedById?: true
    uploadedAt?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type AttachmentCountAggregateInputType = {
    id?: true
    ownerType?: true
    ownerId?: true
    category?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    organizationId?: true
    uploadedById?: true
    uploadedAt?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type AttachmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Attachment to aggregate.
     */
    where?: AttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Attachments to fetch.
     */
    orderBy?: AttachmentOrderByWithRelationInput | AttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Attachments 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` Attachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Attachments
    **/
    _count?: true | AttachmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AttachmentAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AttachmentSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AttachmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AttachmentMaxAggregateInputType
  }

  export type GetAttachmentAggregateType<T extends AttachmentAggregateArgs> = {
        [P in keyof T & keyof AggregateAttachment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAttachment[P]>
      : GetScalarType<T[P], AggregateAttachment[P]>
  }




  export type AttachmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AttachmentWhereInput
    orderBy?: AttachmentOrderByWithAggregationInput | AttachmentOrderByWithAggregationInput[]
    by: AttachmentScalarFieldEnum[] | AttachmentScalarFieldEnum
    having?: AttachmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AttachmentCountAggregateInputType | true
    _avg?: AttachmentAvgAggregateInputType
    _sum?: AttachmentSumAggregateInputType
    _min?: AttachmentMinAggregateInputType
    _max?: AttachmentMaxAggregateInputType
  }

  export type AttachmentGroupByOutputType = {
    id: string
    ownerType: string
    ownerId: string
    category: string | null
    filename: string
    mimeType: string
    size: number
    storagePath: string
    organizationId: string
    uploadedById: string
    uploadedAt: Date
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: AttachmentCountAggregateOutputType | null
    _avg: AttachmentAvgAggregateOutputType | null
    _sum: AttachmentSumAggregateOutputType | null
    _min: AttachmentMinAggregateOutputType | null
    _max: AttachmentMaxAggregateOutputType | null
  }

  type GetAttachmentGroupByPayload<T extends AttachmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AttachmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AttachmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AttachmentGroupByOutputType[P]>
            : GetScalarType<T[P], AttachmentGroupByOutputType[P]>
        }
      >
    >


  export type AttachmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ownerType?: boolean
    ownerId?: boolean
    category?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    organizationId?: boolean
    uploadedById?: boolean
    uploadedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["attachment"]>

  export type AttachmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ownerType?: boolean
    ownerId?: boolean
    category?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    organizationId?: boolean
    uploadedById?: boolean
    uploadedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["attachment"]>

  export type AttachmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ownerType?: boolean
    ownerId?: boolean
    category?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    organizationId?: boolean
    uploadedById?: boolean
    uploadedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["attachment"]>

  export type AttachmentSelectScalar = {
    id?: boolean
    ownerType?: boolean
    ownerId?: boolean
    category?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    organizationId?: boolean
    uploadedById?: boolean
    uploadedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type AttachmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "ownerType" | "ownerId" | "category" | "filename" | "mimeType" | "size" | "storagePath" | "organizationId" | "uploadedById" | "uploadedAt" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["attachment"]>

  export type $AttachmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Attachment"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      ownerType: string
      ownerId: string
      category: string | null
      filename: string
      mimeType: string
      size: number
      storagePath: string
      organizationId: string
      uploadedById: string
      uploadedAt: Date
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["attachment"]>
    composites: {}
  }

  type AttachmentGetPayload<S extends boolean | null | undefined | AttachmentDefaultArgs> = $Result.GetResult<Prisma.$AttachmentPayload, S>

  type AttachmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AttachmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AttachmentCountAggregateInputType | true
    }

  export interface AttachmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Attachment'], meta: { name: 'Attachment' } }
    /**
     * Find zero or one Attachment that matches the filter.
     * @param {AttachmentFindUniqueArgs} args - Arguments to find a Attachment
     * @example
     * // Get one Attachment
     * const attachment = await prisma.attachment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AttachmentFindUniqueArgs>(args: SelectSubset<T, AttachmentFindUniqueArgs<ExtArgs>>): Prisma__AttachmentClient<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Attachment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AttachmentFindUniqueOrThrowArgs} args - Arguments to find a Attachment
     * @example
     * // Get one Attachment
     * const attachment = await prisma.attachment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AttachmentFindUniqueOrThrowArgs>(args: SelectSubset<T, AttachmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AttachmentClient<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Attachment 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 {AttachmentFindFirstArgs} args - Arguments to find a Attachment
     * @example
     * // Get one Attachment
     * const attachment = await prisma.attachment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AttachmentFindFirstArgs>(args?: SelectSubset<T, AttachmentFindFirstArgs<ExtArgs>>): Prisma__AttachmentClient<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Attachment 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 {AttachmentFindFirstOrThrowArgs} args - Arguments to find a Attachment
     * @example
     * // Get one Attachment
     * const attachment = await prisma.attachment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AttachmentFindFirstOrThrowArgs>(args?: SelectSubset<T, AttachmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__AttachmentClient<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Attachments 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 {AttachmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Attachments
     * const attachments = await prisma.attachment.findMany()
     * 
     * // Get first 10 Attachments
     * const attachments = await prisma.attachment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const attachmentWithIdOnly = await prisma.attachment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AttachmentFindManyArgs>(args?: SelectSubset<T, AttachmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Attachment.
     * @param {AttachmentCreateArgs} args - Arguments to create a Attachment.
     * @example
     * // Create one Attachment
     * const Attachment = await prisma.attachment.create({
     *   data: {
     *     // ... data to create a Attachment
     *   }
     * })
     * 
     */
    create<T extends AttachmentCreateArgs>(args: SelectSubset<T, AttachmentCreateArgs<ExtArgs>>): Prisma__AttachmentClient<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Attachments.
     * @param {AttachmentCreateManyArgs} args - Arguments to create many Attachments.
     * @example
     * // Create many Attachments
     * const attachment = await prisma.attachment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AttachmentCreateManyArgs>(args?: SelectSubset<T, AttachmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Attachments and returns the data saved in the database.
     * @param {AttachmentCreateManyAndReturnArgs} args - Arguments to create many Attachments.
     * @example
     * // Create many Attachments
     * const attachment = await prisma.attachment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Attachments and only return the `id`
     * const attachmentWithIdOnly = await prisma.attachment.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 AttachmentCreateManyAndReturnArgs>(args?: SelectSubset<T, AttachmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Attachment.
     * @param {AttachmentDeleteArgs} args - Arguments to delete one Attachment.
     * @example
     * // Delete one Attachment
     * const Attachment = await prisma.attachment.delete({
     *   where: {
     *     // ... filter to delete one Attachment
     *   }
     * })
     * 
     */
    delete<T extends AttachmentDeleteArgs>(args: SelectSubset<T, AttachmentDeleteArgs<ExtArgs>>): Prisma__AttachmentClient<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Attachment.
     * @param {AttachmentUpdateArgs} args - Arguments to update one Attachment.
     * @example
     * // Update one Attachment
     * const attachment = await prisma.attachment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AttachmentUpdateArgs>(args: SelectSubset<T, AttachmentUpdateArgs<ExtArgs>>): Prisma__AttachmentClient<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Attachments.
     * @param {AttachmentDeleteManyArgs} args - Arguments to filter Attachments to delete.
     * @example
     * // Delete a few Attachments
     * const { count } = await prisma.attachment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AttachmentDeleteManyArgs>(args?: SelectSubset<T, AttachmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Attachments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AttachmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Attachments
     * const attachment = await prisma.attachment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AttachmentUpdateManyArgs>(args: SelectSubset<T, AttachmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Attachments and returns the data updated in the database.
     * @param {AttachmentUpdateManyAndReturnArgs} args - Arguments to update many Attachments.
     * @example
     * // Update many Attachments
     * const attachment = await prisma.attachment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Attachments and only return the `id`
     * const attachmentWithIdOnly = await prisma.attachment.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 AttachmentUpdateManyAndReturnArgs>(args: SelectSubset<T, AttachmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Attachment.
     * @param {AttachmentUpsertArgs} args - Arguments to update or create a Attachment.
     * @example
     * // Update or create a Attachment
     * const attachment = await prisma.attachment.upsert({
     *   create: {
     *     // ... data to create a Attachment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Attachment we want to update
     *   }
     * })
     */
    upsert<T extends AttachmentUpsertArgs>(args: SelectSubset<T, AttachmentUpsertArgs<ExtArgs>>): Prisma__AttachmentClient<$Result.GetResult<Prisma.$AttachmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Attachments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AttachmentCountArgs} args - Arguments to filter Attachments to count.
     * @example
     * // Count the number of Attachments
     * const count = await prisma.attachment.count({
     *   where: {
     *     // ... the filter for the Attachments we want to count
     *   }
     * })
    **/
    count<T extends AttachmentCountArgs>(
      args?: Subset<T, AttachmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AttachmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Attachment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AttachmentAggregateArgs} 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 AttachmentAggregateArgs>(args: Subset<T, AttachmentAggregateArgs>): Prisma.PrismaPromise<GetAttachmentAggregateType<T>>

    /**
     * Group by Attachment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AttachmentGroupByArgs} 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 AttachmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AttachmentGroupByArgs['orderBy'] }
        : { orderBy?: AttachmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AttachmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAttachmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Attachment model
   */
  readonly fields: AttachmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Attachment.
   * 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__AttachmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Attachment model
   */
  interface AttachmentFieldRefs {
    readonly id: FieldRef<"Attachment", 'String'>
    readonly ownerType: FieldRef<"Attachment", 'String'>
    readonly ownerId: FieldRef<"Attachment", 'String'>
    readonly category: FieldRef<"Attachment", 'String'>
    readonly filename: FieldRef<"Attachment", 'String'>
    readonly mimeType: FieldRef<"Attachment", 'String'>
    readonly size: FieldRef<"Attachment", 'Int'>
    readonly storagePath: FieldRef<"Attachment", 'String'>
    readonly organizationId: FieldRef<"Attachment", 'String'>
    readonly uploadedById: FieldRef<"Attachment", 'String'>
    readonly uploadedAt: FieldRef<"Attachment", 'DateTime'>
    readonly createdAt: FieldRef<"Attachment", 'DateTime'>
    readonly updatedAt: FieldRef<"Attachment", 'DateTime'>
    readonly createdById: FieldRef<"Attachment", 'String'>
    readonly deletedAt: FieldRef<"Attachment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Attachment findUnique
   */
  export type AttachmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * Filter, which Attachment to fetch.
     */
    where: AttachmentWhereUniqueInput
  }

  /**
   * Attachment findUniqueOrThrow
   */
  export type AttachmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * Filter, which Attachment to fetch.
     */
    where: AttachmentWhereUniqueInput
  }

  /**
   * Attachment findFirst
   */
  export type AttachmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * Filter, which Attachment to fetch.
     */
    where?: AttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Attachments to fetch.
     */
    orderBy?: AttachmentOrderByWithRelationInput | AttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Attachments.
     */
    cursor?: AttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Attachments 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` Attachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Attachments.
     */
    distinct?: AttachmentScalarFieldEnum | AttachmentScalarFieldEnum[]
  }

  /**
   * Attachment findFirstOrThrow
   */
  export type AttachmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * Filter, which Attachment to fetch.
     */
    where?: AttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Attachments to fetch.
     */
    orderBy?: AttachmentOrderByWithRelationInput | AttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Attachments.
     */
    cursor?: AttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Attachments 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` Attachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Attachments.
     */
    distinct?: AttachmentScalarFieldEnum | AttachmentScalarFieldEnum[]
  }

  /**
   * Attachment findMany
   */
  export type AttachmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * Filter, which Attachments to fetch.
     */
    where?: AttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Attachments to fetch.
     */
    orderBy?: AttachmentOrderByWithRelationInput | AttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Attachments.
     */
    cursor?: AttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Attachments 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` Attachments.
     */
    skip?: number
    distinct?: AttachmentScalarFieldEnum | AttachmentScalarFieldEnum[]
  }

  /**
   * Attachment create
   */
  export type AttachmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * The data needed to create a Attachment.
     */
    data: XOR<AttachmentCreateInput, AttachmentUncheckedCreateInput>
  }

  /**
   * Attachment createMany
   */
  export type AttachmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Attachments.
     */
    data: AttachmentCreateManyInput | AttachmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Attachment createManyAndReturn
   */
  export type AttachmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * The data used to create many Attachments.
     */
    data: AttachmentCreateManyInput | AttachmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Attachment update
   */
  export type AttachmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * The data needed to update a Attachment.
     */
    data: XOR<AttachmentUpdateInput, AttachmentUncheckedUpdateInput>
    /**
     * Choose, which Attachment to update.
     */
    where: AttachmentWhereUniqueInput
  }

  /**
   * Attachment updateMany
   */
  export type AttachmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Attachments.
     */
    data: XOR<AttachmentUpdateManyMutationInput, AttachmentUncheckedUpdateManyInput>
    /**
     * Filter which Attachments to update
     */
    where?: AttachmentWhereInput
    /**
     * Limit how many Attachments to update.
     */
    limit?: number
  }

  /**
   * Attachment updateManyAndReturn
   */
  export type AttachmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * The data used to update Attachments.
     */
    data: XOR<AttachmentUpdateManyMutationInput, AttachmentUncheckedUpdateManyInput>
    /**
     * Filter which Attachments to update
     */
    where?: AttachmentWhereInput
    /**
     * Limit how many Attachments to update.
     */
    limit?: number
  }

  /**
   * Attachment upsert
   */
  export type AttachmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * The filter to search for the Attachment to update in case it exists.
     */
    where: AttachmentWhereUniqueInput
    /**
     * In case the Attachment found by the `where` argument doesn't exist, create a new Attachment with this data.
     */
    create: XOR<AttachmentCreateInput, AttachmentUncheckedCreateInput>
    /**
     * In case the Attachment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AttachmentUpdateInput, AttachmentUncheckedUpdateInput>
  }

  /**
   * Attachment delete
   */
  export type AttachmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
    /**
     * Filter which Attachment to delete.
     */
    where: AttachmentWhereUniqueInput
  }

  /**
   * Attachment deleteMany
   */
  export type AttachmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Attachments to delete
     */
    where?: AttachmentWhereInput
    /**
     * Limit how many Attachments to delete.
     */
    limit?: number
  }

  /**
   * Attachment without action
   */
  export type AttachmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Attachment
     */
    select?: AttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Attachment
     */
    omit?: AttachmentOmit<ExtArgs> | null
  }


  /**
   * Model Currency
   */

  export type AggregateCurrency = {
    _count: CurrencyCountAggregateOutputType | null
    _avg: CurrencyAvgAggregateOutputType | null
    _sum: CurrencySumAggregateOutputType | null
    _min: CurrencyMinAggregateOutputType | null
    _max: CurrencyMaxAggregateOutputType | null
  }

  export type CurrencyAvgAggregateOutputType = {
    decimals: number | null
  }

  export type CurrencySumAggregateOutputType = {
    decimals: number | null
  }

  export type CurrencyMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    symbol: string | null
    decimals: number | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type CurrencyMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    symbol: string | null
    decimals: number | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type CurrencyCountAggregateOutputType = {
    id: number
    code: number
    name: number
    symbol: number
    decimals: number
    enabled: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type CurrencyAvgAggregateInputType = {
    decimals?: true
  }

  export type CurrencySumAggregateInputType = {
    decimals?: true
  }

  export type CurrencyMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    symbol?: true
    decimals?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type CurrencyMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    symbol?: true
    decimals?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type CurrencyCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    symbol?: true
    decimals?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type CurrencyAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Currency to aggregate.
     */
    where?: CurrencyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Currencies to fetch.
     */
    orderBy?: CurrencyOrderByWithRelationInput | CurrencyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CurrencyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Currencies 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` Currencies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Currencies
    **/
    _count?: true | CurrencyCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: CurrencyAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: CurrencySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CurrencyMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CurrencyMaxAggregateInputType
  }

  export type GetCurrencyAggregateType<T extends CurrencyAggregateArgs> = {
        [P in keyof T & keyof AggregateCurrency]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCurrency[P]>
      : GetScalarType<T[P], AggregateCurrency[P]>
  }




  export type CurrencyGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CurrencyWhereInput
    orderBy?: CurrencyOrderByWithAggregationInput | CurrencyOrderByWithAggregationInput[]
    by: CurrencyScalarFieldEnum[] | CurrencyScalarFieldEnum
    having?: CurrencyScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CurrencyCountAggregateInputType | true
    _avg?: CurrencyAvgAggregateInputType
    _sum?: CurrencySumAggregateInputType
    _min?: CurrencyMinAggregateInputType
    _max?: CurrencyMaxAggregateInputType
  }

  export type CurrencyGroupByOutputType = {
    id: string
    code: string
    name: string
    symbol: string | null
    decimals: number
    enabled: boolean
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    createdById: string | null
    _count: CurrencyCountAggregateOutputType | null
    _avg: CurrencyAvgAggregateOutputType | null
    _sum: CurrencySumAggregateOutputType | null
    _min: CurrencyMinAggregateOutputType | null
    _max: CurrencyMaxAggregateOutputType | null
  }

  type GetCurrencyGroupByPayload<T extends CurrencyGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<CurrencyGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof CurrencyGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], CurrencyGroupByOutputType[P]>
            : GetScalarType<T[P], CurrencyGroupByOutputType[P]>
        }
      >
    >


  export type CurrencySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    symbol?: boolean
    decimals?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["currency"]>

  export type CurrencySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    symbol?: boolean
    decimals?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["currency"]>

  export type CurrencySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    symbol?: boolean
    decimals?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["currency"]>

  export type CurrencySelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    symbol?: boolean
    decimals?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type CurrencyOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "symbol" | "decimals" | "enabled" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["currency"]>

  export type $CurrencyPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Currency"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      symbol: string | null
      decimals: number
      enabled: boolean
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      createdById: string | null
    }, ExtArgs["result"]["currency"]>
    composites: {}
  }

  type CurrencyGetPayload<S extends boolean | null | undefined | CurrencyDefaultArgs> = $Result.GetResult<Prisma.$CurrencyPayload, S>

  type CurrencyCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CurrencyFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CurrencyCountAggregateInputType | true
    }

  export interface CurrencyDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Currency'], meta: { name: 'Currency' } }
    /**
     * Find zero or one Currency that matches the filter.
     * @param {CurrencyFindUniqueArgs} args - Arguments to find a Currency
     * @example
     * // Get one Currency
     * const currency = await prisma.currency.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends CurrencyFindUniqueArgs>(args: SelectSubset<T, CurrencyFindUniqueArgs<ExtArgs>>): Prisma__CurrencyClient<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Currency that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {CurrencyFindUniqueOrThrowArgs} args - Arguments to find a Currency
     * @example
     * // Get one Currency
     * const currency = await prisma.currency.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends CurrencyFindUniqueOrThrowArgs>(args: SelectSubset<T, CurrencyFindUniqueOrThrowArgs<ExtArgs>>): Prisma__CurrencyClient<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Currency 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 {CurrencyFindFirstArgs} args - Arguments to find a Currency
     * @example
     * // Get one Currency
     * const currency = await prisma.currency.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CurrencyFindFirstArgs>(args?: SelectSubset<T, CurrencyFindFirstArgs<ExtArgs>>): Prisma__CurrencyClient<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Currency 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 {CurrencyFindFirstOrThrowArgs} args - Arguments to find a Currency
     * @example
     * // Get one Currency
     * const currency = await prisma.currency.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CurrencyFindFirstOrThrowArgs>(args?: SelectSubset<T, CurrencyFindFirstOrThrowArgs<ExtArgs>>): Prisma__CurrencyClient<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Currencies 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 {CurrencyFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Currencies
     * const currencies = await prisma.currency.findMany()
     * 
     * // Get first 10 Currencies
     * const currencies = await prisma.currency.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const currencyWithIdOnly = await prisma.currency.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CurrencyFindManyArgs>(args?: SelectSubset<T, CurrencyFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Currency.
     * @param {CurrencyCreateArgs} args - Arguments to create a Currency.
     * @example
     * // Create one Currency
     * const Currency = await prisma.currency.create({
     *   data: {
     *     // ... data to create a Currency
     *   }
     * })
     * 
     */
    create<T extends CurrencyCreateArgs>(args: SelectSubset<T, CurrencyCreateArgs<ExtArgs>>): Prisma__CurrencyClient<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Currencies.
     * @param {CurrencyCreateManyArgs} args - Arguments to create many Currencies.
     * @example
     * // Create many Currencies
     * const currency = await prisma.currency.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends CurrencyCreateManyArgs>(args?: SelectSubset<T, CurrencyCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Currencies and returns the data saved in the database.
     * @param {CurrencyCreateManyAndReturnArgs} args - Arguments to create many Currencies.
     * @example
     * // Create many Currencies
     * const currency = await prisma.currency.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Currencies and only return the `id`
     * const currencyWithIdOnly = await prisma.currency.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 CurrencyCreateManyAndReturnArgs>(args?: SelectSubset<T, CurrencyCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Currency.
     * @param {CurrencyDeleteArgs} args - Arguments to delete one Currency.
     * @example
     * // Delete one Currency
     * const Currency = await prisma.currency.delete({
     *   where: {
     *     // ... filter to delete one Currency
     *   }
     * })
     * 
     */
    delete<T extends CurrencyDeleteArgs>(args: SelectSubset<T, CurrencyDeleteArgs<ExtArgs>>): Prisma__CurrencyClient<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Currency.
     * @param {CurrencyUpdateArgs} args - Arguments to update one Currency.
     * @example
     * // Update one Currency
     * const currency = await prisma.currency.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CurrencyUpdateArgs>(args: SelectSubset<T, CurrencyUpdateArgs<ExtArgs>>): Prisma__CurrencyClient<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Currencies.
     * @param {CurrencyDeleteManyArgs} args - Arguments to filter Currencies to delete.
     * @example
     * // Delete a few Currencies
     * const { count } = await prisma.currency.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends CurrencyDeleteManyArgs>(args?: SelectSubset<T, CurrencyDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Currencies.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CurrencyUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Currencies
     * const currency = await prisma.currency.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends CurrencyUpdateManyArgs>(args: SelectSubset<T, CurrencyUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Currencies and returns the data updated in the database.
     * @param {CurrencyUpdateManyAndReturnArgs} args - Arguments to update many Currencies.
     * @example
     * // Update many Currencies
     * const currency = await prisma.currency.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Currencies and only return the `id`
     * const currencyWithIdOnly = await prisma.currency.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 CurrencyUpdateManyAndReturnArgs>(args: SelectSubset<T, CurrencyUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Currency.
     * @param {CurrencyUpsertArgs} args - Arguments to update or create a Currency.
     * @example
     * // Update or create a Currency
     * const currency = await prisma.currency.upsert({
     *   create: {
     *     // ... data to create a Currency
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Currency we want to update
     *   }
     * })
     */
    upsert<T extends CurrencyUpsertArgs>(args: SelectSubset<T, CurrencyUpsertArgs<ExtArgs>>): Prisma__CurrencyClient<$Result.GetResult<Prisma.$CurrencyPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Currencies.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CurrencyCountArgs} args - Arguments to filter Currencies to count.
     * @example
     * // Count the number of Currencies
     * const count = await prisma.currency.count({
     *   where: {
     *     // ... the filter for the Currencies we want to count
     *   }
     * })
    **/
    count<T extends CurrencyCountArgs>(
      args?: Subset<T, CurrencyCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], CurrencyCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Currency.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CurrencyAggregateArgs} 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 CurrencyAggregateArgs>(args: Subset<T, CurrencyAggregateArgs>): Prisma.PrismaPromise<GetCurrencyAggregateType<T>>

    /**
     * Group by Currency.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CurrencyGroupByArgs} 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 CurrencyGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CurrencyGroupByArgs['orderBy'] }
        : { orderBy?: CurrencyGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CurrencyGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCurrencyGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Currency model
   */
  readonly fields: CurrencyFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Currency.
   * 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__CurrencyClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Currency model
   */
  interface CurrencyFieldRefs {
    readonly id: FieldRef<"Currency", 'String'>
    readonly code: FieldRef<"Currency", 'String'>
    readonly name: FieldRef<"Currency", 'String'>
    readonly symbol: FieldRef<"Currency", 'String'>
    readonly decimals: FieldRef<"Currency", 'Int'>
    readonly enabled: FieldRef<"Currency", 'Boolean'>
    readonly organizationId: FieldRef<"Currency", 'String'>
    readonly createdAt: FieldRef<"Currency", 'DateTime'>
    readonly updatedAt: FieldRef<"Currency", 'DateTime'>
    readonly createdById: FieldRef<"Currency", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Currency findUnique
   */
  export type CurrencyFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * Filter, which Currency to fetch.
     */
    where: CurrencyWhereUniqueInput
  }

  /**
   * Currency findUniqueOrThrow
   */
  export type CurrencyFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * Filter, which Currency to fetch.
     */
    where: CurrencyWhereUniqueInput
  }

  /**
   * Currency findFirst
   */
  export type CurrencyFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * Filter, which Currency to fetch.
     */
    where?: CurrencyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Currencies to fetch.
     */
    orderBy?: CurrencyOrderByWithRelationInput | CurrencyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Currencies.
     */
    cursor?: CurrencyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Currencies 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` Currencies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Currencies.
     */
    distinct?: CurrencyScalarFieldEnum | CurrencyScalarFieldEnum[]
  }

  /**
   * Currency findFirstOrThrow
   */
  export type CurrencyFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * Filter, which Currency to fetch.
     */
    where?: CurrencyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Currencies to fetch.
     */
    orderBy?: CurrencyOrderByWithRelationInput | CurrencyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Currencies.
     */
    cursor?: CurrencyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Currencies 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` Currencies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Currencies.
     */
    distinct?: CurrencyScalarFieldEnum | CurrencyScalarFieldEnum[]
  }

  /**
   * Currency findMany
   */
  export type CurrencyFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * Filter, which Currencies to fetch.
     */
    where?: CurrencyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Currencies to fetch.
     */
    orderBy?: CurrencyOrderByWithRelationInput | CurrencyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Currencies.
     */
    cursor?: CurrencyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Currencies 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` Currencies.
     */
    skip?: number
    distinct?: CurrencyScalarFieldEnum | CurrencyScalarFieldEnum[]
  }

  /**
   * Currency create
   */
  export type CurrencyCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * The data needed to create a Currency.
     */
    data: XOR<CurrencyCreateInput, CurrencyUncheckedCreateInput>
  }

  /**
   * Currency createMany
   */
  export type CurrencyCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Currencies.
     */
    data: CurrencyCreateManyInput | CurrencyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Currency createManyAndReturn
   */
  export type CurrencyCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * The data used to create many Currencies.
     */
    data: CurrencyCreateManyInput | CurrencyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Currency update
   */
  export type CurrencyUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * The data needed to update a Currency.
     */
    data: XOR<CurrencyUpdateInput, CurrencyUncheckedUpdateInput>
    /**
     * Choose, which Currency to update.
     */
    where: CurrencyWhereUniqueInput
  }

  /**
   * Currency updateMany
   */
  export type CurrencyUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Currencies.
     */
    data: XOR<CurrencyUpdateManyMutationInput, CurrencyUncheckedUpdateManyInput>
    /**
     * Filter which Currencies to update
     */
    where?: CurrencyWhereInput
    /**
     * Limit how many Currencies to update.
     */
    limit?: number
  }

  /**
   * Currency updateManyAndReturn
   */
  export type CurrencyUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * The data used to update Currencies.
     */
    data: XOR<CurrencyUpdateManyMutationInput, CurrencyUncheckedUpdateManyInput>
    /**
     * Filter which Currencies to update
     */
    where?: CurrencyWhereInput
    /**
     * Limit how many Currencies to update.
     */
    limit?: number
  }

  /**
   * Currency upsert
   */
  export type CurrencyUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * The filter to search for the Currency to update in case it exists.
     */
    where: CurrencyWhereUniqueInput
    /**
     * In case the Currency found by the `where` argument doesn't exist, create a new Currency with this data.
     */
    create: XOR<CurrencyCreateInput, CurrencyUncheckedCreateInput>
    /**
     * In case the Currency was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CurrencyUpdateInput, CurrencyUncheckedUpdateInput>
  }

  /**
   * Currency delete
   */
  export type CurrencyDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
    /**
     * Filter which Currency to delete.
     */
    where: CurrencyWhereUniqueInput
  }

  /**
   * Currency deleteMany
   */
  export type CurrencyDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Currencies to delete
     */
    where?: CurrencyWhereInput
    /**
     * Limit how many Currencies to delete.
     */
    limit?: number
  }

  /**
   * Currency without action
   */
  export type CurrencyDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Currency
     */
    select?: CurrencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Currency
     */
    omit?: CurrencyOmit<ExtArgs> | null
  }


  /**
   * Model Country
   */

  export type AggregateCountry = {
    _count: CountryCountAggregateOutputType | null
    _min: CountryMinAggregateOutputType | null
    _max: CountryMaxAggregateOutputType | null
  }

  export type CountryMinAggregateOutputType = {
    id: string | null
    code: string | null
    iso3: string | null
    name: string | null
    region: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type CountryMaxAggregateOutputType = {
    id: string | null
    code: string | null
    iso3: string | null
    name: string | null
    region: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type CountryCountAggregateOutputType = {
    id: number
    code: number
    iso3: number
    name: number
    region: number
    enabled: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type CountryMinAggregateInputType = {
    id?: true
    code?: true
    iso3?: true
    name?: true
    region?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type CountryMaxAggregateInputType = {
    id?: true
    code?: true
    iso3?: true
    name?: true
    region?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type CountryCountAggregateInputType = {
    id?: true
    code?: true
    iso3?: true
    name?: true
    region?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type CountryAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Country to aggregate.
     */
    where?: CountryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Countries to fetch.
     */
    orderBy?: CountryOrderByWithRelationInput | CountryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: CountryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Countries 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` Countries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Countries
    **/
    _count?: true | CountryCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: CountryMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: CountryMaxAggregateInputType
  }

  export type GetCountryAggregateType<T extends CountryAggregateArgs> = {
        [P in keyof T & keyof AggregateCountry]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateCountry[P]>
      : GetScalarType<T[P], AggregateCountry[P]>
  }




  export type CountryGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: CountryWhereInput
    orderBy?: CountryOrderByWithAggregationInput | CountryOrderByWithAggregationInput[]
    by: CountryScalarFieldEnum[] | CountryScalarFieldEnum
    having?: CountryScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: CountryCountAggregateInputType | true
    _min?: CountryMinAggregateInputType
    _max?: CountryMaxAggregateInputType
  }

  export type CountryGroupByOutputType = {
    id: string
    code: string
    iso3: string
    name: string
    region: string | null
    enabled: boolean
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    createdById: string | null
    _count: CountryCountAggregateOutputType | null
    _min: CountryMinAggregateOutputType | null
    _max: CountryMaxAggregateOutputType | null
  }

  type GetCountryGroupByPayload<T extends CountryGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<CountryGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof CountryGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], CountryGroupByOutputType[P]>
            : GetScalarType<T[P], CountryGroupByOutputType[P]>
        }
      >
    >


  export type CountrySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    iso3?: boolean
    name?: boolean
    region?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["country"]>

  export type CountrySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    iso3?: boolean
    name?: boolean
    region?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["country"]>

  export type CountrySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    iso3?: boolean
    name?: boolean
    region?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["country"]>

  export type CountrySelectScalar = {
    id?: boolean
    code?: boolean
    iso3?: boolean
    name?: boolean
    region?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type CountryOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "iso3" | "name" | "region" | "enabled" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["country"]>

  export type $CountryPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Country"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      iso3: string
      name: string
      region: string | null
      enabled: boolean
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      createdById: string | null
    }, ExtArgs["result"]["country"]>
    composites: {}
  }

  type CountryGetPayload<S extends boolean | null | undefined | CountryDefaultArgs> = $Result.GetResult<Prisma.$CountryPayload, S>

  type CountryCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<CountryFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: CountryCountAggregateInputType | true
    }

  export interface CountryDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Country'], meta: { name: 'Country' } }
    /**
     * Find zero or one Country that matches the filter.
     * @param {CountryFindUniqueArgs} args - Arguments to find a Country
     * @example
     * // Get one Country
     * const country = await prisma.country.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends CountryFindUniqueArgs>(args: SelectSubset<T, CountryFindUniqueArgs<ExtArgs>>): Prisma__CountryClient<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Country that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {CountryFindUniqueOrThrowArgs} args - Arguments to find a Country
     * @example
     * // Get one Country
     * const country = await prisma.country.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends CountryFindUniqueOrThrowArgs>(args: SelectSubset<T, CountryFindUniqueOrThrowArgs<ExtArgs>>): Prisma__CountryClient<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Country 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 {CountryFindFirstArgs} args - Arguments to find a Country
     * @example
     * // Get one Country
     * const country = await prisma.country.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends CountryFindFirstArgs>(args?: SelectSubset<T, CountryFindFirstArgs<ExtArgs>>): Prisma__CountryClient<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Country 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 {CountryFindFirstOrThrowArgs} args - Arguments to find a Country
     * @example
     * // Get one Country
     * const country = await prisma.country.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends CountryFindFirstOrThrowArgs>(args?: SelectSubset<T, CountryFindFirstOrThrowArgs<ExtArgs>>): Prisma__CountryClient<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Countries 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 {CountryFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Countries
     * const countries = await prisma.country.findMany()
     * 
     * // Get first 10 Countries
     * const countries = await prisma.country.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const countryWithIdOnly = await prisma.country.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends CountryFindManyArgs>(args?: SelectSubset<T, CountryFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Country.
     * @param {CountryCreateArgs} args - Arguments to create a Country.
     * @example
     * // Create one Country
     * const Country = await prisma.country.create({
     *   data: {
     *     // ... data to create a Country
     *   }
     * })
     * 
     */
    create<T extends CountryCreateArgs>(args: SelectSubset<T, CountryCreateArgs<ExtArgs>>): Prisma__CountryClient<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Countries.
     * @param {CountryCreateManyArgs} args - Arguments to create many Countries.
     * @example
     * // Create many Countries
     * const country = await prisma.country.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends CountryCreateManyArgs>(args?: SelectSubset<T, CountryCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Countries and returns the data saved in the database.
     * @param {CountryCreateManyAndReturnArgs} args - Arguments to create many Countries.
     * @example
     * // Create many Countries
     * const country = await prisma.country.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Countries and only return the `id`
     * const countryWithIdOnly = await prisma.country.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 CountryCreateManyAndReturnArgs>(args?: SelectSubset<T, CountryCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Country.
     * @param {CountryDeleteArgs} args - Arguments to delete one Country.
     * @example
     * // Delete one Country
     * const Country = await prisma.country.delete({
     *   where: {
     *     // ... filter to delete one Country
     *   }
     * })
     * 
     */
    delete<T extends CountryDeleteArgs>(args: SelectSubset<T, CountryDeleteArgs<ExtArgs>>): Prisma__CountryClient<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Country.
     * @param {CountryUpdateArgs} args - Arguments to update one Country.
     * @example
     * // Update one Country
     * const country = await prisma.country.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends CountryUpdateArgs>(args: SelectSubset<T, CountryUpdateArgs<ExtArgs>>): Prisma__CountryClient<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Countries.
     * @param {CountryDeleteManyArgs} args - Arguments to filter Countries to delete.
     * @example
     * // Delete a few Countries
     * const { count } = await prisma.country.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends CountryDeleteManyArgs>(args?: SelectSubset<T, CountryDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Countries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CountryUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Countries
     * const country = await prisma.country.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends CountryUpdateManyArgs>(args: SelectSubset<T, CountryUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Countries and returns the data updated in the database.
     * @param {CountryUpdateManyAndReturnArgs} args - Arguments to update many Countries.
     * @example
     * // Update many Countries
     * const country = await prisma.country.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Countries and only return the `id`
     * const countryWithIdOnly = await prisma.country.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 CountryUpdateManyAndReturnArgs>(args: SelectSubset<T, CountryUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Country.
     * @param {CountryUpsertArgs} args - Arguments to update or create a Country.
     * @example
     * // Update or create a Country
     * const country = await prisma.country.upsert({
     *   create: {
     *     // ... data to create a Country
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Country we want to update
     *   }
     * })
     */
    upsert<T extends CountryUpsertArgs>(args: SelectSubset<T, CountryUpsertArgs<ExtArgs>>): Prisma__CountryClient<$Result.GetResult<Prisma.$CountryPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Countries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CountryCountArgs} args - Arguments to filter Countries to count.
     * @example
     * // Count the number of Countries
     * const count = await prisma.country.count({
     *   where: {
     *     // ... the filter for the Countries we want to count
     *   }
     * })
    **/
    count<T extends CountryCountArgs>(
      args?: Subset<T, CountryCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], CountryCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Country.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CountryAggregateArgs} 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 CountryAggregateArgs>(args: Subset<T, CountryAggregateArgs>): Prisma.PrismaPromise<GetCountryAggregateType<T>>

    /**
     * Group by Country.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {CountryGroupByArgs} 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 CountryGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: CountryGroupByArgs['orderBy'] }
        : { orderBy?: CountryGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, CountryGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCountryGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Country model
   */
  readonly fields: CountryFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Country.
   * 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__CountryClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Country model
   */
  interface CountryFieldRefs {
    readonly id: FieldRef<"Country", 'String'>
    readonly code: FieldRef<"Country", 'String'>
    readonly iso3: FieldRef<"Country", 'String'>
    readonly name: FieldRef<"Country", 'String'>
    readonly region: FieldRef<"Country", 'String'>
    readonly enabled: FieldRef<"Country", 'Boolean'>
    readonly organizationId: FieldRef<"Country", 'String'>
    readonly createdAt: FieldRef<"Country", 'DateTime'>
    readonly updatedAt: FieldRef<"Country", 'DateTime'>
    readonly createdById: FieldRef<"Country", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Country findUnique
   */
  export type CountryFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * Filter, which Country to fetch.
     */
    where: CountryWhereUniqueInput
  }

  /**
   * Country findUniqueOrThrow
   */
  export type CountryFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * Filter, which Country to fetch.
     */
    where: CountryWhereUniqueInput
  }

  /**
   * Country findFirst
   */
  export type CountryFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * Filter, which Country to fetch.
     */
    where?: CountryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Countries to fetch.
     */
    orderBy?: CountryOrderByWithRelationInput | CountryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Countries.
     */
    cursor?: CountryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Countries 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` Countries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Countries.
     */
    distinct?: CountryScalarFieldEnum | CountryScalarFieldEnum[]
  }

  /**
   * Country findFirstOrThrow
   */
  export type CountryFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * Filter, which Country to fetch.
     */
    where?: CountryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Countries to fetch.
     */
    orderBy?: CountryOrderByWithRelationInput | CountryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Countries.
     */
    cursor?: CountryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Countries 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` Countries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Countries.
     */
    distinct?: CountryScalarFieldEnum | CountryScalarFieldEnum[]
  }

  /**
   * Country findMany
   */
  export type CountryFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * Filter, which Countries to fetch.
     */
    where?: CountryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Countries to fetch.
     */
    orderBy?: CountryOrderByWithRelationInput | CountryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Countries.
     */
    cursor?: CountryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Countries 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` Countries.
     */
    skip?: number
    distinct?: CountryScalarFieldEnum | CountryScalarFieldEnum[]
  }

  /**
   * Country create
   */
  export type CountryCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * The data needed to create a Country.
     */
    data: XOR<CountryCreateInput, CountryUncheckedCreateInput>
  }

  /**
   * Country createMany
   */
  export type CountryCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Countries.
     */
    data: CountryCreateManyInput | CountryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Country createManyAndReturn
   */
  export type CountryCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * The data used to create many Countries.
     */
    data: CountryCreateManyInput | CountryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Country update
   */
  export type CountryUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * The data needed to update a Country.
     */
    data: XOR<CountryUpdateInput, CountryUncheckedUpdateInput>
    /**
     * Choose, which Country to update.
     */
    where: CountryWhereUniqueInput
  }

  /**
   * Country updateMany
   */
  export type CountryUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Countries.
     */
    data: XOR<CountryUpdateManyMutationInput, CountryUncheckedUpdateManyInput>
    /**
     * Filter which Countries to update
     */
    where?: CountryWhereInput
    /**
     * Limit how many Countries to update.
     */
    limit?: number
  }

  /**
   * Country updateManyAndReturn
   */
  export type CountryUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * The data used to update Countries.
     */
    data: XOR<CountryUpdateManyMutationInput, CountryUncheckedUpdateManyInput>
    /**
     * Filter which Countries to update
     */
    where?: CountryWhereInput
    /**
     * Limit how many Countries to update.
     */
    limit?: number
  }

  /**
   * Country upsert
   */
  export type CountryUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * The filter to search for the Country to update in case it exists.
     */
    where: CountryWhereUniqueInput
    /**
     * In case the Country found by the `where` argument doesn't exist, create a new Country with this data.
     */
    create: XOR<CountryCreateInput, CountryUncheckedCreateInput>
    /**
     * In case the Country was found with the provided `where` argument, update it with this data.
     */
    update: XOR<CountryUpdateInput, CountryUncheckedUpdateInput>
  }

  /**
   * Country delete
   */
  export type CountryDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
    /**
     * Filter which Country to delete.
     */
    where: CountryWhereUniqueInput
  }

  /**
   * Country deleteMany
   */
  export type CountryDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Countries to delete
     */
    where?: CountryWhereInput
    /**
     * Limit how many Countries to delete.
     */
    limit?: number
  }

  /**
   * Country without action
   */
  export type CountryDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Country
     */
    select?: CountrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Country
     */
    omit?: CountryOmit<ExtArgs> | null
  }


  /**
   * Model GeoRegion
   */

  export type AggregateGeoRegion = {
    _count: GeoRegionCountAggregateOutputType | null
    _min: GeoRegionMinAggregateOutputType | null
    _max: GeoRegionMaxAggregateOutputType | null
  }

  export type GeoRegionMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type GeoRegionMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type GeoRegionCountAggregateOutputType = {
    id: number
    code: number
    name: number
    countries: number
    enabled: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type GeoRegionMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type GeoRegionMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type GeoRegionCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    countries?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type GeoRegionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which GeoRegion to aggregate.
     */
    where?: GeoRegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GeoRegions to fetch.
     */
    orderBy?: GeoRegionOrderByWithRelationInput | GeoRegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: GeoRegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GeoRegions 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` GeoRegions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned GeoRegions
    **/
    _count?: true | GeoRegionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: GeoRegionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: GeoRegionMaxAggregateInputType
  }

  export type GetGeoRegionAggregateType<T extends GeoRegionAggregateArgs> = {
        [P in keyof T & keyof AggregateGeoRegion]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateGeoRegion[P]>
      : GetScalarType<T[P], AggregateGeoRegion[P]>
  }




  export type GeoRegionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: GeoRegionWhereInput
    orderBy?: GeoRegionOrderByWithAggregationInput | GeoRegionOrderByWithAggregationInput[]
    by: GeoRegionScalarFieldEnum[] | GeoRegionScalarFieldEnum
    having?: GeoRegionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: GeoRegionCountAggregateInputType | true
    _min?: GeoRegionMinAggregateInputType
    _max?: GeoRegionMaxAggregateInputType
  }

  export type GeoRegionGroupByOutputType = {
    id: string
    code: string
    name: string
    countries: string[]
    enabled: boolean
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    createdById: string | null
    _count: GeoRegionCountAggregateOutputType | null
    _min: GeoRegionMinAggregateOutputType | null
    _max: GeoRegionMaxAggregateOutputType | null
  }

  type GetGeoRegionGroupByPayload<T extends GeoRegionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<GeoRegionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof GeoRegionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], GeoRegionGroupByOutputType[P]>
            : GetScalarType<T[P], GeoRegionGroupByOutputType[P]>
        }
      >
    >


  export type GeoRegionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    countries?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["geoRegion"]>

  export type GeoRegionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    countries?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["geoRegion"]>

  export type GeoRegionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    countries?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["geoRegion"]>

  export type GeoRegionSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    countries?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type GeoRegionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "countries" | "enabled" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["geoRegion"]>

  export type $GeoRegionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "GeoRegion"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      countries: string[]
      enabled: boolean
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      createdById: string | null
    }, ExtArgs["result"]["geoRegion"]>
    composites: {}
  }

  type GeoRegionGetPayload<S extends boolean | null | undefined | GeoRegionDefaultArgs> = $Result.GetResult<Prisma.$GeoRegionPayload, S>

  type GeoRegionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<GeoRegionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: GeoRegionCountAggregateInputType | true
    }

  export interface GeoRegionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['GeoRegion'], meta: { name: 'GeoRegion' } }
    /**
     * Find zero or one GeoRegion that matches the filter.
     * @param {GeoRegionFindUniqueArgs} args - Arguments to find a GeoRegion
     * @example
     * // Get one GeoRegion
     * const geoRegion = await prisma.geoRegion.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends GeoRegionFindUniqueArgs>(args: SelectSubset<T, GeoRegionFindUniqueArgs<ExtArgs>>): Prisma__GeoRegionClient<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one GeoRegion that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {GeoRegionFindUniqueOrThrowArgs} args - Arguments to find a GeoRegion
     * @example
     * // Get one GeoRegion
     * const geoRegion = await prisma.geoRegion.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends GeoRegionFindUniqueOrThrowArgs>(args: SelectSubset<T, GeoRegionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__GeoRegionClient<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first GeoRegion 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 {GeoRegionFindFirstArgs} args - Arguments to find a GeoRegion
     * @example
     * // Get one GeoRegion
     * const geoRegion = await prisma.geoRegion.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends GeoRegionFindFirstArgs>(args?: SelectSubset<T, GeoRegionFindFirstArgs<ExtArgs>>): Prisma__GeoRegionClient<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first GeoRegion 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 {GeoRegionFindFirstOrThrowArgs} args - Arguments to find a GeoRegion
     * @example
     * // Get one GeoRegion
     * const geoRegion = await prisma.geoRegion.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends GeoRegionFindFirstOrThrowArgs>(args?: SelectSubset<T, GeoRegionFindFirstOrThrowArgs<ExtArgs>>): Prisma__GeoRegionClient<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more GeoRegions 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 {GeoRegionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all GeoRegions
     * const geoRegions = await prisma.geoRegion.findMany()
     * 
     * // Get first 10 GeoRegions
     * const geoRegions = await prisma.geoRegion.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const geoRegionWithIdOnly = await prisma.geoRegion.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends GeoRegionFindManyArgs>(args?: SelectSubset<T, GeoRegionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a GeoRegion.
     * @param {GeoRegionCreateArgs} args - Arguments to create a GeoRegion.
     * @example
     * // Create one GeoRegion
     * const GeoRegion = await prisma.geoRegion.create({
     *   data: {
     *     // ... data to create a GeoRegion
     *   }
     * })
     * 
     */
    create<T extends GeoRegionCreateArgs>(args: SelectSubset<T, GeoRegionCreateArgs<ExtArgs>>): Prisma__GeoRegionClient<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many GeoRegions.
     * @param {GeoRegionCreateManyArgs} args - Arguments to create many GeoRegions.
     * @example
     * // Create many GeoRegions
     * const geoRegion = await prisma.geoRegion.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends GeoRegionCreateManyArgs>(args?: SelectSubset<T, GeoRegionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many GeoRegions and returns the data saved in the database.
     * @param {GeoRegionCreateManyAndReturnArgs} args - Arguments to create many GeoRegions.
     * @example
     * // Create many GeoRegions
     * const geoRegion = await prisma.geoRegion.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many GeoRegions and only return the `id`
     * const geoRegionWithIdOnly = await prisma.geoRegion.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 GeoRegionCreateManyAndReturnArgs>(args?: SelectSubset<T, GeoRegionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a GeoRegion.
     * @param {GeoRegionDeleteArgs} args - Arguments to delete one GeoRegion.
     * @example
     * // Delete one GeoRegion
     * const GeoRegion = await prisma.geoRegion.delete({
     *   where: {
     *     // ... filter to delete one GeoRegion
     *   }
     * })
     * 
     */
    delete<T extends GeoRegionDeleteArgs>(args: SelectSubset<T, GeoRegionDeleteArgs<ExtArgs>>): Prisma__GeoRegionClient<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one GeoRegion.
     * @param {GeoRegionUpdateArgs} args - Arguments to update one GeoRegion.
     * @example
     * // Update one GeoRegion
     * const geoRegion = await prisma.geoRegion.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends GeoRegionUpdateArgs>(args: SelectSubset<T, GeoRegionUpdateArgs<ExtArgs>>): Prisma__GeoRegionClient<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more GeoRegions.
     * @param {GeoRegionDeleteManyArgs} args - Arguments to filter GeoRegions to delete.
     * @example
     * // Delete a few GeoRegions
     * const { count } = await prisma.geoRegion.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends GeoRegionDeleteManyArgs>(args?: SelectSubset<T, GeoRegionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more GeoRegions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GeoRegionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many GeoRegions
     * const geoRegion = await prisma.geoRegion.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends GeoRegionUpdateManyArgs>(args: SelectSubset<T, GeoRegionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more GeoRegions and returns the data updated in the database.
     * @param {GeoRegionUpdateManyAndReturnArgs} args - Arguments to update many GeoRegions.
     * @example
     * // Update many GeoRegions
     * const geoRegion = await prisma.geoRegion.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more GeoRegions and only return the `id`
     * const geoRegionWithIdOnly = await prisma.geoRegion.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 GeoRegionUpdateManyAndReturnArgs>(args: SelectSubset<T, GeoRegionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one GeoRegion.
     * @param {GeoRegionUpsertArgs} args - Arguments to update or create a GeoRegion.
     * @example
     * // Update or create a GeoRegion
     * const geoRegion = await prisma.geoRegion.upsert({
     *   create: {
     *     // ... data to create a GeoRegion
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the GeoRegion we want to update
     *   }
     * })
     */
    upsert<T extends GeoRegionUpsertArgs>(args: SelectSubset<T, GeoRegionUpsertArgs<ExtArgs>>): Prisma__GeoRegionClient<$Result.GetResult<Prisma.$GeoRegionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of GeoRegions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GeoRegionCountArgs} args - Arguments to filter GeoRegions to count.
     * @example
     * // Count the number of GeoRegions
     * const count = await prisma.geoRegion.count({
     *   where: {
     *     // ... the filter for the GeoRegions we want to count
     *   }
     * })
    **/
    count<T extends GeoRegionCountArgs>(
      args?: Subset<T, GeoRegionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], GeoRegionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a GeoRegion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GeoRegionAggregateArgs} 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 GeoRegionAggregateArgs>(args: Subset<T, GeoRegionAggregateArgs>): Prisma.PrismaPromise<GetGeoRegionAggregateType<T>>

    /**
     * Group by GeoRegion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GeoRegionGroupByArgs} 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 GeoRegionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: GeoRegionGroupByArgs['orderBy'] }
        : { orderBy?: GeoRegionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, GeoRegionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetGeoRegionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the GeoRegion model
   */
  readonly fields: GeoRegionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for GeoRegion.
   * 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__GeoRegionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the GeoRegion model
   */
  interface GeoRegionFieldRefs {
    readonly id: FieldRef<"GeoRegion", 'String'>
    readonly code: FieldRef<"GeoRegion", 'String'>
    readonly name: FieldRef<"GeoRegion", 'String'>
    readonly countries: FieldRef<"GeoRegion", 'String[]'>
    readonly enabled: FieldRef<"GeoRegion", 'Boolean'>
    readonly organizationId: FieldRef<"GeoRegion", 'String'>
    readonly createdAt: FieldRef<"GeoRegion", 'DateTime'>
    readonly updatedAt: FieldRef<"GeoRegion", 'DateTime'>
    readonly createdById: FieldRef<"GeoRegion", 'String'>
  }
    

  // Custom InputTypes
  /**
   * GeoRegion findUnique
   */
  export type GeoRegionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * Filter, which GeoRegion to fetch.
     */
    where: GeoRegionWhereUniqueInput
  }

  /**
   * GeoRegion findUniqueOrThrow
   */
  export type GeoRegionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * Filter, which GeoRegion to fetch.
     */
    where: GeoRegionWhereUniqueInput
  }

  /**
   * GeoRegion findFirst
   */
  export type GeoRegionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * Filter, which GeoRegion to fetch.
     */
    where?: GeoRegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GeoRegions to fetch.
     */
    orderBy?: GeoRegionOrderByWithRelationInput | GeoRegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for GeoRegions.
     */
    cursor?: GeoRegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GeoRegions 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` GeoRegions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of GeoRegions.
     */
    distinct?: GeoRegionScalarFieldEnum | GeoRegionScalarFieldEnum[]
  }

  /**
   * GeoRegion findFirstOrThrow
   */
  export type GeoRegionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * Filter, which GeoRegion to fetch.
     */
    where?: GeoRegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GeoRegions to fetch.
     */
    orderBy?: GeoRegionOrderByWithRelationInput | GeoRegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for GeoRegions.
     */
    cursor?: GeoRegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GeoRegions 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` GeoRegions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of GeoRegions.
     */
    distinct?: GeoRegionScalarFieldEnum | GeoRegionScalarFieldEnum[]
  }

  /**
   * GeoRegion findMany
   */
  export type GeoRegionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * Filter, which GeoRegions to fetch.
     */
    where?: GeoRegionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GeoRegions to fetch.
     */
    orderBy?: GeoRegionOrderByWithRelationInput | GeoRegionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing GeoRegions.
     */
    cursor?: GeoRegionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GeoRegions 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` GeoRegions.
     */
    skip?: number
    distinct?: GeoRegionScalarFieldEnum | GeoRegionScalarFieldEnum[]
  }

  /**
   * GeoRegion create
   */
  export type GeoRegionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * The data needed to create a GeoRegion.
     */
    data: XOR<GeoRegionCreateInput, GeoRegionUncheckedCreateInput>
  }

  /**
   * GeoRegion createMany
   */
  export type GeoRegionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many GeoRegions.
     */
    data: GeoRegionCreateManyInput | GeoRegionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * GeoRegion createManyAndReturn
   */
  export type GeoRegionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * The data used to create many GeoRegions.
     */
    data: GeoRegionCreateManyInput | GeoRegionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * GeoRegion update
   */
  export type GeoRegionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * The data needed to update a GeoRegion.
     */
    data: XOR<GeoRegionUpdateInput, GeoRegionUncheckedUpdateInput>
    /**
     * Choose, which GeoRegion to update.
     */
    where: GeoRegionWhereUniqueInput
  }

  /**
   * GeoRegion updateMany
   */
  export type GeoRegionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update GeoRegions.
     */
    data: XOR<GeoRegionUpdateManyMutationInput, GeoRegionUncheckedUpdateManyInput>
    /**
     * Filter which GeoRegions to update
     */
    where?: GeoRegionWhereInput
    /**
     * Limit how many GeoRegions to update.
     */
    limit?: number
  }

  /**
   * GeoRegion updateManyAndReturn
   */
  export type GeoRegionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * The data used to update GeoRegions.
     */
    data: XOR<GeoRegionUpdateManyMutationInput, GeoRegionUncheckedUpdateManyInput>
    /**
     * Filter which GeoRegions to update
     */
    where?: GeoRegionWhereInput
    /**
     * Limit how many GeoRegions to update.
     */
    limit?: number
  }

  /**
   * GeoRegion upsert
   */
  export type GeoRegionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * The filter to search for the GeoRegion to update in case it exists.
     */
    where: GeoRegionWhereUniqueInput
    /**
     * In case the GeoRegion found by the `where` argument doesn't exist, create a new GeoRegion with this data.
     */
    create: XOR<GeoRegionCreateInput, GeoRegionUncheckedCreateInput>
    /**
     * In case the GeoRegion was found with the provided `where` argument, update it with this data.
     */
    update: XOR<GeoRegionUpdateInput, GeoRegionUncheckedUpdateInput>
  }

  /**
   * GeoRegion delete
   */
  export type GeoRegionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
    /**
     * Filter which GeoRegion to delete.
     */
    where: GeoRegionWhereUniqueInput
  }

  /**
   * GeoRegion deleteMany
   */
  export type GeoRegionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which GeoRegions to delete
     */
    where?: GeoRegionWhereInput
    /**
     * Limit how many GeoRegions to delete.
     */
    limit?: number
  }

  /**
   * GeoRegion without action
   */
  export type GeoRegionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GeoRegion
     */
    select?: GeoRegionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GeoRegion
     */
    omit?: GeoRegionOmit<ExtArgs> | null
  }


  /**
   * Model UnitOfMeasure
   */

  export type AggregateUnitOfMeasure = {
    _count: UnitOfMeasureCountAggregateOutputType | null
    _min: UnitOfMeasureMinAggregateOutputType | null
    _max: UnitOfMeasureMaxAggregateOutputType | null
  }

  export type UnitOfMeasureMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    category: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type UnitOfMeasureMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    category: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type UnitOfMeasureCountAggregateOutputType = {
    id: number
    code: number
    name: number
    category: number
    enabled: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type UnitOfMeasureMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    category?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type UnitOfMeasureMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    category?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type UnitOfMeasureCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    category?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type UnitOfMeasureAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UnitOfMeasure to aggregate.
     */
    where?: UnitOfMeasureWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UnitOfMeasures to fetch.
     */
    orderBy?: UnitOfMeasureOrderByWithRelationInput | UnitOfMeasureOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: UnitOfMeasureWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UnitOfMeasures 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` UnitOfMeasures.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned UnitOfMeasures
    **/
    _count?: true | UnitOfMeasureCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: UnitOfMeasureMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: UnitOfMeasureMaxAggregateInputType
  }

  export type GetUnitOfMeasureAggregateType<T extends UnitOfMeasureAggregateArgs> = {
        [P in keyof T & keyof AggregateUnitOfMeasure]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateUnitOfMeasure[P]>
      : GetScalarType<T[P], AggregateUnitOfMeasure[P]>
  }




  export type UnitOfMeasureGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: UnitOfMeasureWhereInput
    orderBy?: UnitOfMeasureOrderByWithAggregationInput | UnitOfMeasureOrderByWithAggregationInput[]
    by: UnitOfMeasureScalarFieldEnum[] | UnitOfMeasureScalarFieldEnum
    having?: UnitOfMeasureScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: UnitOfMeasureCountAggregateInputType | true
    _min?: UnitOfMeasureMinAggregateInputType
    _max?: UnitOfMeasureMaxAggregateInputType
  }

  export type UnitOfMeasureGroupByOutputType = {
    id: string
    code: string
    name: string
    category: string | null
    enabled: boolean
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    createdById: string | null
    _count: UnitOfMeasureCountAggregateOutputType | null
    _min: UnitOfMeasureMinAggregateOutputType | null
    _max: UnitOfMeasureMaxAggregateOutputType | null
  }

  type GetUnitOfMeasureGroupByPayload<T extends UnitOfMeasureGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<UnitOfMeasureGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof UnitOfMeasureGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], UnitOfMeasureGroupByOutputType[P]>
            : GetScalarType<T[P], UnitOfMeasureGroupByOutputType[P]>
        }
      >
    >


  export type UnitOfMeasureSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    category?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["unitOfMeasure"]>

  export type UnitOfMeasureSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    category?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["unitOfMeasure"]>

  export type UnitOfMeasureSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    category?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["unitOfMeasure"]>

  export type UnitOfMeasureSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    category?: boolean
    enabled?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type UnitOfMeasureOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "category" | "enabled" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["unitOfMeasure"]>

  export type $UnitOfMeasurePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "UnitOfMeasure"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      category: string | null
      enabled: boolean
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      createdById: string | null
    }, ExtArgs["result"]["unitOfMeasure"]>
    composites: {}
  }

  type UnitOfMeasureGetPayload<S extends boolean | null | undefined | UnitOfMeasureDefaultArgs> = $Result.GetResult<Prisma.$UnitOfMeasurePayload, S>

  type UnitOfMeasureCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<UnitOfMeasureFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: UnitOfMeasureCountAggregateInputType | true
    }

  export interface UnitOfMeasureDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['UnitOfMeasure'], meta: { name: 'UnitOfMeasure' } }
    /**
     * Find zero or one UnitOfMeasure that matches the filter.
     * @param {UnitOfMeasureFindUniqueArgs} args - Arguments to find a UnitOfMeasure
     * @example
     * // Get one UnitOfMeasure
     * const unitOfMeasure = await prisma.unitOfMeasure.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends UnitOfMeasureFindUniqueArgs>(args: SelectSubset<T, UnitOfMeasureFindUniqueArgs<ExtArgs>>): Prisma__UnitOfMeasureClient<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one UnitOfMeasure that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {UnitOfMeasureFindUniqueOrThrowArgs} args - Arguments to find a UnitOfMeasure
     * @example
     * // Get one UnitOfMeasure
     * const unitOfMeasure = await prisma.unitOfMeasure.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends UnitOfMeasureFindUniqueOrThrowArgs>(args: SelectSubset<T, UnitOfMeasureFindUniqueOrThrowArgs<ExtArgs>>): Prisma__UnitOfMeasureClient<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UnitOfMeasure 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 {UnitOfMeasureFindFirstArgs} args - Arguments to find a UnitOfMeasure
     * @example
     * // Get one UnitOfMeasure
     * const unitOfMeasure = await prisma.unitOfMeasure.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends UnitOfMeasureFindFirstArgs>(args?: SelectSubset<T, UnitOfMeasureFindFirstArgs<ExtArgs>>): Prisma__UnitOfMeasureClient<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first UnitOfMeasure 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 {UnitOfMeasureFindFirstOrThrowArgs} args - Arguments to find a UnitOfMeasure
     * @example
     * // Get one UnitOfMeasure
     * const unitOfMeasure = await prisma.unitOfMeasure.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends UnitOfMeasureFindFirstOrThrowArgs>(args?: SelectSubset<T, UnitOfMeasureFindFirstOrThrowArgs<ExtArgs>>): Prisma__UnitOfMeasureClient<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more UnitOfMeasures 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 {UnitOfMeasureFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all UnitOfMeasures
     * const unitOfMeasures = await prisma.unitOfMeasure.findMany()
     * 
     * // Get first 10 UnitOfMeasures
     * const unitOfMeasures = await prisma.unitOfMeasure.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const unitOfMeasureWithIdOnly = await prisma.unitOfMeasure.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends UnitOfMeasureFindManyArgs>(args?: SelectSubset<T, UnitOfMeasureFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a UnitOfMeasure.
     * @param {UnitOfMeasureCreateArgs} args - Arguments to create a UnitOfMeasure.
     * @example
     * // Create one UnitOfMeasure
     * const UnitOfMeasure = await prisma.unitOfMeasure.create({
     *   data: {
     *     // ... data to create a UnitOfMeasure
     *   }
     * })
     * 
     */
    create<T extends UnitOfMeasureCreateArgs>(args: SelectSubset<T, UnitOfMeasureCreateArgs<ExtArgs>>): Prisma__UnitOfMeasureClient<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many UnitOfMeasures.
     * @param {UnitOfMeasureCreateManyArgs} args - Arguments to create many UnitOfMeasures.
     * @example
     * // Create many UnitOfMeasures
     * const unitOfMeasure = await prisma.unitOfMeasure.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends UnitOfMeasureCreateManyArgs>(args?: SelectSubset<T, UnitOfMeasureCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many UnitOfMeasures and returns the data saved in the database.
     * @param {UnitOfMeasureCreateManyAndReturnArgs} args - Arguments to create many UnitOfMeasures.
     * @example
     * // Create many UnitOfMeasures
     * const unitOfMeasure = await prisma.unitOfMeasure.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many UnitOfMeasures and only return the `id`
     * const unitOfMeasureWithIdOnly = await prisma.unitOfMeasure.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 UnitOfMeasureCreateManyAndReturnArgs>(args?: SelectSubset<T, UnitOfMeasureCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a UnitOfMeasure.
     * @param {UnitOfMeasureDeleteArgs} args - Arguments to delete one UnitOfMeasure.
     * @example
     * // Delete one UnitOfMeasure
     * const UnitOfMeasure = await prisma.unitOfMeasure.delete({
     *   where: {
     *     // ... filter to delete one UnitOfMeasure
     *   }
     * })
     * 
     */
    delete<T extends UnitOfMeasureDeleteArgs>(args: SelectSubset<T, UnitOfMeasureDeleteArgs<ExtArgs>>): Prisma__UnitOfMeasureClient<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one UnitOfMeasure.
     * @param {UnitOfMeasureUpdateArgs} args - Arguments to update one UnitOfMeasure.
     * @example
     * // Update one UnitOfMeasure
     * const unitOfMeasure = await prisma.unitOfMeasure.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends UnitOfMeasureUpdateArgs>(args: SelectSubset<T, UnitOfMeasureUpdateArgs<ExtArgs>>): Prisma__UnitOfMeasureClient<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more UnitOfMeasures.
     * @param {UnitOfMeasureDeleteManyArgs} args - Arguments to filter UnitOfMeasures to delete.
     * @example
     * // Delete a few UnitOfMeasures
     * const { count } = await prisma.unitOfMeasure.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends UnitOfMeasureDeleteManyArgs>(args?: SelectSubset<T, UnitOfMeasureDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UnitOfMeasures.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UnitOfMeasureUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many UnitOfMeasures
     * const unitOfMeasure = await prisma.unitOfMeasure.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends UnitOfMeasureUpdateManyArgs>(args: SelectSubset<T, UnitOfMeasureUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more UnitOfMeasures and returns the data updated in the database.
     * @param {UnitOfMeasureUpdateManyAndReturnArgs} args - Arguments to update many UnitOfMeasures.
     * @example
     * // Update many UnitOfMeasures
     * const unitOfMeasure = await prisma.unitOfMeasure.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more UnitOfMeasures and only return the `id`
     * const unitOfMeasureWithIdOnly = await prisma.unitOfMeasure.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 UnitOfMeasureUpdateManyAndReturnArgs>(args: SelectSubset<T, UnitOfMeasureUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one UnitOfMeasure.
     * @param {UnitOfMeasureUpsertArgs} args - Arguments to update or create a UnitOfMeasure.
     * @example
     * // Update or create a UnitOfMeasure
     * const unitOfMeasure = await prisma.unitOfMeasure.upsert({
     *   create: {
     *     // ... data to create a UnitOfMeasure
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the UnitOfMeasure we want to update
     *   }
     * })
     */
    upsert<T extends UnitOfMeasureUpsertArgs>(args: SelectSubset<T, UnitOfMeasureUpsertArgs<ExtArgs>>): Prisma__UnitOfMeasureClient<$Result.GetResult<Prisma.$UnitOfMeasurePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of UnitOfMeasures.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UnitOfMeasureCountArgs} args - Arguments to filter UnitOfMeasures to count.
     * @example
     * // Count the number of UnitOfMeasures
     * const count = await prisma.unitOfMeasure.count({
     *   where: {
     *     // ... the filter for the UnitOfMeasures we want to count
     *   }
     * })
    **/
    count<T extends UnitOfMeasureCountArgs>(
      args?: Subset<T, UnitOfMeasureCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], UnitOfMeasureCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a UnitOfMeasure.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UnitOfMeasureAggregateArgs} 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 UnitOfMeasureAggregateArgs>(args: Subset<T, UnitOfMeasureAggregateArgs>): Prisma.PrismaPromise<GetUnitOfMeasureAggregateType<T>>

    /**
     * Group by UnitOfMeasure.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {UnitOfMeasureGroupByArgs} 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 UnitOfMeasureGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: UnitOfMeasureGroupByArgs['orderBy'] }
        : { orderBy?: UnitOfMeasureGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, UnitOfMeasureGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetUnitOfMeasureGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the UnitOfMeasure model
   */
  readonly fields: UnitOfMeasureFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for UnitOfMeasure.
   * 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__UnitOfMeasureClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the UnitOfMeasure model
   */
  interface UnitOfMeasureFieldRefs {
    readonly id: FieldRef<"UnitOfMeasure", 'String'>
    readonly code: FieldRef<"UnitOfMeasure", 'String'>
    readonly name: FieldRef<"UnitOfMeasure", 'String'>
    readonly category: FieldRef<"UnitOfMeasure", 'String'>
    readonly enabled: FieldRef<"UnitOfMeasure", 'Boolean'>
    readonly organizationId: FieldRef<"UnitOfMeasure", 'String'>
    readonly createdAt: FieldRef<"UnitOfMeasure", 'DateTime'>
    readonly updatedAt: FieldRef<"UnitOfMeasure", 'DateTime'>
    readonly createdById: FieldRef<"UnitOfMeasure", 'String'>
  }
    

  // Custom InputTypes
  /**
   * UnitOfMeasure findUnique
   */
  export type UnitOfMeasureFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * Filter, which UnitOfMeasure to fetch.
     */
    where: UnitOfMeasureWhereUniqueInput
  }

  /**
   * UnitOfMeasure findUniqueOrThrow
   */
  export type UnitOfMeasureFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * Filter, which UnitOfMeasure to fetch.
     */
    where: UnitOfMeasureWhereUniqueInput
  }

  /**
   * UnitOfMeasure findFirst
   */
  export type UnitOfMeasureFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * Filter, which UnitOfMeasure to fetch.
     */
    where?: UnitOfMeasureWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UnitOfMeasures to fetch.
     */
    orderBy?: UnitOfMeasureOrderByWithRelationInput | UnitOfMeasureOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UnitOfMeasures.
     */
    cursor?: UnitOfMeasureWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UnitOfMeasures 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` UnitOfMeasures.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UnitOfMeasures.
     */
    distinct?: UnitOfMeasureScalarFieldEnum | UnitOfMeasureScalarFieldEnum[]
  }

  /**
   * UnitOfMeasure findFirstOrThrow
   */
  export type UnitOfMeasureFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * Filter, which UnitOfMeasure to fetch.
     */
    where?: UnitOfMeasureWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UnitOfMeasures to fetch.
     */
    orderBy?: UnitOfMeasureOrderByWithRelationInput | UnitOfMeasureOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for UnitOfMeasures.
     */
    cursor?: UnitOfMeasureWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UnitOfMeasures 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` UnitOfMeasures.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of UnitOfMeasures.
     */
    distinct?: UnitOfMeasureScalarFieldEnum | UnitOfMeasureScalarFieldEnum[]
  }

  /**
   * UnitOfMeasure findMany
   */
  export type UnitOfMeasureFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * Filter, which UnitOfMeasures to fetch.
     */
    where?: UnitOfMeasureWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of UnitOfMeasures to fetch.
     */
    orderBy?: UnitOfMeasureOrderByWithRelationInput | UnitOfMeasureOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing UnitOfMeasures.
     */
    cursor?: UnitOfMeasureWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` UnitOfMeasures 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` UnitOfMeasures.
     */
    skip?: number
    distinct?: UnitOfMeasureScalarFieldEnum | UnitOfMeasureScalarFieldEnum[]
  }

  /**
   * UnitOfMeasure create
   */
  export type UnitOfMeasureCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * The data needed to create a UnitOfMeasure.
     */
    data: XOR<UnitOfMeasureCreateInput, UnitOfMeasureUncheckedCreateInput>
  }

  /**
   * UnitOfMeasure createMany
   */
  export type UnitOfMeasureCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many UnitOfMeasures.
     */
    data: UnitOfMeasureCreateManyInput | UnitOfMeasureCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * UnitOfMeasure createManyAndReturn
   */
  export type UnitOfMeasureCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * The data used to create many UnitOfMeasures.
     */
    data: UnitOfMeasureCreateManyInput | UnitOfMeasureCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * UnitOfMeasure update
   */
  export type UnitOfMeasureUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * The data needed to update a UnitOfMeasure.
     */
    data: XOR<UnitOfMeasureUpdateInput, UnitOfMeasureUncheckedUpdateInput>
    /**
     * Choose, which UnitOfMeasure to update.
     */
    where: UnitOfMeasureWhereUniqueInput
  }

  /**
   * UnitOfMeasure updateMany
   */
  export type UnitOfMeasureUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update UnitOfMeasures.
     */
    data: XOR<UnitOfMeasureUpdateManyMutationInput, UnitOfMeasureUncheckedUpdateManyInput>
    /**
     * Filter which UnitOfMeasures to update
     */
    where?: UnitOfMeasureWhereInput
    /**
     * Limit how many UnitOfMeasures to update.
     */
    limit?: number
  }

  /**
   * UnitOfMeasure updateManyAndReturn
   */
  export type UnitOfMeasureUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * The data used to update UnitOfMeasures.
     */
    data: XOR<UnitOfMeasureUpdateManyMutationInput, UnitOfMeasureUncheckedUpdateManyInput>
    /**
     * Filter which UnitOfMeasures to update
     */
    where?: UnitOfMeasureWhereInput
    /**
     * Limit how many UnitOfMeasures to update.
     */
    limit?: number
  }

  /**
   * UnitOfMeasure upsert
   */
  export type UnitOfMeasureUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * The filter to search for the UnitOfMeasure to update in case it exists.
     */
    where: UnitOfMeasureWhereUniqueInput
    /**
     * In case the UnitOfMeasure found by the `where` argument doesn't exist, create a new UnitOfMeasure with this data.
     */
    create: XOR<UnitOfMeasureCreateInput, UnitOfMeasureUncheckedCreateInput>
    /**
     * In case the UnitOfMeasure was found with the provided `where` argument, update it with this data.
     */
    update: XOR<UnitOfMeasureUpdateInput, UnitOfMeasureUncheckedUpdateInput>
  }

  /**
   * UnitOfMeasure delete
   */
  export type UnitOfMeasureDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
    /**
     * Filter which UnitOfMeasure to delete.
     */
    where: UnitOfMeasureWhereUniqueInput
  }

  /**
   * UnitOfMeasure deleteMany
   */
  export type UnitOfMeasureDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which UnitOfMeasures to delete
     */
    where?: UnitOfMeasureWhereInput
    /**
     * Limit how many UnitOfMeasures to delete.
     */
    limit?: number
  }

  /**
   * UnitOfMeasure without action
   */
  export type UnitOfMeasureDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the UnitOfMeasure
     */
    select?: UnitOfMeasureSelect<ExtArgs> | null
    /**
     * Omit specific fields from the UnitOfMeasure
     */
    omit?: UnitOfMeasureOmit<ExtArgs> | null
  }


  /**
   * Model Dictionary
   */

  export type AggregateDictionary = {
    _count: DictionaryCountAggregateOutputType | null
    _avg: DictionaryAvgAggregateOutputType | null
    _sum: DictionarySumAggregateOutputType | null
    _min: DictionaryMinAggregateOutputType | null
    _max: DictionaryMaxAggregateOutputType | null
  }

  export type DictionaryAvgAggregateOutputType = {
    sortOrder: number | null
  }

  export type DictionarySumAggregateOutputType = {
    sortOrder: number | null
  }

  export type DictionaryMinAggregateOutputType = {
    id: string | null
    category: string | null
    code: string | null
    labelEn: string | null
    labelZh: string | null
    sortOrder: number | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type DictionaryMaxAggregateOutputType = {
    id: string | null
    category: string | null
    code: string | null
    labelEn: string | null
    labelZh: string | null
    sortOrder: number | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type DictionaryCountAggregateOutputType = {
    id: number
    category: number
    code: number
    labelEn: number
    labelZh: number
    sortOrder: number
    enabled: number
    metadata: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type DictionaryAvgAggregateInputType = {
    sortOrder?: true
  }

  export type DictionarySumAggregateInputType = {
    sortOrder?: true
  }

  export type DictionaryMinAggregateInputType = {
    id?: true
    category?: true
    code?: true
    labelEn?: true
    labelZh?: true
    sortOrder?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type DictionaryMaxAggregateInputType = {
    id?: true
    category?: true
    code?: true
    labelEn?: true
    labelZh?: true
    sortOrder?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type DictionaryCountAggregateInputType = {
    id?: true
    category?: true
    code?: true
    labelEn?: true
    labelZh?: true
    sortOrder?: true
    enabled?: true
    metadata?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type DictionaryAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Dictionary to aggregate.
     */
    where?: DictionaryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Dictionaries to fetch.
     */
    orderBy?: DictionaryOrderByWithRelationInput | DictionaryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DictionaryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Dictionaries 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` Dictionaries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Dictionaries
    **/
    _count?: true | DictionaryCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DictionaryAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DictionarySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DictionaryMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DictionaryMaxAggregateInputType
  }

  export type GetDictionaryAggregateType<T extends DictionaryAggregateArgs> = {
        [P in keyof T & keyof AggregateDictionary]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDictionary[P]>
      : GetScalarType<T[P], AggregateDictionary[P]>
  }




  export type DictionaryGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DictionaryWhereInput
    orderBy?: DictionaryOrderByWithAggregationInput | DictionaryOrderByWithAggregationInput[]
    by: DictionaryScalarFieldEnum[] | DictionaryScalarFieldEnum
    having?: DictionaryScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DictionaryCountAggregateInputType | true
    _avg?: DictionaryAvgAggregateInputType
    _sum?: DictionarySumAggregateInputType
    _min?: DictionaryMinAggregateInputType
    _max?: DictionaryMaxAggregateInputType
  }

  export type DictionaryGroupByOutputType = {
    id: string
    category: string
    code: string
    labelEn: string
    labelZh: string | null
    sortOrder: number
    enabled: boolean
    metadata: JsonValue
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    createdById: string | null
    _count: DictionaryCountAggregateOutputType | null
    _avg: DictionaryAvgAggregateOutputType | null
    _sum: DictionarySumAggregateOutputType | null
    _min: DictionaryMinAggregateOutputType | null
    _max: DictionaryMaxAggregateOutputType | null
  }

  type GetDictionaryGroupByPayload<T extends DictionaryGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DictionaryGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DictionaryGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DictionaryGroupByOutputType[P]>
            : GetScalarType<T[P], DictionaryGroupByOutputType[P]>
        }
      >
    >


  export type DictionarySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    category?: boolean
    code?: boolean
    labelEn?: boolean
    labelZh?: boolean
    sortOrder?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["dictionary"]>

  export type DictionarySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    category?: boolean
    code?: boolean
    labelEn?: boolean
    labelZh?: boolean
    sortOrder?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["dictionary"]>

  export type DictionarySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    category?: boolean
    code?: boolean
    labelEn?: boolean
    labelZh?: boolean
    sortOrder?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["dictionary"]>

  export type DictionarySelectScalar = {
    id?: boolean
    category?: boolean
    code?: boolean
    labelEn?: boolean
    labelZh?: boolean
    sortOrder?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type DictionaryOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "category" | "code" | "labelEn" | "labelZh" | "sortOrder" | "enabled" | "metadata" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["dictionary"]>

  export type $DictionaryPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Dictionary"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      category: string
      code: string
      labelEn: string
      labelZh: string | null
      sortOrder: number
      enabled: boolean
      metadata: Prisma.JsonValue
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      createdById: string | null
    }, ExtArgs["result"]["dictionary"]>
    composites: {}
  }

  type DictionaryGetPayload<S extends boolean | null | undefined | DictionaryDefaultArgs> = $Result.GetResult<Prisma.$DictionaryPayload, S>

  type DictionaryCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DictionaryFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DictionaryCountAggregateInputType | true
    }

  export interface DictionaryDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Dictionary'], meta: { name: 'Dictionary' } }
    /**
     * Find zero or one Dictionary that matches the filter.
     * @param {DictionaryFindUniqueArgs} args - Arguments to find a Dictionary
     * @example
     * // Get one Dictionary
     * const dictionary = await prisma.dictionary.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DictionaryFindUniqueArgs>(args: SelectSubset<T, DictionaryFindUniqueArgs<ExtArgs>>): Prisma__DictionaryClient<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Dictionary that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DictionaryFindUniqueOrThrowArgs} args - Arguments to find a Dictionary
     * @example
     * // Get one Dictionary
     * const dictionary = await prisma.dictionary.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DictionaryFindUniqueOrThrowArgs>(args: SelectSubset<T, DictionaryFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DictionaryClient<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Dictionary 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 {DictionaryFindFirstArgs} args - Arguments to find a Dictionary
     * @example
     * // Get one Dictionary
     * const dictionary = await prisma.dictionary.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DictionaryFindFirstArgs>(args?: SelectSubset<T, DictionaryFindFirstArgs<ExtArgs>>): Prisma__DictionaryClient<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Dictionary 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 {DictionaryFindFirstOrThrowArgs} args - Arguments to find a Dictionary
     * @example
     * // Get one Dictionary
     * const dictionary = await prisma.dictionary.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DictionaryFindFirstOrThrowArgs>(args?: SelectSubset<T, DictionaryFindFirstOrThrowArgs<ExtArgs>>): Prisma__DictionaryClient<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Dictionaries 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 {DictionaryFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Dictionaries
     * const dictionaries = await prisma.dictionary.findMany()
     * 
     * // Get first 10 Dictionaries
     * const dictionaries = await prisma.dictionary.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const dictionaryWithIdOnly = await prisma.dictionary.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DictionaryFindManyArgs>(args?: SelectSubset<T, DictionaryFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Dictionary.
     * @param {DictionaryCreateArgs} args - Arguments to create a Dictionary.
     * @example
     * // Create one Dictionary
     * const Dictionary = await prisma.dictionary.create({
     *   data: {
     *     // ... data to create a Dictionary
     *   }
     * })
     * 
     */
    create<T extends DictionaryCreateArgs>(args: SelectSubset<T, DictionaryCreateArgs<ExtArgs>>): Prisma__DictionaryClient<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Dictionaries.
     * @param {DictionaryCreateManyArgs} args - Arguments to create many Dictionaries.
     * @example
     * // Create many Dictionaries
     * const dictionary = await prisma.dictionary.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DictionaryCreateManyArgs>(args?: SelectSubset<T, DictionaryCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Dictionaries and returns the data saved in the database.
     * @param {DictionaryCreateManyAndReturnArgs} args - Arguments to create many Dictionaries.
     * @example
     * // Create many Dictionaries
     * const dictionary = await prisma.dictionary.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Dictionaries and only return the `id`
     * const dictionaryWithIdOnly = await prisma.dictionary.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 DictionaryCreateManyAndReturnArgs>(args?: SelectSubset<T, DictionaryCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Dictionary.
     * @param {DictionaryDeleteArgs} args - Arguments to delete one Dictionary.
     * @example
     * // Delete one Dictionary
     * const Dictionary = await prisma.dictionary.delete({
     *   where: {
     *     // ... filter to delete one Dictionary
     *   }
     * })
     * 
     */
    delete<T extends DictionaryDeleteArgs>(args: SelectSubset<T, DictionaryDeleteArgs<ExtArgs>>): Prisma__DictionaryClient<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Dictionary.
     * @param {DictionaryUpdateArgs} args - Arguments to update one Dictionary.
     * @example
     * // Update one Dictionary
     * const dictionary = await prisma.dictionary.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DictionaryUpdateArgs>(args: SelectSubset<T, DictionaryUpdateArgs<ExtArgs>>): Prisma__DictionaryClient<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Dictionaries.
     * @param {DictionaryDeleteManyArgs} args - Arguments to filter Dictionaries to delete.
     * @example
     * // Delete a few Dictionaries
     * const { count } = await prisma.dictionary.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DictionaryDeleteManyArgs>(args?: SelectSubset<T, DictionaryDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Dictionaries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DictionaryUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Dictionaries
     * const dictionary = await prisma.dictionary.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DictionaryUpdateManyArgs>(args: SelectSubset<T, DictionaryUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Dictionaries and returns the data updated in the database.
     * @param {DictionaryUpdateManyAndReturnArgs} args - Arguments to update many Dictionaries.
     * @example
     * // Update many Dictionaries
     * const dictionary = await prisma.dictionary.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Dictionaries and only return the `id`
     * const dictionaryWithIdOnly = await prisma.dictionary.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 DictionaryUpdateManyAndReturnArgs>(args: SelectSubset<T, DictionaryUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Dictionary.
     * @param {DictionaryUpsertArgs} args - Arguments to update or create a Dictionary.
     * @example
     * // Update or create a Dictionary
     * const dictionary = await prisma.dictionary.upsert({
     *   create: {
     *     // ... data to create a Dictionary
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Dictionary we want to update
     *   }
     * })
     */
    upsert<T extends DictionaryUpsertArgs>(args: SelectSubset<T, DictionaryUpsertArgs<ExtArgs>>): Prisma__DictionaryClient<$Result.GetResult<Prisma.$DictionaryPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Dictionaries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DictionaryCountArgs} args - Arguments to filter Dictionaries to count.
     * @example
     * // Count the number of Dictionaries
     * const count = await prisma.dictionary.count({
     *   where: {
     *     // ... the filter for the Dictionaries we want to count
     *   }
     * })
    **/
    count<T extends DictionaryCountArgs>(
      args?: Subset<T, DictionaryCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DictionaryCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Dictionary.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DictionaryAggregateArgs} 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 DictionaryAggregateArgs>(args: Subset<T, DictionaryAggregateArgs>): Prisma.PrismaPromise<GetDictionaryAggregateType<T>>

    /**
     * Group by Dictionary.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DictionaryGroupByArgs} 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 DictionaryGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DictionaryGroupByArgs['orderBy'] }
        : { orderBy?: DictionaryGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DictionaryGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDictionaryGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Dictionary model
   */
  readonly fields: DictionaryFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Dictionary.
   * 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__DictionaryClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Dictionary model
   */
  interface DictionaryFieldRefs {
    readonly id: FieldRef<"Dictionary", 'String'>
    readonly category: FieldRef<"Dictionary", 'String'>
    readonly code: FieldRef<"Dictionary", 'String'>
    readonly labelEn: FieldRef<"Dictionary", 'String'>
    readonly labelZh: FieldRef<"Dictionary", 'String'>
    readonly sortOrder: FieldRef<"Dictionary", 'Int'>
    readonly enabled: FieldRef<"Dictionary", 'Boolean'>
    readonly metadata: FieldRef<"Dictionary", 'Json'>
    readonly organizationId: FieldRef<"Dictionary", 'String'>
    readonly createdAt: FieldRef<"Dictionary", 'DateTime'>
    readonly updatedAt: FieldRef<"Dictionary", 'DateTime'>
    readonly createdById: FieldRef<"Dictionary", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Dictionary findUnique
   */
  export type DictionaryFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * Filter, which Dictionary to fetch.
     */
    where: DictionaryWhereUniqueInput
  }

  /**
   * Dictionary findUniqueOrThrow
   */
  export type DictionaryFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * Filter, which Dictionary to fetch.
     */
    where: DictionaryWhereUniqueInput
  }

  /**
   * Dictionary findFirst
   */
  export type DictionaryFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * Filter, which Dictionary to fetch.
     */
    where?: DictionaryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Dictionaries to fetch.
     */
    orderBy?: DictionaryOrderByWithRelationInput | DictionaryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Dictionaries.
     */
    cursor?: DictionaryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Dictionaries 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` Dictionaries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Dictionaries.
     */
    distinct?: DictionaryScalarFieldEnum | DictionaryScalarFieldEnum[]
  }

  /**
   * Dictionary findFirstOrThrow
   */
  export type DictionaryFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * Filter, which Dictionary to fetch.
     */
    where?: DictionaryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Dictionaries to fetch.
     */
    orderBy?: DictionaryOrderByWithRelationInput | DictionaryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Dictionaries.
     */
    cursor?: DictionaryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Dictionaries 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` Dictionaries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Dictionaries.
     */
    distinct?: DictionaryScalarFieldEnum | DictionaryScalarFieldEnum[]
  }

  /**
   * Dictionary findMany
   */
  export type DictionaryFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * Filter, which Dictionaries to fetch.
     */
    where?: DictionaryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Dictionaries to fetch.
     */
    orderBy?: DictionaryOrderByWithRelationInput | DictionaryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Dictionaries.
     */
    cursor?: DictionaryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Dictionaries 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` Dictionaries.
     */
    skip?: number
    distinct?: DictionaryScalarFieldEnum | DictionaryScalarFieldEnum[]
  }

  /**
   * Dictionary create
   */
  export type DictionaryCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * The data needed to create a Dictionary.
     */
    data: XOR<DictionaryCreateInput, DictionaryUncheckedCreateInput>
  }

  /**
   * Dictionary createMany
   */
  export type DictionaryCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Dictionaries.
     */
    data: DictionaryCreateManyInput | DictionaryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Dictionary createManyAndReturn
   */
  export type DictionaryCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * The data used to create many Dictionaries.
     */
    data: DictionaryCreateManyInput | DictionaryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Dictionary update
   */
  export type DictionaryUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * The data needed to update a Dictionary.
     */
    data: XOR<DictionaryUpdateInput, DictionaryUncheckedUpdateInput>
    /**
     * Choose, which Dictionary to update.
     */
    where: DictionaryWhereUniqueInput
  }

  /**
   * Dictionary updateMany
   */
  export type DictionaryUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Dictionaries.
     */
    data: XOR<DictionaryUpdateManyMutationInput, DictionaryUncheckedUpdateManyInput>
    /**
     * Filter which Dictionaries to update
     */
    where?: DictionaryWhereInput
    /**
     * Limit how many Dictionaries to update.
     */
    limit?: number
  }

  /**
   * Dictionary updateManyAndReturn
   */
  export type DictionaryUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * The data used to update Dictionaries.
     */
    data: XOR<DictionaryUpdateManyMutationInput, DictionaryUncheckedUpdateManyInput>
    /**
     * Filter which Dictionaries to update
     */
    where?: DictionaryWhereInput
    /**
     * Limit how many Dictionaries to update.
     */
    limit?: number
  }

  /**
   * Dictionary upsert
   */
  export type DictionaryUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * The filter to search for the Dictionary to update in case it exists.
     */
    where: DictionaryWhereUniqueInput
    /**
     * In case the Dictionary found by the `where` argument doesn't exist, create a new Dictionary with this data.
     */
    create: XOR<DictionaryCreateInput, DictionaryUncheckedCreateInput>
    /**
     * In case the Dictionary was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DictionaryUpdateInput, DictionaryUncheckedUpdateInput>
  }

  /**
   * Dictionary delete
   */
  export type DictionaryDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
    /**
     * Filter which Dictionary to delete.
     */
    where: DictionaryWhereUniqueInput
  }

  /**
   * Dictionary deleteMany
   */
  export type DictionaryDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Dictionaries to delete
     */
    where?: DictionaryWhereInput
    /**
     * Limit how many Dictionaries to delete.
     */
    limit?: number
  }

  /**
   * Dictionary without action
   */
  export type DictionaryDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Dictionary
     */
    select?: DictionarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the Dictionary
     */
    omit?: DictionaryOmit<ExtArgs> | null
  }


  /**
   * Model Meeting
   */

  export type AggregateMeeting = {
    _count: MeetingCountAggregateOutputType | null
    _avg: MeetingAvgAggregateOutputType | null
    _sum: MeetingSumAggregateOutputType | null
    _min: MeetingMinAggregateOutputType | null
    _max: MeetingMaxAggregateOutputType | null
  }

  export type MeetingAvgAggregateOutputType = {
    instanceNumber: number | null
  }

  export type MeetingSumAggregateOutputType = {
    instanceNumber: number | null
  }

  export type MeetingMinAggregateOutputType = {
    id: string | null
    title: string | null
    description: string | null
    startTime: Date | null
    endTime: Date | null
    timezone: string | null
    location: string | null
    type: $Enums.MeetingType | null
    status: $Enums.MeetingStatus | null
    qrCodeOnline: string | null
    qrCodeOffline: string | null
    creatorId: string | null
    seriesId: string | null
    instanceNumber: number | null
    isSeriesMaster: boolean | null
    hasCustomAttendees: boolean | null
    city: string | null
    enforceCheckinMode: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingMaxAggregateOutputType = {
    id: string | null
    title: string | null
    description: string | null
    startTime: Date | null
    endTime: Date | null
    timezone: string | null
    location: string | null
    type: $Enums.MeetingType | null
    status: $Enums.MeetingStatus | null
    qrCodeOnline: string | null
    qrCodeOffline: string | null
    creatorId: string | null
    seriesId: string | null
    instanceNumber: number | null
    isSeriesMaster: boolean | null
    hasCustomAttendees: boolean | null
    city: string | null
    enforceCheckinMode: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingCountAggregateOutputType = {
    id: number
    title: number
    description: number
    startTime: number
    endTime: number
    timezone: number
    location: number
    type: number
    status: number
    qrCodeOnline: number
    qrCodeOffline: number
    creatorId: number
    seriesId: number
    instanceNumber: number
    isSeriesMaster: number
    hasCustomAttendees: number
    city: number
    enforceCheckinMode: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingAvgAggregateInputType = {
    instanceNumber?: true
  }

  export type MeetingSumAggregateInputType = {
    instanceNumber?: true
  }

  export type MeetingMinAggregateInputType = {
    id?: true
    title?: true
    description?: true
    startTime?: true
    endTime?: true
    timezone?: true
    location?: true
    type?: true
    status?: true
    qrCodeOnline?: true
    qrCodeOffline?: true
    creatorId?: true
    seriesId?: true
    instanceNumber?: true
    isSeriesMaster?: true
    hasCustomAttendees?: true
    city?: true
    enforceCheckinMode?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingMaxAggregateInputType = {
    id?: true
    title?: true
    description?: true
    startTime?: true
    endTime?: true
    timezone?: true
    location?: true
    type?: true
    status?: true
    qrCodeOnline?: true
    qrCodeOffline?: true
    creatorId?: true
    seriesId?: true
    instanceNumber?: true
    isSeriesMaster?: true
    hasCustomAttendees?: true
    city?: true
    enforceCheckinMode?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingCountAggregateInputType = {
    id?: true
    title?: true
    description?: true
    startTime?: true
    endTime?: true
    timezone?: true
    location?: true
    type?: true
    status?: true
    qrCodeOnline?: true
    qrCodeOffline?: true
    creatorId?: true
    seriesId?: true
    instanceNumber?: true
    isSeriesMaster?: true
    hasCustomAttendees?: true
    city?: true
    enforceCheckinMode?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Meeting to aggregate.
     */
    where?: MeetingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Meetings to fetch.
     */
    orderBy?: MeetingOrderByWithRelationInput | MeetingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Meetings 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` Meetings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Meetings
    **/
    _count?: true | MeetingCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingMaxAggregateInputType
  }

  export type GetMeetingAggregateType<T extends MeetingAggregateArgs> = {
        [P in keyof T & keyof AggregateMeeting]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeeting[P]>
      : GetScalarType<T[P], AggregateMeeting[P]>
  }




  export type MeetingGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingWhereInput
    orderBy?: MeetingOrderByWithAggregationInput | MeetingOrderByWithAggregationInput[]
    by: MeetingScalarFieldEnum[] | MeetingScalarFieldEnum
    having?: MeetingScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingCountAggregateInputType | true
    _avg?: MeetingAvgAggregateInputType
    _sum?: MeetingSumAggregateInputType
    _min?: MeetingMinAggregateInputType
    _max?: MeetingMaxAggregateInputType
  }

  export type MeetingGroupByOutputType = {
    id: string
    title: string
    description: string | null
    startTime: Date
    endTime: Date
    timezone: string
    location: string | null
    type: $Enums.MeetingType
    status: $Enums.MeetingStatus
    qrCodeOnline: string | null
    qrCodeOffline: string | null
    creatorId: string
    seriesId: string | null
    instanceNumber: number | null
    isSeriesMaster: boolean
    hasCustomAttendees: boolean
    city: string | null
    enforceCheckinMode: boolean
    createdAt: Date
    updatedAt: Date
    _count: MeetingCountAggregateOutputType | null
    _avg: MeetingAvgAggregateOutputType | null
    _sum: MeetingSumAggregateOutputType | null
    _min: MeetingMinAggregateOutputType | null
    _max: MeetingMaxAggregateOutputType | null
  }

  type GetMeetingGroupByPayload<T extends MeetingGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingGroupByOutputType[P]>
        }
      >
    >


  export type MeetingSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    startTime?: boolean
    endTime?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    status?: boolean
    qrCodeOnline?: boolean
    qrCodeOffline?: boolean
    creatorId?: boolean
    seriesId?: boolean
    instanceNumber?: boolean
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: boolean
    enforceCheckinMode?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    attendances?: boolean | Meeting$attendancesArgs<ExtArgs>
    requiredAttendees?: boolean | Meeting$requiredAttendeesArgs<ExtArgs>
    externalAttendees?: boolean | Meeting$externalAttendeesArgs<ExtArgs>
    series?: boolean | Meeting$seriesArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    outlookBindings?: boolean | Meeting$outlookBindingsArgs<ExtArgs>
    agendaSections?: boolean | Meeting$agendaSectionsArgs<ExtArgs>
    attachments?: boolean | Meeting$attachmentsArgs<ExtArgs>
    _count?: boolean | MeetingCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meeting"]>

  export type MeetingSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    startTime?: boolean
    endTime?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    status?: boolean
    qrCodeOnline?: boolean
    qrCodeOffline?: boolean
    creatorId?: boolean
    seriesId?: boolean
    instanceNumber?: boolean
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: boolean
    enforceCheckinMode?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    series?: boolean | Meeting$seriesArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meeting"]>

  export type MeetingSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    startTime?: boolean
    endTime?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    status?: boolean
    qrCodeOnline?: boolean
    qrCodeOffline?: boolean
    creatorId?: boolean
    seriesId?: boolean
    instanceNumber?: boolean
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: boolean
    enforceCheckinMode?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    series?: boolean | Meeting$seriesArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meeting"]>

  export type MeetingSelectScalar = {
    id?: boolean
    title?: boolean
    description?: boolean
    startTime?: boolean
    endTime?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    status?: boolean
    qrCodeOnline?: boolean
    qrCodeOffline?: boolean
    creatorId?: boolean
    seriesId?: boolean
    instanceNumber?: boolean
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: boolean
    enforceCheckinMode?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "title" | "description" | "startTime" | "endTime" | "timezone" | "location" | "type" | "status" | "qrCodeOnline" | "qrCodeOffline" | "creatorId" | "seriesId" | "instanceNumber" | "isSeriesMaster" | "hasCustomAttendees" | "city" | "enforceCheckinMode" | "createdAt" | "updatedAt", ExtArgs["result"]["meeting"]>
  export type MeetingInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    attendances?: boolean | Meeting$attendancesArgs<ExtArgs>
    requiredAttendees?: boolean | Meeting$requiredAttendeesArgs<ExtArgs>
    externalAttendees?: boolean | Meeting$externalAttendeesArgs<ExtArgs>
    series?: boolean | Meeting$seriesArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    outlookBindings?: boolean | Meeting$outlookBindingsArgs<ExtArgs>
    agendaSections?: boolean | Meeting$agendaSectionsArgs<ExtArgs>
    attachments?: boolean | Meeting$attachmentsArgs<ExtArgs>
    _count?: boolean | MeetingCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type MeetingIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    series?: boolean | Meeting$seriesArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    series?: boolean | Meeting$seriesArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $MeetingPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Meeting"
    objects: {
      attendances: Prisma.$MeetingAttendancePayload<ExtArgs>[]
      requiredAttendees: Prisma.$MeetingRequiredAttendeePayload<ExtArgs>[]
      externalAttendees: Prisma.$MeetingExternalAttendeePayload<ExtArgs>[]
      series: Prisma.$MeetingSeriesPayload<ExtArgs> | null
      creator: Prisma.$UserPayload<ExtArgs>
      outlookBindings: Prisma.$OutlookMeetingBindingPayload<ExtArgs>[]
      agendaSections: Prisma.$MeetingAgendaSectionPayload<ExtArgs>[]
      attachments: Prisma.$MeetingAttachmentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      title: string
      description: string | null
      startTime: Date
      endTime: Date
      timezone: string
      location: string | null
      type: $Enums.MeetingType
      status: $Enums.MeetingStatus
      qrCodeOnline: string | null
      qrCodeOffline: string | null
      creatorId: string
      seriesId: string | null
      instanceNumber: number | null
      isSeriesMaster: boolean
      hasCustomAttendees: boolean
      city: string | null
      enforceCheckinMode: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meeting"]>
    composites: {}
  }

  type MeetingGetPayload<S extends boolean | null | undefined | MeetingDefaultArgs> = $Result.GetResult<Prisma.$MeetingPayload, S>

  type MeetingCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingCountAggregateInputType | true
    }

  export interface MeetingDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Meeting'], meta: { name: 'Meeting' } }
    /**
     * Find zero or one Meeting that matches the filter.
     * @param {MeetingFindUniqueArgs} args - Arguments to find a Meeting
     * @example
     * // Get one Meeting
     * const meeting = await prisma.meeting.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingFindUniqueArgs>(args: SelectSubset<T, MeetingFindUniqueArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Meeting that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingFindUniqueOrThrowArgs} args - Arguments to find a Meeting
     * @example
     * // Get one Meeting
     * const meeting = await prisma.meeting.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Meeting 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 {MeetingFindFirstArgs} args - Arguments to find a Meeting
     * @example
     * // Get one Meeting
     * const meeting = await prisma.meeting.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingFindFirstArgs>(args?: SelectSubset<T, MeetingFindFirstArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Meeting 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 {MeetingFindFirstOrThrowArgs} args - Arguments to find a Meeting
     * @example
     * // Get one Meeting
     * const meeting = await prisma.meeting.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Meetings 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 {MeetingFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Meetings
     * const meetings = await prisma.meeting.findMany()
     * 
     * // Get first 10 Meetings
     * const meetings = await prisma.meeting.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingWithIdOnly = await prisma.meeting.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingFindManyArgs>(args?: SelectSubset<T, MeetingFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Meeting.
     * @param {MeetingCreateArgs} args - Arguments to create a Meeting.
     * @example
     * // Create one Meeting
     * const Meeting = await prisma.meeting.create({
     *   data: {
     *     // ... data to create a Meeting
     *   }
     * })
     * 
     */
    create<T extends MeetingCreateArgs>(args: SelectSubset<T, MeetingCreateArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Meetings.
     * @param {MeetingCreateManyArgs} args - Arguments to create many Meetings.
     * @example
     * // Create many Meetings
     * const meeting = await prisma.meeting.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingCreateManyArgs>(args?: SelectSubset<T, MeetingCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Meetings and returns the data saved in the database.
     * @param {MeetingCreateManyAndReturnArgs} args - Arguments to create many Meetings.
     * @example
     * // Create many Meetings
     * const meeting = await prisma.meeting.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Meetings and only return the `id`
     * const meetingWithIdOnly = await prisma.meeting.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 MeetingCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Meeting.
     * @param {MeetingDeleteArgs} args - Arguments to delete one Meeting.
     * @example
     * // Delete one Meeting
     * const Meeting = await prisma.meeting.delete({
     *   where: {
     *     // ... filter to delete one Meeting
     *   }
     * })
     * 
     */
    delete<T extends MeetingDeleteArgs>(args: SelectSubset<T, MeetingDeleteArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Meeting.
     * @param {MeetingUpdateArgs} args - Arguments to update one Meeting.
     * @example
     * // Update one Meeting
     * const meeting = await prisma.meeting.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingUpdateArgs>(args: SelectSubset<T, MeetingUpdateArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Meetings.
     * @param {MeetingDeleteManyArgs} args - Arguments to filter Meetings to delete.
     * @example
     * // Delete a few Meetings
     * const { count } = await prisma.meeting.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingDeleteManyArgs>(args?: SelectSubset<T, MeetingDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Meetings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Meetings
     * const meeting = await prisma.meeting.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingUpdateManyArgs>(args: SelectSubset<T, MeetingUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Meetings and returns the data updated in the database.
     * @param {MeetingUpdateManyAndReturnArgs} args - Arguments to update many Meetings.
     * @example
     * // Update many Meetings
     * const meeting = await prisma.meeting.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Meetings and only return the `id`
     * const meetingWithIdOnly = await prisma.meeting.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 MeetingUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Meeting.
     * @param {MeetingUpsertArgs} args - Arguments to update or create a Meeting.
     * @example
     * // Update or create a Meeting
     * const meeting = await prisma.meeting.upsert({
     *   create: {
     *     // ... data to create a Meeting
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Meeting we want to update
     *   }
     * })
     */
    upsert<T extends MeetingUpsertArgs>(args: SelectSubset<T, MeetingUpsertArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Meetings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingCountArgs} args - Arguments to filter Meetings to count.
     * @example
     * // Count the number of Meetings
     * const count = await prisma.meeting.count({
     *   where: {
     *     // ... the filter for the Meetings we want to count
     *   }
     * })
    **/
    count<T extends MeetingCountArgs>(
      args?: Subset<T, MeetingCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Meeting.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAggregateArgs} 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 MeetingAggregateArgs>(args: Subset<T, MeetingAggregateArgs>): Prisma.PrismaPromise<GetMeetingAggregateType<T>>

    /**
     * Group by Meeting.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingGroupByArgs} 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 MeetingGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingGroupByArgs['orderBy'] }
        : { orderBy?: MeetingGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Meeting model
   */
  readonly fields: MeetingFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Meeting.
   * 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__MeetingClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    attendances<T extends Meeting$attendancesArgs<ExtArgs> = {}>(args?: Subset<T, Meeting$attendancesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    requiredAttendees<T extends Meeting$requiredAttendeesArgs<ExtArgs> = {}>(args?: Subset<T, Meeting$requiredAttendeesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    externalAttendees<T extends Meeting$externalAttendeesArgs<ExtArgs> = {}>(args?: Subset<T, Meeting$externalAttendeesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    series<T extends Meeting$seriesArgs<ExtArgs> = {}>(args?: Subset<T, Meeting$seriesArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    outlookBindings<T extends Meeting$outlookBindingsArgs<ExtArgs> = {}>(args?: Subset<T, Meeting$outlookBindingsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    agendaSections<T extends Meeting$agendaSectionsArgs<ExtArgs> = {}>(args?: Subset<T, Meeting$agendaSectionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    attachments<T extends Meeting$attachmentsArgs<ExtArgs> = {}>(args?: Subset<T, Meeting$attachmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Meeting model
   */
  interface MeetingFieldRefs {
    readonly id: FieldRef<"Meeting", 'String'>
    readonly title: FieldRef<"Meeting", 'String'>
    readonly description: FieldRef<"Meeting", 'String'>
    readonly startTime: FieldRef<"Meeting", 'DateTime'>
    readonly endTime: FieldRef<"Meeting", 'DateTime'>
    readonly timezone: FieldRef<"Meeting", 'String'>
    readonly location: FieldRef<"Meeting", 'String'>
    readonly type: FieldRef<"Meeting", 'MeetingType'>
    readonly status: FieldRef<"Meeting", 'MeetingStatus'>
    readonly qrCodeOnline: FieldRef<"Meeting", 'String'>
    readonly qrCodeOffline: FieldRef<"Meeting", 'String'>
    readonly creatorId: FieldRef<"Meeting", 'String'>
    readonly seriesId: FieldRef<"Meeting", 'String'>
    readonly instanceNumber: FieldRef<"Meeting", 'Int'>
    readonly isSeriesMaster: FieldRef<"Meeting", 'Boolean'>
    readonly hasCustomAttendees: FieldRef<"Meeting", 'Boolean'>
    readonly city: FieldRef<"Meeting", 'String'>
    readonly enforceCheckinMode: FieldRef<"Meeting", 'Boolean'>
    readonly createdAt: FieldRef<"Meeting", 'DateTime'>
    readonly updatedAt: FieldRef<"Meeting", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Meeting findUnique
   */
  export type MeetingFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * Filter, which Meeting to fetch.
     */
    where: MeetingWhereUniqueInput
  }

  /**
   * Meeting findUniqueOrThrow
   */
  export type MeetingFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * Filter, which Meeting to fetch.
     */
    where: MeetingWhereUniqueInput
  }

  /**
   * Meeting findFirst
   */
  export type MeetingFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * Filter, which Meeting to fetch.
     */
    where?: MeetingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Meetings to fetch.
     */
    orderBy?: MeetingOrderByWithRelationInput | MeetingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Meetings.
     */
    cursor?: MeetingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Meetings 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` Meetings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Meetings.
     */
    distinct?: MeetingScalarFieldEnum | MeetingScalarFieldEnum[]
  }

  /**
   * Meeting findFirstOrThrow
   */
  export type MeetingFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * Filter, which Meeting to fetch.
     */
    where?: MeetingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Meetings to fetch.
     */
    orderBy?: MeetingOrderByWithRelationInput | MeetingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Meetings.
     */
    cursor?: MeetingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Meetings 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` Meetings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Meetings.
     */
    distinct?: MeetingScalarFieldEnum | MeetingScalarFieldEnum[]
  }

  /**
   * Meeting findMany
   */
  export type MeetingFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * Filter, which Meetings to fetch.
     */
    where?: MeetingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Meetings to fetch.
     */
    orderBy?: MeetingOrderByWithRelationInput | MeetingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Meetings.
     */
    cursor?: MeetingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Meetings 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` Meetings.
     */
    skip?: number
    distinct?: MeetingScalarFieldEnum | MeetingScalarFieldEnum[]
  }

  /**
   * Meeting create
   */
  export type MeetingCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * The data needed to create a Meeting.
     */
    data: XOR<MeetingCreateInput, MeetingUncheckedCreateInput>
  }

  /**
   * Meeting createMany
   */
  export type MeetingCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Meetings.
     */
    data: MeetingCreateManyInput | MeetingCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Meeting createManyAndReturn
   */
  export type MeetingCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * The data used to create many Meetings.
     */
    data: MeetingCreateManyInput | MeetingCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Meeting update
   */
  export type MeetingUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * The data needed to update a Meeting.
     */
    data: XOR<MeetingUpdateInput, MeetingUncheckedUpdateInput>
    /**
     * Choose, which Meeting to update.
     */
    where: MeetingWhereUniqueInput
  }

  /**
   * Meeting updateMany
   */
  export type MeetingUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Meetings.
     */
    data: XOR<MeetingUpdateManyMutationInput, MeetingUncheckedUpdateManyInput>
    /**
     * Filter which Meetings to update
     */
    where?: MeetingWhereInput
    /**
     * Limit how many Meetings to update.
     */
    limit?: number
  }

  /**
   * Meeting updateManyAndReturn
   */
  export type MeetingUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * The data used to update Meetings.
     */
    data: XOR<MeetingUpdateManyMutationInput, MeetingUncheckedUpdateManyInput>
    /**
     * Filter which Meetings to update
     */
    where?: MeetingWhereInput
    /**
     * Limit how many Meetings to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Meeting upsert
   */
  export type MeetingUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * The filter to search for the Meeting to update in case it exists.
     */
    where: MeetingWhereUniqueInput
    /**
     * In case the Meeting found by the `where` argument doesn't exist, create a new Meeting with this data.
     */
    create: XOR<MeetingCreateInput, MeetingUncheckedCreateInput>
    /**
     * In case the Meeting was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingUpdateInput, MeetingUncheckedUpdateInput>
  }

  /**
   * Meeting delete
   */
  export type MeetingDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    /**
     * Filter which Meeting to delete.
     */
    where: MeetingWhereUniqueInput
  }

  /**
   * Meeting deleteMany
   */
  export type MeetingDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Meetings to delete
     */
    where?: MeetingWhereInput
    /**
     * Limit how many Meetings to delete.
     */
    limit?: number
  }

  /**
   * Meeting.attendances
   */
  export type Meeting$attendancesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    where?: MeetingAttendanceWhereInput
    orderBy?: MeetingAttendanceOrderByWithRelationInput | MeetingAttendanceOrderByWithRelationInput[]
    cursor?: MeetingAttendanceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttendanceScalarFieldEnum | MeetingAttendanceScalarFieldEnum[]
  }

  /**
   * Meeting.requiredAttendees
   */
  export type Meeting$requiredAttendeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    where?: MeetingRequiredAttendeeWhereInput
    orderBy?: MeetingRequiredAttendeeOrderByWithRelationInput | MeetingRequiredAttendeeOrderByWithRelationInput[]
    cursor?: MeetingRequiredAttendeeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingRequiredAttendeeScalarFieldEnum | MeetingRequiredAttendeeScalarFieldEnum[]
  }

  /**
   * Meeting.externalAttendees
   */
  export type Meeting$externalAttendeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    where?: MeetingExternalAttendeeWhereInput
    orderBy?: MeetingExternalAttendeeOrderByWithRelationInput | MeetingExternalAttendeeOrderByWithRelationInput[]
    cursor?: MeetingExternalAttendeeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingExternalAttendeeScalarFieldEnum | MeetingExternalAttendeeScalarFieldEnum[]
  }

  /**
   * Meeting.series
   */
  export type Meeting$seriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    where?: MeetingSeriesWhereInput
  }

  /**
   * Meeting.outlookBindings
   */
  export type Meeting$outlookBindingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    where?: OutlookMeetingBindingWhereInput
    orderBy?: OutlookMeetingBindingOrderByWithRelationInput | OutlookMeetingBindingOrderByWithRelationInput[]
    cursor?: OutlookMeetingBindingWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookMeetingBindingScalarFieldEnum | OutlookMeetingBindingScalarFieldEnum[]
  }

  /**
   * Meeting.agendaSections
   */
  export type Meeting$agendaSectionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    where?: MeetingAgendaSectionWhereInput
    orderBy?: MeetingAgendaSectionOrderByWithRelationInput | MeetingAgendaSectionOrderByWithRelationInput[]
    cursor?: MeetingAgendaSectionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaSectionScalarFieldEnum | MeetingAgendaSectionScalarFieldEnum[]
  }

  /**
   * Meeting.attachments
   */
  export type Meeting$attachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    where?: MeetingAttachmentWhereInput
    orderBy?: MeetingAttachmentOrderByWithRelationInput | MeetingAttachmentOrderByWithRelationInput[]
    cursor?: MeetingAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttachmentScalarFieldEnum | MeetingAttachmentScalarFieldEnum[]
  }

  /**
   * Meeting without action
   */
  export type MeetingDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
  }


  /**
   * Model MeetingSeries
   */

  export type AggregateMeetingSeries = {
    _count: MeetingSeriesCountAggregateOutputType | null
    _avg: MeetingSeriesAvgAggregateOutputType | null
    _sum: MeetingSeriesSumAggregateOutputType | null
    _min: MeetingSeriesMinAggregateOutputType | null
    _max: MeetingSeriesMaxAggregateOutputType | null
  }

  export type MeetingSeriesAvgAggregateOutputType = {
    frequency: number | null
    maxOccurrences: number | null
  }

  export type MeetingSeriesSumAggregateOutputType = {
    frequency: number | null
    maxOccurrences: number | null
  }

  export type MeetingSeriesMinAggregateOutputType = {
    id: string | null
    title: string | null
    description: string | null
    pattern: $Enums.RecurrencePattern | null
    frequency: number | null
    startDate: Date | null
    endDate: Date | null
    maxOccurrences: number | null
    timezone: string | null
    location: string | null
    type: $Enums.MeetingType | null
    creatorId: string | null
    isActive: boolean | null
    city: string | null
    enforceCheckinMode: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingSeriesMaxAggregateOutputType = {
    id: string | null
    title: string | null
    description: string | null
    pattern: $Enums.RecurrencePattern | null
    frequency: number | null
    startDate: Date | null
    endDate: Date | null
    maxOccurrences: number | null
    timezone: string | null
    location: string | null
    type: $Enums.MeetingType | null
    creatorId: string | null
    isActive: boolean | null
    city: string | null
    enforceCheckinMode: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingSeriesCountAggregateOutputType = {
    id: number
    title: number
    description: number
    pattern: number
    frequency: number
    startDate: number
    endDate: number
    maxOccurrences: number
    timezone: number
    location: number
    type: number
    creatorId: number
    isActive: number
    city: number
    enforceCheckinMode: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingSeriesAvgAggregateInputType = {
    frequency?: true
    maxOccurrences?: true
  }

  export type MeetingSeriesSumAggregateInputType = {
    frequency?: true
    maxOccurrences?: true
  }

  export type MeetingSeriesMinAggregateInputType = {
    id?: true
    title?: true
    description?: true
    pattern?: true
    frequency?: true
    startDate?: true
    endDate?: true
    maxOccurrences?: true
    timezone?: true
    location?: true
    type?: true
    creatorId?: true
    isActive?: true
    city?: true
    enforceCheckinMode?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingSeriesMaxAggregateInputType = {
    id?: true
    title?: true
    description?: true
    pattern?: true
    frequency?: true
    startDate?: true
    endDate?: true
    maxOccurrences?: true
    timezone?: true
    location?: true
    type?: true
    creatorId?: true
    isActive?: true
    city?: true
    enforceCheckinMode?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingSeriesCountAggregateInputType = {
    id?: true
    title?: true
    description?: true
    pattern?: true
    frequency?: true
    startDate?: true
    endDate?: true
    maxOccurrences?: true
    timezone?: true
    location?: true
    type?: true
    creatorId?: true
    isActive?: true
    city?: true
    enforceCheckinMode?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingSeriesAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingSeries to aggregate.
     */
    where?: MeetingSeriesWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeries to fetch.
     */
    orderBy?: MeetingSeriesOrderByWithRelationInput | MeetingSeriesOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingSeriesWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeries 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` MeetingSeries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingSeries
    **/
    _count?: true | MeetingSeriesCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingSeriesAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingSeriesSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingSeriesMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingSeriesMaxAggregateInputType
  }

  export type GetMeetingSeriesAggregateType<T extends MeetingSeriesAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingSeries]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingSeries[P]>
      : GetScalarType<T[P], AggregateMeetingSeries[P]>
  }




  export type MeetingSeriesGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingSeriesWhereInput
    orderBy?: MeetingSeriesOrderByWithAggregationInput | MeetingSeriesOrderByWithAggregationInput[]
    by: MeetingSeriesScalarFieldEnum[] | MeetingSeriesScalarFieldEnum
    having?: MeetingSeriesScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingSeriesCountAggregateInputType | true
    _avg?: MeetingSeriesAvgAggregateInputType
    _sum?: MeetingSeriesSumAggregateInputType
    _min?: MeetingSeriesMinAggregateInputType
    _max?: MeetingSeriesMaxAggregateInputType
  }

  export type MeetingSeriesGroupByOutputType = {
    id: string
    title: string
    description: string | null
    pattern: $Enums.RecurrencePattern
    frequency: number
    startDate: Date
    endDate: Date | null
    maxOccurrences: number | null
    timezone: string
    location: string | null
    type: $Enums.MeetingType
    creatorId: string
    isActive: boolean
    city: string | null
    enforceCheckinMode: boolean
    createdAt: Date
    updatedAt: Date
    _count: MeetingSeriesCountAggregateOutputType | null
    _avg: MeetingSeriesAvgAggregateOutputType | null
    _sum: MeetingSeriesSumAggregateOutputType | null
    _min: MeetingSeriesMinAggregateOutputType | null
    _max: MeetingSeriesMaxAggregateOutputType | null
  }

  type GetMeetingSeriesGroupByPayload<T extends MeetingSeriesGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingSeriesGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingSeriesGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingSeriesGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingSeriesGroupByOutputType[P]>
        }
      >
    >


  export type MeetingSeriesSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    pattern?: boolean
    frequency?: boolean
    startDate?: boolean
    endDate?: boolean
    maxOccurrences?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    creatorId?: boolean
    isActive?: boolean
    city?: boolean
    enforceCheckinMode?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    meetings?: boolean | MeetingSeries$meetingsArgs<ExtArgs>
    outlookBindings?: boolean | MeetingSeries$outlookBindingsArgs<ExtArgs>
    attendeePreferences?: boolean | MeetingSeries$attendeePreferencesArgs<ExtArgs>
    attendeeExceptions?: boolean | MeetingSeries$attendeeExceptionsArgs<ExtArgs>
    _count?: boolean | MeetingSeriesCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeries"]>

  export type MeetingSeriesSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    pattern?: boolean
    frequency?: boolean
    startDate?: boolean
    endDate?: boolean
    maxOccurrences?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    creatorId?: boolean
    isActive?: boolean
    city?: boolean
    enforceCheckinMode?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeries"]>

  export type MeetingSeriesSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    pattern?: boolean
    frequency?: boolean
    startDate?: boolean
    endDate?: boolean
    maxOccurrences?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    creatorId?: boolean
    isActive?: boolean
    city?: boolean
    enforceCheckinMode?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeries"]>

  export type MeetingSeriesSelectScalar = {
    id?: boolean
    title?: boolean
    description?: boolean
    pattern?: boolean
    frequency?: boolean
    startDate?: boolean
    endDate?: boolean
    maxOccurrences?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    creatorId?: boolean
    isActive?: boolean
    city?: boolean
    enforceCheckinMode?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingSeriesOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "title" | "description" | "pattern" | "frequency" | "startDate" | "endDate" | "maxOccurrences" | "timezone" | "location" | "type" | "creatorId" | "isActive" | "city" | "enforceCheckinMode" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingSeries"]>
  export type MeetingSeriesInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    meetings?: boolean | MeetingSeries$meetingsArgs<ExtArgs>
    outlookBindings?: boolean | MeetingSeries$outlookBindingsArgs<ExtArgs>
    attendeePreferences?: boolean | MeetingSeries$attendeePreferencesArgs<ExtArgs>
    attendeeExceptions?: boolean | MeetingSeries$attendeeExceptionsArgs<ExtArgs>
    _count?: boolean | MeetingSeriesCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type MeetingSeriesIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingSeriesIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $MeetingSeriesPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingSeries"
    objects: {
      creator: Prisma.$UserPayload<ExtArgs>
      meetings: Prisma.$MeetingPayload<ExtArgs>[]
      outlookBindings: Prisma.$OutlookMeetingBindingPayload<ExtArgs>[]
      attendeePreferences: Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>[]
      attendeeExceptions: Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      title: string
      description: string | null
      pattern: $Enums.RecurrencePattern
      frequency: number
      startDate: Date
      endDate: Date | null
      maxOccurrences: number | null
      timezone: string
      location: string | null
      type: $Enums.MeetingType
      creatorId: string
      isActive: boolean
      city: string | null
      enforceCheckinMode: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingSeries"]>
    composites: {}
  }

  type MeetingSeriesGetPayload<S extends boolean | null | undefined | MeetingSeriesDefaultArgs> = $Result.GetResult<Prisma.$MeetingSeriesPayload, S>

  type MeetingSeriesCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingSeriesFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingSeriesCountAggregateInputType | true
    }

  export interface MeetingSeriesDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingSeries'], meta: { name: 'MeetingSeries' } }
    /**
     * Find zero or one MeetingSeries that matches the filter.
     * @param {MeetingSeriesFindUniqueArgs} args - Arguments to find a MeetingSeries
     * @example
     * // Get one MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingSeriesFindUniqueArgs>(args: SelectSubset<T, MeetingSeriesFindUniqueArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingSeries that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingSeriesFindUniqueOrThrowArgs} args - Arguments to find a MeetingSeries
     * @example
     * // Get one MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingSeriesFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingSeriesFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingSeries 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 {MeetingSeriesFindFirstArgs} args - Arguments to find a MeetingSeries
     * @example
     * // Get one MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingSeriesFindFirstArgs>(args?: SelectSubset<T, MeetingSeriesFindFirstArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingSeries 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 {MeetingSeriesFindFirstOrThrowArgs} args - Arguments to find a MeetingSeries
     * @example
     * // Get one MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingSeriesFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingSeriesFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingSeries 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 {MeetingSeriesFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.findMany()
     * 
     * // Get first 10 MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingSeriesWithIdOnly = await prisma.meetingSeries.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingSeriesFindManyArgs>(args?: SelectSubset<T, MeetingSeriesFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingSeries.
     * @param {MeetingSeriesCreateArgs} args - Arguments to create a MeetingSeries.
     * @example
     * // Create one MeetingSeries
     * const MeetingSeries = await prisma.meetingSeries.create({
     *   data: {
     *     // ... data to create a MeetingSeries
     *   }
     * })
     * 
     */
    create<T extends MeetingSeriesCreateArgs>(args: SelectSubset<T, MeetingSeriesCreateArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingSeries.
     * @param {MeetingSeriesCreateManyArgs} args - Arguments to create many MeetingSeries.
     * @example
     * // Create many MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingSeriesCreateManyArgs>(args?: SelectSubset<T, MeetingSeriesCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingSeries and returns the data saved in the database.
     * @param {MeetingSeriesCreateManyAndReturnArgs} args - Arguments to create many MeetingSeries.
     * @example
     * // Create many MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingSeries and only return the `id`
     * const meetingSeriesWithIdOnly = await prisma.meetingSeries.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 MeetingSeriesCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingSeriesCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingSeries.
     * @param {MeetingSeriesDeleteArgs} args - Arguments to delete one MeetingSeries.
     * @example
     * // Delete one MeetingSeries
     * const MeetingSeries = await prisma.meetingSeries.delete({
     *   where: {
     *     // ... filter to delete one MeetingSeries
     *   }
     * })
     * 
     */
    delete<T extends MeetingSeriesDeleteArgs>(args: SelectSubset<T, MeetingSeriesDeleteArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingSeries.
     * @param {MeetingSeriesUpdateArgs} args - Arguments to update one MeetingSeries.
     * @example
     * // Update one MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingSeriesUpdateArgs>(args: SelectSubset<T, MeetingSeriesUpdateArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingSeries.
     * @param {MeetingSeriesDeleteManyArgs} args - Arguments to filter MeetingSeries to delete.
     * @example
     * // Delete a few MeetingSeries
     * const { count } = await prisma.meetingSeries.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingSeriesDeleteManyArgs>(args?: SelectSubset<T, MeetingSeriesDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingSeries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingSeriesUpdateManyArgs>(args: SelectSubset<T, MeetingSeriesUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingSeries and returns the data updated in the database.
     * @param {MeetingSeriesUpdateManyAndReturnArgs} args - Arguments to update many MeetingSeries.
     * @example
     * // Update many MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingSeries and only return the `id`
     * const meetingSeriesWithIdOnly = await prisma.meetingSeries.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 MeetingSeriesUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingSeriesUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingSeries.
     * @param {MeetingSeriesUpsertArgs} args - Arguments to update or create a MeetingSeries.
     * @example
     * // Update or create a MeetingSeries
     * const meetingSeries = await prisma.meetingSeries.upsert({
     *   create: {
     *     // ... data to create a MeetingSeries
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingSeries we want to update
     *   }
     * })
     */
    upsert<T extends MeetingSeriesUpsertArgs>(args: SelectSubset<T, MeetingSeriesUpsertArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingSeries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesCountArgs} args - Arguments to filter MeetingSeries to count.
     * @example
     * // Count the number of MeetingSeries
     * const count = await prisma.meetingSeries.count({
     *   where: {
     *     // ... the filter for the MeetingSeries we want to count
     *   }
     * })
    **/
    count<T extends MeetingSeriesCountArgs>(
      args?: Subset<T, MeetingSeriesCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingSeriesCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingSeries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAggregateArgs} 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 MeetingSeriesAggregateArgs>(args: Subset<T, MeetingSeriesAggregateArgs>): Prisma.PrismaPromise<GetMeetingSeriesAggregateType<T>>

    /**
     * Group by MeetingSeries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesGroupByArgs} 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 MeetingSeriesGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingSeriesGroupByArgs['orderBy'] }
        : { orderBy?: MeetingSeriesGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingSeriesGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingSeriesGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingSeries model
   */
  readonly fields: MeetingSeriesFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingSeries.
   * 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__MeetingSeriesClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    meetings<T extends MeetingSeries$meetingsArgs<ExtArgs> = {}>(args?: Subset<T, MeetingSeries$meetingsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    outlookBindings<T extends MeetingSeries$outlookBindingsArgs<ExtArgs> = {}>(args?: Subset<T, MeetingSeries$outlookBindingsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    attendeePreferences<T extends MeetingSeries$attendeePreferencesArgs<ExtArgs> = {}>(args?: Subset<T, MeetingSeries$attendeePreferencesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    attendeeExceptions<T extends MeetingSeries$attendeeExceptionsArgs<ExtArgs> = {}>(args?: Subset<T, MeetingSeries$attendeeExceptionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingSeries model
   */
  interface MeetingSeriesFieldRefs {
    readonly id: FieldRef<"MeetingSeries", 'String'>
    readonly title: FieldRef<"MeetingSeries", 'String'>
    readonly description: FieldRef<"MeetingSeries", 'String'>
    readonly pattern: FieldRef<"MeetingSeries", 'RecurrencePattern'>
    readonly frequency: FieldRef<"MeetingSeries", 'Int'>
    readonly startDate: FieldRef<"MeetingSeries", 'DateTime'>
    readonly endDate: FieldRef<"MeetingSeries", 'DateTime'>
    readonly maxOccurrences: FieldRef<"MeetingSeries", 'Int'>
    readonly timezone: FieldRef<"MeetingSeries", 'String'>
    readonly location: FieldRef<"MeetingSeries", 'String'>
    readonly type: FieldRef<"MeetingSeries", 'MeetingType'>
    readonly creatorId: FieldRef<"MeetingSeries", 'String'>
    readonly isActive: FieldRef<"MeetingSeries", 'Boolean'>
    readonly city: FieldRef<"MeetingSeries", 'String'>
    readonly enforceCheckinMode: FieldRef<"MeetingSeries", 'Boolean'>
    readonly createdAt: FieldRef<"MeetingSeries", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingSeries", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingSeries findUnique
   */
  export type MeetingSeriesFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeries to fetch.
     */
    where: MeetingSeriesWhereUniqueInput
  }

  /**
   * MeetingSeries findUniqueOrThrow
   */
  export type MeetingSeriesFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeries to fetch.
     */
    where: MeetingSeriesWhereUniqueInput
  }

  /**
   * MeetingSeries findFirst
   */
  export type MeetingSeriesFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeries to fetch.
     */
    where?: MeetingSeriesWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeries to fetch.
     */
    orderBy?: MeetingSeriesOrderByWithRelationInput | MeetingSeriesOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingSeries.
     */
    cursor?: MeetingSeriesWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeries 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` MeetingSeries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingSeries.
     */
    distinct?: MeetingSeriesScalarFieldEnum | MeetingSeriesScalarFieldEnum[]
  }

  /**
   * MeetingSeries findFirstOrThrow
   */
  export type MeetingSeriesFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeries to fetch.
     */
    where?: MeetingSeriesWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeries to fetch.
     */
    orderBy?: MeetingSeriesOrderByWithRelationInput | MeetingSeriesOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingSeries.
     */
    cursor?: MeetingSeriesWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeries 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` MeetingSeries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingSeries.
     */
    distinct?: MeetingSeriesScalarFieldEnum | MeetingSeriesScalarFieldEnum[]
  }

  /**
   * MeetingSeries findMany
   */
  export type MeetingSeriesFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeries to fetch.
     */
    where?: MeetingSeriesWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeries to fetch.
     */
    orderBy?: MeetingSeriesOrderByWithRelationInput | MeetingSeriesOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingSeries.
     */
    cursor?: MeetingSeriesWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeries 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` MeetingSeries.
     */
    skip?: number
    distinct?: MeetingSeriesScalarFieldEnum | MeetingSeriesScalarFieldEnum[]
  }

  /**
   * MeetingSeries create
   */
  export type MeetingSeriesCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingSeries.
     */
    data: XOR<MeetingSeriesCreateInput, MeetingSeriesUncheckedCreateInput>
  }

  /**
   * MeetingSeries createMany
   */
  export type MeetingSeriesCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingSeries.
     */
    data: MeetingSeriesCreateManyInput | MeetingSeriesCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingSeries createManyAndReturn
   */
  export type MeetingSeriesCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingSeries.
     */
    data: MeetingSeriesCreateManyInput | MeetingSeriesCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingSeries update
   */
  export type MeetingSeriesUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingSeries.
     */
    data: XOR<MeetingSeriesUpdateInput, MeetingSeriesUncheckedUpdateInput>
    /**
     * Choose, which MeetingSeries to update.
     */
    where: MeetingSeriesWhereUniqueInput
  }

  /**
   * MeetingSeries updateMany
   */
  export type MeetingSeriesUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingSeries.
     */
    data: XOR<MeetingSeriesUpdateManyMutationInput, MeetingSeriesUncheckedUpdateManyInput>
    /**
     * Filter which MeetingSeries to update
     */
    where?: MeetingSeriesWhereInput
    /**
     * Limit how many MeetingSeries to update.
     */
    limit?: number
  }

  /**
   * MeetingSeries updateManyAndReturn
   */
  export type MeetingSeriesUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * The data used to update MeetingSeries.
     */
    data: XOR<MeetingSeriesUpdateManyMutationInput, MeetingSeriesUncheckedUpdateManyInput>
    /**
     * Filter which MeetingSeries to update
     */
    where?: MeetingSeriesWhereInput
    /**
     * Limit how many MeetingSeries to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingSeries upsert
   */
  export type MeetingSeriesUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingSeries to update in case it exists.
     */
    where: MeetingSeriesWhereUniqueInput
    /**
     * In case the MeetingSeries found by the `where` argument doesn't exist, create a new MeetingSeries with this data.
     */
    create: XOR<MeetingSeriesCreateInput, MeetingSeriesUncheckedCreateInput>
    /**
     * In case the MeetingSeries was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingSeriesUpdateInput, MeetingSeriesUncheckedUpdateInput>
  }

  /**
   * MeetingSeries delete
   */
  export type MeetingSeriesDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    /**
     * Filter which MeetingSeries to delete.
     */
    where: MeetingSeriesWhereUniqueInput
  }

  /**
   * MeetingSeries deleteMany
   */
  export type MeetingSeriesDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingSeries to delete
     */
    where?: MeetingSeriesWhereInput
    /**
     * Limit how many MeetingSeries to delete.
     */
    limit?: number
  }

  /**
   * MeetingSeries.meetings
   */
  export type MeetingSeries$meetingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    where?: MeetingWhereInput
    orderBy?: MeetingOrderByWithRelationInput | MeetingOrderByWithRelationInput[]
    cursor?: MeetingWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingScalarFieldEnum | MeetingScalarFieldEnum[]
  }

  /**
   * MeetingSeries.outlookBindings
   */
  export type MeetingSeries$outlookBindingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    where?: OutlookMeetingBindingWhereInput
    orderBy?: OutlookMeetingBindingOrderByWithRelationInput | OutlookMeetingBindingOrderByWithRelationInput[]
    cursor?: OutlookMeetingBindingWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookMeetingBindingScalarFieldEnum | OutlookMeetingBindingScalarFieldEnum[]
  }

  /**
   * MeetingSeries.attendeePreferences
   */
  export type MeetingSeries$attendeePreferencesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    where?: MeetingSeriesAttendeePreferenceWhereInput
    orderBy?: MeetingSeriesAttendeePreferenceOrderByWithRelationInput | MeetingSeriesAttendeePreferenceOrderByWithRelationInput[]
    cursor?: MeetingSeriesAttendeePreferenceWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingSeriesAttendeePreferenceScalarFieldEnum | MeetingSeriesAttendeePreferenceScalarFieldEnum[]
  }

  /**
   * MeetingSeries.attendeeExceptions
   */
  export type MeetingSeries$attendeeExceptionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    where?: MeetingSeriesAttendeeExceptionWhereInput
    orderBy?: MeetingSeriesAttendeeExceptionOrderByWithRelationInput | MeetingSeriesAttendeeExceptionOrderByWithRelationInput[]
    cursor?: MeetingSeriesAttendeeExceptionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingSeriesAttendeeExceptionScalarFieldEnum | MeetingSeriesAttendeeExceptionScalarFieldEnum[]
  }

  /**
   * MeetingSeries without action
   */
  export type MeetingSeriesDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAttendance
   */

  export type AggregateMeetingAttendance = {
    _count: MeetingAttendanceCountAggregateOutputType | null
    _min: MeetingAttendanceMinAggregateOutputType | null
    _max: MeetingAttendanceMaxAggregateOutputType | null
  }

  export type MeetingAttendanceMinAggregateOutputType = {
    id: string | null
    userId: string | null
    meetingId: string | null
    status: $Enums.AttendanceStatus | null
    checkinTime: Date | null
    checkoutTime: Date | null
    isLate: boolean | null
    isEarlyLeave: boolean | null
    notes: string | null
    checkinType: $Enums.CheckinType | null
    deviceId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    meetingId: string | null
    status: $Enums.AttendanceStatus | null
    checkinTime: Date | null
    checkoutTime: Date | null
    isLate: boolean | null
    isEarlyLeave: boolean | null
    notes: string | null
    checkinType: $Enums.CheckinType | null
    deviceId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceCountAggregateOutputType = {
    id: number
    userId: number
    meetingId: number
    status: number
    checkinTime: number
    checkoutTime: number
    isLate: number
    isEarlyLeave: number
    notes: number
    checkinType: number
    deviceId: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingAttendanceMinAggregateInputType = {
    id?: true
    userId?: true
    meetingId?: true
    status?: true
    checkinTime?: true
    checkoutTime?: true
    isLate?: true
    isEarlyLeave?: true
    notes?: true
    checkinType?: true
    deviceId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceMaxAggregateInputType = {
    id?: true
    userId?: true
    meetingId?: true
    status?: true
    checkinTime?: true
    checkoutTime?: true
    isLate?: true
    isEarlyLeave?: true
    notes?: true
    checkinType?: true
    deviceId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceCountAggregateInputType = {
    id?: true
    userId?: true
    meetingId?: true
    status?: true
    checkinTime?: true
    checkoutTime?: true
    isLate?: true
    isEarlyLeave?: true
    notes?: true
    checkinType?: true
    deviceId?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingAttendanceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendance to aggregate.
     */
    where?: MeetingAttendanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendances to fetch.
     */
    orderBy?: MeetingAttendanceOrderByWithRelationInput | MeetingAttendanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAttendanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendances 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` MeetingAttendances.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAttendances
    **/
    _count?: true | MeetingAttendanceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAttendanceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAttendanceMaxAggregateInputType
  }

  export type GetMeetingAttendanceAggregateType<T extends MeetingAttendanceAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAttendance]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAttendance[P]>
      : GetScalarType<T[P], AggregateMeetingAttendance[P]>
  }




  export type MeetingAttendanceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceWhereInput
    orderBy?: MeetingAttendanceOrderByWithAggregationInput | MeetingAttendanceOrderByWithAggregationInput[]
    by: MeetingAttendanceScalarFieldEnum[] | MeetingAttendanceScalarFieldEnum
    having?: MeetingAttendanceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAttendanceCountAggregateInputType | true
    _min?: MeetingAttendanceMinAggregateInputType
    _max?: MeetingAttendanceMaxAggregateInputType
  }

  export type MeetingAttendanceGroupByOutputType = {
    id: string
    userId: string
    meetingId: string
    status: $Enums.AttendanceStatus
    checkinTime: Date | null
    checkoutTime: Date | null
    isLate: boolean
    isEarlyLeave: boolean
    notes: string | null
    checkinType: $Enums.CheckinType | null
    deviceId: string | null
    createdAt: Date
    updatedAt: Date
    _count: MeetingAttendanceCountAggregateOutputType | null
    _min: MeetingAttendanceMinAggregateOutputType | null
    _max: MeetingAttendanceMaxAggregateOutputType | null
  }

  type GetMeetingAttendanceGroupByPayload<T extends MeetingAttendanceGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAttendanceGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAttendanceGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAttendanceGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAttendanceGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAttendanceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    meetingId?: boolean
    status?: boolean
    checkinTime?: boolean
    checkoutTime?: boolean
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: boolean
    checkinType?: boolean
    deviceId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendance"]>

  export type MeetingAttendanceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    meetingId?: boolean
    status?: boolean
    checkinTime?: boolean
    checkoutTime?: boolean
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: boolean
    checkinType?: boolean
    deviceId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendance"]>

  export type MeetingAttendanceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    meetingId?: boolean
    status?: boolean
    checkinTime?: boolean
    checkoutTime?: boolean
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: boolean
    checkinType?: boolean
    deviceId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendance"]>

  export type MeetingAttendanceSelectScalar = {
    id?: boolean
    userId?: boolean
    meetingId?: boolean
    status?: boolean
    checkinTime?: boolean
    checkoutTime?: boolean
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: boolean
    checkinType?: boolean
    deviceId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingAttendanceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "meetingId" | "status" | "checkinTime" | "checkoutTime" | "isLate" | "isEarlyLeave" | "notes" | "checkinType" | "deviceId" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingAttendance"]>
  export type MeetingAttendanceInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $MeetingAttendancePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAttendance"
    objects: {
      meeting: Prisma.$MeetingPayload<ExtArgs>
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      meetingId: string
      status: $Enums.AttendanceStatus
      checkinTime: Date | null
      checkoutTime: Date | null
      isLate: boolean
      isEarlyLeave: boolean
      notes: string | null
      checkinType: $Enums.CheckinType | null
      deviceId: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingAttendance"]>
    composites: {}
  }

  type MeetingAttendanceGetPayload<S extends boolean | null | undefined | MeetingAttendanceDefaultArgs> = $Result.GetResult<Prisma.$MeetingAttendancePayload, S>

  type MeetingAttendanceCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAttendanceFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAttendanceCountAggregateInputType | true
    }

  export interface MeetingAttendanceDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAttendance'], meta: { name: 'MeetingAttendance' } }
    /**
     * Find zero or one MeetingAttendance that matches the filter.
     * @param {MeetingAttendanceFindUniqueArgs} args - Arguments to find a MeetingAttendance
     * @example
     * // Get one MeetingAttendance
     * const meetingAttendance = await prisma.meetingAttendance.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAttendanceFindUniqueArgs>(args: SelectSubset<T, MeetingAttendanceFindUniqueArgs<ExtArgs>>): Prisma__MeetingAttendanceClient<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAttendance that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAttendanceFindUniqueOrThrowArgs} args - Arguments to find a MeetingAttendance
     * @example
     * // Get one MeetingAttendance
     * const meetingAttendance = await prisma.meetingAttendance.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAttendanceFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAttendanceFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceClient<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendance 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 {MeetingAttendanceFindFirstArgs} args - Arguments to find a MeetingAttendance
     * @example
     * // Get one MeetingAttendance
     * const meetingAttendance = await prisma.meetingAttendance.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAttendanceFindFirstArgs>(args?: SelectSubset<T, MeetingAttendanceFindFirstArgs<ExtArgs>>): Prisma__MeetingAttendanceClient<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendance 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 {MeetingAttendanceFindFirstOrThrowArgs} args - Arguments to find a MeetingAttendance
     * @example
     * // Get one MeetingAttendance
     * const meetingAttendance = await prisma.meetingAttendance.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAttendanceFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAttendanceFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceClient<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAttendances 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 {MeetingAttendanceFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAttendances
     * const meetingAttendances = await prisma.meetingAttendance.findMany()
     * 
     * // Get first 10 MeetingAttendances
     * const meetingAttendances = await prisma.meetingAttendance.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAttendanceWithIdOnly = await prisma.meetingAttendance.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAttendanceFindManyArgs>(args?: SelectSubset<T, MeetingAttendanceFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAttendance.
     * @param {MeetingAttendanceCreateArgs} args - Arguments to create a MeetingAttendance.
     * @example
     * // Create one MeetingAttendance
     * const MeetingAttendance = await prisma.meetingAttendance.create({
     *   data: {
     *     // ... data to create a MeetingAttendance
     *   }
     * })
     * 
     */
    create<T extends MeetingAttendanceCreateArgs>(args: SelectSubset<T, MeetingAttendanceCreateArgs<ExtArgs>>): Prisma__MeetingAttendanceClient<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAttendances.
     * @param {MeetingAttendanceCreateManyArgs} args - Arguments to create many MeetingAttendances.
     * @example
     * // Create many MeetingAttendances
     * const meetingAttendance = await prisma.meetingAttendance.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAttendanceCreateManyArgs>(args?: SelectSubset<T, MeetingAttendanceCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAttendances and returns the data saved in the database.
     * @param {MeetingAttendanceCreateManyAndReturnArgs} args - Arguments to create many MeetingAttendances.
     * @example
     * // Create many MeetingAttendances
     * const meetingAttendance = await prisma.meetingAttendance.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAttendances and only return the `id`
     * const meetingAttendanceWithIdOnly = await prisma.meetingAttendance.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 MeetingAttendanceCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAttendanceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAttendance.
     * @param {MeetingAttendanceDeleteArgs} args - Arguments to delete one MeetingAttendance.
     * @example
     * // Delete one MeetingAttendance
     * const MeetingAttendance = await prisma.meetingAttendance.delete({
     *   where: {
     *     // ... filter to delete one MeetingAttendance
     *   }
     * })
     * 
     */
    delete<T extends MeetingAttendanceDeleteArgs>(args: SelectSubset<T, MeetingAttendanceDeleteArgs<ExtArgs>>): Prisma__MeetingAttendanceClient<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAttendance.
     * @param {MeetingAttendanceUpdateArgs} args - Arguments to update one MeetingAttendance.
     * @example
     * // Update one MeetingAttendance
     * const meetingAttendance = await prisma.meetingAttendance.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAttendanceUpdateArgs>(args: SelectSubset<T, MeetingAttendanceUpdateArgs<ExtArgs>>): Prisma__MeetingAttendanceClient<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAttendances.
     * @param {MeetingAttendanceDeleteManyArgs} args - Arguments to filter MeetingAttendances to delete.
     * @example
     * // Delete a few MeetingAttendances
     * const { count } = await prisma.meetingAttendance.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAttendanceDeleteManyArgs>(args?: SelectSubset<T, MeetingAttendanceDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendances.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAttendances
     * const meetingAttendance = await prisma.meetingAttendance.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAttendanceUpdateManyArgs>(args: SelectSubset<T, MeetingAttendanceUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendances and returns the data updated in the database.
     * @param {MeetingAttendanceUpdateManyAndReturnArgs} args - Arguments to update many MeetingAttendances.
     * @example
     * // Update many MeetingAttendances
     * const meetingAttendance = await prisma.meetingAttendance.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAttendances and only return the `id`
     * const meetingAttendanceWithIdOnly = await prisma.meetingAttendance.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 MeetingAttendanceUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAttendanceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAttendance.
     * @param {MeetingAttendanceUpsertArgs} args - Arguments to update or create a MeetingAttendance.
     * @example
     * // Update or create a MeetingAttendance
     * const meetingAttendance = await prisma.meetingAttendance.upsert({
     *   create: {
     *     // ... data to create a MeetingAttendance
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAttendance we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAttendanceUpsertArgs>(args: SelectSubset<T, MeetingAttendanceUpsertArgs<ExtArgs>>): Prisma__MeetingAttendanceClient<$Result.GetResult<Prisma.$MeetingAttendancePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAttendances.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceCountArgs} args - Arguments to filter MeetingAttendances to count.
     * @example
     * // Count the number of MeetingAttendances
     * const count = await prisma.meetingAttendance.count({
     *   where: {
     *     // ... the filter for the MeetingAttendances we want to count
     *   }
     * })
    **/
    count<T extends MeetingAttendanceCountArgs>(
      args?: Subset<T, MeetingAttendanceCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAttendanceCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAttendance.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAggregateArgs} 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 MeetingAttendanceAggregateArgs>(args: Subset<T, MeetingAttendanceAggregateArgs>): Prisma.PrismaPromise<GetMeetingAttendanceAggregateType<T>>

    /**
     * Group by MeetingAttendance.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceGroupByArgs} 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 MeetingAttendanceGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAttendanceGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAttendanceGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAttendanceGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAttendanceGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAttendance model
   */
  readonly fields: MeetingAttendanceFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAttendance.
   * 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__MeetingAttendanceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    meeting<T extends MeetingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingDefaultArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAttendance model
   */
  interface MeetingAttendanceFieldRefs {
    readonly id: FieldRef<"MeetingAttendance", 'String'>
    readonly userId: FieldRef<"MeetingAttendance", 'String'>
    readonly meetingId: FieldRef<"MeetingAttendance", 'String'>
    readonly status: FieldRef<"MeetingAttendance", 'AttendanceStatus'>
    readonly checkinTime: FieldRef<"MeetingAttendance", 'DateTime'>
    readonly checkoutTime: FieldRef<"MeetingAttendance", 'DateTime'>
    readonly isLate: FieldRef<"MeetingAttendance", 'Boolean'>
    readonly isEarlyLeave: FieldRef<"MeetingAttendance", 'Boolean'>
    readonly notes: FieldRef<"MeetingAttendance", 'String'>
    readonly checkinType: FieldRef<"MeetingAttendance", 'CheckinType'>
    readonly deviceId: FieldRef<"MeetingAttendance", 'String'>
    readonly createdAt: FieldRef<"MeetingAttendance", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAttendance", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAttendance findUnique
   */
  export type MeetingAttendanceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendance to fetch.
     */
    where: MeetingAttendanceWhereUniqueInput
  }

  /**
   * MeetingAttendance findUniqueOrThrow
   */
  export type MeetingAttendanceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendance to fetch.
     */
    where: MeetingAttendanceWhereUniqueInput
  }

  /**
   * MeetingAttendance findFirst
   */
  export type MeetingAttendanceFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendance to fetch.
     */
    where?: MeetingAttendanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendances to fetch.
     */
    orderBy?: MeetingAttendanceOrderByWithRelationInput | MeetingAttendanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendances.
     */
    cursor?: MeetingAttendanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendances 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` MeetingAttendances.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendances.
     */
    distinct?: MeetingAttendanceScalarFieldEnum | MeetingAttendanceScalarFieldEnum[]
  }

  /**
   * MeetingAttendance findFirstOrThrow
   */
  export type MeetingAttendanceFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendance to fetch.
     */
    where?: MeetingAttendanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendances to fetch.
     */
    orderBy?: MeetingAttendanceOrderByWithRelationInput | MeetingAttendanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendances.
     */
    cursor?: MeetingAttendanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendances 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` MeetingAttendances.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendances.
     */
    distinct?: MeetingAttendanceScalarFieldEnum | MeetingAttendanceScalarFieldEnum[]
  }

  /**
   * MeetingAttendance findMany
   */
  export type MeetingAttendanceFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendances to fetch.
     */
    where?: MeetingAttendanceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendances to fetch.
     */
    orderBy?: MeetingAttendanceOrderByWithRelationInput | MeetingAttendanceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAttendances.
     */
    cursor?: MeetingAttendanceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendances 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` MeetingAttendances.
     */
    skip?: number
    distinct?: MeetingAttendanceScalarFieldEnum | MeetingAttendanceScalarFieldEnum[]
  }

  /**
   * MeetingAttendance create
   */
  export type MeetingAttendanceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAttendance.
     */
    data: XOR<MeetingAttendanceCreateInput, MeetingAttendanceUncheckedCreateInput>
  }

  /**
   * MeetingAttendance createMany
   */
  export type MeetingAttendanceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAttendances.
     */
    data: MeetingAttendanceCreateManyInput | MeetingAttendanceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendance createManyAndReturn
   */
  export type MeetingAttendanceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAttendances.
     */
    data: MeetingAttendanceCreateManyInput | MeetingAttendanceCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttendance update
   */
  export type MeetingAttendanceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAttendance.
     */
    data: XOR<MeetingAttendanceUpdateInput, MeetingAttendanceUncheckedUpdateInput>
    /**
     * Choose, which MeetingAttendance to update.
     */
    where: MeetingAttendanceWhereUniqueInput
  }

  /**
   * MeetingAttendance updateMany
   */
  export type MeetingAttendanceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAttendances.
     */
    data: XOR<MeetingAttendanceUpdateManyMutationInput, MeetingAttendanceUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendances to update
     */
    where?: MeetingAttendanceWhereInput
    /**
     * Limit how many MeetingAttendances to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendance updateManyAndReturn
   */
  export type MeetingAttendanceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAttendances.
     */
    data: XOR<MeetingAttendanceUpdateManyMutationInput, MeetingAttendanceUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendances to update
     */
    where?: MeetingAttendanceWhereInput
    /**
     * Limit how many MeetingAttendances to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttendance upsert
   */
  export type MeetingAttendanceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAttendance to update in case it exists.
     */
    where: MeetingAttendanceWhereUniqueInput
    /**
     * In case the MeetingAttendance found by the `where` argument doesn't exist, create a new MeetingAttendance with this data.
     */
    create: XOR<MeetingAttendanceCreateInput, MeetingAttendanceUncheckedCreateInput>
    /**
     * In case the MeetingAttendance was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAttendanceUpdateInput, MeetingAttendanceUncheckedUpdateInput>
  }

  /**
   * MeetingAttendance delete
   */
  export type MeetingAttendanceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
    /**
     * Filter which MeetingAttendance to delete.
     */
    where: MeetingAttendanceWhereUniqueInput
  }

  /**
   * MeetingAttendance deleteMany
   */
  export type MeetingAttendanceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendances to delete
     */
    where?: MeetingAttendanceWhereInput
    /**
     * Limit how many MeetingAttendances to delete.
     */
    limit?: number
  }

  /**
   * MeetingAttendance without action
   */
  export type MeetingAttendanceDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendance
     */
    select?: MeetingAttendanceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendance
     */
    omit?: MeetingAttendanceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceInclude<ExtArgs> | null
  }


  /**
   * Model MeetingRequiredAttendee
   */

  export type AggregateMeetingRequiredAttendee = {
    _count: MeetingRequiredAttendeeCountAggregateOutputType | null
    _min: MeetingRequiredAttendeeMinAggregateOutputType | null
    _max: MeetingRequiredAttendeeMaxAggregateOutputType | null
  }

  export type MeetingRequiredAttendeeMinAggregateOutputType = {
    id: string | null
    meetingId: string | null
    userId: string | null
    role: $Enums.AttendeeRole | null
    checkinMode: $Enums.AttendanceMode | null
    createdAt: Date | null
  }

  export type MeetingRequiredAttendeeMaxAggregateOutputType = {
    id: string | null
    meetingId: string | null
    userId: string | null
    role: $Enums.AttendeeRole | null
    checkinMode: $Enums.AttendanceMode | null
    createdAt: Date | null
  }

  export type MeetingRequiredAttendeeCountAggregateOutputType = {
    id: number
    meetingId: number
    userId: number
    role: number
    checkinMode: number
    createdAt: number
    _all: number
  }


  export type MeetingRequiredAttendeeMinAggregateInputType = {
    id?: true
    meetingId?: true
    userId?: true
    role?: true
    checkinMode?: true
    createdAt?: true
  }

  export type MeetingRequiredAttendeeMaxAggregateInputType = {
    id?: true
    meetingId?: true
    userId?: true
    role?: true
    checkinMode?: true
    createdAt?: true
  }

  export type MeetingRequiredAttendeeCountAggregateInputType = {
    id?: true
    meetingId?: true
    userId?: true
    role?: true
    checkinMode?: true
    createdAt?: true
    _all?: true
  }

  export type MeetingRequiredAttendeeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingRequiredAttendee to aggregate.
     */
    where?: MeetingRequiredAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingRequiredAttendees to fetch.
     */
    orderBy?: MeetingRequiredAttendeeOrderByWithRelationInput | MeetingRequiredAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingRequiredAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingRequiredAttendees 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` MeetingRequiredAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingRequiredAttendees
    **/
    _count?: true | MeetingRequiredAttendeeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingRequiredAttendeeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingRequiredAttendeeMaxAggregateInputType
  }

  export type GetMeetingRequiredAttendeeAggregateType<T extends MeetingRequiredAttendeeAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingRequiredAttendee]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingRequiredAttendee[P]>
      : GetScalarType<T[P], AggregateMeetingRequiredAttendee[P]>
  }




  export type MeetingRequiredAttendeeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingRequiredAttendeeWhereInput
    orderBy?: MeetingRequiredAttendeeOrderByWithAggregationInput | MeetingRequiredAttendeeOrderByWithAggregationInput[]
    by: MeetingRequiredAttendeeScalarFieldEnum[] | MeetingRequiredAttendeeScalarFieldEnum
    having?: MeetingRequiredAttendeeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingRequiredAttendeeCountAggregateInputType | true
    _min?: MeetingRequiredAttendeeMinAggregateInputType
    _max?: MeetingRequiredAttendeeMaxAggregateInputType
  }

  export type MeetingRequiredAttendeeGroupByOutputType = {
    id: string
    meetingId: string
    userId: string
    role: $Enums.AttendeeRole
    checkinMode: $Enums.AttendanceMode | null
    createdAt: Date
    _count: MeetingRequiredAttendeeCountAggregateOutputType | null
    _min: MeetingRequiredAttendeeMinAggregateOutputType | null
    _max: MeetingRequiredAttendeeMaxAggregateOutputType | null
  }

  type GetMeetingRequiredAttendeeGroupByPayload<T extends MeetingRequiredAttendeeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingRequiredAttendeeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingRequiredAttendeeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingRequiredAttendeeGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingRequiredAttendeeGroupByOutputType[P]>
        }
      >
    >


  export type MeetingRequiredAttendeeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    userId?: boolean
    role?: boolean
    checkinMode?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingRequiredAttendee"]>

  export type MeetingRequiredAttendeeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    userId?: boolean
    role?: boolean
    checkinMode?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingRequiredAttendee"]>

  export type MeetingRequiredAttendeeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    userId?: boolean
    role?: boolean
    checkinMode?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingRequiredAttendee"]>

  export type MeetingRequiredAttendeeSelectScalar = {
    id?: boolean
    meetingId?: boolean
    userId?: boolean
    role?: boolean
    checkinMode?: boolean
    createdAt?: boolean
  }

  export type MeetingRequiredAttendeeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "meetingId" | "userId" | "role" | "checkinMode" | "createdAt", ExtArgs["result"]["meetingRequiredAttendee"]>
  export type MeetingRequiredAttendeeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }
  export type MeetingRequiredAttendeeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }
  export type MeetingRequiredAttendeeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }

  export type $MeetingRequiredAttendeePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingRequiredAttendee"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      meeting: Prisma.$MeetingPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      meetingId: string
      userId: string
      role: $Enums.AttendeeRole
      checkinMode: $Enums.AttendanceMode | null
      createdAt: Date
    }, ExtArgs["result"]["meetingRequiredAttendee"]>
    composites: {}
  }

  type MeetingRequiredAttendeeGetPayload<S extends boolean | null | undefined | MeetingRequiredAttendeeDefaultArgs> = $Result.GetResult<Prisma.$MeetingRequiredAttendeePayload, S>

  type MeetingRequiredAttendeeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingRequiredAttendeeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingRequiredAttendeeCountAggregateInputType | true
    }

  export interface MeetingRequiredAttendeeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingRequiredAttendee'], meta: { name: 'MeetingRequiredAttendee' } }
    /**
     * Find zero or one MeetingRequiredAttendee that matches the filter.
     * @param {MeetingRequiredAttendeeFindUniqueArgs} args - Arguments to find a MeetingRequiredAttendee
     * @example
     * // Get one MeetingRequiredAttendee
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingRequiredAttendeeFindUniqueArgs>(args: SelectSubset<T, MeetingRequiredAttendeeFindUniqueArgs<ExtArgs>>): Prisma__MeetingRequiredAttendeeClient<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingRequiredAttendee that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingRequiredAttendeeFindUniqueOrThrowArgs} args - Arguments to find a MeetingRequiredAttendee
     * @example
     * // Get one MeetingRequiredAttendee
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingRequiredAttendeeFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingRequiredAttendeeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingRequiredAttendeeClient<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingRequiredAttendee 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 {MeetingRequiredAttendeeFindFirstArgs} args - Arguments to find a MeetingRequiredAttendee
     * @example
     * // Get one MeetingRequiredAttendee
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingRequiredAttendeeFindFirstArgs>(args?: SelectSubset<T, MeetingRequiredAttendeeFindFirstArgs<ExtArgs>>): Prisma__MeetingRequiredAttendeeClient<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingRequiredAttendee 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 {MeetingRequiredAttendeeFindFirstOrThrowArgs} args - Arguments to find a MeetingRequiredAttendee
     * @example
     * // Get one MeetingRequiredAttendee
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingRequiredAttendeeFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingRequiredAttendeeFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingRequiredAttendeeClient<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingRequiredAttendees 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 {MeetingRequiredAttendeeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingRequiredAttendees
     * const meetingRequiredAttendees = await prisma.meetingRequiredAttendee.findMany()
     * 
     * // Get first 10 MeetingRequiredAttendees
     * const meetingRequiredAttendees = await prisma.meetingRequiredAttendee.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingRequiredAttendeeWithIdOnly = await prisma.meetingRequiredAttendee.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingRequiredAttendeeFindManyArgs>(args?: SelectSubset<T, MeetingRequiredAttendeeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingRequiredAttendee.
     * @param {MeetingRequiredAttendeeCreateArgs} args - Arguments to create a MeetingRequiredAttendee.
     * @example
     * // Create one MeetingRequiredAttendee
     * const MeetingRequiredAttendee = await prisma.meetingRequiredAttendee.create({
     *   data: {
     *     // ... data to create a MeetingRequiredAttendee
     *   }
     * })
     * 
     */
    create<T extends MeetingRequiredAttendeeCreateArgs>(args: SelectSubset<T, MeetingRequiredAttendeeCreateArgs<ExtArgs>>): Prisma__MeetingRequiredAttendeeClient<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingRequiredAttendees.
     * @param {MeetingRequiredAttendeeCreateManyArgs} args - Arguments to create many MeetingRequiredAttendees.
     * @example
     * // Create many MeetingRequiredAttendees
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingRequiredAttendeeCreateManyArgs>(args?: SelectSubset<T, MeetingRequiredAttendeeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingRequiredAttendees and returns the data saved in the database.
     * @param {MeetingRequiredAttendeeCreateManyAndReturnArgs} args - Arguments to create many MeetingRequiredAttendees.
     * @example
     * // Create many MeetingRequiredAttendees
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingRequiredAttendees and only return the `id`
     * const meetingRequiredAttendeeWithIdOnly = await prisma.meetingRequiredAttendee.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 MeetingRequiredAttendeeCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingRequiredAttendeeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingRequiredAttendee.
     * @param {MeetingRequiredAttendeeDeleteArgs} args - Arguments to delete one MeetingRequiredAttendee.
     * @example
     * // Delete one MeetingRequiredAttendee
     * const MeetingRequiredAttendee = await prisma.meetingRequiredAttendee.delete({
     *   where: {
     *     // ... filter to delete one MeetingRequiredAttendee
     *   }
     * })
     * 
     */
    delete<T extends MeetingRequiredAttendeeDeleteArgs>(args: SelectSubset<T, MeetingRequiredAttendeeDeleteArgs<ExtArgs>>): Prisma__MeetingRequiredAttendeeClient<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingRequiredAttendee.
     * @param {MeetingRequiredAttendeeUpdateArgs} args - Arguments to update one MeetingRequiredAttendee.
     * @example
     * // Update one MeetingRequiredAttendee
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingRequiredAttendeeUpdateArgs>(args: SelectSubset<T, MeetingRequiredAttendeeUpdateArgs<ExtArgs>>): Prisma__MeetingRequiredAttendeeClient<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingRequiredAttendees.
     * @param {MeetingRequiredAttendeeDeleteManyArgs} args - Arguments to filter MeetingRequiredAttendees to delete.
     * @example
     * // Delete a few MeetingRequiredAttendees
     * const { count } = await prisma.meetingRequiredAttendee.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingRequiredAttendeeDeleteManyArgs>(args?: SelectSubset<T, MeetingRequiredAttendeeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingRequiredAttendees.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingRequiredAttendeeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingRequiredAttendees
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingRequiredAttendeeUpdateManyArgs>(args: SelectSubset<T, MeetingRequiredAttendeeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingRequiredAttendees and returns the data updated in the database.
     * @param {MeetingRequiredAttendeeUpdateManyAndReturnArgs} args - Arguments to update many MeetingRequiredAttendees.
     * @example
     * // Update many MeetingRequiredAttendees
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingRequiredAttendees and only return the `id`
     * const meetingRequiredAttendeeWithIdOnly = await prisma.meetingRequiredAttendee.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 MeetingRequiredAttendeeUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingRequiredAttendeeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingRequiredAttendee.
     * @param {MeetingRequiredAttendeeUpsertArgs} args - Arguments to update or create a MeetingRequiredAttendee.
     * @example
     * // Update or create a MeetingRequiredAttendee
     * const meetingRequiredAttendee = await prisma.meetingRequiredAttendee.upsert({
     *   create: {
     *     // ... data to create a MeetingRequiredAttendee
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingRequiredAttendee we want to update
     *   }
     * })
     */
    upsert<T extends MeetingRequiredAttendeeUpsertArgs>(args: SelectSubset<T, MeetingRequiredAttendeeUpsertArgs<ExtArgs>>): Prisma__MeetingRequiredAttendeeClient<$Result.GetResult<Prisma.$MeetingRequiredAttendeePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingRequiredAttendees.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingRequiredAttendeeCountArgs} args - Arguments to filter MeetingRequiredAttendees to count.
     * @example
     * // Count the number of MeetingRequiredAttendees
     * const count = await prisma.meetingRequiredAttendee.count({
     *   where: {
     *     // ... the filter for the MeetingRequiredAttendees we want to count
     *   }
     * })
    **/
    count<T extends MeetingRequiredAttendeeCountArgs>(
      args?: Subset<T, MeetingRequiredAttendeeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingRequiredAttendeeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingRequiredAttendee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingRequiredAttendeeAggregateArgs} 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 MeetingRequiredAttendeeAggregateArgs>(args: Subset<T, MeetingRequiredAttendeeAggregateArgs>): Prisma.PrismaPromise<GetMeetingRequiredAttendeeAggregateType<T>>

    /**
     * Group by MeetingRequiredAttendee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingRequiredAttendeeGroupByArgs} 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 MeetingRequiredAttendeeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingRequiredAttendeeGroupByArgs['orderBy'] }
        : { orderBy?: MeetingRequiredAttendeeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingRequiredAttendeeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingRequiredAttendeeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingRequiredAttendee model
   */
  readonly fields: MeetingRequiredAttendeeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingRequiredAttendee.
   * 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__MeetingRequiredAttendeeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    meeting<T extends MeetingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingDefaultArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingRequiredAttendee model
   */
  interface MeetingRequiredAttendeeFieldRefs {
    readonly id: FieldRef<"MeetingRequiredAttendee", 'String'>
    readonly meetingId: FieldRef<"MeetingRequiredAttendee", 'String'>
    readonly userId: FieldRef<"MeetingRequiredAttendee", 'String'>
    readonly role: FieldRef<"MeetingRequiredAttendee", 'AttendeeRole'>
    readonly checkinMode: FieldRef<"MeetingRequiredAttendee", 'AttendanceMode'>
    readonly createdAt: FieldRef<"MeetingRequiredAttendee", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingRequiredAttendee findUnique
   */
  export type MeetingRequiredAttendeeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingRequiredAttendee to fetch.
     */
    where: MeetingRequiredAttendeeWhereUniqueInput
  }

  /**
   * MeetingRequiredAttendee findUniqueOrThrow
   */
  export type MeetingRequiredAttendeeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingRequiredAttendee to fetch.
     */
    where: MeetingRequiredAttendeeWhereUniqueInput
  }

  /**
   * MeetingRequiredAttendee findFirst
   */
  export type MeetingRequiredAttendeeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingRequiredAttendee to fetch.
     */
    where?: MeetingRequiredAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingRequiredAttendees to fetch.
     */
    orderBy?: MeetingRequiredAttendeeOrderByWithRelationInput | MeetingRequiredAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingRequiredAttendees.
     */
    cursor?: MeetingRequiredAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingRequiredAttendees 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` MeetingRequiredAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingRequiredAttendees.
     */
    distinct?: MeetingRequiredAttendeeScalarFieldEnum | MeetingRequiredAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingRequiredAttendee findFirstOrThrow
   */
  export type MeetingRequiredAttendeeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingRequiredAttendee to fetch.
     */
    where?: MeetingRequiredAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingRequiredAttendees to fetch.
     */
    orderBy?: MeetingRequiredAttendeeOrderByWithRelationInput | MeetingRequiredAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingRequiredAttendees.
     */
    cursor?: MeetingRequiredAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingRequiredAttendees 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` MeetingRequiredAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingRequiredAttendees.
     */
    distinct?: MeetingRequiredAttendeeScalarFieldEnum | MeetingRequiredAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingRequiredAttendee findMany
   */
  export type MeetingRequiredAttendeeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingRequiredAttendees to fetch.
     */
    where?: MeetingRequiredAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingRequiredAttendees to fetch.
     */
    orderBy?: MeetingRequiredAttendeeOrderByWithRelationInput | MeetingRequiredAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingRequiredAttendees.
     */
    cursor?: MeetingRequiredAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingRequiredAttendees 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` MeetingRequiredAttendees.
     */
    skip?: number
    distinct?: MeetingRequiredAttendeeScalarFieldEnum | MeetingRequiredAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingRequiredAttendee create
   */
  export type MeetingRequiredAttendeeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingRequiredAttendee.
     */
    data: XOR<MeetingRequiredAttendeeCreateInput, MeetingRequiredAttendeeUncheckedCreateInput>
  }

  /**
   * MeetingRequiredAttendee createMany
   */
  export type MeetingRequiredAttendeeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingRequiredAttendees.
     */
    data: MeetingRequiredAttendeeCreateManyInput | MeetingRequiredAttendeeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingRequiredAttendee createManyAndReturn
   */
  export type MeetingRequiredAttendeeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingRequiredAttendees.
     */
    data: MeetingRequiredAttendeeCreateManyInput | MeetingRequiredAttendeeCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingRequiredAttendee update
   */
  export type MeetingRequiredAttendeeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingRequiredAttendee.
     */
    data: XOR<MeetingRequiredAttendeeUpdateInput, MeetingRequiredAttendeeUncheckedUpdateInput>
    /**
     * Choose, which MeetingRequiredAttendee to update.
     */
    where: MeetingRequiredAttendeeWhereUniqueInput
  }

  /**
   * MeetingRequiredAttendee updateMany
   */
  export type MeetingRequiredAttendeeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingRequiredAttendees.
     */
    data: XOR<MeetingRequiredAttendeeUpdateManyMutationInput, MeetingRequiredAttendeeUncheckedUpdateManyInput>
    /**
     * Filter which MeetingRequiredAttendees to update
     */
    where?: MeetingRequiredAttendeeWhereInput
    /**
     * Limit how many MeetingRequiredAttendees to update.
     */
    limit?: number
  }

  /**
   * MeetingRequiredAttendee updateManyAndReturn
   */
  export type MeetingRequiredAttendeeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * The data used to update MeetingRequiredAttendees.
     */
    data: XOR<MeetingRequiredAttendeeUpdateManyMutationInput, MeetingRequiredAttendeeUncheckedUpdateManyInput>
    /**
     * Filter which MeetingRequiredAttendees to update
     */
    where?: MeetingRequiredAttendeeWhereInput
    /**
     * Limit how many MeetingRequiredAttendees to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingRequiredAttendee upsert
   */
  export type MeetingRequiredAttendeeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingRequiredAttendee to update in case it exists.
     */
    where: MeetingRequiredAttendeeWhereUniqueInput
    /**
     * In case the MeetingRequiredAttendee found by the `where` argument doesn't exist, create a new MeetingRequiredAttendee with this data.
     */
    create: XOR<MeetingRequiredAttendeeCreateInput, MeetingRequiredAttendeeUncheckedCreateInput>
    /**
     * In case the MeetingRequiredAttendee was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingRequiredAttendeeUpdateInput, MeetingRequiredAttendeeUncheckedUpdateInput>
  }

  /**
   * MeetingRequiredAttendee delete
   */
  export type MeetingRequiredAttendeeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
    /**
     * Filter which MeetingRequiredAttendee to delete.
     */
    where: MeetingRequiredAttendeeWhereUniqueInput
  }

  /**
   * MeetingRequiredAttendee deleteMany
   */
  export type MeetingRequiredAttendeeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingRequiredAttendees to delete
     */
    where?: MeetingRequiredAttendeeWhereInput
    /**
     * Limit how many MeetingRequiredAttendees to delete.
     */
    limit?: number
  }

  /**
   * MeetingRequiredAttendee without action
   */
  export type MeetingRequiredAttendeeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingRequiredAttendee
     */
    select?: MeetingRequiredAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingRequiredAttendee
     */
    omit?: MeetingRequiredAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingRequiredAttendeeInclude<ExtArgs> | null
  }


  /**
   * Model MeetingSeriesAttendeePreference
   */

  export type AggregateMeetingSeriesAttendeePreference = {
    _count: MeetingSeriesAttendeePreferenceCountAggregateOutputType | null
    _min: MeetingSeriesAttendeePreferenceMinAggregateOutputType | null
    _max: MeetingSeriesAttendeePreferenceMaxAggregateOutputType | null
  }

  export type MeetingSeriesAttendeePreferenceMinAggregateOutputType = {
    seriesId: string | null
    userId: string | null
    defaultCheckinMode: $Enums.AttendanceMode | null
    updatedByUserId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingSeriesAttendeePreferenceMaxAggregateOutputType = {
    seriesId: string | null
    userId: string | null
    defaultCheckinMode: $Enums.AttendanceMode | null
    updatedByUserId: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingSeriesAttendeePreferenceCountAggregateOutputType = {
    seriesId: number
    userId: number
    defaultCheckinMode: number
    updatedByUserId: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingSeriesAttendeePreferenceMinAggregateInputType = {
    seriesId?: true
    userId?: true
    defaultCheckinMode?: true
    updatedByUserId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingSeriesAttendeePreferenceMaxAggregateInputType = {
    seriesId?: true
    userId?: true
    defaultCheckinMode?: true
    updatedByUserId?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingSeriesAttendeePreferenceCountAggregateInputType = {
    seriesId?: true
    userId?: true
    defaultCheckinMode?: true
    updatedByUserId?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingSeriesAttendeePreferenceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingSeriesAttendeePreference to aggregate.
     */
    where?: MeetingSeriesAttendeePreferenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeriesAttendeePreferences to fetch.
     */
    orderBy?: MeetingSeriesAttendeePreferenceOrderByWithRelationInput | MeetingSeriesAttendeePreferenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingSeriesAttendeePreferenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeriesAttendeePreferences 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` MeetingSeriesAttendeePreferences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingSeriesAttendeePreferences
    **/
    _count?: true | MeetingSeriesAttendeePreferenceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingSeriesAttendeePreferenceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingSeriesAttendeePreferenceMaxAggregateInputType
  }

  export type GetMeetingSeriesAttendeePreferenceAggregateType<T extends MeetingSeriesAttendeePreferenceAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingSeriesAttendeePreference]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingSeriesAttendeePreference[P]>
      : GetScalarType<T[P], AggregateMeetingSeriesAttendeePreference[P]>
  }




  export type MeetingSeriesAttendeePreferenceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingSeriesAttendeePreferenceWhereInput
    orderBy?: MeetingSeriesAttendeePreferenceOrderByWithAggregationInput | MeetingSeriesAttendeePreferenceOrderByWithAggregationInput[]
    by: MeetingSeriesAttendeePreferenceScalarFieldEnum[] | MeetingSeriesAttendeePreferenceScalarFieldEnum
    having?: MeetingSeriesAttendeePreferenceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingSeriesAttendeePreferenceCountAggregateInputType | true
    _min?: MeetingSeriesAttendeePreferenceMinAggregateInputType
    _max?: MeetingSeriesAttendeePreferenceMaxAggregateInputType
  }

  export type MeetingSeriesAttendeePreferenceGroupByOutputType = {
    seriesId: string
    userId: string
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId: string | null
    createdAt: Date
    updatedAt: Date
    _count: MeetingSeriesAttendeePreferenceCountAggregateOutputType | null
    _min: MeetingSeriesAttendeePreferenceMinAggregateOutputType | null
    _max: MeetingSeriesAttendeePreferenceMaxAggregateOutputType | null
  }

  type GetMeetingSeriesAttendeePreferenceGroupByPayload<T extends MeetingSeriesAttendeePreferenceGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingSeriesAttendeePreferenceGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingSeriesAttendeePreferenceGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingSeriesAttendeePreferenceGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingSeriesAttendeePreferenceGroupByOutputType[P]>
        }
      >
    >


  export type MeetingSeriesAttendeePreferenceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    seriesId?: boolean
    userId?: boolean
    defaultCheckinMode?: boolean
    updatedByUserId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeriesAttendeePreference"]>

  export type MeetingSeriesAttendeePreferenceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    seriesId?: boolean
    userId?: boolean
    defaultCheckinMode?: boolean
    updatedByUserId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeriesAttendeePreference"]>

  export type MeetingSeriesAttendeePreferenceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    seriesId?: boolean
    userId?: boolean
    defaultCheckinMode?: boolean
    updatedByUserId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeriesAttendeePreference"]>

  export type MeetingSeriesAttendeePreferenceSelectScalar = {
    seriesId?: boolean
    userId?: boolean
    defaultCheckinMode?: boolean
    updatedByUserId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingSeriesAttendeePreferenceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"seriesId" | "userId" | "defaultCheckinMode" | "updatedByUserId" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingSeriesAttendeePreference"]>
  export type MeetingSeriesAttendeePreferenceInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingSeriesAttendeePreferenceIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingSeriesAttendeePreferenceIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $MeetingSeriesAttendeePreferencePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingSeriesAttendeePreference"
    objects: {
      series: Prisma.$MeetingSeriesPayload<ExtArgs>
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      seriesId: string
      userId: string
      defaultCheckinMode: $Enums.AttendanceMode
      updatedByUserId: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingSeriesAttendeePreference"]>
    composites: {}
  }

  type MeetingSeriesAttendeePreferenceGetPayload<S extends boolean | null | undefined | MeetingSeriesAttendeePreferenceDefaultArgs> = $Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload, S>

  type MeetingSeriesAttendeePreferenceCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingSeriesAttendeePreferenceFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingSeriesAttendeePreferenceCountAggregateInputType | true
    }

  export interface MeetingSeriesAttendeePreferenceDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingSeriesAttendeePreference'], meta: { name: 'MeetingSeriesAttendeePreference' } }
    /**
     * Find zero or one MeetingSeriesAttendeePreference that matches the filter.
     * @param {MeetingSeriesAttendeePreferenceFindUniqueArgs} args - Arguments to find a MeetingSeriesAttendeePreference
     * @example
     * // Get one MeetingSeriesAttendeePreference
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingSeriesAttendeePreferenceFindUniqueArgs>(args: SelectSubset<T, MeetingSeriesAttendeePreferenceFindUniqueArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeePreferenceClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingSeriesAttendeePreference that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingSeriesAttendeePreferenceFindUniqueOrThrowArgs} args - Arguments to find a MeetingSeriesAttendeePreference
     * @example
     * // Get one MeetingSeriesAttendeePreference
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingSeriesAttendeePreferenceFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingSeriesAttendeePreferenceFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeePreferenceClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingSeriesAttendeePreference 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 {MeetingSeriesAttendeePreferenceFindFirstArgs} args - Arguments to find a MeetingSeriesAttendeePreference
     * @example
     * // Get one MeetingSeriesAttendeePreference
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingSeriesAttendeePreferenceFindFirstArgs>(args?: SelectSubset<T, MeetingSeriesAttendeePreferenceFindFirstArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeePreferenceClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingSeriesAttendeePreference 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 {MeetingSeriesAttendeePreferenceFindFirstOrThrowArgs} args - Arguments to find a MeetingSeriesAttendeePreference
     * @example
     * // Get one MeetingSeriesAttendeePreference
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingSeriesAttendeePreferenceFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingSeriesAttendeePreferenceFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeePreferenceClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingSeriesAttendeePreferences 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 {MeetingSeriesAttendeePreferenceFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingSeriesAttendeePreferences
     * const meetingSeriesAttendeePreferences = await prisma.meetingSeriesAttendeePreference.findMany()
     * 
     * // Get first 10 MeetingSeriesAttendeePreferences
     * const meetingSeriesAttendeePreferences = await prisma.meetingSeriesAttendeePreference.findMany({ take: 10 })
     * 
     * // Only select the `seriesId`
     * const meetingSeriesAttendeePreferenceWithSeriesIdOnly = await prisma.meetingSeriesAttendeePreference.findMany({ select: { seriesId: true } })
     * 
     */
    findMany<T extends MeetingSeriesAttendeePreferenceFindManyArgs>(args?: SelectSubset<T, MeetingSeriesAttendeePreferenceFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingSeriesAttendeePreference.
     * @param {MeetingSeriesAttendeePreferenceCreateArgs} args - Arguments to create a MeetingSeriesAttendeePreference.
     * @example
     * // Create one MeetingSeriesAttendeePreference
     * const MeetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.create({
     *   data: {
     *     // ... data to create a MeetingSeriesAttendeePreference
     *   }
     * })
     * 
     */
    create<T extends MeetingSeriesAttendeePreferenceCreateArgs>(args: SelectSubset<T, MeetingSeriesAttendeePreferenceCreateArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeePreferenceClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingSeriesAttendeePreferences.
     * @param {MeetingSeriesAttendeePreferenceCreateManyArgs} args - Arguments to create many MeetingSeriesAttendeePreferences.
     * @example
     * // Create many MeetingSeriesAttendeePreferences
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingSeriesAttendeePreferenceCreateManyArgs>(args?: SelectSubset<T, MeetingSeriesAttendeePreferenceCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingSeriesAttendeePreferences and returns the data saved in the database.
     * @param {MeetingSeriesAttendeePreferenceCreateManyAndReturnArgs} args - Arguments to create many MeetingSeriesAttendeePreferences.
     * @example
     * // Create many MeetingSeriesAttendeePreferences
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingSeriesAttendeePreferences and only return the `seriesId`
     * const meetingSeriesAttendeePreferenceWithSeriesIdOnly = await prisma.meetingSeriesAttendeePreference.createManyAndReturn({
     *   select: { seriesId: 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 MeetingSeriesAttendeePreferenceCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingSeriesAttendeePreferenceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingSeriesAttendeePreference.
     * @param {MeetingSeriesAttendeePreferenceDeleteArgs} args - Arguments to delete one MeetingSeriesAttendeePreference.
     * @example
     * // Delete one MeetingSeriesAttendeePreference
     * const MeetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.delete({
     *   where: {
     *     // ... filter to delete one MeetingSeriesAttendeePreference
     *   }
     * })
     * 
     */
    delete<T extends MeetingSeriesAttendeePreferenceDeleteArgs>(args: SelectSubset<T, MeetingSeriesAttendeePreferenceDeleteArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeePreferenceClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingSeriesAttendeePreference.
     * @param {MeetingSeriesAttendeePreferenceUpdateArgs} args - Arguments to update one MeetingSeriesAttendeePreference.
     * @example
     * // Update one MeetingSeriesAttendeePreference
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingSeriesAttendeePreferenceUpdateArgs>(args: SelectSubset<T, MeetingSeriesAttendeePreferenceUpdateArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeePreferenceClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingSeriesAttendeePreferences.
     * @param {MeetingSeriesAttendeePreferenceDeleteManyArgs} args - Arguments to filter MeetingSeriesAttendeePreferences to delete.
     * @example
     * // Delete a few MeetingSeriesAttendeePreferences
     * const { count } = await prisma.meetingSeriesAttendeePreference.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingSeriesAttendeePreferenceDeleteManyArgs>(args?: SelectSubset<T, MeetingSeriesAttendeePreferenceDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingSeriesAttendeePreferences.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAttendeePreferenceUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingSeriesAttendeePreferences
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingSeriesAttendeePreferenceUpdateManyArgs>(args: SelectSubset<T, MeetingSeriesAttendeePreferenceUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingSeriesAttendeePreferences and returns the data updated in the database.
     * @param {MeetingSeriesAttendeePreferenceUpdateManyAndReturnArgs} args - Arguments to update many MeetingSeriesAttendeePreferences.
     * @example
     * // Update many MeetingSeriesAttendeePreferences
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingSeriesAttendeePreferences and only return the `seriesId`
     * const meetingSeriesAttendeePreferenceWithSeriesIdOnly = await prisma.meetingSeriesAttendeePreference.updateManyAndReturn({
     *   select: { seriesId: 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 MeetingSeriesAttendeePreferenceUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingSeriesAttendeePreferenceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingSeriesAttendeePreference.
     * @param {MeetingSeriesAttendeePreferenceUpsertArgs} args - Arguments to update or create a MeetingSeriesAttendeePreference.
     * @example
     * // Update or create a MeetingSeriesAttendeePreference
     * const meetingSeriesAttendeePreference = await prisma.meetingSeriesAttendeePreference.upsert({
     *   create: {
     *     // ... data to create a MeetingSeriesAttendeePreference
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingSeriesAttendeePreference we want to update
     *   }
     * })
     */
    upsert<T extends MeetingSeriesAttendeePreferenceUpsertArgs>(args: SelectSubset<T, MeetingSeriesAttendeePreferenceUpsertArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeePreferenceClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeePreferencePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingSeriesAttendeePreferences.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAttendeePreferenceCountArgs} args - Arguments to filter MeetingSeriesAttendeePreferences to count.
     * @example
     * // Count the number of MeetingSeriesAttendeePreferences
     * const count = await prisma.meetingSeriesAttendeePreference.count({
     *   where: {
     *     // ... the filter for the MeetingSeriesAttendeePreferences we want to count
     *   }
     * })
    **/
    count<T extends MeetingSeriesAttendeePreferenceCountArgs>(
      args?: Subset<T, MeetingSeriesAttendeePreferenceCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingSeriesAttendeePreferenceCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingSeriesAttendeePreference.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAttendeePreferenceAggregateArgs} 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 MeetingSeriesAttendeePreferenceAggregateArgs>(args: Subset<T, MeetingSeriesAttendeePreferenceAggregateArgs>): Prisma.PrismaPromise<GetMeetingSeriesAttendeePreferenceAggregateType<T>>

    /**
     * Group by MeetingSeriesAttendeePreference.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAttendeePreferenceGroupByArgs} 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 MeetingSeriesAttendeePreferenceGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingSeriesAttendeePreferenceGroupByArgs['orderBy'] }
        : { orderBy?: MeetingSeriesAttendeePreferenceGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingSeriesAttendeePreferenceGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingSeriesAttendeePreferenceGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingSeriesAttendeePreference model
   */
  readonly fields: MeetingSeriesAttendeePreferenceFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingSeriesAttendeePreference.
   * 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__MeetingSeriesAttendeePreferenceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    series<T extends MeetingSeriesDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingSeriesDefaultArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingSeriesAttendeePreference model
   */
  interface MeetingSeriesAttendeePreferenceFieldRefs {
    readonly seriesId: FieldRef<"MeetingSeriesAttendeePreference", 'String'>
    readonly userId: FieldRef<"MeetingSeriesAttendeePreference", 'String'>
    readonly defaultCheckinMode: FieldRef<"MeetingSeriesAttendeePreference", 'AttendanceMode'>
    readonly updatedByUserId: FieldRef<"MeetingSeriesAttendeePreference", 'String'>
    readonly createdAt: FieldRef<"MeetingSeriesAttendeePreference", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingSeriesAttendeePreference", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingSeriesAttendeePreference findUnique
   */
  export type MeetingSeriesAttendeePreferenceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeePreference to fetch.
     */
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
  }

  /**
   * MeetingSeriesAttendeePreference findUniqueOrThrow
   */
  export type MeetingSeriesAttendeePreferenceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeePreference to fetch.
     */
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
  }

  /**
   * MeetingSeriesAttendeePreference findFirst
   */
  export type MeetingSeriesAttendeePreferenceFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeePreference to fetch.
     */
    where?: MeetingSeriesAttendeePreferenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeriesAttendeePreferences to fetch.
     */
    orderBy?: MeetingSeriesAttendeePreferenceOrderByWithRelationInput | MeetingSeriesAttendeePreferenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingSeriesAttendeePreferences.
     */
    cursor?: MeetingSeriesAttendeePreferenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeriesAttendeePreferences 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` MeetingSeriesAttendeePreferences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingSeriesAttendeePreferences.
     */
    distinct?: MeetingSeriesAttendeePreferenceScalarFieldEnum | MeetingSeriesAttendeePreferenceScalarFieldEnum[]
  }

  /**
   * MeetingSeriesAttendeePreference findFirstOrThrow
   */
  export type MeetingSeriesAttendeePreferenceFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeePreference to fetch.
     */
    where?: MeetingSeriesAttendeePreferenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeriesAttendeePreferences to fetch.
     */
    orderBy?: MeetingSeriesAttendeePreferenceOrderByWithRelationInput | MeetingSeriesAttendeePreferenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingSeriesAttendeePreferences.
     */
    cursor?: MeetingSeriesAttendeePreferenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeriesAttendeePreferences 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` MeetingSeriesAttendeePreferences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingSeriesAttendeePreferences.
     */
    distinct?: MeetingSeriesAttendeePreferenceScalarFieldEnum | MeetingSeriesAttendeePreferenceScalarFieldEnum[]
  }

  /**
   * MeetingSeriesAttendeePreference findMany
   */
  export type MeetingSeriesAttendeePreferenceFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeePreferences to fetch.
     */
    where?: MeetingSeriesAttendeePreferenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeriesAttendeePreferences to fetch.
     */
    orderBy?: MeetingSeriesAttendeePreferenceOrderByWithRelationInput | MeetingSeriesAttendeePreferenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingSeriesAttendeePreferences.
     */
    cursor?: MeetingSeriesAttendeePreferenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeriesAttendeePreferences 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` MeetingSeriesAttendeePreferences.
     */
    skip?: number
    distinct?: MeetingSeriesAttendeePreferenceScalarFieldEnum | MeetingSeriesAttendeePreferenceScalarFieldEnum[]
  }

  /**
   * MeetingSeriesAttendeePreference create
   */
  export type MeetingSeriesAttendeePreferenceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingSeriesAttendeePreference.
     */
    data: XOR<MeetingSeriesAttendeePreferenceCreateInput, MeetingSeriesAttendeePreferenceUncheckedCreateInput>
  }

  /**
   * MeetingSeriesAttendeePreference createMany
   */
  export type MeetingSeriesAttendeePreferenceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingSeriesAttendeePreferences.
     */
    data: MeetingSeriesAttendeePreferenceCreateManyInput | MeetingSeriesAttendeePreferenceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingSeriesAttendeePreference createManyAndReturn
   */
  export type MeetingSeriesAttendeePreferenceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingSeriesAttendeePreferences.
     */
    data: MeetingSeriesAttendeePreferenceCreateManyInput | MeetingSeriesAttendeePreferenceCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingSeriesAttendeePreference update
   */
  export type MeetingSeriesAttendeePreferenceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingSeriesAttendeePreference.
     */
    data: XOR<MeetingSeriesAttendeePreferenceUpdateInput, MeetingSeriesAttendeePreferenceUncheckedUpdateInput>
    /**
     * Choose, which MeetingSeriesAttendeePreference to update.
     */
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
  }

  /**
   * MeetingSeriesAttendeePreference updateMany
   */
  export type MeetingSeriesAttendeePreferenceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingSeriesAttendeePreferences.
     */
    data: XOR<MeetingSeriesAttendeePreferenceUpdateManyMutationInput, MeetingSeriesAttendeePreferenceUncheckedUpdateManyInput>
    /**
     * Filter which MeetingSeriesAttendeePreferences to update
     */
    where?: MeetingSeriesAttendeePreferenceWhereInput
    /**
     * Limit how many MeetingSeriesAttendeePreferences to update.
     */
    limit?: number
  }

  /**
   * MeetingSeriesAttendeePreference updateManyAndReturn
   */
  export type MeetingSeriesAttendeePreferenceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * The data used to update MeetingSeriesAttendeePreferences.
     */
    data: XOR<MeetingSeriesAttendeePreferenceUpdateManyMutationInput, MeetingSeriesAttendeePreferenceUncheckedUpdateManyInput>
    /**
     * Filter which MeetingSeriesAttendeePreferences to update
     */
    where?: MeetingSeriesAttendeePreferenceWhereInput
    /**
     * Limit how many MeetingSeriesAttendeePreferences to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingSeriesAttendeePreference upsert
   */
  export type MeetingSeriesAttendeePreferenceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingSeriesAttendeePreference to update in case it exists.
     */
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
    /**
     * In case the MeetingSeriesAttendeePreference found by the `where` argument doesn't exist, create a new MeetingSeriesAttendeePreference with this data.
     */
    create: XOR<MeetingSeriesAttendeePreferenceCreateInput, MeetingSeriesAttendeePreferenceUncheckedCreateInput>
    /**
     * In case the MeetingSeriesAttendeePreference was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingSeriesAttendeePreferenceUpdateInput, MeetingSeriesAttendeePreferenceUncheckedUpdateInput>
  }

  /**
   * MeetingSeriesAttendeePreference delete
   */
  export type MeetingSeriesAttendeePreferenceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
    /**
     * Filter which MeetingSeriesAttendeePreference to delete.
     */
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
  }

  /**
   * MeetingSeriesAttendeePreference deleteMany
   */
  export type MeetingSeriesAttendeePreferenceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingSeriesAttendeePreferences to delete
     */
    where?: MeetingSeriesAttendeePreferenceWhereInput
    /**
     * Limit how many MeetingSeriesAttendeePreferences to delete.
     */
    limit?: number
  }

  /**
   * MeetingSeriesAttendeePreference without action
   */
  export type MeetingSeriesAttendeePreferenceDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeePreference
     */
    select?: MeetingSeriesAttendeePreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeePreference
     */
    omit?: MeetingSeriesAttendeePreferenceOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeePreferenceInclude<ExtArgs> | null
  }


  /**
   * Model MeetingSeriesAttendeeException
   */

  export type AggregateMeetingSeriesAttendeeException = {
    _count: MeetingSeriesAttendeeExceptionCountAggregateOutputType | null
    _min: MeetingSeriesAttendeeExceptionMinAggregateOutputType | null
    _max: MeetingSeriesAttendeeExceptionMaxAggregateOutputType | null
  }

  export type MeetingSeriesAttendeeExceptionMinAggregateOutputType = {
    seriesId: string | null
    userId: string | null
    excludedBy: string | null
    excludedAt: Date | null
    reason: string | null
  }

  export type MeetingSeriesAttendeeExceptionMaxAggregateOutputType = {
    seriesId: string | null
    userId: string | null
    excludedBy: string | null
    excludedAt: Date | null
    reason: string | null
  }

  export type MeetingSeriesAttendeeExceptionCountAggregateOutputType = {
    seriesId: number
    userId: number
    excludedBy: number
    excludedAt: number
    reason: number
    _all: number
  }


  export type MeetingSeriesAttendeeExceptionMinAggregateInputType = {
    seriesId?: true
    userId?: true
    excludedBy?: true
    excludedAt?: true
    reason?: true
  }

  export type MeetingSeriesAttendeeExceptionMaxAggregateInputType = {
    seriesId?: true
    userId?: true
    excludedBy?: true
    excludedAt?: true
    reason?: true
  }

  export type MeetingSeriesAttendeeExceptionCountAggregateInputType = {
    seriesId?: true
    userId?: true
    excludedBy?: true
    excludedAt?: true
    reason?: true
    _all?: true
  }

  export type MeetingSeriesAttendeeExceptionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingSeriesAttendeeException to aggregate.
     */
    where?: MeetingSeriesAttendeeExceptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeriesAttendeeExceptions to fetch.
     */
    orderBy?: MeetingSeriesAttendeeExceptionOrderByWithRelationInput | MeetingSeriesAttendeeExceptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingSeriesAttendeeExceptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeriesAttendeeExceptions 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` MeetingSeriesAttendeeExceptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingSeriesAttendeeExceptions
    **/
    _count?: true | MeetingSeriesAttendeeExceptionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingSeriesAttendeeExceptionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingSeriesAttendeeExceptionMaxAggregateInputType
  }

  export type GetMeetingSeriesAttendeeExceptionAggregateType<T extends MeetingSeriesAttendeeExceptionAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingSeriesAttendeeException]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingSeriesAttendeeException[P]>
      : GetScalarType<T[P], AggregateMeetingSeriesAttendeeException[P]>
  }




  export type MeetingSeriesAttendeeExceptionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingSeriesAttendeeExceptionWhereInput
    orderBy?: MeetingSeriesAttendeeExceptionOrderByWithAggregationInput | MeetingSeriesAttendeeExceptionOrderByWithAggregationInput[]
    by: MeetingSeriesAttendeeExceptionScalarFieldEnum[] | MeetingSeriesAttendeeExceptionScalarFieldEnum
    having?: MeetingSeriesAttendeeExceptionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingSeriesAttendeeExceptionCountAggregateInputType | true
    _min?: MeetingSeriesAttendeeExceptionMinAggregateInputType
    _max?: MeetingSeriesAttendeeExceptionMaxAggregateInputType
  }

  export type MeetingSeriesAttendeeExceptionGroupByOutputType = {
    seriesId: string
    userId: string
    excludedBy: string
    excludedAt: Date
    reason: string | null
    _count: MeetingSeriesAttendeeExceptionCountAggregateOutputType | null
    _min: MeetingSeriesAttendeeExceptionMinAggregateOutputType | null
    _max: MeetingSeriesAttendeeExceptionMaxAggregateOutputType | null
  }

  type GetMeetingSeriesAttendeeExceptionGroupByPayload<T extends MeetingSeriesAttendeeExceptionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingSeriesAttendeeExceptionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingSeriesAttendeeExceptionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingSeriesAttendeeExceptionGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingSeriesAttendeeExceptionGroupByOutputType[P]>
        }
      >
    >


  export type MeetingSeriesAttendeeExceptionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    seriesId?: boolean
    userId?: boolean
    excludedBy?: boolean
    excludedAt?: boolean
    reason?: boolean
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeriesAttendeeException"]>

  export type MeetingSeriesAttendeeExceptionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    seriesId?: boolean
    userId?: boolean
    excludedBy?: boolean
    excludedAt?: boolean
    reason?: boolean
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeriesAttendeeException"]>

  export type MeetingSeriesAttendeeExceptionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    seriesId?: boolean
    userId?: boolean
    excludedBy?: boolean
    excludedAt?: boolean
    reason?: boolean
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingSeriesAttendeeException"]>

  export type MeetingSeriesAttendeeExceptionSelectScalar = {
    seriesId?: boolean
    userId?: boolean
    excludedBy?: boolean
    excludedAt?: boolean
    reason?: boolean
  }

  export type MeetingSeriesAttendeeExceptionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"seriesId" | "userId" | "excludedBy" | "excludedAt" | "reason", ExtArgs["result"]["meetingSeriesAttendeeException"]>
  export type MeetingSeriesAttendeeExceptionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingSeriesAttendeeExceptionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingSeriesAttendeeExceptionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    series?: boolean | MeetingSeriesDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $MeetingSeriesAttendeeExceptionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingSeriesAttendeeException"
    objects: {
      series: Prisma.$MeetingSeriesPayload<ExtArgs>
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      seriesId: string
      userId: string
      excludedBy: string
      excludedAt: Date
      reason: string | null
    }, ExtArgs["result"]["meetingSeriesAttendeeException"]>
    composites: {}
  }

  type MeetingSeriesAttendeeExceptionGetPayload<S extends boolean | null | undefined | MeetingSeriesAttendeeExceptionDefaultArgs> = $Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload, S>

  type MeetingSeriesAttendeeExceptionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingSeriesAttendeeExceptionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingSeriesAttendeeExceptionCountAggregateInputType | true
    }

  export interface MeetingSeriesAttendeeExceptionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingSeriesAttendeeException'], meta: { name: 'MeetingSeriesAttendeeException' } }
    /**
     * Find zero or one MeetingSeriesAttendeeException that matches the filter.
     * @param {MeetingSeriesAttendeeExceptionFindUniqueArgs} args - Arguments to find a MeetingSeriesAttendeeException
     * @example
     * // Get one MeetingSeriesAttendeeException
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingSeriesAttendeeExceptionFindUniqueArgs>(args: SelectSubset<T, MeetingSeriesAttendeeExceptionFindUniqueArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeeExceptionClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingSeriesAttendeeException that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingSeriesAttendeeExceptionFindUniqueOrThrowArgs} args - Arguments to find a MeetingSeriesAttendeeException
     * @example
     * // Get one MeetingSeriesAttendeeException
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingSeriesAttendeeExceptionFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingSeriesAttendeeExceptionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeeExceptionClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingSeriesAttendeeException 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 {MeetingSeriesAttendeeExceptionFindFirstArgs} args - Arguments to find a MeetingSeriesAttendeeException
     * @example
     * // Get one MeetingSeriesAttendeeException
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingSeriesAttendeeExceptionFindFirstArgs>(args?: SelectSubset<T, MeetingSeriesAttendeeExceptionFindFirstArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeeExceptionClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingSeriesAttendeeException 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 {MeetingSeriesAttendeeExceptionFindFirstOrThrowArgs} args - Arguments to find a MeetingSeriesAttendeeException
     * @example
     * // Get one MeetingSeriesAttendeeException
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingSeriesAttendeeExceptionFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingSeriesAttendeeExceptionFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeeExceptionClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingSeriesAttendeeExceptions 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 {MeetingSeriesAttendeeExceptionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingSeriesAttendeeExceptions
     * const meetingSeriesAttendeeExceptions = await prisma.meetingSeriesAttendeeException.findMany()
     * 
     * // Get first 10 MeetingSeriesAttendeeExceptions
     * const meetingSeriesAttendeeExceptions = await prisma.meetingSeriesAttendeeException.findMany({ take: 10 })
     * 
     * // Only select the `seriesId`
     * const meetingSeriesAttendeeExceptionWithSeriesIdOnly = await prisma.meetingSeriesAttendeeException.findMany({ select: { seriesId: true } })
     * 
     */
    findMany<T extends MeetingSeriesAttendeeExceptionFindManyArgs>(args?: SelectSubset<T, MeetingSeriesAttendeeExceptionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingSeriesAttendeeException.
     * @param {MeetingSeriesAttendeeExceptionCreateArgs} args - Arguments to create a MeetingSeriesAttendeeException.
     * @example
     * // Create one MeetingSeriesAttendeeException
     * const MeetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.create({
     *   data: {
     *     // ... data to create a MeetingSeriesAttendeeException
     *   }
     * })
     * 
     */
    create<T extends MeetingSeriesAttendeeExceptionCreateArgs>(args: SelectSubset<T, MeetingSeriesAttendeeExceptionCreateArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeeExceptionClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingSeriesAttendeeExceptions.
     * @param {MeetingSeriesAttendeeExceptionCreateManyArgs} args - Arguments to create many MeetingSeriesAttendeeExceptions.
     * @example
     * // Create many MeetingSeriesAttendeeExceptions
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingSeriesAttendeeExceptionCreateManyArgs>(args?: SelectSubset<T, MeetingSeriesAttendeeExceptionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingSeriesAttendeeExceptions and returns the data saved in the database.
     * @param {MeetingSeriesAttendeeExceptionCreateManyAndReturnArgs} args - Arguments to create many MeetingSeriesAttendeeExceptions.
     * @example
     * // Create many MeetingSeriesAttendeeExceptions
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingSeriesAttendeeExceptions and only return the `seriesId`
     * const meetingSeriesAttendeeExceptionWithSeriesIdOnly = await prisma.meetingSeriesAttendeeException.createManyAndReturn({
     *   select: { seriesId: 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 MeetingSeriesAttendeeExceptionCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingSeriesAttendeeExceptionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingSeriesAttendeeException.
     * @param {MeetingSeriesAttendeeExceptionDeleteArgs} args - Arguments to delete one MeetingSeriesAttendeeException.
     * @example
     * // Delete one MeetingSeriesAttendeeException
     * const MeetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.delete({
     *   where: {
     *     // ... filter to delete one MeetingSeriesAttendeeException
     *   }
     * })
     * 
     */
    delete<T extends MeetingSeriesAttendeeExceptionDeleteArgs>(args: SelectSubset<T, MeetingSeriesAttendeeExceptionDeleteArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeeExceptionClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingSeriesAttendeeException.
     * @param {MeetingSeriesAttendeeExceptionUpdateArgs} args - Arguments to update one MeetingSeriesAttendeeException.
     * @example
     * // Update one MeetingSeriesAttendeeException
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingSeriesAttendeeExceptionUpdateArgs>(args: SelectSubset<T, MeetingSeriesAttendeeExceptionUpdateArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeeExceptionClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingSeriesAttendeeExceptions.
     * @param {MeetingSeriesAttendeeExceptionDeleteManyArgs} args - Arguments to filter MeetingSeriesAttendeeExceptions to delete.
     * @example
     * // Delete a few MeetingSeriesAttendeeExceptions
     * const { count } = await prisma.meetingSeriesAttendeeException.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingSeriesAttendeeExceptionDeleteManyArgs>(args?: SelectSubset<T, MeetingSeriesAttendeeExceptionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingSeriesAttendeeExceptions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAttendeeExceptionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingSeriesAttendeeExceptions
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingSeriesAttendeeExceptionUpdateManyArgs>(args: SelectSubset<T, MeetingSeriesAttendeeExceptionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingSeriesAttendeeExceptions and returns the data updated in the database.
     * @param {MeetingSeriesAttendeeExceptionUpdateManyAndReturnArgs} args - Arguments to update many MeetingSeriesAttendeeExceptions.
     * @example
     * // Update many MeetingSeriesAttendeeExceptions
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingSeriesAttendeeExceptions and only return the `seriesId`
     * const meetingSeriesAttendeeExceptionWithSeriesIdOnly = await prisma.meetingSeriesAttendeeException.updateManyAndReturn({
     *   select: { seriesId: 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 MeetingSeriesAttendeeExceptionUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingSeriesAttendeeExceptionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingSeriesAttendeeException.
     * @param {MeetingSeriesAttendeeExceptionUpsertArgs} args - Arguments to update or create a MeetingSeriesAttendeeException.
     * @example
     * // Update or create a MeetingSeriesAttendeeException
     * const meetingSeriesAttendeeException = await prisma.meetingSeriesAttendeeException.upsert({
     *   create: {
     *     // ... data to create a MeetingSeriesAttendeeException
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingSeriesAttendeeException we want to update
     *   }
     * })
     */
    upsert<T extends MeetingSeriesAttendeeExceptionUpsertArgs>(args: SelectSubset<T, MeetingSeriesAttendeeExceptionUpsertArgs<ExtArgs>>): Prisma__MeetingSeriesAttendeeExceptionClient<$Result.GetResult<Prisma.$MeetingSeriesAttendeeExceptionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingSeriesAttendeeExceptions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAttendeeExceptionCountArgs} args - Arguments to filter MeetingSeriesAttendeeExceptions to count.
     * @example
     * // Count the number of MeetingSeriesAttendeeExceptions
     * const count = await prisma.meetingSeriesAttendeeException.count({
     *   where: {
     *     // ... the filter for the MeetingSeriesAttendeeExceptions we want to count
     *   }
     * })
    **/
    count<T extends MeetingSeriesAttendeeExceptionCountArgs>(
      args?: Subset<T, MeetingSeriesAttendeeExceptionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingSeriesAttendeeExceptionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingSeriesAttendeeException.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAttendeeExceptionAggregateArgs} 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 MeetingSeriesAttendeeExceptionAggregateArgs>(args: Subset<T, MeetingSeriesAttendeeExceptionAggregateArgs>): Prisma.PrismaPromise<GetMeetingSeriesAttendeeExceptionAggregateType<T>>

    /**
     * Group by MeetingSeriesAttendeeException.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingSeriesAttendeeExceptionGroupByArgs} 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 MeetingSeriesAttendeeExceptionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingSeriesAttendeeExceptionGroupByArgs['orderBy'] }
        : { orderBy?: MeetingSeriesAttendeeExceptionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingSeriesAttendeeExceptionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingSeriesAttendeeExceptionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingSeriesAttendeeException model
   */
  readonly fields: MeetingSeriesAttendeeExceptionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingSeriesAttendeeException.
   * 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__MeetingSeriesAttendeeExceptionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    series<T extends MeetingSeriesDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingSeriesDefaultArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingSeriesAttendeeException model
   */
  interface MeetingSeriesAttendeeExceptionFieldRefs {
    readonly seriesId: FieldRef<"MeetingSeriesAttendeeException", 'String'>
    readonly userId: FieldRef<"MeetingSeriesAttendeeException", 'String'>
    readonly excludedBy: FieldRef<"MeetingSeriesAttendeeException", 'String'>
    readonly excludedAt: FieldRef<"MeetingSeriesAttendeeException", 'DateTime'>
    readonly reason: FieldRef<"MeetingSeriesAttendeeException", 'String'>
  }
    

  // Custom InputTypes
  /**
   * MeetingSeriesAttendeeException findUnique
   */
  export type MeetingSeriesAttendeeExceptionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeeException to fetch.
     */
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
  }

  /**
   * MeetingSeriesAttendeeException findUniqueOrThrow
   */
  export type MeetingSeriesAttendeeExceptionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeeException to fetch.
     */
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
  }

  /**
   * MeetingSeriesAttendeeException findFirst
   */
  export type MeetingSeriesAttendeeExceptionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeeException to fetch.
     */
    where?: MeetingSeriesAttendeeExceptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeriesAttendeeExceptions to fetch.
     */
    orderBy?: MeetingSeriesAttendeeExceptionOrderByWithRelationInput | MeetingSeriesAttendeeExceptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingSeriesAttendeeExceptions.
     */
    cursor?: MeetingSeriesAttendeeExceptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeriesAttendeeExceptions 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` MeetingSeriesAttendeeExceptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingSeriesAttendeeExceptions.
     */
    distinct?: MeetingSeriesAttendeeExceptionScalarFieldEnum | MeetingSeriesAttendeeExceptionScalarFieldEnum[]
  }

  /**
   * MeetingSeriesAttendeeException findFirstOrThrow
   */
  export type MeetingSeriesAttendeeExceptionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeeException to fetch.
     */
    where?: MeetingSeriesAttendeeExceptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeriesAttendeeExceptions to fetch.
     */
    orderBy?: MeetingSeriesAttendeeExceptionOrderByWithRelationInput | MeetingSeriesAttendeeExceptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingSeriesAttendeeExceptions.
     */
    cursor?: MeetingSeriesAttendeeExceptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeriesAttendeeExceptions 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` MeetingSeriesAttendeeExceptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingSeriesAttendeeExceptions.
     */
    distinct?: MeetingSeriesAttendeeExceptionScalarFieldEnum | MeetingSeriesAttendeeExceptionScalarFieldEnum[]
  }

  /**
   * MeetingSeriesAttendeeException findMany
   */
  export type MeetingSeriesAttendeeExceptionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingSeriesAttendeeExceptions to fetch.
     */
    where?: MeetingSeriesAttendeeExceptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingSeriesAttendeeExceptions to fetch.
     */
    orderBy?: MeetingSeriesAttendeeExceptionOrderByWithRelationInput | MeetingSeriesAttendeeExceptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingSeriesAttendeeExceptions.
     */
    cursor?: MeetingSeriesAttendeeExceptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingSeriesAttendeeExceptions 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` MeetingSeriesAttendeeExceptions.
     */
    skip?: number
    distinct?: MeetingSeriesAttendeeExceptionScalarFieldEnum | MeetingSeriesAttendeeExceptionScalarFieldEnum[]
  }

  /**
   * MeetingSeriesAttendeeException create
   */
  export type MeetingSeriesAttendeeExceptionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingSeriesAttendeeException.
     */
    data: XOR<MeetingSeriesAttendeeExceptionCreateInput, MeetingSeriesAttendeeExceptionUncheckedCreateInput>
  }

  /**
   * MeetingSeriesAttendeeException createMany
   */
  export type MeetingSeriesAttendeeExceptionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingSeriesAttendeeExceptions.
     */
    data: MeetingSeriesAttendeeExceptionCreateManyInput | MeetingSeriesAttendeeExceptionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingSeriesAttendeeException createManyAndReturn
   */
  export type MeetingSeriesAttendeeExceptionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingSeriesAttendeeExceptions.
     */
    data: MeetingSeriesAttendeeExceptionCreateManyInput | MeetingSeriesAttendeeExceptionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingSeriesAttendeeException update
   */
  export type MeetingSeriesAttendeeExceptionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingSeriesAttendeeException.
     */
    data: XOR<MeetingSeriesAttendeeExceptionUpdateInput, MeetingSeriesAttendeeExceptionUncheckedUpdateInput>
    /**
     * Choose, which MeetingSeriesAttendeeException to update.
     */
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
  }

  /**
   * MeetingSeriesAttendeeException updateMany
   */
  export type MeetingSeriesAttendeeExceptionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingSeriesAttendeeExceptions.
     */
    data: XOR<MeetingSeriesAttendeeExceptionUpdateManyMutationInput, MeetingSeriesAttendeeExceptionUncheckedUpdateManyInput>
    /**
     * Filter which MeetingSeriesAttendeeExceptions to update
     */
    where?: MeetingSeriesAttendeeExceptionWhereInput
    /**
     * Limit how many MeetingSeriesAttendeeExceptions to update.
     */
    limit?: number
  }

  /**
   * MeetingSeriesAttendeeException updateManyAndReturn
   */
  export type MeetingSeriesAttendeeExceptionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * The data used to update MeetingSeriesAttendeeExceptions.
     */
    data: XOR<MeetingSeriesAttendeeExceptionUpdateManyMutationInput, MeetingSeriesAttendeeExceptionUncheckedUpdateManyInput>
    /**
     * Filter which MeetingSeriesAttendeeExceptions to update
     */
    where?: MeetingSeriesAttendeeExceptionWhereInput
    /**
     * Limit how many MeetingSeriesAttendeeExceptions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingSeriesAttendeeException upsert
   */
  export type MeetingSeriesAttendeeExceptionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingSeriesAttendeeException to update in case it exists.
     */
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
    /**
     * In case the MeetingSeriesAttendeeException found by the `where` argument doesn't exist, create a new MeetingSeriesAttendeeException with this data.
     */
    create: XOR<MeetingSeriesAttendeeExceptionCreateInput, MeetingSeriesAttendeeExceptionUncheckedCreateInput>
    /**
     * In case the MeetingSeriesAttendeeException was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingSeriesAttendeeExceptionUpdateInput, MeetingSeriesAttendeeExceptionUncheckedUpdateInput>
  }

  /**
   * MeetingSeriesAttendeeException delete
   */
  export type MeetingSeriesAttendeeExceptionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
    /**
     * Filter which MeetingSeriesAttendeeException to delete.
     */
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
  }

  /**
   * MeetingSeriesAttendeeException deleteMany
   */
  export type MeetingSeriesAttendeeExceptionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingSeriesAttendeeExceptions to delete
     */
    where?: MeetingSeriesAttendeeExceptionWhereInput
    /**
     * Limit how many MeetingSeriesAttendeeExceptions to delete.
     */
    limit?: number
  }

  /**
   * MeetingSeriesAttendeeException without action
   */
  export type MeetingSeriesAttendeeExceptionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeriesAttendeeException
     */
    select?: MeetingSeriesAttendeeExceptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeriesAttendeeException
     */
    omit?: MeetingSeriesAttendeeExceptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesAttendeeExceptionInclude<ExtArgs> | null
  }


  /**
   * Model MeetingExternalAttendee
   */

  export type AggregateMeetingExternalAttendee = {
    _count: MeetingExternalAttendeeCountAggregateOutputType | null
    _min: MeetingExternalAttendeeMinAggregateOutputType | null
    _max: MeetingExternalAttendeeMaxAggregateOutputType | null
  }

  export type MeetingExternalAttendeeMinAggregateOutputType = {
    id: string | null
    meetingId: string | null
    email: string | null
    displayName: string | null
    attendeeType: string | null
    response: string | null
    sourceRole: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingExternalAttendeeMaxAggregateOutputType = {
    id: string | null
    meetingId: string | null
    email: string | null
    displayName: string | null
    attendeeType: string | null
    response: string | null
    sourceRole: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingExternalAttendeeCountAggregateOutputType = {
    id: number
    meetingId: number
    email: number
    displayName: number
    attendeeType: number
    response: number
    sourceRole: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingExternalAttendeeMinAggregateInputType = {
    id?: true
    meetingId?: true
    email?: true
    displayName?: true
    attendeeType?: true
    response?: true
    sourceRole?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingExternalAttendeeMaxAggregateInputType = {
    id?: true
    meetingId?: true
    email?: true
    displayName?: true
    attendeeType?: true
    response?: true
    sourceRole?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingExternalAttendeeCountAggregateInputType = {
    id?: true
    meetingId?: true
    email?: true
    displayName?: true
    attendeeType?: true
    response?: true
    sourceRole?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingExternalAttendeeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingExternalAttendee to aggregate.
     */
    where?: MeetingExternalAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingExternalAttendees to fetch.
     */
    orderBy?: MeetingExternalAttendeeOrderByWithRelationInput | MeetingExternalAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingExternalAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingExternalAttendees 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` MeetingExternalAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingExternalAttendees
    **/
    _count?: true | MeetingExternalAttendeeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingExternalAttendeeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingExternalAttendeeMaxAggregateInputType
  }

  export type GetMeetingExternalAttendeeAggregateType<T extends MeetingExternalAttendeeAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingExternalAttendee]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingExternalAttendee[P]>
      : GetScalarType<T[P], AggregateMeetingExternalAttendee[P]>
  }




  export type MeetingExternalAttendeeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingExternalAttendeeWhereInput
    orderBy?: MeetingExternalAttendeeOrderByWithAggregationInput | MeetingExternalAttendeeOrderByWithAggregationInput[]
    by: MeetingExternalAttendeeScalarFieldEnum[] | MeetingExternalAttendeeScalarFieldEnum
    having?: MeetingExternalAttendeeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingExternalAttendeeCountAggregateInputType | true
    _min?: MeetingExternalAttendeeMinAggregateInputType
    _max?: MeetingExternalAttendeeMaxAggregateInputType
  }

  export type MeetingExternalAttendeeGroupByOutputType = {
    id: string
    meetingId: string
    email: string
    displayName: string | null
    attendeeType: string | null
    response: string | null
    sourceRole: string
    createdAt: Date
    updatedAt: Date
    _count: MeetingExternalAttendeeCountAggregateOutputType | null
    _min: MeetingExternalAttendeeMinAggregateOutputType | null
    _max: MeetingExternalAttendeeMaxAggregateOutputType | null
  }

  type GetMeetingExternalAttendeeGroupByPayload<T extends MeetingExternalAttendeeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingExternalAttendeeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingExternalAttendeeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingExternalAttendeeGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingExternalAttendeeGroupByOutputType[P]>
        }
      >
    >


  export type MeetingExternalAttendeeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    email?: boolean
    displayName?: boolean
    attendeeType?: boolean
    response?: boolean
    sourceRole?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingExternalAttendee"]>

  export type MeetingExternalAttendeeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    email?: boolean
    displayName?: boolean
    attendeeType?: boolean
    response?: boolean
    sourceRole?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingExternalAttendee"]>

  export type MeetingExternalAttendeeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    email?: boolean
    displayName?: boolean
    attendeeType?: boolean
    response?: boolean
    sourceRole?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingExternalAttendee"]>

  export type MeetingExternalAttendeeSelectScalar = {
    id?: boolean
    meetingId?: boolean
    email?: boolean
    displayName?: boolean
    attendeeType?: boolean
    response?: boolean
    sourceRole?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingExternalAttendeeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "meetingId" | "email" | "displayName" | "attendeeType" | "response" | "sourceRole" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingExternalAttendee"]>
  export type MeetingExternalAttendeeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }
  export type MeetingExternalAttendeeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }
  export type MeetingExternalAttendeeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
  }

  export type $MeetingExternalAttendeePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingExternalAttendee"
    objects: {
      meeting: Prisma.$MeetingPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      meetingId: string
      email: string
      displayName: string | null
      attendeeType: string | null
      response: string | null
      sourceRole: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingExternalAttendee"]>
    composites: {}
  }

  type MeetingExternalAttendeeGetPayload<S extends boolean | null | undefined | MeetingExternalAttendeeDefaultArgs> = $Result.GetResult<Prisma.$MeetingExternalAttendeePayload, S>

  type MeetingExternalAttendeeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingExternalAttendeeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingExternalAttendeeCountAggregateInputType | true
    }

  export interface MeetingExternalAttendeeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingExternalAttendee'], meta: { name: 'MeetingExternalAttendee' } }
    /**
     * Find zero or one MeetingExternalAttendee that matches the filter.
     * @param {MeetingExternalAttendeeFindUniqueArgs} args - Arguments to find a MeetingExternalAttendee
     * @example
     * // Get one MeetingExternalAttendee
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingExternalAttendeeFindUniqueArgs>(args: SelectSubset<T, MeetingExternalAttendeeFindUniqueArgs<ExtArgs>>): Prisma__MeetingExternalAttendeeClient<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingExternalAttendee that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingExternalAttendeeFindUniqueOrThrowArgs} args - Arguments to find a MeetingExternalAttendee
     * @example
     * // Get one MeetingExternalAttendee
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingExternalAttendeeFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingExternalAttendeeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingExternalAttendeeClient<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingExternalAttendee 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 {MeetingExternalAttendeeFindFirstArgs} args - Arguments to find a MeetingExternalAttendee
     * @example
     * // Get one MeetingExternalAttendee
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingExternalAttendeeFindFirstArgs>(args?: SelectSubset<T, MeetingExternalAttendeeFindFirstArgs<ExtArgs>>): Prisma__MeetingExternalAttendeeClient<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingExternalAttendee 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 {MeetingExternalAttendeeFindFirstOrThrowArgs} args - Arguments to find a MeetingExternalAttendee
     * @example
     * // Get one MeetingExternalAttendee
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingExternalAttendeeFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingExternalAttendeeFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingExternalAttendeeClient<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingExternalAttendees 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 {MeetingExternalAttendeeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingExternalAttendees
     * const meetingExternalAttendees = await prisma.meetingExternalAttendee.findMany()
     * 
     * // Get first 10 MeetingExternalAttendees
     * const meetingExternalAttendees = await prisma.meetingExternalAttendee.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingExternalAttendeeWithIdOnly = await prisma.meetingExternalAttendee.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingExternalAttendeeFindManyArgs>(args?: SelectSubset<T, MeetingExternalAttendeeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingExternalAttendee.
     * @param {MeetingExternalAttendeeCreateArgs} args - Arguments to create a MeetingExternalAttendee.
     * @example
     * // Create one MeetingExternalAttendee
     * const MeetingExternalAttendee = await prisma.meetingExternalAttendee.create({
     *   data: {
     *     // ... data to create a MeetingExternalAttendee
     *   }
     * })
     * 
     */
    create<T extends MeetingExternalAttendeeCreateArgs>(args: SelectSubset<T, MeetingExternalAttendeeCreateArgs<ExtArgs>>): Prisma__MeetingExternalAttendeeClient<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingExternalAttendees.
     * @param {MeetingExternalAttendeeCreateManyArgs} args - Arguments to create many MeetingExternalAttendees.
     * @example
     * // Create many MeetingExternalAttendees
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingExternalAttendeeCreateManyArgs>(args?: SelectSubset<T, MeetingExternalAttendeeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingExternalAttendees and returns the data saved in the database.
     * @param {MeetingExternalAttendeeCreateManyAndReturnArgs} args - Arguments to create many MeetingExternalAttendees.
     * @example
     * // Create many MeetingExternalAttendees
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingExternalAttendees and only return the `id`
     * const meetingExternalAttendeeWithIdOnly = await prisma.meetingExternalAttendee.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 MeetingExternalAttendeeCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingExternalAttendeeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingExternalAttendee.
     * @param {MeetingExternalAttendeeDeleteArgs} args - Arguments to delete one MeetingExternalAttendee.
     * @example
     * // Delete one MeetingExternalAttendee
     * const MeetingExternalAttendee = await prisma.meetingExternalAttendee.delete({
     *   where: {
     *     // ... filter to delete one MeetingExternalAttendee
     *   }
     * })
     * 
     */
    delete<T extends MeetingExternalAttendeeDeleteArgs>(args: SelectSubset<T, MeetingExternalAttendeeDeleteArgs<ExtArgs>>): Prisma__MeetingExternalAttendeeClient<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingExternalAttendee.
     * @param {MeetingExternalAttendeeUpdateArgs} args - Arguments to update one MeetingExternalAttendee.
     * @example
     * // Update one MeetingExternalAttendee
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingExternalAttendeeUpdateArgs>(args: SelectSubset<T, MeetingExternalAttendeeUpdateArgs<ExtArgs>>): Prisma__MeetingExternalAttendeeClient<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingExternalAttendees.
     * @param {MeetingExternalAttendeeDeleteManyArgs} args - Arguments to filter MeetingExternalAttendees to delete.
     * @example
     * // Delete a few MeetingExternalAttendees
     * const { count } = await prisma.meetingExternalAttendee.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingExternalAttendeeDeleteManyArgs>(args?: SelectSubset<T, MeetingExternalAttendeeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingExternalAttendees.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingExternalAttendeeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingExternalAttendees
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingExternalAttendeeUpdateManyArgs>(args: SelectSubset<T, MeetingExternalAttendeeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingExternalAttendees and returns the data updated in the database.
     * @param {MeetingExternalAttendeeUpdateManyAndReturnArgs} args - Arguments to update many MeetingExternalAttendees.
     * @example
     * // Update many MeetingExternalAttendees
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingExternalAttendees and only return the `id`
     * const meetingExternalAttendeeWithIdOnly = await prisma.meetingExternalAttendee.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 MeetingExternalAttendeeUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingExternalAttendeeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingExternalAttendee.
     * @param {MeetingExternalAttendeeUpsertArgs} args - Arguments to update or create a MeetingExternalAttendee.
     * @example
     * // Update or create a MeetingExternalAttendee
     * const meetingExternalAttendee = await prisma.meetingExternalAttendee.upsert({
     *   create: {
     *     // ... data to create a MeetingExternalAttendee
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingExternalAttendee we want to update
     *   }
     * })
     */
    upsert<T extends MeetingExternalAttendeeUpsertArgs>(args: SelectSubset<T, MeetingExternalAttendeeUpsertArgs<ExtArgs>>): Prisma__MeetingExternalAttendeeClient<$Result.GetResult<Prisma.$MeetingExternalAttendeePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingExternalAttendees.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingExternalAttendeeCountArgs} args - Arguments to filter MeetingExternalAttendees to count.
     * @example
     * // Count the number of MeetingExternalAttendees
     * const count = await prisma.meetingExternalAttendee.count({
     *   where: {
     *     // ... the filter for the MeetingExternalAttendees we want to count
     *   }
     * })
    **/
    count<T extends MeetingExternalAttendeeCountArgs>(
      args?: Subset<T, MeetingExternalAttendeeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingExternalAttendeeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingExternalAttendee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingExternalAttendeeAggregateArgs} 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 MeetingExternalAttendeeAggregateArgs>(args: Subset<T, MeetingExternalAttendeeAggregateArgs>): Prisma.PrismaPromise<GetMeetingExternalAttendeeAggregateType<T>>

    /**
     * Group by MeetingExternalAttendee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingExternalAttendeeGroupByArgs} 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 MeetingExternalAttendeeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingExternalAttendeeGroupByArgs['orderBy'] }
        : { orderBy?: MeetingExternalAttendeeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingExternalAttendeeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingExternalAttendeeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingExternalAttendee model
   */
  readonly fields: MeetingExternalAttendeeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingExternalAttendee.
   * 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__MeetingExternalAttendeeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    meeting<T extends MeetingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingDefaultArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingExternalAttendee model
   */
  interface MeetingExternalAttendeeFieldRefs {
    readonly id: FieldRef<"MeetingExternalAttendee", 'String'>
    readonly meetingId: FieldRef<"MeetingExternalAttendee", 'String'>
    readonly email: FieldRef<"MeetingExternalAttendee", 'String'>
    readonly displayName: FieldRef<"MeetingExternalAttendee", 'String'>
    readonly attendeeType: FieldRef<"MeetingExternalAttendee", 'String'>
    readonly response: FieldRef<"MeetingExternalAttendee", 'String'>
    readonly sourceRole: FieldRef<"MeetingExternalAttendee", 'String'>
    readonly createdAt: FieldRef<"MeetingExternalAttendee", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingExternalAttendee", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingExternalAttendee findUnique
   */
  export type MeetingExternalAttendeeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingExternalAttendee to fetch.
     */
    where: MeetingExternalAttendeeWhereUniqueInput
  }

  /**
   * MeetingExternalAttendee findUniqueOrThrow
   */
  export type MeetingExternalAttendeeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingExternalAttendee to fetch.
     */
    where: MeetingExternalAttendeeWhereUniqueInput
  }

  /**
   * MeetingExternalAttendee findFirst
   */
  export type MeetingExternalAttendeeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingExternalAttendee to fetch.
     */
    where?: MeetingExternalAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingExternalAttendees to fetch.
     */
    orderBy?: MeetingExternalAttendeeOrderByWithRelationInput | MeetingExternalAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingExternalAttendees.
     */
    cursor?: MeetingExternalAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingExternalAttendees 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` MeetingExternalAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingExternalAttendees.
     */
    distinct?: MeetingExternalAttendeeScalarFieldEnum | MeetingExternalAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingExternalAttendee findFirstOrThrow
   */
  export type MeetingExternalAttendeeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingExternalAttendee to fetch.
     */
    where?: MeetingExternalAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingExternalAttendees to fetch.
     */
    orderBy?: MeetingExternalAttendeeOrderByWithRelationInput | MeetingExternalAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingExternalAttendees.
     */
    cursor?: MeetingExternalAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingExternalAttendees 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` MeetingExternalAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingExternalAttendees.
     */
    distinct?: MeetingExternalAttendeeScalarFieldEnum | MeetingExternalAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingExternalAttendee findMany
   */
  export type MeetingExternalAttendeeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingExternalAttendees to fetch.
     */
    where?: MeetingExternalAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingExternalAttendees to fetch.
     */
    orderBy?: MeetingExternalAttendeeOrderByWithRelationInput | MeetingExternalAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingExternalAttendees.
     */
    cursor?: MeetingExternalAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingExternalAttendees 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` MeetingExternalAttendees.
     */
    skip?: number
    distinct?: MeetingExternalAttendeeScalarFieldEnum | MeetingExternalAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingExternalAttendee create
   */
  export type MeetingExternalAttendeeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingExternalAttendee.
     */
    data: XOR<MeetingExternalAttendeeCreateInput, MeetingExternalAttendeeUncheckedCreateInput>
  }

  /**
   * MeetingExternalAttendee createMany
   */
  export type MeetingExternalAttendeeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingExternalAttendees.
     */
    data: MeetingExternalAttendeeCreateManyInput | MeetingExternalAttendeeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingExternalAttendee createManyAndReturn
   */
  export type MeetingExternalAttendeeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingExternalAttendees.
     */
    data: MeetingExternalAttendeeCreateManyInput | MeetingExternalAttendeeCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingExternalAttendee update
   */
  export type MeetingExternalAttendeeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingExternalAttendee.
     */
    data: XOR<MeetingExternalAttendeeUpdateInput, MeetingExternalAttendeeUncheckedUpdateInput>
    /**
     * Choose, which MeetingExternalAttendee to update.
     */
    where: MeetingExternalAttendeeWhereUniqueInput
  }

  /**
   * MeetingExternalAttendee updateMany
   */
  export type MeetingExternalAttendeeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingExternalAttendees.
     */
    data: XOR<MeetingExternalAttendeeUpdateManyMutationInput, MeetingExternalAttendeeUncheckedUpdateManyInput>
    /**
     * Filter which MeetingExternalAttendees to update
     */
    where?: MeetingExternalAttendeeWhereInput
    /**
     * Limit how many MeetingExternalAttendees to update.
     */
    limit?: number
  }

  /**
   * MeetingExternalAttendee updateManyAndReturn
   */
  export type MeetingExternalAttendeeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * The data used to update MeetingExternalAttendees.
     */
    data: XOR<MeetingExternalAttendeeUpdateManyMutationInput, MeetingExternalAttendeeUncheckedUpdateManyInput>
    /**
     * Filter which MeetingExternalAttendees to update
     */
    where?: MeetingExternalAttendeeWhereInput
    /**
     * Limit how many MeetingExternalAttendees to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingExternalAttendee upsert
   */
  export type MeetingExternalAttendeeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingExternalAttendee to update in case it exists.
     */
    where: MeetingExternalAttendeeWhereUniqueInput
    /**
     * In case the MeetingExternalAttendee found by the `where` argument doesn't exist, create a new MeetingExternalAttendee with this data.
     */
    create: XOR<MeetingExternalAttendeeCreateInput, MeetingExternalAttendeeUncheckedCreateInput>
    /**
     * In case the MeetingExternalAttendee was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingExternalAttendeeUpdateInput, MeetingExternalAttendeeUncheckedUpdateInput>
  }

  /**
   * MeetingExternalAttendee delete
   */
  export type MeetingExternalAttendeeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
    /**
     * Filter which MeetingExternalAttendee to delete.
     */
    where: MeetingExternalAttendeeWhereUniqueInput
  }

  /**
   * MeetingExternalAttendee deleteMany
   */
  export type MeetingExternalAttendeeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingExternalAttendees to delete
     */
    where?: MeetingExternalAttendeeWhereInput
    /**
     * Limit how many MeetingExternalAttendees to delete.
     */
    limit?: number
  }

  /**
   * MeetingExternalAttendee without action
   */
  export type MeetingExternalAttendeeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingExternalAttendee
     */
    select?: MeetingExternalAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingExternalAttendee
     */
    omit?: MeetingExternalAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingExternalAttendeeInclude<ExtArgs> | null
  }


  /**
   * Model MeetingTemplate
   */

  export type AggregateMeetingTemplate = {
    _count: MeetingTemplateCountAggregateOutputType | null
    _avg: MeetingTemplateAvgAggregateOutputType | null
    _sum: MeetingTemplateSumAggregateOutputType | null
    _min: MeetingTemplateMinAggregateOutputType | null
    _max: MeetingTemplateMaxAggregateOutputType | null
  }

  export type MeetingTemplateAvgAggregateOutputType = {
    duration: number | null
  }

  export type MeetingTemplateSumAggregateOutputType = {
    duration: number | null
  }

  export type MeetingTemplateMinAggregateOutputType = {
    id: string | null
    name: string | null
    title: string | null
    description: string | null
    duration: number | null
    timezone: string | null
    location: string | null
    type: $Enums.MeetingType | null
    creatorId: string | null
    isPublic: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingTemplateMaxAggregateOutputType = {
    id: string | null
    name: string | null
    title: string | null
    description: string | null
    duration: number | null
    timezone: string | null
    location: string | null
    type: $Enums.MeetingType | null
    creatorId: string | null
    isPublic: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingTemplateCountAggregateOutputType = {
    id: number
    name: number
    title: number
    description: number
    duration: number
    timezone: number
    location: number
    type: number
    creatorId: number
    isPublic: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingTemplateAvgAggregateInputType = {
    duration?: true
  }

  export type MeetingTemplateSumAggregateInputType = {
    duration?: true
  }

  export type MeetingTemplateMinAggregateInputType = {
    id?: true
    name?: true
    title?: true
    description?: true
    duration?: true
    timezone?: true
    location?: true
    type?: true
    creatorId?: true
    isPublic?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingTemplateMaxAggregateInputType = {
    id?: true
    name?: true
    title?: true
    description?: true
    duration?: true
    timezone?: true
    location?: true
    type?: true
    creatorId?: true
    isPublic?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingTemplateCountAggregateInputType = {
    id?: true
    name?: true
    title?: true
    description?: true
    duration?: true
    timezone?: true
    location?: true
    type?: true
    creatorId?: true
    isPublic?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingTemplateAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingTemplate to aggregate.
     */
    where?: MeetingTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingTemplates to fetch.
     */
    orderBy?: MeetingTemplateOrderByWithRelationInput | MeetingTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingTemplates 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` MeetingTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingTemplates
    **/
    _count?: true | MeetingTemplateCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingTemplateAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingTemplateSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingTemplateMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingTemplateMaxAggregateInputType
  }

  export type GetMeetingTemplateAggregateType<T extends MeetingTemplateAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingTemplate]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingTemplate[P]>
      : GetScalarType<T[P], AggregateMeetingTemplate[P]>
  }




  export type MeetingTemplateGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingTemplateWhereInput
    orderBy?: MeetingTemplateOrderByWithAggregationInput | MeetingTemplateOrderByWithAggregationInput[]
    by: MeetingTemplateScalarFieldEnum[] | MeetingTemplateScalarFieldEnum
    having?: MeetingTemplateScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingTemplateCountAggregateInputType | true
    _avg?: MeetingTemplateAvgAggregateInputType
    _sum?: MeetingTemplateSumAggregateInputType
    _min?: MeetingTemplateMinAggregateInputType
    _max?: MeetingTemplateMaxAggregateInputType
  }

  export type MeetingTemplateGroupByOutputType = {
    id: string
    name: string
    title: string
    description: string | null
    duration: number
    timezone: string
    location: string | null
    type: $Enums.MeetingType
    creatorId: string
    isPublic: boolean
    createdAt: Date
    updatedAt: Date
    _count: MeetingTemplateCountAggregateOutputType | null
    _avg: MeetingTemplateAvgAggregateOutputType | null
    _sum: MeetingTemplateSumAggregateOutputType | null
    _min: MeetingTemplateMinAggregateOutputType | null
    _max: MeetingTemplateMaxAggregateOutputType | null
  }

  type GetMeetingTemplateGroupByPayload<T extends MeetingTemplateGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingTemplateGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingTemplateGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingTemplateGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingTemplateGroupByOutputType[P]>
        }
      >
    >


  export type MeetingTemplateSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    title?: boolean
    description?: boolean
    duration?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    creatorId?: boolean
    isPublic?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    templateAttendees?: boolean | MeetingTemplate$templateAttendeesArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    _count?: boolean | MeetingTemplateCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingTemplate"]>

  export type MeetingTemplateSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    title?: boolean
    description?: boolean
    duration?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    creatorId?: boolean
    isPublic?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingTemplate"]>

  export type MeetingTemplateSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    title?: boolean
    description?: boolean
    duration?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    creatorId?: boolean
    isPublic?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingTemplate"]>

  export type MeetingTemplateSelectScalar = {
    id?: boolean
    name?: boolean
    title?: boolean
    description?: boolean
    duration?: boolean
    timezone?: boolean
    location?: boolean
    type?: boolean
    creatorId?: boolean
    isPublic?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingTemplateOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "title" | "description" | "duration" | "timezone" | "location" | "type" | "creatorId" | "isPublic" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingTemplate"]>
  export type MeetingTemplateInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    templateAttendees?: boolean | MeetingTemplate$templateAttendeesArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    _count?: boolean | MeetingTemplateCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type MeetingTemplateIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingTemplateIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $MeetingTemplatePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingTemplate"
    objects: {
      templateAttendees: Prisma.$MeetingTemplateAttendeePayload<ExtArgs>[]
      creator: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      title: string
      description: string | null
      duration: number
      timezone: string
      location: string | null
      type: $Enums.MeetingType
      creatorId: string
      isPublic: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingTemplate"]>
    composites: {}
  }

  type MeetingTemplateGetPayload<S extends boolean | null | undefined | MeetingTemplateDefaultArgs> = $Result.GetResult<Prisma.$MeetingTemplatePayload, S>

  type MeetingTemplateCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingTemplateFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingTemplateCountAggregateInputType | true
    }

  export interface MeetingTemplateDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingTemplate'], meta: { name: 'MeetingTemplate' } }
    /**
     * Find zero or one MeetingTemplate that matches the filter.
     * @param {MeetingTemplateFindUniqueArgs} args - Arguments to find a MeetingTemplate
     * @example
     * // Get one MeetingTemplate
     * const meetingTemplate = await prisma.meetingTemplate.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingTemplateFindUniqueArgs>(args: SelectSubset<T, MeetingTemplateFindUniqueArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingTemplate that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingTemplateFindUniqueOrThrowArgs} args - Arguments to find a MeetingTemplate
     * @example
     * // Get one MeetingTemplate
     * const meetingTemplate = await prisma.meetingTemplate.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingTemplateFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingTemplateFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingTemplate 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 {MeetingTemplateFindFirstArgs} args - Arguments to find a MeetingTemplate
     * @example
     * // Get one MeetingTemplate
     * const meetingTemplate = await prisma.meetingTemplate.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingTemplateFindFirstArgs>(args?: SelectSubset<T, MeetingTemplateFindFirstArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingTemplate 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 {MeetingTemplateFindFirstOrThrowArgs} args - Arguments to find a MeetingTemplate
     * @example
     * // Get one MeetingTemplate
     * const meetingTemplate = await prisma.meetingTemplate.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingTemplateFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingTemplateFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingTemplates 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 {MeetingTemplateFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingTemplates
     * const meetingTemplates = await prisma.meetingTemplate.findMany()
     * 
     * // Get first 10 MeetingTemplates
     * const meetingTemplates = await prisma.meetingTemplate.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingTemplateWithIdOnly = await prisma.meetingTemplate.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingTemplateFindManyArgs>(args?: SelectSubset<T, MeetingTemplateFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingTemplate.
     * @param {MeetingTemplateCreateArgs} args - Arguments to create a MeetingTemplate.
     * @example
     * // Create one MeetingTemplate
     * const MeetingTemplate = await prisma.meetingTemplate.create({
     *   data: {
     *     // ... data to create a MeetingTemplate
     *   }
     * })
     * 
     */
    create<T extends MeetingTemplateCreateArgs>(args: SelectSubset<T, MeetingTemplateCreateArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingTemplates.
     * @param {MeetingTemplateCreateManyArgs} args - Arguments to create many MeetingTemplates.
     * @example
     * // Create many MeetingTemplates
     * const meetingTemplate = await prisma.meetingTemplate.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingTemplateCreateManyArgs>(args?: SelectSubset<T, MeetingTemplateCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingTemplates and returns the data saved in the database.
     * @param {MeetingTemplateCreateManyAndReturnArgs} args - Arguments to create many MeetingTemplates.
     * @example
     * // Create many MeetingTemplates
     * const meetingTemplate = await prisma.meetingTemplate.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingTemplates and only return the `id`
     * const meetingTemplateWithIdOnly = await prisma.meetingTemplate.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 MeetingTemplateCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingTemplateCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingTemplate.
     * @param {MeetingTemplateDeleteArgs} args - Arguments to delete one MeetingTemplate.
     * @example
     * // Delete one MeetingTemplate
     * const MeetingTemplate = await prisma.meetingTemplate.delete({
     *   where: {
     *     // ... filter to delete one MeetingTemplate
     *   }
     * })
     * 
     */
    delete<T extends MeetingTemplateDeleteArgs>(args: SelectSubset<T, MeetingTemplateDeleteArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingTemplate.
     * @param {MeetingTemplateUpdateArgs} args - Arguments to update one MeetingTemplate.
     * @example
     * // Update one MeetingTemplate
     * const meetingTemplate = await prisma.meetingTemplate.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingTemplateUpdateArgs>(args: SelectSubset<T, MeetingTemplateUpdateArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingTemplates.
     * @param {MeetingTemplateDeleteManyArgs} args - Arguments to filter MeetingTemplates to delete.
     * @example
     * // Delete a few MeetingTemplates
     * const { count } = await prisma.meetingTemplate.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingTemplateDeleteManyArgs>(args?: SelectSubset<T, MeetingTemplateDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingTemplates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingTemplateUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingTemplates
     * const meetingTemplate = await prisma.meetingTemplate.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingTemplateUpdateManyArgs>(args: SelectSubset<T, MeetingTemplateUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingTemplates and returns the data updated in the database.
     * @param {MeetingTemplateUpdateManyAndReturnArgs} args - Arguments to update many MeetingTemplates.
     * @example
     * // Update many MeetingTemplates
     * const meetingTemplate = await prisma.meetingTemplate.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingTemplates and only return the `id`
     * const meetingTemplateWithIdOnly = await prisma.meetingTemplate.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 MeetingTemplateUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingTemplateUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingTemplate.
     * @param {MeetingTemplateUpsertArgs} args - Arguments to update or create a MeetingTemplate.
     * @example
     * // Update or create a MeetingTemplate
     * const meetingTemplate = await prisma.meetingTemplate.upsert({
     *   create: {
     *     // ... data to create a MeetingTemplate
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingTemplate we want to update
     *   }
     * })
     */
    upsert<T extends MeetingTemplateUpsertArgs>(args: SelectSubset<T, MeetingTemplateUpsertArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingTemplates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingTemplateCountArgs} args - Arguments to filter MeetingTemplates to count.
     * @example
     * // Count the number of MeetingTemplates
     * const count = await prisma.meetingTemplate.count({
     *   where: {
     *     // ... the filter for the MeetingTemplates we want to count
     *   }
     * })
    **/
    count<T extends MeetingTemplateCountArgs>(
      args?: Subset<T, MeetingTemplateCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingTemplateCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingTemplate.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingTemplateAggregateArgs} 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 MeetingTemplateAggregateArgs>(args: Subset<T, MeetingTemplateAggregateArgs>): Prisma.PrismaPromise<GetMeetingTemplateAggregateType<T>>

    /**
     * Group by MeetingTemplate.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingTemplateGroupByArgs} 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 MeetingTemplateGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingTemplateGroupByArgs['orderBy'] }
        : { orderBy?: MeetingTemplateGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingTemplateGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingTemplateGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingTemplate model
   */
  readonly fields: MeetingTemplateFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingTemplate.
   * 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__MeetingTemplateClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    templateAttendees<T extends MeetingTemplate$templateAttendeesArgs<ExtArgs> = {}>(args?: Subset<T, MeetingTemplate$templateAttendeesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingTemplate model
   */
  interface MeetingTemplateFieldRefs {
    readonly id: FieldRef<"MeetingTemplate", 'String'>
    readonly name: FieldRef<"MeetingTemplate", 'String'>
    readonly title: FieldRef<"MeetingTemplate", 'String'>
    readonly description: FieldRef<"MeetingTemplate", 'String'>
    readonly duration: FieldRef<"MeetingTemplate", 'Int'>
    readonly timezone: FieldRef<"MeetingTemplate", 'String'>
    readonly location: FieldRef<"MeetingTemplate", 'String'>
    readonly type: FieldRef<"MeetingTemplate", 'MeetingType'>
    readonly creatorId: FieldRef<"MeetingTemplate", 'String'>
    readonly isPublic: FieldRef<"MeetingTemplate", 'Boolean'>
    readonly createdAt: FieldRef<"MeetingTemplate", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingTemplate", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingTemplate findUnique
   */
  export type MeetingTemplateFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplate to fetch.
     */
    where: MeetingTemplateWhereUniqueInput
  }

  /**
   * MeetingTemplate findUniqueOrThrow
   */
  export type MeetingTemplateFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplate to fetch.
     */
    where: MeetingTemplateWhereUniqueInput
  }

  /**
   * MeetingTemplate findFirst
   */
  export type MeetingTemplateFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplate to fetch.
     */
    where?: MeetingTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingTemplates to fetch.
     */
    orderBy?: MeetingTemplateOrderByWithRelationInput | MeetingTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingTemplates.
     */
    cursor?: MeetingTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingTemplates 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` MeetingTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingTemplates.
     */
    distinct?: MeetingTemplateScalarFieldEnum | MeetingTemplateScalarFieldEnum[]
  }

  /**
   * MeetingTemplate findFirstOrThrow
   */
  export type MeetingTemplateFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplate to fetch.
     */
    where?: MeetingTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingTemplates to fetch.
     */
    orderBy?: MeetingTemplateOrderByWithRelationInput | MeetingTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingTemplates.
     */
    cursor?: MeetingTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingTemplates 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` MeetingTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingTemplates.
     */
    distinct?: MeetingTemplateScalarFieldEnum | MeetingTemplateScalarFieldEnum[]
  }

  /**
   * MeetingTemplate findMany
   */
  export type MeetingTemplateFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplates to fetch.
     */
    where?: MeetingTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingTemplates to fetch.
     */
    orderBy?: MeetingTemplateOrderByWithRelationInput | MeetingTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingTemplates.
     */
    cursor?: MeetingTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingTemplates 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` MeetingTemplates.
     */
    skip?: number
    distinct?: MeetingTemplateScalarFieldEnum | MeetingTemplateScalarFieldEnum[]
  }

  /**
   * MeetingTemplate create
   */
  export type MeetingTemplateCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingTemplate.
     */
    data: XOR<MeetingTemplateCreateInput, MeetingTemplateUncheckedCreateInput>
  }

  /**
   * MeetingTemplate createMany
   */
  export type MeetingTemplateCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingTemplates.
     */
    data: MeetingTemplateCreateManyInput | MeetingTemplateCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingTemplate createManyAndReturn
   */
  export type MeetingTemplateCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingTemplates.
     */
    data: MeetingTemplateCreateManyInput | MeetingTemplateCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingTemplate update
   */
  export type MeetingTemplateUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingTemplate.
     */
    data: XOR<MeetingTemplateUpdateInput, MeetingTemplateUncheckedUpdateInput>
    /**
     * Choose, which MeetingTemplate to update.
     */
    where: MeetingTemplateWhereUniqueInput
  }

  /**
   * MeetingTemplate updateMany
   */
  export type MeetingTemplateUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingTemplates.
     */
    data: XOR<MeetingTemplateUpdateManyMutationInput, MeetingTemplateUncheckedUpdateManyInput>
    /**
     * Filter which MeetingTemplates to update
     */
    where?: MeetingTemplateWhereInput
    /**
     * Limit how many MeetingTemplates to update.
     */
    limit?: number
  }

  /**
   * MeetingTemplate updateManyAndReturn
   */
  export type MeetingTemplateUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * The data used to update MeetingTemplates.
     */
    data: XOR<MeetingTemplateUpdateManyMutationInput, MeetingTemplateUncheckedUpdateManyInput>
    /**
     * Filter which MeetingTemplates to update
     */
    where?: MeetingTemplateWhereInput
    /**
     * Limit how many MeetingTemplates to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingTemplate upsert
   */
  export type MeetingTemplateUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingTemplate to update in case it exists.
     */
    where: MeetingTemplateWhereUniqueInput
    /**
     * In case the MeetingTemplate found by the `where` argument doesn't exist, create a new MeetingTemplate with this data.
     */
    create: XOR<MeetingTemplateCreateInput, MeetingTemplateUncheckedCreateInput>
    /**
     * In case the MeetingTemplate was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingTemplateUpdateInput, MeetingTemplateUncheckedUpdateInput>
  }

  /**
   * MeetingTemplate delete
   */
  export type MeetingTemplateDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
    /**
     * Filter which MeetingTemplate to delete.
     */
    where: MeetingTemplateWhereUniqueInput
  }

  /**
   * MeetingTemplate deleteMany
   */
  export type MeetingTemplateDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingTemplates to delete
     */
    where?: MeetingTemplateWhereInput
    /**
     * Limit how many MeetingTemplates to delete.
     */
    limit?: number
  }

  /**
   * MeetingTemplate.templateAttendees
   */
  export type MeetingTemplate$templateAttendeesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    where?: MeetingTemplateAttendeeWhereInput
    orderBy?: MeetingTemplateAttendeeOrderByWithRelationInput | MeetingTemplateAttendeeOrderByWithRelationInput[]
    cursor?: MeetingTemplateAttendeeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingTemplateAttendeeScalarFieldEnum | MeetingTemplateAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingTemplate without action
   */
  export type MeetingTemplateDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplate
     */
    select?: MeetingTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplate
     */
    omit?: MeetingTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateInclude<ExtArgs> | null
  }


  /**
   * Model MeetingTemplateAttendee
   */

  export type AggregateMeetingTemplateAttendee = {
    _count: MeetingTemplateAttendeeCountAggregateOutputType | null
    _min: MeetingTemplateAttendeeMinAggregateOutputType | null
    _max: MeetingTemplateAttendeeMaxAggregateOutputType | null
  }

  export type MeetingTemplateAttendeeMinAggregateOutputType = {
    id: string | null
    templateId: string | null
    userId: string | null
    createdAt: Date | null
  }

  export type MeetingTemplateAttendeeMaxAggregateOutputType = {
    id: string | null
    templateId: string | null
    userId: string | null
    createdAt: Date | null
  }

  export type MeetingTemplateAttendeeCountAggregateOutputType = {
    id: number
    templateId: number
    userId: number
    createdAt: number
    _all: number
  }


  export type MeetingTemplateAttendeeMinAggregateInputType = {
    id?: true
    templateId?: true
    userId?: true
    createdAt?: true
  }

  export type MeetingTemplateAttendeeMaxAggregateInputType = {
    id?: true
    templateId?: true
    userId?: true
    createdAt?: true
  }

  export type MeetingTemplateAttendeeCountAggregateInputType = {
    id?: true
    templateId?: true
    userId?: true
    createdAt?: true
    _all?: true
  }

  export type MeetingTemplateAttendeeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingTemplateAttendee to aggregate.
     */
    where?: MeetingTemplateAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingTemplateAttendees to fetch.
     */
    orderBy?: MeetingTemplateAttendeeOrderByWithRelationInput | MeetingTemplateAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingTemplateAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingTemplateAttendees 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` MeetingTemplateAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingTemplateAttendees
    **/
    _count?: true | MeetingTemplateAttendeeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingTemplateAttendeeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingTemplateAttendeeMaxAggregateInputType
  }

  export type GetMeetingTemplateAttendeeAggregateType<T extends MeetingTemplateAttendeeAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingTemplateAttendee]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingTemplateAttendee[P]>
      : GetScalarType<T[P], AggregateMeetingTemplateAttendee[P]>
  }




  export type MeetingTemplateAttendeeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingTemplateAttendeeWhereInput
    orderBy?: MeetingTemplateAttendeeOrderByWithAggregationInput | MeetingTemplateAttendeeOrderByWithAggregationInput[]
    by: MeetingTemplateAttendeeScalarFieldEnum[] | MeetingTemplateAttendeeScalarFieldEnum
    having?: MeetingTemplateAttendeeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingTemplateAttendeeCountAggregateInputType | true
    _min?: MeetingTemplateAttendeeMinAggregateInputType
    _max?: MeetingTemplateAttendeeMaxAggregateInputType
  }

  export type MeetingTemplateAttendeeGroupByOutputType = {
    id: string
    templateId: string
    userId: string
    createdAt: Date
    _count: MeetingTemplateAttendeeCountAggregateOutputType | null
    _min: MeetingTemplateAttendeeMinAggregateOutputType | null
    _max: MeetingTemplateAttendeeMaxAggregateOutputType | null
  }

  type GetMeetingTemplateAttendeeGroupByPayload<T extends MeetingTemplateAttendeeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingTemplateAttendeeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingTemplateAttendeeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingTemplateAttendeeGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingTemplateAttendeeGroupByOutputType[P]>
        }
      >
    >


  export type MeetingTemplateAttendeeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    templateId?: boolean
    userId?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | MeetingTemplateDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingTemplateAttendee"]>

  export type MeetingTemplateAttendeeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    templateId?: boolean
    userId?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | MeetingTemplateDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingTemplateAttendee"]>

  export type MeetingTemplateAttendeeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    templateId?: boolean
    userId?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | MeetingTemplateDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingTemplateAttendee"]>

  export type MeetingTemplateAttendeeSelectScalar = {
    id?: boolean
    templateId?: boolean
    userId?: boolean
    createdAt?: boolean
  }

  export type MeetingTemplateAttendeeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "templateId" | "userId" | "createdAt", ExtArgs["result"]["meetingTemplateAttendee"]>
  export type MeetingTemplateAttendeeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | MeetingTemplateDefaultArgs<ExtArgs>
  }
  export type MeetingTemplateAttendeeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | MeetingTemplateDefaultArgs<ExtArgs>
  }
  export type MeetingTemplateAttendeeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | MeetingTemplateDefaultArgs<ExtArgs>
  }

  export type $MeetingTemplateAttendeePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingTemplateAttendee"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
      template: Prisma.$MeetingTemplatePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      templateId: string
      userId: string
      createdAt: Date
    }, ExtArgs["result"]["meetingTemplateAttendee"]>
    composites: {}
  }

  type MeetingTemplateAttendeeGetPayload<S extends boolean | null | undefined | MeetingTemplateAttendeeDefaultArgs> = $Result.GetResult<Prisma.$MeetingTemplateAttendeePayload, S>

  type MeetingTemplateAttendeeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingTemplateAttendeeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingTemplateAttendeeCountAggregateInputType | true
    }

  export interface MeetingTemplateAttendeeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingTemplateAttendee'], meta: { name: 'MeetingTemplateAttendee' } }
    /**
     * Find zero or one MeetingTemplateAttendee that matches the filter.
     * @param {MeetingTemplateAttendeeFindUniqueArgs} args - Arguments to find a MeetingTemplateAttendee
     * @example
     * // Get one MeetingTemplateAttendee
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingTemplateAttendeeFindUniqueArgs>(args: SelectSubset<T, MeetingTemplateAttendeeFindUniqueArgs<ExtArgs>>): Prisma__MeetingTemplateAttendeeClient<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingTemplateAttendee that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingTemplateAttendeeFindUniqueOrThrowArgs} args - Arguments to find a MeetingTemplateAttendee
     * @example
     * // Get one MeetingTemplateAttendee
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingTemplateAttendeeFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingTemplateAttendeeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingTemplateAttendeeClient<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingTemplateAttendee 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 {MeetingTemplateAttendeeFindFirstArgs} args - Arguments to find a MeetingTemplateAttendee
     * @example
     * // Get one MeetingTemplateAttendee
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingTemplateAttendeeFindFirstArgs>(args?: SelectSubset<T, MeetingTemplateAttendeeFindFirstArgs<ExtArgs>>): Prisma__MeetingTemplateAttendeeClient<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingTemplateAttendee 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 {MeetingTemplateAttendeeFindFirstOrThrowArgs} args - Arguments to find a MeetingTemplateAttendee
     * @example
     * // Get one MeetingTemplateAttendee
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingTemplateAttendeeFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingTemplateAttendeeFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingTemplateAttendeeClient<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingTemplateAttendees 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 {MeetingTemplateAttendeeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingTemplateAttendees
     * const meetingTemplateAttendees = await prisma.meetingTemplateAttendee.findMany()
     * 
     * // Get first 10 MeetingTemplateAttendees
     * const meetingTemplateAttendees = await prisma.meetingTemplateAttendee.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingTemplateAttendeeWithIdOnly = await prisma.meetingTemplateAttendee.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingTemplateAttendeeFindManyArgs>(args?: SelectSubset<T, MeetingTemplateAttendeeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingTemplateAttendee.
     * @param {MeetingTemplateAttendeeCreateArgs} args - Arguments to create a MeetingTemplateAttendee.
     * @example
     * // Create one MeetingTemplateAttendee
     * const MeetingTemplateAttendee = await prisma.meetingTemplateAttendee.create({
     *   data: {
     *     // ... data to create a MeetingTemplateAttendee
     *   }
     * })
     * 
     */
    create<T extends MeetingTemplateAttendeeCreateArgs>(args: SelectSubset<T, MeetingTemplateAttendeeCreateArgs<ExtArgs>>): Prisma__MeetingTemplateAttendeeClient<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingTemplateAttendees.
     * @param {MeetingTemplateAttendeeCreateManyArgs} args - Arguments to create many MeetingTemplateAttendees.
     * @example
     * // Create many MeetingTemplateAttendees
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingTemplateAttendeeCreateManyArgs>(args?: SelectSubset<T, MeetingTemplateAttendeeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingTemplateAttendees and returns the data saved in the database.
     * @param {MeetingTemplateAttendeeCreateManyAndReturnArgs} args - Arguments to create many MeetingTemplateAttendees.
     * @example
     * // Create many MeetingTemplateAttendees
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingTemplateAttendees and only return the `id`
     * const meetingTemplateAttendeeWithIdOnly = await prisma.meetingTemplateAttendee.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 MeetingTemplateAttendeeCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingTemplateAttendeeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingTemplateAttendee.
     * @param {MeetingTemplateAttendeeDeleteArgs} args - Arguments to delete one MeetingTemplateAttendee.
     * @example
     * // Delete one MeetingTemplateAttendee
     * const MeetingTemplateAttendee = await prisma.meetingTemplateAttendee.delete({
     *   where: {
     *     // ... filter to delete one MeetingTemplateAttendee
     *   }
     * })
     * 
     */
    delete<T extends MeetingTemplateAttendeeDeleteArgs>(args: SelectSubset<T, MeetingTemplateAttendeeDeleteArgs<ExtArgs>>): Prisma__MeetingTemplateAttendeeClient<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingTemplateAttendee.
     * @param {MeetingTemplateAttendeeUpdateArgs} args - Arguments to update one MeetingTemplateAttendee.
     * @example
     * // Update one MeetingTemplateAttendee
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingTemplateAttendeeUpdateArgs>(args: SelectSubset<T, MeetingTemplateAttendeeUpdateArgs<ExtArgs>>): Prisma__MeetingTemplateAttendeeClient<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingTemplateAttendees.
     * @param {MeetingTemplateAttendeeDeleteManyArgs} args - Arguments to filter MeetingTemplateAttendees to delete.
     * @example
     * // Delete a few MeetingTemplateAttendees
     * const { count } = await prisma.meetingTemplateAttendee.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingTemplateAttendeeDeleteManyArgs>(args?: SelectSubset<T, MeetingTemplateAttendeeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingTemplateAttendees.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingTemplateAttendeeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingTemplateAttendees
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingTemplateAttendeeUpdateManyArgs>(args: SelectSubset<T, MeetingTemplateAttendeeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingTemplateAttendees and returns the data updated in the database.
     * @param {MeetingTemplateAttendeeUpdateManyAndReturnArgs} args - Arguments to update many MeetingTemplateAttendees.
     * @example
     * // Update many MeetingTemplateAttendees
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingTemplateAttendees and only return the `id`
     * const meetingTemplateAttendeeWithIdOnly = await prisma.meetingTemplateAttendee.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 MeetingTemplateAttendeeUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingTemplateAttendeeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingTemplateAttendee.
     * @param {MeetingTemplateAttendeeUpsertArgs} args - Arguments to update or create a MeetingTemplateAttendee.
     * @example
     * // Update or create a MeetingTemplateAttendee
     * const meetingTemplateAttendee = await prisma.meetingTemplateAttendee.upsert({
     *   create: {
     *     // ... data to create a MeetingTemplateAttendee
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingTemplateAttendee we want to update
     *   }
     * })
     */
    upsert<T extends MeetingTemplateAttendeeUpsertArgs>(args: SelectSubset<T, MeetingTemplateAttendeeUpsertArgs<ExtArgs>>): Prisma__MeetingTemplateAttendeeClient<$Result.GetResult<Prisma.$MeetingTemplateAttendeePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingTemplateAttendees.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingTemplateAttendeeCountArgs} args - Arguments to filter MeetingTemplateAttendees to count.
     * @example
     * // Count the number of MeetingTemplateAttendees
     * const count = await prisma.meetingTemplateAttendee.count({
     *   where: {
     *     // ... the filter for the MeetingTemplateAttendees we want to count
     *   }
     * })
    **/
    count<T extends MeetingTemplateAttendeeCountArgs>(
      args?: Subset<T, MeetingTemplateAttendeeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingTemplateAttendeeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingTemplateAttendee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingTemplateAttendeeAggregateArgs} 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 MeetingTemplateAttendeeAggregateArgs>(args: Subset<T, MeetingTemplateAttendeeAggregateArgs>): Prisma.PrismaPromise<GetMeetingTemplateAttendeeAggregateType<T>>

    /**
     * Group by MeetingTemplateAttendee.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingTemplateAttendeeGroupByArgs} 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 MeetingTemplateAttendeeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingTemplateAttendeeGroupByArgs['orderBy'] }
        : { orderBy?: MeetingTemplateAttendeeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingTemplateAttendeeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingTemplateAttendeeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingTemplateAttendee model
   */
  readonly fields: MeetingTemplateAttendeeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingTemplateAttendee.
   * 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__MeetingTemplateAttendeeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    template<T extends MeetingTemplateDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingTemplateDefaultArgs<ExtArgs>>): Prisma__MeetingTemplateClient<$Result.GetResult<Prisma.$MeetingTemplatePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingTemplateAttendee model
   */
  interface MeetingTemplateAttendeeFieldRefs {
    readonly id: FieldRef<"MeetingTemplateAttendee", 'String'>
    readonly templateId: FieldRef<"MeetingTemplateAttendee", 'String'>
    readonly userId: FieldRef<"MeetingTemplateAttendee", 'String'>
    readonly createdAt: FieldRef<"MeetingTemplateAttendee", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingTemplateAttendee findUnique
   */
  export type MeetingTemplateAttendeeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplateAttendee to fetch.
     */
    where: MeetingTemplateAttendeeWhereUniqueInput
  }

  /**
   * MeetingTemplateAttendee findUniqueOrThrow
   */
  export type MeetingTemplateAttendeeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplateAttendee to fetch.
     */
    where: MeetingTemplateAttendeeWhereUniqueInput
  }

  /**
   * MeetingTemplateAttendee findFirst
   */
  export type MeetingTemplateAttendeeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplateAttendee to fetch.
     */
    where?: MeetingTemplateAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingTemplateAttendees to fetch.
     */
    orderBy?: MeetingTemplateAttendeeOrderByWithRelationInput | MeetingTemplateAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingTemplateAttendees.
     */
    cursor?: MeetingTemplateAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingTemplateAttendees 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` MeetingTemplateAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingTemplateAttendees.
     */
    distinct?: MeetingTemplateAttendeeScalarFieldEnum | MeetingTemplateAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingTemplateAttendee findFirstOrThrow
   */
  export type MeetingTemplateAttendeeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplateAttendee to fetch.
     */
    where?: MeetingTemplateAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingTemplateAttendees to fetch.
     */
    orderBy?: MeetingTemplateAttendeeOrderByWithRelationInput | MeetingTemplateAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingTemplateAttendees.
     */
    cursor?: MeetingTemplateAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingTemplateAttendees 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` MeetingTemplateAttendees.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingTemplateAttendees.
     */
    distinct?: MeetingTemplateAttendeeScalarFieldEnum | MeetingTemplateAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingTemplateAttendee findMany
   */
  export type MeetingTemplateAttendeeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * Filter, which MeetingTemplateAttendees to fetch.
     */
    where?: MeetingTemplateAttendeeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingTemplateAttendees to fetch.
     */
    orderBy?: MeetingTemplateAttendeeOrderByWithRelationInput | MeetingTemplateAttendeeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingTemplateAttendees.
     */
    cursor?: MeetingTemplateAttendeeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingTemplateAttendees 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` MeetingTemplateAttendees.
     */
    skip?: number
    distinct?: MeetingTemplateAttendeeScalarFieldEnum | MeetingTemplateAttendeeScalarFieldEnum[]
  }

  /**
   * MeetingTemplateAttendee create
   */
  export type MeetingTemplateAttendeeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingTemplateAttendee.
     */
    data: XOR<MeetingTemplateAttendeeCreateInput, MeetingTemplateAttendeeUncheckedCreateInput>
  }

  /**
   * MeetingTemplateAttendee createMany
   */
  export type MeetingTemplateAttendeeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingTemplateAttendees.
     */
    data: MeetingTemplateAttendeeCreateManyInput | MeetingTemplateAttendeeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingTemplateAttendee createManyAndReturn
   */
  export type MeetingTemplateAttendeeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingTemplateAttendees.
     */
    data: MeetingTemplateAttendeeCreateManyInput | MeetingTemplateAttendeeCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingTemplateAttendee update
   */
  export type MeetingTemplateAttendeeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingTemplateAttendee.
     */
    data: XOR<MeetingTemplateAttendeeUpdateInput, MeetingTemplateAttendeeUncheckedUpdateInput>
    /**
     * Choose, which MeetingTemplateAttendee to update.
     */
    where: MeetingTemplateAttendeeWhereUniqueInput
  }

  /**
   * MeetingTemplateAttendee updateMany
   */
  export type MeetingTemplateAttendeeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingTemplateAttendees.
     */
    data: XOR<MeetingTemplateAttendeeUpdateManyMutationInput, MeetingTemplateAttendeeUncheckedUpdateManyInput>
    /**
     * Filter which MeetingTemplateAttendees to update
     */
    where?: MeetingTemplateAttendeeWhereInput
    /**
     * Limit how many MeetingTemplateAttendees to update.
     */
    limit?: number
  }

  /**
   * MeetingTemplateAttendee updateManyAndReturn
   */
  export type MeetingTemplateAttendeeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * The data used to update MeetingTemplateAttendees.
     */
    data: XOR<MeetingTemplateAttendeeUpdateManyMutationInput, MeetingTemplateAttendeeUncheckedUpdateManyInput>
    /**
     * Filter which MeetingTemplateAttendees to update
     */
    where?: MeetingTemplateAttendeeWhereInput
    /**
     * Limit how many MeetingTemplateAttendees to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingTemplateAttendee upsert
   */
  export type MeetingTemplateAttendeeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingTemplateAttendee to update in case it exists.
     */
    where: MeetingTemplateAttendeeWhereUniqueInput
    /**
     * In case the MeetingTemplateAttendee found by the `where` argument doesn't exist, create a new MeetingTemplateAttendee with this data.
     */
    create: XOR<MeetingTemplateAttendeeCreateInput, MeetingTemplateAttendeeUncheckedCreateInput>
    /**
     * In case the MeetingTemplateAttendee was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingTemplateAttendeeUpdateInput, MeetingTemplateAttendeeUncheckedUpdateInput>
  }

  /**
   * MeetingTemplateAttendee delete
   */
  export type MeetingTemplateAttendeeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
    /**
     * Filter which MeetingTemplateAttendee to delete.
     */
    where: MeetingTemplateAttendeeWhereUniqueInput
  }

  /**
   * MeetingTemplateAttendee deleteMany
   */
  export type MeetingTemplateAttendeeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingTemplateAttendees to delete
     */
    where?: MeetingTemplateAttendeeWhereInput
    /**
     * Limit how many MeetingTemplateAttendees to delete.
     */
    limit?: number
  }

  /**
   * MeetingTemplateAttendee without action
   */
  export type MeetingTemplateAttendeeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingTemplateAttendee
     */
    select?: MeetingTemplateAttendeeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingTemplateAttendee
     */
    omit?: MeetingTemplateAttendeeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingTemplateAttendeeInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAttendanceLeaveRecord
   */

  export type AggregateMeetingAttendanceLeaveRecord = {
    _count: MeetingAttendanceLeaveRecordCountAggregateOutputType | null
    _min: MeetingAttendanceLeaveRecordMinAggregateOutputType | null
    _max: MeetingAttendanceLeaveRecordMaxAggregateOutputType | null
  }

  export type MeetingAttendanceLeaveRecordMinAggregateOutputType = {
    id: string | null
    userId: string | null
    type: $Enums.LeaveType | null
    startDate: Date | null
    endDate: Date | null
    reason: string | null
    status: $Enums.LeaveStatus | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceLeaveRecordMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    type: $Enums.LeaveType | null
    startDate: Date | null
    endDate: Date | null
    reason: string | null
    status: $Enums.LeaveStatus | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceLeaveRecordCountAggregateOutputType = {
    id: number
    userId: number
    type: number
    startDate: number
    endDate: number
    reason: number
    status: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingAttendanceLeaveRecordMinAggregateInputType = {
    id?: true
    userId?: true
    type?: true
    startDate?: true
    endDate?: true
    reason?: true
    status?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceLeaveRecordMaxAggregateInputType = {
    id?: true
    userId?: true
    type?: true
    startDate?: true
    endDate?: true
    reason?: true
    status?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceLeaveRecordCountAggregateInputType = {
    id?: true
    userId?: true
    type?: true
    startDate?: true
    endDate?: true
    reason?: true
    status?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingAttendanceLeaveRecordAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceLeaveRecord to aggregate.
     */
    where?: MeetingAttendanceLeaveRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceLeaveRecords to fetch.
     */
    orderBy?: MeetingAttendanceLeaveRecordOrderByWithRelationInput | MeetingAttendanceLeaveRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAttendanceLeaveRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceLeaveRecords 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` MeetingAttendanceLeaveRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAttendanceLeaveRecords
    **/
    _count?: true | MeetingAttendanceLeaveRecordCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAttendanceLeaveRecordMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAttendanceLeaveRecordMaxAggregateInputType
  }

  export type GetMeetingAttendanceLeaveRecordAggregateType<T extends MeetingAttendanceLeaveRecordAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAttendanceLeaveRecord]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAttendanceLeaveRecord[P]>
      : GetScalarType<T[P], AggregateMeetingAttendanceLeaveRecord[P]>
  }




  export type MeetingAttendanceLeaveRecordGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceLeaveRecordWhereInput
    orderBy?: MeetingAttendanceLeaveRecordOrderByWithAggregationInput | MeetingAttendanceLeaveRecordOrderByWithAggregationInput[]
    by: MeetingAttendanceLeaveRecordScalarFieldEnum[] | MeetingAttendanceLeaveRecordScalarFieldEnum
    having?: MeetingAttendanceLeaveRecordScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAttendanceLeaveRecordCountAggregateInputType | true
    _min?: MeetingAttendanceLeaveRecordMinAggregateInputType
    _max?: MeetingAttendanceLeaveRecordMaxAggregateInputType
  }

  export type MeetingAttendanceLeaveRecordGroupByOutputType = {
    id: string
    userId: string
    type: $Enums.LeaveType
    startDate: Date
    endDate: Date
    reason: string | null
    status: $Enums.LeaveStatus
    createdAt: Date
    updatedAt: Date
    _count: MeetingAttendanceLeaveRecordCountAggregateOutputType | null
    _min: MeetingAttendanceLeaveRecordMinAggregateOutputType | null
    _max: MeetingAttendanceLeaveRecordMaxAggregateOutputType | null
  }

  type GetMeetingAttendanceLeaveRecordGroupByPayload<T extends MeetingAttendanceLeaveRecordGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAttendanceLeaveRecordGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAttendanceLeaveRecordGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAttendanceLeaveRecordGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAttendanceLeaveRecordGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAttendanceLeaveRecordSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    type?: boolean
    startDate?: boolean
    endDate?: boolean
    reason?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceLeaveRecord"]>

  export type MeetingAttendanceLeaveRecordSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    type?: boolean
    startDate?: boolean
    endDate?: boolean
    reason?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceLeaveRecord"]>

  export type MeetingAttendanceLeaveRecordSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    type?: boolean
    startDate?: boolean
    endDate?: boolean
    reason?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceLeaveRecord"]>

  export type MeetingAttendanceLeaveRecordSelectScalar = {
    id?: boolean
    userId?: boolean
    type?: boolean
    startDate?: boolean
    endDate?: boolean
    reason?: boolean
    status?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingAttendanceLeaveRecordOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "type" | "startDate" | "endDate" | "reason" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingAttendanceLeaveRecord"]>
  export type MeetingAttendanceLeaveRecordInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceLeaveRecordIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceLeaveRecordIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $MeetingAttendanceLeaveRecordPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAttendanceLeaveRecord"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      type: $Enums.LeaveType
      startDate: Date
      endDate: Date
      reason: string | null
      status: $Enums.LeaveStatus
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingAttendanceLeaveRecord"]>
    composites: {}
  }

  type MeetingAttendanceLeaveRecordGetPayload<S extends boolean | null | undefined | MeetingAttendanceLeaveRecordDefaultArgs> = $Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload, S>

  type MeetingAttendanceLeaveRecordCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAttendanceLeaveRecordFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAttendanceLeaveRecordCountAggregateInputType | true
    }

  export interface MeetingAttendanceLeaveRecordDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAttendanceLeaveRecord'], meta: { name: 'MeetingAttendanceLeaveRecord' } }
    /**
     * Find zero or one MeetingAttendanceLeaveRecord that matches the filter.
     * @param {MeetingAttendanceLeaveRecordFindUniqueArgs} args - Arguments to find a MeetingAttendanceLeaveRecord
     * @example
     * // Get one MeetingAttendanceLeaveRecord
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAttendanceLeaveRecordFindUniqueArgs>(args: SelectSubset<T, MeetingAttendanceLeaveRecordFindUniqueArgs<ExtArgs>>): Prisma__MeetingAttendanceLeaveRecordClient<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAttendanceLeaveRecord that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAttendanceLeaveRecordFindUniqueOrThrowArgs} args - Arguments to find a MeetingAttendanceLeaveRecord
     * @example
     * // Get one MeetingAttendanceLeaveRecord
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAttendanceLeaveRecordFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAttendanceLeaveRecordFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceLeaveRecordClient<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceLeaveRecord 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 {MeetingAttendanceLeaveRecordFindFirstArgs} args - Arguments to find a MeetingAttendanceLeaveRecord
     * @example
     * // Get one MeetingAttendanceLeaveRecord
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAttendanceLeaveRecordFindFirstArgs>(args?: SelectSubset<T, MeetingAttendanceLeaveRecordFindFirstArgs<ExtArgs>>): Prisma__MeetingAttendanceLeaveRecordClient<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceLeaveRecord 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 {MeetingAttendanceLeaveRecordFindFirstOrThrowArgs} args - Arguments to find a MeetingAttendanceLeaveRecord
     * @example
     * // Get one MeetingAttendanceLeaveRecord
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAttendanceLeaveRecordFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAttendanceLeaveRecordFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceLeaveRecordClient<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAttendanceLeaveRecords 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 {MeetingAttendanceLeaveRecordFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAttendanceLeaveRecords
     * const meetingAttendanceLeaveRecords = await prisma.meetingAttendanceLeaveRecord.findMany()
     * 
     * // Get first 10 MeetingAttendanceLeaveRecords
     * const meetingAttendanceLeaveRecords = await prisma.meetingAttendanceLeaveRecord.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAttendanceLeaveRecordWithIdOnly = await prisma.meetingAttendanceLeaveRecord.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAttendanceLeaveRecordFindManyArgs>(args?: SelectSubset<T, MeetingAttendanceLeaveRecordFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAttendanceLeaveRecord.
     * @param {MeetingAttendanceLeaveRecordCreateArgs} args - Arguments to create a MeetingAttendanceLeaveRecord.
     * @example
     * // Create one MeetingAttendanceLeaveRecord
     * const MeetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.create({
     *   data: {
     *     // ... data to create a MeetingAttendanceLeaveRecord
     *   }
     * })
     * 
     */
    create<T extends MeetingAttendanceLeaveRecordCreateArgs>(args: SelectSubset<T, MeetingAttendanceLeaveRecordCreateArgs<ExtArgs>>): Prisma__MeetingAttendanceLeaveRecordClient<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAttendanceLeaveRecords.
     * @param {MeetingAttendanceLeaveRecordCreateManyArgs} args - Arguments to create many MeetingAttendanceLeaveRecords.
     * @example
     * // Create many MeetingAttendanceLeaveRecords
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAttendanceLeaveRecordCreateManyArgs>(args?: SelectSubset<T, MeetingAttendanceLeaveRecordCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAttendanceLeaveRecords and returns the data saved in the database.
     * @param {MeetingAttendanceLeaveRecordCreateManyAndReturnArgs} args - Arguments to create many MeetingAttendanceLeaveRecords.
     * @example
     * // Create many MeetingAttendanceLeaveRecords
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAttendanceLeaveRecords and only return the `id`
     * const meetingAttendanceLeaveRecordWithIdOnly = await prisma.meetingAttendanceLeaveRecord.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 MeetingAttendanceLeaveRecordCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAttendanceLeaveRecordCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAttendanceLeaveRecord.
     * @param {MeetingAttendanceLeaveRecordDeleteArgs} args - Arguments to delete one MeetingAttendanceLeaveRecord.
     * @example
     * // Delete one MeetingAttendanceLeaveRecord
     * const MeetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.delete({
     *   where: {
     *     // ... filter to delete one MeetingAttendanceLeaveRecord
     *   }
     * })
     * 
     */
    delete<T extends MeetingAttendanceLeaveRecordDeleteArgs>(args: SelectSubset<T, MeetingAttendanceLeaveRecordDeleteArgs<ExtArgs>>): Prisma__MeetingAttendanceLeaveRecordClient<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAttendanceLeaveRecord.
     * @param {MeetingAttendanceLeaveRecordUpdateArgs} args - Arguments to update one MeetingAttendanceLeaveRecord.
     * @example
     * // Update one MeetingAttendanceLeaveRecord
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAttendanceLeaveRecordUpdateArgs>(args: SelectSubset<T, MeetingAttendanceLeaveRecordUpdateArgs<ExtArgs>>): Prisma__MeetingAttendanceLeaveRecordClient<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAttendanceLeaveRecords.
     * @param {MeetingAttendanceLeaveRecordDeleteManyArgs} args - Arguments to filter MeetingAttendanceLeaveRecords to delete.
     * @example
     * // Delete a few MeetingAttendanceLeaveRecords
     * const { count } = await prisma.meetingAttendanceLeaveRecord.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAttendanceLeaveRecordDeleteManyArgs>(args?: SelectSubset<T, MeetingAttendanceLeaveRecordDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceLeaveRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceLeaveRecordUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAttendanceLeaveRecords
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAttendanceLeaveRecordUpdateManyArgs>(args: SelectSubset<T, MeetingAttendanceLeaveRecordUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceLeaveRecords and returns the data updated in the database.
     * @param {MeetingAttendanceLeaveRecordUpdateManyAndReturnArgs} args - Arguments to update many MeetingAttendanceLeaveRecords.
     * @example
     * // Update many MeetingAttendanceLeaveRecords
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAttendanceLeaveRecords and only return the `id`
     * const meetingAttendanceLeaveRecordWithIdOnly = await prisma.meetingAttendanceLeaveRecord.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 MeetingAttendanceLeaveRecordUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAttendanceLeaveRecordUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAttendanceLeaveRecord.
     * @param {MeetingAttendanceLeaveRecordUpsertArgs} args - Arguments to update or create a MeetingAttendanceLeaveRecord.
     * @example
     * // Update or create a MeetingAttendanceLeaveRecord
     * const meetingAttendanceLeaveRecord = await prisma.meetingAttendanceLeaveRecord.upsert({
     *   create: {
     *     // ... data to create a MeetingAttendanceLeaveRecord
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAttendanceLeaveRecord we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAttendanceLeaveRecordUpsertArgs>(args: SelectSubset<T, MeetingAttendanceLeaveRecordUpsertArgs<ExtArgs>>): Prisma__MeetingAttendanceLeaveRecordClient<$Result.GetResult<Prisma.$MeetingAttendanceLeaveRecordPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAttendanceLeaveRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceLeaveRecordCountArgs} args - Arguments to filter MeetingAttendanceLeaveRecords to count.
     * @example
     * // Count the number of MeetingAttendanceLeaveRecords
     * const count = await prisma.meetingAttendanceLeaveRecord.count({
     *   where: {
     *     // ... the filter for the MeetingAttendanceLeaveRecords we want to count
     *   }
     * })
    **/
    count<T extends MeetingAttendanceLeaveRecordCountArgs>(
      args?: Subset<T, MeetingAttendanceLeaveRecordCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAttendanceLeaveRecordCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAttendanceLeaveRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceLeaveRecordAggregateArgs} 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 MeetingAttendanceLeaveRecordAggregateArgs>(args: Subset<T, MeetingAttendanceLeaveRecordAggregateArgs>): Prisma.PrismaPromise<GetMeetingAttendanceLeaveRecordAggregateType<T>>

    /**
     * Group by MeetingAttendanceLeaveRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceLeaveRecordGroupByArgs} 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 MeetingAttendanceLeaveRecordGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAttendanceLeaveRecordGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAttendanceLeaveRecordGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAttendanceLeaveRecordGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAttendanceLeaveRecordGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAttendanceLeaveRecord model
   */
  readonly fields: MeetingAttendanceLeaveRecordFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAttendanceLeaveRecord.
   * 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__MeetingAttendanceLeaveRecordClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAttendanceLeaveRecord model
   */
  interface MeetingAttendanceLeaveRecordFieldRefs {
    readonly id: FieldRef<"MeetingAttendanceLeaveRecord", 'String'>
    readonly userId: FieldRef<"MeetingAttendanceLeaveRecord", 'String'>
    readonly type: FieldRef<"MeetingAttendanceLeaveRecord", 'LeaveType'>
    readonly startDate: FieldRef<"MeetingAttendanceLeaveRecord", 'DateTime'>
    readonly endDate: FieldRef<"MeetingAttendanceLeaveRecord", 'DateTime'>
    readonly reason: FieldRef<"MeetingAttendanceLeaveRecord", 'String'>
    readonly status: FieldRef<"MeetingAttendanceLeaveRecord", 'LeaveStatus'>
    readonly createdAt: FieldRef<"MeetingAttendanceLeaveRecord", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAttendanceLeaveRecord", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAttendanceLeaveRecord findUnique
   */
  export type MeetingAttendanceLeaveRecordFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceLeaveRecord to fetch.
     */
    where: MeetingAttendanceLeaveRecordWhereUniqueInput
  }

  /**
   * MeetingAttendanceLeaveRecord findUniqueOrThrow
   */
  export type MeetingAttendanceLeaveRecordFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceLeaveRecord to fetch.
     */
    where: MeetingAttendanceLeaveRecordWhereUniqueInput
  }

  /**
   * MeetingAttendanceLeaveRecord findFirst
   */
  export type MeetingAttendanceLeaveRecordFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceLeaveRecord to fetch.
     */
    where?: MeetingAttendanceLeaveRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceLeaveRecords to fetch.
     */
    orderBy?: MeetingAttendanceLeaveRecordOrderByWithRelationInput | MeetingAttendanceLeaveRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceLeaveRecords.
     */
    cursor?: MeetingAttendanceLeaveRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceLeaveRecords 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` MeetingAttendanceLeaveRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceLeaveRecords.
     */
    distinct?: MeetingAttendanceLeaveRecordScalarFieldEnum | MeetingAttendanceLeaveRecordScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceLeaveRecord findFirstOrThrow
   */
  export type MeetingAttendanceLeaveRecordFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceLeaveRecord to fetch.
     */
    where?: MeetingAttendanceLeaveRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceLeaveRecords to fetch.
     */
    orderBy?: MeetingAttendanceLeaveRecordOrderByWithRelationInput | MeetingAttendanceLeaveRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceLeaveRecords.
     */
    cursor?: MeetingAttendanceLeaveRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceLeaveRecords 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` MeetingAttendanceLeaveRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceLeaveRecords.
     */
    distinct?: MeetingAttendanceLeaveRecordScalarFieldEnum | MeetingAttendanceLeaveRecordScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceLeaveRecord findMany
   */
  export type MeetingAttendanceLeaveRecordFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceLeaveRecords to fetch.
     */
    where?: MeetingAttendanceLeaveRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceLeaveRecords to fetch.
     */
    orderBy?: MeetingAttendanceLeaveRecordOrderByWithRelationInput | MeetingAttendanceLeaveRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAttendanceLeaveRecords.
     */
    cursor?: MeetingAttendanceLeaveRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceLeaveRecords 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` MeetingAttendanceLeaveRecords.
     */
    skip?: number
    distinct?: MeetingAttendanceLeaveRecordScalarFieldEnum | MeetingAttendanceLeaveRecordScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceLeaveRecord create
   */
  export type MeetingAttendanceLeaveRecordCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAttendanceLeaveRecord.
     */
    data: XOR<MeetingAttendanceLeaveRecordCreateInput, MeetingAttendanceLeaveRecordUncheckedCreateInput>
  }

  /**
   * MeetingAttendanceLeaveRecord createMany
   */
  export type MeetingAttendanceLeaveRecordCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAttendanceLeaveRecords.
     */
    data: MeetingAttendanceLeaveRecordCreateManyInput | MeetingAttendanceLeaveRecordCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceLeaveRecord createManyAndReturn
   */
  export type MeetingAttendanceLeaveRecordCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAttendanceLeaveRecords.
     */
    data: MeetingAttendanceLeaveRecordCreateManyInput | MeetingAttendanceLeaveRecordCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttendanceLeaveRecord update
   */
  export type MeetingAttendanceLeaveRecordUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAttendanceLeaveRecord.
     */
    data: XOR<MeetingAttendanceLeaveRecordUpdateInput, MeetingAttendanceLeaveRecordUncheckedUpdateInput>
    /**
     * Choose, which MeetingAttendanceLeaveRecord to update.
     */
    where: MeetingAttendanceLeaveRecordWhereUniqueInput
  }

  /**
   * MeetingAttendanceLeaveRecord updateMany
   */
  export type MeetingAttendanceLeaveRecordUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAttendanceLeaveRecords.
     */
    data: XOR<MeetingAttendanceLeaveRecordUpdateManyMutationInput, MeetingAttendanceLeaveRecordUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceLeaveRecords to update
     */
    where?: MeetingAttendanceLeaveRecordWhereInput
    /**
     * Limit how many MeetingAttendanceLeaveRecords to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceLeaveRecord updateManyAndReturn
   */
  export type MeetingAttendanceLeaveRecordUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAttendanceLeaveRecords.
     */
    data: XOR<MeetingAttendanceLeaveRecordUpdateManyMutationInput, MeetingAttendanceLeaveRecordUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceLeaveRecords to update
     */
    where?: MeetingAttendanceLeaveRecordWhereInput
    /**
     * Limit how many MeetingAttendanceLeaveRecords to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttendanceLeaveRecord upsert
   */
  export type MeetingAttendanceLeaveRecordUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAttendanceLeaveRecord to update in case it exists.
     */
    where: MeetingAttendanceLeaveRecordWhereUniqueInput
    /**
     * In case the MeetingAttendanceLeaveRecord found by the `where` argument doesn't exist, create a new MeetingAttendanceLeaveRecord with this data.
     */
    create: XOR<MeetingAttendanceLeaveRecordCreateInput, MeetingAttendanceLeaveRecordUncheckedCreateInput>
    /**
     * In case the MeetingAttendanceLeaveRecord was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAttendanceLeaveRecordUpdateInput, MeetingAttendanceLeaveRecordUncheckedUpdateInput>
  }

  /**
   * MeetingAttendanceLeaveRecord delete
   */
  export type MeetingAttendanceLeaveRecordDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
    /**
     * Filter which MeetingAttendanceLeaveRecord to delete.
     */
    where: MeetingAttendanceLeaveRecordWhereUniqueInput
  }

  /**
   * MeetingAttendanceLeaveRecord deleteMany
   */
  export type MeetingAttendanceLeaveRecordDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceLeaveRecords to delete
     */
    where?: MeetingAttendanceLeaveRecordWhereInput
    /**
     * Limit how many MeetingAttendanceLeaveRecords to delete.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceLeaveRecord without action
   */
  export type MeetingAttendanceLeaveRecordDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceLeaveRecord
     */
    select?: MeetingAttendanceLeaveRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceLeaveRecord
     */
    omit?: MeetingAttendanceLeaveRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceLeaveRecordInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAttendanceAuditLog
   */

  export type AggregateMeetingAttendanceAuditLog = {
    _count: MeetingAttendanceAuditLogCountAggregateOutputType | null
    _avg: MeetingAttendanceAuditLogAvgAggregateOutputType | null
    _sum: MeetingAttendanceAuditLogSumAggregateOutputType | null
    _min: MeetingAttendanceAuditLogMinAggregateOutputType | null
    _max: MeetingAttendanceAuditLogMaxAggregateOutputType | null
  }

  export type MeetingAttendanceAuditLogAvgAggregateOutputType = {
    statusCode: number | null
    duration: number | null
  }

  export type MeetingAttendanceAuditLogSumAggregateOutputType = {
    statusCode: number | null
    duration: number | null
  }

  export type MeetingAttendanceAuditLogMinAggregateOutputType = {
    id: string | null
    userId: string | null
    userEmail: string | null
    userName: string | null
    userRole: string | null
    action: string | null
    resource: string | null
    resourceId: string | null
    method: string | null
    endpoint: string | null
    statusCode: number | null
    source: string | null
    deviceId: string | null
    sessionId: string | null
    requestId: string | null
    traceId: string | null
    geoLocation: string | null
    ipAddress: string | null
    userAgent: string | null
    fieldDiffs: string | null
    requestBody: string | null
    changes: string | null
    reasonCode: string | null
    reasonText: string | null
    errorMessage: string | null
    prevHash: string | null
    hash: string | null
    isRedacted: boolean | null
    isTombstoned: boolean | null
    retentionUntil: Date | null
    duration: number | null
    createdAt: Date | null
  }

  export type MeetingAttendanceAuditLogMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    userEmail: string | null
    userName: string | null
    userRole: string | null
    action: string | null
    resource: string | null
    resourceId: string | null
    method: string | null
    endpoint: string | null
    statusCode: number | null
    source: string | null
    deviceId: string | null
    sessionId: string | null
    requestId: string | null
    traceId: string | null
    geoLocation: string | null
    ipAddress: string | null
    userAgent: string | null
    fieldDiffs: string | null
    requestBody: string | null
    changes: string | null
    reasonCode: string | null
    reasonText: string | null
    errorMessage: string | null
    prevHash: string | null
    hash: string | null
    isRedacted: boolean | null
    isTombstoned: boolean | null
    retentionUntil: Date | null
    duration: number | null
    createdAt: Date | null
  }

  export type MeetingAttendanceAuditLogCountAggregateOutputType = {
    id: number
    userId: number
    userEmail: number
    userName: number
    userRole: number
    action: number
    resource: number
    resourceId: number
    method: number
    endpoint: number
    statusCode: number
    source: number
    deviceId: number
    sessionId: number
    requestId: number
    traceId: number
    geoLocation: number
    ipAddress: number
    userAgent: number
    fieldDiffs: number
    requestBody: number
    changes: number
    reasonCode: number
    reasonText: number
    errorMessage: number
    prevHash: number
    hash: number
    isRedacted: number
    isTombstoned: number
    retentionUntil: number
    duration: number
    createdAt: number
    _all: number
  }


  export type MeetingAttendanceAuditLogAvgAggregateInputType = {
    statusCode?: true
    duration?: true
  }

  export type MeetingAttendanceAuditLogSumAggregateInputType = {
    statusCode?: true
    duration?: true
  }

  export type MeetingAttendanceAuditLogMinAggregateInputType = {
    id?: true
    userId?: true
    userEmail?: true
    userName?: true
    userRole?: true
    action?: true
    resource?: true
    resourceId?: true
    method?: true
    endpoint?: true
    statusCode?: true
    source?: true
    deviceId?: true
    sessionId?: true
    requestId?: true
    traceId?: true
    geoLocation?: true
    ipAddress?: true
    userAgent?: true
    fieldDiffs?: true
    requestBody?: true
    changes?: true
    reasonCode?: true
    reasonText?: true
    errorMessage?: true
    prevHash?: true
    hash?: true
    isRedacted?: true
    isTombstoned?: true
    retentionUntil?: true
    duration?: true
    createdAt?: true
  }

  export type MeetingAttendanceAuditLogMaxAggregateInputType = {
    id?: true
    userId?: true
    userEmail?: true
    userName?: true
    userRole?: true
    action?: true
    resource?: true
    resourceId?: true
    method?: true
    endpoint?: true
    statusCode?: true
    source?: true
    deviceId?: true
    sessionId?: true
    requestId?: true
    traceId?: true
    geoLocation?: true
    ipAddress?: true
    userAgent?: true
    fieldDiffs?: true
    requestBody?: true
    changes?: true
    reasonCode?: true
    reasonText?: true
    errorMessage?: true
    prevHash?: true
    hash?: true
    isRedacted?: true
    isTombstoned?: true
    retentionUntil?: true
    duration?: true
    createdAt?: true
  }

  export type MeetingAttendanceAuditLogCountAggregateInputType = {
    id?: true
    userId?: true
    userEmail?: true
    userName?: true
    userRole?: true
    action?: true
    resource?: true
    resourceId?: true
    method?: true
    endpoint?: true
    statusCode?: true
    source?: true
    deviceId?: true
    sessionId?: true
    requestId?: true
    traceId?: true
    geoLocation?: true
    ipAddress?: true
    userAgent?: true
    fieldDiffs?: true
    requestBody?: true
    changes?: true
    reasonCode?: true
    reasonText?: true
    errorMessage?: true
    prevHash?: true
    hash?: true
    isRedacted?: true
    isTombstoned?: true
    retentionUntil?: true
    duration?: true
    createdAt?: true
    _all?: true
  }

  export type MeetingAttendanceAuditLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceAuditLog to aggregate.
     */
    where?: MeetingAttendanceAuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditLogs to fetch.
     */
    orderBy?: MeetingAttendanceAuditLogOrderByWithRelationInput | MeetingAttendanceAuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAttendanceAuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditLogs 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` MeetingAttendanceAuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAttendanceAuditLogs
    **/
    _count?: true | MeetingAttendanceAuditLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAttendanceAuditLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingAttendanceAuditLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAttendanceAuditLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAttendanceAuditLogMaxAggregateInputType
  }

  export type GetMeetingAttendanceAuditLogAggregateType<T extends MeetingAttendanceAuditLogAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAttendanceAuditLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAttendanceAuditLog[P]>
      : GetScalarType<T[P], AggregateMeetingAttendanceAuditLog[P]>
  }




  export type MeetingAttendanceAuditLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceAuditLogWhereInput
    orderBy?: MeetingAttendanceAuditLogOrderByWithAggregationInput | MeetingAttendanceAuditLogOrderByWithAggregationInput[]
    by: MeetingAttendanceAuditLogScalarFieldEnum[] | MeetingAttendanceAuditLogScalarFieldEnum
    having?: MeetingAttendanceAuditLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAttendanceAuditLogCountAggregateInputType | true
    _avg?: MeetingAttendanceAuditLogAvgAggregateInputType
    _sum?: MeetingAttendanceAuditLogSumAggregateInputType
    _min?: MeetingAttendanceAuditLogMinAggregateInputType
    _max?: MeetingAttendanceAuditLogMaxAggregateInputType
  }

  export type MeetingAttendanceAuditLogGroupByOutputType = {
    id: string
    userId: string
    userEmail: string
    userName: string
    userRole: string
    action: string
    resource: string
    resourceId: string | null
    method: string
    endpoint: string
    statusCode: number
    source: string
    deviceId: string | null
    sessionId: string | null
    requestId: string | null
    traceId: string | null
    geoLocation: string | null
    ipAddress: string | null
    userAgent: string | null
    fieldDiffs: string | null
    requestBody: string | null
    changes: string | null
    reasonCode: string | null
    reasonText: string | null
    errorMessage: string | null
    prevHash: string | null
    hash: string | null
    isRedacted: boolean
    isTombstoned: boolean
    retentionUntil: Date | null
    duration: number | null
    createdAt: Date
    _count: MeetingAttendanceAuditLogCountAggregateOutputType | null
    _avg: MeetingAttendanceAuditLogAvgAggregateOutputType | null
    _sum: MeetingAttendanceAuditLogSumAggregateOutputType | null
    _min: MeetingAttendanceAuditLogMinAggregateOutputType | null
    _max: MeetingAttendanceAuditLogMaxAggregateOutputType | null
  }

  type GetMeetingAttendanceAuditLogGroupByPayload<T extends MeetingAttendanceAuditLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAttendanceAuditLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAttendanceAuditLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAttendanceAuditLogGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAttendanceAuditLogGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAttendanceAuditLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    userEmail?: boolean
    userName?: boolean
    userRole?: boolean
    action?: boolean
    resource?: boolean
    resourceId?: boolean
    method?: boolean
    endpoint?: boolean
    statusCode?: boolean
    source?: boolean
    deviceId?: boolean
    sessionId?: boolean
    requestId?: boolean
    traceId?: boolean
    geoLocation?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    fieldDiffs?: boolean
    requestBody?: boolean
    changes?: boolean
    reasonCode?: boolean
    reasonText?: boolean
    errorMessage?: boolean
    prevHash?: boolean
    hash?: boolean
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: boolean
    duration?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceAuditLog"]>

  export type MeetingAttendanceAuditLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    userEmail?: boolean
    userName?: boolean
    userRole?: boolean
    action?: boolean
    resource?: boolean
    resourceId?: boolean
    method?: boolean
    endpoint?: boolean
    statusCode?: boolean
    source?: boolean
    deviceId?: boolean
    sessionId?: boolean
    requestId?: boolean
    traceId?: boolean
    geoLocation?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    fieldDiffs?: boolean
    requestBody?: boolean
    changes?: boolean
    reasonCode?: boolean
    reasonText?: boolean
    errorMessage?: boolean
    prevHash?: boolean
    hash?: boolean
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: boolean
    duration?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceAuditLog"]>

  export type MeetingAttendanceAuditLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    userEmail?: boolean
    userName?: boolean
    userRole?: boolean
    action?: boolean
    resource?: boolean
    resourceId?: boolean
    method?: boolean
    endpoint?: boolean
    statusCode?: boolean
    source?: boolean
    deviceId?: boolean
    sessionId?: boolean
    requestId?: boolean
    traceId?: boolean
    geoLocation?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    fieldDiffs?: boolean
    requestBody?: boolean
    changes?: boolean
    reasonCode?: boolean
    reasonText?: boolean
    errorMessage?: boolean
    prevHash?: boolean
    hash?: boolean
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: boolean
    duration?: boolean
    createdAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceAuditLog"]>

  export type MeetingAttendanceAuditLogSelectScalar = {
    id?: boolean
    userId?: boolean
    userEmail?: boolean
    userName?: boolean
    userRole?: boolean
    action?: boolean
    resource?: boolean
    resourceId?: boolean
    method?: boolean
    endpoint?: boolean
    statusCode?: boolean
    source?: boolean
    deviceId?: boolean
    sessionId?: boolean
    requestId?: boolean
    traceId?: boolean
    geoLocation?: boolean
    ipAddress?: boolean
    userAgent?: boolean
    fieldDiffs?: boolean
    requestBody?: boolean
    changes?: boolean
    reasonCode?: boolean
    reasonText?: boolean
    errorMessage?: boolean
    prevHash?: boolean
    hash?: boolean
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: boolean
    duration?: boolean
    createdAt?: boolean
  }

  export type MeetingAttendanceAuditLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "userEmail" | "userName" | "userRole" | "action" | "resource" | "resourceId" | "method" | "endpoint" | "statusCode" | "source" | "deviceId" | "sessionId" | "requestId" | "traceId" | "geoLocation" | "ipAddress" | "userAgent" | "fieldDiffs" | "requestBody" | "changes" | "reasonCode" | "reasonText" | "errorMessage" | "prevHash" | "hash" | "isRedacted" | "isTombstoned" | "retentionUntil" | "duration" | "createdAt", ExtArgs["result"]["meetingAttendanceAuditLog"]>
  export type MeetingAttendanceAuditLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceAuditLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceAuditLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $MeetingAttendanceAuditLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAttendanceAuditLog"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      userEmail: string
      userName: string
      userRole: string
      action: string
      resource: string
      resourceId: string | null
      method: string
      endpoint: string
      statusCode: number
      source: string
      deviceId: string | null
      sessionId: string | null
      requestId: string | null
      traceId: string | null
      geoLocation: string | null
      ipAddress: string | null
      userAgent: string | null
      fieldDiffs: string | null
      requestBody: string | null
      changes: string | null
      reasonCode: string | null
      reasonText: string | null
      errorMessage: string | null
      prevHash: string | null
      hash: string | null
      isRedacted: boolean
      isTombstoned: boolean
      retentionUntil: Date | null
      duration: number | null
      createdAt: Date
    }, ExtArgs["result"]["meetingAttendanceAuditLog"]>
    composites: {}
  }

  type MeetingAttendanceAuditLogGetPayload<S extends boolean | null | undefined | MeetingAttendanceAuditLogDefaultArgs> = $Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload, S>

  type MeetingAttendanceAuditLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAttendanceAuditLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAttendanceAuditLogCountAggregateInputType | true
    }

  export interface MeetingAttendanceAuditLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAttendanceAuditLog'], meta: { name: 'MeetingAttendanceAuditLog' } }
    /**
     * Find zero or one MeetingAttendanceAuditLog that matches the filter.
     * @param {MeetingAttendanceAuditLogFindUniqueArgs} args - Arguments to find a MeetingAttendanceAuditLog
     * @example
     * // Get one MeetingAttendanceAuditLog
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAttendanceAuditLogFindUniqueArgs>(args: SelectSubset<T, MeetingAttendanceAuditLogFindUniqueArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditLogClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAttendanceAuditLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAttendanceAuditLogFindUniqueOrThrowArgs} args - Arguments to find a MeetingAttendanceAuditLog
     * @example
     * // Get one MeetingAttendanceAuditLog
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAttendanceAuditLogFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAttendanceAuditLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditLogClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceAuditLog 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 {MeetingAttendanceAuditLogFindFirstArgs} args - Arguments to find a MeetingAttendanceAuditLog
     * @example
     * // Get one MeetingAttendanceAuditLog
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAttendanceAuditLogFindFirstArgs>(args?: SelectSubset<T, MeetingAttendanceAuditLogFindFirstArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditLogClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceAuditLog 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 {MeetingAttendanceAuditLogFindFirstOrThrowArgs} args - Arguments to find a MeetingAttendanceAuditLog
     * @example
     * // Get one MeetingAttendanceAuditLog
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAttendanceAuditLogFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAttendanceAuditLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditLogClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAttendanceAuditLogs 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 {MeetingAttendanceAuditLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAttendanceAuditLogs
     * const meetingAttendanceAuditLogs = await prisma.meetingAttendanceAuditLog.findMany()
     * 
     * // Get first 10 MeetingAttendanceAuditLogs
     * const meetingAttendanceAuditLogs = await prisma.meetingAttendanceAuditLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAttendanceAuditLogWithIdOnly = await prisma.meetingAttendanceAuditLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAttendanceAuditLogFindManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAttendanceAuditLog.
     * @param {MeetingAttendanceAuditLogCreateArgs} args - Arguments to create a MeetingAttendanceAuditLog.
     * @example
     * // Create one MeetingAttendanceAuditLog
     * const MeetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.create({
     *   data: {
     *     // ... data to create a MeetingAttendanceAuditLog
     *   }
     * })
     * 
     */
    create<T extends MeetingAttendanceAuditLogCreateArgs>(args: SelectSubset<T, MeetingAttendanceAuditLogCreateArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditLogClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAttendanceAuditLogs.
     * @param {MeetingAttendanceAuditLogCreateManyArgs} args - Arguments to create many MeetingAttendanceAuditLogs.
     * @example
     * // Create many MeetingAttendanceAuditLogs
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAttendanceAuditLogCreateManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAttendanceAuditLogs and returns the data saved in the database.
     * @param {MeetingAttendanceAuditLogCreateManyAndReturnArgs} args - Arguments to create many MeetingAttendanceAuditLogs.
     * @example
     * // Create many MeetingAttendanceAuditLogs
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAttendanceAuditLogs and only return the `id`
     * const meetingAttendanceAuditLogWithIdOnly = await prisma.meetingAttendanceAuditLog.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 MeetingAttendanceAuditLogCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAttendanceAuditLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAttendanceAuditLog.
     * @param {MeetingAttendanceAuditLogDeleteArgs} args - Arguments to delete one MeetingAttendanceAuditLog.
     * @example
     * // Delete one MeetingAttendanceAuditLog
     * const MeetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.delete({
     *   where: {
     *     // ... filter to delete one MeetingAttendanceAuditLog
     *   }
     * })
     * 
     */
    delete<T extends MeetingAttendanceAuditLogDeleteArgs>(args: SelectSubset<T, MeetingAttendanceAuditLogDeleteArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditLogClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAttendanceAuditLog.
     * @param {MeetingAttendanceAuditLogUpdateArgs} args - Arguments to update one MeetingAttendanceAuditLog.
     * @example
     * // Update one MeetingAttendanceAuditLog
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAttendanceAuditLogUpdateArgs>(args: SelectSubset<T, MeetingAttendanceAuditLogUpdateArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditLogClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAttendanceAuditLogs.
     * @param {MeetingAttendanceAuditLogDeleteManyArgs} args - Arguments to filter MeetingAttendanceAuditLogs to delete.
     * @example
     * // Delete a few MeetingAttendanceAuditLogs
     * const { count } = await prisma.meetingAttendanceAuditLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAttendanceAuditLogDeleteManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceAuditLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAttendanceAuditLogs
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAttendanceAuditLogUpdateManyArgs>(args: SelectSubset<T, MeetingAttendanceAuditLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceAuditLogs and returns the data updated in the database.
     * @param {MeetingAttendanceAuditLogUpdateManyAndReturnArgs} args - Arguments to update many MeetingAttendanceAuditLogs.
     * @example
     * // Update many MeetingAttendanceAuditLogs
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAttendanceAuditLogs and only return the `id`
     * const meetingAttendanceAuditLogWithIdOnly = await prisma.meetingAttendanceAuditLog.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 MeetingAttendanceAuditLogUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAttendanceAuditLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAttendanceAuditLog.
     * @param {MeetingAttendanceAuditLogUpsertArgs} args - Arguments to update or create a MeetingAttendanceAuditLog.
     * @example
     * // Update or create a MeetingAttendanceAuditLog
     * const meetingAttendanceAuditLog = await prisma.meetingAttendanceAuditLog.upsert({
     *   create: {
     *     // ... data to create a MeetingAttendanceAuditLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAttendanceAuditLog we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAttendanceAuditLogUpsertArgs>(args: SelectSubset<T, MeetingAttendanceAuditLogUpsertArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditLogClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAttendanceAuditLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditLogCountArgs} args - Arguments to filter MeetingAttendanceAuditLogs to count.
     * @example
     * // Count the number of MeetingAttendanceAuditLogs
     * const count = await prisma.meetingAttendanceAuditLog.count({
     *   where: {
     *     // ... the filter for the MeetingAttendanceAuditLogs we want to count
     *   }
     * })
    **/
    count<T extends MeetingAttendanceAuditLogCountArgs>(
      args?: Subset<T, MeetingAttendanceAuditLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAttendanceAuditLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAttendanceAuditLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditLogAggregateArgs} 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 MeetingAttendanceAuditLogAggregateArgs>(args: Subset<T, MeetingAttendanceAuditLogAggregateArgs>): Prisma.PrismaPromise<GetMeetingAttendanceAuditLogAggregateType<T>>

    /**
     * Group by MeetingAttendanceAuditLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditLogGroupByArgs} 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 MeetingAttendanceAuditLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAttendanceAuditLogGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAttendanceAuditLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAttendanceAuditLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAttendanceAuditLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAttendanceAuditLog model
   */
  readonly fields: MeetingAttendanceAuditLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAttendanceAuditLog.
   * 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__MeetingAttendanceAuditLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAttendanceAuditLog model
   */
  interface MeetingAttendanceAuditLogFieldRefs {
    readonly id: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly userId: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly userEmail: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly userName: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly userRole: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly action: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly resource: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly resourceId: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly method: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly endpoint: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly statusCode: FieldRef<"MeetingAttendanceAuditLog", 'Int'>
    readonly source: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly deviceId: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly sessionId: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly requestId: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly traceId: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly geoLocation: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly ipAddress: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly userAgent: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly fieldDiffs: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly requestBody: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly changes: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly reasonCode: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly reasonText: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly errorMessage: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly prevHash: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly hash: FieldRef<"MeetingAttendanceAuditLog", 'String'>
    readonly isRedacted: FieldRef<"MeetingAttendanceAuditLog", 'Boolean'>
    readonly isTombstoned: FieldRef<"MeetingAttendanceAuditLog", 'Boolean'>
    readonly retentionUntil: FieldRef<"MeetingAttendanceAuditLog", 'DateTime'>
    readonly duration: FieldRef<"MeetingAttendanceAuditLog", 'Int'>
    readonly createdAt: FieldRef<"MeetingAttendanceAuditLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAttendanceAuditLog findUnique
   */
  export type MeetingAttendanceAuditLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditLog to fetch.
     */
    where: MeetingAttendanceAuditLogWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditLog findUniqueOrThrow
   */
  export type MeetingAttendanceAuditLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditLog to fetch.
     */
    where: MeetingAttendanceAuditLogWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditLog findFirst
   */
  export type MeetingAttendanceAuditLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditLog to fetch.
     */
    where?: MeetingAttendanceAuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditLogs to fetch.
     */
    orderBy?: MeetingAttendanceAuditLogOrderByWithRelationInput | MeetingAttendanceAuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceAuditLogs.
     */
    cursor?: MeetingAttendanceAuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditLogs 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` MeetingAttendanceAuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceAuditLogs.
     */
    distinct?: MeetingAttendanceAuditLogScalarFieldEnum | MeetingAttendanceAuditLogScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditLog findFirstOrThrow
   */
  export type MeetingAttendanceAuditLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditLog to fetch.
     */
    where?: MeetingAttendanceAuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditLogs to fetch.
     */
    orderBy?: MeetingAttendanceAuditLogOrderByWithRelationInput | MeetingAttendanceAuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceAuditLogs.
     */
    cursor?: MeetingAttendanceAuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditLogs 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` MeetingAttendanceAuditLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceAuditLogs.
     */
    distinct?: MeetingAttendanceAuditLogScalarFieldEnum | MeetingAttendanceAuditLogScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditLog findMany
   */
  export type MeetingAttendanceAuditLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditLogs to fetch.
     */
    where?: MeetingAttendanceAuditLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditLogs to fetch.
     */
    orderBy?: MeetingAttendanceAuditLogOrderByWithRelationInput | MeetingAttendanceAuditLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAttendanceAuditLogs.
     */
    cursor?: MeetingAttendanceAuditLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditLogs 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` MeetingAttendanceAuditLogs.
     */
    skip?: number
    distinct?: MeetingAttendanceAuditLogScalarFieldEnum | MeetingAttendanceAuditLogScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditLog create
   */
  export type MeetingAttendanceAuditLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAttendanceAuditLog.
     */
    data: XOR<MeetingAttendanceAuditLogCreateInput, MeetingAttendanceAuditLogUncheckedCreateInput>
  }

  /**
   * MeetingAttendanceAuditLog createMany
   */
  export type MeetingAttendanceAuditLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAttendanceAuditLogs.
     */
    data: MeetingAttendanceAuditLogCreateManyInput | MeetingAttendanceAuditLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceAuditLog createManyAndReturn
   */
  export type MeetingAttendanceAuditLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAttendanceAuditLogs.
     */
    data: MeetingAttendanceAuditLogCreateManyInput | MeetingAttendanceAuditLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttendanceAuditLog update
   */
  export type MeetingAttendanceAuditLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAttendanceAuditLog.
     */
    data: XOR<MeetingAttendanceAuditLogUpdateInput, MeetingAttendanceAuditLogUncheckedUpdateInput>
    /**
     * Choose, which MeetingAttendanceAuditLog to update.
     */
    where: MeetingAttendanceAuditLogWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditLog updateMany
   */
  export type MeetingAttendanceAuditLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAttendanceAuditLogs.
     */
    data: XOR<MeetingAttendanceAuditLogUpdateManyMutationInput, MeetingAttendanceAuditLogUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceAuditLogs to update
     */
    where?: MeetingAttendanceAuditLogWhereInput
    /**
     * Limit how many MeetingAttendanceAuditLogs to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceAuditLog updateManyAndReturn
   */
  export type MeetingAttendanceAuditLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAttendanceAuditLogs.
     */
    data: XOR<MeetingAttendanceAuditLogUpdateManyMutationInput, MeetingAttendanceAuditLogUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceAuditLogs to update
     */
    where?: MeetingAttendanceAuditLogWhereInput
    /**
     * Limit how many MeetingAttendanceAuditLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttendanceAuditLog upsert
   */
  export type MeetingAttendanceAuditLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAttendanceAuditLog to update in case it exists.
     */
    where: MeetingAttendanceAuditLogWhereUniqueInput
    /**
     * In case the MeetingAttendanceAuditLog found by the `where` argument doesn't exist, create a new MeetingAttendanceAuditLog with this data.
     */
    create: XOR<MeetingAttendanceAuditLogCreateInput, MeetingAttendanceAuditLogUncheckedCreateInput>
    /**
     * In case the MeetingAttendanceAuditLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAttendanceAuditLogUpdateInput, MeetingAttendanceAuditLogUncheckedUpdateInput>
  }

  /**
   * MeetingAttendanceAuditLog delete
   */
  export type MeetingAttendanceAuditLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
    /**
     * Filter which MeetingAttendanceAuditLog to delete.
     */
    where: MeetingAttendanceAuditLogWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditLog deleteMany
   */
  export type MeetingAttendanceAuditLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceAuditLogs to delete
     */
    where?: MeetingAttendanceAuditLogWhereInput
    /**
     * Limit how many MeetingAttendanceAuditLogs to delete.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceAuditLog without action
   */
  export type MeetingAttendanceAuditLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditLog
     */
    select?: MeetingAttendanceAuditLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditLog
     */
    omit?: MeetingAttendanceAuditLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditLogInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAttendanceDataAccessLog
   */

  export type AggregateMeetingAttendanceDataAccessLog = {
    _count: MeetingAttendanceDataAccessLogCountAggregateOutputType | null
    _avg: MeetingAttendanceDataAccessLogAvgAggregateOutputType | null
    _sum: MeetingAttendanceDataAccessLogSumAggregateOutputType | null
    _min: MeetingAttendanceDataAccessLogMinAggregateOutputType | null
    _max: MeetingAttendanceDataAccessLogMaxAggregateOutputType | null
  }

  export type MeetingAttendanceDataAccessLogAvgAggregateOutputType = {
    resultCount: number | null
    statusCode: number | null
  }

  export type MeetingAttendanceDataAccessLogSumAggregateOutputType = {
    resultCount: number | null
    statusCode: number | null
  }

  export type MeetingAttendanceDataAccessLogMinAggregateOutputType = {
    id: string | null
    actorId: string | null
    actorEmail: string | null
    actorName: string | null
    actorRole: string | null
    accessType: string | null
    entityType: string | null
    entityIds: string | null
    resultCount: number | null
    hasSensitiveData: boolean | null
    sensitiveFields: string | null
    endpoint: string | null
    method: string | null
    statusCode: number | null
    ipAddress: string | null
    sessionId: string | null
    requestId: string | null
    deviceId: string | null
    createdAt: Date | null
  }

  export type MeetingAttendanceDataAccessLogMaxAggregateOutputType = {
    id: string | null
    actorId: string | null
    actorEmail: string | null
    actorName: string | null
    actorRole: string | null
    accessType: string | null
    entityType: string | null
    entityIds: string | null
    resultCount: number | null
    hasSensitiveData: boolean | null
    sensitiveFields: string | null
    endpoint: string | null
    method: string | null
    statusCode: number | null
    ipAddress: string | null
    sessionId: string | null
    requestId: string | null
    deviceId: string | null
    createdAt: Date | null
  }

  export type MeetingAttendanceDataAccessLogCountAggregateOutputType = {
    id: number
    actorId: number
    actorEmail: number
    actorName: number
    actorRole: number
    accessType: number
    entityType: number
    entityIds: number
    resultCount: number
    hasSensitiveData: number
    sensitiveFields: number
    endpoint: number
    method: number
    statusCode: number
    ipAddress: number
    sessionId: number
    requestId: number
    deviceId: number
    createdAt: number
    _all: number
  }


  export type MeetingAttendanceDataAccessLogAvgAggregateInputType = {
    resultCount?: true
    statusCode?: true
  }

  export type MeetingAttendanceDataAccessLogSumAggregateInputType = {
    resultCount?: true
    statusCode?: true
  }

  export type MeetingAttendanceDataAccessLogMinAggregateInputType = {
    id?: true
    actorId?: true
    actorEmail?: true
    actorName?: true
    actorRole?: true
    accessType?: true
    entityType?: true
    entityIds?: true
    resultCount?: true
    hasSensitiveData?: true
    sensitiveFields?: true
    endpoint?: true
    method?: true
    statusCode?: true
    ipAddress?: true
    sessionId?: true
    requestId?: true
    deviceId?: true
    createdAt?: true
  }

  export type MeetingAttendanceDataAccessLogMaxAggregateInputType = {
    id?: true
    actorId?: true
    actorEmail?: true
    actorName?: true
    actorRole?: true
    accessType?: true
    entityType?: true
    entityIds?: true
    resultCount?: true
    hasSensitiveData?: true
    sensitiveFields?: true
    endpoint?: true
    method?: true
    statusCode?: true
    ipAddress?: true
    sessionId?: true
    requestId?: true
    deviceId?: true
    createdAt?: true
  }

  export type MeetingAttendanceDataAccessLogCountAggregateInputType = {
    id?: true
    actorId?: true
    actorEmail?: true
    actorName?: true
    actorRole?: true
    accessType?: true
    entityType?: true
    entityIds?: true
    resultCount?: true
    hasSensitiveData?: true
    sensitiveFields?: true
    endpoint?: true
    method?: true
    statusCode?: true
    ipAddress?: true
    sessionId?: true
    requestId?: true
    deviceId?: true
    createdAt?: true
    _all?: true
  }

  export type MeetingAttendanceDataAccessLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceDataAccessLog to aggregate.
     */
    where?: MeetingAttendanceDataAccessLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceDataAccessLogs to fetch.
     */
    orderBy?: MeetingAttendanceDataAccessLogOrderByWithRelationInput | MeetingAttendanceDataAccessLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAttendanceDataAccessLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceDataAccessLogs 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` MeetingAttendanceDataAccessLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAttendanceDataAccessLogs
    **/
    _count?: true | MeetingAttendanceDataAccessLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAttendanceDataAccessLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingAttendanceDataAccessLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAttendanceDataAccessLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAttendanceDataAccessLogMaxAggregateInputType
  }

  export type GetMeetingAttendanceDataAccessLogAggregateType<T extends MeetingAttendanceDataAccessLogAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAttendanceDataAccessLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAttendanceDataAccessLog[P]>
      : GetScalarType<T[P], AggregateMeetingAttendanceDataAccessLog[P]>
  }




  export type MeetingAttendanceDataAccessLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceDataAccessLogWhereInput
    orderBy?: MeetingAttendanceDataAccessLogOrderByWithAggregationInput | MeetingAttendanceDataAccessLogOrderByWithAggregationInput[]
    by: MeetingAttendanceDataAccessLogScalarFieldEnum[] | MeetingAttendanceDataAccessLogScalarFieldEnum
    having?: MeetingAttendanceDataAccessLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAttendanceDataAccessLogCountAggregateInputType | true
    _avg?: MeetingAttendanceDataAccessLogAvgAggregateInputType
    _sum?: MeetingAttendanceDataAccessLogSumAggregateInputType
    _min?: MeetingAttendanceDataAccessLogMinAggregateInputType
    _max?: MeetingAttendanceDataAccessLogMaxAggregateInputType
  }

  export type MeetingAttendanceDataAccessLogGroupByOutputType = {
    id: string
    actorId: string | null
    actorEmail: string
    actorName: string
    actorRole: string
    accessType: string
    entityType: string
    entityIds: string | null
    resultCount: number
    hasSensitiveData: boolean
    sensitiveFields: string | null
    endpoint: string
    method: string
    statusCode: number
    ipAddress: string | null
    sessionId: string | null
    requestId: string | null
    deviceId: string | null
    createdAt: Date
    _count: MeetingAttendanceDataAccessLogCountAggregateOutputType | null
    _avg: MeetingAttendanceDataAccessLogAvgAggregateOutputType | null
    _sum: MeetingAttendanceDataAccessLogSumAggregateOutputType | null
    _min: MeetingAttendanceDataAccessLogMinAggregateOutputType | null
    _max: MeetingAttendanceDataAccessLogMaxAggregateOutputType | null
  }

  type GetMeetingAttendanceDataAccessLogGroupByPayload<T extends MeetingAttendanceDataAccessLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAttendanceDataAccessLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAttendanceDataAccessLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAttendanceDataAccessLogGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAttendanceDataAccessLogGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAttendanceDataAccessLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actorId?: boolean
    actorEmail?: boolean
    actorName?: boolean
    actorRole?: boolean
    accessType?: boolean
    entityType?: boolean
    entityIds?: boolean
    resultCount?: boolean
    hasSensitiveData?: boolean
    sensitiveFields?: boolean
    endpoint?: boolean
    method?: boolean
    statusCode?: boolean
    ipAddress?: boolean
    sessionId?: boolean
    requestId?: boolean
    deviceId?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["meetingAttendanceDataAccessLog"]>

  export type MeetingAttendanceDataAccessLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actorId?: boolean
    actorEmail?: boolean
    actorName?: boolean
    actorRole?: boolean
    accessType?: boolean
    entityType?: boolean
    entityIds?: boolean
    resultCount?: boolean
    hasSensitiveData?: boolean
    sensitiveFields?: boolean
    endpoint?: boolean
    method?: boolean
    statusCode?: boolean
    ipAddress?: boolean
    sessionId?: boolean
    requestId?: boolean
    deviceId?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["meetingAttendanceDataAccessLog"]>

  export type MeetingAttendanceDataAccessLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actorId?: boolean
    actorEmail?: boolean
    actorName?: boolean
    actorRole?: boolean
    accessType?: boolean
    entityType?: boolean
    entityIds?: boolean
    resultCount?: boolean
    hasSensitiveData?: boolean
    sensitiveFields?: boolean
    endpoint?: boolean
    method?: boolean
    statusCode?: boolean
    ipAddress?: boolean
    sessionId?: boolean
    requestId?: boolean
    deviceId?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["meetingAttendanceDataAccessLog"]>

  export type MeetingAttendanceDataAccessLogSelectScalar = {
    id?: boolean
    actorId?: boolean
    actorEmail?: boolean
    actorName?: boolean
    actorRole?: boolean
    accessType?: boolean
    entityType?: boolean
    entityIds?: boolean
    resultCount?: boolean
    hasSensitiveData?: boolean
    sensitiveFields?: boolean
    endpoint?: boolean
    method?: boolean
    statusCode?: boolean
    ipAddress?: boolean
    sessionId?: boolean
    requestId?: boolean
    deviceId?: boolean
    createdAt?: boolean
  }

  export type MeetingAttendanceDataAccessLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "actorId" | "actorEmail" | "actorName" | "actorRole" | "accessType" | "entityType" | "entityIds" | "resultCount" | "hasSensitiveData" | "sensitiveFields" | "endpoint" | "method" | "statusCode" | "ipAddress" | "sessionId" | "requestId" | "deviceId" | "createdAt", ExtArgs["result"]["meetingAttendanceDataAccessLog"]>

  export type $MeetingAttendanceDataAccessLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAttendanceDataAccessLog"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      actorId: string | null
      actorEmail: string
      actorName: string
      actorRole: string
      accessType: string
      entityType: string
      entityIds: string | null
      resultCount: number
      hasSensitiveData: boolean
      sensitiveFields: string | null
      endpoint: string
      method: string
      statusCode: number
      ipAddress: string | null
      sessionId: string | null
      requestId: string | null
      deviceId: string | null
      createdAt: Date
    }, ExtArgs["result"]["meetingAttendanceDataAccessLog"]>
    composites: {}
  }

  type MeetingAttendanceDataAccessLogGetPayload<S extends boolean | null | undefined | MeetingAttendanceDataAccessLogDefaultArgs> = $Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload, S>

  type MeetingAttendanceDataAccessLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAttendanceDataAccessLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAttendanceDataAccessLogCountAggregateInputType | true
    }

  export interface MeetingAttendanceDataAccessLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAttendanceDataAccessLog'], meta: { name: 'MeetingAttendanceDataAccessLog' } }
    /**
     * Find zero or one MeetingAttendanceDataAccessLog that matches the filter.
     * @param {MeetingAttendanceDataAccessLogFindUniqueArgs} args - Arguments to find a MeetingAttendanceDataAccessLog
     * @example
     * // Get one MeetingAttendanceDataAccessLog
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAttendanceDataAccessLogFindUniqueArgs>(args: SelectSubset<T, MeetingAttendanceDataAccessLogFindUniqueArgs<ExtArgs>>): Prisma__MeetingAttendanceDataAccessLogClient<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAttendanceDataAccessLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAttendanceDataAccessLogFindUniqueOrThrowArgs} args - Arguments to find a MeetingAttendanceDataAccessLog
     * @example
     * // Get one MeetingAttendanceDataAccessLog
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAttendanceDataAccessLogFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAttendanceDataAccessLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceDataAccessLogClient<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceDataAccessLog 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 {MeetingAttendanceDataAccessLogFindFirstArgs} args - Arguments to find a MeetingAttendanceDataAccessLog
     * @example
     * // Get one MeetingAttendanceDataAccessLog
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAttendanceDataAccessLogFindFirstArgs>(args?: SelectSubset<T, MeetingAttendanceDataAccessLogFindFirstArgs<ExtArgs>>): Prisma__MeetingAttendanceDataAccessLogClient<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceDataAccessLog 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 {MeetingAttendanceDataAccessLogFindFirstOrThrowArgs} args - Arguments to find a MeetingAttendanceDataAccessLog
     * @example
     * // Get one MeetingAttendanceDataAccessLog
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAttendanceDataAccessLogFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAttendanceDataAccessLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceDataAccessLogClient<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAttendanceDataAccessLogs 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 {MeetingAttendanceDataAccessLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAttendanceDataAccessLogs
     * const meetingAttendanceDataAccessLogs = await prisma.meetingAttendanceDataAccessLog.findMany()
     * 
     * // Get first 10 MeetingAttendanceDataAccessLogs
     * const meetingAttendanceDataAccessLogs = await prisma.meetingAttendanceDataAccessLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAttendanceDataAccessLogWithIdOnly = await prisma.meetingAttendanceDataAccessLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAttendanceDataAccessLogFindManyArgs>(args?: SelectSubset<T, MeetingAttendanceDataAccessLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAttendanceDataAccessLog.
     * @param {MeetingAttendanceDataAccessLogCreateArgs} args - Arguments to create a MeetingAttendanceDataAccessLog.
     * @example
     * // Create one MeetingAttendanceDataAccessLog
     * const MeetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.create({
     *   data: {
     *     // ... data to create a MeetingAttendanceDataAccessLog
     *   }
     * })
     * 
     */
    create<T extends MeetingAttendanceDataAccessLogCreateArgs>(args: SelectSubset<T, MeetingAttendanceDataAccessLogCreateArgs<ExtArgs>>): Prisma__MeetingAttendanceDataAccessLogClient<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAttendanceDataAccessLogs.
     * @param {MeetingAttendanceDataAccessLogCreateManyArgs} args - Arguments to create many MeetingAttendanceDataAccessLogs.
     * @example
     * // Create many MeetingAttendanceDataAccessLogs
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAttendanceDataAccessLogCreateManyArgs>(args?: SelectSubset<T, MeetingAttendanceDataAccessLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAttendanceDataAccessLogs and returns the data saved in the database.
     * @param {MeetingAttendanceDataAccessLogCreateManyAndReturnArgs} args - Arguments to create many MeetingAttendanceDataAccessLogs.
     * @example
     * // Create many MeetingAttendanceDataAccessLogs
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAttendanceDataAccessLogs and only return the `id`
     * const meetingAttendanceDataAccessLogWithIdOnly = await prisma.meetingAttendanceDataAccessLog.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 MeetingAttendanceDataAccessLogCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAttendanceDataAccessLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAttendanceDataAccessLog.
     * @param {MeetingAttendanceDataAccessLogDeleteArgs} args - Arguments to delete one MeetingAttendanceDataAccessLog.
     * @example
     * // Delete one MeetingAttendanceDataAccessLog
     * const MeetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.delete({
     *   where: {
     *     // ... filter to delete one MeetingAttendanceDataAccessLog
     *   }
     * })
     * 
     */
    delete<T extends MeetingAttendanceDataAccessLogDeleteArgs>(args: SelectSubset<T, MeetingAttendanceDataAccessLogDeleteArgs<ExtArgs>>): Prisma__MeetingAttendanceDataAccessLogClient<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAttendanceDataAccessLog.
     * @param {MeetingAttendanceDataAccessLogUpdateArgs} args - Arguments to update one MeetingAttendanceDataAccessLog.
     * @example
     * // Update one MeetingAttendanceDataAccessLog
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAttendanceDataAccessLogUpdateArgs>(args: SelectSubset<T, MeetingAttendanceDataAccessLogUpdateArgs<ExtArgs>>): Prisma__MeetingAttendanceDataAccessLogClient<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAttendanceDataAccessLogs.
     * @param {MeetingAttendanceDataAccessLogDeleteManyArgs} args - Arguments to filter MeetingAttendanceDataAccessLogs to delete.
     * @example
     * // Delete a few MeetingAttendanceDataAccessLogs
     * const { count } = await prisma.meetingAttendanceDataAccessLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAttendanceDataAccessLogDeleteManyArgs>(args?: SelectSubset<T, MeetingAttendanceDataAccessLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceDataAccessLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceDataAccessLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAttendanceDataAccessLogs
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAttendanceDataAccessLogUpdateManyArgs>(args: SelectSubset<T, MeetingAttendanceDataAccessLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceDataAccessLogs and returns the data updated in the database.
     * @param {MeetingAttendanceDataAccessLogUpdateManyAndReturnArgs} args - Arguments to update many MeetingAttendanceDataAccessLogs.
     * @example
     * // Update many MeetingAttendanceDataAccessLogs
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAttendanceDataAccessLogs and only return the `id`
     * const meetingAttendanceDataAccessLogWithIdOnly = await prisma.meetingAttendanceDataAccessLog.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 MeetingAttendanceDataAccessLogUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAttendanceDataAccessLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAttendanceDataAccessLog.
     * @param {MeetingAttendanceDataAccessLogUpsertArgs} args - Arguments to update or create a MeetingAttendanceDataAccessLog.
     * @example
     * // Update or create a MeetingAttendanceDataAccessLog
     * const meetingAttendanceDataAccessLog = await prisma.meetingAttendanceDataAccessLog.upsert({
     *   create: {
     *     // ... data to create a MeetingAttendanceDataAccessLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAttendanceDataAccessLog we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAttendanceDataAccessLogUpsertArgs>(args: SelectSubset<T, MeetingAttendanceDataAccessLogUpsertArgs<ExtArgs>>): Prisma__MeetingAttendanceDataAccessLogClient<$Result.GetResult<Prisma.$MeetingAttendanceDataAccessLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAttendanceDataAccessLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceDataAccessLogCountArgs} args - Arguments to filter MeetingAttendanceDataAccessLogs to count.
     * @example
     * // Count the number of MeetingAttendanceDataAccessLogs
     * const count = await prisma.meetingAttendanceDataAccessLog.count({
     *   where: {
     *     // ... the filter for the MeetingAttendanceDataAccessLogs we want to count
     *   }
     * })
    **/
    count<T extends MeetingAttendanceDataAccessLogCountArgs>(
      args?: Subset<T, MeetingAttendanceDataAccessLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAttendanceDataAccessLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAttendanceDataAccessLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceDataAccessLogAggregateArgs} 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 MeetingAttendanceDataAccessLogAggregateArgs>(args: Subset<T, MeetingAttendanceDataAccessLogAggregateArgs>): Prisma.PrismaPromise<GetMeetingAttendanceDataAccessLogAggregateType<T>>

    /**
     * Group by MeetingAttendanceDataAccessLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceDataAccessLogGroupByArgs} 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 MeetingAttendanceDataAccessLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAttendanceDataAccessLogGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAttendanceDataAccessLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAttendanceDataAccessLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAttendanceDataAccessLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAttendanceDataAccessLog model
   */
  readonly fields: MeetingAttendanceDataAccessLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAttendanceDataAccessLog.
   * 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__MeetingAttendanceDataAccessLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAttendanceDataAccessLog model
   */
  interface MeetingAttendanceDataAccessLogFieldRefs {
    readonly id: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly actorId: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly actorEmail: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly actorName: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly actorRole: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly accessType: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly entityType: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly entityIds: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly resultCount: FieldRef<"MeetingAttendanceDataAccessLog", 'Int'>
    readonly hasSensitiveData: FieldRef<"MeetingAttendanceDataAccessLog", 'Boolean'>
    readonly sensitiveFields: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly endpoint: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly method: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly statusCode: FieldRef<"MeetingAttendanceDataAccessLog", 'Int'>
    readonly ipAddress: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly sessionId: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly requestId: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly deviceId: FieldRef<"MeetingAttendanceDataAccessLog", 'String'>
    readonly createdAt: FieldRef<"MeetingAttendanceDataAccessLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAttendanceDataAccessLog findUnique
   */
  export type MeetingAttendanceDataAccessLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceDataAccessLog to fetch.
     */
    where: MeetingAttendanceDataAccessLogWhereUniqueInput
  }

  /**
   * MeetingAttendanceDataAccessLog findUniqueOrThrow
   */
  export type MeetingAttendanceDataAccessLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceDataAccessLog to fetch.
     */
    where: MeetingAttendanceDataAccessLogWhereUniqueInput
  }

  /**
   * MeetingAttendanceDataAccessLog findFirst
   */
  export type MeetingAttendanceDataAccessLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceDataAccessLog to fetch.
     */
    where?: MeetingAttendanceDataAccessLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceDataAccessLogs to fetch.
     */
    orderBy?: MeetingAttendanceDataAccessLogOrderByWithRelationInput | MeetingAttendanceDataAccessLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceDataAccessLogs.
     */
    cursor?: MeetingAttendanceDataAccessLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceDataAccessLogs 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` MeetingAttendanceDataAccessLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceDataAccessLogs.
     */
    distinct?: MeetingAttendanceDataAccessLogScalarFieldEnum | MeetingAttendanceDataAccessLogScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceDataAccessLog findFirstOrThrow
   */
  export type MeetingAttendanceDataAccessLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceDataAccessLog to fetch.
     */
    where?: MeetingAttendanceDataAccessLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceDataAccessLogs to fetch.
     */
    orderBy?: MeetingAttendanceDataAccessLogOrderByWithRelationInput | MeetingAttendanceDataAccessLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceDataAccessLogs.
     */
    cursor?: MeetingAttendanceDataAccessLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceDataAccessLogs 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` MeetingAttendanceDataAccessLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceDataAccessLogs.
     */
    distinct?: MeetingAttendanceDataAccessLogScalarFieldEnum | MeetingAttendanceDataAccessLogScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceDataAccessLog findMany
   */
  export type MeetingAttendanceDataAccessLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceDataAccessLogs to fetch.
     */
    where?: MeetingAttendanceDataAccessLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceDataAccessLogs to fetch.
     */
    orderBy?: MeetingAttendanceDataAccessLogOrderByWithRelationInput | MeetingAttendanceDataAccessLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAttendanceDataAccessLogs.
     */
    cursor?: MeetingAttendanceDataAccessLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceDataAccessLogs 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` MeetingAttendanceDataAccessLogs.
     */
    skip?: number
    distinct?: MeetingAttendanceDataAccessLogScalarFieldEnum | MeetingAttendanceDataAccessLogScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceDataAccessLog create
   */
  export type MeetingAttendanceDataAccessLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * The data needed to create a MeetingAttendanceDataAccessLog.
     */
    data: XOR<MeetingAttendanceDataAccessLogCreateInput, MeetingAttendanceDataAccessLogUncheckedCreateInput>
  }

  /**
   * MeetingAttendanceDataAccessLog createMany
   */
  export type MeetingAttendanceDataAccessLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAttendanceDataAccessLogs.
     */
    data: MeetingAttendanceDataAccessLogCreateManyInput | MeetingAttendanceDataAccessLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceDataAccessLog createManyAndReturn
   */
  export type MeetingAttendanceDataAccessLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAttendanceDataAccessLogs.
     */
    data: MeetingAttendanceDataAccessLogCreateManyInput | MeetingAttendanceDataAccessLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceDataAccessLog update
   */
  export type MeetingAttendanceDataAccessLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * The data needed to update a MeetingAttendanceDataAccessLog.
     */
    data: XOR<MeetingAttendanceDataAccessLogUpdateInput, MeetingAttendanceDataAccessLogUncheckedUpdateInput>
    /**
     * Choose, which MeetingAttendanceDataAccessLog to update.
     */
    where: MeetingAttendanceDataAccessLogWhereUniqueInput
  }

  /**
   * MeetingAttendanceDataAccessLog updateMany
   */
  export type MeetingAttendanceDataAccessLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAttendanceDataAccessLogs.
     */
    data: XOR<MeetingAttendanceDataAccessLogUpdateManyMutationInput, MeetingAttendanceDataAccessLogUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceDataAccessLogs to update
     */
    where?: MeetingAttendanceDataAccessLogWhereInput
    /**
     * Limit how many MeetingAttendanceDataAccessLogs to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceDataAccessLog updateManyAndReturn
   */
  export type MeetingAttendanceDataAccessLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAttendanceDataAccessLogs.
     */
    data: XOR<MeetingAttendanceDataAccessLogUpdateManyMutationInput, MeetingAttendanceDataAccessLogUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceDataAccessLogs to update
     */
    where?: MeetingAttendanceDataAccessLogWhereInput
    /**
     * Limit how many MeetingAttendanceDataAccessLogs to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceDataAccessLog upsert
   */
  export type MeetingAttendanceDataAccessLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * The filter to search for the MeetingAttendanceDataAccessLog to update in case it exists.
     */
    where: MeetingAttendanceDataAccessLogWhereUniqueInput
    /**
     * In case the MeetingAttendanceDataAccessLog found by the `where` argument doesn't exist, create a new MeetingAttendanceDataAccessLog with this data.
     */
    create: XOR<MeetingAttendanceDataAccessLogCreateInput, MeetingAttendanceDataAccessLogUncheckedCreateInput>
    /**
     * In case the MeetingAttendanceDataAccessLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAttendanceDataAccessLogUpdateInput, MeetingAttendanceDataAccessLogUncheckedUpdateInput>
  }

  /**
   * MeetingAttendanceDataAccessLog delete
   */
  export type MeetingAttendanceDataAccessLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
    /**
     * Filter which MeetingAttendanceDataAccessLog to delete.
     */
    where: MeetingAttendanceDataAccessLogWhereUniqueInput
  }

  /**
   * MeetingAttendanceDataAccessLog deleteMany
   */
  export type MeetingAttendanceDataAccessLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceDataAccessLogs to delete
     */
    where?: MeetingAttendanceDataAccessLogWhereInput
    /**
     * Limit how many MeetingAttendanceDataAccessLogs to delete.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceDataAccessLog without action
   */
  export type MeetingAttendanceDataAccessLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceDataAccessLog
     */
    select?: MeetingAttendanceDataAccessLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceDataAccessLog
     */
    omit?: MeetingAttendanceDataAccessLogOmit<ExtArgs> | null
  }


  /**
   * Model MeetingAttendanceAuditAlertRule
   */

  export type AggregateMeetingAttendanceAuditAlertRule = {
    _count: MeetingAttendanceAuditAlertRuleCountAggregateOutputType | null
    _avg: MeetingAttendanceAuditAlertRuleAvgAggregateOutputType | null
    _sum: MeetingAttendanceAuditAlertRuleSumAggregateOutputType | null
    _min: MeetingAttendanceAuditAlertRuleMinAggregateOutputType | null
    _max: MeetingAttendanceAuditAlertRuleMaxAggregateOutputType | null
  }

  export type MeetingAttendanceAuditAlertRuleAvgAggregateOutputType = {
    threshold: number | null
    timeWindow: number | null
    suppressionWindow: number | null
    triggerCount: number | null
  }

  export type MeetingAttendanceAuditAlertRuleSumAggregateOutputType = {
    threshold: number | null
    timeWindow: number | null
    suppressionWindow: number | null
    triggerCount: number | null
  }

  export type MeetingAttendanceAuditAlertRuleMinAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    ruleType: string | null
    conditions: string | null
    threshold: number | null
    timeWindow: number | null
    severity: string | null
    isEnabled: boolean | null
    notifyEmail: boolean | null
    notifyInApp: boolean | null
    notifyWebhook: boolean | null
    webhookUrl: string | null
    suppressionWindow: number | null
    lastTriggered: Date | null
    triggerCount: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceAuditAlertRuleMaxAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    ruleType: string | null
    conditions: string | null
    threshold: number | null
    timeWindow: number | null
    severity: string | null
    isEnabled: boolean | null
    notifyEmail: boolean | null
    notifyInApp: boolean | null
    notifyWebhook: boolean | null
    webhookUrl: string | null
    suppressionWindow: number | null
    lastTriggered: Date | null
    triggerCount: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceAuditAlertRuleCountAggregateOutputType = {
    id: number
    name: number
    description: number
    ruleType: number
    conditions: number
    threshold: number
    timeWindow: number
    severity: number
    isEnabled: number
    notifyEmail: number
    notifyInApp: number
    notifyWebhook: number
    webhookUrl: number
    suppressionWindow: number
    lastTriggered: number
    triggerCount: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingAttendanceAuditAlertRuleAvgAggregateInputType = {
    threshold?: true
    timeWindow?: true
    suppressionWindow?: true
    triggerCount?: true
  }

  export type MeetingAttendanceAuditAlertRuleSumAggregateInputType = {
    threshold?: true
    timeWindow?: true
    suppressionWindow?: true
    triggerCount?: true
  }

  export type MeetingAttendanceAuditAlertRuleMinAggregateInputType = {
    id?: true
    name?: true
    description?: true
    ruleType?: true
    conditions?: true
    threshold?: true
    timeWindow?: true
    severity?: true
    isEnabled?: true
    notifyEmail?: true
    notifyInApp?: true
    notifyWebhook?: true
    webhookUrl?: true
    suppressionWindow?: true
    lastTriggered?: true
    triggerCount?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceAuditAlertRuleMaxAggregateInputType = {
    id?: true
    name?: true
    description?: true
    ruleType?: true
    conditions?: true
    threshold?: true
    timeWindow?: true
    severity?: true
    isEnabled?: true
    notifyEmail?: true
    notifyInApp?: true
    notifyWebhook?: true
    webhookUrl?: true
    suppressionWindow?: true
    lastTriggered?: true
    triggerCount?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceAuditAlertRuleCountAggregateInputType = {
    id?: true
    name?: true
    description?: true
    ruleType?: true
    conditions?: true
    threshold?: true
    timeWindow?: true
    severity?: true
    isEnabled?: true
    notifyEmail?: true
    notifyInApp?: true
    notifyWebhook?: true
    webhookUrl?: true
    suppressionWindow?: true
    lastTriggered?: true
    triggerCount?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingAttendanceAuditAlertRuleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceAuditAlertRule to aggregate.
     */
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditAlertRules to fetch.
     */
    orderBy?: MeetingAttendanceAuditAlertRuleOrderByWithRelationInput | MeetingAttendanceAuditAlertRuleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAttendanceAuditAlertRuleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditAlertRules 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` MeetingAttendanceAuditAlertRules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAttendanceAuditAlertRules
    **/
    _count?: true | MeetingAttendanceAuditAlertRuleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAttendanceAuditAlertRuleAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingAttendanceAuditAlertRuleSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAttendanceAuditAlertRuleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAttendanceAuditAlertRuleMaxAggregateInputType
  }

  export type GetMeetingAttendanceAuditAlertRuleAggregateType<T extends MeetingAttendanceAuditAlertRuleAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAttendanceAuditAlertRule]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAttendanceAuditAlertRule[P]>
      : GetScalarType<T[P], AggregateMeetingAttendanceAuditAlertRule[P]>
  }




  export type MeetingAttendanceAuditAlertRuleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    orderBy?: MeetingAttendanceAuditAlertRuleOrderByWithAggregationInput | MeetingAttendanceAuditAlertRuleOrderByWithAggregationInput[]
    by: MeetingAttendanceAuditAlertRuleScalarFieldEnum[] | MeetingAttendanceAuditAlertRuleScalarFieldEnum
    having?: MeetingAttendanceAuditAlertRuleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAttendanceAuditAlertRuleCountAggregateInputType | true
    _avg?: MeetingAttendanceAuditAlertRuleAvgAggregateInputType
    _sum?: MeetingAttendanceAuditAlertRuleSumAggregateInputType
    _min?: MeetingAttendanceAuditAlertRuleMinAggregateInputType
    _max?: MeetingAttendanceAuditAlertRuleMaxAggregateInputType
  }

  export type MeetingAttendanceAuditAlertRuleGroupByOutputType = {
    id: string
    name: string
    description: string | null
    ruleType: string
    conditions: string
    threshold: number | null
    timeWindow: number | null
    severity: string
    isEnabled: boolean
    notifyEmail: boolean
    notifyInApp: boolean
    notifyWebhook: boolean
    webhookUrl: string | null
    suppressionWindow: number | null
    lastTriggered: Date | null
    triggerCount: number
    createdAt: Date
    updatedAt: Date
    _count: MeetingAttendanceAuditAlertRuleCountAggregateOutputType | null
    _avg: MeetingAttendanceAuditAlertRuleAvgAggregateOutputType | null
    _sum: MeetingAttendanceAuditAlertRuleSumAggregateOutputType | null
    _min: MeetingAttendanceAuditAlertRuleMinAggregateOutputType | null
    _max: MeetingAttendanceAuditAlertRuleMaxAggregateOutputType | null
  }

  type GetMeetingAttendanceAuditAlertRuleGroupByPayload<T extends MeetingAttendanceAuditAlertRuleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAttendanceAuditAlertRuleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAttendanceAuditAlertRuleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAttendanceAuditAlertRuleGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAttendanceAuditAlertRuleGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAttendanceAuditAlertRuleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    ruleType?: boolean
    conditions?: boolean
    threshold?: boolean
    timeWindow?: boolean
    severity?: boolean
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: boolean
    suppressionWindow?: boolean
    lastTriggered?: boolean
    triggerCount?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    alerts?: boolean | MeetingAttendanceAuditAlertRule$alertsArgs<ExtArgs>
    _count?: boolean | MeetingAttendanceAuditAlertRuleCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceAuditAlertRule"]>

  export type MeetingAttendanceAuditAlertRuleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    ruleType?: boolean
    conditions?: boolean
    threshold?: boolean
    timeWindow?: boolean
    severity?: boolean
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: boolean
    suppressionWindow?: boolean
    lastTriggered?: boolean
    triggerCount?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["meetingAttendanceAuditAlertRule"]>

  export type MeetingAttendanceAuditAlertRuleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    ruleType?: boolean
    conditions?: boolean
    threshold?: boolean
    timeWindow?: boolean
    severity?: boolean
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: boolean
    suppressionWindow?: boolean
    lastTriggered?: boolean
    triggerCount?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["meetingAttendanceAuditAlertRule"]>

  export type MeetingAttendanceAuditAlertRuleSelectScalar = {
    id?: boolean
    name?: boolean
    description?: boolean
    ruleType?: boolean
    conditions?: boolean
    threshold?: boolean
    timeWindow?: boolean
    severity?: boolean
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: boolean
    suppressionWindow?: boolean
    lastTriggered?: boolean
    triggerCount?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingAttendanceAuditAlertRuleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "description" | "ruleType" | "conditions" | "threshold" | "timeWindow" | "severity" | "isEnabled" | "notifyEmail" | "notifyInApp" | "notifyWebhook" | "webhookUrl" | "suppressionWindow" | "lastTriggered" | "triggerCount" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingAttendanceAuditAlertRule"]>
  export type MeetingAttendanceAuditAlertRuleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    alerts?: boolean | MeetingAttendanceAuditAlertRule$alertsArgs<ExtArgs>
    _count?: boolean | MeetingAttendanceAuditAlertRuleCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceAuditAlertRuleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type MeetingAttendanceAuditAlertRuleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $MeetingAttendanceAuditAlertRulePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAttendanceAuditAlertRule"
    objects: {
      alerts: Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      description: string | null
      ruleType: string
      conditions: string
      threshold: number | null
      timeWindow: number | null
      severity: string
      isEnabled: boolean
      notifyEmail: boolean
      notifyInApp: boolean
      notifyWebhook: boolean
      webhookUrl: string | null
      suppressionWindow: number | null
      lastTriggered: Date | null
      triggerCount: number
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingAttendanceAuditAlertRule"]>
    composites: {}
  }

  type MeetingAttendanceAuditAlertRuleGetPayload<S extends boolean | null | undefined | MeetingAttendanceAuditAlertRuleDefaultArgs> = $Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload, S>

  type MeetingAttendanceAuditAlertRuleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAttendanceAuditAlertRuleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAttendanceAuditAlertRuleCountAggregateInputType | true
    }

  export interface MeetingAttendanceAuditAlertRuleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAttendanceAuditAlertRule'], meta: { name: 'MeetingAttendanceAuditAlertRule' } }
    /**
     * Find zero or one MeetingAttendanceAuditAlertRule that matches the filter.
     * @param {MeetingAttendanceAuditAlertRuleFindUniqueArgs} args - Arguments to find a MeetingAttendanceAuditAlertRule
     * @example
     * // Get one MeetingAttendanceAuditAlertRule
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAttendanceAuditAlertRuleFindUniqueArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertRuleFindUniqueArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAttendanceAuditAlertRule that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAttendanceAuditAlertRuleFindUniqueOrThrowArgs} args - Arguments to find a MeetingAttendanceAuditAlertRule
     * @example
     * // Get one MeetingAttendanceAuditAlertRule
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAttendanceAuditAlertRuleFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertRuleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceAuditAlertRule 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 {MeetingAttendanceAuditAlertRuleFindFirstArgs} args - Arguments to find a MeetingAttendanceAuditAlertRule
     * @example
     * // Get one MeetingAttendanceAuditAlertRule
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAttendanceAuditAlertRuleFindFirstArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertRuleFindFirstArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceAuditAlertRule 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 {MeetingAttendanceAuditAlertRuleFindFirstOrThrowArgs} args - Arguments to find a MeetingAttendanceAuditAlertRule
     * @example
     * // Get one MeetingAttendanceAuditAlertRule
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAttendanceAuditAlertRuleFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertRuleFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAttendanceAuditAlertRules 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 {MeetingAttendanceAuditAlertRuleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAttendanceAuditAlertRules
     * const meetingAttendanceAuditAlertRules = await prisma.meetingAttendanceAuditAlertRule.findMany()
     * 
     * // Get first 10 MeetingAttendanceAuditAlertRules
     * const meetingAttendanceAuditAlertRules = await prisma.meetingAttendanceAuditAlertRule.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAttendanceAuditAlertRuleWithIdOnly = await prisma.meetingAttendanceAuditAlertRule.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAttendanceAuditAlertRuleFindManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertRuleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAttendanceAuditAlertRule.
     * @param {MeetingAttendanceAuditAlertRuleCreateArgs} args - Arguments to create a MeetingAttendanceAuditAlertRule.
     * @example
     * // Create one MeetingAttendanceAuditAlertRule
     * const MeetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.create({
     *   data: {
     *     // ... data to create a MeetingAttendanceAuditAlertRule
     *   }
     * })
     * 
     */
    create<T extends MeetingAttendanceAuditAlertRuleCreateArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertRuleCreateArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAttendanceAuditAlertRules.
     * @param {MeetingAttendanceAuditAlertRuleCreateManyArgs} args - Arguments to create many MeetingAttendanceAuditAlertRules.
     * @example
     * // Create many MeetingAttendanceAuditAlertRules
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAttendanceAuditAlertRuleCreateManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertRuleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAttendanceAuditAlertRules and returns the data saved in the database.
     * @param {MeetingAttendanceAuditAlertRuleCreateManyAndReturnArgs} args - Arguments to create many MeetingAttendanceAuditAlertRules.
     * @example
     * // Create many MeetingAttendanceAuditAlertRules
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAttendanceAuditAlertRules and only return the `id`
     * const meetingAttendanceAuditAlertRuleWithIdOnly = await prisma.meetingAttendanceAuditAlertRule.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 MeetingAttendanceAuditAlertRuleCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertRuleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAttendanceAuditAlertRule.
     * @param {MeetingAttendanceAuditAlertRuleDeleteArgs} args - Arguments to delete one MeetingAttendanceAuditAlertRule.
     * @example
     * // Delete one MeetingAttendanceAuditAlertRule
     * const MeetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.delete({
     *   where: {
     *     // ... filter to delete one MeetingAttendanceAuditAlertRule
     *   }
     * })
     * 
     */
    delete<T extends MeetingAttendanceAuditAlertRuleDeleteArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertRuleDeleteArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAttendanceAuditAlertRule.
     * @param {MeetingAttendanceAuditAlertRuleUpdateArgs} args - Arguments to update one MeetingAttendanceAuditAlertRule.
     * @example
     * // Update one MeetingAttendanceAuditAlertRule
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAttendanceAuditAlertRuleUpdateArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertRuleUpdateArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAttendanceAuditAlertRules.
     * @param {MeetingAttendanceAuditAlertRuleDeleteManyArgs} args - Arguments to filter MeetingAttendanceAuditAlertRules to delete.
     * @example
     * // Delete a few MeetingAttendanceAuditAlertRules
     * const { count } = await prisma.meetingAttendanceAuditAlertRule.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAttendanceAuditAlertRuleDeleteManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertRuleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceAuditAlertRules.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditAlertRuleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAttendanceAuditAlertRules
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAttendanceAuditAlertRuleUpdateManyArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertRuleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceAuditAlertRules and returns the data updated in the database.
     * @param {MeetingAttendanceAuditAlertRuleUpdateManyAndReturnArgs} args - Arguments to update many MeetingAttendanceAuditAlertRules.
     * @example
     * // Update many MeetingAttendanceAuditAlertRules
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAttendanceAuditAlertRules and only return the `id`
     * const meetingAttendanceAuditAlertRuleWithIdOnly = await prisma.meetingAttendanceAuditAlertRule.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 MeetingAttendanceAuditAlertRuleUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertRuleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAttendanceAuditAlertRule.
     * @param {MeetingAttendanceAuditAlertRuleUpsertArgs} args - Arguments to update or create a MeetingAttendanceAuditAlertRule.
     * @example
     * // Update or create a MeetingAttendanceAuditAlertRule
     * const meetingAttendanceAuditAlertRule = await prisma.meetingAttendanceAuditAlertRule.upsert({
     *   create: {
     *     // ... data to create a MeetingAttendanceAuditAlertRule
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAttendanceAuditAlertRule we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAttendanceAuditAlertRuleUpsertArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertRuleUpsertArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAttendanceAuditAlertRules.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditAlertRuleCountArgs} args - Arguments to filter MeetingAttendanceAuditAlertRules to count.
     * @example
     * // Count the number of MeetingAttendanceAuditAlertRules
     * const count = await prisma.meetingAttendanceAuditAlertRule.count({
     *   where: {
     *     // ... the filter for the MeetingAttendanceAuditAlertRules we want to count
     *   }
     * })
    **/
    count<T extends MeetingAttendanceAuditAlertRuleCountArgs>(
      args?: Subset<T, MeetingAttendanceAuditAlertRuleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAttendanceAuditAlertRuleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAttendanceAuditAlertRule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditAlertRuleAggregateArgs} 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 MeetingAttendanceAuditAlertRuleAggregateArgs>(args: Subset<T, MeetingAttendanceAuditAlertRuleAggregateArgs>): Prisma.PrismaPromise<GetMeetingAttendanceAuditAlertRuleAggregateType<T>>

    /**
     * Group by MeetingAttendanceAuditAlertRule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditAlertRuleGroupByArgs} 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 MeetingAttendanceAuditAlertRuleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAttendanceAuditAlertRuleGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAttendanceAuditAlertRuleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAttendanceAuditAlertRuleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAttendanceAuditAlertRuleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAttendanceAuditAlertRule model
   */
  readonly fields: MeetingAttendanceAuditAlertRuleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAttendanceAuditAlertRule.
   * 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__MeetingAttendanceAuditAlertRuleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    alerts<T extends MeetingAttendanceAuditAlertRule$alertsArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAttendanceAuditAlertRule$alertsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAttendanceAuditAlertRule model
   */
  interface MeetingAttendanceAuditAlertRuleFieldRefs {
    readonly id: FieldRef<"MeetingAttendanceAuditAlertRule", 'String'>
    readonly name: FieldRef<"MeetingAttendanceAuditAlertRule", 'String'>
    readonly description: FieldRef<"MeetingAttendanceAuditAlertRule", 'String'>
    readonly ruleType: FieldRef<"MeetingAttendanceAuditAlertRule", 'String'>
    readonly conditions: FieldRef<"MeetingAttendanceAuditAlertRule", 'String'>
    readonly threshold: FieldRef<"MeetingAttendanceAuditAlertRule", 'Int'>
    readonly timeWindow: FieldRef<"MeetingAttendanceAuditAlertRule", 'Int'>
    readonly severity: FieldRef<"MeetingAttendanceAuditAlertRule", 'String'>
    readonly isEnabled: FieldRef<"MeetingAttendanceAuditAlertRule", 'Boolean'>
    readonly notifyEmail: FieldRef<"MeetingAttendanceAuditAlertRule", 'Boolean'>
    readonly notifyInApp: FieldRef<"MeetingAttendanceAuditAlertRule", 'Boolean'>
    readonly notifyWebhook: FieldRef<"MeetingAttendanceAuditAlertRule", 'Boolean'>
    readonly webhookUrl: FieldRef<"MeetingAttendanceAuditAlertRule", 'String'>
    readonly suppressionWindow: FieldRef<"MeetingAttendanceAuditAlertRule", 'Int'>
    readonly lastTriggered: FieldRef<"MeetingAttendanceAuditAlertRule", 'DateTime'>
    readonly triggerCount: FieldRef<"MeetingAttendanceAuditAlertRule", 'Int'>
    readonly createdAt: FieldRef<"MeetingAttendanceAuditAlertRule", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAttendanceAuditAlertRule", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAttendanceAuditAlertRule findUnique
   */
  export type MeetingAttendanceAuditAlertRuleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlertRule to fetch.
     */
    where: MeetingAttendanceAuditAlertRuleWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditAlertRule findUniqueOrThrow
   */
  export type MeetingAttendanceAuditAlertRuleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlertRule to fetch.
     */
    where: MeetingAttendanceAuditAlertRuleWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditAlertRule findFirst
   */
  export type MeetingAttendanceAuditAlertRuleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlertRule to fetch.
     */
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditAlertRules to fetch.
     */
    orderBy?: MeetingAttendanceAuditAlertRuleOrderByWithRelationInput | MeetingAttendanceAuditAlertRuleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceAuditAlertRules.
     */
    cursor?: MeetingAttendanceAuditAlertRuleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditAlertRules 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` MeetingAttendanceAuditAlertRules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceAuditAlertRules.
     */
    distinct?: MeetingAttendanceAuditAlertRuleScalarFieldEnum | MeetingAttendanceAuditAlertRuleScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditAlertRule findFirstOrThrow
   */
  export type MeetingAttendanceAuditAlertRuleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlertRule to fetch.
     */
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditAlertRules to fetch.
     */
    orderBy?: MeetingAttendanceAuditAlertRuleOrderByWithRelationInput | MeetingAttendanceAuditAlertRuleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceAuditAlertRules.
     */
    cursor?: MeetingAttendanceAuditAlertRuleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditAlertRules 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` MeetingAttendanceAuditAlertRules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceAuditAlertRules.
     */
    distinct?: MeetingAttendanceAuditAlertRuleScalarFieldEnum | MeetingAttendanceAuditAlertRuleScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditAlertRule findMany
   */
  export type MeetingAttendanceAuditAlertRuleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlertRules to fetch.
     */
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditAlertRules to fetch.
     */
    orderBy?: MeetingAttendanceAuditAlertRuleOrderByWithRelationInput | MeetingAttendanceAuditAlertRuleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAttendanceAuditAlertRules.
     */
    cursor?: MeetingAttendanceAuditAlertRuleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditAlertRules 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` MeetingAttendanceAuditAlertRules.
     */
    skip?: number
    distinct?: MeetingAttendanceAuditAlertRuleScalarFieldEnum | MeetingAttendanceAuditAlertRuleScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditAlertRule create
   */
  export type MeetingAttendanceAuditAlertRuleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAttendanceAuditAlertRule.
     */
    data: XOR<MeetingAttendanceAuditAlertRuleCreateInput, MeetingAttendanceAuditAlertRuleUncheckedCreateInput>
  }

  /**
   * MeetingAttendanceAuditAlertRule createMany
   */
  export type MeetingAttendanceAuditAlertRuleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAttendanceAuditAlertRules.
     */
    data: MeetingAttendanceAuditAlertRuleCreateManyInput | MeetingAttendanceAuditAlertRuleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceAuditAlertRule createManyAndReturn
   */
  export type MeetingAttendanceAuditAlertRuleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAttendanceAuditAlertRules.
     */
    data: MeetingAttendanceAuditAlertRuleCreateManyInput | MeetingAttendanceAuditAlertRuleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceAuditAlertRule update
   */
  export type MeetingAttendanceAuditAlertRuleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAttendanceAuditAlertRule.
     */
    data: XOR<MeetingAttendanceAuditAlertRuleUpdateInput, MeetingAttendanceAuditAlertRuleUncheckedUpdateInput>
    /**
     * Choose, which MeetingAttendanceAuditAlertRule to update.
     */
    where: MeetingAttendanceAuditAlertRuleWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditAlertRule updateMany
   */
  export type MeetingAttendanceAuditAlertRuleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAttendanceAuditAlertRules.
     */
    data: XOR<MeetingAttendanceAuditAlertRuleUpdateManyMutationInput, MeetingAttendanceAuditAlertRuleUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceAuditAlertRules to update
     */
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    /**
     * Limit how many MeetingAttendanceAuditAlertRules to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceAuditAlertRule updateManyAndReturn
   */
  export type MeetingAttendanceAuditAlertRuleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAttendanceAuditAlertRules.
     */
    data: XOR<MeetingAttendanceAuditAlertRuleUpdateManyMutationInput, MeetingAttendanceAuditAlertRuleUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceAuditAlertRules to update
     */
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    /**
     * Limit how many MeetingAttendanceAuditAlertRules to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceAuditAlertRule upsert
   */
  export type MeetingAttendanceAuditAlertRuleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAttendanceAuditAlertRule to update in case it exists.
     */
    where: MeetingAttendanceAuditAlertRuleWhereUniqueInput
    /**
     * In case the MeetingAttendanceAuditAlertRule found by the `where` argument doesn't exist, create a new MeetingAttendanceAuditAlertRule with this data.
     */
    create: XOR<MeetingAttendanceAuditAlertRuleCreateInput, MeetingAttendanceAuditAlertRuleUncheckedCreateInput>
    /**
     * In case the MeetingAttendanceAuditAlertRule was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAttendanceAuditAlertRuleUpdateInput, MeetingAttendanceAuditAlertRuleUncheckedUpdateInput>
  }

  /**
   * MeetingAttendanceAuditAlertRule delete
   */
  export type MeetingAttendanceAuditAlertRuleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
    /**
     * Filter which MeetingAttendanceAuditAlertRule to delete.
     */
    where: MeetingAttendanceAuditAlertRuleWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditAlertRule deleteMany
   */
  export type MeetingAttendanceAuditAlertRuleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceAuditAlertRules to delete
     */
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    /**
     * Limit how many MeetingAttendanceAuditAlertRules to delete.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceAuditAlertRule.alerts
   */
  export type MeetingAttendanceAuditAlertRule$alertsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    where?: MeetingAttendanceAuditAlertWhereInput
    orderBy?: MeetingAttendanceAuditAlertOrderByWithRelationInput | MeetingAttendanceAuditAlertOrderByWithRelationInput[]
    cursor?: MeetingAttendanceAuditAlertWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAttendanceAuditAlertScalarFieldEnum | MeetingAttendanceAuditAlertScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditAlertRule without action
   */
  export type MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlertRule
     */
    select?: MeetingAttendanceAuditAlertRuleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlertRule
     */
    omit?: MeetingAttendanceAuditAlertRuleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertRuleInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAttendanceAuditAlert
   */

  export type AggregateMeetingAttendanceAuditAlert = {
    _count: MeetingAttendanceAuditAlertCountAggregateOutputType | null
    _min: MeetingAttendanceAuditAlertMinAggregateOutputType | null
    _max: MeetingAttendanceAuditAlertMaxAggregateOutputType | null
  }

  export type MeetingAttendanceAuditAlertMinAggregateOutputType = {
    id: string | null
    ruleId: string | null
    severity: string | null
    title: string | null
    description: string | null
    triggerData: string | null
    matchedLogs: string | null
    affectedEntities: string | null
    status: string | null
    acknowledgedBy: string | null
    acknowledgedAt: Date | null
    resolvedBy: string | null
    resolvedAt: Date | null
    resolution: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceAuditAlertMaxAggregateOutputType = {
    id: string | null
    ruleId: string | null
    severity: string | null
    title: string | null
    description: string | null
    triggerData: string | null
    matchedLogs: string | null
    affectedEntities: string | null
    status: string | null
    acknowledgedBy: string | null
    acknowledgedAt: Date | null
    resolvedBy: string | null
    resolvedAt: Date | null
    resolution: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceAuditAlertCountAggregateOutputType = {
    id: number
    ruleId: number
    severity: number
    title: number
    description: number
    triggerData: number
    matchedLogs: number
    affectedEntities: number
    status: number
    acknowledgedBy: number
    acknowledgedAt: number
    resolvedBy: number
    resolvedAt: number
    resolution: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingAttendanceAuditAlertMinAggregateInputType = {
    id?: true
    ruleId?: true
    severity?: true
    title?: true
    description?: true
    triggerData?: true
    matchedLogs?: true
    affectedEntities?: true
    status?: true
    acknowledgedBy?: true
    acknowledgedAt?: true
    resolvedBy?: true
    resolvedAt?: true
    resolution?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceAuditAlertMaxAggregateInputType = {
    id?: true
    ruleId?: true
    severity?: true
    title?: true
    description?: true
    triggerData?: true
    matchedLogs?: true
    affectedEntities?: true
    status?: true
    acknowledgedBy?: true
    acknowledgedAt?: true
    resolvedBy?: true
    resolvedAt?: true
    resolution?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceAuditAlertCountAggregateInputType = {
    id?: true
    ruleId?: true
    severity?: true
    title?: true
    description?: true
    triggerData?: true
    matchedLogs?: true
    affectedEntities?: true
    status?: true
    acknowledgedBy?: true
    acknowledgedAt?: true
    resolvedBy?: true
    resolvedAt?: true
    resolution?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingAttendanceAuditAlertAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceAuditAlert to aggregate.
     */
    where?: MeetingAttendanceAuditAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditAlerts to fetch.
     */
    orderBy?: MeetingAttendanceAuditAlertOrderByWithRelationInput | MeetingAttendanceAuditAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAttendanceAuditAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditAlerts 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` MeetingAttendanceAuditAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAttendanceAuditAlerts
    **/
    _count?: true | MeetingAttendanceAuditAlertCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAttendanceAuditAlertMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAttendanceAuditAlertMaxAggregateInputType
  }

  export type GetMeetingAttendanceAuditAlertAggregateType<T extends MeetingAttendanceAuditAlertAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAttendanceAuditAlert]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAttendanceAuditAlert[P]>
      : GetScalarType<T[P], AggregateMeetingAttendanceAuditAlert[P]>
  }




  export type MeetingAttendanceAuditAlertGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceAuditAlertWhereInput
    orderBy?: MeetingAttendanceAuditAlertOrderByWithAggregationInput | MeetingAttendanceAuditAlertOrderByWithAggregationInput[]
    by: MeetingAttendanceAuditAlertScalarFieldEnum[] | MeetingAttendanceAuditAlertScalarFieldEnum
    having?: MeetingAttendanceAuditAlertScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAttendanceAuditAlertCountAggregateInputType | true
    _min?: MeetingAttendanceAuditAlertMinAggregateInputType
    _max?: MeetingAttendanceAuditAlertMaxAggregateInputType
  }

  export type MeetingAttendanceAuditAlertGroupByOutputType = {
    id: string
    ruleId: string
    severity: string
    title: string
    description: string
    triggerData: string
    matchedLogs: string
    affectedEntities: string | null
    status: string
    acknowledgedBy: string | null
    acknowledgedAt: Date | null
    resolvedBy: string | null
    resolvedAt: Date | null
    resolution: string | null
    createdAt: Date
    updatedAt: Date
    _count: MeetingAttendanceAuditAlertCountAggregateOutputType | null
    _min: MeetingAttendanceAuditAlertMinAggregateOutputType | null
    _max: MeetingAttendanceAuditAlertMaxAggregateOutputType | null
  }

  type GetMeetingAttendanceAuditAlertGroupByPayload<T extends MeetingAttendanceAuditAlertGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAttendanceAuditAlertGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAttendanceAuditAlertGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAttendanceAuditAlertGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAttendanceAuditAlertGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAttendanceAuditAlertSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ruleId?: boolean
    severity?: boolean
    title?: boolean
    description?: boolean
    triggerData?: boolean
    matchedLogs?: boolean
    affectedEntities?: boolean
    status?: boolean
    acknowledgedBy?: boolean
    acknowledgedAt?: boolean
    resolvedBy?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    rule?: boolean | MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceAuditAlert"]>

  export type MeetingAttendanceAuditAlertSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ruleId?: boolean
    severity?: boolean
    title?: boolean
    description?: boolean
    triggerData?: boolean
    matchedLogs?: boolean
    affectedEntities?: boolean
    status?: boolean
    acknowledgedBy?: boolean
    acknowledgedAt?: boolean
    resolvedBy?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    rule?: boolean | MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceAuditAlert"]>

  export type MeetingAttendanceAuditAlertSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ruleId?: boolean
    severity?: boolean
    title?: boolean
    description?: boolean
    triggerData?: boolean
    matchedLogs?: boolean
    affectedEntities?: boolean
    status?: boolean
    acknowledgedBy?: boolean
    acknowledgedAt?: boolean
    resolvedBy?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    rule?: boolean | MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttendanceAuditAlert"]>

  export type MeetingAttendanceAuditAlertSelectScalar = {
    id?: boolean
    ruleId?: boolean
    severity?: boolean
    title?: boolean
    description?: boolean
    triggerData?: boolean
    matchedLogs?: boolean
    affectedEntities?: boolean
    status?: boolean
    acknowledgedBy?: boolean
    acknowledgedAt?: boolean
    resolvedBy?: boolean
    resolvedAt?: boolean
    resolution?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingAttendanceAuditAlertOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "ruleId" | "severity" | "title" | "description" | "triggerData" | "matchedLogs" | "affectedEntities" | "status" | "acknowledgedBy" | "acknowledgedAt" | "resolvedBy" | "resolvedAt" | "resolution" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingAttendanceAuditAlert"]>
  export type MeetingAttendanceAuditAlertInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    rule?: boolean | MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceAuditAlertIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    rule?: boolean | MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs>
  }
  export type MeetingAttendanceAuditAlertIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    rule?: boolean | MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs>
  }

  export type $MeetingAttendanceAuditAlertPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAttendanceAuditAlert"
    objects: {
      rule: Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      ruleId: string
      severity: string
      title: string
      description: string
      triggerData: string
      matchedLogs: string
      affectedEntities: string | null
      status: string
      acknowledgedBy: string | null
      acknowledgedAt: Date | null
      resolvedBy: string | null
      resolvedAt: Date | null
      resolution: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingAttendanceAuditAlert"]>
    composites: {}
  }

  type MeetingAttendanceAuditAlertGetPayload<S extends boolean | null | undefined | MeetingAttendanceAuditAlertDefaultArgs> = $Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload, S>

  type MeetingAttendanceAuditAlertCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAttendanceAuditAlertFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAttendanceAuditAlertCountAggregateInputType | true
    }

  export interface MeetingAttendanceAuditAlertDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAttendanceAuditAlert'], meta: { name: 'MeetingAttendanceAuditAlert' } }
    /**
     * Find zero or one MeetingAttendanceAuditAlert that matches the filter.
     * @param {MeetingAttendanceAuditAlertFindUniqueArgs} args - Arguments to find a MeetingAttendanceAuditAlert
     * @example
     * // Get one MeetingAttendanceAuditAlert
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAttendanceAuditAlertFindUniqueArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertFindUniqueArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAttendanceAuditAlert that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAttendanceAuditAlertFindUniqueOrThrowArgs} args - Arguments to find a MeetingAttendanceAuditAlert
     * @example
     * // Get one MeetingAttendanceAuditAlert
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAttendanceAuditAlertFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceAuditAlert 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 {MeetingAttendanceAuditAlertFindFirstArgs} args - Arguments to find a MeetingAttendanceAuditAlert
     * @example
     * // Get one MeetingAttendanceAuditAlert
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAttendanceAuditAlertFindFirstArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertFindFirstArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceAuditAlert 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 {MeetingAttendanceAuditAlertFindFirstOrThrowArgs} args - Arguments to find a MeetingAttendanceAuditAlert
     * @example
     * // Get one MeetingAttendanceAuditAlert
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAttendanceAuditAlertFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAttendanceAuditAlerts 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 {MeetingAttendanceAuditAlertFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAttendanceAuditAlerts
     * const meetingAttendanceAuditAlerts = await prisma.meetingAttendanceAuditAlert.findMany()
     * 
     * // Get first 10 MeetingAttendanceAuditAlerts
     * const meetingAttendanceAuditAlerts = await prisma.meetingAttendanceAuditAlert.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAttendanceAuditAlertWithIdOnly = await prisma.meetingAttendanceAuditAlert.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAttendanceAuditAlertFindManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAttendanceAuditAlert.
     * @param {MeetingAttendanceAuditAlertCreateArgs} args - Arguments to create a MeetingAttendanceAuditAlert.
     * @example
     * // Create one MeetingAttendanceAuditAlert
     * const MeetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.create({
     *   data: {
     *     // ... data to create a MeetingAttendanceAuditAlert
     *   }
     * })
     * 
     */
    create<T extends MeetingAttendanceAuditAlertCreateArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertCreateArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAttendanceAuditAlerts.
     * @param {MeetingAttendanceAuditAlertCreateManyArgs} args - Arguments to create many MeetingAttendanceAuditAlerts.
     * @example
     * // Create many MeetingAttendanceAuditAlerts
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAttendanceAuditAlertCreateManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAttendanceAuditAlerts and returns the data saved in the database.
     * @param {MeetingAttendanceAuditAlertCreateManyAndReturnArgs} args - Arguments to create many MeetingAttendanceAuditAlerts.
     * @example
     * // Create many MeetingAttendanceAuditAlerts
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAttendanceAuditAlerts and only return the `id`
     * const meetingAttendanceAuditAlertWithIdOnly = await prisma.meetingAttendanceAuditAlert.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 MeetingAttendanceAuditAlertCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAttendanceAuditAlert.
     * @param {MeetingAttendanceAuditAlertDeleteArgs} args - Arguments to delete one MeetingAttendanceAuditAlert.
     * @example
     * // Delete one MeetingAttendanceAuditAlert
     * const MeetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.delete({
     *   where: {
     *     // ... filter to delete one MeetingAttendanceAuditAlert
     *   }
     * })
     * 
     */
    delete<T extends MeetingAttendanceAuditAlertDeleteArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertDeleteArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAttendanceAuditAlert.
     * @param {MeetingAttendanceAuditAlertUpdateArgs} args - Arguments to update one MeetingAttendanceAuditAlert.
     * @example
     * // Update one MeetingAttendanceAuditAlert
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAttendanceAuditAlertUpdateArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertUpdateArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAttendanceAuditAlerts.
     * @param {MeetingAttendanceAuditAlertDeleteManyArgs} args - Arguments to filter MeetingAttendanceAuditAlerts to delete.
     * @example
     * // Delete a few MeetingAttendanceAuditAlerts
     * const { count } = await prisma.meetingAttendanceAuditAlert.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAttendanceAuditAlertDeleteManyArgs>(args?: SelectSubset<T, MeetingAttendanceAuditAlertDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceAuditAlerts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditAlertUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAttendanceAuditAlerts
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAttendanceAuditAlertUpdateManyArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceAuditAlerts and returns the data updated in the database.
     * @param {MeetingAttendanceAuditAlertUpdateManyAndReturnArgs} args - Arguments to update many MeetingAttendanceAuditAlerts.
     * @example
     * // Update many MeetingAttendanceAuditAlerts
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAttendanceAuditAlerts and only return the `id`
     * const meetingAttendanceAuditAlertWithIdOnly = await prisma.meetingAttendanceAuditAlert.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 MeetingAttendanceAuditAlertUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAttendanceAuditAlert.
     * @param {MeetingAttendanceAuditAlertUpsertArgs} args - Arguments to update or create a MeetingAttendanceAuditAlert.
     * @example
     * // Update or create a MeetingAttendanceAuditAlert
     * const meetingAttendanceAuditAlert = await prisma.meetingAttendanceAuditAlert.upsert({
     *   create: {
     *     // ... data to create a MeetingAttendanceAuditAlert
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAttendanceAuditAlert we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAttendanceAuditAlertUpsertArgs>(args: SelectSubset<T, MeetingAttendanceAuditAlertUpsertArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAttendanceAuditAlerts.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditAlertCountArgs} args - Arguments to filter MeetingAttendanceAuditAlerts to count.
     * @example
     * // Count the number of MeetingAttendanceAuditAlerts
     * const count = await prisma.meetingAttendanceAuditAlert.count({
     *   where: {
     *     // ... the filter for the MeetingAttendanceAuditAlerts we want to count
     *   }
     * })
    **/
    count<T extends MeetingAttendanceAuditAlertCountArgs>(
      args?: Subset<T, MeetingAttendanceAuditAlertCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAttendanceAuditAlertCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAttendanceAuditAlert.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditAlertAggregateArgs} 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 MeetingAttendanceAuditAlertAggregateArgs>(args: Subset<T, MeetingAttendanceAuditAlertAggregateArgs>): Prisma.PrismaPromise<GetMeetingAttendanceAuditAlertAggregateType<T>>

    /**
     * Group by MeetingAttendanceAuditAlert.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceAuditAlertGroupByArgs} 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 MeetingAttendanceAuditAlertGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAttendanceAuditAlertGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAttendanceAuditAlertGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAttendanceAuditAlertGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAttendanceAuditAlertGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAttendanceAuditAlert model
   */
  readonly fields: MeetingAttendanceAuditAlertFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAttendanceAuditAlert.
   * 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__MeetingAttendanceAuditAlertClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    rule<T extends MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAttendanceAuditAlertRuleDefaultArgs<ExtArgs>>): Prisma__MeetingAttendanceAuditAlertRuleClient<$Result.GetResult<Prisma.$MeetingAttendanceAuditAlertRulePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAttendanceAuditAlert model
   */
  interface MeetingAttendanceAuditAlertFieldRefs {
    readonly id: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly ruleId: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly severity: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly title: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly description: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly triggerData: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly matchedLogs: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly affectedEntities: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly status: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly acknowledgedBy: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly acknowledgedAt: FieldRef<"MeetingAttendanceAuditAlert", 'DateTime'>
    readonly resolvedBy: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly resolvedAt: FieldRef<"MeetingAttendanceAuditAlert", 'DateTime'>
    readonly resolution: FieldRef<"MeetingAttendanceAuditAlert", 'String'>
    readonly createdAt: FieldRef<"MeetingAttendanceAuditAlert", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAttendanceAuditAlert", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAttendanceAuditAlert findUnique
   */
  export type MeetingAttendanceAuditAlertFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlert to fetch.
     */
    where: MeetingAttendanceAuditAlertWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditAlert findUniqueOrThrow
   */
  export type MeetingAttendanceAuditAlertFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlert to fetch.
     */
    where: MeetingAttendanceAuditAlertWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditAlert findFirst
   */
  export type MeetingAttendanceAuditAlertFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlert to fetch.
     */
    where?: MeetingAttendanceAuditAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditAlerts to fetch.
     */
    orderBy?: MeetingAttendanceAuditAlertOrderByWithRelationInput | MeetingAttendanceAuditAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceAuditAlerts.
     */
    cursor?: MeetingAttendanceAuditAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditAlerts 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` MeetingAttendanceAuditAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceAuditAlerts.
     */
    distinct?: MeetingAttendanceAuditAlertScalarFieldEnum | MeetingAttendanceAuditAlertScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditAlert findFirstOrThrow
   */
  export type MeetingAttendanceAuditAlertFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlert to fetch.
     */
    where?: MeetingAttendanceAuditAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditAlerts to fetch.
     */
    orderBy?: MeetingAttendanceAuditAlertOrderByWithRelationInput | MeetingAttendanceAuditAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceAuditAlerts.
     */
    cursor?: MeetingAttendanceAuditAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditAlerts 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` MeetingAttendanceAuditAlerts.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceAuditAlerts.
     */
    distinct?: MeetingAttendanceAuditAlertScalarFieldEnum | MeetingAttendanceAuditAlertScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditAlert findMany
   */
  export type MeetingAttendanceAuditAlertFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceAuditAlerts to fetch.
     */
    where?: MeetingAttendanceAuditAlertWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceAuditAlerts to fetch.
     */
    orderBy?: MeetingAttendanceAuditAlertOrderByWithRelationInput | MeetingAttendanceAuditAlertOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAttendanceAuditAlerts.
     */
    cursor?: MeetingAttendanceAuditAlertWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceAuditAlerts 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` MeetingAttendanceAuditAlerts.
     */
    skip?: number
    distinct?: MeetingAttendanceAuditAlertScalarFieldEnum | MeetingAttendanceAuditAlertScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceAuditAlert create
   */
  export type MeetingAttendanceAuditAlertCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAttendanceAuditAlert.
     */
    data: XOR<MeetingAttendanceAuditAlertCreateInput, MeetingAttendanceAuditAlertUncheckedCreateInput>
  }

  /**
   * MeetingAttendanceAuditAlert createMany
   */
  export type MeetingAttendanceAuditAlertCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAttendanceAuditAlerts.
     */
    data: MeetingAttendanceAuditAlertCreateManyInput | MeetingAttendanceAuditAlertCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceAuditAlert createManyAndReturn
   */
  export type MeetingAttendanceAuditAlertCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAttendanceAuditAlerts.
     */
    data: MeetingAttendanceAuditAlertCreateManyInput | MeetingAttendanceAuditAlertCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttendanceAuditAlert update
   */
  export type MeetingAttendanceAuditAlertUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAttendanceAuditAlert.
     */
    data: XOR<MeetingAttendanceAuditAlertUpdateInput, MeetingAttendanceAuditAlertUncheckedUpdateInput>
    /**
     * Choose, which MeetingAttendanceAuditAlert to update.
     */
    where: MeetingAttendanceAuditAlertWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditAlert updateMany
   */
  export type MeetingAttendanceAuditAlertUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAttendanceAuditAlerts.
     */
    data: XOR<MeetingAttendanceAuditAlertUpdateManyMutationInput, MeetingAttendanceAuditAlertUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceAuditAlerts to update
     */
    where?: MeetingAttendanceAuditAlertWhereInput
    /**
     * Limit how many MeetingAttendanceAuditAlerts to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceAuditAlert updateManyAndReturn
   */
  export type MeetingAttendanceAuditAlertUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAttendanceAuditAlerts.
     */
    data: XOR<MeetingAttendanceAuditAlertUpdateManyMutationInput, MeetingAttendanceAuditAlertUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceAuditAlerts to update
     */
    where?: MeetingAttendanceAuditAlertWhereInput
    /**
     * Limit how many MeetingAttendanceAuditAlerts to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttendanceAuditAlert upsert
   */
  export type MeetingAttendanceAuditAlertUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAttendanceAuditAlert to update in case it exists.
     */
    where: MeetingAttendanceAuditAlertWhereUniqueInput
    /**
     * In case the MeetingAttendanceAuditAlert found by the `where` argument doesn't exist, create a new MeetingAttendanceAuditAlert with this data.
     */
    create: XOR<MeetingAttendanceAuditAlertCreateInput, MeetingAttendanceAuditAlertUncheckedCreateInput>
    /**
     * In case the MeetingAttendanceAuditAlert was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAttendanceAuditAlertUpdateInput, MeetingAttendanceAuditAlertUncheckedUpdateInput>
  }

  /**
   * MeetingAttendanceAuditAlert delete
   */
  export type MeetingAttendanceAuditAlertDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
    /**
     * Filter which MeetingAttendanceAuditAlert to delete.
     */
    where: MeetingAttendanceAuditAlertWhereUniqueInput
  }

  /**
   * MeetingAttendanceAuditAlert deleteMany
   */
  export type MeetingAttendanceAuditAlertDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceAuditAlerts to delete
     */
    where?: MeetingAttendanceAuditAlertWhereInput
    /**
     * Limit how many MeetingAttendanceAuditAlerts to delete.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceAuditAlert without action
   */
  export type MeetingAttendanceAuditAlertDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceAuditAlert
     */
    select?: MeetingAttendanceAuditAlertSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceAuditAlert
     */
    omit?: MeetingAttendanceAuditAlertOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttendanceAuditAlertInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAttendanceRetentionPolicy
   */

  export type AggregateMeetingAttendanceRetentionPolicy = {
    _count: MeetingAttendanceRetentionPolicyCountAggregateOutputType | null
    _avg: MeetingAttendanceRetentionPolicyAvgAggregateOutputType | null
    _sum: MeetingAttendanceRetentionPolicySumAggregateOutputType | null
    _min: MeetingAttendanceRetentionPolicyMinAggregateOutputType | null
    _max: MeetingAttendanceRetentionPolicyMaxAggregateOutputType | null
  }

  export type MeetingAttendanceRetentionPolicyAvgAggregateOutputType = {
    hotDays: number | null
    warmDays: number | null
    coldDays: number | null
  }

  export type MeetingAttendanceRetentionPolicySumAggregateOutputType = {
    hotDays: number | null
    warmDays: number | null
    coldDays: number | null
  }

  export type MeetingAttendanceRetentionPolicyMinAggregateOutputType = {
    id: string | null
    entityType: string | null
    hotDays: number | null
    warmDays: number | null
    coldDays: number | null
    autoArchive: boolean | null
    autoDelete: boolean | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceRetentionPolicyMaxAggregateOutputType = {
    id: string | null
    entityType: string | null
    hotDays: number | null
    warmDays: number | null
    coldDays: number | null
    autoArchive: boolean | null
    autoDelete: boolean | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type MeetingAttendanceRetentionPolicyCountAggregateOutputType = {
    id: number
    entityType: number
    hotDays: number
    warmDays: number
    coldDays: number
    autoArchive: number
    autoDelete: number
    isActive: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type MeetingAttendanceRetentionPolicyAvgAggregateInputType = {
    hotDays?: true
    warmDays?: true
    coldDays?: true
  }

  export type MeetingAttendanceRetentionPolicySumAggregateInputType = {
    hotDays?: true
    warmDays?: true
    coldDays?: true
  }

  export type MeetingAttendanceRetentionPolicyMinAggregateInputType = {
    id?: true
    entityType?: true
    hotDays?: true
    warmDays?: true
    coldDays?: true
    autoArchive?: true
    autoDelete?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceRetentionPolicyMaxAggregateInputType = {
    id?: true
    entityType?: true
    hotDays?: true
    warmDays?: true
    coldDays?: true
    autoArchive?: true
    autoDelete?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type MeetingAttendanceRetentionPolicyCountAggregateInputType = {
    id?: true
    entityType?: true
    hotDays?: true
    warmDays?: true
    coldDays?: true
    autoArchive?: true
    autoDelete?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type MeetingAttendanceRetentionPolicyAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceRetentionPolicy to aggregate.
     */
    where?: MeetingAttendanceRetentionPolicyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceRetentionPolicies to fetch.
     */
    orderBy?: MeetingAttendanceRetentionPolicyOrderByWithRelationInput | MeetingAttendanceRetentionPolicyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAttendanceRetentionPolicyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceRetentionPolicies 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` MeetingAttendanceRetentionPolicies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAttendanceRetentionPolicies
    **/
    _count?: true | MeetingAttendanceRetentionPolicyCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAttendanceRetentionPolicyAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingAttendanceRetentionPolicySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAttendanceRetentionPolicyMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAttendanceRetentionPolicyMaxAggregateInputType
  }

  export type GetMeetingAttendanceRetentionPolicyAggregateType<T extends MeetingAttendanceRetentionPolicyAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAttendanceRetentionPolicy]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAttendanceRetentionPolicy[P]>
      : GetScalarType<T[P], AggregateMeetingAttendanceRetentionPolicy[P]>
  }




  export type MeetingAttendanceRetentionPolicyGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttendanceRetentionPolicyWhereInput
    orderBy?: MeetingAttendanceRetentionPolicyOrderByWithAggregationInput | MeetingAttendanceRetentionPolicyOrderByWithAggregationInput[]
    by: MeetingAttendanceRetentionPolicyScalarFieldEnum[] | MeetingAttendanceRetentionPolicyScalarFieldEnum
    having?: MeetingAttendanceRetentionPolicyScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAttendanceRetentionPolicyCountAggregateInputType | true
    _avg?: MeetingAttendanceRetentionPolicyAvgAggregateInputType
    _sum?: MeetingAttendanceRetentionPolicySumAggregateInputType
    _min?: MeetingAttendanceRetentionPolicyMinAggregateInputType
    _max?: MeetingAttendanceRetentionPolicyMaxAggregateInputType
  }

  export type MeetingAttendanceRetentionPolicyGroupByOutputType = {
    id: string
    entityType: string
    hotDays: number
    warmDays: number
    coldDays: number
    autoArchive: boolean
    autoDelete: boolean
    isActive: boolean
    createdAt: Date
    updatedAt: Date
    _count: MeetingAttendanceRetentionPolicyCountAggregateOutputType | null
    _avg: MeetingAttendanceRetentionPolicyAvgAggregateOutputType | null
    _sum: MeetingAttendanceRetentionPolicySumAggregateOutputType | null
    _min: MeetingAttendanceRetentionPolicyMinAggregateOutputType | null
    _max: MeetingAttendanceRetentionPolicyMaxAggregateOutputType | null
  }

  type GetMeetingAttendanceRetentionPolicyGroupByPayload<T extends MeetingAttendanceRetentionPolicyGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAttendanceRetentionPolicyGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAttendanceRetentionPolicyGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAttendanceRetentionPolicyGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAttendanceRetentionPolicyGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAttendanceRetentionPolicySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    entityType?: boolean
    hotDays?: boolean
    warmDays?: boolean
    coldDays?: boolean
    autoArchive?: boolean
    autoDelete?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["meetingAttendanceRetentionPolicy"]>

  export type MeetingAttendanceRetentionPolicySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    entityType?: boolean
    hotDays?: boolean
    warmDays?: boolean
    coldDays?: boolean
    autoArchive?: boolean
    autoDelete?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["meetingAttendanceRetentionPolicy"]>

  export type MeetingAttendanceRetentionPolicySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    entityType?: boolean
    hotDays?: boolean
    warmDays?: boolean
    coldDays?: boolean
    autoArchive?: boolean
    autoDelete?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["meetingAttendanceRetentionPolicy"]>

  export type MeetingAttendanceRetentionPolicySelectScalar = {
    id?: boolean
    entityType?: boolean
    hotDays?: boolean
    warmDays?: boolean
    coldDays?: boolean
    autoArchive?: boolean
    autoDelete?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type MeetingAttendanceRetentionPolicyOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "entityType" | "hotDays" | "warmDays" | "coldDays" | "autoArchive" | "autoDelete" | "isActive" | "createdAt" | "updatedAt", ExtArgs["result"]["meetingAttendanceRetentionPolicy"]>

  export type $MeetingAttendanceRetentionPolicyPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAttendanceRetentionPolicy"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      entityType: string
      hotDays: number
      warmDays: number
      coldDays: number
      autoArchive: boolean
      autoDelete: boolean
      isActive: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["meetingAttendanceRetentionPolicy"]>
    composites: {}
  }

  type MeetingAttendanceRetentionPolicyGetPayload<S extends boolean | null | undefined | MeetingAttendanceRetentionPolicyDefaultArgs> = $Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload, S>

  type MeetingAttendanceRetentionPolicyCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAttendanceRetentionPolicyFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAttendanceRetentionPolicyCountAggregateInputType | true
    }

  export interface MeetingAttendanceRetentionPolicyDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAttendanceRetentionPolicy'], meta: { name: 'MeetingAttendanceRetentionPolicy' } }
    /**
     * Find zero or one MeetingAttendanceRetentionPolicy that matches the filter.
     * @param {MeetingAttendanceRetentionPolicyFindUniqueArgs} args - Arguments to find a MeetingAttendanceRetentionPolicy
     * @example
     * // Get one MeetingAttendanceRetentionPolicy
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAttendanceRetentionPolicyFindUniqueArgs>(args: SelectSubset<T, MeetingAttendanceRetentionPolicyFindUniqueArgs<ExtArgs>>): Prisma__MeetingAttendanceRetentionPolicyClient<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAttendanceRetentionPolicy that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAttendanceRetentionPolicyFindUniqueOrThrowArgs} args - Arguments to find a MeetingAttendanceRetentionPolicy
     * @example
     * // Get one MeetingAttendanceRetentionPolicy
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAttendanceRetentionPolicyFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAttendanceRetentionPolicyFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceRetentionPolicyClient<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceRetentionPolicy 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 {MeetingAttendanceRetentionPolicyFindFirstArgs} args - Arguments to find a MeetingAttendanceRetentionPolicy
     * @example
     * // Get one MeetingAttendanceRetentionPolicy
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAttendanceRetentionPolicyFindFirstArgs>(args?: SelectSubset<T, MeetingAttendanceRetentionPolicyFindFirstArgs<ExtArgs>>): Prisma__MeetingAttendanceRetentionPolicyClient<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttendanceRetentionPolicy 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 {MeetingAttendanceRetentionPolicyFindFirstOrThrowArgs} args - Arguments to find a MeetingAttendanceRetentionPolicy
     * @example
     * // Get one MeetingAttendanceRetentionPolicy
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAttendanceRetentionPolicyFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAttendanceRetentionPolicyFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAttendanceRetentionPolicyClient<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAttendanceRetentionPolicies 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 {MeetingAttendanceRetentionPolicyFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAttendanceRetentionPolicies
     * const meetingAttendanceRetentionPolicies = await prisma.meetingAttendanceRetentionPolicy.findMany()
     * 
     * // Get first 10 MeetingAttendanceRetentionPolicies
     * const meetingAttendanceRetentionPolicies = await prisma.meetingAttendanceRetentionPolicy.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAttendanceRetentionPolicyWithIdOnly = await prisma.meetingAttendanceRetentionPolicy.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAttendanceRetentionPolicyFindManyArgs>(args?: SelectSubset<T, MeetingAttendanceRetentionPolicyFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAttendanceRetentionPolicy.
     * @param {MeetingAttendanceRetentionPolicyCreateArgs} args - Arguments to create a MeetingAttendanceRetentionPolicy.
     * @example
     * // Create one MeetingAttendanceRetentionPolicy
     * const MeetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.create({
     *   data: {
     *     // ... data to create a MeetingAttendanceRetentionPolicy
     *   }
     * })
     * 
     */
    create<T extends MeetingAttendanceRetentionPolicyCreateArgs>(args: SelectSubset<T, MeetingAttendanceRetentionPolicyCreateArgs<ExtArgs>>): Prisma__MeetingAttendanceRetentionPolicyClient<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAttendanceRetentionPolicies.
     * @param {MeetingAttendanceRetentionPolicyCreateManyArgs} args - Arguments to create many MeetingAttendanceRetentionPolicies.
     * @example
     * // Create many MeetingAttendanceRetentionPolicies
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAttendanceRetentionPolicyCreateManyArgs>(args?: SelectSubset<T, MeetingAttendanceRetentionPolicyCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAttendanceRetentionPolicies and returns the data saved in the database.
     * @param {MeetingAttendanceRetentionPolicyCreateManyAndReturnArgs} args - Arguments to create many MeetingAttendanceRetentionPolicies.
     * @example
     * // Create many MeetingAttendanceRetentionPolicies
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAttendanceRetentionPolicies and only return the `id`
     * const meetingAttendanceRetentionPolicyWithIdOnly = await prisma.meetingAttendanceRetentionPolicy.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 MeetingAttendanceRetentionPolicyCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAttendanceRetentionPolicyCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAttendanceRetentionPolicy.
     * @param {MeetingAttendanceRetentionPolicyDeleteArgs} args - Arguments to delete one MeetingAttendanceRetentionPolicy.
     * @example
     * // Delete one MeetingAttendanceRetentionPolicy
     * const MeetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.delete({
     *   where: {
     *     // ... filter to delete one MeetingAttendanceRetentionPolicy
     *   }
     * })
     * 
     */
    delete<T extends MeetingAttendanceRetentionPolicyDeleteArgs>(args: SelectSubset<T, MeetingAttendanceRetentionPolicyDeleteArgs<ExtArgs>>): Prisma__MeetingAttendanceRetentionPolicyClient<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAttendanceRetentionPolicy.
     * @param {MeetingAttendanceRetentionPolicyUpdateArgs} args - Arguments to update one MeetingAttendanceRetentionPolicy.
     * @example
     * // Update one MeetingAttendanceRetentionPolicy
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAttendanceRetentionPolicyUpdateArgs>(args: SelectSubset<T, MeetingAttendanceRetentionPolicyUpdateArgs<ExtArgs>>): Prisma__MeetingAttendanceRetentionPolicyClient<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAttendanceRetentionPolicies.
     * @param {MeetingAttendanceRetentionPolicyDeleteManyArgs} args - Arguments to filter MeetingAttendanceRetentionPolicies to delete.
     * @example
     * // Delete a few MeetingAttendanceRetentionPolicies
     * const { count } = await prisma.meetingAttendanceRetentionPolicy.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAttendanceRetentionPolicyDeleteManyArgs>(args?: SelectSubset<T, MeetingAttendanceRetentionPolicyDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceRetentionPolicies.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceRetentionPolicyUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAttendanceRetentionPolicies
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAttendanceRetentionPolicyUpdateManyArgs>(args: SelectSubset<T, MeetingAttendanceRetentionPolicyUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttendanceRetentionPolicies and returns the data updated in the database.
     * @param {MeetingAttendanceRetentionPolicyUpdateManyAndReturnArgs} args - Arguments to update many MeetingAttendanceRetentionPolicies.
     * @example
     * // Update many MeetingAttendanceRetentionPolicies
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAttendanceRetentionPolicies and only return the `id`
     * const meetingAttendanceRetentionPolicyWithIdOnly = await prisma.meetingAttendanceRetentionPolicy.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 MeetingAttendanceRetentionPolicyUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAttendanceRetentionPolicyUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAttendanceRetentionPolicy.
     * @param {MeetingAttendanceRetentionPolicyUpsertArgs} args - Arguments to update or create a MeetingAttendanceRetentionPolicy.
     * @example
     * // Update or create a MeetingAttendanceRetentionPolicy
     * const meetingAttendanceRetentionPolicy = await prisma.meetingAttendanceRetentionPolicy.upsert({
     *   create: {
     *     // ... data to create a MeetingAttendanceRetentionPolicy
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAttendanceRetentionPolicy we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAttendanceRetentionPolicyUpsertArgs>(args: SelectSubset<T, MeetingAttendanceRetentionPolicyUpsertArgs<ExtArgs>>): Prisma__MeetingAttendanceRetentionPolicyClient<$Result.GetResult<Prisma.$MeetingAttendanceRetentionPolicyPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAttendanceRetentionPolicies.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceRetentionPolicyCountArgs} args - Arguments to filter MeetingAttendanceRetentionPolicies to count.
     * @example
     * // Count the number of MeetingAttendanceRetentionPolicies
     * const count = await prisma.meetingAttendanceRetentionPolicy.count({
     *   where: {
     *     // ... the filter for the MeetingAttendanceRetentionPolicies we want to count
     *   }
     * })
    **/
    count<T extends MeetingAttendanceRetentionPolicyCountArgs>(
      args?: Subset<T, MeetingAttendanceRetentionPolicyCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAttendanceRetentionPolicyCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAttendanceRetentionPolicy.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceRetentionPolicyAggregateArgs} 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 MeetingAttendanceRetentionPolicyAggregateArgs>(args: Subset<T, MeetingAttendanceRetentionPolicyAggregateArgs>): Prisma.PrismaPromise<GetMeetingAttendanceRetentionPolicyAggregateType<T>>

    /**
     * Group by MeetingAttendanceRetentionPolicy.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttendanceRetentionPolicyGroupByArgs} 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 MeetingAttendanceRetentionPolicyGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAttendanceRetentionPolicyGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAttendanceRetentionPolicyGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAttendanceRetentionPolicyGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAttendanceRetentionPolicyGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAttendanceRetentionPolicy model
   */
  readonly fields: MeetingAttendanceRetentionPolicyFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAttendanceRetentionPolicy.
   * 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__MeetingAttendanceRetentionPolicyClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAttendanceRetentionPolicy model
   */
  interface MeetingAttendanceRetentionPolicyFieldRefs {
    readonly id: FieldRef<"MeetingAttendanceRetentionPolicy", 'String'>
    readonly entityType: FieldRef<"MeetingAttendanceRetentionPolicy", 'String'>
    readonly hotDays: FieldRef<"MeetingAttendanceRetentionPolicy", 'Int'>
    readonly warmDays: FieldRef<"MeetingAttendanceRetentionPolicy", 'Int'>
    readonly coldDays: FieldRef<"MeetingAttendanceRetentionPolicy", 'Int'>
    readonly autoArchive: FieldRef<"MeetingAttendanceRetentionPolicy", 'Boolean'>
    readonly autoDelete: FieldRef<"MeetingAttendanceRetentionPolicy", 'Boolean'>
    readonly isActive: FieldRef<"MeetingAttendanceRetentionPolicy", 'Boolean'>
    readonly createdAt: FieldRef<"MeetingAttendanceRetentionPolicy", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAttendanceRetentionPolicy", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAttendanceRetentionPolicy findUnique
   */
  export type MeetingAttendanceRetentionPolicyFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceRetentionPolicy to fetch.
     */
    where: MeetingAttendanceRetentionPolicyWhereUniqueInput
  }

  /**
   * MeetingAttendanceRetentionPolicy findUniqueOrThrow
   */
  export type MeetingAttendanceRetentionPolicyFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceRetentionPolicy to fetch.
     */
    where: MeetingAttendanceRetentionPolicyWhereUniqueInput
  }

  /**
   * MeetingAttendanceRetentionPolicy findFirst
   */
  export type MeetingAttendanceRetentionPolicyFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceRetentionPolicy to fetch.
     */
    where?: MeetingAttendanceRetentionPolicyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceRetentionPolicies to fetch.
     */
    orderBy?: MeetingAttendanceRetentionPolicyOrderByWithRelationInput | MeetingAttendanceRetentionPolicyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceRetentionPolicies.
     */
    cursor?: MeetingAttendanceRetentionPolicyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceRetentionPolicies 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` MeetingAttendanceRetentionPolicies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceRetentionPolicies.
     */
    distinct?: MeetingAttendanceRetentionPolicyScalarFieldEnum | MeetingAttendanceRetentionPolicyScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceRetentionPolicy findFirstOrThrow
   */
  export type MeetingAttendanceRetentionPolicyFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceRetentionPolicy to fetch.
     */
    where?: MeetingAttendanceRetentionPolicyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceRetentionPolicies to fetch.
     */
    orderBy?: MeetingAttendanceRetentionPolicyOrderByWithRelationInput | MeetingAttendanceRetentionPolicyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttendanceRetentionPolicies.
     */
    cursor?: MeetingAttendanceRetentionPolicyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceRetentionPolicies 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` MeetingAttendanceRetentionPolicies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttendanceRetentionPolicies.
     */
    distinct?: MeetingAttendanceRetentionPolicyScalarFieldEnum | MeetingAttendanceRetentionPolicyScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceRetentionPolicy findMany
   */
  export type MeetingAttendanceRetentionPolicyFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * Filter, which MeetingAttendanceRetentionPolicies to fetch.
     */
    where?: MeetingAttendanceRetentionPolicyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttendanceRetentionPolicies to fetch.
     */
    orderBy?: MeetingAttendanceRetentionPolicyOrderByWithRelationInput | MeetingAttendanceRetentionPolicyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAttendanceRetentionPolicies.
     */
    cursor?: MeetingAttendanceRetentionPolicyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttendanceRetentionPolicies 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` MeetingAttendanceRetentionPolicies.
     */
    skip?: number
    distinct?: MeetingAttendanceRetentionPolicyScalarFieldEnum | MeetingAttendanceRetentionPolicyScalarFieldEnum[]
  }

  /**
   * MeetingAttendanceRetentionPolicy create
   */
  export type MeetingAttendanceRetentionPolicyCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * The data needed to create a MeetingAttendanceRetentionPolicy.
     */
    data: XOR<MeetingAttendanceRetentionPolicyCreateInput, MeetingAttendanceRetentionPolicyUncheckedCreateInput>
  }

  /**
   * MeetingAttendanceRetentionPolicy createMany
   */
  export type MeetingAttendanceRetentionPolicyCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAttendanceRetentionPolicies.
     */
    data: MeetingAttendanceRetentionPolicyCreateManyInput | MeetingAttendanceRetentionPolicyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceRetentionPolicy createManyAndReturn
   */
  export type MeetingAttendanceRetentionPolicyCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAttendanceRetentionPolicies.
     */
    data: MeetingAttendanceRetentionPolicyCreateManyInput | MeetingAttendanceRetentionPolicyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttendanceRetentionPolicy update
   */
  export type MeetingAttendanceRetentionPolicyUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * The data needed to update a MeetingAttendanceRetentionPolicy.
     */
    data: XOR<MeetingAttendanceRetentionPolicyUpdateInput, MeetingAttendanceRetentionPolicyUncheckedUpdateInput>
    /**
     * Choose, which MeetingAttendanceRetentionPolicy to update.
     */
    where: MeetingAttendanceRetentionPolicyWhereUniqueInput
  }

  /**
   * MeetingAttendanceRetentionPolicy updateMany
   */
  export type MeetingAttendanceRetentionPolicyUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAttendanceRetentionPolicies.
     */
    data: XOR<MeetingAttendanceRetentionPolicyUpdateManyMutationInput, MeetingAttendanceRetentionPolicyUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceRetentionPolicies to update
     */
    where?: MeetingAttendanceRetentionPolicyWhereInput
    /**
     * Limit how many MeetingAttendanceRetentionPolicies to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceRetentionPolicy updateManyAndReturn
   */
  export type MeetingAttendanceRetentionPolicyUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAttendanceRetentionPolicies.
     */
    data: XOR<MeetingAttendanceRetentionPolicyUpdateManyMutationInput, MeetingAttendanceRetentionPolicyUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttendanceRetentionPolicies to update
     */
    where?: MeetingAttendanceRetentionPolicyWhereInput
    /**
     * Limit how many MeetingAttendanceRetentionPolicies to update.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceRetentionPolicy upsert
   */
  export type MeetingAttendanceRetentionPolicyUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * The filter to search for the MeetingAttendanceRetentionPolicy to update in case it exists.
     */
    where: MeetingAttendanceRetentionPolicyWhereUniqueInput
    /**
     * In case the MeetingAttendanceRetentionPolicy found by the `where` argument doesn't exist, create a new MeetingAttendanceRetentionPolicy with this data.
     */
    create: XOR<MeetingAttendanceRetentionPolicyCreateInput, MeetingAttendanceRetentionPolicyUncheckedCreateInput>
    /**
     * In case the MeetingAttendanceRetentionPolicy was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAttendanceRetentionPolicyUpdateInput, MeetingAttendanceRetentionPolicyUncheckedUpdateInput>
  }

  /**
   * MeetingAttendanceRetentionPolicy delete
   */
  export type MeetingAttendanceRetentionPolicyDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
    /**
     * Filter which MeetingAttendanceRetentionPolicy to delete.
     */
    where: MeetingAttendanceRetentionPolicyWhereUniqueInput
  }

  /**
   * MeetingAttendanceRetentionPolicy deleteMany
   */
  export type MeetingAttendanceRetentionPolicyDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttendanceRetentionPolicies to delete
     */
    where?: MeetingAttendanceRetentionPolicyWhereInput
    /**
     * Limit how many MeetingAttendanceRetentionPolicies to delete.
     */
    limit?: number
  }

  /**
   * MeetingAttendanceRetentionPolicy without action
   */
  export type MeetingAttendanceRetentionPolicyDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttendanceRetentionPolicy
     */
    select?: MeetingAttendanceRetentionPolicySelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttendanceRetentionPolicy
     */
    omit?: MeetingAttendanceRetentionPolicyOmit<ExtArgs> | null
  }


  /**
   * Model OutlookSyncMailbox
   */

  export type AggregateOutlookSyncMailbox = {
    _count: OutlookSyncMailboxCountAggregateOutputType | null
    _min: OutlookSyncMailboxMinAggregateOutputType | null
    _max: OutlookSyncMailboxMaxAggregateOutputType | null
  }

  export type OutlookSyncMailboxMinAggregateOutputType = {
    id: string | null
    mailboxEmail: string | null
    mailboxType: $Enums.OutlookMailboxType | null
    isEnabled: boolean | null
    isPrimaryDefault: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSyncMailboxMaxAggregateOutputType = {
    id: string | null
    mailboxEmail: string | null
    mailboxType: $Enums.OutlookMailboxType | null
    isEnabled: boolean | null
    isPrimaryDefault: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSyncMailboxCountAggregateOutputType = {
    id: number
    mailboxEmail: number
    mailboxType: number
    isEnabled: number
    isPrimaryDefault: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type OutlookSyncMailboxMinAggregateInputType = {
    id?: true
    mailboxEmail?: true
    mailboxType?: true
    isEnabled?: true
    isPrimaryDefault?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSyncMailboxMaxAggregateInputType = {
    id?: true
    mailboxEmail?: true
    mailboxType?: true
    isEnabled?: true
    isPrimaryDefault?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSyncMailboxCountAggregateInputType = {
    id?: true
    mailboxEmail?: true
    mailboxType?: true
    isEnabled?: true
    isPrimaryDefault?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type OutlookSyncMailboxAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSyncMailbox to aggregate.
     */
    where?: OutlookSyncMailboxWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncMailboxes to fetch.
     */
    orderBy?: OutlookSyncMailboxOrderByWithRelationInput | OutlookSyncMailboxOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookSyncMailboxWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncMailboxes 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` OutlookSyncMailboxes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookSyncMailboxes
    **/
    _count?: true | OutlookSyncMailboxCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookSyncMailboxMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookSyncMailboxMaxAggregateInputType
  }

  export type GetOutlookSyncMailboxAggregateType<T extends OutlookSyncMailboxAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookSyncMailbox]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookSyncMailbox[P]>
      : GetScalarType<T[P], AggregateOutlookSyncMailbox[P]>
  }




  export type OutlookSyncMailboxGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSyncMailboxWhereInput
    orderBy?: OutlookSyncMailboxOrderByWithAggregationInput | OutlookSyncMailboxOrderByWithAggregationInput[]
    by: OutlookSyncMailboxScalarFieldEnum[] | OutlookSyncMailboxScalarFieldEnum
    having?: OutlookSyncMailboxScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookSyncMailboxCountAggregateInputType | true
    _min?: OutlookSyncMailboxMinAggregateInputType
    _max?: OutlookSyncMailboxMaxAggregateInputType
  }

  export type OutlookSyncMailboxGroupByOutputType = {
    id: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled: boolean
    isPrimaryDefault: boolean
    createdAt: Date
    updatedAt: Date
    _count: OutlookSyncMailboxCountAggregateOutputType | null
    _min: OutlookSyncMailboxMinAggregateOutputType | null
    _max: OutlookSyncMailboxMaxAggregateOutputType | null
  }

  type GetOutlookSyncMailboxGroupByPayload<T extends OutlookSyncMailboxGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookSyncMailboxGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookSyncMailboxGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookSyncMailboxGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookSyncMailboxGroupByOutputType[P]>
        }
      >
    >


  export type OutlookSyncMailboxSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxEmail?: boolean
    mailboxType?: boolean
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    subscriptions?: boolean | OutlookSyncMailbox$subscriptionsArgs<ExtArgs>
    primaryBindings?: boolean | OutlookSyncMailbox$primaryBindingsArgs<ExtArgs>
    eventSnapshots?: boolean | OutlookSyncMailbox$eventSnapshotsArgs<ExtArgs>
    syncEventLogs?: boolean | OutlookSyncMailbox$syncEventLogsArgs<ExtArgs>
    sourceVersions?: boolean | OutlookSyncMailbox$sourceVersionsArgs<ExtArgs>
    cursor?: boolean | OutlookSyncMailbox$cursorArgs<ExtArgs>
    _count?: boolean | OutlookSyncMailboxCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSyncMailbox"]>

  export type OutlookSyncMailboxSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxEmail?: boolean
    mailboxType?: boolean
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["outlookSyncMailbox"]>

  export type OutlookSyncMailboxSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxEmail?: boolean
    mailboxType?: boolean
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["outlookSyncMailbox"]>

  export type OutlookSyncMailboxSelectScalar = {
    id?: boolean
    mailboxEmail?: boolean
    mailboxType?: boolean
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type OutlookSyncMailboxOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "mailboxEmail" | "mailboxType" | "isEnabled" | "isPrimaryDefault" | "createdAt" | "updatedAt", ExtArgs["result"]["outlookSyncMailbox"]>
  export type OutlookSyncMailboxInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    subscriptions?: boolean | OutlookSyncMailbox$subscriptionsArgs<ExtArgs>
    primaryBindings?: boolean | OutlookSyncMailbox$primaryBindingsArgs<ExtArgs>
    eventSnapshots?: boolean | OutlookSyncMailbox$eventSnapshotsArgs<ExtArgs>
    syncEventLogs?: boolean | OutlookSyncMailbox$syncEventLogsArgs<ExtArgs>
    sourceVersions?: boolean | OutlookSyncMailbox$sourceVersionsArgs<ExtArgs>
    cursor?: boolean | OutlookSyncMailbox$cursorArgs<ExtArgs>
    _count?: boolean | OutlookSyncMailboxCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type OutlookSyncMailboxIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type OutlookSyncMailboxIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $OutlookSyncMailboxPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookSyncMailbox"
    objects: {
      subscriptions: Prisma.$OutlookSubscriptionPayload<ExtArgs>[]
      primaryBindings: Prisma.$OutlookMeetingBindingPayload<ExtArgs>[]
      eventSnapshots: Prisma.$OutlookEventSnapshotPayload<ExtArgs>[]
      syncEventLogs: Prisma.$OutlookSyncEventLogPayload<ExtArgs>[]
      sourceVersions: Prisma.$OutlookEventSourceVersionPayload<ExtArgs>[]
      cursor: Prisma.$OutlookSyncCursorPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      mailboxEmail: string
      mailboxType: $Enums.OutlookMailboxType
      isEnabled: boolean
      isPrimaryDefault: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["outlookSyncMailbox"]>
    composites: {}
  }

  type OutlookSyncMailboxGetPayload<S extends boolean | null | undefined | OutlookSyncMailboxDefaultArgs> = $Result.GetResult<Prisma.$OutlookSyncMailboxPayload, S>

  type OutlookSyncMailboxCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookSyncMailboxFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookSyncMailboxCountAggregateInputType | true
    }

  export interface OutlookSyncMailboxDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookSyncMailbox'], meta: { name: 'OutlookSyncMailbox' } }
    /**
     * Find zero or one OutlookSyncMailbox that matches the filter.
     * @param {OutlookSyncMailboxFindUniqueArgs} args - Arguments to find a OutlookSyncMailbox
     * @example
     * // Get one OutlookSyncMailbox
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookSyncMailboxFindUniqueArgs>(args: SelectSubset<T, OutlookSyncMailboxFindUniqueArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookSyncMailbox that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookSyncMailboxFindUniqueOrThrowArgs} args - Arguments to find a OutlookSyncMailbox
     * @example
     * // Get one OutlookSyncMailbox
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookSyncMailboxFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookSyncMailboxFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSyncMailbox 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 {OutlookSyncMailboxFindFirstArgs} args - Arguments to find a OutlookSyncMailbox
     * @example
     * // Get one OutlookSyncMailbox
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookSyncMailboxFindFirstArgs>(args?: SelectSubset<T, OutlookSyncMailboxFindFirstArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSyncMailbox 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 {OutlookSyncMailboxFindFirstOrThrowArgs} args - Arguments to find a OutlookSyncMailbox
     * @example
     * // Get one OutlookSyncMailbox
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookSyncMailboxFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookSyncMailboxFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookSyncMailboxes 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 {OutlookSyncMailboxFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookSyncMailboxes
     * const outlookSyncMailboxes = await prisma.outlookSyncMailbox.findMany()
     * 
     * // Get first 10 OutlookSyncMailboxes
     * const outlookSyncMailboxes = await prisma.outlookSyncMailbox.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookSyncMailboxWithIdOnly = await prisma.outlookSyncMailbox.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookSyncMailboxFindManyArgs>(args?: SelectSubset<T, OutlookSyncMailboxFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookSyncMailbox.
     * @param {OutlookSyncMailboxCreateArgs} args - Arguments to create a OutlookSyncMailbox.
     * @example
     * // Create one OutlookSyncMailbox
     * const OutlookSyncMailbox = await prisma.outlookSyncMailbox.create({
     *   data: {
     *     // ... data to create a OutlookSyncMailbox
     *   }
     * })
     * 
     */
    create<T extends OutlookSyncMailboxCreateArgs>(args: SelectSubset<T, OutlookSyncMailboxCreateArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookSyncMailboxes.
     * @param {OutlookSyncMailboxCreateManyArgs} args - Arguments to create many OutlookSyncMailboxes.
     * @example
     * // Create many OutlookSyncMailboxes
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookSyncMailboxCreateManyArgs>(args?: SelectSubset<T, OutlookSyncMailboxCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookSyncMailboxes and returns the data saved in the database.
     * @param {OutlookSyncMailboxCreateManyAndReturnArgs} args - Arguments to create many OutlookSyncMailboxes.
     * @example
     * // Create many OutlookSyncMailboxes
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookSyncMailboxes and only return the `id`
     * const outlookSyncMailboxWithIdOnly = await prisma.outlookSyncMailbox.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 OutlookSyncMailboxCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookSyncMailboxCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookSyncMailbox.
     * @param {OutlookSyncMailboxDeleteArgs} args - Arguments to delete one OutlookSyncMailbox.
     * @example
     * // Delete one OutlookSyncMailbox
     * const OutlookSyncMailbox = await prisma.outlookSyncMailbox.delete({
     *   where: {
     *     // ... filter to delete one OutlookSyncMailbox
     *   }
     * })
     * 
     */
    delete<T extends OutlookSyncMailboxDeleteArgs>(args: SelectSubset<T, OutlookSyncMailboxDeleteArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookSyncMailbox.
     * @param {OutlookSyncMailboxUpdateArgs} args - Arguments to update one OutlookSyncMailbox.
     * @example
     * // Update one OutlookSyncMailbox
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookSyncMailboxUpdateArgs>(args: SelectSubset<T, OutlookSyncMailboxUpdateArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookSyncMailboxes.
     * @param {OutlookSyncMailboxDeleteManyArgs} args - Arguments to filter OutlookSyncMailboxes to delete.
     * @example
     * // Delete a few OutlookSyncMailboxes
     * const { count } = await prisma.outlookSyncMailbox.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookSyncMailboxDeleteManyArgs>(args?: SelectSubset<T, OutlookSyncMailboxDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSyncMailboxes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncMailboxUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookSyncMailboxes
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookSyncMailboxUpdateManyArgs>(args: SelectSubset<T, OutlookSyncMailboxUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSyncMailboxes and returns the data updated in the database.
     * @param {OutlookSyncMailboxUpdateManyAndReturnArgs} args - Arguments to update many OutlookSyncMailboxes.
     * @example
     * // Update many OutlookSyncMailboxes
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookSyncMailboxes and only return the `id`
     * const outlookSyncMailboxWithIdOnly = await prisma.outlookSyncMailbox.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 OutlookSyncMailboxUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookSyncMailboxUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookSyncMailbox.
     * @param {OutlookSyncMailboxUpsertArgs} args - Arguments to update or create a OutlookSyncMailbox.
     * @example
     * // Update or create a OutlookSyncMailbox
     * const outlookSyncMailbox = await prisma.outlookSyncMailbox.upsert({
     *   create: {
     *     // ... data to create a OutlookSyncMailbox
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookSyncMailbox we want to update
     *   }
     * })
     */
    upsert<T extends OutlookSyncMailboxUpsertArgs>(args: SelectSubset<T, OutlookSyncMailboxUpsertArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookSyncMailboxes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncMailboxCountArgs} args - Arguments to filter OutlookSyncMailboxes to count.
     * @example
     * // Count the number of OutlookSyncMailboxes
     * const count = await prisma.outlookSyncMailbox.count({
     *   where: {
     *     // ... the filter for the OutlookSyncMailboxes we want to count
     *   }
     * })
    **/
    count<T extends OutlookSyncMailboxCountArgs>(
      args?: Subset<T, OutlookSyncMailboxCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookSyncMailboxCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookSyncMailbox.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncMailboxAggregateArgs} 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 OutlookSyncMailboxAggregateArgs>(args: Subset<T, OutlookSyncMailboxAggregateArgs>): Prisma.PrismaPromise<GetOutlookSyncMailboxAggregateType<T>>

    /**
     * Group by OutlookSyncMailbox.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncMailboxGroupByArgs} 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 OutlookSyncMailboxGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookSyncMailboxGroupByArgs['orderBy'] }
        : { orderBy?: OutlookSyncMailboxGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookSyncMailboxGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookSyncMailboxGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookSyncMailbox model
   */
  readonly fields: OutlookSyncMailboxFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookSyncMailbox.
   * 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__OutlookSyncMailboxClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    subscriptions<T extends OutlookSyncMailbox$subscriptionsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailbox$subscriptionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    primaryBindings<T extends OutlookSyncMailbox$primaryBindingsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailbox$primaryBindingsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    eventSnapshots<T extends OutlookSyncMailbox$eventSnapshotsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailbox$eventSnapshotsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    syncEventLogs<T extends OutlookSyncMailbox$syncEventLogsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailbox$syncEventLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    sourceVersions<T extends OutlookSyncMailbox$sourceVersionsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailbox$sourceVersionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    cursor<T extends OutlookSyncMailbox$cursorArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailbox$cursorArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookSyncMailbox model
   */
  interface OutlookSyncMailboxFieldRefs {
    readonly id: FieldRef<"OutlookSyncMailbox", 'String'>
    readonly mailboxEmail: FieldRef<"OutlookSyncMailbox", 'String'>
    readonly mailboxType: FieldRef<"OutlookSyncMailbox", 'OutlookMailboxType'>
    readonly isEnabled: FieldRef<"OutlookSyncMailbox", 'Boolean'>
    readonly isPrimaryDefault: FieldRef<"OutlookSyncMailbox", 'Boolean'>
    readonly createdAt: FieldRef<"OutlookSyncMailbox", 'DateTime'>
    readonly updatedAt: FieldRef<"OutlookSyncMailbox", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookSyncMailbox findUnique
   */
  export type OutlookSyncMailboxFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncMailbox to fetch.
     */
    where: OutlookSyncMailboxWhereUniqueInput
  }

  /**
   * OutlookSyncMailbox findUniqueOrThrow
   */
  export type OutlookSyncMailboxFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncMailbox to fetch.
     */
    where: OutlookSyncMailboxWhereUniqueInput
  }

  /**
   * OutlookSyncMailbox findFirst
   */
  export type OutlookSyncMailboxFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncMailbox to fetch.
     */
    where?: OutlookSyncMailboxWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncMailboxes to fetch.
     */
    orderBy?: OutlookSyncMailboxOrderByWithRelationInput | OutlookSyncMailboxOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSyncMailboxes.
     */
    cursor?: OutlookSyncMailboxWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncMailboxes 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` OutlookSyncMailboxes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSyncMailboxes.
     */
    distinct?: OutlookSyncMailboxScalarFieldEnum | OutlookSyncMailboxScalarFieldEnum[]
  }

  /**
   * OutlookSyncMailbox findFirstOrThrow
   */
  export type OutlookSyncMailboxFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncMailbox to fetch.
     */
    where?: OutlookSyncMailboxWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncMailboxes to fetch.
     */
    orderBy?: OutlookSyncMailboxOrderByWithRelationInput | OutlookSyncMailboxOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSyncMailboxes.
     */
    cursor?: OutlookSyncMailboxWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncMailboxes 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` OutlookSyncMailboxes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSyncMailboxes.
     */
    distinct?: OutlookSyncMailboxScalarFieldEnum | OutlookSyncMailboxScalarFieldEnum[]
  }

  /**
   * OutlookSyncMailbox findMany
   */
  export type OutlookSyncMailboxFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncMailboxes to fetch.
     */
    where?: OutlookSyncMailboxWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncMailboxes to fetch.
     */
    orderBy?: OutlookSyncMailboxOrderByWithRelationInput | OutlookSyncMailboxOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookSyncMailboxes.
     */
    cursor?: OutlookSyncMailboxWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncMailboxes 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` OutlookSyncMailboxes.
     */
    skip?: number
    distinct?: OutlookSyncMailboxScalarFieldEnum | OutlookSyncMailboxScalarFieldEnum[]
  }

  /**
   * OutlookSyncMailbox create
   */
  export type OutlookSyncMailboxCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookSyncMailbox.
     */
    data: XOR<OutlookSyncMailboxCreateInput, OutlookSyncMailboxUncheckedCreateInput>
  }

  /**
   * OutlookSyncMailbox createMany
   */
  export type OutlookSyncMailboxCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookSyncMailboxes.
     */
    data: OutlookSyncMailboxCreateManyInput | OutlookSyncMailboxCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookSyncMailbox createManyAndReturn
   */
  export type OutlookSyncMailboxCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookSyncMailboxes.
     */
    data: OutlookSyncMailboxCreateManyInput | OutlookSyncMailboxCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookSyncMailbox update
   */
  export type OutlookSyncMailboxUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookSyncMailbox.
     */
    data: XOR<OutlookSyncMailboxUpdateInput, OutlookSyncMailboxUncheckedUpdateInput>
    /**
     * Choose, which OutlookSyncMailbox to update.
     */
    where: OutlookSyncMailboxWhereUniqueInput
  }

  /**
   * OutlookSyncMailbox updateMany
   */
  export type OutlookSyncMailboxUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookSyncMailboxes.
     */
    data: XOR<OutlookSyncMailboxUpdateManyMutationInput, OutlookSyncMailboxUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSyncMailboxes to update
     */
    where?: OutlookSyncMailboxWhereInput
    /**
     * Limit how many OutlookSyncMailboxes to update.
     */
    limit?: number
  }

  /**
   * OutlookSyncMailbox updateManyAndReturn
   */
  export type OutlookSyncMailboxUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * The data used to update OutlookSyncMailboxes.
     */
    data: XOR<OutlookSyncMailboxUpdateManyMutationInput, OutlookSyncMailboxUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSyncMailboxes to update
     */
    where?: OutlookSyncMailboxWhereInput
    /**
     * Limit how many OutlookSyncMailboxes to update.
     */
    limit?: number
  }

  /**
   * OutlookSyncMailbox upsert
   */
  export type OutlookSyncMailboxUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookSyncMailbox to update in case it exists.
     */
    where: OutlookSyncMailboxWhereUniqueInput
    /**
     * In case the OutlookSyncMailbox found by the `where` argument doesn't exist, create a new OutlookSyncMailbox with this data.
     */
    create: XOR<OutlookSyncMailboxCreateInput, OutlookSyncMailboxUncheckedCreateInput>
    /**
     * In case the OutlookSyncMailbox was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookSyncMailboxUpdateInput, OutlookSyncMailboxUncheckedUpdateInput>
  }

  /**
   * OutlookSyncMailbox delete
   */
  export type OutlookSyncMailboxDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
    /**
     * Filter which OutlookSyncMailbox to delete.
     */
    where: OutlookSyncMailboxWhereUniqueInput
  }

  /**
   * OutlookSyncMailbox deleteMany
   */
  export type OutlookSyncMailboxDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSyncMailboxes to delete
     */
    where?: OutlookSyncMailboxWhereInput
    /**
     * Limit how many OutlookSyncMailboxes to delete.
     */
    limit?: number
  }

  /**
   * OutlookSyncMailbox.subscriptions
   */
  export type OutlookSyncMailbox$subscriptionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    where?: OutlookSubscriptionWhereInput
    orderBy?: OutlookSubscriptionOrderByWithRelationInput | OutlookSubscriptionOrderByWithRelationInput[]
    cursor?: OutlookSubscriptionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookSubscriptionScalarFieldEnum | OutlookSubscriptionScalarFieldEnum[]
  }

  /**
   * OutlookSyncMailbox.primaryBindings
   */
  export type OutlookSyncMailbox$primaryBindingsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    where?: OutlookMeetingBindingWhereInput
    orderBy?: OutlookMeetingBindingOrderByWithRelationInput | OutlookMeetingBindingOrderByWithRelationInput[]
    cursor?: OutlookMeetingBindingWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookMeetingBindingScalarFieldEnum | OutlookMeetingBindingScalarFieldEnum[]
  }

  /**
   * OutlookSyncMailbox.eventSnapshots
   */
  export type OutlookSyncMailbox$eventSnapshotsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    where?: OutlookEventSnapshotWhereInput
    orderBy?: OutlookEventSnapshotOrderByWithRelationInput | OutlookEventSnapshotOrderByWithRelationInput[]
    cursor?: OutlookEventSnapshotWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookEventSnapshotScalarFieldEnum | OutlookEventSnapshotScalarFieldEnum[]
  }

  /**
   * OutlookSyncMailbox.syncEventLogs
   */
  export type OutlookSyncMailbox$syncEventLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    where?: OutlookSyncEventLogWhereInput
    orderBy?: OutlookSyncEventLogOrderByWithRelationInput | OutlookSyncEventLogOrderByWithRelationInput[]
    cursor?: OutlookSyncEventLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookSyncEventLogScalarFieldEnum | OutlookSyncEventLogScalarFieldEnum[]
  }

  /**
   * OutlookSyncMailbox.sourceVersions
   */
  export type OutlookSyncMailbox$sourceVersionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    where?: OutlookEventSourceVersionWhereInput
    orderBy?: OutlookEventSourceVersionOrderByWithRelationInput | OutlookEventSourceVersionOrderByWithRelationInput[]
    cursor?: OutlookEventSourceVersionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookEventSourceVersionScalarFieldEnum | OutlookEventSourceVersionScalarFieldEnum[]
  }

  /**
   * OutlookSyncMailbox.cursor
   */
  export type OutlookSyncMailbox$cursorArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    where?: OutlookSyncCursorWhereInput
  }

  /**
   * OutlookSyncMailbox without action
   */
  export type OutlookSyncMailboxDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncMailbox
     */
    select?: OutlookSyncMailboxSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncMailbox
     */
    omit?: OutlookSyncMailboxOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncMailboxInclude<ExtArgs> | null
  }


  /**
   * Model OutlookSubscription
   */

  export type AggregateOutlookSubscription = {
    _count: OutlookSubscriptionCountAggregateOutputType | null
    _min: OutlookSubscriptionMinAggregateOutputType | null
    _max: OutlookSubscriptionMaxAggregateOutputType | null
  }

  export type OutlookSubscriptionMinAggregateOutputType = {
    id: string | null
    mailboxId: string | null
    graphSubscriptionId: string | null
    resource: string | null
    status: $Enums.OutlookSubscriptionStatus | null
    expirationAt: Date | null
    lastError: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSubscriptionMaxAggregateOutputType = {
    id: string | null
    mailboxId: string | null
    graphSubscriptionId: string | null
    resource: string | null
    status: $Enums.OutlookSubscriptionStatus | null
    expirationAt: Date | null
    lastError: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSubscriptionCountAggregateOutputType = {
    id: number
    mailboxId: number
    graphSubscriptionId: number
    resource: number
    status: number
    expirationAt: number
    lastError: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type OutlookSubscriptionMinAggregateInputType = {
    id?: true
    mailboxId?: true
    graphSubscriptionId?: true
    resource?: true
    status?: true
    expirationAt?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSubscriptionMaxAggregateInputType = {
    id?: true
    mailboxId?: true
    graphSubscriptionId?: true
    resource?: true
    status?: true
    expirationAt?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSubscriptionCountAggregateInputType = {
    id?: true
    mailboxId?: true
    graphSubscriptionId?: true
    resource?: true
    status?: true
    expirationAt?: true
    lastError?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type OutlookSubscriptionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSubscription to aggregate.
     */
    where?: OutlookSubscriptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSubscriptions to fetch.
     */
    orderBy?: OutlookSubscriptionOrderByWithRelationInput | OutlookSubscriptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookSubscriptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSubscriptions 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` OutlookSubscriptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookSubscriptions
    **/
    _count?: true | OutlookSubscriptionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookSubscriptionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookSubscriptionMaxAggregateInputType
  }

  export type GetOutlookSubscriptionAggregateType<T extends OutlookSubscriptionAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookSubscription]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookSubscription[P]>
      : GetScalarType<T[P], AggregateOutlookSubscription[P]>
  }




  export type OutlookSubscriptionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSubscriptionWhereInput
    orderBy?: OutlookSubscriptionOrderByWithAggregationInput | OutlookSubscriptionOrderByWithAggregationInput[]
    by: OutlookSubscriptionScalarFieldEnum[] | OutlookSubscriptionScalarFieldEnum
    having?: OutlookSubscriptionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookSubscriptionCountAggregateInputType | true
    _min?: OutlookSubscriptionMinAggregateInputType
    _max?: OutlookSubscriptionMaxAggregateInputType
  }

  export type OutlookSubscriptionGroupByOutputType = {
    id: string
    mailboxId: string
    graphSubscriptionId: string
    resource: string
    status: $Enums.OutlookSubscriptionStatus
    expirationAt: Date
    lastError: string | null
    createdAt: Date
    updatedAt: Date
    _count: OutlookSubscriptionCountAggregateOutputType | null
    _min: OutlookSubscriptionMinAggregateOutputType | null
    _max: OutlookSubscriptionMaxAggregateOutputType | null
  }

  type GetOutlookSubscriptionGroupByPayload<T extends OutlookSubscriptionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookSubscriptionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookSubscriptionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookSubscriptionGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookSubscriptionGroupByOutputType[P]>
        }
      >
    >


  export type OutlookSubscriptionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    graphSubscriptionId?: boolean
    resource?: boolean
    status?: boolean
    expirationAt?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSubscription"]>

  export type OutlookSubscriptionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    graphSubscriptionId?: boolean
    resource?: boolean
    status?: boolean
    expirationAt?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSubscription"]>

  export type OutlookSubscriptionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    graphSubscriptionId?: boolean
    resource?: boolean
    status?: boolean
    expirationAt?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSubscription"]>

  export type OutlookSubscriptionSelectScalar = {
    id?: boolean
    mailboxId?: boolean
    graphSubscriptionId?: boolean
    resource?: boolean
    status?: boolean
    expirationAt?: boolean
    lastError?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type OutlookSubscriptionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "mailboxId" | "graphSubscriptionId" | "resource" | "status" | "expirationAt" | "lastError" | "createdAt" | "updatedAt", ExtArgs["result"]["outlookSubscription"]>
  export type OutlookSubscriptionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookSubscriptionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookSubscriptionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }

  export type $OutlookSubscriptionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookSubscription"
    objects: {
      mailbox: Prisma.$OutlookSyncMailboxPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      mailboxId: string
      graphSubscriptionId: string
      resource: string
      status: $Enums.OutlookSubscriptionStatus
      expirationAt: Date
      lastError: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["outlookSubscription"]>
    composites: {}
  }

  type OutlookSubscriptionGetPayload<S extends boolean | null | undefined | OutlookSubscriptionDefaultArgs> = $Result.GetResult<Prisma.$OutlookSubscriptionPayload, S>

  type OutlookSubscriptionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookSubscriptionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookSubscriptionCountAggregateInputType | true
    }

  export interface OutlookSubscriptionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookSubscription'], meta: { name: 'OutlookSubscription' } }
    /**
     * Find zero or one OutlookSubscription that matches the filter.
     * @param {OutlookSubscriptionFindUniqueArgs} args - Arguments to find a OutlookSubscription
     * @example
     * // Get one OutlookSubscription
     * const outlookSubscription = await prisma.outlookSubscription.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookSubscriptionFindUniqueArgs>(args: SelectSubset<T, OutlookSubscriptionFindUniqueArgs<ExtArgs>>): Prisma__OutlookSubscriptionClient<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookSubscription that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookSubscriptionFindUniqueOrThrowArgs} args - Arguments to find a OutlookSubscription
     * @example
     * // Get one OutlookSubscription
     * const outlookSubscription = await prisma.outlookSubscription.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookSubscriptionFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookSubscriptionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookSubscriptionClient<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSubscription 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 {OutlookSubscriptionFindFirstArgs} args - Arguments to find a OutlookSubscription
     * @example
     * // Get one OutlookSubscription
     * const outlookSubscription = await prisma.outlookSubscription.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookSubscriptionFindFirstArgs>(args?: SelectSubset<T, OutlookSubscriptionFindFirstArgs<ExtArgs>>): Prisma__OutlookSubscriptionClient<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSubscription 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 {OutlookSubscriptionFindFirstOrThrowArgs} args - Arguments to find a OutlookSubscription
     * @example
     * // Get one OutlookSubscription
     * const outlookSubscription = await prisma.outlookSubscription.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookSubscriptionFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookSubscriptionFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookSubscriptionClient<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookSubscriptions 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 {OutlookSubscriptionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookSubscriptions
     * const outlookSubscriptions = await prisma.outlookSubscription.findMany()
     * 
     * // Get first 10 OutlookSubscriptions
     * const outlookSubscriptions = await prisma.outlookSubscription.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookSubscriptionWithIdOnly = await prisma.outlookSubscription.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookSubscriptionFindManyArgs>(args?: SelectSubset<T, OutlookSubscriptionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookSubscription.
     * @param {OutlookSubscriptionCreateArgs} args - Arguments to create a OutlookSubscription.
     * @example
     * // Create one OutlookSubscription
     * const OutlookSubscription = await prisma.outlookSubscription.create({
     *   data: {
     *     // ... data to create a OutlookSubscription
     *   }
     * })
     * 
     */
    create<T extends OutlookSubscriptionCreateArgs>(args: SelectSubset<T, OutlookSubscriptionCreateArgs<ExtArgs>>): Prisma__OutlookSubscriptionClient<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookSubscriptions.
     * @param {OutlookSubscriptionCreateManyArgs} args - Arguments to create many OutlookSubscriptions.
     * @example
     * // Create many OutlookSubscriptions
     * const outlookSubscription = await prisma.outlookSubscription.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookSubscriptionCreateManyArgs>(args?: SelectSubset<T, OutlookSubscriptionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookSubscriptions and returns the data saved in the database.
     * @param {OutlookSubscriptionCreateManyAndReturnArgs} args - Arguments to create many OutlookSubscriptions.
     * @example
     * // Create many OutlookSubscriptions
     * const outlookSubscription = await prisma.outlookSubscription.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookSubscriptions and only return the `id`
     * const outlookSubscriptionWithIdOnly = await prisma.outlookSubscription.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 OutlookSubscriptionCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookSubscriptionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookSubscription.
     * @param {OutlookSubscriptionDeleteArgs} args - Arguments to delete one OutlookSubscription.
     * @example
     * // Delete one OutlookSubscription
     * const OutlookSubscription = await prisma.outlookSubscription.delete({
     *   where: {
     *     // ... filter to delete one OutlookSubscription
     *   }
     * })
     * 
     */
    delete<T extends OutlookSubscriptionDeleteArgs>(args: SelectSubset<T, OutlookSubscriptionDeleteArgs<ExtArgs>>): Prisma__OutlookSubscriptionClient<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookSubscription.
     * @param {OutlookSubscriptionUpdateArgs} args - Arguments to update one OutlookSubscription.
     * @example
     * // Update one OutlookSubscription
     * const outlookSubscription = await prisma.outlookSubscription.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookSubscriptionUpdateArgs>(args: SelectSubset<T, OutlookSubscriptionUpdateArgs<ExtArgs>>): Prisma__OutlookSubscriptionClient<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookSubscriptions.
     * @param {OutlookSubscriptionDeleteManyArgs} args - Arguments to filter OutlookSubscriptions to delete.
     * @example
     * // Delete a few OutlookSubscriptions
     * const { count } = await prisma.outlookSubscription.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookSubscriptionDeleteManyArgs>(args?: SelectSubset<T, OutlookSubscriptionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSubscriptions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSubscriptionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookSubscriptions
     * const outlookSubscription = await prisma.outlookSubscription.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookSubscriptionUpdateManyArgs>(args: SelectSubset<T, OutlookSubscriptionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSubscriptions and returns the data updated in the database.
     * @param {OutlookSubscriptionUpdateManyAndReturnArgs} args - Arguments to update many OutlookSubscriptions.
     * @example
     * // Update many OutlookSubscriptions
     * const outlookSubscription = await prisma.outlookSubscription.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookSubscriptions and only return the `id`
     * const outlookSubscriptionWithIdOnly = await prisma.outlookSubscription.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 OutlookSubscriptionUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookSubscriptionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookSubscription.
     * @param {OutlookSubscriptionUpsertArgs} args - Arguments to update or create a OutlookSubscription.
     * @example
     * // Update or create a OutlookSubscription
     * const outlookSubscription = await prisma.outlookSubscription.upsert({
     *   create: {
     *     // ... data to create a OutlookSubscription
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookSubscription we want to update
     *   }
     * })
     */
    upsert<T extends OutlookSubscriptionUpsertArgs>(args: SelectSubset<T, OutlookSubscriptionUpsertArgs<ExtArgs>>): Prisma__OutlookSubscriptionClient<$Result.GetResult<Prisma.$OutlookSubscriptionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookSubscriptions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSubscriptionCountArgs} args - Arguments to filter OutlookSubscriptions to count.
     * @example
     * // Count the number of OutlookSubscriptions
     * const count = await prisma.outlookSubscription.count({
     *   where: {
     *     // ... the filter for the OutlookSubscriptions we want to count
     *   }
     * })
    **/
    count<T extends OutlookSubscriptionCountArgs>(
      args?: Subset<T, OutlookSubscriptionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookSubscriptionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookSubscription.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSubscriptionAggregateArgs} 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 OutlookSubscriptionAggregateArgs>(args: Subset<T, OutlookSubscriptionAggregateArgs>): Prisma.PrismaPromise<GetOutlookSubscriptionAggregateType<T>>

    /**
     * Group by OutlookSubscription.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSubscriptionGroupByArgs} 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 OutlookSubscriptionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookSubscriptionGroupByArgs['orderBy'] }
        : { orderBy?: OutlookSubscriptionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookSubscriptionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookSubscriptionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookSubscription model
   */
  readonly fields: OutlookSubscriptionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookSubscription.
   * 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__OutlookSubscriptionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    mailbox<T extends OutlookSyncMailboxDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailboxDefaultArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookSubscription model
   */
  interface OutlookSubscriptionFieldRefs {
    readonly id: FieldRef<"OutlookSubscription", 'String'>
    readonly mailboxId: FieldRef<"OutlookSubscription", 'String'>
    readonly graphSubscriptionId: FieldRef<"OutlookSubscription", 'String'>
    readonly resource: FieldRef<"OutlookSubscription", 'String'>
    readonly status: FieldRef<"OutlookSubscription", 'OutlookSubscriptionStatus'>
    readonly expirationAt: FieldRef<"OutlookSubscription", 'DateTime'>
    readonly lastError: FieldRef<"OutlookSubscription", 'String'>
    readonly createdAt: FieldRef<"OutlookSubscription", 'DateTime'>
    readonly updatedAt: FieldRef<"OutlookSubscription", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookSubscription findUnique
   */
  export type OutlookSubscriptionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSubscription to fetch.
     */
    where: OutlookSubscriptionWhereUniqueInput
  }

  /**
   * OutlookSubscription findUniqueOrThrow
   */
  export type OutlookSubscriptionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSubscription to fetch.
     */
    where: OutlookSubscriptionWhereUniqueInput
  }

  /**
   * OutlookSubscription findFirst
   */
  export type OutlookSubscriptionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSubscription to fetch.
     */
    where?: OutlookSubscriptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSubscriptions to fetch.
     */
    orderBy?: OutlookSubscriptionOrderByWithRelationInput | OutlookSubscriptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSubscriptions.
     */
    cursor?: OutlookSubscriptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSubscriptions 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` OutlookSubscriptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSubscriptions.
     */
    distinct?: OutlookSubscriptionScalarFieldEnum | OutlookSubscriptionScalarFieldEnum[]
  }

  /**
   * OutlookSubscription findFirstOrThrow
   */
  export type OutlookSubscriptionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSubscription to fetch.
     */
    where?: OutlookSubscriptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSubscriptions to fetch.
     */
    orderBy?: OutlookSubscriptionOrderByWithRelationInput | OutlookSubscriptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSubscriptions.
     */
    cursor?: OutlookSubscriptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSubscriptions 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` OutlookSubscriptions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSubscriptions.
     */
    distinct?: OutlookSubscriptionScalarFieldEnum | OutlookSubscriptionScalarFieldEnum[]
  }

  /**
   * OutlookSubscription findMany
   */
  export type OutlookSubscriptionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSubscriptions to fetch.
     */
    where?: OutlookSubscriptionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSubscriptions to fetch.
     */
    orderBy?: OutlookSubscriptionOrderByWithRelationInput | OutlookSubscriptionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookSubscriptions.
     */
    cursor?: OutlookSubscriptionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSubscriptions 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` OutlookSubscriptions.
     */
    skip?: number
    distinct?: OutlookSubscriptionScalarFieldEnum | OutlookSubscriptionScalarFieldEnum[]
  }

  /**
   * OutlookSubscription create
   */
  export type OutlookSubscriptionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookSubscription.
     */
    data: XOR<OutlookSubscriptionCreateInput, OutlookSubscriptionUncheckedCreateInput>
  }

  /**
   * OutlookSubscription createMany
   */
  export type OutlookSubscriptionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookSubscriptions.
     */
    data: OutlookSubscriptionCreateManyInput | OutlookSubscriptionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookSubscription createManyAndReturn
   */
  export type OutlookSubscriptionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookSubscriptions.
     */
    data: OutlookSubscriptionCreateManyInput | OutlookSubscriptionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookSubscription update
   */
  export type OutlookSubscriptionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookSubscription.
     */
    data: XOR<OutlookSubscriptionUpdateInput, OutlookSubscriptionUncheckedUpdateInput>
    /**
     * Choose, which OutlookSubscription to update.
     */
    where: OutlookSubscriptionWhereUniqueInput
  }

  /**
   * OutlookSubscription updateMany
   */
  export type OutlookSubscriptionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookSubscriptions.
     */
    data: XOR<OutlookSubscriptionUpdateManyMutationInput, OutlookSubscriptionUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSubscriptions to update
     */
    where?: OutlookSubscriptionWhereInput
    /**
     * Limit how many OutlookSubscriptions to update.
     */
    limit?: number
  }

  /**
   * OutlookSubscription updateManyAndReturn
   */
  export type OutlookSubscriptionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * The data used to update OutlookSubscriptions.
     */
    data: XOR<OutlookSubscriptionUpdateManyMutationInput, OutlookSubscriptionUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSubscriptions to update
     */
    where?: OutlookSubscriptionWhereInput
    /**
     * Limit how many OutlookSubscriptions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookSubscription upsert
   */
  export type OutlookSubscriptionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookSubscription to update in case it exists.
     */
    where: OutlookSubscriptionWhereUniqueInput
    /**
     * In case the OutlookSubscription found by the `where` argument doesn't exist, create a new OutlookSubscription with this data.
     */
    create: XOR<OutlookSubscriptionCreateInput, OutlookSubscriptionUncheckedCreateInput>
    /**
     * In case the OutlookSubscription was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookSubscriptionUpdateInput, OutlookSubscriptionUncheckedUpdateInput>
  }

  /**
   * OutlookSubscription delete
   */
  export type OutlookSubscriptionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
    /**
     * Filter which OutlookSubscription to delete.
     */
    where: OutlookSubscriptionWhereUniqueInput
  }

  /**
   * OutlookSubscription deleteMany
   */
  export type OutlookSubscriptionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSubscriptions to delete
     */
    where?: OutlookSubscriptionWhereInput
    /**
     * Limit how many OutlookSubscriptions to delete.
     */
    limit?: number
  }

  /**
   * OutlookSubscription without action
   */
  export type OutlookSubscriptionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSubscription
     */
    select?: OutlookSubscriptionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSubscription
     */
    omit?: OutlookSubscriptionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSubscriptionInclude<ExtArgs> | null
  }


  /**
   * Model OutlookMeetingBinding
   */

  export type AggregateOutlookMeetingBinding = {
    _count: OutlookMeetingBindingCountAggregateOutputType | null
    _min: OutlookMeetingBindingMinAggregateOutputType | null
    _max: OutlookMeetingBindingMaxAggregateOutputType | null
  }

  export type OutlookMeetingBindingMinAggregateOutputType = {
    id: string | null
    meetingId: string | null
    meetingSeriesId: string | null
    graphEventId: string | null
    iCalUId: string | null
    graphSeriesMasterId: string | null
    graphEventType: string | null
    manageStatus: $Enums.OutlookManageStatus | null
    bootstrapStatus: $Enums.OutlookBootstrapStatus | null
    bootstrapError: string | null
    bootstrapUpdatedAt: Date | null
    ownerUserId: string | null
    ownerEmail: string | null
    primaryMailboxId: string | null
    syncFrom: Date | null
    cancellationSource: $Enums.OutlookCancellationSource | null
    syncMode: $Enums.OutlookBindingSyncMode | null
    localOverrideAt: Date | null
    localOverrideByUserId: string | null
    localOverrideByEmail: string | null
    localOverrideReason: string | null
    lastSyncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookMeetingBindingMaxAggregateOutputType = {
    id: string | null
    meetingId: string | null
    meetingSeriesId: string | null
    graphEventId: string | null
    iCalUId: string | null
    graphSeriesMasterId: string | null
    graphEventType: string | null
    manageStatus: $Enums.OutlookManageStatus | null
    bootstrapStatus: $Enums.OutlookBootstrapStatus | null
    bootstrapError: string | null
    bootstrapUpdatedAt: Date | null
    ownerUserId: string | null
    ownerEmail: string | null
    primaryMailboxId: string | null
    syncFrom: Date | null
    cancellationSource: $Enums.OutlookCancellationSource | null
    syncMode: $Enums.OutlookBindingSyncMode | null
    localOverrideAt: Date | null
    localOverrideByUserId: string | null
    localOverrideByEmail: string | null
    localOverrideReason: string | null
    lastSyncedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookMeetingBindingCountAggregateOutputType = {
    id: number
    meetingId: number
    meetingSeriesId: number
    graphEventId: number
    iCalUId: number
    graphSeriesMasterId: number
    graphEventType: number
    manageStatus: number
    bootstrapStatus: number
    bootstrapError: number
    bootstrapUpdatedAt: number
    ownerUserId: number
    ownerEmail: number
    primaryMailboxId: number
    syncFrom: number
    cancellationSource: number
    syncMode: number
    localOverrideAt: number
    localOverrideByUserId: number
    localOverrideByEmail: number
    localOverrideReason: number
    localOverrideFields: number
    lastSyncedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type OutlookMeetingBindingMinAggregateInputType = {
    id?: true
    meetingId?: true
    meetingSeriesId?: true
    graphEventId?: true
    iCalUId?: true
    graphSeriesMasterId?: true
    graphEventType?: true
    manageStatus?: true
    bootstrapStatus?: true
    bootstrapError?: true
    bootstrapUpdatedAt?: true
    ownerUserId?: true
    ownerEmail?: true
    primaryMailboxId?: true
    syncFrom?: true
    cancellationSource?: true
    syncMode?: true
    localOverrideAt?: true
    localOverrideByUserId?: true
    localOverrideByEmail?: true
    localOverrideReason?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookMeetingBindingMaxAggregateInputType = {
    id?: true
    meetingId?: true
    meetingSeriesId?: true
    graphEventId?: true
    iCalUId?: true
    graphSeriesMasterId?: true
    graphEventType?: true
    manageStatus?: true
    bootstrapStatus?: true
    bootstrapError?: true
    bootstrapUpdatedAt?: true
    ownerUserId?: true
    ownerEmail?: true
    primaryMailboxId?: true
    syncFrom?: true
    cancellationSource?: true
    syncMode?: true
    localOverrideAt?: true
    localOverrideByUserId?: true
    localOverrideByEmail?: true
    localOverrideReason?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookMeetingBindingCountAggregateInputType = {
    id?: true
    meetingId?: true
    meetingSeriesId?: true
    graphEventId?: true
    iCalUId?: true
    graphSeriesMasterId?: true
    graphEventType?: true
    manageStatus?: true
    bootstrapStatus?: true
    bootstrapError?: true
    bootstrapUpdatedAt?: true
    ownerUserId?: true
    ownerEmail?: true
    primaryMailboxId?: true
    syncFrom?: true
    cancellationSource?: true
    syncMode?: true
    localOverrideAt?: true
    localOverrideByUserId?: true
    localOverrideByEmail?: true
    localOverrideReason?: true
    localOverrideFields?: true
    lastSyncedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type OutlookMeetingBindingAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookMeetingBinding to aggregate.
     */
    where?: OutlookMeetingBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookMeetingBindings to fetch.
     */
    orderBy?: OutlookMeetingBindingOrderByWithRelationInput | OutlookMeetingBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookMeetingBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookMeetingBindings 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` OutlookMeetingBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookMeetingBindings
    **/
    _count?: true | OutlookMeetingBindingCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookMeetingBindingMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookMeetingBindingMaxAggregateInputType
  }

  export type GetOutlookMeetingBindingAggregateType<T extends OutlookMeetingBindingAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookMeetingBinding]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookMeetingBinding[P]>
      : GetScalarType<T[P], AggregateOutlookMeetingBinding[P]>
  }




  export type OutlookMeetingBindingGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookMeetingBindingWhereInput
    orderBy?: OutlookMeetingBindingOrderByWithAggregationInput | OutlookMeetingBindingOrderByWithAggregationInput[]
    by: OutlookMeetingBindingScalarFieldEnum[] | OutlookMeetingBindingScalarFieldEnum
    having?: OutlookMeetingBindingScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookMeetingBindingCountAggregateInputType | true
    _min?: OutlookMeetingBindingMinAggregateInputType
    _max?: OutlookMeetingBindingMaxAggregateInputType
  }

  export type OutlookMeetingBindingGroupByOutputType = {
    id: string
    meetingId: string | null
    meetingSeriesId: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId: string | null
    graphEventType: string
    manageStatus: $Enums.OutlookManageStatus
    bootstrapStatus: $Enums.OutlookBootstrapStatus | null
    bootstrapError: string | null
    bootstrapUpdatedAt: Date | null
    ownerUserId: string | null
    ownerEmail: string | null
    primaryMailboxId: string
    syncFrom: Date
    cancellationSource: $Enums.OutlookCancellationSource | null
    syncMode: $Enums.OutlookBindingSyncMode
    localOverrideAt: Date | null
    localOverrideByUserId: string | null
    localOverrideByEmail: string | null
    localOverrideReason: string | null
    localOverrideFields: JsonValue | null
    lastSyncedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: OutlookMeetingBindingCountAggregateOutputType | null
    _min: OutlookMeetingBindingMinAggregateOutputType | null
    _max: OutlookMeetingBindingMaxAggregateOutputType | null
  }

  type GetOutlookMeetingBindingGroupByPayload<T extends OutlookMeetingBindingGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookMeetingBindingGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookMeetingBindingGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookMeetingBindingGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookMeetingBindingGroupByOutputType[P]>
        }
      >
    >


  export type OutlookMeetingBindingSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    meetingSeriesId?: boolean
    graphEventId?: boolean
    iCalUId?: boolean
    graphSeriesMasterId?: boolean
    graphEventType?: boolean
    manageStatus?: boolean
    bootstrapStatus?: boolean
    bootstrapError?: boolean
    bootstrapUpdatedAt?: boolean
    ownerUserId?: boolean
    ownerEmail?: boolean
    primaryMailboxId?: boolean
    syncFrom?: boolean
    cancellationSource?: boolean
    syncMode?: boolean
    localOverrideAt?: boolean
    localOverrideByUserId?: boolean
    localOverrideByEmail?: boolean
    localOverrideReason?: boolean
    localOverrideFields?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | OutlookMeetingBinding$meetingArgs<ExtArgs>
    meetingSeries?: boolean | OutlookMeetingBinding$meetingSeriesArgs<ExtArgs>
    primaryMailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
    syncEventLogs?: boolean | OutlookMeetingBinding$syncEventLogsArgs<ExtArgs>
    occurrenceExclusions?: boolean | OutlookMeetingBinding$occurrenceExclusionsArgs<ExtArgs>
    sourceVersions?: boolean | OutlookMeetingBinding$sourceVersionsArgs<ExtArgs>
    syncDiffs?: boolean | OutlookMeetingBinding$syncDiffsArgs<ExtArgs>
    _count?: boolean | OutlookMeetingBindingCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookMeetingBinding"]>

  export type OutlookMeetingBindingSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    meetingSeriesId?: boolean
    graphEventId?: boolean
    iCalUId?: boolean
    graphSeriesMasterId?: boolean
    graphEventType?: boolean
    manageStatus?: boolean
    bootstrapStatus?: boolean
    bootstrapError?: boolean
    bootstrapUpdatedAt?: boolean
    ownerUserId?: boolean
    ownerEmail?: boolean
    primaryMailboxId?: boolean
    syncFrom?: boolean
    cancellationSource?: boolean
    syncMode?: boolean
    localOverrideAt?: boolean
    localOverrideByUserId?: boolean
    localOverrideByEmail?: boolean
    localOverrideReason?: boolean
    localOverrideFields?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | OutlookMeetingBinding$meetingArgs<ExtArgs>
    meetingSeries?: boolean | OutlookMeetingBinding$meetingSeriesArgs<ExtArgs>
    primaryMailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookMeetingBinding"]>

  export type OutlookMeetingBindingSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    meetingSeriesId?: boolean
    graphEventId?: boolean
    iCalUId?: boolean
    graphSeriesMasterId?: boolean
    graphEventType?: boolean
    manageStatus?: boolean
    bootstrapStatus?: boolean
    bootstrapError?: boolean
    bootstrapUpdatedAt?: boolean
    ownerUserId?: boolean
    ownerEmail?: boolean
    primaryMailboxId?: boolean
    syncFrom?: boolean
    cancellationSource?: boolean
    syncMode?: boolean
    localOverrideAt?: boolean
    localOverrideByUserId?: boolean
    localOverrideByEmail?: boolean
    localOverrideReason?: boolean
    localOverrideFields?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    meeting?: boolean | OutlookMeetingBinding$meetingArgs<ExtArgs>
    meetingSeries?: boolean | OutlookMeetingBinding$meetingSeriesArgs<ExtArgs>
    primaryMailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookMeetingBinding"]>

  export type OutlookMeetingBindingSelectScalar = {
    id?: boolean
    meetingId?: boolean
    meetingSeriesId?: boolean
    graphEventId?: boolean
    iCalUId?: boolean
    graphSeriesMasterId?: boolean
    graphEventType?: boolean
    manageStatus?: boolean
    bootstrapStatus?: boolean
    bootstrapError?: boolean
    bootstrapUpdatedAt?: boolean
    ownerUserId?: boolean
    ownerEmail?: boolean
    primaryMailboxId?: boolean
    syncFrom?: boolean
    cancellationSource?: boolean
    syncMode?: boolean
    localOverrideAt?: boolean
    localOverrideByUserId?: boolean
    localOverrideByEmail?: boolean
    localOverrideReason?: boolean
    localOverrideFields?: boolean
    lastSyncedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type OutlookMeetingBindingOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "meetingId" | "meetingSeriesId" | "graphEventId" | "iCalUId" | "graphSeriesMasterId" | "graphEventType" | "manageStatus" | "bootstrapStatus" | "bootstrapError" | "bootstrapUpdatedAt" | "ownerUserId" | "ownerEmail" | "primaryMailboxId" | "syncFrom" | "cancellationSource" | "syncMode" | "localOverrideAt" | "localOverrideByUserId" | "localOverrideByEmail" | "localOverrideReason" | "localOverrideFields" | "lastSyncedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["outlookMeetingBinding"]>
  export type OutlookMeetingBindingInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | OutlookMeetingBinding$meetingArgs<ExtArgs>
    meetingSeries?: boolean | OutlookMeetingBinding$meetingSeriesArgs<ExtArgs>
    primaryMailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
    syncEventLogs?: boolean | OutlookMeetingBinding$syncEventLogsArgs<ExtArgs>
    occurrenceExclusions?: boolean | OutlookMeetingBinding$occurrenceExclusionsArgs<ExtArgs>
    sourceVersions?: boolean | OutlookMeetingBinding$sourceVersionsArgs<ExtArgs>
    syncDiffs?: boolean | OutlookMeetingBinding$syncDiffsArgs<ExtArgs>
    _count?: boolean | OutlookMeetingBindingCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type OutlookMeetingBindingIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | OutlookMeetingBinding$meetingArgs<ExtArgs>
    meetingSeries?: boolean | OutlookMeetingBinding$meetingSeriesArgs<ExtArgs>
    primaryMailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookMeetingBindingIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | OutlookMeetingBinding$meetingArgs<ExtArgs>
    meetingSeries?: boolean | OutlookMeetingBinding$meetingSeriesArgs<ExtArgs>
    primaryMailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }

  export type $OutlookMeetingBindingPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookMeetingBinding"
    objects: {
      meeting: Prisma.$MeetingPayload<ExtArgs> | null
      meetingSeries: Prisma.$MeetingSeriesPayload<ExtArgs> | null
      primaryMailbox: Prisma.$OutlookSyncMailboxPayload<ExtArgs>
      syncEventLogs: Prisma.$OutlookSyncEventLogPayload<ExtArgs>[]
      occurrenceExclusions: Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>[]
      sourceVersions: Prisma.$OutlookEventSourceVersionPayload<ExtArgs>[]
      syncDiffs: Prisma.$OutlookEventSyncDiffPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      meetingId: string | null
      meetingSeriesId: string | null
      graphEventId: string
      iCalUId: string
      graphSeriesMasterId: string | null
      graphEventType: string
      manageStatus: $Enums.OutlookManageStatus
      bootstrapStatus: $Enums.OutlookBootstrapStatus | null
      bootstrapError: string | null
      bootstrapUpdatedAt: Date | null
      ownerUserId: string | null
      ownerEmail: string | null
      primaryMailboxId: string
      syncFrom: Date
      cancellationSource: $Enums.OutlookCancellationSource | null
      syncMode: $Enums.OutlookBindingSyncMode
      localOverrideAt: Date | null
      localOverrideByUserId: string | null
      localOverrideByEmail: string | null
      localOverrideReason: string | null
      localOverrideFields: Prisma.JsonValue | null
      lastSyncedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["outlookMeetingBinding"]>
    composites: {}
  }

  type OutlookMeetingBindingGetPayload<S extends boolean | null | undefined | OutlookMeetingBindingDefaultArgs> = $Result.GetResult<Prisma.$OutlookMeetingBindingPayload, S>

  type OutlookMeetingBindingCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookMeetingBindingFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookMeetingBindingCountAggregateInputType | true
    }

  export interface OutlookMeetingBindingDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookMeetingBinding'], meta: { name: 'OutlookMeetingBinding' } }
    /**
     * Find zero or one OutlookMeetingBinding that matches the filter.
     * @param {OutlookMeetingBindingFindUniqueArgs} args - Arguments to find a OutlookMeetingBinding
     * @example
     * // Get one OutlookMeetingBinding
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookMeetingBindingFindUniqueArgs>(args: SelectSubset<T, OutlookMeetingBindingFindUniqueArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookMeetingBinding that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookMeetingBindingFindUniqueOrThrowArgs} args - Arguments to find a OutlookMeetingBinding
     * @example
     * // Get one OutlookMeetingBinding
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookMeetingBindingFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookMeetingBindingFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookMeetingBinding 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 {OutlookMeetingBindingFindFirstArgs} args - Arguments to find a OutlookMeetingBinding
     * @example
     * // Get one OutlookMeetingBinding
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookMeetingBindingFindFirstArgs>(args?: SelectSubset<T, OutlookMeetingBindingFindFirstArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookMeetingBinding 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 {OutlookMeetingBindingFindFirstOrThrowArgs} args - Arguments to find a OutlookMeetingBinding
     * @example
     * // Get one OutlookMeetingBinding
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookMeetingBindingFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookMeetingBindingFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookMeetingBindings 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 {OutlookMeetingBindingFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookMeetingBindings
     * const outlookMeetingBindings = await prisma.outlookMeetingBinding.findMany()
     * 
     * // Get first 10 OutlookMeetingBindings
     * const outlookMeetingBindings = await prisma.outlookMeetingBinding.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookMeetingBindingWithIdOnly = await prisma.outlookMeetingBinding.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookMeetingBindingFindManyArgs>(args?: SelectSubset<T, OutlookMeetingBindingFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookMeetingBinding.
     * @param {OutlookMeetingBindingCreateArgs} args - Arguments to create a OutlookMeetingBinding.
     * @example
     * // Create one OutlookMeetingBinding
     * const OutlookMeetingBinding = await prisma.outlookMeetingBinding.create({
     *   data: {
     *     // ... data to create a OutlookMeetingBinding
     *   }
     * })
     * 
     */
    create<T extends OutlookMeetingBindingCreateArgs>(args: SelectSubset<T, OutlookMeetingBindingCreateArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookMeetingBindings.
     * @param {OutlookMeetingBindingCreateManyArgs} args - Arguments to create many OutlookMeetingBindings.
     * @example
     * // Create many OutlookMeetingBindings
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookMeetingBindingCreateManyArgs>(args?: SelectSubset<T, OutlookMeetingBindingCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookMeetingBindings and returns the data saved in the database.
     * @param {OutlookMeetingBindingCreateManyAndReturnArgs} args - Arguments to create many OutlookMeetingBindings.
     * @example
     * // Create many OutlookMeetingBindings
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookMeetingBindings and only return the `id`
     * const outlookMeetingBindingWithIdOnly = await prisma.outlookMeetingBinding.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 OutlookMeetingBindingCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookMeetingBindingCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookMeetingBinding.
     * @param {OutlookMeetingBindingDeleteArgs} args - Arguments to delete one OutlookMeetingBinding.
     * @example
     * // Delete one OutlookMeetingBinding
     * const OutlookMeetingBinding = await prisma.outlookMeetingBinding.delete({
     *   where: {
     *     // ... filter to delete one OutlookMeetingBinding
     *   }
     * })
     * 
     */
    delete<T extends OutlookMeetingBindingDeleteArgs>(args: SelectSubset<T, OutlookMeetingBindingDeleteArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookMeetingBinding.
     * @param {OutlookMeetingBindingUpdateArgs} args - Arguments to update one OutlookMeetingBinding.
     * @example
     * // Update one OutlookMeetingBinding
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookMeetingBindingUpdateArgs>(args: SelectSubset<T, OutlookMeetingBindingUpdateArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookMeetingBindings.
     * @param {OutlookMeetingBindingDeleteManyArgs} args - Arguments to filter OutlookMeetingBindings to delete.
     * @example
     * // Delete a few OutlookMeetingBindings
     * const { count } = await prisma.outlookMeetingBinding.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookMeetingBindingDeleteManyArgs>(args?: SelectSubset<T, OutlookMeetingBindingDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookMeetingBindings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookMeetingBindingUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookMeetingBindings
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookMeetingBindingUpdateManyArgs>(args: SelectSubset<T, OutlookMeetingBindingUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookMeetingBindings and returns the data updated in the database.
     * @param {OutlookMeetingBindingUpdateManyAndReturnArgs} args - Arguments to update many OutlookMeetingBindings.
     * @example
     * // Update many OutlookMeetingBindings
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookMeetingBindings and only return the `id`
     * const outlookMeetingBindingWithIdOnly = await prisma.outlookMeetingBinding.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 OutlookMeetingBindingUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookMeetingBindingUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookMeetingBinding.
     * @param {OutlookMeetingBindingUpsertArgs} args - Arguments to update or create a OutlookMeetingBinding.
     * @example
     * // Update or create a OutlookMeetingBinding
     * const outlookMeetingBinding = await prisma.outlookMeetingBinding.upsert({
     *   create: {
     *     // ... data to create a OutlookMeetingBinding
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookMeetingBinding we want to update
     *   }
     * })
     */
    upsert<T extends OutlookMeetingBindingUpsertArgs>(args: SelectSubset<T, OutlookMeetingBindingUpsertArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookMeetingBindings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookMeetingBindingCountArgs} args - Arguments to filter OutlookMeetingBindings to count.
     * @example
     * // Count the number of OutlookMeetingBindings
     * const count = await prisma.outlookMeetingBinding.count({
     *   where: {
     *     // ... the filter for the OutlookMeetingBindings we want to count
     *   }
     * })
    **/
    count<T extends OutlookMeetingBindingCountArgs>(
      args?: Subset<T, OutlookMeetingBindingCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookMeetingBindingCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookMeetingBinding.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookMeetingBindingAggregateArgs} 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 OutlookMeetingBindingAggregateArgs>(args: Subset<T, OutlookMeetingBindingAggregateArgs>): Prisma.PrismaPromise<GetOutlookMeetingBindingAggregateType<T>>

    /**
     * Group by OutlookMeetingBinding.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookMeetingBindingGroupByArgs} 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 OutlookMeetingBindingGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookMeetingBindingGroupByArgs['orderBy'] }
        : { orderBy?: OutlookMeetingBindingGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookMeetingBindingGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookMeetingBindingGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookMeetingBinding model
   */
  readonly fields: OutlookMeetingBindingFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookMeetingBinding.
   * 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__OutlookMeetingBindingClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    meeting<T extends OutlookMeetingBinding$meetingArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBinding$meetingArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    meetingSeries<T extends OutlookMeetingBinding$meetingSeriesArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBinding$meetingSeriesArgs<ExtArgs>>): Prisma__MeetingSeriesClient<$Result.GetResult<Prisma.$MeetingSeriesPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    primaryMailbox<T extends OutlookSyncMailboxDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailboxDefaultArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    syncEventLogs<T extends OutlookMeetingBinding$syncEventLogsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBinding$syncEventLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    occurrenceExclusions<T extends OutlookMeetingBinding$occurrenceExclusionsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBinding$occurrenceExclusionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    sourceVersions<T extends OutlookMeetingBinding$sourceVersionsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBinding$sourceVersionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    syncDiffs<T extends OutlookMeetingBinding$syncDiffsArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBinding$syncDiffsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookMeetingBinding model
   */
  interface OutlookMeetingBindingFieldRefs {
    readonly id: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly meetingId: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly meetingSeriesId: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly graphEventId: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly iCalUId: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly graphSeriesMasterId: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly graphEventType: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly manageStatus: FieldRef<"OutlookMeetingBinding", 'OutlookManageStatus'>
    readonly bootstrapStatus: FieldRef<"OutlookMeetingBinding", 'OutlookBootstrapStatus'>
    readonly bootstrapError: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly bootstrapUpdatedAt: FieldRef<"OutlookMeetingBinding", 'DateTime'>
    readonly ownerUserId: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly ownerEmail: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly primaryMailboxId: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly syncFrom: FieldRef<"OutlookMeetingBinding", 'DateTime'>
    readonly cancellationSource: FieldRef<"OutlookMeetingBinding", 'OutlookCancellationSource'>
    readonly syncMode: FieldRef<"OutlookMeetingBinding", 'OutlookBindingSyncMode'>
    readonly localOverrideAt: FieldRef<"OutlookMeetingBinding", 'DateTime'>
    readonly localOverrideByUserId: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly localOverrideByEmail: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly localOverrideReason: FieldRef<"OutlookMeetingBinding", 'String'>
    readonly localOverrideFields: FieldRef<"OutlookMeetingBinding", 'Json'>
    readonly lastSyncedAt: FieldRef<"OutlookMeetingBinding", 'DateTime'>
    readonly createdAt: FieldRef<"OutlookMeetingBinding", 'DateTime'>
    readonly updatedAt: FieldRef<"OutlookMeetingBinding", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookMeetingBinding findUnique
   */
  export type OutlookMeetingBindingFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * Filter, which OutlookMeetingBinding to fetch.
     */
    where: OutlookMeetingBindingWhereUniqueInput
  }

  /**
   * OutlookMeetingBinding findUniqueOrThrow
   */
  export type OutlookMeetingBindingFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * Filter, which OutlookMeetingBinding to fetch.
     */
    where: OutlookMeetingBindingWhereUniqueInput
  }

  /**
   * OutlookMeetingBinding findFirst
   */
  export type OutlookMeetingBindingFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * Filter, which OutlookMeetingBinding to fetch.
     */
    where?: OutlookMeetingBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookMeetingBindings to fetch.
     */
    orderBy?: OutlookMeetingBindingOrderByWithRelationInput | OutlookMeetingBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookMeetingBindings.
     */
    cursor?: OutlookMeetingBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookMeetingBindings 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` OutlookMeetingBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookMeetingBindings.
     */
    distinct?: OutlookMeetingBindingScalarFieldEnum | OutlookMeetingBindingScalarFieldEnum[]
  }

  /**
   * OutlookMeetingBinding findFirstOrThrow
   */
  export type OutlookMeetingBindingFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * Filter, which OutlookMeetingBinding to fetch.
     */
    where?: OutlookMeetingBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookMeetingBindings to fetch.
     */
    orderBy?: OutlookMeetingBindingOrderByWithRelationInput | OutlookMeetingBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookMeetingBindings.
     */
    cursor?: OutlookMeetingBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookMeetingBindings 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` OutlookMeetingBindings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookMeetingBindings.
     */
    distinct?: OutlookMeetingBindingScalarFieldEnum | OutlookMeetingBindingScalarFieldEnum[]
  }

  /**
   * OutlookMeetingBinding findMany
   */
  export type OutlookMeetingBindingFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * Filter, which OutlookMeetingBindings to fetch.
     */
    where?: OutlookMeetingBindingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookMeetingBindings to fetch.
     */
    orderBy?: OutlookMeetingBindingOrderByWithRelationInput | OutlookMeetingBindingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookMeetingBindings.
     */
    cursor?: OutlookMeetingBindingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookMeetingBindings 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` OutlookMeetingBindings.
     */
    skip?: number
    distinct?: OutlookMeetingBindingScalarFieldEnum | OutlookMeetingBindingScalarFieldEnum[]
  }

  /**
   * OutlookMeetingBinding create
   */
  export type OutlookMeetingBindingCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookMeetingBinding.
     */
    data: XOR<OutlookMeetingBindingCreateInput, OutlookMeetingBindingUncheckedCreateInput>
  }

  /**
   * OutlookMeetingBinding createMany
   */
  export type OutlookMeetingBindingCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookMeetingBindings.
     */
    data: OutlookMeetingBindingCreateManyInput | OutlookMeetingBindingCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookMeetingBinding createManyAndReturn
   */
  export type OutlookMeetingBindingCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookMeetingBindings.
     */
    data: OutlookMeetingBindingCreateManyInput | OutlookMeetingBindingCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookMeetingBinding update
   */
  export type OutlookMeetingBindingUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookMeetingBinding.
     */
    data: XOR<OutlookMeetingBindingUpdateInput, OutlookMeetingBindingUncheckedUpdateInput>
    /**
     * Choose, which OutlookMeetingBinding to update.
     */
    where: OutlookMeetingBindingWhereUniqueInput
  }

  /**
   * OutlookMeetingBinding updateMany
   */
  export type OutlookMeetingBindingUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookMeetingBindings.
     */
    data: XOR<OutlookMeetingBindingUpdateManyMutationInput, OutlookMeetingBindingUncheckedUpdateManyInput>
    /**
     * Filter which OutlookMeetingBindings to update
     */
    where?: OutlookMeetingBindingWhereInput
    /**
     * Limit how many OutlookMeetingBindings to update.
     */
    limit?: number
  }

  /**
   * OutlookMeetingBinding updateManyAndReturn
   */
  export type OutlookMeetingBindingUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * The data used to update OutlookMeetingBindings.
     */
    data: XOR<OutlookMeetingBindingUpdateManyMutationInput, OutlookMeetingBindingUncheckedUpdateManyInput>
    /**
     * Filter which OutlookMeetingBindings to update
     */
    where?: OutlookMeetingBindingWhereInput
    /**
     * Limit how many OutlookMeetingBindings to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookMeetingBinding upsert
   */
  export type OutlookMeetingBindingUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookMeetingBinding to update in case it exists.
     */
    where: OutlookMeetingBindingWhereUniqueInput
    /**
     * In case the OutlookMeetingBinding found by the `where` argument doesn't exist, create a new OutlookMeetingBinding with this data.
     */
    create: XOR<OutlookMeetingBindingCreateInput, OutlookMeetingBindingUncheckedCreateInput>
    /**
     * In case the OutlookMeetingBinding was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookMeetingBindingUpdateInput, OutlookMeetingBindingUncheckedUpdateInput>
  }

  /**
   * OutlookMeetingBinding delete
   */
  export type OutlookMeetingBindingDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
    /**
     * Filter which OutlookMeetingBinding to delete.
     */
    where: OutlookMeetingBindingWhereUniqueInput
  }

  /**
   * OutlookMeetingBinding deleteMany
   */
  export type OutlookMeetingBindingDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookMeetingBindings to delete
     */
    where?: OutlookMeetingBindingWhereInput
    /**
     * Limit how many OutlookMeetingBindings to delete.
     */
    limit?: number
  }

  /**
   * OutlookMeetingBinding.meeting
   */
  export type OutlookMeetingBinding$meetingArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Meeting
     */
    select?: MeetingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Meeting
     */
    omit?: MeetingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingInclude<ExtArgs> | null
    where?: MeetingWhereInput
  }

  /**
   * OutlookMeetingBinding.meetingSeries
   */
  export type OutlookMeetingBinding$meetingSeriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingSeries
     */
    select?: MeetingSeriesSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingSeries
     */
    omit?: MeetingSeriesOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingSeriesInclude<ExtArgs> | null
    where?: MeetingSeriesWhereInput
  }

  /**
   * OutlookMeetingBinding.syncEventLogs
   */
  export type OutlookMeetingBinding$syncEventLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    where?: OutlookSyncEventLogWhereInput
    orderBy?: OutlookSyncEventLogOrderByWithRelationInput | OutlookSyncEventLogOrderByWithRelationInput[]
    cursor?: OutlookSyncEventLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookSyncEventLogScalarFieldEnum | OutlookSyncEventLogScalarFieldEnum[]
  }

  /**
   * OutlookMeetingBinding.occurrenceExclusions
   */
  export type OutlookMeetingBinding$occurrenceExclusionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    orderBy?: OutlookSeriesOccurrenceExclusionOrderByWithRelationInput | OutlookSeriesOccurrenceExclusionOrderByWithRelationInput[]
    cursor?: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookSeriesOccurrenceExclusionScalarFieldEnum | OutlookSeriesOccurrenceExclusionScalarFieldEnum[]
  }

  /**
   * OutlookMeetingBinding.sourceVersions
   */
  export type OutlookMeetingBinding$sourceVersionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    where?: OutlookEventSourceVersionWhereInput
    orderBy?: OutlookEventSourceVersionOrderByWithRelationInput | OutlookEventSourceVersionOrderByWithRelationInput[]
    cursor?: OutlookEventSourceVersionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookEventSourceVersionScalarFieldEnum | OutlookEventSourceVersionScalarFieldEnum[]
  }

  /**
   * OutlookMeetingBinding.syncDiffs
   */
  export type OutlookMeetingBinding$syncDiffsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    where?: OutlookEventSyncDiffWhereInput
    orderBy?: OutlookEventSyncDiffOrderByWithRelationInput | OutlookEventSyncDiffOrderByWithRelationInput[]
    cursor?: OutlookEventSyncDiffWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookEventSyncDiffScalarFieldEnum | OutlookEventSyncDiffScalarFieldEnum[]
  }

  /**
   * OutlookMeetingBinding without action
   */
  export type OutlookMeetingBindingDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookMeetingBinding
     */
    select?: OutlookMeetingBindingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookMeetingBinding
     */
    omit?: OutlookMeetingBindingOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookMeetingBindingInclude<ExtArgs> | null
  }


  /**
   * Model OutlookSeriesOccurrenceExclusion
   */

  export type AggregateOutlookSeriesOccurrenceExclusion = {
    _count: OutlookSeriesOccurrenceExclusionCountAggregateOutputType | null
    _min: OutlookSeriesOccurrenceExclusionMinAggregateOutputType | null
    _max: OutlookSeriesOccurrenceExclusionMaxAggregateOutputType | null
  }

  export type OutlookSeriesOccurrenceExclusionMinAggregateOutputType = {
    id: string | null
    bindingId: string | null
    occurrenceGraphEventId: string | null
    iCalUId: string | null
    reason: string | null
    createdByEmail: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSeriesOccurrenceExclusionMaxAggregateOutputType = {
    id: string | null
    bindingId: string | null
    occurrenceGraphEventId: string | null
    iCalUId: string | null
    reason: string | null
    createdByEmail: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSeriesOccurrenceExclusionCountAggregateOutputType = {
    id: number
    bindingId: number
    occurrenceGraphEventId: number
    iCalUId: number
    reason: number
    createdByEmail: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type OutlookSeriesOccurrenceExclusionMinAggregateInputType = {
    id?: true
    bindingId?: true
    occurrenceGraphEventId?: true
    iCalUId?: true
    reason?: true
    createdByEmail?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSeriesOccurrenceExclusionMaxAggregateInputType = {
    id?: true
    bindingId?: true
    occurrenceGraphEventId?: true
    iCalUId?: true
    reason?: true
    createdByEmail?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSeriesOccurrenceExclusionCountAggregateInputType = {
    id?: true
    bindingId?: true
    occurrenceGraphEventId?: true
    iCalUId?: true
    reason?: true
    createdByEmail?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type OutlookSeriesOccurrenceExclusionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSeriesOccurrenceExclusion to aggregate.
     */
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSeriesOccurrenceExclusions to fetch.
     */
    orderBy?: OutlookSeriesOccurrenceExclusionOrderByWithRelationInput | OutlookSeriesOccurrenceExclusionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSeriesOccurrenceExclusions 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` OutlookSeriesOccurrenceExclusions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookSeriesOccurrenceExclusions
    **/
    _count?: true | OutlookSeriesOccurrenceExclusionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookSeriesOccurrenceExclusionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookSeriesOccurrenceExclusionMaxAggregateInputType
  }

  export type GetOutlookSeriesOccurrenceExclusionAggregateType<T extends OutlookSeriesOccurrenceExclusionAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookSeriesOccurrenceExclusion]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookSeriesOccurrenceExclusion[P]>
      : GetScalarType<T[P], AggregateOutlookSeriesOccurrenceExclusion[P]>
  }




  export type OutlookSeriesOccurrenceExclusionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    orderBy?: OutlookSeriesOccurrenceExclusionOrderByWithAggregationInput | OutlookSeriesOccurrenceExclusionOrderByWithAggregationInput[]
    by: OutlookSeriesOccurrenceExclusionScalarFieldEnum[] | OutlookSeriesOccurrenceExclusionScalarFieldEnum
    having?: OutlookSeriesOccurrenceExclusionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookSeriesOccurrenceExclusionCountAggregateInputType | true
    _min?: OutlookSeriesOccurrenceExclusionMinAggregateInputType
    _max?: OutlookSeriesOccurrenceExclusionMaxAggregateInputType
  }

  export type OutlookSeriesOccurrenceExclusionGroupByOutputType = {
    id: string
    bindingId: string
    occurrenceGraphEventId: string
    iCalUId: string | null
    reason: string | null
    createdByEmail: string | null
    createdAt: Date
    updatedAt: Date
    _count: OutlookSeriesOccurrenceExclusionCountAggregateOutputType | null
    _min: OutlookSeriesOccurrenceExclusionMinAggregateOutputType | null
    _max: OutlookSeriesOccurrenceExclusionMaxAggregateOutputType | null
  }

  type GetOutlookSeriesOccurrenceExclusionGroupByPayload<T extends OutlookSeriesOccurrenceExclusionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookSeriesOccurrenceExclusionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookSeriesOccurrenceExclusionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookSeriesOccurrenceExclusionGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookSeriesOccurrenceExclusionGroupByOutputType[P]>
        }
      >
    >


  export type OutlookSeriesOccurrenceExclusionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    occurrenceGraphEventId?: boolean
    iCalUId?: boolean
    reason?: boolean
    createdByEmail?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSeriesOccurrenceExclusion"]>

  export type OutlookSeriesOccurrenceExclusionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    occurrenceGraphEventId?: boolean
    iCalUId?: boolean
    reason?: boolean
    createdByEmail?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSeriesOccurrenceExclusion"]>

  export type OutlookSeriesOccurrenceExclusionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    occurrenceGraphEventId?: boolean
    iCalUId?: boolean
    reason?: boolean
    createdByEmail?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSeriesOccurrenceExclusion"]>

  export type OutlookSeriesOccurrenceExclusionSelectScalar = {
    id?: boolean
    bindingId?: boolean
    occurrenceGraphEventId?: boolean
    iCalUId?: boolean
    reason?: boolean
    createdByEmail?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type OutlookSeriesOccurrenceExclusionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "bindingId" | "occurrenceGraphEventId" | "iCalUId" | "reason" | "createdByEmail" | "createdAt" | "updatedAt", ExtArgs["result"]["outlookSeriesOccurrenceExclusion"]>
  export type OutlookSeriesOccurrenceExclusionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
  }
  export type OutlookSeriesOccurrenceExclusionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
  }
  export type OutlookSeriesOccurrenceExclusionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
  }

  export type $OutlookSeriesOccurrenceExclusionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookSeriesOccurrenceExclusion"
    objects: {
      binding: Prisma.$OutlookMeetingBindingPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      bindingId: string
      occurrenceGraphEventId: string
      iCalUId: string | null
      reason: string | null
      createdByEmail: string | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["outlookSeriesOccurrenceExclusion"]>
    composites: {}
  }

  type OutlookSeriesOccurrenceExclusionGetPayload<S extends boolean | null | undefined | OutlookSeriesOccurrenceExclusionDefaultArgs> = $Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload, S>

  type OutlookSeriesOccurrenceExclusionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookSeriesOccurrenceExclusionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookSeriesOccurrenceExclusionCountAggregateInputType | true
    }

  export interface OutlookSeriesOccurrenceExclusionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookSeriesOccurrenceExclusion'], meta: { name: 'OutlookSeriesOccurrenceExclusion' } }
    /**
     * Find zero or one OutlookSeriesOccurrenceExclusion that matches the filter.
     * @param {OutlookSeriesOccurrenceExclusionFindUniqueArgs} args - Arguments to find a OutlookSeriesOccurrenceExclusion
     * @example
     * // Get one OutlookSeriesOccurrenceExclusion
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookSeriesOccurrenceExclusionFindUniqueArgs>(args: SelectSubset<T, OutlookSeriesOccurrenceExclusionFindUniqueArgs<ExtArgs>>): Prisma__OutlookSeriesOccurrenceExclusionClient<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookSeriesOccurrenceExclusion that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookSeriesOccurrenceExclusionFindUniqueOrThrowArgs} args - Arguments to find a OutlookSeriesOccurrenceExclusion
     * @example
     * // Get one OutlookSeriesOccurrenceExclusion
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookSeriesOccurrenceExclusionFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookSeriesOccurrenceExclusionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookSeriesOccurrenceExclusionClient<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSeriesOccurrenceExclusion 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 {OutlookSeriesOccurrenceExclusionFindFirstArgs} args - Arguments to find a OutlookSeriesOccurrenceExclusion
     * @example
     * // Get one OutlookSeriesOccurrenceExclusion
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookSeriesOccurrenceExclusionFindFirstArgs>(args?: SelectSubset<T, OutlookSeriesOccurrenceExclusionFindFirstArgs<ExtArgs>>): Prisma__OutlookSeriesOccurrenceExclusionClient<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSeriesOccurrenceExclusion 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 {OutlookSeriesOccurrenceExclusionFindFirstOrThrowArgs} args - Arguments to find a OutlookSeriesOccurrenceExclusion
     * @example
     * // Get one OutlookSeriesOccurrenceExclusion
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookSeriesOccurrenceExclusionFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookSeriesOccurrenceExclusionFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookSeriesOccurrenceExclusionClient<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookSeriesOccurrenceExclusions 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 {OutlookSeriesOccurrenceExclusionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookSeriesOccurrenceExclusions
     * const outlookSeriesOccurrenceExclusions = await prisma.outlookSeriesOccurrenceExclusion.findMany()
     * 
     * // Get first 10 OutlookSeriesOccurrenceExclusions
     * const outlookSeriesOccurrenceExclusions = await prisma.outlookSeriesOccurrenceExclusion.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookSeriesOccurrenceExclusionWithIdOnly = await prisma.outlookSeriesOccurrenceExclusion.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookSeriesOccurrenceExclusionFindManyArgs>(args?: SelectSubset<T, OutlookSeriesOccurrenceExclusionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookSeriesOccurrenceExclusion.
     * @param {OutlookSeriesOccurrenceExclusionCreateArgs} args - Arguments to create a OutlookSeriesOccurrenceExclusion.
     * @example
     * // Create one OutlookSeriesOccurrenceExclusion
     * const OutlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.create({
     *   data: {
     *     // ... data to create a OutlookSeriesOccurrenceExclusion
     *   }
     * })
     * 
     */
    create<T extends OutlookSeriesOccurrenceExclusionCreateArgs>(args: SelectSubset<T, OutlookSeriesOccurrenceExclusionCreateArgs<ExtArgs>>): Prisma__OutlookSeriesOccurrenceExclusionClient<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookSeriesOccurrenceExclusions.
     * @param {OutlookSeriesOccurrenceExclusionCreateManyArgs} args - Arguments to create many OutlookSeriesOccurrenceExclusions.
     * @example
     * // Create many OutlookSeriesOccurrenceExclusions
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookSeriesOccurrenceExclusionCreateManyArgs>(args?: SelectSubset<T, OutlookSeriesOccurrenceExclusionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookSeriesOccurrenceExclusions and returns the data saved in the database.
     * @param {OutlookSeriesOccurrenceExclusionCreateManyAndReturnArgs} args - Arguments to create many OutlookSeriesOccurrenceExclusions.
     * @example
     * // Create many OutlookSeriesOccurrenceExclusions
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookSeriesOccurrenceExclusions and only return the `id`
     * const outlookSeriesOccurrenceExclusionWithIdOnly = await prisma.outlookSeriesOccurrenceExclusion.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 OutlookSeriesOccurrenceExclusionCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookSeriesOccurrenceExclusionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookSeriesOccurrenceExclusion.
     * @param {OutlookSeriesOccurrenceExclusionDeleteArgs} args - Arguments to delete one OutlookSeriesOccurrenceExclusion.
     * @example
     * // Delete one OutlookSeriesOccurrenceExclusion
     * const OutlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.delete({
     *   where: {
     *     // ... filter to delete one OutlookSeriesOccurrenceExclusion
     *   }
     * })
     * 
     */
    delete<T extends OutlookSeriesOccurrenceExclusionDeleteArgs>(args: SelectSubset<T, OutlookSeriesOccurrenceExclusionDeleteArgs<ExtArgs>>): Prisma__OutlookSeriesOccurrenceExclusionClient<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookSeriesOccurrenceExclusion.
     * @param {OutlookSeriesOccurrenceExclusionUpdateArgs} args - Arguments to update one OutlookSeriesOccurrenceExclusion.
     * @example
     * // Update one OutlookSeriesOccurrenceExclusion
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookSeriesOccurrenceExclusionUpdateArgs>(args: SelectSubset<T, OutlookSeriesOccurrenceExclusionUpdateArgs<ExtArgs>>): Prisma__OutlookSeriesOccurrenceExclusionClient<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookSeriesOccurrenceExclusions.
     * @param {OutlookSeriesOccurrenceExclusionDeleteManyArgs} args - Arguments to filter OutlookSeriesOccurrenceExclusions to delete.
     * @example
     * // Delete a few OutlookSeriesOccurrenceExclusions
     * const { count } = await prisma.outlookSeriesOccurrenceExclusion.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookSeriesOccurrenceExclusionDeleteManyArgs>(args?: SelectSubset<T, OutlookSeriesOccurrenceExclusionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSeriesOccurrenceExclusions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSeriesOccurrenceExclusionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookSeriesOccurrenceExclusions
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookSeriesOccurrenceExclusionUpdateManyArgs>(args: SelectSubset<T, OutlookSeriesOccurrenceExclusionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSeriesOccurrenceExclusions and returns the data updated in the database.
     * @param {OutlookSeriesOccurrenceExclusionUpdateManyAndReturnArgs} args - Arguments to update many OutlookSeriesOccurrenceExclusions.
     * @example
     * // Update many OutlookSeriesOccurrenceExclusions
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookSeriesOccurrenceExclusions and only return the `id`
     * const outlookSeriesOccurrenceExclusionWithIdOnly = await prisma.outlookSeriesOccurrenceExclusion.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 OutlookSeriesOccurrenceExclusionUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookSeriesOccurrenceExclusionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookSeriesOccurrenceExclusion.
     * @param {OutlookSeriesOccurrenceExclusionUpsertArgs} args - Arguments to update or create a OutlookSeriesOccurrenceExclusion.
     * @example
     * // Update or create a OutlookSeriesOccurrenceExclusion
     * const outlookSeriesOccurrenceExclusion = await prisma.outlookSeriesOccurrenceExclusion.upsert({
     *   create: {
     *     // ... data to create a OutlookSeriesOccurrenceExclusion
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookSeriesOccurrenceExclusion we want to update
     *   }
     * })
     */
    upsert<T extends OutlookSeriesOccurrenceExclusionUpsertArgs>(args: SelectSubset<T, OutlookSeriesOccurrenceExclusionUpsertArgs<ExtArgs>>): Prisma__OutlookSeriesOccurrenceExclusionClient<$Result.GetResult<Prisma.$OutlookSeriesOccurrenceExclusionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookSeriesOccurrenceExclusions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSeriesOccurrenceExclusionCountArgs} args - Arguments to filter OutlookSeriesOccurrenceExclusions to count.
     * @example
     * // Count the number of OutlookSeriesOccurrenceExclusions
     * const count = await prisma.outlookSeriesOccurrenceExclusion.count({
     *   where: {
     *     // ... the filter for the OutlookSeriesOccurrenceExclusions we want to count
     *   }
     * })
    **/
    count<T extends OutlookSeriesOccurrenceExclusionCountArgs>(
      args?: Subset<T, OutlookSeriesOccurrenceExclusionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookSeriesOccurrenceExclusionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookSeriesOccurrenceExclusion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSeriesOccurrenceExclusionAggregateArgs} 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 OutlookSeriesOccurrenceExclusionAggregateArgs>(args: Subset<T, OutlookSeriesOccurrenceExclusionAggregateArgs>): Prisma.PrismaPromise<GetOutlookSeriesOccurrenceExclusionAggregateType<T>>

    /**
     * Group by OutlookSeriesOccurrenceExclusion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSeriesOccurrenceExclusionGroupByArgs} 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 OutlookSeriesOccurrenceExclusionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookSeriesOccurrenceExclusionGroupByArgs['orderBy'] }
        : { orderBy?: OutlookSeriesOccurrenceExclusionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookSeriesOccurrenceExclusionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookSeriesOccurrenceExclusionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookSeriesOccurrenceExclusion model
   */
  readonly fields: OutlookSeriesOccurrenceExclusionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookSeriesOccurrenceExclusion.
   * 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__OutlookSeriesOccurrenceExclusionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    binding<T extends OutlookMeetingBindingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBindingDefaultArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookSeriesOccurrenceExclusion model
   */
  interface OutlookSeriesOccurrenceExclusionFieldRefs {
    readonly id: FieldRef<"OutlookSeriesOccurrenceExclusion", 'String'>
    readonly bindingId: FieldRef<"OutlookSeriesOccurrenceExclusion", 'String'>
    readonly occurrenceGraphEventId: FieldRef<"OutlookSeriesOccurrenceExclusion", 'String'>
    readonly iCalUId: FieldRef<"OutlookSeriesOccurrenceExclusion", 'String'>
    readonly reason: FieldRef<"OutlookSeriesOccurrenceExclusion", 'String'>
    readonly createdByEmail: FieldRef<"OutlookSeriesOccurrenceExclusion", 'String'>
    readonly createdAt: FieldRef<"OutlookSeriesOccurrenceExclusion", 'DateTime'>
    readonly updatedAt: FieldRef<"OutlookSeriesOccurrenceExclusion", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookSeriesOccurrenceExclusion findUnique
   */
  export type OutlookSeriesOccurrenceExclusionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSeriesOccurrenceExclusion to fetch.
     */
    where: OutlookSeriesOccurrenceExclusionWhereUniqueInput
  }

  /**
   * OutlookSeriesOccurrenceExclusion findUniqueOrThrow
   */
  export type OutlookSeriesOccurrenceExclusionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSeriesOccurrenceExclusion to fetch.
     */
    where: OutlookSeriesOccurrenceExclusionWhereUniqueInput
  }

  /**
   * OutlookSeriesOccurrenceExclusion findFirst
   */
  export type OutlookSeriesOccurrenceExclusionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSeriesOccurrenceExclusion to fetch.
     */
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSeriesOccurrenceExclusions to fetch.
     */
    orderBy?: OutlookSeriesOccurrenceExclusionOrderByWithRelationInput | OutlookSeriesOccurrenceExclusionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSeriesOccurrenceExclusions.
     */
    cursor?: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSeriesOccurrenceExclusions 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` OutlookSeriesOccurrenceExclusions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSeriesOccurrenceExclusions.
     */
    distinct?: OutlookSeriesOccurrenceExclusionScalarFieldEnum | OutlookSeriesOccurrenceExclusionScalarFieldEnum[]
  }

  /**
   * OutlookSeriesOccurrenceExclusion findFirstOrThrow
   */
  export type OutlookSeriesOccurrenceExclusionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSeriesOccurrenceExclusion to fetch.
     */
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSeriesOccurrenceExclusions to fetch.
     */
    orderBy?: OutlookSeriesOccurrenceExclusionOrderByWithRelationInput | OutlookSeriesOccurrenceExclusionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSeriesOccurrenceExclusions.
     */
    cursor?: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSeriesOccurrenceExclusions 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` OutlookSeriesOccurrenceExclusions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSeriesOccurrenceExclusions.
     */
    distinct?: OutlookSeriesOccurrenceExclusionScalarFieldEnum | OutlookSeriesOccurrenceExclusionScalarFieldEnum[]
  }

  /**
   * OutlookSeriesOccurrenceExclusion findMany
   */
  export type OutlookSeriesOccurrenceExclusionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSeriesOccurrenceExclusions to fetch.
     */
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSeriesOccurrenceExclusions to fetch.
     */
    orderBy?: OutlookSeriesOccurrenceExclusionOrderByWithRelationInput | OutlookSeriesOccurrenceExclusionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookSeriesOccurrenceExclusions.
     */
    cursor?: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSeriesOccurrenceExclusions 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` OutlookSeriesOccurrenceExclusions.
     */
    skip?: number
    distinct?: OutlookSeriesOccurrenceExclusionScalarFieldEnum | OutlookSeriesOccurrenceExclusionScalarFieldEnum[]
  }

  /**
   * OutlookSeriesOccurrenceExclusion create
   */
  export type OutlookSeriesOccurrenceExclusionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookSeriesOccurrenceExclusion.
     */
    data: XOR<OutlookSeriesOccurrenceExclusionCreateInput, OutlookSeriesOccurrenceExclusionUncheckedCreateInput>
  }

  /**
   * OutlookSeriesOccurrenceExclusion createMany
   */
  export type OutlookSeriesOccurrenceExclusionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookSeriesOccurrenceExclusions.
     */
    data: OutlookSeriesOccurrenceExclusionCreateManyInput | OutlookSeriesOccurrenceExclusionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookSeriesOccurrenceExclusion createManyAndReturn
   */
  export type OutlookSeriesOccurrenceExclusionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookSeriesOccurrenceExclusions.
     */
    data: OutlookSeriesOccurrenceExclusionCreateManyInput | OutlookSeriesOccurrenceExclusionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookSeriesOccurrenceExclusion update
   */
  export type OutlookSeriesOccurrenceExclusionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookSeriesOccurrenceExclusion.
     */
    data: XOR<OutlookSeriesOccurrenceExclusionUpdateInput, OutlookSeriesOccurrenceExclusionUncheckedUpdateInput>
    /**
     * Choose, which OutlookSeriesOccurrenceExclusion to update.
     */
    where: OutlookSeriesOccurrenceExclusionWhereUniqueInput
  }

  /**
   * OutlookSeriesOccurrenceExclusion updateMany
   */
  export type OutlookSeriesOccurrenceExclusionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookSeriesOccurrenceExclusions.
     */
    data: XOR<OutlookSeriesOccurrenceExclusionUpdateManyMutationInput, OutlookSeriesOccurrenceExclusionUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSeriesOccurrenceExclusions to update
     */
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    /**
     * Limit how many OutlookSeriesOccurrenceExclusions to update.
     */
    limit?: number
  }

  /**
   * OutlookSeriesOccurrenceExclusion updateManyAndReturn
   */
  export type OutlookSeriesOccurrenceExclusionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * The data used to update OutlookSeriesOccurrenceExclusions.
     */
    data: XOR<OutlookSeriesOccurrenceExclusionUpdateManyMutationInput, OutlookSeriesOccurrenceExclusionUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSeriesOccurrenceExclusions to update
     */
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    /**
     * Limit how many OutlookSeriesOccurrenceExclusions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookSeriesOccurrenceExclusion upsert
   */
  export type OutlookSeriesOccurrenceExclusionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookSeriesOccurrenceExclusion to update in case it exists.
     */
    where: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    /**
     * In case the OutlookSeriesOccurrenceExclusion found by the `where` argument doesn't exist, create a new OutlookSeriesOccurrenceExclusion with this data.
     */
    create: XOR<OutlookSeriesOccurrenceExclusionCreateInput, OutlookSeriesOccurrenceExclusionUncheckedCreateInput>
    /**
     * In case the OutlookSeriesOccurrenceExclusion was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookSeriesOccurrenceExclusionUpdateInput, OutlookSeriesOccurrenceExclusionUncheckedUpdateInput>
  }

  /**
   * OutlookSeriesOccurrenceExclusion delete
   */
  export type OutlookSeriesOccurrenceExclusionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
    /**
     * Filter which OutlookSeriesOccurrenceExclusion to delete.
     */
    where: OutlookSeriesOccurrenceExclusionWhereUniqueInput
  }

  /**
   * OutlookSeriesOccurrenceExclusion deleteMany
   */
  export type OutlookSeriesOccurrenceExclusionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSeriesOccurrenceExclusions to delete
     */
    where?: OutlookSeriesOccurrenceExclusionWhereInput
    /**
     * Limit how many OutlookSeriesOccurrenceExclusions to delete.
     */
    limit?: number
  }

  /**
   * OutlookSeriesOccurrenceExclusion without action
   */
  export type OutlookSeriesOccurrenceExclusionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSeriesOccurrenceExclusion
     */
    select?: OutlookSeriesOccurrenceExclusionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSeriesOccurrenceExclusion
     */
    omit?: OutlookSeriesOccurrenceExclusionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSeriesOccurrenceExclusionInclude<ExtArgs> | null
  }


  /**
   * Model OutlookSyncEventLog
   */

  export type AggregateOutlookSyncEventLog = {
    _count: OutlookSyncEventLogCountAggregateOutputType | null
    _min: OutlookSyncEventLogMinAggregateOutputType | null
    _max: OutlookSyncEventLogMaxAggregateOutputType | null
  }

  export type OutlookSyncEventLogMinAggregateOutputType = {
    id: string | null
    bindingId: string | null
    mailboxId: string | null
    eventType: string | null
    resultStatus: string | null
    message: string | null
    createdAt: Date | null
  }

  export type OutlookSyncEventLogMaxAggregateOutputType = {
    id: string | null
    bindingId: string | null
    mailboxId: string | null
    eventType: string | null
    resultStatus: string | null
    message: string | null
    createdAt: Date | null
  }

  export type OutlookSyncEventLogCountAggregateOutputType = {
    id: number
    bindingId: number
    mailboxId: number
    eventType: number
    resultStatus: number
    message: number
    payload: number
    createdAt: number
    _all: number
  }


  export type OutlookSyncEventLogMinAggregateInputType = {
    id?: true
    bindingId?: true
    mailboxId?: true
    eventType?: true
    resultStatus?: true
    message?: true
    createdAt?: true
  }

  export type OutlookSyncEventLogMaxAggregateInputType = {
    id?: true
    bindingId?: true
    mailboxId?: true
    eventType?: true
    resultStatus?: true
    message?: true
    createdAt?: true
  }

  export type OutlookSyncEventLogCountAggregateInputType = {
    id?: true
    bindingId?: true
    mailboxId?: true
    eventType?: true
    resultStatus?: true
    message?: true
    payload?: true
    createdAt?: true
    _all?: true
  }

  export type OutlookSyncEventLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSyncEventLog to aggregate.
     */
    where?: OutlookSyncEventLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncEventLogs to fetch.
     */
    orderBy?: OutlookSyncEventLogOrderByWithRelationInput | OutlookSyncEventLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookSyncEventLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncEventLogs 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` OutlookSyncEventLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookSyncEventLogs
    **/
    _count?: true | OutlookSyncEventLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookSyncEventLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookSyncEventLogMaxAggregateInputType
  }

  export type GetOutlookSyncEventLogAggregateType<T extends OutlookSyncEventLogAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookSyncEventLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookSyncEventLog[P]>
      : GetScalarType<T[P], AggregateOutlookSyncEventLog[P]>
  }




  export type OutlookSyncEventLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSyncEventLogWhereInput
    orderBy?: OutlookSyncEventLogOrderByWithAggregationInput | OutlookSyncEventLogOrderByWithAggregationInput[]
    by: OutlookSyncEventLogScalarFieldEnum[] | OutlookSyncEventLogScalarFieldEnum
    having?: OutlookSyncEventLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookSyncEventLogCountAggregateInputType | true
    _min?: OutlookSyncEventLogMinAggregateInputType
    _max?: OutlookSyncEventLogMaxAggregateInputType
  }

  export type OutlookSyncEventLogGroupByOutputType = {
    id: string
    bindingId: string
    mailboxId: string
    eventType: string
    resultStatus: string
    message: string | null
    payload: JsonValue | null
    createdAt: Date
    _count: OutlookSyncEventLogCountAggregateOutputType | null
    _min: OutlookSyncEventLogMinAggregateOutputType | null
    _max: OutlookSyncEventLogMaxAggregateOutputType | null
  }

  type GetOutlookSyncEventLogGroupByPayload<T extends OutlookSyncEventLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookSyncEventLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookSyncEventLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookSyncEventLogGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookSyncEventLogGroupByOutputType[P]>
        }
      >
    >


  export type OutlookSyncEventLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    mailboxId?: boolean
    eventType?: boolean
    resultStatus?: boolean
    message?: boolean
    payload?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSyncEventLog"]>

  export type OutlookSyncEventLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    mailboxId?: boolean
    eventType?: boolean
    resultStatus?: boolean
    message?: boolean
    payload?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSyncEventLog"]>

  export type OutlookSyncEventLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    mailboxId?: boolean
    eventType?: boolean
    resultStatus?: boolean
    message?: boolean
    payload?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSyncEventLog"]>

  export type OutlookSyncEventLogSelectScalar = {
    id?: boolean
    bindingId?: boolean
    mailboxId?: boolean
    eventType?: boolean
    resultStatus?: boolean
    message?: boolean
    payload?: boolean
    createdAt?: boolean
  }

  export type OutlookSyncEventLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "bindingId" | "mailboxId" | "eventType" | "resultStatus" | "message" | "payload" | "createdAt", ExtArgs["result"]["outlookSyncEventLog"]>
  export type OutlookSyncEventLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookSyncEventLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookSyncEventLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }

  export type $OutlookSyncEventLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookSyncEventLog"
    objects: {
      binding: Prisma.$OutlookMeetingBindingPayload<ExtArgs>
      mailbox: Prisma.$OutlookSyncMailboxPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      bindingId: string
      mailboxId: string
      eventType: string
      resultStatus: string
      message: string | null
      payload: Prisma.JsonValue | null
      createdAt: Date
    }, ExtArgs["result"]["outlookSyncEventLog"]>
    composites: {}
  }

  type OutlookSyncEventLogGetPayload<S extends boolean | null | undefined | OutlookSyncEventLogDefaultArgs> = $Result.GetResult<Prisma.$OutlookSyncEventLogPayload, S>

  type OutlookSyncEventLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookSyncEventLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookSyncEventLogCountAggregateInputType | true
    }

  export interface OutlookSyncEventLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookSyncEventLog'], meta: { name: 'OutlookSyncEventLog' } }
    /**
     * Find zero or one OutlookSyncEventLog that matches the filter.
     * @param {OutlookSyncEventLogFindUniqueArgs} args - Arguments to find a OutlookSyncEventLog
     * @example
     * // Get one OutlookSyncEventLog
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookSyncEventLogFindUniqueArgs>(args: SelectSubset<T, OutlookSyncEventLogFindUniqueArgs<ExtArgs>>): Prisma__OutlookSyncEventLogClient<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookSyncEventLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookSyncEventLogFindUniqueOrThrowArgs} args - Arguments to find a OutlookSyncEventLog
     * @example
     * // Get one OutlookSyncEventLog
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookSyncEventLogFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookSyncEventLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookSyncEventLogClient<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSyncEventLog 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 {OutlookSyncEventLogFindFirstArgs} args - Arguments to find a OutlookSyncEventLog
     * @example
     * // Get one OutlookSyncEventLog
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookSyncEventLogFindFirstArgs>(args?: SelectSubset<T, OutlookSyncEventLogFindFirstArgs<ExtArgs>>): Prisma__OutlookSyncEventLogClient<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSyncEventLog 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 {OutlookSyncEventLogFindFirstOrThrowArgs} args - Arguments to find a OutlookSyncEventLog
     * @example
     * // Get one OutlookSyncEventLog
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookSyncEventLogFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookSyncEventLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookSyncEventLogClient<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookSyncEventLogs 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 {OutlookSyncEventLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookSyncEventLogs
     * const outlookSyncEventLogs = await prisma.outlookSyncEventLog.findMany()
     * 
     * // Get first 10 OutlookSyncEventLogs
     * const outlookSyncEventLogs = await prisma.outlookSyncEventLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookSyncEventLogWithIdOnly = await prisma.outlookSyncEventLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookSyncEventLogFindManyArgs>(args?: SelectSubset<T, OutlookSyncEventLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookSyncEventLog.
     * @param {OutlookSyncEventLogCreateArgs} args - Arguments to create a OutlookSyncEventLog.
     * @example
     * // Create one OutlookSyncEventLog
     * const OutlookSyncEventLog = await prisma.outlookSyncEventLog.create({
     *   data: {
     *     // ... data to create a OutlookSyncEventLog
     *   }
     * })
     * 
     */
    create<T extends OutlookSyncEventLogCreateArgs>(args: SelectSubset<T, OutlookSyncEventLogCreateArgs<ExtArgs>>): Prisma__OutlookSyncEventLogClient<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookSyncEventLogs.
     * @param {OutlookSyncEventLogCreateManyArgs} args - Arguments to create many OutlookSyncEventLogs.
     * @example
     * // Create many OutlookSyncEventLogs
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookSyncEventLogCreateManyArgs>(args?: SelectSubset<T, OutlookSyncEventLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookSyncEventLogs and returns the data saved in the database.
     * @param {OutlookSyncEventLogCreateManyAndReturnArgs} args - Arguments to create many OutlookSyncEventLogs.
     * @example
     * // Create many OutlookSyncEventLogs
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookSyncEventLogs and only return the `id`
     * const outlookSyncEventLogWithIdOnly = await prisma.outlookSyncEventLog.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 OutlookSyncEventLogCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookSyncEventLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookSyncEventLog.
     * @param {OutlookSyncEventLogDeleteArgs} args - Arguments to delete one OutlookSyncEventLog.
     * @example
     * // Delete one OutlookSyncEventLog
     * const OutlookSyncEventLog = await prisma.outlookSyncEventLog.delete({
     *   where: {
     *     // ... filter to delete one OutlookSyncEventLog
     *   }
     * })
     * 
     */
    delete<T extends OutlookSyncEventLogDeleteArgs>(args: SelectSubset<T, OutlookSyncEventLogDeleteArgs<ExtArgs>>): Prisma__OutlookSyncEventLogClient<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookSyncEventLog.
     * @param {OutlookSyncEventLogUpdateArgs} args - Arguments to update one OutlookSyncEventLog.
     * @example
     * // Update one OutlookSyncEventLog
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookSyncEventLogUpdateArgs>(args: SelectSubset<T, OutlookSyncEventLogUpdateArgs<ExtArgs>>): Prisma__OutlookSyncEventLogClient<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookSyncEventLogs.
     * @param {OutlookSyncEventLogDeleteManyArgs} args - Arguments to filter OutlookSyncEventLogs to delete.
     * @example
     * // Delete a few OutlookSyncEventLogs
     * const { count } = await prisma.outlookSyncEventLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookSyncEventLogDeleteManyArgs>(args?: SelectSubset<T, OutlookSyncEventLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSyncEventLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncEventLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookSyncEventLogs
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookSyncEventLogUpdateManyArgs>(args: SelectSubset<T, OutlookSyncEventLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSyncEventLogs and returns the data updated in the database.
     * @param {OutlookSyncEventLogUpdateManyAndReturnArgs} args - Arguments to update many OutlookSyncEventLogs.
     * @example
     * // Update many OutlookSyncEventLogs
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookSyncEventLogs and only return the `id`
     * const outlookSyncEventLogWithIdOnly = await prisma.outlookSyncEventLog.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 OutlookSyncEventLogUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookSyncEventLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookSyncEventLog.
     * @param {OutlookSyncEventLogUpsertArgs} args - Arguments to update or create a OutlookSyncEventLog.
     * @example
     * // Update or create a OutlookSyncEventLog
     * const outlookSyncEventLog = await prisma.outlookSyncEventLog.upsert({
     *   create: {
     *     // ... data to create a OutlookSyncEventLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookSyncEventLog we want to update
     *   }
     * })
     */
    upsert<T extends OutlookSyncEventLogUpsertArgs>(args: SelectSubset<T, OutlookSyncEventLogUpsertArgs<ExtArgs>>): Prisma__OutlookSyncEventLogClient<$Result.GetResult<Prisma.$OutlookSyncEventLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookSyncEventLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncEventLogCountArgs} args - Arguments to filter OutlookSyncEventLogs to count.
     * @example
     * // Count the number of OutlookSyncEventLogs
     * const count = await prisma.outlookSyncEventLog.count({
     *   where: {
     *     // ... the filter for the OutlookSyncEventLogs we want to count
     *   }
     * })
    **/
    count<T extends OutlookSyncEventLogCountArgs>(
      args?: Subset<T, OutlookSyncEventLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookSyncEventLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookSyncEventLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncEventLogAggregateArgs} 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 OutlookSyncEventLogAggregateArgs>(args: Subset<T, OutlookSyncEventLogAggregateArgs>): Prisma.PrismaPromise<GetOutlookSyncEventLogAggregateType<T>>

    /**
     * Group by OutlookSyncEventLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncEventLogGroupByArgs} 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 OutlookSyncEventLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookSyncEventLogGroupByArgs['orderBy'] }
        : { orderBy?: OutlookSyncEventLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookSyncEventLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookSyncEventLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookSyncEventLog model
   */
  readonly fields: OutlookSyncEventLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookSyncEventLog.
   * 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__OutlookSyncEventLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    binding<T extends OutlookMeetingBindingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBindingDefaultArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    mailbox<T extends OutlookSyncMailboxDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailboxDefaultArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookSyncEventLog model
   */
  interface OutlookSyncEventLogFieldRefs {
    readonly id: FieldRef<"OutlookSyncEventLog", 'String'>
    readonly bindingId: FieldRef<"OutlookSyncEventLog", 'String'>
    readonly mailboxId: FieldRef<"OutlookSyncEventLog", 'String'>
    readonly eventType: FieldRef<"OutlookSyncEventLog", 'String'>
    readonly resultStatus: FieldRef<"OutlookSyncEventLog", 'String'>
    readonly message: FieldRef<"OutlookSyncEventLog", 'String'>
    readonly payload: FieldRef<"OutlookSyncEventLog", 'Json'>
    readonly createdAt: FieldRef<"OutlookSyncEventLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookSyncEventLog findUnique
   */
  export type OutlookSyncEventLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncEventLog to fetch.
     */
    where: OutlookSyncEventLogWhereUniqueInput
  }

  /**
   * OutlookSyncEventLog findUniqueOrThrow
   */
  export type OutlookSyncEventLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncEventLog to fetch.
     */
    where: OutlookSyncEventLogWhereUniqueInput
  }

  /**
   * OutlookSyncEventLog findFirst
   */
  export type OutlookSyncEventLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncEventLog to fetch.
     */
    where?: OutlookSyncEventLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncEventLogs to fetch.
     */
    orderBy?: OutlookSyncEventLogOrderByWithRelationInput | OutlookSyncEventLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSyncEventLogs.
     */
    cursor?: OutlookSyncEventLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncEventLogs 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` OutlookSyncEventLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSyncEventLogs.
     */
    distinct?: OutlookSyncEventLogScalarFieldEnum | OutlookSyncEventLogScalarFieldEnum[]
  }

  /**
   * OutlookSyncEventLog findFirstOrThrow
   */
  export type OutlookSyncEventLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncEventLog to fetch.
     */
    where?: OutlookSyncEventLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncEventLogs to fetch.
     */
    orderBy?: OutlookSyncEventLogOrderByWithRelationInput | OutlookSyncEventLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSyncEventLogs.
     */
    cursor?: OutlookSyncEventLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncEventLogs 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` OutlookSyncEventLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSyncEventLogs.
     */
    distinct?: OutlookSyncEventLogScalarFieldEnum | OutlookSyncEventLogScalarFieldEnum[]
  }

  /**
   * OutlookSyncEventLog findMany
   */
  export type OutlookSyncEventLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncEventLogs to fetch.
     */
    where?: OutlookSyncEventLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncEventLogs to fetch.
     */
    orderBy?: OutlookSyncEventLogOrderByWithRelationInput | OutlookSyncEventLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookSyncEventLogs.
     */
    cursor?: OutlookSyncEventLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncEventLogs 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` OutlookSyncEventLogs.
     */
    skip?: number
    distinct?: OutlookSyncEventLogScalarFieldEnum | OutlookSyncEventLogScalarFieldEnum[]
  }

  /**
   * OutlookSyncEventLog create
   */
  export type OutlookSyncEventLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookSyncEventLog.
     */
    data: XOR<OutlookSyncEventLogCreateInput, OutlookSyncEventLogUncheckedCreateInput>
  }

  /**
   * OutlookSyncEventLog createMany
   */
  export type OutlookSyncEventLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookSyncEventLogs.
     */
    data: OutlookSyncEventLogCreateManyInput | OutlookSyncEventLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookSyncEventLog createManyAndReturn
   */
  export type OutlookSyncEventLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookSyncEventLogs.
     */
    data: OutlookSyncEventLogCreateManyInput | OutlookSyncEventLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookSyncEventLog update
   */
  export type OutlookSyncEventLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookSyncEventLog.
     */
    data: XOR<OutlookSyncEventLogUpdateInput, OutlookSyncEventLogUncheckedUpdateInput>
    /**
     * Choose, which OutlookSyncEventLog to update.
     */
    where: OutlookSyncEventLogWhereUniqueInput
  }

  /**
   * OutlookSyncEventLog updateMany
   */
  export type OutlookSyncEventLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookSyncEventLogs.
     */
    data: XOR<OutlookSyncEventLogUpdateManyMutationInput, OutlookSyncEventLogUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSyncEventLogs to update
     */
    where?: OutlookSyncEventLogWhereInput
    /**
     * Limit how many OutlookSyncEventLogs to update.
     */
    limit?: number
  }

  /**
   * OutlookSyncEventLog updateManyAndReturn
   */
  export type OutlookSyncEventLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * The data used to update OutlookSyncEventLogs.
     */
    data: XOR<OutlookSyncEventLogUpdateManyMutationInput, OutlookSyncEventLogUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSyncEventLogs to update
     */
    where?: OutlookSyncEventLogWhereInput
    /**
     * Limit how many OutlookSyncEventLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookSyncEventLog upsert
   */
  export type OutlookSyncEventLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookSyncEventLog to update in case it exists.
     */
    where: OutlookSyncEventLogWhereUniqueInput
    /**
     * In case the OutlookSyncEventLog found by the `where` argument doesn't exist, create a new OutlookSyncEventLog with this data.
     */
    create: XOR<OutlookSyncEventLogCreateInput, OutlookSyncEventLogUncheckedCreateInput>
    /**
     * In case the OutlookSyncEventLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookSyncEventLogUpdateInput, OutlookSyncEventLogUncheckedUpdateInput>
  }

  /**
   * OutlookSyncEventLog delete
   */
  export type OutlookSyncEventLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
    /**
     * Filter which OutlookSyncEventLog to delete.
     */
    where: OutlookSyncEventLogWhereUniqueInput
  }

  /**
   * OutlookSyncEventLog deleteMany
   */
  export type OutlookSyncEventLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSyncEventLogs to delete
     */
    where?: OutlookSyncEventLogWhereInput
    /**
     * Limit how many OutlookSyncEventLogs to delete.
     */
    limit?: number
  }

  /**
   * OutlookSyncEventLog without action
   */
  export type OutlookSyncEventLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncEventLog
     */
    select?: OutlookSyncEventLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncEventLog
     */
    omit?: OutlookSyncEventLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncEventLogInclude<ExtArgs> | null
  }


  /**
   * Model OutlookEventSourceVersion
   */

  export type AggregateOutlookEventSourceVersion = {
    _count: OutlookEventSourceVersionCountAggregateOutputType | null
    _avg: OutlookEventSourceVersionAvgAggregateOutputType | null
    _sum: OutlookEventSourceVersionSumAggregateOutputType | null
    _min: OutlookEventSourceVersionMinAggregateOutputType | null
    _max: OutlookEventSourceVersionMaxAggregateOutputType | null
  }

  export type OutlookEventSourceVersionAvgAggregateOutputType = {
    attendeesCount: number | null
    attendeesRequiredCount: number | null
    attendeesOptionalCount: number | null
    attendeesResourceCount: number | null
  }

  export type OutlookEventSourceVersionSumAggregateOutputType = {
    attendeesCount: number | null
    attendeesRequiredCount: number | null
    attendeesOptionalCount: number | null
    attendeesResourceCount: number | null
  }

  export type OutlookEventSourceVersionMinAggregateOutputType = {
    id: string | null
    bindingId: string | null
    mailboxId: string | null
    graphEventId: string | null
    graphSeriesMasterId: string | null
    graphEventType: string | null
    versionSource: string | null
    graphLastModifiedAt: Date | null
    fetchedAt: Date | null
    etag: string | null
    payloadHash: string | null
    attendeesCount: number | null
    attendeesRequiredCount: number | null
    attendeesOptionalCount: number | null
    attendeesResourceCount: number | null
    organizerEmail: string | null
    startTime: Date | null
    endTime: Date | null
    isCancelled: boolean | null
    createdAt: Date | null
  }

  export type OutlookEventSourceVersionMaxAggregateOutputType = {
    id: string | null
    bindingId: string | null
    mailboxId: string | null
    graphEventId: string | null
    graphSeriesMasterId: string | null
    graphEventType: string | null
    versionSource: string | null
    graphLastModifiedAt: Date | null
    fetchedAt: Date | null
    etag: string | null
    payloadHash: string | null
    attendeesCount: number | null
    attendeesRequiredCount: number | null
    attendeesOptionalCount: number | null
    attendeesResourceCount: number | null
    organizerEmail: string | null
    startTime: Date | null
    endTime: Date | null
    isCancelled: boolean | null
    createdAt: Date | null
  }

  export type OutlookEventSourceVersionCountAggregateOutputType = {
    id: number
    bindingId: number
    mailboxId: number
    graphEventId: number
    graphSeriesMasterId: number
    graphEventType: number
    versionSource: number
    graphLastModifiedAt: number
    fetchedAt: number
    etag: number
    payloadHash: number
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail: number
    startTime: number
    endTime: number
    isCancelled: number
    rawPayload: number
    normalizedPayload: number
    createdAt: number
    _all: number
  }


  export type OutlookEventSourceVersionAvgAggregateInputType = {
    attendeesCount?: true
    attendeesRequiredCount?: true
    attendeesOptionalCount?: true
    attendeesResourceCount?: true
  }

  export type OutlookEventSourceVersionSumAggregateInputType = {
    attendeesCount?: true
    attendeesRequiredCount?: true
    attendeesOptionalCount?: true
    attendeesResourceCount?: true
  }

  export type OutlookEventSourceVersionMinAggregateInputType = {
    id?: true
    bindingId?: true
    mailboxId?: true
    graphEventId?: true
    graphSeriesMasterId?: true
    graphEventType?: true
    versionSource?: true
    graphLastModifiedAt?: true
    fetchedAt?: true
    etag?: true
    payloadHash?: true
    attendeesCount?: true
    attendeesRequiredCount?: true
    attendeesOptionalCount?: true
    attendeesResourceCount?: true
    organizerEmail?: true
    startTime?: true
    endTime?: true
    isCancelled?: true
    createdAt?: true
  }

  export type OutlookEventSourceVersionMaxAggregateInputType = {
    id?: true
    bindingId?: true
    mailboxId?: true
    graphEventId?: true
    graphSeriesMasterId?: true
    graphEventType?: true
    versionSource?: true
    graphLastModifiedAt?: true
    fetchedAt?: true
    etag?: true
    payloadHash?: true
    attendeesCount?: true
    attendeesRequiredCount?: true
    attendeesOptionalCount?: true
    attendeesResourceCount?: true
    organizerEmail?: true
    startTime?: true
    endTime?: true
    isCancelled?: true
    createdAt?: true
  }

  export type OutlookEventSourceVersionCountAggregateInputType = {
    id?: true
    bindingId?: true
    mailboxId?: true
    graphEventId?: true
    graphSeriesMasterId?: true
    graphEventType?: true
    versionSource?: true
    graphLastModifiedAt?: true
    fetchedAt?: true
    etag?: true
    payloadHash?: true
    attendeesCount?: true
    attendeesRequiredCount?: true
    attendeesOptionalCount?: true
    attendeesResourceCount?: true
    organizerEmail?: true
    startTime?: true
    endTime?: true
    isCancelled?: true
    rawPayload?: true
    normalizedPayload?: true
    createdAt?: true
    _all?: true
  }

  export type OutlookEventSourceVersionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookEventSourceVersion to aggregate.
     */
    where?: OutlookEventSourceVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSourceVersions to fetch.
     */
    orderBy?: OutlookEventSourceVersionOrderByWithRelationInput | OutlookEventSourceVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookEventSourceVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSourceVersions 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` OutlookEventSourceVersions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookEventSourceVersions
    **/
    _count?: true | OutlookEventSourceVersionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: OutlookEventSourceVersionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: OutlookEventSourceVersionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookEventSourceVersionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookEventSourceVersionMaxAggregateInputType
  }

  export type GetOutlookEventSourceVersionAggregateType<T extends OutlookEventSourceVersionAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookEventSourceVersion]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookEventSourceVersion[P]>
      : GetScalarType<T[P], AggregateOutlookEventSourceVersion[P]>
  }




  export type OutlookEventSourceVersionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSourceVersionWhereInput
    orderBy?: OutlookEventSourceVersionOrderByWithAggregationInput | OutlookEventSourceVersionOrderByWithAggregationInput[]
    by: OutlookEventSourceVersionScalarFieldEnum[] | OutlookEventSourceVersionScalarFieldEnum
    having?: OutlookEventSourceVersionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookEventSourceVersionCountAggregateInputType | true
    _avg?: OutlookEventSourceVersionAvgAggregateInputType
    _sum?: OutlookEventSourceVersionSumAggregateInputType
    _min?: OutlookEventSourceVersionMinAggregateInputType
    _max?: OutlookEventSourceVersionMaxAggregateInputType
  }

  export type OutlookEventSourceVersionGroupByOutputType = {
    id: string
    bindingId: string
    mailboxId: string
    graphEventId: string
    graphSeriesMasterId: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt: Date | null
    fetchedAt: Date
    etag: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail: string | null
    startTime: Date | null
    endTime: Date | null
    isCancelled: boolean
    rawPayload: JsonValue
    normalizedPayload: JsonValue
    createdAt: Date
    _count: OutlookEventSourceVersionCountAggregateOutputType | null
    _avg: OutlookEventSourceVersionAvgAggregateOutputType | null
    _sum: OutlookEventSourceVersionSumAggregateOutputType | null
    _min: OutlookEventSourceVersionMinAggregateOutputType | null
    _max: OutlookEventSourceVersionMaxAggregateOutputType | null
  }

  type GetOutlookEventSourceVersionGroupByPayload<T extends OutlookEventSourceVersionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookEventSourceVersionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookEventSourceVersionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookEventSourceVersionGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookEventSourceVersionGroupByOutputType[P]>
        }
      >
    >


  export type OutlookEventSourceVersionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    mailboxId?: boolean
    graphEventId?: boolean
    graphSeriesMasterId?: boolean
    graphEventType?: boolean
    versionSource?: boolean
    graphLastModifiedAt?: boolean
    fetchedAt?: boolean
    etag?: boolean
    payloadHash?: boolean
    attendeesCount?: boolean
    attendeesRequiredCount?: boolean
    attendeesOptionalCount?: boolean
    attendeesResourceCount?: boolean
    organizerEmail?: boolean
    startTime?: boolean
    endTime?: boolean
    isCancelled?: boolean
    rawPayload?: boolean
    normalizedPayload?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
    diffsAsCurrent?: boolean | OutlookEventSourceVersion$diffsAsCurrentArgs<ExtArgs>
    diffsAsPrevious?: boolean | OutlookEventSourceVersion$diffsAsPreviousArgs<ExtArgs>
    _count?: boolean | OutlookEventSourceVersionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSourceVersion"]>

  export type OutlookEventSourceVersionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    mailboxId?: boolean
    graphEventId?: boolean
    graphSeriesMasterId?: boolean
    graphEventType?: boolean
    versionSource?: boolean
    graphLastModifiedAt?: boolean
    fetchedAt?: boolean
    etag?: boolean
    payloadHash?: boolean
    attendeesCount?: boolean
    attendeesRequiredCount?: boolean
    attendeesOptionalCount?: boolean
    attendeesResourceCount?: boolean
    organizerEmail?: boolean
    startTime?: boolean
    endTime?: boolean
    isCancelled?: boolean
    rawPayload?: boolean
    normalizedPayload?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSourceVersion"]>

  export type OutlookEventSourceVersionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    mailboxId?: boolean
    graphEventId?: boolean
    graphSeriesMasterId?: boolean
    graphEventType?: boolean
    versionSource?: boolean
    graphLastModifiedAt?: boolean
    fetchedAt?: boolean
    etag?: boolean
    payloadHash?: boolean
    attendeesCount?: boolean
    attendeesRequiredCount?: boolean
    attendeesOptionalCount?: boolean
    attendeesResourceCount?: boolean
    organizerEmail?: boolean
    startTime?: boolean
    endTime?: boolean
    isCancelled?: boolean
    rawPayload?: boolean
    normalizedPayload?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSourceVersion"]>

  export type OutlookEventSourceVersionSelectScalar = {
    id?: boolean
    bindingId?: boolean
    mailboxId?: boolean
    graphEventId?: boolean
    graphSeriesMasterId?: boolean
    graphEventType?: boolean
    versionSource?: boolean
    graphLastModifiedAt?: boolean
    fetchedAt?: boolean
    etag?: boolean
    payloadHash?: boolean
    attendeesCount?: boolean
    attendeesRequiredCount?: boolean
    attendeesOptionalCount?: boolean
    attendeesResourceCount?: boolean
    organizerEmail?: boolean
    startTime?: boolean
    endTime?: boolean
    isCancelled?: boolean
    rawPayload?: boolean
    normalizedPayload?: boolean
    createdAt?: boolean
  }

  export type OutlookEventSourceVersionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "bindingId" | "mailboxId" | "graphEventId" | "graphSeriesMasterId" | "graphEventType" | "versionSource" | "graphLastModifiedAt" | "fetchedAt" | "etag" | "payloadHash" | "attendeesCount" | "attendeesRequiredCount" | "attendeesOptionalCount" | "attendeesResourceCount" | "organizerEmail" | "startTime" | "endTime" | "isCancelled" | "rawPayload" | "normalizedPayload" | "createdAt", ExtArgs["result"]["outlookEventSourceVersion"]>
  export type OutlookEventSourceVersionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
    diffsAsCurrent?: boolean | OutlookEventSourceVersion$diffsAsCurrentArgs<ExtArgs>
    diffsAsPrevious?: boolean | OutlookEventSourceVersion$diffsAsPreviousArgs<ExtArgs>
    _count?: boolean | OutlookEventSourceVersionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type OutlookEventSourceVersionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookEventSourceVersionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }

  export type $OutlookEventSourceVersionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookEventSourceVersion"
    objects: {
      binding: Prisma.$OutlookMeetingBindingPayload<ExtArgs>
      mailbox: Prisma.$OutlookSyncMailboxPayload<ExtArgs>
      diffsAsCurrent: Prisma.$OutlookEventSyncDiffPayload<ExtArgs>[]
      diffsAsPrevious: Prisma.$OutlookEventSyncDiffPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      bindingId: string
      mailboxId: string
      graphEventId: string
      graphSeriesMasterId: string | null
      graphEventType: string
      versionSource: string
      graphLastModifiedAt: Date | null
      fetchedAt: Date
      etag: string | null
      payloadHash: string
      attendeesCount: number
      attendeesRequiredCount: number
      attendeesOptionalCount: number
      attendeesResourceCount: number
      organizerEmail: string | null
      startTime: Date | null
      endTime: Date | null
      isCancelled: boolean
      rawPayload: Prisma.JsonValue
      normalizedPayload: Prisma.JsonValue
      createdAt: Date
    }, ExtArgs["result"]["outlookEventSourceVersion"]>
    composites: {}
  }

  type OutlookEventSourceVersionGetPayload<S extends boolean | null | undefined | OutlookEventSourceVersionDefaultArgs> = $Result.GetResult<Prisma.$OutlookEventSourceVersionPayload, S>

  type OutlookEventSourceVersionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookEventSourceVersionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookEventSourceVersionCountAggregateInputType | true
    }

  export interface OutlookEventSourceVersionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookEventSourceVersion'], meta: { name: 'OutlookEventSourceVersion' } }
    /**
     * Find zero or one OutlookEventSourceVersion that matches the filter.
     * @param {OutlookEventSourceVersionFindUniqueArgs} args - Arguments to find a OutlookEventSourceVersion
     * @example
     * // Get one OutlookEventSourceVersion
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookEventSourceVersionFindUniqueArgs>(args: SelectSubset<T, OutlookEventSourceVersionFindUniqueArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookEventSourceVersion that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookEventSourceVersionFindUniqueOrThrowArgs} args - Arguments to find a OutlookEventSourceVersion
     * @example
     * // Get one OutlookEventSourceVersion
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookEventSourceVersionFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookEventSourceVersionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookEventSourceVersion 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 {OutlookEventSourceVersionFindFirstArgs} args - Arguments to find a OutlookEventSourceVersion
     * @example
     * // Get one OutlookEventSourceVersion
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookEventSourceVersionFindFirstArgs>(args?: SelectSubset<T, OutlookEventSourceVersionFindFirstArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookEventSourceVersion 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 {OutlookEventSourceVersionFindFirstOrThrowArgs} args - Arguments to find a OutlookEventSourceVersion
     * @example
     * // Get one OutlookEventSourceVersion
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookEventSourceVersionFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookEventSourceVersionFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookEventSourceVersions 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 {OutlookEventSourceVersionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookEventSourceVersions
     * const outlookEventSourceVersions = await prisma.outlookEventSourceVersion.findMany()
     * 
     * // Get first 10 OutlookEventSourceVersions
     * const outlookEventSourceVersions = await prisma.outlookEventSourceVersion.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookEventSourceVersionWithIdOnly = await prisma.outlookEventSourceVersion.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookEventSourceVersionFindManyArgs>(args?: SelectSubset<T, OutlookEventSourceVersionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookEventSourceVersion.
     * @param {OutlookEventSourceVersionCreateArgs} args - Arguments to create a OutlookEventSourceVersion.
     * @example
     * // Create one OutlookEventSourceVersion
     * const OutlookEventSourceVersion = await prisma.outlookEventSourceVersion.create({
     *   data: {
     *     // ... data to create a OutlookEventSourceVersion
     *   }
     * })
     * 
     */
    create<T extends OutlookEventSourceVersionCreateArgs>(args: SelectSubset<T, OutlookEventSourceVersionCreateArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookEventSourceVersions.
     * @param {OutlookEventSourceVersionCreateManyArgs} args - Arguments to create many OutlookEventSourceVersions.
     * @example
     * // Create many OutlookEventSourceVersions
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookEventSourceVersionCreateManyArgs>(args?: SelectSubset<T, OutlookEventSourceVersionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookEventSourceVersions and returns the data saved in the database.
     * @param {OutlookEventSourceVersionCreateManyAndReturnArgs} args - Arguments to create many OutlookEventSourceVersions.
     * @example
     * // Create many OutlookEventSourceVersions
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookEventSourceVersions and only return the `id`
     * const outlookEventSourceVersionWithIdOnly = await prisma.outlookEventSourceVersion.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 OutlookEventSourceVersionCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookEventSourceVersionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookEventSourceVersion.
     * @param {OutlookEventSourceVersionDeleteArgs} args - Arguments to delete one OutlookEventSourceVersion.
     * @example
     * // Delete one OutlookEventSourceVersion
     * const OutlookEventSourceVersion = await prisma.outlookEventSourceVersion.delete({
     *   where: {
     *     // ... filter to delete one OutlookEventSourceVersion
     *   }
     * })
     * 
     */
    delete<T extends OutlookEventSourceVersionDeleteArgs>(args: SelectSubset<T, OutlookEventSourceVersionDeleteArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookEventSourceVersion.
     * @param {OutlookEventSourceVersionUpdateArgs} args - Arguments to update one OutlookEventSourceVersion.
     * @example
     * // Update one OutlookEventSourceVersion
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookEventSourceVersionUpdateArgs>(args: SelectSubset<T, OutlookEventSourceVersionUpdateArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookEventSourceVersions.
     * @param {OutlookEventSourceVersionDeleteManyArgs} args - Arguments to filter OutlookEventSourceVersions to delete.
     * @example
     * // Delete a few OutlookEventSourceVersions
     * const { count } = await prisma.outlookEventSourceVersion.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookEventSourceVersionDeleteManyArgs>(args?: SelectSubset<T, OutlookEventSourceVersionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookEventSourceVersions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSourceVersionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookEventSourceVersions
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookEventSourceVersionUpdateManyArgs>(args: SelectSubset<T, OutlookEventSourceVersionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookEventSourceVersions and returns the data updated in the database.
     * @param {OutlookEventSourceVersionUpdateManyAndReturnArgs} args - Arguments to update many OutlookEventSourceVersions.
     * @example
     * // Update many OutlookEventSourceVersions
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookEventSourceVersions and only return the `id`
     * const outlookEventSourceVersionWithIdOnly = await prisma.outlookEventSourceVersion.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 OutlookEventSourceVersionUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookEventSourceVersionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookEventSourceVersion.
     * @param {OutlookEventSourceVersionUpsertArgs} args - Arguments to update or create a OutlookEventSourceVersion.
     * @example
     * // Update or create a OutlookEventSourceVersion
     * const outlookEventSourceVersion = await prisma.outlookEventSourceVersion.upsert({
     *   create: {
     *     // ... data to create a OutlookEventSourceVersion
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookEventSourceVersion we want to update
     *   }
     * })
     */
    upsert<T extends OutlookEventSourceVersionUpsertArgs>(args: SelectSubset<T, OutlookEventSourceVersionUpsertArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookEventSourceVersions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSourceVersionCountArgs} args - Arguments to filter OutlookEventSourceVersions to count.
     * @example
     * // Count the number of OutlookEventSourceVersions
     * const count = await prisma.outlookEventSourceVersion.count({
     *   where: {
     *     // ... the filter for the OutlookEventSourceVersions we want to count
     *   }
     * })
    **/
    count<T extends OutlookEventSourceVersionCountArgs>(
      args?: Subset<T, OutlookEventSourceVersionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookEventSourceVersionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookEventSourceVersion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSourceVersionAggregateArgs} 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 OutlookEventSourceVersionAggregateArgs>(args: Subset<T, OutlookEventSourceVersionAggregateArgs>): Prisma.PrismaPromise<GetOutlookEventSourceVersionAggregateType<T>>

    /**
     * Group by OutlookEventSourceVersion.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSourceVersionGroupByArgs} 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 OutlookEventSourceVersionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookEventSourceVersionGroupByArgs['orderBy'] }
        : { orderBy?: OutlookEventSourceVersionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookEventSourceVersionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookEventSourceVersionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookEventSourceVersion model
   */
  readonly fields: OutlookEventSourceVersionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookEventSourceVersion.
   * 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__OutlookEventSourceVersionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    binding<T extends OutlookMeetingBindingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBindingDefaultArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    mailbox<T extends OutlookSyncMailboxDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailboxDefaultArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    diffsAsCurrent<T extends OutlookEventSourceVersion$diffsAsCurrentArgs<ExtArgs> = {}>(args?: Subset<T, OutlookEventSourceVersion$diffsAsCurrentArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    diffsAsPrevious<T extends OutlookEventSourceVersion$diffsAsPreviousArgs<ExtArgs> = {}>(args?: Subset<T, OutlookEventSourceVersion$diffsAsPreviousArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookEventSourceVersion model
   */
  interface OutlookEventSourceVersionFieldRefs {
    readonly id: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly bindingId: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly mailboxId: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly graphEventId: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly graphSeriesMasterId: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly graphEventType: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly versionSource: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly graphLastModifiedAt: FieldRef<"OutlookEventSourceVersion", 'DateTime'>
    readonly fetchedAt: FieldRef<"OutlookEventSourceVersion", 'DateTime'>
    readonly etag: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly payloadHash: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly attendeesCount: FieldRef<"OutlookEventSourceVersion", 'Int'>
    readonly attendeesRequiredCount: FieldRef<"OutlookEventSourceVersion", 'Int'>
    readonly attendeesOptionalCount: FieldRef<"OutlookEventSourceVersion", 'Int'>
    readonly attendeesResourceCount: FieldRef<"OutlookEventSourceVersion", 'Int'>
    readonly organizerEmail: FieldRef<"OutlookEventSourceVersion", 'String'>
    readonly startTime: FieldRef<"OutlookEventSourceVersion", 'DateTime'>
    readonly endTime: FieldRef<"OutlookEventSourceVersion", 'DateTime'>
    readonly isCancelled: FieldRef<"OutlookEventSourceVersion", 'Boolean'>
    readonly rawPayload: FieldRef<"OutlookEventSourceVersion", 'Json'>
    readonly normalizedPayload: FieldRef<"OutlookEventSourceVersion", 'Json'>
    readonly createdAt: FieldRef<"OutlookEventSourceVersion", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookEventSourceVersion findUnique
   */
  export type OutlookEventSourceVersionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSourceVersion to fetch.
     */
    where: OutlookEventSourceVersionWhereUniqueInput
  }

  /**
   * OutlookEventSourceVersion findUniqueOrThrow
   */
  export type OutlookEventSourceVersionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSourceVersion to fetch.
     */
    where: OutlookEventSourceVersionWhereUniqueInput
  }

  /**
   * OutlookEventSourceVersion findFirst
   */
  export type OutlookEventSourceVersionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSourceVersion to fetch.
     */
    where?: OutlookEventSourceVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSourceVersions to fetch.
     */
    orderBy?: OutlookEventSourceVersionOrderByWithRelationInput | OutlookEventSourceVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookEventSourceVersions.
     */
    cursor?: OutlookEventSourceVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSourceVersions 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` OutlookEventSourceVersions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookEventSourceVersions.
     */
    distinct?: OutlookEventSourceVersionScalarFieldEnum | OutlookEventSourceVersionScalarFieldEnum[]
  }

  /**
   * OutlookEventSourceVersion findFirstOrThrow
   */
  export type OutlookEventSourceVersionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSourceVersion to fetch.
     */
    where?: OutlookEventSourceVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSourceVersions to fetch.
     */
    orderBy?: OutlookEventSourceVersionOrderByWithRelationInput | OutlookEventSourceVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookEventSourceVersions.
     */
    cursor?: OutlookEventSourceVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSourceVersions 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` OutlookEventSourceVersions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookEventSourceVersions.
     */
    distinct?: OutlookEventSourceVersionScalarFieldEnum | OutlookEventSourceVersionScalarFieldEnum[]
  }

  /**
   * OutlookEventSourceVersion findMany
   */
  export type OutlookEventSourceVersionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSourceVersions to fetch.
     */
    where?: OutlookEventSourceVersionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSourceVersions to fetch.
     */
    orderBy?: OutlookEventSourceVersionOrderByWithRelationInput | OutlookEventSourceVersionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookEventSourceVersions.
     */
    cursor?: OutlookEventSourceVersionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSourceVersions 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` OutlookEventSourceVersions.
     */
    skip?: number
    distinct?: OutlookEventSourceVersionScalarFieldEnum | OutlookEventSourceVersionScalarFieldEnum[]
  }

  /**
   * OutlookEventSourceVersion create
   */
  export type OutlookEventSourceVersionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookEventSourceVersion.
     */
    data: XOR<OutlookEventSourceVersionCreateInput, OutlookEventSourceVersionUncheckedCreateInput>
  }

  /**
   * OutlookEventSourceVersion createMany
   */
  export type OutlookEventSourceVersionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookEventSourceVersions.
     */
    data: OutlookEventSourceVersionCreateManyInput | OutlookEventSourceVersionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookEventSourceVersion createManyAndReturn
   */
  export type OutlookEventSourceVersionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookEventSourceVersions.
     */
    data: OutlookEventSourceVersionCreateManyInput | OutlookEventSourceVersionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookEventSourceVersion update
   */
  export type OutlookEventSourceVersionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookEventSourceVersion.
     */
    data: XOR<OutlookEventSourceVersionUpdateInput, OutlookEventSourceVersionUncheckedUpdateInput>
    /**
     * Choose, which OutlookEventSourceVersion to update.
     */
    where: OutlookEventSourceVersionWhereUniqueInput
  }

  /**
   * OutlookEventSourceVersion updateMany
   */
  export type OutlookEventSourceVersionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookEventSourceVersions.
     */
    data: XOR<OutlookEventSourceVersionUpdateManyMutationInput, OutlookEventSourceVersionUncheckedUpdateManyInput>
    /**
     * Filter which OutlookEventSourceVersions to update
     */
    where?: OutlookEventSourceVersionWhereInput
    /**
     * Limit how many OutlookEventSourceVersions to update.
     */
    limit?: number
  }

  /**
   * OutlookEventSourceVersion updateManyAndReturn
   */
  export type OutlookEventSourceVersionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * The data used to update OutlookEventSourceVersions.
     */
    data: XOR<OutlookEventSourceVersionUpdateManyMutationInput, OutlookEventSourceVersionUncheckedUpdateManyInput>
    /**
     * Filter which OutlookEventSourceVersions to update
     */
    where?: OutlookEventSourceVersionWhereInput
    /**
     * Limit how many OutlookEventSourceVersions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookEventSourceVersion upsert
   */
  export type OutlookEventSourceVersionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookEventSourceVersion to update in case it exists.
     */
    where: OutlookEventSourceVersionWhereUniqueInput
    /**
     * In case the OutlookEventSourceVersion found by the `where` argument doesn't exist, create a new OutlookEventSourceVersion with this data.
     */
    create: XOR<OutlookEventSourceVersionCreateInput, OutlookEventSourceVersionUncheckedCreateInput>
    /**
     * In case the OutlookEventSourceVersion was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookEventSourceVersionUpdateInput, OutlookEventSourceVersionUncheckedUpdateInput>
  }

  /**
   * OutlookEventSourceVersion delete
   */
  export type OutlookEventSourceVersionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    /**
     * Filter which OutlookEventSourceVersion to delete.
     */
    where: OutlookEventSourceVersionWhereUniqueInput
  }

  /**
   * OutlookEventSourceVersion deleteMany
   */
  export type OutlookEventSourceVersionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookEventSourceVersions to delete
     */
    where?: OutlookEventSourceVersionWhereInput
    /**
     * Limit how many OutlookEventSourceVersions to delete.
     */
    limit?: number
  }

  /**
   * OutlookEventSourceVersion.diffsAsCurrent
   */
  export type OutlookEventSourceVersion$diffsAsCurrentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    where?: OutlookEventSyncDiffWhereInput
    orderBy?: OutlookEventSyncDiffOrderByWithRelationInput | OutlookEventSyncDiffOrderByWithRelationInput[]
    cursor?: OutlookEventSyncDiffWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookEventSyncDiffScalarFieldEnum | OutlookEventSyncDiffScalarFieldEnum[]
  }

  /**
   * OutlookEventSourceVersion.diffsAsPrevious
   */
  export type OutlookEventSourceVersion$diffsAsPreviousArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    where?: OutlookEventSyncDiffWhereInput
    orderBy?: OutlookEventSyncDiffOrderByWithRelationInput | OutlookEventSyncDiffOrderByWithRelationInput[]
    cursor?: OutlookEventSyncDiffWhereUniqueInput
    take?: number
    skip?: number
    distinct?: OutlookEventSyncDiffScalarFieldEnum | OutlookEventSyncDiffScalarFieldEnum[]
  }

  /**
   * OutlookEventSourceVersion without action
   */
  export type OutlookEventSourceVersionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
  }


  /**
   * Model OutlookEventSyncDiff
   */

  export type AggregateOutlookEventSyncDiff = {
    _count: OutlookEventSyncDiffCountAggregateOutputType | null
    _avg: OutlookEventSyncDiffAvgAggregateOutputType | null
    _sum: OutlookEventSyncDiffSumAggregateOutputType | null
    _min: OutlookEventSyncDiffMinAggregateOutputType | null
    _max: OutlookEventSyncDiffMaxAggregateOutputType | null
  }

  export type OutlookEventSyncDiffAvgAggregateOutputType = {
    graphAttendeesCountBefore: number | null
    graphAttendeesCountAfter: number | null
    internalMatchedCountBefore: number | null
    internalMatchedCountAfter: number | null
    meetingRequiredCountBefore: number | null
    meetingRequiredCountAfter: number | null
  }

  export type OutlookEventSyncDiffSumAggregateOutputType = {
    graphAttendeesCountBefore: number | null
    graphAttendeesCountAfter: number | null
    internalMatchedCountBefore: number | null
    internalMatchedCountAfter: number | null
    meetingRequiredCountBefore: number | null
    meetingRequiredCountAfter: number | null
  }

  export type OutlookEventSyncDiffMinAggregateOutputType = {
    id: string | null
    bindingId: string | null
    sourceVersionId: string | null
    previousSourceVersionId: string | null
    detectedAt: Date | null
    diffType: string | null
    graphAttendeesCountBefore: number | null
    graphAttendeesCountAfter: number | null
    internalMatchedCountBefore: number | null
    internalMatchedCountAfter: number | null
    meetingRequiredCountBefore: number | null
    meetingRequiredCountAfter: number | null
    createdAt: Date | null
  }

  export type OutlookEventSyncDiffMaxAggregateOutputType = {
    id: string | null
    bindingId: string | null
    sourceVersionId: string | null
    previousSourceVersionId: string | null
    detectedAt: Date | null
    diffType: string | null
    graphAttendeesCountBefore: number | null
    graphAttendeesCountAfter: number | null
    internalMatchedCountBefore: number | null
    internalMatchedCountAfter: number | null
    meetingRequiredCountBefore: number | null
    meetingRequiredCountAfter: number | null
    createdAt: Date | null
  }

  export type OutlookEventSyncDiffCountAggregateOutputType = {
    id: number
    bindingId: number
    sourceVersionId: number
    previousSourceVersionId: number
    detectedAt: number
    diffType: number
    changedFields: number
    summaryJson: number
    attendeesAdded: number
    attendeesRemoved: number
    attendeesResponseChanged: number
    graphAttendeesCountBefore: number
    graphAttendeesCountAfter: number
    internalMatchedCountBefore: number
    internalMatchedCountAfter: number
    meetingRequiredCountBefore: number
    meetingRequiredCountAfter: number
    createdAt: number
    _all: number
  }


  export type OutlookEventSyncDiffAvgAggregateInputType = {
    graphAttendeesCountBefore?: true
    graphAttendeesCountAfter?: true
    internalMatchedCountBefore?: true
    internalMatchedCountAfter?: true
    meetingRequiredCountBefore?: true
    meetingRequiredCountAfter?: true
  }

  export type OutlookEventSyncDiffSumAggregateInputType = {
    graphAttendeesCountBefore?: true
    graphAttendeesCountAfter?: true
    internalMatchedCountBefore?: true
    internalMatchedCountAfter?: true
    meetingRequiredCountBefore?: true
    meetingRequiredCountAfter?: true
  }

  export type OutlookEventSyncDiffMinAggregateInputType = {
    id?: true
    bindingId?: true
    sourceVersionId?: true
    previousSourceVersionId?: true
    detectedAt?: true
    diffType?: true
    graphAttendeesCountBefore?: true
    graphAttendeesCountAfter?: true
    internalMatchedCountBefore?: true
    internalMatchedCountAfter?: true
    meetingRequiredCountBefore?: true
    meetingRequiredCountAfter?: true
    createdAt?: true
  }

  export type OutlookEventSyncDiffMaxAggregateInputType = {
    id?: true
    bindingId?: true
    sourceVersionId?: true
    previousSourceVersionId?: true
    detectedAt?: true
    diffType?: true
    graphAttendeesCountBefore?: true
    graphAttendeesCountAfter?: true
    internalMatchedCountBefore?: true
    internalMatchedCountAfter?: true
    meetingRequiredCountBefore?: true
    meetingRequiredCountAfter?: true
    createdAt?: true
  }

  export type OutlookEventSyncDiffCountAggregateInputType = {
    id?: true
    bindingId?: true
    sourceVersionId?: true
    previousSourceVersionId?: true
    detectedAt?: true
    diffType?: true
    changedFields?: true
    summaryJson?: true
    attendeesAdded?: true
    attendeesRemoved?: true
    attendeesResponseChanged?: true
    graphAttendeesCountBefore?: true
    graphAttendeesCountAfter?: true
    internalMatchedCountBefore?: true
    internalMatchedCountAfter?: true
    meetingRequiredCountBefore?: true
    meetingRequiredCountAfter?: true
    createdAt?: true
    _all?: true
  }

  export type OutlookEventSyncDiffAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookEventSyncDiff to aggregate.
     */
    where?: OutlookEventSyncDiffWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSyncDiffs to fetch.
     */
    orderBy?: OutlookEventSyncDiffOrderByWithRelationInput | OutlookEventSyncDiffOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookEventSyncDiffWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSyncDiffs 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` OutlookEventSyncDiffs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookEventSyncDiffs
    **/
    _count?: true | OutlookEventSyncDiffCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: OutlookEventSyncDiffAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: OutlookEventSyncDiffSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookEventSyncDiffMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookEventSyncDiffMaxAggregateInputType
  }

  export type GetOutlookEventSyncDiffAggregateType<T extends OutlookEventSyncDiffAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookEventSyncDiff]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookEventSyncDiff[P]>
      : GetScalarType<T[P], AggregateOutlookEventSyncDiff[P]>
  }




  export type OutlookEventSyncDiffGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSyncDiffWhereInput
    orderBy?: OutlookEventSyncDiffOrderByWithAggregationInput | OutlookEventSyncDiffOrderByWithAggregationInput[]
    by: OutlookEventSyncDiffScalarFieldEnum[] | OutlookEventSyncDiffScalarFieldEnum
    having?: OutlookEventSyncDiffScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookEventSyncDiffCountAggregateInputType | true
    _avg?: OutlookEventSyncDiffAvgAggregateInputType
    _sum?: OutlookEventSyncDiffSumAggregateInputType
    _min?: OutlookEventSyncDiffMinAggregateInputType
    _max?: OutlookEventSyncDiffMaxAggregateInputType
  }

  export type OutlookEventSyncDiffGroupByOutputType = {
    id: string
    bindingId: string
    sourceVersionId: string
    previousSourceVersionId: string | null
    detectedAt: Date
    diffType: string
    changedFields: JsonValue
    summaryJson: JsonValue
    attendeesAdded: JsonValue | null
    attendeesRemoved: JsonValue | null
    attendeesResponseChanged: JsonValue | null
    graphAttendeesCountBefore: number | null
    graphAttendeesCountAfter: number | null
    internalMatchedCountBefore: number | null
    internalMatchedCountAfter: number | null
    meetingRequiredCountBefore: number | null
    meetingRequiredCountAfter: number | null
    createdAt: Date
    _count: OutlookEventSyncDiffCountAggregateOutputType | null
    _avg: OutlookEventSyncDiffAvgAggregateOutputType | null
    _sum: OutlookEventSyncDiffSumAggregateOutputType | null
    _min: OutlookEventSyncDiffMinAggregateOutputType | null
    _max: OutlookEventSyncDiffMaxAggregateOutputType | null
  }

  type GetOutlookEventSyncDiffGroupByPayload<T extends OutlookEventSyncDiffGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookEventSyncDiffGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookEventSyncDiffGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookEventSyncDiffGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookEventSyncDiffGroupByOutputType[P]>
        }
      >
    >


  export type OutlookEventSyncDiffSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    sourceVersionId?: boolean
    previousSourceVersionId?: boolean
    detectedAt?: boolean
    diffType?: boolean
    changedFields?: boolean
    summaryJson?: boolean
    attendeesAdded?: boolean
    attendeesRemoved?: boolean
    attendeesResponseChanged?: boolean
    graphAttendeesCountBefore?: boolean
    graphAttendeesCountAfter?: boolean
    internalMatchedCountBefore?: boolean
    internalMatchedCountAfter?: boolean
    meetingRequiredCountBefore?: boolean
    meetingRequiredCountAfter?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    sourceVersion?: boolean | OutlookEventSourceVersionDefaultArgs<ExtArgs>
    previousSourceVersion?: boolean | OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSyncDiff"]>

  export type OutlookEventSyncDiffSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    sourceVersionId?: boolean
    previousSourceVersionId?: boolean
    detectedAt?: boolean
    diffType?: boolean
    changedFields?: boolean
    summaryJson?: boolean
    attendeesAdded?: boolean
    attendeesRemoved?: boolean
    attendeesResponseChanged?: boolean
    graphAttendeesCountBefore?: boolean
    graphAttendeesCountAfter?: boolean
    internalMatchedCountBefore?: boolean
    internalMatchedCountAfter?: boolean
    meetingRequiredCountBefore?: boolean
    meetingRequiredCountAfter?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    sourceVersion?: boolean | OutlookEventSourceVersionDefaultArgs<ExtArgs>
    previousSourceVersion?: boolean | OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSyncDiff"]>

  export type OutlookEventSyncDiffSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    bindingId?: boolean
    sourceVersionId?: boolean
    previousSourceVersionId?: boolean
    detectedAt?: boolean
    diffType?: boolean
    changedFields?: boolean
    summaryJson?: boolean
    attendeesAdded?: boolean
    attendeesRemoved?: boolean
    attendeesResponseChanged?: boolean
    graphAttendeesCountBefore?: boolean
    graphAttendeesCountAfter?: boolean
    internalMatchedCountBefore?: boolean
    internalMatchedCountAfter?: boolean
    meetingRequiredCountBefore?: boolean
    meetingRequiredCountAfter?: boolean
    createdAt?: boolean
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    sourceVersion?: boolean | OutlookEventSourceVersionDefaultArgs<ExtArgs>
    previousSourceVersion?: boolean | OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSyncDiff"]>

  export type OutlookEventSyncDiffSelectScalar = {
    id?: boolean
    bindingId?: boolean
    sourceVersionId?: boolean
    previousSourceVersionId?: boolean
    detectedAt?: boolean
    diffType?: boolean
    changedFields?: boolean
    summaryJson?: boolean
    attendeesAdded?: boolean
    attendeesRemoved?: boolean
    attendeesResponseChanged?: boolean
    graphAttendeesCountBefore?: boolean
    graphAttendeesCountAfter?: boolean
    internalMatchedCountBefore?: boolean
    internalMatchedCountAfter?: boolean
    meetingRequiredCountBefore?: boolean
    meetingRequiredCountAfter?: boolean
    createdAt?: boolean
  }

  export type OutlookEventSyncDiffOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "bindingId" | "sourceVersionId" | "previousSourceVersionId" | "detectedAt" | "diffType" | "changedFields" | "summaryJson" | "attendeesAdded" | "attendeesRemoved" | "attendeesResponseChanged" | "graphAttendeesCountBefore" | "graphAttendeesCountAfter" | "internalMatchedCountBefore" | "internalMatchedCountAfter" | "meetingRequiredCountBefore" | "meetingRequiredCountAfter" | "createdAt", ExtArgs["result"]["outlookEventSyncDiff"]>
  export type OutlookEventSyncDiffInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    sourceVersion?: boolean | OutlookEventSourceVersionDefaultArgs<ExtArgs>
    previousSourceVersion?: boolean | OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs>
  }
  export type OutlookEventSyncDiffIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    sourceVersion?: boolean | OutlookEventSourceVersionDefaultArgs<ExtArgs>
    previousSourceVersion?: boolean | OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs>
  }
  export type OutlookEventSyncDiffIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    binding?: boolean | OutlookMeetingBindingDefaultArgs<ExtArgs>
    sourceVersion?: boolean | OutlookEventSourceVersionDefaultArgs<ExtArgs>
    previousSourceVersion?: boolean | OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs>
  }

  export type $OutlookEventSyncDiffPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookEventSyncDiff"
    objects: {
      binding: Prisma.$OutlookMeetingBindingPayload<ExtArgs>
      sourceVersion: Prisma.$OutlookEventSourceVersionPayload<ExtArgs>
      previousSourceVersion: Prisma.$OutlookEventSourceVersionPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      bindingId: string
      sourceVersionId: string
      previousSourceVersionId: string | null
      detectedAt: Date
      diffType: string
      changedFields: Prisma.JsonValue
      summaryJson: Prisma.JsonValue
      attendeesAdded: Prisma.JsonValue | null
      attendeesRemoved: Prisma.JsonValue | null
      attendeesResponseChanged: Prisma.JsonValue | null
      graphAttendeesCountBefore: number | null
      graphAttendeesCountAfter: number | null
      internalMatchedCountBefore: number | null
      internalMatchedCountAfter: number | null
      meetingRequiredCountBefore: number | null
      meetingRequiredCountAfter: number | null
      createdAt: Date
    }, ExtArgs["result"]["outlookEventSyncDiff"]>
    composites: {}
  }

  type OutlookEventSyncDiffGetPayload<S extends boolean | null | undefined | OutlookEventSyncDiffDefaultArgs> = $Result.GetResult<Prisma.$OutlookEventSyncDiffPayload, S>

  type OutlookEventSyncDiffCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookEventSyncDiffFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookEventSyncDiffCountAggregateInputType | true
    }

  export interface OutlookEventSyncDiffDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookEventSyncDiff'], meta: { name: 'OutlookEventSyncDiff' } }
    /**
     * Find zero or one OutlookEventSyncDiff that matches the filter.
     * @param {OutlookEventSyncDiffFindUniqueArgs} args - Arguments to find a OutlookEventSyncDiff
     * @example
     * // Get one OutlookEventSyncDiff
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookEventSyncDiffFindUniqueArgs>(args: SelectSubset<T, OutlookEventSyncDiffFindUniqueArgs<ExtArgs>>): Prisma__OutlookEventSyncDiffClient<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookEventSyncDiff that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookEventSyncDiffFindUniqueOrThrowArgs} args - Arguments to find a OutlookEventSyncDiff
     * @example
     * // Get one OutlookEventSyncDiff
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookEventSyncDiffFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookEventSyncDiffFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookEventSyncDiffClient<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookEventSyncDiff 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 {OutlookEventSyncDiffFindFirstArgs} args - Arguments to find a OutlookEventSyncDiff
     * @example
     * // Get one OutlookEventSyncDiff
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookEventSyncDiffFindFirstArgs>(args?: SelectSubset<T, OutlookEventSyncDiffFindFirstArgs<ExtArgs>>): Prisma__OutlookEventSyncDiffClient<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookEventSyncDiff 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 {OutlookEventSyncDiffFindFirstOrThrowArgs} args - Arguments to find a OutlookEventSyncDiff
     * @example
     * // Get one OutlookEventSyncDiff
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookEventSyncDiffFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookEventSyncDiffFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookEventSyncDiffClient<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookEventSyncDiffs 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 {OutlookEventSyncDiffFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookEventSyncDiffs
     * const outlookEventSyncDiffs = await prisma.outlookEventSyncDiff.findMany()
     * 
     * // Get first 10 OutlookEventSyncDiffs
     * const outlookEventSyncDiffs = await prisma.outlookEventSyncDiff.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookEventSyncDiffWithIdOnly = await prisma.outlookEventSyncDiff.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookEventSyncDiffFindManyArgs>(args?: SelectSubset<T, OutlookEventSyncDiffFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookEventSyncDiff.
     * @param {OutlookEventSyncDiffCreateArgs} args - Arguments to create a OutlookEventSyncDiff.
     * @example
     * // Create one OutlookEventSyncDiff
     * const OutlookEventSyncDiff = await prisma.outlookEventSyncDiff.create({
     *   data: {
     *     // ... data to create a OutlookEventSyncDiff
     *   }
     * })
     * 
     */
    create<T extends OutlookEventSyncDiffCreateArgs>(args: SelectSubset<T, OutlookEventSyncDiffCreateArgs<ExtArgs>>): Prisma__OutlookEventSyncDiffClient<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookEventSyncDiffs.
     * @param {OutlookEventSyncDiffCreateManyArgs} args - Arguments to create many OutlookEventSyncDiffs.
     * @example
     * // Create many OutlookEventSyncDiffs
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookEventSyncDiffCreateManyArgs>(args?: SelectSubset<T, OutlookEventSyncDiffCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookEventSyncDiffs and returns the data saved in the database.
     * @param {OutlookEventSyncDiffCreateManyAndReturnArgs} args - Arguments to create many OutlookEventSyncDiffs.
     * @example
     * // Create many OutlookEventSyncDiffs
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookEventSyncDiffs and only return the `id`
     * const outlookEventSyncDiffWithIdOnly = await prisma.outlookEventSyncDiff.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 OutlookEventSyncDiffCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookEventSyncDiffCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookEventSyncDiff.
     * @param {OutlookEventSyncDiffDeleteArgs} args - Arguments to delete one OutlookEventSyncDiff.
     * @example
     * // Delete one OutlookEventSyncDiff
     * const OutlookEventSyncDiff = await prisma.outlookEventSyncDiff.delete({
     *   where: {
     *     // ... filter to delete one OutlookEventSyncDiff
     *   }
     * })
     * 
     */
    delete<T extends OutlookEventSyncDiffDeleteArgs>(args: SelectSubset<T, OutlookEventSyncDiffDeleteArgs<ExtArgs>>): Prisma__OutlookEventSyncDiffClient<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookEventSyncDiff.
     * @param {OutlookEventSyncDiffUpdateArgs} args - Arguments to update one OutlookEventSyncDiff.
     * @example
     * // Update one OutlookEventSyncDiff
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookEventSyncDiffUpdateArgs>(args: SelectSubset<T, OutlookEventSyncDiffUpdateArgs<ExtArgs>>): Prisma__OutlookEventSyncDiffClient<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookEventSyncDiffs.
     * @param {OutlookEventSyncDiffDeleteManyArgs} args - Arguments to filter OutlookEventSyncDiffs to delete.
     * @example
     * // Delete a few OutlookEventSyncDiffs
     * const { count } = await prisma.outlookEventSyncDiff.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookEventSyncDiffDeleteManyArgs>(args?: SelectSubset<T, OutlookEventSyncDiffDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookEventSyncDiffs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSyncDiffUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookEventSyncDiffs
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookEventSyncDiffUpdateManyArgs>(args: SelectSubset<T, OutlookEventSyncDiffUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookEventSyncDiffs and returns the data updated in the database.
     * @param {OutlookEventSyncDiffUpdateManyAndReturnArgs} args - Arguments to update many OutlookEventSyncDiffs.
     * @example
     * // Update many OutlookEventSyncDiffs
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookEventSyncDiffs and only return the `id`
     * const outlookEventSyncDiffWithIdOnly = await prisma.outlookEventSyncDiff.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 OutlookEventSyncDiffUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookEventSyncDiffUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookEventSyncDiff.
     * @param {OutlookEventSyncDiffUpsertArgs} args - Arguments to update or create a OutlookEventSyncDiff.
     * @example
     * // Update or create a OutlookEventSyncDiff
     * const outlookEventSyncDiff = await prisma.outlookEventSyncDiff.upsert({
     *   create: {
     *     // ... data to create a OutlookEventSyncDiff
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookEventSyncDiff we want to update
     *   }
     * })
     */
    upsert<T extends OutlookEventSyncDiffUpsertArgs>(args: SelectSubset<T, OutlookEventSyncDiffUpsertArgs<ExtArgs>>): Prisma__OutlookEventSyncDiffClient<$Result.GetResult<Prisma.$OutlookEventSyncDiffPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookEventSyncDiffs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSyncDiffCountArgs} args - Arguments to filter OutlookEventSyncDiffs to count.
     * @example
     * // Count the number of OutlookEventSyncDiffs
     * const count = await prisma.outlookEventSyncDiff.count({
     *   where: {
     *     // ... the filter for the OutlookEventSyncDiffs we want to count
     *   }
     * })
    **/
    count<T extends OutlookEventSyncDiffCountArgs>(
      args?: Subset<T, OutlookEventSyncDiffCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookEventSyncDiffCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookEventSyncDiff.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSyncDiffAggregateArgs} 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 OutlookEventSyncDiffAggregateArgs>(args: Subset<T, OutlookEventSyncDiffAggregateArgs>): Prisma.PrismaPromise<GetOutlookEventSyncDiffAggregateType<T>>

    /**
     * Group by OutlookEventSyncDiff.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSyncDiffGroupByArgs} 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 OutlookEventSyncDiffGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookEventSyncDiffGroupByArgs['orderBy'] }
        : { orderBy?: OutlookEventSyncDiffGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookEventSyncDiffGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookEventSyncDiffGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookEventSyncDiff model
   */
  readonly fields: OutlookEventSyncDiffFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookEventSyncDiff.
   * 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__OutlookEventSyncDiffClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    binding<T extends OutlookMeetingBindingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookMeetingBindingDefaultArgs<ExtArgs>>): Prisma__OutlookMeetingBindingClient<$Result.GetResult<Prisma.$OutlookMeetingBindingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    sourceVersion<T extends OutlookEventSourceVersionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookEventSourceVersionDefaultArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    previousSourceVersion<T extends OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs> = {}>(args?: Subset<T, OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs>>): Prisma__OutlookEventSourceVersionClient<$Result.GetResult<Prisma.$OutlookEventSourceVersionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookEventSyncDiff model
   */
  interface OutlookEventSyncDiffFieldRefs {
    readonly id: FieldRef<"OutlookEventSyncDiff", 'String'>
    readonly bindingId: FieldRef<"OutlookEventSyncDiff", 'String'>
    readonly sourceVersionId: FieldRef<"OutlookEventSyncDiff", 'String'>
    readonly previousSourceVersionId: FieldRef<"OutlookEventSyncDiff", 'String'>
    readonly detectedAt: FieldRef<"OutlookEventSyncDiff", 'DateTime'>
    readonly diffType: FieldRef<"OutlookEventSyncDiff", 'String'>
    readonly changedFields: FieldRef<"OutlookEventSyncDiff", 'Json'>
    readonly summaryJson: FieldRef<"OutlookEventSyncDiff", 'Json'>
    readonly attendeesAdded: FieldRef<"OutlookEventSyncDiff", 'Json'>
    readonly attendeesRemoved: FieldRef<"OutlookEventSyncDiff", 'Json'>
    readonly attendeesResponseChanged: FieldRef<"OutlookEventSyncDiff", 'Json'>
    readonly graphAttendeesCountBefore: FieldRef<"OutlookEventSyncDiff", 'Int'>
    readonly graphAttendeesCountAfter: FieldRef<"OutlookEventSyncDiff", 'Int'>
    readonly internalMatchedCountBefore: FieldRef<"OutlookEventSyncDiff", 'Int'>
    readonly internalMatchedCountAfter: FieldRef<"OutlookEventSyncDiff", 'Int'>
    readonly meetingRequiredCountBefore: FieldRef<"OutlookEventSyncDiff", 'Int'>
    readonly meetingRequiredCountAfter: FieldRef<"OutlookEventSyncDiff", 'Int'>
    readonly createdAt: FieldRef<"OutlookEventSyncDiff", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookEventSyncDiff findUnique
   */
  export type OutlookEventSyncDiffFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSyncDiff to fetch.
     */
    where: OutlookEventSyncDiffWhereUniqueInput
  }

  /**
   * OutlookEventSyncDiff findUniqueOrThrow
   */
  export type OutlookEventSyncDiffFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSyncDiff to fetch.
     */
    where: OutlookEventSyncDiffWhereUniqueInput
  }

  /**
   * OutlookEventSyncDiff findFirst
   */
  export type OutlookEventSyncDiffFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSyncDiff to fetch.
     */
    where?: OutlookEventSyncDiffWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSyncDiffs to fetch.
     */
    orderBy?: OutlookEventSyncDiffOrderByWithRelationInput | OutlookEventSyncDiffOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookEventSyncDiffs.
     */
    cursor?: OutlookEventSyncDiffWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSyncDiffs 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` OutlookEventSyncDiffs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookEventSyncDiffs.
     */
    distinct?: OutlookEventSyncDiffScalarFieldEnum | OutlookEventSyncDiffScalarFieldEnum[]
  }

  /**
   * OutlookEventSyncDiff findFirstOrThrow
   */
  export type OutlookEventSyncDiffFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSyncDiff to fetch.
     */
    where?: OutlookEventSyncDiffWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSyncDiffs to fetch.
     */
    orderBy?: OutlookEventSyncDiffOrderByWithRelationInput | OutlookEventSyncDiffOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookEventSyncDiffs.
     */
    cursor?: OutlookEventSyncDiffWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSyncDiffs 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` OutlookEventSyncDiffs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookEventSyncDiffs.
     */
    distinct?: OutlookEventSyncDiffScalarFieldEnum | OutlookEventSyncDiffScalarFieldEnum[]
  }

  /**
   * OutlookEventSyncDiff findMany
   */
  export type OutlookEventSyncDiffFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSyncDiffs to fetch.
     */
    where?: OutlookEventSyncDiffWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSyncDiffs to fetch.
     */
    orderBy?: OutlookEventSyncDiffOrderByWithRelationInput | OutlookEventSyncDiffOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookEventSyncDiffs.
     */
    cursor?: OutlookEventSyncDiffWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSyncDiffs 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` OutlookEventSyncDiffs.
     */
    skip?: number
    distinct?: OutlookEventSyncDiffScalarFieldEnum | OutlookEventSyncDiffScalarFieldEnum[]
  }

  /**
   * OutlookEventSyncDiff create
   */
  export type OutlookEventSyncDiffCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookEventSyncDiff.
     */
    data: XOR<OutlookEventSyncDiffCreateInput, OutlookEventSyncDiffUncheckedCreateInput>
  }

  /**
   * OutlookEventSyncDiff createMany
   */
  export type OutlookEventSyncDiffCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookEventSyncDiffs.
     */
    data: OutlookEventSyncDiffCreateManyInput | OutlookEventSyncDiffCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookEventSyncDiff createManyAndReturn
   */
  export type OutlookEventSyncDiffCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookEventSyncDiffs.
     */
    data: OutlookEventSyncDiffCreateManyInput | OutlookEventSyncDiffCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookEventSyncDiff update
   */
  export type OutlookEventSyncDiffUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookEventSyncDiff.
     */
    data: XOR<OutlookEventSyncDiffUpdateInput, OutlookEventSyncDiffUncheckedUpdateInput>
    /**
     * Choose, which OutlookEventSyncDiff to update.
     */
    where: OutlookEventSyncDiffWhereUniqueInput
  }

  /**
   * OutlookEventSyncDiff updateMany
   */
  export type OutlookEventSyncDiffUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookEventSyncDiffs.
     */
    data: XOR<OutlookEventSyncDiffUpdateManyMutationInput, OutlookEventSyncDiffUncheckedUpdateManyInput>
    /**
     * Filter which OutlookEventSyncDiffs to update
     */
    where?: OutlookEventSyncDiffWhereInput
    /**
     * Limit how many OutlookEventSyncDiffs to update.
     */
    limit?: number
  }

  /**
   * OutlookEventSyncDiff updateManyAndReturn
   */
  export type OutlookEventSyncDiffUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * The data used to update OutlookEventSyncDiffs.
     */
    data: XOR<OutlookEventSyncDiffUpdateManyMutationInput, OutlookEventSyncDiffUncheckedUpdateManyInput>
    /**
     * Filter which OutlookEventSyncDiffs to update
     */
    where?: OutlookEventSyncDiffWhereInput
    /**
     * Limit how many OutlookEventSyncDiffs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookEventSyncDiff upsert
   */
  export type OutlookEventSyncDiffUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookEventSyncDiff to update in case it exists.
     */
    where: OutlookEventSyncDiffWhereUniqueInput
    /**
     * In case the OutlookEventSyncDiff found by the `where` argument doesn't exist, create a new OutlookEventSyncDiff with this data.
     */
    create: XOR<OutlookEventSyncDiffCreateInput, OutlookEventSyncDiffUncheckedCreateInput>
    /**
     * In case the OutlookEventSyncDiff was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookEventSyncDiffUpdateInput, OutlookEventSyncDiffUncheckedUpdateInput>
  }

  /**
   * OutlookEventSyncDiff delete
   */
  export type OutlookEventSyncDiffDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
    /**
     * Filter which OutlookEventSyncDiff to delete.
     */
    where: OutlookEventSyncDiffWhereUniqueInput
  }

  /**
   * OutlookEventSyncDiff deleteMany
   */
  export type OutlookEventSyncDiffDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookEventSyncDiffs to delete
     */
    where?: OutlookEventSyncDiffWhereInput
    /**
     * Limit how many OutlookEventSyncDiffs to delete.
     */
    limit?: number
  }

  /**
   * OutlookEventSyncDiff.previousSourceVersion
   */
  export type OutlookEventSyncDiff$previousSourceVersionArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSourceVersion
     */
    select?: OutlookEventSourceVersionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSourceVersion
     */
    omit?: OutlookEventSourceVersionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSourceVersionInclude<ExtArgs> | null
    where?: OutlookEventSourceVersionWhereInput
  }

  /**
   * OutlookEventSyncDiff without action
   */
  export type OutlookEventSyncDiffDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSyncDiff
     */
    select?: OutlookEventSyncDiffSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSyncDiff
     */
    omit?: OutlookEventSyncDiffOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSyncDiffInclude<ExtArgs> | null
  }


  /**
   * Model OutlookSyncCursor
   */

  export type AggregateOutlookSyncCursor = {
    _count: OutlookSyncCursorCountAggregateOutputType | null
    _min: OutlookSyncCursorMinAggregateOutputType | null
    _max: OutlookSyncCursorMaxAggregateOutputType | null
  }

  export type OutlookSyncCursorMinAggregateOutputType = {
    id: string | null
    mailboxId: string | null
    deltaToken: string | null
    lastSyncedAt: Date | null
    lastReconciledAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSyncCursorMaxAggregateOutputType = {
    id: string | null
    mailboxId: string | null
    deltaToken: string | null
    lastSyncedAt: Date | null
    lastReconciledAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSyncCursorCountAggregateOutputType = {
    id: number
    mailboxId: number
    deltaToken: number
    lastSyncedAt: number
    lastReconciledAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type OutlookSyncCursorMinAggregateInputType = {
    id?: true
    mailboxId?: true
    deltaToken?: true
    lastSyncedAt?: true
    lastReconciledAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSyncCursorMaxAggregateInputType = {
    id?: true
    mailboxId?: true
    deltaToken?: true
    lastSyncedAt?: true
    lastReconciledAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSyncCursorCountAggregateInputType = {
    id?: true
    mailboxId?: true
    deltaToken?: true
    lastSyncedAt?: true
    lastReconciledAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type OutlookSyncCursorAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSyncCursor to aggregate.
     */
    where?: OutlookSyncCursorWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncCursors to fetch.
     */
    orderBy?: OutlookSyncCursorOrderByWithRelationInput | OutlookSyncCursorOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookSyncCursorWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncCursors 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` OutlookSyncCursors.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookSyncCursors
    **/
    _count?: true | OutlookSyncCursorCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookSyncCursorMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookSyncCursorMaxAggregateInputType
  }

  export type GetOutlookSyncCursorAggregateType<T extends OutlookSyncCursorAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookSyncCursor]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookSyncCursor[P]>
      : GetScalarType<T[P], AggregateOutlookSyncCursor[P]>
  }




  export type OutlookSyncCursorGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSyncCursorWhereInput
    orderBy?: OutlookSyncCursorOrderByWithAggregationInput | OutlookSyncCursorOrderByWithAggregationInput[]
    by: OutlookSyncCursorScalarFieldEnum[] | OutlookSyncCursorScalarFieldEnum
    having?: OutlookSyncCursorScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookSyncCursorCountAggregateInputType | true
    _min?: OutlookSyncCursorMinAggregateInputType
    _max?: OutlookSyncCursorMaxAggregateInputType
  }

  export type OutlookSyncCursorGroupByOutputType = {
    id: string
    mailboxId: string
    deltaToken: string
    lastSyncedAt: Date | null
    lastReconciledAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: OutlookSyncCursorCountAggregateOutputType | null
    _min: OutlookSyncCursorMinAggregateOutputType | null
    _max: OutlookSyncCursorMaxAggregateOutputType | null
  }

  type GetOutlookSyncCursorGroupByPayload<T extends OutlookSyncCursorGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookSyncCursorGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookSyncCursorGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookSyncCursorGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookSyncCursorGroupByOutputType[P]>
        }
      >
    >


  export type OutlookSyncCursorSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    deltaToken?: boolean
    lastSyncedAt?: boolean
    lastReconciledAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSyncCursor"]>

  export type OutlookSyncCursorSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    deltaToken?: boolean
    lastSyncedAt?: boolean
    lastReconciledAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSyncCursor"]>

  export type OutlookSyncCursorSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    deltaToken?: boolean
    lastSyncedAt?: boolean
    lastReconciledAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookSyncCursor"]>

  export type OutlookSyncCursorSelectScalar = {
    id?: boolean
    mailboxId?: boolean
    deltaToken?: boolean
    lastSyncedAt?: boolean
    lastReconciledAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type OutlookSyncCursorOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "mailboxId" | "deltaToken" | "lastSyncedAt" | "lastReconciledAt" | "createdAt" | "updatedAt", ExtArgs["result"]["outlookSyncCursor"]>
  export type OutlookSyncCursorInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookSyncCursorIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookSyncCursorIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }

  export type $OutlookSyncCursorPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookSyncCursor"
    objects: {
      mailbox: Prisma.$OutlookSyncMailboxPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      mailboxId: string
      deltaToken: string
      lastSyncedAt: Date | null
      lastReconciledAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["outlookSyncCursor"]>
    composites: {}
  }

  type OutlookSyncCursorGetPayload<S extends boolean | null | undefined | OutlookSyncCursorDefaultArgs> = $Result.GetResult<Prisma.$OutlookSyncCursorPayload, S>

  type OutlookSyncCursorCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookSyncCursorFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookSyncCursorCountAggregateInputType | true
    }

  export interface OutlookSyncCursorDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookSyncCursor'], meta: { name: 'OutlookSyncCursor' } }
    /**
     * Find zero or one OutlookSyncCursor that matches the filter.
     * @param {OutlookSyncCursorFindUniqueArgs} args - Arguments to find a OutlookSyncCursor
     * @example
     * // Get one OutlookSyncCursor
     * const outlookSyncCursor = await prisma.outlookSyncCursor.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookSyncCursorFindUniqueArgs>(args: SelectSubset<T, OutlookSyncCursorFindUniqueArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookSyncCursor that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookSyncCursorFindUniqueOrThrowArgs} args - Arguments to find a OutlookSyncCursor
     * @example
     * // Get one OutlookSyncCursor
     * const outlookSyncCursor = await prisma.outlookSyncCursor.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookSyncCursorFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookSyncCursorFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSyncCursor 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 {OutlookSyncCursorFindFirstArgs} args - Arguments to find a OutlookSyncCursor
     * @example
     * // Get one OutlookSyncCursor
     * const outlookSyncCursor = await prisma.outlookSyncCursor.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookSyncCursorFindFirstArgs>(args?: SelectSubset<T, OutlookSyncCursorFindFirstArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSyncCursor 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 {OutlookSyncCursorFindFirstOrThrowArgs} args - Arguments to find a OutlookSyncCursor
     * @example
     * // Get one OutlookSyncCursor
     * const outlookSyncCursor = await prisma.outlookSyncCursor.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookSyncCursorFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookSyncCursorFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookSyncCursors 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 {OutlookSyncCursorFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookSyncCursors
     * const outlookSyncCursors = await prisma.outlookSyncCursor.findMany()
     * 
     * // Get first 10 OutlookSyncCursors
     * const outlookSyncCursors = await prisma.outlookSyncCursor.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookSyncCursorWithIdOnly = await prisma.outlookSyncCursor.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookSyncCursorFindManyArgs>(args?: SelectSubset<T, OutlookSyncCursorFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookSyncCursor.
     * @param {OutlookSyncCursorCreateArgs} args - Arguments to create a OutlookSyncCursor.
     * @example
     * // Create one OutlookSyncCursor
     * const OutlookSyncCursor = await prisma.outlookSyncCursor.create({
     *   data: {
     *     // ... data to create a OutlookSyncCursor
     *   }
     * })
     * 
     */
    create<T extends OutlookSyncCursorCreateArgs>(args: SelectSubset<T, OutlookSyncCursorCreateArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookSyncCursors.
     * @param {OutlookSyncCursorCreateManyArgs} args - Arguments to create many OutlookSyncCursors.
     * @example
     * // Create many OutlookSyncCursors
     * const outlookSyncCursor = await prisma.outlookSyncCursor.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookSyncCursorCreateManyArgs>(args?: SelectSubset<T, OutlookSyncCursorCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookSyncCursors and returns the data saved in the database.
     * @param {OutlookSyncCursorCreateManyAndReturnArgs} args - Arguments to create many OutlookSyncCursors.
     * @example
     * // Create many OutlookSyncCursors
     * const outlookSyncCursor = await prisma.outlookSyncCursor.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookSyncCursors and only return the `id`
     * const outlookSyncCursorWithIdOnly = await prisma.outlookSyncCursor.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 OutlookSyncCursorCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookSyncCursorCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookSyncCursor.
     * @param {OutlookSyncCursorDeleteArgs} args - Arguments to delete one OutlookSyncCursor.
     * @example
     * // Delete one OutlookSyncCursor
     * const OutlookSyncCursor = await prisma.outlookSyncCursor.delete({
     *   where: {
     *     // ... filter to delete one OutlookSyncCursor
     *   }
     * })
     * 
     */
    delete<T extends OutlookSyncCursorDeleteArgs>(args: SelectSubset<T, OutlookSyncCursorDeleteArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookSyncCursor.
     * @param {OutlookSyncCursorUpdateArgs} args - Arguments to update one OutlookSyncCursor.
     * @example
     * // Update one OutlookSyncCursor
     * const outlookSyncCursor = await prisma.outlookSyncCursor.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookSyncCursorUpdateArgs>(args: SelectSubset<T, OutlookSyncCursorUpdateArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookSyncCursors.
     * @param {OutlookSyncCursorDeleteManyArgs} args - Arguments to filter OutlookSyncCursors to delete.
     * @example
     * // Delete a few OutlookSyncCursors
     * const { count } = await prisma.outlookSyncCursor.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookSyncCursorDeleteManyArgs>(args?: SelectSubset<T, OutlookSyncCursorDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSyncCursors.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncCursorUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookSyncCursors
     * const outlookSyncCursor = await prisma.outlookSyncCursor.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookSyncCursorUpdateManyArgs>(args: SelectSubset<T, OutlookSyncCursorUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSyncCursors and returns the data updated in the database.
     * @param {OutlookSyncCursorUpdateManyAndReturnArgs} args - Arguments to update many OutlookSyncCursors.
     * @example
     * // Update many OutlookSyncCursors
     * const outlookSyncCursor = await prisma.outlookSyncCursor.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookSyncCursors and only return the `id`
     * const outlookSyncCursorWithIdOnly = await prisma.outlookSyncCursor.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 OutlookSyncCursorUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookSyncCursorUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookSyncCursor.
     * @param {OutlookSyncCursorUpsertArgs} args - Arguments to update or create a OutlookSyncCursor.
     * @example
     * // Update or create a OutlookSyncCursor
     * const outlookSyncCursor = await prisma.outlookSyncCursor.upsert({
     *   create: {
     *     // ... data to create a OutlookSyncCursor
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookSyncCursor we want to update
     *   }
     * })
     */
    upsert<T extends OutlookSyncCursorUpsertArgs>(args: SelectSubset<T, OutlookSyncCursorUpsertArgs<ExtArgs>>): Prisma__OutlookSyncCursorClient<$Result.GetResult<Prisma.$OutlookSyncCursorPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookSyncCursors.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncCursorCountArgs} args - Arguments to filter OutlookSyncCursors to count.
     * @example
     * // Count the number of OutlookSyncCursors
     * const count = await prisma.outlookSyncCursor.count({
     *   where: {
     *     // ... the filter for the OutlookSyncCursors we want to count
     *   }
     * })
    **/
    count<T extends OutlookSyncCursorCountArgs>(
      args?: Subset<T, OutlookSyncCursorCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookSyncCursorCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookSyncCursor.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncCursorAggregateArgs} 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 OutlookSyncCursorAggregateArgs>(args: Subset<T, OutlookSyncCursorAggregateArgs>): Prisma.PrismaPromise<GetOutlookSyncCursorAggregateType<T>>

    /**
     * Group by OutlookSyncCursor.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncCursorGroupByArgs} 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 OutlookSyncCursorGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookSyncCursorGroupByArgs['orderBy'] }
        : { orderBy?: OutlookSyncCursorGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookSyncCursorGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookSyncCursorGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookSyncCursor model
   */
  readonly fields: OutlookSyncCursorFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookSyncCursor.
   * 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__OutlookSyncCursorClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    mailbox<T extends OutlookSyncMailboxDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailboxDefaultArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookSyncCursor model
   */
  interface OutlookSyncCursorFieldRefs {
    readonly id: FieldRef<"OutlookSyncCursor", 'String'>
    readonly mailboxId: FieldRef<"OutlookSyncCursor", 'String'>
    readonly deltaToken: FieldRef<"OutlookSyncCursor", 'String'>
    readonly lastSyncedAt: FieldRef<"OutlookSyncCursor", 'DateTime'>
    readonly lastReconciledAt: FieldRef<"OutlookSyncCursor", 'DateTime'>
    readonly createdAt: FieldRef<"OutlookSyncCursor", 'DateTime'>
    readonly updatedAt: FieldRef<"OutlookSyncCursor", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookSyncCursor findUnique
   */
  export type OutlookSyncCursorFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncCursor to fetch.
     */
    where: OutlookSyncCursorWhereUniqueInput
  }

  /**
   * OutlookSyncCursor findUniqueOrThrow
   */
  export type OutlookSyncCursorFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncCursor to fetch.
     */
    where: OutlookSyncCursorWhereUniqueInput
  }

  /**
   * OutlookSyncCursor findFirst
   */
  export type OutlookSyncCursorFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncCursor to fetch.
     */
    where?: OutlookSyncCursorWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncCursors to fetch.
     */
    orderBy?: OutlookSyncCursorOrderByWithRelationInput | OutlookSyncCursorOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSyncCursors.
     */
    cursor?: OutlookSyncCursorWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncCursors 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` OutlookSyncCursors.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSyncCursors.
     */
    distinct?: OutlookSyncCursorScalarFieldEnum | OutlookSyncCursorScalarFieldEnum[]
  }

  /**
   * OutlookSyncCursor findFirstOrThrow
   */
  export type OutlookSyncCursorFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncCursor to fetch.
     */
    where?: OutlookSyncCursorWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncCursors to fetch.
     */
    orderBy?: OutlookSyncCursorOrderByWithRelationInput | OutlookSyncCursorOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSyncCursors.
     */
    cursor?: OutlookSyncCursorWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncCursors 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` OutlookSyncCursors.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSyncCursors.
     */
    distinct?: OutlookSyncCursorScalarFieldEnum | OutlookSyncCursorScalarFieldEnum[]
  }

  /**
   * OutlookSyncCursor findMany
   */
  export type OutlookSyncCursorFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * Filter, which OutlookSyncCursors to fetch.
     */
    where?: OutlookSyncCursorWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncCursors to fetch.
     */
    orderBy?: OutlookSyncCursorOrderByWithRelationInput | OutlookSyncCursorOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookSyncCursors.
     */
    cursor?: OutlookSyncCursorWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncCursors 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` OutlookSyncCursors.
     */
    skip?: number
    distinct?: OutlookSyncCursorScalarFieldEnum | OutlookSyncCursorScalarFieldEnum[]
  }

  /**
   * OutlookSyncCursor create
   */
  export type OutlookSyncCursorCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookSyncCursor.
     */
    data: XOR<OutlookSyncCursorCreateInput, OutlookSyncCursorUncheckedCreateInput>
  }

  /**
   * OutlookSyncCursor createMany
   */
  export type OutlookSyncCursorCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookSyncCursors.
     */
    data: OutlookSyncCursorCreateManyInput | OutlookSyncCursorCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookSyncCursor createManyAndReturn
   */
  export type OutlookSyncCursorCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookSyncCursors.
     */
    data: OutlookSyncCursorCreateManyInput | OutlookSyncCursorCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookSyncCursor update
   */
  export type OutlookSyncCursorUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookSyncCursor.
     */
    data: XOR<OutlookSyncCursorUpdateInput, OutlookSyncCursorUncheckedUpdateInput>
    /**
     * Choose, which OutlookSyncCursor to update.
     */
    where: OutlookSyncCursorWhereUniqueInput
  }

  /**
   * OutlookSyncCursor updateMany
   */
  export type OutlookSyncCursorUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookSyncCursors.
     */
    data: XOR<OutlookSyncCursorUpdateManyMutationInput, OutlookSyncCursorUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSyncCursors to update
     */
    where?: OutlookSyncCursorWhereInput
    /**
     * Limit how many OutlookSyncCursors to update.
     */
    limit?: number
  }

  /**
   * OutlookSyncCursor updateManyAndReturn
   */
  export type OutlookSyncCursorUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * The data used to update OutlookSyncCursors.
     */
    data: XOR<OutlookSyncCursorUpdateManyMutationInput, OutlookSyncCursorUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSyncCursors to update
     */
    where?: OutlookSyncCursorWhereInput
    /**
     * Limit how many OutlookSyncCursors to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookSyncCursor upsert
   */
  export type OutlookSyncCursorUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookSyncCursor to update in case it exists.
     */
    where: OutlookSyncCursorWhereUniqueInput
    /**
     * In case the OutlookSyncCursor found by the `where` argument doesn't exist, create a new OutlookSyncCursor with this data.
     */
    create: XOR<OutlookSyncCursorCreateInput, OutlookSyncCursorUncheckedCreateInput>
    /**
     * In case the OutlookSyncCursor was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookSyncCursorUpdateInput, OutlookSyncCursorUncheckedUpdateInput>
  }

  /**
   * OutlookSyncCursor delete
   */
  export type OutlookSyncCursorDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
    /**
     * Filter which OutlookSyncCursor to delete.
     */
    where: OutlookSyncCursorWhereUniqueInput
  }

  /**
   * OutlookSyncCursor deleteMany
   */
  export type OutlookSyncCursorDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSyncCursors to delete
     */
    where?: OutlookSyncCursorWhereInput
    /**
     * Limit how many OutlookSyncCursors to delete.
     */
    limit?: number
  }

  /**
   * OutlookSyncCursor without action
   */
  export type OutlookSyncCursorDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncCursor
     */
    select?: OutlookSyncCursorSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncCursor
     */
    omit?: OutlookSyncCursorOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookSyncCursorInclude<ExtArgs> | null
  }


  /**
   * Model OutlookEventSnapshot
   */

  export type AggregateOutlookEventSnapshot = {
    _count: OutlookEventSnapshotCountAggregateOutputType | null
    _min: OutlookEventSnapshotMinAggregateOutputType | null
    _max: OutlookEventSnapshotMaxAggregateOutputType | null
  }

  export type OutlookEventSnapshotMinAggregateOutputType = {
    id: string | null
    mailboxId: string | null
    graphEventId: string | null
    iCalUId: string | null
    title: string | null
    startTime: Date | null
    endTime: Date | null
    timezone: string | null
    eventType: string | null
    isCancelled: boolean | null
    seriesMasterId: string | null
    organizerEmail: string | null
    lastModifiedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookEventSnapshotMaxAggregateOutputType = {
    id: string | null
    mailboxId: string | null
    graphEventId: string | null
    iCalUId: string | null
    title: string | null
    startTime: Date | null
    endTime: Date | null
    timezone: string | null
    eventType: string | null
    isCancelled: boolean | null
    seriesMasterId: string | null
    organizerEmail: string | null
    lastModifiedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookEventSnapshotCountAggregateOutputType = {
    id: number
    mailboxId: number
    graphEventId: number
    iCalUId: number
    title: number
    startTime: number
    endTime: number
    timezone: number
    eventType: number
    isCancelled: number
    seriesMasterId: number
    organizerEmail: number
    lastModifiedAt: number
    rawPayload: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type OutlookEventSnapshotMinAggregateInputType = {
    id?: true
    mailboxId?: true
    graphEventId?: true
    iCalUId?: true
    title?: true
    startTime?: true
    endTime?: true
    timezone?: true
    eventType?: true
    isCancelled?: true
    seriesMasterId?: true
    organizerEmail?: true
    lastModifiedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookEventSnapshotMaxAggregateInputType = {
    id?: true
    mailboxId?: true
    graphEventId?: true
    iCalUId?: true
    title?: true
    startTime?: true
    endTime?: true
    timezone?: true
    eventType?: true
    isCancelled?: true
    seriesMasterId?: true
    organizerEmail?: true
    lastModifiedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookEventSnapshotCountAggregateInputType = {
    id?: true
    mailboxId?: true
    graphEventId?: true
    iCalUId?: true
    title?: true
    startTime?: true
    endTime?: true
    timezone?: true
    eventType?: true
    isCancelled?: true
    seriesMasterId?: true
    organizerEmail?: true
    lastModifiedAt?: true
    rawPayload?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type OutlookEventSnapshotAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookEventSnapshot to aggregate.
     */
    where?: OutlookEventSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSnapshots to fetch.
     */
    orderBy?: OutlookEventSnapshotOrderByWithRelationInput | OutlookEventSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookEventSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSnapshots 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` OutlookEventSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookEventSnapshots
    **/
    _count?: true | OutlookEventSnapshotCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookEventSnapshotMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookEventSnapshotMaxAggregateInputType
  }

  export type GetOutlookEventSnapshotAggregateType<T extends OutlookEventSnapshotAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookEventSnapshot]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookEventSnapshot[P]>
      : GetScalarType<T[P], AggregateOutlookEventSnapshot[P]>
  }




  export type OutlookEventSnapshotGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookEventSnapshotWhereInput
    orderBy?: OutlookEventSnapshotOrderByWithAggregationInput | OutlookEventSnapshotOrderByWithAggregationInput[]
    by: OutlookEventSnapshotScalarFieldEnum[] | OutlookEventSnapshotScalarFieldEnum
    having?: OutlookEventSnapshotScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookEventSnapshotCountAggregateInputType | true
    _min?: OutlookEventSnapshotMinAggregateInputType
    _max?: OutlookEventSnapshotMaxAggregateInputType
  }

  export type OutlookEventSnapshotGroupByOutputType = {
    id: string
    mailboxId: string
    graphEventId: string
    iCalUId: string
    title: string
    startTime: Date | null
    endTime: Date | null
    timezone: string
    eventType: string
    isCancelled: boolean
    seriesMasterId: string | null
    organizerEmail: string | null
    lastModifiedAt: Date | null
    rawPayload: JsonValue | null
    createdAt: Date
    updatedAt: Date
    _count: OutlookEventSnapshotCountAggregateOutputType | null
    _min: OutlookEventSnapshotMinAggregateOutputType | null
    _max: OutlookEventSnapshotMaxAggregateOutputType | null
  }

  type GetOutlookEventSnapshotGroupByPayload<T extends OutlookEventSnapshotGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookEventSnapshotGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookEventSnapshotGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookEventSnapshotGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookEventSnapshotGroupByOutputType[P]>
        }
      >
    >


  export type OutlookEventSnapshotSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    graphEventId?: boolean
    iCalUId?: boolean
    title?: boolean
    startTime?: boolean
    endTime?: boolean
    timezone?: boolean
    eventType?: boolean
    isCancelled?: boolean
    seriesMasterId?: boolean
    organizerEmail?: boolean
    lastModifiedAt?: boolean
    rawPayload?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSnapshot"]>

  export type OutlookEventSnapshotSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    graphEventId?: boolean
    iCalUId?: boolean
    title?: boolean
    startTime?: boolean
    endTime?: boolean
    timezone?: boolean
    eventType?: boolean
    isCancelled?: boolean
    seriesMasterId?: boolean
    organizerEmail?: boolean
    lastModifiedAt?: boolean
    rawPayload?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSnapshot"]>

  export type OutlookEventSnapshotSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    mailboxId?: boolean
    graphEventId?: boolean
    iCalUId?: boolean
    title?: boolean
    startTime?: boolean
    endTime?: boolean
    timezone?: boolean
    eventType?: boolean
    isCancelled?: boolean
    seriesMasterId?: boolean
    organizerEmail?: boolean
    lastModifiedAt?: boolean
    rawPayload?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["outlookEventSnapshot"]>

  export type OutlookEventSnapshotSelectScalar = {
    id?: boolean
    mailboxId?: boolean
    graphEventId?: boolean
    iCalUId?: boolean
    title?: boolean
    startTime?: boolean
    endTime?: boolean
    timezone?: boolean
    eventType?: boolean
    isCancelled?: boolean
    seriesMasterId?: boolean
    organizerEmail?: boolean
    lastModifiedAt?: boolean
    rawPayload?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type OutlookEventSnapshotOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "mailboxId" | "graphEventId" | "iCalUId" | "title" | "startTime" | "endTime" | "timezone" | "eventType" | "isCancelled" | "seriesMasterId" | "organizerEmail" | "lastModifiedAt" | "rawPayload" | "createdAt" | "updatedAt", ExtArgs["result"]["outlookEventSnapshot"]>
  export type OutlookEventSnapshotInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookEventSnapshotIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }
  export type OutlookEventSnapshotIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    mailbox?: boolean | OutlookSyncMailboxDefaultArgs<ExtArgs>
  }

  export type $OutlookEventSnapshotPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookEventSnapshot"
    objects: {
      mailbox: Prisma.$OutlookSyncMailboxPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      mailboxId: string
      graphEventId: string
      iCalUId: string
      title: string
      startTime: Date | null
      endTime: Date | null
      timezone: string
      eventType: string
      isCancelled: boolean
      seriesMasterId: string | null
      organizerEmail: string | null
      lastModifiedAt: Date | null
      rawPayload: Prisma.JsonValue | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["outlookEventSnapshot"]>
    composites: {}
  }

  type OutlookEventSnapshotGetPayload<S extends boolean | null | undefined | OutlookEventSnapshotDefaultArgs> = $Result.GetResult<Prisma.$OutlookEventSnapshotPayload, S>

  type OutlookEventSnapshotCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookEventSnapshotFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookEventSnapshotCountAggregateInputType | true
    }

  export interface OutlookEventSnapshotDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookEventSnapshot'], meta: { name: 'OutlookEventSnapshot' } }
    /**
     * Find zero or one OutlookEventSnapshot that matches the filter.
     * @param {OutlookEventSnapshotFindUniqueArgs} args - Arguments to find a OutlookEventSnapshot
     * @example
     * // Get one OutlookEventSnapshot
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookEventSnapshotFindUniqueArgs>(args: SelectSubset<T, OutlookEventSnapshotFindUniqueArgs<ExtArgs>>): Prisma__OutlookEventSnapshotClient<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookEventSnapshot that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookEventSnapshotFindUniqueOrThrowArgs} args - Arguments to find a OutlookEventSnapshot
     * @example
     * // Get one OutlookEventSnapshot
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookEventSnapshotFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookEventSnapshotFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookEventSnapshotClient<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookEventSnapshot 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 {OutlookEventSnapshotFindFirstArgs} args - Arguments to find a OutlookEventSnapshot
     * @example
     * // Get one OutlookEventSnapshot
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookEventSnapshotFindFirstArgs>(args?: SelectSubset<T, OutlookEventSnapshotFindFirstArgs<ExtArgs>>): Prisma__OutlookEventSnapshotClient<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookEventSnapshot 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 {OutlookEventSnapshotFindFirstOrThrowArgs} args - Arguments to find a OutlookEventSnapshot
     * @example
     * // Get one OutlookEventSnapshot
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookEventSnapshotFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookEventSnapshotFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookEventSnapshotClient<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookEventSnapshots 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 {OutlookEventSnapshotFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookEventSnapshots
     * const outlookEventSnapshots = await prisma.outlookEventSnapshot.findMany()
     * 
     * // Get first 10 OutlookEventSnapshots
     * const outlookEventSnapshots = await prisma.outlookEventSnapshot.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookEventSnapshotWithIdOnly = await prisma.outlookEventSnapshot.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookEventSnapshotFindManyArgs>(args?: SelectSubset<T, OutlookEventSnapshotFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookEventSnapshot.
     * @param {OutlookEventSnapshotCreateArgs} args - Arguments to create a OutlookEventSnapshot.
     * @example
     * // Create one OutlookEventSnapshot
     * const OutlookEventSnapshot = await prisma.outlookEventSnapshot.create({
     *   data: {
     *     // ... data to create a OutlookEventSnapshot
     *   }
     * })
     * 
     */
    create<T extends OutlookEventSnapshotCreateArgs>(args: SelectSubset<T, OutlookEventSnapshotCreateArgs<ExtArgs>>): Prisma__OutlookEventSnapshotClient<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookEventSnapshots.
     * @param {OutlookEventSnapshotCreateManyArgs} args - Arguments to create many OutlookEventSnapshots.
     * @example
     * // Create many OutlookEventSnapshots
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookEventSnapshotCreateManyArgs>(args?: SelectSubset<T, OutlookEventSnapshotCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookEventSnapshots and returns the data saved in the database.
     * @param {OutlookEventSnapshotCreateManyAndReturnArgs} args - Arguments to create many OutlookEventSnapshots.
     * @example
     * // Create many OutlookEventSnapshots
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookEventSnapshots and only return the `id`
     * const outlookEventSnapshotWithIdOnly = await prisma.outlookEventSnapshot.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 OutlookEventSnapshotCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookEventSnapshotCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookEventSnapshot.
     * @param {OutlookEventSnapshotDeleteArgs} args - Arguments to delete one OutlookEventSnapshot.
     * @example
     * // Delete one OutlookEventSnapshot
     * const OutlookEventSnapshot = await prisma.outlookEventSnapshot.delete({
     *   where: {
     *     // ... filter to delete one OutlookEventSnapshot
     *   }
     * })
     * 
     */
    delete<T extends OutlookEventSnapshotDeleteArgs>(args: SelectSubset<T, OutlookEventSnapshotDeleteArgs<ExtArgs>>): Prisma__OutlookEventSnapshotClient<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookEventSnapshot.
     * @param {OutlookEventSnapshotUpdateArgs} args - Arguments to update one OutlookEventSnapshot.
     * @example
     * // Update one OutlookEventSnapshot
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookEventSnapshotUpdateArgs>(args: SelectSubset<T, OutlookEventSnapshotUpdateArgs<ExtArgs>>): Prisma__OutlookEventSnapshotClient<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookEventSnapshots.
     * @param {OutlookEventSnapshotDeleteManyArgs} args - Arguments to filter OutlookEventSnapshots to delete.
     * @example
     * // Delete a few OutlookEventSnapshots
     * const { count } = await prisma.outlookEventSnapshot.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookEventSnapshotDeleteManyArgs>(args?: SelectSubset<T, OutlookEventSnapshotDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookEventSnapshots.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSnapshotUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookEventSnapshots
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookEventSnapshotUpdateManyArgs>(args: SelectSubset<T, OutlookEventSnapshotUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookEventSnapshots and returns the data updated in the database.
     * @param {OutlookEventSnapshotUpdateManyAndReturnArgs} args - Arguments to update many OutlookEventSnapshots.
     * @example
     * // Update many OutlookEventSnapshots
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookEventSnapshots and only return the `id`
     * const outlookEventSnapshotWithIdOnly = await prisma.outlookEventSnapshot.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 OutlookEventSnapshotUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookEventSnapshotUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookEventSnapshot.
     * @param {OutlookEventSnapshotUpsertArgs} args - Arguments to update or create a OutlookEventSnapshot.
     * @example
     * // Update or create a OutlookEventSnapshot
     * const outlookEventSnapshot = await prisma.outlookEventSnapshot.upsert({
     *   create: {
     *     // ... data to create a OutlookEventSnapshot
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookEventSnapshot we want to update
     *   }
     * })
     */
    upsert<T extends OutlookEventSnapshotUpsertArgs>(args: SelectSubset<T, OutlookEventSnapshotUpsertArgs<ExtArgs>>): Prisma__OutlookEventSnapshotClient<$Result.GetResult<Prisma.$OutlookEventSnapshotPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookEventSnapshots.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSnapshotCountArgs} args - Arguments to filter OutlookEventSnapshots to count.
     * @example
     * // Count the number of OutlookEventSnapshots
     * const count = await prisma.outlookEventSnapshot.count({
     *   where: {
     *     // ... the filter for the OutlookEventSnapshots we want to count
     *   }
     * })
    **/
    count<T extends OutlookEventSnapshotCountArgs>(
      args?: Subset<T, OutlookEventSnapshotCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookEventSnapshotCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookEventSnapshot.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSnapshotAggregateArgs} 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 OutlookEventSnapshotAggregateArgs>(args: Subset<T, OutlookEventSnapshotAggregateArgs>): Prisma.PrismaPromise<GetOutlookEventSnapshotAggregateType<T>>

    /**
     * Group by OutlookEventSnapshot.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookEventSnapshotGroupByArgs} 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 OutlookEventSnapshotGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookEventSnapshotGroupByArgs['orderBy'] }
        : { orderBy?: OutlookEventSnapshotGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookEventSnapshotGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookEventSnapshotGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookEventSnapshot model
   */
  readonly fields: OutlookEventSnapshotFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookEventSnapshot.
   * 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__OutlookEventSnapshotClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    mailbox<T extends OutlookSyncMailboxDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OutlookSyncMailboxDefaultArgs<ExtArgs>>): Prisma__OutlookSyncMailboxClient<$Result.GetResult<Prisma.$OutlookSyncMailboxPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookEventSnapshot model
   */
  interface OutlookEventSnapshotFieldRefs {
    readonly id: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly mailboxId: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly graphEventId: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly iCalUId: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly title: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly startTime: FieldRef<"OutlookEventSnapshot", 'DateTime'>
    readonly endTime: FieldRef<"OutlookEventSnapshot", 'DateTime'>
    readonly timezone: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly eventType: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly isCancelled: FieldRef<"OutlookEventSnapshot", 'Boolean'>
    readonly seriesMasterId: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly organizerEmail: FieldRef<"OutlookEventSnapshot", 'String'>
    readonly lastModifiedAt: FieldRef<"OutlookEventSnapshot", 'DateTime'>
    readonly rawPayload: FieldRef<"OutlookEventSnapshot", 'Json'>
    readonly createdAt: FieldRef<"OutlookEventSnapshot", 'DateTime'>
    readonly updatedAt: FieldRef<"OutlookEventSnapshot", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookEventSnapshot findUnique
   */
  export type OutlookEventSnapshotFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSnapshot to fetch.
     */
    where: OutlookEventSnapshotWhereUniqueInput
  }

  /**
   * OutlookEventSnapshot findUniqueOrThrow
   */
  export type OutlookEventSnapshotFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSnapshot to fetch.
     */
    where: OutlookEventSnapshotWhereUniqueInput
  }

  /**
   * OutlookEventSnapshot findFirst
   */
  export type OutlookEventSnapshotFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSnapshot to fetch.
     */
    where?: OutlookEventSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSnapshots to fetch.
     */
    orderBy?: OutlookEventSnapshotOrderByWithRelationInput | OutlookEventSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookEventSnapshots.
     */
    cursor?: OutlookEventSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSnapshots 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` OutlookEventSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookEventSnapshots.
     */
    distinct?: OutlookEventSnapshotScalarFieldEnum | OutlookEventSnapshotScalarFieldEnum[]
  }

  /**
   * OutlookEventSnapshot findFirstOrThrow
   */
  export type OutlookEventSnapshotFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSnapshot to fetch.
     */
    where?: OutlookEventSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSnapshots to fetch.
     */
    orderBy?: OutlookEventSnapshotOrderByWithRelationInput | OutlookEventSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookEventSnapshots.
     */
    cursor?: OutlookEventSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSnapshots 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` OutlookEventSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookEventSnapshots.
     */
    distinct?: OutlookEventSnapshotScalarFieldEnum | OutlookEventSnapshotScalarFieldEnum[]
  }

  /**
   * OutlookEventSnapshot findMany
   */
  export type OutlookEventSnapshotFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which OutlookEventSnapshots to fetch.
     */
    where?: OutlookEventSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookEventSnapshots to fetch.
     */
    orderBy?: OutlookEventSnapshotOrderByWithRelationInput | OutlookEventSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookEventSnapshots.
     */
    cursor?: OutlookEventSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookEventSnapshots 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` OutlookEventSnapshots.
     */
    skip?: number
    distinct?: OutlookEventSnapshotScalarFieldEnum | OutlookEventSnapshotScalarFieldEnum[]
  }

  /**
   * OutlookEventSnapshot create
   */
  export type OutlookEventSnapshotCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * The data needed to create a OutlookEventSnapshot.
     */
    data: XOR<OutlookEventSnapshotCreateInput, OutlookEventSnapshotUncheckedCreateInput>
  }

  /**
   * OutlookEventSnapshot createMany
   */
  export type OutlookEventSnapshotCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookEventSnapshots.
     */
    data: OutlookEventSnapshotCreateManyInput | OutlookEventSnapshotCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookEventSnapshot createManyAndReturn
   */
  export type OutlookEventSnapshotCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookEventSnapshots.
     */
    data: OutlookEventSnapshotCreateManyInput | OutlookEventSnapshotCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookEventSnapshot update
   */
  export type OutlookEventSnapshotUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * The data needed to update a OutlookEventSnapshot.
     */
    data: XOR<OutlookEventSnapshotUpdateInput, OutlookEventSnapshotUncheckedUpdateInput>
    /**
     * Choose, which OutlookEventSnapshot to update.
     */
    where: OutlookEventSnapshotWhereUniqueInput
  }

  /**
   * OutlookEventSnapshot updateMany
   */
  export type OutlookEventSnapshotUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookEventSnapshots.
     */
    data: XOR<OutlookEventSnapshotUpdateManyMutationInput, OutlookEventSnapshotUncheckedUpdateManyInput>
    /**
     * Filter which OutlookEventSnapshots to update
     */
    where?: OutlookEventSnapshotWhereInput
    /**
     * Limit how many OutlookEventSnapshots to update.
     */
    limit?: number
  }

  /**
   * OutlookEventSnapshot updateManyAndReturn
   */
  export type OutlookEventSnapshotUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * The data used to update OutlookEventSnapshots.
     */
    data: XOR<OutlookEventSnapshotUpdateManyMutationInput, OutlookEventSnapshotUncheckedUpdateManyInput>
    /**
     * Filter which OutlookEventSnapshots to update
     */
    where?: OutlookEventSnapshotWhereInput
    /**
     * Limit how many OutlookEventSnapshots to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * OutlookEventSnapshot upsert
   */
  export type OutlookEventSnapshotUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * The filter to search for the OutlookEventSnapshot to update in case it exists.
     */
    where: OutlookEventSnapshotWhereUniqueInput
    /**
     * In case the OutlookEventSnapshot found by the `where` argument doesn't exist, create a new OutlookEventSnapshot with this data.
     */
    create: XOR<OutlookEventSnapshotCreateInput, OutlookEventSnapshotUncheckedCreateInput>
    /**
     * In case the OutlookEventSnapshot was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookEventSnapshotUpdateInput, OutlookEventSnapshotUncheckedUpdateInput>
  }

  /**
   * OutlookEventSnapshot delete
   */
  export type OutlookEventSnapshotDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
    /**
     * Filter which OutlookEventSnapshot to delete.
     */
    where: OutlookEventSnapshotWhereUniqueInput
  }

  /**
   * OutlookEventSnapshot deleteMany
   */
  export type OutlookEventSnapshotDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookEventSnapshots to delete
     */
    where?: OutlookEventSnapshotWhereInput
    /**
     * Limit how many OutlookEventSnapshots to delete.
     */
    limit?: number
  }

  /**
   * OutlookEventSnapshot without action
   */
  export type OutlookEventSnapshotDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookEventSnapshot
     */
    select?: OutlookEventSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookEventSnapshot
     */
    omit?: OutlookEventSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OutlookEventSnapshotInclude<ExtArgs> | null
  }


  /**
   * Model OutlookSyncSetting
   */

  export type AggregateOutlookSyncSetting = {
    _count: OutlookSyncSettingCountAggregateOutputType | null
    _avg: OutlookSyncSettingAvgAggregateOutputType | null
    _sum: OutlookSyncSettingSumAggregateOutputType | null
    _min: OutlookSyncSettingMinAggregateOutputType | null
    _max: OutlookSyncSettingMaxAggregateOutputType | null
  }

  export type OutlookSyncSettingAvgAggregateOutputType = {
    deltaBatchSize: number | null
    lookaheadDays: number | null
    lookbackDays: number | null
    renewBeforeMinutes: number | null
  }

  export type OutlookSyncSettingSumAggregateOutputType = {
    deltaBatchSize: number | null
    lookaheadDays: number | null
    lookbackDays: number | null
    renewBeforeMinutes: number | null
  }

  export type OutlookSyncSettingMinAggregateOutputType = {
    id: string | null
    reconcileCron: string | null
    deltaBatchSize: number | null
    lookaheadDays: number | null
    lookbackDays: number | null
    renewBeforeMinutes: number | null
    includeOrganizerAsAttendee: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSyncSettingMaxAggregateOutputType = {
    id: string | null
    reconcileCron: string | null
    deltaBatchSize: number | null
    lookaheadDays: number | null
    lookbackDays: number | null
    renewBeforeMinutes: number | null
    includeOrganizerAsAttendee: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type OutlookSyncSettingCountAggregateOutputType = {
    id: number
    reconcileCron: number
    deltaBatchSize: number
    lookaheadDays: number
    lookbackDays: number
    renewBeforeMinutes: number
    includeOrganizerAsAttendee: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type OutlookSyncSettingAvgAggregateInputType = {
    deltaBatchSize?: true
    lookaheadDays?: true
    lookbackDays?: true
    renewBeforeMinutes?: true
  }

  export type OutlookSyncSettingSumAggregateInputType = {
    deltaBatchSize?: true
    lookaheadDays?: true
    lookbackDays?: true
    renewBeforeMinutes?: true
  }

  export type OutlookSyncSettingMinAggregateInputType = {
    id?: true
    reconcileCron?: true
    deltaBatchSize?: true
    lookaheadDays?: true
    lookbackDays?: true
    renewBeforeMinutes?: true
    includeOrganizerAsAttendee?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSyncSettingMaxAggregateInputType = {
    id?: true
    reconcileCron?: true
    deltaBatchSize?: true
    lookaheadDays?: true
    lookbackDays?: true
    renewBeforeMinutes?: true
    includeOrganizerAsAttendee?: true
    createdAt?: true
    updatedAt?: true
  }

  export type OutlookSyncSettingCountAggregateInputType = {
    id?: true
    reconcileCron?: true
    deltaBatchSize?: true
    lookaheadDays?: true
    lookbackDays?: true
    renewBeforeMinutes?: true
    includeOrganizerAsAttendee?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type OutlookSyncSettingAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSyncSetting to aggregate.
     */
    where?: OutlookSyncSettingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncSettings to fetch.
     */
    orderBy?: OutlookSyncSettingOrderByWithRelationInput | OutlookSyncSettingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: OutlookSyncSettingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncSettings 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` OutlookSyncSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned OutlookSyncSettings
    **/
    _count?: true | OutlookSyncSettingCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: OutlookSyncSettingAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: OutlookSyncSettingSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: OutlookSyncSettingMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: OutlookSyncSettingMaxAggregateInputType
  }

  export type GetOutlookSyncSettingAggregateType<T extends OutlookSyncSettingAggregateArgs> = {
        [P in keyof T & keyof AggregateOutlookSyncSetting]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateOutlookSyncSetting[P]>
      : GetScalarType<T[P], AggregateOutlookSyncSetting[P]>
  }




  export type OutlookSyncSettingGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: OutlookSyncSettingWhereInput
    orderBy?: OutlookSyncSettingOrderByWithAggregationInput | OutlookSyncSettingOrderByWithAggregationInput[]
    by: OutlookSyncSettingScalarFieldEnum[] | OutlookSyncSettingScalarFieldEnum
    having?: OutlookSyncSettingScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: OutlookSyncSettingCountAggregateInputType | true
    _avg?: OutlookSyncSettingAvgAggregateInputType
    _sum?: OutlookSyncSettingSumAggregateInputType
    _min?: OutlookSyncSettingMinAggregateInputType
    _max?: OutlookSyncSettingMaxAggregateInputType
  }

  export type OutlookSyncSettingGroupByOutputType = {
    id: string
    reconcileCron: string
    deltaBatchSize: number
    lookaheadDays: number
    lookbackDays: number
    renewBeforeMinutes: number
    includeOrganizerAsAttendee: boolean
    createdAt: Date
    updatedAt: Date
    _count: OutlookSyncSettingCountAggregateOutputType | null
    _avg: OutlookSyncSettingAvgAggregateOutputType | null
    _sum: OutlookSyncSettingSumAggregateOutputType | null
    _min: OutlookSyncSettingMinAggregateOutputType | null
    _max: OutlookSyncSettingMaxAggregateOutputType | null
  }

  type GetOutlookSyncSettingGroupByPayload<T extends OutlookSyncSettingGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<OutlookSyncSettingGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof OutlookSyncSettingGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], OutlookSyncSettingGroupByOutputType[P]>
            : GetScalarType<T[P], OutlookSyncSettingGroupByOutputType[P]>
        }
      >
    >


  export type OutlookSyncSettingSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    reconcileCron?: boolean
    deltaBatchSize?: boolean
    lookaheadDays?: boolean
    lookbackDays?: boolean
    renewBeforeMinutes?: boolean
    includeOrganizerAsAttendee?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["outlookSyncSetting"]>

  export type OutlookSyncSettingSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    reconcileCron?: boolean
    deltaBatchSize?: boolean
    lookaheadDays?: boolean
    lookbackDays?: boolean
    renewBeforeMinutes?: boolean
    includeOrganizerAsAttendee?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["outlookSyncSetting"]>

  export type OutlookSyncSettingSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    reconcileCron?: boolean
    deltaBatchSize?: boolean
    lookaheadDays?: boolean
    lookbackDays?: boolean
    renewBeforeMinutes?: boolean
    includeOrganizerAsAttendee?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["outlookSyncSetting"]>

  export type OutlookSyncSettingSelectScalar = {
    id?: boolean
    reconcileCron?: boolean
    deltaBatchSize?: boolean
    lookaheadDays?: boolean
    lookbackDays?: boolean
    renewBeforeMinutes?: boolean
    includeOrganizerAsAttendee?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type OutlookSyncSettingOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "reconcileCron" | "deltaBatchSize" | "lookaheadDays" | "lookbackDays" | "renewBeforeMinutes" | "includeOrganizerAsAttendee" | "createdAt" | "updatedAt", ExtArgs["result"]["outlookSyncSetting"]>

  export type $OutlookSyncSettingPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "OutlookSyncSetting"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      reconcileCron: string
      deltaBatchSize: number
      lookaheadDays: number
      lookbackDays: number
      renewBeforeMinutes: number
      includeOrganizerAsAttendee: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["outlookSyncSetting"]>
    composites: {}
  }

  type OutlookSyncSettingGetPayload<S extends boolean | null | undefined | OutlookSyncSettingDefaultArgs> = $Result.GetResult<Prisma.$OutlookSyncSettingPayload, S>

  type OutlookSyncSettingCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<OutlookSyncSettingFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: OutlookSyncSettingCountAggregateInputType | true
    }

  export interface OutlookSyncSettingDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['OutlookSyncSetting'], meta: { name: 'OutlookSyncSetting' } }
    /**
     * Find zero or one OutlookSyncSetting that matches the filter.
     * @param {OutlookSyncSettingFindUniqueArgs} args - Arguments to find a OutlookSyncSetting
     * @example
     * // Get one OutlookSyncSetting
     * const outlookSyncSetting = await prisma.outlookSyncSetting.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends OutlookSyncSettingFindUniqueArgs>(args: SelectSubset<T, OutlookSyncSettingFindUniqueArgs<ExtArgs>>): Prisma__OutlookSyncSettingClient<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one OutlookSyncSetting that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {OutlookSyncSettingFindUniqueOrThrowArgs} args - Arguments to find a OutlookSyncSetting
     * @example
     * // Get one OutlookSyncSetting
     * const outlookSyncSetting = await prisma.outlookSyncSetting.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends OutlookSyncSettingFindUniqueOrThrowArgs>(args: SelectSubset<T, OutlookSyncSettingFindUniqueOrThrowArgs<ExtArgs>>): Prisma__OutlookSyncSettingClient<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSyncSetting 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 {OutlookSyncSettingFindFirstArgs} args - Arguments to find a OutlookSyncSetting
     * @example
     * // Get one OutlookSyncSetting
     * const outlookSyncSetting = await prisma.outlookSyncSetting.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends OutlookSyncSettingFindFirstArgs>(args?: SelectSubset<T, OutlookSyncSettingFindFirstArgs<ExtArgs>>): Prisma__OutlookSyncSettingClient<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first OutlookSyncSetting 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 {OutlookSyncSettingFindFirstOrThrowArgs} args - Arguments to find a OutlookSyncSetting
     * @example
     * // Get one OutlookSyncSetting
     * const outlookSyncSetting = await prisma.outlookSyncSetting.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends OutlookSyncSettingFindFirstOrThrowArgs>(args?: SelectSubset<T, OutlookSyncSettingFindFirstOrThrowArgs<ExtArgs>>): Prisma__OutlookSyncSettingClient<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more OutlookSyncSettings 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 {OutlookSyncSettingFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all OutlookSyncSettings
     * const outlookSyncSettings = await prisma.outlookSyncSetting.findMany()
     * 
     * // Get first 10 OutlookSyncSettings
     * const outlookSyncSettings = await prisma.outlookSyncSetting.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const outlookSyncSettingWithIdOnly = await prisma.outlookSyncSetting.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends OutlookSyncSettingFindManyArgs>(args?: SelectSubset<T, OutlookSyncSettingFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a OutlookSyncSetting.
     * @param {OutlookSyncSettingCreateArgs} args - Arguments to create a OutlookSyncSetting.
     * @example
     * // Create one OutlookSyncSetting
     * const OutlookSyncSetting = await prisma.outlookSyncSetting.create({
     *   data: {
     *     // ... data to create a OutlookSyncSetting
     *   }
     * })
     * 
     */
    create<T extends OutlookSyncSettingCreateArgs>(args: SelectSubset<T, OutlookSyncSettingCreateArgs<ExtArgs>>): Prisma__OutlookSyncSettingClient<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many OutlookSyncSettings.
     * @param {OutlookSyncSettingCreateManyArgs} args - Arguments to create many OutlookSyncSettings.
     * @example
     * // Create many OutlookSyncSettings
     * const outlookSyncSetting = await prisma.outlookSyncSetting.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends OutlookSyncSettingCreateManyArgs>(args?: SelectSubset<T, OutlookSyncSettingCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many OutlookSyncSettings and returns the data saved in the database.
     * @param {OutlookSyncSettingCreateManyAndReturnArgs} args - Arguments to create many OutlookSyncSettings.
     * @example
     * // Create many OutlookSyncSettings
     * const outlookSyncSetting = await prisma.outlookSyncSetting.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many OutlookSyncSettings and only return the `id`
     * const outlookSyncSettingWithIdOnly = await prisma.outlookSyncSetting.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 OutlookSyncSettingCreateManyAndReturnArgs>(args?: SelectSubset<T, OutlookSyncSettingCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a OutlookSyncSetting.
     * @param {OutlookSyncSettingDeleteArgs} args - Arguments to delete one OutlookSyncSetting.
     * @example
     * // Delete one OutlookSyncSetting
     * const OutlookSyncSetting = await prisma.outlookSyncSetting.delete({
     *   where: {
     *     // ... filter to delete one OutlookSyncSetting
     *   }
     * })
     * 
     */
    delete<T extends OutlookSyncSettingDeleteArgs>(args: SelectSubset<T, OutlookSyncSettingDeleteArgs<ExtArgs>>): Prisma__OutlookSyncSettingClient<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one OutlookSyncSetting.
     * @param {OutlookSyncSettingUpdateArgs} args - Arguments to update one OutlookSyncSetting.
     * @example
     * // Update one OutlookSyncSetting
     * const outlookSyncSetting = await prisma.outlookSyncSetting.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends OutlookSyncSettingUpdateArgs>(args: SelectSubset<T, OutlookSyncSettingUpdateArgs<ExtArgs>>): Prisma__OutlookSyncSettingClient<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more OutlookSyncSettings.
     * @param {OutlookSyncSettingDeleteManyArgs} args - Arguments to filter OutlookSyncSettings to delete.
     * @example
     * // Delete a few OutlookSyncSettings
     * const { count } = await prisma.outlookSyncSetting.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends OutlookSyncSettingDeleteManyArgs>(args?: SelectSubset<T, OutlookSyncSettingDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSyncSettings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncSettingUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many OutlookSyncSettings
     * const outlookSyncSetting = await prisma.outlookSyncSetting.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends OutlookSyncSettingUpdateManyArgs>(args: SelectSubset<T, OutlookSyncSettingUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more OutlookSyncSettings and returns the data updated in the database.
     * @param {OutlookSyncSettingUpdateManyAndReturnArgs} args - Arguments to update many OutlookSyncSettings.
     * @example
     * // Update many OutlookSyncSettings
     * const outlookSyncSetting = await prisma.outlookSyncSetting.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more OutlookSyncSettings and only return the `id`
     * const outlookSyncSettingWithIdOnly = await prisma.outlookSyncSetting.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 OutlookSyncSettingUpdateManyAndReturnArgs>(args: SelectSubset<T, OutlookSyncSettingUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one OutlookSyncSetting.
     * @param {OutlookSyncSettingUpsertArgs} args - Arguments to update or create a OutlookSyncSetting.
     * @example
     * // Update or create a OutlookSyncSetting
     * const outlookSyncSetting = await prisma.outlookSyncSetting.upsert({
     *   create: {
     *     // ... data to create a OutlookSyncSetting
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the OutlookSyncSetting we want to update
     *   }
     * })
     */
    upsert<T extends OutlookSyncSettingUpsertArgs>(args: SelectSubset<T, OutlookSyncSettingUpsertArgs<ExtArgs>>): Prisma__OutlookSyncSettingClient<$Result.GetResult<Prisma.$OutlookSyncSettingPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of OutlookSyncSettings.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncSettingCountArgs} args - Arguments to filter OutlookSyncSettings to count.
     * @example
     * // Count the number of OutlookSyncSettings
     * const count = await prisma.outlookSyncSetting.count({
     *   where: {
     *     // ... the filter for the OutlookSyncSettings we want to count
     *   }
     * })
    **/
    count<T extends OutlookSyncSettingCountArgs>(
      args?: Subset<T, OutlookSyncSettingCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], OutlookSyncSettingCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a OutlookSyncSetting.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncSettingAggregateArgs} 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 OutlookSyncSettingAggregateArgs>(args: Subset<T, OutlookSyncSettingAggregateArgs>): Prisma.PrismaPromise<GetOutlookSyncSettingAggregateType<T>>

    /**
     * Group by OutlookSyncSetting.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {OutlookSyncSettingGroupByArgs} 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 OutlookSyncSettingGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: OutlookSyncSettingGroupByArgs['orderBy'] }
        : { orderBy?: OutlookSyncSettingGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, OutlookSyncSettingGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetOutlookSyncSettingGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the OutlookSyncSetting model
   */
  readonly fields: OutlookSyncSettingFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for OutlookSyncSetting.
   * 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__OutlookSyncSettingClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the OutlookSyncSetting model
   */
  interface OutlookSyncSettingFieldRefs {
    readonly id: FieldRef<"OutlookSyncSetting", 'String'>
    readonly reconcileCron: FieldRef<"OutlookSyncSetting", 'String'>
    readonly deltaBatchSize: FieldRef<"OutlookSyncSetting", 'Int'>
    readonly lookaheadDays: FieldRef<"OutlookSyncSetting", 'Int'>
    readonly lookbackDays: FieldRef<"OutlookSyncSetting", 'Int'>
    readonly renewBeforeMinutes: FieldRef<"OutlookSyncSetting", 'Int'>
    readonly includeOrganizerAsAttendee: FieldRef<"OutlookSyncSetting", 'Boolean'>
    readonly createdAt: FieldRef<"OutlookSyncSetting", 'DateTime'>
    readonly updatedAt: FieldRef<"OutlookSyncSetting", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * OutlookSyncSetting findUnique
   */
  export type OutlookSyncSettingFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * Filter, which OutlookSyncSetting to fetch.
     */
    where: OutlookSyncSettingWhereUniqueInput
  }

  /**
   * OutlookSyncSetting findUniqueOrThrow
   */
  export type OutlookSyncSettingFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * Filter, which OutlookSyncSetting to fetch.
     */
    where: OutlookSyncSettingWhereUniqueInput
  }

  /**
   * OutlookSyncSetting findFirst
   */
  export type OutlookSyncSettingFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * Filter, which OutlookSyncSetting to fetch.
     */
    where?: OutlookSyncSettingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncSettings to fetch.
     */
    orderBy?: OutlookSyncSettingOrderByWithRelationInput | OutlookSyncSettingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSyncSettings.
     */
    cursor?: OutlookSyncSettingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncSettings 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` OutlookSyncSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSyncSettings.
     */
    distinct?: OutlookSyncSettingScalarFieldEnum | OutlookSyncSettingScalarFieldEnum[]
  }

  /**
   * OutlookSyncSetting findFirstOrThrow
   */
  export type OutlookSyncSettingFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * Filter, which OutlookSyncSetting to fetch.
     */
    where?: OutlookSyncSettingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncSettings to fetch.
     */
    orderBy?: OutlookSyncSettingOrderByWithRelationInput | OutlookSyncSettingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for OutlookSyncSettings.
     */
    cursor?: OutlookSyncSettingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncSettings 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` OutlookSyncSettings.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of OutlookSyncSettings.
     */
    distinct?: OutlookSyncSettingScalarFieldEnum | OutlookSyncSettingScalarFieldEnum[]
  }

  /**
   * OutlookSyncSetting findMany
   */
  export type OutlookSyncSettingFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * Filter, which OutlookSyncSettings to fetch.
     */
    where?: OutlookSyncSettingWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of OutlookSyncSettings to fetch.
     */
    orderBy?: OutlookSyncSettingOrderByWithRelationInput | OutlookSyncSettingOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing OutlookSyncSettings.
     */
    cursor?: OutlookSyncSettingWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` OutlookSyncSettings 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` OutlookSyncSettings.
     */
    skip?: number
    distinct?: OutlookSyncSettingScalarFieldEnum | OutlookSyncSettingScalarFieldEnum[]
  }

  /**
   * OutlookSyncSetting create
   */
  export type OutlookSyncSettingCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * The data needed to create a OutlookSyncSetting.
     */
    data: XOR<OutlookSyncSettingCreateInput, OutlookSyncSettingUncheckedCreateInput>
  }

  /**
   * OutlookSyncSetting createMany
   */
  export type OutlookSyncSettingCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many OutlookSyncSettings.
     */
    data: OutlookSyncSettingCreateManyInput | OutlookSyncSettingCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookSyncSetting createManyAndReturn
   */
  export type OutlookSyncSettingCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * The data used to create many OutlookSyncSettings.
     */
    data: OutlookSyncSettingCreateManyInput | OutlookSyncSettingCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * OutlookSyncSetting update
   */
  export type OutlookSyncSettingUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * The data needed to update a OutlookSyncSetting.
     */
    data: XOR<OutlookSyncSettingUpdateInput, OutlookSyncSettingUncheckedUpdateInput>
    /**
     * Choose, which OutlookSyncSetting to update.
     */
    where: OutlookSyncSettingWhereUniqueInput
  }

  /**
   * OutlookSyncSetting updateMany
   */
  export type OutlookSyncSettingUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update OutlookSyncSettings.
     */
    data: XOR<OutlookSyncSettingUpdateManyMutationInput, OutlookSyncSettingUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSyncSettings to update
     */
    where?: OutlookSyncSettingWhereInput
    /**
     * Limit how many OutlookSyncSettings to update.
     */
    limit?: number
  }

  /**
   * OutlookSyncSetting updateManyAndReturn
   */
  export type OutlookSyncSettingUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * The data used to update OutlookSyncSettings.
     */
    data: XOR<OutlookSyncSettingUpdateManyMutationInput, OutlookSyncSettingUncheckedUpdateManyInput>
    /**
     * Filter which OutlookSyncSettings to update
     */
    where?: OutlookSyncSettingWhereInput
    /**
     * Limit how many OutlookSyncSettings to update.
     */
    limit?: number
  }

  /**
   * OutlookSyncSetting upsert
   */
  export type OutlookSyncSettingUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * The filter to search for the OutlookSyncSetting to update in case it exists.
     */
    where: OutlookSyncSettingWhereUniqueInput
    /**
     * In case the OutlookSyncSetting found by the `where` argument doesn't exist, create a new OutlookSyncSetting with this data.
     */
    create: XOR<OutlookSyncSettingCreateInput, OutlookSyncSettingUncheckedCreateInput>
    /**
     * In case the OutlookSyncSetting was found with the provided `where` argument, update it with this data.
     */
    update: XOR<OutlookSyncSettingUpdateInput, OutlookSyncSettingUncheckedUpdateInput>
  }

  /**
   * OutlookSyncSetting delete
   */
  export type OutlookSyncSettingDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
    /**
     * Filter which OutlookSyncSetting to delete.
     */
    where: OutlookSyncSettingWhereUniqueInput
  }

  /**
   * OutlookSyncSetting deleteMany
   */
  export type OutlookSyncSettingDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which OutlookSyncSettings to delete
     */
    where?: OutlookSyncSettingWhereInput
    /**
     * Limit how many OutlookSyncSettings to delete.
     */
    limit?: number
  }

  /**
   * OutlookSyncSetting without action
   */
  export type OutlookSyncSettingDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the OutlookSyncSetting
     */
    select?: OutlookSyncSettingSelect<ExtArgs> | null
    /**
     * Omit specific fields from the OutlookSyncSetting
     */
    omit?: OutlookSyncSettingOmit<ExtArgs> | null
  }


  /**
   * Model MeetingAgendaSection
   */

  export type AggregateMeetingAgendaSection = {
    _count: MeetingAgendaSectionCountAggregateOutputType | null
    _avg: MeetingAgendaSectionAvgAggregateOutputType | null
    _sum: MeetingAgendaSectionSumAggregateOutputType | null
    _min: MeetingAgendaSectionMinAggregateOutputType | null
    _max: MeetingAgendaSectionMaxAggregateOutputType | null
  }

  export type MeetingAgendaSectionAvgAggregateOutputType = {
    order: number | null
  }

  export type MeetingAgendaSectionSumAggregateOutputType = {
    order: number | null
  }

  export type MeetingAgendaSectionMinAggregateOutputType = {
    id: string | null
    meetingId: string | null
    order: number | null
    title: string | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAgendaSectionMaxAggregateOutputType = {
    id: string | null
    meetingId: string | null
    order: number | null
    title: string | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAgendaSectionCountAggregateOutputType = {
    id: number
    meetingId: number
    order: number
    title: number
    columnLabels: number
    createdById: number
    organizationId: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type MeetingAgendaSectionAvgAggregateInputType = {
    order?: true
  }

  export type MeetingAgendaSectionSumAggregateInputType = {
    order?: true
  }

  export type MeetingAgendaSectionMinAggregateInputType = {
    id?: true
    meetingId?: true
    order?: true
    title?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAgendaSectionMaxAggregateInputType = {
    id?: true
    meetingId?: true
    order?: true
    title?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAgendaSectionCountAggregateInputType = {
    id?: true
    meetingId?: true
    order?: true
    title?: true
    columnLabels?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type MeetingAgendaSectionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAgendaSection to aggregate.
     */
    where?: MeetingAgendaSectionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaSections to fetch.
     */
    orderBy?: MeetingAgendaSectionOrderByWithRelationInput | MeetingAgendaSectionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAgendaSectionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaSections 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` MeetingAgendaSections.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAgendaSections
    **/
    _count?: true | MeetingAgendaSectionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAgendaSectionAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingAgendaSectionSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAgendaSectionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAgendaSectionMaxAggregateInputType
  }

  export type GetMeetingAgendaSectionAggregateType<T extends MeetingAgendaSectionAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAgendaSection]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAgendaSection[P]>
      : GetScalarType<T[P], AggregateMeetingAgendaSection[P]>
  }




  export type MeetingAgendaSectionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAgendaSectionWhereInput
    orderBy?: MeetingAgendaSectionOrderByWithAggregationInput | MeetingAgendaSectionOrderByWithAggregationInput[]
    by: MeetingAgendaSectionScalarFieldEnum[] | MeetingAgendaSectionScalarFieldEnum
    having?: MeetingAgendaSectionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAgendaSectionCountAggregateInputType | true
    _avg?: MeetingAgendaSectionAvgAggregateInputType
    _sum?: MeetingAgendaSectionSumAggregateInputType
    _min?: MeetingAgendaSectionMinAggregateInputType
    _max?: MeetingAgendaSectionMaxAggregateInputType
  }

  export type MeetingAgendaSectionGroupByOutputType = {
    id: string
    meetingId: string
    order: number
    title: string
    columnLabels: string[]
    createdById: string
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: MeetingAgendaSectionCountAggregateOutputType | null
    _avg: MeetingAgendaSectionAvgAggregateOutputType | null
    _sum: MeetingAgendaSectionSumAggregateOutputType | null
    _min: MeetingAgendaSectionMinAggregateOutputType | null
    _max: MeetingAgendaSectionMaxAggregateOutputType | null
  }

  type GetMeetingAgendaSectionGroupByPayload<T extends MeetingAgendaSectionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAgendaSectionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAgendaSectionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAgendaSectionGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAgendaSectionGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAgendaSectionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    order?: boolean
    title?: boolean
    columnLabels?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaSection$organizationArgs<ExtArgs>
    items?: boolean | MeetingAgendaSection$itemsArgs<ExtArgs>
    _count?: boolean | MeetingAgendaSectionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaSection"]>

  export type MeetingAgendaSectionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    order?: boolean
    title?: boolean
    columnLabels?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaSection$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaSection"]>

  export type MeetingAgendaSectionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    order?: boolean
    title?: boolean
    columnLabels?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaSection$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaSection"]>

  export type MeetingAgendaSectionSelectScalar = {
    id?: boolean
    meetingId?: boolean
    order?: boolean
    title?: boolean
    columnLabels?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type MeetingAgendaSectionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "meetingId" | "order" | "title" | "columnLabels" | "createdById" | "organizationId" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["meetingAgendaSection"]>
  export type MeetingAgendaSectionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaSection$organizationArgs<ExtArgs>
    items?: boolean | MeetingAgendaSection$itemsArgs<ExtArgs>
    _count?: boolean | MeetingAgendaSectionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type MeetingAgendaSectionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaSection$organizationArgs<ExtArgs>
  }
  export type MeetingAgendaSectionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaSection$organizationArgs<ExtArgs>
  }

  export type $MeetingAgendaSectionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAgendaSection"
    objects: {
      meeting: Prisma.$MeetingPayload<ExtArgs>
      createdBy: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
      items: Prisma.$MeetingAgendaItemPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      meetingId: string
      order: number
      title: string
      /**
       * 段级列模式（null = 单栏；非空数组每元素是列标题，长度即列数）。
       * 议程项的 columnDescriptions 必须与本数组长度对齐（如有）。
       */
      columnLabels: string[]
      createdById: string
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["meetingAgendaSection"]>
    composites: {}
  }

  type MeetingAgendaSectionGetPayload<S extends boolean | null | undefined | MeetingAgendaSectionDefaultArgs> = $Result.GetResult<Prisma.$MeetingAgendaSectionPayload, S>

  type MeetingAgendaSectionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAgendaSectionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAgendaSectionCountAggregateInputType | true
    }

  export interface MeetingAgendaSectionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAgendaSection'], meta: { name: 'MeetingAgendaSection' } }
    /**
     * Find zero or one MeetingAgendaSection that matches the filter.
     * @param {MeetingAgendaSectionFindUniqueArgs} args - Arguments to find a MeetingAgendaSection
     * @example
     * // Get one MeetingAgendaSection
     * const meetingAgendaSection = await prisma.meetingAgendaSection.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAgendaSectionFindUniqueArgs>(args: SelectSubset<T, MeetingAgendaSectionFindUniqueArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAgendaSection that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAgendaSectionFindUniqueOrThrowArgs} args - Arguments to find a MeetingAgendaSection
     * @example
     * // Get one MeetingAgendaSection
     * const meetingAgendaSection = await prisma.meetingAgendaSection.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAgendaSectionFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAgendaSectionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAgendaSection 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 {MeetingAgendaSectionFindFirstArgs} args - Arguments to find a MeetingAgendaSection
     * @example
     * // Get one MeetingAgendaSection
     * const meetingAgendaSection = await prisma.meetingAgendaSection.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAgendaSectionFindFirstArgs>(args?: SelectSubset<T, MeetingAgendaSectionFindFirstArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAgendaSection 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 {MeetingAgendaSectionFindFirstOrThrowArgs} args - Arguments to find a MeetingAgendaSection
     * @example
     * // Get one MeetingAgendaSection
     * const meetingAgendaSection = await prisma.meetingAgendaSection.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAgendaSectionFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAgendaSectionFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAgendaSections 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 {MeetingAgendaSectionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAgendaSections
     * const meetingAgendaSections = await prisma.meetingAgendaSection.findMany()
     * 
     * // Get first 10 MeetingAgendaSections
     * const meetingAgendaSections = await prisma.meetingAgendaSection.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAgendaSectionWithIdOnly = await prisma.meetingAgendaSection.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAgendaSectionFindManyArgs>(args?: SelectSubset<T, MeetingAgendaSectionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAgendaSection.
     * @param {MeetingAgendaSectionCreateArgs} args - Arguments to create a MeetingAgendaSection.
     * @example
     * // Create one MeetingAgendaSection
     * const MeetingAgendaSection = await prisma.meetingAgendaSection.create({
     *   data: {
     *     // ... data to create a MeetingAgendaSection
     *   }
     * })
     * 
     */
    create<T extends MeetingAgendaSectionCreateArgs>(args: SelectSubset<T, MeetingAgendaSectionCreateArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAgendaSections.
     * @param {MeetingAgendaSectionCreateManyArgs} args - Arguments to create many MeetingAgendaSections.
     * @example
     * // Create many MeetingAgendaSections
     * const meetingAgendaSection = await prisma.meetingAgendaSection.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAgendaSectionCreateManyArgs>(args?: SelectSubset<T, MeetingAgendaSectionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAgendaSections and returns the data saved in the database.
     * @param {MeetingAgendaSectionCreateManyAndReturnArgs} args - Arguments to create many MeetingAgendaSections.
     * @example
     * // Create many MeetingAgendaSections
     * const meetingAgendaSection = await prisma.meetingAgendaSection.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAgendaSections and only return the `id`
     * const meetingAgendaSectionWithIdOnly = await prisma.meetingAgendaSection.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 MeetingAgendaSectionCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAgendaSectionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAgendaSection.
     * @param {MeetingAgendaSectionDeleteArgs} args - Arguments to delete one MeetingAgendaSection.
     * @example
     * // Delete one MeetingAgendaSection
     * const MeetingAgendaSection = await prisma.meetingAgendaSection.delete({
     *   where: {
     *     // ... filter to delete one MeetingAgendaSection
     *   }
     * })
     * 
     */
    delete<T extends MeetingAgendaSectionDeleteArgs>(args: SelectSubset<T, MeetingAgendaSectionDeleteArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAgendaSection.
     * @param {MeetingAgendaSectionUpdateArgs} args - Arguments to update one MeetingAgendaSection.
     * @example
     * // Update one MeetingAgendaSection
     * const meetingAgendaSection = await prisma.meetingAgendaSection.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAgendaSectionUpdateArgs>(args: SelectSubset<T, MeetingAgendaSectionUpdateArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAgendaSections.
     * @param {MeetingAgendaSectionDeleteManyArgs} args - Arguments to filter MeetingAgendaSections to delete.
     * @example
     * // Delete a few MeetingAgendaSections
     * const { count } = await prisma.meetingAgendaSection.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAgendaSectionDeleteManyArgs>(args?: SelectSubset<T, MeetingAgendaSectionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAgendaSections.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaSectionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAgendaSections
     * const meetingAgendaSection = await prisma.meetingAgendaSection.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAgendaSectionUpdateManyArgs>(args: SelectSubset<T, MeetingAgendaSectionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAgendaSections and returns the data updated in the database.
     * @param {MeetingAgendaSectionUpdateManyAndReturnArgs} args - Arguments to update many MeetingAgendaSections.
     * @example
     * // Update many MeetingAgendaSections
     * const meetingAgendaSection = await prisma.meetingAgendaSection.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAgendaSections and only return the `id`
     * const meetingAgendaSectionWithIdOnly = await prisma.meetingAgendaSection.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 MeetingAgendaSectionUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAgendaSectionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAgendaSection.
     * @param {MeetingAgendaSectionUpsertArgs} args - Arguments to update or create a MeetingAgendaSection.
     * @example
     * // Update or create a MeetingAgendaSection
     * const meetingAgendaSection = await prisma.meetingAgendaSection.upsert({
     *   create: {
     *     // ... data to create a MeetingAgendaSection
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAgendaSection we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAgendaSectionUpsertArgs>(args: SelectSubset<T, MeetingAgendaSectionUpsertArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAgendaSections.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaSectionCountArgs} args - Arguments to filter MeetingAgendaSections to count.
     * @example
     * // Count the number of MeetingAgendaSections
     * const count = await prisma.meetingAgendaSection.count({
     *   where: {
     *     // ... the filter for the MeetingAgendaSections we want to count
     *   }
     * })
    **/
    count<T extends MeetingAgendaSectionCountArgs>(
      args?: Subset<T, MeetingAgendaSectionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAgendaSectionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAgendaSection.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaSectionAggregateArgs} 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 MeetingAgendaSectionAggregateArgs>(args: Subset<T, MeetingAgendaSectionAggregateArgs>): Prisma.PrismaPromise<GetMeetingAgendaSectionAggregateType<T>>

    /**
     * Group by MeetingAgendaSection.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaSectionGroupByArgs} 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 MeetingAgendaSectionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAgendaSectionGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAgendaSectionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAgendaSectionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAgendaSectionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAgendaSection model
   */
  readonly fields: MeetingAgendaSectionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAgendaSection.
   * 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__MeetingAgendaSectionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    meeting<T extends MeetingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingDefaultArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    createdBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends MeetingAgendaSection$organizationArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaSection$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    items<T extends MeetingAgendaSection$itemsArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaSection$itemsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAgendaSection model
   */
  interface MeetingAgendaSectionFieldRefs {
    readonly id: FieldRef<"MeetingAgendaSection", 'String'>
    readonly meetingId: FieldRef<"MeetingAgendaSection", 'String'>
    readonly order: FieldRef<"MeetingAgendaSection", 'Int'>
    readonly title: FieldRef<"MeetingAgendaSection", 'String'>
    readonly columnLabels: FieldRef<"MeetingAgendaSection", 'String[]'>
    readonly createdById: FieldRef<"MeetingAgendaSection", 'String'>
    readonly organizationId: FieldRef<"MeetingAgendaSection", 'String'>
    readonly createdAt: FieldRef<"MeetingAgendaSection", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAgendaSection", 'DateTime'>
    readonly deletedAt: FieldRef<"MeetingAgendaSection", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAgendaSection findUnique
   */
  export type MeetingAgendaSectionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaSection to fetch.
     */
    where: MeetingAgendaSectionWhereUniqueInput
  }

  /**
   * MeetingAgendaSection findUniqueOrThrow
   */
  export type MeetingAgendaSectionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaSection to fetch.
     */
    where: MeetingAgendaSectionWhereUniqueInput
  }

  /**
   * MeetingAgendaSection findFirst
   */
  export type MeetingAgendaSectionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaSection to fetch.
     */
    where?: MeetingAgendaSectionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaSections to fetch.
     */
    orderBy?: MeetingAgendaSectionOrderByWithRelationInput | MeetingAgendaSectionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAgendaSections.
     */
    cursor?: MeetingAgendaSectionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaSections 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` MeetingAgendaSections.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAgendaSections.
     */
    distinct?: MeetingAgendaSectionScalarFieldEnum | MeetingAgendaSectionScalarFieldEnum[]
  }

  /**
   * MeetingAgendaSection findFirstOrThrow
   */
  export type MeetingAgendaSectionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaSection to fetch.
     */
    where?: MeetingAgendaSectionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaSections to fetch.
     */
    orderBy?: MeetingAgendaSectionOrderByWithRelationInput | MeetingAgendaSectionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAgendaSections.
     */
    cursor?: MeetingAgendaSectionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaSections 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` MeetingAgendaSections.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAgendaSections.
     */
    distinct?: MeetingAgendaSectionScalarFieldEnum | MeetingAgendaSectionScalarFieldEnum[]
  }

  /**
   * MeetingAgendaSection findMany
   */
  export type MeetingAgendaSectionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaSections to fetch.
     */
    where?: MeetingAgendaSectionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaSections to fetch.
     */
    orderBy?: MeetingAgendaSectionOrderByWithRelationInput | MeetingAgendaSectionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAgendaSections.
     */
    cursor?: MeetingAgendaSectionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaSections 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` MeetingAgendaSections.
     */
    skip?: number
    distinct?: MeetingAgendaSectionScalarFieldEnum | MeetingAgendaSectionScalarFieldEnum[]
  }

  /**
   * MeetingAgendaSection create
   */
  export type MeetingAgendaSectionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAgendaSection.
     */
    data: XOR<MeetingAgendaSectionCreateInput, MeetingAgendaSectionUncheckedCreateInput>
  }

  /**
   * MeetingAgendaSection createMany
   */
  export type MeetingAgendaSectionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAgendaSections.
     */
    data: MeetingAgendaSectionCreateManyInput | MeetingAgendaSectionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAgendaSection createManyAndReturn
   */
  export type MeetingAgendaSectionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAgendaSections.
     */
    data: MeetingAgendaSectionCreateManyInput | MeetingAgendaSectionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAgendaSection update
   */
  export type MeetingAgendaSectionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAgendaSection.
     */
    data: XOR<MeetingAgendaSectionUpdateInput, MeetingAgendaSectionUncheckedUpdateInput>
    /**
     * Choose, which MeetingAgendaSection to update.
     */
    where: MeetingAgendaSectionWhereUniqueInput
  }

  /**
   * MeetingAgendaSection updateMany
   */
  export type MeetingAgendaSectionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAgendaSections.
     */
    data: XOR<MeetingAgendaSectionUpdateManyMutationInput, MeetingAgendaSectionUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAgendaSections to update
     */
    where?: MeetingAgendaSectionWhereInput
    /**
     * Limit how many MeetingAgendaSections to update.
     */
    limit?: number
  }

  /**
   * MeetingAgendaSection updateManyAndReturn
   */
  export type MeetingAgendaSectionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAgendaSections.
     */
    data: XOR<MeetingAgendaSectionUpdateManyMutationInput, MeetingAgendaSectionUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAgendaSections to update
     */
    where?: MeetingAgendaSectionWhereInput
    /**
     * Limit how many MeetingAgendaSections to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAgendaSection upsert
   */
  export type MeetingAgendaSectionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAgendaSection to update in case it exists.
     */
    where: MeetingAgendaSectionWhereUniqueInput
    /**
     * In case the MeetingAgendaSection found by the `where` argument doesn't exist, create a new MeetingAgendaSection with this data.
     */
    create: XOR<MeetingAgendaSectionCreateInput, MeetingAgendaSectionUncheckedCreateInput>
    /**
     * In case the MeetingAgendaSection was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAgendaSectionUpdateInput, MeetingAgendaSectionUncheckedUpdateInput>
  }

  /**
   * MeetingAgendaSection delete
   */
  export type MeetingAgendaSectionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
    /**
     * Filter which MeetingAgendaSection to delete.
     */
    where: MeetingAgendaSectionWhereUniqueInput
  }

  /**
   * MeetingAgendaSection deleteMany
   */
  export type MeetingAgendaSectionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAgendaSections to delete
     */
    where?: MeetingAgendaSectionWhereInput
    /**
     * Limit how many MeetingAgendaSections to delete.
     */
    limit?: number
  }

  /**
   * MeetingAgendaSection.organization
   */
  export type MeetingAgendaSection$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * MeetingAgendaSection.items
   */
  export type MeetingAgendaSection$itemsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    where?: MeetingAgendaItemWhereInput
    orderBy?: MeetingAgendaItemOrderByWithRelationInput | MeetingAgendaItemOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemScalarFieldEnum | MeetingAgendaItemScalarFieldEnum[]
  }

  /**
   * MeetingAgendaSection without action
   */
  export type MeetingAgendaSectionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaSection
     */
    select?: MeetingAgendaSectionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaSection
     */
    omit?: MeetingAgendaSectionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaSectionInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAgendaItem
   */

  export type AggregateMeetingAgendaItem = {
    _count: MeetingAgendaItemCountAggregateOutputType | null
    _avg: MeetingAgendaItemAvgAggregateOutputType | null
    _sum: MeetingAgendaItemSumAggregateOutputType | null
    _min: MeetingAgendaItemMinAggregateOutputType | null
    _max: MeetingAgendaItemMaxAggregateOutputType | null
  }

  export type MeetingAgendaItemAvgAggregateOutputType = {
    order: number | null
    timeMinutes: number | null
  }

  export type MeetingAgendaItemSumAggregateOutputType = {
    order: number | null
    timeMinutes: number | null
  }

  export type MeetingAgendaItemMinAggregateOutputType = {
    id: string | null
    sectionId: string | null
    order: number | null
    title: string | null
    description: string | null
    code: string | null
    timeMinutes: number | null
    presenterUserId: string | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAgendaItemMaxAggregateOutputType = {
    id: string | null
    sectionId: string | null
    order: number | null
    title: string | null
    description: string | null
    code: string | null
    timeMinutes: number | null
    presenterUserId: string | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAgendaItemCountAggregateOutputType = {
    id: number
    sectionId: number
    order: number
    title: number
    description: number
    columnDescriptions: number
    code: number
    timeMinutes: number
    presenterUserId: number
    createdById: number
    organizationId: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type MeetingAgendaItemAvgAggregateInputType = {
    order?: true
    timeMinutes?: true
  }

  export type MeetingAgendaItemSumAggregateInputType = {
    order?: true
    timeMinutes?: true
  }

  export type MeetingAgendaItemMinAggregateInputType = {
    id?: true
    sectionId?: true
    order?: true
    title?: true
    description?: true
    code?: true
    timeMinutes?: true
    presenterUserId?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAgendaItemMaxAggregateInputType = {
    id?: true
    sectionId?: true
    order?: true
    title?: true
    description?: true
    code?: true
    timeMinutes?: true
    presenterUserId?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAgendaItemCountAggregateInputType = {
    id?: true
    sectionId?: true
    order?: true
    title?: true
    description?: true
    columnDescriptions?: true
    code?: true
    timeMinutes?: true
    presenterUserId?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type MeetingAgendaItemAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAgendaItem to aggregate.
     */
    where?: MeetingAgendaItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItems to fetch.
     */
    orderBy?: MeetingAgendaItemOrderByWithRelationInput | MeetingAgendaItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAgendaItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItems 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` MeetingAgendaItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAgendaItems
    **/
    _count?: true | MeetingAgendaItemCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAgendaItemAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingAgendaItemSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAgendaItemMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAgendaItemMaxAggregateInputType
  }

  export type GetMeetingAgendaItemAggregateType<T extends MeetingAgendaItemAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAgendaItem]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAgendaItem[P]>
      : GetScalarType<T[P], AggregateMeetingAgendaItem[P]>
  }




  export type MeetingAgendaItemGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAgendaItemWhereInput
    orderBy?: MeetingAgendaItemOrderByWithAggregationInput | MeetingAgendaItemOrderByWithAggregationInput[]
    by: MeetingAgendaItemScalarFieldEnum[] | MeetingAgendaItemScalarFieldEnum
    having?: MeetingAgendaItemScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAgendaItemCountAggregateInputType | true
    _avg?: MeetingAgendaItemAvgAggregateInputType
    _sum?: MeetingAgendaItemSumAggregateInputType
    _min?: MeetingAgendaItemMinAggregateInputType
    _max?: MeetingAgendaItemMaxAggregateInputType
  }

  export type MeetingAgendaItemGroupByOutputType = {
    id: string
    sectionId: string
    order: number
    title: string
    description: string | null
    columnDescriptions: string[]
    code: string | null
    timeMinutes: number | null
    presenterUserId: string | null
    createdById: string
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: MeetingAgendaItemCountAggregateOutputType | null
    _avg: MeetingAgendaItemAvgAggregateOutputType | null
    _sum: MeetingAgendaItemSumAggregateOutputType | null
    _min: MeetingAgendaItemMinAggregateOutputType | null
    _max: MeetingAgendaItemMaxAggregateOutputType | null
  }

  type GetMeetingAgendaItemGroupByPayload<T extends MeetingAgendaItemGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAgendaItemGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAgendaItemGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAgendaItemGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAgendaItemGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAgendaItemSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sectionId?: boolean
    order?: boolean
    title?: boolean
    description?: boolean
    columnDescriptions?: boolean
    code?: boolean
    timeMinutes?: boolean
    presenterUserId?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    section?: boolean | MeetingAgendaSectionDefaultArgs<ExtArgs>
    presenter?: boolean | MeetingAgendaItem$presenterArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItem$organizationArgs<ExtArgs>
    uploadTasks?: boolean | MeetingAgendaItem$uploadTasksArgs<ExtArgs>
    attachments?: boolean | MeetingAgendaItem$attachmentsArgs<ExtArgs>
    _count?: boolean | MeetingAgendaItemCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItem"]>

  export type MeetingAgendaItemSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sectionId?: boolean
    order?: boolean
    title?: boolean
    description?: boolean
    columnDescriptions?: boolean
    code?: boolean
    timeMinutes?: boolean
    presenterUserId?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    section?: boolean | MeetingAgendaSectionDefaultArgs<ExtArgs>
    presenter?: boolean | MeetingAgendaItem$presenterArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItem$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItem"]>

  export type MeetingAgendaItemSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sectionId?: boolean
    order?: boolean
    title?: boolean
    description?: boolean
    columnDescriptions?: boolean
    code?: boolean
    timeMinutes?: boolean
    presenterUserId?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    section?: boolean | MeetingAgendaSectionDefaultArgs<ExtArgs>
    presenter?: boolean | MeetingAgendaItem$presenterArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItem$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItem"]>

  export type MeetingAgendaItemSelectScalar = {
    id?: boolean
    sectionId?: boolean
    order?: boolean
    title?: boolean
    description?: boolean
    columnDescriptions?: boolean
    code?: boolean
    timeMinutes?: boolean
    presenterUserId?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type MeetingAgendaItemOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "sectionId" | "order" | "title" | "description" | "columnDescriptions" | "code" | "timeMinutes" | "presenterUserId" | "createdById" | "organizationId" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["meetingAgendaItem"]>
  export type MeetingAgendaItemInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    section?: boolean | MeetingAgendaSectionDefaultArgs<ExtArgs>
    presenter?: boolean | MeetingAgendaItem$presenterArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItem$organizationArgs<ExtArgs>
    uploadTasks?: boolean | MeetingAgendaItem$uploadTasksArgs<ExtArgs>
    attachments?: boolean | MeetingAgendaItem$attachmentsArgs<ExtArgs>
    _count?: boolean | MeetingAgendaItemCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type MeetingAgendaItemIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    section?: boolean | MeetingAgendaSectionDefaultArgs<ExtArgs>
    presenter?: boolean | MeetingAgendaItem$presenterArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItem$organizationArgs<ExtArgs>
  }
  export type MeetingAgendaItemIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    section?: boolean | MeetingAgendaSectionDefaultArgs<ExtArgs>
    presenter?: boolean | MeetingAgendaItem$presenterArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItem$organizationArgs<ExtArgs>
  }

  export type $MeetingAgendaItemPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAgendaItem"
    objects: {
      section: Prisma.$MeetingAgendaSectionPayload<ExtArgs>
      presenter: Prisma.$UserPayload<ExtArgs> | null
      createdBy: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
      uploadTasks: Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>[]
      attachments: Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      sectionId: string
      order: number
      title: string
      /**
       * 单栏段使用：自由描述文本（section.columnLabels 为空时生效）
       */
      description: string | null
      /**
       * 多栏段使用：按列分块的描述，与 section.columnLabels 等长
       */
      columnDescriptions: string[]
      code: string | null
      timeMinutes: number | null
      presenterUserId: string | null
      createdById: string
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["meetingAgendaItem"]>
    composites: {}
  }

  type MeetingAgendaItemGetPayload<S extends boolean | null | undefined | MeetingAgendaItemDefaultArgs> = $Result.GetResult<Prisma.$MeetingAgendaItemPayload, S>

  type MeetingAgendaItemCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAgendaItemFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAgendaItemCountAggregateInputType | true
    }

  export interface MeetingAgendaItemDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAgendaItem'], meta: { name: 'MeetingAgendaItem' } }
    /**
     * Find zero or one MeetingAgendaItem that matches the filter.
     * @param {MeetingAgendaItemFindUniqueArgs} args - Arguments to find a MeetingAgendaItem
     * @example
     * // Get one MeetingAgendaItem
     * const meetingAgendaItem = await prisma.meetingAgendaItem.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAgendaItemFindUniqueArgs>(args: SelectSubset<T, MeetingAgendaItemFindUniqueArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAgendaItem that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAgendaItemFindUniqueOrThrowArgs} args - Arguments to find a MeetingAgendaItem
     * @example
     * // Get one MeetingAgendaItem
     * const meetingAgendaItem = await prisma.meetingAgendaItem.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAgendaItemFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAgendaItemFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAgendaItem 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 {MeetingAgendaItemFindFirstArgs} args - Arguments to find a MeetingAgendaItem
     * @example
     * // Get one MeetingAgendaItem
     * const meetingAgendaItem = await prisma.meetingAgendaItem.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAgendaItemFindFirstArgs>(args?: SelectSubset<T, MeetingAgendaItemFindFirstArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAgendaItem 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 {MeetingAgendaItemFindFirstOrThrowArgs} args - Arguments to find a MeetingAgendaItem
     * @example
     * // Get one MeetingAgendaItem
     * const meetingAgendaItem = await prisma.meetingAgendaItem.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAgendaItemFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAgendaItemFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAgendaItems 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 {MeetingAgendaItemFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAgendaItems
     * const meetingAgendaItems = await prisma.meetingAgendaItem.findMany()
     * 
     * // Get first 10 MeetingAgendaItems
     * const meetingAgendaItems = await prisma.meetingAgendaItem.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAgendaItemWithIdOnly = await prisma.meetingAgendaItem.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAgendaItemFindManyArgs>(args?: SelectSubset<T, MeetingAgendaItemFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAgendaItem.
     * @param {MeetingAgendaItemCreateArgs} args - Arguments to create a MeetingAgendaItem.
     * @example
     * // Create one MeetingAgendaItem
     * const MeetingAgendaItem = await prisma.meetingAgendaItem.create({
     *   data: {
     *     // ... data to create a MeetingAgendaItem
     *   }
     * })
     * 
     */
    create<T extends MeetingAgendaItemCreateArgs>(args: SelectSubset<T, MeetingAgendaItemCreateArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAgendaItems.
     * @param {MeetingAgendaItemCreateManyArgs} args - Arguments to create many MeetingAgendaItems.
     * @example
     * // Create many MeetingAgendaItems
     * const meetingAgendaItem = await prisma.meetingAgendaItem.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAgendaItemCreateManyArgs>(args?: SelectSubset<T, MeetingAgendaItemCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAgendaItems and returns the data saved in the database.
     * @param {MeetingAgendaItemCreateManyAndReturnArgs} args - Arguments to create many MeetingAgendaItems.
     * @example
     * // Create many MeetingAgendaItems
     * const meetingAgendaItem = await prisma.meetingAgendaItem.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAgendaItems and only return the `id`
     * const meetingAgendaItemWithIdOnly = await prisma.meetingAgendaItem.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 MeetingAgendaItemCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAgendaItemCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAgendaItem.
     * @param {MeetingAgendaItemDeleteArgs} args - Arguments to delete one MeetingAgendaItem.
     * @example
     * // Delete one MeetingAgendaItem
     * const MeetingAgendaItem = await prisma.meetingAgendaItem.delete({
     *   where: {
     *     // ... filter to delete one MeetingAgendaItem
     *   }
     * })
     * 
     */
    delete<T extends MeetingAgendaItemDeleteArgs>(args: SelectSubset<T, MeetingAgendaItemDeleteArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAgendaItem.
     * @param {MeetingAgendaItemUpdateArgs} args - Arguments to update one MeetingAgendaItem.
     * @example
     * // Update one MeetingAgendaItem
     * const meetingAgendaItem = await prisma.meetingAgendaItem.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAgendaItemUpdateArgs>(args: SelectSubset<T, MeetingAgendaItemUpdateArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAgendaItems.
     * @param {MeetingAgendaItemDeleteManyArgs} args - Arguments to filter MeetingAgendaItems to delete.
     * @example
     * // Delete a few MeetingAgendaItems
     * const { count } = await prisma.meetingAgendaItem.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAgendaItemDeleteManyArgs>(args?: SelectSubset<T, MeetingAgendaItemDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAgendaItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAgendaItems
     * const meetingAgendaItem = await prisma.meetingAgendaItem.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAgendaItemUpdateManyArgs>(args: SelectSubset<T, MeetingAgendaItemUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAgendaItems and returns the data updated in the database.
     * @param {MeetingAgendaItemUpdateManyAndReturnArgs} args - Arguments to update many MeetingAgendaItems.
     * @example
     * // Update many MeetingAgendaItems
     * const meetingAgendaItem = await prisma.meetingAgendaItem.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAgendaItems and only return the `id`
     * const meetingAgendaItemWithIdOnly = await prisma.meetingAgendaItem.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 MeetingAgendaItemUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAgendaItemUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAgendaItem.
     * @param {MeetingAgendaItemUpsertArgs} args - Arguments to update or create a MeetingAgendaItem.
     * @example
     * // Update or create a MeetingAgendaItem
     * const meetingAgendaItem = await prisma.meetingAgendaItem.upsert({
     *   create: {
     *     // ... data to create a MeetingAgendaItem
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAgendaItem we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAgendaItemUpsertArgs>(args: SelectSubset<T, MeetingAgendaItemUpsertArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAgendaItems.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemCountArgs} args - Arguments to filter MeetingAgendaItems to count.
     * @example
     * // Count the number of MeetingAgendaItems
     * const count = await prisma.meetingAgendaItem.count({
     *   where: {
     *     // ... the filter for the MeetingAgendaItems we want to count
     *   }
     * })
    **/
    count<T extends MeetingAgendaItemCountArgs>(
      args?: Subset<T, MeetingAgendaItemCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAgendaItemCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAgendaItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemAggregateArgs} 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 MeetingAgendaItemAggregateArgs>(args: Subset<T, MeetingAgendaItemAggregateArgs>): Prisma.PrismaPromise<GetMeetingAgendaItemAggregateType<T>>

    /**
     * Group by MeetingAgendaItem.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemGroupByArgs} 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 MeetingAgendaItemGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAgendaItemGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAgendaItemGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAgendaItemGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAgendaItemGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAgendaItem model
   */
  readonly fields: MeetingAgendaItemFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAgendaItem.
   * 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__MeetingAgendaItemClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    section<T extends MeetingAgendaSectionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaSectionDefaultArgs<ExtArgs>>): Prisma__MeetingAgendaSectionClient<$Result.GetResult<Prisma.$MeetingAgendaSectionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    presenter<T extends MeetingAgendaItem$presenterArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaItem$presenterArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    createdBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends MeetingAgendaItem$organizationArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaItem$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    uploadTasks<T extends MeetingAgendaItem$uploadTasksArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaItem$uploadTasksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    attachments<T extends MeetingAgendaItem$attachmentsArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaItem$attachmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAgendaItem model
   */
  interface MeetingAgendaItemFieldRefs {
    readonly id: FieldRef<"MeetingAgendaItem", 'String'>
    readonly sectionId: FieldRef<"MeetingAgendaItem", 'String'>
    readonly order: FieldRef<"MeetingAgendaItem", 'Int'>
    readonly title: FieldRef<"MeetingAgendaItem", 'String'>
    readonly description: FieldRef<"MeetingAgendaItem", 'String'>
    readonly columnDescriptions: FieldRef<"MeetingAgendaItem", 'String[]'>
    readonly code: FieldRef<"MeetingAgendaItem", 'String'>
    readonly timeMinutes: FieldRef<"MeetingAgendaItem", 'Int'>
    readonly presenterUserId: FieldRef<"MeetingAgendaItem", 'String'>
    readonly createdById: FieldRef<"MeetingAgendaItem", 'String'>
    readonly organizationId: FieldRef<"MeetingAgendaItem", 'String'>
    readonly createdAt: FieldRef<"MeetingAgendaItem", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAgendaItem", 'DateTime'>
    readonly deletedAt: FieldRef<"MeetingAgendaItem", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAgendaItem findUnique
   */
  export type MeetingAgendaItemFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItem to fetch.
     */
    where: MeetingAgendaItemWhereUniqueInput
  }

  /**
   * MeetingAgendaItem findUniqueOrThrow
   */
  export type MeetingAgendaItemFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItem to fetch.
     */
    where: MeetingAgendaItemWhereUniqueInput
  }

  /**
   * MeetingAgendaItem findFirst
   */
  export type MeetingAgendaItemFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItem to fetch.
     */
    where?: MeetingAgendaItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItems to fetch.
     */
    orderBy?: MeetingAgendaItemOrderByWithRelationInput | MeetingAgendaItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAgendaItems.
     */
    cursor?: MeetingAgendaItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItems 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` MeetingAgendaItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAgendaItems.
     */
    distinct?: MeetingAgendaItemScalarFieldEnum | MeetingAgendaItemScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItem findFirstOrThrow
   */
  export type MeetingAgendaItemFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItem to fetch.
     */
    where?: MeetingAgendaItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItems to fetch.
     */
    orderBy?: MeetingAgendaItemOrderByWithRelationInput | MeetingAgendaItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAgendaItems.
     */
    cursor?: MeetingAgendaItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItems 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` MeetingAgendaItems.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAgendaItems.
     */
    distinct?: MeetingAgendaItemScalarFieldEnum | MeetingAgendaItemScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItem findMany
   */
  export type MeetingAgendaItemFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItems to fetch.
     */
    where?: MeetingAgendaItemWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItems to fetch.
     */
    orderBy?: MeetingAgendaItemOrderByWithRelationInput | MeetingAgendaItemOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAgendaItems.
     */
    cursor?: MeetingAgendaItemWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItems 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` MeetingAgendaItems.
     */
    skip?: number
    distinct?: MeetingAgendaItemScalarFieldEnum | MeetingAgendaItemScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItem create
   */
  export type MeetingAgendaItemCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAgendaItem.
     */
    data: XOR<MeetingAgendaItemCreateInput, MeetingAgendaItemUncheckedCreateInput>
  }

  /**
   * MeetingAgendaItem createMany
   */
  export type MeetingAgendaItemCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAgendaItems.
     */
    data: MeetingAgendaItemCreateManyInput | MeetingAgendaItemCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAgendaItem createManyAndReturn
   */
  export type MeetingAgendaItemCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAgendaItems.
     */
    data: MeetingAgendaItemCreateManyInput | MeetingAgendaItemCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAgendaItem update
   */
  export type MeetingAgendaItemUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAgendaItem.
     */
    data: XOR<MeetingAgendaItemUpdateInput, MeetingAgendaItemUncheckedUpdateInput>
    /**
     * Choose, which MeetingAgendaItem to update.
     */
    where: MeetingAgendaItemWhereUniqueInput
  }

  /**
   * MeetingAgendaItem updateMany
   */
  export type MeetingAgendaItemUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAgendaItems.
     */
    data: XOR<MeetingAgendaItemUpdateManyMutationInput, MeetingAgendaItemUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAgendaItems to update
     */
    where?: MeetingAgendaItemWhereInput
    /**
     * Limit how many MeetingAgendaItems to update.
     */
    limit?: number
  }

  /**
   * MeetingAgendaItem updateManyAndReturn
   */
  export type MeetingAgendaItemUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAgendaItems.
     */
    data: XOR<MeetingAgendaItemUpdateManyMutationInput, MeetingAgendaItemUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAgendaItems to update
     */
    where?: MeetingAgendaItemWhereInput
    /**
     * Limit how many MeetingAgendaItems to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAgendaItem upsert
   */
  export type MeetingAgendaItemUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAgendaItem to update in case it exists.
     */
    where: MeetingAgendaItemWhereUniqueInput
    /**
     * In case the MeetingAgendaItem found by the `where` argument doesn't exist, create a new MeetingAgendaItem with this data.
     */
    create: XOR<MeetingAgendaItemCreateInput, MeetingAgendaItemUncheckedCreateInput>
    /**
     * In case the MeetingAgendaItem was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAgendaItemUpdateInput, MeetingAgendaItemUncheckedUpdateInput>
  }

  /**
   * MeetingAgendaItem delete
   */
  export type MeetingAgendaItemDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
    /**
     * Filter which MeetingAgendaItem to delete.
     */
    where: MeetingAgendaItemWhereUniqueInput
  }

  /**
   * MeetingAgendaItem deleteMany
   */
  export type MeetingAgendaItemDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAgendaItems to delete
     */
    where?: MeetingAgendaItemWhereInput
    /**
     * Limit how many MeetingAgendaItems to delete.
     */
    limit?: number
  }

  /**
   * MeetingAgendaItem.presenter
   */
  export type MeetingAgendaItem$presenterArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the User
     */
    select?: UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the User
     */
    omit?: UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: UserInclude<ExtArgs> | null
    where?: UserWhereInput
  }

  /**
   * MeetingAgendaItem.organization
   */
  export type MeetingAgendaItem$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * MeetingAgendaItem.uploadTasks
   */
  export type MeetingAgendaItem$uploadTasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    where?: MeetingAgendaItemUploadTaskWhereInput
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemUploadTaskScalarFieldEnum | MeetingAgendaItemUploadTaskScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItem.attachments
   */
  export type MeetingAgendaItem$attachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    where?: MeetingAgendaItemAttachmentWhereInput
    orderBy?: MeetingAgendaItemAttachmentOrderByWithRelationInput | MeetingAgendaItemAttachmentOrderByWithRelationInput[]
    cursor?: MeetingAgendaItemAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: MeetingAgendaItemAttachmentScalarFieldEnum | MeetingAgendaItemAttachmentScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItem without action
   */
  export type MeetingAgendaItemDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItem
     */
    select?: MeetingAgendaItemSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItem
     */
    omit?: MeetingAgendaItemOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAgendaItemUploadTask
   */

  export type AggregateMeetingAgendaItemUploadTask = {
    _count: MeetingAgendaItemUploadTaskCountAggregateOutputType | null
    _min: MeetingAgendaItemUploadTaskMinAggregateOutputType | null
    _max: MeetingAgendaItemUploadTaskMaxAggregateOutputType | null
  }

  export type MeetingAgendaItemUploadTaskMinAggregateOutputType = {
    id: string | null
    agendaItemId: string | null
    assigneeUserId: string | null
    assignedById: string | null
    status: $Enums.UploadTaskStatus | null
    dueAt: Date | null
    assignedAt: Date | null
    completedAt: Date | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAgendaItemUploadTaskMaxAggregateOutputType = {
    id: string | null
    agendaItemId: string | null
    assigneeUserId: string | null
    assignedById: string | null
    status: $Enums.UploadTaskStatus | null
    dueAt: Date | null
    assignedAt: Date | null
    completedAt: Date | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAgendaItemUploadTaskCountAggregateOutputType = {
    id: number
    agendaItemId: number
    assigneeUserId: number
    assignedById: number
    status: number
    dueAt: number
    assignedAt: number
    completedAt: number
    createdById: number
    organizationId: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type MeetingAgendaItemUploadTaskMinAggregateInputType = {
    id?: true
    agendaItemId?: true
    assigneeUserId?: true
    assignedById?: true
    status?: true
    dueAt?: true
    assignedAt?: true
    completedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAgendaItemUploadTaskMaxAggregateInputType = {
    id?: true
    agendaItemId?: true
    assigneeUserId?: true
    assignedById?: true
    status?: true
    dueAt?: true
    assignedAt?: true
    completedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAgendaItemUploadTaskCountAggregateInputType = {
    id?: true
    agendaItemId?: true
    assigneeUserId?: true
    assignedById?: true
    status?: true
    dueAt?: true
    assignedAt?: true
    completedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type MeetingAgendaItemUploadTaskAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAgendaItemUploadTask to aggregate.
     */
    where?: MeetingAgendaItemUploadTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItemUploadTasks to fetch.
     */
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItemUploadTasks 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` MeetingAgendaItemUploadTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAgendaItemUploadTasks
    **/
    _count?: true | MeetingAgendaItemUploadTaskCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAgendaItemUploadTaskMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAgendaItemUploadTaskMaxAggregateInputType
  }

  export type GetMeetingAgendaItemUploadTaskAggregateType<T extends MeetingAgendaItemUploadTaskAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAgendaItemUploadTask]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAgendaItemUploadTask[P]>
      : GetScalarType<T[P], AggregateMeetingAgendaItemUploadTask[P]>
  }




  export type MeetingAgendaItemUploadTaskGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAgendaItemUploadTaskWhereInput
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithAggregationInput | MeetingAgendaItemUploadTaskOrderByWithAggregationInput[]
    by: MeetingAgendaItemUploadTaskScalarFieldEnum[] | MeetingAgendaItemUploadTaskScalarFieldEnum
    having?: MeetingAgendaItemUploadTaskScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAgendaItemUploadTaskCountAggregateInputType | true
    _min?: MeetingAgendaItemUploadTaskMinAggregateInputType
    _max?: MeetingAgendaItemUploadTaskMaxAggregateInputType
  }

  export type MeetingAgendaItemUploadTaskGroupByOutputType = {
    id: string
    agendaItemId: string
    assigneeUserId: string
    assignedById: string
    status: $Enums.UploadTaskStatus
    dueAt: Date | null
    assignedAt: Date
    completedAt: Date | null
    createdById: string
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: MeetingAgendaItemUploadTaskCountAggregateOutputType | null
    _min: MeetingAgendaItemUploadTaskMinAggregateOutputType | null
    _max: MeetingAgendaItemUploadTaskMaxAggregateOutputType | null
  }

  type GetMeetingAgendaItemUploadTaskGroupByPayload<T extends MeetingAgendaItemUploadTaskGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAgendaItemUploadTaskGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAgendaItemUploadTaskGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAgendaItemUploadTaskGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAgendaItemUploadTaskGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAgendaItemUploadTaskSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agendaItemId?: boolean
    assigneeUserId?: boolean
    assignedById?: boolean
    status?: boolean
    dueAt?: boolean
    assignedAt?: boolean
    completedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
    assignedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemUploadTask$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItemUploadTask"]>

  export type MeetingAgendaItemUploadTaskSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agendaItemId?: boolean
    assigneeUserId?: boolean
    assignedById?: boolean
    status?: boolean
    dueAt?: boolean
    assignedAt?: boolean
    completedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
    assignedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemUploadTask$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItemUploadTask"]>

  export type MeetingAgendaItemUploadTaskSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agendaItemId?: boolean
    assigneeUserId?: boolean
    assignedById?: boolean
    status?: boolean
    dueAt?: boolean
    assignedAt?: boolean
    completedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
    assignedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemUploadTask$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItemUploadTask"]>

  export type MeetingAgendaItemUploadTaskSelectScalar = {
    id?: boolean
    agendaItemId?: boolean
    assigneeUserId?: boolean
    assignedById?: boolean
    status?: boolean
    dueAt?: boolean
    assignedAt?: boolean
    completedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type MeetingAgendaItemUploadTaskOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "agendaItemId" | "assigneeUserId" | "assignedById" | "status" | "dueAt" | "assignedAt" | "completedAt" | "createdById" | "organizationId" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["meetingAgendaItemUploadTask"]>
  export type MeetingAgendaItemUploadTaskInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
    assignedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemUploadTask$organizationArgs<ExtArgs>
  }
  export type MeetingAgendaItemUploadTaskIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
    assignedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemUploadTask$organizationArgs<ExtArgs>
  }
  export type MeetingAgendaItemUploadTaskIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
    assignedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemUploadTask$organizationArgs<ExtArgs>
  }

  export type $MeetingAgendaItemUploadTaskPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAgendaItemUploadTask"
    objects: {
      agendaItem: Prisma.$MeetingAgendaItemPayload<ExtArgs>
      assignee: Prisma.$UserPayload<ExtArgs>
      assignedBy: Prisma.$UserPayload<ExtArgs>
      createdBy: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      agendaItemId: string
      assigneeUserId: string
      assignedById: string
      status: $Enums.UploadTaskStatus
      dueAt: Date | null
      assignedAt: Date
      completedAt: Date | null
      createdById: string
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["meetingAgendaItemUploadTask"]>
    composites: {}
  }

  type MeetingAgendaItemUploadTaskGetPayload<S extends boolean | null | undefined | MeetingAgendaItemUploadTaskDefaultArgs> = $Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload, S>

  type MeetingAgendaItemUploadTaskCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAgendaItemUploadTaskFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAgendaItemUploadTaskCountAggregateInputType | true
    }

  export interface MeetingAgendaItemUploadTaskDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAgendaItemUploadTask'], meta: { name: 'MeetingAgendaItemUploadTask' } }
    /**
     * Find zero or one MeetingAgendaItemUploadTask that matches the filter.
     * @param {MeetingAgendaItemUploadTaskFindUniqueArgs} args - Arguments to find a MeetingAgendaItemUploadTask
     * @example
     * // Get one MeetingAgendaItemUploadTask
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAgendaItemUploadTaskFindUniqueArgs>(args: SelectSubset<T, MeetingAgendaItemUploadTaskFindUniqueArgs<ExtArgs>>): Prisma__MeetingAgendaItemUploadTaskClient<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAgendaItemUploadTask that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAgendaItemUploadTaskFindUniqueOrThrowArgs} args - Arguments to find a MeetingAgendaItemUploadTask
     * @example
     * // Get one MeetingAgendaItemUploadTask
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAgendaItemUploadTaskFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAgendaItemUploadTaskFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAgendaItemUploadTaskClient<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAgendaItemUploadTask 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 {MeetingAgendaItemUploadTaskFindFirstArgs} args - Arguments to find a MeetingAgendaItemUploadTask
     * @example
     * // Get one MeetingAgendaItemUploadTask
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAgendaItemUploadTaskFindFirstArgs>(args?: SelectSubset<T, MeetingAgendaItemUploadTaskFindFirstArgs<ExtArgs>>): Prisma__MeetingAgendaItemUploadTaskClient<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAgendaItemUploadTask 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 {MeetingAgendaItemUploadTaskFindFirstOrThrowArgs} args - Arguments to find a MeetingAgendaItemUploadTask
     * @example
     * // Get one MeetingAgendaItemUploadTask
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAgendaItemUploadTaskFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAgendaItemUploadTaskFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAgendaItemUploadTaskClient<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAgendaItemUploadTasks 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 {MeetingAgendaItemUploadTaskFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAgendaItemUploadTasks
     * const meetingAgendaItemUploadTasks = await prisma.meetingAgendaItemUploadTask.findMany()
     * 
     * // Get first 10 MeetingAgendaItemUploadTasks
     * const meetingAgendaItemUploadTasks = await prisma.meetingAgendaItemUploadTask.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAgendaItemUploadTaskWithIdOnly = await prisma.meetingAgendaItemUploadTask.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAgendaItemUploadTaskFindManyArgs>(args?: SelectSubset<T, MeetingAgendaItemUploadTaskFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAgendaItemUploadTask.
     * @param {MeetingAgendaItemUploadTaskCreateArgs} args - Arguments to create a MeetingAgendaItemUploadTask.
     * @example
     * // Create one MeetingAgendaItemUploadTask
     * const MeetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.create({
     *   data: {
     *     // ... data to create a MeetingAgendaItemUploadTask
     *   }
     * })
     * 
     */
    create<T extends MeetingAgendaItemUploadTaskCreateArgs>(args: SelectSubset<T, MeetingAgendaItemUploadTaskCreateArgs<ExtArgs>>): Prisma__MeetingAgendaItemUploadTaskClient<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAgendaItemUploadTasks.
     * @param {MeetingAgendaItemUploadTaskCreateManyArgs} args - Arguments to create many MeetingAgendaItemUploadTasks.
     * @example
     * // Create many MeetingAgendaItemUploadTasks
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAgendaItemUploadTaskCreateManyArgs>(args?: SelectSubset<T, MeetingAgendaItemUploadTaskCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAgendaItemUploadTasks and returns the data saved in the database.
     * @param {MeetingAgendaItemUploadTaskCreateManyAndReturnArgs} args - Arguments to create many MeetingAgendaItemUploadTasks.
     * @example
     * // Create many MeetingAgendaItemUploadTasks
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAgendaItemUploadTasks and only return the `id`
     * const meetingAgendaItemUploadTaskWithIdOnly = await prisma.meetingAgendaItemUploadTask.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 MeetingAgendaItemUploadTaskCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAgendaItemUploadTaskCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAgendaItemUploadTask.
     * @param {MeetingAgendaItemUploadTaskDeleteArgs} args - Arguments to delete one MeetingAgendaItemUploadTask.
     * @example
     * // Delete one MeetingAgendaItemUploadTask
     * const MeetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.delete({
     *   where: {
     *     // ... filter to delete one MeetingAgendaItemUploadTask
     *   }
     * })
     * 
     */
    delete<T extends MeetingAgendaItemUploadTaskDeleteArgs>(args: SelectSubset<T, MeetingAgendaItemUploadTaskDeleteArgs<ExtArgs>>): Prisma__MeetingAgendaItemUploadTaskClient<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAgendaItemUploadTask.
     * @param {MeetingAgendaItemUploadTaskUpdateArgs} args - Arguments to update one MeetingAgendaItemUploadTask.
     * @example
     * // Update one MeetingAgendaItemUploadTask
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAgendaItemUploadTaskUpdateArgs>(args: SelectSubset<T, MeetingAgendaItemUploadTaskUpdateArgs<ExtArgs>>): Prisma__MeetingAgendaItemUploadTaskClient<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAgendaItemUploadTasks.
     * @param {MeetingAgendaItemUploadTaskDeleteManyArgs} args - Arguments to filter MeetingAgendaItemUploadTasks to delete.
     * @example
     * // Delete a few MeetingAgendaItemUploadTasks
     * const { count } = await prisma.meetingAgendaItemUploadTask.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAgendaItemUploadTaskDeleteManyArgs>(args?: SelectSubset<T, MeetingAgendaItemUploadTaskDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAgendaItemUploadTasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemUploadTaskUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAgendaItemUploadTasks
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAgendaItemUploadTaskUpdateManyArgs>(args: SelectSubset<T, MeetingAgendaItemUploadTaskUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAgendaItemUploadTasks and returns the data updated in the database.
     * @param {MeetingAgendaItemUploadTaskUpdateManyAndReturnArgs} args - Arguments to update many MeetingAgendaItemUploadTasks.
     * @example
     * // Update many MeetingAgendaItemUploadTasks
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAgendaItemUploadTasks and only return the `id`
     * const meetingAgendaItemUploadTaskWithIdOnly = await prisma.meetingAgendaItemUploadTask.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 MeetingAgendaItemUploadTaskUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAgendaItemUploadTaskUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAgendaItemUploadTask.
     * @param {MeetingAgendaItemUploadTaskUpsertArgs} args - Arguments to update or create a MeetingAgendaItemUploadTask.
     * @example
     * // Update or create a MeetingAgendaItemUploadTask
     * const meetingAgendaItemUploadTask = await prisma.meetingAgendaItemUploadTask.upsert({
     *   create: {
     *     // ... data to create a MeetingAgendaItemUploadTask
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAgendaItemUploadTask we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAgendaItemUploadTaskUpsertArgs>(args: SelectSubset<T, MeetingAgendaItemUploadTaskUpsertArgs<ExtArgs>>): Prisma__MeetingAgendaItemUploadTaskClient<$Result.GetResult<Prisma.$MeetingAgendaItemUploadTaskPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAgendaItemUploadTasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemUploadTaskCountArgs} args - Arguments to filter MeetingAgendaItemUploadTasks to count.
     * @example
     * // Count the number of MeetingAgendaItemUploadTasks
     * const count = await prisma.meetingAgendaItemUploadTask.count({
     *   where: {
     *     // ... the filter for the MeetingAgendaItemUploadTasks we want to count
     *   }
     * })
    **/
    count<T extends MeetingAgendaItemUploadTaskCountArgs>(
      args?: Subset<T, MeetingAgendaItemUploadTaskCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAgendaItemUploadTaskCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAgendaItemUploadTask.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemUploadTaskAggregateArgs} 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 MeetingAgendaItemUploadTaskAggregateArgs>(args: Subset<T, MeetingAgendaItemUploadTaskAggregateArgs>): Prisma.PrismaPromise<GetMeetingAgendaItemUploadTaskAggregateType<T>>

    /**
     * Group by MeetingAgendaItemUploadTask.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemUploadTaskGroupByArgs} 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 MeetingAgendaItemUploadTaskGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAgendaItemUploadTaskGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAgendaItemUploadTaskGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAgendaItemUploadTaskGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAgendaItemUploadTaskGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAgendaItemUploadTask model
   */
  readonly fields: MeetingAgendaItemUploadTaskFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAgendaItemUploadTask.
   * 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__MeetingAgendaItemUploadTaskClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    agendaItem<T extends MeetingAgendaItemDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaItemDefaultArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    assignee<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    assignedBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    createdBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends MeetingAgendaItemUploadTask$organizationArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaItemUploadTask$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAgendaItemUploadTask model
   */
  interface MeetingAgendaItemUploadTaskFieldRefs {
    readonly id: FieldRef<"MeetingAgendaItemUploadTask", 'String'>
    readonly agendaItemId: FieldRef<"MeetingAgendaItemUploadTask", 'String'>
    readonly assigneeUserId: FieldRef<"MeetingAgendaItemUploadTask", 'String'>
    readonly assignedById: FieldRef<"MeetingAgendaItemUploadTask", 'String'>
    readonly status: FieldRef<"MeetingAgendaItemUploadTask", 'UploadTaskStatus'>
    readonly dueAt: FieldRef<"MeetingAgendaItemUploadTask", 'DateTime'>
    readonly assignedAt: FieldRef<"MeetingAgendaItemUploadTask", 'DateTime'>
    readonly completedAt: FieldRef<"MeetingAgendaItemUploadTask", 'DateTime'>
    readonly createdById: FieldRef<"MeetingAgendaItemUploadTask", 'String'>
    readonly organizationId: FieldRef<"MeetingAgendaItemUploadTask", 'String'>
    readonly createdAt: FieldRef<"MeetingAgendaItemUploadTask", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAgendaItemUploadTask", 'DateTime'>
    readonly deletedAt: FieldRef<"MeetingAgendaItemUploadTask", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAgendaItemUploadTask findUnique
   */
  export type MeetingAgendaItemUploadTaskFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemUploadTask to fetch.
     */
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
  }

  /**
   * MeetingAgendaItemUploadTask findUniqueOrThrow
   */
  export type MeetingAgendaItemUploadTaskFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemUploadTask to fetch.
     */
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
  }

  /**
   * MeetingAgendaItemUploadTask findFirst
   */
  export type MeetingAgendaItemUploadTaskFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemUploadTask to fetch.
     */
    where?: MeetingAgendaItemUploadTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItemUploadTasks to fetch.
     */
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAgendaItemUploadTasks.
     */
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItemUploadTasks 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` MeetingAgendaItemUploadTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAgendaItemUploadTasks.
     */
    distinct?: MeetingAgendaItemUploadTaskScalarFieldEnum | MeetingAgendaItemUploadTaskScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItemUploadTask findFirstOrThrow
   */
  export type MeetingAgendaItemUploadTaskFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemUploadTask to fetch.
     */
    where?: MeetingAgendaItemUploadTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItemUploadTasks to fetch.
     */
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAgendaItemUploadTasks.
     */
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItemUploadTasks 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` MeetingAgendaItemUploadTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAgendaItemUploadTasks.
     */
    distinct?: MeetingAgendaItemUploadTaskScalarFieldEnum | MeetingAgendaItemUploadTaskScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItemUploadTask findMany
   */
  export type MeetingAgendaItemUploadTaskFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemUploadTasks to fetch.
     */
    where?: MeetingAgendaItemUploadTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItemUploadTasks to fetch.
     */
    orderBy?: MeetingAgendaItemUploadTaskOrderByWithRelationInput | MeetingAgendaItemUploadTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAgendaItemUploadTasks.
     */
    cursor?: MeetingAgendaItemUploadTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItemUploadTasks 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` MeetingAgendaItemUploadTasks.
     */
    skip?: number
    distinct?: MeetingAgendaItemUploadTaskScalarFieldEnum | MeetingAgendaItemUploadTaskScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItemUploadTask create
   */
  export type MeetingAgendaItemUploadTaskCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAgendaItemUploadTask.
     */
    data: XOR<MeetingAgendaItemUploadTaskCreateInput, MeetingAgendaItemUploadTaskUncheckedCreateInput>
  }

  /**
   * MeetingAgendaItemUploadTask createMany
   */
  export type MeetingAgendaItemUploadTaskCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAgendaItemUploadTasks.
     */
    data: MeetingAgendaItemUploadTaskCreateManyInput | MeetingAgendaItemUploadTaskCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAgendaItemUploadTask createManyAndReturn
   */
  export type MeetingAgendaItemUploadTaskCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAgendaItemUploadTasks.
     */
    data: MeetingAgendaItemUploadTaskCreateManyInput | MeetingAgendaItemUploadTaskCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAgendaItemUploadTask update
   */
  export type MeetingAgendaItemUploadTaskUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAgendaItemUploadTask.
     */
    data: XOR<MeetingAgendaItemUploadTaskUpdateInput, MeetingAgendaItemUploadTaskUncheckedUpdateInput>
    /**
     * Choose, which MeetingAgendaItemUploadTask to update.
     */
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
  }

  /**
   * MeetingAgendaItemUploadTask updateMany
   */
  export type MeetingAgendaItemUploadTaskUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAgendaItemUploadTasks.
     */
    data: XOR<MeetingAgendaItemUploadTaskUpdateManyMutationInput, MeetingAgendaItemUploadTaskUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAgendaItemUploadTasks to update
     */
    where?: MeetingAgendaItemUploadTaskWhereInput
    /**
     * Limit how many MeetingAgendaItemUploadTasks to update.
     */
    limit?: number
  }

  /**
   * MeetingAgendaItemUploadTask updateManyAndReturn
   */
  export type MeetingAgendaItemUploadTaskUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAgendaItemUploadTasks.
     */
    data: XOR<MeetingAgendaItemUploadTaskUpdateManyMutationInput, MeetingAgendaItemUploadTaskUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAgendaItemUploadTasks to update
     */
    where?: MeetingAgendaItemUploadTaskWhereInput
    /**
     * Limit how many MeetingAgendaItemUploadTasks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAgendaItemUploadTask upsert
   */
  export type MeetingAgendaItemUploadTaskUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAgendaItemUploadTask to update in case it exists.
     */
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    /**
     * In case the MeetingAgendaItemUploadTask found by the `where` argument doesn't exist, create a new MeetingAgendaItemUploadTask with this data.
     */
    create: XOR<MeetingAgendaItemUploadTaskCreateInput, MeetingAgendaItemUploadTaskUncheckedCreateInput>
    /**
     * In case the MeetingAgendaItemUploadTask was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAgendaItemUploadTaskUpdateInput, MeetingAgendaItemUploadTaskUncheckedUpdateInput>
  }

  /**
   * MeetingAgendaItemUploadTask delete
   */
  export type MeetingAgendaItemUploadTaskDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
    /**
     * Filter which MeetingAgendaItemUploadTask to delete.
     */
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
  }

  /**
   * MeetingAgendaItemUploadTask deleteMany
   */
  export type MeetingAgendaItemUploadTaskDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAgendaItemUploadTasks to delete
     */
    where?: MeetingAgendaItemUploadTaskWhereInput
    /**
     * Limit how many MeetingAgendaItemUploadTasks to delete.
     */
    limit?: number
  }

  /**
   * MeetingAgendaItemUploadTask.organization
   */
  export type MeetingAgendaItemUploadTask$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * MeetingAgendaItemUploadTask without action
   */
  export type MeetingAgendaItemUploadTaskDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemUploadTask
     */
    select?: MeetingAgendaItemUploadTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemUploadTask
     */
    omit?: MeetingAgendaItemUploadTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemUploadTaskInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAgendaItemAttachment
   */

  export type AggregateMeetingAgendaItemAttachment = {
    _count: MeetingAgendaItemAttachmentCountAggregateOutputType | null
    _avg: MeetingAgendaItemAttachmentAvgAggregateOutputType | null
    _sum: MeetingAgendaItemAttachmentSumAggregateOutputType | null
    _min: MeetingAgendaItemAttachmentMinAggregateOutputType | null
    _max: MeetingAgendaItemAttachmentMaxAggregateOutputType | null
  }

  export type MeetingAgendaItemAttachmentAvgAggregateOutputType = {
    size: number | null
  }

  export type MeetingAgendaItemAttachmentSumAggregateOutputType = {
    size: bigint | null
  }

  export type MeetingAgendaItemAttachmentMinAggregateOutputType = {
    id: string | null
    agendaItemId: string | null
    uploadedById: string | null
    filename: string | null
    mimeType: string | null
    size: bigint | null
    storagePath: string | null
    uploadedAt: Date | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAgendaItemAttachmentMaxAggregateOutputType = {
    id: string | null
    agendaItemId: string | null
    uploadedById: string | null
    filename: string | null
    mimeType: string | null
    size: bigint | null
    storagePath: string | null
    uploadedAt: Date | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAgendaItemAttachmentCountAggregateOutputType = {
    id: number
    agendaItemId: number
    uploadedById: number
    filename: number
    mimeType: number
    size: number
    storagePath: number
    uploadedAt: number
    createdById: number
    organizationId: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type MeetingAgendaItemAttachmentAvgAggregateInputType = {
    size?: true
  }

  export type MeetingAgendaItemAttachmentSumAggregateInputType = {
    size?: true
  }

  export type MeetingAgendaItemAttachmentMinAggregateInputType = {
    id?: true
    agendaItemId?: true
    uploadedById?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    uploadedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAgendaItemAttachmentMaxAggregateInputType = {
    id?: true
    agendaItemId?: true
    uploadedById?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    uploadedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAgendaItemAttachmentCountAggregateInputType = {
    id?: true
    agendaItemId?: true
    uploadedById?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    uploadedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type MeetingAgendaItemAttachmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAgendaItemAttachment to aggregate.
     */
    where?: MeetingAgendaItemAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItemAttachments to fetch.
     */
    orderBy?: MeetingAgendaItemAttachmentOrderByWithRelationInput | MeetingAgendaItemAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAgendaItemAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItemAttachments 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` MeetingAgendaItemAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAgendaItemAttachments
    **/
    _count?: true | MeetingAgendaItemAttachmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAgendaItemAttachmentAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingAgendaItemAttachmentSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAgendaItemAttachmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAgendaItemAttachmentMaxAggregateInputType
  }

  export type GetMeetingAgendaItemAttachmentAggregateType<T extends MeetingAgendaItemAttachmentAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAgendaItemAttachment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAgendaItemAttachment[P]>
      : GetScalarType<T[P], AggregateMeetingAgendaItemAttachment[P]>
  }




  export type MeetingAgendaItemAttachmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAgendaItemAttachmentWhereInput
    orderBy?: MeetingAgendaItemAttachmentOrderByWithAggregationInput | MeetingAgendaItemAttachmentOrderByWithAggregationInput[]
    by: MeetingAgendaItemAttachmentScalarFieldEnum[] | MeetingAgendaItemAttachmentScalarFieldEnum
    having?: MeetingAgendaItemAttachmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAgendaItemAttachmentCountAggregateInputType | true
    _avg?: MeetingAgendaItemAttachmentAvgAggregateInputType
    _sum?: MeetingAgendaItemAttachmentSumAggregateInputType
    _min?: MeetingAgendaItemAttachmentMinAggregateInputType
    _max?: MeetingAgendaItemAttachmentMaxAggregateInputType
  }

  export type MeetingAgendaItemAttachmentGroupByOutputType = {
    id: string
    agendaItemId: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint
    storagePath: string
    uploadedAt: Date
    createdById: string
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: MeetingAgendaItemAttachmentCountAggregateOutputType | null
    _avg: MeetingAgendaItemAttachmentAvgAggregateOutputType | null
    _sum: MeetingAgendaItemAttachmentSumAggregateOutputType | null
    _min: MeetingAgendaItemAttachmentMinAggregateOutputType | null
    _max: MeetingAgendaItemAttachmentMaxAggregateOutputType | null
  }

  type GetMeetingAgendaItemAttachmentGroupByPayload<T extends MeetingAgendaItemAttachmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAgendaItemAttachmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAgendaItemAttachmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAgendaItemAttachmentGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAgendaItemAttachmentGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAgendaItemAttachmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agendaItemId?: boolean
    uploadedById?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    uploadedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemAttachment$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItemAttachment"]>

  export type MeetingAgendaItemAttachmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agendaItemId?: boolean
    uploadedById?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    uploadedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemAttachment$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItemAttachment"]>

  export type MeetingAgendaItemAttachmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agendaItemId?: boolean
    uploadedById?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    uploadedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemAttachment$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAgendaItemAttachment"]>

  export type MeetingAgendaItemAttachmentSelectScalar = {
    id?: boolean
    agendaItemId?: boolean
    uploadedById?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    uploadedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type MeetingAgendaItemAttachmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "agendaItemId" | "uploadedById" | "filename" | "mimeType" | "size" | "storagePath" | "uploadedAt" | "createdById" | "organizationId" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["meetingAgendaItemAttachment"]>
  export type MeetingAgendaItemAttachmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemAttachment$organizationArgs<ExtArgs>
  }
  export type MeetingAgendaItemAttachmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemAttachment$organizationArgs<ExtArgs>
  }
  export type MeetingAgendaItemAttachmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agendaItem?: boolean | MeetingAgendaItemDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAgendaItemAttachment$organizationArgs<ExtArgs>
  }

  export type $MeetingAgendaItemAttachmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAgendaItemAttachment"
    objects: {
      agendaItem: Prisma.$MeetingAgendaItemPayload<ExtArgs>
      uploadedBy: Prisma.$UserPayload<ExtArgs>
      createdBy: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      agendaItemId: string
      uploadedById: string
      filename: string
      mimeType: string
      size: bigint
      storagePath: string
      uploadedAt: Date
      createdById: string
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["meetingAgendaItemAttachment"]>
    composites: {}
  }

  type MeetingAgendaItemAttachmentGetPayload<S extends boolean | null | undefined | MeetingAgendaItemAttachmentDefaultArgs> = $Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload, S>

  type MeetingAgendaItemAttachmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAgendaItemAttachmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAgendaItemAttachmentCountAggregateInputType | true
    }

  export interface MeetingAgendaItemAttachmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAgendaItemAttachment'], meta: { name: 'MeetingAgendaItemAttachment' } }
    /**
     * Find zero or one MeetingAgendaItemAttachment that matches the filter.
     * @param {MeetingAgendaItemAttachmentFindUniqueArgs} args - Arguments to find a MeetingAgendaItemAttachment
     * @example
     * // Get one MeetingAgendaItemAttachment
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAgendaItemAttachmentFindUniqueArgs>(args: SelectSubset<T, MeetingAgendaItemAttachmentFindUniqueArgs<ExtArgs>>): Prisma__MeetingAgendaItemAttachmentClient<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAgendaItemAttachment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAgendaItemAttachmentFindUniqueOrThrowArgs} args - Arguments to find a MeetingAgendaItemAttachment
     * @example
     * // Get one MeetingAgendaItemAttachment
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAgendaItemAttachmentFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAgendaItemAttachmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAgendaItemAttachmentClient<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAgendaItemAttachment 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 {MeetingAgendaItemAttachmentFindFirstArgs} args - Arguments to find a MeetingAgendaItemAttachment
     * @example
     * // Get one MeetingAgendaItemAttachment
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAgendaItemAttachmentFindFirstArgs>(args?: SelectSubset<T, MeetingAgendaItemAttachmentFindFirstArgs<ExtArgs>>): Prisma__MeetingAgendaItemAttachmentClient<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAgendaItemAttachment 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 {MeetingAgendaItemAttachmentFindFirstOrThrowArgs} args - Arguments to find a MeetingAgendaItemAttachment
     * @example
     * // Get one MeetingAgendaItemAttachment
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAgendaItemAttachmentFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAgendaItemAttachmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAgendaItemAttachmentClient<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAgendaItemAttachments 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 {MeetingAgendaItemAttachmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAgendaItemAttachments
     * const meetingAgendaItemAttachments = await prisma.meetingAgendaItemAttachment.findMany()
     * 
     * // Get first 10 MeetingAgendaItemAttachments
     * const meetingAgendaItemAttachments = await prisma.meetingAgendaItemAttachment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAgendaItemAttachmentWithIdOnly = await prisma.meetingAgendaItemAttachment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAgendaItemAttachmentFindManyArgs>(args?: SelectSubset<T, MeetingAgendaItemAttachmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAgendaItemAttachment.
     * @param {MeetingAgendaItemAttachmentCreateArgs} args - Arguments to create a MeetingAgendaItemAttachment.
     * @example
     * // Create one MeetingAgendaItemAttachment
     * const MeetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.create({
     *   data: {
     *     // ... data to create a MeetingAgendaItemAttachment
     *   }
     * })
     * 
     */
    create<T extends MeetingAgendaItemAttachmentCreateArgs>(args: SelectSubset<T, MeetingAgendaItemAttachmentCreateArgs<ExtArgs>>): Prisma__MeetingAgendaItemAttachmentClient<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAgendaItemAttachments.
     * @param {MeetingAgendaItemAttachmentCreateManyArgs} args - Arguments to create many MeetingAgendaItemAttachments.
     * @example
     * // Create many MeetingAgendaItemAttachments
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAgendaItemAttachmentCreateManyArgs>(args?: SelectSubset<T, MeetingAgendaItemAttachmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAgendaItemAttachments and returns the data saved in the database.
     * @param {MeetingAgendaItemAttachmentCreateManyAndReturnArgs} args - Arguments to create many MeetingAgendaItemAttachments.
     * @example
     * // Create many MeetingAgendaItemAttachments
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAgendaItemAttachments and only return the `id`
     * const meetingAgendaItemAttachmentWithIdOnly = await prisma.meetingAgendaItemAttachment.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 MeetingAgendaItemAttachmentCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAgendaItemAttachmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAgendaItemAttachment.
     * @param {MeetingAgendaItemAttachmentDeleteArgs} args - Arguments to delete one MeetingAgendaItemAttachment.
     * @example
     * // Delete one MeetingAgendaItemAttachment
     * const MeetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.delete({
     *   where: {
     *     // ... filter to delete one MeetingAgendaItemAttachment
     *   }
     * })
     * 
     */
    delete<T extends MeetingAgendaItemAttachmentDeleteArgs>(args: SelectSubset<T, MeetingAgendaItemAttachmentDeleteArgs<ExtArgs>>): Prisma__MeetingAgendaItemAttachmentClient<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAgendaItemAttachment.
     * @param {MeetingAgendaItemAttachmentUpdateArgs} args - Arguments to update one MeetingAgendaItemAttachment.
     * @example
     * // Update one MeetingAgendaItemAttachment
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAgendaItemAttachmentUpdateArgs>(args: SelectSubset<T, MeetingAgendaItemAttachmentUpdateArgs<ExtArgs>>): Prisma__MeetingAgendaItemAttachmentClient<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAgendaItemAttachments.
     * @param {MeetingAgendaItemAttachmentDeleteManyArgs} args - Arguments to filter MeetingAgendaItemAttachments to delete.
     * @example
     * // Delete a few MeetingAgendaItemAttachments
     * const { count } = await prisma.meetingAgendaItemAttachment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAgendaItemAttachmentDeleteManyArgs>(args?: SelectSubset<T, MeetingAgendaItemAttachmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAgendaItemAttachments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemAttachmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAgendaItemAttachments
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAgendaItemAttachmentUpdateManyArgs>(args: SelectSubset<T, MeetingAgendaItemAttachmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAgendaItemAttachments and returns the data updated in the database.
     * @param {MeetingAgendaItemAttachmentUpdateManyAndReturnArgs} args - Arguments to update many MeetingAgendaItemAttachments.
     * @example
     * // Update many MeetingAgendaItemAttachments
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAgendaItemAttachments and only return the `id`
     * const meetingAgendaItemAttachmentWithIdOnly = await prisma.meetingAgendaItemAttachment.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 MeetingAgendaItemAttachmentUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAgendaItemAttachmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAgendaItemAttachment.
     * @param {MeetingAgendaItemAttachmentUpsertArgs} args - Arguments to update or create a MeetingAgendaItemAttachment.
     * @example
     * // Update or create a MeetingAgendaItemAttachment
     * const meetingAgendaItemAttachment = await prisma.meetingAgendaItemAttachment.upsert({
     *   create: {
     *     // ... data to create a MeetingAgendaItemAttachment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAgendaItemAttachment we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAgendaItemAttachmentUpsertArgs>(args: SelectSubset<T, MeetingAgendaItemAttachmentUpsertArgs<ExtArgs>>): Prisma__MeetingAgendaItemAttachmentClient<$Result.GetResult<Prisma.$MeetingAgendaItemAttachmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAgendaItemAttachments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemAttachmentCountArgs} args - Arguments to filter MeetingAgendaItemAttachments to count.
     * @example
     * // Count the number of MeetingAgendaItemAttachments
     * const count = await prisma.meetingAgendaItemAttachment.count({
     *   where: {
     *     // ... the filter for the MeetingAgendaItemAttachments we want to count
     *   }
     * })
    **/
    count<T extends MeetingAgendaItemAttachmentCountArgs>(
      args?: Subset<T, MeetingAgendaItemAttachmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAgendaItemAttachmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAgendaItemAttachment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemAttachmentAggregateArgs} 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 MeetingAgendaItemAttachmentAggregateArgs>(args: Subset<T, MeetingAgendaItemAttachmentAggregateArgs>): Prisma.PrismaPromise<GetMeetingAgendaItemAttachmentAggregateType<T>>

    /**
     * Group by MeetingAgendaItemAttachment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAgendaItemAttachmentGroupByArgs} 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 MeetingAgendaItemAttachmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAgendaItemAttachmentGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAgendaItemAttachmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAgendaItemAttachmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAgendaItemAttachmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAgendaItemAttachment model
   */
  readonly fields: MeetingAgendaItemAttachmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAgendaItemAttachment.
   * 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__MeetingAgendaItemAttachmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    agendaItem<T extends MeetingAgendaItemDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaItemDefaultArgs<ExtArgs>>): Prisma__MeetingAgendaItemClient<$Result.GetResult<Prisma.$MeetingAgendaItemPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    uploadedBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    createdBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends MeetingAgendaItemAttachment$organizationArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAgendaItemAttachment$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAgendaItemAttachment model
   */
  interface MeetingAgendaItemAttachmentFieldRefs {
    readonly id: FieldRef<"MeetingAgendaItemAttachment", 'String'>
    readonly agendaItemId: FieldRef<"MeetingAgendaItemAttachment", 'String'>
    readonly uploadedById: FieldRef<"MeetingAgendaItemAttachment", 'String'>
    readonly filename: FieldRef<"MeetingAgendaItemAttachment", 'String'>
    readonly mimeType: FieldRef<"MeetingAgendaItemAttachment", 'String'>
    readonly size: FieldRef<"MeetingAgendaItemAttachment", 'BigInt'>
    readonly storagePath: FieldRef<"MeetingAgendaItemAttachment", 'String'>
    readonly uploadedAt: FieldRef<"MeetingAgendaItemAttachment", 'DateTime'>
    readonly createdById: FieldRef<"MeetingAgendaItemAttachment", 'String'>
    readonly organizationId: FieldRef<"MeetingAgendaItemAttachment", 'String'>
    readonly createdAt: FieldRef<"MeetingAgendaItemAttachment", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAgendaItemAttachment", 'DateTime'>
    readonly deletedAt: FieldRef<"MeetingAgendaItemAttachment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAgendaItemAttachment findUnique
   */
  export type MeetingAgendaItemAttachmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemAttachment to fetch.
     */
    where: MeetingAgendaItemAttachmentWhereUniqueInput
  }

  /**
   * MeetingAgendaItemAttachment findUniqueOrThrow
   */
  export type MeetingAgendaItemAttachmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemAttachment to fetch.
     */
    where: MeetingAgendaItemAttachmentWhereUniqueInput
  }

  /**
   * MeetingAgendaItemAttachment findFirst
   */
  export type MeetingAgendaItemAttachmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemAttachment to fetch.
     */
    where?: MeetingAgendaItemAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItemAttachments to fetch.
     */
    orderBy?: MeetingAgendaItemAttachmentOrderByWithRelationInput | MeetingAgendaItemAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAgendaItemAttachments.
     */
    cursor?: MeetingAgendaItemAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItemAttachments 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` MeetingAgendaItemAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAgendaItemAttachments.
     */
    distinct?: MeetingAgendaItemAttachmentScalarFieldEnum | MeetingAgendaItemAttachmentScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItemAttachment findFirstOrThrow
   */
  export type MeetingAgendaItemAttachmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemAttachment to fetch.
     */
    where?: MeetingAgendaItemAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItemAttachments to fetch.
     */
    orderBy?: MeetingAgendaItemAttachmentOrderByWithRelationInput | MeetingAgendaItemAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAgendaItemAttachments.
     */
    cursor?: MeetingAgendaItemAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItemAttachments 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` MeetingAgendaItemAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAgendaItemAttachments.
     */
    distinct?: MeetingAgendaItemAttachmentScalarFieldEnum | MeetingAgendaItemAttachmentScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItemAttachment findMany
   */
  export type MeetingAgendaItemAttachmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAgendaItemAttachments to fetch.
     */
    where?: MeetingAgendaItemAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAgendaItemAttachments to fetch.
     */
    orderBy?: MeetingAgendaItemAttachmentOrderByWithRelationInput | MeetingAgendaItemAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAgendaItemAttachments.
     */
    cursor?: MeetingAgendaItemAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAgendaItemAttachments 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` MeetingAgendaItemAttachments.
     */
    skip?: number
    distinct?: MeetingAgendaItemAttachmentScalarFieldEnum | MeetingAgendaItemAttachmentScalarFieldEnum[]
  }

  /**
   * MeetingAgendaItemAttachment create
   */
  export type MeetingAgendaItemAttachmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAgendaItemAttachment.
     */
    data: XOR<MeetingAgendaItemAttachmentCreateInput, MeetingAgendaItemAttachmentUncheckedCreateInput>
  }

  /**
   * MeetingAgendaItemAttachment createMany
   */
  export type MeetingAgendaItemAttachmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAgendaItemAttachments.
     */
    data: MeetingAgendaItemAttachmentCreateManyInput | MeetingAgendaItemAttachmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAgendaItemAttachment createManyAndReturn
   */
  export type MeetingAgendaItemAttachmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAgendaItemAttachments.
     */
    data: MeetingAgendaItemAttachmentCreateManyInput | MeetingAgendaItemAttachmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAgendaItemAttachment update
   */
  export type MeetingAgendaItemAttachmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAgendaItemAttachment.
     */
    data: XOR<MeetingAgendaItemAttachmentUpdateInput, MeetingAgendaItemAttachmentUncheckedUpdateInput>
    /**
     * Choose, which MeetingAgendaItemAttachment to update.
     */
    where: MeetingAgendaItemAttachmentWhereUniqueInput
  }

  /**
   * MeetingAgendaItemAttachment updateMany
   */
  export type MeetingAgendaItemAttachmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAgendaItemAttachments.
     */
    data: XOR<MeetingAgendaItemAttachmentUpdateManyMutationInput, MeetingAgendaItemAttachmentUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAgendaItemAttachments to update
     */
    where?: MeetingAgendaItemAttachmentWhereInput
    /**
     * Limit how many MeetingAgendaItemAttachments to update.
     */
    limit?: number
  }

  /**
   * MeetingAgendaItemAttachment updateManyAndReturn
   */
  export type MeetingAgendaItemAttachmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAgendaItemAttachments.
     */
    data: XOR<MeetingAgendaItemAttachmentUpdateManyMutationInput, MeetingAgendaItemAttachmentUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAgendaItemAttachments to update
     */
    where?: MeetingAgendaItemAttachmentWhereInput
    /**
     * Limit how many MeetingAgendaItemAttachments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAgendaItemAttachment upsert
   */
  export type MeetingAgendaItemAttachmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAgendaItemAttachment to update in case it exists.
     */
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    /**
     * In case the MeetingAgendaItemAttachment found by the `where` argument doesn't exist, create a new MeetingAgendaItemAttachment with this data.
     */
    create: XOR<MeetingAgendaItemAttachmentCreateInput, MeetingAgendaItemAttachmentUncheckedCreateInput>
    /**
     * In case the MeetingAgendaItemAttachment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAgendaItemAttachmentUpdateInput, MeetingAgendaItemAttachmentUncheckedUpdateInput>
  }

  /**
   * MeetingAgendaItemAttachment delete
   */
  export type MeetingAgendaItemAttachmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
    /**
     * Filter which MeetingAgendaItemAttachment to delete.
     */
    where: MeetingAgendaItemAttachmentWhereUniqueInput
  }

  /**
   * MeetingAgendaItemAttachment deleteMany
   */
  export type MeetingAgendaItemAttachmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAgendaItemAttachments to delete
     */
    where?: MeetingAgendaItemAttachmentWhereInput
    /**
     * Limit how many MeetingAgendaItemAttachments to delete.
     */
    limit?: number
  }

  /**
   * MeetingAgendaItemAttachment.organization
   */
  export type MeetingAgendaItemAttachment$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * MeetingAgendaItemAttachment without action
   */
  export type MeetingAgendaItemAttachmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAgendaItemAttachment
     */
    select?: MeetingAgendaItemAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAgendaItemAttachment
     */
    omit?: MeetingAgendaItemAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAgendaItemAttachmentInclude<ExtArgs> | null
  }


  /**
   * Model MeetingAttachment
   */

  export type AggregateMeetingAttachment = {
    _count: MeetingAttachmentCountAggregateOutputType | null
    _avg: MeetingAttachmentAvgAggregateOutputType | null
    _sum: MeetingAttachmentSumAggregateOutputType | null
    _min: MeetingAttachmentMinAggregateOutputType | null
    _max: MeetingAttachmentMaxAggregateOutputType | null
  }

  export type MeetingAttachmentAvgAggregateOutputType = {
    size: number | null
  }

  export type MeetingAttachmentSumAggregateOutputType = {
    size: bigint | null
  }

  export type MeetingAttachmentMinAggregateOutputType = {
    id: string | null
    meetingId: string | null
    uploadedById: string | null
    category: $Enums.MeetingAttachmentCategory | null
    filename: string | null
    mimeType: string | null
    size: bigint | null
    storagePath: string | null
    uploadedAt: Date | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAttachmentMaxAggregateOutputType = {
    id: string | null
    meetingId: string | null
    uploadedById: string | null
    category: $Enums.MeetingAttachmentCategory | null
    filename: string | null
    mimeType: string | null
    size: bigint | null
    storagePath: string | null
    uploadedAt: Date | null
    createdById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type MeetingAttachmentCountAggregateOutputType = {
    id: number
    meetingId: number
    uploadedById: number
    category: number
    filename: number
    mimeType: number
    size: number
    storagePath: number
    uploadedAt: number
    createdById: number
    organizationId: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type MeetingAttachmentAvgAggregateInputType = {
    size?: true
  }

  export type MeetingAttachmentSumAggregateInputType = {
    size?: true
  }

  export type MeetingAttachmentMinAggregateInputType = {
    id?: true
    meetingId?: true
    uploadedById?: true
    category?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    uploadedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAttachmentMaxAggregateInputType = {
    id?: true
    meetingId?: true
    uploadedById?: true
    category?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    uploadedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type MeetingAttachmentCountAggregateInputType = {
    id?: true
    meetingId?: true
    uploadedById?: true
    category?: true
    filename?: true
    mimeType?: true
    size?: true
    storagePath?: true
    uploadedAt?: true
    createdById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type MeetingAttachmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttachment to aggregate.
     */
    where?: MeetingAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttachments to fetch.
     */
    orderBy?: MeetingAttachmentOrderByWithRelationInput | MeetingAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: MeetingAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttachments 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` MeetingAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned MeetingAttachments
    **/
    _count?: true | MeetingAttachmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: MeetingAttachmentAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: MeetingAttachmentSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: MeetingAttachmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: MeetingAttachmentMaxAggregateInputType
  }

  export type GetMeetingAttachmentAggregateType<T extends MeetingAttachmentAggregateArgs> = {
        [P in keyof T & keyof AggregateMeetingAttachment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateMeetingAttachment[P]>
      : GetScalarType<T[P], AggregateMeetingAttachment[P]>
  }




  export type MeetingAttachmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: MeetingAttachmentWhereInput
    orderBy?: MeetingAttachmentOrderByWithAggregationInput | MeetingAttachmentOrderByWithAggregationInput[]
    by: MeetingAttachmentScalarFieldEnum[] | MeetingAttachmentScalarFieldEnum
    having?: MeetingAttachmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: MeetingAttachmentCountAggregateInputType | true
    _avg?: MeetingAttachmentAvgAggregateInputType
    _sum?: MeetingAttachmentSumAggregateInputType
    _min?: MeetingAttachmentMinAggregateInputType
    _max?: MeetingAttachmentMaxAggregateInputType
  }

  export type MeetingAttachmentGroupByOutputType = {
    id: string
    meetingId: string
    uploadedById: string
    category: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint
    storagePath: string
    uploadedAt: Date
    createdById: string
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: MeetingAttachmentCountAggregateOutputType | null
    _avg: MeetingAttachmentAvgAggregateOutputType | null
    _sum: MeetingAttachmentSumAggregateOutputType | null
    _min: MeetingAttachmentMinAggregateOutputType | null
    _max: MeetingAttachmentMaxAggregateOutputType | null
  }

  type GetMeetingAttachmentGroupByPayload<T extends MeetingAttachmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<MeetingAttachmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof MeetingAttachmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], MeetingAttachmentGroupByOutputType[P]>
            : GetScalarType<T[P], MeetingAttachmentGroupByOutputType[P]>
        }
      >
    >


  export type MeetingAttachmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    uploadedById?: boolean
    category?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    uploadedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAttachment$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttachment"]>

  export type MeetingAttachmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    uploadedById?: boolean
    category?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    uploadedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAttachment$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttachment"]>

  export type MeetingAttachmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    meetingId?: boolean
    uploadedById?: boolean
    category?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    uploadedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAttachment$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["meetingAttachment"]>

  export type MeetingAttachmentSelectScalar = {
    id?: boolean
    meetingId?: boolean
    uploadedById?: boolean
    category?: boolean
    filename?: boolean
    mimeType?: boolean
    size?: boolean
    storagePath?: boolean
    uploadedAt?: boolean
    createdById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type MeetingAttachmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "meetingId" | "uploadedById" | "category" | "filename" | "mimeType" | "size" | "storagePath" | "uploadedAt" | "createdById" | "organizationId" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["meetingAttachment"]>
  export type MeetingAttachmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAttachment$organizationArgs<ExtArgs>
  }
  export type MeetingAttachmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAttachment$organizationArgs<ExtArgs>
  }
  export type MeetingAttachmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    meeting?: boolean | MeetingDefaultArgs<ExtArgs>
    uploadedBy?: boolean | UserDefaultArgs<ExtArgs>
    createdBy?: boolean | UserDefaultArgs<ExtArgs>
    organization?: boolean | MeetingAttachment$organizationArgs<ExtArgs>
  }

  export type $MeetingAttachmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "MeetingAttachment"
    objects: {
      meeting: Prisma.$MeetingPayload<ExtArgs>
      uploadedBy: Prisma.$UserPayload<ExtArgs>
      createdBy: Prisma.$UserPayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      meetingId: string
      uploadedById: string
      category: $Enums.MeetingAttachmentCategory | null
      filename: string
      mimeType: string
      size: bigint
      storagePath: string
      uploadedAt: Date
      createdById: string
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["meetingAttachment"]>
    composites: {}
  }

  type MeetingAttachmentGetPayload<S extends boolean | null | undefined | MeetingAttachmentDefaultArgs> = $Result.GetResult<Prisma.$MeetingAttachmentPayload, S>

  type MeetingAttachmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<MeetingAttachmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: MeetingAttachmentCountAggregateInputType | true
    }

  export interface MeetingAttachmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['MeetingAttachment'], meta: { name: 'MeetingAttachment' } }
    /**
     * Find zero or one MeetingAttachment that matches the filter.
     * @param {MeetingAttachmentFindUniqueArgs} args - Arguments to find a MeetingAttachment
     * @example
     * // Get one MeetingAttachment
     * const meetingAttachment = await prisma.meetingAttachment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends MeetingAttachmentFindUniqueArgs>(args: SelectSubset<T, MeetingAttachmentFindUniqueArgs<ExtArgs>>): Prisma__MeetingAttachmentClient<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one MeetingAttachment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {MeetingAttachmentFindUniqueOrThrowArgs} args - Arguments to find a MeetingAttachment
     * @example
     * // Get one MeetingAttachment
     * const meetingAttachment = await prisma.meetingAttachment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends MeetingAttachmentFindUniqueOrThrowArgs>(args: SelectSubset<T, MeetingAttachmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__MeetingAttachmentClient<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttachment 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 {MeetingAttachmentFindFirstArgs} args - Arguments to find a MeetingAttachment
     * @example
     * // Get one MeetingAttachment
     * const meetingAttachment = await prisma.meetingAttachment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends MeetingAttachmentFindFirstArgs>(args?: SelectSubset<T, MeetingAttachmentFindFirstArgs<ExtArgs>>): Prisma__MeetingAttachmentClient<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first MeetingAttachment 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 {MeetingAttachmentFindFirstOrThrowArgs} args - Arguments to find a MeetingAttachment
     * @example
     * // Get one MeetingAttachment
     * const meetingAttachment = await prisma.meetingAttachment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends MeetingAttachmentFindFirstOrThrowArgs>(args?: SelectSubset<T, MeetingAttachmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__MeetingAttachmentClient<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more MeetingAttachments 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 {MeetingAttachmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all MeetingAttachments
     * const meetingAttachments = await prisma.meetingAttachment.findMany()
     * 
     * // Get first 10 MeetingAttachments
     * const meetingAttachments = await prisma.meetingAttachment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const meetingAttachmentWithIdOnly = await prisma.meetingAttachment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends MeetingAttachmentFindManyArgs>(args?: SelectSubset<T, MeetingAttachmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a MeetingAttachment.
     * @param {MeetingAttachmentCreateArgs} args - Arguments to create a MeetingAttachment.
     * @example
     * // Create one MeetingAttachment
     * const MeetingAttachment = await prisma.meetingAttachment.create({
     *   data: {
     *     // ... data to create a MeetingAttachment
     *   }
     * })
     * 
     */
    create<T extends MeetingAttachmentCreateArgs>(args: SelectSubset<T, MeetingAttachmentCreateArgs<ExtArgs>>): Prisma__MeetingAttachmentClient<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many MeetingAttachments.
     * @param {MeetingAttachmentCreateManyArgs} args - Arguments to create many MeetingAttachments.
     * @example
     * // Create many MeetingAttachments
     * const meetingAttachment = await prisma.meetingAttachment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends MeetingAttachmentCreateManyArgs>(args?: SelectSubset<T, MeetingAttachmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many MeetingAttachments and returns the data saved in the database.
     * @param {MeetingAttachmentCreateManyAndReturnArgs} args - Arguments to create many MeetingAttachments.
     * @example
     * // Create many MeetingAttachments
     * const meetingAttachment = await prisma.meetingAttachment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many MeetingAttachments and only return the `id`
     * const meetingAttachmentWithIdOnly = await prisma.meetingAttachment.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 MeetingAttachmentCreateManyAndReturnArgs>(args?: SelectSubset<T, MeetingAttachmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a MeetingAttachment.
     * @param {MeetingAttachmentDeleteArgs} args - Arguments to delete one MeetingAttachment.
     * @example
     * // Delete one MeetingAttachment
     * const MeetingAttachment = await prisma.meetingAttachment.delete({
     *   where: {
     *     // ... filter to delete one MeetingAttachment
     *   }
     * })
     * 
     */
    delete<T extends MeetingAttachmentDeleteArgs>(args: SelectSubset<T, MeetingAttachmentDeleteArgs<ExtArgs>>): Prisma__MeetingAttachmentClient<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one MeetingAttachment.
     * @param {MeetingAttachmentUpdateArgs} args - Arguments to update one MeetingAttachment.
     * @example
     * // Update one MeetingAttachment
     * const meetingAttachment = await prisma.meetingAttachment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends MeetingAttachmentUpdateArgs>(args: SelectSubset<T, MeetingAttachmentUpdateArgs<ExtArgs>>): Prisma__MeetingAttachmentClient<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more MeetingAttachments.
     * @param {MeetingAttachmentDeleteManyArgs} args - Arguments to filter MeetingAttachments to delete.
     * @example
     * // Delete a few MeetingAttachments
     * const { count } = await prisma.meetingAttachment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends MeetingAttachmentDeleteManyArgs>(args?: SelectSubset<T, MeetingAttachmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttachments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttachmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many MeetingAttachments
     * const meetingAttachment = await prisma.meetingAttachment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends MeetingAttachmentUpdateManyArgs>(args: SelectSubset<T, MeetingAttachmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more MeetingAttachments and returns the data updated in the database.
     * @param {MeetingAttachmentUpdateManyAndReturnArgs} args - Arguments to update many MeetingAttachments.
     * @example
     * // Update many MeetingAttachments
     * const meetingAttachment = await prisma.meetingAttachment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more MeetingAttachments and only return the `id`
     * const meetingAttachmentWithIdOnly = await prisma.meetingAttachment.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 MeetingAttachmentUpdateManyAndReturnArgs>(args: SelectSubset<T, MeetingAttachmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one MeetingAttachment.
     * @param {MeetingAttachmentUpsertArgs} args - Arguments to update or create a MeetingAttachment.
     * @example
     * // Update or create a MeetingAttachment
     * const meetingAttachment = await prisma.meetingAttachment.upsert({
     *   create: {
     *     // ... data to create a MeetingAttachment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the MeetingAttachment we want to update
     *   }
     * })
     */
    upsert<T extends MeetingAttachmentUpsertArgs>(args: SelectSubset<T, MeetingAttachmentUpsertArgs<ExtArgs>>): Prisma__MeetingAttachmentClient<$Result.GetResult<Prisma.$MeetingAttachmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of MeetingAttachments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttachmentCountArgs} args - Arguments to filter MeetingAttachments to count.
     * @example
     * // Count the number of MeetingAttachments
     * const count = await prisma.meetingAttachment.count({
     *   where: {
     *     // ... the filter for the MeetingAttachments we want to count
     *   }
     * })
    **/
    count<T extends MeetingAttachmentCountArgs>(
      args?: Subset<T, MeetingAttachmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], MeetingAttachmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a MeetingAttachment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttachmentAggregateArgs} 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 MeetingAttachmentAggregateArgs>(args: Subset<T, MeetingAttachmentAggregateArgs>): Prisma.PrismaPromise<GetMeetingAttachmentAggregateType<T>>

    /**
     * Group by MeetingAttachment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {MeetingAttachmentGroupByArgs} 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 MeetingAttachmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: MeetingAttachmentGroupByArgs['orderBy'] }
        : { orderBy?: MeetingAttachmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, MeetingAttachmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMeetingAttachmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the MeetingAttachment model
   */
  readonly fields: MeetingAttachmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for MeetingAttachment.
   * 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__MeetingAttachmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    meeting<T extends MeetingDefaultArgs<ExtArgs> = {}>(args?: Subset<T, MeetingDefaultArgs<ExtArgs>>): Prisma__MeetingClient<$Result.GetResult<Prisma.$MeetingPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    uploadedBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    createdBy<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends MeetingAttachment$organizationArgs<ExtArgs> = {}>(args?: Subset<T, MeetingAttachment$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the MeetingAttachment model
   */
  interface MeetingAttachmentFieldRefs {
    readonly id: FieldRef<"MeetingAttachment", 'String'>
    readonly meetingId: FieldRef<"MeetingAttachment", 'String'>
    readonly uploadedById: FieldRef<"MeetingAttachment", 'String'>
    readonly category: FieldRef<"MeetingAttachment", 'MeetingAttachmentCategory'>
    readonly filename: FieldRef<"MeetingAttachment", 'String'>
    readonly mimeType: FieldRef<"MeetingAttachment", 'String'>
    readonly size: FieldRef<"MeetingAttachment", 'BigInt'>
    readonly storagePath: FieldRef<"MeetingAttachment", 'String'>
    readonly uploadedAt: FieldRef<"MeetingAttachment", 'DateTime'>
    readonly createdById: FieldRef<"MeetingAttachment", 'String'>
    readonly organizationId: FieldRef<"MeetingAttachment", 'String'>
    readonly createdAt: FieldRef<"MeetingAttachment", 'DateTime'>
    readonly updatedAt: FieldRef<"MeetingAttachment", 'DateTime'>
    readonly deletedAt: FieldRef<"MeetingAttachment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * MeetingAttachment findUnique
   */
  export type MeetingAttachmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttachment to fetch.
     */
    where: MeetingAttachmentWhereUniqueInput
  }

  /**
   * MeetingAttachment findUniqueOrThrow
   */
  export type MeetingAttachmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttachment to fetch.
     */
    where: MeetingAttachmentWhereUniqueInput
  }

  /**
   * MeetingAttachment findFirst
   */
  export type MeetingAttachmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttachment to fetch.
     */
    where?: MeetingAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttachments to fetch.
     */
    orderBy?: MeetingAttachmentOrderByWithRelationInput | MeetingAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttachments.
     */
    cursor?: MeetingAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttachments 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` MeetingAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttachments.
     */
    distinct?: MeetingAttachmentScalarFieldEnum | MeetingAttachmentScalarFieldEnum[]
  }

  /**
   * MeetingAttachment findFirstOrThrow
   */
  export type MeetingAttachmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttachment to fetch.
     */
    where?: MeetingAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttachments to fetch.
     */
    orderBy?: MeetingAttachmentOrderByWithRelationInput | MeetingAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for MeetingAttachments.
     */
    cursor?: MeetingAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttachments 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` MeetingAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of MeetingAttachments.
     */
    distinct?: MeetingAttachmentScalarFieldEnum | MeetingAttachmentScalarFieldEnum[]
  }

  /**
   * MeetingAttachment findMany
   */
  export type MeetingAttachmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which MeetingAttachments to fetch.
     */
    where?: MeetingAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of MeetingAttachments to fetch.
     */
    orderBy?: MeetingAttachmentOrderByWithRelationInput | MeetingAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing MeetingAttachments.
     */
    cursor?: MeetingAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` MeetingAttachments 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` MeetingAttachments.
     */
    skip?: number
    distinct?: MeetingAttachmentScalarFieldEnum | MeetingAttachmentScalarFieldEnum[]
  }

  /**
   * MeetingAttachment create
   */
  export type MeetingAttachmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * The data needed to create a MeetingAttachment.
     */
    data: XOR<MeetingAttachmentCreateInput, MeetingAttachmentUncheckedCreateInput>
  }

  /**
   * MeetingAttachment createMany
   */
  export type MeetingAttachmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many MeetingAttachments.
     */
    data: MeetingAttachmentCreateManyInput | MeetingAttachmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * MeetingAttachment createManyAndReturn
   */
  export type MeetingAttachmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * The data used to create many MeetingAttachments.
     */
    data: MeetingAttachmentCreateManyInput | MeetingAttachmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttachment update
   */
  export type MeetingAttachmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * The data needed to update a MeetingAttachment.
     */
    data: XOR<MeetingAttachmentUpdateInput, MeetingAttachmentUncheckedUpdateInput>
    /**
     * Choose, which MeetingAttachment to update.
     */
    where: MeetingAttachmentWhereUniqueInput
  }

  /**
   * MeetingAttachment updateMany
   */
  export type MeetingAttachmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update MeetingAttachments.
     */
    data: XOR<MeetingAttachmentUpdateManyMutationInput, MeetingAttachmentUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttachments to update
     */
    where?: MeetingAttachmentWhereInput
    /**
     * Limit how many MeetingAttachments to update.
     */
    limit?: number
  }

  /**
   * MeetingAttachment updateManyAndReturn
   */
  export type MeetingAttachmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * The data used to update MeetingAttachments.
     */
    data: XOR<MeetingAttachmentUpdateManyMutationInput, MeetingAttachmentUncheckedUpdateManyInput>
    /**
     * Filter which MeetingAttachments to update
     */
    where?: MeetingAttachmentWhereInput
    /**
     * Limit how many MeetingAttachments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * MeetingAttachment upsert
   */
  export type MeetingAttachmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * The filter to search for the MeetingAttachment to update in case it exists.
     */
    where: MeetingAttachmentWhereUniqueInput
    /**
     * In case the MeetingAttachment found by the `where` argument doesn't exist, create a new MeetingAttachment with this data.
     */
    create: XOR<MeetingAttachmentCreateInput, MeetingAttachmentUncheckedCreateInput>
    /**
     * In case the MeetingAttachment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<MeetingAttachmentUpdateInput, MeetingAttachmentUncheckedUpdateInput>
  }

  /**
   * MeetingAttachment delete
   */
  export type MeetingAttachmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
    /**
     * Filter which MeetingAttachment to delete.
     */
    where: MeetingAttachmentWhereUniqueInput
  }

  /**
   * MeetingAttachment deleteMany
   */
  export type MeetingAttachmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which MeetingAttachments to delete
     */
    where?: MeetingAttachmentWhereInput
    /**
     * Limit how many MeetingAttachments to delete.
     */
    limit?: number
  }

  /**
   * MeetingAttachment.organization
   */
  export type MeetingAttachment$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * MeetingAttachment without action
   */
  export type MeetingAttachmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the MeetingAttachment
     */
    select?: MeetingAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the MeetingAttachment
     */
    omit?: MeetingAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: MeetingAttachmentInclude<ExtArgs> | null
  }


  /**
   * Model NotificationMessage
   */

  export type AggregateNotificationMessage = {
    _count: NotificationMessageCountAggregateOutputType | null
    _min: NotificationMessageMinAggregateOutputType | null
    _max: NotificationMessageMaxAggregateOutputType | null
  }

  export type NotificationMessageMinAggregateOutputType = {
    id: string | null
    userId: string | null
    type: $Enums.NotificationType | null
    title: string | null
    content: string | null
    link: string | null
    status: $Enums.NotificationStatus | null
    createdAt: Date | null
    readAt: Date | null
  }

  export type NotificationMessageMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    type: $Enums.NotificationType | null
    title: string | null
    content: string | null
    link: string | null
    status: $Enums.NotificationStatus | null
    createdAt: Date | null
    readAt: Date | null
  }

  export type NotificationMessageCountAggregateOutputType = {
    id: number
    userId: number
    type: number
    title: number
    content: number
    link: number
    status: number
    createdAt: number
    readAt: number
    _all: number
  }


  export type NotificationMessageMinAggregateInputType = {
    id?: true
    userId?: true
    type?: true
    title?: true
    content?: true
    link?: true
    status?: true
    createdAt?: true
    readAt?: true
  }

  export type NotificationMessageMaxAggregateInputType = {
    id?: true
    userId?: true
    type?: true
    title?: true
    content?: true
    link?: true
    status?: true
    createdAt?: true
    readAt?: true
  }

  export type NotificationMessageCountAggregateInputType = {
    id?: true
    userId?: true
    type?: true
    title?: true
    content?: true
    link?: true
    status?: true
    createdAt?: true
    readAt?: true
    _all?: true
  }

  export type NotificationMessageAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which NotificationMessage to aggregate.
     */
    where?: NotificationMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationMessages to fetch.
     */
    orderBy?: NotificationMessageOrderByWithRelationInput | NotificationMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: NotificationMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationMessages 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` NotificationMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned NotificationMessages
    **/
    _count?: true | NotificationMessageCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: NotificationMessageMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: NotificationMessageMaxAggregateInputType
  }

  export type GetNotificationMessageAggregateType<T extends NotificationMessageAggregateArgs> = {
        [P in keyof T & keyof AggregateNotificationMessage]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateNotificationMessage[P]>
      : GetScalarType<T[P], AggregateNotificationMessage[P]>
  }




  export type NotificationMessageGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: NotificationMessageWhereInput
    orderBy?: NotificationMessageOrderByWithAggregationInput | NotificationMessageOrderByWithAggregationInput[]
    by: NotificationMessageScalarFieldEnum[] | NotificationMessageScalarFieldEnum
    having?: NotificationMessageScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: NotificationMessageCountAggregateInputType | true
    _min?: NotificationMessageMinAggregateInputType
    _max?: NotificationMessageMaxAggregateInputType
  }

  export type NotificationMessageGroupByOutputType = {
    id: string
    userId: string
    type: $Enums.NotificationType
    title: string
    content: string
    link: string | null
    status: $Enums.NotificationStatus
    createdAt: Date
    readAt: Date | null
    _count: NotificationMessageCountAggregateOutputType | null
    _min: NotificationMessageMinAggregateOutputType | null
    _max: NotificationMessageMaxAggregateOutputType | null
  }

  type GetNotificationMessageGroupByPayload<T extends NotificationMessageGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<NotificationMessageGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof NotificationMessageGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], NotificationMessageGroupByOutputType[P]>
            : GetScalarType<T[P], NotificationMessageGroupByOutputType[P]>
        }
      >
    >


  export type NotificationMessageSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    type?: boolean
    title?: boolean
    content?: boolean
    link?: boolean
    status?: boolean
    createdAt?: boolean
    readAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["notificationMessage"]>

  export type NotificationMessageSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    type?: boolean
    title?: boolean
    content?: boolean
    link?: boolean
    status?: boolean
    createdAt?: boolean
    readAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["notificationMessage"]>

  export type NotificationMessageSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    type?: boolean
    title?: boolean
    content?: boolean
    link?: boolean
    status?: boolean
    createdAt?: boolean
    readAt?: boolean
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["notificationMessage"]>

  export type NotificationMessageSelectScalar = {
    id?: boolean
    userId?: boolean
    type?: boolean
    title?: boolean
    content?: boolean
    link?: boolean
    status?: boolean
    createdAt?: boolean
    readAt?: boolean
  }

  export type NotificationMessageOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "type" | "title" | "content" | "link" | "status" | "createdAt" | "readAt", ExtArgs["result"]["notificationMessage"]>
  export type NotificationMessageInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type NotificationMessageIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type NotificationMessageIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $NotificationMessagePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "NotificationMessage"
    objects: {
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      type: $Enums.NotificationType
      title: string
      content: string
      link: string | null
      status: $Enums.NotificationStatus
      createdAt: Date
      readAt: Date | null
    }, ExtArgs["result"]["notificationMessage"]>
    composites: {}
  }

  type NotificationMessageGetPayload<S extends boolean | null | undefined | NotificationMessageDefaultArgs> = $Result.GetResult<Prisma.$NotificationMessagePayload, S>

  type NotificationMessageCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<NotificationMessageFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: NotificationMessageCountAggregateInputType | true
    }

  export interface NotificationMessageDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['NotificationMessage'], meta: { name: 'NotificationMessage' } }
    /**
     * Find zero or one NotificationMessage that matches the filter.
     * @param {NotificationMessageFindUniqueArgs} args - Arguments to find a NotificationMessage
     * @example
     * // Get one NotificationMessage
     * const notificationMessage = await prisma.notificationMessage.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends NotificationMessageFindUniqueArgs>(args: SelectSubset<T, NotificationMessageFindUniqueArgs<ExtArgs>>): Prisma__NotificationMessageClient<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one NotificationMessage that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {NotificationMessageFindUniqueOrThrowArgs} args - Arguments to find a NotificationMessage
     * @example
     * // Get one NotificationMessage
     * const notificationMessage = await prisma.notificationMessage.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends NotificationMessageFindUniqueOrThrowArgs>(args: SelectSubset<T, NotificationMessageFindUniqueOrThrowArgs<ExtArgs>>): Prisma__NotificationMessageClient<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first NotificationMessage 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 {NotificationMessageFindFirstArgs} args - Arguments to find a NotificationMessage
     * @example
     * // Get one NotificationMessage
     * const notificationMessage = await prisma.notificationMessage.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends NotificationMessageFindFirstArgs>(args?: SelectSubset<T, NotificationMessageFindFirstArgs<ExtArgs>>): Prisma__NotificationMessageClient<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first NotificationMessage 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 {NotificationMessageFindFirstOrThrowArgs} args - Arguments to find a NotificationMessage
     * @example
     * // Get one NotificationMessage
     * const notificationMessage = await prisma.notificationMessage.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends NotificationMessageFindFirstOrThrowArgs>(args?: SelectSubset<T, NotificationMessageFindFirstOrThrowArgs<ExtArgs>>): Prisma__NotificationMessageClient<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more NotificationMessages 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 {NotificationMessageFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all NotificationMessages
     * const notificationMessages = await prisma.notificationMessage.findMany()
     * 
     * // Get first 10 NotificationMessages
     * const notificationMessages = await prisma.notificationMessage.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const notificationMessageWithIdOnly = await prisma.notificationMessage.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends NotificationMessageFindManyArgs>(args?: SelectSubset<T, NotificationMessageFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a NotificationMessage.
     * @param {NotificationMessageCreateArgs} args - Arguments to create a NotificationMessage.
     * @example
     * // Create one NotificationMessage
     * const NotificationMessage = await prisma.notificationMessage.create({
     *   data: {
     *     // ... data to create a NotificationMessage
     *   }
     * })
     * 
     */
    create<T extends NotificationMessageCreateArgs>(args: SelectSubset<T, NotificationMessageCreateArgs<ExtArgs>>): Prisma__NotificationMessageClient<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many NotificationMessages.
     * @param {NotificationMessageCreateManyArgs} args - Arguments to create many NotificationMessages.
     * @example
     * // Create many NotificationMessages
     * const notificationMessage = await prisma.notificationMessage.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends NotificationMessageCreateManyArgs>(args?: SelectSubset<T, NotificationMessageCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many NotificationMessages and returns the data saved in the database.
     * @param {NotificationMessageCreateManyAndReturnArgs} args - Arguments to create many NotificationMessages.
     * @example
     * // Create many NotificationMessages
     * const notificationMessage = await prisma.notificationMessage.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many NotificationMessages and only return the `id`
     * const notificationMessageWithIdOnly = await prisma.notificationMessage.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 NotificationMessageCreateManyAndReturnArgs>(args?: SelectSubset<T, NotificationMessageCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a NotificationMessage.
     * @param {NotificationMessageDeleteArgs} args - Arguments to delete one NotificationMessage.
     * @example
     * // Delete one NotificationMessage
     * const NotificationMessage = await prisma.notificationMessage.delete({
     *   where: {
     *     // ... filter to delete one NotificationMessage
     *   }
     * })
     * 
     */
    delete<T extends NotificationMessageDeleteArgs>(args: SelectSubset<T, NotificationMessageDeleteArgs<ExtArgs>>): Prisma__NotificationMessageClient<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one NotificationMessage.
     * @param {NotificationMessageUpdateArgs} args - Arguments to update one NotificationMessage.
     * @example
     * // Update one NotificationMessage
     * const notificationMessage = await prisma.notificationMessage.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends NotificationMessageUpdateArgs>(args: SelectSubset<T, NotificationMessageUpdateArgs<ExtArgs>>): Prisma__NotificationMessageClient<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more NotificationMessages.
     * @param {NotificationMessageDeleteManyArgs} args - Arguments to filter NotificationMessages to delete.
     * @example
     * // Delete a few NotificationMessages
     * const { count } = await prisma.notificationMessage.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends NotificationMessageDeleteManyArgs>(args?: SelectSubset<T, NotificationMessageDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more NotificationMessages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationMessageUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many NotificationMessages
     * const notificationMessage = await prisma.notificationMessage.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends NotificationMessageUpdateManyArgs>(args: SelectSubset<T, NotificationMessageUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more NotificationMessages and returns the data updated in the database.
     * @param {NotificationMessageUpdateManyAndReturnArgs} args - Arguments to update many NotificationMessages.
     * @example
     * // Update many NotificationMessages
     * const notificationMessage = await prisma.notificationMessage.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more NotificationMessages and only return the `id`
     * const notificationMessageWithIdOnly = await prisma.notificationMessage.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 NotificationMessageUpdateManyAndReturnArgs>(args: SelectSubset<T, NotificationMessageUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one NotificationMessage.
     * @param {NotificationMessageUpsertArgs} args - Arguments to update or create a NotificationMessage.
     * @example
     * // Update or create a NotificationMessage
     * const notificationMessage = await prisma.notificationMessage.upsert({
     *   create: {
     *     // ... data to create a NotificationMessage
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the NotificationMessage we want to update
     *   }
     * })
     */
    upsert<T extends NotificationMessageUpsertArgs>(args: SelectSubset<T, NotificationMessageUpsertArgs<ExtArgs>>): Prisma__NotificationMessageClient<$Result.GetResult<Prisma.$NotificationMessagePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of NotificationMessages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationMessageCountArgs} args - Arguments to filter NotificationMessages to count.
     * @example
     * // Count the number of NotificationMessages
     * const count = await prisma.notificationMessage.count({
     *   where: {
     *     // ... the filter for the NotificationMessages we want to count
     *   }
     * })
    **/
    count<T extends NotificationMessageCountArgs>(
      args?: Subset<T, NotificationMessageCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], NotificationMessageCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a NotificationMessage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationMessageAggregateArgs} 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 NotificationMessageAggregateArgs>(args: Subset<T, NotificationMessageAggregateArgs>): Prisma.PrismaPromise<GetNotificationMessageAggregateType<T>>

    /**
     * Group by NotificationMessage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationMessageGroupByArgs} 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 NotificationMessageGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: NotificationMessageGroupByArgs['orderBy'] }
        : { orderBy?: NotificationMessageGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, NotificationMessageGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetNotificationMessageGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the NotificationMessage model
   */
  readonly fields: NotificationMessageFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for NotificationMessage.
   * 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__NotificationMessageClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the NotificationMessage model
   */
  interface NotificationMessageFieldRefs {
    readonly id: FieldRef<"NotificationMessage", 'String'>
    readonly userId: FieldRef<"NotificationMessage", 'String'>
    readonly type: FieldRef<"NotificationMessage", 'NotificationType'>
    readonly title: FieldRef<"NotificationMessage", 'String'>
    readonly content: FieldRef<"NotificationMessage", 'String'>
    readonly link: FieldRef<"NotificationMessage", 'String'>
    readonly status: FieldRef<"NotificationMessage", 'NotificationStatus'>
    readonly createdAt: FieldRef<"NotificationMessage", 'DateTime'>
    readonly readAt: FieldRef<"NotificationMessage", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * NotificationMessage findUnique
   */
  export type NotificationMessageFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * Filter, which NotificationMessage to fetch.
     */
    where: NotificationMessageWhereUniqueInput
  }

  /**
   * NotificationMessage findUniqueOrThrow
   */
  export type NotificationMessageFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * Filter, which NotificationMessage to fetch.
     */
    where: NotificationMessageWhereUniqueInput
  }

  /**
   * NotificationMessage findFirst
   */
  export type NotificationMessageFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * Filter, which NotificationMessage to fetch.
     */
    where?: NotificationMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationMessages to fetch.
     */
    orderBy?: NotificationMessageOrderByWithRelationInput | NotificationMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for NotificationMessages.
     */
    cursor?: NotificationMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationMessages 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` NotificationMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of NotificationMessages.
     */
    distinct?: NotificationMessageScalarFieldEnum | NotificationMessageScalarFieldEnum[]
  }

  /**
   * NotificationMessage findFirstOrThrow
   */
  export type NotificationMessageFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * Filter, which NotificationMessage to fetch.
     */
    where?: NotificationMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationMessages to fetch.
     */
    orderBy?: NotificationMessageOrderByWithRelationInput | NotificationMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for NotificationMessages.
     */
    cursor?: NotificationMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationMessages 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` NotificationMessages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of NotificationMessages.
     */
    distinct?: NotificationMessageScalarFieldEnum | NotificationMessageScalarFieldEnum[]
  }

  /**
   * NotificationMessage findMany
   */
  export type NotificationMessageFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * Filter, which NotificationMessages to fetch.
     */
    where?: NotificationMessageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationMessages to fetch.
     */
    orderBy?: NotificationMessageOrderByWithRelationInput | NotificationMessageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing NotificationMessages.
     */
    cursor?: NotificationMessageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationMessages 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` NotificationMessages.
     */
    skip?: number
    distinct?: NotificationMessageScalarFieldEnum | NotificationMessageScalarFieldEnum[]
  }

  /**
   * NotificationMessage create
   */
  export type NotificationMessageCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * The data needed to create a NotificationMessage.
     */
    data: XOR<NotificationMessageCreateInput, NotificationMessageUncheckedCreateInput>
  }

  /**
   * NotificationMessage createMany
   */
  export type NotificationMessageCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many NotificationMessages.
     */
    data: NotificationMessageCreateManyInput | NotificationMessageCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * NotificationMessage createManyAndReturn
   */
  export type NotificationMessageCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * The data used to create many NotificationMessages.
     */
    data: NotificationMessageCreateManyInput | NotificationMessageCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * NotificationMessage update
   */
  export type NotificationMessageUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * The data needed to update a NotificationMessage.
     */
    data: XOR<NotificationMessageUpdateInput, NotificationMessageUncheckedUpdateInput>
    /**
     * Choose, which NotificationMessage to update.
     */
    where: NotificationMessageWhereUniqueInput
  }

  /**
   * NotificationMessage updateMany
   */
  export type NotificationMessageUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update NotificationMessages.
     */
    data: XOR<NotificationMessageUpdateManyMutationInput, NotificationMessageUncheckedUpdateManyInput>
    /**
     * Filter which NotificationMessages to update
     */
    where?: NotificationMessageWhereInput
    /**
     * Limit how many NotificationMessages to update.
     */
    limit?: number
  }

  /**
   * NotificationMessage updateManyAndReturn
   */
  export type NotificationMessageUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * The data used to update NotificationMessages.
     */
    data: XOR<NotificationMessageUpdateManyMutationInput, NotificationMessageUncheckedUpdateManyInput>
    /**
     * Filter which NotificationMessages to update
     */
    where?: NotificationMessageWhereInput
    /**
     * Limit how many NotificationMessages to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * NotificationMessage upsert
   */
  export type NotificationMessageUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * The filter to search for the NotificationMessage to update in case it exists.
     */
    where: NotificationMessageWhereUniqueInput
    /**
     * In case the NotificationMessage found by the `where` argument doesn't exist, create a new NotificationMessage with this data.
     */
    create: XOR<NotificationMessageCreateInput, NotificationMessageUncheckedCreateInput>
    /**
     * In case the NotificationMessage was found with the provided `where` argument, update it with this data.
     */
    update: XOR<NotificationMessageUpdateInput, NotificationMessageUncheckedUpdateInput>
  }

  /**
   * NotificationMessage delete
   */
  export type NotificationMessageDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
    /**
     * Filter which NotificationMessage to delete.
     */
    where: NotificationMessageWhereUniqueInput
  }

  /**
   * NotificationMessage deleteMany
   */
  export type NotificationMessageDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which NotificationMessages to delete
     */
    where?: NotificationMessageWhereInput
    /**
     * Limit how many NotificationMessages to delete.
     */
    limit?: number
  }

  /**
   * NotificationMessage without action
   */
  export type NotificationMessageDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationMessage
     */
    select?: NotificationMessageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationMessage
     */
    omit?: NotificationMessageOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationMessageInclude<ExtArgs> | null
  }


  /**
   * Model NotificationPreference
   */

  export type AggregateNotificationPreference = {
    _count: NotificationPreferenceCountAggregateOutputType | null
    _min: NotificationPreferenceMinAggregateOutputType | null
    _max: NotificationPreferenceMaxAggregateOutputType | null
  }

  export type NotificationPreferenceMinAggregateOutputType = {
    id: string | null
    userId: string | null
    email: boolean | null
    webpush: boolean | null
    websocket: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type NotificationPreferenceMaxAggregateOutputType = {
    id: string | null
    userId: string | null
    email: boolean | null
    webpush: boolean | null
    websocket: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type NotificationPreferenceCountAggregateOutputType = {
    id: number
    userId: number
    email: number
    webpush: number
    websocket: number
    quietHours: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type NotificationPreferenceMinAggregateInputType = {
    id?: true
    userId?: true
    email?: true
    webpush?: true
    websocket?: true
    createdAt?: true
    updatedAt?: true
  }

  export type NotificationPreferenceMaxAggregateInputType = {
    id?: true
    userId?: true
    email?: true
    webpush?: true
    websocket?: true
    createdAt?: true
    updatedAt?: true
  }

  export type NotificationPreferenceCountAggregateInputType = {
    id?: true
    userId?: true
    email?: true
    webpush?: true
    websocket?: true
    quietHours?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type NotificationPreferenceAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which NotificationPreference to aggregate.
     */
    where?: NotificationPreferenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationPreferences to fetch.
     */
    orderBy?: NotificationPreferenceOrderByWithRelationInput | NotificationPreferenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: NotificationPreferenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationPreferences 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` NotificationPreferences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned NotificationPreferences
    **/
    _count?: true | NotificationPreferenceCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: NotificationPreferenceMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: NotificationPreferenceMaxAggregateInputType
  }

  export type GetNotificationPreferenceAggregateType<T extends NotificationPreferenceAggregateArgs> = {
        [P in keyof T & keyof AggregateNotificationPreference]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateNotificationPreference[P]>
      : GetScalarType<T[P], AggregateNotificationPreference[P]>
  }




  export type NotificationPreferenceGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: NotificationPreferenceWhereInput
    orderBy?: NotificationPreferenceOrderByWithAggregationInput | NotificationPreferenceOrderByWithAggregationInput[]
    by: NotificationPreferenceScalarFieldEnum[] | NotificationPreferenceScalarFieldEnum
    having?: NotificationPreferenceScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: NotificationPreferenceCountAggregateInputType | true
    _min?: NotificationPreferenceMinAggregateInputType
    _max?: NotificationPreferenceMaxAggregateInputType
  }

  export type NotificationPreferenceGroupByOutputType = {
    id: string
    userId: string
    email: boolean
    webpush: boolean
    websocket: boolean
    quietHours: JsonValue | null
    createdAt: Date
    updatedAt: Date
    _count: NotificationPreferenceCountAggregateOutputType | null
    _min: NotificationPreferenceMinAggregateOutputType | null
    _max: NotificationPreferenceMaxAggregateOutputType | null
  }

  type GetNotificationPreferenceGroupByPayload<T extends NotificationPreferenceGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<NotificationPreferenceGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof NotificationPreferenceGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], NotificationPreferenceGroupByOutputType[P]>
            : GetScalarType<T[P], NotificationPreferenceGroupByOutputType[P]>
        }
      >
    >


  export type NotificationPreferenceSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    email?: boolean
    webpush?: boolean
    websocket?: boolean
    quietHours?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["notificationPreference"]>

  export type NotificationPreferenceSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    email?: boolean
    webpush?: boolean
    websocket?: boolean
    quietHours?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["notificationPreference"]>

  export type NotificationPreferenceSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    userId?: boolean
    email?: boolean
    webpush?: boolean
    websocket?: boolean
    quietHours?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["notificationPreference"]>

  export type NotificationPreferenceSelectScalar = {
    id?: boolean
    userId?: boolean
    email?: boolean
    webpush?: boolean
    websocket?: boolean
    quietHours?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type NotificationPreferenceOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "email" | "webpush" | "websocket" | "quietHours" | "createdAt" | "updatedAt", ExtArgs["result"]["notificationPreference"]>

  export type $NotificationPreferencePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "NotificationPreference"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      userId: string
      email: boolean
      webpush: boolean
      websocket: boolean
      quietHours: Prisma.JsonValue | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["notificationPreference"]>
    composites: {}
  }

  type NotificationPreferenceGetPayload<S extends boolean | null | undefined | NotificationPreferenceDefaultArgs> = $Result.GetResult<Prisma.$NotificationPreferencePayload, S>

  type NotificationPreferenceCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<NotificationPreferenceFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: NotificationPreferenceCountAggregateInputType | true
    }

  export interface NotificationPreferenceDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['NotificationPreference'], meta: { name: 'NotificationPreference' } }
    /**
     * Find zero or one NotificationPreference that matches the filter.
     * @param {NotificationPreferenceFindUniqueArgs} args - Arguments to find a NotificationPreference
     * @example
     * // Get one NotificationPreference
     * const notificationPreference = await prisma.notificationPreference.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends NotificationPreferenceFindUniqueArgs>(args: SelectSubset<T, NotificationPreferenceFindUniqueArgs<ExtArgs>>): Prisma__NotificationPreferenceClient<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one NotificationPreference that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {NotificationPreferenceFindUniqueOrThrowArgs} args - Arguments to find a NotificationPreference
     * @example
     * // Get one NotificationPreference
     * const notificationPreference = await prisma.notificationPreference.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends NotificationPreferenceFindUniqueOrThrowArgs>(args: SelectSubset<T, NotificationPreferenceFindUniqueOrThrowArgs<ExtArgs>>): Prisma__NotificationPreferenceClient<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first NotificationPreference 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 {NotificationPreferenceFindFirstArgs} args - Arguments to find a NotificationPreference
     * @example
     * // Get one NotificationPreference
     * const notificationPreference = await prisma.notificationPreference.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends NotificationPreferenceFindFirstArgs>(args?: SelectSubset<T, NotificationPreferenceFindFirstArgs<ExtArgs>>): Prisma__NotificationPreferenceClient<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first NotificationPreference 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 {NotificationPreferenceFindFirstOrThrowArgs} args - Arguments to find a NotificationPreference
     * @example
     * // Get one NotificationPreference
     * const notificationPreference = await prisma.notificationPreference.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends NotificationPreferenceFindFirstOrThrowArgs>(args?: SelectSubset<T, NotificationPreferenceFindFirstOrThrowArgs<ExtArgs>>): Prisma__NotificationPreferenceClient<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more NotificationPreferences 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 {NotificationPreferenceFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all NotificationPreferences
     * const notificationPreferences = await prisma.notificationPreference.findMany()
     * 
     * // Get first 10 NotificationPreferences
     * const notificationPreferences = await prisma.notificationPreference.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const notificationPreferenceWithIdOnly = await prisma.notificationPreference.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends NotificationPreferenceFindManyArgs>(args?: SelectSubset<T, NotificationPreferenceFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a NotificationPreference.
     * @param {NotificationPreferenceCreateArgs} args - Arguments to create a NotificationPreference.
     * @example
     * // Create one NotificationPreference
     * const NotificationPreference = await prisma.notificationPreference.create({
     *   data: {
     *     // ... data to create a NotificationPreference
     *   }
     * })
     * 
     */
    create<T extends NotificationPreferenceCreateArgs>(args: SelectSubset<T, NotificationPreferenceCreateArgs<ExtArgs>>): Prisma__NotificationPreferenceClient<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many NotificationPreferences.
     * @param {NotificationPreferenceCreateManyArgs} args - Arguments to create many NotificationPreferences.
     * @example
     * // Create many NotificationPreferences
     * const notificationPreference = await prisma.notificationPreference.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends NotificationPreferenceCreateManyArgs>(args?: SelectSubset<T, NotificationPreferenceCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many NotificationPreferences and returns the data saved in the database.
     * @param {NotificationPreferenceCreateManyAndReturnArgs} args - Arguments to create many NotificationPreferences.
     * @example
     * // Create many NotificationPreferences
     * const notificationPreference = await prisma.notificationPreference.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many NotificationPreferences and only return the `id`
     * const notificationPreferenceWithIdOnly = await prisma.notificationPreference.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 NotificationPreferenceCreateManyAndReturnArgs>(args?: SelectSubset<T, NotificationPreferenceCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a NotificationPreference.
     * @param {NotificationPreferenceDeleteArgs} args - Arguments to delete one NotificationPreference.
     * @example
     * // Delete one NotificationPreference
     * const NotificationPreference = await prisma.notificationPreference.delete({
     *   where: {
     *     // ... filter to delete one NotificationPreference
     *   }
     * })
     * 
     */
    delete<T extends NotificationPreferenceDeleteArgs>(args: SelectSubset<T, NotificationPreferenceDeleteArgs<ExtArgs>>): Prisma__NotificationPreferenceClient<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one NotificationPreference.
     * @param {NotificationPreferenceUpdateArgs} args - Arguments to update one NotificationPreference.
     * @example
     * // Update one NotificationPreference
     * const notificationPreference = await prisma.notificationPreference.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends NotificationPreferenceUpdateArgs>(args: SelectSubset<T, NotificationPreferenceUpdateArgs<ExtArgs>>): Prisma__NotificationPreferenceClient<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more NotificationPreferences.
     * @param {NotificationPreferenceDeleteManyArgs} args - Arguments to filter NotificationPreferences to delete.
     * @example
     * // Delete a few NotificationPreferences
     * const { count } = await prisma.notificationPreference.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends NotificationPreferenceDeleteManyArgs>(args?: SelectSubset<T, NotificationPreferenceDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more NotificationPreferences.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationPreferenceUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many NotificationPreferences
     * const notificationPreference = await prisma.notificationPreference.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends NotificationPreferenceUpdateManyArgs>(args: SelectSubset<T, NotificationPreferenceUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more NotificationPreferences and returns the data updated in the database.
     * @param {NotificationPreferenceUpdateManyAndReturnArgs} args - Arguments to update many NotificationPreferences.
     * @example
     * // Update many NotificationPreferences
     * const notificationPreference = await prisma.notificationPreference.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more NotificationPreferences and only return the `id`
     * const notificationPreferenceWithIdOnly = await prisma.notificationPreference.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 NotificationPreferenceUpdateManyAndReturnArgs>(args: SelectSubset<T, NotificationPreferenceUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one NotificationPreference.
     * @param {NotificationPreferenceUpsertArgs} args - Arguments to update or create a NotificationPreference.
     * @example
     * // Update or create a NotificationPreference
     * const notificationPreference = await prisma.notificationPreference.upsert({
     *   create: {
     *     // ... data to create a NotificationPreference
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the NotificationPreference we want to update
     *   }
     * })
     */
    upsert<T extends NotificationPreferenceUpsertArgs>(args: SelectSubset<T, NotificationPreferenceUpsertArgs<ExtArgs>>): Prisma__NotificationPreferenceClient<$Result.GetResult<Prisma.$NotificationPreferencePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of NotificationPreferences.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationPreferenceCountArgs} args - Arguments to filter NotificationPreferences to count.
     * @example
     * // Count the number of NotificationPreferences
     * const count = await prisma.notificationPreference.count({
     *   where: {
     *     // ... the filter for the NotificationPreferences we want to count
     *   }
     * })
    **/
    count<T extends NotificationPreferenceCountArgs>(
      args?: Subset<T, NotificationPreferenceCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], NotificationPreferenceCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a NotificationPreference.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationPreferenceAggregateArgs} 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 NotificationPreferenceAggregateArgs>(args: Subset<T, NotificationPreferenceAggregateArgs>): Prisma.PrismaPromise<GetNotificationPreferenceAggregateType<T>>

    /**
     * Group by NotificationPreference.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationPreferenceGroupByArgs} 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 NotificationPreferenceGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: NotificationPreferenceGroupByArgs['orderBy'] }
        : { orderBy?: NotificationPreferenceGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, NotificationPreferenceGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetNotificationPreferenceGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the NotificationPreference model
   */
  readonly fields: NotificationPreferenceFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for NotificationPreference.
   * 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__NotificationPreferenceClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the NotificationPreference model
   */
  interface NotificationPreferenceFieldRefs {
    readonly id: FieldRef<"NotificationPreference", 'String'>
    readonly userId: FieldRef<"NotificationPreference", 'String'>
    readonly email: FieldRef<"NotificationPreference", 'Boolean'>
    readonly webpush: FieldRef<"NotificationPreference", 'Boolean'>
    readonly websocket: FieldRef<"NotificationPreference", 'Boolean'>
    readonly quietHours: FieldRef<"NotificationPreference", 'Json'>
    readonly createdAt: FieldRef<"NotificationPreference", 'DateTime'>
    readonly updatedAt: FieldRef<"NotificationPreference", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * NotificationPreference findUnique
   */
  export type NotificationPreferenceFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * Filter, which NotificationPreference to fetch.
     */
    where: NotificationPreferenceWhereUniqueInput
  }

  /**
   * NotificationPreference findUniqueOrThrow
   */
  export type NotificationPreferenceFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * Filter, which NotificationPreference to fetch.
     */
    where: NotificationPreferenceWhereUniqueInput
  }

  /**
   * NotificationPreference findFirst
   */
  export type NotificationPreferenceFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * Filter, which NotificationPreference to fetch.
     */
    where?: NotificationPreferenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationPreferences to fetch.
     */
    orderBy?: NotificationPreferenceOrderByWithRelationInput | NotificationPreferenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for NotificationPreferences.
     */
    cursor?: NotificationPreferenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationPreferences 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` NotificationPreferences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of NotificationPreferences.
     */
    distinct?: NotificationPreferenceScalarFieldEnum | NotificationPreferenceScalarFieldEnum[]
  }

  /**
   * NotificationPreference findFirstOrThrow
   */
  export type NotificationPreferenceFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * Filter, which NotificationPreference to fetch.
     */
    where?: NotificationPreferenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationPreferences to fetch.
     */
    orderBy?: NotificationPreferenceOrderByWithRelationInput | NotificationPreferenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for NotificationPreferences.
     */
    cursor?: NotificationPreferenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationPreferences 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` NotificationPreferences.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of NotificationPreferences.
     */
    distinct?: NotificationPreferenceScalarFieldEnum | NotificationPreferenceScalarFieldEnum[]
  }

  /**
   * NotificationPreference findMany
   */
  export type NotificationPreferenceFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * Filter, which NotificationPreferences to fetch.
     */
    where?: NotificationPreferenceWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationPreferences to fetch.
     */
    orderBy?: NotificationPreferenceOrderByWithRelationInput | NotificationPreferenceOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing NotificationPreferences.
     */
    cursor?: NotificationPreferenceWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationPreferences 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` NotificationPreferences.
     */
    skip?: number
    distinct?: NotificationPreferenceScalarFieldEnum | NotificationPreferenceScalarFieldEnum[]
  }

  /**
   * NotificationPreference create
   */
  export type NotificationPreferenceCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * The data needed to create a NotificationPreference.
     */
    data: XOR<NotificationPreferenceCreateInput, NotificationPreferenceUncheckedCreateInput>
  }

  /**
   * NotificationPreference createMany
   */
  export type NotificationPreferenceCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many NotificationPreferences.
     */
    data: NotificationPreferenceCreateManyInput | NotificationPreferenceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * NotificationPreference createManyAndReturn
   */
  export type NotificationPreferenceCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * The data used to create many NotificationPreferences.
     */
    data: NotificationPreferenceCreateManyInput | NotificationPreferenceCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * NotificationPreference update
   */
  export type NotificationPreferenceUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * The data needed to update a NotificationPreference.
     */
    data: XOR<NotificationPreferenceUpdateInput, NotificationPreferenceUncheckedUpdateInput>
    /**
     * Choose, which NotificationPreference to update.
     */
    where: NotificationPreferenceWhereUniqueInput
  }

  /**
   * NotificationPreference updateMany
   */
  export type NotificationPreferenceUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update NotificationPreferences.
     */
    data: XOR<NotificationPreferenceUpdateManyMutationInput, NotificationPreferenceUncheckedUpdateManyInput>
    /**
     * Filter which NotificationPreferences to update
     */
    where?: NotificationPreferenceWhereInput
    /**
     * Limit how many NotificationPreferences to update.
     */
    limit?: number
  }

  /**
   * NotificationPreference updateManyAndReturn
   */
  export type NotificationPreferenceUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * The data used to update NotificationPreferences.
     */
    data: XOR<NotificationPreferenceUpdateManyMutationInput, NotificationPreferenceUncheckedUpdateManyInput>
    /**
     * Filter which NotificationPreferences to update
     */
    where?: NotificationPreferenceWhereInput
    /**
     * Limit how many NotificationPreferences to update.
     */
    limit?: number
  }

  /**
   * NotificationPreference upsert
   */
  export type NotificationPreferenceUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * The filter to search for the NotificationPreference to update in case it exists.
     */
    where: NotificationPreferenceWhereUniqueInput
    /**
     * In case the NotificationPreference found by the `where` argument doesn't exist, create a new NotificationPreference with this data.
     */
    create: XOR<NotificationPreferenceCreateInput, NotificationPreferenceUncheckedCreateInput>
    /**
     * In case the NotificationPreference was found with the provided `where` argument, update it with this data.
     */
    update: XOR<NotificationPreferenceUpdateInput, NotificationPreferenceUncheckedUpdateInput>
  }

  /**
   * NotificationPreference delete
   */
  export type NotificationPreferenceDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
    /**
     * Filter which NotificationPreference to delete.
     */
    where: NotificationPreferenceWhereUniqueInput
  }

  /**
   * NotificationPreference deleteMany
   */
  export type NotificationPreferenceDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which NotificationPreferences to delete
     */
    where?: NotificationPreferenceWhereInput
    /**
     * Limit how many NotificationPreferences to delete.
     */
    limit?: number
  }

  /**
   * NotificationPreference without action
   */
  export type NotificationPreferenceDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationPreference
     */
    select?: NotificationPreferenceSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationPreference
     */
    omit?: NotificationPreferenceOmit<ExtArgs> | null
  }


  /**
   * Model NotificationTemplate
   */

  export type AggregateNotificationTemplate = {
    _count: NotificationTemplateCountAggregateOutputType | null
    _min: NotificationTemplateMinAggregateOutputType | null
    _max: NotificationTemplateMaxAggregateOutputType | null
  }

  export type NotificationTemplateMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    description: string | null
    channel: $Enums.NotificationChannel | null
    subject: string | null
    template: string | null
    priority: $Enums.NotificationPriority | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type NotificationTemplateMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    description: string | null
    channel: $Enums.NotificationChannel | null
    subject: string | null
    template: string | null
    priority: $Enums.NotificationPriority | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type NotificationTemplateCountAggregateOutputType = {
    id: number
    code: number
    name: number
    description: number
    channel: number
    subject: number
    template: number
    variables: number
    example: number
    priority: number
    isActive: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type NotificationTemplateMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    description?: true
    channel?: true
    subject?: true
    template?: true
    priority?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type NotificationTemplateMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    description?: true
    channel?: true
    subject?: true
    template?: true
    priority?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type NotificationTemplateCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    description?: true
    channel?: true
    subject?: true
    template?: true
    variables?: true
    example?: true
    priority?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type NotificationTemplateAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which NotificationTemplate to aggregate.
     */
    where?: NotificationTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationTemplates to fetch.
     */
    orderBy?: NotificationTemplateOrderByWithRelationInput | NotificationTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: NotificationTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationTemplates 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` NotificationTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned NotificationTemplates
    **/
    _count?: true | NotificationTemplateCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: NotificationTemplateMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: NotificationTemplateMaxAggregateInputType
  }

  export type GetNotificationTemplateAggregateType<T extends NotificationTemplateAggregateArgs> = {
        [P in keyof T & keyof AggregateNotificationTemplate]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateNotificationTemplate[P]>
      : GetScalarType<T[P], AggregateNotificationTemplate[P]>
  }




  export type NotificationTemplateGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: NotificationTemplateWhereInput
    orderBy?: NotificationTemplateOrderByWithAggregationInput | NotificationTemplateOrderByWithAggregationInput[]
    by: NotificationTemplateScalarFieldEnum[] | NotificationTemplateScalarFieldEnum
    having?: NotificationTemplateScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: NotificationTemplateCountAggregateInputType | true
    _min?: NotificationTemplateMinAggregateInputType
    _max?: NotificationTemplateMaxAggregateInputType
  }

  export type NotificationTemplateGroupByOutputType = {
    id: string
    code: string
    name: string
    description: string | null
    channel: $Enums.NotificationChannel
    subject: string | null
    template: string
    variables: string[]
    example: JsonValue | null
    priority: $Enums.NotificationPriority
    isActive: boolean
    createdAt: Date
    updatedAt: Date
    _count: NotificationTemplateCountAggregateOutputType | null
    _min: NotificationTemplateMinAggregateOutputType | null
    _max: NotificationTemplateMaxAggregateOutputType | null
  }

  type GetNotificationTemplateGroupByPayload<T extends NotificationTemplateGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<NotificationTemplateGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof NotificationTemplateGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], NotificationTemplateGroupByOutputType[P]>
            : GetScalarType<T[P], NotificationTemplateGroupByOutputType[P]>
        }
      >
    >


  export type NotificationTemplateSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    description?: boolean
    channel?: boolean
    subject?: boolean
    template?: boolean
    variables?: boolean
    example?: boolean
    priority?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    logs?: boolean | NotificationTemplate$logsArgs<ExtArgs>
    _count?: boolean | NotificationTemplateCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["notificationTemplate"]>

  export type NotificationTemplateSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    description?: boolean
    channel?: boolean
    subject?: boolean
    template?: boolean
    variables?: boolean
    example?: boolean
    priority?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["notificationTemplate"]>

  export type NotificationTemplateSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    description?: boolean
    channel?: boolean
    subject?: boolean
    template?: boolean
    variables?: boolean
    example?: boolean
    priority?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["notificationTemplate"]>

  export type NotificationTemplateSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    description?: boolean
    channel?: boolean
    subject?: boolean
    template?: boolean
    variables?: boolean
    example?: boolean
    priority?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type NotificationTemplateOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "description" | "channel" | "subject" | "template" | "variables" | "example" | "priority" | "isActive" | "createdAt" | "updatedAt", ExtArgs["result"]["notificationTemplate"]>
  export type NotificationTemplateInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    logs?: boolean | NotificationTemplate$logsArgs<ExtArgs>
    _count?: boolean | NotificationTemplateCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type NotificationTemplateIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type NotificationTemplateIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $NotificationTemplatePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "NotificationTemplate"
    objects: {
      logs: Prisma.$NotificationLogPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      description: string | null
      channel: $Enums.NotificationChannel
      subject: string | null
      template: string
      variables: string[]
      example: Prisma.JsonValue | null
      priority: $Enums.NotificationPriority
      isActive: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["notificationTemplate"]>
    composites: {}
  }

  type NotificationTemplateGetPayload<S extends boolean | null | undefined | NotificationTemplateDefaultArgs> = $Result.GetResult<Prisma.$NotificationTemplatePayload, S>

  type NotificationTemplateCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<NotificationTemplateFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: NotificationTemplateCountAggregateInputType | true
    }

  export interface NotificationTemplateDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['NotificationTemplate'], meta: { name: 'NotificationTemplate' } }
    /**
     * Find zero or one NotificationTemplate that matches the filter.
     * @param {NotificationTemplateFindUniqueArgs} args - Arguments to find a NotificationTemplate
     * @example
     * // Get one NotificationTemplate
     * const notificationTemplate = await prisma.notificationTemplate.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends NotificationTemplateFindUniqueArgs>(args: SelectSubset<T, NotificationTemplateFindUniqueArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one NotificationTemplate that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {NotificationTemplateFindUniqueOrThrowArgs} args - Arguments to find a NotificationTemplate
     * @example
     * // Get one NotificationTemplate
     * const notificationTemplate = await prisma.notificationTemplate.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends NotificationTemplateFindUniqueOrThrowArgs>(args: SelectSubset<T, NotificationTemplateFindUniqueOrThrowArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first NotificationTemplate 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 {NotificationTemplateFindFirstArgs} args - Arguments to find a NotificationTemplate
     * @example
     * // Get one NotificationTemplate
     * const notificationTemplate = await prisma.notificationTemplate.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends NotificationTemplateFindFirstArgs>(args?: SelectSubset<T, NotificationTemplateFindFirstArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first NotificationTemplate 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 {NotificationTemplateFindFirstOrThrowArgs} args - Arguments to find a NotificationTemplate
     * @example
     * // Get one NotificationTemplate
     * const notificationTemplate = await prisma.notificationTemplate.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends NotificationTemplateFindFirstOrThrowArgs>(args?: SelectSubset<T, NotificationTemplateFindFirstOrThrowArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more NotificationTemplates 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 {NotificationTemplateFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all NotificationTemplates
     * const notificationTemplates = await prisma.notificationTemplate.findMany()
     * 
     * // Get first 10 NotificationTemplates
     * const notificationTemplates = await prisma.notificationTemplate.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const notificationTemplateWithIdOnly = await prisma.notificationTemplate.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends NotificationTemplateFindManyArgs>(args?: SelectSubset<T, NotificationTemplateFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a NotificationTemplate.
     * @param {NotificationTemplateCreateArgs} args - Arguments to create a NotificationTemplate.
     * @example
     * // Create one NotificationTemplate
     * const NotificationTemplate = await prisma.notificationTemplate.create({
     *   data: {
     *     // ... data to create a NotificationTemplate
     *   }
     * })
     * 
     */
    create<T extends NotificationTemplateCreateArgs>(args: SelectSubset<T, NotificationTemplateCreateArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many NotificationTemplates.
     * @param {NotificationTemplateCreateManyArgs} args - Arguments to create many NotificationTemplates.
     * @example
     * // Create many NotificationTemplates
     * const notificationTemplate = await prisma.notificationTemplate.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends NotificationTemplateCreateManyArgs>(args?: SelectSubset<T, NotificationTemplateCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many NotificationTemplates and returns the data saved in the database.
     * @param {NotificationTemplateCreateManyAndReturnArgs} args - Arguments to create many NotificationTemplates.
     * @example
     * // Create many NotificationTemplates
     * const notificationTemplate = await prisma.notificationTemplate.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many NotificationTemplates and only return the `id`
     * const notificationTemplateWithIdOnly = await prisma.notificationTemplate.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 NotificationTemplateCreateManyAndReturnArgs>(args?: SelectSubset<T, NotificationTemplateCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a NotificationTemplate.
     * @param {NotificationTemplateDeleteArgs} args - Arguments to delete one NotificationTemplate.
     * @example
     * // Delete one NotificationTemplate
     * const NotificationTemplate = await prisma.notificationTemplate.delete({
     *   where: {
     *     // ... filter to delete one NotificationTemplate
     *   }
     * })
     * 
     */
    delete<T extends NotificationTemplateDeleteArgs>(args: SelectSubset<T, NotificationTemplateDeleteArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one NotificationTemplate.
     * @param {NotificationTemplateUpdateArgs} args - Arguments to update one NotificationTemplate.
     * @example
     * // Update one NotificationTemplate
     * const notificationTemplate = await prisma.notificationTemplate.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends NotificationTemplateUpdateArgs>(args: SelectSubset<T, NotificationTemplateUpdateArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more NotificationTemplates.
     * @param {NotificationTemplateDeleteManyArgs} args - Arguments to filter NotificationTemplates to delete.
     * @example
     * // Delete a few NotificationTemplates
     * const { count } = await prisma.notificationTemplate.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends NotificationTemplateDeleteManyArgs>(args?: SelectSubset<T, NotificationTemplateDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more NotificationTemplates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationTemplateUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many NotificationTemplates
     * const notificationTemplate = await prisma.notificationTemplate.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends NotificationTemplateUpdateManyArgs>(args: SelectSubset<T, NotificationTemplateUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more NotificationTemplates and returns the data updated in the database.
     * @param {NotificationTemplateUpdateManyAndReturnArgs} args - Arguments to update many NotificationTemplates.
     * @example
     * // Update many NotificationTemplates
     * const notificationTemplate = await prisma.notificationTemplate.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more NotificationTemplates and only return the `id`
     * const notificationTemplateWithIdOnly = await prisma.notificationTemplate.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 NotificationTemplateUpdateManyAndReturnArgs>(args: SelectSubset<T, NotificationTemplateUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one NotificationTemplate.
     * @param {NotificationTemplateUpsertArgs} args - Arguments to update or create a NotificationTemplate.
     * @example
     * // Update or create a NotificationTemplate
     * const notificationTemplate = await prisma.notificationTemplate.upsert({
     *   create: {
     *     // ... data to create a NotificationTemplate
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the NotificationTemplate we want to update
     *   }
     * })
     */
    upsert<T extends NotificationTemplateUpsertArgs>(args: SelectSubset<T, NotificationTemplateUpsertArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of NotificationTemplates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationTemplateCountArgs} args - Arguments to filter NotificationTemplates to count.
     * @example
     * // Count the number of NotificationTemplates
     * const count = await prisma.notificationTemplate.count({
     *   where: {
     *     // ... the filter for the NotificationTemplates we want to count
     *   }
     * })
    **/
    count<T extends NotificationTemplateCountArgs>(
      args?: Subset<T, NotificationTemplateCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], NotificationTemplateCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a NotificationTemplate.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationTemplateAggregateArgs} 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 NotificationTemplateAggregateArgs>(args: Subset<T, NotificationTemplateAggregateArgs>): Prisma.PrismaPromise<GetNotificationTemplateAggregateType<T>>

    /**
     * Group by NotificationTemplate.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationTemplateGroupByArgs} 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 NotificationTemplateGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: NotificationTemplateGroupByArgs['orderBy'] }
        : { orderBy?: NotificationTemplateGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, NotificationTemplateGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetNotificationTemplateGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the NotificationTemplate model
   */
  readonly fields: NotificationTemplateFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for NotificationTemplate.
   * 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__NotificationTemplateClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    logs<T extends NotificationTemplate$logsArgs<ExtArgs> = {}>(args?: Subset<T, NotificationTemplate$logsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the NotificationTemplate model
   */
  interface NotificationTemplateFieldRefs {
    readonly id: FieldRef<"NotificationTemplate", 'String'>
    readonly code: FieldRef<"NotificationTemplate", 'String'>
    readonly name: FieldRef<"NotificationTemplate", 'String'>
    readonly description: FieldRef<"NotificationTemplate", 'String'>
    readonly channel: FieldRef<"NotificationTemplate", 'NotificationChannel'>
    readonly subject: FieldRef<"NotificationTemplate", 'String'>
    readonly template: FieldRef<"NotificationTemplate", 'String'>
    readonly variables: FieldRef<"NotificationTemplate", 'String[]'>
    readonly example: FieldRef<"NotificationTemplate", 'Json'>
    readonly priority: FieldRef<"NotificationTemplate", 'NotificationPriority'>
    readonly isActive: FieldRef<"NotificationTemplate", 'Boolean'>
    readonly createdAt: FieldRef<"NotificationTemplate", 'DateTime'>
    readonly updatedAt: FieldRef<"NotificationTemplate", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * NotificationTemplate findUnique
   */
  export type NotificationTemplateFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * Filter, which NotificationTemplate to fetch.
     */
    where: NotificationTemplateWhereUniqueInput
  }

  /**
   * NotificationTemplate findUniqueOrThrow
   */
  export type NotificationTemplateFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * Filter, which NotificationTemplate to fetch.
     */
    where: NotificationTemplateWhereUniqueInput
  }

  /**
   * NotificationTemplate findFirst
   */
  export type NotificationTemplateFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * Filter, which NotificationTemplate to fetch.
     */
    where?: NotificationTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationTemplates to fetch.
     */
    orderBy?: NotificationTemplateOrderByWithRelationInput | NotificationTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for NotificationTemplates.
     */
    cursor?: NotificationTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationTemplates 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` NotificationTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of NotificationTemplates.
     */
    distinct?: NotificationTemplateScalarFieldEnum | NotificationTemplateScalarFieldEnum[]
  }

  /**
   * NotificationTemplate findFirstOrThrow
   */
  export type NotificationTemplateFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * Filter, which NotificationTemplate to fetch.
     */
    where?: NotificationTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationTemplates to fetch.
     */
    orderBy?: NotificationTemplateOrderByWithRelationInput | NotificationTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for NotificationTemplates.
     */
    cursor?: NotificationTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationTemplates 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` NotificationTemplates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of NotificationTemplates.
     */
    distinct?: NotificationTemplateScalarFieldEnum | NotificationTemplateScalarFieldEnum[]
  }

  /**
   * NotificationTemplate findMany
   */
  export type NotificationTemplateFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * Filter, which NotificationTemplates to fetch.
     */
    where?: NotificationTemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationTemplates to fetch.
     */
    orderBy?: NotificationTemplateOrderByWithRelationInput | NotificationTemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing NotificationTemplates.
     */
    cursor?: NotificationTemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationTemplates 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` NotificationTemplates.
     */
    skip?: number
    distinct?: NotificationTemplateScalarFieldEnum | NotificationTemplateScalarFieldEnum[]
  }

  /**
   * NotificationTemplate create
   */
  export type NotificationTemplateCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * The data needed to create a NotificationTemplate.
     */
    data: XOR<NotificationTemplateCreateInput, NotificationTemplateUncheckedCreateInput>
  }

  /**
   * NotificationTemplate createMany
   */
  export type NotificationTemplateCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many NotificationTemplates.
     */
    data: NotificationTemplateCreateManyInput | NotificationTemplateCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * NotificationTemplate createManyAndReturn
   */
  export type NotificationTemplateCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * The data used to create many NotificationTemplates.
     */
    data: NotificationTemplateCreateManyInput | NotificationTemplateCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * NotificationTemplate update
   */
  export type NotificationTemplateUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * The data needed to update a NotificationTemplate.
     */
    data: XOR<NotificationTemplateUpdateInput, NotificationTemplateUncheckedUpdateInput>
    /**
     * Choose, which NotificationTemplate to update.
     */
    where: NotificationTemplateWhereUniqueInput
  }

  /**
   * NotificationTemplate updateMany
   */
  export type NotificationTemplateUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update NotificationTemplates.
     */
    data: XOR<NotificationTemplateUpdateManyMutationInput, NotificationTemplateUncheckedUpdateManyInput>
    /**
     * Filter which NotificationTemplates to update
     */
    where?: NotificationTemplateWhereInput
    /**
     * Limit how many NotificationTemplates to update.
     */
    limit?: number
  }

  /**
   * NotificationTemplate updateManyAndReturn
   */
  export type NotificationTemplateUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * The data used to update NotificationTemplates.
     */
    data: XOR<NotificationTemplateUpdateManyMutationInput, NotificationTemplateUncheckedUpdateManyInput>
    /**
     * Filter which NotificationTemplates to update
     */
    where?: NotificationTemplateWhereInput
    /**
     * Limit how many NotificationTemplates to update.
     */
    limit?: number
  }

  /**
   * NotificationTemplate upsert
   */
  export type NotificationTemplateUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * The filter to search for the NotificationTemplate to update in case it exists.
     */
    where: NotificationTemplateWhereUniqueInput
    /**
     * In case the NotificationTemplate found by the `where` argument doesn't exist, create a new NotificationTemplate with this data.
     */
    create: XOR<NotificationTemplateCreateInput, NotificationTemplateUncheckedCreateInput>
    /**
     * In case the NotificationTemplate was found with the provided `where` argument, update it with this data.
     */
    update: XOR<NotificationTemplateUpdateInput, NotificationTemplateUncheckedUpdateInput>
  }

  /**
   * NotificationTemplate delete
   */
  export type NotificationTemplateDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    /**
     * Filter which NotificationTemplate to delete.
     */
    where: NotificationTemplateWhereUniqueInput
  }

  /**
   * NotificationTemplate deleteMany
   */
  export type NotificationTemplateDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which NotificationTemplates to delete
     */
    where?: NotificationTemplateWhereInput
    /**
     * Limit how many NotificationTemplates to delete.
     */
    limit?: number
  }

  /**
   * NotificationTemplate.logs
   */
  export type NotificationTemplate$logsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    where?: NotificationLogWhereInput
    orderBy?: NotificationLogOrderByWithRelationInput | NotificationLogOrderByWithRelationInput[]
    cursor?: NotificationLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: NotificationLogScalarFieldEnum | NotificationLogScalarFieldEnum[]
  }

  /**
   * NotificationTemplate without action
   */
  export type NotificationTemplateDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
  }


  /**
   * Model NotificationLog
   */

  export type AggregateNotificationLog = {
    _count: NotificationLogCountAggregateOutputType | null
    _avg: NotificationLogAvgAggregateOutputType | null
    _sum: NotificationLogSumAggregateOutputType | null
    _min: NotificationLogMinAggregateOutputType | null
    _max: NotificationLogMaxAggregateOutputType | null
  }

  export type NotificationLogAvgAggregateOutputType = {
    retryCount: number | null
    maxRetries: number | null
  }

  export type NotificationLogSumAggregateOutputType = {
    retryCount: number | null
    maxRetries: number | null
  }

  export type NotificationLogMinAggregateOutputType = {
    id: string | null
    recipientId: string | null
    recipientEmail: string | null
    channel: $Enums.NotificationChannel | null
    templateId: string | null
    subject: string | null
    content: string | null
    status: $Enums.NotificationSendStatus | null
    errorMessage: string | null
    sentAt: Date | null
    retryCount: number | null
    maxRetries: number | null
    nextRetryAt: Date | null
    priority: $Enums.NotificationPriority | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type NotificationLogMaxAggregateOutputType = {
    id: string | null
    recipientId: string | null
    recipientEmail: string | null
    channel: $Enums.NotificationChannel | null
    templateId: string | null
    subject: string | null
    content: string | null
    status: $Enums.NotificationSendStatus | null
    errorMessage: string | null
    sentAt: Date | null
    retryCount: number | null
    maxRetries: number | null
    nextRetryAt: Date | null
    priority: $Enums.NotificationPriority | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type NotificationLogCountAggregateOutputType = {
    id: number
    recipientId: number
    recipientEmail: number
    channel: number
    templateId: number
    subject: number
    content: number
    variables: number
    status: number
    errorMessage: number
    sentAt: number
    retryCount: number
    maxRetries: number
    nextRetryAt: number
    priority: number
    metadata: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type NotificationLogAvgAggregateInputType = {
    retryCount?: true
    maxRetries?: true
  }

  export type NotificationLogSumAggregateInputType = {
    retryCount?: true
    maxRetries?: true
  }

  export type NotificationLogMinAggregateInputType = {
    id?: true
    recipientId?: true
    recipientEmail?: true
    channel?: true
    templateId?: true
    subject?: true
    content?: true
    status?: true
    errorMessage?: true
    sentAt?: true
    retryCount?: true
    maxRetries?: true
    nextRetryAt?: true
    priority?: true
    createdAt?: true
    updatedAt?: true
  }

  export type NotificationLogMaxAggregateInputType = {
    id?: true
    recipientId?: true
    recipientEmail?: true
    channel?: true
    templateId?: true
    subject?: true
    content?: true
    status?: true
    errorMessage?: true
    sentAt?: true
    retryCount?: true
    maxRetries?: true
    nextRetryAt?: true
    priority?: true
    createdAt?: true
    updatedAt?: true
  }

  export type NotificationLogCountAggregateInputType = {
    id?: true
    recipientId?: true
    recipientEmail?: true
    channel?: true
    templateId?: true
    subject?: true
    content?: true
    variables?: true
    status?: true
    errorMessage?: true
    sentAt?: true
    retryCount?: true
    maxRetries?: true
    nextRetryAt?: true
    priority?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type NotificationLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which NotificationLog to aggregate.
     */
    where?: NotificationLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationLogs to fetch.
     */
    orderBy?: NotificationLogOrderByWithRelationInput | NotificationLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: NotificationLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationLogs 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` NotificationLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned NotificationLogs
    **/
    _count?: true | NotificationLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: NotificationLogAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: NotificationLogSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: NotificationLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: NotificationLogMaxAggregateInputType
  }

  export type GetNotificationLogAggregateType<T extends NotificationLogAggregateArgs> = {
        [P in keyof T & keyof AggregateNotificationLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateNotificationLog[P]>
      : GetScalarType<T[P], AggregateNotificationLog[P]>
  }




  export type NotificationLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: NotificationLogWhereInput
    orderBy?: NotificationLogOrderByWithAggregationInput | NotificationLogOrderByWithAggregationInput[]
    by: NotificationLogScalarFieldEnum[] | NotificationLogScalarFieldEnum
    having?: NotificationLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: NotificationLogCountAggregateInputType | true
    _avg?: NotificationLogAvgAggregateInputType
    _sum?: NotificationLogSumAggregateInputType
    _min?: NotificationLogMinAggregateInputType
    _max?: NotificationLogMaxAggregateInputType
  }

  export type NotificationLogGroupByOutputType = {
    id: string
    recipientId: string
    recipientEmail: string | null
    channel: $Enums.NotificationChannel
    templateId: string | null
    subject: string | null
    content: string
    variables: JsonValue | null
    status: $Enums.NotificationSendStatus
    errorMessage: string | null
    sentAt: Date | null
    retryCount: number
    maxRetries: number
    nextRetryAt: Date | null
    priority: $Enums.NotificationPriority
    metadata: JsonValue | null
    createdAt: Date
    updatedAt: Date
    _count: NotificationLogCountAggregateOutputType | null
    _avg: NotificationLogAvgAggregateOutputType | null
    _sum: NotificationLogSumAggregateOutputType | null
    _min: NotificationLogMinAggregateOutputType | null
    _max: NotificationLogMaxAggregateOutputType | null
  }

  type GetNotificationLogGroupByPayload<T extends NotificationLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<NotificationLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof NotificationLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], NotificationLogGroupByOutputType[P]>
            : GetScalarType<T[P], NotificationLogGroupByOutputType[P]>
        }
      >
    >


  export type NotificationLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    recipientId?: boolean
    recipientEmail?: boolean
    channel?: boolean
    templateId?: boolean
    subject?: boolean
    content?: boolean
    variables?: boolean
    status?: boolean
    errorMessage?: boolean
    sentAt?: boolean
    retryCount?: boolean
    maxRetries?: boolean
    nextRetryAt?: boolean
    priority?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    recipient?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | NotificationLog$templateArgs<ExtArgs>
  }, ExtArgs["result"]["notificationLog"]>

  export type NotificationLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    recipientId?: boolean
    recipientEmail?: boolean
    channel?: boolean
    templateId?: boolean
    subject?: boolean
    content?: boolean
    variables?: boolean
    status?: boolean
    errorMessage?: boolean
    sentAt?: boolean
    retryCount?: boolean
    maxRetries?: boolean
    nextRetryAt?: boolean
    priority?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    recipient?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | NotificationLog$templateArgs<ExtArgs>
  }, ExtArgs["result"]["notificationLog"]>

  export type NotificationLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    recipientId?: boolean
    recipientEmail?: boolean
    channel?: boolean
    templateId?: boolean
    subject?: boolean
    content?: boolean
    variables?: boolean
    status?: boolean
    errorMessage?: boolean
    sentAt?: boolean
    retryCount?: boolean
    maxRetries?: boolean
    nextRetryAt?: boolean
    priority?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    recipient?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | NotificationLog$templateArgs<ExtArgs>
  }, ExtArgs["result"]["notificationLog"]>

  export type NotificationLogSelectScalar = {
    id?: boolean
    recipientId?: boolean
    recipientEmail?: boolean
    channel?: boolean
    templateId?: boolean
    subject?: boolean
    content?: boolean
    variables?: boolean
    status?: boolean
    errorMessage?: boolean
    sentAt?: boolean
    retryCount?: boolean
    maxRetries?: boolean
    nextRetryAt?: boolean
    priority?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type NotificationLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "recipientId" | "recipientEmail" | "channel" | "templateId" | "subject" | "content" | "variables" | "status" | "errorMessage" | "sentAt" | "retryCount" | "maxRetries" | "nextRetryAt" | "priority" | "metadata" | "createdAt" | "updatedAt", ExtArgs["result"]["notificationLog"]>
  export type NotificationLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    recipient?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | NotificationLog$templateArgs<ExtArgs>
  }
  export type NotificationLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    recipient?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | NotificationLog$templateArgs<ExtArgs>
  }
  export type NotificationLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    recipient?: boolean | UserDefaultArgs<ExtArgs>
    template?: boolean | NotificationLog$templateArgs<ExtArgs>
  }

  export type $NotificationLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "NotificationLog"
    objects: {
      recipient: Prisma.$UserPayload<ExtArgs>
      template: Prisma.$NotificationTemplatePayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      recipientId: string
      recipientEmail: string | null
      channel: $Enums.NotificationChannel
      templateId: string | null
      subject: string | null
      content: string
      variables: Prisma.JsonValue | null
      status: $Enums.NotificationSendStatus
      errorMessage: string | null
      sentAt: Date | null
      retryCount: number
      maxRetries: number
      nextRetryAt: Date | null
      priority: $Enums.NotificationPriority
      metadata: Prisma.JsonValue | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["notificationLog"]>
    composites: {}
  }

  type NotificationLogGetPayload<S extends boolean | null | undefined | NotificationLogDefaultArgs> = $Result.GetResult<Prisma.$NotificationLogPayload, S>

  type NotificationLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<NotificationLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: NotificationLogCountAggregateInputType | true
    }

  export interface NotificationLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['NotificationLog'], meta: { name: 'NotificationLog' } }
    /**
     * Find zero or one NotificationLog that matches the filter.
     * @param {NotificationLogFindUniqueArgs} args - Arguments to find a NotificationLog
     * @example
     * // Get one NotificationLog
     * const notificationLog = await prisma.notificationLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends NotificationLogFindUniqueArgs>(args: SelectSubset<T, NotificationLogFindUniqueArgs<ExtArgs>>): Prisma__NotificationLogClient<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one NotificationLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {NotificationLogFindUniqueOrThrowArgs} args - Arguments to find a NotificationLog
     * @example
     * // Get one NotificationLog
     * const notificationLog = await prisma.notificationLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends NotificationLogFindUniqueOrThrowArgs>(args: SelectSubset<T, NotificationLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__NotificationLogClient<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first NotificationLog 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 {NotificationLogFindFirstArgs} args - Arguments to find a NotificationLog
     * @example
     * // Get one NotificationLog
     * const notificationLog = await prisma.notificationLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends NotificationLogFindFirstArgs>(args?: SelectSubset<T, NotificationLogFindFirstArgs<ExtArgs>>): Prisma__NotificationLogClient<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first NotificationLog 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 {NotificationLogFindFirstOrThrowArgs} args - Arguments to find a NotificationLog
     * @example
     * // Get one NotificationLog
     * const notificationLog = await prisma.notificationLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends NotificationLogFindFirstOrThrowArgs>(args?: SelectSubset<T, NotificationLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__NotificationLogClient<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more NotificationLogs 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 {NotificationLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all NotificationLogs
     * const notificationLogs = await prisma.notificationLog.findMany()
     * 
     * // Get first 10 NotificationLogs
     * const notificationLogs = await prisma.notificationLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const notificationLogWithIdOnly = await prisma.notificationLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends NotificationLogFindManyArgs>(args?: SelectSubset<T, NotificationLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a NotificationLog.
     * @param {NotificationLogCreateArgs} args - Arguments to create a NotificationLog.
     * @example
     * // Create one NotificationLog
     * const NotificationLog = await prisma.notificationLog.create({
     *   data: {
     *     // ... data to create a NotificationLog
     *   }
     * })
     * 
     */
    create<T extends NotificationLogCreateArgs>(args: SelectSubset<T, NotificationLogCreateArgs<ExtArgs>>): Prisma__NotificationLogClient<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many NotificationLogs.
     * @param {NotificationLogCreateManyArgs} args - Arguments to create many NotificationLogs.
     * @example
     * // Create many NotificationLogs
     * const notificationLog = await prisma.notificationLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends NotificationLogCreateManyArgs>(args?: SelectSubset<T, NotificationLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many NotificationLogs and returns the data saved in the database.
     * @param {NotificationLogCreateManyAndReturnArgs} args - Arguments to create many NotificationLogs.
     * @example
     * // Create many NotificationLogs
     * const notificationLog = await prisma.notificationLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many NotificationLogs and only return the `id`
     * const notificationLogWithIdOnly = await prisma.notificationLog.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 NotificationLogCreateManyAndReturnArgs>(args?: SelectSubset<T, NotificationLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a NotificationLog.
     * @param {NotificationLogDeleteArgs} args - Arguments to delete one NotificationLog.
     * @example
     * // Delete one NotificationLog
     * const NotificationLog = await prisma.notificationLog.delete({
     *   where: {
     *     // ... filter to delete one NotificationLog
     *   }
     * })
     * 
     */
    delete<T extends NotificationLogDeleteArgs>(args: SelectSubset<T, NotificationLogDeleteArgs<ExtArgs>>): Prisma__NotificationLogClient<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one NotificationLog.
     * @param {NotificationLogUpdateArgs} args - Arguments to update one NotificationLog.
     * @example
     * // Update one NotificationLog
     * const notificationLog = await prisma.notificationLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends NotificationLogUpdateArgs>(args: SelectSubset<T, NotificationLogUpdateArgs<ExtArgs>>): Prisma__NotificationLogClient<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more NotificationLogs.
     * @param {NotificationLogDeleteManyArgs} args - Arguments to filter NotificationLogs to delete.
     * @example
     * // Delete a few NotificationLogs
     * const { count } = await prisma.notificationLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends NotificationLogDeleteManyArgs>(args?: SelectSubset<T, NotificationLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more NotificationLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many NotificationLogs
     * const notificationLog = await prisma.notificationLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends NotificationLogUpdateManyArgs>(args: SelectSubset<T, NotificationLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more NotificationLogs and returns the data updated in the database.
     * @param {NotificationLogUpdateManyAndReturnArgs} args - Arguments to update many NotificationLogs.
     * @example
     * // Update many NotificationLogs
     * const notificationLog = await prisma.notificationLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more NotificationLogs and only return the `id`
     * const notificationLogWithIdOnly = await prisma.notificationLog.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 NotificationLogUpdateManyAndReturnArgs>(args: SelectSubset<T, NotificationLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one NotificationLog.
     * @param {NotificationLogUpsertArgs} args - Arguments to update or create a NotificationLog.
     * @example
     * // Update or create a NotificationLog
     * const notificationLog = await prisma.notificationLog.upsert({
     *   create: {
     *     // ... data to create a NotificationLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the NotificationLog we want to update
     *   }
     * })
     */
    upsert<T extends NotificationLogUpsertArgs>(args: SelectSubset<T, NotificationLogUpsertArgs<ExtArgs>>): Prisma__NotificationLogClient<$Result.GetResult<Prisma.$NotificationLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of NotificationLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationLogCountArgs} args - Arguments to filter NotificationLogs to count.
     * @example
     * // Count the number of NotificationLogs
     * const count = await prisma.notificationLog.count({
     *   where: {
     *     // ... the filter for the NotificationLogs we want to count
     *   }
     * })
    **/
    count<T extends NotificationLogCountArgs>(
      args?: Subset<T, NotificationLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], NotificationLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a NotificationLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationLogAggregateArgs} 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 NotificationLogAggregateArgs>(args: Subset<T, NotificationLogAggregateArgs>): Prisma.PrismaPromise<GetNotificationLogAggregateType<T>>

    /**
     * Group by NotificationLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {NotificationLogGroupByArgs} 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 NotificationLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: NotificationLogGroupByArgs['orderBy'] }
        : { orderBy?: NotificationLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, NotificationLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetNotificationLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the NotificationLog model
   */
  readonly fields: NotificationLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for NotificationLog.
   * 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__NotificationLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    recipient<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    template<T extends NotificationLog$templateArgs<ExtArgs> = {}>(args?: Subset<T, NotificationLog$templateArgs<ExtArgs>>): Prisma__NotificationTemplateClient<$Result.GetResult<Prisma.$NotificationTemplatePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the NotificationLog model
   */
  interface NotificationLogFieldRefs {
    readonly id: FieldRef<"NotificationLog", 'String'>
    readonly recipientId: FieldRef<"NotificationLog", 'String'>
    readonly recipientEmail: FieldRef<"NotificationLog", 'String'>
    readonly channel: FieldRef<"NotificationLog", 'NotificationChannel'>
    readonly templateId: FieldRef<"NotificationLog", 'String'>
    readonly subject: FieldRef<"NotificationLog", 'String'>
    readonly content: FieldRef<"NotificationLog", 'String'>
    readonly variables: FieldRef<"NotificationLog", 'Json'>
    readonly status: FieldRef<"NotificationLog", 'NotificationSendStatus'>
    readonly errorMessage: FieldRef<"NotificationLog", 'String'>
    readonly sentAt: FieldRef<"NotificationLog", 'DateTime'>
    readonly retryCount: FieldRef<"NotificationLog", 'Int'>
    readonly maxRetries: FieldRef<"NotificationLog", 'Int'>
    readonly nextRetryAt: FieldRef<"NotificationLog", 'DateTime'>
    readonly priority: FieldRef<"NotificationLog", 'NotificationPriority'>
    readonly metadata: FieldRef<"NotificationLog", 'Json'>
    readonly createdAt: FieldRef<"NotificationLog", 'DateTime'>
    readonly updatedAt: FieldRef<"NotificationLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * NotificationLog findUnique
   */
  export type NotificationLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * Filter, which NotificationLog to fetch.
     */
    where: NotificationLogWhereUniqueInput
  }

  /**
   * NotificationLog findUniqueOrThrow
   */
  export type NotificationLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * Filter, which NotificationLog to fetch.
     */
    where: NotificationLogWhereUniqueInput
  }

  /**
   * NotificationLog findFirst
   */
  export type NotificationLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * Filter, which NotificationLog to fetch.
     */
    where?: NotificationLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationLogs to fetch.
     */
    orderBy?: NotificationLogOrderByWithRelationInput | NotificationLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for NotificationLogs.
     */
    cursor?: NotificationLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationLogs 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` NotificationLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of NotificationLogs.
     */
    distinct?: NotificationLogScalarFieldEnum | NotificationLogScalarFieldEnum[]
  }

  /**
   * NotificationLog findFirstOrThrow
   */
  export type NotificationLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * Filter, which NotificationLog to fetch.
     */
    where?: NotificationLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationLogs to fetch.
     */
    orderBy?: NotificationLogOrderByWithRelationInput | NotificationLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for NotificationLogs.
     */
    cursor?: NotificationLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationLogs 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` NotificationLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of NotificationLogs.
     */
    distinct?: NotificationLogScalarFieldEnum | NotificationLogScalarFieldEnum[]
  }

  /**
   * NotificationLog findMany
   */
  export type NotificationLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * Filter, which NotificationLogs to fetch.
     */
    where?: NotificationLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of NotificationLogs to fetch.
     */
    orderBy?: NotificationLogOrderByWithRelationInput | NotificationLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing NotificationLogs.
     */
    cursor?: NotificationLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` NotificationLogs 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` NotificationLogs.
     */
    skip?: number
    distinct?: NotificationLogScalarFieldEnum | NotificationLogScalarFieldEnum[]
  }

  /**
   * NotificationLog create
   */
  export type NotificationLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * The data needed to create a NotificationLog.
     */
    data: XOR<NotificationLogCreateInput, NotificationLogUncheckedCreateInput>
  }

  /**
   * NotificationLog createMany
   */
  export type NotificationLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many NotificationLogs.
     */
    data: NotificationLogCreateManyInput | NotificationLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * NotificationLog createManyAndReturn
   */
  export type NotificationLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * The data used to create many NotificationLogs.
     */
    data: NotificationLogCreateManyInput | NotificationLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * NotificationLog update
   */
  export type NotificationLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * The data needed to update a NotificationLog.
     */
    data: XOR<NotificationLogUpdateInput, NotificationLogUncheckedUpdateInput>
    /**
     * Choose, which NotificationLog to update.
     */
    where: NotificationLogWhereUniqueInput
  }

  /**
   * NotificationLog updateMany
   */
  export type NotificationLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update NotificationLogs.
     */
    data: XOR<NotificationLogUpdateManyMutationInput, NotificationLogUncheckedUpdateManyInput>
    /**
     * Filter which NotificationLogs to update
     */
    where?: NotificationLogWhereInput
    /**
     * Limit how many NotificationLogs to update.
     */
    limit?: number
  }

  /**
   * NotificationLog updateManyAndReturn
   */
  export type NotificationLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * The data used to update NotificationLogs.
     */
    data: XOR<NotificationLogUpdateManyMutationInput, NotificationLogUncheckedUpdateManyInput>
    /**
     * Filter which NotificationLogs to update
     */
    where?: NotificationLogWhereInput
    /**
     * Limit how many NotificationLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * NotificationLog upsert
   */
  export type NotificationLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * The filter to search for the NotificationLog to update in case it exists.
     */
    where: NotificationLogWhereUniqueInput
    /**
     * In case the NotificationLog found by the `where` argument doesn't exist, create a new NotificationLog with this data.
     */
    create: XOR<NotificationLogCreateInput, NotificationLogUncheckedCreateInput>
    /**
     * In case the NotificationLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<NotificationLogUpdateInput, NotificationLogUncheckedUpdateInput>
  }

  /**
   * NotificationLog delete
   */
  export type NotificationLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
    /**
     * Filter which NotificationLog to delete.
     */
    where: NotificationLogWhereUniqueInput
  }

  /**
   * NotificationLog deleteMany
   */
  export type NotificationLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which NotificationLogs to delete
     */
    where?: NotificationLogWhereInput
    /**
     * Limit how many NotificationLogs to delete.
     */
    limit?: number
  }

  /**
   * NotificationLog.template
   */
  export type NotificationLog$templateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationTemplate
     */
    select?: NotificationTemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationTemplate
     */
    omit?: NotificationTemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationTemplateInclude<ExtArgs> | null
    where?: NotificationTemplateWhereInput
  }

  /**
   * NotificationLog without action
   */
  export type NotificationLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the NotificationLog
     */
    select?: NotificationLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the NotificationLog
     */
    omit?: NotificationLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: NotificationLogInclude<ExtArgs> | null
  }


  /**
   * Model M365User
   */

  export type AggregateM365User = {
    _count: M365UserCountAggregateOutputType | null
    _avg: M365UserAvgAggregateOutputType | null
    _sum: M365UserSumAggregateOutputType | null
    _min: M365UserMinAggregateOutputType | null
    _max: M365UserMaxAggregateOutputType | null
  }

  export type M365UserAvgAggregateOutputType = {
    daysInactive: number | null
  }

  export type M365UserSumAggregateOutputType = {
    daysInactive: number | null
  }

  export type M365UserMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
    graphUserId: string | null
    userPrincipalName: string | null
    displayName: string | null
    mail: string | null
    department: string | null
    jobTitle: string | null
    accountEnabled: boolean | null
    hasLicense: boolean | null
    accountCreatedAt: Date | null
    lastSignInDateTime: Date | null
    lastNonInteractiveSignInDateTime: Date | null
    lastEmailActivity: Date | null
    lastOneDriveActivity: Date | null
    lastTeamsActivity: Date | null
    lastSharePointActivity: Date | null
    lastAnyActivity: Date | null
    daysInactive: number | null
    firstSeenInExecutionId: string | null
    lastSeenInExecutionId: string | null
  }

  export type M365UserMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdById: string | null
    createdAt: Date | null
    updatedAt: Date | null
    graphUserId: string | null
    userPrincipalName: string | null
    displayName: string | null
    mail: string | null
    department: string | null
    jobTitle: string | null
    accountEnabled: boolean | null
    hasLicense: boolean | null
    accountCreatedAt: Date | null
    lastSignInDateTime: Date | null
    lastNonInteractiveSignInDateTime: Date | null
    lastEmailActivity: Date | null
    lastOneDriveActivity: Date | null
    lastTeamsActivity: Date | null
    lastSharePointActivity: Date | null
    lastAnyActivity: Date | null
    daysInactive: number | null
    firstSeenInExecutionId: string | null
    lastSeenInExecutionId: string | null
  }

  export type M365UserCountAggregateOutputType = {
    id: number
    organizationId: number
    createdById: number
    createdAt: number
    updatedAt: number
    graphUserId: number
    userPrincipalName: number
    displayName: number
    mail: number
    department: number
    jobTitle: number
    accountEnabled: number
    hasLicense: number
    accountCreatedAt: number
    licenses: number
    lastSignInDateTime: number
    lastNonInteractiveSignInDateTime: number
    lastEmailActivity: number
    lastOneDriveActivity: number
    lastTeamsActivity: number
    lastSharePointActivity: number
    lastAnyActivity: number
    daysInactive: number
    firstSeenInExecutionId: number
    lastSeenInExecutionId: number
    _all: number
  }


  export type M365UserAvgAggregateInputType = {
    daysInactive?: true
  }

  export type M365UserSumAggregateInputType = {
    daysInactive?: true
  }

  export type M365UserMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    graphUserId?: true
    userPrincipalName?: true
    displayName?: true
    mail?: true
    department?: true
    jobTitle?: true
    accountEnabled?: true
    hasLicense?: true
    accountCreatedAt?: true
    lastSignInDateTime?: true
    lastNonInteractiveSignInDateTime?: true
    lastEmailActivity?: true
    lastOneDriveActivity?: true
    lastTeamsActivity?: true
    lastSharePointActivity?: true
    lastAnyActivity?: true
    daysInactive?: true
    firstSeenInExecutionId?: true
    lastSeenInExecutionId?: true
  }

  export type M365UserMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    graphUserId?: true
    userPrincipalName?: true
    displayName?: true
    mail?: true
    department?: true
    jobTitle?: true
    accountEnabled?: true
    hasLicense?: true
    accountCreatedAt?: true
    lastSignInDateTime?: true
    lastNonInteractiveSignInDateTime?: true
    lastEmailActivity?: true
    lastOneDriveActivity?: true
    lastTeamsActivity?: true
    lastSharePointActivity?: true
    lastAnyActivity?: true
    daysInactive?: true
    firstSeenInExecutionId?: true
    lastSeenInExecutionId?: true
  }

  export type M365UserCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdById?: true
    createdAt?: true
    updatedAt?: true
    graphUserId?: true
    userPrincipalName?: true
    displayName?: true
    mail?: true
    department?: true
    jobTitle?: true
    accountEnabled?: true
    hasLicense?: true
    accountCreatedAt?: true
    licenses?: true
    lastSignInDateTime?: true
    lastNonInteractiveSignInDateTime?: true
    lastEmailActivity?: true
    lastOneDriveActivity?: true
    lastTeamsActivity?: true
    lastSharePointActivity?: true
    lastAnyActivity?: true
    daysInactive?: true
    firstSeenInExecutionId?: true
    lastSeenInExecutionId?: true
    _all?: true
  }

  export type M365UserAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which M365User to aggregate.
     */
    where?: M365UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of M365Users to fetch.
     */
    orderBy?: M365UserOrderByWithRelationInput | M365UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: M365UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` M365Users 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` M365Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned M365Users
    **/
    _count?: true | M365UserCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: M365UserAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: M365UserSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: M365UserMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: M365UserMaxAggregateInputType
  }

  export type GetM365UserAggregateType<T extends M365UserAggregateArgs> = {
        [P in keyof T & keyof AggregateM365User]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateM365User[P]>
      : GetScalarType<T[P], AggregateM365User[P]>
  }




  export type M365UserGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: M365UserWhereInput
    orderBy?: M365UserOrderByWithAggregationInput | M365UserOrderByWithAggregationInput[]
    by: M365UserScalarFieldEnum[] | M365UserScalarFieldEnum
    having?: M365UserScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: M365UserCountAggregateInputType | true
    _avg?: M365UserAvgAggregateInputType
    _sum?: M365UserSumAggregateInputType
    _min?: M365UserMinAggregateInputType
    _max?: M365UserMaxAggregateInputType
  }

  export type M365UserGroupByOutputType = {
    id: string
    organizationId: string
    createdById: string
    createdAt: Date
    updatedAt: Date
    graphUserId: string
    userPrincipalName: string
    displayName: string | null
    mail: string | null
    department: string | null
    jobTitle: string | null
    accountEnabled: boolean
    hasLicense: boolean
    accountCreatedAt: Date | null
    licenses: JsonValue
    lastSignInDateTime: Date | null
    lastNonInteractiveSignInDateTime: Date | null
    lastEmailActivity: Date | null
    lastOneDriveActivity: Date | null
    lastTeamsActivity: Date | null
    lastSharePointActivity: Date | null
    lastAnyActivity: Date | null
    daysInactive: number | null
    firstSeenInExecutionId: string
    lastSeenInExecutionId: string
    _count: M365UserCountAggregateOutputType | null
    _avg: M365UserAvgAggregateOutputType | null
    _sum: M365UserSumAggregateOutputType | null
    _min: M365UserMinAggregateOutputType | null
    _max: M365UserMaxAggregateOutputType | null
  }

  type GetM365UserGroupByPayload<T extends M365UserGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<M365UserGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof M365UserGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], M365UserGroupByOutputType[P]>
            : GetScalarType<T[P], M365UserGroupByOutputType[P]>
        }
      >
    >


  export type M365UserSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    graphUserId?: boolean
    userPrincipalName?: boolean
    displayName?: boolean
    mail?: boolean
    department?: boolean
    jobTitle?: boolean
    accountEnabled?: boolean
    hasLicense?: boolean
    accountCreatedAt?: boolean
    licenses?: boolean
    lastSignInDateTime?: boolean
    lastNonInteractiveSignInDateTime?: boolean
    lastEmailActivity?: boolean
    lastOneDriveActivity?: boolean
    lastTeamsActivity?: boolean
    lastSharePointActivity?: boolean
    lastAnyActivity?: boolean
    daysInactive?: boolean
    firstSeenInExecutionId?: boolean
    lastSeenInExecutionId?: boolean
    changes?: boolean | M365User$changesArgs<ExtArgs>
    _count?: boolean | M365UserCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["m365User"]>

  export type M365UserSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    graphUserId?: boolean
    userPrincipalName?: boolean
    displayName?: boolean
    mail?: boolean
    department?: boolean
    jobTitle?: boolean
    accountEnabled?: boolean
    hasLicense?: boolean
    accountCreatedAt?: boolean
    licenses?: boolean
    lastSignInDateTime?: boolean
    lastNonInteractiveSignInDateTime?: boolean
    lastEmailActivity?: boolean
    lastOneDriveActivity?: boolean
    lastTeamsActivity?: boolean
    lastSharePointActivity?: boolean
    lastAnyActivity?: boolean
    daysInactive?: boolean
    firstSeenInExecutionId?: boolean
    lastSeenInExecutionId?: boolean
  }, ExtArgs["result"]["m365User"]>

  export type M365UserSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    graphUserId?: boolean
    userPrincipalName?: boolean
    displayName?: boolean
    mail?: boolean
    department?: boolean
    jobTitle?: boolean
    accountEnabled?: boolean
    hasLicense?: boolean
    accountCreatedAt?: boolean
    licenses?: boolean
    lastSignInDateTime?: boolean
    lastNonInteractiveSignInDateTime?: boolean
    lastEmailActivity?: boolean
    lastOneDriveActivity?: boolean
    lastTeamsActivity?: boolean
    lastSharePointActivity?: boolean
    lastAnyActivity?: boolean
    daysInactive?: boolean
    firstSeenInExecutionId?: boolean
    lastSeenInExecutionId?: boolean
  }, ExtArgs["result"]["m365User"]>

  export type M365UserSelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdById?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    graphUserId?: boolean
    userPrincipalName?: boolean
    displayName?: boolean
    mail?: boolean
    department?: boolean
    jobTitle?: boolean
    accountEnabled?: boolean
    hasLicense?: boolean
    accountCreatedAt?: boolean
    licenses?: boolean
    lastSignInDateTime?: boolean
    lastNonInteractiveSignInDateTime?: boolean
    lastEmailActivity?: boolean
    lastOneDriveActivity?: boolean
    lastTeamsActivity?: boolean
    lastSharePointActivity?: boolean
    lastAnyActivity?: boolean
    daysInactive?: boolean
    firstSeenInExecutionId?: boolean
    lastSeenInExecutionId?: boolean
  }

  export type M365UserOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdById" | "createdAt" | "updatedAt" | "graphUserId" | "userPrincipalName" | "displayName" | "mail" | "department" | "jobTitle" | "accountEnabled" | "hasLicense" | "accountCreatedAt" | "licenses" | "lastSignInDateTime" | "lastNonInteractiveSignInDateTime" | "lastEmailActivity" | "lastOneDriveActivity" | "lastTeamsActivity" | "lastSharePointActivity" | "lastAnyActivity" | "daysInactive" | "firstSeenInExecutionId" | "lastSeenInExecutionId", ExtArgs["result"]["m365User"]>
  export type M365UserInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    changes?: boolean | M365User$changesArgs<ExtArgs>
    _count?: boolean | M365UserCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type M365UserIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type M365UserIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $M365UserPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "M365User"
    objects: {
      changes: Prisma.$M365UserActivityChangePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      createdById: string
      createdAt: Date
      updatedAt: Date
      graphUserId: string
      userPrincipalName: string
      displayName: string | null
      mail: string | null
      department: string | null
      jobTitle: string | null
      accountEnabled: boolean
      hasLicense: boolean
      accountCreatedAt: Date | null
      licenses: Prisma.JsonValue
      lastSignInDateTime: Date | null
      lastNonInteractiveSignInDateTime: Date | null
      lastEmailActivity: Date | null
      lastOneDriveActivity: Date | null
      lastTeamsActivity: Date | null
      lastSharePointActivity: Date | null
      lastAnyActivity: Date | null
      daysInactive: number | null
      firstSeenInExecutionId: string
      lastSeenInExecutionId: string
    }, ExtArgs["result"]["m365User"]>
    composites: {}
  }

  type M365UserGetPayload<S extends boolean | null | undefined | M365UserDefaultArgs> = $Result.GetResult<Prisma.$M365UserPayload, S>

  type M365UserCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<M365UserFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: M365UserCountAggregateInputType | true
    }

  export interface M365UserDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['M365User'], meta: { name: 'M365User' } }
    /**
     * Find zero or one M365User that matches the filter.
     * @param {M365UserFindUniqueArgs} args - Arguments to find a M365User
     * @example
     * // Get one M365User
     * const m365User = await prisma.m365User.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends M365UserFindUniqueArgs>(args: SelectSubset<T, M365UserFindUniqueArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one M365User that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {M365UserFindUniqueOrThrowArgs} args - Arguments to find a M365User
     * @example
     * // Get one M365User
     * const m365User = await prisma.m365User.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends M365UserFindUniqueOrThrowArgs>(args: SelectSubset<T, M365UserFindUniqueOrThrowArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first M365User 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 {M365UserFindFirstArgs} args - Arguments to find a M365User
     * @example
     * // Get one M365User
     * const m365User = await prisma.m365User.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends M365UserFindFirstArgs>(args?: SelectSubset<T, M365UserFindFirstArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first M365User 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 {M365UserFindFirstOrThrowArgs} args - Arguments to find a M365User
     * @example
     * // Get one M365User
     * const m365User = await prisma.m365User.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends M365UserFindFirstOrThrowArgs>(args?: SelectSubset<T, M365UserFindFirstOrThrowArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more M365Users 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 {M365UserFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all M365Users
     * const m365Users = await prisma.m365User.findMany()
     * 
     * // Get first 10 M365Users
     * const m365Users = await prisma.m365User.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const m365UserWithIdOnly = await prisma.m365User.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends M365UserFindManyArgs>(args?: SelectSubset<T, M365UserFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a M365User.
     * @param {M365UserCreateArgs} args - Arguments to create a M365User.
     * @example
     * // Create one M365User
     * const M365User = await prisma.m365User.create({
     *   data: {
     *     // ... data to create a M365User
     *   }
     * })
     * 
     */
    create<T extends M365UserCreateArgs>(args: SelectSubset<T, M365UserCreateArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many M365Users.
     * @param {M365UserCreateManyArgs} args - Arguments to create many M365Users.
     * @example
     * // Create many M365Users
     * const m365User = await prisma.m365User.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends M365UserCreateManyArgs>(args?: SelectSubset<T, M365UserCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many M365Users and returns the data saved in the database.
     * @param {M365UserCreateManyAndReturnArgs} args - Arguments to create many M365Users.
     * @example
     * // Create many M365Users
     * const m365User = await prisma.m365User.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many M365Users and only return the `id`
     * const m365UserWithIdOnly = await prisma.m365User.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 M365UserCreateManyAndReturnArgs>(args?: SelectSubset<T, M365UserCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a M365User.
     * @param {M365UserDeleteArgs} args - Arguments to delete one M365User.
     * @example
     * // Delete one M365User
     * const M365User = await prisma.m365User.delete({
     *   where: {
     *     // ... filter to delete one M365User
     *   }
     * })
     * 
     */
    delete<T extends M365UserDeleteArgs>(args: SelectSubset<T, M365UserDeleteArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one M365User.
     * @param {M365UserUpdateArgs} args - Arguments to update one M365User.
     * @example
     * // Update one M365User
     * const m365User = await prisma.m365User.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends M365UserUpdateArgs>(args: SelectSubset<T, M365UserUpdateArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more M365Users.
     * @param {M365UserDeleteManyArgs} args - Arguments to filter M365Users to delete.
     * @example
     * // Delete a few M365Users
     * const { count } = await prisma.m365User.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends M365UserDeleteManyArgs>(args?: SelectSubset<T, M365UserDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more M365Users.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {M365UserUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many M365Users
     * const m365User = await prisma.m365User.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends M365UserUpdateManyArgs>(args: SelectSubset<T, M365UserUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more M365Users and returns the data updated in the database.
     * @param {M365UserUpdateManyAndReturnArgs} args - Arguments to update many M365Users.
     * @example
     * // Update many M365Users
     * const m365User = await prisma.m365User.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more M365Users and only return the `id`
     * const m365UserWithIdOnly = await prisma.m365User.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 M365UserUpdateManyAndReturnArgs>(args: SelectSubset<T, M365UserUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one M365User.
     * @param {M365UserUpsertArgs} args - Arguments to update or create a M365User.
     * @example
     * // Update or create a M365User
     * const m365User = await prisma.m365User.upsert({
     *   create: {
     *     // ... data to create a M365User
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the M365User we want to update
     *   }
     * })
     */
    upsert<T extends M365UserUpsertArgs>(args: SelectSubset<T, M365UserUpsertArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of M365Users.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {M365UserCountArgs} args - Arguments to filter M365Users to count.
     * @example
     * // Count the number of M365Users
     * const count = await prisma.m365User.count({
     *   where: {
     *     // ... the filter for the M365Users we want to count
     *   }
     * })
    **/
    count<T extends M365UserCountArgs>(
      args?: Subset<T, M365UserCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], M365UserCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a M365User.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {M365UserAggregateArgs} 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 M365UserAggregateArgs>(args: Subset<T, M365UserAggregateArgs>): Prisma.PrismaPromise<GetM365UserAggregateType<T>>

    /**
     * Group by M365User.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {M365UserGroupByArgs} 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 M365UserGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: M365UserGroupByArgs['orderBy'] }
        : { orderBy?: M365UserGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, M365UserGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetM365UserGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the M365User model
   */
  readonly fields: M365UserFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for M365User.
   * 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__M365UserClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    changes<T extends M365User$changesArgs<ExtArgs> = {}>(args?: Subset<T, M365User$changesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the M365User model
   */
  interface M365UserFieldRefs {
    readonly id: FieldRef<"M365User", 'String'>
    readonly organizationId: FieldRef<"M365User", 'String'>
    readonly createdById: FieldRef<"M365User", 'String'>
    readonly createdAt: FieldRef<"M365User", 'DateTime'>
    readonly updatedAt: FieldRef<"M365User", 'DateTime'>
    readonly graphUserId: FieldRef<"M365User", 'String'>
    readonly userPrincipalName: FieldRef<"M365User", 'String'>
    readonly displayName: FieldRef<"M365User", 'String'>
    readonly mail: FieldRef<"M365User", 'String'>
    readonly department: FieldRef<"M365User", 'String'>
    readonly jobTitle: FieldRef<"M365User", 'String'>
    readonly accountEnabled: FieldRef<"M365User", 'Boolean'>
    readonly hasLicense: FieldRef<"M365User", 'Boolean'>
    readonly accountCreatedAt: FieldRef<"M365User", 'DateTime'>
    readonly licenses: FieldRef<"M365User", 'Json'>
    readonly lastSignInDateTime: FieldRef<"M365User", 'DateTime'>
    readonly lastNonInteractiveSignInDateTime: FieldRef<"M365User", 'DateTime'>
    readonly lastEmailActivity: FieldRef<"M365User", 'DateTime'>
    readonly lastOneDriveActivity: FieldRef<"M365User", 'DateTime'>
    readonly lastTeamsActivity: FieldRef<"M365User", 'DateTime'>
    readonly lastSharePointActivity: FieldRef<"M365User", 'DateTime'>
    readonly lastAnyActivity: FieldRef<"M365User", 'DateTime'>
    readonly daysInactive: FieldRef<"M365User", 'Int'>
    readonly firstSeenInExecutionId: FieldRef<"M365User", 'String'>
    readonly lastSeenInExecutionId: FieldRef<"M365User", 'String'>
  }
    

  // Custom InputTypes
  /**
   * M365User findUnique
   */
  export type M365UserFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * Filter, which M365User to fetch.
     */
    where: M365UserWhereUniqueInput
  }

  /**
   * M365User findUniqueOrThrow
   */
  export type M365UserFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * Filter, which M365User to fetch.
     */
    where: M365UserWhereUniqueInput
  }

  /**
   * M365User findFirst
   */
  export type M365UserFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * Filter, which M365User to fetch.
     */
    where?: M365UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of M365Users to fetch.
     */
    orderBy?: M365UserOrderByWithRelationInput | M365UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for M365Users.
     */
    cursor?: M365UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` M365Users 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` M365Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of M365Users.
     */
    distinct?: M365UserScalarFieldEnum | M365UserScalarFieldEnum[]
  }

  /**
   * M365User findFirstOrThrow
   */
  export type M365UserFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * Filter, which M365User to fetch.
     */
    where?: M365UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of M365Users to fetch.
     */
    orderBy?: M365UserOrderByWithRelationInput | M365UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for M365Users.
     */
    cursor?: M365UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` M365Users 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` M365Users.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of M365Users.
     */
    distinct?: M365UserScalarFieldEnum | M365UserScalarFieldEnum[]
  }

  /**
   * M365User findMany
   */
  export type M365UserFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * Filter, which M365Users to fetch.
     */
    where?: M365UserWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of M365Users to fetch.
     */
    orderBy?: M365UserOrderByWithRelationInput | M365UserOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing M365Users.
     */
    cursor?: M365UserWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` M365Users 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` M365Users.
     */
    skip?: number
    distinct?: M365UserScalarFieldEnum | M365UserScalarFieldEnum[]
  }

  /**
   * M365User create
   */
  export type M365UserCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * The data needed to create a M365User.
     */
    data: XOR<M365UserCreateInput, M365UserUncheckedCreateInput>
  }

  /**
   * M365User createMany
   */
  export type M365UserCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many M365Users.
     */
    data: M365UserCreateManyInput | M365UserCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * M365User createManyAndReturn
   */
  export type M365UserCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * The data used to create many M365Users.
     */
    data: M365UserCreateManyInput | M365UserCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * M365User update
   */
  export type M365UserUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * The data needed to update a M365User.
     */
    data: XOR<M365UserUpdateInput, M365UserUncheckedUpdateInput>
    /**
     * Choose, which M365User to update.
     */
    where: M365UserWhereUniqueInput
  }

  /**
   * M365User updateMany
   */
  export type M365UserUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update M365Users.
     */
    data: XOR<M365UserUpdateManyMutationInput, M365UserUncheckedUpdateManyInput>
    /**
     * Filter which M365Users to update
     */
    where?: M365UserWhereInput
    /**
     * Limit how many M365Users to update.
     */
    limit?: number
  }

  /**
   * M365User updateManyAndReturn
   */
  export type M365UserUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * The data used to update M365Users.
     */
    data: XOR<M365UserUpdateManyMutationInput, M365UserUncheckedUpdateManyInput>
    /**
     * Filter which M365Users to update
     */
    where?: M365UserWhereInput
    /**
     * Limit how many M365Users to update.
     */
    limit?: number
  }

  /**
   * M365User upsert
   */
  export type M365UserUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * The filter to search for the M365User to update in case it exists.
     */
    where: M365UserWhereUniqueInput
    /**
     * In case the M365User found by the `where` argument doesn't exist, create a new M365User with this data.
     */
    create: XOR<M365UserCreateInput, M365UserUncheckedCreateInput>
    /**
     * In case the M365User was found with the provided `where` argument, update it with this data.
     */
    update: XOR<M365UserUpdateInput, M365UserUncheckedUpdateInput>
  }

  /**
   * M365User delete
   */
  export type M365UserDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
    /**
     * Filter which M365User to delete.
     */
    where: M365UserWhereUniqueInput
  }

  /**
   * M365User deleteMany
   */
  export type M365UserDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which M365Users to delete
     */
    where?: M365UserWhereInput
    /**
     * Limit how many M365Users to delete.
     */
    limit?: number
  }

  /**
   * M365User.changes
   */
  export type M365User$changesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    where?: M365UserActivityChangeWhereInput
    orderBy?: M365UserActivityChangeOrderByWithRelationInput | M365UserActivityChangeOrderByWithRelationInput[]
    cursor?: M365UserActivityChangeWhereUniqueInput
    take?: number
    skip?: number
    distinct?: M365UserActivityChangeScalarFieldEnum | M365UserActivityChangeScalarFieldEnum[]
  }

  /**
   * M365User without action
   */
  export type M365UserDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365User
     */
    select?: M365UserSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365User
     */
    omit?: M365UserOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserInclude<ExtArgs> | null
  }


  /**
   * Model M365UserActivityChange
   */

  export type AggregateM365UserActivityChange = {
    _count: M365UserActivityChangeCountAggregateOutputType | null
    _min: M365UserActivityChangeMinAggregateOutputType | null
    _max: M365UserActivityChangeMaxAggregateOutputType | null
  }

  export type M365UserActivityChangeMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdAt: Date | null
    userId: string | null
    executionId: string | null
    field: $Enums.M365UserActivityChangeField | null
    previousValue: string | null
    currentValue: string | null
  }

  export type M365UserActivityChangeMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    createdAt: Date | null
    userId: string | null
    executionId: string | null
    field: $Enums.M365UserActivityChangeField | null
    previousValue: string | null
    currentValue: string | null
  }

  export type M365UserActivityChangeCountAggregateOutputType = {
    id: number
    organizationId: number
    createdAt: number
    userId: number
    executionId: number
    field: number
    previousValue: number
    currentValue: number
    _all: number
  }


  export type M365UserActivityChangeMinAggregateInputType = {
    id?: true
    organizationId?: true
    createdAt?: true
    userId?: true
    executionId?: true
    field?: true
    previousValue?: true
    currentValue?: true
  }

  export type M365UserActivityChangeMaxAggregateInputType = {
    id?: true
    organizationId?: true
    createdAt?: true
    userId?: true
    executionId?: true
    field?: true
    previousValue?: true
    currentValue?: true
  }

  export type M365UserActivityChangeCountAggregateInputType = {
    id?: true
    organizationId?: true
    createdAt?: true
    userId?: true
    executionId?: true
    field?: true
    previousValue?: true
    currentValue?: true
    _all?: true
  }

  export type M365UserActivityChangeAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which M365UserActivityChange to aggregate.
     */
    where?: M365UserActivityChangeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of M365UserActivityChanges to fetch.
     */
    orderBy?: M365UserActivityChangeOrderByWithRelationInput | M365UserActivityChangeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: M365UserActivityChangeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` M365UserActivityChanges 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` M365UserActivityChanges.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned M365UserActivityChanges
    **/
    _count?: true | M365UserActivityChangeCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: M365UserActivityChangeMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: M365UserActivityChangeMaxAggregateInputType
  }

  export type GetM365UserActivityChangeAggregateType<T extends M365UserActivityChangeAggregateArgs> = {
        [P in keyof T & keyof AggregateM365UserActivityChange]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateM365UserActivityChange[P]>
      : GetScalarType<T[P], AggregateM365UserActivityChange[P]>
  }




  export type M365UserActivityChangeGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: M365UserActivityChangeWhereInput
    orderBy?: M365UserActivityChangeOrderByWithAggregationInput | M365UserActivityChangeOrderByWithAggregationInput[]
    by: M365UserActivityChangeScalarFieldEnum[] | M365UserActivityChangeScalarFieldEnum
    having?: M365UserActivityChangeScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: M365UserActivityChangeCountAggregateInputType | true
    _min?: M365UserActivityChangeMinAggregateInputType
    _max?: M365UserActivityChangeMaxAggregateInputType
  }

  export type M365UserActivityChangeGroupByOutputType = {
    id: string
    organizationId: string
    createdAt: Date
    userId: string
    executionId: string
    field: $Enums.M365UserActivityChangeField
    previousValue: string | null
    currentValue: string | null
    _count: M365UserActivityChangeCountAggregateOutputType | null
    _min: M365UserActivityChangeMinAggregateOutputType | null
    _max: M365UserActivityChangeMaxAggregateOutputType | null
  }

  type GetM365UserActivityChangeGroupByPayload<T extends M365UserActivityChangeGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<M365UserActivityChangeGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof M365UserActivityChangeGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], M365UserActivityChangeGroupByOutputType[P]>
            : GetScalarType<T[P], M365UserActivityChangeGroupByOutputType[P]>
        }
      >
    >


  export type M365UserActivityChangeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdAt?: boolean
    userId?: boolean
    executionId?: boolean
    field?: boolean
    previousValue?: boolean
    currentValue?: boolean
    user?: boolean | M365UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["m365UserActivityChange"]>

  export type M365UserActivityChangeSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdAt?: boolean
    userId?: boolean
    executionId?: boolean
    field?: boolean
    previousValue?: boolean
    currentValue?: boolean
    user?: boolean | M365UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["m365UserActivityChange"]>

  export type M365UserActivityChangeSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    createdAt?: boolean
    userId?: boolean
    executionId?: boolean
    field?: boolean
    previousValue?: boolean
    currentValue?: boolean
    user?: boolean | M365UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["m365UserActivityChange"]>

  export type M365UserActivityChangeSelectScalar = {
    id?: boolean
    organizationId?: boolean
    createdAt?: boolean
    userId?: boolean
    executionId?: boolean
    field?: boolean
    previousValue?: boolean
    currentValue?: boolean
  }

  export type M365UserActivityChangeOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "createdAt" | "userId" | "executionId" | "field" | "previousValue" | "currentValue", ExtArgs["result"]["m365UserActivityChange"]>
  export type M365UserActivityChangeInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | M365UserDefaultArgs<ExtArgs>
  }
  export type M365UserActivityChangeIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | M365UserDefaultArgs<ExtArgs>
  }
  export type M365UserActivityChangeIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    user?: boolean | M365UserDefaultArgs<ExtArgs>
  }

  export type $M365UserActivityChangePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "M365UserActivityChange"
    objects: {
      user: Prisma.$M365UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      createdAt: Date
      userId: string
      executionId: string
      field: $Enums.M365UserActivityChangeField
      previousValue: string | null
      currentValue: string | null
    }, ExtArgs["result"]["m365UserActivityChange"]>
    composites: {}
  }

  type M365UserActivityChangeGetPayload<S extends boolean | null | undefined | M365UserActivityChangeDefaultArgs> = $Result.GetResult<Prisma.$M365UserActivityChangePayload, S>

  type M365UserActivityChangeCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<M365UserActivityChangeFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: M365UserActivityChangeCountAggregateInputType | true
    }

  export interface M365UserActivityChangeDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['M365UserActivityChange'], meta: { name: 'M365UserActivityChange' } }
    /**
     * Find zero or one M365UserActivityChange that matches the filter.
     * @param {M365UserActivityChangeFindUniqueArgs} args - Arguments to find a M365UserActivityChange
     * @example
     * // Get one M365UserActivityChange
     * const m365UserActivityChange = await prisma.m365UserActivityChange.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends M365UserActivityChangeFindUniqueArgs>(args: SelectSubset<T, M365UserActivityChangeFindUniqueArgs<ExtArgs>>): Prisma__M365UserActivityChangeClient<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one M365UserActivityChange that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {M365UserActivityChangeFindUniqueOrThrowArgs} args - Arguments to find a M365UserActivityChange
     * @example
     * // Get one M365UserActivityChange
     * const m365UserActivityChange = await prisma.m365UserActivityChange.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends M365UserActivityChangeFindUniqueOrThrowArgs>(args: SelectSubset<T, M365UserActivityChangeFindUniqueOrThrowArgs<ExtArgs>>): Prisma__M365UserActivityChangeClient<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first M365UserActivityChange 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 {M365UserActivityChangeFindFirstArgs} args - Arguments to find a M365UserActivityChange
     * @example
     * // Get one M365UserActivityChange
     * const m365UserActivityChange = await prisma.m365UserActivityChange.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends M365UserActivityChangeFindFirstArgs>(args?: SelectSubset<T, M365UserActivityChangeFindFirstArgs<ExtArgs>>): Prisma__M365UserActivityChangeClient<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first M365UserActivityChange 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 {M365UserActivityChangeFindFirstOrThrowArgs} args - Arguments to find a M365UserActivityChange
     * @example
     * // Get one M365UserActivityChange
     * const m365UserActivityChange = await prisma.m365UserActivityChange.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends M365UserActivityChangeFindFirstOrThrowArgs>(args?: SelectSubset<T, M365UserActivityChangeFindFirstOrThrowArgs<ExtArgs>>): Prisma__M365UserActivityChangeClient<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more M365UserActivityChanges 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 {M365UserActivityChangeFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all M365UserActivityChanges
     * const m365UserActivityChanges = await prisma.m365UserActivityChange.findMany()
     * 
     * // Get first 10 M365UserActivityChanges
     * const m365UserActivityChanges = await prisma.m365UserActivityChange.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const m365UserActivityChangeWithIdOnly = await prisma.m365UserActivityChange.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends M365UserActivityChangeFindManyArgs>(args?: SelectSubset<T, M365UserActivityChangeFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a M365UserActivityChange.
     * @param {M365UserActivityChangeCreateArgs} args - Arguments to create a M365UserActivityChange.
     * @example
     * // Create one M365UserActivityChange
     * const M365UserActivityChange = await prisma.m365UserActivityChange.create({
     *   data: {
     *     // ... data to create a M365UserActivityChange
     *   }
     * })
     * 
     */
    create<T extends M365UserActivityChangeCreateArgs>(args: SelectSubset<T, M365UserActivityChangeCreateArgs<ExtArgs>>): Prisma__M365UserActivityChangeClient<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many M365UserActivityChanges.
     * @param {M365UserActivityChangeCreateManyArgs} args - Arguments to create many M365UserActivityChanges.
     * @example
     * // Create many M365UserActivityChanges
     * const m365UserActivityChange = await prisma.m365UserActivityChange.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends M365UserActivityChangeCreateManyArgs>(args?: SelectSubset<T, M365UserActivityChangeCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many M365UserActivityChanges and returns the data saved in the database.
     * @param {M365UserActivityChangeCreateManyAndReturnArgs} args - Arguments to create many M365UserActivityChanges.
     * @example
     * // Create many M365UserActivityChanges
     * const m365UserActivityChange = await prisma.m365UserActivityChange.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many M365UserActivityChanges and only return the `id`
     * const m365UserActivityChangeWithIdOnly = await prisma.m365UserActivityChange.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 M365UserActivityChangeCreateManyAndReturnArgs>(args?: SelectSubset<T, M365UserActivityChangeCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a M365UserActivityChange.
     * @param {M365UserActivityChangeDeleteArgs} args - Arguments to delete one M365UserActivityChange.
     * @example
     * // Delete one M365UserActivityChange
     * const M365UserActivityChange = await prisma.m365UserActivityChange.delete({
     *   where: {
     *     // ... filter to delete one M365UserActivityChange
     *   }
     * })
     * 
     */
    delete<T extends M365UserActivityChangeDeleteArgs>(args: SelectSubset<T, M365UserActivityChangeDeleteArgs<ExtArgs>>): Prisma__M365UserActivityChangeClient<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one M365UserActivityChange.
     * @param {M365UserActivityChangeUpdateArgs} args - Arguments to update one M365UserActivityChange.
     * @example
     * // Update one M365UserActivityChange
     * const m365UserActivityChange = await prisma.m365UserActivityChange.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends M365UserActivityChangeUpdateArgs>(args: SelectSubset<T, M365UserActivityChangeUpdateArgs<ExtArgs>>): Prisma__M365UserActivityChangeClient<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more M365UserActivityChanges.
     * @param {M365UserActivityChangeDeleteManyArgs} args - Arguments to filter M365UserActivityChanges to delete.
     * @example
     * // Delete a few M365UserActivityChanges
     * const { count } = await prisma.m365UserActivityChange.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends M365UserActivityChangeDeleteManyArgs>(args?: SelectSubset<T, M365UserActivityChangeDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more M365UserActivityChanges.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {M365UserActivityChangeUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many M365UserActivityChanges
     * const m365UserActivityChange = await prisma.m365UserActivityChange.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends M365UserActivityChangeUpdateManyArgs>(args: SelectSubset<T, M365UserActivityChangeUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more M365UserActivityChanges and returns the data updated in the database.
     * @param {M365UserActivityChangeUpdateManyAndReturnArgs} args - Arguments to update many M365UserActivityChanges.
     * @example
     * // Update many M365UserActivityChanges
     * const m365UserActivityChange = await prisma.m365UserActivityChange.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more M365UserActivityChanges and only return the `id`
     * const m365UserActivityChangeWithIdOnly = await prisma.m365UserActivityChange.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 M365UserActivityChangeUpdateManyAndReturnArgs>(args: SelectSubset<T, M365UserActivityChangeUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one M365UserActivityChange.
     * @param {M365UserActivityChangeUpsertArgs} args - Arguments to update or create a M365UserActivityChange.
     * @example
     * // Update or create a M365UserActivityChange
     * const m365UserActivityChange = await prisma.m365UserActivityChange.upsert({
     *   create: {
     *     // ... data to create a M365UserActivityChange
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the M365UserActivityChange we want to update
     *   }
     * })
     */
    upsert<T extends M365UserActivityChangeUpsertArgs>(args: SelectSubset<T, M365UserActivityChangeUpsertArgs<ExtArgs>>): Prisma__M365UserActivityChangeClient<$Result.GetResult<Prisma.$M365UserActivityChangePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of M365UserActivityChanges.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {M365UserActivityChangeCountArgs} args - Arguments to filter M365UserActivityChanges to count.
     * @example
     * // Count the number of M365UserActivityChanges
     * const count = await prisma.m365UserActivityChange.count({
     *   where: {
     *     // ... the filter for the M365UserActivityChanges we want to count
     *   }
     * })
    **/
    count<T extends M365UserActivityChangeCountArgs>(
      args?: Subset<T, M365UserActivityChangeCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], M365UserActivityChangeCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a M365UserActivityChange.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {M365UserActivityChangeAggregateArgs} 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 M365UserActivityChangeAggregateArgs>(args: Subset<T, M365UserActivityChangeAggregateArgs>): Prisma.PrismaPromise<GetM365UserActivityChangeAggregateType<T>>

    /**
     * Group by M365UserActivityChange.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {M365UserActivityChangeGroupByArgs} 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 M365UserActivityChangeGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: M365UserActivityChangeGroupByArgs['orderBy'] }
        : { orderBy?: M365UserActivityChangeGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, M365UserActivityChangeGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetM365UserActivityChangeGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the M365UserActivityChange model
   */
  readonly fields: M365UserActivityChangeFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for M365UserActivityChange.
   * 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__M365UserActivityChangeClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    user<T extends M365UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, M365UserDefaultArgs<ExtArgs>>): Prisma__M365UserClient<$Result.GetResult<Prisma.$M365UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the M365UserActivityChange model
   */
  interface M365UserActivityChangeFieldRefs {
    readonly id: FieldRef<"M365UserActivityChange", 'String'>
    readonly organizationId: FieldRef<"M365UserActivityChange", 'String'>
    readonly createdAt: FieldRef<"M365UserActivityChange", 'DateTime'>
    readonly userId: FieldRef<"M365UserActivityChange", 'String'>
    readonly executionId: FieldRef<"M365UserActivityChange", 'String'>
    readonly field: FieldRef<"M365UserActivityChange", 'M365UserActivityChangeField'>
    readonly previousValue: FieldRef<"M365UserActivityChange", 'String'>
    readonly currentValue: FieldRef<"M365UserActivityChange", 'String'>
  }
    

  // Custom InputTypes
  /**
   * M365UserActivityChange findUnique
   */
  export type M365UserActivityChangeFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * Filter, which M365UserActivityChange to fetch.
     */
    where: M365UserActivityChangeWhereUniqueInput
  }

  /**
   * M365UserActivityChange findUniqueOrThrow
   */
  export type M365UserActivityChangeFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * Filter, which M365UserActivityChange to fetch.
     */
    where: M365UserActivityChangeWhereUniqueInput
  }

  /**
   * M365UserActivityChange findFirst
   */
  export type M365UserActivityChangeFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * Filter, which M365UserActivityChange to fetch.
     */
    where?: M365UserActivityChangeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of M365UserActivityChanges to fetch.
     */
    orderBy?: M365UserActivityChangeOrderByWithRelationInput | M365UserActivityChangeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for M365UserActivityChanges.
     */
    cursor?: M365UserActivityChangeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` M365UserActivityChanges 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` M365UserActivityChanges.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of M365UserActivityChanges.
     */
    distinct?: M365UserActivityChangeScalarFieldEnum | M365UserActivityChangeScalarFieldEnum[]
  }

  /**
   * M365UserActivityChange findFirstOrThrow
   */
  export type M365UserActivityChangeFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * Filter, which M365UserActivityChange to fetch.
     */
    where?: M365UserActivityChangeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of M365UserActivityChanges to fetch.
     */
    orderBy?: M365UserActivityChangeOrderByWithRelationInput | M365UserActivityChangeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for M365UserActivityChanges.
     */
    cursor?: M365UserActivityChangeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` M365UserActivityChanges 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` M365UserActivityChanges.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of M365UserActivityChanges.
     */
    distinct?: M365UserActivityChangeScalarFieldEnum | M365UserActivityChangeScalarFieldEnum[]
  }

  /**
   * M365UserActivityChange findMany
   */
  export type M365UserActivityChangeFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * Filter, which M365UserActivityChanges to fetch.
     */
    where?: M365UserActivityChangeWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of M365UserActivityChanges to fetch.
     */
    orderBy?: M365UserActivityChangeOrderByWithRelationInput | M365UserActivityChangeOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing M365UserActivityChanges.
     */
    cursor?: M365UserActivityChangeWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` M365UserActivityChanges 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` M365UserActivityChanges.
     */
    skip?: number
    distinct?: M365UserActivityChangeScalarFieldEnum | M365UserActivityChangeScalarFieldEnum[]
  }

  /**
   * M365UserActivityChange create
   */
  export type M365UserActivityChangeCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * The data needed to create a M365UserActivityChange.
     */
    data: XOR<M365UserActivityChangeCreateInput, M365UserActivityChangeUncheckedCreateInput>
  }

  /**
   * M365UserActivityChange createMany
   */
  export type M365UserActivityChangeCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many M365UserActivityChanges.
     */
    data: M365UserActivityChangeCreateManyInput | M365UserActivityChangeCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * M365UserActivityChange createManyAndReturn
   */
  export type M365UserActivityChangeCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * The data used to create many M365UserActivityChanges.
     */
    data: M365UserActivityChangeCreateManyInput | M365UserActivityChangeCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * M365UserActivityChange update
   */
  export type M365UserActivityChangeUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * The data needed to update a M365UserActivityChange.
     */
    data: XOR<M365UserActivityChangeUpdateInput, M365UserActivityChangeUncheckedUpdateInput>
    /**
     * Choose, which M365UserActivityChange to update.
     */
    where: M365UserActivityChangeWhereUniqueInput
  }

  /**
   * M365UserActivityChange updateMany
   */
  export type M365UserActivityChangeUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update M365UserActivityChanges.
     */
    data: XOR<M365UserActivityChangeUpdateManyMutationInput, M365UserActivityChangeUncheckedUpdateManyInput>
    /**
     * Filter which M365UserActivityChanges to update
     */
    where?: M365UserActivityChangeWhereInput
    /**
     * Limit how many M365UserActivityChanges to update.
     */
    limit?: number
  }

  /**
   * M365UserActivityChange updateManyAndReturn
   */
  export type M365UserActivityChangeUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * The data used to update M365UserActivityChanges.
     */
    data: XOR<M365UserActivityChangeUpdateManyMutationInput, M365UserActivityChangeUncheckedUpdateManyInput>
    /**
     * Filter which M365UserActivityChanges to update
     */
    where?: M365UserActivityChangeWhereInput
    /**
     * Limit how many M365UserActivityChanges to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * M365UserActivityChange upsert
   */
  export type M365UserActivityChangeUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * The filter to search for the M365UserActivityChange to update in case it exists.
     */
    where: M365UserActivityChangeWhereUniqueInput
    /**
     * In case the M365UserActivityChange found by the `where` argument doesn't exist, create a new M365UserActivityChange with this data.
     */
    create: XOR<M365UserActivityChangeCreateInput, M365UserActivityChangeUncheckedCreateInput>
    /**
     * In case the M365UserActivityChange was found with the provided `where` argument, update it with this data.
     */
    update: XOR<M365UserActivityChangeUpdateInput, M365UserActivityChangeUncheckedUpdateInput>
  }

  /**
   * M365UserActivityChange delete
   */
  export type M365UserActivityChangeDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
    /**
     * Filter which M365UserActivityChange to delete.
     */
    where: M365UserActivityChangeWhereUniqueInput
  }

  /**
   * M365UserActivityChange deleteMany
   */
  export type M365UserActivityChangeDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which M365UserActivityChanges to delete
     */
    where?: M365UserActivityChangeWhereInput
    /**
     * Limit how many M365UserActivityChanges to delete.
     */
    limit?: number
  }

  /**
   * M365UserActivityChange without action
   */
  export type M365UserActivityChangeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the M365UserActivityChange
     */
    select?: M365UserActivityChangeSelect<ExtArgs> | null
    /**
     * Omit specific fields from the M365UserActivityChange
     */
    omit?: M365UserActivityChangeOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: M365UserActivityChangeInclude<ExtArgs> | null
  }


  /**
   * Model GradeConfig
   */

  export type AggregateGradeConfig = {
    _count: GradeConfigCountAggregateOutputType | null
    _min: GradeConfigMinAggregateOutputType | null
    _max: GradeConfigMaxAggregateOutputType | null
  }

  export type GradeConfigMinAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    isDefault: boolean | null
    isActive: boolean | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
    organizationId: string | null
  }

  export type GradeConfigMaxAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    isDefault: boolean | null
    isActive: boolean | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
    organizationId: string | null
  }

  export type GradeConfigCountAggregateOutputType = {
    id: number
    name: number
    description: number
    grades: number
    isDefault: number
    isActive: number
    createdBy: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    organizationId: number
    _all: number
  }


  export type GradeConfigMinAggregateInputType = {
    id?: true
    name?: true
    description?: true
    isDefault?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
  }

  export type GradeConfigMaxAggregateInputType = {
    id?: true
    name?: true
    description?: true
    isDefault?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
  }

  export type GradeConfigCountAggregateInputType = {
    id?: true
    name?: true
    description?: true
    grades?: true
    isDefault?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
    _all?: true
  }

  export type GradeConfigAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which GradeConfig to aggregate.
     */
    where?: GradeConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GradeConfigs to fetch.
     */
    orderBy?: GradeConfigOrderByWithRelationInput | GradeConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: GradeConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GradeConfigs 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` GradeConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned GradeConfigs
    **/
    _count?: true | GradeConfigCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: GradeConfigMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: GradeConfigMaxAggregateInputType
  }

  export type GetGradeConfigAggregateType<T extends GradeConfigAggregateArgs> = {
        [P in keyof T & keyof AggregateGradeConfig]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateGradeConfig[P]>
      : GetScalarType<T[P], AggregateGradeConfig[P]>
  }




  export type GradeConfigGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: GradeConfigWhereInput
    orderBy?: GradeConfigOrderByWithAggregationInput | GradeConfigOrderByWithAggregationInput[]
    by: GradeConfigScalarFieldEnum[] | GradeConfigScalarFieldEnum
    having?: GradeConfigScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: GradeConfigCountAggregateInputType | true
    _min?: GradeConfigMinAggregateInputType
    _max?: GradeConfigMaxAggregateInputType
  }

  export type GradeConfigGroupByOutputType = {
    id: string
    name: string
    description: string | null
    grades: JsonValue
    isDefault: boolean
    isActive: boolean
    createdBy: string
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    organizationId: string | null
    _count: GradeConfigCountAggregateOutputType | null
    _min: GradeConfigMinAggregateOutputType | null
    _max: GradeConfigMaxAggregateOutputType | null
  }

  type GetGradeConfigGroupByPayload<T extends GradeConfigGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<GradeConfigGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof GradeConfigGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], GradeConfigGroupByOutputType[P]>
            : GetScalarType<T[P], GradeConfigGroupByOutputType[P]>
        }
      >
    >


  export type GradeConfigSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    grades?: boolean
    isDefault?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    organization?: boolean | GradeConfig$organizationArgs<ExtArgs>
    cycles?: boolean | GradeConfig$cyclesArgs<ExtArgs>
    _count?: boolean | GradeConfigCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["gradeConfig"]>

  export type GradeConfigSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    grades?: boolean
    isDefault?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    organization?: boolean | GradeConfig$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["gradeConfig"]>

  export type GradeConfigSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    grades?: boolean
    isDefault?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    organization?: boolean | GradeConfig$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["gradeConfig"]>

  export type GradeConfigSelectScalar = {
    id?: boolean
    name?: boolean
    description?: boolean
    grades?: boolean
    isDefault?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
  }

  export type GradeConfigOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "description" | "grades" | "isDefault" | "isActive" | "createdBy" | "createdAt" | "updatedAt" | "deletedAt" | "organizationId", ExtArgs["result"]["gradeConfig"]>
  export type GradeConfigInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | GradeConfig$organizationArgs<ExtArgs>
    cycles?: boolean | GradeConfig$cyclesArgs<ExtArgs>
    _count?: boolean | GradeConfigCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type GradeConfigIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | GradeConfig$organizationArgs<ExtArgs>
  }
  export type GradeConfigIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | GradeConfig$organizationArgs<ExtArgs>
  }

  export type $GradeConfigPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "GradeConfig"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
      cycles: Prisma.$PerformanceCyclePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      description: string | null
      grades: Prisma.JsonValue
      isDefault: boolean
      isActive: boolean
      createdBy: string
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
      /**
       * 等级配置归属组织（v2.1 组织隔离）
       * null = 平台级配置（所有组织可用）
       * 非 null = 组织专属配置
       */
      organizationId: string | null
    }, ExtArgs["result"]["gradeConfig"]>
    composites: {}
  }

  type GradeConfigGetPayload<S extends boolean | null | undefined | GradeConfigDefaultArgs> = $Result.GetResult<Prisma.$GradeConfigPayload, S>

  type GradeConfigCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<GradeConfigFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: GradeConfigCountAggregateInputType | true
    }

  export interface GradeConfigDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['GradeConfig'], meta: { name: 'GradeConfig' } }
    /**
     * Find zero or one GradeConfig that matches the filter.
     * @param {GradeConfigFindUniqueArgs} args - Arguments to find a GradeConfig
     * @example
     * // Get one GradeConfig
     * const gradeConfig = await prisma.gradeConfig.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends GradeConfigFindUniqueArgs>(args: SelectSubset<T, GradeConfigFindUniqueArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one GradeConfig that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {GradeConfigFindUniqueOrThrowArgs} args - Arguments to find a GradeConfig
     * @example
     * // Get one GradeConfig
     * const gradeConfig = await prisma.gradeConfig.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends GradeConfigFindUniqueOrThrowArgs>(args: SelectSubset<T, GradeConfigFindUniqueOrThrowArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first GradeConfig 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 {GradeConfigFindFirstArgs} args - Arguments to find a GradeConfig
     * @example
     * // Get one GradeConfig
     * const gradeConfig = await prisma.gradeConfig.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends GradeConfigFindFirstArgs>(args?: SelectSubset<T, GradeConfigFindFirstArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first GradeConfig 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 {GradeConfigFindFirstOrThrowArgs} args - Arguments to find a GradeConfig
     * @example
     * // Get one GradeConfig
     * const gradeConfig = await prisma.gradeConfig.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends GradeConfigFindFirstOrThrowArgs>(args?: SelectSubset<T, GradeConfigFindFirstOrThrowArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more GradeConfigs 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 {GradeConfigFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all GradeConfigs
     * const gradeConfigs = await prisma.gradeConfig.findMany()
     * 
     * // Get first 10 GradeConfigs
     * const gradeConfigs = await prisma.gradeConfig.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const gradeConfigWithIdOnly = await prisma.gradeConfig.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends GradeConfigFindManyArgs>(args?: SelectSubset<T, GradeConfigFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a GradeConfig.
     * @param {GradeConfigCreateArgs} args - Arguments to create a GradeConfig.
     * @example
     * // Create one GradeConfig
     * const GradeConfig = await prisma.gradeConfig.create({
     *   data: {
     *     // ... data to create a GradeConfig
     *   }
     * })
     * 
     */
    create<T extends GradeConfigCreateArgs>(args: SelectSubset<T, GradeConfigCreateArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many GradeConfigs.
     * @param {GradeConfigCreateManyArgs} args - Arguments to create many GradeConfigs.
     * @example
     * // Create many GradeConfigs
     * const gradeConfig = await prisma.gradeConfig.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends GradeConfigCreateManyArgs>(args?: SelectSubset<T, GradeConfigCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many GradeConfigs and returns the data saved in the database.
     * @param {GradeConfigCreateManyAndReturnArgs} args - Arguments to create many GradeConfigs.
     * @example
     * // Create many GradeConfigs
     * const gradeConfig = await prisma.gradeConfig.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many GradeConfigs and only return the `id`
     * const gradeConfigWithIdOnly = await prisma.gradeConfig.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 GradeConfigCreateManyAndReturnArgs>(args?: SelectSubset<T, GradeConfigCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a GradeConfig.
     * @param {GradeConfigDeleteArgs} args - Arguments to delete one GradeConfig.
     * @example
     * // Delete one GradeConfig
     * const GradeConfig = await prisma.gradeConfig.delete({
     *   where: {
     *     // ... filter to delete one GradeConfig
     *   }
     * })
     * 
     */
    delete<T extends GradeConfigDeleteArgs>(args: SelectSubset<T, GradeConfigDeleteArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one GradeConfig.
     * @param {GradeConfigUpdateArgs} args - Arguments to update one GradeConfig.
     * @example
     * // Update one GradeConfig
     * const gradeConfig = await prisma.gradeConfig.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends GradeConfigUpdateArgs>(args: SelectSubset<T, GradeConfigUpdateArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more GradeConfigs.
     * @param {GradeConfigDeleteManyArgs} args - Arguments to filter GradeConfigs to delete.
     * @example
     * // Delete a few GradeConfigs
     * const { count } = await prisma.gradeConfig.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends GradeConfigDeleteManyArgs>(args?: SelectSubset<T, GradeConfigDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more GradeConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GradeConfigUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many GradeConfigs
     * const gradeConfig = await prisma.gradeConfig.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends GradeConfigUpdateManyArgs>(args: SelectSubset<T, GradeConfigUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more GradeConfigs and returns the data updated in the database.
     * @param {GradeConfigUpdateManyAndReturnArgs} args - Arguments to update many GradeConfigs.
     * @example
     * // Update many GradeConfigs
     * const gradeConfig = await prisma.gradeConfig.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more GradeConfigs and only return the `id`
     * const gradeConfigWithIdOnly = await prisma.gradeConfig.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 GradeConfigUpdateManyAndReturnArgs>(args: SelectSubset<T, GradeConfigUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one GradeConfig.
     * @param {GradeConfigUpsertArgs} args - Arguments to update or create a GradeConfig.
     * @example
     * // Update or create a GradeConfig
     * const gradeConfig = await prisma.gradeConfig.upsert({
     *   create: {
     *     // ... data to create a GradeConfig
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the GradeConfig we want to update
     *   }
     * })
     */
    upsert<T extends GradeConfigUpsertArgs>(args: SelectSubset<T, GradeConfigUpsertArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of GradeConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GradeConfigCountArgs} args - Arguments to filter GradeConfigs to count.
     * @example
     * // Count the number of GradeConfigs
     * const count = await prisma.gradeConfig.count({
     *   where: {
     *     // ... the filter for the GradeConfigs we want to count
     *   }
     * })
    **/
    count<T extends GradeConfigCountArgs>(
      args?: Subset<T, GradeConfigCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], GradeConfigCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a GradeConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GradeConfigAggregateArgs} 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 GradeConfigAggregateArgs>(args: Subset<T, GradeConfigAggregateArgs>): Prisma.PrismaPromise<GetGradeConfigAggregateType<T>>

    /**
     * Group by GradeConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GradeConfigGroupByArgs} 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 GradeConfigGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: GradeConfigGroupByArgs['orderBy'] }
        : { orderBy?: GradeConfigGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, GradeConfigGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetGradeConfigGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the GradeConfig model
   */
  readonly fields: GradeConfigFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for GradeConfig.
   * 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__GradeConfigClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends GradeConfig$organizationArgs<ExtArgs> = {}>(args?: Subset<T, GradeConfig$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    cycles<T extends GradeConfig$cyclesArgs<ExtArgs> = {}>(args?: Subset<T, GradeConfig$cyclesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the GradeConfig model
   */
  interface GradeConfigFieldRefs {
    readonly id: FieldRef<"GradeConfig", 'String'>
    readonly name: FieldRef<"GradeConfig", 'String'>
    readonly description: FieldRef<"GradeConfig", 'String'>
    readonly grades: FieldRef<"GradeConfig", 'Json'>
    readonly isDefault: FieldRef<"GradeConfig", 'Boolean'>
    readonly isActive: FieldRef<"GradeConfig", 'Boolean'>
    readonly createdBy: FieldRef<"GradeConfig", 'String'>
    readonly createdAt: FieldRef<"GradeConfig", 'DateTime'>
    readonly updatedAt: FieldRef<"GradeConfig", 'DateTime'>
    readonly deletedAt: FieldRef<"GradeConfig", 'DateTime'>
    readonly organizationId: FieldRef<"GradeConfig", 'String'>
  }
    

  // Custom InputTypes
  /**
   * GradeConfig findUnique
   */
  export type GradeConfigFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * Filter, which GradeConfig to fetch.
     */
    where: GradeConfigWhereUniqueInput
  }

  /**
   * GradeConfig findUniqueOrThrow
   */
  export type GradeConfigFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * Filter, which GradeConfig to fetch.
     */
    where: GradeConfigWhereUniqueInput
  }

  /**
   * GradeConfig findFirst
   */
  export type GradeConfigFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * Filter, which GradeConfig to fetch.
     */
    where?: GradeConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GradeConfigs to fetch.
     */
    orderBy?: GradeConfigOrderByWithRelationInput | GradeConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for GradeConfigs.
     */
    cursor?: GradeConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GradeConfigs 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` GradeConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of GradeConfigs.
     */
    distinct?: GradeConfigScalarFieldEnum | GradeConfigScalarFieldEnum[]
  }

  /**
   * GradeConfig findFirstOrThrow
   */
  export type GradeConfigFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * Filter, which GradeConfig to fetch.
     */
    where?: GradeConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GradeConfigs to fetch.
     */
    orderBy?: GradeConfigOrderByWithRelationInput | GradeConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for GradeConfigs.
     */
    cursor?: GradeConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GradeConfigs 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` GradeConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of GradeConfigs.
     */
    distinct?: GradeConfigScalarFieldEnum | GradeConfigScalarFieldEnum[]
  }

  /**
   * GradeConfig findMany
   */
  export type GradeConfigFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * Filter, which GradeConfigs to fetch.
     */
    where?: GradeConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GradeConfigs to fetch.
     */
    orderBy?: GradeConfigOrderByWithRelationInput | GradeConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing GradeConfigs.
     */
    cursor?: GradeConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GradeConfigs 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` GradeConfigs.
     */
    skip?: number
    distinct?: GradeConfigScalarFieldEnum | GradeConfigScalarFieldEnum[]
  }

  /**
   * GradeConfig create
   */
  export type GradeConfigCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * The data needed to create a GradeConfig.
     */
    data: XOR<GradeConfigCreateInput, GradeConfigUncheckedCreateInput>
  }

  /**
   * GradeConfig createMany
   */
  export type GradeConfigCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many GradeConfigs.
     */
    data: GradeConfigCreateManyInput | GradeConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * GradeConfig createManyAndReturn
   */
  export type GradeConfigCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * The data used to create many GradeConfigs.
     */
    data: GradeConfigCreateManyInput | GradeConfigCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * GradeConfig update
   */
  export type GradeConfigUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * The data needed to update a GradeConfig.
     */
    data: XOR<GradeConfigUpdateInput, GradeConfigUncheckedUpdateInput>
    /**
     * Choose, which GradeConfig to update.
     */
    where: GradeConfigWhereUniqueInput
  }

  /**
   * GradeConfig updateMany
   */
  export type GradeConfigUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update GradeConfigs.
     */
    data: XOR<GradeConfigUpdateManyMutationInput, GradeConfigUncheckedUpdateManyInput>
    /**
     * Filter which GradeConfigs to update
     */
    where?: GradeConfigWhereInput
    /**
     * Limit how many GradeConfigs to update.
     */
    limit?: number
  }

  /**
   * GradeConfig updateManyAndReturn
   */
  export type GradeConfigUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * The data used to update GradeConfigs.
     */
    data: XOR<GradeConfigUpdateManyMutationInput, GradeConfigUncheckedUpdateManyInput>
    /**
     * Filter which GradeConfigs to update
     */
    where?: GradeConfigWhereInput
    /**
     * Limit how many GradeConfigs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * GradeConfig upsert
   */
  export type GradeConfigUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * The filter to search for the GradeConfig to update in case it exists.
     */
    where: GradeConfigWhereUniqueInput
    /**
     * In case the GradeConfig found by the `where` argument doesn't exist, create a new GradeConfig with this data.
     */
    create: XOR<GradeConfigCreateInput, GradeConfigUncheckedCreateInput>
    /**
     * In case the GradeConfig was found with the provided `where` argument, update it with this data.
     */
    update: XOR<GradeConfigUpdateInput, GradeConfigUncheckedUpdateInput>
  }

  /**
   * GradeConfig delete
   */
  export type GradeConfigDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    /**
     * Filter which GradeConfig to delete.
     */
    where: GradeConfigWhereUniqueInput
  }

  /**
   * GradeConfig deleteMany
   */
  export type GradeConfigDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which GradeConfigs to delete
     */
    where?: GradeConfigWhereInput
    /**
     * Limit how many GradeConfigs to delete.
     */
    limit?: number
  }

  /**
   * GradeConfig.organization
   */
  export type GradeConfig$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * GradeConfig.cycles
   */
  export type GradeConfig$cyclesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    where?: PerformanceCycleWhereInput
    orderBy?: PerformanceCycleOrderByWithRelationInput | PerformanceCycleOrderByWithRelationInput[]
    cursor?: PerformanceCycleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PerformanceCycleScalarFieldEnum | PerformanceCycleScalarFieldEnum[]
  }

  /**
   * GradeConfig without action
   */
  export type GradeConfigDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
  }


  /**
   * Model PerformanceCycle
   */

  export type AggregatePerformanceCycle = {
    _count: PerformanceCycleCountAggregateOutputType | null
    _min: PerformanceCycleMinAggregateOutputType | null
    _max: PerformanceCycleMaxAggregateOutputType | null
  }

  export type PerformanceCycleMinAggregateOutputType = {
    id: string | null
    name: string | null
    type: $Enums.CycleType | null
    status: $Enums.CycleStatus | null
    startDate: Date | null
    endDate: Date | null
    gradeConfigId: string | null
    parentCycleId: string | null
    resultsPublishedAt: Date | null
    resultsPublishedBy: string | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
    organizationId: string | null
  }

  export type PerformanceCycleMaxAggregateOutputType = {
    id: string | null
    name: string | null
    type: $Enums.CycleType | null
    status: $Enums.CycleStatus | null
    startDate: Date | null
    endDate: Date | null
    gradeConfigId: string | null
    parentCycleId: string | null
    resultsPublishedAt: Date | null
    resultsPublishedBy: string | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
    organizationId: string | null
  }

  export type PerformanceCycleCountAggregateOutputType = {
    id: number
    name: number
    type: number
    status: number
    startDate: number
    endDate: number
    gradeConfigId: number
    parentCycleId: number
    resultsPublishedAt: number
    resultsPublishedBy: number
    createdBy: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    organizationId: number
    _all: number
  }


  export type PerformanceCycleMinAggregateInputType = {
    id?: true
    name?: true
    type?: true
    status?: true
    startDate?: true
    endDate?: true
    gradeConfigId?: true
    parentCycleId?: true
    resultsPublishedAt?: true
    resultsPublishedBy?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
  }

  export type PerformanceCycleMaxAggregateInputType = {
    id?: true
    name?: true
    type?: true
    status?: true
    startDate?: true
    endDate?: true
    gradeConfigId?: true
    parentCycleId?: true
    resultsPublishedAt?: true
    resultsPublishedBy?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
  }

  export type PerformanceCycleCountAggregateInputType = {
    id?: true
    name?: true
    type?: true
    status?: true
    startDate?: true
    endDate?: true
    gradeConfigId?: true
    parentCycleId?: true
    resultsPublishedAt?: true
    resultsPublishedBy?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
    _all?: true
  }

  export type PerformanceCycleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PerformanceCycle to aggregate.
     */
    where?: PerformanceCycleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PerformanceCycles to fetch.
     */
    orderBy?: PerformanceCycleOrderByWithRelationInput | PerformanceCycleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PerformanceCycleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PerformanceCycles 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` PerformanceCycles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PerformanceCycles
    **/
    _count?: true | PerformanceCycleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PerformanceCycleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PerformanceCycleMaxAggregateInputType
  }

  export type GetPerformanceCycleAggregateType<T extends PerformanceCycleAggregateArgs> = {
        [P in keyof T & keyof AggregatePerformanceCycle]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePerformanceCycle[P]>
      : GetScalarType<T[P], AggregatePerformanceCycle[P]>
  }




  export type PerformanceCycleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PerformanceCycleWhereInput
    orderBy?: PerformanceCycleOrderByWithAggregationInput | PerformanceCycleOrderByWithAggregationInput[]
    by: PerformanceCycleScalarFieldEnum[] | PerformanceCycleScalarFieldEnum
    having?: PerformanceCycleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PerformanceCycleCountAggregateInputType | true
    _min?: PerformanceCycleMinAggregateInputType
    _max?: PerformanceCycleMaxAggregateInputType
  }

  export type PerformanceCycleGroupByOutputType = {
    id: string
    name: string
    type: $Enums.CycleType
    status: $Enums.CycleStatus
    startDate: Date
    endDate: Date
    gradeConfigId: string | null
    parentCycleId: string | null
    resultsPublishedAt: Date | null
    resultsPublishedBy: string | null
    createdBy: string
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    organizationId: string
    _count: PerformanceCycleCountAggregateOutputType | null
    _min: PerformanceCycleMinAggregateOutputType | null
    _max: PerformanceCycleMaxAggregateOutputType | null
  }

  type GetPerformanceCycleGroupByPayload<T extends PerformanceCycleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PerformanceCycleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PerformanceCycleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PerformanceCycleGroupByOutputType[P]>
            : GetScalarType<T[P], PerformanceCycleGroupByOutputType[P]>
        }
      >
    >


  export type PerformanceCycleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    type?: boolean
    status?: boolean
    startDate?: boolean
    endDate?: boolean
    gradeConfigId?: boolean
    parentCycleId?: boolean
    resultsPublishedAt?: boolean
    resultsPublishedBy?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    gradeConfig?: boolean | PerformanceCycle$gradeConfigArgs<ExtArgs>
    parentCycle?: boolean | PerformanceCycle$parentCycleArgs<ExtArgs>
    childCycles?: boolean | PerformanceCycle$childCyclesArgs<ExtArgs>
    kpiAssignments?: boolean | PerformanceCycle$kpiAssignmentsArgs<ExtArgs>
    evaluations?: boolean | PerformanceCycle$evaluationsArgs<ExtArgs>
    results?: boolean | PerformanceCycle$resultsArgs<ExtArgs>
    strategicObjectives?: boolean | PerformanceCycle$strategicObjectivesArgs<ExtArgs>
    e360Templates?: boolean | PerformanceCycle$e360TemplatesArgs<ExtArgs>
    _count?: boolean | PerformanceCycleCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["performanceCycle"]>

  export type PerformanceCycleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    type?: boolean
    status?: boolean
    startDate?: boolean
    endDate?: boolean
    gradeConfigId?: boolean
    parentCycleId?: boolean
    resultsPublishedAt?: boolean
    resultsPublishedBy?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    gradeConfig?: boolean | PerformanceCycle$gradeConfigArgs<ExtArgs>
    parentCycle?: boolean | PerformanceCycle$parentCycleArgs<ExtArgs>
  }, ExtArgs["result"]["performanceCycle"]>

  export type PerformanceCycleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    type?: boolean
    status?: boolean
    startDate?: boolean
    endDate?: boolean
    gradeConfigId?: boolean
    parentCycleId?: boolean
    resultsPublishedAt?: boolean
    resultsPublishedBy?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    gradeConfig?: boolean | PerformanceCycle$gradeConfigArgs<ExtArgs>
    parentCycle?: boolean | PerformanceCycle$parentCycleArgs<ExtArgs>
  }, ExtArgs["result"]["performanceCycle"]>

  export type PerformanceCycleSelectScalar = {
    id?: boolean
    name?: boolean
    type?: boolean
    status?: boolean
    startDate?: boolean
    endDate?: boolean
    gradeConfigId?: boolean
    parentCycleId?: boolean
    resultsPublishedAt?: boolean
    resultsPublishedBy?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
  }

  export type PerformanceCycleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "type" | "status" | "startDate" | "endDate" | "gradeConfigId" | "parentCycleId" | "resultsPublishedAt" | "resultsPublishedBy" | "createdBy" | "createdAt" | "updatedAt" | "deletedAt" | "organizationId", ExtArgs["result"]["performanceCycle"]>
  export type PerformanceCycleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    gradeConfig?: boolean | PerformanceCycle$gradeConfigArgs<ExtArgs>
    parentCycle?: boolean | PerformanceCycle$parentCycleArgs<ExtArgs>
    childCycles?: boolean | PerformanceCycle$childCyclesArgs<ExtArgs>
    kpiAssignments?: boolean | PerformanceCycle$kpiAssignmentsArgs<ExtArgs>
    evaluations?: boolean | PerformanceCycle$evaluationsArgs<ExtArgs>
    results?: boolean | PerformanceCycle$resultsArgs<ExtArgs>
    strategicObjectives?: boolean | PerformanceCycle$strategicObjectivesArgs<ExtArgs>
    e360Templates?: boolean | PerformanceCycle$e360TemplatesArgs<ExtArgs>
    _count?: boolean | PerformanceCycleCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PerformanceCycleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    gradeConfig?: boolean | PerformanceCycle$gradeConfigArgs<ExtArgs>
    parentCycle?: boolean | PerformanceCycle$parentCycleArgs<ExtArgs>
  }
  export type PerformanceCycleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    gradeConfig?: boolean | PerformanceCycle$gradeConfigArgs<ExtArgs>
    parentCycle?: boolean | PerformanceCycle$parentCycleArgs<ExtArgs>
  }

  export type $PerformanceCyclePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PerformanceCycle"
    objects: {
      organization: Prisma.$OrganizationPayload<ExtArgs>
      gradeConfig: Prisma.$GradeConfigPayload<ExtArgs> | null
      parentCycle: Prisma.$PerformanceCyclePayload<ExtArgs> | null
      childCycles: Prisma.$PerformanceCyclePayload<ExtArgs>[]
      kpiAssignments: Prisma.$KpiAssignmentPayload<ExtArgs>[]
      evaluations: Prisma.$Evaluation360Payload<ExtArgs>[]
      results: Prisma.$PerformanceResultPayload<ExtArgs>[]
      strategicObjectives: Prisma.$StrategicObjectivePayload<ExtArgs>[]
      e360Templates: Prisma.$Evaluation360TemplatePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      type: $Enums.CycleType
      status: $Enums.CycleStatus
      startDate: Date
      endDate: Date
      gradeConfigId: string | null
      parentCycleId: string | null
      resultsPublishedAt: Date | null
      resultsPublishedBy: string | null
      createdBy: string
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
      /**
       * 周期必须归属组织（v2.1 组织隔离 — 强约束）
       * 每个绩效周期必须属于一个组织，不允许无组织的周期
       */
      organizationId: string
    }, ExtArgs["result"]["performanceCycle"]>
    composites: {}
  }

  type PerformanceCycleGetPayload<S extends boolean | null | undefined | PerformanceCycleDefaultArgs> = $Result.GetResult<Prisma.$PerformanceCyclePayload, S>

  type PerformanceCycleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PerformanceCycleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PerformanceCycleCountAggregateInputType | true
    }

  export interface PerformanceCycleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PerformanceCycle'], meta: { name: 'PerformanceCycle' } }
    /**
     * Find zero or one PerformanceCycle that matches the filter.
     * @param {PerformanceCycleFindUniqueArgs} args - Arguments to find a PerformanceCycle
     * @example
     * // Get one PerformanceCycle
     * const performanceCycle = await prisma.performanceCycle.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PerformanceCycleFindUniqueArgs>(args: SelectSubset<T, PerformanceCycleFindUniqueArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PerformanceCycle that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PerformanceCycleFindUniqueOrThrowArgs} args - Arguments to find a PerformanceCycle
     * @example
     * // Get one PerformanceCycle
     * const performanceCycle = await prisma.performanceCycle.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PerformanceCycleFindUniqueOrThrowArgs>(args: SelectSubset<T, PerformanceCycleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PerformanceCycle 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 {PerformanceCycleFindFirstArgs} args - Arguments to find a PerformanceCycle
     * @example
     * // Get one PerformanceCycle
     * const performanceCycle = await prisma.performanceCycle.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PerformanceCycleFindFirstArgs>(args?: SelectSubset<T, PerformanceCycleFindFirstArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PerformanceCycle 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 {PerformanceCycleFindFirstOrThrowArgs} args - Arguments to find a PerformanceCycle
     * @example
     * // Get one PerformanceCycle
     * const performanceCycle = await prisma.performanceCycle.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PerformanceCycleFindFirstOrThrowArgs>(args?: SelectSubset<T, PerformanceCycleFindFirstOrThrowArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PerformanceCycles 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 {PerformanceCycleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PerformanceCycles
     * const performanceCycles = await prisma.performanceCycle.findMany()
     * 
     * // Get first 10 PerformanceCycles
     * const performanceCycles = await prisma.performanceCycle.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const performanceCycleWithIdOnly = await prisma.performanceCycle.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PerformanceCycleFindManyArgs>(args?: SelectSubset<T, PerformanceCycleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PerformanceCycle.
     * @param {PerformanceCycleCreateArgs} args - Arguments to create a PerformanceCycle.
     * @example
     * // Create one PerformanceCycle
     * const PerformanceCycle = await prisma.performanceCycle.create({
     *   data: {
     *     // ... data to create a PerformanceCycle
     *   }
     * })
     * 
     */
    create<T extends PerformanceCycleCreateArgs>(args: SelectSubset<T, PerformanceCycleCreateArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PerformanceCycles.
     * @param {PerformanceCycleCreateManyArgs} args - Arguments to create many PerformanceCycles.
     * @example
     * // Create many PerformanceCycles
     * const performanceCycle = await prisma.performanceCycle.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PerformanceCycleCreateManyArgs>(args?: SelectSubset<T, PerformanceCycleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PerformanceCycles and returns the data saved in the database.
     * @param {PerformanceCycleCreateManyAndReturnArgs} args - Arguments to create many PerformanceCycles.
     * @example
     * // Create many PerformanceCycles
     * const performanceCycle = await prisma.performanceCycle.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PerformanceCycles and only return the `id`
     * const performanceCycleWithIdOnly = await prisma.performanceCycle.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 PerformanceCycleCreateManyAndReturnArgs>(args?: SelectSubset<T, PerformanceCycleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PerformanceCycle.
     * @param {PerformanceCycleDeleteArgs} args - Arguments to delete one PerformanceCycle.
     * @example
     * // Delete one PerformanceCycle
     * const PerformanceCycle = await prisma.performanceCycle.delete({
     *   where: {
     *     // ... filter to delete one PerformanceCycle
     *   }
     * })
     * 
     */
    delete<T extends PerformanceCycleDeleteArgs>(args: SelectSubset<T, PerformanceCycleDeleteArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PerformanceCycle.
     * @param {PerformanceCycleUpdateArgs} args - Arguments to update one PerformanceCycle.
     * @example
     * // Update one PerformanceCycle
     * const performanceCycle = await prisma.performanceCycle.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PerformanceCycleUpdateArgs>(args: SelectSubset<T, PerformanceCycleUpdateArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PerformanceCycles.
     * @param {PerformanceCycleDeleteManyArgs} args - Arguments to filter PerformanceCycles to delete.
     * @example
     * // Delete a few PerformanceCycles
     * const { count } = await prisma.performanceCycle.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PerformanceCycleDeleteManyArgs>(args?: SelectSubset<T, PerformanceCycleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PerformanceCycles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PerformanceCycleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PerformanceCycles
     * const performanceCycle = await prisma.performanceCycle.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PerformanceCycleUpdateManyArgs>(args: SelectSubset<T, PerformanceCycleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PerformanceCycles and returns the data updated in the database.
     * @param {PerformanceCycleUpdateManyAndReturnArgs} args - Arguments to update many PerformanceCycles.
     * @example
     * // Update many PerformanceCycles
     * const performanceCycle = await prisma.performanceCycle.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PerformanceCycles and only return the `id`
     * const performanceCycleWithIdOnly = await prisma.performanceCycle.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 PerformanceCycleUpdateManyAndReturnArgs>(args: SelectSubset<T, PerformanceCycleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PerformanceCycle.
     * @param {PerformanceCycleUpsertArgs} args - Arguments to update or create a PerformanceCycle.
     * @example
     * // Update or create a PerformanceCycle
     * const performanceCycle = await prisma.performanceCycle.upsert({
     *   create: {
     *     // ... data to create a PerformanceCycle
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PerformanceCycle we want to update
     *   }
     * })
     */
    upsert<T extends PerformanceCycleUpsertArgs>(args: SelectSubset<T, PerformanceCycleUpsertArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PerformanceCycles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PerformanceCycleCountArgs} args - Arguments to filter PerformanceCycles to count.
     * @example
     * // Count the number of PerformanceCycles
     * const count = await prisma.performanceCycle.count({
     *   where: {
     *     // ... the filter for the PerformanceCycles we want to count
     *   }
     * })
    **/
    count<T extends PerformanceCycleCountArgs>(
      args?: Subset<T, PerformanceCycleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PerformanceCycleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PerformanceCycle.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PerformanceCycleAggregateArgs} 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 PerformanceCycleAggregateArgs>(args: Subset<T, PerformanceCycleAggregateArgs>): Prisma.PrismaPromise<GetPerformanceCycleAggregateType<T>>

    /**
     * Group by PerformanceCycle.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PerformanceCycleGroupByArgs} 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 PerformanceCycleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PerformanceCycleGroupByArgs['orderBy'] }
        : { orderBy?: PerformanceCycleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PerformanceCycleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPerformanceCycleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PerformanceCycle model
   */
  readonly fields: PerformanceCycleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PerformanceCycle.
   * 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__PerformanceCycleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    gradeConfig<T extends PerformanceCycle$gradeConfigArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycle$gradeConfigArgs<ExtArgs>>): Prisma__GradeConfigClient<$Result.GetResult<Prisma.$GradeConfigPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    parentCycle<T extends PerformanceCycle$parentCycleArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycle$parentCycleArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    childCycles<T extends PerformanceCycle$childCyclesArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycle$childCyclesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    kpiAssignments<T extends PerformanceCycle$kpiAssignmentsArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycle$kpiAssignmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    evaluations<T extends PerformanceCycle$evaluationsArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycle$evaluationsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    results<T extends PerformanceCycle$resultsArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycle$resultsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    strategicObjectives<T extends PerformanceCycle$strategicObjectivesArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycle$strategicObjectivesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    e360Templates<T extends PerformanceCycle$e360TemplatesArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycle$e360TemplatesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PerformanceCycle model
   */
  interface PerformanceCycleFieldRefs {
    readonly id: FieldRef<"PerformanceCycle", 'String'>
    readonly name: FieldRef<"PerformanceCycle", 'String'>
    readonly type: FieldRef<"PerformanceCycle", 'CycleType'>
    readonly status: FieldRef<"PerformanceCycle", 'CycleStatus'>
    readonly startDate: FieldRef<"PerformanceCycle", 'DateTime'>
    readonly endDate: FieldRef<"PerformanceCycle", 'DateTime'>
    readonly gradeConfigId: FieldRef<"PerformanceCycle", 'String'>
    readonly parentCycleId: FieldRef<"PerformanceCycle", 'String'>
    readonly resultsPublishedAt: FieldRef<"PerformanceCycle", 'DateTime'>
    readonly resultsPublishedBy: FieldRef<"PerformanceCycle", 'String'>
    readonly createdBy: FieldRef<"PerformanceCycle", 'String'>
    readonly createdAt: FieldRef<"PerformanceCycle", 'DateTime'>
    readonly updatedAt: FieldRef<"PerformanceCycle", 'DateTime'>
    readonly deletedAt: FieldRef<"PerformanceCycle", 'DateTime'>
    readonly organizationId: FieldRef<"PerformanceCycle", 'String'>
  }
    

  // Custom InputTypes
  /**
   * PerformanceCycle findUnique
   */
  export type PerformanceCycleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceCycle to fetch.
     */
    where: PerformanceCycleWhereUniqueInput
  }

  /**
   * PerformanceCycle findUniqueOrThrow
   */
  export type PerformanceCycleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceCycle to fetch.
     */
    where: PerformanceCycleWhereUniqueInput
  }

  /**
   * PerformanceCycle findFirst
   */
  export type PerformanceCycleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceCycle to fetch.
     */
    where?: PerformanceCycleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PerformanceCycles to fetch.
     */
    orderBy?: PerformanceCycleOrderByWithRelationInput | PerformanceCycleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PerformanceCycles.
     */
    cursor?: PerformanceCycleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PerformanceCycles 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` PerformanceCycles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PerformanceCycles.
     */
    distinct?: PerformanceCycleScalarFieldEnum | PerformanceCycleScalarFieldEnum[]
  }

  /**
   * PerformanceCycle findFirstOrThrow
   */
  export type PerformanceCycleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceCycle to fetch.
     */
    where?: PerformanceCycleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PerformanceCycles to fetch.
     */
    orderBy?: PerformanceCycleOrderByWithRelationInput | PerformanceCycleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PerformanceCycles.
     */
    cursor?: PerformanceCycleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PerformanceCycles 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` PerformanceCycles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PerformanceCycles.
     */
    distinct?: PerformanceCycleScalarFieldEnum | PerformanceCycleScalarFieldEnum[]
  }

  /**
   * PerformanceCycle findMany
   */
  export type PerformanceCycleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceCycles to fetch.
     */
    where?: PerformanceCycleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PerformanceCycles to fetch.
     */
    orderBy?: PerformanceCycleOrderByWithRelationInput | PerformanceCycleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PerformanceCycles.
     */
    cursor?: PerformanceCycleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PerformanceCycles 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` PerformanceCycles.
     */
    skip?: number
    distinct?: PerformanceCycleScalarFieldEnum | PerformanceCycleScalarFieldEnum[]
  }

  /**
   * PerformanceCycle create
   */
  export type PerformanceCycleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * The data needed to create a PerformanceCycle.
     */
    data: XOR<PerformanceCycleCreateInput, PerformanceCycleUncheckedCreateInput>
  }

  /**
   * PerformanceCycle createMany
   */
  export type PerformanceCycleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PerformanceCycles.
     */
    data: PerformanceCycleCreateManyInput | PerformanceCycleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PerformanceCycle createManyAndReturn
   */
  export type PerformanceCycleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * The data used to create many PerformanceCycles.
     */
    data: PerformanceCycleCreateManyInput | PerformanceCycleCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PerformanceCycle update
   */
  export type PerformanceCycleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * The data needed to update a PerformanceCycle.
     */
    data: XOR<PerformanceCycleUpdateInput, PerformanceCycleUncheckedUpdateInput>
    /**
     * Choose, which PerformanceCycle to update.
     */
    where: PerformanceCycleWhereUniqueInput
  }

  /**
   * PerformanceCycle updateMany
   */
  export type PerformanceCycleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PerformanceCycles.
     */
    data: XOR<PerformanceCycleUpdateManyMutationInput, PerformanceCycleUncheckedUpdateManyInput>
    /**
     * Filter which PerformanceCycles to update
     */
    where?: PerformanceCycleWhereInput
    /**
     * Limit how many PerformanceCycles to update.
     */
    limit?: number
  }

  /**
   * PerformanceCycle updateManyAndReturn
   */
  export type PerformanceCycleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * The data used to update PerformanceCycles.
     */
    data: XOR<PerformanceCycleUpdateManyMutationInput, PerformanceCycleUncheckedUpdateManyInput>
    /**
     * Filter which PerformanceCycles to update
     */
    where?: PerformanceCycleWhereInput
    /**
     * Limit how many PerformanceCycles to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PerformanceCycle upsert
   */
  export type PerformanceCycleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * The filter to search for the PerformanceCycle to update in case it exists.
     */
    where: PerformanceCycleWhereUniqueInput
    /**
     * In case the PerformanceCycle found by the `where` argument doesn't exist, create a new PerformanceCycle with this data.
     */
    create: XOR<PerformanceCycleCreateInput, PerformanceCycleUncheckedCreateInput>
    /**
     * In case the PerformanceCycle was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PerformanceCycleUpdateInput, PerformanceCycleUncheckedUpdateInput>
  }

  /**
   * PerformanceCycle delete
   */
  export type PerformanceCycleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    /**
     * Filter which PerformanceCycle to delete.
     */
    where: PerformanceCycleWhereUniqueInput
  }

  /**
   * PerformanceCycle deleteMany
   */
  export type PerformanceCycleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PerformanceCycles to delete
     */
    where?: PerformanceCycleWhereInput
    /**
     * Limit how many PerformanceCycles to delete.
     */
    limit?: number
  }

  /**
   * PerformanceCycle.gradeConfig
   */
  export type PerformanceCycle$gradeConfigArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeConfig
     */
    select?: GradeConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeConfig
     */
    omit?: GradeConfigOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeConfigInclude<ExtArgs> | null
    where?: GradeConfigWhereInput
  }

  /**
   * PerformanceCycle.parentCycle
   */
  export type PerformanceCycle$parentCycleArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    where?: PerformanceCycleWhereInput
  }

  /**
   * PerformanceCycle.childCycles
   */
  export type PerformanceCycle$childCyclesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    where?: PerformanceCycleWhereInput
    orderBy?: PerformanceCycleOrderByWithRelationInput | PerformanceCycleOrderByWithRelationInput[]
    cursor?: PerformanceCycleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PerformanceCycleScalarFieldEnum | PerformanceCycleScalarFieldEnum[]
  }

  /**
   * PerformanceCycle.kpiAssignments
   */
  export type PerformanceCycle$kpiAssignmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    where?: KpiAssignmentWhereInput
    orderBy?: KpiAssignmentOrderByWithRelationInput | KpiAssignmentOrderByWithRelationInput[]
    cursor?: KpiAssignmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: KpiAssignmentScalarFieldEnum | KpiAssignmentScalarFieldEnum[]
  }

  /**
   * PerformanceCycle.evaluations
   */
  export type PerformanceCycle$evaluationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    where?: Evaluation360WhereInput
    orderBy?: Evaluation360OrderByWithRelationInput | Evaluation360OrderByWithRelationInput[]
    cursor?: Evaluation360WhereUniqueInput
    take?: number
    skip?: number
    distinct?: Evaluation360ScalarFieldEnum | Evaluation360ScalarFieldEnum[]
  }

  /**
   * PerformanceCycle.results
   */
  export type PerformanceCycle$resultsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    where?: PerformanceResultWhereInput
    orderBy?: PerformanceResultOrderByWithRelationInput | PerformanceResultOrderByWithRelationInput[]
    cursor?: PerformanceResultWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PerformanceResultScalarFieldEnum | PerformanceResultScalarFieldEnum[]
  }

  /**
   * PerformanceCycle.strategicObjectives
   */
  export type PerformanceCycle$strategicObjectivesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    where?: StrategicObjectiveWhereInput
    orderBy?: StrategicObjectiveOrderByWithRelationInput | StrategicObjectiveOrderByWithRelationInput[]
    cursor?: StrategicObjectiveWhereUniqueInput
    take?: number
    skip?: number
    distinct?: StrategicObjectiveScalarFieldEnum | StrategicObjectiveScalarFieldEnum[]
  }

  /**
   * PerformanceCycle.e360Templates
   */
  export type PerformanceCycle$e360TemplatesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    where?: Evaluation360TemplateWhereInput
    orderBy?: Evaluation360TemplateOrderByWithRelationInput | Evaluation360TemplateOrderByWithRelationInput[]
    cursor?: Evaluation360TemplateWhereUniqueInput
    take?: number
    skip?: number
    distinct?: Evaluation360TemplateScalarFieldEnum | Evaluation360TemplateScalarFieldEnum[]
  }

  /**
   * PerformanceCycle without action
   */
  export type PerformanceCycleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
  }


  /**
   * Model PerformanceResult
   */

  export type AggregatePerformanceResult = {
    _count: PerformanceResultCountAggregateOutputType | null
    _avg: PerformanceResultAvgAggregateOutputType | null
    _sum: PerformanceResultSumAggregateOutputType | null
    _min: PerformanceResultMinAggregateOutputType | null
    _max: PerformanceResultMaxAggregateOutputType | null
  }

  export type PerformanceResultAvgAggregateOutputType = {
    kpiScore: Decimal | null
    kpiWeight: Decimal | null
    e360Score: Decimal | null
    e360Weight: Decimal | null
    totalScore: Decimal | null
  }

  export type PerformanceResultSumAggregateOutputType = {
    kpiScore: Decimal | null
    kpiWeight: Decimal | null
    e360Score: Decimal | null
    e360Weight: Decimal | null
    totalScore: Decimal | null
  }

  export type PerformanceResultMinAggregateOutputType = {
    id: string | null
    cycleId: string | null
    employeeId: string | null
    kpiScore: Decimal | null
    kpiWeight: Decimal | null
    e360Score: Decimal | null
    e360Weight: Decimal | null
    totalScore: Decimal | null
    proposedGradeCode: string | null
    proposedGradeName: string | null
    gradeCode: string | null
    gradeName: string | null
    isPublished: boolean | null
    publishedAt: Date | null
    viewedByEmployee: boolean | null
    viewedAt: Date | null
    confirmStatus: $Enums.ResultConfirmStatus | null
    appealReason: string | null
    appealResponse: string | null
    appealResolvedAt: Date | null
    selfOverallComment: string | null
    managerOverallComment: string | null
    remarks: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
    organizationId: string | null
  }

  export type PerformanceResultMaxAggregateOutputType = {
    id: string | null
    cycleId: string | null
    employeeId: string | null
    kpiScore: Decimal | null
    kpiWeight: Decimal | null
    e360Score: Decimal | null
    e360Weight: Decimal | null
    totalScore: Decimal | null
    proposedGradeCode: string | null
    proposedGradeName: string | null
    gradeCode: string | null
    gradeName: string | null
    isPublished: boolean | null
    publishedAt: Date | null
    viewedByEmployee: boolean | null
    viewedAt: Date | null
    confirmStatus: $Enums.ResultConfirmStatus | null
    appealReason: string | null
    appealResponse: string | null
    appealResolvedAt: Date | null
    selfOverallComment: string | null
    managerOverallComment: string | null
    remarks: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
    organizationId: string | null
  }

  export type PerformanceResultCountAggregateOutputType = {
    id: number
    cycleId: number
    employeeId: number
    kpiScore: number
    kpiWeight: number
    e360Score: number
    e360Weight: number
    totalScore: number
    proposedGradeCode: number
    proposedGradeName: number
    gradeCode: number
    gradeName: number
    isPublished: number
    publishedAt: number
    viewedByEmployee: number
    viewedAt: number
    confirmStatus: number
    appealReason: number
    appealResponse: number
    appealResolvedAt: number
    selfOverallComment: number
    managerOverallComment: number
    remarks: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    organizationId: number
    _all: number
  }


  export type PerformanceResultAvgAggregateInputType = {
    kpiScore?: true
    kpiWeight?: true
    e360Score?: true
    e360Weight?: true
    totalScore?: true
  }

  export type PerformanceResultSumAggregateInputType = {
    kpiScore?: true
    kpiWeight?: true
    e360Score?: true
    e360Weight?: true
    totalScore?: true
  }

  export type PerformanceResultMinAggregateInputType = {
    id?: true
    cycleId?: true
    employeeId?: true
    kpiScore?: true
    kpiWeight?: true
    e360Score?: true
    e360Weight?: true
    totalScore?: true
    proposedGradeCode?: true
    proposedGradeName?: true
    gradeCode?: true
    gradeName?: true
    isPublished?: true
    publishedAt?: true
    viewedByEmployee?: true
    viewedAt?: true
    confirmStatus?: true
    appealReason?: true
    appealResponse?: true
    appealResolvedAt?: true
    selfOverallComment?: true
    managerOverallComment?: true
    remarks?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
  }

  export type PerformanceResultMaxAggregateInputType = {
    id?: true
    cycleId?: true
    employeeId?: true
    kpiScore?: true
    kpiWeight?: true
    e360Score?: true
    e360Weight?: true
    totalScore?: true
    proposedGradeCode?: true
    proposedGradeName?: true
    gradeCode?: true
    gradeName?: true
    isPublished?: true
    publishedAt?: true
    viewedByEmployee?: true
    viewedAt?: true
    confirmStatus?: true
    appealReason?: true
    appealResponse?: true
    appealResolvedAt?: true
    selfOverallComment?: true
    managerOverallComment?: true
    remarks?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
  }

  export type PerformanceResultCountAggregateInputType = {
    id?: true
    cycleId?: true
    employeeId?: true
    kpiScore?: true
    kpiWeight?: true
    e360Score?: true
    e360Weight?: true
    totalScore?: true
    proposedGradeCode?: true
    proposedGradeName?: true
    gradeCode?: true
    gradeName?: true
    isPublished?: true
    publishedAt?: true
    viewedByEmployee?: true
    viewedAt?: true
    confirmStatus?: true
    appealReason?: true
    appealResponse?: true
    appealResolvedAt?: true
    selfOverallComment?: true
    managerOverallComment?: true
    remarks?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    organizationId?: true
    _all?: true
  }

  export type PerformanceResultAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PerformanceResult to aggregate.
     */
    where?: PerformanceResultWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PerformanceResults to fetch.
     */
    orderBy?: PerformanceResultOrderByWithRelationInput | PerformanceResultOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PerformanceResultWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PerformanceResults 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` PerformanceResults.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PerformanceResults
    **/
    _count?: true | PerformanceResultCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PerformanceResultAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PerformanceResultSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PerformanceResultMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PerformanceResultMaxAggregateInputType
  }

  export type GetPerformanceResultAggregateType<T extends PerformanceResultAggregateArgs> = {
        [P in keyof T & keyof AggregatePerformanceResult]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePerformanceResult[P]>
      : GetScalarType<T[P], AggregatePerformanceResult[P]>
  }




  export type PerformanceResultGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PerformanceResultWhereInput
    orderBy?: PerformanceResultOrderByWithAggregationInput | PerformanceResultOrderByWithAggregationInput[]
    by: PerformanceResultScalarFieldEnum[] | PerformanceResultScalarFieldEnum
    having?: PerformanceResultScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PerformanceResultCountAggregateInputType | true
    _avg?: PerformanceResultAvgAggregateInputType
    _sum?: PerformanceResultSumAggregateInputType
    _min?: PerformanceResultMinAggregateInputType
    _max?: PerformanceResultMaxAggregateInputType
  }

  export type PerformanceResultGroupByOutputType = {
    id: string
    cycleId: string
    employeeId: string
    kpiScore: Decimal | null
    kpiWeight: Decimal | null
    e360Score: Decimal | null
    e360Weight: Decimal | null
    totalScore: Decimal | null
    proposedGradeCode: string | null
    proposedGradeName: string | null
    gradeCode: string | null
    gradeName: string | null
    isPublished: boolean
    publishedAt: Date | null
    viewedByEmployee: boolean
    viewedAt: Date | null
    confirmStatus: $Enums.ResultConfirmStatus
    appealReason: string | null
    appealResponse: string | null
    appealResolvedAt: Date | null
    selfOverallComment: string | null
    managerOverallComment: string | null
    remarks: string | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    organizationId: string
    _count: PerformanceResultCountAggregateOutputType | null
    _avg: PerformanceResultAvgAggregateOutputType | null
    _sum: PerformanceResultSumAggregateOutputType | null
    _min: PerformanceResultMinAggregateOutputType | null
    _max: PerformanceResultMaxAggregateOutputType | null
  }

  type GetPerformanceResultGroupByPayload<T extends PerformanceResultGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PerformanceResultGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PerformanceResultGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PerformanceResultGroupByOutputType[P]>
            : GetScalarType<T[P], PerformanceResultGroupByOutputType[P]>
        }
      >
    >


  export type PerformanceResultSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    employeeId?: boolean
    kpiScore?: boolean
    kpiWeight?: boolean
    e360Score?: boolean
    e360Weight?: boolean
    totalScore?: boolean
    proposedGradeCode?: boolean
    proposedGradeName?: boolean
    gradeCode?: boolean
    gradeName?: boolean
    isPublished?: boolean
    publishedAt?: boolean
    viewedByEmployee?: boolean
    viewedAt?: boolean
    confirmStatus?: boolean
    appealReason?: boolean
    appealResponse?: boolean
    appealResolvedAt?: boolean
    selfOverallComment?: boolean
    managerOverallComment?: boolean
    remarks?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    adjustmentLogs?: boolean | PerformanceResult$adjustmentLogsArgs<ExtArgs>
    _count?: boolean | PerformanceResultCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["performanceResult"]>

  export type PerformanceResultSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    employeeId?: boolean
    kpiScore?: boolean
    kpiWeight?: boolean
    e360Score?: boolean
    e360Weight?: boolean
    totalScore?: boolean
    proposedGradeCode?: boolean
    proposedGradeName?: boolean
    gradeCode?: boolean
    gradeName?: boolean
    isPublished?: boolean
    publishedAt?: boolean
    viewedByEmployee?: boolean
    viewedAt?: boolean
    confirmStatus?: boolean
    appealReason?: boolean
    appealResponse?: boolean
    appealResolvedAt?: boolean
    selfOverallComment?: boolean
    managerOverallComment?: boolean
    remarks?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["performanceResult"]>

  export type PerformanceResultSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    employeeId?: boolean
    kpiScore?: boolean
    kpiWeight?: boolean
    e360Score?: boolean
    e360Weight?: boolean
    totalScore?: boolean
    proposedGradeCode?: boolean
    proposedGradeName?: boolean
    gradeCode?: boolean
    gradeName?: boolean
    isPublished?: boolean
    publishedAt?: boolean
    viewedByEmployee?: boolean
    viewedAt?: boolean
    confirmStatus?: boolean
    appealReason?: boolean
    appealResponse?: boolean
    appealResolvedAt?: boolean
    selfOverallComment?: boolean
    managerOverallComment?: boolean
    remarks?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["performanceResult"]>

  export type PerformanceResultSelectScalar = {
    id?: boolean
    cycleId?: boolean
    employeeId?: boolean
    kpiScore?: boolean
    kpiWeight?: boolean
    e360Score?: boolean
    e360Weight?: boolean
    totalScore?: boolean
    proposedGradeCode?: boolean
    proposedGradeName?: boolean
    gradeCode?: boolean
    gradeName?: boolean
    isPublished?: boolean
    publishedAt?: boolean
    viewedByEmployee?: boolean
    viewedAt?: boolean
    confirmStatus?: boolean
    appealReason?: boolean
    appealResponse?: boolean
    appealResolvedAt?: boolean
    selfOverallComment?: boolean
    managerOverallComment?: boolean
    remarks?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    organizationId?: boolean
  }

  export type PerformanceResultOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "cycleId" | "employeeId" | "kpiScore" | "kpiWeight" | "e360Score" | "e360Weight" | "totalScore" | "proposedGradeCode" | "proposedGradeName" | "gradeCode" | "gradeName" | "isPublished" | "publishedAt" | "viewedByEmployee" | "viewedAt" | "confirmStatus" | "appealReason" | "appealResponse" | "appealResolvedAt" | "selfOverallComment" | "managerOverallComment" | "remarks" | "createdAt" | "updatedAt" | "deletedAt" | "organizationId", ExtArgs["result"]["performanceResult"]>
  export type PerformanceResultInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
    adjustmentLogs?: boolean | PerformanceResult$adjustmentLogsArgs<ExtArgs>
    _count?: boolean | PerformanceResultCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PerformanceResultIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }
  export type PerformanceResultIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    organization?: boolean | OrganizationDefaultArgs<ExtArgs>
  }

  export type $PerformanceResultPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PerformanceResult"
    objects: {
      cycle: Prisma.$PerformanceCyclePayload<ExtArgs>
      organization: Prisma.$OrganizationPayload<ExtArgs>
      adjustmentLogs: Prisma.$GradeAdjustmentLogPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      cycleId: string
      employeeId: string
      kpiScore: Prisma.Decimal | null
      kpiWeight: Prisma.Decimal | null
      e360Score: Prisma.Decimal | null
      e360Weight: Prisma.Decimal | null
      totalScore: Prisma.Decimal | null
      proposedGradeCode: string | null
      proposedGradeName: string | null
      gradeCode: string | null
      gradeName: string | null
      isPublished: boolean
      publishedAt: Date | null
      viewedByEmployee: boolean
      viewedAt: Date | null
      confirmStatus: $Enums.ResultConfirmStatus
      appealReason: string | null
      appealResponse: string | null
      appealResolvedAt: Date | null
      selfOverallComment: string | null
      managerOverallComment: string | null
      remarks: string | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
      /**
       * 冗余组织 ID，简化分析类查询（避免 join cycle）
       */
      organizationId: string
    }, ExtArgs["result"]["performanceResult"]>
    composites: {}
  }

  type PerformanceResultGetPayload<S extends boolean | null | undefined | PerformanceResultDefaultArgs> = $Result.GetResult<Prisma.$PerformanceResultPayload, S>

  type PerformanceResultCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PerformanceResultFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PerformanceResultCountAggregateInputType | true
    }

  export interface PerformanceResultDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PerformanceResult'], meta: { name: 'PerformanceResult' } }
    /**
     * Find zero or one PerformanceResult that matches the filter.
     * @param {PerformanceResultFindUniqueArgs} args - Arguments to find a PerformanceResult
     * @example
     * // Get one PerformanceResult
     * const performanceResult = await prisma.performanceResult.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PerformanceResultFindUniqueArgs>(args: SelectSubset<T, PerformanceResultFindUniqueArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PerformanceResult that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PerformanceResultFindUniqueOrThrowArgs} args - Arguments to find a PerformanceResult
     * @example
     * // Get one PerformanceResult
     * const performanceResult = await prisma.performanceResult.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PerformanceResultFindUniqueOrThrowArgs>(args: SelectSubset<T, PerformanceResultFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PerformanceResult 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 {PerformanceResultFindFirstArgs} args - Arguments to find a PerformanceResult
     * @example
     * // Get one PerformanceResult
     * const performanceResult = await prisma.performanceResult.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PerformanceResultFindFirstArgs>(args?: SelectSubset<T, PerformanceResultFindFirstArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PerformanceResult 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 {PerformanceResultFindFirstOrThrowArgs} args - Arguments to find a PerformanceResult
     * @example
     * // Get one PerformanceResult
     * const performanceResult = await prisma.performanceResult.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PerformanceResultFindFirstOrThrowArgs>(args?: SelectSubset<T, PerformanceResultFindFirstOrThrowArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PerformanceResults 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 {PerformanceResultFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PerformanceResults
     * const performanceResults = await prisma.performanceResult.findMany()
     * 
     * // Get first 10 PerformanceResults
     * const performanceResults = await prisma.performanceResult.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const performanceResultWithIdOnly = await prisma.performanceResult.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PerformanceResultFindManyArgs>(args?: SelectSubset<T, PerformanceResultFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PerformanceResult.
     * @param {PerformanceResultCreateArgs} args - Arguments to create a PerformanceResult.
     * @example
     * // Create one PerformanceResult
     * const PerformanceResult = await prisma.performanceResult.create({
     *   data: {
     *     // ... data to create a PerformanceResult
     *   }
     * })
     * 
     */
    create<T extends PerformanceResultCreateArgs>(args: SelectSubset<T, PerformanceResultCreateArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PerformanceResults.
     * @param {PerformanceResultCreateManyArgs} args - Arguments to create many PerformanceResults.
     * @example
     * // Create many PerformanceResults
     * const performanceResult = await prisma.performanceResult.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PerformanceResultCreateManyArgs>(args?: SelectSubset<T, PerformanceResultCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PerformanceResults and returns the data saved in the database.
     * @param {PerformanceResultCreateManyAndReturnArgs} args - Arguments to create many PerformanceResults.
     * @example
     * // Create many PerformanceResults
     * const performanceResult = await prisma.performanceResult.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PerformanceResults and only return the `id`
     * const performanceResultWithIdOnly = await prisma.performanceResult.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 PerformanceResultCreateManyAndReturnArgs>(args?: SelectSubset<T, PerformanceResultCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PerformanceResult.
     * @param {PerformanceResultDeleteArgs} args - Arguments to delete one PerformanceResult.
     * @example
     * // Delete one PerformanceResult
     * const PerformanceResult = await prisma.performanceResult.delete({
     *   where: {
     *     // ... filter to delete one PerformanceResult
     *   }
     * })
     * 
     */
    delete<T extends PerformanceResultDeleteArgs>(args: SelectSubset<T, PerformanceResultDeleteArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PerformanceResult.
     * @param {PerformanceResultUpdateArgs} args - Arguments to update one PerformanceResult.
     * @example
     * // Update one PerformanceResult
     * const performanceResult = await prisma.performanceResult.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PerformanceResultUpdateArgs>(args: SelectSubset<T, PerformanceResultUpdateArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PerformanceResults.
     * @param {PerformanceResultDeleteManyArgs} args - Arguments to filter PerformanceResults to delete.
     * @example
     * // Delete a few PerformanceResults
     * const { count } = await prisma.performanceResult.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PerformanceResultDeleteManyArgs>(args?: SelectSubset<T, PerformanceResultDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PerformanceResults.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PerformanceResultUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PerformanceResults
     * const performanceResult = await prisma.performanceResult.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PerformanceResultUpdateManyArgs>(args: SelectSubset<T, PerformanceResultUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PerformanceResults and returns the data updated in the database.
     * @param {PerformanceResultUpdateManyAndReturnArgs} args - Arguments to update many PerformanceResults.
     * @example
     * // Update many PerformanceResults
     * const performanceResult = await prisma.performanceResult.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PerformanceResults and only return the `id`
     * const performanceResultWithIdOnly = await prisma.performanceResult.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 PerformanceResultUpdateManyAndReturnArgs>(args: SelectSubset<T, PerformanceResultUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PerformanceResult.
     * @param {PerformanceResultUpsertArgs} args - Arguments to update or create a PerformanceResult.
     * @example
     * // Update or create a PerformanceResult
     * const performanceResult = await prisma.performanceResult.upsert({
     *   create: {
     *     // ... data to create a PerformanceResult
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PerformanceResult we want to update
     *   }
     * })
     */
    upsert<T extends PerformanceResultUpsertArgs>(args: SelectSubset<T, PerformanceResultUpsertArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PerformanceResults.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PerformanceResultCountArgs} args - Arguments to filter PerformanceResults to count.
     * @example
     * // Count the number of PerformanceResults
     * const count = await prisma.performanceResult.count({
     *   where: {
     *     // ... the filter for the PerformanceResults we want to count
     *   }
     * })
    **/
    count<T extends PerformanceResultCountArgs>(
      args?: Subset<T, PerformanceResultCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PerformanceResultCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PerformanceResult.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PerformanceResultAggregateArgs} 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 PerformanceResultAggregateArgs>(args: Subset<T, PerformanceResultAggregateArgs>): Prisma.PrismaPromise<GetPerformanceResultAggregateType<T>>

    /**
     * Group by PerformanceResult.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PerformanceResultGroupByArgs} 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 PerformanceResultGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PerformanceResultGroupByArgs['orderBy'] }
        : { orderBy?: PerformanceResultGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PerformanceResultGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPerformanceResultGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PerformanceResult model
   */
  readonly fields: PerformanceResultFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PerformanceResult.
   * 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__PerformanceResultClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    cycle<T extends PerformanceCycleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycleDefaultArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    organization<T extends OrganizationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, OrganizationDefaultArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    adjustmentLogs<T extends PerformanceResult$adjustmentLogsArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceResult$adjustmentLogsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PerformanceResult model
   */
  interface PerformanceResultFieldRefs {
    readonly id: FieldRef<"PerformanceResult", 'String'>
    readonly cycleId: FieldRef<"PerformanceResult", 'String'>
    readonly employeeId: FieldRef<"PerformanceResult", 'String'>
    readonly kpiScore: FieldRef<"PerformanceResult", 'Decimal'>
    readonly kpiWeight: FieldRef<"PerformanceResult", 'Decimal'>
    readonly e360Score: FieldRef<"PerformanceResult", 'Decimal'>
    readonly e360Weight: FieldRef<"PerformanceResult", 'Decimal'>
    readonly totalScore: FieldRef<"PerformanceResult", 'Decimal'>
    readonly proposedGradeCode: FieldRef<"PerformanceResult", 'String'>
    readonly proposedGradeName: FieldRef<"PerformanceResult", 'String'>
    readonly gradeCode: FieldRef<"PerformanceResult", 'String'>
    readonly gradeName: FieldRef<"PerformanceResult", 'String'>
    readonly isPublished: FieldRef<"PerformanceResult", 'Boolean'>
    readonly publishedAt: FieldRef<"PerformanceResult", 'DateTime'>
    readonly viewedByEmployee: FieldRef<"PerformanceResult", 'Boolean'>
    readonly viewedAt: FieldRef<"PerformanceResult", 'DateTime'>
    readonly confirmStatus: FieldRef<"PerformanceResult", 'ResultConfirmStatus'>
    readonly appealReason: FieldRef<"PerformanceResult", 'String'>
    readonly appealResponse: FieldRef<"PerformanceResult", 'String'>
    readonly appealResolvedAt: FieldRef<"PerformanceResult", 'DateTime'>
    readonly selfOverallComment: FieldRef<"PerformanceResult", 'String'>
    readonly managerOverallComment: FieldRef<"PerformanceResult", 'String'>
    readonly remarks: FieldRef<"PerformanceResult", 'String'>
    readonly createdAt: FieldRef<"PerformanceResult", 'DateTime'>
    readonly updatedAt: FieldRef<"PerformanceResult", 'DateTime'>
    readonly deletedAt: FieldRef<"PerformanceResult", 'DateTime'>
    readonly organizationId: FieldRef<"PerformanceResult", 'String'>
  }
    

  // Custom InputTypes
  /**
   * PerformanceResult findUnique
   */
  export type PerformanceResultFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceResult to fetch.
     */
    where: PerformanceResultWhereUniqueInput
  }

  /**
   * PerformanceResult findUniqueOrThrow
   */
  export type PerformanceResultFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceResult to fetch.
     */
    where: PerformanceResultWhereUniqueInput
  }

  /**
   * PerformanceResult findFirst
   */
  export type PerformanceResultFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceResult to fetch.
     */
    where?: PerformanceResultWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PerformanceResults to fetch.
     */
    orderBy?: PerformanceResultOrderByWithRelationInput | PerformanceResultOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PerformanceResults.
     */
    cursor?: PerformanceResultWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PerformanceResults 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` PerformanceResults.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PerformanceResults.
     */
    distinct?: PerformanceResultScalarFieldEnum | PerformanceResultScalarFieldEnum[]
  }

  /**
   * PerformanceResult findFirstOrThrow
   */
  export type PerformanceResultFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceResult to fetch.
     */
    where?: PerformanceResultWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PerformanceResults to fetch.
     */
    orderBy?: PerformanceResultOrderByWithRelationInput | PerformanceResultOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PerformanceResults.
     */
    cursor?: PerformanceResultWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PerformanceResults 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` PerformanceResults.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PerformanceResults.
     */
    distinct?: PerformanceResultScalarFieldEnum | PerformanceResultScalarFieldEnum[]
  }

  /**
   * PerformanceResult findMany
   */
  export type PerformanceResultFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * Filter, which PerformanceResults to fetch.
     */
    where?: PerformanceResultWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PerformanceResults to fetch.
     */
    orderBy?: PerformanceResultOrderByWithRelationInput | PerformanceResultOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PerformanceResults.
     */
    cursor?: PerformanceResultWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PerformanceResults 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` PerformanceResults.
     */
    skip?: number
    distinct?: PerformanceResultScalarFieldEnum | PerformanceResultScalarFieldEnum[]
  }

  /**
   * PerformanceResult create
   */
  export type PerformanceResultCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * The data needed to create a PerformanceResult.
     */
    data: XOR<PerformanceResultCreateInput, PerformanceResultUncheckedCreateInput>
  }

  /**
   * PerformanceResult createMany
   */
  export type PerformanceResultCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PerformanceResults.
     */
    data: PerformanceResultCreateManyInput | PerformanceResultCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PerformanceResult createManyAndReturn
   */
  export type PerformanceResultCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * The data used to create many PerformanceResults.
     */
    data: PerformanceResultCreateManyInput | PerformanceResultCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PerformanceResult update
   */
  export type PerformanceResultUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * The data needed to update a PerformanceResult.
     */
    data: XOR<PerformanceResultUpdateInput, PerformanceResultUncheckedUpdateInput>
    /**
     * Choose, which PerformanceResult to update.
     */
    where: PerformanceResultWhereUniqueInput
  }

  /**
   * PerformanceResult updateMany
   */
  export type PerformanceResultUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PerformanceResults.
     */
    data: XOR<PerformanceResultUpdateManyMutationInput, PerformanceResultUncheckedUpdateManyInput>
    /**
     * Filter which PerformanceResults to update
     */
    where?: PerformanceResultWhereInput
    /**
     * Limit how many PerformanceResults to update.
     */
    limit?: number
  }

  /**
   * PerformanceResult updateManyAndReturn
   */
  export type PerformanceResultUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * The data used to update PerformanceResults.
     */
    data: XOR<PerformanceResultUpdateManyMutationInput, PerformanceResultUncheckedUpdateManyInput>
    /**
     * Filter which PerformanceResults to update
     */
    where?: PerformanceResultWhereInput
    /**
     * Limit how many PerformanceResults to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PerformanceResult upsert
   */
  export type PerformanceResultUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * The filter to search for the PerformanceResult to update in case it exists.
     */
    where: PerformanceResultWhereUniqueInput
    /**
     * In case the PerformanceResult found by the `where` argument doesn't exist, create a new PerformanceResult with this data.
     */
    create: XOR<PerformanceResultCreateInput, PerformanceResultUncheckedCreateInput>
    /**
     * In case the PerformanceResult was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PerformanceResultUpdateInput, PerformanceResultUncheckedUpdateInput>
  }

  /**
   * PerformanceResult delete
   */
  export type PerformanceResultDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
    /**
     * Filter which PerformanceResult to delete.
     */
    where: PerformanceResultWhereUniqueInput
  }

  /**
   * PerformanceResult deleteMany
   */
  export type PerformanceResultDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PerformanceResults to delete
     */
    where?: PerformanceResultWhereInput
    /**
     * Limit how many PerformanceResults to delete.
     */
    limit?: number
  }

  /**
   * PerformanceResult.adjustmentLogs
   */
  export type PerformanceResult$adjustmentLogsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    where?: GradeAdjustmentLogWhereInput
    orderBy?: GradeAdjustmentLogOrderByWithRelationInput | GradeAdjustmentLogOrderByWithRelationInput[]
    cursor?: GradeAdjustmentLogWhereUniqueInput
    take?: number
    skip?: number
    distinct?: GradeAdjustmentLogScalarFieldEnum | GradeAdjustmentLogScalarFieldEnum[]
  }

  /**
   * PerformanceResult without action
   */
  export type PerformanceResultDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceResult
     */
    select?: PerformanceResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceResult
     */
    omit?: PerformanceResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceResultInclude<ExtArgs> | null
  }


  /**
   * Model KpiAssignment
   */

  export type AggregateKpiAssignment = {
    _count: KpiAssignmentCountAggregateOutputType | null
    _avg: KpiAssignmentAvgAggregateOutputType | null
    _sum: KpiAssignmentSumAggregateOutputType | null
    _min: KpiAssignmentMinAggregateOutputType | null
    _max: KpiAssignmentMaxAggregateOutputType | null
  }

  export type KpiAssignmentAvgAggregateOutputType = {
    weight: Decimal | null
    targetValue: Decimal | null
    seq: number | null
    maturityScore: Decimal | null
  }

  export type KpiAssignmentSumAggregateOutputType = {
    weight: Decimal | null
    targetValue: Decimal | null
    seq: number | null
    maturityScore: Decimal | null
  }

  export type KpiAssignmentMinAggregateOutputType = {
    id: string | null
    cycleId: string | null
    employeeId: string | null
    name: string | null
    description: string | null
    weight: Decimal | null
    unit: string | null
    baseTarget: string | null
    stretchTarget: string | null
    targetValue: Decimal | null
    parentId: string | null
    seq: number | null
    status: $Enums.KpiAssignmentStatus | null
    maturityScore: Decimal | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type KpiAssignmentMaxAggregateOutputType = {
    id: string | null
    cycleId: string | null
    employeeId: string | null
    name: string | null
    description: string | null
    weight: Decimal | null
    unit: string | null
    baseTarget: string | null
    stretchTarget: string | null
    targetValue: Decimal | null
    parentId: string | null
    seq: number | null
    status: $Enums.KpiAssignmentStatus | null
    maturityScore: Decimal | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type KpiAssignmentCountAggregateOutputType = {
    id: number
    cycleId: number
    employeeId: number
    name: number
    description: number
    weight: number
    unit: number
    baseTarget: number
    stretchTarget: number
    targetValue: number
    parentId: number
    seq: number
    status: number
    maturityScore: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type KpiAssignmentAvgAggregateInputType = {
    weight?: true
    targetValue?: true
    seq?: true
    maturityScore?: true
  }

  export type KpiAssignmentSumAggregateInputType = {
    weight?: true
    targetValue?: true
    seq?: true
    maturityScore?: true
  }

  export type KpiAssignmentMinAggregateInputType = {
    id?: true
    cycleId?: true
    employeeId?: true
    name?: true
    description?: true
    weight?: true
    unit?: true
    baseTarget?: true
    stretchTarget?: true
    targetValue?: true
    parentId?: true
    seq?: true
    status?: true
    maturityScore?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type KpiAssignmentMaxAggregateInputType = {
    id?: true
    cycleId?: true
    employeeId?: true
    name?: true
    description?: true
    weight?: true
    unit?: true
    baseTarget?: true
    stretchTarget?: true
    targetValue?: true
    parentId?: true
    seq?: true
    status?: true
    maturityScore?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type KpiAssignmentCountAggregateInputType = {
    id?: true
    cycleId?: true
    employeeId?: true
    name?: true
    description?: true
    weight?: true
    unit?: true
    baseTarget?: true
    stretchTarget?: true
    targetValue?: true
    parentId?: true
    seq?: true
    status?: true
    maturityScore?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type KpiAssignmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which KpiAssignment to aggregate.
     */
    where?: KpiAssignmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiAssignments to fetch.
     */
    orderBy?: KpiAssignmentOrderByWithRelationInput | KpiAssignmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: KpiAssignmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiAssignments 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` KpiAssignments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned KpiAssignments
    **/
    _count?: true | KpiAssignmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: KpiAssignmentAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: KpiAssignmentSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: KpiAssignmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: KpiAssignmentMaxAggregateInputType
  }

  export type GetKpiAssignmentAggregateType<T extends KpiAssignmentAggregateArgs> = {
        [P in keyof T & keyof AggregateKpiAssignment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateKpiAssignment[P]>
      : GetScalarType<T[P], AggregateKpiAssignment[P]>
  }




  export type KpiAssignmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: KpiAssignmentWhereInput
    orderBy?: KpiAssignmentOrderByWithAggregationInput | KpiAssignmentOrderByWithAggregationInput[]
    by: KpiAssignmentScalarFieldEnum[] | KpiAssignmentScalarFieldEnum
    having?: KpiAssignmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: KpiAssignmentCountAggregateInputType | true
    _avg?: KpiAssignmentAvgAggregateInputType
    _sum?: KpiAssignmentSumAggregateInputType
    _min?: KpiAssignmentMinAggregateInputType
    _max?: KpiAssignmentMaxAggregateInputType
  }

  export type KpiAssignmentGroupByOutputType = {
    id: string
    cycleId: string
    employeeId: string
    name: string
    description: string | null
    weight: Decimal
    unit: string | null
    baseTarget: string | null
    stretchTarget: string | null
    targetValue: Decimal | null
    parentId: string | null
    seq: number | null
    status: $Enums.KpiAssignmentStatus
    maturityScore: Decimal | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: KpiAssignmentCountAggregateOutputType | null
    _avg: KpiAssignmentAvgAggregateOutputType | null
    _sum: KpiAssignmentSumAggregateOutputType | null
    _min: KpiAssignmentMinAggregateOutputType | null
    _max: KpiAssignmentMaxAggregateOutputType | null
  }

  type GetKpiAssignmentGroupByPayload<T extends KpiAssignmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<KpiAssignmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof KpiAssignmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], KpiAssignmentGroupByOutputType[P]>
            : GetScalarType<T[P], KpiAssignmentGroupByOutputType[P]>
        }
      >
    >


  export type KpiAssignmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    employeeId?: boolean
    name?: boolean
    description?: boolean
    weight?: boolean
    unit?: boolean
    baseTarget?: boolean
    stretchTarget?: boolean
    targetValue?: boolean
    parentId?: boolean
    seq?: boolean
    status?: boolean
    maturityScore?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    parent?: boolean | KpiAssignment$parentArgs<ExtArgs>
    children?: boolean | KpiAssignment$childrenArgs<ExtArgs>
    assessment?: boolean | KpiAssignment$assessmentArgs<ExtArgs>
    outgoingDependencies?: boolean | KpiAssignment$outgoingDependenciesArgs<ExtArgs>
    incomingDependencies?: boolean | KpiAssignment$incomingDependenciesArgs<ExtArgs>
    _count?: boolean | KpiAssignmentCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["kpiAssignment"]>

  export type KpiAssignmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    employeeId?: boolean
    name?: boolean
    description?: boolean
    weight?: boolean
    unit?: boolean
    baseTarget?: boolean
    stretchTarget?: boolean
    targetValue?: boolean
    parentId?: boolean
    seq?: boolean
    status?: boolean
    maturityScore?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    parent?: boolean | KpiAssignment$parentArgs<ExtArgs>
  }, ExtArgs["result"]["kpiAssignment"]>

  export type KpiAssignmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    employeeId?: boolean
    name?: boolean
    description?: boolean
    weight?: boolean
    unit?: boolean
    baseTarget?: boolean
    stretchTarget?: boolean
    targetValue?: boolean
    parentId?: boolean
    seq?: boolean
    status?: boolean
    maturityScore?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    parent?: boolean | KpiAssignment$parentArgs<ExtArgs>
  }, ExtArgs["result"]["kpiAssignment"]>

  export type KpiAssignmentSelectScalar = {
    id?: boolean
    cycleId?: boolean
    employeeId?: boolean
    name?: boolean
    description?: boolean
    weight?: boolean
    unit?: boolean
    baseTarget?: boolean
    stretchTarget?: boolean
    targetValue?: boolean
    parentId?: boolean
    seq?: boolean
    status?: boolean
    maturityScore?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type KpiAssignmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "cycleId" | "employeeId" | "name" | "description" | "weight" | "unit" | "baseTarget" | "stretchTarget" | "targetValue" | "parentId" | "seq" | "status" | "maturityScore" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["kpiAssignment"]>
  export type KpiAssignmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    parent?: boolean | KpiAssignment$parentArgs<ExtArgs>
    children?: boolean | KpiAssignment$childrenArgs<ExtArgs>
    assessment?: boolean | KpiAssignment$assessmentArgs<ExtArgs>
    outgoingDependencies?: boolean | KpiAssignment$outgoingDependenciesArgs<ExtArgs>
    incomingDependencies?: boolean | KpiAssignment$incomingDependenciesArgs<ExtArgs>
    _count?: boolean | KpiAssignmentCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type KpiAssignmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    parent?: boolean | KpiAssignment$parentArgs<ExtArgs>
  }
  export type KpiAssignmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    parent?: boolean | KpiAssignment$parentArgs<ExtArgs>
  }

  export type $KpiAssignmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "KpiAssignment"
    objects: {
      cycle: Prisma.$PerformanceCyclePayload<ExtArgs>
      parent: Prisma.$KpiAssignmentPayload<ExtArgs> | null
      children: Prisma.$KpiAssignmentPayload<ExtArgs>[]
      assessment: Prisma.$KpiAssessmentPayload<ExtArgs> | null
      /**
       * 该 KPI 依赖的其他 KPI（N:N，本方发起的依赖请求）
       */
      outgoingDependencies: Prisma.$KpiDependencyPayload<ExtArgs>[]
      /**
       * 其他 KPI 对本 KPI 的依赖（N:N，被依赖方）
       */
      incomingDependencies: Prisma.$KpiDependencyPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      cycleId: string
      employeeId: string
      name: string
      description: string | null
      weight: Prisma.Decimal
      unit: string | null
      baseTarget: string | null
      stretchTarget: string | null
      targetValue: Prisma.Decimal | null
      parentId: string | null
      seq: number | null
      status: $Enums.KpiAssignmentStatus
      maturityScore: Prisma.Decimal | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["kpiAssignment"]>
    composites: {}
  }

  type KpiAssignmentGetPayload<S extends boolean | null | undefined | KpiAssignmentDefaultArgs> = $Result.GetResult<Prisma.$KpiAssignmentPayload, S>

  type KpiAssignmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<KpiAssignmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: KpiAssignmentCountAggregateInputType | true
    }

  export interface KpiAssignmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['KpiAssignment'], meta: { name: 'KpiAssignment' } }
    /**
     * Find zero or one KpiAssignment that matches the filter.
     * @param {KpiAssignmentFindUniqueArgs} args - Arguments to find a KpiAssignment
     * @example
     * // Get one KpiAssignment
     * const kpiAssignment = await prisma.kpiAssignment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends KpiAssignmentFindUniqueArgs>(args: SelectSubset<T, KpiAssignmentFindUniqueArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one KpiAssignment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {KpiAssignmentFindUniqueOrThrowArgs} args - Arguments to find a KpiAssignment
     * @example
     * // Get one KpiAssignment
     * const kpiAssignment = await prisma.kpiAssignment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends KpiAssignmentFindUniqueOrThrowArgs>(args: SelectSubset<T, KpiAssignmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first KpiAssignment 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 {KpiAssignmentFindFirstArgs} args - Arguments to find a KpiAssignment
     * @example
     * // Get one KpiAssignment
     * const kpiAssignment = await prisma.kpiAssignment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends KpiAssignmentFindFirstArgs>(args?: SelectSubset<T, KpiAssignmentFindFirstArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first KpiAssignment 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 {KpiAssignmentFindFirstOrThrowArgs} args - Arguments to find a KpiAssignment
     * @example
     * // Get one KpiAssignment
     * const kpiAssignment = await prisma.kpiAssignment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends KpiAssignmentFindFirstOrThrowArgs>(args?: SelectSubset<T, KpiAssignmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more KpiAssignments 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 {KpiAssignmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all KpiAssignments
     * const kpiAssignments = await prisma.kpiAssignment.findMany()
     * 
     * // Get first 10 KpiAssignments
     * const kpiAssignments = await prisma.kpiAssignment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const kpiAssignmentWithIdOnly = await prisma.kpiAssignment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends KpiAssignmentFindManyArgs>(args?: SelectSubset<T, KpiAssignmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a KpiAssignment.
     * @param {KpiAssignmentCreateArgs} args - Arguments to create a KpiAssignment.
     * @example
     * // Create one KpiAssignment
     * const KpiAssignment = await prisma.kpiAssignment.create({
     *   data: {
     *     // ... data to create a KpiAssignment
     *   }
     * })
     * 
     */
    create<T extends KpiAssignmentCreateArgs>(args: SelectSubset<T, KpiAssignmentCreateArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many KpiAssignments.
     * @param {KpiAssignmentCreateManyArgs} args - Arguments to create many KpiAssignments.
     * @example
     * // Create many KpiAssignments
     * const kpiAssignment = await prisma.kpiAssignment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends KpiAssignmentCreateManyArgs>(args?: SelectSubset<T, KpiAssignmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many KpiAssignments and returns the data saved in the database.
     * @param {KpiAssignmentCreateManyAndReturnArgs} args - Arguments to create many KpiAssignments.
     * @example
     * // Create many KpiAssignments
     * const kpiAssignment = await prisma.kpiAssignment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many KpiAssignments and only return the `id`
     * const kpiAssignmentWithIdOnly = await prisma.kpiAssignment.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 KpiAssignmentCreateManyAndReturnArgs>(args?: SelectSubset<T, KpiAssignmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a KpiAssignment.
     * @param {KpiAssignmentDeleteArgs} args - Arguments to delete one KpiAssignment.
     * @example
     * // Delete one KpiAssignment
     * const KpiAssignment = await prisma.kpiAssignment.delete({
     *   where: {
     *     // ... filter to delete one KpiAssignment
     *   }
     * })
     * 
     */
    delete<T extends KpiAssignmentDeleteArgs>(args: SelectSubset<T, KpiAssignmentDeleteArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one KpiAssignment.
     * @param {KpiAssignmentUpdateArgs} args - Arguments to update one KpiAssignment.
     * @example
     * // Update one KpiAssignment
     * const kpiAssignment = await prisma.kpiAssignment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends KpiAssignmentUpdateArgs>(args: SelectSubset<T, KpiAssignmentUpdateArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more KpiAssignments.
     * @param {KpiAssignmentDeleteManyArgs} args - Arguments to filter KpiAssignments to delete.
     * @example
     * // Delete a few KpiAssignments
     * const { count } = await prisma.kpiAssignment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends KpiAssignmentDeleteManyArgs>(args?: SelectSubset<T, KpiAssignmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more KpiAssignments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiAssignmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many KpiAssignments
     * const kpiAssignment = await prisma.kpiAssignment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends KpiAssignmentUpdateManyArgs>(args: SelectSubset<T, KpiAssignmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more KpiAssignments and returns the data updated in the database.
     * @param {KpiAssignmentUpdateManyAndReturnArgs} args - Arguments to update many KpiAssignments.
     * @example
     * // Update many KpiAssignments
     * const kpiAssignment = await prisma.kpiAssignment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more KpiAssignments and only return the `id`
     * const kpiAssignmentWithIdOnly = await prisma.kpiAssignment.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 KpiAssignmentUpdateManyAndReturnArgs>(args: SelectSubset<T, KpiAssignmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one KpiAssignment.
     * @param {KpiAssignmentUpsertArgs} args - Arguments to update or create a KpiAssignment.
     * @example
     * // Update or create a KpiAssignment
     * const kpiAssignment = await prisma.kpiAssignment.upsert({
     *   create: {
     *     // ... data to create a KpiAssignment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the KpiAssignment we want to update
     *   }
     * })
     */
    upsert<T extends KpiAssignmentUpsertArgs>(args: SelectSubset<T, KpiAssignmentUpsertArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of KpiAssignments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiAssignmentCountArgs} args - Arguments to filter KpiAssignments to count.
     * @example
     * // Count the number of KpiAssignments
     * const count = await prisma.kpiAssignment.count({
     *   where: {
     *     // ... the filter for the KpiAssignments we want to count
     *   }
     * })
    **/
    count<T extends KpiAssignmentCountArgs>(
      args?: Subset<T, KpiAssignmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], KpiAssignmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a KpiAssignment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiAssignmentAggregateArgs} 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 KpiAssignmentAggregateArgs>(args: Subset<T, KpiAssignmentAggregateArgs>): Prisma.PrismaPromise<GetKpiAssignmentAggregateType<T>>

    /**
     * Group by KpiAssignment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiAssignmentGroupByArgs} 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 KpiAssignmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: KpiAssignmentGroupByArgs['orderBy'] }
        : { orderBy?: KpiAssignmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, KpiAssignmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetKpiAssignmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the KpiAssignment model
   */
  readonly fields: KpiAssignmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for KpiAssignment.
   * 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__KpiAssignmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    cycle<T extends PerformanceCycleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycleDefaultArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    parent<T extends KpiAssignment$parentArgs<ExtArgs> = {}>(args?: Subset<T, KpiAssignment$parentArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    children<T extends KpiAssignment$childrenArgs<ExtArgs> = {}>(args?: Subset<T, KpiAssignment$childrenArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    assessment<T extends KpiAssignment$assessmentArgs<ExtArgs> = {}>(args?: Subset<T, KpiAssignment$assessmentArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    outgoingDependencies<T extends KpiAssignment$outgoingDependenciesArgs<ExtArgs> = {}>(args?: Subset<T, KpiAssignment$outgoingDependenciesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    incomingDependencies<T extends KpiAssignment$incomingDependenciesArgs<ExtArgs> = {}>(args?: Subset<T, KpiAssignment$incomingDependenciesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the KpiAssignment model
   */
  interface KpiAssignmentFieldRefs {
    readonly id: FieldRef<"KpiAssignment", 'String'>
    readonly cycleId: FieldRef<"KpiAssignment", 'String'>
    readonly employeeId: FieldRef<"KpiAssignment", 'String'>
    readonly name: FieldRef<"KpiAssignment", 'String'>
    readonly description: FieldRef<"KpiAssignment", 'String'>
    readonly weight: FieldRef<"KpiAssignment", 'Decimal'>
    readonly unit: FieldRef<"KpiAssignment", 'String'>
    readonly baseTarget: FieldRef<"KpiAssignment", 'String'>
    readonly stretchTarget: FieldRef<"KpiAssignment", 'String'>
    readonly targetValue: FieldRef<"KpiAssignment", 'Decimal'>
    readonly parentId: FieldRef<"KpiAssignment", 'String'>
    readonly seq: FieldRef<"KpiAssignment", 'Int'>
    readonly status: FieldRef<"KpiAssignment", 'KpiAssignmentStatus'>
    readonly maturityScore: FieldRef<"KpiAssignment", 'Decimal'>
    readonly createdAt: FieldRef<"KpiAssignment", 'DateTime'>
    readonly updatedAt: FieldRef<"KpiAssignment", 'DateTime'>
    readonly deletedAt: FieldRef<"KpiAssignment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * KpiAssignment findUnique
   */
  export type KpiAssignmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssignment to fetch.
     */
    where: KpiAssignmentWhereUniqueInput
  }

  /**
   * KpiAssignment findUniqueOrThrow
   */
  export type KpiAssignmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssignment to fetch.
     */
    where: KpiAssignmentWhereUniqueInput
  }

  /**
   * KpiAssignment findFirst
   */
  export type KpiAssignmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssignment to fetch.
     */
    where?: KpiAssignmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiAssignments to fetch.
     */
    orderBy?: KpiAssignmentOrderByWithRelationInput | KpiAssignmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for KpiAssignments.
     */
    cursor?: KpiAssignmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiAssignments 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` KpiAssignments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of KpiAssignments.
     */
    distinct?: KpiAssignmentScalarFieldEnum | KpiAssignmentScalarFieldEnum[]
  }

  /**
   * KpiAssignment findFirstOrThrow
   */
  export type KpiAssignmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssignment to fetch.
     */
    where?: KpiAssignmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiAssignments to fetch.
     */
    orderBy?: KpiAssignmentOrderByWithRelationInput | KpiAssignmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for KpiAssignments.
     */
    cursor?: KpiAssignmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiAssignments 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` KpiAssignments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of KpiAssignments.
     */
    distinct?: KpiAssignmentScalarFieldEnum | KpiAssignmentScalarFieldEnum[]
  }

  /**
   * KpiAssignment findMany
   */
  export type KpiAssignmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssignments to fetch.
     */
    where?: KpiAssignmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiAssignments to fetch.
     */
    orderBy?: KpiAssignmentOrderByWithRelationInput | KpiAssignmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing KpiAssignments.
     */
    cursor?: KpiAssignmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiAssignments 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` KpiAssignments.
     */
    skip?: number
    distinct?: KpiAssignmentScalarFieldEnum | KpiAssignmentScalarFieldEnum[]
  }

  /**
   * KpiAssignment create
   */
  export type KpiAssignmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * The data needed to create a KpiAssignment.
     */
    data: XOR<KpiAssignmentCreateInput, KpiAssignmentUncheckedCreateInput>
  }

  /**
   * KpiAssignment createMany
   */
  export type KpiAssignmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many KpiAssignments.
     */
    data: KpiAssignmentCreateManyInput | KpiAssignmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * KpiAssignment createManyAndReturn
   */
  export type KpiAssignmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * The data used to create many KpiAssignments.
     */
    data: KpiAssignmentCreateManyInput | KpiAssignmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * KpiAssignment update
   */
  export type KpiAssignmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * The data needed to update a KpiAssignment.
     */
    data: XOR<KpiAssignmentUpdateInput, KpiAssignmentUncheckedUpdateInput>
    /**
     * Choose, which KpiAssignment to update.
     */
    where: KpiAssignmentWhereUniqueInput
  }

  /**
   * KpiAssignment updateMany
   */
  export type KpiAssignmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update KpiAssignments.
     */
    data: XOR<KpiAssignmentUpdateManyMutationInput, KpiAssignmentUncheckedUpdateManyInput>
    /**
     * Filter which KpiAssignments to update
     */
    where?: KpiAssignmentWhereInput
    /**
     * Limit how many KpiAssignments to update.
     */
    limit?: number
  }

  /**
   * KpiAssignment updateManyAndReturn
   */
  export type KpiAssignmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * The data used to update KpiAssignments.
     */
    data: XOR<KpiAssignmentUpdateManyMutationInput, KpiAssignmentUncheckedUpdateManyInput>
    /**
     * Filter which KpiAssignments to update
     */
    where?: KpiAssignmentWhereInput
    /**
     * Limit how many KpiAssignments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * KpiAssignment upsert
   */
  export type KpiAssignmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * The filter to search for the KpiAssignment to update in case it exists.
     */
    where: KpiAssignmentWhereUniqueInput
    /**
     * In case the KpiAssignment found by the `where` argument doesn't exist, create a new KpiAssignment with this data.
     */
    create: XOR<KpiAssignmentCreateInput, KpiAssignmentUncheckedCreateInput>
    /**
     * In case the KpiAssignment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<KpiAssignmentUpdateInput, KpiAssignmentUncheckedUpdateInput>
  }

  /**
   * KpiAssignment delete
   */
  export type KpiAssignmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    /**
     * Filter which KpiAssignment to delete.
     */
    where: KpiAssignmentWhereUniqueInput
  }

  /**
   * KpiAssignment deleteMany
   */
  export type KpiAssignmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which KpiAssignments to delete
     */
    where?: KpiAssignmentWhereInput
    /**
     * Limit how many KpiAssignments to delete.
     */
    limit?: number
  }

  /**
   * KpiAssignment.parent
   */
  export type KpiAssignment$parentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    where?: KpiAssignmentWhereInput
  }

  /**
   * KpiAssignment.children
   */
  export type KpiAssignment$childrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    where?: KpiAssignmentWhereInput
    orderBy?: KpiAssignmentOrderByWithRelationInput | KpiAssignmentOrderByWithRelationInput[]
    cursor?: KpiAssignmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: KpiAssignmentScalarFieldEnum | KpiAssignmentScalarFieldEnum[]
  }

  /**
   * KpiAssignment.assessment
   */
  export type KpiAssignment$assessmentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    where?: KpiAssessmentWhereInput
  }

  /**
   * KpiAssignment.outgoingDependencies
   */
  export type KpiAssignment$outgoingDependenciesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    where?: KpiDependencyWhereInput
    orderBy?: KpiDependencyOrderByWithRelationInput | KpiDependencyOrderByWithRelationInput[]
    cursor?: KpiDependencyWhereUniqueInput
    take?: number
    skip?: number
    distinct?: KpiDependencyScalarFieldEnum | KpiDependencyScalarFieldEnum[]
  }

  /**
   * KpiAssignment.incomingDependencies
   */
  export type KpiAssignment$incomingDependenciesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    where?: KpiDependencyWhereInput
    orderBy?: KpiDependencyOrderByWithRelationInput | KpiDependencyOrderByWithRelationInput[]
    cursor?: KpiDependencyWhereUniqueInput
    take?: number
    skip?: number
    distinct?: KpiDependencyScalarFieldEnum | KpiDependencyScalarFieldEnum[]
  }

  /**
   * KpiAssignment without action
   */
  export type KpiAssignmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
  }


  /**
   * Model KpiDependency
   */

  export type AggregateKpiDependency = {
    _count: KpiDependencyCountAggregateOutputType | null
    _min: KpiDependencyMinAggregateOutputType | null
    _max: KpiDependencyMaxAggregateOutputType | null
  }

  export type KpiDependencyMinAggregateOutputType = {
    id: string | null
    sourceAssignmentId: string | null
    targetAssignmentId: string | null
    targetUserId: string | null
    description: string | null
    status: $Enums.KpiDependencyStatus | null
    rejectionReason: string | null
    confirmedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type KpiDependencyMaxAggregateOutputType = {
    id: string | null
    sourceAssignmentId: string | null
    targetAssignmentId: string | null
    targetUserId: string | null
    description: string | null
    status: $Enums.KpiDependencyStatus | null
    rejectionReason: string | null
    confirmedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type KpiDependencyCountAggregateOutputType = {
    id: number
    sourceAssignmentId: number
    targetAssignmentId: number
    targetUserId: number
    description: number
    status: number
    rejectionReason: number
    confirmedAt: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type KpiDependencyMinAggregateInputType = {
    id?: true
    sourceAssignmentId?: true
    targetAssignmentId?: true
    targetUserId?: true
    description?: true
    status?: true
    rejectionReason?: true
    confirmedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type KpiDependencyMaxAggregateInputType = {
    id?: true
    sourceAssignmentId?: true
    targetAssignmentId?: true
    targetUserId?: true
    description?: true
    status?: true
    rejectionReason?: true
    confirmedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type KpiDependencyCountAggregateInputType = {
    id?: true
    sourceAssignmentId?: true
    targetAssignmentId?: true
    targetUserId?: true
    description?: true
    status?: true
    rejectionReason?: true
    confirmedAt?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type KpiDependencyAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which KpiDependency to aggregate.
     */
    where?: KpiDependencyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiDependencies to fetch.
     */
    orderBy?: KpiDependencyOrderByWithRelationInput | KpiDependencyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: KpiDependencyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiDependencies 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` KpiDependencies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned KpiDependencies
    **/
    _count?: true | KpiDependencyCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: KpiDependencyMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: KpiDependencyMaxAggregateInputType
  }

  export type GetKpiDependencyAggregateType<T extends KpiDependencyAggregateArgs> = {
        [P in keyof T & keyof AggregateKpiDependency]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateKpiDependency[P]>
      : GetScalarType<T[P], AggregateKpiDependency[P]>
  }




  export type KpiDependencyGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: KpiDependencyWhereInput
    orderBy?: KpiDependencyOrderByWithAggregationInput | KpiDependencyOrderByWithAggregationInput[]
    by: KpiDependencyScalarFieldEnum[] | KpiDependencyScalarFieldEnum
    having?: KpiDependencyScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: KpiDependencyCountAggregateInputType | true
    _min?: KpiDependencyMinAggregateInputType
    _max?: KpiDependencyMaxAggregateInputType
  }

  export type KpiDependencyGroupByOutputType = {
    id: string
    sourceAssignmentId: string
    targetAssignmentId: string | null
    targetUserId: string
    description: string | null
    status: $Enums.KpiDependencyStatus
    rejectionReason: string | null
    confirmedAt: Date | null
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: KpiDependencyCountAggregateOutputType | null
    _min: KpiDependencyMinAggregateOutputType | null
    _max: KpiDependencyMaxAggregateOutputType | null
  }

  type GetKpiDependencyGroupByPayload<T extends KpiDependencyGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<KpiDependencyGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof KpiDependencyGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], KpiDependencyGroupByOutputType[P]>
            : GetScalarType<T[P], KpiDependencyGroupByOutputType[P]>
        }
      >
    >


  export type KpiDependencySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sourceAssignmentId?: boolean
    targetAssignmentId?: boolean
    targetUserId?: boolean
    description?: boolean
    status?: boolean
    rejectionReason?: boolean
    confirmedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    sourceAssignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
    targetAssignment?: boolean | KpiDependency$targetAssignmentArgs<ExtArgs>
  }, ExtArgs["result"]["kpiDependency"]>

  export type KpiDependencySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sourceAssignmentId?: boolean
    targetAssignmentId?: boolean
    targetUserId?: boolean
    description?: boolean
    status?: boolean
    rejectionReason?: boolean
    confirmedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    sourceAssignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
    targetAssignment?: boolean | KpiDependency$targetAssignmentArgs<ExtArgs>
  }, ExtArgs["result"]["kpiDependency"]>

  export type KpiDependencySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    sourceAssignmentId?: boolean
    targetAssignmentId?: boolean
    targetUserId?: boolean
    description?: boolean
    status?: boolean
    rejectionReason?: boolean
    confirmedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    sourceAssignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
    targetAssignment?: boolean | KpiDependency$targetAssignmentArgs<ExtArgs>
  }, ExtArgs["result"]["kpiDependency"]>

  export type KpiDependencySelectScalar = {
    id?: boolean
    sourceAssignmentId?: boolean
    targetAssignmentId?: boolean
    targetUserId?: boolean
    description?: boolean
    status?: boolean
    rejectionReason?: boolean
    confirmedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type KpiDependencyOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "sourceAssignmentId" | "targetAssignmentId" | "targetUserId" | "description" | "status" | "rejectionReason" | "confirmedAt" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["kpiDependency"]>
  export type KpiDependencyInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    sourceAssignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
    targetAssignment?: boolean | KpiDependency$targetAssignmentArgs<ExtArgs>
  }
  export type KpiDependencyIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    sourceAssignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
    targetAssignment?: boolean | KpiDependency$targetAssignmentArgs<ExtArgs>
  }
  export type KpiDependencyIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    sourceAssignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
    targetAssignment?: boolean | KpiDependency$targetAssignmentArgs<ExtArgs>
  }

  export type $KpiDependencyPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "KpiDependency"
    objects: {
      sourceAssignment: Prisma.$KpiAssignmentPayload<ExtArgs>
      targetAssignment: Prisma.$KpiAssignmentPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      /**
       * 发起依赖的 KPI
       */
      sourceAssignmentId: string
      /**
       * 被依赖的 KPI（可选，被依赖方可能尚未创建对应 KPI）
       */
      targetAssignmentId: string | null
      /**
       * 被依赖的用户（始终有值，即使对方还没创建 KPI）
       */
      targetUserId: string
      description: string | null
      status: $Enums.KpiDependencyStatus
      rejectionReason: string | null
      confirmedAt: Date | null
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["kpiDependency"]>
    composites: {}
  }

  type KpiDependencyGetPayload<S extends boolean | null | undefined | KpiDependencyDefaultArgs> = $Result.GetResult<Prisma.$KpiDependencyPayload, S>

  type KpiDependencyCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<KpiDependencyFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: KpiDependencyCountAggregateInputType | true
    }

  export interface KpiDependencyDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['KpiDependency'], meta: { name: 'KpiDependency' } }
    /**
     * Find zero or one KpiDependency that matches the filter.
     * @param {KpiDependencyFindUniqueArgs} args - Arguments to find a KpiDependency
     * @example
     * // Get one KpiDependency
     * const kpiDependency = await prisma.kpiDependency.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends KpiDependencyFindUniqueArgs>(args: SelectSubset<T, KpiDependencyFindUniqueArgs<ExtArgs>>): Prisma__KpiDependencyClient<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one KpiDependency that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {KpiDependencyFindUniqueOrThrowArgs} args - Arguments to find a KpiDependency
     * @example
     * // Get one KpiDependency
     * const kpiDependency = await prisma.kpiDependency.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends KpiDependencyFindUniqueOrThrowArgs>(args: SelectSubset<T, KpiDependencyFindUniqueOrThrowArgs<ExtArgs>>): Prisma__KpiDependencyClient<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first KpiDependency 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 {KpiDependencyFindFirstArgs} args - Arguments to find a KpiDependency
     * @example
     * // Get one KpiDependency
     * const kpiDependency = await prisma.kpiDependency.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends KpiDependencyFindFirstArgs>(args?: SelectSubset<T, KpiDependencyFindFirstArgs<ExtArgs>>): Prisma__KpiDependencyClient<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first KpiDependency 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 {KpiDependencyFindFirstOrThrowArgs} args - Arguments to find a KpiDependency
     * @example
     * // Get one KpiDependency
     * const kpiDependency = await prisma.kpiDependency.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends KpiDependencyFindFirstOrThrowArgs>(args?: SelectSubset<T, KpiDependencyFindFirstOrThrowArgs<ExtArgs>>): Prisma__KpiDependencyClient<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more KpiDependencies 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 {KpiDependencyFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all KpiDependencies
     * const kpiDependencies = await prisma.kpiDependency.findMany()
     * 
     * // Get first 10 KpiDependencies
     * const kpiDependencies = await prisma.kpiDependency.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const kpiDependencyWithIdOnly = await prisma.kpiDependency.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends KpiDependencyFindManyArgs>(args?: SelectSubset<T, KpiDependencyFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a KpiDependency.
     * @param {KpiDependencyCreateArgs} args - Arguments to create a KpiDependency.
     * @example
     * // Create one KpiDependency
     * const KpiDependency = await prisma.kpiDependency.create({
     *   data: {
     *     // ... data to create a KpiDependency
     *   }
     * })
     * 
     */
    create<T extends KpiDependencyCreateArgs>(args: SelectSubset<T, KpiDependencyCreateArgs<ExtArgs>>): Prisma__KpiDependencyClient<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many KpiDependencies.
     * @param {KpiDependencyCreateManyArgs} args - Arguments to create many KpiDependencies.
     * @example
     * // Create many KpiDependencies
     * const kpiDependency = await prisma.kpiDependency.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends KpiDependencyCreateManyArgs>(args?: SelectSubset<T, KpiDependencyCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many KpiDependencies and returns the data saved in the database.
     * @param {KpiDependencyCreateManyAndReturnArgs} args - Arguments to create many KpiDependencies.
     * @example
     * // Create many KpiDependencies
     * const kpiDependency = await prisma.kpiDependency.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many KpiDependencies and only return the `id`
     * const kpiDependencyWithIdOnly = await prisma.kpiDependency.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 KpiDependencyCreateManyAndReturnArgs>(args?: SelectSubset<T, KpiDependencyCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a KpiDependency.
     * @param {KpiDependencyDeleteArgs} args - Arguments to delete one KpiDependency.
     * @example
     * // Delete one KpiDependency
     * const KpiDependency = await prisma.kpiDependency.delete({
     *   where: {
     *     // ... filter to delete one KpiDependency
     *   }
     * })
     * 
     */
    delete<T extends KpiDependencyDeleteArgs>(args: SelectSubset<T, KpiDependencyDeleteArgs<ExtArgs>>): Prisma__KpiDependencyClient<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one KpiDependency.
     * @param {KpiDependencyUpdateArgs} args - Arguments to update one KpiDependency.
     * @example
     * // Update one KpiDependency
     * const kpiDependency = await prisma.kpiDependency.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends KpiDependencyUpdateArgs>(args: SelectSubset<T, KpiDependencyUpdateArgs<ExtArgs>>): Prisma__KpiDependencyClient<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more KpiDependencies.
     * @param {KpiDependencyDeleteManyArgs} args - Arguments to filter KpiDependencies to delete.
     * @example
     * // Delete a few KpiDependencies
     * const { count } = await prisma.kpiDependency.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends KpiDependencyDeleteManyArgs>(args?: SelectSubset<T, KpiDependencyDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more KpiDependencies.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiDependencyUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many KpiDependencies
     * const kpiDependency = await prisma.kpiDependency.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends KpiDependencyUpdateManyArgs>(args: SelectSubset<T, KpiDependencyUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more KpiDependencies and returns the data updated in the database.
     * @param {KpiDependencyUpdateManyAndReturnArgs} args - Arguments to update many KpiDependencies.
     * @example
     * // Update many KpiDependencies
     * const kpiDependency = await prisma.kpiDependency.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more KpiDependencies and only return the `id`
     * const kpiDependencyWithIdOnly = await prisma.kpiDependency.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 KpiDependencyUpdateManyAndReturnArgs>(args: SelectSubset<T, KpiDependencyUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one KpiDependency.
     * @param {KpiDependencyUpsertArgs} args - Arguments to update or create a KpiDependency.
     * @example
     * // Update or create a KpiDependency
     * const kpiDependency = await prisma.kpiDependency.upsert({
     *   create: {
     *     // ... data to create a KpiDependency
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the KpiDependency we want to update
     *   }
     * })
     */
    upsert<T extends KpiDependencyUpsertArgs>(args: SelectSubset<T, KpiDependencyUpsertArgs<ExtArgs>>): Prisma__KpiDependencyClient<$Result.GetResult<Prisma.$KpiDependencyPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of KpiDependencies.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiDependencyCountArgs} args - Arguments to filter KpiDependencies to count.
     * @example
     * // Count the number of KpiDependencies
     * const count = await prisma.kpiDependency.count({
     *   where: {
     *     // ... the filter for the KpiDependencies we want to count
     *   }
     * })
    **/
    count<T extends KpiDependencyCountArgs>(
      args?: Subset<T, KpiDependencyCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], KpiDependencyCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a KpiDependency.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiDependencyAggregateArgs} 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 KpiDependencyAggregateArgs>(args: Subset<T, KpiDependencyAggregateArgs>): Prisma.PrismaPromise<GetKpiDependencyAggregateType<T>>

    /**
     * Group by KpiDependency.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiDependencyGroupByArgs} 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 KpiDependencyGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: KpiDependencyGroupByArgs['orderBy'] }
        : { orderBy?: KpiDependencyGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, KpiDependencyGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetKpiDependencyGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the KpiDependency model
   */
  readonly fields: KpiDependencyFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for KpiDependency.
   * 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__KpiDependencyClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    sourceAssignment<T extends KpiAssignmentDefaultArgs<ExtArgs> = {}>(args?: Subset<T, KpiAssignmentDefaultArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    targetAssignment<T extends KpiDependency$targetAssignmentArgs<ExtArgs> = {}>(args?: Subset<T, KpiDependency$targetAssignmentArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the KpiDependency model
   */
  interface KpiDependencyFieldRefs {
    readonly id: FieldRef<"KpiDependency", 'String'>
    readonly sourceAssignmentId: FieldRef<"KpiDependency", 'String'>
    readonly targetAssignmentId: FieldRef<"KpiDependency", 'String'>
    readonly targetUserId: FieldRef<"KpiDependency", 'String'>
    readonly description: FieldRef<"KpiDependency", 'String'>
    readonly status: FieldRef<"KpiDependency", 'KpiDependencyStatus'>
    readonly rejectionReason: FieldRef<"KpiDependency", 'String'>
    readonly confirmedAt: FieldRef<"KpiDependency", 'DateTime'>
    readonly createdAt: FieldRef<"KpiDependency", 'DateTime'>
    readonly updatedAt: FieldRef<"KpiDependency", 'DateTime'>
    readonly deletedAt: FieldRef<"KpiDependency", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * KpiDependency findUnique
   */
  export type KpiDependencyFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * Filter, which KpiDependency to fetch.
     */
    where: KpiDependencyWhereUniqueInput
  }

  /**
   * KpiDependency findUniqueOrThrow
   */
  export type KpiDependencyFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * Filter, which KpiDependency to fetch.
     */
    where: KpiDependencyWhereUniqueInput
  }

  /**
   * KpiDependency findFirst
   */
  export type KpiDependencyFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * Filter, which KpiDependency to fetch.
     */
    where?: KpiDependencyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiDependencies to fetch.
     */
    orderBy?: KpiDependencyOrderByWithRelationInput | KpiDependencyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for KpiDependencies.
     */
    cursor?: KpiDependencyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiDependencies 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` KpiDependencies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of KpiDependencies.
     */
    distinct?: KpiDependencyScalarFieldEnum | KpiDependencyScalarFieldEnum[]
  }

  /**
   * KpiDependency findFirstOrThrow
   */
  export type KpiDependencyFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * Filter, which KpiDependency to fetch.
     */
    where?: KpiDependencyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiDependencies to fetch.
     */
    orderBy?: KpiDependencyOrderByWithRelationInput | KpiDependencyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for KpiDependencies.
     */
    cursor?: KpiDependencyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiDependencies 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` KpiDependencies.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of KpiDependencies.
     */
    distinct?: KpiDependencyScalarFieldEnum | KpiDependencyScalarFieldEnum[]
  }

  /**
   * KpiDependency findMany
   */
  export type KpiDependencyFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * Filter, which KpiDependencies to fetch.
     */
    where?: KpiDependencyWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiDependencies to fetch.
     */
    orderBy?: KpiDependencyOrderByWithRelationInput | KpiDependencyOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing KpiDependencies.
     */
    cursor?: KpiDependencyWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiDependencies 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` KpiDependencies.
     */
    skip?: number
    distinct?: KpiDependencyScalarFieldEnum | KpiDependencyScalarFieldEnum[]
  }

  /**
   * KpiDependency create
   */
  export type KpiDependencyCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * The data needed to create a KpiDependency.
     */
    data: XOR<KpiDependencyCreateInput, KpiDependencyUncheckedCreateInput>
  }

  /**
   * KpiDependency createMany
   */
  export type KpiDependencyCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many KpiDependencies.
     */
    data: KpiDependencyCreateManyInput | KpiDependencyCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * KpiDependency createManyAndReturn
   */
  export type KpiDependencyCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * The data used to create many KpiDependencies.
     */
    data: KpiDependencyCreateManyInput | KpiDependencyCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * KpiDependency update
   */
  export type KpiDependencyUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * The data needed to update a KpiDependency.
     */
    data: XOR<KpiDependencyUpdateInput, KpiDependencyUncheckedUpdateInput>
    /**
     * Choose, which KpiDependency to update.
     */
    where: KpiDependencyWhereUniqueInput
  }

  /**
   * KpiDependency updateMany
   */
  export type KpiDependencyUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update KpiDependencies.
     */
    data: XOR<KpiDependencyUpdateManyMutationInput, KpiDependencyUncheckedUpdateManyInput>
    /**
     * Filter which KpiDependencies to update
     */
    where?: KpiDependencyWhereInput
    /**
     * Limit how many KpiDependencies to update.
     */
    limit?: number
  }

  /**
   * KpiDependency updateManyAndReturn
   */
  export type KpiDependencyUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * The data used to update KpiDependencies.
     */
    data: XOR<KpiDependencyUpdateManyMutationInput, KpiDependencyUncheckedUpdateManyInput>
    /**
     * Filter which KpiDependencies to update
     */
    where?: KpiDependencyWhereInput
    /**
     * Limit how many KpiDependencies to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * KpiDependency upsert
   */
  export type KpiDependencyUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * The filter to search for the KpiDependency to update in case it exists.
     */
    where: KpiDependencyWhereUniqueInput
    /**
     * In case the KpiDependency found by the `where` argument doesn't exist, create a new KpiDependency with this data.
     */
    create: XOR<KpiDependencyCreateInput, KpiDependencyUncheckedCreateInput>
    /**
     * In case the KpiDependency was found with the provided `where` argument, update it with this data.
     */
    update: XOR<KpiDependencyUpdateInput, KpiDependencyUncheckedUpdateInput>
  }

  /**
   * KpiDependency delete
   */
  export type KpiDependencyDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
    /**
     * Filter which KpiDependency to delete.
     */
    where: KpiDependencyWhereUniqueInput
  }

  /**
   * KpiDependency deleteMany
   */
  export type KpiDependencyDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which KpiDependencies to delete
     */
    where?: KpiDependencyWhereInput
    /**
     * Limit how many KpiDependencies to delete.
     */
    limit?: number
  }

  /**
   * KpiDependency.targetAssignment
   */
  export type KpiDependency$targetAssignmentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssignment
     */
    select?: KpiAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssignment
     */
    omit?: KpiAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssignmentInclude<ExtArgs> | null
    where?: KpiAssignmentWhereInput
  }

  /**
   * KpiDependency without action
   */
  export type KpiDependencyDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiDependency
     */
    select?: KpiDependencySelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiDependency
     */
    omit?: KpiDependencyOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiDependencyInclude<ExtArgs> | null
  }


  /**
   * Model KpiAssessment
   */

  export type AggregateKpiAssessment = {
    _count: KpiAssessmentCountAggregateOutputType | null
    _avg: KpiAssessmentAvgAggregateOutputType | null
    _sum: KpiAssessmentSumAggregateOutputType | null
    _min: KpiAssessmentMinAggregateOutputType | null
    _max: KpiAssessmentMaxAggregateOutputType | null
  }

  export type KpiAssessmentAvgAggregateOutputType = {
    selfScore: Decimal | null
    managerScore: Decimal | null
    finalScore: Decimal | null
  }

  export type KpiAssessmentSumAggregateOutputType = {
    selfScore: Decimal | null
    managerScore: Decimal | null
    finalScore: Decimal | null
  }

  export type KpiAssessmentMinAggregateOutputType = {
    id: string | null
    assignmentId: string | null
    status: $Enums.KpiAssessmentStatus | null
    selfScore: Decimal | null
    completionNote: string | null
    selfComment: string | null
    selfEvaluatedAt: Date | null
    managerScore: Decimal | null
    managerComment: string | null
    managerId: string | null
    managerEvaluatedAt: Date | null
    finalScore: Decimal | null
    deletedAt: Date | null
  }

  export type KpiAssessmentMaxAggregateOutputType = {
    id: string | null
    assignmentId: string | null
    status: $Enums.KpiAssessmentStatus | null
    selfScore: Decimal | null
    completionNote: string | null
    selfComment: string | null
    selfEvaluatedAt: Date | null
    managerScore: Decimal | null
    managerComment: string | null
    managerId: string | null
    managerEvaluatedAt: Date | null
    finalScore: Decimal | null
    deletedAt: Date | null
  }

  export type KpiAssessmentCountAggregateOutputType = {
    id: number
    assignmentId: number
    status: number
    selfScore: number
    completionNote: number
    selfComment: number
    selfEvaluatedAt: number
    managerScore: number
    managerComment: number
    managerId: number
    managerEvaluatedAt: number
    finalScore: number
    deletedAt: number
    _all: number
  }


  export type KpiAssessmentAvgAggregateInputType = {
    selfScore?: true
    managerScore?: true
    finalScore?: true
  }

  export type KpiAssessmentSumAggregateInputType = {
    selfScore?: true
    managerScore?: true
    finalScore?: true
  }

  export type KpiAssessmentMinAggregateInputType = {
    id?: true
    assignmentId?: true
    status?: true
    selfScore?: true
    completionNote?: true
    selfComment?: true
    selfEvaluatedAt?: true
    managerScore?: true
    managerComment?: true
    managerId?: true
    managerEvaluatedAt?: true
    finalScore?: true
    deletedAt?: true
  }

  export type KpiAssessmentMaxAggregateInputType = {
    id?: true
    assignmentId?: true
    status?: true
    selfScore?: true
    completionNote?: true
    selfComment?: true
    selfEvaluatedAt?: true
    managerScore?: true
    managerComment?: true
    managerId?: true
    managerEvaluatedAt?: true
    finalScore?: true
    deletedAt?: true
  }

  export type KpiAssessmentCountAggregateInputType = {
    id?: true
    assignmentId?: true
    status?: true
    selfScore?: true
    completionNote?: true
    selfComment?: true
    selfEvaluatedAt?: true
    managerScore?: true
    managerComment?: true
    managerId?: true
    managerEvaluatedAt?: true
    finalScore?: true
    deletedAt?: true
    _all?: true
  }

  export type KpiAssessmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which KpiAssessment to aggregate.
     */
    where?: KpiAssessmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiAssessments to fetch.
     */
    orderBy?: KpiAssessmentOrderByWithRelationInput | KpiAssessmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: KpiAssessmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiAssessments 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` KpiAssessments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned KpiAssessments
    **/
    _count?: true | KpiAssessmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: KpiAssessmentAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: KpiAssessmentSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: KpiAssessmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: KpiAssessmentMaxAggregateInputType
  }

  export type GetKpiAssessmentAggregateType<T extends KpiAssessmentAggregateArgs> = {
        [P in keyof T & keyof AggregateKpiAssessment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateKpiAssessment[P]>
      : GetScalarType<T[P], AggregateKpiAssessment[P]>
  }




  export type KpiAssessmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: KpiAssessmentWhereInput
    orderBy?: KpiAssessmentOrderByWithAggregationInput | KpiAssessmentOrderByWithAggregationInput[]
    by: KpiAssessmentScalarFieldEnum[] | KpiAssessmentScalarFieldEnum
    having?: KpiAssessmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: KpiAssessmentCountAggregateInputType | true
    _avg?: KpiAssessmentAvgAggregateInputType
    _sum?: KpiAssessmentSumAggregateInputType
    _min?: KpiAssessmentMinAggregateInputType
    _max?: KpiAssessmentMaxAggregateInputType
  }

  export type KpiAssessmentGroupByOutputType = {
    id: string
    assignmentId: string
    status: $Enums.KpiAssessmentStatus
    selfScore: Decimal | null
    completionNote: string | null
    selfComment: string | null
    selfEvaluatedAt: Date | null
    managerScore: Decimal | null
    managerComment: string | null
    managerId: string | null
    managerEvaluatedAt: Date | null
    finalScore: Decimal | null
    deletedAt: Date | null
    _count: KpiAssessmentCountAggregateOutputType | null
    _avg: KpiAssessmentAvgAggregateOutputType | null
    _sum: KpiAssessmentSumAggregateOutputType | null
    _min: KpiAssessmentMinAggregateOutputType | null
    _max: KpiAssessmentMaxAggregateOutputType | null
  }

  type GetKpiAssessmentGroupByPayload<T extends KpiAssessmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<KpiAssessmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof KpiAssessmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], KpiAssessmentGroupByOutputType[P]>
            : GetScalarType<T[P], KpiAssessmentGroupByOutputType[P]>
        }
      >
    >


  export type KpiAssessmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    assignmentId?: boolean
    status?: boolean
    selfScore?: boolean
    completionNote?: boolean
    selfComment?: boolean
    selfEvaluatedAt?: boolean
    managerScore?: boolean
    managerComment?: boolean
    managerId?: boolean
    managerEvaluatedAt?: boolean
    finalScore?: boolean
    deletedAt?: boolean
    assignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["kpiAssessment"]>

  export type KpiAssessmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    assignmentId?: boolean
    status?: boolean
    selfScore?: boolean
    completionNote?: boolean
    selfComment?: boolean
    selfEvaluatedAt?: boolean
    managerScore?: boolean
    managerComment?: boolean
    managerId?: boolean
    managerEvaluatedAt?: boolean
    finalScore?: boolean
    deletedAt?: boolean
    assignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["kpiAssessment"]>

  export type KpiAssessmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    assignmentId?: boolean
    status?: boolean
    selfScore?: boolean
    completionNote?: boolean
    selfComment?: boolean
    selfEvaluatedAt?: boolean
    managerScore?: boolean
    managerComment?: boolean
    managerId?: boolean
    managerEvaluatedAt?: boolean
    finalScore?: boolean
    deletedAt?: boolean
    assignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["kpiAssessment"]>

  export type KpiAssessmentSelectScalar = {
    id?: boolean
    assignmentId?: boolean
    status?: boolean
    selfScore?: boolean
    completionNote?: boolean
    selfComment?: boolean
    selfEvaluatedAt?: boolean
    managerScore?: boolean
    managerComment?: boolean
    managerId?: boolean
    managerEvaluatedAt?: boolean
    finalScore?: boolean
    deletedAt?: boolean
  }

  export type KpiAssessmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "assignmentId" | "status" | "selfScore" | "completionNote" | "selfComment" | "selfEvaluatedAt" | "managerScore" | "managerComment" | "managerId" | "managerEvaluatedAt" | "finalScore" | "deletedAt", ExtArgs["result"]["kpiAssessment"]>
  export type KpiAssessmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    assignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
  }
  export type KpiAssessmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    assignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
  }
  export type KpiAssessmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    assignment?: boolean | KpiAssignmentDefaultArgs<ExtArgs>
  }

  export type $KpiAssessmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "KpiAssessment"
    objects: {
      assignment: Prisma.$KpiAssignmentPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      assignmentId: string
      status: $Enums.KpiAssessmentStatus
      selfScore: Prisma.Decimal | null
      completionNote: string | null
      selfComment: string | null
      selfEvaluatedAt: Date | null
      managerScore: Prisma.Decimal | null
      managerComment: string | null
      managerId: string | null
      managerEvaluatedAt: Date | null
      finalScore: Prisma.Decimal | null
      deletedAt: Date | null
    }, ExtArgs["result"]["kpiAssessment"]>
    composites: {}
  }

  type KpiAssessmentGetPayload<S extends boolean | null | undefined | KpiAssessmentDefaultArgs> = $Result.GetResult<Prisma.$KpiAssessmentPayload, S>

  type KpiAssessmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<KpiAssessmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: KpiAssessmentCountAggregateInputType | true
    }

  export interface KpiAssessmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['KpiAssessment'], meta: { name: 'KpiAssessment' } }
    /**
     * Find zero or one KpiAssessment that matches the filter.
     * @param {KpiAssessmentFindUniqueArgs} args - Arguments to find a KpiAssessment
     * @example
     * // Get one KpiAssessment
     * const kpiAssessment = await prisma.kpiAssessment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends KpiAssessmentFindUniqueArgs>(args: SelectSubset<T, KpiAssessmentFindUniqueArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one KpiAssessment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {KpiAssessmentFindUniqueOrThrowArgs} args - Arguments to find a KpiAssessment
     * @example
     * // Get one KpiAssessment
     * const kpiAssessment = await prisma.kpiAssessment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends KpiAssessmentFindUniqueOrThrowArgs>(args: SelectSubset<T, KpiAssessmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first KpiAssessment 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 {KpiAssessmentFindFirstArgs} args - Arguments to find a KpiAssessment
     * @example
     * // Get one KpiAssessment
     * const kpiAssessment = await prisma.kpiAssessment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends KpiAssessmentFindFirstArgs>(args?: SelectSubset<T, KpiAssessmentFindFirstArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first KpiAssessment 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 {KpiAssessmentFindFirstOrThrowArgs} args - Arguments to find a KpiAssessment
     * @example
     * // Get one KpiAssessment
     * const kpiAssessment = await prisma.kpiAssessment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends KpiAssessmentFindFirstOrThrowArgs>(args?: SelectSubset<T, KpiAssessmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more KpiAssessments 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 {KpiAssessmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all KpiAssessments
     * const kpiAssessments = await prisma.kpiAssessment.findMany()
     * 
     * // Get first 10 KpiAssessments
     * const kpiAssessments = await prisma.kpiAssessment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const kpiAssessmentWithIdOnly = await prisma.kpiAssessment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends KpiAssessmentFindManyArgs>(args?: SelectSubset<T, KpiAssessmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a KpiAssessment.
     * @param {KpiAssessmentCreateArgs} args - Arguments to create a KpiAssessment.
     * @example
     * // Create one KpiAssessment
     * const KpiAssessment = await prisma.kpiAssessment.create({
     *   data: {
     *     // ... data to create a KpiAssessment
     *   }
     * })
     * 
     */
    create<T extends KpiAssessmentCreateArgs>(args: SelectSubset<T, KpiAssessmentCreateArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many KpiAssessments.
     * @param {KpiAssessmentCreateManyArgs} args - Arguments to create many KpiAssessments.
     * @example
     * // Create many KpiAssessments
     * const kpiAssessment = await prisma.kpiAssessment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends KpiAssessmentCreateManyArgs>(args?: SelectSubset<T, KpiAssessmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many KpiAssessments and returns the data saved in the database.
     * @param {KpiAssessmentCreateManyAndReturnArgs} args - Arguments to create many KpiAssessments.
     * @example
     * // Create many KpiAssessments
     * const kpiAssessment = await prisma.kpiAssessment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many KpiAssessments and only return the `id`
     * const kpiAssessmentWithIdOnly = await prisma.kpiAssessment.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 KpiAssessmentCreateManyAndReturnArgs>(args?: SelectSubset<T, KpiAssessmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a KpiAssessment.
     * @param {KpiAssessmentDeleteArgs} args - Arguments to delete one KpiAssessment.
     * @example
     * // Delete one KpiAssessment
     * const KpiAssessment = await prisma.kpiAssessment.delete({
     *   where: {
     *     // ... filter to delete one KpiAssessment
     *   }
     * })
     * 
     */
    delete<T extends KpiAssessmentDeleteArgs>(args: SelectSubset<T, KpiAssessmentDeleteArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one KpiAssessment.
     * @param {KpiAssessmentUpdateArgs} args - Arguments to update one KpiAssessment.
     * @example
     * // Update one KpiAssessment
     * const kpiAssessment = await prisma.kpiAssessment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends KpiAssessmentUpdateArgs>(args: SelectSubset<T, KpiAssessmentUpdateArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more KpiAssessments.
     * @param {KpiAssessmentDeleteManyArgs} args - Arguments to filter KpiAssessments to delete.
     * @example
     * // Delete a few KpiAssessments
     * const { count } = await prisma.kpiAssessment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends KpiAssessmentDeleteManyArgs>(args?: SelectSubset<T, KpiAssessmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more KpiAssessments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiAssessmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many KpiAssessments
     * const kpiAssessment = await prisma.kpiAssessment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends KpiAssessmentUpdateManyArgs>(args: SelectSubset<T, KpiAssessmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more KpiAssessments and returns the data updated in the database.
     * @param {KpiAssessmentUpdateManyAndReturnArgs} args - Arguments to update many KpiAssessments.
     * @example
     * // Update many KpiAssessments
     * const kpiAssessment = await prisma.kpiAssessment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more KpiAssessments and only return the `id`
     * const kpiAssessmentWithIdOnly = await prisma.kpiAssessment.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 KpiAssessmentUpdateManyAndReturnArgs>(args: SelectSubset<T, KpiAssessmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one KpiAssessment.
     * @param {KpiAssessmentUpsertArgs} args - Arguments to update or create a KpiAssessment.
     * @example
     * // Update or create a KpiAssessment
     * const kpiAssessment = await prisma.kpiAssessment.upsert({
     *   create: {
     *     // ... data to create a KpiAssessment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the KpiAssessment we want to update
     *   }
     * })
     */
    upsert<T extends KpiAssessmentUpsertArgs>(args: SelectSubset<T, KpiAssessmentUpsertArgs<ExtArgs>>): Prisma__KpiAssessmentClient<$Result.GetResult<Prisma.$KpiAssessmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of KpiAssessments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiAssessmentCountArgs} args - Arguments to filter KpiAssessments to count.
     * @example
     * // Count the number of KpiAssessments
     * const count = await prisma.kpiAssessment.count({
     *   where: {
     *     // ... the filter for the KpiAssessments we want to count
     *   }
     * })
    **/
    count<T extends KpiAssessmentCountArgs>(
      args?: Subset<T, KpiAssessmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], KpiAssessmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a KpiAssessment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiAssessmentAggregateArgs} 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 KpiAssessmentAggregateArgs>(args: Subset<T, KpiAssessmentAggregateArgs>): Prisma.PrismaPromise<GetKpiAssessmentAggregateType<T>>

    /**
     * Group by KpiAssessment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {KpiAssessmentGroupByArgs} 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 KpiAssessmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: KpiAssessmentGroupByArgs['orderBy'] }
        : { orderBy?: KpiAssessmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, KpiAssessmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetKpiAssessmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the KpiAssessment model
   */
  readonly fields: KpiAssessmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for KpiAssessment.
   * 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__KpiAssessmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    assignment<T extends KpiAssignmentDefaultArgs<ExtArgs> = {}>(args?: Subset<T, KpiAssignmentDefaultArgs<ExtArgs>>): Prisma__KpiAssignmentClient<$Result.GetResult<Prisma.$KpiAssignmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the KpiAssessment model
   */
  interface KpiAssessmentFieldRefs {
    readonly id: FieldRef<"KpiAssessment", 'String'>
    readonly assignmentId: FieldRef<"KpiAssessment", 'String'>
    readonly status: FieldRef<"KpiAssessment", 'KpiAssessmentStatus'>
    readonly selfScore: FieldRef<"KpiAssessment", 'Decimal'>
    readonly completionNote: FieldRef<"KpiAssessment", 'String'>
    readonly selfComment: FieldRef<"KpiAssessment", 'String'>
    readonly selfEvaluatedAt: FieldRef<"KpiAssessment", 'DateTime'>
    readonly managerScore: FieldRef<"KpiAssessment", 'Decimal'>
    readonly managerComment: FieldRef<"KpiAssessment", 'String'>
    readonly managerId: FieldRef<"KpiAssessment", 'String'>
    readonly managerEvaluatedAt: FieldRef<"KpiAssessment", 'DateTime'>
    readonly finalScore: FieldRef<"KpiAssessment", 'Decimal'>
    readonly deletedAt: FieldRef<"KpiAssessment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * KpiAssessment findUnique
   */
  export type KpiAssessmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssessment to fetch.
     */
    where: KpiAssessmentWhereUniqueInput
  }

  /**
   * KpiAssessment findUniqueOrThrow
   */
  export type KpiAssessmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssessment to fetch.
     */
    where: KpiAssessmentWhereUniqueInput
  }

  /**
   * KpiAssessment findFirst
   */
  export type KpiAssessmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssessment to fetch.
     */
    where?: KpiAssessmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiAssessments to fetch.
     */
    orderBy?: KpiAssessmentOrderByWithRelationInput | KpiAssessmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for KpiAssessments.
     */
    cursor?: KpiAssessmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiAssessments 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` KpiAssessments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of KpiAssessments.
     */
    distinct?: KpiAssessmentScalarFieldEnum | KpiAssessmentScalarFieldEnum[]
  }

  /**
   * KpiAssessment findFirstOrThrow
   */
  export type KpiAssessmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssessment to fetch.
     */
    where?: KpiAssessmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiAssessments to fetch.
     */
    orderBy?: KpiAssessmentOrderByWithRelationInput | KpiAssessmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for KpiAssessments.
     */
    cursor?: KpiAssessmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiAssessments 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` KpiAssessments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of KpiAssessments.
     */
    distinct?: KpiAssessmentScalarFieldEnum | KpiAssessmentScalarFieldEnum[]
  }

  /**
   * KpiAssessment findMany
   */
  export type KpiAssessmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * Filter, which KpiAssessments to fetch.
     */
    where?: KpiAssessmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of KpiAssessments to fetch.
     */
    orderBy?: KpiAssessmentOrderByWithRelationInput | KpiAssessmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing KpiAssessments.
     */
    cursor?: KpiAssessmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` KpiAssessments 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` KpiAssessments.
     */
    skip?: number
    distinct?: KpiAssessmentScalarFieldEnum | KpiAssessmentScalarFieldEnum[]
  }

  /**
   * KpiAssessment create
   */
  export type KpiAssessmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * The data needed to create a KpiAssessment.
     */
    data: XOR<KpiAssessmentCreateInput, KpiAssessmentUncheckedCreateInput>
  }

  /**
   * KpiAssessment createMany
   */
  export type KpiAssessmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many KpiAssessments.
     */
    data: KpiAssessmentCreateManyInput | KpiAssessmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * KpiAssessment createManyAndReturn
   */
  export type KpiAssessmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * The data used to create many KpiAssessments.
     */
    data: KpiAssessmentCreateManyInput | KpiAssessmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * KpiAssessment update
   */
  export type KpiAssessmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * The data needed to update a KpiAssessment.
     */
    data: XOR<KpiAssessmentUpdateInput, KpiAssessmentUncheckedUpdateInput>
    /**
     * Choose, which KpiAssessment to update.
     */
    where: KpiAssessmentWhereUniqueInput
  }

  /**
   * KpiAssessment updateMany
   */
  export type KpiAssessmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update KpiAssessments.
     */
    data: XOR<KpiAssessmentUpdateManyMutationInput, KpiAssessmentUncheckedUpdateManyInput>
    /**
     * Filter which KpiAssessments to update
     */
    where?: KpiAssessmentWhereInput
    /**
     * Limit how many KpiAssessments to update.
     */
    limit?: number
  }

  /**
   * KpiAssessment updateManyAndReturn
   */
  export type KpiAssessmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * The data used to update KpiAssessments.
     */
    data: XOR<KpiAssessmentUpdateManyMutationInput, KpiAssessmentUncheckedUpdateManyInput>
    /**
     * Filter which KpiAssessments to update
     */
    where?: KpiAssessmentWhereInput
    /**
     * Limit how many KpiAssessments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * KpiAssessment upsert
   */
  export type KpiAssessmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * The filter to search for the KpiAssessment to update in case it exists.
     */
    where: KpiAssessmentWhereUniqueInput
    /**
     * In case the KpiAssessment found by the `where` argument doesn't exist, create a new KpiAssessment with this data.
     */
    create: XOR<KpiAssessmentCreateInput, KpiAssessmentUncheckedCreateInput>
    /**
     * In case the KpiAssessment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<KpiAssessmentUpdateInput, KpiAssessmentUncheckedUpdateInput>
  }

  /**
   * KpiAssessment delete
   */
  export type KpiAssessmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
    /**
     * Filter which KpiAssessment to delete.
     */
    where: KpiAssessmentWhereUniqueInput
  }

  /**
   * KpiAssessment deleteMany
   */
  export type KpiAssessmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which KpiAssessments to delete
     */
    where?: KpiAssessmentWhereInput
    /**
     * Limit how many KpiAssessments to delete.
     */
    limit?: number
  }

  /**
   * KpiAssessment without action
   */
  export type KpiAssessmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the KpiAssessment
     */
    select?: KpiAssessmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the KpiAssessment
     */
    omit?: KpiAssessmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: KpiAssessmentInclude<ExtArgs> | null
  }


  /**
   * Model Evaluation360
   */

  export type AggregateEvaluation360 = {
    _count: Evaluation360CountAggregateOutputType | null
    _avg: Evaluation360AvgAggregateOutputType | null
    _sum: Evaluation360SumAggregateOutputType | null
    _min: Evaluation360MinAggregateOutputType | null
    _max: Evaluation360MaxAggregateOutputType | null
  }

  export type Evaluation360AvgAggregateOutputType = {
    minEvaluators: number | null
  }

  export type Evaluation360SumAggregateOutputType = {
    minEvaluators: number | null
  }

  export type Evaluation360MinAggregateOutputType = {
    id: string | null
    cycleId: string | null
    targetId: string | null
    status: $Enums.Evaluation360Status | null
    templateId: string | null
    deadline: Date | null
    minEvaluators: number | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type Evaluation360MaxAggregateOutputType = {
    id: string | null
    cycleId: string | null
    targetId: string | null
    status: $Enums.Evaluation360Status | null
    templateId: string | null
    deadline: Date | null
    minEvaluators: number | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type Evaluation360CountAggregateOutputType = {
    id: number
    cycleId: number
    targetId: number
    status: number
    templateId: number
    deadline: number
    minEvaluators: number
    createdBy: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type Evaluation360AvgAggregateInputType = {
    minEvaluators?: true
  }

  export type Evaluation360SumAggregateInputType = {
    minEvaluators?: true
  }

  export type Evaluation360MinAggregateInputType = {
    id?: true
    cycleId?: true
    targetId?: true
    status?: true
    templateId?: true
    deadline?: true
    minEvaluators?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type Evaluation360MaxAggregateInputType = {
    id?: true
    cycleId?: true
    targetId?: true
    status?: true
    templateId?: true
    deadline?: true
    minEvaluators?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type Evaluation360CountAggregateInputType = {
    id?: true
    cycleId?: true
    targetId?: true
    status?: true
    templateId?: true
    deadline?: true
    minEvaluators?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type Evaluation360AggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Evaluation360 to aggregate.
     */
    where?: Evaluation360WhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Evaluation360s to fetch.
     */
    orderBy?: Evaluation360OrderByWithRelationInput | Evaluation360OrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: Evaluation360WhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Evaluation360s 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` Evaluation360s.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Evaluation360s
    **/
    _count?: true | Evaluation360CountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: Evaluation360AvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: Evaluation360SumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: Evaluation360MinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: Evaluation360MaxAggregateInputType
  }

  export type GetEvaluation360AggregateType<T extends Evaluation360AggregateArgs> = {
        [P in keyof T & keyof AggregateEvaluation360]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateEvaluation360[P]>
      : GetScalarType<T[P], AggregateEvaluation360[P]>
  }




  export type Evaluation360GroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: Evaluation360WhereInput
    orderBy?: Evaluation360OrderByWithAggregationInput | Evaluation360OrderByWithAggregationInput[]
    by: Evaluation360ScalarFieldEnum[] | Evaluation360ScalarFieldEnum
    having?: Evaluation360ScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: Evaluation360CountAggregateInputType | true
    _avg?: Evaluation360AvgAggregateInputType
    _sum?: Evaluation360SumAggregateInputType
    _min?: Evaluation360MinAggregateInputType
    _max?: Evaluation360MaxAggregateInputType
  }

  export type Evaluation360GroupByOutputType = {
    id: string
    cycleId: string
    targetId: string
    status: $Enums.Evaluation360Status
    templateId: string | null
    deadline: Date
    minEvaluators: number | null
    createdBy: string
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: Evaluation360CountAggregateOutputType | null
    _avg: Evaluation360AvgAggregateOutputType | null
    _sum: Evaluation360SumAggregateOutputType | null
    _min: Evaluation360MinAggregateOutputType | null
    _max: Evaluation360MaxAggregateOutputType | null
  }

  type GetEvaluation360GroupByPayload<T extends Evaluation360GroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<Evaluation360GroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof Evaluation360GroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], Evaluation360GroupByOutputType[P]>
            : GetScalarType<T[P], Evaluation360GroupByOutputType[P]>
        }
      >
    >


  export type Evaluation360Select<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    targetId?: boolean
    status?: boolean
    templateId?: boolean
    deadline?: boolean
    minEvaluators?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    template?: boolean | Evaluation360$templateArgs<ExtArgs>
    tasks?: boolean | Evaluation360$tasksArgs<ExtArgs>
    _count?: boolean | Evaluation360CountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["evaluation360"]>

  export type Evaluation360SelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    targetId?: boolean
    status?: boolean
    templateId?: boolean
    deadline?: boolean
    minEvaluators?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    template?: boolean | Evaluation360$templateArgs<ExtArgs>
  }, ExtArgs["result"]["evaluation360"]>

  export type Evaluation360SelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    targetId?: boolean
    status?: boolean
    templateId?: boolean
    deadline?: boolean
    minEvaluators?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    template?: boolean | Evaluation360$templateArgs<ExtArgs>
  }, ExtArgs["result"]["evaluation360"]>

  export type Evaluation360SelectScalar = {
    id?: boolean
    cycleId?: boolean
    targetId?: boolean
    status?: boolean
    templateId?: boolean
    deadline?: boolean
    minEvaluators?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type Evaluation360Omit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "cycleId" | "targetId" | "status" | "templateId" | "deadline" | "minEvaluators" | "createdBy" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["evaluation360"]>
  export type Evaluation360Include<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    template?: boolean | Evaluation360$templateArgs<ExtArgs>
    tasks?: boolean | Evaluation360$tasksArgs<ExtArgs>
    _count?: boolean | Evaluation360CountOutputTypeDefaultArgs<ExtArgs>
  }
  export type Evaluation360IncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    template?: boolean | Evaluation360$templateArgs<ExtArgs>
  }
  export type Evaluation360IncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    template?: boolean | Evaluation360$templateArgs<ExtArgs>
  }

  export type $Evaluation360Payload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Evaluation360"
    objects: {
      cycle: Prisma.$PerformanceCyclePayload<ExtArgs>
      template: Prisma.$Evaluation360TemplatePayload<ExtArgs> | null
      tasks: Prisma.$EvaluationTaskPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      cycleId: string
      targetId: string
      status: $Enums.Evaluation360Status
      templateId: string | null
      deadline: Date
      minEvaluators: number | null
      createdBy: string
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["evaluation360"]>
    composites: {}
  }

  type Evaluation360GetPayload<S extends boolean | null | undefined | Evaluation360DefaultArgs> = $Result.GetResult<Prisma.$Evaluation360Payload, S>

  type Evaluation360CountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<Evaluation360FindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: Evaluation360CountAggregateInputType | true
    }

  export interface Evaluation360Delegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Evaluation360'], meta: { name: 'Evaluation360' } }
    /**
     * Find zero or one Evaluation360 that matches the filter.
     * @param {Evaluation360FindUniqueArgs} args - Arguments to find a Evaluation360
     * @example
     * // Get one Evaluation360
     * const evaluation360 = await prisma.evaluation360.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends Evaluation360FindUniqueArgs>(args: SelectSubset<T, Evaluation360FindUniqueArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Evaluation360 that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {Evaluation360FindUniqueOrThrowArgs} args - Arguments to find a Evaluation360
     * @example
     * // Get one Evaluation360
     * const evaluation360 = await prisma.evaluation360.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends Evaluation360FindUniqueOrThrowArgs>(args: SelectSubset<T, Evaluation360FindUniqueOrThrowArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Evaluation360 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 {Evaluation360FindFirstArgs} args - Arguments to find a Evaluation360
     * @example
     * // Get one Evaluation360
     * const evaluation360 = await prisma.evaluation360.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends Evaluation360FindFirstArgs>(args?: SelectSubset<T, Evaluation360FindFirstArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Evaluation360 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 {Evaluation360FindFirstOrThrowArgs} args - Arguments to find a Evaluation360
     * @example
     * // Get one Evaluation360
     * const evaluation360 = await prisma.evaluation360.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends Evaluation360FindFirstOrThrowArgs>(args?: SelectSubset<T, Evaluation360FindFirstOrThrowArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Evaluation360s 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 {Evaluation360FindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Evaluation360s
     * const evaluation360s = await prisma.evaluation360.findMany()
     * 
     * // Get first 10 Evaluation360s
     * const evaluation360s = await prisma.evaluation360.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const evaluation360WithIdOnly = await prisma.evaluation360.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends Evaluation360FindManyArgs>(args?: SelectSubset<T, Evaluation360FindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Evaluation360.
     * @param {Evaluation360CreateArgs} args - Arguments to create a Evaluation360.
     * @example
     * // Create one Evaluation360
     * const Evaluation360 = await prisma.evaluation360.create({
     *   data: {
     *     // ... data to create a Evaluation360
     *   }
     * })
     * 
     */
    create<T extends Evaluation360CreateArgs>(args: SelectSubset<T, Evaluation360CreateArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Evaluation360s.
     * @param {Evaluation360CreateManyArgs} args - Arguments to create many Evaluation360s.
     * @example
     * // Create many Evaluation360s
     * const evaluation360 = await prisma.evaluation360.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends Evaluation360CreateManyArgs>(args?: SelectSubset<T, Evaluation360CreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Evaluation360s and returns the data saved in the database.
     * @param {Evaluation360CreateManyAndReturnArgs} args - Arguments to create many Evaluation360s.
     * @example
     * // Create many Evaluation360s
     * const evaluation360 = await prisma.evaluation360.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Evaluation360s and only return the `id`
     * const evaluation360WithIdOnly = await prisma.evaluation360.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 Evaluation360CreateManyAndReturnArgs>(args?: SelectSubset<T, Evaluation360CreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Evaluation360.
     * @param {Evaluation360DeleteArgs} args - Arguments to delete one Evaluation360.
     * @example
     * // Delete one Evaluation360
     * const Evaluation360 = await prisma.evaluation360.delete({
     *   where: {
     *     // ... filter to delete one Evaluation360
     *   }
     * })
     * 
     */
    delete<T extends Evaluation360DeleteArgs>(args: SelectSubset<T, Evaluation360DeleteArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Evaluation360.
     * @param {Evaluation360UpdateArgs} args - Arguments to update one Evaluation360.
     * @example
     * // Update one Evaluation360
     * const evaluation360 = await prisma.evaluation360.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends Evaluation360UpdateArgs>(args: SelectSubset<T, Evaluation360UpdateArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Evaluation360s.
     * @param {Evaluation360DeleteManyArgs} args - Arguments to filter Evaluation360s to delete.
     * @example
     * // Delete a few Evaluation360s
     * const { count } = await prisma.evaluation360.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends Evaluation360DeleteManyArgs>(args?: SelectSubset<T, Evaluation360DeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Evaluation360s.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Evaluation360UpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Evaluation360s
     * const evaluation360 = await prisma.evaluation360.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends Evaluation360UpdateManyArgs>(args: SelectSubset<T, Evaluation360UpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Evaluation360s and returns the data updated in the database.
     * @param {Evaluation360UpdateManyAndReturnArgs} args - Arguments to update many Evaluation360s.
     * @example
     * // Update many Evaluation360s
     * const evaluation360 = await prisma.evaluation360.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Evaluation360s and only return the `id`
     * const evaluation360WithIdOnly = await prisma.evaluation360.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 Evaluation360UpdateManyAndReturnArgs>(args: SelectSubset<T, Evaluation360UpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Evaluation360.
     * @param {Evaluation360UpsertArgs} args - Arguments to update or create a Evaluation360.
     * @example
     * // Update or create a Evaluation360
     * const evaluation360 = await prisma.evaluation360.upsert({
     *   create: {
     *     // ... data to create a Evaluation360
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Evaluation360 we want to update
     *   }
     * })
     */
    upsert<T extends Evaluation360UpsertArgs>(args: SelectSubset<T, Evaluation360UpsertArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Evaluation360s.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Evaluation360CountArgs} args - Arguments to filter Evaluation360s to count.
     * @example
     * // Count the number of Evaluation360s
     * const count = await prisma.evaluation360.count({
     *   where: {
     *     // ... the filter for the Evaluation360s we want to count
     *   }
     * })
    **/
    count<T extends Evaluation360CountArgs>(
      args?: Subset<T, Evaluation360CountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], Evaluation360CountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Evaluation360.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Evaluation360AggregateArgs} 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 Evaluation360AggregateArgs>(args: Subset<T, Evaluation360AggregateArgs>): Prisma.PrismaPromise<GetEvaluation360AggregateType<T>>

    /**
     * Group by Evaluation360.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Evaluation360GroupByArgs} 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 Evaluation360GroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: Evaluation360GroupByArgs['orderBy'] }
        : { orderBy?: Evaluation360GroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, Evaluation360GroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetEvaluation360GroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Evaluation360 model
   */
  readonly fields: Evaluation360FieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Evaluation360.
   * 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__Evaluation360Client<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    cycle<T extends PerformanceCycleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycleDefaultArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    template<T extends Evaluation360$templateArgs<ExtArgs> = {}>(args?: Subset<T, Evaluation360$templateArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    tasks<T extends Evaluation360$tasksArgs<ExtArgs> = {}>(args?: Subset<T, Evaluation360$tasksArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Evaluation360 model
   */
  interface Evaluation360FieldRefs {
    readonly id: FieldRef<"Evaluation360", 'String'>
    readonly cycleId: FieldRef<"Evaluation360", 'String'>
    readonly targetId: FieldRef<"Evaluation360", 'String'>
    readonly status: FieldRef<"Evaluation360", 'Evaluation360Status'>
    readonly templateId: FieldRef<"Evaluation360", 'String'>
    readonly deadline: FieldRef<"Evaluation360", 'DateTime'>
    readonly minEvaluators: FieldRef<"Evaluation360", 'Int'>
    readonly createdBy: FieldRef<"Evaluation360", 'String'>
    readonly createdAt: FieldRef<"Evaluation360", 'DateTime'>
    readonly updatedAt: FieldRef<"Evaluation360", 'DateTime'>
    readonly deletedAt: FieldRef<"Evaluation360", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Evaluation360 findUnique
   */
  export type Evaluation360FindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * Filter, which Evaluation360 to fetch.
     */
    where: Evaluation360WhereUniqueInput
  }

  /**
   * Evaluation360 findUniqueOrThrow
   */
  export type Evaluation360FindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * Filter, which Evaluation360 to fetch.
     */
    where: Evaluation360WhereUniqueInput
  }

  /**
   * Evaluation360 findFirst
   */
  export type Evaluation360FindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * Filter, which Evaluation360 to fetch.
     */
    where?: Evaluation360WhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Evaluation360s to fetch.
     */
    orderBy?: Evaluation360OrderByWithRelationInput | Evaluation360OrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Evaluation360s.
     */
    cursor?: Evaluation360WhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Evaluation360s 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` Evaluation360s.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Evaluation360s.
     */
    distinct?: Evaluation360ScalarFieldEnum | Evaluation360ScalarFieldEnum[]
  }

  /**
   * Evaluation360 findFirstOrThrow
   */
  export type Evaluation360FindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * Filter, which Evaluation360 to fetch.
     */
    where?: Evaluation360WhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Evaluation360s to fetch.
     */
    orderBy?: Evaluation360OrderByWithRelationInput | Evaluation360OrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Evaluation360s.
     */
    cursor?: Evaluation360WhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Evaluation360s 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` Evaluation360s.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Evaluation360s.
     */
    distinct?: Evaluation360ScalarFieldEnum | Evaluation360ScalarFieldEnum[]
  }

  /**
   * Evaluation360 findMany
   */
  export type Evaluation360FindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * Filter, which Evaluation360s to fetch.
     */
    where?: Evaluation360WhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Evaluation360s to fetch.
     */
    orderBy?: Evaluation360OrderByWithRelationInput | Evaluation360OrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Evaluation360s.
     */
    cursor?: Evaluation360WhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Evaluation360s 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` Evaluation360s.
     */
    skip?: number
    distinct?: Evaluation360ScalarFieldEnum | Evaluation360ScalarFieldEnum[]
  }

  /**
   * Evaluation360 create
   */
  export type Evaluation360CreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * The data needed to create a Evaluation360.
     */
    data: XOR<Evaluation360CreateInput, Evaluation360UncheckedCreateInput>
  }

  /**
   * Evaluation360 createMany
   */
  export type Evaluation360CreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Evaluation360s.
     */
    data: Evaluation360CreateManyInput | Evaluation360CreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Evaluation360 createManyAndReturn
   */
  export type Evaluation360CreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360SelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * The data used to create many Evaluation360s.
     */
    data: Evaluation360CreateManyInput | Evaluation360CreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360IncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Evaluation360 update
   */
  export type Evaluation360UpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * The data needed to update a Evaluation360.
     */
    data: XOR<Evaluation360UpdateInput, Evaluation360UncheckedUpdateInput>
    /**
     * Choose, which Evaluation360 to update.
     */
    where: Evaluation360WhereUniqueInput
  }

  /**
   * Evaluation360 updateMany
   */
  export type Evaluation360UpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Evaluation360s.
     */
    data: XOR<Evaluation360UpdateManyMutationInput, Evaluation360UncheckedUpdateManyInput>
    /**
     * Filter which Evaluation360s to update
     */
    where?: Evaluation360WhereInput
    /**
     * Limit how many Evaluation360s to update.
     */
    limit?: number
  }

  /**
   * Evaluation360 updateManyAndReturn
   */
  export type Evaluation360UpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360SelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * The data used to update Evaluation360s.
     */
    data: XOR<Evaluation360UpdateManyMutationInput, Evaluation360UncheckedUpdateManyInput>
    /**
     * Filter which Evaluation360s to update
     */
    where?: Evaluation360WhereInput
    /**
     * Limit how many Evaluation360s to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360IncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Evaluation360 upsert
   */
  export type Evaluation360UpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * The filter to search for the Evaluation360 to update in case it exists.
     */
    where: Evaluation360WhereUniqueInput
    /**
     * In case the Evaluation360 found by the `where` argument doesn't exist, create a new Evaluation360 with this data.
     */
    create: XOR<Evaluation360CreateInput, Evaluation360UncheckedCreateInput>
    /**
     * In case the Evaluation360 was found with the provided `where` argument, update it with this data.
     */
    update: XOR<Evaluation360UpdateInput, Evaluation360UncheckedUpdateInput>
  }

  /**
   * Evaluation360 delete
   */
  export type Evaluation360DeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    /**
     * Filter which Evaluation360 to delete.
     */
    where: Evaluation360WhereUniqueInput
  }

  /**
   * Evaluation360 deleteMany
   */
  export type Evaluation360DeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Evaluation360s to delete
     */
    where?: Evaluation360WhereInput
    /**
     * Limit how many Evaluation360s to delete.
     */
    limit?: number
  }

  /**
   * Evaluation360.template
   */
  export type Evaluation360$templateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    where?: Evaluation360TemplateWhereInput
  }

  /**
   * Evaluation360.tasks
   */
  export type Evaluation360$tasksArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    where?: EvaluationTaskWhereInput
    orderBy?: EvaluationTaskOrderByWithRelationInput | EvaluationTaskOrderByWithRelationInput[]
    cursor?: EvaluationTaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: EvaluationTaskScalarFieldEnum | EvaluationTaskScalarFieldEnum[]
  }

  /**
   * Evaluation360 without action
   */
  export type Evaluation360DefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
  }


  /**
   * Model EvaluationTask
   */

  export type AggregateEvaluationTask = {
    _count: EvaluationTaskCountAggregateOutputType | null
    _min: EvaluationTaskMinAggregateOutputType | null
    _max: EvaluationTaskMaxAggregateOutputType | null
  }

  export type EvaluationTaskMinAggregateOutputType = {
    id: string | null
    evaluationId: string | null
    evaluatorId: string | null
    relationType: $Enums.RelationType | null
    status: $Enums.EvaluationTaskStatus | null
    isAnonymous: boolean | null
    submittedAt: Date | null
    createdAt: Date | null
    deletedAt: Date | null
  }

  export type EvaluationTaskMaxAggregateOutputType = {
    id: string | null
    evaluationId: string | null
    evaluatorId: string | null
    relationType: $Enums.RelationType | null
    status: $Enums.EvaluationTaskStatus | null
    isAnonymous: boolean | null
    submittedAt: Date | null
    createdAt: Date | null
    deletedAt: Date | null
  }

  export type EvaluationTaskCountAggregateOutputType = {
    id: number
    evaluationId: number
    evaluatorId: number
    relationType: number
    status: number
    isAnonymous: number
    submittedAt: number
    createdAt: number
    deletedAt: number
    _all: number
  }


  export type EvaluationTaskMinAggregateInputType = {
    id?: true
    evaluationId?: true
    evaluatorId?: true
    relationType?: true
    status?: true
    isAnonymous?: true
    submittedAt?: true
    createdAt?: true
    deletedAt?: true
  }

  export type EvaluationTaskMaxAggregateInputType = {
    id?: true
    evaluationId?: true
    evaluatorId?: true
    relationType?: true
    status?: true
    isAnonymous?: true
    submittedAt?: true
    createdAt?: true
    deletedAt?: true
  }

  export type EvaluationTaskCountAggregateInputType = {
    id?: true
    evaluationId?: true
    evaluatorId?: true
    relationType?: true
    status?: true
    isAnonymous?: true
    submittedAt?: true
    createdAt?: true
    deletedAt?: true
    _all?: true
  }

  export type EvaluationTaskAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which EvaluationTask to aggregate.
     */
    where?: EvaluationTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EvaluationTasks to fetch.
     */
    orderBy?: EvaluationTaskOrderByWithRelationInput | EvaluationTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: EvaluationTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EvaluationTasks 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` EvaluationTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned EvaluationTasks
    **/
    _count?: true | EvaluationTaskCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: EvaluationTaskMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: EvaluationTaskMaxAggregateInputType
  }

  export type GetEvaluationTaskAggregateType<T extends EvaluationTaskAggregateArgs> = {
        [P in keyof T & keyof AggregateEvaluationTask]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateEvaluationTask[P]>
      : GetScalarType<T[P], AggregateEvaluationTask[P]>
  }




  export type EvaluationTaskGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EvaluationTaskWhereInput
    orderBy?: EvaluationTaskOrderByWithAggregationInput | EvaluationTaskOrderByWithAggregationInput[]
    by: EvaluationTaskScalarFieldEnum[] | EvaluationTaskScalarFieldEnum
    having?: EvaluationTaskScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: EvaluationTaskCountAggregateInputType | true
    _min?: EvaluationTaskMinAggregateInputType
    _max?: EvaluationTaskMaxAggregateInputType
  }

  export type EvaluationTaskGroupByOutputType = {
    id: string
    evaluationId: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status: $Enums.EvaluationTaskStatus
    isAnonymous: boolean
    submittedAt: Date | null
    createdAt: Date
    deletedAt: Date | null
    _count: EvaluationTaskCountAggregateOutputType | null
    _min: EvaluationTaskMinAggregateOutputType | null
    _max: EvaluationTaskMaxAggregateOutputType | null
  }

  type GetEvaluationTaskGroupByPayload<T extends EvaluationTaskGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<EvaluationTaskGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof EvaluationTaskGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], EvaluationTaskGroupByOutputType[P]>
            : GetScalarType<T[P], EvaluationTaskGroupByOutputType[P]>
        }
      >
    >


  export type EvaluationTaskSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    evaluationId?: boolean
    evaluatorId?: boolean
    relationType?: boolean
    status?: boolean
    isAnonymous?: boolean
    submittedAt?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    evaluation?: boolean | Evaluation360DefaultArgs<ExtArgs>
    responses?: boolean | EvaluationTask$responsesArgs<ExtArgs>
    _count?: boolean | EvaluationTaskCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["evaluationTask"]>

  export type EvaluationTaskSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    evaluationId?: boolean
    evaluatorId?: boolean
    relationType?: boolean
    status?: boolean
    isAnonymous?: boolean
    submittedAt?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    evaluation?: boolean | Evaluation360DefaultArgs<ExtArgs>
  }, ExtArgs["result"]["evaluationTask"]>

  export type EvaluationTaskSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    evaluationId?: boolean
    evaluatorId?: boolean
    relationType?: boolean
    status?: boolean
    isAnonymous?: boolean
    submittedAt?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    evaluation?: boolean | Evaluation360DefaultArgs<ExtArgs>
  }, ExtArgs["result"]["evaluationTask"]>

  export type EvaluationTaskSelectScalar = {
    id?: boolean
    evaluationId?: boolean
    evaluatorId?: boolean
    relationType?: boolean
    status?: boolean
    isAnonymous?: boolean
    submittedAt?: boolean
    createdAt?: boolean
    deletedAt?: boolean
  }

  export type EvaluationTaskOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "evaluationId" | "evaluatorId" | "relationType" | "status" | "isAnonymous" | "submittedAt" | "createdAt" | "deletedAt", ExtArgs["result"]["evaluationTask"]>
  export type EvaluationTaskInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    evaluation?: boolean | Evaluation360DefaultArgs<ExtArgs>
    responses?: boolean | EvaluationTask$responsesArgs<ExtArgs>
    _count?: boolean | EvaluationTaskCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type EvaluationTaskIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    evaluation?: boolean | Evaluation360DefaultArgs<ExtArgs>
  }
  export type EvaluationTaskIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    evaluation?: boolean | Evaluation360DefaultArgs<ExtArgs>
  }

  export type $EvaluationTaskPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "EvaluationTask"
    objects: {
      evaluation: Prisma.$Evaluation360Payload<ExtArgs>
      responses: Prisma.$EvaluationResponsePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      evaluationId: string
      evaluatorId: string
      relationType: $Enums.RelationType
      status: $Enums.EvaluationTaskStatus
      isAnonymous: boolean
      submittedAt: Date | null
      createdAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["evaluationTask"]>
    composites: {}
  }

  type EvaluationTaskGetPayload<S extends boolean | null | undefined | EvaluationTaskDefaultArgs> = $Result.GetResult<Prisma.$EvaluationTaskPayload, S>

  type EvaluationTaskCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<EvaluationTaskFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: EvaluationTaskCountAggregateInputType | true
    }

  export interface EvaluationTaskDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['EvaluationTask'], meta: { name: 'EvaluationTask' } }
    /**
     * Find zero or one EvaluationTask that matches the filter.
     * @param {EvaluationTaskFindUniqueArgs} args - Arguments to find a EvaluationTask
     * @example
     * // Get one EvaluationTask
     * const evaluationTask = await prisma.evaluationTask.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends EvaluationTaskFindUniqueArgs>(args: SelectSubset<T, EvaluationTaskFindUniqueArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one EvaluationTask that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {EvaluationTaskFindUniqueOrThrowArgs} args - Arguments to find a EvaluationTask
     * @example
     * // Get one EvaluationTask
     * const evaluationTask = await prisma.evaluationTask.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends EvaluationTaskFindUniqueOrThrowArgs>(args: SelectSubset<T, EvaluationTaskFindUniqueOrThrowArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first EvaluationTask 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 {EvaluationTaskFindFirstArgs} args - Arguments to find a EvaluationTask
     * @example
     * // Get one EvaluationTask
     * const evaluationTask = await prisma.evaluationTask.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends EvaluationTaskFindFirstArgs>(args?: SelectSubset<T, EvaluationTaskFindFirstArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first EvaluationTask 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 {EvaluationTaskFindFirstOrThrowArgs} args - Arguments to find a EvaluationTask
     * @example
     * // Get one EvaluationTask
     * const evaluationTask = await prisma.evaluationTask.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends EvaluationTaskFindFirstOrThrowArgs>(args?: SelectSubset<T, EvaluationTaskFindFirstOrThrowArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more EvaluationTasks 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 {EvaluationTaskFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all EvaluationTasks
     * const evaluationTasks = await prisma.evaluationTask.findMany()
     * 
     * // Get first 10 EvaluationTasks
     * const evaluationTasks = await prisma.evaluationTask.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const evaluationTaskWithIdOnly = await prisma.evaluationTask.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends EvaluationTaskFindManyArgs>(args?: SelectSubset<T, EvaluationTaskFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a EvaluationTask.
     * @param {EvaluationTaskCreateArgs} args - Arguments to create a EvaluationTask.
     * @example
     * // Create one EvaluationTask
     * const EvaluationTask = await prisma.evaluationTask.create({
     *   data: {
     *     // ... data to create a EvaluationTask
     *   }
     * })
     * 
     */
    create<T extends EvaluationTaskCreateArgs>(args: SelectSubset<T, EvaluationTaskCreateArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many EvaluationTasks.
     * @param {EvaluationTaskCreateManyArgs} args - Arguments to create many EvaluationTasks.
     * @example
     * // Create many EvaluationTasks
     * const evaluationTask = await prisma.evaluationTask.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends EvaluationTaskCreateManyArgs>(args?: SelectSubset<T, EvaluationTaskCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many EvaluationTasks and returns the data saved in the database.
     * @param {EvaluationTaskCreateManyAndReturnArgs} args - Arguments to create many EvaluationTasks.
     * @example
     * // Create many EvaluationTasks
     * const evaluationTask = await prisma.evaluationTask.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many EvaluationTasks and only return the `id`
     * const evaluationTaskWithIdOnly = await prisma.evaluationTask.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 EvaluationTaskCreateManyAndReturnArgs>(args?: SelectSubset<T, EvaluationTaskCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a EvaluationTask.
     * @param {EvaluationTaskDeleteArgs} args - Arguments to delete one EvaluationTask.
     * @example
     * // Delete one EvaluationTask
     * const EvaluationTask = await prisma.evaluationTask.delete({
     *   where: {
     *     // ... filter to delete one EvaluationTask
     *   }
     * })
     * 
     */
    delete<T extends EvaluationTaskDeleteArgs>(args: SelectSubset<T, EvaluationTaskDeleteArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one EvaluationTask.
     * @param {EvaluationTaskUpdateArgs} args - Arguments to update one EvaluationTask.
     * @example
     * // Update one EvaluationTask
     * const evaluationTask = await prisma.evaluationTask.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends EvaluationTaskUpdateArgs>(args: SelectSubset<T, EvaluationTaskUpdateArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more EvaluationTasks.
     * @param {EvaluationTaskDeleteManyArgs} args - Arguments to filter EvaluationTasks to delete.
     * @example
     * // Delete a few EvaluationTasks
     * const { count } = await prisma.evaluationTask.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends EvaluationTaskDeleteManyArgs>(args?: SelectSubset<T, EvaluationTaskDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more EvaluationTasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EvaluationTaskUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many EvaluationTasks
     * const evaluationTask = await prisma.evaluationTask.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends EvaluationTaskUpdateManyArgs>(args: SelectSubset<T, EvaluationTaskUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more EvaluationTasks and returns the data updated in the database.
     * @param {EvaluationTaskUpdateManyAndReturnArgs} args - Arguments to update many EvaluationTasks.
     * @example
     * // Update many EvaluationTasks
     * const evaluationTask = await prisma.evaluationTask.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more EvaluationTasks and only return the `id`
     * const evaluationTaskWithIdOnly = await prisma.evaluationTask.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 EvaluationTaskUpdateManyAndReturnArgs>(args: SelectSubset<T, EvaluationTaskUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one EvaluationTask.
     * @param {EvaluationTaskUpsertArgs} args - Arguments to update or create a EvaluationTask.
     * @example
     * // Update or create a EvaluationTask
     * const evaluationTask = await prisma.evaluationTask.upsert({
     *   create: {
     *     // ... data to create a EvaluationTask
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the EvaluationTask we want to update
     *   }
     * })
     */
    upsert<T extends EvaluationTaskUpsertArgs>(args: SelectSubset<T, EvaluationTaskUpsertArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of EvaluationTasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EvaluationTaskCountArgs} args - Arguments to filter EvaluationTasks to count.
     * @example
     * // Count the number of EvaluationTasks
     * const count = await prisma.evaluationTask.count({
     *   where: {
     *     // ... the filter for the EvaluationTasks we want to count
     *   }
     * })
    **/
    count<T extends EvaluationTaskCountArgs>(
      args?: Subset<T, EvaluationTaskCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], EvaluationTaskCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a EvaluationTask.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EvaluationTaskAggregateArgs} 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 EvaluationTaskAggregateArgs>(args: Subset<T, EvaluationTaskAggregateArgs>): Prisma.PrismaPromise<GetEvaluationTaskAggregateType<T>>

    /**
     * Group by EvaluationTask.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EvaluationTaskGroupByArgs} 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 EvaluationTaskGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: EvaluationTaskGroupByArgs['orderBy'] }
        : { orderBy?: EvaluationTaskGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, EvaluationTaskGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetEvaluationTaskGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the EvaluationTask model
   */
  readonly fields: EvaluationTaskFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for EvaluationTask.
   * 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__EvaluationTaskClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    evaluation<T extends Evaluation360DefaultArgs<ExtArgs> = {}>(args?: Subset<T, Evaluation360DefaultArgs<ExtArgs>>): Prisma__Evaluation360Client<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    responses<T extends EvaluationTask$responsesArgs<ExtArgs> = {}>(args?: Subset<T, EvaluationTask$responsesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the EvaluationTask model
   */
  interface EvaluationTaskFieldRefs {
    readonly id: FieldRef<"EvaluationTask", 'String'>
    readonly evaluationId: FieldRef<"EvaluationTask", 'String'>
    readonly evaluatorId: FieldRef<"EvaluationTask", 'String'>
    readonly relationType: FieldRef<"EvaluationTask", 'RelationType'>
    readonly status: FieldRef<"EvaluationTask", 'EvaluationTaskStatus'>
    readonly isAnonymous: FieldRef<"EvaluationTask", 'Boolean'>
    readonly submittedAt: FieldRef<"EvaluationTask", 'DateTime'>
    readonly createdAt: FieldRef<"EvaluationTask", 'DateTime'>
    readonly deletedAt: FieldRef<"EvaluationTask", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * EvaluationTask findUnique
   */
  export type EvaluationTaskFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationTask to fetch.
     */
    where: EvaluationTaskWhereUniqueInput
  }

  /**
   * EvaluationTask findUniqueOrThrow
   */
  export type EvaluationTaskFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationTask to fetch.
     */
    where: EvaluationTaskWhereUniqueInput
  }

  /**
   * EvaluationTask findFirst
   */
  export type EvaluationTaskFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationTask to fetch.
     */
    where?: EvaluationTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EvaluationTasks to fetch.
     */
    orderBy?: EvaluationTaskOrderByWithRelationInput | EvaluationTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for EvaluationTasks.
     */
    cursor?: EvaluationTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EvaluationTasks 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` EvaluationTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of EvaluationTasks.
     */
    distinct?: EvaluationTaskScalarFieldEnum | EvaluationTaskScalarFieldEnum[]
  }

  /**
   * EvaluationTask findFirstOrThrow
   */
  export type EvaluationTaskFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationTask to fetch.
     */
    where?: EvaluationTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EvaluationTasks to fetch.
     */
    orderBy?: EvaluationTaskOrderByWithRelationInput | EvaluationTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for EvaluationTasks.
     */
    cursor?: EvaluationTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EvaluationTasks 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` EvaluationTasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of EvaluationTasks.
     */
    distinct?: EvaluationTaskScalarFieldEnum | EvaluationTaskScalarFieldEnum[]
  }

  /**
   * EvaluationTask findMany
   */
  export type EvaluationTaskFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationTasks to fetch.
     */
    where?: EvaluationTaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EvaluationTasks to fetch.
     */
    orderBy?: EvaluationTaskOrderByWithRelationInput | EvaluationTaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing EvaluationTasks.
     */
    cursor?: EvaluationTaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EvaluationTasks 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` EvaluationTasks.
     */
    skip?: number
    distinct?: EvaluationTaskScalarFieldEnum | EvaluationTaskScalarFieldEnum[]
  }

  /**
   * EvaluationTask create
   */
  export type EvaluationTaskCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * The data needed to create a EvaluationTask.
     */
    data: XOR<EvaluationTaskCreateInput, EvaluationTaskUncheckedCreateInput>
  }

  /**
   * EvaluationTask createMany
   */
  export type EvaluationTaskCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many EvaluationTasks.
     */
    data: EvaluationTaskCreateManyInput | EvaluationTaskCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * EvaluationTask createManyAndReturn
   */
  export type EvaluationTaskCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * The data used to create many EvaluationTasks.
     */
    data: EvaluationTaskCreateManyInput | EvaluationTaskCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * EvaluationTask update
   */
  export type EvaluationTaskUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * The data needed to update a EvaluationTask.
     */
    data: XOR<EvaluationTaskUpdateInput, EvaluationTaskUncheckedUpdateInput>
    /**
     * Choose, which EvaluationTask to update.
     */
    where: EvaluationTaskWhereUniqueInput
  }

  /**
   * EvaluationTask updateMany
   */
  export type EvaluationTaskUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update EvaluationTasks.
     */
    data: XOR<EvaluationTaskUpdateManyMutationInput, EvaluationTaskUncheckedUpdateManyInput>
    /**
     * Filter which EvaluationTasks to update
     */
    where?: EvaluationTaskWhereInput
    /**
     * Limit how many EvaluationTasks to update.
     */
    limit?: number
  }

  /**
   * EvaluationTask updateManyAndReturn
   */
  export type EvaluationTaskUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * The data used to update EvaluationTasks.
     */
    data: XOR<EvaluationTaskUpdateManyMutationInput, EvaluationTaskUncheckedUpdateManyInput>
    /**
     * Filter which EvaluationTasks to update
     */
    where?: EvaluationTaskWhereInput
    /**
     * Limit how many EvaluationTasks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * EvaluationTask upsert
   */
  export type EvaluationTaskUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * The filter to search for the EvaluationTask to update in case it exists.
     */
    where: EvaluationTaskWhereUniqueInput
    /**
     * In case the EvaluationTask found by the `where` argument doesn't exist, create a new EvaluationTask with this data.
     */
    create: XOR<EvaluationTaskCreateInput, EvaluationTaskUncheckedCreateInput>
    /**
     * In case the EvaluationTask was found with the provided `where` argument, update it with this data.
     */
    update: XOR<EvaluationTaskUpdateInput, EvaluationTaskUncheckedUpdateInput>
  }

  /**
   * EvaluationTask delete
   */
  export type EvaluationTaskDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
    /**
     * Filter which EvaluationTask to delete.
     */
    where: EvaluationTaskWhereUniqueInput
  }

  /**
   * EvaluationTask deleteMany
   */
  export type EvaluationTaskDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which EvaluationTasks to delete
     */
    where?: EvaluationTaskWhereInput
    /**
     * Limit how many EvaluationTasks to delete.
     */
    limit?: number
  }

  /**
   * EvaluationTask.responses
   */
  export type EvaluationTask$responsesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    where?: EvaluationResponseWhereInput
    orderBy?: EvaluationResponseOrderByWithRelationInput | EvaluationResponseOrderByWithRelationInput[]
    cursor?: EvaluationResponseWhereUniqueInput
    take?: number
    skip?: number
    distinct?: EvaluationResponseScalarFieldEnum | EvaluationResponseScalarFieldEnum[]
  }

  /**
   * EvaluationTask without action
   */
  export type EvaluationTaskDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationTask
     */
    select?: EvaluationTaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationTask
     */
    omit?: EvaluationTaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationTaskInclude<ExtArgs> | null
  }


  /**
   * Model EvaluationResponse
   */

  export type AggregateEvaluationResponse = {
    _count: EvaluationResponseCountAggregateOutputType | null
    _avg: EvaluationResponseAvgAggregateOutputType | null
    _sum: EvaluationResponseSumAggregateOutputType | null
    _min: EvaluationResponseMinAggregateOutputType | null
    _max: EvaluationResponseMaxAggregateOutputType | null
  }

  export type EvaluationResponseAvgAggregateOutputType = {
    score: Decimal | null
  }

  export type EvaluationResponseSumAggregateOutputType = {
    score: Decimal | null
  }

  export type EvaluationResponseMinAggregateOutputType = {
    id: string | null
    taskId: string | null
    dimension: string | null
    score: Decimal | null
    comment: string | null
    deletedAt: Date | null
  }

  export type EvaluationResponseMaxAggregateOutputType = {
    id: string | null
    taskId: string | null
    dimension: string | null
    score: Decimal | null
    comment: string | null
    deletedAt: Date | null
  }

  export type EvaluationResponseCountAggregateOutputType = {
    id: number
    taskId: number
    dimension: number
    score: number
    comment: number
    deletedAt: number
    _all: number
  }


  export type EvaluationResponseAvgAggregateInputType = {
    score?: true
  }

  export type EvaluationResponseSumAggregateInputType = {
    score?: true
  }

  export type EvaluationResponseMinAggregateInputType = {
    id?: true
    taskId?: true
    dimension?: true
    score?: true
    comment?: true
    deletedAt?: true
  }

  export type EvaluationResponseMaxAggregateInputType = {
    id?: true
    taskId?: true
    dimension?: true
    score?: true
    comment?: true
    deletedAt?: true
  }

  export type EvaluationResponseCountAggregateInputType = {
    id?: true
    taskId?: true
    dimension?: true
    score?: true
    comment?: true
    deletedAt?: true
    _all?: true
  }

  export type EvaluationResponseAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which EvaluationResponse to aggregate.
     */
    where?: EvaluationResponseWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EvaluationResponses to fetch.
     */
    orderBy?: EvaluationResponseOrderByWithRelationInput | EvaluationResponseOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: EvaluationResponseWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EvaluationResponses 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` EvaluationResponses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned EvaluationResponses
    **/
    _count?: true | EvaluationResponseCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: EvaluationResponseAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: EvaluationResponseSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: EvaluationResponseMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: EvaluationResponseMaxAggregateInputType
  }

  export type GetEvaluationResponseAggregateType<T extends EvaluationResponseAggregateArgs> = {
        [P in keyof T & keyof AggregateEvaluationResponse]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateEvaluationResponse[P]>
      : GetScalarType<T[P], AggregateEvaluationResponse[P]>
  }




  export type EvaluationResponseGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: EvaluationResponseWhereInput
    orderBy?: EvaluationResponseOrderByWithAggregationInput | EvaluationResponseOrderByWithAggregationInput[]
    by: EvaluationResponseScalarFieldEnum[] | EvaluationResponseScalarFieldEnum
    having?: EvaluationResponseScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: EvaluationResponseCountAggregateInputType | true
    _avg?: EvaluationResponseAvgAggregateInputType
    _sum?: EvaluationResponseSumAggregateInputType
    _min?: EvaluationResponseMinAggregateInputType
    _max?: EvaluationResponseMaxAggregateInputType
  }

  export type EvaluationResponseGroupByOutputType = {
    id: string
    taskId: string
    dimension: string
    score: Decimal
    comment: string | null
    deletedAt: Date | null
    _count: EvaluationResponseCountAggregateOutputType | null
    _avg: EvaluationResponseAvgAggregateOutputType | null
    _sum: EvaluationResponseSumAggregateOutputType | null
    _min: EvaluationResponseMinAggregateOutputType | null
    _max: EvaluationResponseMaxAggregateOutputType | null
  }

  type GetEvaluationResponseGroupByPayload<T extends EvaluationResponseGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<EvaluationResponseGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof EvaluationResponseGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], EvaluationResponseGroupByOutputType[P]>
            : GetScalarType<T[P], EvaluationResponseGroupByOutputType[P]>
        }
      >
    >


  export type EvaluationResponseSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    dimension?: boolean
    score?: boolean
    comment?: boolean
    deletedAt?: boolean
    task?: boolean | EvaluationTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["evaluationResponse"]>

  export type EvaluationResponseSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    dimension?: boolean
    score?: boolean
    comment?: boolean
    deletedAt?: boolean
    task?: boolean | EvaluationTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["evaluationResponse"]>

  export type EvaluationResponseSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    taskId?: boolean
    dimension?: boolean
    score?: boolean
    comment?: boolean
    deletedAt?: boolean
    task?: boolean | EvaluationTaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["evaluationResponse"]>

  export type EvaluationResponseSelectScalar = {
    id?: boolean
    taskId?: boolean
    dimension?: boolean
    score?: boolean
    comment?: boolean
    deletedAt?: boolean
  }

  export type EvaluationResponseOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "taskId" | "dimension" | "score" | "comment" | "deletedAt", ExtArgs["result"]["evaluationResponse"]>
  export type EvaluationResponseInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | EvaluationTaskDefaultArgs<ExtArgs>
  }
  export type EvaluationResponseIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | EvaluationTaskDefaultArgs<ExtArgs>
  }
  export type EvaluationResponseIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | EvaluationTaskDefaultArgs<ExtArgs>
  }

  export type $EvaluationResponsePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "EvaluationResponse"
    objects: {
      task: Prisma.$EvaluationTaskPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      taskId: string
      dimension: string
      score: Prisma.Decimal
      comment: string | null
      deletedAt: Date | null
    }, ExtArgs["result"]["evaluationResponse"]>
    composites: {}
  }

  type EvaluationResponseGetPayload<S extends boolean | null | undefined | EvaluationResponseDefaultArgs> = $Result.GetResult<Prisma.$EvaluationResponsePayload, S>

  type EvaluationResponseCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<EvaluationResponseFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: EvaluationResponseCountAggregateInputType | true
    }

  export interface EvaluationResponseDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['EvaluationResponse'], meta: { name: 'EvaluationResponse' } }
    /**
     * Find zero or one EvaluationResponse that matches the filter.
     * @param {EvaluationResponseFindUniqueArgs} args - Arguments to find a EvaluationResponse
     * @example
     * // Get one EvaluationResponse
     * const evaluationResponse = await prisma.evaluationResponse.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends EvaluationResponseFindUniqueArgs>(args: SelectSubset<T, EvaluationResponseFindUniqueArgs<ExtArgs>>): Prisma__EvaluationResponseClient<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one EvaluationResponse that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {EvaluationResponseFindUniqueOrThrowArgs} args - Arguments to find a EvaluationResponse
     * @example
     * // Get one EvaluationResponse
     * const evaluationResponse = await prisma.evaluationResponse.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends EvaluationResponseFindUniqueOrThrowArgs>(args: SelectSubset<T, EvaluationResponseFindUniqueOrThrowArgs<ExtArgs>>): Prisma__EvaluationResponseClient<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first EvaluationResponse 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 {EvaluationResponseFindFirstArgs} args - Arguments to find a EvaluationResponse
     * @example
     * // Get one EvaluationResponse
     * const evaluationResponse = await prisma.evaluationResponse.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends EvaluationResponseFindFirstArgs>(args?: SelectSubset<T, EvaluationResponseFindFirstArgs<ExtArgs>>): Prisma__EvaluationResponseClient<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first EvaluationResponse 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 {EvaluationResponseFindFirstOrThrowArgs} args - Arguments to find a EvaluationResponse
     * @example
     * // Get one EvaluationResponse
     * const evaluationResponse = await prisma.evaluationResponse.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends EvaluationResponseFindFirstOrThrowArgs>(args?: SelectSubset<T, EvaluationResponseFindFirstOrThrowArgs<ExtArgs>>): Prisma__EvaluationResponseClient<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more EvaluationResponses 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 {EvaluationResponseFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all EvaluationResponses
     * const evaluationResponses = await prisma.evaluationResponse.findMany()
     * 
     * // Get first 10 EvaluationResponses
     * const evaluationResponses = await prisma.evaluationResponse.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const evaluationResponseWithIdOnly = await prisma.evaluationResponse.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends EvaluationResponseFindManyArgs>(args?: SelectSubset<T, EvaluationResponseFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a EvaluationResponse.
     * @param {EvaluationResponseCreateArgs} args - Arguments to create a EvaluationResponse.
     * @example
     * // Create one EvaluationResponse
     * const EvaluationResponse = await prisma.evaluationResponse.create({
     *   data: {
     *     // ... data to create a EvaluationResponse
     *   }
     * })
     * 
     */
    create<T extends EvaluationResponseCreateArgs>(args: SelectSubset<T, EvaluationResponseCreateArgs<ExtArgs>>): Prisma__EvaluationResponseClient<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many EvaluationResponses.
     * @param {EvaluationResponseCreateManyArgs} args - Arguments to create many EvaluationResponses.
     * @example
     * // Create many EvaluationResponses
     * const evaluationResponse = await prisma.evaluationResponse.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends EvaluationResponseCreateManyArgs>(args?: SelectSubset<T, EvaluationResponseCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many EvaluationResponses and returns the data saved in the database.
     * @param {EvaluationResponseCreateManyAndReturnArgs} args - Arguments to create many EvaluationResponses.
     * @example
     * // Create many EvaluationResponses
     * const evaluationResponse = await prisma.evaluationResponse.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many EvaluationResponses and only return the `id`
     * const evaluationResponseWithIdOnly = await prisma.evaluationResponse.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 EvaluationResponseCreateManyAndReturnArgs>(args?: SelectSubset<T, EvaluationResponseCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a EvaluationResponse.
     * @param {EvaluationResponseDeleteArgs} args - Arguments to delete one EvaluationResponse.
     * @example
     * // Delete one EvaluationResponse
     * const EvaluationResponse = await prisma.evaluationResponse.delete({
     *   where: {
     *     // ... filter to delete one EvaluationResponse
     *   }
     * })
     * 
     */
    delete<T extends EvaluationResponseDeleteArgs>(args: SelectSubset<T, EvaluationResponseDeleteArgs<ExtArgs>>): Prisma__EvaluationResponseClient<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one EvaluationResponse.
     * @param {EvaluationResponseUpdateArgs} args - Arguments to update one EvaluationResponse.
     * @example
     * // Update one EvaluationResponse
     * const evaluationResponse = await prisma.evaluationResponse.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends EvaluationResponseUpdateArgs>(args: SelectSubset<T, EvaluationResponseUpdateArgs<ExtArgs>>): Prisma__EvaluationResponseClient<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more EvaluationResponses.
     * @param {EvaluationResponseDeleteManyArgs} args - Arguments to filter EvaluationResponses to delete.
     * @example
     * // Delete a few EvaluationResponses
     * const { count } = await prisma.evaluationResponse.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends EvaluationResponseDeleteManyArgs>(args?: SelectSubset<T, EvaluationResponseDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more EvaluationResponses.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EvaluationResponseUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many EvaluationResponses
     * const evaluationResponse = await prisma.evaluationResponse.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends EvaluationResponseUpdateManyArgs>(args: SelectSubset<T, EvaluationResponseUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more EvaluationResponses and returns the data updated in the database.
     * @param {EvaluationResponseUpdateManyAndReturnArgs} args - Arguments to update many EvaluationResponses.
     * @example
     * // Update many EvaluationResponses
     * const evaluationResponse = await prisma.evaluationResponse.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more EvaluationResponses and only return the `id`
     * const evaluationResponseWithIdOnly = await prisma.evaluationResponse.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 EvaluationResponseUpdateManyAndReturnArgs>(args: SelectSubset<T, EvaluationResponseUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one EvaluationResponse.
     * @param {EvaluationResponseUpsertArgs} args - Arguments to update or create a EvaluationResponse.
     * @example
     * // Update or create a EvaluationResponse
     * const evaluationResponse = await prisma.evaluationResponse.upsert({
     *   create: {
     *     // ... data to create a EvaluationResponse
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the EvaluationResponse we want to update
     *   }
     * })
     */
    upsert<T extends EvaluationResponseUpsertArgs>(args: SelectSubset<T, EvaluationResponseUpsertArgs<ExtArgs>>): Prisma__EvaluationResponseClient<$Result.GetResult<Prisma.$EvaluationResponsePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of EvaluationResponses.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EvaluationResponseCountArgs} args - Arguments to filter EvaluationResponses to count.
     * @example
     * // Count the number of EvaluationResponses
     * const count = await prisma.evaluationResponse.count({
     *   where: {
     *     // ... the filter for the EvaluationResponses we want to count
     *   }
     * })
    **/
    count<T extends EvaluationResponseCountArgs>(
      args?: Subset<T, EvaluationResponseCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], EvaluationResponseCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a EvaluationResponse.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EvaluationResponseAggregateArgs} 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 EvaluationResponseAggregateArgs>(args: Subset<T, EvaluationResponseAggregateArgs>): Prisma.PrismaPromise<GetEvaluationResponseAggregateType<T>>

    /**
     * Group by EvaluationResponse.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {EvaluationResponseGroupByArgs} 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 EvaluationResponseGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: EvaluationResponseGroupByArgs['orderBy'] }
        : { orderBy?: EvaluationResponseGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, EvaluationResponseGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetEvaluationResponseGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the EvaluationResponse model
   */
  readonly fields: EvaluationResponseFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for EvaluationResponse.
   * 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__EvaluationResponseClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends EvaluationTaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, EvaluationTaskDefaultArgs<ExtArgs>>): Prisma__EvaluationTaskClient<$Result.GetResult<Prisma.$EvaluationTaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the EvaluationResponse model
   */
  interface EvaluationResponseFieldRefs {
    readonly id: FieldRef<"EvaluationResponse", 'String'>
    readonly taskId: FieldRef<"EvaluationResponse", 'String'>
    readonly dimension: FieldRef<"EvaluationResponse", 'String'>
    readonly score: FieldRef<"EvaluationResponse", 'Decimal'>
    readonly comment: FieldRef<"EvaluationResponse", 'String'>
    readonly deletedAt: FieldRef<"EvaluationResponse", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * EvaluationResponse findUnique
   */
  export type EvaluationResponseFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationResponse to fetch.
     */
    where: EvaluationResponseWhereUniqueInput
  }

  /**
   * EvaluationResponse findUniqueOrThrow
   */
  export type EvaluationResponseFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationResponse to fetch.
     */
    where: EvaluationResponseWhereUniqueInput
  }

  /**
   * EvaluationResponse findFirst
   */
  export type EvaluationResponseFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationResponse to fetch.
     */
    where?: EvaluationResponseWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EvaluationResponses to fetch.
     */
    orderBy?: EvaluationResponseOrderByWithRelationInput | EvaluationResponseOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for EvaluationResponses.
     */
    cursor?: EvaluationResponseWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EvaluationResponses 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` EvaluationResponses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of EvaluationResponses.
     */
    distinct?: EvaluationResponseScalarFieldEnum | EvaluationResponseScalarFieldEnum[]
  }

  /**
   * EvaluationResponse findFirstOrThrow
   */
  export type EvaluationResponseFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationResponse to fetch.
     */
    where?: EvaluationResponseWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EvaluationResponses to fetch.
     */
    orderBy?: EvaluationResponseOrderByWithRelationInput | EvaluationResponseOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for EvaluationResponses.
     */
    cursor?: EvaluationResponseWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EvaluationResponses 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` EvaluationResponses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of EvaluationResponses.
     */
    distinct?: EvaluationResponseScalarFieldEnum | EvaluationResponseScalarFieldEnum[]
  }

  /**
   * EvaluationResponse findMany
   */
  export type EvaluationResponseFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * Filter, which EvaluationResponses to fetch.
     */
    where?: EvaluationResponseWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of EvaluationResponses to fetch.
     */
    orderBy?: EvaluationResponseOrderByWithRelationInput | EvaluationResponseOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing EvaluationResponses.
     */
    cursor?: EvaluationResponseWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` EvaluationResponses 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` EvaluationResponses.
     */
    skip?: number
    distinct?: EvaluationResponseScalarFieldEnum | EvaluationResponseScalarFieldEnum[]
  }

  /**
   * EvaluationResponse create
   */
  export type EvaluationResponseCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * The data needed to create a EvaluationResponse.
     */
    data: XOR<EvaluationResponseCreateInput, EvaluationResponseUncheckedCreateInput>
  }

  /**
   * EvaluationResponse createMany
   */
  export type EvaluationResponseCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many EvaluationResponses.
     */
    data: EvaluationResponseCreateManyInput | EvaluationResponseCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * EvaluationResponse createManyAndReturn
   */
  export type EvaluationResponseCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * The data used to create many EvaluationResponses.
     */
    data: EvaluationResponseCreateManyInput | EvaluationResponseCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * EvaluationResponse update
   */
  export type EvaluationResponseUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * The data needed to update a EvaluationResponse.
     */
    data: XOR<EvaluationResponseUpdateInput, EvaluationResponseUncheckedUpdateInput>
    /**
     * Choose, which EvaluationResponse to update.
     */
    where: EvaluationResponseWhereUniqueInput
  }

  /**
   * EvaluationResponse updateMany
   */
  export type EvaluationResponseUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update EvaluationResponses.
     */
    data: XOR<EvaluationResponseUpdateManyMutationInput, EvaluationResponseUncheckedUpdateManyInput>
    /**
     * Filter which EvaluationResponses to update
     */
    where?: EvaluationResponseWhereInput
    /**
     * Limit how many EvaluationResponses to update.
     */
    limit?: number
  }

  /**
   * EvaluationResponse updateManyAndReturn
   */
  export type EvaluationResponseUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * The data used to update EvaluationResponses.
     */
    data: XOR<EvaluationResponseUpdateManyMutationInput, EvaluationResponseUncheckedUpdateManyInput>
    /**
     * Filter which EvaluationResponses to update
     */
    where?: EvaluationResponseWhereInput
    /**
     * Limit how many EvaluationResponses to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * EvaluationResponse upsert
   */
  export type EvaluationResponseUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * The filter to search for the EvaluationResponse to update in case it exists.
     */
    where: EvaluationResponseWhereUniqueInput
    /**
     * In case the EvaluationResponse found by the `where` argument doesn't exist, create a new EvaluationResponse with this data.
     */
    create: XOR<EvaluationResponseCreateInput, EvaluationResponseUncheckedCreateInput>
    /**
     * In case the EvaluationResponse was found with the provided `where` argument, update it with this data.
     */
    update: XOR<EvaluationResponseUpdateInput, EvaluationResponseUncheckedUpdateInput>
  }

  /**
   * EvaluationResponse delete
   */
  export type EvaluationResponseDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
    /**
     * Filter which EvaluationResponse to delete.
     */
    where: EvaluationResponseWhereUniqueInput
  }

  /**
   * EvaluationResponse deleteMany
   */
  export type EvaluationResponseDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which EvaluationResponses to delete
     */
    where?: EvaluationResponseWhereInput
    /**
     * Limit how many EvaluationResponses to delete.
     */
    limit?: number
  }

  /**
   * EvaluationResponse without action
   */
  export type EvaluationResponseDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the EvaluationResponse
     */
    select?: EvaluationResponseSelect<ExtArgs> | null
    /**
     * Omit specific fields from the EvaluationResponse
     */
    omit?: EvaluationResponseOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: EvaluationResponseInclude<ExtArgs> | null
  }


  /**
   * Model GradeAdjustmentLog
   */

  export type AggregateGradeAdjustmentLog = {
    _count: GradeAdjustmentLogCountAggregateOutputType | null
    _min: GradeAdjustmentLogMinAggregateOutputType | null
    _max: GradeAdjustmentLogMaxAggregateOutputType | null
  }

  export type GradeAdjustmentLogMinAggregateOutputType = {
    id: string | null
    resultId: string | null
    previousGradeCode: string | null
    newGradeCode: string | null
    reason: string | null
    adjustedBy: string | null
    adjustedAt: Date | null
    deletedAt: Date | null
  }

  export type GradeAdjustmentLogMaxAggregateOutputType = {
    id: string | null
    resultId: string | null
    previousGradeCode: string | null
    newGradeCode: string | null
    reason: string | null
    adjustedBy: string | null
    adjustedAt: Date | null
    deletedAt: Date | null
  }

  export type GradeAdjustmentLogCountAggregateOutputType = {
    id: number
    resultId: number
    previousGradeCode: number
    newGradeCode: number
    reason: number
    adjustedBy: number
    adjustedAt: number
    deletedAt: number
    _all: number
  }


  export type GradeAdjustmentLogMinAggregateInputType = {
    id?: true
    resultId?: true
    previousGradeCode?: true
    newGradeCode?: true
    reason?: true
    adjustedBy?: true
    adjustedAt?: true
    deletedAt?: true
  }

  export type GradeAdjustmentLogMaxAggregateInputType = {
    id?: true
    resultId?: true
    previousGradeCode?: true
    newGradeCode?: true
    reason?: true
    adjustedBy?: true
    adjustedAt?: true
    deletedAt?: true
  }

  export type GradeAdjustmentLogCountAggregateInputType = {
    id?: true
    resultId?: true
    previousGradeCode?: true
    newGradeCode?: true
    reason?: true
    adjustedBy?: true
    adjustedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type GradeAdjustmentLogAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which GradeAdjustmentLog to aggregate.
     */
    where?: GradeAdjustmentLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GradeAdjustmentLogs to fetch.
     */
    orderBy?: GradeAdjustmentLogOrderByWithRelationInput | GradeAdjustmentLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: GradeAdjustmentLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GradeAdjustmentLogs 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` GradeAdjustmentLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned GradeAdjustmentLogs
    **/
    _count?: true | GradeAdjustmentLogCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: GradeAdjustmentLogMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: GradeAdjustmentLogMaxAggregateInputType
  }

  export type GetGradeAdjustmentLogAggregateType<T extends GradeAdjustmentLogAggregateArgs> = {
        [P in keyof T & keyof AggregateGradeAdjustmentLog]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateGradeAdjustmentLog[P]>
      : GetScalarType<T[P], AggregateGradeAdjustmentLog[P]>
  }




  export type GradeAdjustmentLogGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: GradeAdjustmentLogWhereInput
    orderBy?: GradeAdjustmentLogOrderByWithAggregationInput | GradeAdjustmentLogOrderByWithAggregationInput[]
    by: GradeAdjustmentLogScalarFieldEnum[] | GradeAdjustmentLogScalarFieldEnum
    having?: GradeAdjustmentLogScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: GradeAdjustmentLogCountAggregateInputType | true
    _min?: GradeAdjustmentLogMinAggregateInputType
    _max?: GradeAdjustmentLogMaxAggregateInputType
  }

  export type GradeAdjustmentLogGroupByOutputType = {
    id: string
    resultId: string
    previousGradeCode: string
    newGradeCode: string
    reason: string
    adjustedBy: string
    adjustedAt: Date
    deletedAt: Date | null
    _count: GradeAdjustmentLogCountAggregateOutputType | null
    _min: GradeAdjustmentLogMinAggregateOutputType | null
    _max: GradeAdjustmentLogMaxAggregateOutputType | null
  }

  type GetGradeAdjustmentLogGroupByPayload<T extends GradeAdjustmentLogGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<GradeAdjustmentLogGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof GradeAdjustmentLogGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], GradeAdjustmentLogGroupByOutputType[P]>
            : GetScalarType<T[P], GradeAdjustmentLogGroupByOutputType[P]>
        }
      >
    >


  export type GradeAdjustmentLogSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    resultId?: boolean
    previousGradeCode?: boolean
    newGradeCode?: boolean
    reason?: boolean
    adjustedBy?: boolean
    adjustedAt?: boolean
    deletedAt?: boolean
    result?: boolean | PerformanceResultDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["gradeAdjustmentLog"]>

  export type GradeAdjustmentLogSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    resultId?: boolean
    previousGradeCode?: boolean
    newGradeCode?: boolean
    reason?: boolean
    adjustedBy?: boolean
    adjustedAt?: boolean
    deletedAt?: boolean
    result?: boolean | PerformanceResultDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["gradeAdjustmentLog"]>

  export type GradeAdjustmentLogSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    resultId?: boolean
    previousGradeCode?: boolean
    newGradeCode?: boolean
    reason?: boolean
    adjustedBy?: boolean
    adjustedAt?: boolean
    deletedAt?: boolean
    result?: boolean | PerformanceResultDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["gradeAdjustmentLog"]>

  export type GradeAdjustmentLogSelectScalar = {
    id?: boolean
    resultId?: boolean
    previousGradeCode?: boolean
    newGradeCode?: boolean
    reason?: boolean
    adjustedBy?: boolean
    adjustedAt?: boolean
    deletedAt?: boolean
  }

  export type GradeAdjustmentLogOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "resultId" | "previousGradeCode" | "newGradeCode" | "reason" | "adjustedBy" | "adjustedAt" | "deletedAt", ExtArgs["result"]["gradeAdjustmentLog"]>
  export type GradeAdjustmentLogInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    result?: boolean | PerformanceResultDefaultArgs<ExtArgs>
  }
  export type GradeAdjustmentLogIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    result?: boolean | PerformanceResultDefaultArgs<ExtArgs>
  }
  export type GradeAdjustmentLogIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    result?: boolean | PerformanceResultDefaultArgs<ExtArgs>
  }

  export type $GradeAdjustmentLogPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "GradeAdjustmentLog"
    objects: {
      result: Prisma.$PerformanceResultPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      resultId: string
      previousGradeCode: string
      newGradeCode: string
      reason: string
      adjustedBy: string
      adjustedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["gradeAdjustmentLog"]>
    composites: {}
  }

  type GradeAdjustmentLogGetPayload<S extends boolean | null | undefined | GradeAdjustmentLogDefaultArgs> = $Result.GetResult<Prisma.$GradeAdjustmentLogPayload, S>

  type GradeAdjustmentLogCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<GradeAdjustmentLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: GradeAdjustmentLogCountAggregateInputType | true
    }

  export interface GradeAdjustmentLogDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['GradeAdjustmentLog'], meta: { name: 'GradeAdjustmentLog' } }
    /**
     * Find zero or one GradeAdjustmentLog that matches the filter.
     * @param {GradeAdjustmentLogFindUniqueArgs} args - Arguments to find a GradeAdjustmentLog
     * @example
     * // Get one GradeAdjustmentLog
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends GradeAdjustmentLogFindUniqueArgs>(args: SelectSubset<T, GradeAdjustmentLogFindUniqueArgs<ExtArgs>>): Prisma__GradeAdjustmentLogClient<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one GradeAdjustmentLog that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {GradeAdjustmentLogFindUniqueOrThrowArgs} args - Arguments to find a GradeAdjustmentLog
     * @example
     * // Get one GradeAdjustmentLog
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends GradeAdjustmentLogFindUniqueOrThrowArgs>(args: SelectSubset<T, GradeAdjustmentLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma__GradeAdjustmentLogClient<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first GradeAdjustmentLog 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 {GradeAdjustmentLogFindFirstArgs} args - Arguments to find a GradeAdjustmentLog
     * @example
     * // Get one GradeAdjustmentLog
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends GradeAdjustmentLogFindFirstArgs>(args?: SelectSubset<T, GradeAdjustmentLogFindFirstArgs<ExtArgs>>): Prisma__GradeAdjustmentLogClient<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first GradeAdjustmentLog 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 {GradeAdjustmentLogFindFirstOrThrowArgs} args - Arguments to find a GradeAdjustmentLog
     * @example
     * // Get one GradeAdjustmentLog
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends GradeAdjustmentLogFindFirstOrThrowArgs>(args?: SelectSubset<T, GradeAdjustmentLogFindFirstOrThrowArgs<ExtArgs>>): Prisma__GradeAdjustmentLogClient<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more GradeAdjustmentLogs 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 {GradeAdjustmentLogFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all GradeAdjustmentLogs
     * const gradeAdjustmentLogs = await prisma.gradeAdjustmentLog.findMany()
     * 
     * // Get first 10 GradeAdjustmentLogs
     * const gradeAdjustmentLogs = await prisma.gradeAdjustmentLog.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const gradeAdjustmentLogWithIdOnly = await prisma.gradeAdjustmentLog.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends GradeAdjustmentLogFindManyArgs>(args?: SelectSubset<T, GradeAdjustmentLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a GradeAdjustmentLog.
     * @param {GradeAdjustmentLogCreateArgs} args - Arguments to create a GradeAdjustmentLog.
     * @example
     * // Create one GradeAdjustmentLog
     * const GradeAdjustmentLog = await prisma.gradeAdjustmentLog.create({
     *   data: {
     *     // ... data to create a GradeAdjustmentLog
     *   }
     * })
     * 
     */
    create<T extends GradeAdjustmentLogCreateArgs>(args: SelectSubset<T, GradeAdjustmentLogCreateArgs<ExtArgs>>): Prisma__GradeAdjustmentLogClient<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many GradeAdjustmentLogs.
     * @param {GradeAdjustmentLogCreateManyArgs} args - Arguments to create many GradeAdjustmentLogs.
     * @example
     * // Create many GradeAdjustmentLogs
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends GradeAdjustmentLogCreateManyArgs>(args?: SelectSubset<T, GradeAdjustmentLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many GradeAdjustmentLogs and returns the data saved in the database.
     * @param {GradeAdjustmentLogCreateManyAndReturnArgs} args - Arguments to create many GradeAdjustmentLogs.
     * @example
     * // Create many GradeAdjustmentLogs
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many GradeAdjustmentLogs and only return the `id`
     * const gradeAdjustmentLogWithIdOnly = await prisma.gradeAdjustmentLog.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 GradeAdjustmentLogCreateManyAndReturnArgs>(args?: SelectSubset<T, GradeAdjustmentLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a GradeAdjustmentLog.
     * @param {GradeAdjustmentLogDeleteArgs} args - Arguments to delete one GradeAdjustmentLog.
     * @example
     * // Delete one GradeAdjustmentLog
     * const GradeAdjustmentLog = await prisma.gradeAdjustmentLog.delete({
     *   where: {
     *     // ... filter to delete one GradeAdjustmentLog
     *   }
     * })
     * 
     */
    delete<T extends GradeAdjustmentLogDeleteArgs>(args: SelectSubset<T, GradeAdjustmentLogDeleteArgs<ExtArgs>>): Prisma__GradeAdjustmentLogClient<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one GradeAdjustmentLog.
     * @param {GradeAdjustmentLogUpdateArgs} args - Arguments to update one GradeAdjustmentLog.
     * @example
     * // Update one GradeAdjustmentLog
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends GradeAdjustmentLogUpdateArgs>(args: SelectSubset<T, GradeAdjustmentLogUpdateArgs<ExtArgs>>): Prisma__GradeAdjustmentLogClient<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more GradeAdjustmentLogs.
     * @param {GradeAdjustmentLogDeleteManyArgs} args - Arguments to filter GradeAdjustmentLogs to delete.
     * @example
     * // Delete a few GradeAdjustmentLogs
     * const { count } = await prisma.gradeAdjustmentLog.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends GradeAdjustmentLogDeleteManyArgs>(args?: SelectSubset<T, GradeAdjustmentLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more GradeAdjustmentLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GradeAdjustmentLogUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many GradeAdjustmentLogs
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends GradeAdjustmentLogUpdateManyArgs>(args: SelectSubset<T, GradeAdjustmentLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more GradeAdjustmentLogs and returns the data updated in the database.
     * @param {GradeAdjustmentLogUpdateManyAndReturnArgs} args - Arguments to update many GradeAdjustmentLogs.
     * @example
     * // Update many GradeAdjustmentLogs
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more GradeAdjustmentLogs and only return the `id`
     * const gradeAdjustmentLogWithIdOnly = await prisma.gradeAdjustmentLog.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 GradeAdjustmentLogUpdateManyAndReturnArgs>(args: SelectSubset<T, GradeAdjustmentLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one GradeAdjustmentLog.
     * @param {GradeAdjustmentLogUpsertArgs} args - Arguments to update or create a GradeAdjustmentLog.
     * @example
     * // Update or create a GradeAdjustmentLog
     * const gradeAdjustmentLog = await prisma.gradeAdjustmentLog.upsert({
     *   create: {
     *     // ... data to create a GradeAdjustmentLog
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the GradeAdjustmentLog we want to update
     *   }
     * })
     */
    upsert<T extends GradeAdjustmentLogUpsertArgs>(args: SelectSubset<T, GradeAdjustmentLogUpsertArgs<ExtArgs>>): Prisma__GradeAdjustmentLogClient<$Result.GetResult<Prisma.$GradeAdjustmentLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of GradeAdjustmentLogs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GradeAdjustmentLogCountArgs} args - Arguments to filter GradeAdjustmentLogs to count.
     * @example
     * // Count the number of GradeAdjustmentLogs
     * const count = await prisma.gradeAdjustmentLog.count({
     *   where: {
     *     // ... the filter for the GradeAdjustmentLogs we want to count
     *   }
     * })
    **/
    count<T extends GradeAdjustmentLogCountArgs>(
      args?: Subset<T, GradeAdjustmentLogCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], GradeAdjustmentLogCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a GradeAdjustmentLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GradeAdjustmentLogAggregateArgs} 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 GradeAdjustmentLogAggregateArgs>(args: Subset<T, GradeAdjustmentLogAggregateArgs>): Prisma.PrismaPromise<GetGradeAdjustmentLogAggregateType<T>>

    /**
     * Group by GradeAdjustmentLog.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {GradeAdjustmentLogGroupByArgs} 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 GradeAdjustmentLogGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: GradeAdjustmentLogGroupByArgs['orderBy'] }
        : { orderBy?: GradeAdjustmentLogGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, GradeAdjustmentLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetGradeAdjustmentLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the GradeAdjustmentLog model
   */
  readonly fields: GradeAdjustmentLogFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for GradeAdjustmentLog.
   * 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__GradeAdjustmentLogClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    result<T extends PerformanceResultDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceResultDefaultArgs<ExtArgs>>): Prisma__PerformanceResultClient<$Result.GetResult<Prisma.$PerformanceResultPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the GradeAdjustmentLog model
   */
  interface GradeAdjustmentLogFieldRefs {
    readonly id: FieldRef<"GradeAdjustmentLog", 'String'>
    readonly resultId: FieldRef<"GradeAdjustmentLog", 'String'>
    readonly previousGradeCode: FieldRef<"GradeAdjustmentLog", 'String'>
    readonly newGradeCode: FieldRef<"GradeAdjustmentLog", 'String'>
    readonly reason: FieldRef<"GradeAdjustmentLog", 'String'>
    readonly adjustedBy: FieldRef<"GradeAdjustmentLog", 'String'>
    readonly adjustedAt: FieldRef<"GradeAdjustmentLog", 'DateTime'>
    readonly deletedAt: FieldRef<"GradeAdjustmentLog", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * GradeAdjustmentLog findUnique
   */
  export type GradeAdjustmentLogFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * Filter, which GradeAdjustmentLog to fetch.
     */
    where: GradeAdjustmentLogWhereUniqueInput
  }

  /**
   * GradeAdjustmentLog findUniqueOrThrow
   */
  export type GradeAdjustmentLogFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * Filter, which GradeAdjustmentLog to fetch.
     */
    where: GradeAdjustmentLogWhereUniqueInput
  }

  /**
   * GradeAdjustmentLog findFirst
   */
  export type GradeAdjustmentLogFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * Filter, which GradeAdjustmentLog to fetch.
     */
    where?: GradeAdjustmentLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GradeAdjustmentLogs to fetch.
     */
    orderBy?: GradeAdjustmentLogOrderByWithRelationInput | GradeAdjustmentLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for GradeAdjustmentLogs.
     */
    cursor?: GradeAdjustmentLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GradeAdjustmentLogs 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` GradeAdjustmentLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of GradeAdjustmentLogs.
     */
    distinct?: GradeAdjustmentLogScalarFieldEnum | GradeAdjustmentLogScalarFieldEnum[]
  }

  /**
   * GradeAdjustmentLog findFirstOrThrow
   */
  export type GradeAdjustmentLogFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * Filter, which GradeAdjustmentLog to fetch.
     */
    where?: GradeAdjustmentLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GradeAdjustmentLogs to fetch.
     */
    orderBy?: GradeAdjustmentLogOrderByWithRelationInput | GradeAdjustmentLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for GradeAdjustmentLogs.
     */
    cursor?: GradeAdjustmentLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GradeAdjustmentLogs 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` GradeAdjustmentLogs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of GradeAdjustmentLogs.
     */
    distinct?: GradeAdjustmentLogScalarFieldEnum | GradeAdjustmentLogScalarFieldEnum[]
  }

  /**
   * GradeAdjustmentLog findMany
   */
  export type GradeAdjustmentLogFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * Filter, which GradeAdjustmentLogs to fetch.
     */
    where?: GradeAdjustmentLogWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of GradeAdjustmentLogs to fetch.
     */
    orderBy?: GradeAdjustmentLogOrderByWithRelationInput | GradeAdjustmentLogOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing GradeAdjustmentLogs.
     */
    cursor?: GradeAdjustmentLogWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` GradeAdjustmentLogs 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` GradeAdjustmentLogs.
     */
    skip?: number
    distinct?: GradeAdjustmentLogScalarFieldEnum | GradeAdjustmentLogScalarFieldEnum[]
  }

  /**
   * GradeAdjustmentLog create
   */
  export type GradeAdjustmentLogCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * The data needed to create a GradeAdjustmentLog.
     */
    data: XOR<GradeAdjustmentLogCreateInput, GradeAdjustmentLogUncheckedCreateInput>
  }

  /**
   * GradeAdjustmentLog createMany
   */
  export type GradeAdjustmentLogCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many GradeAdjustmentLogs.
     */
    data: GradeAdjustmentLogCreateManyInput | GradeAdjustmentLogCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * GradeAdjustmentLog createManyAndReturn
   */
  export type GradeAdjustmentLogCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * The data used to create many GradeAdjustmentLogs.
     */
    data: GradeAdjustmentLogCreateManyInput | GradeAdjustmentLogCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * GradeAdjustmentLog update
   */
  export type GradeAdjustmentLogUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * The data needed to update a GradeAdjustmentLog.
     */
    data: XOR<GradeAdjustmentLogUpdateInput, GradeAdjustmentLogUncheckedUpdateInput>
    /**
     * Choose, which GradeAdjustmentLog to update.
     */
    where: GradeAdjustmentLogWhereUniqueInput
  }

  /**
   * GradeAdjustmentLog updateMany
   */
  export type GradeAdjustmentLogUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update GradeAdjustmentLogs.
     */
    data: XOR<GradeAdjustmentLogUpdateManyMutationInput, GradeAdjustmentLogUncheckedUpdateManyInput>
    /**
     * Filter which GradeAdjustmentLogs to update
     */
    where?: GradeAdjustmentLogWhereInput
    /**
     * Limit how many GradeAdjustmentLogs to update.
     */
    limit?: number
  }

  /**
   * GradeAdjustmentLog updateManyAndReturn
   */
  export type GradeAdjustmentLogUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * The data used to update GradeAdjustmentLogs.
     */
    data: XOR<GradeAdjustmentLogUpdateManyMutationInput, GradeAdjustmentLogUncheckedUpdateManyInput>
    /**
     * Filter which GradeAdjustmentLogs to update
     */
    where?: GradeAdjustmentLogWhereInput
    /**
     * Limit how many GradeAdjustmentLogs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * GradeAdjustmentLog upsert
   */
  export type GradeAdjustmentLogUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * The filter to search for the GradeAdjustmentLog to update in case it exists.
     */
    where: GradeAdjustmentLogWhereUniqueInput
    /**
     * In case the GradeAdjustmentLog found by the `where` argument doesn't exist, create a new GradeAdjustmentLog with this data.
     */
    create: XOR<GradeAdjustmentLogCreateInput, GradeAdjustmentLogUncheckedCreateInput>
    /**
     * In case the GradeAdjustmentLog was found with the provided `where` argument, update it with this data.
     */
    update: XOR<GradeAdjustmentLogUpdateInput, GradeAdjustmentLogUncheckedUpdateInput>
  }

  /**
   * GradeAdjustmentLog delete
   */
  export type GradeAdjustmentLogDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
    /**
     * Filter which GradeAdjustmentLog to delete.
     */
    where: GradeAdjustmentLogWhereUniqueInput
  }

  /**
   * GradeAdjustmentLog deleteMany
   */
  export type GradeAdjustmentLogDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which GradeAdjustmentLogs to delete
     */
    where?: GradeAdjustmentLogWhereInput
    /**
     * Limit how many GradeAdjustmentLogs to delete.
     */
    limit?: number
  }

  /**
   * GradeAdjustmentLog without action
   */
  export type GradeAdjustmentLogDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the GradeAdjustmentLog
     */
    select?: GradeAdjustmentLogSelect<ExtArgs> | null
    /**
     * Omit specific fields from the GradeAdjustmentLog
     */
    omit?: GradeAdjustmentLogOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: GradeAdjustmentLogInclude<ExtArgs> | null
  }


  /**
   * Model StrategicObjective
   */

  export type AggregateStrategicObjective = {
    _count: StrategicObjectiveCountAggregateOutputType | null
    _avg: StrategicObjectiveAvgAggregateOutputType | null
    _sum: StrategicObjectiveSumAggregateOutputType | null
    _min: StrategicObjectiveMinAggregateOutputType | null
    _max: StrategicObjectiveMaxAggregateOutputType | null
  }

  export type StrategicObjectiveAvgAggregateOutputType = {
    seq: number | null
  }

  export type StrategicObjectiveSumAggregateOutputType = {
    seq: number | null
  }

  export type StrategicObjectiveMinAggregateOutputType = {
    id: string | null
    cycleId: string | null
    seq: number | null
    name: string | null
    description: string | null
    departmentId: string | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type StrategicObjectiveMaxAggregateOutputType = {
    id: string | null
    cycleId: string | null
    seq: number | null
    name: string | null
    description: string | null
    departmentId: string | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type StrategicObjectiveCountAggregateOutputType = {
    id: number
    cycleId: number
    seq: number
    name: number
    description: number
    departmentId: number
    createdBy: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type StrategicObjectiveAvgAggregateInputType = {
    seq?: true
  }

  export type StrategicObjectiveSumAggregateInputType = {
    seq?: true
  }

  export type StrategicObjectiveMinAggregateInputType = {
    id?: true
    cycleId?: true
    seq?: true
    name?: true
    description?: true
    departmentId?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type StrategicObjectiveMaxAggregateInputType = {
    id?: true
    cycleId?: true
    seq?: true
    name?: true
    description?: true
    departmentId?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type StrategicObjectiveCountAggregateInputType = {
    id?: true
    cycleId?: true
    seq?: true
    name?: true
    description?: true
    departmentId?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type StrategicObjectiveAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StrategicObjective to aggregate.
     */
    where?: StrategicObjectiveWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StrategicObjectives to fetch.
     */
    orderBy?: StrategicObjectiveOrderByWithRelationInput | StrategicObjectiveOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: StrategicObjectiveWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StrategicObjectives 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` StrategicObjectives.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned StrategicObjectives
    **/
    _count?: true | StrategicObjectiveCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: StrategicObjectiveAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: StrategicObjectiveSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: StrategicObjectiveMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: StrategicObjectiveMaxAggregateInputType
  }

  export type GetStrategicObjectiveAggregateType<T extends StrategicObjectiveAggregateArgs> = {
        [P in keyof T & keyof AggregateStrategicObjective]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateStrategicObjective[P]>
      : GetScalarType<T[P], AggregateStrategicObjective[P]>
  }




  export type StrategicObjectiveGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StrategicObjectiveWhereInput
    orderBy?: StrategicObjectiveOrderByWithAggregationInput | StrategicObjectiveOrderByWithAggregationInput[]
    by: StrategicObjectiveScalarFieldEnum[] | StrategicObjectiveScalarFieldEnum
    having?: StrategicObjectiveScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: StrategicObjectiveCountAggregateInputType | true
    _avg?: StrategicObjectiveAvgAggregateInputType
    _sum?: StrategicObjectiveSumAggregateInputType
    _min?: StrategicObjectiveMinAggregateInputType
    _max?: StrategicObjectiveMaxAggregateInputType
  }

  export type StrategicObjectiveGroupByOutputType = {
    id: string
    cycleId: string
    seq: number
    name: string
    description: string | null
    departmentId: string | null
    createdBy: string
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: StrategicObjectiveCountAggregateOutputType | null
    _avg: StrategicObjectiveAvgAggregateOutputType | null
    _sum: StrategicObjectiveSumAggregateOutputType | null
    _min: StrategicObjectiveMinAggregateOutputType | null
    _max: StrategicObjectiveMaxAggregateOutputType | null
  }

  type GetStrategicObjectiveGroupByPayload<T extends StrategicObjectiveGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<StrategicObjectiveGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof StrategicObjectiveGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], StrategicObjectiveGroupByOutputType[P]>
            : GetScalarType<T[P], StrategicObjectiveGroupByOutputType[P]>
        }
      >
    >


  export type StrategicObjectiveSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    seq?: boolean
    name?: boolean
    description?: boolean
    departmentId?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    assignments?: boolean | StrategicObjective$assignmentsArgs<ExtArgs>
    _count?: boolean | StrategicObjectiveCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["strategicObjective"]>

  export type StrategicObjectiveSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    seq?: boolean
    name?: boolean
    description?: boolean
    departmentId?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["strategicObjective"]>

  export type StrategicObjectiveSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    cycleId?: boolean
    seq?: boolean
    name?: boolean
    description?: boolean
    departmentId?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["strategicObjective"]>

  export type StrategicObjectiveSelectScalar = {
    id?: boolean
    cycleId?: boolean
    seq?: boolean
    name?: boolean
    description?: boolean
    departmentId?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type StrategicObjectiveOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "cycleId" | "seq" | "name" | "description" | "departmentId" | "createdBy" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["strategicObjective"]>
  export type StrategicObjectiveInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
    assignments?: boolean | StrategicObjective$assignmentsArgs<ExtArgs>
    _count?: boolean | StrategicObjectiveCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type StrategicObjectiveIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
  }
  export type StrategicObjectiveIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | PerformanceCycleDefaultArgs<ExtArgs>
  }

  export type $StrategicObjectivePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "StrategicObjective"
    objects: {
      cycle: Prisma.$PerformanceCyclePayload<ExtArgs>
      assignments: Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      cycleId: string
      /**
       * 序号
       */
      seq: number
      /**
       * 战略目标名称
       */
      name: string
      description: string | null
      /**
       * 责任部门
       */
      departmentId: string | null
      createdBy: string
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["strategicObjective"]>
    composites: {}
  }

  type StrategicObjectiveGetPayload<S extends boolean | null | undefined | StrategicObjectiveDefaultArgs> = $Result.GetResult<Prisma.$StrategicObjectivePayload, S>

  type StrategicObjectiveCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<StrategicObjectiveFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: StrategicObjectiveCountAggregateInputType | true
    }

  export interface StrategicObjectiveDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['StrategicObjective'], meta: { name: 'StrategicObjective' } }
    /**
     * Find zero or one StrategicObjective that matches the filter.
     * @param {StrategicObjectiveFindUniqueArgs} args - Arguments to find a StrategicObjective
     * @example
     * // Get one StrategicObjective
     * const strategicObjective = await prisma.strategicObjective.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends StrategicObjectiveFindUniqueArgs>(args: SelectSubset<T, StrategicObjectiveFindUniqueArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one StrategicObjective that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {StrategicObjectiveFindUniqueOrThrowArgs} args - Arguments to find a StrategicObjective
     * @example
     * // Get one StrategicObjective
     * const strategicObjective = await prisma.strategicObjective.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends StrategicObjectiveFindUniqueOrThrowArgs>(args: SelectSubset<T, StrategicObjectiveFindUniqueOrThrowArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StrategicObjective 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 {StrategicObjectiveFindFirstArgs} args - Arguments to find a StrategicObjective
     * @example
     * // Get one StrategicObjective
     * const strategicObjective = await prisma.strategicObjective.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends StrategicObjectiveFindFirstArgs>(args?: SelectSubset<T, StrategicObjectiveFindFirstArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StrategicObjective 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 {StrategicObjectiveFindFirstOrThrowArgs} args - Arguments to find a StrategicObjective
     * @example
     * // Get one StrategicObjective
     * const strategicObjective = await prisma.strategicObjective.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends StrategicObjectiveFindFirstOrThrowArgs>(args?: SelectSubset<T, StrategicObjectiveFindFirstOrThrowArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more StrategicObjectives 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 {StrategicObjectiveFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all StrategicObjectives
     * const strategicObjectives = await prisma.strategicObjective.findMany()
     * 
     * // Get first 10 StrategicObjectives
     * const strategicObjectives = await prisma.strategicObjective.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const strategicObjectiveWithIdOnly = await prisma.strategicObjective.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends StrategicObjectiveFindManyArgs>(args?: SelectSubset<T, StrategicObjectiveFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a StrategicObjective.
     * @param {StrategicObjectiveCreateArgs} args - Arguments to create a StrategicObjective.
     * @example
     * // Create one StrategicObjective
     * const StrategicObjective = await prisma.strategicObjective.create({
     *   data: {
     *     // ... data to create a StrategicObjective
     *   }
     * })
     * 
     */
    create<T extends StrategicObjectiveCreateArgs>(args: SelectSubset<T, StrategicObjectiveCreateArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many StrategicObjectives.
     * @param {StrategicObjectiveCreateManyArgs} args - Arguments to create many StrategicObjectives.
     * @example
     * // Create many StrategicObjectives
     * const strategicObjective = await prisma.strategicObjective.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends StrategicObjectiveCreateManyArgs>(args?: SelectSubset<T, StrategicObjectiveCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many StrategicObjectives and returns the data saved in the database.
     * @param {StrategicObjectiveCreateManyAndReturnArgs} args - Arguments to create many StrategicObjectives.
     * @example
     * // Create many StrategicObjectives
     * const strategicObjective = await prisma.strategicObjective.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many StrategicObjectives and only return the `id`
     * const strategicObjectiveWithIdOnly = await prisma.strategicObjective.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 StrategicObjectiveCreateManyAndReturnArgs>(args?: SelectSubset<T, StrategicObjectiveCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a StrategicObjective.
     * @param {StrategicObjectiveDeleteArgs} args - Arguments to delete one StrategicObjective.
     * @example
     * // Delete one StrategicObjective
     * const StrategicObjective = await prisma.strategicObjective.delete({
     *   where: {
     *     // ... filter to delete one StrategicObjective
     *   }
     * })
     * 
     */
    delete<T extends StrategicObjectiveDeleteArgs>(args: SelectSubset<T, StrategicObjectiveDeleteArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one StrategicObjective.
     * @param {StrategicObjectiveUpdateArgs} args - Arguments to update one StrategicObjective.
     * @example
     * // Update one StrategicObjective
     * const strategicObjective = await prisma.strategicObjective.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends StrategicObjectiveUpdateArgs>(args: SelectSubset<T, StrategicObjectiveUpdateArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more StrategicObjectives.
     * @param {StrategicObjectiveDeleteManyArgs} args - Arguments to filter StrategicObjectives to delete.
     * @example
     * // Delete a few StrategicObjectives
     * const { count } = await prisma.strategicObjective.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends StrategicObjectiveDeleteManyArgs>(args?: SelectSubset<T, StrategicObjectiveDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StrategicObjectives.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StrategicObjectiveUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many StrategicObjectives
     * const strategicObjective = await prisma.strategicObjective.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends StrategicObjectiveUpdateManyArgs>(args: SelectSubset<T, StrategicObjectiveUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StrategicObjectives and returns the data updated in the database.
     * @param {StrategicObjectiveUpdateManyAndReturnArgs} args - Arguments to update many StrategicObjectives.
     * @example
     * // Update many StrategicObjectives
     * const strategicObjective = await prisma.strategicObjective.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more StrategicObjectives and only return the `id`
     * const strategicObjectiveWithIdOnly = await prisma.strategicObjective.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 StrategicObjectiveUpdateManyAndReturnArgs>(args: SelectSubset<T, StrategicObjectiveUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one StrategicObjective.
     * @param {StrategicObjectiveUpsertArgs} args - Arguments to update or create a StrategicObjective.
     * @example
     * // Update or create a StrategicObjective
     * const strategicObjective = await prisma.strategicObjective.upsert({
     *   create: {
     *     // ... data to create a StrategicObjective
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the StrategicObjective we want to update
     *   }
     * })
     */
    upsert<T extends StrategicObjectiveUpsertArgs>(args: SelectSubset<T, StrategicObjectiveUpsertArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of StrategicObjectives.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StrategicObjectiveCountArgs} args - Arguments to filter StrategicObjectives to count.
     * @example
     * // Count the number of StrategicObjectives
     * const count = await prisma.strategicObjective.count({
     *   where: {
     *     // ... the filter for the StrategicObjectives we want to count
     *   }
     * })
    **/
    count<T extends StrategicObjectiveCountArgs>(
      args?: Subset<T, StrategicObjectiveCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], StrategicObjectiveCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a StrategicObjective.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StrategicObjectiveAggregateArgs} 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 StrategicObjectiveAggregateArgs>(args: Subset<T, StrategicObjectiveAggregateArgs>): Prisma.PrismaPromise<GetStrategicObjectiveAggregateType<T>>

    /**
     * Group by StrategicObjective.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StrategicObjectiveGroupByArgs} 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 StrategicObjectiveGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: StrategicObjectiveGroupByArgs['orderBy'] }
        : { orderBy?: StrategicObjectiveGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, StrategicObjectiveGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetStrategicObjectiveGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the StrategicObjective model
   */
  readonly fields: StrategicObjectiveFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for StrategicObjective.
   * 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__StrategicObjectiveClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    cycle<T extends PerformanceCycleDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PerformanceCycleDefaultArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    assignments<T extends StrategicObjective$assignmentsArgs<ExtArgs> = {}>(args?: Subset<T, StrategicObjective$assignmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the StrategicObjective model
   */
  interface StrategicObjectiveFieldRefs {
    readonly id: FieldRef<"StrategicObjective", 'String'>
    readonly cycleId: FieldRef<"StrategicObjective", 'String'>
    readonly seq: FieldRef<"StrategicObjective", 'Int'>
    readonly name: FieldRef<"StrategicObjective", 'String'>
    readonly description: FieldRef<"StrategicObjective", 'String'>
    readonly departmentId: FieldRef<"StrategicObjective", 'String'>
    readonly createdBy: FieldRef<"StrategicObjective", 'String'>
    readonly createdAt: FieldRef<"StrategicObjective", 'DateTime'>
    readonly updatedAt: FieldRef<"StrategicObjective", 'DateTime'>
    readonly deletedAt: FieldRef<"StrategicObjective", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * StrategicObjective findUnique
   */
  export type StrategicObjectiveFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjective to fetch.
     */
    where: StrategicObjectiveWhereUniqueInput
  }

  /**
   * StrategicObjective findUniqueOrThrow
   */
  export type StrategicObjectiveFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjective to fetch.
     */
    where: StrategicObjectiveWhereUniqueInput
  }

  /**
   * StrategicObjective findFirst
   */
  export type StrategicObjectiveFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjective to fetch.
     */
    where?: StrategicObjectiveWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StrategicObjectives to fetch.
     */
    orderBy?: StrategicObjectiveOrderByWithRelationInput | StrategicObjectiveOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StrategicObjectives.
     */
    cursor?: StrategicObjectiveWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StrategicObjectives 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` StrategicObjectives.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StrategicObjectives.
     */
    distinct?: StrategicObjectiveScalarFieldEnum | StrategicObjectiveScalarFieldEnum[]
  }

  /**
   * StrategicObjective findFirstOrThrow
   */
  export type StrategicObjectiveFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjective to fetch.
     */
    where?: StrategicObjectiveWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StrategicObjectives to fetch.
     */
    orderBy?: StrategicObjectiveOrderByWithRelationInput | StrategicObjectiveOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StrategicObjectives.
     */
    cursor?: StrategicObjectiveWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StrategicObjectives 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` StrategicObjectives.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StrategicObjectives.
     */
    distinct?: StrategicObjectiveScalarFieldEnum | StrategicObjectiveScalarFieldEnum[]
  }

  /**
   * StrategicObjective findMany
   */
  export type StrategicObjectiveFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjectives to fetch.
     */
    where?: StrategicObjectiveWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StrategicObjectives to fetch.
     */
    orderBy?: StrategicObjectiveOrderByWithRelationInput | StrategicObjectiveOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing StrategicObjectives.
     */
    cursor?: StrategicObjectiveWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StrategicObjectives 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` StrategicObjectives.
     */
    skip?: number
    distinct?: StrategicObjectiveScalarFieldEnum | StrategicObjectiveScalarFieldEnum[]
  }

  /**
   * StrategicObjective create
   */
  export type StrategicObjectiveCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * The data needed to create a StrategicObjective.
     */
    data: XOR<StrategicObjectiveCreateInput, StrategicObjectiveUncheckedCreateInput>
  }

  /**
   * StrategicObjective createMany
   */
  export type StrategicObjectiveCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many StrategicObjectives.
     */
    data: StrategicObjectiveCreateManyInput | StrategicObjectiveCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * StrategicObjective createManyAndReturn
   */
  export type StrategicObjectiveCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * The data used to create many StrategicObjectives.
     */
    data: StrategicObjectiveCreateManyInput | StrategicObjectiveCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * StrategicObjective update
   */
  export type StrategicObjectiveUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * The data needed to update a StrategicObjective.
     */
    data: XOR<StrategicObjectiveUpdateInput, StrategicObjectiveUncheckedUpdateInput>
    /**
     * Choose, which StrategicObjective to update.
     */
    where: StrategicObjectiveWhereUniqueInput
  }

  /**
   * StrategicObjective updateMany
   */
  export type StrategicObjectiveUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update StrategicObjectives.
     */
    data: XOR<StrategicObjectiveUpdateManyMutationInput, StrategicObjectiveUncheckedUpdateManyInput>
    /**
     * Filter which StrategicObjectives to update
     */
    where?: StrategicObjectiveWhereInput
    /**
     * Limit how many StrategicObjectives to update.
     */
    limit?: number
  }

  /**
   * StrategicObjective updateManyAndReturn
   */
  export type StrategicObjectiveUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * The data used to update StrategicObjectives.
     */
    data: XOR<StrategicObjectiveUpdateManyMutationInput, StrategicObjectiveUncheckedUpdateManyInput>
    /**
     * Filter which StrategicObjectives to update
     */
    where?: StrategicObjectiveWhereInput
    /**
     * Limit how many StrategicObjectives to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * StrategicObjective upsert
   */
  export type StrategicObjectiveUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * The filter to search for the StrategicObjective to update in case it exists.
     */
    where: StrategicObjectiveWhereUniqueInput
    /**
     * In case the StrategicObjective found by the `where` argument doesn't exist, create a new StrategicObjective with this data.
     */
    create: XOR<StrategicObjectiveCreateInput, StrategicObjectiveUncheckedCreateInput>
    /**
     * In case the StrategicObjective was found with the provided `where` argument, update it with this data.
     */
    update: XOR<StrategicObjectiveUpdateInput, StrategicObjectiveUncheckedUpdateInput>
  }

  /**
   * StrategicObjective delete
   */
  export type StrategicObjectiveDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
    /**
     * Filter which StrategicObjective to delete.
     */
    where: StrategicObjectiveWhereUniqueInput
  }

  /**
   * StrategicObjective deleteMany
   */
  export type StrategicObjectiveDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StrategicObjectives to delete
     */
    where?: StrategicObjectiveWhereInput
    /**
     * Limit how many StrategicObjectives to delete.
     */
    limit?: number
  }

  /**
   * StrategicObjective.assignments
   */
  export type StrategicObjective$assignmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    where?: StrategicObjectiveAssignmentWhereInput
    orderBy?: StrategicObjectiveAssignmentOrderByWithRelationInput | StrategicObjectiveAssignmentOrderByWithRelationInput[]
    cursor?: StrategicObjectiveAssignmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: StrategicObjectiveAssignmentScalarFieldEnum | StrategicObjectiveAssignmentScalarFieldEnum[]
  }

  /**
   * StrategicObjective without action
   */
  export type StrategicObjectiveDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjective
     */
    select?: StrategicObjectiveSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjective
     */
    omit?: StrategicObjectiveOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveInclude<ExtArgs> | null
  }


  /**
   * Model StrategicObjectiveAssignment
   */

  export type AggregateStrategicObjectiveAssignment = {
    _count: StrategicObjectiveAssignmentCountAggregateOutputType | null
    _min: StrategicObjectiveAssignmentMinAggregateOutputType | null
    _max: StrategicObjectiveAssignmentMaxAggregateOutputType | null
  }

  export type StrategicObjectiveAssignmentMinAggregateOutputType = {
    id: string | null
    objectiveId: string | null
    assigneeId: string | null
    createdAt: Date | null
    deletedAt: Date | null
  }

  export type StrategicObjectiveAssignmentMaxAggregateOutputType = {
    id: string | null
    objectiveId: string | null
    assigneeId: string | null
    createdAt: Date | null
    deletedAt: Date | null
  }

  export type StrategicObjectiveAssignmentCountAggregateOutputType = {
    id: number
    objectiveId: number
    assigneeId: number
    createdAt: number
    deletedAt: number
    _all: number
  }


  export type StrategicObjectiveAssignmentMinAggregateInputType = {
    id?: true
    objectiveId?: true
    assigneeId?: true
    createdAt?: true
    deletedAt?: true
  }

  export type StrategicObjectiveAssignmentMaxAggregateInputType = {
    id?: true
    objectiveId?: true
    assigneeId?: true
    createdAt?: true
    deletedAt?: true
  }

  export type StrategicObjectiveAssignmentCountAggregateInputType = {
    id?: true
    objectiveId?: true
    assigneeId?: true
    createdAt?: true
    deletedAt?: true
    _all?: true
  }

  export type StrategicObjectiveAssignmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StrategicObjectiveAssignment to aggregate.
     */
    where?: StrategicObjectiveAssignmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StrategicObjectiveAssignments to fetch.
     */
    orderBy?: StrategicObjectiveAssignmentOrderByWithRelationInput | StrategicObjectiveAssignmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: StrategicObjectiveAssignmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StrategicObjectiveAssignments 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` StrategicObjectiveAssignments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned StrategicObjectiveAssignments
    **/
    _count?: true | StrategicObjectiveAssignmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: StrategicObjectiveAssignmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: StrategicObjectiveAssignmentMaxAggregateInputType
  }

  export type GetStrategicObjectiveAssignmentAggregateType<T extends StrategicObjectiveAssignmentAggregateArgs> = {
        [P in keyof T & keyof AggregateStrategicObjectiveAssignment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateStrategicObjectiveAssignment[P]>
      : GetScalarType<T[P], AggregateStrategicObjectiveAssignment[P]>
  }




  export type StrategicObjectiveAssignmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: StrategicObjectiveAssignmentWhereInput
    orderBy?: StrategicObjectiveAssignmentOrderByWithAggregationInput | StrategicObjectiveAssignmentOrderByWithAggregationInput[]
    by: StrategicObjectiveAssignmentScalarFieldEnum[] | StrategicObjectiveAssignmentScalarFieldEnum
    having?: StrategicObjectiveAssignmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: StrategicObjectiveAssignmentCountAggregateInputType | true
    _min?: StrategicObjectiveAssignmentMinAggregateInputType
    _max?: StrategicObjectiveAssignmentMaxAggregateInputType
  }

  export type StrategicObjectiveAssignmentGroupByOutputType = {
    id: string
    objectiveId: string
    assigneeId: string
    createdAt: Date
    deletedAt: Date | null
    _count: StrategicObjectiveAssignmentCountAggregateOutputType | null
    _min: StrategicObjectiveAssignmentMinAggregateOutputType | null
    _max: StrategicObjectiveAssignmentMaxAggregateOutputType | null
  }

  type GetStrategicObjectiveAssignmentGroupByPayload<T extends StrategicObjectiveAssignmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<StrategicObjectiveAssignmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof StrategicObjectiveAssignmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], StrategicObjectiveAssignmentGroupByOutputType[P]>
            : GetScalarType<T[P], StrategicObjectiveAssignmentGroupByOutputType[P]>
        }
      >
    >


  export type StrategicObjectiveAssignmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    objectiveId?: boolean
    assigneeId?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    objective?: boolean | StrategicObjectiveDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["strategicObjectiveAssignment"]>

  export type StrategicObjectiveAssignmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    objectiveId?: boolean
    assigneeId?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    objective?: boolean | StrategicObjectiveDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["strategicObjectiveAssignment"]>

  export type StrategicObjectiveAssignmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    objectiveId?: boolean
    assigneeId?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    objective?: boolean | StrategicObjectiveDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["strategicObjectiveAssignment"]>

  export type StrategicObjectiveAssignmentSelectScalar = {
    id?: boolean
    objectiveId?: boolean
    assigneeId?: boolean
    createdAt?: boolean
    deletedAt?: boolean
  }

  export type StrategicObjectiveAssignmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "objectiveId" | "assigneeId" | "createdAt" | "deletedAt", ExtArgs["result"]["strategicObjectiveAssignment"]>
  export type StrategicObjectiveAssignmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    objective?: boolean | StrategicObjectiveDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type StrategicObjectiveAssignmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    objective?: boolean | StrategicObjectiveDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type StrategicObjectiveAssignmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    objective?: boolean | StrategicObjectiveDefaultArgs<ExtArgs>
    assignee?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $StrategicObjectiveAssignmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "StrategicObjectiveAssignment"
    objects: {
      objective: Prisma.$StrategicObjectivePayload<ExtArgs>
      assignee: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      objectiveId: string
      assigneeId: string
      createdAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["strategicObjectiveAssignment"]>
    composites: {}
  }

  type StrategicObjectiveAssignmentGetPayload<S extends boolean | null | undefined | StrategicObjectiveAssignmentDefaultArgs> = $Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload, S>

  type StrategicObjectiveAssignmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<StrategicObjectiveAssignmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: StrategicObjectiveAssignmentCountAggregateInputType | true
    }

  export interface StrategicObjectiveAssignmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['StrategicObjectiveAssignment'], meta: { name: 'StrategicObjectiveAssignment' } }
    /**
     * Find zero or one StrategicObjectiveAssignment that matches the filter.
     * @param {StrategicObjectiveAssignmentFindUniqueArgs} args - Arguments to find a StrategicObjectiveAssignment
     * @example
     * // Get one StrategicObjectiveAssignment
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends StrategicObjectiveAssignmentFindUniqueArgs>(args: SelectSubset<T, StrategicObjectiveAssignmentFindUniqueArgs<ExtArgs>>): Prisma__StrategicObjectiveAssignmentClient<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one StrategicObjectiveAssignment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {StrategicObjectiveAssignmentFindUniqueOrThrowArgs} args - Arguments to find a StrategicObjectiveAssignment
     * @example
     * // Get one StrategicObjectiveAssignment
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends StrategicObjectiveAssignmentFindUniqueOrThrowArgs>(args: SelectSubset<T, StrategicObjectiveAssignmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__StrategicObjectiveAssignmentClient<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StrategicObjectiveAssignment 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 {StrategicObjectiveAssignmentFindFirstArgs} args - Arguments to find a StrategicObjectiveAssignment
     * @example
     * // Get one StrategicObjectiveAssignment
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends StrategicObjectiveAssignmentFindFirstArgs>(args?: SelectSubset<T, StrategicObjectiveAssignmentFindFirstArgs<ExtArgs>>): Prisma__StrategicObjectiveAssignmentClient<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first StrategicObjectiveAssignment 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 {StrategicObjectiveAssignmentFindFirstOrThrowArgs} args - Arguments to find a StrategicObjectiveAssignment
     * @example
     * // Get one StrategicObjectiveAssignment
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends StrategicObjectiveAssignmentFindFirstOrThrowArgs>(args?: SelectSubset<T, StrategicObjectiveAssignmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__StrategicObjectiveAssignmentClient<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more StrategicObjectiveAssignments 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 {StrategicObjectiveAssignmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all StrategicObjectiveAssignments
     * const strategicObjectiveAssignments = await prisma.strategicObjectiveAssignment.findMany()
     * 
     * // Get first 10 StrategicObjectiveAssignments
     * const strategicObjectiveAssignments = await prisma.strategicObjectiveAssignment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const strategicObjectiveAssignmentWithIdOnly = await prisma.strategicObjectiveAssignment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends StrategicObjectiveAssignmentFindManyArgs>(args?: SelectSubset<T, StrategicObjectiveAssignmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a StrategicObjectiveAssignment.
     * @param {StrategicObjectiveAssignmentCreateArgs} args - Arguments to create a StrategicObjectiveAssignment.
     * @example
     * // Create one StrategicObjectiveAssignment
     * const StrategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.create({
     *   data: {
     *     // ... data to create a StrategicObjectiveAssignment
     *   }
     * })
     * 
     */
    create<T extends StrategicObjectiveAssignmentCreateArgs>(args: SelectSubset<T, StrategicObjectiveAssignmentCreateArgs<ExtArgs>>): Prisma__StrategicObjectiveAssignmentClient<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many StrategicObjectiveAssignments.
     * @param {StrategicObjectiveAssignmentCreateManyArgs} args - Arguments to create many StrategicObjectiveAssignments.
     * @example
     * // Create many StrategicObjectiveAssignments
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends StrategicObjectiveAssignmentCreateManyArgs>(args?: SelectSubset<T, StrategicObjectiveAssignmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many StrategicObjectiveAssignments and returns the data saved in the database.
     * @param {StrategicObjectiveAssignmentCreateManyAndReturnArgs} args - Arguments to create many StrategicObjectiveAssignments.
     * @example
     * // Create many StrategicObjectiveAssignments
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many StrategicObjectiveAssignments and only return the `id`
     * const strategicObjectiveAssignmentWithIdOnly = await prisma.strategicObjectiveAssignment.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 StrategicObjectiveAssignmentCreateManyAndReturnArgs>(args?: SelectSubset<T, StrategicObjectiveAssignmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a StrategicObjectiveAssignment.
     * @param {StrategicObjectiveAssignmentDeleteArgs} args - Arguments to delete one StrategicObjectiveAssignment.
     * @example
     * // Delete one StrategicObjectiveAssignment
     * const StrategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.delete({
     *   where: {
     *     // ... filter to delete one StrategicObjectiveAssignment
     *   }
     * })
     * 
     */
    delete<T extends StrategicObjectiveAssignmentDeleteArgs>(args: SelectSubset<T, StrategicObjectiveAssignmentDeleteArgs<ExtArgs>>): Prisma__StrategicObjectiveAssignmentClient<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one StrategicObjectiveAssignment.
     * @param {StrategicObjectiveAssignmentUpdateArgs} args - Arguments to update one StrategicObjectiveAssignment.
     * @example
     * // Update one StrategicObjectiveAssignment
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends StrategicObjectiveAssignmentUpdateArgs>(args: SelectSubset<T, StrategicObjectiveAssignmentUpdateArgs<ExtArgs>>): Prisma__StrategicObjectiveAssignmentClient<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more StrategicObjectiveAssignments.
     * @param {StrategicObjectiveAssignmentDeleteManyArgs} args - Arguments to filter StrategicObjectiveAssignments to delete.
     * @example
     * // Delete a few StrategicObjectiveAssignments
     * const { count } = await prisma.strategicObjectiveAssignment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends StrategicObjectiveAssignmentDeleteManyArgs>(args?: SelectSubset<T, StrategicObjectiveAssignmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StrategicObjectiveAssignments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StrategicObjectiveAssignmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many StrategicObjectiveAssignments
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends StrategicObjectiveAssignmentUpdateManyArgs>(args: SelectSubset<T, StrategicObjectiveAssignmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more StrategicObjectiveAssignments and returns the data updated in the database.
     * @param {StrategicObjectiveAssignmentUpdateManyAndReturnArgs} args - Arguments to update many StrategicObjectiveAssignments.
     * @example
     * // Update many StrategicObjectiveAssignments
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more StrategicObjectiveAssignments and only return the `id`
     * const strategicObjectiveAssignmentWithIdOnly = await prisma.strategicObjectiveAssignment.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 StrategicObjectiveAssignmentUpdateManyAndReturnArgs>(args: SelectSubset<T, StrategicObjectiveAssignmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one StrategicObjectiveAssignment.
     * @param {StrategicObjectiveAssignmentUpsertArgs} args - Arguments to update or create a StrategicObjectiveAssignment.
     * @example
     * // Update or create a StrategicObjectiveAssignment
     * const strategicObjectiveAssignment = await prisma.strategicObjectiveAssignment.upsert({
     *   create: {
     *     // ... data to create a StrategicObjectiveAssignment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the StrategicObjectiveAssignment we want to update
     *   }
     * })
     */
    upsert<T extends StrategicObjectiveAssignmentUpsertArgs>(args: SelectSubset<T, StrategicObjectiveAssignmentUpsertArgs<ExtArgs>>): Prisma__StrategicObjectiveAssignmentClient<$Result.GetResult<Prisma.$StrategicObjectiveAssignmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of StrategicObjectiveAssignments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StrategicObjectiveAssignmentCountArgs} args - Arguments to filter StrategicObjectiveAssignments to count.
     * @example
     * // Count the number of StrategicObjectiveAssignments
     * const count = await prisma.strategicObjectiveAssignment.count({
     *   where: {
     *     // ... the filter for the StrategicObjectiveAssignments we want to count
     *   }
     * })
    **/
    count<T extends StrategicObjectiveAssignmentCountArgs>(
      args?: Subset<T, StrategicObjectiveAssignmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], StrategicObjectiveAssignmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a StrategicObjectiveAssignment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StrategicObjectiveAssignmentAggregateArgs} 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 StrategicObjectiveAssignmentAggregateArgs>(args: Subset<T, StrategicObjectiveAssignmentAggregateArgs>): Prisma.PrismaPromise<GetStrategicObjectiveAssignmentAggregateType<T>>

    /**
     * Group by StrategicObjectiveAssignment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {StrategicObjectiveAssignmentGroupByArgs} 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 StrategicObjectiveAssignmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: StrategicObjectiveAssignmentGroupByArgs['orderBy'] }
        : { orderBy?: StrategicObjectiveAssignmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, StrategicObjectiveAssignmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetStrategicObjectiveAssignmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the StrategicObjectiveAssignment model
   */
  readonly fields: StrategicObjectiveAssignmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for StrategicObjectiveAssignment.
   * 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__StrategicObjectiveAssignmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    objective<T extends StrategicObjectiveDefaultArgs<ExtArgs> = {}>(args?: Subset<T, StrategicObjectiveDefaultArgs<ExtArgs>>): Prisma__StrategicObjectiveClient<$Result.GetResult<Prisma.$StrategicObjectivePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    assignee<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the StrategicObjectiveAssignment model
   */
  interface StrategicObjectiveAssignmentFieldRefs {
    readonly id: FieldRef<"StrategicObjectiveAssignment", 'String'>
    readonly objectiveId: FieldRef<"StrategicObjectiveAssignment", 'String'>
    readonly assigneeId: FieldRef<"StrategicObjectiveAssignment", 'String'>
    readonly createdAt: FieldRef<"StrategicObjectiveAssignment", 'DateTime'>
    readonly deletedAt: FieldRef<"StrategicObjectiveAssignment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * StrategicObjectiveAssignment findUnique
   */
  export type StrategicObjectiveAssignmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjectiveAssignment to fetch.
     */
    where: StrategicObjectiveAssignmentWhereUniqueInput
  }

  /**
   * StrategicObjectiveAssignment findUniqueOrThrow
   */
  export type StrategicObjectiveAssignmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjectiveAssignment to fetch.
     */
    where: StrategicObjectiveAssignmentWhereUniqueInput
  }

  /**
   * StrategicObjectiveAssignment findFirst
   */
  export type StrategicObjectiveAssignmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjectiveAssignment to fetch.
     */
    where?: StrategicObjectiveAssignmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StrategicObjectiveAssignments to fetch.
     */
    orderBy?: StrategicObjectiveAssignmentOrderByWithRelationInput | StrategicObjectiveAssignmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StrategicObjectiveAssignments.
     */
    cursor?: StrategicObjectiveAssignmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StrategicObjectiveAssignments 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` StrategicObjectiveAssignments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StrategicObjectiveAssignments.
     */
    distinct?: StrategicObjectiveAssignmentScalarFieldEnum | StrategicObjectiveAssignmentScalarFieldEnum[]
  }

  /**
   * StrategicObjectiveAssignment findFirstOrThrow
   */
  export type StrategicObjectiveAssignmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjectiveAssignment to fetch.
     */
    where?: StrategicObjectiveAssignmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StrategicObjectiveAssignments to fetch.
     */
    orderBy?: StrategicObjectiveAssignmentOrderByWithRelationInput | StrategicObjectiveAssignmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for StrategicObjectiveAssignments.
     */
    cursor?: StrategicObjectiveAssignmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StrategicObjectiveAssignments 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` StrategicObjectiveAssignments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of StrategicObjectiveAssignments.
     */
    distinct?: StrategicObjectiveAssignmentScalarFieldEnum | StrategicObjectiveAssignmentScalarFieldEnum[]
  }

  /**
   * StrategicObjectiveAssignment findMany
   */
  export type StrategicObjectiveAssignmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * Filter, which StrategicObjectiveAssignments to fetch.
     */
    where?: StrategicObjectiveAssignmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of StrategicObjectiveAssignments to fetch.
     */
    orderBy?: StrategicObjectiveAssignmentOrderByWithRelationInput | StrategicObjectiveAssignmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing StrategicObjectiveAssignments.
     */
    cursor?: StrategicObjectiveAssignmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` StrategicObjectiveAssignments 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` StrategicObjectiveAssignments.
     */
    skip?: number
    distinct?: StrategicObjectiveAssignmentScalarFieldEnum | StrategicObjectiveAssignmentScalarFieldEnum[]
  }

  /**
   * StrategicObjectiveAssignment create
   */
  export type StrategicObjectiveAssignmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * The data needed to create a StrategicObjectiveAssignment.
     */
    data: XOR<StrategicObjectiveAssignmentCreateInput, StrategicObjectiveAssignmentUncheckedCreateInput>
  }

  /**
   * StrategicObjectiveAssignment createMany
   */
  export type StrategicObjectiveAssignmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many StrategicObjectiveAssignments.
     */
    data: StrategicObjectiveAssignmentCreateManyInput | StrategicObjectiveAssignmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * StrategicObjectiveAssignment createManyAndReturn
   */
  export type StrategicObjectiveAssignmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * The data used to create many StrategicObjectiveAssignments.
     */
    data: StrategicObjectiveAssignmentCreateManyInput | StrategicObjectiveAssignmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * StrategicObjectiveAssignment update
   */
  export type StrategicObjectiveAssignmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * The data needed to update a StrategicObjectiveAssignment.
     */
    data: XOR<StrategicObjectiveAssignmentUpdateInput, StrategicObjectiveAssignmentUncheckedUpdateInput>
    /**
     * Choose, which StrategicObjectiveAssignment to update.
     */
    where: StrategicObjectiveAssignmentWhereUniqueInput
  }

  /**
   * StrategicObjectiveAssignment updateMany
   */
  export type StrategicObjectiveAssignmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update StrategicObjectiveAssignments.
     */
    data: XOR<StrategicObjectiveAssignmentUpdateManyMutationInput, StrategicObjectiveAssignmentUncheckedUpdateManyInput>
    /**
     * Filter which StrategicObjectiveAssignments to update
     */
    where?: StrategicObjectiveAssignmentWhereInput
    /**
     * Limit how many StrategicObjectiveAssignments to update.
     */
    limit?: number
  }

  /**
   * StrategicObjectiveAssignment updateManyAndReturn
   */
  export type StrategicObjectiveAssignmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * The data used to update StrategicObjectiveAssignments.
     */
    data: XOR<StrategicObjectiveAssignmentUpdateManyMutationInput, StrategicObjectiveAssignmentUncheckedUpdateManyInput>
    /**
     * Filter which StrategicObjectiveAssignments to update
     */
    where?: StrategicObjectiveAssignmentWhereInput
    /**
     * Limit how many StrategicObjectiveAssignments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * StrategicObjectiveAssignment upsert
   */
  export type StrategicObjectiveAssignmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * The filter to search for the StrategicObjectiveAssignment to update in case it exists.
     */
    where: StrategicObjectiveAssignmentWhereUniqueInput
    /**
     * In case the StrategicObjectiveAssignment found by the `where` argument doesn't exist, create a new StrategicObjectiveAssignment with this data.
     */
    create: XOR<StrategicObjectiveAssignmentCreateInput, StrategicObjectiveAssignmentUncheckedCreateInput>
    /**
     * In case the StrategicObjectiveAssignment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<StrategicObjectiveAssignmentUpdateInput, StrategicObjectiveAssignmentUncheckedUpdateInput>
  }

  /**
   * StrategicObjectiveAssignment delete
   */
  export type StrategicObjectiveAssignmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
    /**
     * Filter which StrategicObjectiveAssignment to delete.
     */
    where: StrategicObjectiveAssignmentWhereUniqueInput
  }

  /**
   * StrategicObjectiveAssignment deleteMany
   */
  export type StrategicObjectiveAssignmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which StrategicObjectiveAssignments to delete
     */
    where?: StrategicObjectiveAssignmentWhereInput
    /**
     * Limit how many StrategicObjectiveAssignments to delete.
     */
    limit?: number
  }

  /**
   * StrategicObjectiveAssignment without action
   */
  export type StrategicObjectiveAssignmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the StrategicObjectiveAssignment
     */
    select?: StrategicObjectiveAssignmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the StrategicObjectiveAssignment
     */
    omit?: StrategicObjectiveAssignmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: StrategicObjectiveAssignmentInclude<ExtArgs> | null
  }


  /**
   * Model Evaluation360Template
   */

  export type AggregateEvaluation360Template = {
    _count: Evaluation360TemplateCountAggregateOutputType | null
    _min: Evaluation360TemplateMinAggregateOutputType | null
    _max: Evaluation360TemplateMaxAggregateOutputType | null
  }

  export type Evaluation360TemplateMinAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    isDefault: boolean | null
    isActive: boolean | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
    cycleId: string | null
    organizationId: string | null
  }

  export type Evaluation360TemplateMaxAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    isDefault: boolean | null
    isActive: boolean | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
    cycleId: string | null
    organizationId: string | null
  }

  export type Evaluation360TemplateCountAggregateOutputType = {
    id: number
    name: number
    description: number
    dimensions: number
    relationshipTypes: number
    isDefault: number
    isActive: number
    createdBy: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    cycleId: number
    scope: number
    organizationId: number
    _all: number
  }


  export type Evaluation360TemplateMinAggregateInputType = {
    id?: true
    name?: true
    description?: true
    isDefault?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    cycleId?: true
    organizationId?: true
  }

  export type Evaluation360TemplateMaxAggregateInputType = {
    id?: true
    name?: true
    description?: true
    isDefault?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    cycleId?: true
    organizationId?: true
  }

  export type Evaluation360TemplateCountAggregateInputType = {
    id?: true
    name?: true
    description?: true
    dimensions?: true
    relationshipTypes?: true
    isDefault?: true
    isActive?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    cycleId?: true
    scope?: true
    organizationId?: true
    _all?: true
  }

  export type Evaluation360TemplateAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Evaluation360Template to aggregate.
     */
    where?: Evaluation360TemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Evaluation360Templates to fetch.
     */
    orderBy?: Evaluation360TemplateOrderByWithRelationInput | Evaluation360TemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: Evaluation360TemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Evaluation360Templates 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` Evaluation360Templates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Evaluation360Templates
    **/
    _count?: true | Evaluation360TemplateCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: Evaluation360TemplateMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: Evaluation360TemplateMaxAggregateInputType
  }

  export type GetEvaluation360TemplateAggregateType<T extends Evaluation360TemplateAggregateArgs> = {
        [P in keyof T & keyof AggregateEvaluation360Template]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateEvaluation360Template[P]>
      : GetScalarType<T[P], AggregateEvaluation360Template[P]>
  }




  export type Evaluation360TemplateGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: Evaluation360TemplateWhereInput
    orderBy?: Evaluation360TemplateOrderByWithAggregationInput | Evaluation360TemplateOrderByWithAggregationInput[]
    by: Evaluation360TemplateScalarFieldEnum[] | Evaluation360TemplateScalarFieldEnum
    having?: Evaluation360TemplateScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: Evaluation360TemplateCountAggregateInputType | true
    _min?: Evaluation360TemplateMinAggregateInputType
    _max?: Evaluation360TemplateMaxAggregateInputType
  }

  export type Evaluation360TemplateGroupByOutputType = {
    id: string
    name: string
    description: string | null
    dimensions: JsonValue
    relationshipTypes: JsonValue
    isDefault: boolean
    isActive: boolean
    createdBy: string
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    cycleId: string | null
    scope: JsonValue | null
    organizationId: string | null
    _count: Evaluation360TemplateCountAggregateOutputType | null
    _min: Evaluation360TemplateMinAggregateOutputType | null
    _max: Evaluation360TemplateMaxAggregateOutputType | null
  }

  type GetEvaluation360TemplateGroupByPayload<T extends Evaluation360TemplateGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<Evaluation360TemplateGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof Evaluation360TemplateGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], Evaluation360TemplateGroupByOutputType[P]>
            : GetScalarType<T[P], Evaluation360TemplateGroupByOutputType[P]>
        }
      >
    >


  export type Evaluation360TemplateSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    dimensions?: boolean
    relationshipTypes?: boolean
    isDefault?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycleId?: boolean
    scope?: boolean
    organizationId?: boolean
    cycle?: boolean | Evaluation360Template$cycleArgs<ExtArgs>
    organization?: boolean | Evaluation360Template$organizationArgs<ExtArgs>
    evaluations?: boolean | Evaluation360Template$evaluationsArgs<ExtArgs>
    _count?: boolean | Evaluation360TemplateCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["evaluation360Template"]>

  export type Evaluation360TemplateSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    dimensions?: boolean
    relationshipTypes?: boolean
    isDefault?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycleId?: boolean
    scope?: boolean
    organizationId?: boolean
    cycle?: boolean | Evaluation360Template$cycleArgs<ExtArgs>
    organization?: boolean | Evaluation360Template$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["evaluation360Template"]>

  export type Evaluation360TemplateSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    dimensions?: boolean
    relationshipTypes?: boolean
    isDefault?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycleId?: boolean
    scope?: boolean
    organizationId?: boolean
    cycle?: boolean | Evaluation360Template$cycleArgs<ExtArgs>
    organization?: boolean | Evaluation360Template$organizationArgs<ExtArgs>
  }, ExtArgs["result"]["evaluation360Template"]>

  export type Evaluation360TemplateSelectScalar = {
    id?: boolean
    name?: boolean
    description?: boolean
    dimensions?: boolean
    relationshipTypes?: boolean
    isDefault?: boolean
    isActive?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    cycleId?: boolean
    scope?: boolean
    organizationId?: boolean
  }

  export type Evaluation360TemplateOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "description" | "dimensions" | "relationshipTypes" | "isDefault" | "isActive" | "createdBy" | "createdAt" | "updatedAt" | "deletedAt" | "cycleId" | "scope" | "organizationId", ExtArgs["result"]["evaluation360Template"]>
  export type Evaluation360TemplateInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | Evaluation360Template$cycleArgs<ExtArgs>
    organization?: boolean | Evaluation360Template$organizationArgs<ExtArgs>
    evaluations?: boolean | Evaluation360Template$evaluationsArgs<ExtArgs>
    _count?: boolean | Evaluation360TemplateCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type Evaluation360TemplateIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | Evaluation360Template$cycleArgs<ExtArgs>
    organization?: boolean | Evaluation360Template$organizationArgs<ExtArgs>
  }
  export type Evaluation360TemplateIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    cycle?: boolean | Evaluation360Template$cycleArgs<ExtArgs>
    organization?: boolean | Evaluation360Template$organizationArgs<ExtArgs>
  }

  export type $Evaluation360TemplatePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Evaluation360Template"
    objects: {
      cycle: Prisma.$PerformanceCyclePayload<ExtArgs> | null
      organization: Prisma.$OrganizationPayload<ExtArgs> | null
      evaluations: Prisma.$Evaluation360Payload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      description: string | null
      dimensions: Prisma.JsonValue
      relationshipTypes: Prisma.JsonValue
      isDefault: boolean
      isActive: boolean
      createdBy: string
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
      /**
       * 关联周期（可选，不填=适用所有周期）
       */
      cycleId: string | null
      /**
       * 适用范围 {scopeType, departmentIds?, minLevel?, userIds?}
       */
      scope: Prisma.JsonValue | null
      organizationId: string | null
    }, ExtArgs["result"]["evaluation360Template"]>
    composites: {}
  }

  type Evaluation360TemplateGetPayload<S extends boolean | null | undefined | Evaluation360TemplateDefaultArgs> = $Result.GetResult<Prisma.$Evaluation360TemplatePayload, S>

  type Evaluation360TemplateCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<Evaluation360TemplateFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: Evaluation360TemplateCountAggregateInputType | true
    }

  export interface Evaluation360TemplateDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Evaluation360Template'], meta: { name: 'Evaluation360Template' } }
    /**
     * Find zero or one Evaluation360Template that matches the filter.
     * @param {Evaluation360TemplateFindUniqueArgs} args - Arguments to find a Evaluation360Template
     * @example
     * // Get one Evaluation360Template
     * const evaluation360Template = await prisma.evaluation360Template.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends Evaluation360TemplateFindUniqueArgs>(args: SelectSubset<T, Evaluation360TemplateFindUniqueArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Evaluation360Template that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {Evaluation360TemplateFindUniqueOrThrowArgs} args - Arguments to find a Evaluation360Template
     * @example
     * // Get one Evaluation360Template
     * const evaluation360Template = await prisma.evaluation360Template.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends Evaluation360TemplateFindUniqueOrThrowArgs>(args: SelectSubset<T, Evaluation360TemplateFindUniqueOrThrowArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Evaluation360Template 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 {Evaluation360TemplateFindFirstArgs} args - Arguments to find a Evaluation360Template
     * @example
     * // Get one Evaluation360Template
     * const evaluation360Template = await prisma.evaluation360Template.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends Evaluation360TemplateFindFirstArgs>(args?: SelectSubset<T, Evaluation360TemplateFindFirstArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Evaluation360Template 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 {Evaluation360TemplateFindFirstOrThrowArgs} args - Arguments to find a Evaluation360Template
     * @example
     * // Get one Evaluation360Template
     * const evaluation360Template = await prisma.evaluation360Template.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends Evaluation360TemplateFindFirstOrThrowArgs>(args?: SelectSubset<T, Evaluation360TemplateFindFirstOrThrowArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Evaluation360Templates 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 {Evaluation360TemplateFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Evaluation360Templates
     * const evaluation360Templates = await prisma.evaluation360Template.findMany()
     * 
     * // Get first 10 Evaluation360Templates
     * const evaluation360Templates = await prisma.evaluation360Template.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const evaluation360TemplateWithIdOnly = await prisma.evaluation360Template.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends Evaluation360TemplateFindManyArgs>(args?: SelectSubset<T, Evaluation360TemplateFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Evaluation360Template.
     * @param {Evaluation360TemplateCreateArgs} args - Arguments to create a Evaluation360Template.
     * @example
     * // Create one Evaluation360Template
     * const Evaluation360Template = await prisma.evaluation360Template.create({
     *   data: {
     *     // ... data to create a Evaluation360Template
     *   }
     * })
     * 
     */
    create<T extends Evaluation360TemplateCreateArgs>(args: SelectSubset<T, Evaluation360TemplateCreateArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Evaluation360Templates.
     * @param {Evaluation360TemplateCreateManyArgs} args - Arguments to create many Evaluation360Templates.
     * @example
     * // Create many Evaluation360Templates
     * const evaluation360Template = await prisma.evaluation360Template.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends Evaluation360TemplateCreateManyArgs>(args?: SelectSubset<T, Evaluation360TemplateCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Evaluation360Templates and returns the data saved in the database.
     * @param {Evaluation360TemplateCreateManyAndReturnArgs} args - Arguments to create many Evaluation360Templates.
     * @example
     * // Create many Evaluation360Templates
     * const evaluation360Template = await prisma.evaluation360Template.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Evaluation360Templates and only return the `id`
     * const evaluation360TemplateWithIdOnly = await prisma.evaluation360Template.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 Evaluation360TemplateCreateManyAndReturnArgs>(args?: SelectSubset<T, Evaluation360TemplateCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Evaluation360Template.
     * @param {Evaluation360TemplateDeleteArgs} args - Arguments to delete one Evaluation360Template.
     * @example
     * // Delete one Evaluation360Template
     * const Evaluation360Template = await prisma.evaluation360Template.delete({
     *   where: {
     *     // ... filter to delete one Evaluation360Template
     *   }
     * })
     * 
     */
    delete<T extends Evaluation360TemplateDeleteArgs>(args: SelectSubset<T, Evaluation360TemplateDeleteArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Evaluation360Template.
     * @param {Evaluation360TemplateUpdateArgs} args - Arguments to update one Evaluation360Template.
     * @example
     * // Update one Evaluation360Template
     * const evaluation360Template = await prisma.evaluation360Template.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends Evaluation360TemplateUpdateArgs>(args: SelectSubset<T, Evaluation360TemplateUpdateArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Evaluation360Templates.
     * @param {Evaluation360TemplateDeleteManyArgs} args - Arguments to filter Evaluation360Templates to delete.
     * @example
     * // Delete a few Evaluation360Templates
     * const { count } = await prisma.evaluation360Template.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends Evaluation360TemplateDeleteManyArgs>(args?: SelectSubset<T, Evaluation360TemplateDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Evaluation360Templates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Evaluation360TemplateUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Evaluation360Templates
     * const evaluation360Template = await prisma.evaluation360Template.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends Evaluation360TemplateUpdateManyArgs>(args: SelectSubset<T, Evaluation360TemplateUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Evaluation360Templates and returns the data updated in the database.
     * @param {Evaluation360TemplateUpdateManyAndReturnArgs} args - Arguments to update many Evaluation360Templates.
     * @example
     * // Update many Evaluation360Templates
     * const evaluation360Template = await prisma.evaluation360Template.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Evaluation360Templates and only return the `id`
     * const evaluation360TemplateWithIdOnly = await prisma.evaluation360Template.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 Evaluation360TemplateUpdateManyAndReturnArgs>(args: SelectSubset<T, Evaluation360TemplateUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Evaluation360Template.
     * @param {Evaluation360TemplateUpsertArgs} args - Arguments to update or create a Evaluation360Template.
     * @example
     * // Update or create a Evaluation360Template
     * const evaluation360Template = await prisma.evaluation360Template.upsert({
     *   create: {
     *     // ... data to create a Evaluation360Template
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Evaluation360Template we want to update
     *   }
     * })
     */
    upsert<T extends Evaluation360TemplateUpsertArgs>(args: SelectSubset<T, Evaluation360TemplateUpsertArgs<ExtArgs>>): Prisma__Evaluation360TemplateClient<$Result.GetResult<Prisma.$Evaluation360TemplatePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Evaluation360Templates.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Evaluation360TemplateCountArgs} args - Arguments to filter Evaluation360Templates to count.
     * @example
     * // Count the number of Evaluation360Templates
     * const count = await prisma.evaluation360Template.count({
     *   where: {
     *     // ... the filter for the Evaluation360Templates we want to count
     *   }
     * })
    **/
    count<T extends Evaluation360TemplateCountArgs>(
      args?: Subset<T, Evaluation360TemplateCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], Evaluation360TemplateCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Evaluation360Template.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Evaluation360TemplateAggregateArgs} 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 Evaluation360TemplateAggregateArgs>(args: Subset<T, Evaluation360TemplateAggregateArgs>): Prisma.PrismaPromise<GetEvaluation360TemplateAggregateType<T>>

    /**
     * Group by Evaluation360Template.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Evaluation360TemplateGroupByArgs} 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 Evaluation360TemplateGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: Evaluation360TemplateGroupByArgs['orderBy'] }
        : { orderBy?: Evaluation360TemplateGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, Evaluation360TemplateGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetEvaluation360TemplateGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Evaluation360Template model
   */
  readonly fields: Evaluation360TemplateFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Evaluation360Template.
   * 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__Evaluation360TemplateClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    cycle<T extends Evaluation360Template$cycleArgs<ExtArgs> = {}>(args?: Subset<T, Evaluation360Template$cycleArgs<ExtArgs>>): Prisma__PerformanceCycleClient<$Result.GetResult<Prisma.$PerformanceCyclePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    organization<T extends Evaluation360Template$organizationArgs<ExtArgs> = {}>(args?: Subset<T, Evaluation360Template$organizationArgs<ExtArgs>>): Prisma__OrganizationClient<$Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    evaluations<T extends Evaluation360Template$evaluationsArgs<ExtArgs> = {}>(args?: Subset<T, Evaluation360Template$evaluationsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$Evaluation360Payload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Evaluation360Template model
   */
  interface Evaluation360TemplateFieldRefs {
    readonly id: FieldRef<"Evaluation360Template", 'String'>
    readonly name: FieldRef<"Evaluation360Template", 'String'>
    readonly description: FieldRef<"Evaluation360Template", 'String'>
    readonly dimensions: FieldRef<"Evaluation360Template", 'Json'>
    readonly relationshipTypes: FieldRef<"Evaluation360Template", 'Json'>
    readonly isDefault: FieldRef<"Evaluation360Template", 'Boolean'>
    readonly isActive: FieldRef<"Evaluation360Template", 'Boolean'>
    readonly createdBy: FieldRef<"Evaluation360Template", 'String'>
    readonly createdAt: FieldRef<"Evaluation360Template", 'DateTime'>
    readonly updatedAt: FieldRef<"Evaluation360Template", 'DateTime'>
    readonly deletedAt: FieldRef<"Evaluation360Template", 'DateTime'>
    readonly cycleId: FieldRef<"Evaluation360Template", 'String'>
    readonly scope: FieldRef<"Evaluation360Template", 'Json'>
    readonly organizationId: FieldRef<"Evaluation360Template", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Evaluation360Template findUnique
   */
  export type Evaluation360TemplateFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * Filter, which Evaluation360Template to fetch.
     */
    where: Evaluation360TemplateWhereUniqueInput
  }

  /**
   * Evaluation360Template findUniqueOrThrow
   */
  export type Evaluation360TemplateFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * Filter, which Evaluation360Template to fetch.
     */
    where: Evaluation360TemplateWhereUniqueInput
  }

  /**
   * Evaluation360Template findFirst
   */
  export type Evaluation360TemplateFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * Filter, which Evaluation360Template to fetch.
     */
    where?: Evaluation360TemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Evaluation360Templates to fetch.
     */
    orderBy?: Evaluation360TemplateOrderByWithRelationInput | Evaluation360TemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Evaluation360Templates.
     */
    cursor?: Evaluation360TemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Evaluation360Templates 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` Evaluation360Templates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Evaluation360Templates.
     */
    distinct?: Evaluation360TemplateScalarFieldEnum | Evaluation360TemplateScalarFieldEnum[]
  }

  /**
   * Evaluation360Template findFirstOrThrow
   */
  export type Evaluation360TemplateFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * Filter, which Evaluation360Template to fetch.
     */
    where?: Evaluation360TemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Evaluation360Templates to fetch.
     */
    orderBy?: Evaluation360TemplateOrderByWithRelationInput | Evaluation360TemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Evaluation360Templates.
     */
    cursor?: Evaluation360TemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Evaluation360Templates 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` Evaluation360Templates.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Evaluation360Templates.
     */
    distinct?: Evaluation360TemplateScalarFieldEnum | Evaluation360TemplateScalarFieldEnum[]
  }

  /**
   * Evaluation360Template findMany
   */
  export type Evaluation360TemplateFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * Filter, which Evaluation360Templates to fetch.
     */
    where?: Evaluation360TemplateWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Evaluation360Templates to fetch.
     */
    orderBy?: Evaluation360TemplateOrderByWithRelationInput | Evaluation360TemplateOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Evaluation360Templates.
     */
    cursor?: Evaluation360TemplateWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Evaluation360Templates 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` Evaluation360Templates.
     */
    skip?: number
    distinct?: Evaluation360TemplateScalarFieldEnum | Evaluation360TemplateScalarFieldEnum[]
  }

  /**
   * Evaluation360Template create
   */
  export type Evaluation360TemplateCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * The data needed to create a Evaluation360Template.
     */
    data: XOR<Evaluation360TemplateCreateInput, Evaluation360TemplateUncheckedCreateInput>
  }

  /**
   * Evaluation360Template createMany
   */
  export type Evaluation360TemplateCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Evaluation360Templates.
     */
    data: Evaluation360TemplateCreateManyInput | Evaluation360TemplateCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Evaluation360Template createManyAndReturn
   */
  export type Evaluation360TemplateCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * The data used to create many Evaluation360Templates.
     */
    data: Evaluation360TemplateCreateManyInput | Evaluation360TemplateCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Evaluation360Template update
   */
  export type Evaluation360TemplateUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * The data needed to update a Evaluation360Template.
     */
    data: XOR<Evaluation360TemplateUpdateInput, Evaluation360TemplateUncheckedUpdateInput>
    /**
     * Choose, which Evaluation360Template to update.
     */
    where: Evaluation360TemplateWhereUniqueInput
  }

  /**
   * Evaluation360Template updateMany
   */
  export type Evaluation360TemplateUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Evaluation360Templates.
     */
    data: XOR<Evaluation360TemplateUpdateManyMutationInput, Evaluation360TemplateUncheckedUpdateManyInput>
    /**
     * Filter which Evaluation360Templates to update
     */
    where?: Evaluation360TemplateWhereInput
    /**
     * Limit how many Evaluation360Templates to update.
     */
    limit?: number
  }

  /**
   * Evaluation360Template updateManyAndReturn
   */
  export type Evaluation360TemplateUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * The data used to update Evaluation360Templates.
     */
    data: XOR<Evaluation360TemplateUpdateManyMutationInput, Evaluation360TemplateUncheckedUpdateManyInput>
    /**
     * Filter which Evaluation360Templates to update
     */
    where?: Evaluation360TemplateWhereInput
    /**
     * Limit how many Evaluation360Templates to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Evaluation360Template upsert
   */
  export type Evaluation360TemplateUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * The filter to search for the Evaluation360Template to update in case it exists.
     */
    where: Evaluation360TemplateWhereUniqueInput
    /**
     * In case the Evaluation360Template found by the `where` argument doesn't exist, create a new Evaluation360Template with this data.
     */
    create: XOR<Evaluation360TemplateCreateInput, Evaluation360TemplateUncheckedCreateInput>
    /**
     * In case the Evaluation360Template was found with the provided `where` argument, update it with this data.
     */
    update: XOR<Evaluation360TemplateUpdateInput, Evaluation360TemplateUncheckedUpdateInput>
  }

  /**
   * Evaluation360Template delete
   */
  export type Evaluation360TemplateDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
    /**
     * Filter which Evaluation360Template to delete.
     */
    where: Evaluation360TemplateWhereUniqueInput
  }

  /**
   * Evaluation360Template deleteMany
   */
  export type Evaluation360TemplateDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Evaluation360Templates to delete
     */
    where?: Evaluation360TemplateWhereInput
    /**
     * Limit how many Evaluation360Templates to delete.
     */
    limit?: number
  }

  /**
   * Evaluation360Template.cycle
   */
  export type Evaluation360Template$cycleArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PerformanceCycle
     */
    select?: PerformanceCycleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PerformanceCycle
     */
    omit?: PerformanceCycleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PerformanceCycleInclude<ExtArgs> | null
    where?: PerformanceCycleWhereInput
  }

  /**
   * Evaluation360Template.organization
   */
  export type Evaluation360Template$organizationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Organization
     */
    select?: OrganizationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Organization
     */
    omit?: OrganizationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: OrganizationInclude<ExtArgs> | null
    where?: OrganizationWhereInput
  }

  /**
   * Evaluation360Template.evaluations
   */
  export type Evaluation360Template$evaluationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360
     */
    select?: Evaluation360Select<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360
     */
    omit?: Evaluation360Omit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360Include<ExtArgs> | null
    where?: Evaluation360WhereInput
    orderBy?: Evaluation360OrderByWithRelationInput | Evaluation360OrderByWithRelationInput[]
    cursor?: Evaluation360WhereUniqueInput
    take?: number
    skip?: number
    distinct?: Evaluation360ScalarFieldEnum | Evaluation360ScalarFieldEnum[]
  }

  /**
   * Evaluation360Template without action
   */
  export type Evaluation360TemplateDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Evaluation360Template
     */
    select?: Evaluation360TemplateSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Evaluation360Template
     */
    omit?: Evaluation360TemplateOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Evaluation360TemplateInclude<ExtArgs> | null
  }


  /**
   * Model SiteCheckpoint
   */

  export type AggregateSiteCheckpoint = {
    _count: SiteCheckpointCountAggregateOutputType | null
    _avg: SiteCheckpointAvgAggregateOutputType | null
    _sum: SiteCheckpointSumAggregateOutputType | null
    _min: SiteCheckpointMinAggregateOutputType | null
    _max: SiteCheckpointMaxAggregateOutputType | null
  }

  export type SiteCheckpointAvgAggregateOutputType = {
    latitude: number | null
    longitude: number | null
    geoRadius: number | null
    geoAccuracyThreshold: number | null
    qrRotationSeconds: number | null
    qrGraceSeconds: number | null
  }

  export type SiteCheckpointSumAggregateOutputType = {
    latitude: number | null
    longitude: number | null
    geoRadius: number | null
    geoAccuracyThreshold: number | null
    qrRotationSeconds: number | null
    qrGraceSeconds: number | null
  }

  export type SiteCheckpointMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    description: string | null
    address: string | null
    timezone: string | null
    latitude: number | null
    longitude: number | null
    geoPolicy: $Enums.SiteGeoPolicy | null
    geoRadius: number | null
    geoAccuracyThreshold: number | null
    allowUnauthenticatedCheckin: boolean | null
    isActive: boolean | null
    accessMode: $Enums.SiteCheckpointAccessMode | null
    qrRotationSeconds: number | null
    qrGraceSeconds: number | null
    sharedCheckinEnabled: boolean | null
    sharedCompanyId: string | null
    sharedCompanyLabel: string | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SiteCheckpointMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    description: string | null
    address: string | null
    timezone: string | null
    latitude: number | null
    longitude: number | null
    geoPolicy: $Enums.SiteGeoPolicy | null
    geoRadius: number | null
    geoAccuracyThreshold: number | null
    allowUnauthenticatedCheckin: boolean | null
    isActive: boolean | null
    accessMode: $Enums.SiteCheckpointAccessMode | null
    qrRotationSeconds: number | null
    qrGraceSeconds: number | null
    sharedCheckinEnabled: boolean | null
    sharedCompanyId: string | null
    sharedCompanyLabel: string | null
    createdBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SiteCheckpointCountAggregateOutputType = {
    id: number
    code: number
    name: number
    description: number
    address: number
    timezone: number
    latitude: number
    longitude: number
    geoPolicy: number
    geoRadius: number
    geoAccuracyThreshold: number
    allowUnauthenticatedCheckin: number
    isActive: number
    accessMode: number
    qrRotationSeconds: number
    qrGraceSeconds: number
    sharedCheckinEnabled: number
    sharedCompanyId: number
    sharedCompanyLabel: number
    createdBy: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SiteCheckpointAvgAggregateInputType = {
    latitude?: true
    longitude?: true
    geoRadius?: true
    geoAccuracyThreshold?: true
    qrRotationSeconds?: true
    qrGraceSeconds?: true
  }

  export type SiteCheckpointSumAggregateInputType = {
    latitude?: true
    longitude?: true
    geoRadius?: true
    geoAccuracyThreshold?: true
    qrRotationSeconds?: true
    qrGraceSeconds?: true
  }

  export type SiteCheckpointMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    description?: true
    address?: true
    timezone?: true
    latitude?: true
    longitude?: true
    geoPolicy?: true
    geoRadius?: true
    geoAccuracyThreshold?: true
    allowUnauthenticatedCheckin?: true
    isActive?: true
    accessMode?: true
    qrRotationSeconds?: true
    qrGraceSeconds?: true
    sharedCheckinEnabled?: true
    sharedCompanyId?: true
    sharedCompanyLabel?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SiteCheckpointMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    description?: true
    address?: true
    timezone?: true
    latitude?: true
    longitude?: true
    geoPolicy?: true
    geoRadius?: true
    geoAccuracyThreshold?: true
    allowUnauthenticatedCheckin?: true
    isActive?: true
    accessMode?: true
    qrRotationSeconds?: true
    qrGraceSeconds?: true
    sharedCheckinEnabled?: true
    sharedCompanyId?: true
    sharedCompanyLabel?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SiteCheckpointCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    description?: true
    address?: true
    timezone?: true
    latitude?: true
    longitude?: true
    geoPolicy?: true
    geoRadius?: true
    geoAccuracyThreshold?: true
    allowUnauthenticatedCheckin?: true
    isActive?: true
    accessMode?: true
    qrRotationSeconds?: true
    qrGraceSeconds?: true
    sharedCheckinEnabled?: true
    sharedCompanyId?: true
    sharedCompanyLabel?: true
    createdBy?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SiteCheckpointAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SiteCheckpoint to aggregate.
     */
    where?: SiteCheckpointWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteCheckpoints to fetch.
     */
    orderBy?: SiteCheckpointOrderByWithRelationInput | SiteCheckpointOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SiteCheckpointWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteCheckpoints 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` SiteCheckpoints.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SiteCheckpoints
    **/
    _count?: true | SiteCheckpointCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SiteCheckpointAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SiteCheckpointSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SiteCheckpointMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SiteCheckpointMaxAggregateInputType
  }

  export type GetSiteCheckpointAggregateType<T extends SiteCheckpointAggregateArgs> = {
        [P in keyof T & keyof AggregateSiteCheckpoint]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSiteCheckpoint[P]>
      : GetScalarType<T[P], AggregateSiteCheckpoint[P]>
  }




  export type SiteCheckpointGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SiteCheckpointWhereInput
    orderBy?: SiteCheckpointOrderByWithAggregationInput | SiteCheckpointOrderByWithAggregationInput[]
    by: SiteCheckpointScalarFieldEnum[] | SiteCheckpointScalarFieldEnum
    having?: SiteCheckpointScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SiteCheckpointCountAggregateInputType | true
    _avg?: SiteCheckpointAvgAggregateInputType
    _sum?: SiteCheckpointSumAggregateInputType
    _min?: SiteCheckpointMinAggregateInputType
    _max?: SiteCheckpointMaxAggregateInputType
  }

  export type SiteCheckpointGroupByOutputType = {
    id: string
    code: string
    name: string
    description: string | null
    address: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy: $Enums.SiteGeoPolicy
    geoRadius: number
    geoAccuracyThreshold: number
    allowUnauthenticatedCheckin: boolean
    isActive: boolean
    accessMode: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds: number | null
    qrGraceSeconds: number
    sharedCheckinEnabled: boolean
    sharedCompanyId: string | null
    sharedCompanyLabel: string | null
    createdBy: string
    createdAt: Date
    updatedAt: Date
    _count: SiteCheckpointCountAggregateOutputType | null
    _avg: SiteCheckpointAvgAggregateOutputType | null
    _sum: SiteCheckpointSumAggregateOutputType | null
    _min: SiteCheckpointMinAggregateOutputType | null
    _max: SiteCheckpointMaxAggregateOutputType | null
  }

  type GetSiteCheckpointGroupByPayload<T extends SiteCheckpointGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SiteCheckpointGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SiteCheckpointGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SiteCheckpointGroupByOutputType[P]>
            : GetScalarType<T[P], SiteCheckpointGroupByOutputType[P]>
        }
      >
    >


  export type SiteCheckpointSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    description?: boolean
    address?: boolean
    timezone?: boolean
    latitude?: boolean
    longitude?: boolean
    geoPolicy?: boolean
    geoRadius?: boolean
    geoAccuracyThreshold?: boolean
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: boolean
    qrRotationSeconds?: boolean
    qrGraceSeconds?: boolean
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: boolean
    sharedCompanyLabel?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
    events?: boolean | SiteCheckpoint$eventsArgs<ExtArgs>
    dailySummaries?: boolean | SiteCheckpoint$dailySummariesArgs<ExtArgs>
    sharedPartners?: boolean | SiteCheckpoint$sharedPartnersArgs<ExtArgs>
    _count?: boolean | SiteCheckpointCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteCheckpoint"]>

  export type SiteCheckpointSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    description?: boolean
    address?: boolean
    timezone?: boolean
    latitude?: boolean
    longitude?: boolean
    geoPolicy?: boolean
    geoRadius?: boolean
    geoAccuracyThreshold?: boolean
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: boolean
    qrRotationSeconds?: boolean
    qrGraceSeconds?: boolean
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: boolean
    sharedCompanyLabel?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteCheckpoint"]>

  export type SiteCheckpointSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    description?: boolean
    address?: boolean
    timezone?: boolean
    latitude?: boolean
    longitude?: boolean
    geoPolicy?: boolean
    geoRadius?: boolean
    geoAccuracyThreshold?: boolean
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: boolean
    qrRotationSeconds?: boolean
    qrGraceSeconds?: boolean
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: boolean
    sharedCompanyLabel?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteCheckpoint"]>

  export type SiteCheckpointSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    description?: boolean
    address?: boolean
    timezone?: boolean
    latitude?: boolean
    longitude?: boolean
    geoPolicy?: boolean
    geoRadius?: boolean
    geoAccuracyThreshold?: boolean
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: boolean
    qrRotationSeconds?: boolean
    qrGraceSeconds?: boolean
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: boolean
    sharedCompanyLabel?: boolean
    createdBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SiteCheckpointOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "description" | "address" | "timezone" | "latitude" | "longitude" | "geoPolicy" | "geoRadius" | "geoAccuracyThreshold" | "allowUnauthenticatedCheckin" | "isActive" | "accessMode" | "qrRotationSeconds" | "qrGraceSeconds" | "sharedCheckinEnabled" | "sharedCompanyId" | "sharedCompanyLabel" | "createdBy" | "createdAt" | "updatedAt", ExtArgs["result"]["siteCheckpoint"]>
  export type SiteCheckpointInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
    events?: boolean | SiteCheckpoint$eventsArgs<ExtArgs>
    dailySummaries?: boolean | SiteCheckpoint$dailySummariesArgs<ExtArgs>
    sharedPartners?: boolean | SiteCheckpoint$sharedPartnersArgs<ExtArgs>
    _count?: boolean | SiteCheckpointCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type SiteCheckpointIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type SiteCheckpointIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $SiteCheckpointPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SiteCheckpoint"
    objects: {
      creator: Prisma.$UserPayload<ExtArgs>
      events: Prisma.$SiteAttendanceEventPayload<ExtArgs>[]
      dailySummaries: Prisma.$SiteDailySummaryPayload<ExtArgs>[]
      sharedPartners: Prisma.$SharedCheckinPartnerPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      description: string | null
      address: string | null
      timezone: string
      latitude: number
      longitude: number
      geoPolicy: $Enums.SiteGeoPolicy
      geoRadius: number
      geoAccuracyThreshold: number
      allowUnauthenticatedCheckin: boolean
      isActive: boolean
      accessMode: $Enums.SiteCheckpointAccessMode
      qrRotationSeconds: number | null
      qrGraceSeconds: number
      sharedCheckinEnabled: boolean
      sharedCompanyId: string | null
      sharedCompanyLabel: string | null
      createdBy: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["siteCheckpoint"]>
    composites: {}
  }

  type SiteCheckpointGetPayload<S extends boolean | null | undefined | SiteCheckpointDefaultArgs> = $Result.GetResult<Prisma.$SiteCheckpointPayload, S>

  type SiteCheckpointCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SiteCheckpointFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SiteCheckpointCountAggregateInputType | true
    }

  export interface SiteCheckpointDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SiteCheckpoint'], meta: { name: 'SiteCheckpoint' } }
    /**
     * Find zero or one SiteCheckpoint that matches the filter.
     * @param {SiteCheckpointFindUniqueArgs} args - Arguments to find a SiteCheckpoint
     * @example
     * // Get one SiteCheckpoint
     * const siteCheckpoint = await prisma.siteCheckpoint.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SiteCheckpointFindUniqueArgs>(args: SelectSubset<T, SiteCheckpointFindUniqueArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SiteCheckpoint that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SiteCheckpointFindUniqueOrThrowArgs} args - Arguments to find a SiteCheckpoint
     * @example
     * // Get one SiteCheckpoint
     * const siteCheckpoint = await prisma.siteCheckpoint.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SiteCheckpointFindUniqueOrThrowArgs>(args: SelectSubset<T, SiteCheckpointFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SiteCheckpoint 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 {SiteCheckpointFindFirstArgs} args - Arguments to find a SiteCheckpoint
     * @example
     * // Get one SiteCheckpoint
     * const siteCheckpoint = await prisma.siteCheckpoint.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SiteCheckpointFindFirstArgs>(args?: SelectSubset<T, SiteCheckpointFindFirstArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SiteCheckpoint 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 {SiteCheckpointFindFirstOrThrowArgs} args - Arguments to find a SiteCheckpoint
     * @example
     * // Get one SiteCheckpoint
     * const siteCheckpoint = await prisma.siteCheckpoint.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SiteCheckpointFindFirstOrThrowArgs>(args?: SelectSubset<T, SiteCheckpointFindFirstOrThrowArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SiteCheckpoints 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 {SiteCheckpointFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SiteCheckpoints
     * const siteCheckpoints = await prisma.siteCheckpoint.findMany()
     * 
     * // Get first 10 SiteCheckpoints
     * const siteCheckpoints = await prisma.siteCheckpoint.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const siteCheckpointWithIdOnly = await prisma.siteCheckpoint.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SiteCheckpointFindManyArgs>(args?: SelectSubset<T, SiteCheckpointFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SiteCheckpoint.
     * @param {SiteCheckpointCreateArgs} args - Arguments to create a SiteCheckpoint.
     * @example
     * // Create one SiteCheckpoint
     * const SiteCheckpoint = await prisma.siteCheckpoint.create({
     *   data: {
     *     // ... data to create a SiteCheckpoint
     *   }
     * })
     * 
     */
    create<T extends SiteCheckpointCreateArgs>(args: SelectSubset<T, SiteCheckpointCreateArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SiteCheckpoints.
     * @param {SiteCheckpointCreateManyArgs} args - Arguments to create many SiteCheckpoints.
     * @example
     * // Create many SiteCheckpoints
     * const siteCheckpoint = await prisma.siteCheckpoint.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SiteCheckpointCreateManyArgs>(args?: SelectSubset<T, SiteCheckpointCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SiteCheckpoints and returns the data saved in the database.
     * @param {SiteCheckpointCreateManyAndReturnArgs} args - Arguments to create many SiteCheckpoints.
     * @example
     * // Create many SiteCheckpoints
     * const siteCheckpoint = await prisma.siteCheckpoint.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SiteCheckpoints and only return the `id`
     * const siteCheckpointWithIdOnly = await prisma.siteCheckpoint.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 SiteCheckpointCreateManyAndReturnArgs>(args?: SelectSubset<T, SiteCheckpointCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SiteCheckpoint.
     * @param {SiteCheckpointDeleteArgs} args - Arguments to delete one SiteCheckpoint.
     * @example
     * // Delete one SiteCheckpoint
     * const SiteCheckpoint = await prisma.siteCheckpoint.delete({
     *   where: {
     *     // ... filter to delete one SiteCheckpoint
     *   }
     * })
     * 
     */
    delete<T extends SiteCheckpointDeleteArgs>(args: SelectSubset<T, SiteCheckpointDeleteArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SiteCheckpoint.
     * @param {SiteCheckpointUpdateArgs} args - Arguments to update one SiteCheckpoint.
     * @example
     * // Update one SiteCheckpoint
     * const siteCheckpoint = await prisma.siteCheckpoint.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SiteCheckpointUpdateArgs>(args: SelectSubset<T, SiteCheckpointUpdateArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SiteCheckpoints.
     * @param {SiteCheckpointDeleteManyArgs} args - Arguments to filter SiteCheckpoints to delete.
     * @example
     * // Delete a few SiteCheckpoints
     * const { count } = await prisma.siteCheckpoint.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SiteCheckpointDeleteManyArgs>(args?: SelectSubset<T, SiteCheckpointDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SiteCheckpoints.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteCheckpointUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SiteCheckpoints
     * const siteCheckpoint = await prisma.siteCheckpoint.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SiteCheckpointUpdateManyArgs>(args: SelectSubset<T, SiteCheckpointUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SiteCheckpoints and returns the data updated in the database.
     * @param {SiteCheckpointUpdateManyAndReturnArgs} args - Arguments to update many SiteCheckpoints.
     * @example
     * // Update many SiteCheckpoints
     * const siteCheckpoint = await prisma.siteCheckpoint.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SiteCheckpoints and only return the `id`
     * const siteCheckpointWithIdOnly = await prisma.siteCheckpoint.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 SiteCheckpointUpdateManyAndReturnArgs>(args: SelectSubset<T, SiteCheckpointUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SiteCheckpoint.
     * @param {SiteCheckpointUpsertArgs} args - Arguments to update or create a SiteCheckpoint.
     * @example
     * // Update or create a SiteCheckpoint
     * const siteCheckpoint = await prisma.siteCheckpoint.upsert({
     *   create: {
     *     // ... data to create a SiteCheckpoint
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SiteCheckpoint we want to update
     *   }
     * })
     */
    upsert<T extends SiteCheckpointUpsertArgs>(args: SelectSubset<T, SiteCheckpointUpsertArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SiteCheckpoints.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteCheckpointCountArgs} args - Arguments to filter SiteCheckpoints to count.
     * @example
     * // Count the number of SiteCheckpoints
     * const count = await prisma.siteCheckpoint.count({
     *   where: {
     *     // ... the filter for the SiteCheckpoints we want to count
     *   }
     * })
    **/
    count<T extends SiteCheckpointCountArgs>(
      args?: Subset<T, SiteCheckpointCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SiteCheckpointCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SiteCheckpoint.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteCheckpointAggregateArgs} 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 SiteCheckpointAggregateArgs>(args: Subset<T, SiteCheckpointAggregateArgs>): Prisma.PrismaPromise<GetSiteCheckpointAggregateType<T>>

    /**
     * Group by SiteCheckpoint.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteCheckpointGroupByArgs} 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 SiteCheckpointGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SiteCheckpointGroupByArgs['orderBy'] }
        : { orderBy?: SiteCheckpointGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SiteCheckpointGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSiteCheckpointGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SiteCheckpoint model
   */
  readonly fields: SiteCheckpointFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SiteCheckpoint.
   * 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__SiteCheckpointClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    events<T extends SiteCheckpoint$eventsArgs<ExtArgs> = {}>(args?: Subset<T, SiteCheckpoint$eventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    dailySummaries<T extends SiteCheckpoint$dailySummariesArgs<ExtArgs> = {}>(args?: Subset<T, SiteCheckpoint$dailySummariesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    sharedPartners<T extends SiteCheckpoint$sharedPartnersArgs<ExtArgs> = {}>(args?: Subset<T, SiteCheckpoint$sharedPartnersArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SiteCheckpoint model
   */
  interface SiteCheckpointFieldRefs {
    readonly id: FieldRef<"SiteCheckpoint", 'String'>
    readonly code: FieldRef<"SiteCheckpoint", 'String'>
    readonly name: FieldRef<"SiteCheckpoint", 'String'>
    readonly description: FieldRef<"SiteCheckpoint", 'String'>
    readonly address: FieldRef<"SiteCheckpoint", 'String'>
    readonly timezone: FieldRef<"SiteCheckpoint", 'String'>
    readonly latitude: FieldRef<"SiteCheckpoint", 'Float'>
    readonly longitude: FieldRef<"SiteCheckpoint", 'Float'>
    readonly geoPolicy: FieldRef<"SiteCheckpoint", 'SiteGeoPolicy'>
    readonly geoRadius: FieldRef<"SiteCheckpoint", 'Int'>
    readonly geoAccuracyThreshold: FieldRef<"SiteCheckpoint", 'Int'>
    readonly allowUnauthenticatedCheckin: FieldRef<"SiteCheckpoint", 'Boolean'>
    readonly isActive: FieldRef<"SiteCheckpoint", 'Boolean'>
    readonly accessMode: FieldRef<"SiteCheckpoint", 'SiteCheckpointAccessMode'>
    readonly qrRotationSeconds: FieldRef<"SiteCheckpoint", 'Int'>
    readonly qrGraceSeconds: FieldRef<"SiteCheckpoint", 'Int'>
    readonly sharedCheckinEnabled: FieldRef<"SiteCheckpoint", 'Boolean'>
    readonly sharedCompanyId: FieldRef<"SiteCheckpoint", 'String'>
    readonly sharedCompanyLabel: FieldRef<"SiteCheckpoint", 'String'>
    readonly createdBy: FieldRef<"SiteCheckpoint", 'String'>
    readonly createdAt: FieldRef<"SiteCheckpoint", 'DateTime'>
    readonly updatedAt: FieldRef<"SiteCheckpoint", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SiteCheckpoint findUnique
   */
  export type SiteCheckpointFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * Filter, which SiteCheckpoint to fetch.
     */
    where: SiteCheckpointWhereUniqueInput
  }

  /**
   * SiteCheckpoint findUniqueOrThrow
   */
  export type SiteCheckpointFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * Filter, which SiteCheckpoint to fetch.
     */
    where: SiteCheckpointWhereUniqueInput
  }

  /**
   * SiteCheckpoint findFirst
   */
  export type SiteCheckpointFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * Filter, which SiteCheckpoint to fetch.
     */
    where?: SiteCheckpointWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteCheckpoints to fetch.
     */
    orderBy?: SiteCheckpointOrderByWithRelationInput | SiteCheckpointOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SiteCheckpoints.
     */
    cursor?: SiteCheckpointWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteCheckpoints 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` SiteCheckpoints.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SiteCheckpoints.
     */
    distinct?: SiteCheckpointScalarFieldEnum | SiteCheckpointScalarFieldEnum[]
  }

  /**
   * SiteCheckpoint findFirstOrThrow
   */
  export type SiteCheckpointFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * Filter, which SiteCheckpoint to fetch.
     */
    where?: SiteCheckpointWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteCheckpoints to fetch.
     */
    orderBy?: SiteCheckpointOrderByWithRelationInput | SiteCheckpointOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SiteCheckpoints.
     */
    cursor?: SiteCheckpointWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteCheckpoints 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` SiteCheckpoints.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SiteCheckpoints.
     */
    distinct?: SiteCheckpointScalarFieldEnum | SiteCheckpointScalarFieldEnum[]
  }

  /**
   * SiteCheckpoint findMany
   */
  export type SiteCheckpointFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * Filter, which SiteCheckpoints to fetch.
     */
    where?: SiteCheckpointWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteCheckpoints to fetch.
     */
    orderBy?: SiteCheckpointOrderByWithRelationInput | SiteCheckpointOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SiteCheckpoints.
     */
    cursor?: SiteCheckpointWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteCheckpoints 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` SiteCheckpoints.
     */
    skip?: number
    distinct?: SiteCheckpointScalarFieldEnum | SiteCheckpointScalarFieldEnum[]
  }

  /**
   * SiteCheckpoint create
   */
  export type SiteCheckpointCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * The data needed to create a SiteCheckpoint.
     */
    data: XOR<SiteCheckpointCreateInput, SiteCheckpointUncheckedCreateInput>
  }

  /**
   * SiteCheckpoint createMany
   */
  export type SiteCheckpointCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SiteCheckpoints.
     */
    data: SiteCheckpointCreateManyInput | SiteCheckpointCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SiteCheckpoint createManyAndReturn
   */
  export type SiteCheckpointCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * The data used to create many SiteCheckpoints.
     */
    data: SiteCheckpointCreateManyInput | SiteCheckpointCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SiteCheckpoint update
   */
  export type SiteCheckpointUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * The data needed to update a SiteCheckpoint.
     */
    data: XOR<SiteCheckpointUpdateInput, SiteCheckpointUncheckedUpdateInput>
    /**
     * Choose, which SiteCheckpoint to update.
     */
    where: SiteCheckpointWhereUniqueInput
  }

  /**
   * SiteCheckpoint updateMany
   */
  export type SiteCheckpointUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SiteCheckpoints.
     */
    data: XOR<SiteCheckpointUpdateManyMutationInput, SiteCheckpointUncheckedUpdateManyInput>
    /**
     * Filter which SiteCheckpoints to update
     */
    where?: SiteCheckpointWhereInput
    /**
     * Limit how many SiteCheckpoints to update.
     */
    limit?: number
  }

  /**
   * SiteCheckpoint updateManyAndReturn
   */
  export type SiteCheckpointUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * The data used to update SiteCheckpoints.
     */
    data: XOR<SiteCheckpointUpdateManyMutationInput, SiteCheckpointUncheckedUpdateManyInput>
    /**
     * Filter which SiteCheckpoints to update
     */
    where?: SiteCheckpointWhereInput
    /**
     * Limit how many SiteCheckpoints to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SiteCheckpoint upsert
   */
  export type SiteCheckpointUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * The filter to search for the SiteCheckpoint to update in case it exists.
     */
    where: SiteCheckpointWhereUniqueInput
    /**
     * In case the SiteCheckpoint found by the `where` argument doesn't exist, create a new SiteCheckpoint with this data.
     */
    create: XOR<SiteCheckpointCreateInput, SiteCheckpointUncheckedCreateInput>
    /**
     * In case the SiteCheckpoint was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SiteCheckpointUpdateInput, SiteCheckpointUncheckedUpdateInput>
  }

  /**
   * SiteCheckpoint delete
   */
  export type SiteCheckpointDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
    /**
     * Filter which SiteCheckpoint to delete.
     */
    where: SiteCheckpointWhereUniqueInput
  }

  /**
   * SiteCheckpoint deleteMany
   */
  export type SiteCheckpointDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SiteCheckpoints to delete
     */
    where?: SiteCheckpointWhereInput
    /**
     * Limit how many SiteCheckpoints to delete.
     */
    limit?: number
  }

  /**
   * SiteCheckpoint.events
   */
  export type SiteCheckpoint$eventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    where?: SiteAttendanceEventWhereInput
    orderBy?: SiteAttendanceEventOrderByWithRelationInput | SiteAttendanceEventOrderByWithRelationInput[]
    cursor?: SiteAttendanceEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SiteAttendanceEventScalarFieldEnum | SiteAttendanceEventScalarFieldEnum[]
  }

  /**
   * SiteCheckpoint.dailySummaries
   */
  export type SiteCheckpoint$dailySummariesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    where?: SiteDailySummaryWhereInput
    orderBy?: SiteDailySummaryOrderByWithRelationInput | SiteDailySummaryOrderByWithRelationInput[]
    cursor?: SiteDailySummaryWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SiteDailySummaryScalarFieldEnum | SiteDailySummaryScalarFieldEnum[]
  }

  /**
   * SiteCheckpoint.sharedPartners
   */
  export type SiteCheckpoint$sharedPartnersArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    where?: SharedCheckinPartnerWhereInput
    orderBy?: SharedCheckinPartnerOrderByWithRelationInput | SharedCheckinPartnerOrderByWithRelationInput[]
    cursor?: SharedCheckinPartnerWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SharedCheckinPartnerScalarFieldEnum | SharedCheckinPartnerScalarFieldEnum[]
  }

  /**
   * SiteCheckpoint without action
   */
  export type SiteCheckpointDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteCheckpoint
     */
    select?: SiteCheckpointSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteCheckpoint
     */
    omit?: SiteCheckpointOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteCheckpointInclude<ExtArgs> | null
  }


  /**
   * Model SharedCheckinPartner
   */

  export type AggregateSharedCheckinPartner = {
    _count: SharedCheckinPartnerCountAggregateOutputType | null
    _avg: SharedCheckinPartnerAvgAggregateOutputType | null
    _sum: SharedCheckinPartnerSumAggregateOutputType | null
    _min: SharedCheckinPartnerMinAggregateOutputType | null
    _max: SharedCheckinPartnerMaxAggregateOutputType | null
  }

  export type SharedCheckinPartnerAvgAggregateOutputType = {
    sortOrder: number | null
  }

  export type SharedCheckinPartnerSumAggregateOutputType = {
    sortOrder: number | null
  }

  export type SharedCheckinPartnerMinAggregateOutputType = {
    id: string | null
    checkpointId: string | null
    companyId: string | null
    companyLabel: string | null
    displayLabel: string | null
    targetUrl: string | null
    isActive: boolean | null
    sortOrder: number | null
    createdBy: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SharedCheckinPartnerMaxAggregateOutputType = {
    id: string | null
    checkpointId: string | null
    companyId: string | null
    companyLabel: string | null
    displayLabel: string | null
    targetUrl: string | null
    isActive: boolean | null
    sortOrder: number | null
    createdBy: string | null
    updatedBy: string | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SharedCheckinPartnerCountAggregateOutputType = {
    id: number
    checkpointId: number
    companyId: number
    companyLabel: number
    displayLabel: number
    targetUrl: number
    isActive: number
    sortOrder: number
    createdBy: number
    updatedBy: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SharedCheckinPartnerAvgAggregateInputType = {
    sortOrder?: true
  }

  export type SharedCheckinPartnerSumAggregateInputType = {
    sortOrder?: true
  }

  export type SharedCheckinPartnerMinAggregateInputType = {
    id?: true
    checkpointId?: true
    companyId?: true
    companyLabel?: true
    displayLabel?: true
    targetUrl?: true
    isActive?: true
    sortOrder?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SharedCheckinPartnerMaxAggregateInputType = {
    id?: true
    checkpointId?: true
    companyId?: true
    companyLabel?: true
    displayLabel?: true
    targetUrl?: true
    isActive?: true
    sortOrder?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SharedCheckinPartnerCountAggregateInputType = {
    id?: true
    checkpointId?: true
    companyId?: true
    companyLabel?: true
    displayLabel?: true
    targetUrl?: true
    isActive?: true
    sortOrder?: true
    createdBy?: true
    updatedBy?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SharedCheckinPartnerAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SharedCheckinPartner to aggregate.
     */
    where?: SharedCheckinPartnerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharedCheckinPartners to fetch.
     */
    orderBy?: SharedCheckinPartnerOrderByWithRelationInput | SharedCheckinPartnerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SharedCheckinPartnerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharedCheckinPartners 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` SharedCheckinPartners.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SharedCheckinPartners
    **/
    _count?: true | SharedCheckinPartnerCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SharedCheckinPartnerAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SharedCheckinPartnerSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SharedCheckinPartnerMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SharedCheckinPartnerMaxAggregateInputType
  }

  export type GetSharedCheckinPartnerAggregateType<T extends SharedCheckinPartnerAggregateArgs> = {
        [P in keyof T & keyof AggregateSharedCheckinPartner]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSharedCheckinPartner[P]>
      : GetScalarType<T[P], AggregateSharedCheckinPartner[P]>
  }




  export type SharedCheckinPartnerGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SharedCheckinPartnerWhereInput
    orderBy?: SharedCheckinPartnerOrderByWithAggregationInput | SharedCheckinPartnerOrderByWithAggregationInput[]
    by: SharedCheckinPartnerScalarFieldEnum[] | SharedCheckinPartnerScalarFieldEnum
    having?: SharedCheckinPartnerScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SharedCheckinPartnerCountAggregateInputType | true
    _avg?: SharedCheckinPartnerAvgAggregateInputType
    _sum?: SharedCheckinPartnerSumAggregateInputType
    _min?: SharedCheckinPartnerMinAggregateInputType
    _max?: SharedCheckinPartnerMaxAggregateInputType
  }

  export type SharedCheckinPartnerGroupByOutputType = {
    id: string
    checkpointId: string
    companyId: string
    companyLabel: string
    displayLabel: string | null
    targetUrl: string
    isActive: boolean
    sortOrder: number
    createdBy: string
    updatedBy: string
    createdAt: Date
    updatedAt: Date
    _count: SharedCheckinPartnerCountAggregateOutputType | null
    _avg: SharedCheckinPartnerAvgAggregateOutputType | null
    _sum: SharedCheckinPartnerSumAggregateOutputType | null
    _min: SharedCheckinPartnerMinAggregateOutputType | null
    _max: SharedCheckinPartnerMaxAggregateOutputType | null
  }

  type GetSharedCheckinPartnerGroupByPayload<T extends SharedCheckinPartnerGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SharedCheckinPartnerGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SharedCheckinPartnerGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SharedCheckinPartnerGroupByOutputType[P]>
            : GetScalarType<T[P], SharedCheckinPartnerGroupByOutputType[P]>
        }
      >
    >


  export type SharedCheckinPartnerSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    companyId?: boolean
    companyLabel?: boolean
    displayLabel?: boolean
    targetUrl?: boolean
    isActive?: boolean
    sortOrder?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["sharedCheckinPartner"]>

  export type SharedCheckinPartnerSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    companyId?: boolean
    companyLabel?: boolean
    displayLabel?: boolean
    targetUrl?: boolean
    isActive?: boolean
    sortOrder?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["sharedCheckinPartner"]>

  export type SharedCheckinPartnerSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    companyId?: boolean
    companyLabel?: boolean
    displayLabel?: boolean
    targetUrl?: boolean
    isActive?: boolean
    sortOrder?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["sharedCheckinPartner"]>

  export type SharedCheckinPartnerSelectScalar = {
    id?: boolean
    checkpointId?: boolean
    companyId?: boolean
    companyLabel?: boolean
    displayLabel?: boolean
    targetUrl?: boolean
    isActive?: boolean
    sortOrder?: boolean
    createdBy?: boolean
    updatedBy?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SharedCheckinPartnerOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "checkpointId" | "companyId" | "companyLabel" | "displayLabel" | "targetUrl" | "isActive" | "sortOrder" | "createdBy" | "updatedBy" | "createdAt" | "updatedAt", ExtArgs["result"]["sharedCheckinPartner"]>
  export type SharedCheckinPartnerInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type SharedCheckinPartnerIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type SharedCheckinPartnerIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    creator?: boolean | UserDefaultArgs<ExtArgs>
    updater?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $SharedCheckinPartnerPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SharedCheckinPartner"
    objects: {
      checkpoint: Prisma.$SiteCheckpointPayload<ExtArgs>
      creator: Prisma.$UserPayload<ExtArgs>
      updater: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      checkpointId: string
      companyId: string
      companyLabel: string
      displayLabel: string | null
      targetUrl: string
      isActive: boolean
      sortOrder: number
      createdBy: string
      updatedBy: string
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["sharedCheckinPartner"]>
    composites: {}
  }

  type SharedCheckinPartnerGetPayload<S extends boolean | null | undefined | SharedCheckinPartnerDefaultArgs> = $Result.GetResult<Prisma.$SharedCheckinPartnerPayload, S>

  type SharedCheckinPartnerCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SharedCheckinPartnerFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SharedCheckinPartnerCountAggregateInputType | true
    }

  export interface SharedCheckinPartnerDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SharedCheckinPartner'], meta: { name: 'SharedCheckinPartner' } }
    /**
     * Find zero or one SharedCheckinPartner that matches the filter.
     * @param {SharedCheckinPartnerFindUniqueArgs} args - Arguments to find a SharedCheckinPartner
     * @example
     * // Get one SharedCheckinPartner
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SharedCheckinPartnerFindUniqueArgs>(args: SelectSubset<T, SharedCheckinPartnerFindUniqueArgs<ExtArgs>>): Prisma__SharedCheckinPartnerClient<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SharedCheckinPartner that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SharedCheckinPartnerFindUniqueOrThrowArgs} args - Arguments to find a SharedCheckinPartner
     * @example
     * // Get one SharedCheckinPartner
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SharedCheckinPartnerFindUniqueOrThrowArgs>(args: SelectSubset<T, SharedCheckinPartnerFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SharedCheckinPartnerClient<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SharedCheckinPartner 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 {SharedCheckinPartnerFindFirstArgs} args - Arguments to find a SharedCheckinPartner
     * @example
     * // Get one SharedCheckinPartner
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SharedCheckinPartnerFindFirstArgs>(args?: SelectSubset<T, SharedCheckinPartnerFindFirstArgs<ExtArgs>>): Prisma__SharedCheckinPartnerClient<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SharedCheckinPartner 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 {SharedCheckinPartnerFindFirstOrThrowArgs} args - Arguments to find a SharedCheckinPartner
     * @example
     * // Get one SharedCheckinPartner
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SharedCheckinPartnerFindFirstOrThrowArgs>(args?: SelectSubset<T, SharedCheckinPartnerFindFirstOrThrowArgs<ExtArgs>>): Prisma__SharedCheckinPartnerClient<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SharedCheckinPartners 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 {SharedCheckinPartnerFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SharedCheckinPartners
     * const sharedCheckinPartners = await prisma.sharedCheckinPartner.findMany()
     * 
     * // Get first 10 SharedCheckinPartners
     * const sharedCheckinPartners = await prisma.sharedCheckinPartner.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const sharedCheckinPartnerWithIdOnly = await prisma.sharedCheckinPartner.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SharedCheckinPartnerFindManyArgs>(args?: SelectSubset<T, SharedCheckinPartnerFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SharedCheckinPartner.
     * @param {SharedCheckinPartnerCreateArgs} args - Arguments to create a SharedCheckinPartner.
     * @example
     * // Create one SharedCheckinPartner
     * const SharedCheckinPartner = await prisma.sharedCheckinPartner.create({
     *   data: {
     *     // ... data to create a SharedCheckinPartner
     *   }
     * })
     * 
     */
    create<T extends SharedCheckinPartnerCreateArgs>(args: SelectSubset<T, SharedCheckinPartnerCreateArgs<ExtArgs>>): Prisma__SharedCheckinPartnerClient<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SharedCheckinPartners.
     * @param {SharedCheckinPartnerCreateManyArgs} args - Arguments to create many SharedCheckinPartners.
     * @example
     * // Create many SharedCheckinPartners
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SharedCheckinPartnerCreateManyArgs>(args?: SelectSubset<T, SharedCheckinPartnerCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SharedCheckinPartners and returns the data saved in the database.
     * @param {SharedCheckinPartnerCreateManyAndReturnArgs} args - Arguments to create many SharedCheckinPartners.
     * @example
     * // Create many SharedCheckinPartners
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SharedCheckinPartners and only return the `id`
     * const sharedCheckinPartnerWithIdOnly = await prisma.sharedCheckinPartner.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 SharedCheckinPartnerCreateManyAndReturnArgs>(args?: SelectSubset<T, SharedCheckinPartnerCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SharedCheckinPartner.
     * @param {SharedCheckinPartnerDeleteArgs} args - Arguments to delete one SharedCheckinPartner.
     * @example
     * // Delete one SharedCheckinPartner
     * const SharedCheckinPartner = await prisma.sharedCheckinPartner.delete({
     *   where: {
     *     // ... filter to delete one SharedCheckinPartner
     *   }
     * })
     * 
     */
    delete<T extends SharedCheckinPartnerDeleteArgs>(args: SelectSubset<T, SharedCheckinPartnerDeleteArgs<ExtArgs>>): Prisma__SharedCheckinPartnerClient<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SharedCheckinPartner.
     * @param {SharedCheckinPartnerUpdateArgs} args - Arguments to update one SharedCheckinPartner.
     * @example
     * // Update one SharedCheckinPartner
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SharedCheckinPartnerUpdateArgs>(args: SelectSubset<T, SharedCheckinPartnerUpdateArgs<ExtArgs>>): Prisma__SharedCheckinPartnerClient<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SharedCheckinPartners.
     * @param {SharedCheckinPartnerDeleteManyArgs} args - Arguments to filter SharedCheckinPartners to delete.
     * @example
     * // Delete a few SharedCheckinPartners
     * const { count } = await prisma.sharedCheckinPartner.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SharedCheckinPartnerDeleteManyArgs>(args?: SelectSubset<T, SharedCheckinPartnerDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SharedCheckinPartners.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharedCheckinPartnerUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SharedCheckinPartners
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SharedCheckinPartnerUpdateManyArgs>(args: SelectSubset<T, SharedCheckinPartnerUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SharedCheckinPartners and returns the data updated in the database.
     * @param {SharedCheckinPartnerUpdateManyAndReturnArgs} args - Arguments to update many SharedCheckinPartners.
     * @example
     * // Update many SharedCheckinPartners
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SharedCheckinPartners and only return the `id`
     * const sharedCheckinPartnerWithIdOnly = await prisma.sharedCheckinPartner.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 SharedCheckinPartnerUpdateManyAndReturnArgs>(args: SelectSubset<T, SharedCheckinPartnerUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SharedCheckinPartner.
     * @param {SharedCheckinPartnerUpsertArgs} args - Arguments to update or create a SharedCheckinPartner.
     * @example
     * // Update or create a SharedCheckinPartner
     * const sharedCheckinPartner = await prisma.sharedCheckinPartner.upsert({
     *   create: {
     *     // ... data to create a SharedCheckinPartner
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SharedCheckinPartner we want to update
     *   }
     * })
     */
    upsert<T extends SharedCheckinPartnerUpsertArgs>(args: SelectSubset<T, SharedCheckinPartnerUpsertArgs<ExtArgs>>): Prisma__SharedCheckinPartnerClient<$Result.GetResult<Prisma.$SharedCheckinPartnerPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SharedCheckinPartners.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharedCheckinPartnerCountArgs} args - Arguments to filter SharedCheckinPartners to count.
     * @example
     * // Count the number of SharedCheckinPartners
     * const count = await prisma.sharedCheckinPartner.count({
     *   where: {
     *     // ... the filter for the SharedCheckinPartners we want to count
     *   }
     * })
    **/
    count<T extends SharedCheckinPartnerCountArgs>(
      args?: Subset<T, SharedCheckinPartnerCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SharedCheckinPartnerCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SharedCheckinPartner.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharedCheckinPartnerAggregateArgs} 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 SharedCheckinPartnerAggregateArgs>(args: Subset<T, SharedCheckinPartnerAggregateArgs>): Prisma.PrismaPromise<GetSharedCheckinPartnerAggregateType<T>>

    /**
     * Group by SharedCheckinPartner.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharedCheckinPartnerGroupByArgs} 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 SharedCheckinPartnerGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SharedCheckinPartnerGroupByArgs['orderBy'] }
        : { orderBy?: SharedCheckinPartnerGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SharedCheckinPartnerGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSharedCheckinPartnerGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SharedCheckinPartner model
   */
  readonly fields: SharedCheckinPartnerFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SharedCheckinPartner.
   * 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__SharedCheckinPartnerClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    checkpoint<T extends SiteCheckpointDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SiteCheckpointDefaultArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    creator<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    updater<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SharedCheckinPartner model
   */
  interface SharedCheckinPartnerFieldRefs {
    readonly id: FieldRef<"SharedCheckinPartner", 'String'>
    readonly checkpointId: FieldRef<"SharedCheckinPartner", 'String'>
    readonly companyId: FieldRef<"SharedCheckinPartner", 'String'>
    readonly companyLabel: FieldRef<"SharedCheckinPartner", 'String'>
    readonly displayLabel: FieldRef<"SharedCheckinPartner", 'String'>
    readonly targetUrl: FieldRef<"SharedCheckinPartner", 'String'>
    readonly isActive: FieldRef<"SharedCheckinPartner", 'Boolean'>
    readonly sortOrder: FieldRef<"SharedCheckinPartner", 'Int'>
    readonly createdBy: FieldRef<"SharedCheckinPartner", 'String'>
    readonly updatedBy: FieldRef<"SharedCheckinPartner", 'String'>
    readonly createdAt: FieldRef<"SharedCheckinPartner", 'DateTime'>
    readonly updatedAt: FieldRef<"SharedCheckinPartner", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SharedCheckinPartner findUnique
   */
  export type SharedCheckinPartnerFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * Filter, which SharedCheckinPartner to fetch.
     */
    where: SharedCheckinPartnerWhereUniqueInput
  }

  /**
   * SharedCheckinPartner findUniqueOrThrow
   */
  export type SharedCheckinPartnerFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * Filter, which SharedCheckinPartner to fetch.
     */
    where: SharedCheckinPartnerWhereUniqueInput
  }

  /**
   * SharedCheckinPartner findFirst
   */
  export type SharedCheckinPartnerFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * Filter, which SharedCheckinPartner to fetch.
     */
    where?: SharedCheckinPartnerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharedCheckinPartners to fetch.
     */
    orderBy?: SharedCheckinPartnerOrderByWithRelationInput | SharedCheckinPartnerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SharedCheckinPartners.
     */
    cursor?: SharedCheckinPartnerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharedCheckinPartners 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` SharedCheckinPartners.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SharedCheckinPartners.
     */
    distinct?: SharedCheckinPartnerScalarFieldEnum | SharedCheckinPartnerScalarFieldEnum[]
  }

  /**
   * SharedCheckinPartner findFirstOrThrow
   */
  export type SharedCheckinPartnerFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * Filter, which SharedCheckinPartner to fetch.
     */
    where?: SharedCheckinPartnerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharedCheckinPartners to fetch.
     */
    orderBy?: SharedCheckinPartnerOrderByWithRelationInput | SharedCheckinPartnerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SharedCheckinPartners.
     */
    cursor?: SharedCheckinPartnerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharedCheckinPartners 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` SharedCheckinPartners.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SharedCheckinPartners.
     */
    distinct?: SharedCheckinPartnerScalarFieldEnum | SharedCheckinPartnerScalarFieldEnum[]
  }

  /**
   * SharedCheckinPartner findMany
   */
  export type SharedCheckinPartnerFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * Filter, which SharedCheckinPartners to fetch.
     */
    where?: SharedCheckinPartnerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharedCheckinPartners to fetch.
     */
    orderBy?: SharedCheckinPartnerOrderByWithRelationInput | SharedCheckinPartnerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SharedCheckinPartners.
     */
    cursor?: SharedCheckinPartnerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharedCheckinPartners 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` SharedCheckinPartners.
     */
    skip?: number
    distinct?: SharedCheckinPartnerScalarFieldEnum | SharedCheckinPartnerScalarFieldEnum[]
  }

  /**
   * SharedCheckinPartner create
   */
  export type SharedCheckinPartnerCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * The data needed to create a SharedCheckinPartner.
     */
    data: XOR<SharedCheckinPartnerCreateInput, SharedCheckinPartnerUncheckedCreateInput>
  }

  /**
   * SharedCheckinPartner createMany
   */
  export type SharedCheckinPartnerCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SharedCheckinPartners.
     */
    data: SharedCheckinPartnerCreateManyInput | SharedCheckinPartnerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SharedCheckinPartner createManyAndReturn
   */
  export type SharedCheckinPartnerCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * The data used to create many SharedCheckinPartners.
     */
    data: SharedCheckinPartnerCreateManyInput | SharedCheckinPartnerCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SharedCheckinPartner update
   */
  export type SharedCheckinPartnerUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * The data needed to update a SharedCheckinPartner.
     */
    data: XOR<SharedCheckinPartnerUpdateInput, SharedCheckinPartnerUncheckedUpdateInput>
    /**
     * Choose, which SharedCheckinPartner to update.
     */
    where: SharedCheckinPartnerWhereUniqueInput
  }

  /**
   * SharedCheckinPartner updateMany
   */
  export type SharedCheckinPartnerUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SharedCheckinPartners.
     */
    data: XOR<SharedCheckinPartnerUpdateManyMutationInput, SharedCheckinPartnerUncheckedUpdateManyInput>
    /**
     * Filter which SharedCheckinPartners to update
     */
    where?: SharedCheckinPartnerWhereInput
    /**
     * Limit how many SharedCheckinPartners to update.
     */
    limit?: number
  }

  /**
   * SharedCheckinPartner updateManyAndReturn
   */
  export type SharedCheckinPartnerUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * The data used to update SharedCheckinPartners.
     */
    data: XOR<SharedCheckinPartnerUpdateManyMutationInput, SharedCheckinPartnerUncheckedUpdateManyInput>
    /**
     * Filter which SharedCheckinPartners to update
     */
    where?: SharedCheckinPartnerWhereInput
    /**
     * Limit how many SharedCheckinPartners to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SharedCheckinPartner upsert
   */
  export type SharedCheckinPartnerUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * The filter to search for the SharedCheckinPartner to update in case it exists.
     */
    where: SharedCheckinPartnerWhereUniqueInput
    /**
     * In case the SharedCheckinPartner found by the `where` argument doesn't exist, create a new SharedCheckinPartner with this data.
     */
    create: XOR<SharedCheckinPartnerCreateInput, SharedCheckinPartnerUncheckedCreateInput>
    /**
     * In case the SharedCheckinPartner was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SharedCheckinPartnerUpdateInput, SharedCheckinPartnerUncheckedUpdateInput>
  }

  /**
   * SharedCheckinPartner delete
   */
  export type SharedCheckinPartnerDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
    /**
     * Filter which SharedCheckinPartner to delete.
     */
    where: SharedCheckinPartnerWhereUniqueInput
  }

  /**
   * SharedCheckinPartner deleteMany
   */
  export type SharedCheckinPartnerDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SharedCheckinPartners to delete
     */
    where?: SharedCheckinPartnerWhereInput
    /**
     * Limit how many SharedCheckinPartners to delete.
     */
    limit?: number
  }

  /**
   * SharedCheckinPartner without action
   */
  export type SharedCheckinPartnerDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinPartner
     */
    select?: SharedCheckinPartnerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinPartner
     */
    omit?: SharedCheckinPartnerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SharedCheckinPartnerInclude<ExtArgs> | null
  }


  /**
   * Model SharedCheckinTicketUsage
   */

  export type AggregateSharedCheckinTicketUsage = {
    _count: SharedCheckinTicketUsageCountAggregateOutputType | null
    _min: SharedCheckinTicketUsageMinAggregateOutputType | null
    _max: SharedCheckinTicketUsageMaxAggregateOutputType | null
  }

  export type SharedCheckinTicketUsageMinAggregateOutputType = {
    nonce: string | null
    usedAt: Date | null
    expiresAt: Date | null
  }

  export type SharedCheckinTicketUsageMaxAggregateOutputType = {
    nonce: string | null
    usedAt: Date | null
    expiresAt: Date | null
  }

  export type SharedCheckinTicketUsageCountAggregateOutputType = {
    nonce: number
    usedAt: number
    expiresAt: number
    _all: number
  }


  export type SharedCheckinTicketUsageMinAggregateInputType = {
    nonce?: true
    usedAt?: true
    expiresAt?: true
  }

  export type SharedCheckinTicketUsageMaxAggregateInputType = {
    nonce?: true
    usedAt?: true
    expiresAt?: true
  }

  export type SharedCheckinTicketUsageCountAggregateInputType = {
    nonce?: true
    usedAt?: true
    expiresAt?: true
    _all?: true
  }

  export type SharedCheckinTicketUsageAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SharedCheckinTicketUsage to aggregate.
     */
    where?: SharedCheckinTicketUsageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharedCheckinTicketUsages to fetch.
     */
    orderBy?: SharedCheckinTicketUsageOrderByWithRelationInput | SharedCheckinTicketUsageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SharedCheckinTicketUsageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharedCheckinTicketUsages 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` SharedCheckinTicketUsages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SharedCheckinTicketUsages
    **/
    _count?: true | SharedCheckinTicketUsageCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SharedCheckinTicketUsageMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SharedCheckinTicketUsageMaxAggregateInputType
  }

  export type GetSharedCheckinTicketUsageAggregateType<T extends SharedCheckinTicketUsageAggregateArgs> = {
        [P in keyof T & keyof AggregateSharedCheckinTicketUsage]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSharedCheckinTicketUsage[P]>
      : GetScalarType<T[P], AggregateSharedCheckinTicketUsage[P]>
  }




  export type SharedCheckinTicketUsageGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SharedCheckinTicketUsageWhereInput
    orderBy?: SharedCheckinTicketUsageOrderByWithAggregationInput | SharedCheckinTicketUsageOrderByWithAggregationInput[]
    by: SharedCheckinTicketUsageScalarFieldEnum[] | SharedCheckinTicketUsageScalarFieldEnum
    having?: SharedCheckinTicketUsageScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SharedCheckinTicketUsageCountAggregateInputType | true
    _min?: SharedCheckinTicketUsageMinAggregateInputType
    _max?: SharedCheckinTicketUsageMaxAggregateInputType
  }

  export type SharedCheckinTicketUsageGroupByOutputType = {
    nonce: string
    usedAt: Date
    expiresAt: Date
    _count: SharedCheckinTicketUsageCountAggregateOutputType | null
    _min: SharedCheckinTicketUsageMinAggregateOutputType | null
    _max: SharedCheckinTicketUsageMaxAggregateOutputType | null
  }

  type GetSharedCheckinTicketUsageGroupByPayload<T extends SharedCheckinTicketUsageGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SharedCheckinTicketUsageGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SharedCheckinTicketUsageGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SharedCheckinTicketUsageGroupByOutputType[P]>
            : GetScalarType<T[P], SharedCheckinTicketUsageGroupByOutputType[P]>
        }
      >
    >


  export type SharedCheckinTicketUsageSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    nonce?: boolean
    usedAt?: boolean
    expiresAt?: boolean
  }, ExtArgs["result"]["sharedCheckinTicketUsage"]>

  export type SharedCheckinTicketUsageSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    nonce?: boolean
    usedAt?: boolean
    expiresAt?: boolean
  }, ExtArgs["result"]["sharedCheckinTicketUsage"]>

  export type SharedCheckinTicketUsageSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    nonce?: boolean
    usedAt?: boolean
    expiresAt?: boolean
  }, ExtArgs["result"]["sharedCheckinTicketUsage"]>

  export type SharedCheckinTicketUsageSelectScalar = {
    nonce?: boolean
    usedAt?: boolean
    expiresAt?: boolean
  }

  export type SharedCheckinTicketUsageOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"nonce" | "usedAt" | "expiresAt", ExtArgs["result"]["sharedCheckinTicketUsage"]>

  export type $SharedCheckinTicketUsagePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SharedCheckinTicketUsage"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      nonce: string
      usedAt: Date
      expiresAt: Date
    }, ExtArgs["result"]["sharedCheckinTicketUsage"]>
    composites: {}
  }

  type SharedCheckinTicketUsageGetPayload<S extends boolean | null | undefined | SharedCheckinTicketUsageDefaultArgs> = $Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload, S>

  type SharedCheckinTicketUsageCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SharedCheckinTicketUsageFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SharedCheckinTicketUsageCountAggregateInputType | true
    }

  export interface SharedCheckinTicketUsageDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SharedCheckinTicketUsage'], meta: { name: 'SharedCheckinTicketUsage' } }
    /**
     * Find zero or one SharedCheckinTicketUsage that matches the filter.
     * @param {SharedCheckinTicketUsageFindUniqueArgs} args - Arguments to find a SharedCheckinTicketUsage
     * @example
     * // Get one SharedCheckinTicketUsage
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SharedCheckinTicketUsageFindUniqueArgs>(args: SelectSubset<T, SharedCheckinTicketUsageFindUniqueArgs<ExtArgs>>): Prisma__SharedCheckinTicketUsageClient<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SharedCheckinTicketUsage that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SharedCheckinTicketUsageFindUniqueOrThrowArgs} args - Arguments to find a SharedCheckinTicketUsage
     * @example
     * // Get one SharedCheckinTicketUsage
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SharedCheckinTicketUsageFindUniqueOrThrowArgs>(args: SelectSubset<T, SharedCheckinTicketUsageFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SharedCheckinTicketUsageClient<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SharedCheckinTicketUsage 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 {SharedCheckinTicketUsageFindFirstArgs} args - Arguments to find a SharedCheckinTicketUsage
     * @example
     * // Get one SharedCheckinTicketUsage
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SharedCheckinTicketUsageFindFirstArgs>(args?: SelectSubset<T, SharedCheckinTicketUsageFindFirstArgs<ExtArgs>>): Prisma__SharedCheckinTicketUsageClient<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SharedCheckinTicketUsage 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 {SharedCheckinTicketUsageFindFirstOrThrowArgs} args - Arguments to find a SharedCheckinTicketUsage
     * @example
     * // Get one SharedCheckinTicketUsage
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SharedCheckinTicketUsageFindFirstOrThrowArgs>(args?: SelectSubset<T, SharedCheckinTicketUsageFindFirstOrThrowArgs<ExtArgs>>): Prisma__SharedCheckinTicketUsageClient<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SharedCheckinTicketUsages 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 {SharedCheckinTicketUsageFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SharedCheckinTicketUsages
     * const sharedCheckinTicketUsages = await prisma.sharedCheckinTicketUsage.findMany()
     * 
     * // Get first 10 SharedCheckinTicketUsages
     * const sharedCheckinTicketUsages = await prisma.sharedCheckinTicketUsage.findMany({ take: 10 })
     * 
     * // Only select the `nonce`
     * const sharedCheckinTicketUsageWithNonceOnly = await prisma.sharedCheckinTicketUsage.findMany({ select: { nonce: true } })
     * 
     */
    findMany<T extends SharedCheckinTicketUsageFindManyArgs>(args?: SelectSubset<T, SharedCheckinTicketUsageFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SharedCheckinTicketUsage.
     * @param {SharedCheckinTicketUsageCreateArgs} args - Arguments to create a SharedCheckinTicketUsage.
     * @example
     * // Create one SharedCheckinTicketUsage
     * const SharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.create({
     *   data: {
     *     // ... data to create a SharedCheckinTicketUsage
     *   }
     * })
     * 
     */
    create<T extends SharedCheckinTicketUsageCreateArgs>(args: SelectSubset<T, SharedCheckinTicketUsageCreateArgs<ExtArgs>>): Prisma__SharedCheckinTicketUsageClient<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SharedCheckinTicketUsages.
     * @param {SharedCheckinTicketUsageCreateManyArgs} args - Arguments to create many SharedCheckinTicketUsages.
     * @example
     * // Create many SharedCheckinTicketUsages
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SharedCheckinTicketUsageCreateManyArgs>(args?: SelectSubset<T, SharedCheckinTicketUsageCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SharedCheckinTicketUsages and returns the data saved in the database.
     * @param {SharedCheckinTicketUsageCreateManyAndReturnArgs} args - Arguments to create many SharedCheckinTicketUsages.
     * @example
     * // Create many SharedCheckinTicketUsages
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SharedCheckinTicketUsages and only return the `nonce`
     * const sharedCheckinTicketUsageWithNonceOnly = await prisma.sharedCheckinTicketUsage.createManyAndReturn({
     *   select: { nonce: 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 SharedCheckinTicketUsageCreateManyAndReturnArgs>(args?: SelectSubset<T, SharedCheckinTicketUsageCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SharedCheckinTicketUsage.
     * @param {SharedCheckinTicketUsageDeleteArgs} args - Arguments to delete one SharedCheckinTicketUsage.
     * @example
     * // Delete one SharedCheckinTicketUsage
     * const SharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.delete({
     *   where: {
     *     // ... filter to delete one SharedCheckinTicketUsage
     *   }
     * })
     * 
     */
    delete<T extends SharedCheckinTicketUsageDeleteArgs>(args: SelectSubset<T, SharedCheckinTicketUsageDeleteArgs<ExtArgs>>): Prisma__SharedCheckinTicketUsageClient<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SharedCheckinTicketUsage.
     * @param {SharedCheckinTicketUsageUpdateArgs} args - Arguments to update one SharedCheckinTicketUsage.
     * @example
     * // Update one SharedCheckinTicketUsage
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SharedCheckinTicketUsageUpdateArgs>(args: SelectSubset<T, SharedCheckinTicketUsageUpdateArgs<ExtArgs>>): Prisma__SharedCheckinTicketUsageClient<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SharedCheckinTicketUsages.
     * @param {SharedCheckinTicketUsageDeleteManyArgs} args - Arguments to filter SharedCheckinTicketUsages to delete.
     * @example
     * // Delete a few SharedCheckinTicketUsages
     * const { count } = await prisma.sharedCheckinTicketUsage.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SharedCheckinTicketUsageDeleteManyArgs>(args?: SelectSubset<T, SharedCheckinTicketUsageDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SharedCheckinTicketUsages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharedCheckinTicketUsageUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SharedCheckinTicketUsages
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SharedCheckinTicketUsageUpdateManyArgs>(args: SelectSubset<T, SharedCheckinTicketUsageUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SharedCheckinTicketUsages and returns the data updated in the database.
     * @param {SharedCheckinTicketUsageUpdateManyAndReturnArgs} args - Arguments to update many SharedCheckinTicketUsages.
     * @example
     * // Update many SharedCheckinTicketUsages
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SharedCheckinTicketUsages and only return the `nonce`
     * const sharedCheckinTicketUsageWithNonceOnly = await prisma.sharedCheckinTicketUsage.updateManyAndReturn({
     *   select: { nonce: 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 SharedCheckinTicketUsageUpdateManyAndReturnArgs>(args: SelectSubset<T, SharedCheckinTicketUsageUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SharedCheckinTicketUsage.
     * @param {SharedCheckinTicketUsageUpsertArgs} args - Arguments to update or create a SharedCheckinTicketUsage.
     * @example
     * // Update or create a SharedCheckinTicketUsage
     * const sharedCheckinTicketUsage = await prisma.sharedCheckinTicketUsage.upsert({
     *   create: {
     *     // ... data to create a SharedCheckinTicketUsage
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SharedCheckinTicketUsage we want to update
     *   }
     * })
     */
    upsert<T extends SharedCheckinTicketUsageUpsertArgs>(args: SelectSubset<T, SharedCheckinTicketUsageUpsertArgs<ExtArgs>>): Prisma__SharedCheckinTicketUsageClient<$Result.GetResult<Prisma.$SharedCheckinTicketUsagePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SharedCheckinTicketUsages.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharedCheckinTicketUsageCountArgs} args - Arguments to filter SharedCheckinTicketUsages to count.
     * @example
     * // Count the number of SharedCheckinTicketUsages
     * const count = await prisma.sharedCheckinTicketUsage.count({
     *   where: {
     *     // ... the filter for the SharedCheckinTicketUsages we want to count
     *   }
     * })
    **/
    count<T extends SharedCheckinTicketUsageCountArgs>(
      args?: Subset<T, SharedCheckinTicketUsageCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SharedCheckinTicketUsageCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SharedCheckinTicketUsage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharedCheckinTicketUsageAggregateArgs} 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 SharedCheckinTicketUsageAggregateArgs>(args: Subset<T, SharedCheckinTicketUsageAggregateArgs>): Prisma.PrismaPromise<GetSharedCheckinTicketUsageAggregateType<T>>

    /**
     * Group by SharedCheckinTicketUsage.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SharedCheckinTicketUsageGroupByArgs} 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 SharedCheckinTicketUsageGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SharedCheckinTicketUsageGroupByArgs['orderBy'] }
        : { orderBy?: SharedCheckinTicketUsageGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SharedCheckinTicketUsageGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSharedCheckinTicketUsageGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SharedCheckinTicketUsage model
   */
  readonly fields: SharedCheckinTicketUsageFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SharedCheckinTicketUsage.
   * 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__SharedCheckinTicketUsageClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SharedCheckinTicketUsage model
   */
  interface SharedCheckinTicketUsageFieldRefs {
    readonly nonce: FieldRef<"SharedCheckinTicketUsage", 'String'>
    readonly usedAt: FieldRef<"SharedCheckinTicketUsage", 'DateTime'>
    readonly expiresAt: FieldRef<"SharedCheckinTicketUsage", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SharedCheckinTicketUsage findUnique
   */
  export type SharedCheckinTicketUsageFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * Filter, which SharedCheckinTicketUsage to fetch.
     */
    where: SharedCheckinTicketUsageWhereUniqueInput
  }

  /**
   * SharedCheckinTicketUsage findUniqueOrThrow
   */
  export type SharedCheckinTicketUsageFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * Filter, which SharedCheckinTicketUsage to fetch.
     */
    where: SharedCheckinTicketUsageWhereUniqueInput
  }

  /**
   * SharedCheckinTicketUsage findFirst
   */
  export type SharedCheckinTicketUsageFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * Filter, which SharedCheckinTicketUsage to fetch.
     */
    where?: SharedCheckinTicketUsageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharedCheckinTicketUsages to fetch.
     */
    orderBy?: SharedCheckinTicketUsageOrderByWithRelationInput | SharedCheckinTicketUsageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SharedCheckinTicketUsages.
     */
    cursor?: SharedCheckinTicketUsageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharedCheckinTicketUsages 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` SharedCheckinTicketUsages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SharedCheckinTicketUsages.
     */
    distinct?: SharedCheckinTicketUsageScalarFieldEnum | SharedCheckinTicketUsageScalarFieldEnum[]
  }

  /**
   * SharedCheckinTicketUsage findFirstOrThrow
   */
  export type SharedCheckinTicketUsageFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * Filter, which SharedCheckinTicketUsage to fetch.
     */
    where?: SharedCheckinTicketUsageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharedCheckinTicketUsages to fetch.
     */
    orderBy?: SharedCheckinTicketUsageOrderByWithRelationInput | SharedCheckinTicketUsageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SharedCheckinTicketUsages.
     */
    cursor?: SharedCheckinTicketUsageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharedCheckinTicketUsages 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` SharedCheckinTicketUsages.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SharedCheckinTicketUsages.
     */
    distinct?: SharedCheckinTicketUsageScalarFieldEnum | SharedCheckinTicketUsageScalarFieldEnum[]
  }

  /**
   * SharedCheckinTicketUsage findMany
   */
  export type SharedCheckinTicketUsageFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * Filter, which SharedCheckinTicketUsages to fetch.
     */
    where?: SharedCheckinTicketUsageWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SharedCheckinTicketUsages to fetch.
     */
    orderBy?: SharedCheckinTicketUsageOrderByWithRelationInput | SharedCheckinTicketUsageOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SharedCheckinTicketUsages.
     */
    cursor?: SharedCheckinTicketUsageWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SharedCheckinTicketUsages 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` SharedCheckinTicketUsages.
     */
    skip?: number
    distinct?: SharedCheckinTicketUsageScalarFieldEnum | SharedCheckinTicketUsageScalarFieldEnum[]
  }

  /**
   * SharedCheckinTicketUsage create
   */
  export type SharedCheckinTicketUsageCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * The data needed to create a SharedCheckinTicketUsage.
     */
    data: XOR<SharedCheckinTicketUsageCreateInput, SharedCheckinTicketUsageUncheckedCreateInput>
  }

  /**
   * SharedCheckinTicketUsage createMany
   */
  export type SharedCheckinTicketUsageCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SharedCheckinTicketUsages.
     */
    data: SharedCheckinTicketUsageCreateManyInput | SharedCheckinTicketUsageCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SharedCheckinTicketUsage createManyAndReturn
   */
  export type SharedCheckinTicketUsageCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * The data used to create many SharedCheckinTicketUsages.
     */
    data: SharedCheckinTicketUsageCreateManyInput | SharedCheckinTicketUsageCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SharedCheckinTicketUsage update
   */
  export type SharedCheckinTicketUsageUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * The data needed to update a SharedCheckinTicketUsage.
     */
    data: XOR<SharedCheckinTicketUsageUpdateInput, SharedCheckinTicketUsageUncheckedUpdateInput>
    /**
     * Choose, which SharedCheckinTicketUsage to update.
     */
    where: SharedCheckinTicketUsageWhereUniqueInput
  }

  /**
   * SharedCheckinTicketUsage updateMany
   */
  export type SharedCheckinTicketUsageUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SharedCheckinTicketUsages.
     */
    data: XOR<SharedCheckinTicketUsageUpdateManyMutationInput, SharedCheckinTicketUsageUncheckedUpdateManyInput>
    /**
     * Filter which SharedCheckinTicketUsages to update
     */
    where?: SharedCheckinTicketUsageWhereInput
    /**
     * Limit how many SharedCheckinTicketUsages to update.
     */
    limit?: number
  }

  /**
   * SharedCheckinTicketUsage updateManyAndReturn
   */
  export type SharedCheckinTicketUsageUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * The data used to update SharedCheckinTicketUsages.
     */
    data: XOR<SharedCheckinTicketUsageUpdateManyMutationInput, SharedCheckinTicketUsageUncheckedUpdateManyInput>
    /**
     * Filter which SharedCheckinTicketUsages to update
     */
    where?: SharedCheckinTicketUsageWhereInput
    /**
     * Limit how many SharedCheckinTicketUsages to update.
     */
    limit?: number
  }

  /**
   * SharedCheckinTicketUsage upsert
   */
  export type SharedCheckinTicketUsageUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * The filter to search for the SharedCheckinTicketUsage to update in case it exists.
     */
    where: SharedCheckinTicketUsageWhereUniqueInput
    /**
     * In case the SharedCheckinTicketUsage found by the `where` argument doesn't exist, create a new SharedCheckinTicketUsage with this data.
     */
    create: XOR<SharedCheckinTicketUsageCreateInput, SharedCheckinTicketUsageUncheckedCreateInput>
    /**
     * In case the SharedCheckinTicketUsage was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SharedCheckinTicketUsageUpdateInput, SharedCheckinTicketUsageUncheckedUpdateInput>
  }

  /**
   * SharedCheckinTicketUsage delete
   */
  export type SharedCheckinTicketUsageDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
    /**
     * Filter which SharedCheckinTicketUsage to delete.
     */
    where: SharedCheckinTicketUsageWhereUniqueInput
  }

  /**
   * SharedCheckinTicketUsage deleteMany
   */
  export type SharedCheckinTicketUsageDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SharedCheckinTicketUsages to delete
     */
    where?: SharedCheckinTicketUsageWhereInput
    /**
     * Limit how many SharedCheckinTicketUsages to delete.
     */
    limit?: number
  }

  /**
   * SharedCheckinTicketUsage without action
   */
  export type SharedCheckinTicketUsageDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SharedCheckinTicketUsage
     */
    select?: SharedCheckinTicketUsageSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SharedCheckinTicketUsage
     */
    omit?: SharedCheckinTicketUsageOmit<ExtArgs> | null
  }


  /**
   * Model SiteAttendanceEvent
   */

  export type AggregateSiteAttendanceEvent = {
    _count: SiteAttendanceEventCountAggregateOutputType | null
    _avg: SiteAttendanceEventAvgAggregateOutputType | null
    _sum: SiteAttendanceEventSumAggregateOutputType | null
    _min: SiteAttendanceEventMinAggregateOutputType | null
    _max: SiteAttendanceEventMaxAggregateOutputType | null
  }

  export type SiteAttendanceEventAvgAggregateOutputType = {
    latitude: number | null
    longitude: number | null
    accuracy: number | null
    distanceToCheckpoint: number | null
  }

  export type SiteAttendanceEventSumAggregateOutputType = {
    latitude: number | null
    longitude: number | null
    accuracy: number | null
    distanceToCheckpoint: number | null
  }

  export type SiteAttendanceEventMinAggregateOutputType = {
    id: string | null
    checkpointId: string | null
    userId: string | null
    eventType: $Enums.SiteEventType | null
    timestamp: Date | null
    localDate: string | null
    authMethod: $Enums.SiteAuthMethod | null
    latitude: number | null
    longitude: number | null
    accuracy: number | null
    geoStatus: $Enums.SiteGeoStatus | null
    distanceToCheckpoint: number | null
    deviceId: string | null
    userAgent: string | null
    ipAddress: string | null
    createdAt: Date | null
  }

  export type SiteAttendanceEventMaxAggregateOutputType = {
    id: string | null
    checkpointId: string | null
    userId: string | null
    eventType: $Enums.SiteEventType | null
    timestamp: Date | null
    localDate: string | null
    authMethod: $Enums.SiteAuthMethod | null
    latitude: number | null
    longitude: number | null
    accuracy: number | null
    geoStatus: $Enums.SiteGeoStatus | null
    distanceToCheckpoint: number | null
    deviceId: string | null
    userAgent: string | null
    ipAddress: string | null
    createdAt: Date | null
  }

  export type SiteAttendanceEventCountAggregateOutputType = {
    id: number
    checkpointId: number
    userId: number
    eventType: number
    timestamp: number
    localDate: number
    authMethod: number
    latitude: number
    longitude: number
    accuracy: number
    geoStatus: number
    distanceToCheckpoint: number
    deviceId: number
    userAgent: number
    ipAddress: number
    createdAt: number
    _all: number
  }


  export type SiteAttendanceEventAvgAggregateInputType = {
    latitude?: true
    longitude?: true
    accuracy?: true
    distanceToCheckpoint?: true
  }

  export type SiteAttendanceEventSumAggregateInputType = {
    latitude?: true
    longitude?: true
    accuracy?: true
    distanceToCheckpoint?: true
  }

  export type SiteAttendanceEventMinAggregateInputType = {
    id?: true
    checkpointId?: true
    userId?: true
    eventType?: true
    timestamp?: true
    localDate?: true
    authMethod?: true
    latitude?: true
    longitude?: true
    accuracy?: true
    geoStatus?: true
    distanceToCheckpoint?: true
    deviceId?: true
    userAgent?: true
    ipAddress?: true
    createdAt?: true
  }

  export type SiteAttendanceEventMaxAggregateInputType = {
    id?: true
    checkpointId?: true
    userId?: true
    eventType?: true
    timestamp?: true
    localDate?: true
    authMethod?: true
    latitude?: true
    longitude?: true
    accuracy?: true
    geoStatus?: true
    distanceToCheckpoint?: true
    deviceId?: true
    userAgent?: true
    ipAddress?: true
    createdAt?: true
  }

  export type SiteAttendanceEventCountAggregateInputType = {
    id?: true
    checkpointId?: true
    userId?: true
    eventType?: true
    timestamp?: true
    localDate?: true
    authMethod?: true
    latitude?: true
    longitude?: true
    accuracy?: true
    geoStatus?: true
    distanceToCheckpoint?: true
    deviceId?: true
    userAgent?: true
    ipAddress?: true
    createdAt?: true
    _all?: true
  }

  export type SiteAttendanceEventAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SiteAttendanceEvent to aggregate.
     */
    where?: SiteAttendanceEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteAttendanceEvents to fetch.
     */
    orderBy?: SiteAttendanceEventOrderByWithRelationInput | SiteAttendanceEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SiteAttendanceEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteAttendanceEvents 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` SiteAttendanceEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SiteAttendanceEvents
    **/
    _count?: true | SiteAttendanceEventCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SiteAttendanceEventAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SiteAttendanceEventSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SiteAttendanceEventMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SiteAttendanceEventMaxAggregateInputType
  }

  export type GetSiteAttendanceEventAggregateType<T extends SiteAttendanceEventAggregateArgs> = {
        [P in keyof T & keyof AggregateSiteAttendanceEvent]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSiteAttendanceEvent[P]>
      : GetScalarType<T[P], AggregateSiteAttendanceEvent[P]>
  }




  export type SiteAttendanceEventGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SiteAttendanceEventWhereInput
    orderBy?: SiteAttendanceEventOrderByWithAggregationInput | SiteAttendanceEventOrderByWithAggregationInput[]
    by: SiteAttendanceEventScalarFieldEnum[] | SiteAttendanceEventScalarFieldEnum
    having?: SiteAttendanceEventScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SiteAttendanceEventCountAggregateInputType | true
    _avg?: SiteAttendanceEventAvgAggregateInputType
    _sum?: SiteAttendanceEventSumAggregateInputType
    _min?: SiteAttendanceEventMinAggregateInputType
    _max?: SiteAttendanceEventMaxAggregateInputType
  }

  export type SiteAttendanceEventGroupByOutputType = {
    id: string
    checkpointId: string
    userId: string
    eventType: $Enums.SiteEventType
    timestamp: Date
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude: number | null
    longitude: number | null
    accuracy: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint: number | null
    deviceId: string | null
    userAgent: string | null
    ipAddress: string | null
    createdAt: Date
    _count: SiteAttendanceEventCountAggregateOutputType | null
    _avg: SiteAttendanceEventAvgAggregateOutputType | null
    _sum: SiteAttendanceEventSumAggregateOutputType | null
    _min: SiteAttendanceEventMinAggregateOutputType | null
    _max: SiteAttendanceEventMaxAggregateOutputType | null
  }

  type GetSiteAttendanceEventGroupByPayload<T extends SiteAttendanceEventGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SiteAttendanceEventGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SiteAttendanceEventGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SiteAttendanceEventGroupByOutputType[P]>
            : GetScalarType<T[P], SiteAttendanceEventGroupByOutputType[P]>
        }
      >
    >


  export type SiteAttendanceEventSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    userId?: boolean
    eventType?: boolean
    timestamp?: boolean
    localDate?: boolean
    authMethod?: boolean
    latitude?: boolean
    longitude?: boolean
    accuracy?: boolean
    geoStatus?: boolean
    distanceToCheckpoint?: boolean
    deviceId?: boolean
    userAgent?: boolean
    ipAddress?: boolean
    createdAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteAttendanceEvent"]>

  export type SiteAttendanceEventSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    userId?: boolean
    eventType?: boolean
    timestamp?: boolean
    localDate?: boolean
    authMethod?: boolean
    latitude?: boolean
    longitude?: boolean
    accuracy?: boolean
    geoStatus?: boolean
    distanceToCheckpoint?: boolean
    deviceId?: boolean
    userAgent?: boolean
    ipAddress?: boolean
    createdAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteAttendanceEvent"]>

  export type SiteAttendanceEventSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    userId?: boolean
    eventType?: boolean
    timestamp?: boolean
    localDate?: boolean
    authMethod?: boolean
    latitude?: boolean
    longitude?: boolean
    accuracy?: boolean
    geoStatus?: boolean
    distanceToCheckpoint?: boolean
    deviceId?: boolean
    userAgent?: boolean
    ipAddress?: boolean
    createdAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteAttendanceEvent"]>

  export type SiteAttendanceEventSelectScalar = {
    id?: boolean
    checkpointId?: boolean
    userId?: boolean
    eventType?: boolean
    timestamp?: boolean
    localDate?: boolean
    authMethod?: boolean
    latitude?: boolean
    longitude?: boolean
    accuracy?: boolean
    geoStatus?: boolean
    distanceToCheckpoint?: boolean
    deviceId?: boolean
    userAgent?: boolean
    ipAddress?: boolean
    createdAt?: boolean
  }

  export type SiteAttendanceEventOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "checkpointId" | "userId" | "eventType" | "timestamp" | "localDate" | "authMethod" | "latitude" | "longitude" | "accuracy" | "geoStatus" | "distanceToCheckpoint" | "deviceId" | "userAgent" | "ipAddress" | "createdAt", ExtArgs["result"]["siteAttendanceEvent"]>
  export type SiteAttendanceEventInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type SiteAttendanceEventIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type SiteAttendanceEventIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $SiteAttendanceEventPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SiteAttendanceEvent"
    objects: {
      checkpoint: Prisma.$SiteCheckpointPayload<ExtArgs>
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      checkpointId: string
      userId: string
      eventType: $Enums.SiteEventType
      timestamp: Date
      localDate: string
      authMethod: $Enums.SiteAuthMethod
      latitude: number | null
      longitude: number | null
      accuracy: number | null
      geoStatus: $Enums.SiteGeoStatus
      distanceToCheckpoint: number | null
      deviceId: string | null
      userAgent: string | null
      ipAddress: string | null
      createdAt: Date
    }, ExtArgs["result"]["siteAttendanceEvent"]>
    composites: {}
  }

  type SiteAttendanceEventGetPayload<S extends boolean | null | undefined | SiteAttendanceEventDefaultArgs> = $Result.GetResult<Prisma.$SiteAttendanceEventPayload, S>

  type SiteAttendanceEventCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SiteAttendanceEventFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SiteAttendanceEventCountAggregateInputType | true
    }

  export interface SiteAttendanceEventDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SiteAttendanceEvent'], meta: { name: 'SiteAttendanceEvent' } }
    /**
     * Find zero or one SiteAttendanceEvent that matches the filter.
     * @param {SiteAttendanceEventFindUniqueArgs} args - Arguments to find a SiteAttendanceEvent
     * @example
     * // Get one SiteAttendanceEvent
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SiteAttendanceEventFindUniqueArgs>(args: SelectSubset<T, SiteAttendanceEventFindUniqueArgs<ExtArgs>>): Prisma__SiteAttendanceEventClient<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SiteAttendanceEvent that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SiteAttendanceEventFindUniqueOrThrowArgs} args - Arguments to find a SiteAttendanceEvent
     * @example
     * // Get one SiteAttendanceEvent
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SiteAttendanceEventFindUniqueOrThrowArgs>(args: SelectSubset<T, SiteAttendanceEventFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SiteAttendanceEventClient<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SiteAttendanceEvent 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 {SiteAttendanceEventFindFirstArgs} args - Arguments to find a SiteAttendanceEvent
     * @example
     * // Get one SiteAttendanceEvent
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SiteAttendanceEventFindFirstArgs>(args?: SelectSubset<T, SiteAttendanceEventFindFirstArgs<ExtArgs>>): Prisma__SiteAttendanceEventClient<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SiteAttendanceEvent 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 {SiteAttendanceEventFindFirstOrThrowArgs} args - Arguments to find a SiteAttendanceEvent
     * @example
     * // Get one SiteAttendanceEvent
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SiteAttendanceEventFindFirstOrThrowArgs>(args?: SelectSubset<T, SiteAttendanceEventFindFirstOrThrowArgs<ExtArgs>>): Prisma__SiteAttendanceEventClient<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SiteAttendanceEvents 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 {SiteAttendanceEventFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SiteAttendanceEvents
     * const siteAttendanceEvents = await prisma.siteAttendanceEvent.findMany()
     * 
     * // Get first 10 SiteAttendanceEvents
     * const siteAttendanceEvents = await prisma.siteAttendanceEvent.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const siteAttendanceEventWithIdOnly = await prisma.siteAttendanceEvent.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SiteAttendanceEventFindManyArgs>(args?: SelectSubset<T, SiteAttendanceEventFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SiteAttendanceEvent.
     * @param {SiteAttendanceEventCreateArgs} args - Arguments to create a SiteAttendanceEvent.
     * @example
     * // Create one SiteAttendanceEvent
     * const SiteAttendanceEvent = await prisma.siteAttendanceEvent.create({
     *   data: {
     *     // ... data to create a SiteAttendanceEvent
     *   }
     * })
     * 
     */
    create<T extends SiteAttendanceEventCreateArgs>(args: SelectSubset<T, SiteAttendanceEventCreateArgs<ExtArgs>>): Prisma__SiteAttendanceEventClient<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SiteAttendanceEvents.
     * @param {SiteAttendanceEventCreateManyArgs} args - Arguments to create many SiteAttendanceEvents.
     * @example
     * // Create many SiteAttendanceEvents
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SiteAttendanceEventCreateManyArgs>(args?: SelectSubset<T, SiteAttendanceEventCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SiteAttendanceEvents and returns the data saved in the database.
     * @param {SiteAttendanceEventCreateManyAndReturnArgs} args - Arguments to create many SiteAttendanceEvents.
     * @example
     * // Create many SiteAttendanceEvents
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SiteAttendanceEvents and only return the `id`
     * const siteAttendanceEventWithIdOnly = await prisma.siteAttendanceEvent.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 SiteAttendanceEventCreateManyAndReturnArgs>(args?: SelectSubset<T, SiteAttendanceEventCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SiteAttendanceEvent.
     * @param {SiteAttendanceEventDeleteArgs} args - Arguments to delete one SiteAttendanceEvent.
     * @example
     * // Delete one SiteAttendanceEvent
     * const SiteAttendanceEvent = await prisma.siteAttendanceEvent.delete({
     *   where: {
     *     // ... filter to delete one SiteAttendanceEvent
     *   }
     * })
     * 
     */
    delete<T extends SiteAttendanceEventDeleteArgs>(args: SelectSubset<T, SiteAttendanceEventDeleteArgs<ExtArgs>>): Prisma__SiteAttendanceEventClient<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SiteAttendanceEvent.
     * @param {SiteAttendanceEventUpdateArgs} args - Arguments to update one SiteAttendanceEvent.
     * @example
     * // Update one SiteAttendanceEvent
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SiteAttendanceEventUpdateArgs>(args: SelectSubset<T, SiteAttendanceEventUpdateArgs<ExtArgs>>): Prisma__SiteAttendanceEventClient<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SiteAttendanceEvents.
     * @param {SiteAttendanceEventDeleteManyArgs} args - Arguments to filter SiteAttendanceEvents to delete.
     * @example
     * // Delete a few SiteAttendanceEvents
     * const { count } = await prisma.siteAttendanceEvent.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SiteAttendanceEventDeleteManyArgs>(args?: SelectSubset<T, SiteAttendanceEventDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SiteAttendanceEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteAttendanceEventUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SiteAttendanceEvents
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SiteAttendanceEventUpdateManyArgs>(args: SelectSubset<T, SiteAttendanceEventUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SiteAttendanceEvents and returns the data updated in the database.
     * @param {SiteAttendanceEventUpdateManyAndReturnArgs} args - Arguments to update many SiteAttendanceEvents.
     * @example
     * // Update many SiteAttendanceEvents
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SiteAttendanceEvents and only return the `id`
     * const siteAttendanceEventWithIdOnly = await prisma.siteAttendanceEvent.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 SiteAttendanceEventUpdateManyAndReturnArgs>(args: SelectSubset<T, SiteAttendanceEventUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SiteAttendanceEvent.
     * @param {SiteAttendanceEventUpsertArgs} args - Arguments to update or create a SiteAttendanceEvent.
     * @example
     * // Update or create a SiteAttendanceEvent
     * const siteAttendanceEvent = await prisma.siteAttendanceEvent.upsert({
     *   create: {
     *     // ... data to create a SiteAttendanceEvent
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SiteAttendanceEvent we want to update
     *   }
     * })
     */
    upsert<T extends SiteAttendanceEventUpsertArgs>(args: SelectSubset<T, SiteAttendanceEventUpsertArgs<ExtArgs>>): Prisma__SiteAttendanceEventClient<$Result.GetResult<Prisma.$SiteAttendanceEventPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SiteAttendanceEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteAttendanceEventCountArgs} args - Arguments to filter SiteAttendanceEvents to count.
     * @example
     * // Count the number of SiteAttendanceEvents
     * const count = await prisma.siteAttendanceEvent.count({
     *   where: {
     *     // ... the filter for the SiteAttendanceEvents we want to count
     *   }
     * })
    **/
    count<T extends SiteAttendanceEventCountArgs>(
      args?: Subset<T, SiteAttendanceEventCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SiteAttendanceEventCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SiteAttendanceEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteAttendanceEventAggregateArgs} 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 SiteAttendanceEventAggregateArgs>(args: Subset<T, SiteAttendanceEventAggregateArgs>): Prisma.PrismaPromise<GetSiteAttendanceEventAggregateType<T>>

    /**
     * Group by SiteAttendanceEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteAttendanceEventGroupByArgs} 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 SiteAttendanceEventGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SiteAttendanceEventGroupByArgs['orderBy'] }
        : { orderBy?: SiteAttendanceEventGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SiteAttendanceEventGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSiteAttendanceEventGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SiteAttendanceEvent model
   */
  readonly fields: SiteAttendanceEventFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SiteAttendanceEvent.
   * 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__SiteAttendanceEventClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    checkpoint<T extends SiteCheckpointDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SiteCheckpointDefaultArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SiteAttendanceEvent model
   */
  interface SiteAttendanceEventFieldRefs {
    readonly id: FieldRef<"SiteAttendanceEvent", 'String'>
    readonly checkpointId: FieldRef<"SiteAttendanceEvent", 'String'>
    readonly userId: FieldRef<"SiteAttendanceEvent", 'String'>
    readonly eventType: FieldRef<"SiteAttendanceEvent", 'SiteEventType'>
    readonly timestamp: FieldRef<"SiteAttendanceEvent", 'DateTime'>
    readonly localDate: FieldRef<"SiteAttendanceEvent", 'String'>
    readonly authMethod: FieldRef<"SiteAttendanceEvent", 'SiteAuthMethod'>
    readonly latitude: FieldRef<"SiteAttendanceEvent", 'Float'>
    readonly longitude: FieldRef<"SiteAttendanceEvent", 'Float'>
    readonly accuracy: FieldRef<"SiteAttendanceEvent", 'Float'>
    readonly geoStatus: FieldRef<"SiteAttendanceEvent", 'SiteGeoStatus'>
    readonly distanceToCheckpoint: FieldRef<"SiteAttendanceEvent", 'Float'>
    readonly deviceId: FieldRef<"SiteAttendanceEvent", 'String'>
    readonly userAgent: FieldRef<"SiteAttendanceEvent", 'String'>
    readonly ipAddress: FieldRef<"SiteAttendanceEvent", 'String'>
    readonly createdAt: FieldRef<"SiteAttendanceEvent", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SiteAttendanceEvent findUnique
   */
  export type SiteAttendanceEventFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * Filter, which SiteAttendanceEvent to fetch.
     */
    where: SiteAttendanceEventWhereUniqueInput
  }

  /**
   * SiteAttendanceEvent findUniqueOrThrow
   */
  export type SiteAttendanceEventFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * Filter, which SiteAttendanceEvent to fetch.
     */
    where: SiteAttendanceEventWhereUniqueInput
  }

  /**
   * SiteAttendanceEvent findFirst
   */
  export type SiteAttendanceEventFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * Filter, which SiteAttendanceEvent to fetch.
     */
    where?: SiteAttendanceEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteAttendanceEvents to fetch.
     */
    orderBy?: SiteAttendanceEventOrderByWithRelationInput | SiteAttendanceEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SiteAttendanceEvents.
     */
    cursor?: SiteAttendanceEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteAttendanceEvents 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` SiteAttendanceEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SiteAttendanceEvents.
     */
    distinct?: SiteAttendanceEventScalarFieldEnum | SiteAttendanceEventScalarFieldEnum[]
  }

  /**
   * SiteAttendanceEvent findFirstOrThrow
   */
  export type SiteAttendanceEventFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * Filter, which SiteAttendanceEvent to fetch.
     */
    where?: SiteAttendanceEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteAttendanceEvents to fetch.
     */
    orderBy?: SiteAttendanceEventOrderByWithRelationInput | SiteAttendanceEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SiteAttendanceEvents.
     */
    cursor?: SiteAttendanceEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteAttendanceEvents 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` SiteAttendanceEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SiteAttendanceEvents.
     */
    distinct?: SiteAttendanceEventScalarFieldEnum | SiteAttendanceEventScalarFieldEnum[]
  }

  /**
   * SiteAttendanceEvent findMany
   */
  export type SiteAttendanceEventFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * Filter, which SiteAttendanceEvents to fetch.
     */
    where?: SiteAttendanceEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteAttendanceEvents to fetch.
     */
    orderBy?: SiteAttendanceEventOrderByWithRelationInput | SiteAttendanceEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SiteAttendanceEvents.
     */
    cursor?: SiteAttendanceEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteAttendanceEvents 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` SiteAttendanceEvents.
     */
    skip?: number
    distinct?: SiteAttendanceEventScalarFieldEnum | SiteAttendanceEventScalarFieldEnum[]
  }

  /**
   * SiteAttendanceEvent create
   */
  export type SiteAttendanceEventCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * The data needed to create a SiteAttendanceEvent.
     */
    data: XOR<SiteAttendanceEventCreateInput, SiteAttendanceEventUncheckedCreateInput>
  }

  /**
   * SiteAttendanceEvent createMany
   */
  export type SiteAttendanceEventCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SiteAttendanceEvents.
     */
    data: SiteAttendanceEventCreateManyInput | SiteAttendanceEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SiteAttendanceEvent createManyAndReturn
   */
  export type SiteAttendanceEventCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * The data used to create many SiteAttendanceEvents.
     */
    data: SiteAttendanceEventCreateManyInput | SiteAttendanceEventCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SiteAttendanceEvent update
   */
  export type SiteAttendanceEventUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * The data needed to update a SiteAttendanceEvent.
     */
    data: XOR<SiteAttendanceEventUpdateInput, SiteAttendanceEventUncheckedUpdateInput>
    /**
     * Choose, which SiteAttendanceEvent to update.
     */
    where: SiteAttendanceEventWhereUniqueInput
  }

  /**
   * SiteAttendanceEvent updateMany
   */
  export type SiteAttendanceEventUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SiteAttendanceEvents.
     */
    data: XOR<SiteAttendanceEventUpdateManyMutationInput, SiteAttendanceEventUncheckedUpdateManyInput>
    /**
     * Filter which SiteAttendanceEvents to update
     */
    where?: SiteAttendanceEventWhereInput
    /**
     * Limit how many SiteAttendanceEvents to update.
     */
    limit?: number
  }

  /**
   * SiteAttendanceEvent updateManyAndReturn
   */
  export type SiteAttendanceEventUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * The data used to update SiteAttendanceEvents.
     */
    data: XOR<SiteAttendanceEventUpdateManyMutationInput, SiteAttendanceEventUncheckedUpdateManyInput>
    /**
     * Filter which SiteAttendanceEvents to update
     */
    where?: SiteAttendanceEventWhereInput
    /**
     * Limit how many SiteAttendanceEvents to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SiteAttendanceEvent upsert
   */
  export type SiteAttendanceEventUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * The filter to search for the SiteAttendanceEvent to update in case it exists.
     */
    where: SiteAttendanceEventWhereUniqueInput
    /**
     * In case the SiteAttendanceEvent found by the `where` argument doesn't exist, create a new SiteAttendanceEvent with this data.
     */
    create: XOR<SiteAttendanceEventCreateInput, SiteAttendanceEventUncheckedCreateInput>
    /**
     * In case the SiteAttendanceEvent was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SiteAttendanceEventUpdateInput, SiteAttendanceEventUncheckedUpdateInput>
  }

  /**
   * SiteAttendanceEvent delete
   */
  export type SiteAttendanceEventDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
    /**
     * Filter which SiteAttendanceEvent to delete.
     */
    where: SiteAttendanceEventWhereUniqueInput
  }

  /**
   * SiteAttendanceEvent deleteMany
   */
  export type SiteAttendanceEventDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SiteAttendanceEvents to delete
     */
    where?: SiteAttendanceEventWhereInput
    /**
     * Limit how many SiteAttendanceEvents to delete.
     */
    limit?: number
  }

  /**
   * SiteAttendanceEvent without action
   */
  export type SiteAttendanceEventDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteAttendanceEvent
     */
    select?: SiteAttendanceEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteAttendanceEvent
     */
    omit?: SiteAttendanceEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteAttendanceEventInclude<ExtArgs> | null
  }


  /**
   * Model SiteDailySummary
   */

  export type AggregateSiteDailySummary = {
    _count: SiteDailySummaryCountAggregateOutputType | null
    _avg: SiteDailySummaryAvgAggregateOutputType | null
    _sum: SiteDailySummarySumAggregateOutputType | null
    _min: SiteDailySummaryMinAggregateOutputType | null
    _max: SiteDailySummaryMaxAggregateOutputType | null
  }

  export type SiteDailySummaryAvgAggregateOutputType = {
    checkInCount: number | null
    checkOutCount: number | null
  }

  export type SiteDailySummarySumAggregateOutputType = {
    checkInCount: number | null
    checkOutCount: number | null
  }

  export type SiteDailySummaryMinAggregateOutputType = {
    id: string | null
    checkpointId: string | null
    userId: string | null
    localDate: string | null
    firstCheckInAt: Date | null
    lastCheckOutAt: Date | null
    checkInCount: number | null
    checkOutCount: number | null
    hasGeoAnomaly: boolean | null
    lastEventId: string | null
    updatedAt: Date | null
  }

  export type SiteDailySummaryMaxAggregateOutputType = {
    id: string | null
    checkpointId: string | null
    userId: string | null
    localDate: string | null
    firstCheckInAt: Date | null
    lastCheckOutAt: Date | null
    checkInCount: number | null
    checkOutCount: number | null
    hasGeoAnomaly: boolean | null
    lastEventId: string | null
    updatedAt: Date | null
  }

  export type SiteDailySummaryCountAggregateOutputType = {
    id: number
    checkpointId: number
    userId: number
    localDate: number
    firstCheckInAt: number
    lastCheckOutAt: number
    checkInCount: number
    checkOutCount: number
    hasGeoAnomaly: number
    lastEventId: number
    updatedAt: number
    _all: number
  }


  export type SiteDailySummaryAvgAggregateInputType = {
    checkInCount?: true
    checkOutCount?: true
  }

  export type SiteDailySummarySumAggregateInputType = {
    checkInCount?: true
    checkOutCount?: true
  }

  export type SiteDailySummaryMinAggregateInputType = {
    id?: true
    checkpointId?: true
    userId?: true
    localDate?: true
    firstCheckInAt?: true
    lastCheckOutAt?: true
    checkInCount?: true
    checkOutCount?: true
    hasGeoAnomaly?: true
    lastEventId?: true
    updatedAt?: true
  }

  export type SiteDailySummaryMaxAggregateInputType = {
    id?: true
    checkpointId?: true
    userId?: true
    localDate?: true
    firstCheckInAt?: true
    lastCheckOutAt?: true
    checkInCount?: true
    checkOutCount?: true
    hasGeoAnomaly?: true
    lastEventId?: true
    updatedAt?: true
  }

  export type SiteDailySummaryCountAggregateInputType = {
    id?: true
    checkpointId?: true
    userId?: true
    localDate?: true
    firstCheckInAt?: true
    lastCheckOutAt?: true
    checkInCount?: true
    checkOutCount?: true
    hasGeoAnomaly?: true
    lastEventId?: true
    updatedAt?: true
    _all?: true
  }

  export type SiteDailySummaryAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SiteDailySummary to aggregate.
     */
    where?: SiteDailySummaryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteDailySummaries to fetch.
     */
    orderBy?: SiteDailySummaryOrderByWithRelationInput | SiteDailySummaryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SiteDailySummaryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteDailySummaries 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` SiteDailySummaries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SiteDailySummaries
    **/
    _count?: true | SiteDailySummaryCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SiteDailySummaryAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SiteDailySummarySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SiteDailySummaryMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SiteDailySummaryMaxAggregateInputType
  }

  export type GetSiteDailySummaryAggregateType<T extends SiteDailySummaryAggregateArgs> = {
        [P in keyof T & keyof AggregateSiteDailySummary]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSiteDailySummary[P]>
      : GetScalarType<T[P], AggregateSiteDailySummary[P]>
  }




  export type SiteDailySummaryGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SiteDailySummaryWhereInput
    orderBy?: SiteDailySummaryOrderByWithAggregationInput | SiteDailySummaryOrderByWithAggregationInput[]
    by: SiteDailySummaryScalarFieldEnum[] | SiteDailySummaryScalarFieldEnum
    having?: SiteDailySummaryScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SiteDailySummaryCountAggregateInputType | true
    _avg?: SiteDailySummaryAvgAggregateInputType
    _sum?: SiteDailySummarySumAggregateInputType
    _min?: SiteDailySummaryMinAggregateInputType
    _max?: SiteDailySummaryMaxAggregateInputType
  }

  export type SiteDailySummaryGroupByOutputType = {
    id: string
    checkpointId: string
    userId: string
    localDate: string
    firstCheckInAt: Date | null
    lastCheckOutAt: Date | null
    checkInCount: number
    checkOutCount: number
    hasGeoAnomaly: boolean
    lastEventId: string | null
    updatedAt: Date
    _count: SiteDailySummaryCountAggregateOutputType | null
    _avg: SiteDailySummaryAvgAggregateOutputType | null
    _sum: SiteDailySummarySumAggregateOutputType | null
    _min: SiteDailySummaryMinAggregateOutputType | null
    _max: SiteDailySummaryMaxAggregateOutputType | null
  }

  type GetSiteDailySummaryGroupByPayload<T extends SiteDailySummaryGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SiteDailySummaryGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SiteDailySummaryGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SiteDailySummaryGroupByOutputType[P]>
            : GetScalarType<T[P], SiteDailySummaryGroupByOutputType[P]>
        }
      >
    >


  export type SiteDailySummarySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    userId?: boolean
    localDate?: boolean
    firstCheckInAt?: boolean
    lastCheckOutAt?: boolean
    checkInCount?: boolean
    checkOutCount?: boolean
    hasGeoAnomaly?: boolean
    lastEventId?: boolean
    updatedAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteDailySummary"]>

  export type SiteDailySummarySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    userId?: boolean
    localDate?: boolean
    firstCheckInAt?: boolean
    lastCheckOutAt?: boolean
    checkInCount?: boolean
    checkOutCount?: boolean
    hasGeoAnomaly?: boolean
    lastEventId?: boolean
    updatedAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteDailySummary"]>

  export type SiteDailySummarySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    checkpointId?: boolean
    userId?: boolean
    localDate?: boolean
    firstCheckInAt?: boolean
    lastCheckOutAt?: boolean
    checkInCount?: boolean
    checkOutCount?: boolean
    hasGeoAnomaly?: boolean
    lastEventId?: boolean
    updatedAt?: boolean
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["siteDailySummary"]>

  export type SiteDailySummarySelectScalar = {
    id?: boolean
    checkpointId?: boolean
    userId?: boolean
    localDate?: boolean
    firstCheckInAt?: boolean
    lastCheckOutAt?: boolean
    checkInCount?: boolean
    checkOutCount?: boolean
    hasGeoAnomaly?: boolean
    lastEventId?: boolean
    updatedAt?: boolean
  }

  export type SiteDailySummaryOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "checkpointId" | "userId" | "localDate" | "firstCheckInAt" | "lastCheckOutAt" | "checkInCount" | "checkOutCount" | "hasGeoAnomaly" | "lastEventId" | "updatedAt", ExtArgs["result"]["siteDailySummary"]>
  export type SiteDailySummaryInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type SiteDailySummaryIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }
  export type SiteDailySummaryIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    checkpoint?: boolean | SiteCheckpointDefaultArgs<ExtArgs>
    user?: boolean | UserDefaultArgs<ExtArgs>
  }

  export type $SiteDailySummaryPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SiteDailySummary"
    objects: {
      checkpoint: Prisma.$SiteCheckpointPayload<ExtArgs>
      user: Prisma.$UserPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      checkpointId: string
      userId: string
      localDate: string
      firstCheckInAt: Date | null
      lastCheckOutAt: Date | null
      checkInCount: number
      checkOutCount: number
      hasGeoAnomaly: boolean
      lastEventId: string | null
      updatedAt: Date
    }, ExtArgs["result"]["siteDailySummary"]>
    composites: {}
  }

  type SiteDailySummaryGetPayload<S extends boolean | null | undefined | SiteDailySummaryDefaultArgs> = $Result.GetResult<Prisma.$SiteDailySummaryPayload, S>

  type SiteDailySummaryCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SiteDailySummaryFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SiteDailySummaryCountAggregateInputType | true
    }

  export interface SiteDailySummaryDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SiteDailySummary'], meta: { name: 'SiteDailySummary' } }
    /**
     * Find zero or one SiteDailySummary that matches the filter.
     * @param {SiteDailySummaryFindUniqueArgs} args - Arguments to find a SiteDailySummary
     * @example
     * // Get one SiteDailySummary
     * const siteDailySummary = await prisma.siteDailySummary.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SiteDailySummaryFindUniqueArgs>(args: SelectSubset<T, SiteDailySummaryFindUniqueArgs<ExtArgs>>): Prisma__SiteDailySummaryClient<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SiteDailySummary that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SiteDailySummaryFindUniqueOrThrowArgs} args - Arguments to find a SiteDailySummary
     * @example
     * // Get one SiteDailySummary
     * const siteDailySummary = await prisma.siteDailySummary.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SiteDailySummaryFindUniqueOrThrowArgs>(args: SelectSubset<T, SiteDailySummaryFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SiteDailySummaryClient<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SiteDailySummary 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 {SiteDailySummaryFindFirstArgs} args - Arguments to find a SiteDailySummary
     * @example
     * // Get one SiteDailySummary
     * const siteDailySummary = await prisma.siteDailySummary.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SiteDailySummaryFindFirstArgs>(args?: SelectSubset<T, SiteDailySummaryFindFirstArgs<ExtArgs>>): Prisma__SiteDailySummaryClient<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SiteDailySummary 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 {SiteDailySummaryFindFirstOrThrowArgs} args - Arguments to find a SiteDailySummary
     * @example
     * // Get one SiteDailySummary
     * const siteDailySummary = await prisma.siteDailySummary.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SiteDailySummaryFindFirstOrThrowArgs>(args?: SelectSubset<T, SiteDailySummaryFindFirstOrThrowArgs<ExtArgs>>): Prisma__SiteDailySummaryClient<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SiteDailySummaries 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 {SiteDailySummaryFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SiteDailySummaries
     * const siteDailySummaries = await prisma.siteDailySummary.findMany()
     * 
     * // Get first 10 SiteDailySummaries
     * const siteDailySummaries = await prisma.siteDailySummary.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const siteDailySummaryWithIdOnly = await prisma.siteDailySummary.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SiteDailySummaryFindManyArgs>(args?: SelectSubset<T, SiteDailySummaryFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SiteDailySummary.
     * @param {SiteDailySummaryCreateArgs} args - Arguments to create a SiteDailySummary.
     * @example
     * // Create one SiteDailySummary
     * const SiteDailySummary = await prisma.siteDailySummary.create({
     *   data: {
     *     // ... data to create a SiteDailySummary
     *   }
     * })
     * 
     */
    create<T extends SiteDailySummaryCreateArgs>(args: SelectSubset<T, SiteDailySummaryCreateArgs<ExtArgs>>): Prisma__SiteDailySummaryClient<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SiteDailySummaries.
     * @param {SiteDailySummaryCreateManyArgs} args - Arguments to create many SiteDailySummaries.
     * @example
     * // Create many SiteDailySummaries
     * const siteDailySummary = await prisma.siteDailySummary.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SiteDailySummaryCreateManyArgs>(args?: SelectSubset<T, SiteDailySummaryCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SiteDailySummaries and returns the data saved in the database.
     * @param {SiteDailySummaryCreateManyAndReturnArgs} args - Arguments to create many SiteDailySummaries.
     * @example
     * // Create many SiteDailySummaries
     * const siteDailySummary = await prisma.siteDailySummary.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SiteDailySummaries and only return the `id`
     * const siteDailySummaryWithIdOnly = await prisma.siteDailySummary.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 SiteDailySummaryCreateManyAndReturnArgs>(args?: SelectSubset<T, SiteDailySummaryCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SiteDailySummary.
     * @param {SiteDailySummaryDeleteArgs} args - Arguments to delete one SiteDailySummary.
     * @example
     * // Delete one SiteDailySummary
     * const SiteDailySummary = await prisma.siteDailySummary.delete({
     *   where: {
     *     // ... filter to delete one SiteDailySummary
     *   }
     * })
     * 
     */
    delete<T extends SiteDailySummaryDeleteArgs>(args: SelectSubset<T, SiteDailySummaryDeleteArgs<ExtArgs>>): Prisma__SiteDailySummaryClient<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SiteDailySummary.
     * @param {SiteDailySummaryUpdateArgs} args - Arguments to update one SiteDailySummary.
     * @example
     * // Update one SiteDailySummary
     * const siteDailySummary = await prisma.siteDailySummary.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SiteDailySummaryUpdateArgs>(args: SelectSubset<T, SiteDailySummaryUpdateArgs<ExtArgs>>): Prisma__SiteDailySummaryClient<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SiteDailySummaries.
     * @param {SiteDailySummaryDeleteManyArgs} args - Arguments to filter SiteDailySummaries to delete.
     * @example
     * // Delete a few SiteDailySummaries
     * const { count } = await prisma.siteDailySummary.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SiteDailySummaryDeleteManyArgs>(args?: SelectSubset<T, SiteDailySummaryDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SiteDailySummaries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteDailySummaryUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SiteDailySummaries
     * const siteDailySummary = await prisma.siteDailySummary.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SiteDailySummaryUpdateManyArgs>(args: SelectSubset<T, SiteDailySummaryUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SiteDailySummaries and returns the data updated in the database.
     * @param {SiteDailySummaryUpdateManyAndReturnArgs} args - Arguments to update many SiteDailySummaries.
     * @example
     * // Update many SiteDailySummaries
     * const siteDailySummary = await prisma.siteDailySummary.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SiteDailySummaries and only return the `id`
     * const siteDailySummaryWithIdOnly = await prisma.siteDailySummary.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 SiteDailySummaryUpdateManyAndReturnArgs>(args: SelectSubset<T, SiteDailySummaryUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SiteDailySummary.
     * @param {SiteDailySummaryUpsertArgs} args - Arguments to update or create a SiteDailySummary.
     * @example
     * // Update or create a SiteDailySummary
     * const siteDailySummary = await prisma.siteDailySummary.upsert({
     *   create: {
     *     // ... data to create a SiteDailySummary
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SiteDailySummary we want to update
     *   }
     * })
     */
    upsert<T extends SiteDailySummaryUpsertArgs>(args: SelectSubset<T, SiteDailySummaryUpsertArgs<ExtArgs>>): Prisma__SiteDailySummaryClient<$Result.GetResult<Prisma.$SiteDailySummaryPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SiteDailySummaries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteDailySummaryCountArgs} args - Arguments to filter SiteDailySummaries to count.
     * @example
     * // Count the number of SiteDailySummaries
     * const count = await prisma.siteDailySummary.count({
     *   where: {
     *     // ... the filter for the SiteDailySummaries we want to count
     *   }
     * })
    **/
    count<T extends SiteDailySummaryCountArgs>(
      args?: Subset<T, SiteDailySummaryCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SiteDailySummaryCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SiteDailySummary.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteDailySummaryAggregateArgs} 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 SiteDailySummaryAggregateArgs>(args: Subset<T, SiteDailySummaryAggregateArgs>): Prisma.PrismaPromise<GetSiteDailySummaryAggregateType<T>>

    /**
     * Group by SiteDailySummary.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SiteDailySummaryGroupByArgs} 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 SiteDailySummaryGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SiteDailySummaryGroupByArgs['orderBy'] }
        : { orderBy?: SiteDailySummaryGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SiteDailySummaryGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSiteDailySummaryGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SiteDailySummary model
   */
  readonly fields: SiteDailySummaryFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SiteDailySummary.
   * 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__SiteDailySummaryClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    checkpoint<T extends SiteCheckpointDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SiteCheckpointDefaultArgs<ExtArgs>>): Prisma__SiteCheckpointClient<$Result.GetResult<Prisma.$SiteCheckpointPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    user<T extends UserDefaultArgs<ExtArgs> = {}>(args?: Subset<T, UserDefaultArgs<ExtArgs>>): Prisma__UserClient<$Result.GetResult<Prisma.$UserPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SiteDailySummary model
   */
  interface SiteDailySummaryFieldRefs {
    readonly id: FieldRef<"SiteDailySummary", 'String'>
    readonly checkpointId: FieldRef<"SiteDailySummary", 'String'>
    readonly userId: FieldRef<"SiteDailySummary", 'String'>
    readonly localDate: FieldRef<"SiteDailySummary", 'String'>
    readonly firstCheckInAt: FieldRef<"SiteDailySummary", 'DateTime'>
    readonly lastCheckOutAt: FieldRef<"SiteDailySummary", 'DateTime'>
    readonly checkInCount: FieldRef<"SiteDailySummary", 'Int'>
    readonly checkOutCount: FieldRef<"SiteDailySummary", 'Int'>
    readonly hasGeoAnomaly: FieldRef<"SiteDailySummary", 'Boolean'>
    readonly lastEventId: FieldRef<"SiteDailySummary", 'String'>
    readonly updatedAt: FieldRef<"SiteDailySummary", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SiteDailySummary findUnique
   */
  export type SiteDailySummaryFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * Filter, which SiteDailySummary to fetch.
     */
    where: SiteDailySummaryWhereUniqueInput
  }

  /**
   * SiteDailySummary findUniqueOrThrow
   */
  export type SiteDailySummaryFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * Filter, which SiteDailySummary to fetch.
     */
    where: SiteDailySummaryWhereUniqueInput
  }

  /**
   * SiteDailySummary findFirst
   */
  export type SiteDailySummaryFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * Filter, which SiteDailySummary to fetch.
     */
    where?: SiteDailySummaryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteDailySummaries to fetch.
     */
    orderBy?: SiteDailySummaryOrderByWithRelationInput | SiteDailySummaryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SiteDailySummaries.
     */
    cursor?: SiteDailySummaryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteDailySummaries 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` SiteDailySummaries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SiteDailySummaries.
     */
    distinct?: SiteDailySummaryScalarFieldEnum | SiteDailySummaryScalarFieldEnum[]
  }

  /**
   * SiteDailySummary findFirstOrThrow
   */
  export type SiteDailySummaryFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * Filter, which SiteDailySummary to fetch.
     */
    where?: SiteDailySummaryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteDailySummaries to fetch.
     */
    orderBy?: SiteDailySummaryOrderByWithRelationInput | SiteDailySummaryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SiteDailySummaries.
     */
    cursor?: SiteDailySummaryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteDailySummaries 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` SiteDailySummaries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SiteDailySummaries.
     */
    distinct?: SiteDailySummaryScalarFieldEnum | SiteDailySummaryScalarFieldEnum[]
  }

  /**
   * SiteDailySummary findMany
   */
  export type SiteDailySummaryFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * Filter, which SiteDailySummaries to fetch.
     */
    where?: SiteDailySummaryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SiteDailySummaries to fetch.
     */
    orderBy?: SiteDailySummaryOrderByWithRelationInput | SiteDailySummaryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SiteDailySummaries.
     */
    cursor?: SiteDailySummaryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SiteDailySummaries 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` SiteDailySummaries.
     */
    skip?: number
    distinct?: SiteDailySummaryScalarFieldEnum | SiteDailySummaryScalarFieldEnum[]
  }

  /**
   * SiteDailySummary create
   */
  export type SiteDailySummaryCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * The data needed to create a SiteDailySummary.
     */
    data: XOR<SiteDailySummaryCreateInput, SiteDailySummaryUncheckedCreateInput>
  }

  /**
   * SiteDailySummary createMany
   */
  export type SiteDailySummaryCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SiteDailySummaries.
     */
    data: SiteDailySummaryCreateManyInput | SiteDailySummaryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SiteDailySummary createManyAndReturn
   */
  export type SiteDailySummaryCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * The data used to create many SiteDailySummaries.
     */
    data: SiteDailySummaryCreateManyInput | SiteDailySummaryCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SiteDailySummary update
   */
  export type SiteDailySummaryUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * The data needed to update a SiteDailySummary.
     */
    data: XOR<SiteDailySummaryUpdateInput, SiteDailySummaryUncheckedUpdateInput>
    /**
     * Choose, which SiteDailySummary to update.
     */
    where: SiteDailySummaryWhereUniqueInput
  }

  /**
   * SiteDailySummary updateMany
   */
  export type SiteDailySummaryUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SiteDailySummaries.
     */
    data: XOR<SiteDailySummaryUpdateManyMutationInput, SiteDailySummaryUncheckedUpdateManyInput>
    /**
     * Filter which SiteDailySummaries to update
     */
    where?: SiteDailySummaryWhereInput
    /**
     * Limit how many SiteDailySummaries to update.
     */
    limit?: number
  }

  /**
   * SiteDailySummary updateManyAndReturn
   */
  export type SiteDailySummaryUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * The data used to update SiteDailySummaries.
     */
    data: XOR<SiteDailySummaryUpdateManyMutationInput, SiteDailySummaryUncheckedUpdateManyInput>
    /**
     * Filter which SiteDailySummaries to update
     */
    where?: SiteDailySummaryWhereInput
    /**
     * Limit how many SiteDailySummaries to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SiteDailySummary upsert
   */
  export type SiteDailySummaryUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * The filter to search for the SiteDailySummary to update in case it exists.
     */
    where: SiteDailySummaryWhereUniqueInput
    /**
     * In case the SiteDailySummary found by the `where` argument doesn't exist, create a new SiteDailySummary with this data.
     */
    create: XOR<SiteDailySummaryCreateInput, SiteDailySummaryUncheckedCreateInput>
    /**
     * In case the SiteDailySummary was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SiteDailySummaryUpdateInput, SiteDailySummaryUncheckedUpdateInput>
  }

  /**
   * SiteDailySummary delete
   */
  export type SiteDailySummaryDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
    /**
     * Filter which SiteDailySummary to delete.
     */
    where: SiteDailySummaryWhereUniqueInput
  }

  /**
   * SiteDailySummary deleteMany
   */
  export type SiteDailySummaryDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SiteDailySummaries to delete
     */
    where?: SiteDailySummaryWhereInput
    /**
     * Limit how many SiteDailySummaries to delete.
     */
    limit?: number
  }

  /**
   * SiteDailySummary without action
   */
  export type SiteDailySummaryDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SiteDailySummary
     */
    select?: SiteDailySummarySelect<ExtArgs> | null
    /**
     * Omit specific fields from the SiteDailySummary
     */
    omit?: SiteDailySummaryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SiteDailySummaryInclude<ExtArgs> | null
  }


  /**
   * Model Ticket
   */

  export type AggregateTicket = {
    _count: TicketCountAggregateOutputType | null
    _avg: TicketAvgAggregateOutputType | null
    _sum: TicketSumAggregateOutputType | null
    _min: TicketMinAggregateOutputType | null
    _max: TicketMaxAggregateOutputType | null
  }

  export type TicketAvgAggregateOutputType = {
    slaPausedDuration: number | null
    satisfactionRating: number | null
  }

  export type TicketSumAggregateOutputType = {
    slaPausedDuration: number | null
    satisfactionRating: number | null
  }

  export type TicketMinAggregateOutputType = {
    id: string | null
    ticketNo: string | null
    title: string | null
    description: string | null
    categoryId: string | null
    priority: $Enums.TicketPriority | null
    status: $Enums.TicketStatus | null
    creatorId: string | null
    assigneeId: string | null
    assigneeGroupId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    firstResponseAt: Date | null
    resolvedAt: Date | null
    closedAt: Date | null
    dueAt: Date | null
    slaId: string | null
    slaBreached: boolean | null
    slaPausedAt: Date | null
    slaPausedDuration: number | null
    satisfactionRating: number | null
    satisfactionComment: string | null
    satisfactionRatedAt: Date | null
    source: $Enums.TicketSource | null
    externalId: string | null
    resolution: string | null
    rootCause: string | null
    parentTicketId: string | null
    approvalInstanceId: string | null
    region: string | null
    tenantId: string | null
    language: string | null
    complianceFlag: boolean | null
    deletedAt: Date | null
  }

  export type TicketMaxAggregateOutputType = {
    id: string | null
    ticketNo: string | null
    title: string | null
    description: string | null
    categoryId: string | null
    priority: $Enums.TicketPriority | null
    status: $Enums.TicketStatus | null
    creatorId: string | null
    assigneeId: string | null
    assigneeGroupId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    firstResponseAt: Date | null
    resolvedAt: Date | null
    closedAt: Date | null
    dueAt: Date | null
    slaId: string | null
    slaBreached: boolean | null
    slaPausedAt: Date | null
    slaPausedDuration: number | null
    satisfactionRating: number | null
    satisfactionComment: string | null
    satisfactionRatedAt: Date | null
    source: $Enums.TicketSource | null
    externalId: string | null
    resolution: string | null
    rootCause: string | null
    parentTicketId: string | null
    approvalInstanceId: string | null
    region: string | null
    tenantId: string | null
    language: string | null
    complianceFlag: boolean | null
    deletedAt: Date | null
  }

  export type TicketCountAggregateOutputType = {
    id: number
    ticketNo: number
    title: number
    description: number
    categoryId: number
    priority: number
    tags: number
    status: number
    creatorId: number
    assigneeId: number
    assigneeGroupId: number
    watcherIds: number
    createdAt: number
    updatedAt: number
    firstResponseAt: number
    resolvedAt: number
    closedAt: number
    dueAt: number
    slaId: number
    slaBreached: number
    slaPausedAt: number
    slaPausedDuration: number
    satisfactionRating: number
    satisfactionComment: number
    satisfactionRatedAt: number
    source: number
    externalId: number
    channelMetadata: number
    resolution: number
    rootCause: number
    relatedTicketIds: number
    parentTicketId: number
    approvalInstanceId: number
    region: number
    tenantId: number
    language: number
    complianceFlag: number
    deletedAt: number
    _all: number
  }


  export type TicketAvgAggregateInputType = {
    slaPausedDuration?: true
    satisfactionRating?: true
  }

  export type TicketSumAggregateInputType = {
    slaPausedDuration?: true
    satisfactionRating?: true
  }

  export type TicketMinAggregateInputType = {
    id?: true
    ticketNo?: true
    title?: true
    description?: true
    categoryId?: true
    priority?: true
    status?: true
    creatorId?: true
    assigneeId?: true
    assigneeGroupId?: true
    createdAt?: true
    updatedAt?: true
    firstResponseAt?: true
    resolvedAt?: true
    closedAt?: true
    dueAt?: true
    slaId?: true
    slaBreached?: true
    slaPausedAt?: true
    slaPausedDuration?: true
    satisfactionRating?: true
    satisfactionComment?: true
    satisfactionRatedAt?: true
    source?: true
    externalId?: true
    resolution?: true
    rootCause?: true
    parentTicketId?: true
    approvalInstanceId?: true
    region?: true
    tenantId?: true
    language?: true
    complianceFlag?: true
    deletedAt?: true
  }

  export type TicketMaxAggregateInputType = {
    id?: true
    ticketNo?: true
    title?: true
    description?: true
    categoryId?: true
    priority?: true
    status?: true
    creatorId?: true
    assigneeId?: true
    assigneeGroupId?: true
    createdAt?: true
    updatedAt?: true
    firstResponseAt?: true
    resolvedAt?: true
    closedAt?: true
    dueAt?: true
    slaId?: true
    slaBreached?: true
    slaPausedAt?: true
    slaPausedDuration?: true
    satisfactionRating?: true
    satisfactionComment?: true
    satisfactionRatedAt?: true
    source?: true
    externalId?: true
    resolution?: true
    rootCause?: true
    parentTicketId?: true
    approvalInstanceId?: true
    region?: true
    tenantId?: true
    language?: true
    complianceFlag?: true
    deletedAt?: true
  }

  export type TicketCountAggregateInputType = {
    id?: true
    ticketNo?: true
    title?: true
    description?: true
    categoryId?: true
    priority?: true
    tags?: true
    status?: true
    creatorId?: true
    assigneeId?: true
    assigneeGroupId?: true
    watcherIds?: true
    createdAt?: true
    updatedAt?: true
    firstResponseAt?: true
    resolvedAt?: true
    closedAt?: true
    dueAt?: true
    slaId?: true
    slaBreached?: true
    slaPausedAt?: true
    slaPausedDuration?: true
    satisfactionRating?: true
    satisfactionComment?: true
    satisfactionRatedAt?: true
    source?: true
    externalId?: true
    channelMetadata?: true
    resolution?: true
    rootCause?: true
    relatedTicketIds?: true
    parentTicketId?: true
    approvalInstanceId?: true
    region?: true
    tenantId?: true
    language?: true
    complianceFlag?: true
    deletedAt?: true
    _all?: true
  }

  export type TicketAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Ticket to aggregate.
     */
    where?: TicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Tickets to fetch.
     */
    orderBy?: TicketOrderByWithRelationInput | TicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: TicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Tickets from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Tickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Tickets
    **/
    _count?: true | TicketCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: TicketAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: TicketSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: TicketMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: TicketMaxAggregateInputType
  }

  export type GetTicketAggregateType<T extends TicketAggregateArgs> = {
        [P in keyof T & keyof AggregateTicket]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateTicket[P]>
      : GetScalarType<T[P], AggregateTicket[P]>
  }




  export type TicketGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketWhereInput
    orderBy?: TicketOrderByWithAggregationInput | TicketOrderByWithAggregationInput[]
    by: TicketScalarFieldEnum[] | TicketScalarFieldEnum
    having?: TicketScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: TicketCountAggregateInputType | true
    _avg?: TicketAvgAggregateInputType
    _sum?: TicketSumAggregateInputType
    _min?: TicketMinAggregateInputType
    _max?: TicketMaxAggregateInputType
  }

  export type TicketGroupByOutputType = {
    id: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority: $Enums.TicketPriority
    tags: string[]
    status: $Enums.TicketStatus
    creatorId: string
    assigneeId: string | null
    assigneeGroupId: string | null
    watcherIds: string[]
    createdAt: Date
    updatedAt: Date
    firstResponseAt: Date | null
    resolvedAt: Date | null
    closedAt: Date | null
    dueAt: Date | null
    slaId: string | null
    slaBreached: boolean
    slaPausedAt: Date | null
    slaPausedDuration: number
    satisfactionRating: number | null
    satisfactionComment: string | null
    satisfactionRatedAt: Date | null
    source: $Enums.TicketSource
    externalId: string | null
    channelMetadata: JsonValue | null
    resolution: string | null
    rootCause: string | null
    relatedTicketIds: string[]
    parentTicketId: string | null
    approvalInstanceId: string | null
    region: string
    tenantId: string | null
    language: string | null
    complianceFlag: boolean
    deletedAt: Date | null
    _count: TicketCountAggregateOutputType | null
    _avg: TicketAvgAggregateOutputType | null
    _sum: TicketSumAggregateOutputType | null
    _min: TicketMinAggregateOutputType | null
    _max: TicketMaxAggregateOutputType | null
  }

  type GetTicketGroupByPayload<T extends TicketGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<TicketGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof TicketGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], TicketGroupByOutputType[P]>
            : GetScalarType<T[P], TicketGroupByOutputType[P]>
        }
      >
    >


  export type TicketSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketNo?: boolean
    title?: boolean
    description?: boolean
    categoryId?: boolean
    priority?: boolean
    tags?: boolean
    status?: boolean
    creatorId?: boolean
    assigneeId?: boolean
    assigneeGroupId?: boolean
    watcherIds?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    firstResponseAt?: boolean
    resolvedAt?: boolean
    closedAt?: boolean
    dueAt?: boolean
    slaId?: boolean
    slaBreached?: boolean
    slaPausedAt?: boolean
    slaPausedDuration?: boolean
    satisfactionRating?: boolean
    satisfactionComment?: boolean
    satisfactionRatedAt?: boolean
    source?: boolean
    externalId?: boolean
    channelMetadata?: boolean
    resolution?: boolean
    rootCause?: boolean
    relatedTicketIds?: boolean
    parentTicketId?: boolean
    approvalInstanceId?: boolean
    region?: boolean
    tenantId?: boolean
    language?: boolean
    complianceFlag?: boolean
    deletedAt?: boolean
    category?: boolean | TicketCategoryDefaultArgs<ExtArgs>
    assigneeGroup?: boolean | Ticket$assigneeGroupArgs<ExtArgs>
    sla?: boolean | Ticket$slaArgs<ExtArgs>
    parentTicket?: boolean | Ticket$parentTicketArgs<ExtArgs>
    childTickets?: boolean | Ticket$childTicketsArgs<ExtArgs>
    comments?: boolean | Ticket$commentsArgs<ExtArgs>
    activities?: boolean | Ticket$activitiesArgs<ExtArgs>
    attachments?: boolean | Ticket$attachmentsArgs<ExtArgs>
    _count?: boolean | TicketCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticket"]>

  export type TicketSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketNo?: boolean
    title?: boolean
    description?: boolean
    categoryId?: boolean
    priority?: boolean
    tags?: boolean
    status?: boolean
    creatorId?: boolean
    assigneeId?: boolean
    assigneeGroupId?: boolean
    watcherIds?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    firstResponseAt?: boolean
    resolvedAt?: boolean
    closedAt?: boolean
    dueAt?: boolean
    slaId?: boolean
    slaBreached?: boolean
    slaPausedAt?: boolean
    slaPausedDuration?: boolean
    satisfactionRating?: boolean
    satisfactionComment?: boolean
    satisfactionRatedAt?: boolean
    source?: boolean
    externalId?: boolean
    channelMetadata?: boolean
    resolution?: boolean
    rootCause?: boolean
    relatedTicketIds?: boolean
    parentTicketId?: boolean
    approvalInstanceId?: boolean
    region?: boolean
    tenantId?: boolean
    language?: boolean
    complianceFlag?: boolean
    deletedAt?: boolean
    category?: boolean | TicketCategoryDefaultArgs<ExtArgs>
    assigneeGroup?: boolean | Ticket$assigneeGroupArgs<ExtArgs>
    sla?: boolean | Ticket$slaArgs<ExtArgs>
    parentTicket?: boolean | Ticket$parentTicketArgs<ExtArgs>
  }, ExtArgs["result"]["ticket"]>

  export type TicketSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketNo?: boolean
    title?: boolean
    description?: boolean
    categoryId?: boolean
    priority?: boolean
    tags?: boolean
    status?: boolean
    creatorId?: boolean
    assigneeId?: boolean
    assigneeGroupId?: boolean
    watcherIds?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    firstResponseAt?: boolean
    resolvedAt?: boolean
    closedAt?: boolean
    dueAt?: boolean
    slaId?: boolean
    slaBreached?: boolean
    slaPausedAt?: boolean
    slaPausedDuration?: boolean
    satisfactionRating?: boolean
    satisfactionComment?: boolean
    satisfactionRatedAt?: boolean
    source?: boolean
    externalId?: boolean
    channelMetadata?: boolean
    resolution?: boolean
    rootCause?: boolean
    relatedTicketIds?: boolean
    parentTicketId?: boolean
    approvalInstanceId?: boolean
    region?: boolean
    tenantId?: boolean
    language?: boolean
    complianceFlag?: boolean
    deletedAt?: boolean
    category?: boolean | TicketCategoryDefaultArgs<ExtArgs>
    assigneeGroup?: boolean | Ticket$assigneeGroupArgs<ExtArgs>
    sla?: boolean | Ticket$slaArgs<ExtArgs>
    parentTicket?: boolean | Ticket$parentTicketArgs<ExtArgs>
  }, ExtArgs["result"]["ticket"]>

  export type TicketSelectScalar = {
    id?: boolean
    ticketNo?: boolean
    title?: boolean
    description?: boolean
    categoryId?: boolean
    priority?: boolean
    tags?: boolean
    status?: boolean
    creatorId?: boolean
    assigneeId?: boolean
    assigneeGroupId?: boolean
    watcherIds?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    firstResponseAt?: boolean
    resolvedAt?: boolean
    closedAt?: boolean
    dueAt?: boolean
    slaId?: boolean
    slaBreached?: boolean
    slaPausedAt?: boolean
    slaPausedDuration?: boolean
    satisfactionRating?: boolean
    satisfactionComment?: boolean
    satisfactionRatedAt?: boolean
    source?: boolean
    externalId?: boolean
    channelMetadata?: boolean
    resolution?: boolean
    rootCause?: boolean
    relatedTicketIds?: boolean
    parentTicketId?: boolean
    approvalInstanceId?: boolean
    region?: boolean
    tenantId?: boolean
    language?: boolean
    complianceFlag?: boolean
    deletedAt?: boolean
  }

  export type TicketOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "ticketNo" | "title" | "description" | "categoryId" | "priority" | "tags" | "status" | "creatorId" | "assigneeId" | "assigneeGroupId" | "watcherIds" | "createdAt" | "updatedAt" | "firstResponseAt" | "resolvedAt" | "closedAt" | "dueAt" | "slaId" | "slaBreached" | "slaPausedAt" | "slaPausedDuration" | "satisfactionRating" | "satisfactionComment" | "satisfactionRatedAt" | "source" | "externalId" | "channelMetadata" | "resolution" | "rootCause" | "relatedTicketIds" | "parentTicketId" | "approvalInstanceId" | "region" | "tenantId" | "language" | "complianceFlag" | "deletedAt", ExtArgs["result"]["ticket"]>
  export type TicketInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    category?: boolean | TicketCategoryDefaultArgs<ExtArgs>
    assigneeGroup?: boolean | Ticket$assigneeGroupArgs<ExtArgs>
    sla?: boolean | Ticket$slaArgs<ExtArgs>
    parentTicket?: boolean | Ticket$parentTicketArgs<ExtArgs>
    childTickets?: boolean | Ticket$childTicketsArgs<ExtArgs>
    comments?: boolean | Ticket$commentsArgs<ExtArgs>
    activities?: boolean | Ticket$activitiesArgs<ExtArgs>
    attachments?: boolean | Ticket$attachmentsArgs<ExtArgs>
    _count?: boolean | TicketCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type TicketIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    category?: boolean | TicketCategoryDefaultArgs<ExtArgs>
    assigneeGroup?: boolean | Ticket$assigneeGroupArgs<ExtArgs>
    sla?: boolean | Ticket$slaArgs<ExtArgs>
    parentTicket?: boolean | Ticket$parentTicketArgs<ExtArgs>
  }
  export type TicketIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    category?: boolean | TicketCategoryDefaultArgs<ExtArgs>
    assigneeGroup?: boolean | Ticket$assigneeGroupArgs<ExtArgs>
    sla?: boolean | Ticket$slaArgs<ExtArgs>
    parentTicket?: boolean | Ticket$parentTicketArgs<ExtArgs>
  }

  export type $TicketPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Ticket"
    objects: {
      category: Prisma.$TicketCategoryPayload<ExtArgs>
      assigneeGroup: Prisma.$AssignmentGroupPayload<ExtArgs> | null
      sla: Prisma.$TicketSLAPayload<ExtArgs> | null
      parentTicket: Prisma.$TicketPayload<ExtArgs> | null
      childTickets: Prisma.$TicketPayload<ExtArgs>[]
      comments: Prisma.$TicketCommentPayload<ExtArgs>[]
      activities: Prisma.$TicketActivityPayload<ExtArgs>[]
      attachments: Prisma.$TicketAttachmentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      ticketNo: string
      title: string
      description: string
      categoryId: string
      priority: $Enums.TicketPriority
      tags: string[]
      status: $Enums.TicketStatus
      creatorId: string
      assigneeId: string | null
      assigneeGroupId: string | null
      watcherIds: string[]
      createdAt: Date
      updatedAt: Date
      firstResponseAt: Date | null
      resolvedAt: Date | null
      closedAt: Date | null
      dueAt: Date | null
      slaId: string | null
      slaBreached: boolean
      slaPausedAt: Date | null
      slaPausedDuration: number
      satisfactionRating: number | null
      satisfactionComment: string | null
      satisfactionRatedAt: Date | null
      source: $Enums.TicketSource
      externalId: string | null
      channelMetadata: Prisma.JsonValue | null
      resolution: string | null
      rootCause: string | null
      relatedTicketIds: string[]
      parentTicketId: string | null
      approvalInstanceId: string | null
      region: string
      tenantId: string | null
      language: string | null
      complianceFlag: boolean
      deletedAt: Date | null
    }, ExtArgs["result"]["ticket"]>
    composites: {}
  }

  type TicketGetPayload<S extends boolean | null | undefined | TicketDefaultArgs> = $Result.GetResult<Prisma.$TicketPayload, S>

  type TicketCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<TicketFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: TicketCountAggregateInputType | true
    }

  export interface TicketDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Ticket'], meta: { name: 'Ticket' } }
    /**
     * Find zero or one Ticket that matches the filter.
     * @param {TicketFindUniqueArgs} args - Arguments to find a Ticket
     * @example
     * // Get one Ticket
     * const ticket = await prisma.ticket.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends TicketFindUniqueArgs>(args: SelectSubset<T, TicketFindUniqueArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Ticket that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {TicketFindUniqueOrThrowArgs} args - Arguments to find a Ticket
     * @example
     * // Get one Ticket
     * const ticket = await prisma.ticket.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends TicketFindUniqueOrThrowArgs>(args: SelectSubset<T, TicketFindUniqueOrThrowArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Ticket that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketFindFirstArgs} args - Arguments to find a Ticket
     * @example
     * // Get one Ticket
     * const ticket = await prisma.ticket.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends TicketFindFirstArgs>(args?: SelectSubset<T, TicketFindFirstArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Ticket that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketFindFirstOrThrowArgs} args - Arguments to find a Ticket
     * @example
     * // Get one Ticket
     * const ticket = await prisma.ticket.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends TicketFindFirstOrThrowArgs>(args?: SelectSubset<T, TicketFindFirstOrThrowArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Tickets that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Tickets
     * const tickets = await prisma.ticket.findMany()
     * 
     * // Get first 10 Tickets
     * const tickets = await prisma.ticket.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const ticketWithIdOnly = await prisma.ticket.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends TicketFindManyArgs>(args?: SelectSubset<T, TicketFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Ticket.
     * @param {TicketCreateArgs} args - Arguments to create a Ticket.
     * @example
     * // Create one Ticket
     * const Ticket = await prisma.ticket.create({
     *   data: {
     *     // ... data to create a Ticket
     *   }
     * })
     * 
     */
    create<T extends TicketCreateArgs>(args: SelectSubset<T, TicketCreateArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Tickets.
     * @param {TicketCreateManyArgs} args - Arguments to create many Tickets.
     * @example
     * // Create many Tickets
     * const ticket = await prisma.ticket.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends TicketCreateManyArgs>(args?: SelectSubset<T, TicketCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Tickets and returns the data saved in the database.
     * @param {TicketCreateManyAndReturnArgs} args - Arguments to create many Tickets.
     * @example
     * // Create many Tickets
     * const ticket = await prisma.ticket.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Tickets and only return the `id`
     * const ticketWithIdOnly = await prisma.ticket.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 TicketCreateManyAndReturnArgs>(args?: SelectSubset<T, TicketCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Ticket.
     * @param {TicketDeleteArgs} args - Arguments to delete one Ticket.
     * @example
     * // Delete one Ticket
     * const Ticket = await prisma.ticket.delete({
     *   where: {
     *     // ... filter to delete one Ticket
     *   }
     * })
     * 
     */
    delete<T extends TicketDeleteArgs>(args: SelectSubset<T, TicketDeleteArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Ticket.
     * @param {TicketUpdateArgs} args - Arguments to update one Ticket.
     * @example
     * // Update one Ticket
     * const ticket = await prisma.ticket.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends TicketUpdateArgs>(args: SelectSubset<T, TicketUpdateArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Tickets.
     * @param {TicketDeleteManyArgs} args - Arguments to filter Tickets to delete.
     * @example
     * // Delete a few Tickets
     * const { count } = await prisma.ticket.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends TicketDeleteManyArgs>(args?: SelectSubset<T, TicketDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Tickets.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Tickets
     * const ticket = await prisma.ticket.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends TicketUpdateManyArgs>(args: SelectSubset<T, TicketUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Tickets and returns the data updated in the database.
     * @param {TicketUpdateManyAndReturnArgs} args - Arguments to update many Tickets.
     * @example
     * // Update many Tickets
     * const ticket = await prisma.ticket.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Tickets and only return the `id`
     * const ticketWithIdOnly = await prisma.ticket.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 TicketUpdateManyAndReturnArgs>(args: SelectSubset<T, TicketUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Ticket.
     * @param {TicketUpsertArgs} args - Arguments to update or create a Ticket.
     * @example
     * // Update or create a Ticket
     * const ticket = await prisma.ticket.upsert({
     *   create: {
     *     // ... data to create a Ticket
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Ticket we want to update
     *   }
     * })
     */
    upsert<T extends TicketUpsertArgs>(args: SelectSubset<T, TicketUpsertArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Tickets.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCountArgs} args - Arguments to filter Tickets to count.
     * @example
     * // Count the number of Tickets
     * const count = await prisma.ticket.count({
     *   where: {
     *     // ... the filter for the Tickets we want to count
     *   }
     * })
    **/
    count<T extends TicketCountArgs>(
      args?: Subset<T, TicketCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], TicketCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Ticket.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends TicketAggregateArgs>(args: Subset<T, TicketAggregateArgs>): Prisma.PrismaPromise<GetTicketAggregateType<T>>

    /**
     * Group by Ticket.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends TicketGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: TicketGroupByArgs['orderBy'] }
        : { orderBy?: TicketGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, TicketGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTicketGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Ticket model
   */
  readonly fields: TicketFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Ticket.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__TicketClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    category<T extends TicketCategoryDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TicketCategoryDefaultArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    assigneeGroup<T extends Ticket$assigneeGroupArgs<ExtArgs> = {}>(args?: Subset<T, Ticket$assigneeGroupArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    sla<T extends Ticket$slaArgs<ExtArgs> = {}>(args?: Subset<T, Ticket$slaArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    parentTicket<T extends Ticket$parentTicketArgs<ExtArgs> = {}>(args?: Subset<T, Ticket$parentTicketArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    childTickets<T extends Ticket$childTicketsArgs<ExtArgs> = {}>(args?: Subset<T, Ticket$childTicketsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    comments<T extends Ticket$commentsArgs<ExtArgs> = {}>(args?: Subset<T, Ticket$commentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    activities<T extends Ticket$activitiesArgs<ExtArgs> = {}>(args?: Subset<T, Ticket$activitiesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    attachments<T extends Ticket$attachmentsArgs<ExtArgs> = {}>(args?: Subset<T, Ticket$attachmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Ticket model
   */
  interface TicketFieldRefs {
    readonly id: FieldRef<"Ticket", 'String'>
    readonly ticketNo: FieldRef<"Ticket", 'String'>
    readonly title: FieldRef<"Ticket", 'String'>
    readonly description: FieldRef<"Ticket", 'String'>
    readonly categoryId: FieldRef<"Ticket", 'String'>
    readonly priority: FieldRef<"Ticket", 'TicketPriority'>
    readonly tags: FieldRef<"Ticket", 'String[]'>
    readonly status: FieldRef<"Ticket", 'TicketStatus'>
    readonly creatorId: FieldRef<"Ticket", 'String'>
    readonly assigneeId: FieldRef<"Ticket", 'String'>
    readonly assigneeGroupId: FieldRef<"Ticket", 'String'>
    readonly watcherIds: FieldRef<"Ticket", 'String[]'>
    readonly createdAt: FieldRef<"Ticket", 'DateTime'>
    readonly updatedAt: FieldRef<"Ticket", 'DateTime'>
    readonly firstResponseAt: FieldRef<"Ticket", 'DateTime'>
    readonly resolvedAt: FieldRef<"Ticket", 'DateTime'>
    readonly closedAt: FieldRef<"Ticket", 'DateTime'>
    readonly dueAt: FieldRef<"Ticket", 'DateTime'>
    readonly slaId: FieldRef<"Ticket", 'String'>
    readonly slaBreached: FieldRef<"Ticket", 'Boolean'>
    readonly slaPausedAt: FieldRef<"Ticket", 'DateTime'>
    readonly slaPausedDuration: FieldRef<"Ticket", 'Int'>
    readonly satisfactionRating: FieldRef<"Ticket", 'Int'>
    readonly satisfactionComment: FieldRef<"Ticket", 'String'>
    readonly satisfactionRatedAt: FieldRef<"Ticket", 'DateTime'>
    readonly source: FieldRef<"Ticket", 'TicketSource'>
    readonly externalId: FieldRef<"Ticket", 'String'>
    readonly channelMetadata: FieldRef<"Ticket", 'Json'>
    readonly resolution: FieldRef<"Ticket", 'String'>
    readonly rootCause: FieldRef<"Ticket", 'String'>
    readonly relatedTicketIds: FieldRef<"Ticket", 'String[]'>
    readonly parentTicketId: FieldRef<"Ticket", 'String'>
    readonly approvalInstanceId: FieldRef<"Ticket", 'String'>
    readonly region: FieldRef<"Ticket", 'String'>
    readonly tenantId: FieldRef<"Ticket", 'String'>
    readonly language: FieldRef<"Ticket", 'String'>
    readonly complianceFlag: FieldRef<"Ticket", 'Boolean'>
    readonly deletedAt: FieldRef<"Ticket", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Ticket findUnique
   */
  export type TicketFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * Filter, which Ticket to fetch.
     */
    where: TicketWhereUniqueInput
  }

  /**
   * Ticket findUniqueOrThrow
   */
  export type TicketFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * Filter, which Ticket to fetch.
     */
    where: TicketWhereUniqueInput
  }

  /**
   * Ticket findFirst
   */
  export type TicketFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * Filter, which Ticket to fetch.
     */
    where?: TicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Tickets to fetch.
     */
    orderBy?: TicketOrderByWithRelationInput | TicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Tickets.
     */
    cursor?: TicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Tickets from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Tickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Tickets.
     */
    distinct?: TicketScalarFieldEnum | TicketScalarFieldEnum[]
  }

  /**
   * Ticket findFirstOrThrow
   */
  export type TicketFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * Filter, which Ticket to fetch.
     */
    where?: TicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Tickets to fetch.
     */
    orderBy?: TicketOrderByWithRelationInput | TicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Tickets.
     */
    cursor?: TicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Tickets from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Tickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Tickets.
     */
    distinct?: TicketScalarFieldEnum | TicketScalarFieldEnum[]
  }

  /**
   * Ticket findMany
   */
  export type TicketFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * Filter, which Tickets to fetch.
     */
    where?: TicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Tickets to fetch.
     */
    orderBy?: TicketOrderByWithRelationInput | TicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Tickets.
     */
    cursor?: TicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Tickets from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Tickets.
     */
    skip?: number
    distinct?: TicketScalarFieldEnum | TicketScalarFieldEnum[]
  }

  /**
   * Ticket create
   */
  export type TicketCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * The data needed to create a Ticket.
     */
    data: XOR<TicketCreateInput, TicketUncheckedCreateInput>
  }

  /**
   * Ticket createMany
   */
  export type TicketCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Tickets.
     */
    data: TicketCreateManyInput | TicketCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Ticket createManyAndReturn
   */
  export type TicketCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * The data used to create many Tickets.
     */
    data: TicketCreateManyInput | TicketCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Ticket update
   */
  export type TicketUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * The data needed to update a Ticket.
     */
    data: XOR<TicketUpdateInput, TicketUncheckedUpdateInput>
    /**
     * Choose, which Ticket to update.
     */
    where: TicketWhereUniqueInput
  }

  /**
   * Ticket updateMany
   */
  export type TicketUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Tickets.
     */
    data: XOR<TicketUpdateManyMutationInput, TicketUncheckedUpdateManyInput>
    /**
     * Filter which Tickets to update
     */
    where?: TicketWhereInput
    /**
     * Limit how many Tickets to update.
     */
    limit?: number
  }

  /**
   * Ticket updateManyAndReturn
   */
  export type TicketUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * The data used to update Tickets.
     */
    data: XOR<TicketUpdateManyMutationInput, TicketUncheckedUpdateManyInput>
    /**
     * Filter which Tickets to update
     */
    where?: TicketWhereInput
    /**
     * Limit how many Tickets to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Ticket upsert
   */
  export type TicketUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * The filter to search for the Ticket to update in case it exists.
     */
    where: TicketWhereUniqueInput
    /**
     * In case the Ticket found by the `where` argument doesn't exist, create a new Ticket with this data.
     */
    create: XOR<TicketCreateInput, TicketUncheckedCreateInput>
    /**
     * In case the Ticket was found with the provided `where` argument, update it with this data.
     */
    update: XOR<TicketUpdateInput, TicketUncheckedUpdateInput>
  }

  /**
   * Ticket delete
   */
  export type TicketDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    /**
     * Filter which Ticket to delete.
     */
    where: TicketWhereUniqueInput
  }

  /**
   * Ticket deleteMany
   */
  export type TicketDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Tickets to delete
     */
    where?: TicketWhereInput
    /**
     * Limit how many Tickets to delete.
     */
    limit?: number
  }

  /**
   * Ticket.assigneeGroup
   */
  export type Ticket$assigneeGroupArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    where?: AssignmentGroupWhereInput
  }

  /**
   * Ticket.sla
   */
  export type Ticket$slaArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    where?: TicketSLAWhereInput
  }

  /**
   * Ticket.parentTicket
   */
  export type Ticket$parentTicketArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    where?: TicketWhereInput
  }

  /**
   * Ticket.childTickets
   */
  export type Ticket$childTicketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    where?: TicketWhereInput
    orderBy?: TicketOrderByWithRelationInput | TicketOrderByWithRelationInput[]
    cursor?: TicketWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketScalarFieldEnum | TicketScalarFieldEnum[]
  }

  /**
   * Ticket.comments
   */
  export type Ticket$commentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    where?: TicketCommentWhereInput
    orderBy?: TicketCommentOrderByWithRelationInput | TicketCommentOrderByWithRelationInput[]
    cursor?: TicketCommentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketCommentScalarFieldEnum | TicketCommentScalarFieldEnum[]
  }

  /**
   * Ticket.activities
   */
  export type Ticket$activitiesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    where?: TicketActivityWhereInput
    orderBy?: TicketActivityOrderByWithRelationInput | TicketActivityOrderByWithRelationInput[]
    cursor?: TicketActivityWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketActivityScalarFieldEnum | TicketActivityScalarFieldEnum[]
  }

  /**
   * Ticket.attachments
   */
  export type Ticket$attachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    where?: TicketAttachmentWhereInput
    orderBy?: TicketAttachmentOrderByWithRelationInput | TicketAttachmentOrderByWithRelationInput[]
    cursor?: TicketAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketAttachmentScalarFieldEnum | TicketAttachmentScalarFieldEnum[]
  }

  /**
   * Ticket without action
   */
  export type TicketDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
  }


  /**
   * Model TicketCategory
   */

  export type AggregateTicketCategory = {
    _count: TicketCategoryCountAggregateOutputType | null
    _avg: TicketCategoryAvgAggregateOutputType | null
    _sum: TicketCategorySumAggregateOutputType | null
    _min: TicketCategoryMinAggregateOutputType | null
    _max: TicketCategoryMaxAggregateOutputType | null
  }

  export type TicketCategoryAvgAggregateOutputType = {
    sortOrder: number | null
  }

  export type TicketCategorySumAggregateOutputType = {
    sortOrder: number | null
  }

  export type TicketCategoryMinAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    icon: string | null
    parentId: string | null
    defaultPriority: $Enums.TicketPriority | null
    defaultAssigneeGroupId: string | null
    slaId: string | null
    formTemplateId: string | null
    isActive: boolean | null
    sortOrder: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type TicketCategoryMaxAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    icon: string | null
    parentId: string | null
    defaultPriority: $Enums.TicketPriority | null
    defaultAssigneeGroupId: string | null
    slaId: string | null
    formTemplateId: string | null
    isActive: boolean | null
    sortOrder: number | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type TicketCategoryCountAggregateOutputType = {
    id: number
    name: number
    code: number
    description: number
    icon: number
    parentId: number
    defaultPriority: number
    defaultAssigneeGroupId: number
    slaId: number
    formTemplateId: number
    allowedDepartmentIds: number
    allowedRoleIds: number
    isActive: number
    sortOrder: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type TicketCategoryAvgAggregateInputType = {
    sortOrder?: true
  }

  export type TicketCategorySumAggregateInputType = {
    sortOrder?: true
  }

  export type TicketCategoryMinAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    icon?: true
    parentId?: true
    defaultPriority?: true
    defaultAssigneeGroupId?: true
    slaId?: true
    formTemplateId?: true
    isActive?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
  }

  export type TicketCategoryMaxAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    icon?: true
    parentId?: true
    defaultPriority?: true
    defaultAssigneeGroupId?: true
    slaId?: true
    formTemplateId?: true
    isActive?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
  }

  export type TicketCategoryCountAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    icon?: true
    parentId?: true
    defaultPriority?: true
    defaultAssigneeGroupId?: true
    slaId?: true
    formTemplateId?: true
    allowedDepartmentIds?: true
    allowedRoleIds?: true
    isActive?: true
    sortOrder?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type TicketCategoryAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketCategory to aggregate.
     */
    where?: TicketCategoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketCategories to fetch.
     */
    orderBy?: TicketCategoryOrderByWithRelationInput | TicketCategoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: TicketCategoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketCategories 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` TicketCategories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned TicketCategories
    **/
    _count?: true | TicketCategoryCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: TicketCategoryAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: TicketCategorySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: TicketCategoryMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: TicketCategoryMaxAggregateInputType
  }

  export type GetTicketCategoryAggregateType<T extends TicketCategoryAggregateArgs> = {
        [P in keyof T & keyof AggregateTicketCategory]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateTicketCategory[P]>
      : GetScalarType<T[P], AggregateTicketCategory[P]>
  }




  export type TicketCategoryGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketCategoryWhereInput
    orderBy?: TicketCategoryOrderByWithAggregationInput | TicketCategoryOrderByWithAggregationInput[]
    by: TicketCategoryScalarFieldEnum[] | TicketCategoryScalarFieldEnum
    having?: TicketCategoryScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: TicketCategoryCountAggregateInputType | true
    _avg?: TicketCategoryAvgAggregateInputType
    _sum?: TicketCategorySumAggregateInputType
    _min?: TicketCategoryMinAggregateInputType
    _max?: TicketCategoryMaxAggregateInputType
  }

  export type TicketCategoryGroupByOutputType = {
    id: string
    name: string
    code: string
    description: string | null
    icon: string | null
    parentId: string | null
    defaultPriority: $Enums.TicketPriority
    defaultAssigneeGroupId: string | null
    slaId: string | null
    formTemplateId: string | null
    allowedDepartmentIds: string[]
    allowedRoleIds: string[]
    isActive: boolean
    sortOrder: number
    createdAt: Date
    updatedAt: Date
    _count: TicketCategoryCountAggregateOutputType | null
    _avg: TicketCategoryAvgAggregateOutputType | null
    _sum: TicketCategorySumAggregateOutputType | null
    _min: TicketCategoryMinAggregateOutputType | null
    _max: TicketCategoryMaxAggregateOutputType | null
  }

  type GetTicketCategoryGroupByPayload<T extends TicketCategoryGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<TicketCategoryGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof TicketCategoryGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], TicketCategoryGroupByOutputType[P]>
            : GetScalarType<T[P], TicketCategoryGroupByOutputType[P]>
        }
      >
    >


  export type TicketCategorySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    icon?: boolean
    parentId?: boolean
    defaultPriority?: boolean
    defaultAssigneeGroupId?: boolean
    slaId?: boolean
    formTemplateId?: boolean
    allowedDepartmentIds?: boolean
    allowedRoleIds?: boolean
    isActive?: boolean
    sortOrder?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    parent?: boolean | TicketCategory$parentArgs<ExtArgs>
    children?: boolean | TicketCategory$childrenArgs<ExtArgs>
    defaultAssigneeGroup?: boolean | TicketCategory$defaultAssigneeGroupArgs<ExtArgs>
    sla?: boolean | TicketCategory$slaArgs<ExtArgs>
    tickets?: boolean | TicketCategory$ticketsArgs<ExtArgs>
    _count?: boolean | TicketCategoryCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticketCategory"]>

  export type TicketCategorySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    icon?: boolean
    parentId?: boolean
    defaultPriority?: boolean
    defaultAssigneeGroupId?: boolean
    slaId?: boolean
    formTemplateId?: boolean
    allowedDepartmentIds?: boolean
    allowedRoleIds?: boolean
    isActive?: boolean
    sortOrder?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    parent?: boolean | TicketCategory$parentArgs<ExtArgs>
    defaultAssigneeGroup?: boolean | TicketCategory$defaultAssigneeGroupArgs<ExtArgs>
    sla?: boolean | TicketCategory$slaArgs<ExtArgs>
  }, ExtArgs["result"]["ticketCategory"]>

  export type TicketCategorySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    icon?: boolean
    parentId?: boolean
    defaultPriority?: boolean
    defaultAssigneeGroupId?: boolean
    slaId?: boolean
    formTemplateId?: boolean
    allowedDepartmentIds?: boolean
    allowedRoleIds?: boolean
    isActive?: boolean
    sortOrder?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    parent?: boolean | TicketCategory$parentArgs<ExtArgs>
    defaultAssigneeGroup?: boolean | TicketCategory$defaultAssigneeGroupArgs<ExtArgs>
    sla?: boolean | TicketCategory$slaArgs<ExtArgs>
  }, ExtArgs["result"]["ticketCategory"]>

  export type TicketCategorySelectScalar = {
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    icon?: boolean
    parentId?: boolean
    defaultPriority?: boolean
    defaultAssigneeGroupId?: boolean
    slaId?: boolean
    formTemplateId?: boolean
    allowedDepartmentIds?: boolean
    allowedRoleIds?: boolean
    isActive?: boolean
    sortOrder?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type TicketCategoryOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "code" | "description" | "icon" | "parentId" | "defaultPriority" | "defaultAssigneeGroupId" | "slaId" | "formTemplateId" | "allowedDepartmentIds" | "allowedRoleIds" | "isActive" | "sortOrder" | "createdAt" | "updatedAt", ExtArgs["result"]["ticketCategory"]>
  export type TicketCategoryInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | TicketCategory$parentArgs<ExtArgs>
    children?: boolean | TicketCategory$childrenArgs<ExtArgs>
    defaultAssigneeGroup?: boolean | TicketCategory$defaultAssigneeGroupArgs<ExtArgs>
    sla?: boolean | TicketCategory$slaArgs<ExtArgs>
    tickets?: boolean | TicketCategory$ticketsArgs<ExtArgs>
    _count?: boolean | TicketCategoryCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type TicketCategoryIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | TicketCategory$parentArgs<ExtArgs>
    defaultAssigneeGroup?: boolean | TicketCategory$defaultAssigneeGroupArgs<ExtArgs>
    sla?: boolean | TicketCategory$slaArgs<ExtArgs>
  }
  export type TicketCategoryIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    parent?: boolean | TicketCategory$parentArgs<ExtArgs>
    defaultAssigneeGroup?: boolean | TicketCategory$defaultAssigneeGroupArgs<ExtArgs>
    sla?: boolean | TicketCategory$slaArgs<ExtArgs>
  }

  export type $TicketCategoryPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "TicketCategory"
    objects: {
      parent: Prisma.$TicketCategoryPayload<ExtArgs> | null
      children: Prisma.$TicketCategoryPayload<ExtArgs>[]
      defaultAssigneeGroup: Prisma.$AssignmentGroupPayload<ExtArgs> | null
      sla: Prisma.$TicketSLAPayload<ExtArgs> | null
      tickets: Prisma.$TicketPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      code: string
      description: string | null
      icon: string | null
      parentId: string | null
      defaultPriority: $Enums.TicketPriority
      defaultAssigneeGroupId: string | null
      slaId: string | null
      formTemplateId: string | null
      allowedDepartmentIds: string[]
      allowedRoleIds: string[]
      isActive: boolean
      sortOrder: number
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["ticketCategory"]>
    composites: {}
  }

  type TicketCategoryGetPayload<S extends boolean | null | undefined | TicketCategoryDefaultArgs> = $Result.GetResult<Prisma.$TicketCategoryPayload, S>

  type TicketCategoryCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<TicketCategoryFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: TicketCategoryCountAggregateInputType | true
    }

  export interface TicketCategoryDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['TicketCategory'], meta: { name: 'TicketCategory' } }
    /**
     * Find zero or one TicketCategory that matches the filter.
     * @param {TicketCategoryFindUniqueArgs} args - Arguments to find a TicketCategory
     * @example
     * // Get one TicketCategory
     * const ticketCategory = await prisma.ticketCategory.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends TicketCategoryFindUniqueArgs>(args: SelectSubset<T, TicketCategoryFindUniqueArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one TicketCategory that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {TicketCategoryFindUniqueOrThrowArgs} args - Arguments to find a TicketCategory
     * @example
     * // Get one TicketCategory
     * const ticketCategory = await prisma.ticketCategory.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends TicketCategoryFindUniqueOrThrowArgs>(args: SelectSubset<T, TicketCategoryFindUniqueOrThrowArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketCategory 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 {TicketCategoryFindFirstArgs} args - Arguments to find a TicketCategory
     * @example
     * // Get one TicketCategory
     * const ticketCategory = await prisma.ticketCategory.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends TicketCategoryFindFirstArgs>(args?: SelectSubset<T, TicketCategoryFindFirstArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketCategory 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 {TicketCategoryFindFirstOrThrowArgs} args - Arguments to find a TicketCategory
     * @example
     * // Get one TicketCategory
     * const ticketCategory = await prisma.ticketCategory.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends TicketCategoryFindFirstOrThrowArgs>(args?: SelectSubset<T, TicketCategoryFindFirstOrThrowArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more TicketCategories 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 {TicketCategoryFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all TicketCategories
     * const ticketCategories = await prisma.ticketCategory.findMany()
     * 
     * // Get first 10 TicketCategories
     * const ticketCategories = await prisma.ticketCategory.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const ticketCategoryWithIdOnly = await prisma.ticketCategory.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends TicketCategoryFindManyArgs>(args?: SelectSubset<T, TicketCategoryFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a TicketCategory.
     * @param {TicketCategoryCreateArgs} args - Arguments to create a TicketCategory.
     * @example
     * // Create one TicketCategory
     * const TicketCategory = await prisma.ticketCategory.create({
     *   data: {
     *     // ... data to create a TicketCategory
     *   }
     * })
     * 
     */
    create<T extends TicketCategoryCreateArgs>(args: SelectSubset<T, TicketCategoryCreateArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many TicketCategories.
     * @param {TicketCategoryCreateManyArgs} args - Arguments to create many TicketCategories.
     * @example
     * // Create many TicketCategories
     * const ticketCategory = await prisma.ticketCategory.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends TicketCategoryCreateManyArgs>(args?: SelectSubset<T, TicketCategoryCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many TicketCategories and returns the data saved in the database.
     * @param {TicketCategoryCreateManyAndReturnArgs} args - Arguments to create many TicketCategories.
     * @example
     * // Create many TicketCategories
     * const ticketCategory = await prisma.ticketCategory.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many TicketCategories and only return the `id`
     * const ticketCategoryWithIdOnly = await prisma.ticketCategory.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 TicketCategoryCreateManyAndReturnArgs>(args?: SelectSubset<T, TicketCategoryCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a TicketCategory.
     * @param {TicketCategoryDeleteArgs} args - Arguments to delete one TicketCategory.
     * @example
     * // Delete one TicketCategory
     * const TicketCategory = await prisma.ticketCategory.delete({
     *   where: {
     *     // ... filter to delete one TicketCategory
     *   }
     * })
     * 
     */
    delete<T extends TicketCategoryDeleteArgs>(args: SelectSubset<T, TicketCategoryDeleteArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one TicketCategory.
     * @param {TicketCategoryUpdateArgs} args - Arguments to update one TicketCategory.
     * @example
     * // Update one TicketCategory
     * const ticketCategory = await prisma.ticketCategory.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends TicketCategoryUpdateArgs>(args: SelectSubset<T, TicketCategoryUpdateArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more TicketCategories.
     * @param {TicketCategoryDeleteManyArgs} args - Arguments to filter TicketCategories to delete.
     * @example
     * // Delete a few TicketCategories
     * const { count } = await prisma.ticketCategory.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends TicketCategoryDeleteManyArgs>(args?: SelectSubset<T, TicketCategoryDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketCategories.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCategoryUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many TicketCategories
     * const ticketCategory = await prisma.ticketCategory.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends TicketCategoryUpdateManyArgs>(args: SelectSubset<T, TicketCategoryUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketCategories and returns the data updated in the database.
     * @param {TicketCategoryUpdateManyAndReturnArgs} args - Arguments to update many TicketCategories.
     * @example
     * // Update many TicketCategories
     * const ticketCategory = await prisma.ticketCategory.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more TicketCategories and only return the `id`
     * const ticketCategoryWithIdOnly = await prisma.ticketCategory.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 TicketCategoryUpdateManyAndReturnArgs>(args: SelectSubset<T, TicketCategoryUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one TicketCategory.
     * @param {TicketCategoryUpsertArgs} args - Arguments to update or create a TicketCategory.
     * @example
     * // Update or create a TicketCategory
     * const ticketCategory = await prisma.ticketCategory.upsert({
     *   create: {
     *     // ... data to create a TicketCategory
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the TicketCategory we want to update
     *   }
     * })
     */
    upsert<T extends TicketCategoryUpsertArgs>(args: SelectSubset<T, TicketCategoryUpsertArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of TicketCategories.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCategoryCountArgs} args - Arguments to filter TicketCategories to count.
     * @example
     * // Count the number of TicketCategories
     * const count = await prisma.ticketCategory.count({
     *   where: {
     *     // ... the filter for the TicketCategories we want to count
     *   }
     * })
    **/
    count<T extends TicketCategoryCountArgs>(
      args?: Subset<T, TicketCategoryCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], TicketCategoryCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a TicketCategory.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCategoryAggregateArgs} 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 TicketCategoryAggregateArgs>(args: Subset<T, TicketCategoryAggregateArgs>): Prisma.PrismaPromise<GetTicketCategoryAggregateType<T>>

    /**
     * Group by TicketCategory.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCategoryGroupByArgs} 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 TicketCategoryGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: TicketCategoryGroupByArgs['orderBy'] }
        : { orderBy?: TicketCategoryGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, TicketCategoryGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTicketCategoryGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the TicketCategory model
   */
  readonly fields: TicketCategoryFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for TicketCategory.
   * 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__TicketCategoryClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    parent<T extends TicketCategory$parentArgs<ExtArgs> = {}>(args?: Subset<T, TicketCategory$parentArgs<ExtArgs>>): Prisma__TicketCategoryClient<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    children<T extends TicketCategory$childrenArgs<ExtArgs> = {}>(args?: Subset<T, TicketCategory$childrenArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    defaultAssigneeGroup<T extends TicketCategory$defaultAssigneeGroupArgs<ExtArgs> = {}>(args?: Subset<T, TicketCategory$defaultAssigneeGroupArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    sla<T extends TicketCategory$slaArgs<ExtArgs> = {}>(args?: Subset<T, TicketCategory$slaArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    tickets<T extends TicketCategory$ticketsArgs<ExtArgs> = {}>(args?: Subset<T, TicketCategory$ticketsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the TicketCategory model
   */
  interface TicketCategoryFieldRefs {
    readonly id: FieldRef<"TicketCategory", 'String'>
    readonly name: FieldRef<"TicketCategory", 'String'>
    readonly code: FieldRef<"TicketCategory", 'String'>
    readonly description: FieldRef<"TicketCategory", 'String'>
    readonly icon: FieldRef<"TicketCategory", 'String'>
    readonly parentId: FieldRef<"TicketCategory", 'String'>
    readonly defaultPriority: FieldRef<"TicketCategory", 'TicketPriority'>
    readonly defaultAssigneeGroupId: FieldRef<"TicketCategory", 'String'>
    readonly slaId: FieldRef<"TicketCategory", 'String'>
    readonly formTemplateId: FieldRef<"TicketCategory", 'String'>
    readonly allowedDepartmentIds: FieldRef<"TicketCategory", 'String[]'>
    readonly allowedRoleIds: FieldRef<"TicketCategory", 'String[]'>
    readonly isActive: FieldRef<"TicketCategory", 'Boolean'>
    readonly sortOrder: FieldRef<"TicketCategory", 'Int'>
    readonly createdAt: FieldRef<"TicketCategory", 'DateTime'>
    readonly updatedAt: FieldRef<"TicketCategory", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * TicketCategory findUnique
   */
  export type TicketCategoryFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * Filter, which TicketCategory to fetch.
     */
    where: TicketCategoryWhereUniqueInput
  }

  /**
   * TicketCategory findUniqueOrThrow
   */
  export type TicketCategoryFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * Filter, which TicketCategory to fetch.
     */
    where: TicketCategoryWhereUniqueInput
  }

  /**
   * TicketCategory findFirst
   */
  export type TicketCategoryFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * Filter, which TicketCategory to fetch.
     */
    where?: TicketCategoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketCategories to fetch.
     */
    orderBy?: TicketCategoryOrderByWithRelationInput | TicketCategoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketCategories.
     */
    cursor?: TicketCategoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketCategories 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` TicketCategories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketCategories.
     */
    distinct?: TicketCategoryScalarFieldEnum | TicketCategoryScalarFieldEnum[]
  }

  /**
   * TicketCategory findFirstOrThrow
   */
  export type TicketCategoryFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * Filter, which TicketCategory to fetch.
     */
    where?: TicketCategoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketCategories to fetch.
     */
    orderBy?: TicketCategoryOrderByWithRelationInput | TicketCategoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketCategories.
     */
    cursor?: TicketCategoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketCategories 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` TicketCategories.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketCategories.
     */
    distinct?: TicketCategoryScalarFieldEnum | TicketCategoryScalarFieldEnum[]
  }

  /**
   * TicketCategory findMany
   */
  export type TicketCategoryFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * Filter, which TicketCategories to fetch.
     */
    where?: TicketCategoryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketCategories to fetch.
     */
    orderBy?: TicketCategoryOrderByWithRelationInput | TicketCategoryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing TicketCategories.
     */
    cursor?: TicketCategoryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketCategories 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` TicketCategories.
     */
    skip?: number
    distinct?: TicketCategoryScalarFieldEnum | TicketCategoryScalarFieldEnum[]
  }

  /**
   * TicketCategory create
   */
  export type TicketCategoryCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * The data needed to create a TicketCategory.
     */
    data: XOR<TicketCategoryCreateInput, TicketCategoryUncheckedCreateInput>
  }

  /**
   * TicketCategory createMany
   */
  export type TicketCategoryCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many TicketCategories.
     */
    data: TicketCategoryCreateManyInput | TicketCategoryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * TicketCategory createManyAndReturn
   */
  export type TicketCategoryCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * The data used to create many TicketCategories.
     */
    data: TicketCategoryCreateManyInput | TicketCategoryCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * TicketCategory update
   */
  export type TicketCategoryUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * The data needed to update a TicketCategory.
     */
    data: XOR<TicketCategoryUpdateInput, TicketCategoryUncheckedUpdateInput>
    /**
     * Choose, which TicketCategory to update.
     */
    where: TicketCategoryWhereUniqueInput
  }

  /**
   * TicketCategory updateMany
   */
  export type TicketCategoryUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update TicketCategories.
     */
    data: XOR<TicketCategoryUpdateManyMutationInput, TicketCategoryUncheckedUpdateManyInput>
    /**
     * Filter which TicketCategories to update
     */
    where?: TicketCategoryWhereInput
    /**
     * Limit how many TicketCategories to update.
     */
    limit?: number
  }

  /**
   * TicketCategory updateManyAndReturn
   */
  export type TicketCategoryUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * The data used to update TicketCategories.
     */
    data: XOR<TicketCategoryUpdateManyMutationInput, TicketCategoryUncheckedUpdateManyInput>
    /**
     * Filter which TicketCategories to update
     */
    where?: TicketCategoryWhereInput
    /**
     * Limit how many TicketCategories to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * TicketCategory upsert
   */
  export type TicketCategoryUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * The filter to search for the TicketCategory to update in case it exists.
     */
    where: TicketCategoryWhereUniqueInput
    /**
     * In case the TicketCategory found by the `where` argument doesn't exist, create a new TicketCategory with this data.
     */
    create: XOR<TicketCategoryCreateInput, TicketCategoryUncheckedCreateInput>
    /**
     * In case the TicketCategory was found with the provided `where` argument, update it with this data.
     */
    update: XOR<TicketCategoryUpdateInput, TicketCategoryUncheckedUpdateInput>
  }

  /**
   * TicketCategory delete
   */
  export type TicketCategoryDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    /**
     * Filter which TicketCategory to delete.
     */
    where: TicketCategoryWhereUniqueInput
  }

  /**
   * TicketCategory deleteMany
   */
  export type TicketCategoryDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketCategories to delete
     */
    where?: TicketCategoryWhereInput
    /**
     * Limit how many TicketCategories to delete.
     */
    limit?: number
  }

  /**
   * TicketCategory.parent
   */
  export type TicketCategory$parentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    where?: TicketCategoryWhereInput
  }

  /**
   * TicketCategory.children
   */
  export type TicketCategory$childrenArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    where?: TicketCategoryWhereInput
    orderBy?: TicketCategoryOrderByWithRelationInput | TicketCategoryOrderByWithRelationInput[]
    cursor?: TicketCategoryWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketCategoryScalarFieldEnum | TicketCategoryScalarFieldEnum[]
  }

  /**
   * TicketCategory.defaultAssigneeGroup
   */
  export type TicketCategory$defaultAssigneeGroupArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    where?: AssignmentGroupWhereInput
  }

  /**
   * TicketCategory.sla
   */
  export type TicketCategory$slaArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    where?: TicketSLAWhereInput
  }

  /**
   * TicketCategory.tickets
   */
  export type TicketCategory$ticketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    where?: TicketWhereInput
    orderBy?: TicketOrderByWithRelationInput | TicketOrderByWithRelationInput[]
    cursor?: TicketWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketScalarFieldEnum | TicketScalarFieldEnum[]
  }

  /**
   * TicketCategory without action
   */
  export type TicketCategoryDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
  }


  /**
   * Model TicketComment
   */

  export type AggregateTicketComment = {
    _count: TicketCommentCountAggregateOutputType | null
    _min: TicketCommentMinAggregateOutputType | null
    _max: TicketCommentMaxAggregateOutputType | null
  }

  export type TicketCommentMinAggregateOutputType = {
    id: string | null
    ticketId: string | null
    content: string | null
    type: $Enums.CommentType | null
    isInternal: boolean | null
    visibilityScope: $Enums.VisibilityScope | null
    authorId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type TicketCommentMaxAggregateOutputType = {
    id: string | null
    ticketId: string | null
    content: string | null
    type: $Enums.CommentType | null
    isInternal: boolean | null
    visibilityScope: $Enums.VisibilityScope | null
    authorId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    deletedAt: Date | null
  }

  export type TicketCommentCountAggregateOutputType = {
    id: number
    ticketId: number
    content: number
    type: number
    isInternal: number
    visibilityScope: number
    authorId: number
    mentionedUserIds: number
    createdAt: number
    updatedAt: number
    deletedAt: number
    _all: number
  }


  export type TicketCommentMinAggregateInputType = {
    id?: true
    ticketId?: true
    content?: true
    type?: true
    isInternal?: true
    visibilityScope?: true
    authorId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type TicketCommentMaxAggregateInputType = {
    id?: true
    ticketId?: true
    content?: true
    type?: true
    isInternal?: true
    visibilityScope?: true
    authorId?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
  }

  export type TicketCommentCountAggregateInputType = {
    id?: true
    ticketId?: true
    content?: true
    type?: true
    isInternal?: true
    visibilityScope?: true
    authorId?: true
    mentionedUserIds?: true
    createdAt?: true
    updatedAt?: true
    deletedAt?: true
    _all?: true
  }

  export type TicketCommentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketComment to aggregate.
     */
    where?: TicketCommentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketComments to fetch.
     */
    orderBy?: TicketCommentOrderByWithRelationInput | TicketCommentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: TicketCommentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketComments 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` TicketComments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned TicketComments
    **/
    _count?: true | TicketCommentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: TicketCommentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: TicketCommentMaxAggregateInputType
  }

  export type GetTicketCommentAggregateType<T extends TicketCommentAggregateArgs> = {
        [P in keyof T & keyof AggregateTicketComment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateTicketComment[P]>
      : GetScalarType<T[P], AggregateTicketComment[P]>
  }




  export type TicketCommentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketCommentWhereInput
    orderBy?: TicketCommentOrderByWithAggregationInput | TicketCommentOrderByWithAggregationInput[]
    by: TicketCommentScalarFieldEnum[] | TicketCommentScalarFieldEnum
    having?: TicketCommentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: TicketCommentCountAggregateInputType | true
    _min?: TicketCommentMinAggregateInputType
    _max?: TicketCommentMaxAggregateInputType
  }

  export type TicketCommentGroupByOutputType = {
    id: string
    ticketId: string
    content: string
    type: $Enums.CommentType
    isInternal: boolean
    visibilityScope: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds: string[]
    createdAt: Date
    updatedAt: Date
    deletedAt: Date | null
    _count: TicketCommentCountAggregateOutputType | null
    _min: TicketCommentMinAggregateOutputType | null
    _max: TicketCommentMaxAggregateOutputType | null
  }

  type GetTicketCommentGroupByPayload<T extends TicketCommentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<TicketCommentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof TicketCommentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], TicketCommentGroupByOutputType[P]>
            : GetScalarType<T[P], TicketCommentGroupByOutputType[P]>
        }
      >
    >


  export type TicketCommentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    content?: boolean
    type?: boolean
    isInternal?: boolean
    visibilityScope?: boolean
    authorId?: boolean
    mentionedUserIds?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
    attachments?: boolean | TicketComment$attachmentsArgs<ExtArgs>
    _count?: boolean | TicketCommentCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticketComment"]>

  export type TicketCommentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    content?: boolean
    type?: boolean
    isInternal?: boolean
    visibilityScope?: boolean
    authorId?: boolean
    mentionedUserIds?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticketComment"]>

  export type TicketCommentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    content?: boolean
    type?: boolean
    isInternal?: boolean
    visibilityScope?: boolean
    authorId?: boolean
    mentionedUserIds?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticketComment"]>

  export type TicketCommentSelectScalar = {
    id?: boolean
    ticketId?: boolean
    content?: boolean
    type?: boolean
    isInternal?: boolean
    visibilityScope?: boolean
    authorId?: boolean
    mentionedUserIds?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    deletedAt?: boolean
  }

  export type TicketCommentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "ticketId" | "content" | "type" | "isInternal" | "visibilityScope" | "authorId" | "mentionedUserIds" | "createdAt" | "updatedAt" | "deletedAt", ExtArgs["result"]["ticketComment"]>
  export type TicketCommentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
    attachments?: boolean | TicketComment$attachmentsArgs<ExtArgs>
    _count?: boolean | TicketCommentCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type TicketCommentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }
  export type TicketCommentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }

  export type $TicketCommentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "TicketComment"
    objects: {
      ticket: Prisma.$TicketPayload<ExtArgs>
      attachments: Prisma.$TicketAttachmentPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      ticketId: string
      content: string
      type: $Enums.CommentType
      isInternal: boolean
      visibilityScope: $Enums.VisibilityScope
      authorId: string
      mentionedUserIds: string[]
      createdAt: Date
      updatedAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["ticketComment"]>
    composites: {}
  }

  type TicketCommentGetPayload<S extends boolean | null | undefined | TicketCommentDefaultArgs> = $Result.GetResult<Prisma.$TicketCommentPayload, S>

  type TicketCommentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<TicketCommentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: TicketCommentCountAggregateInputType | true
    }

  export interface TicketCommentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['TicketComment'], meta: { name: 'TicketComment' } }
    /**
     * Find zero or one TicketComment that matches the filter.
     * @param {TicketCommentFindUniqueArgs} args - Arguments to find a TicketComment
     * @example
     * // Get one TicketComment
     * const ticketComment = await prisma.ticketComment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends TicketCommentFindUniqueArgs>(args: SelectSubset<T, TicketCommentFindUniqueArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one TicketComment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {TicketCommentFindUniqueOrThrowArgs} args - Arguments to find a TicketComment
     * @example
     * // Get one TicketComment
     * const ticketComment = await prisma.ticketComment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends TicketCommentFindUniqueOrThrowArgs>(args: SelectSubset<T, TicketCommentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketComment 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 {TicketCommentFindFirstArgs} args - Arguments to find a TicketComment
     * @example
     * // Get one TicketComment
     * const ticketComment = await prisma.ticketComment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends TicketCommentFindFirstArgs>(args?: SelectSubset<T, TicketCommentFindFirstArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketComment 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 {TicketCommentFindFirstOrThrowArgs} args - Arguments to find a TicketComment
     * @example
     * // Get one TicketComment
     * const ticketComment = await prisma.ticketComment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends TicketCommentFindFirstOrThrowArgs>(args?: SelectSubset<T, TicketCommentFindFirstOrThrowArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more TicketComments 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 {TicketCommentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all TicketComments
     * const ticketComments = await prisma.ticketComment.findMany()
     * 
     * // Get first 10 TicketComments
     * const ticketComments = await prisma.ticketComment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const ticketCommentWithIdOnly = await prisma.ticketComment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends TicketCommentFindManyArgs>(args?: SelectSubset<T, TicketCommentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a TicketComment.
     * @param {TicketCommentCreateArgs} args - Arguments to create a TicketComment.
     * @example
     * // Create one TicketComment
     * const TicketComment = await prisma.ticketComment.create({
     *   data: {
     *     // ... data to create a TicketComment
     *   }
     * })
     * 
     */
    create<T extends TicketCommentCreateArgs>(args: SelectSubset<T, TicketCommentCreateArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many TicketComments.
     * @param {TicketCommentCreateManyArgs} args - Arguments to create many TicketComments.
     * @example
     * // Create many TicketComments
     * const ticketComment = await prisma.ticketComment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends TicketCommentCreateManyArgs>(args?: SelectSubset<T, TicketCommentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many TicketComments and returns the data saved in the database.
     * @param {TicketCommentCreateManyAndReturnArgs} args - Arguments to create many TicketComments.
     * @example
     * // Create many TicketComments
     * const ticketComment = await prisma.ticketComment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many TicketComments and only return the `id`
     * const ticketCommentWithIdOnly = await prisma.ticketComment.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 TicketCommentCreateManyAndReturnArgs>(args?: SelectSubset<T, TicketCommentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a TicketComment.
     * @param {TicketCommentDeleteArgs} args - Arguments to delete one TicketComment.
     * @example
     * // Delete one TicketComment
     * const TicketComment = await prisma.ticketComment.delete({
     *   where: {
     *     // ... filter to delete one TicketComment
     *   }
     * })
     * 
     */
    delete<T extends TicketCommentDeleteArgs>(args: SelectSubset<T, TicketCommentDeleteArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one TicketComment.
     * @param {TicketCommentUpdateArgs} args - Arguments to update one TicketComment.
     * @example
     * // Update one TicketComment
     * const ticketComment = await prisma.ticketComment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends TicketCommentUpdateArgs>(args: SelectSubset<T, TicketCommentUpdateArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more TicketComments.
     * @param {TicketCommentDeleteManyArgs} args - Arguments to filter TicketComments to delete.
     * @example
     * // Delete a few TicketComments
     * const { count } = await prisma.ticketComment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends TicketCommentDeleteManyArgs>(args?: SelectSubset<T, TicketCommentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketComments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCommentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many TicketComments
     * const ticketComment = await prisma.ticketComment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends TicketCommentUpdateManyArgs>(args: SelectSubset<T, TicketCommentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketComments and returns the data updated in the database.
     * @param {TicketCommentUpdateManyAndReturnArgs} args - Arguments to update many TicketComments.
     * @example
     * // Update many TicketComments
     * const ticketComment = await prisma.ticketComment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more TicketComments and only return the `id`
     * const ticketCommentWithIdOnly = await prisma.ticketComment.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 TicketCommentUpdateManyAndReturnArgs>(args: SelectSubset<T, TicketCommentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one TicketComment.
     * @param {TicketCommentUpsertArgs} args - Arguments to update or create a TicketComment.
     * @example
     * // Update or create a TicketComment
     * const ticketComment = await prisma.ticketComment.upsert({
     *   create: {
     *     // ... data to create a TicketComment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the TicketComment we want to update
     *   }
     * })
     */
    upsert<T extends TicketCommentUpsertArgs>(args: SelectSubset<T, TicketCommentUpsertArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of TicketComments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCommentCountArgs} args - Arguments to filter TicketComments to count.
     * @example
     * // Count the number of TicketComments
     * const count = await prisma.ticketComment.count({
     *   where: {
     *     // ... the filter for the TicketComments we want to count
     *   }
     * })
    **/
    count<T extends TicketCommentCountArgs>(
      args?: Subset<T, TicketCommentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], TicketCommentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a TicketComment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCommentAggregateArgs} 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 TicketCommentAggregateArgs>(args: Subset<T, TicketCommentAggregateArgs>): Prisma.PrismaPromise<GetTicketCommentAggregateType<T>>

    /**
     * Group by TicketComment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketCommentGroupByArgs} 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 TicketCommentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: TicketCommentGroupByArgs['orderBy'] }
        : { orderBy?: TicketCommentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, TicketCommentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTicketCommentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the TicketComment model
   */
  readonly fields: TicketCommentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for TicketComment.
   * 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__TicketCommentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    ticket<T extends TicketDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TicketDefaultArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    attachments<T extends TicketComment$attachmentsArgs<ExtArgs> = {}>(args?: Subset<T, TicketComment$attachmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the TicketComment model
   */
  interface TicketCommentFieldRefs {
    readonly id: FieldRef<"TicketComment", 'String'>
    readonly ticketId: FieldRef<"TicketComment", 'String'>
    readonly content: FieldRef<"TicketComment", 'String'>
    readonly type: FieldRef<"TicketComment", 'CommentType'>
    readonly isInternal: FieldRef<"TicketComment", 'Boolean'>
    readonly visibilityScope: FieldRef<"TicketComment", 'VisibilityScope'>
    readonly authorId: FieldRef<"TicketComment", 'String'>
    readonly mentionedUserIds: FieldRef<"TicketComment", 'String[]'>
    readonly createdAt: FieldRef<"TicketComment", 'DateTime'>
    readonly updatedAt: FieldRef<"TicketComment", 'DateTime'>
    readonly deletedAt: FieldRef<"TicketComment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * TicketComment findUnique
   */
  export type TicketCommentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * Filter, which TicketComment to fetch.
     */
    where: TicketCommentWhereUniqueInput
  }

  /**
   * TicketComment findUniqueOrThrow
   */
  export type TicketCommentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * Filter, which TicketComment to fetch.
     */
    where: TicketCommentWhereUniqueInput
  }

  /**
   * TicketComment findFirst
   */
  export type TicketCommentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * Filter, which TicketComment to fetch.
     */
    where?: TicketCommentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketComments to fetch.
     */
    orderBy?: TicketCommentOrderByWithRelationInput | TicketCommentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketComments.
     */
    cursor?: TicketCommentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketComments 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` TicketComments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketComments.
     */
    distinct?: TicketCommentScalarFieldEnum | TicketCommentScalarFieldEnum[]
  }

  /**
   * TicketComment findFirstOrThrow
   */
  export type TicketCommentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * Filter, which TicketComment to fetch.
     */
    where?: TicketCommentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketComments to fetch.
     */
    orderBy?: TicketCommentOrderByWithRelationInput | TicketCommentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketComments.
     */
    cursor?: TicketCommentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketComments 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` TicketComments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketComments.
     */
    distinct?: TicketCommentScalarFieldEnum | TicketCommentScalarFieldEnum[]
  }

  /**
   * TicketComment findMany
   */
  export type TicketCommentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * Filter, which TicketComments to fetch.
     */
    where?: TicketCommentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketComments to fetch.
     */
    orderBy?: TicketCommentOrderByWithRelationInput | TicketCommentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing TicketComments.
     */
    cursor?: TicketCommentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketComments 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` TicketComments.
     */
    skip?: number
    distinct?: TicketCommentScalarFieldEnum | TicketCommentScalarFieldEnum[]
  }

  /**
   * TicketComment create
   */
  export type TicketCommentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * The data needed to create a TicketComment.
     */
    data: XOR<TicketCommentCreateInput, TicketCommentUncheckedCreateInput>
  }

  /**
   * TicketComment createMany
   */
  export type TicketCommentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many TicketComments.
     */
    data: TicketCommentCreateManyInput | TicketCommentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * TicketComment createManyAndReturn
   */
  export type TicketCommentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * The data used to create many TicketComments.
     */
    data: TicketCommentCreateManyInput | TicketCommentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * TicketComment update
   */
  export type TicketCommentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * The data needed to update a TicketComment.
     */
    data: XOR<TicketCommentUpdateInput, TicketCommentUncheckedUpdateInput>
    /**
     * Choose, which TicketComment to update.
     */
    where: TicketCommentWhereUniqueInput
  }

  /**
   * TicketComment updateMany
   */
  export type TicketCommentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update TicketComments.
     */
    data: XOR<TicketCommentUpdateManyMutationInput, TicketCommentUncheckedUpdateManyInput>
    /**
     * Filter which TicketComments to update
     */
    where?: TicketCommentWhereInput
    /**
     * Limit how many TicketComments to update.
     */
    limit?: number
  }

  /**
   * TicketComment updateManyAndReturn
   */
  export type TicketCommentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * The data used to update TicketComments.
     */
    data: XOR<TicketCommentUpdateManyMutationInput, TicketCommentUncheckedUpdateManyInput>
    /**
     * Filter which TicketComments to update
     */
    where?: TicketCommentWhereInput
    /**
     * Limit how many TicketComments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * TicketComment upsert
   */
  export type TicketCommentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * The filter to search for the TicketComment to update in case it exists.
     */
    where: TicketCommentWhereUniqueInput
    /**
     * In case the TicketComment found by the `where` argument doesn't exist, create a new TicketComment with this data.
     */
    create: XOR<TicketCommentCreateInput, TicketCommentUncheckedCreateInput>
    /**
     * In case the TicketComment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<TicketCommentUpdateInput, TicketCommentUncheckedUpdateInput>
  }

  /**
   * TicketComment delete
   */
  export type TicketCommentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    /**
     * Filter which TicketComment to delete.
     */
    where: TicketCommentWhereUniqueInput
  }

  /**
   * TicketComment deleteMany
   */
  export type TicketCommentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketComments to delete
     */
    where?: TicketCommentWhereInput
    /**
     * Limit how many TicketComments to delete.
     */
    limit?: number
  }

  /**
   * TicketComment.attachments
   */
  export type TicketComment$attachmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    where?: TicketAttachmentWhereInput
    orderBy?: TicketAttachmentOrderByWithRelationInput | TicketAttachmentOrderByWithRelationInput[]
    cursor?: TicketAttachmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketAttachmentScalarFieldEnum | TicketAttachmentScalarFieldEnum[]
  }

  /**
   * TicketComment without action
   */
  export type TicketCommentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
  }


  /**
   * Model TicketAttachment
   */

  export type AggregateTicketAttachment = {
    _count: TicketAttachmentCountAggregateOutputType | null
    _avg: TicketAttachmentAvgAggregateOutputType | null
    _sum: TicketAttachmentSumAggregateOutputType | null
    _min: TicketAttachmentMinAggregateOutputType | null
    _max: TicketAttachmentMaxAggregateOutputType | null
  }

  export type TicketAttachmentAvgAggregateOutputType = {
    fileSize: number | null
  }

  export type TicketAttachmentSumAggregateOutputType = {
    fileSize: number | null
  }

  export type TicketAttachmentMinAggregateOutputType = {
    id: string | null
    ticketId: string | null
    commentId: string | null
    fileName: string | null
    fileUrl: string | null
    fileSize: number | null
    mimeType: string | null
    uploadedBy: string | null
    createdAt: Date | null
  }

  export type TicketAttachmentMaxAggregateOutputType = {
    id: string | null
    ticketId: string | null
    commentId: string | null
    fileName: string | null
    fileUrl: string | null
    fileSize: number | null
    mimeType: string | null
    uploadedBy: string | null
    createdAt: Date | null
  }

  export type TicketAttachmentCountAggregateOutputType = {
    id: number
    ticketId: number
    commentId: number
    fileName: number
    fileUrl: number
    fileSize: number
    mimeType: number
    uploadedBy: number
    createdAt: number
    _all: number
  }


  export type TicketAttachmentAvgAggregateInputType = {
    fileSize?: true
  }

  export type TicketAttachmentSumAggregateInputType = {
    fileSize?: true
  }

  export type TicketAttachmentMinAggregateInputType = {
    id?: true
    ticketId?: true
    commentId?: true
    fileName?: true
    fileUrl?: true
    fileSize?: true
    mimeType?: true
    uploadedBy?: true
    createdAt?: true
  }

  export type TicketAttachmentMaxAggregateInputType = {
    id?: true
    ticketId?: true
    commentId?: true
    fileName?: true
    fileUrl?: true
    fileSize?: true
    mimeType?: true
    uploadedBy?: true
    createdAt?: true
  }

  export type TicketAttachmentCountAggregateInputType = {
    id?: true
    ticketId?: true
    commentId?: true
    fileName?: true
    fileUrl?: true
    fileSize?: true
    mimeType?: true
    uploadedBy?: true
    createdAt?: true
    _all?: true
  }

  export type TicketAttachmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketAttachment to aggregate.
     */
    where?: TicketAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketAttachments to fetch.
     */
    orderBy?: TicketAttachmentOrderByWithRelationInput | TicketAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: TicketAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketAttachments 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` TicketAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned TicketAttachments
    **/
    _count?: true | TicketAttachmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: TicketAttachmentAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: TicketAttachmentSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: TicketAttachmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: TicketAttachmentMaxAggregateInputType
  }

  export type GetTicketAttachmentAggregateType<T extends TicketAttachmentAggregateArgs> = {
        [P in keyof T & keyof AggregateTicketAttachment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateTicketAttachment[P]>
      : GetScalarType<T[P], AggregateTicketAttachment[P]>
  }




  export type TicketAttachmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketAttachmentWhereInput
    orderBy?: TicketAttachmentOrderByWithAggregationInput | TicketAttachmentOrderByWithAggregationInput[]
    by: TicketAttachmentScalarFieldEnum[] | TicketAttachmentScalarFieldEnum
    having?: TicketAttachmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: TicketAttachmentCountAggregateInputType | true
    _avg?: TicketAttachmentAvgAggregateInputType
    _sum?: TicketAttachmentSumAggregateInputType
    _min?: TicketAttachmentMinAggregateInputType
    _max?: TicketAttachmentMaxAggregateInputType
  }

  export type TicketAttachmentGroupByOutputType = {
    id: string
    ticketId: string
    commentId: string | null
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt: Date
    _count: TicketAttachmentCountAggregateOutputType | null
    _avg: TicketAttachmentAvgAggregateOutputType | null
    _sum: TicketAttachmentSumAggregateOutputType | null
    _min: TicketAttachmentMinAggregateOutputType | null
    _max: TicketAttachmentMaxAggregateOutputType | null
  }

  type GetTicketAttachmentGroupByPayload<T extends TicketAttachmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<TicketAttachmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof TicketAttachmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], TicketAttachmentGroupByOutputType[P]>
            : GetScalarType<T[P], TicketAttachmentGroupByOutputType[P]>
        }
      >
    >


  export type TicketAttachmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    commentId?: boolean
    fileName?: boolean
    fileUrl?: boolean
    fileSize?: boolean
    mimeType?: boolean
    uploadedBy?: boolean
    createdAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
    comment?: boolean | TicketAttachment$commentArgs<ExtArgs>
  }, ExtArgs["result"]["ticketAttachment"]>

  export type TicketAttachmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    commentId?: boolean
    fileName?: boolean
    fileUrl?: boolean
    fileSize?: boolean
    mimeType?: boolean
    uploadedBy?: boolean
    createdAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
    comment?: boolean | TicketAttachment$commentArgs<ExtArgs>
  }, ExtArgs["result"]["ticketAttachment"]>

  export type TicketAttachmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    commentId?: boolean
    fileName?: boolean
    fileUrl?: boolean
    fileSize?: boolean
    mimeType?: boolean
    uploadedBy?: boolean
    createdAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
    comment?: boolean | TicketAttachment$commentArgs<ExtArgs>
  }, ExtArgs["result"]["ticketAttachment"]>

  export type TicketAttachmentSelectScalar = {
    id?: boolean
    ticketId?: boolean
    commentId?: boolean
    fileName?: boolean
    fileUrl?: boolean
    fileSize?: boolean
    mimeType?: boolean
    uploadedBy?: boolean
    createdAt?: boolean
  }

  export type TicketAttachmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "ticketId" | "commentId" | "fileName" | "fileUrl" | "fileSize" | "mimeType" | "uploadedBy" | "createdAt", ExtArgs["result"]["ticketAttachment"]>
  export type TicketAttachmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
    comment?: boolean | TicketAttachment$commentArgs<ExtArgs>
  }
  export type TicketAttachmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
    comment?: boolean | TicketAttachment$commentArgs<ExtArgs>
  }
  export type TicketAttachmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
    comment?: boolean | TicketAttachment$commentArgs<ExtArgs>
  }

  export type $TicketAttachmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "TicketAttachment"
    objects: {
      ticket: Prisma.$TicketPayload<ExtArgs>
      comment: Prisma.$TicketCommentPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      ticketId: string
      commentId: string | null
      fileName: string
      fileUrl: string
      fileSize: number
      mimeType: string
      uploadedBy: string
      createdAt: Date
    }, ExtArgs["result"]["ticketAttachment"]>
    composites: {}
  }

  type TicketAttachmentGetPayload<S extends boolean | null | undefined | TicketAttachmentDefaultArgs> = $Result.GetResult<Prisma.$TicketAttachmentPayload, S>

  type TicketAttachmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<TicketAttachmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: TicketAttachmentCountAggregateInputType | true
    }

  export interface TicketAttachmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['TicketAttachment'], meta: { name: 'TicketAttachment' } }
    /**
     * Find zero or one TicketAttachment that matches the filter.
     * @param {TicketAttachmentFindUniqueArgs} args - Arguments to find a TicketAttachment
     * @example
     * // Get one TicketAttachment
     * const ticketAttachment = await prisma.ticketAttachment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends TicketAttachmentFindUniqueArgs>(args: SelectSubset<T, TicketAttachmentFindUniqueArgs<ExtArgs>>): Prisma__TicketAttachmentClient<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one TicketAttachment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {TicketAttachmentFindUniqueOrThrowArgs} args - Arguments to find a TicketAttachment
     * @example
     * // Get one TicketAttachment
     * const ticketAttachment = await prisma.ticketAttachment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends TicketAttachmentFindUniqueOrThrowArgs>(args: SelectSubset<T, TicketAttachmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__TicketAttachmentClient<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketAttachment 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 {TicketAttachmentFindFirstArgs} args - Arguments to find a TicketAttachment
     * @example
     * // Get one TicketAttachment
     * const ticketAttachment = await prisma.ticketAttachment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends TicketAttachmentFindFirstArgs>(args?: SelectSubset<T, TicketAttachmentFindFirstArgs<ExtArgs>>): Prisma__TicketAttachmentClient<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketAttachment 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 {TicketAttachmentFindFirstOrThrowArgs} args - Arguments to find a TicketAttachment
     * @example
     * // Get one TicketAttachment
     * const ticketAttachment = await prisma.ticketAttachment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends TicketAttachmentFindFirstOrThrowArgs>(args?: SelectSubset<T, TicketAttachmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__TicketAttachmentClient<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more TicketAttachments 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 {TicketAttachmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all TicketAttachments
     * const ticketAttachments = await prisma.ticketAttachment.findMany()
     * 
     * // Get first 10 TicketAttachments
     * const ticketAttachments = await prisma.ticketAttachment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const ticketAttachmentWithIdOnly = await prisma.ticketAttachment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends TicketAttachmentFindManyArgs>(args?: SelectSubset<T, TicketAttachmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a TicketAttachment.
     * @param {TicketAttachmentCreateArgs} args - Arguments to create a TicketAttachment.
     * @example
     * // Create one TicketAttachment
     * const TicketAttachment = await prisma.ticketAttachment.create({
     *   data: {
     *     // ... data to create a TicketAttachment
     *   }
     * })
     * 
     */
    create<T extends TicketAttachmentCreateArgs>(args: SelectSubset<T, TicketAttachmentCreateArgs<ExtArgs>>): Prisma__TicketAttachmentClient<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many TicketAttachments.
     * @param {TicketAttachmentCreateManyArgs} args - Arguments to create many TicketAttachments.
     * @example
     * // Create many TicketAttachments
     * const ticketAttachment = await prisma.ticketAttachment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends TicketAttachmentCreateManyArgs>(args?: SelectSubset<T, TicketAttachmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many TicketAttachments and returns the data saved in the database.
     * @param {TicketAttachmentCreateManyAndReturnArgs} args - Arguments to create many TicketAttachments.
     * @example
     * // Create many TicketAttachments
     * const ticketAttachment = await prisma.ticketAttachment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many TicketAttachments and only return the `id`
     * const ticketAttachmentWithIdOnly = await prisma.ticketAttachment.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 TicketAttachmentCreateManyAndReturnArgs>(args?: SelectSubset<T, TicketAttachmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a TicketAttachment.
     * @param {TicketAttachmentDeleteArgs} args - Arguments to delete one TicketAttachment.
     * @example
     * // Delete one TicketAttachment
     * const TicketAttachment = await prisma.ticketAttachment.delete({
     *   where: {
     *     // ... filter to delete one TicketAttachment
     *   }
     * })
     * 
     */
    delete<T extends TicketAttachmentDeleteArgs>(args: SelectSubset<T, TicketAttachmentDeleteArgs<ExtArgs>>): Prisma__TicketAttachmentClient<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one TicketAttachment.
     * @param {TicketAttachmentUpdateArgs} args - Arguments to update one TicketAttachment.
     * @example
     * // Update one TicketAttachment
     * const ticketAttachment = await prisma.ticketAttachment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends TicketAttachmentUpdateArgs>(args: SelectSubset<T, TicketAttachmentUpdateArgs<ExtArgs>>): Prisma__TicketAttachmentClient<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more TicketAttachments.
     * @param {TicketAttachmentDeleteManyArgs} args - Arguments to filter TicketAttachments to delete.
     * @example
     * // Delete a few TicketAttachments
     * const { count } = await prisma.ticketAttachment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends TicketAttachmentDeleteManyArgs>(args?: SelectSubset<T, TicketAttachmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketAttachments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketAttachmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many TicketAttachments
     * const ticketAttachment = await prisma.ticketAttachment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends TicketAttachmentUpdateManyArgs>(args: SelectSubset<T, TicketAttachmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketAttachments and returns the data updated in the database.
     * @param {TicketAttachmentUpdateManyAndReturnArgs} args - Arguments to update many TicketAttachments.
     * @example
     * // Update many TicketAttachments
     * const ticketAttachment = await prisma.ticketAttachment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more TicketAttachments and only return the `id`
     * const ticketAttachmentWithIdOnly = await prisma.ticketAttachment.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 TicketAttachmentUpdateManyAndReturnArgs>(args: SelectSubset<T, TicketAttachmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one TicketAttachment.
     * @param {TicketAttachmentUpsertArgs} args - Arguments to update or create a TicketAttachment.
     * @example
     * // Update or create a TicketAttachment
     * const ticketAttachment = await prisma.ticketAttachment.upsert({
     *   create: {
     *     // ... data to create a TicketAttachment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the TicketAttachment we want to update
     *   }
     * })
     */
    upsert<T extends TicketAttachmentUpsertArgs>(args: SelectSubset<T, TicketAttachmentUpsertArgs<ExtArgs>>): Prisma__TicketAttachmentClient<$Result.GetResult<Prisma.$TicketAttachmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of TicketAttachments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketAttachmentCountArgs} args - Arguments to filter TicketAttachments to count.
     * @example
     * // Count the number of TicketAttachments
     * const count = await prisma.ticketAttachment.count({
     *   where: {
     *     // ... the filter for the TicketAttachments we want to count
     *   }
     * })
    **/
    count<T extends TicketAttachmentCountArgs>(
      args?: Subset<T, TicketAttachmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], TicketAttachmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a TicketAttachment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketAttachmentAggregateArgs} 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 TicketAttachmentAggregateArgs>(args: Subset<T, TicketAttachmentAggregateArgs>): Prisma.PrismaPromise<GetTicketAttachmentAggregateType<T>>

    /**
     * Group by TicketAttachment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketAttachmentGroupByArgs} 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 TicketAttachmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: TicketAttachmentGroupByArgs['orderBy'] }
        : { orderBy?: TicketAttachmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, TicketAttachmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTicketAttachmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the TicketAttachment model
   */
  readonly fields: TicketAttachmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for TicketAttachment.
   * 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__TicketAttachmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    ticket<T extends TicketDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TicketDefaultArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    comment<T extends TicketAttachment$commentArgs<ExtArgs> = {}>(args?: Subset<T, TicketAttachment$commentArgs<ExtArgs>>): Prisma__TicketCommentClient<$Result.GetResult<Prisma.$TicketCommentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the TicketAttachment model
   */
  interface TicketAttachmentFieldRefs {
    readonly id: FieldRef<"TicketAttachment", 'String'>
    readonly ticketId: FieldRef<"TicketAttachment", 'String'>
    readonly commentId: FieldRef<"TicketAttachment", 'String'>
    readonly fileName: FieldRef<"TicketAttachment", 'String'>
    readonly fileUrl: FieldRef<"TicketAttachment", 'String'>
    readonly fileSize: FieldRef<"TicketAttachment", 'Int'>
    readonly mimeType: FieldRef<"TicketAttachment", 'String'>
    readonly uploadedBy: FieldRef<"TicketAttachment", 'String'>
    readonly createdAt: FieldRef<"TicketAttachment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * TicketAttachment findUnique
   */
  export type TicketAttachmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which TicketAttachment to fetch.
     */
    where: TicketAttachmentWhereUniqueInput
  }

  /**
   * TicketAttachment findUniqueOrThrow
   */
  export type TicketAttachmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which TicketAttachment to fetch.
     */
    where: TicketAttachmentWhereUniqueInput
  }

  /**
   * TicketAttachment findFirst
   */
  export type TicketAttachmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which TicketAttachment to fetch.
     */
    where?: TicketAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketAttachments to fetch.
     */
    orderBy?: TicketAttachmentOrderByWithRelationInput | TicketAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketAttachments.
     */
    cursor?: TicketAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketAttachments 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` TicketAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketAttachments.
     */
    distinct?: TicketAttachmentScalarFieldEnum | TicketAttachmentScalarFieldEnum[]
  }

  /**
   * TicketAttachment findFirstOrThrow
   */
  export type TicketAttachmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which TicketAttachment to fetch.
     */
    where?: TicketAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketAttachments to fetch.
     */
    orderBy?: TicketAttachmentOrderByWithRelationInput | TicketAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketAttachments.
     */
    cursor?: TicketAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketAttachments 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` TicketAttachments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketAttachments.
     */
    distinct?: TicketAttachmentScalarFieldEnum | TicketAttachmentScalarFieldEnum[]
  }

  /**
   * TicketAttachment findMany
   */
  export type TicketAttachmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * Filter, which TicketAttachments to fetch.
     */
    where?: TicketAttachmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketAttachments to fetch.
     */
    orderBy?: TicketAttachmentOrderByWithRelationInput | TicketAttachmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing TicketAttachments.
     */
    cursor?: TicketAttachmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketAttachments 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` TicketAttachments.
     */
    skip?: number
    distinct?: TicketAttachmentScalarFieldEnum | TicketAttachmentScalarFieldEnum[]
  }

  /**
   * TicketAttachment create
   */
  export type TicketAttachmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * The data needed to create a TicketAttachment.
     */
    data: XOR<TicketAttachmentCreateInput, TicketAttachmentUncheckedCreateInput>
  }

  /**
   * TicketAttachment createMany
   */
  export type TicketAttachmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many TicketAttachments.
     */
    data: TicketAttachmentCreateManyInput | TicketAttachmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * TicketAttachment createManyAndReturn
   */
  export type TicketAttachmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * The data used to create many TicketAttachments.
     */
    data: TicketAttachmentCreateManyInput | TicketAttachmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * TicketAttachment update
   */
  export type TicketAttachmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * The data needed to update a TicketAttachment.
     */
    data: XOR<TicketAttachmentUpdateInput, TicketAttachmentUncheckedUpdateInput>
    /**
     * Choose, which TicketAttachment to update.
     */
    where: TicketAttachmentWhereUniqueInput
  }

  /**
   * TicketAttachment updateMany
   */
  export type TicketAttachmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update TicketAttachments.
     */
    data: XOR<TicketAttachmentUpdateManyMutationInput, TicketAttachmentUncheckedUpdateManyInput>
    /**
     * Filter which TicketAttachments to update
     */
    where?: TicketAttachmentWhereInput
    /**
     * Limit how many TicketAttachments to update.
     */
    limit?: number
  }

  /**
   * TicketAttachment updateManyAndReturn
   */
  export type TicketAttachmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * The data used to update TicketAttachments.
     */
    data: XOR<TicketAttachmentUpdateManyMutationInput, TicketAttachmentUncheckedUpdateManyInput>
    /**
     * Filter which TicketAttachments to update
     */
    where?: TicketAttachmentWhereInput
    /**
     * Limit how many TicketAttachments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * TicketAttachment upsert
   */
  export type TicketAttachmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * The filter to search for the TicketAttachment to update in case it exists.
     */
    where: TicketAttachmentWhereUniqueInput
    /**
     * In case the TicketAttachment found by the `where` argument doesn't exist, create a new TicketAttachment with this data.
     */
    create: XOR<TicketAttachmentCreateInput, TicketAttachmentUncheckedCreateInput>
    /**
     * In case the TicketAttachment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<TicketAttachmentUpdateInput, TicketAttachmentUncheckedUpdateInput>
  }

  /**
   * TicketAttachment delete
   */
  export type TicketAttachmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
    /**
     * Filter which TicketAttachment to delete.
     */
    where: TicketAttachmentWhereUniqueInput
  }

  /**
   * TicketAttachment deleteMany
   */
  export type TicketAttachmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketAttachments to delete
     */
    where?: TicketAttachmentWhereInput
    /**
     * Limit how many TicketAttachments to delete.
     */
    limit?: number
  }

  /**
   * TicketAttachment.comment
   */
  export type TicketAttachment$commentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketComment
     */
    select?: TicketCommentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketComment
     */
    omit?: TicketCommentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCommentInclude<ExtArgs> | null
    where?: TicketCommentWhereInput
  }

  /**
   * TicketAttachment without action
   */
  export type TicketAttachmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketAttachment
     */
    select?: TicketAttachmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketAttachment
     */
    omit?: TicketAttachmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketAttachmentInclude<ExtArgs> | null
  }


  /**
   * Model TicketActivity
   */

  export type AggregateTicketActivity = {
    _count: TicketActivityCountAggregateOutputType | null
    _min: TicketActivityMinAggregateOutputType | null
    _max: TicketActivityMaxAggregateOutputType | null
  }

  export type TicketActivityMinAggregateOutputType = {
    id: string | null
    ticketId: string | null
    type: $Enums.ActivityType | null
    operatorId: string | null
    createdAt: Date | null
  }

  export type TicketActivityMaxAggregateOutputType = {
    id: string | null
    ticketId: string | null
    type: $Enums.ActivityType | null
    operatorId: string | null
    createdAt: Date | null
  }

  export type TicketActivityCountAggregateOutputType = {
    id: number
    ticketId: number
    type: number
    content: number
    operatorId: number
    createdAt: number
    _all: number
  }


  export type TicketActivityMinAggregateInputType = {
    id?: true
    ticketId?: true
    type?: true
    operatorId?: true
    createdAt?: true
  }

  export type TicketActivityMaxAggregateInputType = {
    id?: true
    ticketId?: true
    type?: true
    operatorId?: true
    createdAt?: true
  }

  export type TicketActivityCountAggregateInputType = {
    id?: true
    ticketId?: true
    type?: true
    content?: true
    operatorId?: true
    createdAt?: true
    _all?: true
  }

  export type TicketActivityAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketActivity to aggregate.
     */
    where?: TicketActivityWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketActivities to fetch.
     */
    orderBy?: TicketActivityOrderByWithRelationInput | TicketActivityOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: TicketActivityWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketActivities 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` TicketActivities.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned TicketActivities
    **/
    _count?: true | TicketActivityCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: TicketActivityMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: TicketActivityMaxAggregateInputType
  }

  export type GetTicketActivityAggregateType<T extends TicketActivityAggregateArgs> = {
        [P in keyof T & keyof AggregateTicketActivity]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateTicketActivity[P]>
      : GetScalarType<T[P], AggregateTicketActivity[P]>
  }




  export type TicketActivityGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketActivityWhereInput
    orderBy?: TicketActivityOrderByWithAggregationInput | TicketActivityOrderByWithAggregationInput[]
    by: TicketActivityScalarFieldEnum[] | TicketActivityScalarFieldEnum
    having?: TicketActivityScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: TicketActivityCountAggregateInputType | true
    _min?: TicketActivityMinAggregateInputType
    _max?: TicketActivityMaxAggregateInputType
  }

  export type TicketActivityGroupByOutputType = {
    id: string
    ticketId: string
    type: $Enums.ActivityType
    content: JsonValue
    operatorId: string | null
    createdAt: Date
    _count: TicketActivityCountAggregateOutputType | null
    _min: TicketActivityMinAggregateOutputType | null
    _max: TicketActivityMaxAggregateOutputType | null
  }

  type GetTicketActivityGroupByPayload<T extends TicketActivityGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<TicketActivityGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof TicketActivityGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], TicketActivityGroupByOutputType[P]>
            : GetScalarType<T[P], TicketActivityGroupByOutputType[P]>
        }
      >
    >


  export type TicketActivitySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    type?: boolean
    content?: boolean
    operatorId?: boolean
    createdAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticketActivity"]>

  export type TicketActivitySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    type?: boolean
    content?: boolean
    operatorId?: boolean
    createdAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticketActivity"]>

  export type TicketActivitySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    type?: boolean
    content?: boolean
    operatorId?: boolean
    createdAt?: boolean
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticketActivity"]>

  export type TicketActivitySelectScalar = {
    id?: boolean
    ticketId?: boolean
    type?: boolean
    content?: boolean
    operatorId?: boolean
    createdAt?: boolean
  }

  export type TicketActivityOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "ticketId" | "type" | "content" | "operatorId" | "createdAt", ExtArgs["result"]["ticketActivity"]>
  export type TicketActivityInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }
  export type TicketActivityIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }
  export type TicketActivityIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | TicketDefaultArgs<ExtArgs>
  }

  export type $TicketActivityPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "TicketActivity"
    objects: {
      ticket: Prisma.$TicketPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      ticketId: string
      type: $Enums.ActivityType
      content: Prisma.JsonValue
      operatorId: string | null
      createdAt: Date
    }, ExtArgs["result"]["ticketActivity"]>
    composites: {}
  }

  type TicketActivityGetPayload<S extends boolean | null | undefined | TicketActivityDefaultArgs> = $Result.GetResult<Prisma.$TicketActivityPayload, S>

  type TicketActivityCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<TicketActivityFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: TicketActivityCountAggregateInputType | true
    }

  export interface TicketActivityDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['TicketActivity'], meta: { name: 'TicketActivity' } }
    /**
     * Find zero or one TicketActivity that matches the filter.
     * @param {TicketActivityFindUniqueArgs} args - Arguments to find a TicketActivity
     * @example
     * // Get one TicketActivity
     * const ticketActivity = await prisma.ticketActivity.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends TicketActivityFindUniqueArgs>(args: SelectSubset<T, TicketActivityFindUniqueArgs<ExtArgs>>): Prisma__TicketActivityClient<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one TicketActivity that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {TicketActivityFindUniqueOrThrowArgs} args - Arguments to find a TicketActivity
     * @example
     * // Get one TicketActivity
     * const ticketActivity = await prisma.ticketActivity.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends TicketActivityFindUniqueOrThrowArgs>(args: SelectSubset<T, TicketActivityFindUniqueOrThrowArgs<ExtArgs>>): Prisma__TicketActivityClient<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketActivity 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 {TicketActivityFindFirstArgs} args - Arguments to find a TicketActivity
     * @example
     * // Get one TicketActivity
     * const ticketActivity = await prisma.ticketActivity.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends TicketActivityFindFirstArgs>(args?: SelectSubset<T, TicketActivityFindFirstArgs<ExtArgs>>): Prisma__TicketActivityClient<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketActivity 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 {TicketActivityFindFirstOrThrowArgs} args - Arguments to find a TicketActivity
     * @example
     * // Get one TicketActivity
     * const ticketActivity = await prisma.ticketActivity.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends TicketActivityFindFirstOrThrowArgs>(args?: SelectSubset<T, TicketActivityFindFirstOrThrowArgs<ExtArgs>>): Prisma__TicketActivityClient<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more TicketActivities 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 {TicketActivityFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all TicketActivities
     * const ticketActivities = await prisma.ticketActivity.findMany()
     * 
     * // Get first 10 TicketActivities
     * const ticketActivities = await prisma.ticketActivity.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const ticketActivityWithIdOnly = await prisma.ticketActivity.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends TicketActivityFindManyArgs>(args?: SelectSubset<T, TicketActivityFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a TicketActivity.
     * @param {TicketActivityCreateArgs} args - Arguments to create a TicketActivity.
     * @example
     * // Create one TicketActivity
     * const TicketActivity = await prisma.ticketActivity.create({
     *   data: {
     *     // ... data to create a TicketActivity
     *   }
     * })
     * 
     */
    create<T extends TicketActivityCreateArgs>(args: SelectSubset<T, TicketActivityCreateArgs<ExtArgs>>): Prisma__TicketActivityClient<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many TicketActivities.
     * @param {TicketActivityCreateManyArgs} args - Arguments to create many TicketActivities.
     * @example
     * // Create many TicketActivities
     * const ticketActivity = await prisma.ticketActivity.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends TicketActivityCreateManyArgs>(args?: SelectSubset<T, TicketActivityCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many TicketActivities and returns the data saved in the database.
     * @param {TicketActivityCreateManyAndReturnArgs} args - Arguments to create many TicketActivities.
     * @example
     * // Create many TicketActivities
     * const ticketActivity = await prisma.ticketActivity.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many TicketActivities and only return the `id`
     * const ticketActivityWithIdOnly = await prisma.ticketActivity.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 TicketActivityCreateManyAndReturnArgs>(args?: SelectSubset<T, TicketActivityCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a TicketActivity.
     * @param {TicketActivityDeleteArgs} args - Arguments to delete one TicketActivity.
     * @example
     * // Delete one TicketActivity
     * const TicketActivity = await prisma.ticketActivity.delete({
     *   where: {
     *     // ... filter to delete one TicketActivity
     *   }
     * })
     * 
     */
    delete<T extends TicketActivityDeleteArgs>(args: SelectSubset<T, TicketActivityDeleteArgs<ExtArgs>>): Prisma__TicketActivityClient<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one TicketActivity.
     * @param {TicketActivityUpdateArgs} args - Arguments to update one TicketActivity.
     * @example
     * // Update one TicketActivity
     * const ticketActivity = await prisma.ticketActivity.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends TicketActivityUpdateArgs>(args: SelectSubset<T, TicketActivityUpdateArgs<ExtArgs>>): Prisma__TicketActivityClient<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more TicketActivities.
     * @param {TicketActivityDeleteManyArgs} args - Arguments to filter TicketActivities to delete.
     * @example
     * // Delete a few TicketActivities
     * const { count } = await prisma.ticketActivity.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends TicketActivityDeleteManyArgs>(args?: SelectSubset<T, TicketActivityDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketActivities.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketActivityUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many TicketActivities
     * const ticketActivity = await prisma.ticketActivity.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends TicketActivityUpdateManyArgs>(args: SelectSubset<T, TicketActivityUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketActivities and returns the data updated in the database.
     * @param {TicketActivityUpdateManyAndReturnArgs} args - Arguments to update many TicketActivities.
     * @example
     * // Update many TicketActivities
     * const ticketActivity = await prisma.ticketActivity.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more TicketActivities and only return the `id`
     * const ticketActivityWithIdOnly = await prisma.ticketActivity.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 TicketActivityUpdateManyAndReturnArgs>(args: SelectSubset<T, TicketActivityUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one TicketActivity.
     * @param {TicketActivityUpsertArgs} args - Arguments to update or create a TicketActivity.
     * @example
     * // Update or create a TicketActivity
     * const ticketActivity = await prisma.ticketActivity.upsert({
     *   create: {
     *     // ... data to create a TicketActivity
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the TicketActivity we want to update
     *   }
     * })
     */
    upsert<T extends TicketActivityUpsertArgs>(args: SelectSubset<T, TicketActivityUpsertArgs<ExtArgs>>): Prisma__TicketActivityClient<$Result.GetResult<Prisma.$TicketActivityPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of TicketActivities.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketActivityCountArgs} args - Arguments to filter TicketActivities to count.
     * @example
     * // Count the number of TicketActivities
     * const count = await prisma.ticketActivity.count({
     *   where: {
     *     // ... the filter for the TicketActivities we want to count
     *   }
     * })
    **/
    count<T extends TicketActivityCountArgs>(
      args?: Subset<T, TicketActivityCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], TicketActivityCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a TicketActivity.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketActivityAggregateArgs} 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 TicketActivityAggregateArgs>(args: Subset<T, TicketActivityAggregateArgs>): Prisma.PrismaPromise<GetTicketActivityAggregateType<T>>

    /**
     * Group by TicketActivity.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketActivityGroupByArgs} 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 TicketActivityGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: TicketActivityGroupByArgs['orderBy'] }
        : { orderBy?: TicketActivityGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, TicketActivityGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTicketActivityGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the TicketActivity model
   */
  readonly fields: TicketActivityFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for TicketActivity.
   * 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__TicketActivityClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    ticket<T extends TicketDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TicketDefaultArgs<ExtArgs>>): Prisma__TicketClient<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the TicketActivity model
   */
  interface TicketActivityFieldRefs {
    readonly id: FieldRef<"TicketActivity", 'String'>
    readonly ticketId: FieldRef<"TicketActivity", 'String'>
    readonly type: FieldRef<"TicketActivity", 'ActivityType'>
    readonly content: FieldRef<"TicketActivity", 'Json'>
    readonly operatorId: FieldRef<"TicketActivity", 'String'>
    readonly createdAt: FieldRef<"TicketActivity", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * TicketActivity findUnique
   */
  export type TicketActivityFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which TicketActivity to fetch.
     */
    where: TicketActivityWhereUniqueInput
  }

  /**
   * TicketActivity findUniqueOrThrow
   */
  export type TicketActivityFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which TicketActivity to fetch.
     */
    where: TicketActivityWhereUniqueInput
  }

  /**
   * TicketActivity findFirst
   */
  export type TicketActivityFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which TicketActivity to fetch.
     */
    where?: TicketActivityWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketActivities to fetch.
     */
    orderBy?: TicketActivityOrderByWithRelationInput | TicketActivityOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketActivities.
     */
    cursor?: TicketActivityWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketActivities 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` TicketActivities.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketActivities.
     */
    distinct?: TicketActivityScalarFieldEnum | TicketActivityScalarFieldEnum[]
  }

  /**
   * TicketActivity findFirstOrThrow
   */
  export type TicketActivityFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which TicketActivity to fetch.
     */
    where?: TicketActivityWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketActivities to fetch.
     */
    orderBy?: TicketActivityOrderByWithRelationInput | TicketActivityOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketActivities.
     */
    cursor?: TicketActivityWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketActivities 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` TicketActivities.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketActivities.
     */
    distinct?: TicketActivityScalarFieldEnum | TicketActivityScalarFieldEnum[]
  }

  /**
   * TicketActivity findMany
   */
  export type TicketActivityFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which TicketActivities to fetch.
     */
    where?: TicketActivityWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketActivities to fetch.
     */
    orderBy?: TicketActivityOrderByWithRelationInput | TicketActivityOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing TicketActivities.
     */
    cursor?: TicketActivityWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketActivities 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` TicketActivities.
     */
    skip?: number
    distinct?: TicketActivityScalarFieldEnum | TicketActivityScalarFieldEnum[]
  }

  /**
   * TicketActivity create
   */
  export type TicketActivityCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * The data needed to create a TicketActivity.
     */
    data: XOR<TicketActivityCreateInput, TicketActivityUncheckedCreateInput>
  }

  /**
   * TicketActivity createMany
   */
  export type TicketActivityCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many TicketActivities.
     */
    data: TicketActivityCreateManyInput | TicketActivityCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * TicketActivity createManyAndReturn
   */
  export type TicketActivityCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * The data used to create many TicketActivities.
     */
    data: TicketActivityCreateManyInput | TicketActivityCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * TicketActivity update
   */
  export type TicketActivityUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * The data needed to update a TicketActivity.
     */
    data: XOR<TicketActivityUpdateInput, TicketActivityUncheckedUpdateInput>
    /**
     * Choose, which TicketActivity to update.
     */
    where: TicketActivityWhereUniqueInput
  }

  /**
   * TicketActivity updateMany
   */
  export type TicketActivityUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update TicketActivities.
     */
    data: XOR<TicketActivityUpdateManyMutationInput, TicketActivityUncheckedUpdateManyInput>
    /**
     * Filter which TicketActivities to update
     */
    where?: TicketActivityWhereInput
    /**
     * Limit how many TicketActivities to update.
     */
    limit?: number
  }

  /**
   * TicketActivity updateManyAndReturn
   */
  export type TicketActivityUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * The data used to update TicketActivities.
     */
    data: XOR<TicketActivityUpdateManyMutationInput, TicketActivityUncheckedUpdateManyInput>
    /**
     * Filter which TicketActivities to update
     */
    where?: TicketActivityWhereInput
    /**
     * Limit how many TicketActivities to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * TicketActivity upsert
   */
  export type TicketActivityUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * The filter to search for the TicketActivity to update in case it exists.
     */
    where: TicketActivityWhereUniqueInput
    /**
     * In case the TicketActivity found by the `where` argument doesn't exist, create a new TicketActivity with this data.
     */
    create: XOR<TicketActivityCreateInput, TicketActivityUncheckedCreateInput>
    /**
     * In case the TicketActivity was found with the provided `where` argument, update it with this data.
     */
    update: XOR<TicketActivityUpdateInput, TicketActivityUncheckedUpdateInput>
  }

  /**
   * TicketActivity delete
   */
  export type TicketActivityDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
    /**
     * Filter which TicketActivity to delete.
     */
    where: TicketActivityWhereUniqueInput
  }

  /**
   * TicketActivity deleteMany
   */
  export type TicketActivityDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketActivities to delete
     */
    where?: TicketActivityWhereInput
    /**
     * Limit how many TicketActivities to delete.
     */
    limit?: number
  }

  /**
   * TicketActivity without action
   */
  export type TicketActivityDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketActivity
     */
    select?: TicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketActivity
     */
    omit?: TicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketActivityInclude<ExtArgs> | null
  }


  /**
   * Model TicketSLA
   */

  export type AggregateTicketSLA = {
    _count: TicketSLACountAggregateOutputType | null
    _min: TicketSLAMinAggregateOutputType | null
    _max: TicketSLAMaxAggregateOutputType | null
  }

  export type TicketSLAMinAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    excludeHolidays: boolean | null
    holidayCalendarId: string | null
    isActive: boolean | null
    isDefault: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type TicketSLAMaxAggregateOutputType = {
    id: string | null
    name: string | null
    description: string | null
    excludeHolidays: boolean | null
    holidayCalendarId: string | null
    isActive: boolean | null
    isDefault: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type TicketSLACountAggregateOutputType = {
    id: number
    name: number
    description: number
    firstResponseTime: number
    resolutionTime: number
    businessHours: number
    excludeHolidays: number
    holidayCalendarId: number
    escalationRules: number
    isActive: number
    isDefault: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type TicketSLAMinAggregateInputType = {
    id?: true
    name?: true
    description?: true
    excludeHolidays?: true
    holidayCalendarId?: true
    isActive?: true
    isDefault?: true
    createdAt?: true
    updatedAt?: true
  }

  export type TicketSLAMaxAggregateInputType = {
    id?: true
    name?: true
    description?: true
    excludeHolidays?: true
    holidayCalendarId?: true
    isActive?: true
    isDefault?: true
    createdAt?: true
    updatedAt?: true
  }

  export type TicketSLACountAggregateInputType = {
    id?: true
    name?: true
    description?: true
    firstResponseTime?: true
    resolutionTime?: true
    businessHours?: true
    excludeHolidays?: true
    holidayCalendarId?: true
    escalationRules?: true
    isActive?: true
    isDefault?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type TicketSLAAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketSLA to aggregate.
     */
    where?: TicketSLAWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketSLAS to fetch.
     */
    orderBy?: TicketSLAOrderByWithRelationInput | TicketSLAOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: TicketSLAWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketSLAS 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` TicketSLAS.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned TicketSLAS
    **/
    _count?: true | TicketSLACountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: TicketSLAMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: TicketSLAMaxAggregateInputType
  }

  export type GetTicketSLAAggregateType<T extends TicketSLAAggregateArgs> = {
        [P in keyof T & keyof AggregateTicketSLA]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateTicketSLA[P]>
      : GetScalarType<T[P], AggregateTicketSLA[P]>
  }




  export type TicketSLAGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TicketSLAWhereInput
    orderBy?: TicketSLAOrderByWithAggregationInput | TicketSLAOrderByWithAggregationInput[]
    by: TicketSLAScalarFieldEnum[] | TicketSLAScalarFieldEnum
    having?: TicketSLAScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: TicketSLACountAggregateInputType | true
    _min?: TicketSLAMinAggregateInputType
    _max?: TicketSLAMaxAggregateInputType
  }

  export type TicketSLAGroupByOutputType = {
    id: string
    name: string
    description: string | null
    firstResponseTime: JsonValue
    resolutionTime: JsonValue
    businessHours: JsonValue
    excludeHolidays: boolean
    holidayCalendarId: string | null
    escalationRules: JsonValue | null
    isActive: boolean
    isDefault: boolean
    createdAt: Date
    updatedAt: Date
    _count: TicketSLACountAggregateOutputType | null
    _min: TicketSLAMinAggregateOutputType | null
    _max: TicketSLAMaxAggregateOutputType | null
  }

  type GetTicketSLAGroupByPayload<T extends TicketSLAGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<TicketSLAGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof TicketSLAGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], TicketSLAGroupByOutputType[P]>
            : GetScalarType<T[P], TicketSLAGroupByOutputType[P]>
        }
      >
    >


  export type TicketSLASelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    firstResponseTime?: boolean
    resolutionTime?: boolean
    businessHours?: boolean
    excludeHolidays?: boolean
    holidayCalendarId?: boolean
    escalationRules?: boolean
    isActive?: boolean
    isDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    categories?: boolean | TicketSLA$categoriesArgs<ExtArgs>
    tickets?: boolean | TicketSLA$ticketsArgs<ExtArgs>
    _count?: boolean | TicketSLACountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["ticketSLA"]>

  export type TicketSLASelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    firstResponseTime?: boolean
    resolutionTime?: boolean
    businessHours?: boolean
    excludeHolidays?: boolean
    holidayCalendarId?: boolean
    escalationRules?: boolean
    isActive?: boolean
    isDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["ticketSLA"]>

  export type TicketSLASelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    description?: boolean
    firstResponseTime?: boolean
    resolutionTime?: boolean
    businessHours?: boolean
    excludeHolidays?: boolean
    holidayCalendarId?: boolean
    escalationRules?: boolean
    isActive?: boolean
    isDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["ticketSLA"]>

  export type TicketSLASelectScalar = {
    id?: boolean
    name?: boolean
    description?: boolean
    firstResponseTime?: boolean
    resolutionTime?: boolean
    businessHours?: boolean
    excludeHolidays?: boolean
    holidayCalendarId?: boolean
    escalationRules?: boolean
    isActive?: boolean
    isDefault?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type TicketSLAOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "description" | "firstResponseTime" | "resolutionTime" | "businessHours" | "excludeHolidays" | "holidayCalendarId" | "escalationRules" | "isActive" | "isDefault" | "createdAt" | "updatedAt", ExtArgs["result"]["ticketSLA"]>
  export type TicketSLAInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    categories?: boolean | TicketSLA$categoriesArgs<ExtArgs>
    tickets?: boolean | TicketSLA$ticketsArgs<ExtArgs>
    _count?: boolean | TicketSLACountOutputTypeDefaultArgs<ExtArgs>
  }
  export type TicketSLAIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type TicketSLAIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $TicketSLAPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "TicketSLA"
    objects: {
      categories: Prisma.$TicketCategoryPayload<ExtArgs>[]
      tickets: Prisma.$TicketPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      description: string | null
      firstResponseTime: Prisma.JsonValue
      resolutionTime: Prisma.JsonValue
      businessHours: Prisma.JsonValue
      excludeHolidays: boolean
      holidayCalendarId: string | null
      escalationRules: Prisma.JsonValue | null
      isActive: boolean
      isDefault: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["ticketSLA"]>
    composites: {}
  }

  type TicketSLAGetPayload<S extends boolean | null | undefined | TicketSLADefaultArgs> = $Result.GetResult<Prisma.$TicketSLAPayload, S>

  type TicketSLACountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<TicketSLAFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: TicketSLACountAggregateInputType | true
    }

  export interface TicketSLADelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['TicketSLA'], meta: { name: 'TicketSLA' } }
    /**
     * Find zero or one TicketSLA that matches the filter.
     * @param {TicketSLAFindUniqueArgs} args - Arguments to find a TicketSLA
     * @example
     * // Get one TicketSLA
     * const ticketSLA = await prisma.ticketSLA.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends TicketSLAFindUniqueArgs>(args: SelectSubset<T, TicketSLAFindUniqueArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one TicketSLA that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {TicketSLAFindUniqueOrThrowArgs} args - Arguments to find a TicketSLA
     * @example
     * // Get one TicketSLA
     * const ticketSLA = await prisma.ticketSLA.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends TicketSLAFindUniqueOrThrowArgs>(args: SelectSubset<T, TicketSLAFindUniqueOrThrowArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketSLA 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 {TicketSLAFindFirstArgs} args - Arguments to find a TicketSLA
     * @example
     * // Get one TicketSLA
     * const ticketSLA = await prisma.ticketSLA.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends TicketSLAFindFirstArgs>(args?: SelectSubset<T, TicketSLAFindFirstArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TicketSLA 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 {TicketSLAFindFirstOrThrowArgs} args - Arguments to find a TicketSLA
     * @example
     * // Get one TicketSLA
     * const ticketSLA = await prisma.ticketSLA.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends TicketSLAFindFirstOrThrowArgs>(args?: SelectSubset<T, TicketSLAFindFirstOrThrowArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more TicketSLAS 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 {TicketSLAFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all TicketSLAS
     * const ticketSLAS = await prisma.ticketSLA.findMany()
     * 
     * // Get first 10 TicketSLAS
     * const ticketSLAS = await prisma.ticketSLA.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const ticketSLAWithIdOnly = await prisma.ticketSLA.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends TicketSLAFindManyArgs>(args?: SelectSubset<T, TicketSLAFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a TicketSLA.
     * @param {TicketSLACreateArgs} args - Arguments to create a TicketSLA.
     * @example
     * // Create one TicketSLA
     * const TicketSLA = await prisma.ticketSLA.create({
     *   data: {
     *     // ... data to create a TicketSLA
     *   }
     * })
     * 
     */
    create<T extends TicketSLACreateArgs>(args: SelectSubset<T, TicketSLACreateArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many TicketSLAS.
     * @param {TicketSLACreateManyArgs} args - Arguments to create many TicketSLAS.
     * @example
     * // Create many TicketSLAS
     * const ticketSLA = await prisma.ticketSLA.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends TicketSLACreateManyArgs>(args?: SelectSubset<T, TicketSLACreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many TicketSLAS and returns the data saved in the database.
     * @param {TicketSLACreateManyAndReturnArgs} args - Arguments to create many TicketSLAS.
     * @example
     * // Create many TicketSLAS
     * const ticketSLA = await prisma.ticketSLA.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many TicketSLAS and only return the `id`
     * const ticketSLAWithIdOnly = await prisma.ticketSLA.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 TicketSLACreateManyAndReturnArgs>(args?: SelectSubset<T, TicketSLACreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a TicketSLA.
     * @param {TicketSLADeleteArgs} args - Arguments to delete one TicketSLA.
     * @example
     * // Delete one TicketSLA
     * const TicketSLA = await prisma.ticketSLA.delete({
     *   where: {
     *     // ... filter to delete one TicketSLA
     *   }
     * })
     * 
     */
    delete<T extends TicketSLADeleteArgs>(args: SelectSubset<T, TicketSLADeleteArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one TicketSLA.
     * @param {TicketSLAUpdateArgs} args - Arguments to update one TicketSLA.
     * @example
     * // Update one TicketSLA
     * const ticketSLA = await prisma.ticketSLA.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends TicketSLAUpdateArgs>(args: SelectSubset<T, TicketSLAUpdateArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more TicketSLAS.
     * @param {TicketSLADeleteManyArgs} args - Arguments to filter TicketSLAS to delete.
     * @example
     * // Delete a few TicketSLAS
     * const { count } = await prisma.ticketSLA.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends TicketSLADeleteManyArgs>(args?: SelectSubset<T, TicketSLADeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketSLAS.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketSLAUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many TicketSLAS
     * const ticketSLA = await prisma.ticketSLA.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends TicketSLAUpdateManyArgs>(args: SelectSubset<T, TicketSLAUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TicketSLAS and returns the data updated in the database.
     * @param {TicketSLAUpdateManyAndReturnArgs} args - Arguments to update many TicketSLAS.
     * @example
     * // Update many TicketSLAS
     * const ticketSLA = await prisma.ticketSLA.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more TicketSLAS and only return the `id`
     * const ticketSLAWithIdOnly = await prisma.ticketSLA.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 TicketSLAUpdateManyAndReturnArgs>(args: SelectSubset<T, TicketSLAUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one TicketSLA.
     * @param {TicketSLAUpsertArgs} args - Arguments to update or create a TicketSLA.
     * @example
     * // Update or create a TicketSLA
     * const ticketSLA = await prisma.ticketSLA.upsert({
     *   create: {
     *     // ... data to create a TicketSLA
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the TicketSLA we want to update
     *   }
     * })
     */
    upsert<T extends TicketSLAUpsertArgs>(args: SelectSubset<T, TicketSLAUpsertArgs<ExtArgs>>): Prisma__TicketSLAClient<$Result.GetResult<Prisma.$TicketSLAPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of TicketSLAS.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketSLACountArgs} args - Arguments to filter TicketSLAS to count.
     * @example
     * // Count the number of TicketSLAS
     * const count = await prisma.ticketSLA.count({
     *   where: {
     *     // ... the filter for the TicketSLAS we want to count
     *   }
     * })
    **/
    count<T extends TicketSLACountArgs>(
      args?: Subset<T, TicketSLACountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], TicketSLACountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a TicketSLA.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketSLAAggregateArgs} 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 TicketSLAAggregateArgs>(args: Subset<T, TicketSLAAggregateArgs>): Prisma.PrismaPromise<GetTicketSLAAggregateType<T>>

    /**
     * Group by TicketSLA.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TicketSLAGroupByArgs} 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 TicketSLAGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: TicketSLAGroupByArgs['orderBy'] }
        : { orderBy?: TicketSLAGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, TicketSLAGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTicketSLAGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the TicketSLA model
   */
  readonly fields: TicketSLAFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for TicketSLA.
   * 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__TicketSLAClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    categories<T extends TicketSLA$categoriesArgs<ExtArgs> = {}>(args?: Subset<T, TicketSLA$categoriesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    tickets<T extends TicketSLA$ticketsArgs<ExtArgs> = {}>(args?: Subset<T, TicketSLA$ticketsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the TicketSLA model
   */
  interface TicketSLAFieldRefs {
    readonly id: FieldRef<"TicketSLA", 'String'>
    readonly name: FieldRef<"TicketSLA", 'String'>
    readonly description: FieldRef<"TicketSLA", 'String'>
    readonly firstResponseTime: FieldRef<"TicketSLA", 'Json'>
    readonly resolutionTime: FieldRef<"TicketSLA", 'Json'>
    readonly businessHours: FieldRef<"TicketSLA", 'Json'>
    readonly excludeHolidays: FieldRef<"TicketSLA", 'Boolean'>
    readonly holidayCalendarId: FieldRef<"TicketSLA", 'String'>
    readonly escalationRules: FieldRef<"TicketSLA", 'Json'>
    readonly isActive: FieldRef<"TicketSLA", 'Boolean'>
    readonly isDefault: FieldRef<"TicketSLA", 'Boolean'>
    readonly createdAt: FieldRef<"TicketSLA", 'DateTime'>
    readonly updatedAt: FieldRef<"TicketSLA", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * TicketSLA findUnique
   */
  export type TicketSLAFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * Filter, which TicketSLA to fetch.
     */
    where: TicketSLAWhereUniqueInput
  }

  /**
   * TicketSLA findUniqueOrThrow
   */
  export type TicketSLAFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * Filter, which TicketSLA to fetch.
     */
    where: TicketSLAWhereUniqueInput
  }

  /**
   * TicketSLA findFirst
   */
  export type TicketSLAFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * Filter, which TicketSLA to fetch.
     */
    where?: TicketSLAWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketSLAS to fetch.
     */
    orderBy?: TicketSLAOrderByWithRelationInput | TicketSLAOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketSLAS.
     */
    cursor?: TicketSLAWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketSLAS 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` TicketSLAS.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketSLAS.
     */
    distinct?: TicketSLAScalarFieldEnum | TicketSLAScalarFieldEnum[]
  }

  /**
   * TicketSLA findFirstOrThrow
   */
  export type TicketSLAFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * Filter, which TicketSLA to fetch.
     */
    where?: TicketSLAWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketSLAS to fetch.
     */
    orderBy?: TicketSLAOrderByWithRelationInput | TicketSLAOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TicketSLAS.
     */
    cursor?: TicketSLAWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketSLAS 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` TicketSLAS.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TicketSLAS.
     */
    distinct?: TicketSLAScalarFieldEnum | TicketSLAScalarFieldEnum[]
  }

  /**
   * TicketSLA findMany
   */
  export type TicketSLAFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * Filter, which TicketSLAS to fetch.
     */
    where?: TicketSLAWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TicketSLAS to fetch.
     */
    orderBy?: TicketSLAOrderByWithRelationInput | TicketSLAOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing TicketSLAS.
     */
    cursor?: TicketSLAWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TicketSLAS 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` TicketSLAS.
     */
    skip?: number
    distinct?: TicketSLAScalarFieldEnum | TicketSLAScalarFieldEnum[]
  }

  /**
   * TicketSLA create
   */
  export type TicketSLACreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * The data needed to create a TicketSLA.
     */
    data: XOR<TicketSLACreateInput, TicketSLAUncheckedCreateInput>
  }

  /**
   * TicketSLA createMany
   */
  export type TicketSLACreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many TicketSLAS.
     */
    data: TicketSLACreateManyInput | TicketSLACreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * TicketSLA createManyAndReturn
   */
  export type TicketSLACreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * The data used to create many TicketSLAS.
     */
    data: TicketSLACreateManyInput | TicketSLACreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * TicketSLA update
   */
  export type TicketSLAUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * The data needed to update a TicketSLA.
     */
    data: XOR<TicketSLAUpdateInput, TicketSLAUncheckedUpdateInput>
    /**
     * Choose, which TicketSLA to update.
     */
    where: TicketSLAWhereUniqueInput
  }

  /**
   * TicketSLA updateMany
   */
  export type TicketSLAUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update TicketSLAS.
     */
    data: XOR<TicketSLAUpdateManyMutationInput, TicketSLAUncheckedUpdateManyInput>
    /**
     * Filter which TicketSLAS to update
     */
    where?: TicketSLAWhereInput
    /**
     * Limit how many TicketSLAS to update.
     */
    limit?: number
  }

  /**
   * TicketSLA updateManyAndReturn
   */
  export type TicketSLAUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * The data used to update TicketSLAS.
     */
    data: XOR<TicketSLAUpdateManyMutationInput, TicketSLAUncheckedUpdateManyInput>
    /**
     * Filter which TicketSLAS to update
     */
    where?: TicketSLAWhereInput
    /**
     * Limit how many TicketSLAS to update.
     */
    limit?: number
  }

  /**
   * TicketSLA upsert
   */
  export type TicketSLAUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * The filter to search for the TicketSLA to update in case it exists.
     */
    where: TicketSLAWhereUniqueInput
    /**
     * In case the TicketSLA found by the `where` argument doesn't exist, create a new TicketSLA with this data.
     */
    create: XOR<TicketSLACreateInput, TicketSLAUncheckedCreateInput>
    /**
     * In case the TicketSLA was found with the provided `where` argument, update it with this data.
     */
    update: XOR<TicketSLAUpdateInput, TicketSLAUncheckedUpdateInput>
  }

  /**
   * TicketSLA delete
   */
  export type TicketSLADeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
    /**
     * Filter which TicketSLA to delete.
     */
    where: TicketSLAWhereUniqueInput
  }

  /**
   * TicketSLA deleteMany
   */
  export type TicketSLADeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TicketSLAS to delete
     */
    where?: TicketSLAWhereInput
    /**
     * Limit how many TicketSLAS to delete.
     */
    limit?: number
  }

  /**
   * TicketSLA.categories
   */
  export type TicketSLA$categoriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    where?: TicketCategoryWhereInput
    orderBy?: TicketCategoryOrderByWithRelationInput | TicketCategoryOrderByWithRelationInput[]
    cursor?: TicketCategoryWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketCategoryScalarFieldEnum | TicketCategoryScalarFieldEnum[]
  }

  /**
   * TicketSLA.tickets
   */
  export type TicketSLA$ticketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    where?: TicketWhereInput
    orderBy?: TicketOrderByWithRelationInput | TicketOrderByWithRelationInput[]
    cursor?: TicketWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketScalarFieldEnum | TicketScalarFieldEnum[]
  }

  /**
   * TicketSLA without action
   */
  export type TicketSLADefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketSLA
     */
    select?: TicketSLASelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketSLA
     */
    omit?: TicketSLAOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketSLAInclude<ExtArgs> | null
  }


  /**
   * Model AssignmentGroup
   */

  export type AggregateAssignmentGroup = {
    _count: AssignmentGroupCountAggregateOutputType | null
    _min: AssignmentGroupMinAggregateOutputType | null
    _max: AssignmentGroupMaxAggregateOutputType | null
  }

  export type AssignmentGroupMinAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    managerId: string | null
    assignmentStrategy: $Enums.AssignmentStrategy | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AssignmentGroupMaxAggregateOutputType = {
    id: string | null
    name: string | null
    code: string | null
    description: string | null
    managerId: string | null
    assignmentStrategy: $Enums.AssignmentStrategy | null
    isActive: boolean | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type AssignmentGroupCountAggregateOutputType = {
    id: number
    name: number
    code: number
    description: number
    memberIds: number
    managerId: number
    skills: number
    assignmentStrategy: number
    isActive: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type AssignmentGroupMinAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    managerId?: true
    assignmentStrategy?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AssignmentGroupMaxAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    managerId?: true
    assignmentStrategy?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
  }

  export type AssignmentGroupCountAggregateInputType = {
    id?: true
    name?: true
    code?: true
    description?: true
    memberIds?: true
    managerId?: true
    skills?: true
    assignmentStrategy?: true
    isActive?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type AssignmentGroupAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AssignmentGroup to aggregate.
     */
    where?: AssignmentGroupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AssignmentGroups to fetch.
     */
    orderBy?: AssignmentGroupOrderByWithRelationInput | AssignmentGroupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AssignmentGroupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AssignmentGroups 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` AssignmentGroups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AssignmentGroups
    **/
    _count?: true | AssignmentGroupCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AssignmentGroupMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AssignmentGroupMaxAggregateInputType
  }

  export type GetAssignmentGroupAggregateType<T extends AssignmentGroupAggregateArgs> = {
        [P in keyof T & keyof AggregateAssignmentGroup]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAssignmentGroup[P]>
      : GetScalarType<T[P], AggregateAssignmentGroup[P]>
  }




  export type AssignmentGroupGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AssignmentGroupWhereInput
    orderBy?: AssignmentGroupOrderByWithAggregationInput | AssignmentGroupOrderByWithAggregationInput[]
    by: AssignmentGroupScalarFieldEnum[] | AssignmentGroupScalarFieldEnum
    having?: AssignmentGroupScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AssignmentGroupCountAggregateInputType | true
    _min?: AssignmentGroupMinAggregateInputType
    _max?: AssignmentGroupMaxAggregateInputType
  }

  export type AssignmentGroupGroupByOutputType = {
    id: string
    name: string
    code: string
    description: string | null
    memberIds: string[]
    managerId: string | null
    skills: string[]
    assignmentStrategy: $Enums.AssignmentStrategy
    isActive: boolean
    createdAt: Date
    updatedAt: Date
    _count: AssignmentGroupCountAggregateOutputType | null
    _min: AssignmentGroupMinAggregateOutputType | null
    _max: AssignmentGroupMaxAggregateOutputType | null
  }

  type GetAssignmentGroupGroupByPayload<T extends AssignmentGroupGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AssignmentGroupGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AssignmentGroupGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AssignmentGroupGroupByOutputType[P]>
            : GetScalarType<T[P], AssignmentGroupGroupByOutputType[P]>
        }
      >
    >


  export type AssignmentGroupSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    memberIds?: boolean
    managerId?: boolean
    skills?: boolean
    assignmentStrategy?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    categories?: boolean | AssignmentGroup$categoriesArgs<ExtArgs>
    tickets?: boolean | AssignmentGroup$ticketsArgs<ExtArgs>
    _count?: boolean | AssignmentGroupCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["assignmentGroup"]>

  export type AssignmentGroupSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    memberIds?: boolean
    managerId?: boolean
    skills?: boolean
    assignmentStrategy?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["assignmentGroup"]>

  export type AssignmentGroupSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    memberIds?: boolean
    managerId?: boolean
    skills?: boolean
    assignmentStrategy?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }, ExtArgs["result"]["assignmentGroup"]>

  export type AssignmentGroupSelectScalar = {
    id?: boolean
    name?: boolean
    code?: boolean
    description?: boolean
    memberIds?: boolean
    managerId?: boolean
    skills?: boolean
    assignmentStrategy?: boolean
    isActive?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type AssignmentGroupOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "name" | "code" | "description" | "memberIds" | "managerId" | "skills" | "assignmentStrategy" | "isActive" | "createdAt" | "updatedAt", ExtArgs["result"]["assignmentGroup"]>
  export type AssignmentGroupInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    categories?: boolean | AssignmentGroup$categoriesArgs<ExtArgs>
    tickets?: boolean | AssignmentGroup$ticketsArgs<ExtArgs>
    _count?: boolean | AssignmentGroupCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AssignmentGroupIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type AssignmentGroupIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $AssignmentGroupPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AssignmentGroup"
    objects: {
      categories: Prisma.$TicketCategoryPayload<ExtArgs>[]
      tickets: Prisma.$TicketPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      name: string
      code: string
      description: string | null
      memberIds: string[]
      managerId: string | null
      skills: string[]
      assignmentStrategy: $Enums.AssignmentStrategy
      isActive: boolean
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["assignmentGroup"]>
    composites: {}
  }

  type AssignmentGroupGetPayload<S extends boolean | null | undefined | AssignmentGroupDefaultArgs> = $Result.GetResult<Prisma.$AssignmentGroupPayload, S>

  type AssignmentGroupCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AssignmentGroupFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AssignmentGroupCountAggregateInputType | true
    }

  export interface AssignmentGroupDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AssignmentGroup'], meta: { name: 'AssignmentGroup' } }
    /**
     * Find zero or one AssignmentGroup that matches the filter.
     * @param {AssignmentGroupFindUniqueArgs} args - Arguments to find a AssignmentGroup
     * @example
     * // Get one AssignmentGroup
     * const assignmentGroup = await prisma.assignmentGroup.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AssignmentGroupFindUniqueArgs>(args: SelectSubset<T, AssignmentGroupFindUniqueArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AssignmentGroup that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AssignmentGroupFindUniqueOrThrowArgs} args - Arguments to find a AssignmentGroup
     * @example
     * // Get one AssignmentGroup
     * const assignmentGroup = await prisma.assignmentGroup.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AssignmentGroupFindUniqueOrThrowArgs>(args: SelectSubset<T, AssignmentGroupFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AssignmentGroup 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 {AssignmentGroupFindFirstArgs} args - Arguments to find a AssignmentGroup
     * @example
     * // Get one AssignmentGroup
     * const assignmentGroup = await prisma.assignmentGroup.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AssignmentGroupFindFirstArgs>(args?: SelectSubset<T, AssignmentGroupFindFirstArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AssignmentGroup 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 {AssignmentGroupFindFirstOrThrowArgs} args - Arguments to find a AssignmentGroup
     * @example
     * // Get one AssignmentGroup
     * const assignmentGroup = await prisma.assignmentGroup.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AssignmentGroupFindFirstOrThrowArgs>(args?: SelectSubset<T, AssignmentGroupFindFirstOrThrowArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AssignmentGroups 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 {AssignmentGroupFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AssignmentGroups
     * const assignmentGroups = await prisma.assignmentGroup.findMany()
     * 
     * // Get first 10 AssignmentGroups
     * const assignmentGroups = await prisma.assignmentGroup.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const assignmentGroupWithIdOnly = await prisma.assignmentGroup.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AssignmentGroupFindManyArgs>(args?: SelectSubset<T, AssignmentGroupFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AssignmentGroup.
     * @param {AssignmentGroupCreateArgs} args - Arguments to create a AssignmentGroup.
     * @example
     * // Create one AssignmentGroup
     * const AssignmentGroup = await prisma.assignmentGroup.create({
     *   data: {
     *     // ... data to create a AssignmentGroup
     *   }
     * })
     * 
     */
    create<T extends AssignmentGroupCreateArgs>(args: SelectSubset<T, AssignmentGroupCreateArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AssignmentGroups.
     * @param {AssignmentGroupCreateManyArgs} args - Arguments to create many AssignmentGroups.
     * @example
     * // Create many AssignmentGroups
     * const assignmentGroup = await prisma.assignmentGroup.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AssignmentGroupCreateManyArgs>(args?: SelectSubset<T, AssignmentGroupCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AssignmentGroups and returns the data saved in the database.
     * @param {AssignmentGroupCreateManyAndReturnArgs} args - Arguments to create many AssignmentGroups.
     * @example
     * // Create many AssignmentGroups
     * const assignmentGroup = await prisma.assignmentGroup.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AssignmentGroups and only return the `id`
     * const assignmentGroupWithIdOnly = await prisma.assignmentGroup.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 AssignmentGroupCreateManyAndReturnArgs>(args?: SelectSubset<T, AssignmentGroupCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AssignmentGroup.
     * @param {AssignmentGroupDeleteArgs} args - Arguments to delete one AssignmentGroup.
     * @example
     * // Delete one AssignmentGroup
     * const AssignmentGroup = await prisma.assignmentGroup.delete({
     *   where: {
     *     // ... filter to delete one AssignmentGroup
     *   }
     * })
     * 
     */
    delete<T extends AssignmentGroupDeleteArgs>(args: SelectSubset<T, AssignmentGroupDeleteArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AssignmentGroup.
     * @param {AssignmentGroupUpdateArgs} args - Arguments to update one AssignmentGroup.
     * @example
     * // Update one AssignmentGroup
     * const assignmentGroup = await prisma.assignmentGroup.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AssignmentGroupUpdateArgs>(args: SelectSubset<T, AssignmentGroupUpdateArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AssignmentGroups.
     * @param {AssignmentGroupDeleteManyArgs} args - Arguments to filter AssignmentGroups to delete.
     * @example
     * // Delete a few AssignmentGroups
     * const { count } = await prisma.assignmentGroup.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AssignmentGroupDeleteManyArgs>(args?: SelectSubset<T, AssignmentGroupDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AssignmentGroups.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AssignmentGroupUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AssignmentGroups
     * const assignmentGroup = await prisma.assignmentGroup.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AssignmentGroupUpdateManyArgs>(args: SelectSubset<T, AssignmentGroupUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AssignmentGroups and returns the data updated in the database.
     * @param {AssignmentGroupUpdateManyAndReturnArgs} args - Arguments to update many AssignmentGroups.
     * @example
     * // Update many AssignmentGroups
     * const assignmentGroup = await prisma.assignmentGroup.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AssignmentGroups and only return the `id`
     * const assignmentGroupWithIdOnly = await prisma.assignmentGroup.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 AssignmentGroupUpdateManyAndReturnArgs>(args: SelectSubset<T, AssignmentGroupUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AssignmentGroup.
     * @param {AssignmentGroupUpsertArgs} args - Arguments to update or create a AssignmentGroup.
     * @example
     * // Update or create a AssignmentGroup
     * const assignmentGroup = await prisma.assignmentGroup.upsert({
     *   create: {
     *     // ... data to create a AssignmentGroup
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AssignmentGroup we want to update
     *   }
     * })
     */
    upsert<T extends AssignmentGroupUpsertArgs>(args: SelectSubset<T, AssignmentGroupUpsertArgs<ExtArgs>>): Prisma__AssignmentGroupClient<$Result.GetResult<Prisma.$AssignmentGroupPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AssignmentGroups.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AssignmentGroupCountArgs} args - Arguments to filter AssignmentGroups to count.
     * @example
     * // Count the number of AssignmentGroups
     * const count = await prisma.assignmentGroup.count({
     *   where: {
     *     // ... the filter for the AssignmentGroups we want to count
     *   }
     * })
    **/
    count<T extends AssignmentGroupCountArgs>(
      args?: Subset<T, AssignmentGroupCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AssignmentGroupCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AssignmentGroup.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AssignmentGroupAggregateArgs} 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 AssignmentGroupAggregateArgs>(args: Subset<T, AssignmentGroupAggregateArgs>): Prisma.PrismaPromise<GetAssignmentGroupAggregateType<T>>

    /**
     * Group by AssignmentGroup.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AssignmentGroupGroupByArgs} 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 AssignmentGroupGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AssignmentGroupGroupByArgs['orderBy'] }
        : { orderBy?: AssignmentGroupGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AssignmentGroupGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAssignmentGroupGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AssignmentGroup model
   */
  readonly fields: AssignmentGroupFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AssignmentGroup.
   * 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__AssignmentGroupClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    categories<T extends AssignmentGroup$categoriesArgs<ExtArgs> = {}>(args?: Subset<T, AssignmentGroup$categoriesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketCategoryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    tickets<T extends AssignmentGroup$ticketsArgs<ExtArgs> = {}>(args?: Subset<T, AssignmentGroup$ticketsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AssignmentGroup model
   */
  interface AssignmentGroupFieldRefs {
    readonly id: FieldRef<"AssignmentGroup", 'String'>
    readonly name: FieldRef<"AssignmentGroup", 'String'>
    readonly code: FieldRef<"AssignmentGroup", 'String'>
    readonly description: FieldRef<"AssignmentGroup", 'String'>
    readonly memberIds: FieldRef<"AssignmentGroup", 'String[]'>
    readonly managerId: FieldRef<"AssignmentGroup", 'String'>
    readonly skills: FieldRef<"AssignmentGroup", 'String[]'>
    readonly assignmentStrategy: FieldRef<"AssignmentGroup", 'AssignmentStrategy'>
    readonly isActive: FieldRef<"AssignmentGroup", 'Boolean'>
    readonly createdAt: FieldRef<"AssignmentGroup", 'DateTime'>
    readonly updatedAt: FieldRef<"AssignmentGroup", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AssignmentGroup findUnique
   */
  export type AssignmentGroupFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * Filter, which AssignmentGroup to fetch.
     */
    where: AssignmentGroupWhereUniqueInput
  }

  /**
   * AssignmentGroup findUniqueOrThrow
   */
  export type AssignmentGroupFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * Filter, which AssignmentGroup to fetch.
     */
    where: AssignmentGroupWhereUniqueInput
  }

  /**
   * AssignmentGroup findFirst
   */
  export type AssignmentGroupFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * Filter, which AssignmentGroup to fetch.
     */
    where?: AssignmentGroupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AssignmentGroups to fetch.
     */
    orderBy?: AssignmentGroupOrderByWithRelationInput | AssignmentGroupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AssignmentGroups.
     */
    cursor?: AssignmentGroupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AssignmentGroups 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` AssignmentGroups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AssignmentGroups.
     */
    distinct?: AssignmentGroupScalarFieldEnum | AssignmentGroupScalarFieldEnum[]
  }

  /**
   * AssignmentGroup findFirstOrThrow
   */
  export type AssignmentGroupFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * Filter, which AssignmentGroup to fetch.
     */
    where?: AssignmentGroupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AssignmentGroups to fetch.
     */
    orderBy?: AssignmentGroupOrderByWithRelationInput | AssignmentGroupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AssignmentGroups.
     */
    cursor?: AssignmentGroupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AssignmentGroups 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` AssignmentGroups.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AssignmentGroups.
     */
    distinct?: AssignmentGroupScalarFieldEnum | AssignmentGroupScalarFieldEnum[]
  }

  /**
   * AssignmentGroup findMany
   */
  export type AssignmentGroupFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * Filter, which AssignmentGroups to fetch.
     */
    where?: AssignmentGroupWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AssignmentGroups to fetch.
     */
    orderBy?: AssignmentGroupOrderByWithRelationInput | AssignmentGroupOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AssignmentGroups.
     */
    cursor?: AssignmentGroupWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AssignmentGroups 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` AssignmentGroups.
     */
    skip?: number
    distinct?: AssignmentGroupScalarFieldEnum | AssignmentGroupScalarFieldEnum[]
  }

  /**
   * AssignmentGroup create
   */
  export type AssignmentGroupCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * The data needed to create a AssignmentGroup.
     */
    data: XOR<AssignmentGroupCreateInput, AssignmentGroupUncheckedCreateInput>
  }

  /**
   * AssignmentGroup createMany
   */
  export type AssignmentGroupCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AssignmentGroups.
     */
    data: AssignmentGroupCreateManyInput | AssignmentGroupCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AssignmentGroup createManyAndReturn
   */
  export type AssignmentGroupCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * The data used to create many AssignmentGroups.
     */
    data: AssignmentGroupCreateManyInput | AssignmentGroupCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AssignmentGroup update
   */
  export type AssignmentGroupUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * The data needed to update a AssignmentGroup.
     */
    data: XOR<AssignmentGroupUpdateInput, AssignmentGroupUncheckedUpdateInput>
    /**
     * Choose, which AssignmentGroup to update.
     */
    where: AssignmentGroupWhereUniqueInput
  }

  /**
   * AssignmentGroup updateMany
   */
  export type AssignmentGroupUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AssignmentGroups.
     */
    data: XOR<AssignmentGroupUpdateManyMutationInput, AssignmentGroupUncheckedUpdateManyInput>
    /**
     * Filter which AssignmentGroups to update
     */
    where?: AssignmentGroupWhereInput
    /**
     * Limit how many AssignmentGroups to update.
     */
    limit?: number
  }

  /**
   * AssignmentGroup updateManyAndReturn
   */
  export type AssignmentGroupUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * The data used to update AssignmentGroups.
     */
    data: XOR<AssignmentGroupUpdateManyMutationInput, AssignmentGroupUncheckedUpdateManyInput>
    /**
     * Filter which AssignmentGroups to update
     */
    where?: AssignmentGroupWhereInput
    /**
     * Limit how many AssignmentGroups to update.
     */
    limit?: number
  }

  /**
   * AssignmentGroup upsert
   */
  export type AssignmentGroupUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * The filter to search for the AssignmentGroup to update in case it exists.
     */
    where: AssignmentGroupWhereUniqueInput
    /**
     * In case the AssignmentGroup found by the `where` argument doesn't exist, create a new AssignmentGroup with this data.
     */
    create: XOR<AssignmentGroupCreateInput, AssignmentGroupUncheckedCreateInput>
    /**
     * In case the AssignmentGroup was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AssignmentGroupUpdateInput, AssignmentGroupUncheckedUpdateInput>
  }

  /**
   * AssignmentGroup delete
   */
  export type AssignmentGroupDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
    /**
     * Filter which AssignmentGroup to delete.
     */
    where: AssignmentGroupWhereUniqueInput
  }

  /**
   * AssignmentGroup deleteMany
   */
  export type AssignmentGroupDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AssignmentGroups to delete
     */
    where?: AssignmentGroupWhereInput
    /**
     * Limit how many AssignmentGroups to delete.
     */
    limit?: number
  }

  /**
   * AssignmentGroup.categories
   */
  export type AssignmentGroup$categoriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TicketCategory
     */
    select?: TicketCategorySelect<ExtArgs> | null
    /**
     * Omit specific fields from the TicketCategory
     */
    omit?: TicketCategoryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketCategoryInclude<ExtArgs> | null
    where?: TicketCategoryWhereInput
    orderBy?: TicketCategoryOrderByWithRelationInput | TicketCategoryOrderByWithRelationInput[]
    cursor?: TicketCategoryWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketCategoryScalarFieldEnum | TicketCategoryScalarFieldEnum[]
  }

  /**
   * AssignmentGroup.tickets
   */
  export type AssignmentGroup$ticketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Ticket
     */
    select?: TicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Ticket
     */
    omit?: TicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TicketInclude<ExtArgs> | null
    where?: TicketWhereInput
    orderBy?: TicketOrderByWithRelationInput | TicketOrderByWithRelationInput[]
    cursor?: TicketWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TicketScalarFieldEnum | TicketScalarFieldEnum[]
  }

  /**
   * AssignmentGroup without action
   */
  export type AssignmentGroupDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AssignmentGroup
     */
    select?: AssignmentGroupSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AssignmentGroup
     */
    omit?: AssignmentGroupOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AssignmentGroupInclude<ExtArgs> | null
  }


  /**
   * Model RobotModel
   */

  export type AggregateRobotModel = {
    _count: RobotModelCountAggregateOutputType | null
    _min: RobotModelMinAggregateOutputType | null
    _max: RobotModelMaxAggregateOutputType | null
  }

  export type RobotModelMinAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    brand: string | null
    description: string | null
    imageUrl: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotModelMaxAggregateOutputType = {
    id: string | null
    code: string | null
    name: string | null
    brand: string | null
    description: string | null
    imageUrl: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotModelCountAggregateOutputType = {
    id: number
    code: number
    name: number
    brand: number
    description: number
    imageUrl: number
    enabled: number
    metadata: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type RobotModelMinAggregateInputType = {
    id?: true
    code?: true
    name?: true
    brand?: true
    description?: true
    imageUrl?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotModelMaxAggregateInputType = {
    id?: true
    code?: true
    name?: true
    brand?: true
    description?: true
    imageUrl?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotModelCountAggregateInputType = {
    id?: true
    code?: true
    name?: true
    brand?: true
    description?: true
    imageUrl?: true
    enabled?: true
    metadata?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type RobotModelAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotModel to aggregate.
     */
    where?: RobotModelWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotModels to fetch.
     */
    orderBy?: RobotModelOrderByWithRelationInput | RobotModelOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RobotModelWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotModels 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` RobotModels.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RobotModels
    **/
    _count?: true | RobotModelCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RobotModelMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RobotModelMaxAggregateInputType
  }

  export type GetRobotModelAggregateType<T extends RobotModelAggregateArgs> = {
        [P in keyof T & keyof AggregateRobotModel]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRobotModel[P]>
      : GetScalarType<T[P], AggregateRobotModel[P]>
  }




  export type RobotModelGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotModelWhereInput
    orderBy?: RobotModelOrderByWithAggregationInput | RobotModelOrderByWithAggregationInput[]
    by: RobotModelScalarFieldEnum[] | RobotModelScalarFieldEnum
    having?: RobotModelScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RobotModelCountAggregateInputType | true
    _min?: RobotModelMinAggregateInputType
    _max?: RobotModelMaxAggregateInputType
  }

  export type RobotModelGroupByOutputType = {
    id: string
    code: string
    name: string
    brand: string | null
    description: string | null
    imageUrl: string | null
    enabled: boolean
    metadata: JsonValue
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: RobotModelCountAggregateOutputType | null
    _min: RobotModelMinAggregateOutputType | null
    _max: RobotModelMaxAggregateOutputType | null
  }

  type GetRobotModelGroupByPayload<T extends RobotModelGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RobotModelGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RobotModelGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RobotModelGroupByOutputType[P]>
            : GetScalarType<T[P], RobotModelGroupByOutputType[P]>
        }
      >
    >


  export type RobotModelSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    brand?: boolean
    description?: boolean
    imageUrl?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    skus?: boolean | RobotModel$skusArgs<ExtArgs>
    robotUnits?: boolean | RobotModel$robotUnitsArgs<ExtArgs>
    _count?: boolean | RobotModelCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotModel"]>

  export type RobotModelSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    brand?: boolean
    description?: boolean
    imageUrl?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["robotModel"]>

  export type RobotModelSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    code?: boolean
    name?: boolean
    brand?: boolean
    description?: boolean
    imageUrl?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["robotModel"]>

  export type RobotModelSelectScalar = {
    id?: boolean
    code?: boolean
    name?: boolean
    brand?: boolean
    description?: boolean
    imageUrl?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type RobotModelOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "code" | "name" | "brand" | "description" | "imageUrl" | "enabled" | "metadata" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["robotModel"]>
  export type RobotModelInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    skus?: boolean | RobotModel$skusArgs<ExtArgs>
    robotUnits?: boolean | RobotModel$robotUnitsArgs<ExtArgs>
    _count?: boolean | RobotModelCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type RobotModelIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type RobotModelIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $RobotModelPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RobotModel"
    objects: {
      skus: Prisma.$RobotSkuPayload<ExtArgs>[]
      robotUnits: Prisma.$RobotUnitPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      code: string
      name: string
      brand: string | null
      description: string | null
      imageUrl: string | null
      enabled: boolean
      /**
       * ⚠️ 仅未结构化扩展属性。业务字段必须独立列（原则 5）。
       */
      metadata: Prisma.JsonValue
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["robotModel"]>
    composites: {}
  }

  type RobotModelGetPayload<S extends boolean | null | undefined | RobotModelDefaultArgs> = $Result.GetResult<Prisma.$RobotModelPayload, S>

  type RobotModelCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RobotModelFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RobotModelCountAggregateInputType | true
    }

  export interface RobotModelDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RobotModel'], meta: { name: 'RobotModel' } }
    /**
     * Find zero or one RobotModel that matches the filter.
     * @param {RobotModelFindUniqueArgs} args - Arguments to find a RobotModel
     * @example
     * // Get one RobotModel
     * const robotModel = await prisma.robotModel.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RobotModelFindUniqueArgs>(args: SelectSubset<T, RobotModelFindUniqueArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RobotModel that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RobotModelFindUniqueOrThrowArgs} args - Arguments to find a RobotModel
     * @example
     * // Get one RobotModel
     * const robotModel = await prisma.robotModel.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RobotModelFindUniqueOrThrowArgs>(args: SelectSubset<T, RobotModelFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotModel 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 {RobotModelFindFirstArgs} args - Arguments to find a RobotModel
     * @example
     * // Get one RobotModel
     * const robotModel = await prisma.robotModel.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RobotModelFindFirstArgs>(args?: SelectSubset<T, RobotModelFindFirstArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotModel 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 {RobotModelFindFirstOrThrowArgs} args - Arguments to find a RobotModel
     * @example
     * // Get one RobotModel
     * const robotModel = await prisma.robotModel.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RobotModelFindFirstOrThrowArgs>(args?: SelectSubset<T, RobotModelFindFirstOrThrowArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RobotModels 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 {RobotModelFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RobotModels
     * const robotModels = await prisma.robotModel.findMany()
     * 
     * // Get first 10 RobotModels
     * const robotModels = await prisma.robotModel.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const robotModelWithIdOnly = await prisma.robotModel.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RobotModelFindManyArgs>(args?: SelectSubset<T, RobotModelFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RobotModel.
     * @param {RobotModelCreateArgs} args - Arguments to create a RobotModel.
     * @example
     * // Create one RobotModel
     * const RobotModel = await prisma.robotModel.create({
     *   data: {
     *     // ... data to create a RobotModel
     *   }
     * })
     * 
     */
    create<T extends RobotModelCreateArgs>(args: SelectSubset<T, RobotModelCreateArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RobotModels.
     * @param {RobotModelCreateManyArgs} args - Arguments to create many RobotModels.
     * @example
     * // Create many RobotModels
     * const robotModel = await prisma.robotModel.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RobotModelCreateManyArgs>(args?: SelectSubset<T, RobotModelCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RobotModels and returns the data saved in the database.
     * @param {RobotModelCreateManyAndReturnArgs} args - Arguments to create many RobotModels.
     * @example
     * // Create many RobotModels
     * const robotModel = await prisma.robotModel.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RobotModels and only return the `id`
     * const robotModelWithIdOnly = await prisma.robotModel.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 RobotModelCreateManyAndReturnArgs>(args?: SelectSubset<T, RobotModelCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RobotModel.
     * @param {RobotModelDeleteArgs} args - Arguments to delete one RobotModel.
     * @example
     * // Delete one RobotModel
     * const RobotModel = await prisma.robotModel.delete({
     *   where: {
     *     // ... filter to delete one RobotModel
     *   }
     * })
     * 
     */
    delete<T extends RobotModelDeleteArgs>(args: SelectSubset<T, RobotModelDeleteArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RobotModel.
     * @param {RobotModelUpdateArgs} args - Arguments to update one RobotModel.
     * @example
     * // Update one RobotModel
     * const robotModel = await prisma.robotModel.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RobotModelUpdateArgs>(args: SelectSubset<T, RobotModelUpdateArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RobotModels.
     * @param {RobotModelDeleteManyArgs} args - Arguments to filter RobotModels to delete.
     * @example
     * // Delete a few RobotModels
     * const { count } = await prisma.robotModel.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RobotModelDeleteManyArgs>(args?: SelectSubset<T, RobotModelDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotModels.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotModelUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RobotModels
     * const robotModel = await prisma.robotModel.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RobotModelUpdateManyArgs>(args: SelectSubset<T, RobotModelUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotModels and returns the data updated in the database.
     * @param {RobotModelUpdateManyAndReturnArgs} args - Arguments to update many RobotModels.
     * @example
     * // Update many RobotModels
     * const robotModel = await prisma.robotModel.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RobotModels and only return the `id`
     * const robotModelWithIdOnly = await prisma.robotModel.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 RobotModelUpdateManyAndReturnArgs>(args: SelectSubset<T, RobotModelUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RobotModel.
     * @param {RobotModelUpsertArgs} args - Arguments to update or create a RobotModel.
     * @example
     * // Update or create a RobotModel
     * const robotModel = await prisma.robotModel.upsert({
     *   create: {
     *     // ... data to create a RobotModel
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RobotModel we want to update
     *   }
     * })
     */
    upsert<T extends RobotModelUpsertArgs>(args: SelectSubset<T, RobotModelUpsertArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RobotModels.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotModelCountArgs} args - Arguments to filter RobotModels to count.
     * @example
     * // Count the number of RobotModels
     * const count = await prisma.robotModel.count({
     *   where: {
     *     // ... the filter for the RobotModels we want to count
     *   }
     * })
    **/
    count<T extends RobotModelCountArgs>(
      args?: Subset<T, RobotModelCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RobotModelCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RobotModel.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotModelAggregateArgs} 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 RobotModelAggregateArgs>(args: Subset<T, RobotModelAggregateArgs>): Prisma.PrismaPromise<GetRobotModelAggregateType<T>>

    /**
     * Group by RobotModel.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotModelGroupByArgs} 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 RobotModelGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RobotModelGroupByArgs['orderBy'] }
        : { orderBy?: RobotModelGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RobotModelGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRobotModelGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RobotModel model
   */
  readonly fields: RobotModelFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RobotModel.
   * 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__RobotModelClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    skus<T extends RobotModel$skusArgs<ExtArgs> = {}>(args?: Subset<T, RobotModel$skusArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    robotUnits<T extends RobotModel$robotUnitsArgs<ExtArgs> = {}>(args?: Subset<T, RobotModel$robotUnitsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RobotModel model
   */
  interface RobotModelFieldRefs {
    readonly id: FieldRef<"RobotModel", 'String'>
    readonly code: FieldRef<"RobotModel", 'String'>
    readonly name: FieldRef<"RobotModel", 'String'>
    readonly brand: FieldRef<"RobotModel", 'String'>
    readonly description: FieldRef<"RobotModel", 'String'>
    readonly imageUrl: FieldRef<"RobotModel", 'String'>
    readonly enabled: FieldRef<"RobotModel", 'Boolean'>
    readonly metadata: FieldRef<"RobotModel", 'Json'>
    readonly organizationId: FieldRef<"RobotModel", 'String'>
    readonly createdAt: FieldRef<"RobotModel", 'DateTime'>
    readonly updatedAt: FieldRef<"RobotModel", 'DateTime'>
    readonly createdById: FieldRef<"RobotModel", 'String'>
    readonly deletedAt: FieldRef<"RobotModel", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RobotModel findUnique
   */
  export type RobotModelFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * Filter, which RobotModel to fetch.
     */
    where: RobotModelWhereUniqueInput
  }

  /**
   * RobotModel findUniqueOrThrow
   */
  export type RobotModelFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * Filter, which RobotModel to fetch.
     */
    where: RobotModelWhereUniqueInput
  }

  /**
   * RobotModel findFirst
   */
  export type RobotModelFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * Filter, which RobotModel to fetch.
     */
    where?: RobotModelWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotModels to fetch.
     */
    orderBy?: RobotModelOrderByWithRelationInput | RobotModelOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotModels.
     */
    cursor?: RobotModelWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotModels 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` RobotModels.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotModels.
     */
    distinct?: RobotModelScalarFieldEnum | RobotModelScalarFieldEnum[]
  }

  /**
   * RobotModel findFirstOrThrow
   */
  export type RobotModelFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * Filter, which RobotModel to fetch.
     */
    where?: RobotModelWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotModels to fetch.
     */
    orderBy?: RobotModelOrderByWithRelationInput | RobotModelOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotModels.
     */
    cursor?: RobotModelWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotModels 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` RobotModels.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotModels.
     */
    distinct?: RobotModelScalarFieldEnum | RobotModelScalarFieldEnum[]
  }

  /**
   * RobotModel findMany
   */
  export type RobotModelFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * Filter, which RobotModels to fetch.
     */
    where?: RobotModelWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotModels to fetch.
     */
    orderBy?: RobotModelOrderByWithRelationInput | RobotModelOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RobotModels.
     */
    cursor?: RobotModelWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotModels 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` RobotModels.
     */
    skip?: number
    distinct?: RobotModelScalarFieldEnum | RobotModelScalarFieldEnum[]
  }

  /**
   * RobotModel create
   */
  export type RobotModelCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * The data needed to create a RobotModel.
     */
    data: XOR<RobotModelCreateInput, RobotModelUncheckedCreateInput>
  }

  /**
   * RobotModel createMany
   */
  export type RobotModelCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RobotModels.
     */
    data: RobotModelCreateManyInput | RobotModelCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotModel createManyAndReturn
   */
  export type RobotModelCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * The data used to create many RobotModels.
     */
    data: RobotModelCreateManyInput | RobotModelCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotModel update
   */
  export type RobotModelUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * The data needed to update a RobotModel.
     */
    data: XOR<RobotModelUpdateInput, RobotModelUncheckedUpdateInput>
    /**
     * Choose, which RobotModel to update.
     */
    where: RobotModelWhereUniqueInput
  }

  /**
   * RobotModel updateMany
   */
  export type RobotModelUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RobotModels.
     */
    data: XOR<RobotModelUpdateManyMutationInput, RobotModelUncheckedUpdateManyInput>
    /**
     * Filter which RobotModels to update
     */
    where?: RobotModelWhereInput
    /**
     * Limit how many RobotModels to update.
     */
    limit?: number
  }

  /**
   * RobotModel updateManyAndReturn
   */
  export type RobotModelUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * The data used to update RobotModels.
     */
    data: XOR<RobotModelUpdateManyMutationInput, RobotModelUncheckedUpdateManyInput>
    /**
     * Filter which RobotModels to update
     */
    where?: RobotModelWhereInput
    /**
     * Limit how many RobotModels to update.
     */
    limit?: number
  }

  /**
   * RobotModel upsert
   */
  export type RobotModelUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * The filter to search for the RobotModel to update in case it exists.
     */
    where: RobotModelWhereUniqueInput
    /**
     * In case the RobotModel found by the `where` argument doesn't exist, create a new RobotModel with this data.
     */
    create: XOR<RobotModelCreateInput, RobotModelUncheckedCreateInput>
    /**
     * In case the RobotModel was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RobotModelUpdateInput, RobotModelUncheckedUpdateInput>
  }

  /**
   * RobotModel delete
   */
  export type RobotModelDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
    /**
     * Filter which RobotModel to delete.
     */
    where: RobotModelWhereUniqueInput
  }

  /**
   * RobotModel deleteMany
   */
  export type RobotModelDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotModels to delete
     */
    where?: RobotModelWhereInput
    /**
     * Limit how many RobotModels to delete.
     */
    limit?: number
  }

  /**
   * RobotModel.skus
   */
  export type RobotModel$skusArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    where?: RobotSkuWhereInput
    orderBy?: RobotSkuOrderByWithRelationInput | RobotSkuOrderByWithRelationInput[]
    cursor?: RobotSkuWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotSkuScalarFieldEnum | RobotSkuScalarFieldEnum[]
  }

  /**
   * RobotModel.robotUnits
   */
  export type RobotModel$robotUnitsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    where?: RobotUnitWhereInput
    orderBy?: RobotUnitOrderByWithRelationInput | RobotUnitOrderByWithRelationInput[]
    cursor?: RobotUnitWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotUnitScalarFieldEnum | RobotUnitScalarFieldEnum[]
  }

  /**
   * RobotModel without action
   */
  export type RobotModelDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotModel
     */
    select?: RobotModelSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotModel
     */
    omit?: RobotModelOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotModelInclude<ExtArgs> | null
  }


  /**
   * Model RobotSku
   */

  export type AggregateRobotSku = {
    _count: RobotSkuCountAggregateOutputType | null
    _avg: RobotSkuAvgAggregateOutputType | null
    _sum: RobotSkuSumAggregateOutputType | null
    _min: RobotSkuMinAggregateOutputType | null
    _max: RobotSkuMaxAggregateOutputType | null
  }

  export type RobotSkuAvgAggregateOutputType = {
    defaultPrice: Decimal | null
    defaultCost: Decimal | null
  }

  export type RobotSkuSumAggregateOutputType = {
    defaultPrice: Decimal | null
    defaultCost: Decimal | null
  }

  export type RobotSkuMinAggregateOutputType = {
    id: string | null
    modelId: string | null
    code: string | null
    name: string | null
    variant: string | null
    defaultPrice: Decimal | null
    defaultCost: Decimal | null
    currencyCode: string | null
    description: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotSkuMaxAggregateOutputType = {
    id: string | null
    modelId: string | null
    code: string | null
    name: string | null
    variant: string | null
    defaultPrice: Decimal | null
    defaultCost: Decimal | null
    currencyCode: string | null
    description: string | null
    enabled: boolean | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotSkuCountAggregateOutputType = {
    id: number
    modelId: number
    code: number
    name: number
    variant: number
    defaultPrice: number
    defaultCost: number
    currencyCode: number
    description: number
    enabled: number
    metadata: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type RobotSkuAvgAggregateInputType = {
    defaultPrice?: true
    defaultCost?: true
  }

  export type RobotSkuSumAggregateInputType = {
    defaultPrice?: true
    defaultCost?: true
  }

  export type RobotSkuMinAggregateInputType = {
    id?: true
    modelId?: true
    code?: true
    name?: true
    variant?: true
    defaultPrice?: true
    defaultCost?: true
    currencyCode?: true
    description?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotSkuMaxAggregateInputType = {
    id?: true
    modelId?: true
    code?: true
    name?: true
    variant?: true
    defaultPrice?: true
    defaultCost?: true
    currencyCode?: true
    description?: true
    enabled?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotSkuCountAggregateInputType = {
    id?: true
    modelId?: true
    code?: true
    name?: true
    variant?: true
    defaultPrice?: true
    defaultCost?: true
    currencyCode?: true
    description?: true
    enabled?: true
    metadata?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type RobotSkuAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotSku to aggregate.
     */
    where?: RobotSkuWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotSkus to fetch.
     */
    orderBy?: RobotSkuOrderByWithRelationInput | RobotSkuOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RobotSkuWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotSkus 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` RobotSkus.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RobotSkus
    **/
    _count?: true | RobotSkuCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: RobotSkuAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: RobotSkuSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RobotSkuMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RobotSkuMaxAggregateInputType
  }

  export type GetRobotSkuAggregateType<T extends RobotSkuAggregateArgs> = {
        [P in keyof T & keyof AggregateRobotSku]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRobotSku[P]>
      : GetScalarType<T[P], AggregateRobotSku[P]>
  }




  export type RobotSkuGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotSkuWhereInput
    orderBy?: RobotSkuOrderByWithAggregationInput | RobotSkuOrderByWithAggregationInput[]
    by: RobotSkuScalarFieldEnum[] | RobotSkuScalarFieldEnum
    having?: RobotSkuScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RobotSkuCountAggregateInputType | true
    _avg?: RobotSkuAvgAggregateInputType
    _sum?: RobotSkuSumAggregateInputType
    _min?: RobotSkuMinAggregateInputType
    _max?: RobotSkuMaxAggregateInputType
  }

  export type RobotSkuGroupByOutputType = {
    id: string
    modelId: string
    code: string
    name: string
    variant: string | null
    defaultPrice: Decimal | null
    defaultCost: Decimal | null
    currencyCode: string | null
    description: string | null
    enabled: boolean
    metadata: JsonValue
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: RobotSkuCountAggregateOutputType | null
    _avg: RobotSkuAvgAggregateOutputType | null
    _sum: RobotSkuSumAggregateOutputType | null
    _min: RobotSkuMinAggregateOutputType | null
    _max: RobotSkuMaxAggregateOutputType | null
  }

  type GetRobotSkuGroupByPayload<T extends RobotSkuGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RobotSkuGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RobotSkuGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RobotSkuGroupByOutputType[P]>
            : GetScalarType<T[P], RobotSkuGroupByOutputType[P]>
        }
      >
    >


  export type RobotSkuSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    modelId?: boolean
    code?: boolean
    name?: boolean
    variant?: boolean
    defaultPrice?: boolean
    defaultCost?: boolean
    currencyCode?: boolean
    description?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
    robotUnits?: boolean | RobotSku$robotUnitsArgs<ExtArgs>
    _count?: boolean | RobotSkuCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotSku"]>

  export type RobotSkuSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    modelId?: boolean
    code?: boolean
    name?: boolean
    variant?: boolean
    defaultPrice?: boolean
    defaultCost?: boolean
    currencyCode?: boolean
    description?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotSku"]>

  export type RobotSkuSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    modelId?: boolean
    code?: boolean
    name?: boolean
    variant?: boolean
    defaultPrice?: boolean
    defaultCost?: boolean
    currencyCode?: boolean
    description?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotSku"]>

  export type RobotSkuSelectScalar = {
    id?: boolean
    modelId?: boolean
    code?: boolean
    name?: boolean
    variant?: boolean
    defaultPrice?: boolean
    defaultCost?: boolean
    currencyCode?: boolean
    description?: boolean
    enabled?: boolean
    metadata?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type RobotSkuOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "modelId" | "code" | "name" | "variant" | "defaultPrice" | "defaultCost" | "currencyCode" | "description" | "enabled" | "metadata" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["robotSku"]>
  export type RobotSkuInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
    robotUnits?: boolean | RobotSku$robotUnitsArgs<ExtArgs>
    _count?: boolean | RobotSkuCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type RobotSkuIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
  }
  export type RobotSkuIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
  }

  export type $RobotSkuPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RobotSku"
    objects: {
      model: Prisma.$RobotModelPayload<ExtArgs>
      robotUnits: Prisma.$RobotUnitPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      modelId: string
      code: string
      name: string
      variant: string | null
      defaultPrice: Prisma.Decimal | null
      defaultCost: Prisma.Decimal | null
      currencyCode: string | null
      description: string | null
      enabled: boolean
      /**
       * ⚠️ 仅未结构化扩展属性。业务字段必须独立列（原则 5）。
       */
      metadata: Prisma.JsonValue
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["robotSku"]>
    composites: {}
  }

  type RobotSkuGetPayload<S extends boolean | null | undefined | RobotSkuDefaultArgs> = $Result.GetResult<Prisma.$RobotSkuPayload, S>

  type RobotSkuCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RobotSkuFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RobotSkuCountAggregateInputType | true
    }

  export interface RobotSkuDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RobotSku'], meta: { name: 'RobotSku' } }
    /**
     * Find zero or one RobotSku that matches the filter.
     * @param {RobotSkuFindUniqueArgs} args - Arguments to find a RobotSku
     * @example
     * // Get one RobotSku
     * const robotSku = await prisma.robotSku.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RobotSkuFindUniqueArgs>(args: SelectSubset<T, RobotSkuFindUniqueArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RobotSku that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RobotSkuFindUniqueOrThrowArgs} args - Arguments to find a RobotSku
     * @example
     * // Get one RobotSku
     * const robotSku = await prisma.robotSku.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RobotSkuFindUniqueOrThrowArgs>(args: SelectSubset<T, RobotSkuFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotSku 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 {RobotSkuFindFirstArgs} args - Arguments to find a RobotSku
     * @example
     * // Get one RobotSku
     * const robotSku = await prisma.robotSku.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RobotSkuFindFirstArgs>(args?: SelectSubset<T, RobotSkuFindFirstArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotSku 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 {RobotSkuFindFirstOrThrowArgs} args - Arguments to find a RobotSku
     * @example
     * // Get one RobotSku
     * const robotSku = await prisma.robotSku.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RobotSkuFindFirstOrThrowArgs>(args?: SelectSubset<T, RobotSkuFindFirstOrThrowArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RobotSkus 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 {RobotSkuFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RobotSkus
     * const robotSkus = await prisma.robotSku.findMany()
     * 
     * // Get first 10 RobotSkus
     * const robotSkus = await prisma.robotSku.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const robotSkuWithIdOnly = await prisma.robotSku.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RobotSkuFindManyArgs>(args?: SelectSubset<T, RobotSkuFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RobotSku.
     * @param {RobotSkuCreateArgs} args - Arguments to create a RobotSku.
     * @example
     * // Create one RobotSku
     * const RobotSku = await prisma.robotSku.create({
     *   data: {
     *     // ... data to create a RobotSku
     *   }
     * })
     * 
     */
    create<T extends RobotSkuCreateArgs>(args: SelectSubset<T, RobotSkuCreateArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RobotSkus.
     * @param {RobotSkuCreateManyArgs} args - Arguments to create many RobotSkus.
     * @example
     * // Create many RobotSkus
     * const robotSku = await prisma.robotSku.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RobotSkuCreateManyArgs>(args?: SelectSubset<T, RobotSkuCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RobotSkus and returns the data saved in the database.
     * @param {RobotSkuCreateManyAndReturnArgs} args - Arguments to create many RobotSkus.
     * @example
     * // Create many RobotSkus
     * const robotSku = await prisma.robotSku.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RobotSkus and only return the `id`
     * const robotSkuWithIdOnly = await prisma.robotSku.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 RobotSkuCreateManyAndReturnArgs>(args?: SelectSubset<T, RobotSkuCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RobotSku.
     * @param {RobotSkuDeleteArgs} args - Arguments to delete one RobotSku.
     * @example
     * // Delete one RobotSku
     * const RobotSku = await prisma.robotSku.delete({
     *   where: {
     *     // ... filter to delete one RobotSku
     *   }
     * })
     * 
     */
    delete<T extends RobotSkuDeleteArgs>(args: SelectSubset<T, RobotSkuDeleteArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RobotSku.
     * @param {RobotSkuUpdateArgs} args - Arguments to update one RobotSku.
     * @example
     * // Update one RobotSku
     * const robotSku = await prisma.robotSku.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RobotSkuUpdateArgs>(args: SelectSubset<T, RobotSkuUpdateArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RobotSkus.
     * @param {RobotSkuDeleteManyArgs} args - Arguments to filter RobotSkus to delete.
     * @example
     * // Delete a few RobotSkus
     * const { count } = await prisma.robotSku.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RobotSkuDeleteManyArgs>(args?: SelectSubset<T, RobotSkuDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotSkus.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotSkuUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RobotSkus
     * const robotSku = await prisma.robotSku.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RobotSkuUpdateManyArgs>(args: SelectSubset<T, RobotSkuUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotSkus and returns the data updated in the database.
     * @param {RobotSkuUpdateManyAndReturnArgs} args - Arguments to update many RobotSkus.
     * @example
     * // Update many RobotSkus
     * const robotSku = await prisma.robotSku.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RobotSkus and only return the `id`
     * const robotSkuWithIdOnly = await prisma.robotSku.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 RobotSkuUpdateManyAndReturnArgs>(args: SelectSubset<T, RobotSkuUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RobotSku.
     * @param {RobotSkuUpsertArgs} args - Arguments to update or create a RobotSku.
     * @example
     * // Update or create a RobotSku
     * const robotSku = await prisma.robotSku.upsert({
     *   create: {
     *     // ... data to create a RobotSku
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RobotSku we want to update
     *   }
     * })
     */
    upsert<T extends RobotSkuUpsertArgs>(args: SelectSubset<T, RobotSkuUpsertArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RobotSkus.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotSkuCountArgs} args - Arguments to filter RobotSkus to count.
     * @example
     * // Count the number of RobotSkus
     * const count = await prisma.robotSku.count({
     *   where: {
     *     // ... the filter for the RobotSkus we want to count
     *   }
     * })
    **/
    count<T extends RobotSkuCountArgs>(
      args?: Subset<T, RobotSkuCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RobotSkuCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RobotSku.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotSkuAggregateArgs} 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 RobotSkuAggregateArgs>(args: Subset<T, RobotSkuAggregateArgs>): Prisma.PrismaPromise<GetRobotSkuAggregateType<T>>

    /**
     * Group by RobotSku.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotSkuGroupByArgs} 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 RobotSkuGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RobotSkuGroupByArgs['orderBy'] }
        : { orderBy?: RobotSkuGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RobotSkuGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRobotSkuGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RobotSku model
   */
  readonly fields: RobotSkuFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RobotSku.
   * 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__RobotSkuClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    model<T extends RobotModelDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotModelDefaultArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    robotUnits<T extends RobotSku$robotUnitsArgs<ExtArgs> = {}>(args?: Subset<T, RobotSku$robotUnitsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RobotSku model
   */
  interface RobotSkuFieldRefs {
    readonly id: FieldRef<"RobotSku", 'String'>
    readonly modelId: FieldRef<"RobotSku", 'String'>
    readonly code: FieldRef<"RobotSku", 'String'>
    readonly name: FieldRef<"RobotSku", 'String'>
    readonly variant: FieldRef<"RobotSku", 'String'>
    readonly defaultPrice: FieldRef<"RobotSku", 'Decimal'>
    readonly defaultCost: FieldRef<"RobotSku", 'Decimal'>
    readonly currencyCode: FieldRef<"RobotSku", 'String'>
    readonly description: FieldRef<"RobotSku", 'String'>
    readonly enabled: FieldRef<"RobotSku", 'Boolean'>
    readonly metadata: FieldRef<"RobotSku", 'Json'>
    readonly organizationId: FieldRef<"RobotSku", 'String'>
    readonly createdAt: FieldRef<"RobotSku", 'DateTime'>
    readonly updatedAt: FieldRef<"RobotSku", 'DateTime'>
    readonly createdById: FieldRef<"RobotSku", 'String'>
    readonly deletedAt: FieldRef<"RobotSku", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RobotSku findUnique
   */
  export type RobotSkuFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * Filter, which RobotSku to fetch.
     */
    where: RobotSkuWhereUniqueInput
  }

  /**
   * RobotSku findUniqueOrThrow
   */
  export type RobotSkuFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * Filter, which RobotSku to fetch.
     */
    where: RobotSkuWhereUniqueInput
  }

  /**
   * RobotSku findFirst
   */
  export type RobotSkuFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * Filter, which RobotSku to fetch.
     */
    where?: RobotSkuWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotSkus to fetch.
     */
    orderBy?: RobotSkuOrderByWithRelationInput | RobotSkuOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotSkus.
     */
    cursor?: RobotSkuWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotSkus 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` RobotSkus.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotSkus.
     */
    distinct?: RobotSkuScalarFieldEnum | RobotSkuScalarFieldEnum[]
  }

  /**
   * RobotSku findFirstOrThrow
   */
  export type RobotSkuFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * Filter, which RobotSku to fetch.
     */
    where?: RobotSkuWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotSkus to fetch.
     */
    orderBy?: RobotSkuOrderByWithRelationInput | RobotSkuOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotSkus.
     */
    cursor?: RobotSkuWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotSkus 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` RobotSkus.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotSkus.
     */
    distinct?: RobotSkuScalarFieldEnum | RobotSkuScalarFieldEnum[]
  }

  /**
   * RobotSku findMany
   */
  export type RobotSkuFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * Filter, which RobotSkus to fetch.
     */
    where?: RobotSkuWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotSkus to fetch.
     */
    orderBy?: RobotSkuOrderByWithRelationInput | RobotSkuOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RobotSkus.
     */
    cursor?: RobotSkuWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotSkus 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` RobotSkus.
     */
    skip?: number
    distinct?: RobotSkuScalarFieldEnum | RobotSkuScalarFieldEnum[]
  }

  /**
   * RobotSku create
   */
  export type RobotSkuCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * The data needed to create a RobotSku.
     */
    data: XOR<RobotSkuCreateInput, RobotSkuUncheckedCreateInput>
  }

  /**
   * RobotSku createMany
   */
  export type RobotSkuCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RobotSkus.
     */
    data: RobotSkuCreateManyInput | RobotSkuCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotSku createManyAndReturn
   */
  export type RobotSkuCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * The data used to create many RobotSkus.
     */
    data: RobotSkuCreateManyInput | RobotSkuCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotSku update
   */
  export type RobotSkuUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * The data needed to update a RobotSku.
     */
    data: XOR<RobotSkuUpdateInput, RobotSkuUncheckedUpdateInput>
    /**
     * Choose, which RobotSku to update.
     */
    where: RobotSkuWhereUniqueInput
  }

  /**
   * RobotSku updateMany
   */
  export type RobotSkuUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RobotSkus.
     */
    data: XOR<RobotSkuUpdateManyMutationInput, RobotSkuUncheckedUpdateManyInput>
    /**
     * Filter which RobotSkus to update
     */
    where?: RobotSkuWhereInput
    /**
     * Limit how many RobotSkus to update.
     */
    limit?: number
  }

  /**
   * RobotSku updateManyAndReturn
   */
  export type RobotSkuUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * The data used to update RobotSkus.
     */
    data: XOR<RobotSkuUpdateManyMutationInput, RobotSkuUncheckedUpdateManyInput>
    /**
     * Filter which RobotSkus to update
     */
    where?: RobotSkuWhereInput
    /**
     * Limit how many RobotSkus to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotSku upsert
   */
  export type RobotSkuUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * The filter to search for the RobotSku to update in case it exists.
     */
    where: RobotSkuWhereUniqueInput
    /**
     * In case the RobotSku found by the `where` argument doesn't exist, create a new RobotSku with this data.
     */
    create: XOR<RobotSkuCreateInput, RobotSkuUncheckedCreateInput>
    /**
     * In case the RobotSku was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RobotSkuUpdateInput, RobotSkuUncheckedUpdateInput>
  }

  /**
   * RobotSku delete
   */
  export type RobotSkuDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
    /**
     * Filter which RobotSku to delete.
     */
    where: RobotSkuWhereUniqueInput
  }

  /**
   * RobotSku deleteMany
   */
  export type RobotSkuDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotSkus to delete
     */
    where?: RobotSkuWhereInput
    /**
     * Limit how many RobotSkus to delete.
     */
    limit?: number
  }

  /**
   * RobotSku.robotUnits
   */
  export type RobotSku$robotUnitsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    where?: RobotUnitWhereInput
    orderBy?: RobotUnitOrderByWithRelationInput | RobotUnitOrderByWithRelationInput[]
    cursor?: RobotUnitWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotUnitScalarFieldEnum | RobotUnitScalarFieldEnum[]
  }

  /**
   * RobotSku without action
   */
  export type RobotSkuDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSku
     */
    select?: RobotSkuSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSku
     */
    omit?: RobotSkuOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotSkuInclude<ExtArgs> | null
  }


  /**
   * Model RobotSystemConfig
   */

  export type AggregateRobotSystemConfig = {
    _count: RobotSystemConfigCountAggregateOutputType | null
    _min: RobotSystemConfigMinAggregateOutputType | null
    _max: RobotSystemConfigMaxAggregateOutputType | null
  }

  export type RobotSystemConfigMinAggregateOutputType = {
    id: string | null
    key: string | null
    description: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type RobotSystemConfigMaxAggregateOutputType = {
    id: string | null
    key: string | null
    description: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type RobotSystemConfigCountAggregateOutputType = {
    id: number
    key: number
    value: number
    description: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type RobotSystemConfigMinAggregateInputType = {
    id?: true
    key?: true
    description?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type RobotSystemConfigMaxAggregateInputType = {
    id?: true
    key?: true
    description?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type RobotSystemConfigCountAggregateInputType = {
    id?: true
    key?: true
    value?: true
    description?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type RobotSystemConfigAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotSystemConfig to aggregate.
     */
    where?: RobotSystemConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotSystemConfigs to fetch.
     */
    orderBy?: RobotSystemConfigOrderByWithRelationInput | RobotSystemConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RobotSystemConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotSystemConfigs 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` RobotSystemConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RobotSystemConfigs
    **/
    _count?: true | RobotSystemConfigCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RobotSystemConfigMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RobotSystemConfigMaxAggregateInputType
  }

  export type GetRobotSystemConfigAggregateType<T extends RobotSystemConfigAggregateArgs> = {
        [P in keyof T & keyof AggregateRobotSystemConfig]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRobotSystemConfig[P]>
      : GetScalarType<T[P], AggregateRobotSystemConfig[P]>
  }




  export type RobotSystemConfigGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotSystemConfigWhereInput
    orderBy?: RobotSystemConfigOrderByWithAggregationInput | RobotSystemConfigOrderByWithAggregationInput[]
    by: RobotSystemConfigScalarFieldEnum[] | RobotSystemConfigScalarFieldEnum
    having?: RobotSystemConfigScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RobotSystemConfigCountAggregateInputType | true
    _min?: RobotSystemConfigMinAggregateInputType
    _max?: RobotSystemConfigMaxAggregateInputType
  }

  export type RobotSystemConfigGroupByOutputType = {
    id: string
    key: string
    value: JsonValue
    description: string | null
    organizationId: string | null
    createdAt: Date
    updatedAt: Date
    createdById: string | null
    _count: RobotSystemConfigCountAggregateOutputType | null
    _min: RobotSystemConfigMinAggregateOutputType | null
    _max: RobotSystemConfigMaxAggregateOutputType | null
  }

  type GetRobotSystemConfigGroupByPayload<T extends RobotSystemConfigGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RobotSystemConfigGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RobotSystemConfigGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RobotSystemConfigGroupByOutputType[P]>
            : GetScalarType<T[P], RobotSystemConfigGroupByOutputType[P]>
        }
      >
    >


  export type RobotSystemConfigSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["robotSystemConfig"]>

  export type RobotSystemConfigSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["robotSystemConfig"]>

  export type RobotSystemConfigSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }, ExtArgs["result"]["robotSystemConfig"]>

  export type RobotSystemConfigSelectScalar = {
    id?: boolean
    key?: boolean
    value?: boolean
    description?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type RobotSystemConfigOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "key" | "value" | "description" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["robotSystemConfig"]>

  export type $RobotSystemConfigPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RobotSystemConfig"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      key: string
      value: Prisma.JsonValue
      description: string | null
      organizationId: string | null
      createdAt: Date
      updatedAt: Date
      createdById: string | null
    }, ExtArgs["result"]["robotSystemConfig"]>
    composites: {}
  }

  type RobotSystemConfigGetPayload<S extends boolean | null | undefined | RobotSystemConfigDefaultArgs> = $Result.GetResult<Prisma.$RobotSystemConfigPayload, S>

  type RobotSystemConfigCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RobotSystemConfigFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RobotSystemConfigCountAggregateInputType | true
    }

  export interface RobotSystemConfigDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RobotSystemConfig'], meta: { name: 'RobotSystemConfig' } }
    /**
     * Find zero or one RobotSystemConfig that matches the filter.
     * @param {RobotSystemConfigFindUniqueArgs} args - Arguments to find a RobotSystemConfig
     * @example
     * // Get one RobotSystemConfig
     * const robotSystemConfig = await prisma.robotSystemConfig.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RobotSystemConfigFindUniqueArgs>(args: SelectSubset<T, RobotSystemConfigFindUniqueArgs<ExtArgs>>): Prisma__RobotSystemConfigClient<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RobotSystemConfig that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RobotSystemConfigFindUniqueOrThrowArgs} args - Arguments to find a RobotSystemConfig
     * @example
     * // Get one RobotSystemConfig
     * const robotSystemConfig = await prisma.robotSystemConfig.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RobotSystemConfigFindUniqueOrThrowArgs>(args: SelectSubset<T, RobotSystemConfigFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RobotSystemConfigClient<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotSystemConfig 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 {RobotSystemConfigFindFirstArgs} args - Arguments to find a RobotSystemConfig
     * @example
     * // Get one RobotSystemConfig
     * const robotSystemConfig = await prisma.robotSystemConfig.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RobotSystemConfigFindFirstArgs>(args?: SelectSubset<T, RobotSystemConfigFindFirstArgs<ExtArgs>>): Prisma__RobotSystemConfigClient<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotSystemConfig 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 {RobotSystemConfigFindFirstOrThrowArgs} args - Arguments to find a RobotSystemConfig
     * @example
     * // Get one RobotSystemConfig
     * const robotSystemConfig = await prisma.robotSystemConfig.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RobotSystemConfigFindFirstOrThrowArgs>(args?: SelectSubset<T, RobotSystemConfigFindFirstOrThrowArgs<ExtArgs>>): Prisma__RobotSystemConfigClient<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RobotSystemConfigs 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 {RobotSystemConfigFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RobotSystemConfigs
     * const robotSystemConfigs = await prisma.robotSystemConfig.findMany()
     * 
     * // Get first 10 RobotSystemConfigs
     * const robotSystemConfigs = await prisma.robotSystemConfig.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const robotSystemConfigWithIdOnly = await prisma.robotSystemConfig.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RobotSystemConfigFindManyArgs>(args?: SelectSubset<T, RobotSystemConfigFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RobotSystemConfig.
     * @param {RobotSystemConfigCreateArgs} args - Arguments to create a RobotSystemConfig.
     * @example
     * // Create one RobotSystemConfig
     * const RobotSystemConfig = await prisma.robotSystemConfig.create({
     *   data: {
     *     // ... data to create a RobotSystemConfig
     *   }
     * })
     * 
     */
    create<T extends RobotSystemConfigCreateArgs>(args: SelectSubset<T, RobotSystemConfigCreateArgs<ExtArgs>>): Prisma__RobotSystemConfigClient<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RobotSystemConfigs.
     * @param {RobotSystemConfigCreateManyArgs} args - Arguments to create many RobotSystemConfigs.
     * @example
     * // Create many RobotSystemConfigs
     * const robotSystemConfig = await prisma.robotSystemConfig.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RobotSystemConfigCreateManyArgs>(args?: SelectSubset<T, RobotSystemConfigCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RobotSystemConfigs and returns the data saved in the database.
     * @param {RobotSystemConfigCreateManyAndReturnArgs} args - Arguments to create many RobotSystemConfigs.
     * @example
     * // Create many RobotSystemConfigs
     * const robotSystemConfig = await prisma.robotSystemConfig.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RobotSystemConfigs and only return the `id`
     * const robotSystemConfigWithIdOnly = await prisma.robotSystemConfig.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 RobotSystemConfigCreateManyAndReturnArgs>(args?: SelectSubset<T, RobotSystemConfigCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RobotSystemConfig.
     * @param {RobotSystemConfigDeleteArgs} args - Arguments to delete one RobotSystemConfig.
     * @example
     * // Delete one RobotSystemConfig
     * const RobotSystemConfig = await prisma.robotSystemConfig.delete({
     *   where: {
     *     // ... filter to delete one RobotSystemConfig
     *   }
     * })
     * 
     */
    delete<T extends RobotSystemConfigDeleteArgs>(args: SelectSubset<T, RobotSystemConfigDeleteArgs<ExtArgs>>): Prisma__RobotSystemConfigClient<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RobotSystemConfig.
     * @param {RobotSystemConfigUpdateArgs} args - Arguments to update one RobotSystemConfig.
     * @example
     * // Update one RobotSystemConfig
     * const robotSystemConfig = await prisma.robotSystemConfig.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RobotSystemConfigUpdateArgs>(args: SelectSubset<T, RobotSystemConfigUpdateArgs<ExtArgs>>): Prisma__RobotSystemConfigClient<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RobotSystemConfigs.
     * @param {RobotSystemConfigDeleteManyArgs} args - Arguments to filter RobotSystemConfigs to delete.
     * @example
     * // Delete a few RobotSystemConfigs
     * const { count } = await prisma.robotSystemConfig.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RobotSystemConfigDeleteManyArgs>(args?: SelectSubset<T, RobotSystemConfigDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotSystemConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotSystemConfigUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RobotSystemConfigs
     * const robotSystemConfig = await prisma.robotSystemConfig.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RobotSystemConfigUpdateManyArgs>(args: SelectSubset<T, RobotSystemConfigUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotSystemConfigs and returns the data updated in the database.
     * @param {RobotSystemConfigUpdateManyAndReturnArgs} args - Arguments to update many RobotSystemConfigs.
     * @example
     * // Update many RobotSystemConfigs
     * const robotSystemConfig = await prisma.robotSystemConfig.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RobotSystemConfigs and only return the `id`
     * const robotSystemConfigWithIdOnly = await prisma.robotSystemConfig.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 RobotSystemConfigUpdateManyAndReturnArgs>(args: SelectSubset<T, RobotSystemConfigUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RobotSystemConfig.
     * @param {RobotSystemConfigUpsertArgs} args - Arguments to update or create a RobotSystemConfig.
     * @example
     * // Update or create a RobotSystemConfig
     * const robotSystemConfig = await prisma.robotSystemConfig.upsert({
     *   create: {
     *     // ... data to create a RobotSystemConfig
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RobotSystemConfig we want to update
     *   }
     * })
     */
    upsert<T extends RobotSystemConfigUpsertArgs>(args: SelectSubset<T, RobotSystemConfigUpsertArgs<ExtArgs>>): Prisma__RobotSystemConfigClient<$Result.GetResult<Prisma.$RobotSystemConfigPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RobotSystemConfigs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotSystemConfigCountArgs} args - Arguments to filter RobotSystemConfigs to count.
     * @example
     * // Count the number of RobotSystemConfigs
     * const count = await prisma.robotSystemConfig.count({
     *   where: {
     *     // ... the filter for the RobotSystemConfigs we want to count
     *   }
     * })
    **/
    count<T extends RobotSystemConfigCountArgs>(
      args?: Subset<T, RobotSystemConfigCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RobotSystemConfigCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RobotSystemConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotSystemConfigAggregateArgs} 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 RobotSystemConfigAggregateArgs>(args: Subset<T, RobotSystemConfigAggregateArgs>): Prisma.PrismaPromise<GetRobotSystemConfigAggregateType<T>>

    /**
     * Group by RobotSystemConfig.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotSystemConfigGroupByArgs} 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 RobotSystemConfigGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RobotSystemConfigGroupByArgs['orderBy'] }
        : { orderBy?: RobotSystemConfigGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RobotSystemConfigGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRobotSystemConfigGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RobotSystemConfig model
   */
  readonly fields: RobotSystemConfigFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RobotSystemConfig.
   * 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__RobotSystemConfigClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RobotSystemConfig model
   */
  interface RobotSystemConfigFieldRefs {
    readonly id: FieldRef<"RobotSystemConfig", 'String'>
    readonly key: FieldRef<"RobotSystemConfig", 'String'>
    readonly value: FieldRef<"RobotSystemConfig", 'Json'>
    readonly description: FieldRef<"RobotSystemConfig", 'String'>
    readonly organizationId: FieldRef<"RobotSystemConfig", 'String'>
    readonly createdAt: FieldRef<"RobotSystemConfig", 'DateTime'>
    readonly updatedAt: FieldRef<"RobotSystemConfig", 'DateTime'>
    readonly createdById: FieldRef<"RobotSystemConfig", 'String'>
  }
    

  // Custom InputTypes
  /**
   * RobotSystemConfig findUnique
   */
  export type RobotSystemConfigFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * Filter, which RobotSystemConfig to fetch.
     */
    where: RobotSystemConfigWhereUniqueInput
  }

  /**
   * RobotSystemConfig findUniqueOrThrow
   */
  export type RobotSystemConfigFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * Filter, which RobotSystemConfig to fetch.
     */
    where: RobotSystemConfigWhereUniqueInput
  }

  /**
   * RobotSystemConfig findFirst
   */
  export type RobotSystemConfigFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * Filter, which RobotSystemConfig to fetch.
     */
    where?: RobotSystemConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotSystemConfigs to fetch.
     */
    orderBy?: RobotSystemConfigOrderByWithRelationInput | RobotSystemConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotSystemConfigs.
     */
    cursor?: RobotSystemConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotSystemConfigs 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` RobotSystemConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotSystemConfigs.
     */
    distinct?: RobotSystemConfigScalarFieldEnum | RobotSystemConfigScalarFieldEnum[]
  }

  /**
   * RobotSystemConfig findFirstOrThrow
   */
  export type RobotSystemConfigFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * Filter, which RobotSystemConfig to fetch.
     */
    where?: RobotSystemConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotSystemConfigs to fetch.
     */
    orderBy?: RobotSystemConfigOrderByWithRelationInput | RobotSystemConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotSystemConfigs.
     */
    cursor?: RobotSystemConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotSystemConfigs 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` RobotSystemConfigs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotSystemConfigs.
     */
    distinct?: RobotSystemConfigScalarFieldEnum | RobotSystemConfigScalarFieldEnum[]
  }

  /**
   * RobotSystemConfig findMany
   */
  export type RobotSystemConfigFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * Filter, which RobotSystemConfigs to fetch.
     */
    where?: RobotSystemConfigWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotSystemConfigs to fetch.
     */
    orderBy?: RobotSystemConfigOrderByWithRelationInput | RobotSystemConfigOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RobotSystemConfigs.
     */
    cursor?: RobotSystemConfigWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotSystemConfigs 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` RobotSystemConfigs.
     */
    skip?: number
    distinct?: RobotSystemConfigScalarFieldEnum | RobotSystemConfigScalarFieldEnum[]
  }

  /**
   * RobotSystemConfig create
   */
  export type RobotSystemConfigCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * The data needed to create a RobotSystemConfig.
     */
    data: XOR<RobotSystemConfigCreateInput, RobotSystemConfigUncheckedCreateInput>
  }

  /**
   * RobotSystemConfig createMany
   */
  export type RobotSystemConfigCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RobotSystemConfigs.
     */
    data: RobotSystemConfigCreateManyInput | RobotSystemConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotSystemConfig createManyAndReturn
   */
  export type RobotSystemConfigCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * The data used to create many RobotSystemConfigs.
     */
    data: RobotSystemConfigCreateManyInput | RobotSystemConfigCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotSystemConfig update
   */
  export type RobotSystemConfigUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * The data needed to update a RobotSystemConfig.
     */
    data: XOR<RobotSystemConfigUpdateInput, RobotSystemConfigUncheckedUpdateInput>
    /**
     * Choose, which RobotSystemConfig to update.
     */
    where: RobotSystemConfigWhereUniqueInput
  }

  /**
   * RobotSystemConfig updateMany
   */
  export type RobotSystemConfigUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RobotSystemConfigs.
     */
    data: XOR<RobotSystemConfigUpdateManyMutationInput, RobotSystemConfigUncheckedUpdateManyInput>
    /**
     * Filter which RobotSystemConfigs to update
     */
    where?: RobotSystemConfigWhereInput
    /**
     * Limit how many RobotSystemConfigs to update.
     */
    limit?: number
  }

  /**
   * RobotSystemConfig updateManyAndReturn
   */
  export type RobotSystemConfigUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * The data used to update RobotSystemConfigs.
     */
    data: XOR<RobotSystemConfigUpdateManyMutationInput, RobotSystemConfigUncheckedUpdateManyInput>
    /**
     * Filter which RobotSystemConfigs to update
     */
    where?: RobotSystemConfigWhereInput
    /**
     * Limit how many RobotSystemConfigs to update.
     */
    limit?: number
  }

  /**
   * RobotSystemConfig upsert
   */
  export type RobotSystemConfigUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * The filter to search for the RobotSystemConfig to update in case it exists.
     */
    where: RobotSystemConfigWhereUniqueInput
    /**
     * In case the RobotSystemConfig found by the `where` argument doesn't exist, create a new RobotSystemConfig with this data.
     */
    create: XOR<RobotSystemConfigCreateInput, RobotSystemConfigUncheckedCreateInput>
    /**
     * In case the RobotSystemConfig was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RobotSystemConfigUpdateInput, RobotSystemConfigUncheckedUpdateInput>
  }

  /**
   * RobotSystemConfig delete
   */
  export type RobotSystemConfigDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
    /**
     * Filter which RobotSystemConfig to delete.
     */
    where: RobotSystemConfigWhereUniqueInput
  }

  /**
   * RobotSystemConfig deleteMany
   */
  export type RobotSystemConfigDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotSystemConfigs to delete
     */
    where?: RobotSystemConfigWhereInput
    /**
     * Limit how many RobotSystemConfigs to delete.
     */
    limit?: number
  }

  /**
   * RobotSystemConfig without action
   */
  export type RobotSystemConfigDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotSystemConfig
     */
    select?: RobotSystemConfigSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotSystemConfig
     */
    omit?: RobotSystemConfigOmit<ExtArgs> | null
  }


  /**
   * Model RobotUnit
   */

  export type AggregateRobotUnit = {
    _count: RobotUnitCountAggregateOutputType | null
    _avg: RobotUnitAvgAggregateOutputType | null
    _sum: RobotUnitSumAggregateOutputType | null
    _min: RobotUnitMinAggregateOutputType | null
    _max: RobotUnitMaxAggregateOutputType | null
  }

  export type RobotUnitAvgAggregateOutputType = {
    version: number | null
  }

  export type RobotUnitSumAggregateOutputType = {
    version: number | null
  }

  export type RobotUnitMinAggregateOutputType = {
    id: string | null
    organizationId: string | null
    version: number | null
    ffsn: string | null
    ffsnDisplay: string | null
    placeholderSnOrig: string | null
    supplierSn: string | null
    modelId: string | null
    skuId: string | null
    usageType: $Enums.RobotUsageType | null
    purchaseOrderId: string | null
    purchaseOrderLineId: string | null
    originalSupplierId: string | null
    manufactureDate: Date | null
    retiredAt: Date | null
    disposalType: $Enums.RobotDisposalType | null
    disposalNotes: string | null
    sapMaterialNo: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotUnitMaxAggregateOutputType = {
    id: string | null
    organizationId: string | null
    version: number | null
    ffsn: string | null
    ffsnDisplay: string | null
    placeholderSnOrig: string | null
    supplierSn: string | null
    modelId: string | null
    skuId: string | null
    usageType: $Enums.RobotUsageType | null
    purchaseOrderId: string | null
    purchaseOrderLineId: string | null
    originalSupplierId: string | null
    manufactureDate: Date | null
    retiredAt: Date | null
    disposalType: $Enums.RobotDisposalType | null
    disposalNotes: string | null
    sapMaterialNo: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotUnitCountAggregateOutputType = {
    id: number
    organizationId: number
    version: number
    ffsn: number
    ffsnDisplay: number
    placeholderSnOrig: number
    supplierSn: number
    modelId: number
    skuId: number
    usageType: number
    purchaseOrderId: number
    purchaseOrderLineId: number
    originalSupplierId: number
    manufactureDate: number
    retiredAt: number
    disposalType: number
    disposalNotes: number
    sapMaterialNo: number
    metadata: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type RobotUnitAvgAggregateInputType = {
    version?: true
  }

  export type RobotUnitSumAggregateInputType = {
    version?: true
  }

  export type RobotUnitMinAggregateInputType = {
    id?: true
    organizationId?: true
    version?: true
    ffsn?: true
    ffsnDisplay?: true
    placeholderSnOrig?: true
    supplierSn?: true
    modelId?: true
    skuId?: true
    usageType?: true
    purchaseOrderId?: true
    purchaseOrderLineId?: true
    originalSupplierId?: true
    manufactureDate?: true
    retiredAt?: true
    disposalType?: true
    disposalNotes?: true
    sapMaterialNo?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotUnitMaxAggregateInputType = {
    id?: true
    organizationId?: true
    version?: true
    ffsn?: true
    ffsnDisplay?: true
    placeholderSnOrig?: true
    supplierSn?: true
    modelId?: true
    skuId?: true
    usageType?: true
    purchaseOrderId?: true
    purchaseOrderLineId?: true
    originalSupplierId?: true
    manufactureDate?: true
    retiredAt?: true
    disposalType?: true
    disposalNotes?: true
    sapMaterialNo?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotUnitCountAggregateInputType = {
    id?: true
    organizationId?: true
    version?: true
    ffsn?: true
    ffsnDisplay?: true
    placeholderSnOrig?: true
    supplierSn?: true
    modelId?: true
    skuId?: true
    usageType?: true
    purchaseOrderId?: true
    purchaseOrderLineId?: true
    originalSupplierId?: true
    manufactureDate?: true
    retiredAt?: true
    disposalType?: true
    disposalNotes?: true
    sapMaterialNo?: true
    metadata?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type RobotUnitAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotUnit to aggregate.
     */
    where?: RobotUnitWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotUnits to fetch.
     */
    orderBy?: RobotUnitOrderByWithRelationInput | RobotUnitOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RobotUnitWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotUnits 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` RobotUnits.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RobotUnits
    **/
    _count?: true | RobotUnitCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: RobotUnitAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: RobotUnitSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RobotUnitMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RobotUnitMaxAggregateInputType
  }

  export type GetRobotUnitAggregateType<T extends RobotUnitAggregateArgs> = {
        [P in keyof T & keyof AggregateRobotUnit]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRobotUnit[P]>
      : GetScalarType<T[P], AggregateRobotUnit[P]>
  }




  export type RobotUnitGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitWhereInput
    orderBy?: RobotUnitOrderByWithAggregationInput | RobotUnitOrderByWithAggregationInput[]
    by: RobotUnitScalarFieldEnum[] | RobotUnitScalarFieldEnum
    having?: RobotUnitScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RobotUnitCountAggregateInputType | true
    _avg?: RobotUnitAvgAggregateInputType
    _sum?: RobotUnitSumAggregateInputType
    _min?: RobotUnitMinAggregateInputType
    _max?: RobotUnitMaxAggregateInputType
  }

  export type RobotUnitGroupByOutputType = {
    id: string
    organizationId: string
    version: number
    ffsn: string
    ffsnDisplay: string | null
    placeholderSnOrig: string | null
    supplierSn: string | null
    modelId: string
    skuId: string
    usageType: $Enums.RobotUsageType
    purchaseOrderId: string | null
    purchaseOrderLineId: string | null
    originalSupplierId: string | null
    manufactureDate: Date | null
    retiredAt: Date | null
    disposalType: $Enums.RobotDisposalType | null
    disposalNotes: string | null
    sapMaterialNo: string | null
    metadata: JsonValue
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: RobotUnitCountAggregateOutputType | null
    _avg: RobotUnitAvgAggregateOutputType | null
    _sum: RobotUnitSumAggregateOutputType | null
    _min: RobotUnitMinAggregateOutputType | null
    _max: RobotUnitMaxAggregateOutputType | null
  }

  type GetRobotUnitGroupByPayload<T extends RobotUnitGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RobotUnitGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RobotUnitGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RobotUnitGroupByOutputType[P]>
            : GetScalarType<T[P], RobotUnitGroupByOutputType[P]>
        }
      >
    >


  export type RobotUnitSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    version?: boolean
    ffsn?: boolean
    ffsnDisplay?: boolean
    placeholderSnOrig?: boolean
    supplierSn?: boolean
    modelId?: boolean
    skuId?: boolean
    usageType?: boolean
    purchaseOrderId?: boolean
    purchaseOrderLineId?: boolean
    originalSupplierId?: boolean
    manufactureDate?: boolean
    retiredAt?: boolean
    disposalType?: boolean
    disposalNotes?: boolean
    sapMaterialNo?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
    sku?: boolean | RobotSkuDefaultArgs<ExtArgs>
    purchaseOrder?: boolean | RobotUnit$purchaseOrderArgs<ExtArgs>
    purchaseOrderLine?: boolean | RobotUnit$purchaseOrderLineArgs<ExtArgs>
    snapshot?: boolean | RobotUnit$snapshotArgs<ExtArgs>
    events?: boolean | RobotUnit$eventsArgs<ExtArgs>
    qualityLabels?: boolean | RobotUnit$qualityLabelsArgs<ExtArgs>
    packageReadiness?: boolean | RobotUnit$packageReadinessArgs<ExtArgs>
    inspections?: boolean | RobotUnit$inspectionsArgs<ExtArgs>
    logisticsLegs?: boolean | RobotUnit$logisticsLegsArgs<ExtArgs>
    complianceCheck?: boolean | RobotUnit$complianceCheckArgs<ExtArgs>
    rentalAgreements?: boolean | RobotUnit$rentalAgreementsArgs<ExtArgs>
    serviceTickets?: boolean | RobotUnit$serviceTicketsArgs<ExtArgs>
    deliveryFulfillments?: boolean | RobotUnit$deliveryFulfillmentsArgs<ExtArgs>
    salesOrderLines?: boolean | RobotUnit$salesOrderLinesArgs<ExtArgs>
    importAudit?: boolean | RobotUnit$importAuditArgs<ExtArgs>
    paymentRecords?: boolean | RobotUnit$paymentRecordsArgs<ExtArgs>
    _count?: boolean | RobotUnitCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotUnit"]>

  export type RobotUnitSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    version?: boolean
    ffsn?: boolean
    ffsnDisplay?: boolean
    placeholderSnOrig?: boolean
    supplierSn?: boolean
    modelId?: boolean
    skuId?: boolean
    usageType?: boolean
    purchaseOrderId?: boolean
    purchaseOrderLineId?: boolean
    originalSupplierId?: boolean
    manufactureDate?: boolean
    retiredAt?: boolean
    disposalType?: boolean
    disposalNotes?: boolean
    sapMaterialNo?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
    sku?: boolean | RobotSkuDefaultArgs<ExtArgs>
    purchaseOrder?: boolean | RobotUnit$purchaseOrderArgs<ExtArgs>
    purchaseOrderLine?: boolean | RobotUnit$purchaseOrderLineArgs<ExtArgs>
  }, ExtArgs["result"]["robotUnit"]>

  export type RobotUnitSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    organizationId?: boolean
    version?: boolean
    ffsn?: boolean
    ffsnDisplay?: boolean
    placeholderSnOrig?: boolean
    supplierSn?: boolean
    modelId?: boolean
    skuId?: boolean
    usageType?: boolean
    purchaseOrderId?: boolean
    purchaseOrderLineId?: boolean
    originalSupplierId?: boolean
    manufactureDate?: boolean
    retiredAt?: boolean
    disposalType?: boolean
    disposalNotes?: boolean
    sapMaterialNo?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
    sku?: boolean | RobotSkuDefaultArgs<ExtArgs>
    purchaseOrder?: boolean | RobotUnit$purchaseOrderArgs<ExtArgs>
    purchaseOrderLine?: boolean | RobotUnit$purchaseOrderLineArgs<ExtArgs>
  }, ExtArgs["result"]["robotUnit"]>

  export type RobotUnitSelectScalar = {
    id?: boolean
    organizationId?: boolean
    version?: boolean
    ffsn?: boolean
    ffsnDisplay?: boolean
    placeholderSnOrig?: boolean
    supplierSn?: boolean
    modelId?: boolean
    skuId?: boolean
    usageType?: boolean
    purchaseOrderId?: boolean
    purchaseOrderLineId?: boolean
    originalSupplierId?: boolean
    manufactureDate?: boolean
    retiredAt?: boolean
    disposalType?: boolean
    disposalNotes?: boolean
    sapMaterialNo?: boolean
    metadata?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type RobotUnitOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "organizationId" | "version" | "ffsn" | "ffsnDisplay" | "placeholderSnOrig" | "supplierSn" | "modelId" | "skuId" | "usageType" | "purchaseOrderId" | "purchaseOrderLineId" | "originalSupplierId" | "manufactureDate" | "retiredAt" | "disposalType" | "disposalNotes" | "sapMaterialNo" | "metadata" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["robotUnit"]>
  export type RobotUnitInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
    sku?: boolean | RobotSkuDefaultArgs<ExtArgs>
    purchaseOrder?: boolean | RobotUnit$purchaseOrderArgs<ExtArgs>
    purchaseOrderLine?: boolean | RobotUnit$purchaseOrderLineArgs<ExtArgs>
    snapshot?: boolean | RobotUnit$snapshotArgs<ExtArgs>
    events?: boolean | RobotUnit$eventsArgs<ExtArgs>
    qualityLabels?: boolean | RobotUnit$qualityLabelsArgs<ExtArgs>
    packageReadiness?: boolean | RobotUnit$packageReadinessArgs<ExtArgs>
    inspections?: boolean | RobotUnit$inspectionsArgs<ExtArgs>
    logisticsLegs?: boolean | RobotUnit$logisticsLegsArgs<ExtArgs>
    complianceCheck?: boolean | RobotUnit$complianceCheckArgs<ExtArgs>
    rentalAgreements?: boolean | RobotUnit$rentalAgreementsArgs<ExtArgs>
    serviceTickets?: boolean | RobotUnit$serviceTicketsArgs<ExtArgs>
    deliveryFulfillments?: boolean | RobotUnit$deliveryFulfillmentsArgs<ExtArgs>
    salesOrderLines?: boolean | RobotUnit$salesOrderLinesArgs<ExtArgs>
    importAudit?: boolean | RobotUnit$importAuditArgs<ExtArgs>
    paymentRecords?: boolean | RobotUnit$paymentRecordsArgs<ExtArgs>
    _count?: boolean | RobotUnitCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type RobotUnitIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
    sku?: boolean | RobotSkuDefaultArgs<ExtArgs>
    purchaseOrder?: boolean | RobotUnit$purchaseOrderArgs<ExtArgs>
    purchaseOrderLine?: boolean | RobotUnit$purchaseOrderLineArgs<ExtArgs>
  }
  export type RobotUnitIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    model?: boolean | RobotModelDefaultArgs<ExtArgs>
    sku?: boolean | RobotSkuDefaultArgs<ExtArgs>
    purchaseOrder?: boolean | RobotUnit$purchaseOrderArgs<ExtArgs>
    purchaseOrderLine?: boolean | RobotUnit$purchaseOrderLineArgs<ExtArgs>
  }

  export type $RobotUnitPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RobotUnit"
    objects: {
      model: Prisma.$RobotModelPayload<ExtArgs>
      sku: Prisma.$RobotSkuPayload<ExtArgs>
      purchaseOrder: Prisma.$PurchaseOrderPayload<ExtArgs> | null
      purchaseOrderLine: Prisma.$PurchaseOrderLinePayload<ExtArgs> | null
      /**
       * 业务不变量：创建 RobotUnit 必须同事务创建 Snapshot —— 因此实际查询永远非 NULL。
       * 关系侧 nullable 是 Prisma 1:1 的语法限制（owner 端必须 optional）。
       */
      snapshot: Prisma.$RobotUnitSnapshotPayload<ExtArgs> | null
      events: Prisma.$RobotLifecycleEventPayload<ExtArgs>[]
      qualityLabels: Prisma.$QualityLabelRecordPayload<ExtArgs>[]
      packageReadiness: Prisma.$RobotPackageReadinessPayload<ExtArgs> | null
      inspections: Prisma.$InspectionRecordPayload<ExtArgs>[]
      logisticsLegs: Prisma.$LogisticsLegPayload<ExtArgs>[]
      complianceCheck: Prisma.$ComplianceCheckPayload<ExtArgs> | null
      rentalAgreements: Prisma.$RentalAgreementPayload<ExtArgs>[]
      serviceTickets: Prisma.$ServiceTicketPayload<ExtArgs>[]
      deliveryFulfillments: Prisma.$DeliveryFulfillmentPayload<ExtArgs>[]
      salesOrderLines: Prisma.$SalesOrderLinePayload<ExtArgs>[]
      importAudit: Prisma.$RobotImportAuditPayload<ExtArgs> | null
      paymentRecords: Prisma.$PaymentRecordPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      organizationId: string
      /**
       * 乐观锁版本（RobotUnit 自身的基础字段）— PUT /robot-manager/:id 走这个。
       * ⚠️ 跟 RobotUnitSnapshot.version 是**两套** —— 切换 stage / 激活 SN / hold / move-location 等改 snapshot 的 API 用 snapshot.version。
       * 详见 .learnings/2026-05-17-robot-unit-vs-snapshot-version.md
       */
      version: number
      ffsn: string
      ffsnDisplay: string | null
      placeholderSnOrig: string | null
      supplierSn: string | null
      modelId: string
      skuId: string
      /**
       * 用途分类（SALES / RND / MARKETING / ...）。
       * 保守视为"出厂时确定"的不变属性。若业务侧出现"测试机重分类为销售机"等需求，
       * 应把本字段迁到 RobotUnitSnapshot（可变状态）并通过 RobotLifecycleEvent 记变更。
       */
      usageType: $Enums.RobotUsageType
      purchaseOrderId: string | null
      purchaseOrderLineId: string | null
      originalSupplierId: string | null
      manufactureDate: Date | null
      retiredAt: Date | null
      disposalType: $Enums.RobotDisposalType | null
      disposalNotes: string | null
      sapMaterialNo: string | null
      /**
       * ⚠️ 仅未来集成场景的扩展属性（SAP/D365/物联网回传 raw payload 等）。
       * 业务字段必须独立列 —— 不要把"业务规则要 query/index/校验"的字段塞这里（原则 5）。
       * 反例：把 quoteAmount / pickupAt 等业务字段塞 metadata.json → 索引失效 + 类型丢失。
       */
      metadata: Prisma.JsonValue
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["robotUnit"]>
    composites: {}
  }

  type RobotUnitGetPayload<S extends boolean | null | undefined | RobotUnitDefaultArgs> = $Result.GetResult<Prisma.$RobotUnitPayload, S>

  type RobotUnitCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RobotUnitFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RobotUnitCountAggregateInputType | true
    }

  export interface RobotUnitDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RobotUnit'], meta: { name: 'RobotUnit' } }
    /**
     * Find zero or one RobotUnit that matches the filter.
     * @param {RobotUnitFindUniqueArgs} args - Arguments to find a RobotUnit
     * @example
     * // Get one RobotUnit
     * const robotUnit = await prisma.robotUnit.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RobotUnitFindUniqueArgs>(args: SelectSubset<T, RobotUnitFindUniqueArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RobotUnit that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RobotUnitFindUniqueOrThrowArgs} args - Arguments to find a RobotUnit
     * @example
     * // Get one RobotUnit
     * const robotUnit = await prisma.robotUnit.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RobotUnitFindUniqueOrThrowArgs>(args: SelectSubset<T, RobotUnitFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotUnit 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 {RobotUnitFindFirstArgs} args - Arguments to find a RobotUnit
     * @example
     * // Get one RobotUnit
     * const robotUnit = await prisma.robotUnit.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RobotUnitFindFirstArgs>(args?: SelectSubset<T, RobotUnitFindFirstArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotUnit 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 {RobotUnitFindFirstOrThrowArgs} args - Arguments to find a RobotUnit
     * @example
     * // Get one RobotUnit
     * const robotUnit = await prisma.robotUnit.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RobotUnitFindFirstOrThrowArgs>(args?: SelectSubset<T, RobotUnitFindFirstOrThrowArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RobotUnits 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 {RobotUnitFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RobotUnits
     * const robotUnits = await prisma.robotUnit.findMany()
     * 
     * // Get first 10 RobotUnits
     * const robotUnits = await prisma.robotUnit.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const robotUnitWithIdOnly = await prisma.robotUnit.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RobotUnitFindManyArgs>(args?: SelectSubset<T, RobotUnitFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RobotUnit.
     * @param {RobotUnitCreateArgs} args - Arguments to create a RobotUnit.
     * @example
     * // Create one RobotUnit
     * const RobotUnit = await prisma.robotUnit.create({
     *   data: {
     *     // ... data to create a RobotUnit
     *   }
     * })
     * 
     */
    create<T extends RobotUnitCreateArgs>(args: SelectSubset<T, RobotUnitCreateArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RobotUnits.
     * @param {RobotUnitCreateManyArgs} args - Arguments to create many RobotUnits.
     * @example
     * // Create many RobotUnits
     * const robotUnit = await prisma.robotUnit.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RobotUnitCreateManyArgs>(args?: SelectSubset<T, RobotUnitCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RobotUnits and returns the data saved in the database.
     * @param {RobotUnitCreateManyAndReturnArgs} args - Arguments to create many RobotUnits.
     * @example
     * // Create many RobotUnits
     * const robotUnit = await prisma.robotUnit.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RobotUnits and only return the `id`
     * const robotUnitWithIdOnly = await prisma.robotUnit.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 RobotUnitCreateManyAndReturnArgs>(args?: SelectSubset<T, RobotUnitCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RobotUnit.
     * @param {RobotUnitDeleteArgs} args - Arguments to delete one RobotUnit.
     * @example
     * // Delete one RobotUnit
     * const RobotUnit = await prisma.robotUnit.delete({
     *   where: {
     *     // ... filter to delete one RobotUnit
     *   }
     * })
     * 
     */
    delete<T extends RobotUnitDeleteArgs>(args: SelectSubset<T, RobotUnitDeleteArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RobotUnit.
     * @param {RobotUnitUpdateArgs} args - Arguments to update one RobotUnit.
     * @example
     * // Update one RobotUnit
     * const robotUnit = await prisma.robotUnit.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RobotUnitUpdateArgs>(args: SelectSubset<T, RobotUnitUpdateArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RobotUnits.
     * @param {RobotUnitDeleteManyArgs} args - Arguments to filter RobotUnits to delete.
     * @example
     * // Delete a few RobotUnits
     * const { count } = await prisma.robotUnit.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RobotUnitDeleteManyArgs>(args?: SelectSubset<T, RobotUnitDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotUnits.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotUnitUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RobotUnits
     * const robotUnit = await prisma.robotUnit.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RobotUnitUpdateManyArgs>(args: SelectSubset<T, RobotUnitUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotUnits and returns the data updated in the database.
     * @param {RobotUnitUpdateManyAndReturnArgs} args - Arguments to update many RobotUnits.
     * @example
     * // Update many RobotUnits
     * const robotUnit = await prisma.robotUnit.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RobotUnits and only return the `id`
     * const robotUnitWithIdOnly = await prisma.robotUnit.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 RobotUnitUpdateManyAndReturnArgs>(args: SelectSubset<T, RobotUnitUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RobotUnit.
     * @param {RobotUnitUpsertArgs} args - Arguments to update or create a RobotUnit.
     * @example
     * // Update or create a RobotUnit
     * const robotUnit = await prisma.robotUnit.upsert({
     *   create: {
     *     // ... data to create a RobotUnit
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RobotUnit we want to update
     *   }
     * })
     */
    upsert<T extends RobotUnitUpsertArgs>(args: SelectSubset<T, RobotUnitUpsertArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RobotUnits.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotUnitCountArgs} args - Arguments to filter RobotUnits to count.
     * @example
     * // Count the number of RobotUnits
     * const count = await prisma.robotUnit.count({
     *   where: {
     *     // ... the filter for the RobotUnits we want to count
     *   }
     * })
    **/
    count<T extends RobotUnitCountArgs>(
      args?: Subset<T, RobotUnitCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RobotUnitCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RobotUnit.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotUnitAggregateArgs} 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 RobotUnitAggregateArgs>(args: Subset<T, RobotUnitAggregateArgs>): Prisma.PrismaPromise<GetRobotUnitAggregateType<T>>

    /**
     * Group by RobotUnit.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotUnitGroupByArgs} 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 RobotUnitGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RobotUnitGroupByArgs['orderBy'] }
        : { orderBy?: RobotUnitGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RobotUnitGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRobotUnitGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RobotUnit model
   */
  readonly fields: RobotUnitFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RobotUnit.
   * 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__RobotUnitClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    model<T extends RobotModelDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotModelDefaultArgs<ExtArgs>>): Prisma__RobotModelClient<$Result.GetResult<Prisma.$RobotModelPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    sku<T extends RobotSkuDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotSkuDefaultArgs<ExtArgs>>): Prisma__RobotSkuClient<$Result.GetResult<Prisma.$RobotSkuPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    purchaseOrder<T extends RobotUnit$purchaseOrderArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$purchaseOrderArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    purchaseOrderLine<T extends RobotUnit$purchaseOrderLineArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$purchaseOrderLineArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    snapshot<T extends RobotUnit$snapshotArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$snapshotArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    events<T extends RobotUnit$eventsArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$eventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    qualityLabels<T extends RobotUnit$qualityLabelsArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$qualityLabelsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    packageReadiness<T extends RobotUnit$packageReadinessArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$packageReadinessArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    inspections<T extends RobotUnit$inspectionsArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$inspectionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    logisticsLegs<T extends RobotUnit$logisticsLegsArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$logisticsLegsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    complianceCheck<T extends RobotUnit$complianceCheckArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$complianceCheckArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    rentalAgreements<T extends RobotUnit$rentalAgreementsArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$rentalAgreementsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    serviceTickets<T extends RobotUnit$serviceTicketsArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$serviceTicketsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    deliveryFulfillments<T extends RobotUnit$deliveryFulfillmentsArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$deliveryFulfillmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    salesOrderLines<T extends RobotUnit$salesOrderLinesArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$salesOrderLinesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    importAudit<T extends RobotUnit$importAuditArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$importAuditArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    paymentRecords<T extends RobotUnit$paymentRecordsArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnit$paymentRecordsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RobotUnit model
   */
  interface RobotUnitFieldRefs {
    readonly id: FieldRef<"RobotUnit", 'String'>
    readonly organizationId: FieldRef<"RobotUnit", 'String'>
    readonly version: FieldRef<"RobotUnit", 'Int'>
    readonly ffsn: FieldRef<"RobotUnit", 'String'>
    readonly ffsnDisplay: FieldRef<"RobotUnit", 'String'>
    readonly placeholderSnOrig: FieldRef<"RobotUnit", 'String'>
    readonly supplierSn: FieldRef<"RobotUnit", 'String'>
    readonly modelId: FieldRef<"RobotUnit", 'String'>
    readonly skuId: FieldRef<"RobotUnit", 'String'>
    readonly usageType: FieldRef<"RobotUnit", 'RobotUsageType'>
    readonly purchaseOrderId: FieldRef<"RobotUnit", 'String'>
    readonly purchaseOrderLineId: FieldRef<"RobotUnit", 'String'>
    readonly originalSupplierId: FieldRef<"RobotUnit", 'String'>
    readonly manufactureDate: FieldRef<"RobotUnit", 'DateTime'>
    readonly retiredAt: FieldRef<"RobotUnit", 'DateTime'>
    readonly disposalType: FieldRef<"RobotUnit", 'RobotDisposalType'>
    readonly disposalNotes: FieldRef<"RobotUnit", 'String'>
    readonly sapMaterialNo: FieldRef<"RobotUnit", 'String'>
    readonly metadata: FieldRef<"RobotUnit", 'Json'>
    readonly createdAt: FieldRef<"RobotUnit", 'DateTime'>
    readonly updatedAt: FieldRef<"RobotUnit", 'DateTime'>
    readonly createdById: FieldRef<"RobotUnit", 'String'>
    readonly deletedAt: FieldRef<"RobotUnit", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RobotUnit findUnique
   */
  export type RobotUnitFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnit to fetch.
     */
    where: RobotUnitWhereUniqueInput
  }

  /**
   * RobotUnit findUniqueOrThrow
   */
  export type RobotUnitFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnit to fetch.
     */
    where: RobotUnitWhereUniqueInput
  }

  /**
   * RobotUnit findFirst
   */
  export type RobotUnitFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnit to fetch.
     */
    where?: RobotUnitWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotUnits to fetch.
     */
    orderBy?: RobotUnitOrderByWithRelationInput | RobotUnitOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotUnits.
     */
    cursor?: RobotUnitWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotUnits 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` RobotUnits.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotUnits.
     */
    distinct?: RobotUnitScalarFieldEnum | RobotUnitScalarFieldEnum[]
  }

  /**
   * RobotUnit findFirstOrThrow
   */
  export type RobotUnitFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnit to fetch.
     */
    where?: RobotUnitWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotUnits to fetch.
     */
    orderBy?: RobotUnitOrderByWithRelationInput | RobotUnitOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotUnits.
     */
    cursor?: RobotUnitWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotUnits 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` RobotUnits.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotUnits.
     */
    distinct?: RobotUnitScalarFieldEnum | RobotUnitScalarFieldEnum[]
  }

  /**
   * RobotUnit findMany
   */
  export type RobotUnitFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnits to fetch.
     */
    where?: RobotUnitWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotUnits to fetch.
     */
    orderBy?: RobotUnitOrderByWithRelationInput | RobotUnitOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RobotUnits.
     */
    cursor?: RobotUnitWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotUnits 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` RobotUnits.
     */
    skip?: number
    distinct?: RobotUnitScalarFieldEnum | RobotUnitScalarFieldEnum[]
  }

  /**
   * RobotUnit create
   */
  export type RobotUnitCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * The data needed to create a RobotUnit.
     */
    data: XOR<RobotUnitCreateInput, RobotUnitUncheckedCreateInput>
  }

  /**
   * RobotUnit createMany
   */
  export type RobotUnitCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RobotUnits.
     */
    data: RobotUnitCreateManyInput | RobotUnitCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotUnit createManyAndReturn
   */
  export type RobotUnitCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * The data used to create many RobotUnits.
     */
    data: RobotUnitCreateManyInput | RobotUnitCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotUnit update
   */
  export type RobotUnitUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * The data needed to update a RobotUnit.
     */
    data: XOR<RobotUnitUpdateInput, RobotUnitUncheckedUpdateInput>
    /**
     * Choose, which RobotUnit to update.
     */
    where: RobotUnitWhereUniqueInput
  }

  /**
   * RobotUnit updateMany
   */
  export type RobotUnitUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RobotUnits.
     */
    data: XOR<RobotUnitUpdateManyMutationInput, RobotUnitUncheckedUpdateManyInput>
    /**
     * Filter which RobotUnits to update
     */
    where?: RobotUnitWhereInput
    /**
     * Limit how many RobotUnits to update.
     */
    limit?: number
  }

  /**
   * RobotUnit updateManyAndReturn
   */
  export type RobotUnitUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * The data used to update RobotUnits.
     */
    data: XOR<RobotUnitUpdateManyMutationInput, RobotUnitUncheckedUpdateManyInput>
    /**
     * Filter which RobotUnits to update
     */
    where?: RobotUnitWhereInput
    /**
     * Limit how many RobotUnits to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotUnit upsert
   */
  export type RobotUnitUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * The filter to search for the RobotUnit to update in case it exists.
     */
    where: RobotUnitWhereUniqueInput
    /**
     * In case the RobotUnit found by the `where` argument doesn't exist, create a new RobotUnit with this data.
     */
    create: XOR<RobotUnitCreateInput, RobotUnitUncheckedCreateInput>
    /**
     * In case the RobotUnit was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RobotUnitUpdateInput, RobotUnitUncheckedUpdateInput>
  }

  /**
   * RobotUnit delete
   */
  export type RobotUnitDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    /**
     * Filter which RobotUnit to delete.
     */
    where: RobotUnitWhereUniqueInput
  }

  /**
   * RobotUnit deleteMany
   */
  export type RobotUnitDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotUnits to delete
     */
    where?: RobotUnitWhereInput
    /**
     * Limit how many RobotUnits to delete.
     */
    limit?: number
  }

  /**
   * RobotUnit.purchaseOrder
   */
  export type RobotUnit$purchaseOrderArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    where?: PurchaseOrderWhereInput
  }

  /**
   * RobotUnit.purchaseOrderLine
   */
  export type RobotUnit$purchaseOrderLineArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    where?: PurchaseOrderLineWhereInput
  }

  /**
   * RobotUnit.snapshot
   */
  export type RobotUnit$snapshotArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    where?: RobotUnitSnapshotWhereInput
  }

  /**
   * RobotUnit.events
   */
  export type RobotUnit$eventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    where?: RobotLifecycleEventWhereInput
    orderBy?: RobotLifecycleEventOrderByWithRelationInput | RobotLifecycleEventOrderByWithRelationInput[]
    cursor?: RobotLifecycleEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotLifecycleEventScalarFieldEnum | RobotLifecycleEventScalarFieldEnum[]
  }

  /**
   * RobotUnit.qualityLabels
   */
  export type RobotUnit$qualityLabelsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    where?: QualityLabelRecordWhereInput
    orderBy?: QualityLabelRecordOrderByWithRelationInput | QualityLabelRecordOrderByWithRelationInput[]
    cursor?: QualityLabelRecordWhereUniqueInput
    take?: number
    skip?: number
    distinct?: QualityLabelRecordScalarFieldEnum | QualityLabelRecordScalarFieldEnum[]
  }

  /**
   * RobotUnit.packageReadiness
   */
  export type RobotUnit$packageReadinessArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    where?: RobotPackageReadinessWhereInput
  }

  /**
   * RobotUnit.inspections
   */
  export type RobotUnit$inspectionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    where?: InspectionRecordWhereInput
    orderBy?: InspectionRecordOrderByWithRelationInput | InspectionRecordOrderByWithRelationInput[]
    cursor?: InspectionRecordWhereUniqueInput
    take?: number
    skip?: number
    distinct?: InspectionRecordScalarFieldEnum | InspectionRecordScalarFieldEnum[]
  }

  /**
   * RobotUnit.logisticsLegs
   */
  export type RobotUnit$logisticsLegsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    where?: LogisticsLegWhereInput
    orderBy?: LogisticsLegOrderByWithRelationInput | LogisticsLegOrderByWithRelationInput[]
    cursor?: LogisticsLegWhereUniqueInput
    take?: number
    skip?: number
    distinct?: LogisticsLegScalarFieldEnum | LogisticsLegScalarFieldEnum[]
  }

  /**
   * RobotUnit.complianceCheck
   */
  export type RobotUnit$complianceCheckArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    where?: ComplianceCheckWhereInput
  }

  /**
   * RobotUnit.rentalAgreements
   */
  export type RobotUnit$rentalAgreementsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    where?: RentalAgreementWhereInput
    orderBy?: RentalAgreementOrderByWithRelationInput | RentalAgreementOrderByWithRelationInput[]
    cursor?: RentalAgreementWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RentalAgreementScalarFieldEnum | RentalAgreementScalarFieldEnum[]
  }

  /**
   * RobotUnit.serviceTickets
   */
  export type RobotUnit$serviceTicketsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    where?: ServiceTicketWhereInput
    orderBy?: ServiceTicketOrderByWithRelationInput | ServiceTicketOrderByWithRelationInput[]
    cursor?: ServiceTicketWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ServiceTicketScalarFieldEnum | ServiceTicketScalarFieldEnum[]
  }

  /**
   * RobotUnit.deliveryFulfillments
   */
  export type RobotUnit$deliveryFulfillmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    where?: DeliveryFulfillmentWhereInput
    orderBy?: DeliveryFulfillmentOrderByWithRelationInput | DeliveryFulfillmentOrderByWithRelationInput[]
    cursor?: DeliveryFulfillmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DeliveryFulfillmentScalarFieldEnum | DeliveryFulfillmentScalarFieldEnum[]
  }

  /**
   * RobotUnit.salesOrderLines
   */
  export type RobotUnit$salesOrderLinesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    where?: SalesOrderLineWhereInput
    orderBy?: SalesOrderLineOrderByWithRelationInput | SalesOrderLineOrderByWithRelationInput[]
    cursor?: SalesOrderLineWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SalesOrderLineScalarFieldEnum | SalesOrderLineScalarFieldEnum[]
  }

  /**
   * RobotUnit.importAudit
   */
  export type RobotUnit$importAuditArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    where?: RobotImportAuditWhereInput
  }

  /**
   * RobotUnit.paymentRecords
   */
  export type RobotUnit$paymentRecordsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    where?: PaymentRecordWhereInput
    orderBy?: PaymentRecordOrderByWithRelationInput | PaymentRecordOrderByWithRelationInput[]
    cursor?: PaymentRecordWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PaymentRecordScalarFieldEnum | PaymentRecordScalarFieldEnum[]
  }

  /**
   * RobotUnit without action
   */
  export type RobotUnitDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
  }


  /**
   * Model RobotUnitSnapshot
   */

  export type AggregateRobotUnitSnapshot = {
    _count: RobotUnitSnapshotCountAggregateOutputType | null
    _avg: RobotUnitSnapshotAvgAggregateOutputType | null
    _sum: RobotUnitSnapshotSumAggregateOutputType | null
    _min: RobotUnitSnapshotMinAggregateOutputType | null
    _max: RobotUnitSnapshotMaxAggregateOutputType | null
  }

  export type RobotUnitSnapshotAvgAggregateOutputType = {
    daysReadyForDelivery: number | null
    version: number | null
  }

  export type RobotUnitSnapshotSumAggregateOutputType = {
    daysReadyForDelivery: number | null
    version: number | null
  }

  export type RobotUnitSnapshotMinAggregateOutputType = {
    robotUnitId: string | null
    currentStage: $Enums.RobotLifecycleStage | null
    isHeld: boolean | null
    holdReason: string | null
    currentLocationId: string | null
    currentCustomerId: string | null
    currentSalesOrderId: string | null
    currentDeliveryRequestId: string | null
    currentSpecialistId: string | null
    physicalProductStatus: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery: number | null
    warrantyStatus: $Enums.RobotWarrantyStatus | null
    lastEventId: string | null
    lastEventAt: Date | null
    derivedAt: Date | null
    version: number | null
  }

  export type RobotUnitSnapshotMaxAggregateOutputType = {
    robotUnitId: string | null
    currentStage: $Enums.RobotLifecycleStage | null
    isHeld: boolean | null
    holdReason: string | null
    currentLocationId: string | null
    currentCustomerId: string | null
    currentSalesOrderId: string | null
    currentDeliveryRequestId: string | null
    currentSpecialistId: string | null
    physicalProductStatus: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery: number | null
    warrantyStatus: $Enums.RobotWarrantyStatus | null
    lastEventId: string | null
    lastEventAt: Date | null
    derivedAt: Date | null
    version: number | null
  }

  export type RobotUnitSnapshotCountAggregateOutputType = {
    robotUnitId: number
    currentStage: number
    isHeld: number
    holdReason: number
    currentLocationId: number
    currentCustomerId: number
    currentSalesOrderId: number
    currentDeliveryRequestId: number
    currentSpecialistId: number
    physicalProductStatus: number
    daysReadyForDelivery: number
    warrantyStatus: number
    lastEventId: number
    lastEventAt: number
    derivedAt: number
    version: number
    _all: number
  }


  export type RobotUnitSnapshotAvgAggregateInputType = {
    daysReadyForDelivery?: true
    version?: true
  }

  export type RobotUnitSnapshotSumAggregateInputType = {
    daysReadyForDelivery?: true
    version?: true
  }

  export type RobotUnitSnapshotMinAggregateInputType = {
    robotUnitId?: true
    currentStage?: true
    isHeld?: true
    holdReason?: true
    currentLocationId?: true
    currentCustomerId?: true
    currentSalesOrderId?: true
    currentDeliveryRequestId?: true
    currentSpecialistId?: true
    physicalProductStatus?: true
    daysReadyForDelivery?: true
    warrantyStatus?: true
    lastEventId?: true
    lastEventAt?: true
    derivedAt?: true
    version?: true
  }

  export type RobotUnitSnapshotMaxAggregateInputType = {
    robotUnitId?: true
    currentStage?: true
    isHeld?: true
    holdReason?: true
    currentLocationId?: true
    currentCustomerId?: true
    currentSalesOrderId?: true
    currentDeliveryRequestId?: true
    currentSpecialistId?: true
    physicalProductStatus?: true
    daysReadyForDelivery?: true
    warrantyStatus?: true
    lastEventId?: true
    lastEventAt?: true
    derivedAt?: true
    version?: true
  }

  export type RobotUnitSnapshotCountAggregateInputType = {
    robotUnitId?: true
    currentStage?: true
    isHeld?: true
    holdReason?: true
    currentLocationId?: true
    currentCustomerId?: true
    currentSalesOrderId?: true
    currentDeliveryRequestId?: true
    currentSpecialistId?: true
    physicalProductStatus?: true
    daysReadyForDelivery?: true
    warrantyStatus?: true
    lastEventId?: true
    lastEventAt?: true
    derivedAt?: true
    version?: true
    _all?: true
  }

  export type RobotUnitSnapshotAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotUnitSnapshot to aggregate.
     */
    where?: RobotUnitSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotUnitSnapshots to fetch.
     */
    orderBy?: RobotUnitSnapshotOrderByWithRelationInput | RobotUnitSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RobotUnitSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotUnitSnapshots 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` RobotUnitSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RobotUnitSnapshots
    **/
    _count?: true | RobotUnitSnapshotCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: RobotUnitSnapshotAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: RobotUnitSnapshotSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RobotUnitSnapshotMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RobotUnitSnapshotMaxAggregateInputType
  }

  export type GetRobotUnitSnapshotAggregateType<T extends RobotUnitSnapshotAggregateArgs> = {
        [P in keyof T & keyof AggregateRobotUnitSnapshot]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRobotUnitSnapshot[P]>
      : GetScalarType<T[P], AggregateRobotUnitSnapshot[P]>
  }




  export type RobotUnitSnapshotGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotUnitSnapshotWhereInput
    orderBy?: RobotUnitSnapshotOrderByWithAggregationInput | RobotUnitSnapshotOrderByWithAggregationInput[]
    by: RobotUnitSnapshotScalarFieldEnum[] | RobotUnitSnapshotScalarFieldEnum
    having?: RobotUnitSnapshotScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RobotUnitSnapshotCountAggregateInputType | true
    _avg?: RobotUnitSnapshotAvgAggregateInputType
    _sum?: RobotUnitSnapshotSumAggregateInputType
    _min?: RobotUnitSnapshotMinAggregateInputType
    _max?: RobotUnitSnapshotMaxAggregateInputType
  }

  export type RobotUnitSnapshotGroupByOutputType = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld: boolean
    holdReason: string | null
    currentLocationId: string | null
    currentCustomerId: string | null
    currentSalesOrderId: string | null
    currentDeliveryRequestId: string | null
    currentSpecialistId: string | null
    physicalProductStatus: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery: number | null
    warrantyStatus: $Enums.RobotWarrantyStatus | null
    lastEventId: string | null
    lastEventAt: Date | null
    derivedAt: Date
    version: number
    _count: RobotUnitSnapshotCountAggregateOutputType | null
    _avg: RobotUnitSnapshotAvgAggregateOutputType | null
    _sum: RobotUnitSnapshotSumAggregateOutputType | null
    _min: RobotUnitSnapshotMinAggregateOutputType | null
    _max: RobotUnitSnapshotMaxAggregateOutputType | null
  }

  type GetRobotUnitSnapshotGroupByPayload<T extends RobotUnitSnapshotGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RobotUnitSnapshotGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RobotUnitSnapshotGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RobotUnitSnapshotGroupByOutputType[P]>
            : GetScalarType<T[P], RobotUnitSnapshotGroupByOutputType[P]>
        }
      >
    >


  export type RobotUnitSnapshotSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    robotUnitId?: boolean
    currentStage?: boolean
    isHeld?: boolean
    holdReason?: boolean
    currentLocationId?: boolean
    currentCustomerId?: boolean
    currentSalesOrderId?: boolean
    currentDeliveryRequestId?: boolean
    currentSpecialistId?: boolean
    physicalProductStatus?: boolean
    daysReadyForDelivery?: boolean
    warrantyStatus?: boolean
    lastEventId?: boolean
    lastEventAt?: boolean
    derivedAt?: boolean
    version?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    lastEvent?: boolean | RobotUnitSnapshot$lastEventArgs<ExtArgs>
    salesOrder?: boolean | RobotUnitSnapshot$salesOrderArgs<ExtArgs>
    deliveryRequest?: boolean | RobotUnitSnapshot$deliveryRequestArgs<ExtArgs>
  }, ExtArgs["result"]["robotUnitSnapshot"]>

  export type RobotUnitSnapshotSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    robotUnitId?: boolean
    currentStage?: boolean
    isHeld?: boolean
    holdReason?: boolean
    currentLocationId?: boolean
    currentCustomerId?: boolean
    currentSalesOrderId?: boolean
    currentDeliveryRequestId?: boolean
    currentSpecialistId?: boolean
    physicalProductStatus?: boolean
    daysReadyForDelivery?: boolean
    warrantyStatus?: boolean
    lastEventId?: boolean
    lastEventAt?: boolean
    derivedAt?: boolean
    version?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    lastEvent?: boolean | RobotUnitSnapshot$lastEventArgs<ExtArgs>
    salesOrder?: boolean | RobotUnitSnapshot$salesOrderArgs<ExtArgs>
    deliveryRequest?: boolean | RobotUnitSnapshot$deliveryRequestArgs<ExtArgs>
  }, ExtArgs["result"]["robotUnitSnapshot"]>

  export type RobotUnitSnapshotSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    robotUnitId?: boolean
    currentStage?: boolean
    isHeld?: boolean
    holdReason?: boolean
    currentLocationId?: boolean
    currentCustomerId?: boolean
    currentSalesOrderId?: boolean
    currentDeliveryRequestId?: boolean
    currentSpecialistId?: boolean
    physicalProductStatus?: boolean
    daysReadyForDelivery?: boolean
    warrantyStatus?: boolean
    lastEventId?: boolean
    lastEventAt?: boolean
    derivedAt?: boolean
    version?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    lastEvent?: boolean | RobotUnitSnapshot$lastEventArgs<ExtArgs>
    salesOrder?: boolean | RobotUnitSnapshot$salesOrderArgs<ExtArgs>
    deliveryRequest?: boolean | RobotUnitSnapshot$deliveryRequestArgs<ExtArgs>
  }, ExtArgs["result"]["robotUnitSnapshot"]>

  export type RobotUnitSnapshotSelectScalar = {
    robotUnitId?: boolean
    currentStage?: boolean
    isHeld?: boolean
    holdReason?: boolean
    currentLocationId?: boolean
    currentCustomerId?: boolean
    currentSalesOrderId?: boolean
    currentDeliveryRequestId?: boolean
    currentSpecialistId?: boolean
    physicalProductStatus?: boolean
    daysReadyForDelivery?: boolean
    warrantyStatus?: boolean
    lastEventId?: boolean
    lastEventAt?: boolean
    derivedAt?: boolean
    version?: boolean
  }

  export type RobotUnitSnapshotOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"robotUnitId" | "currentStage" | "isHeld" | "holdReason" | "currentLocationId" | "currentCustomerId" | "currentSalesOrderId" | "currentDeliveryRequestId" | "currentSpecialistId" | "physicalProductStatus" | "daysReadyForDelivery" | "warrantyStatus" | "lastEventId" | "lastEventAt" | "derivedAt" | "version", ExtArgs["result"]["robotUnitSnapshot"]>
  export type RobotUnitSnapshotInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    lastEvent?: boolean | RobotUnitSnapshot$lastEventArgs<ExtArgs>
    salesOrder?: boolean | RobotUnitSnapshot$salesOrderArgs<ExtArgs>
    deliveryRequest?: boolean | RobotUnitSnapshot$deliveryRequestArgs<ExtArgs>
  }
  export type RobotUnitSnapshotIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    lastEvent?: boolean | RobotUnitSnapshot$lastEventArgs<ExtArgs>
    salesOrder?: boolean | RobotUnitSnapshot$salesOrderArgs<ExtArgs>
    deliveryRequest?: boolean | RobotUnitSnapshot$deliveryRequestArgs<ExtArgs>
  }
  export type RobotUnitSnapshotIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    lastEvent?: boolean | RobotUnitSnapshot$lastEventArgs<ExtArgs>
    salesOrder?: boolean | RobotUnitSnapshot$salesOrderArgs<ExtArgs>
    deliveryRequest?: boolean | RobotUnitSnapshot$deliveryRequestArgs<ExtArgs>
  }

  export type $RobotUnitSnapshotPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RobotUnitSnapshot"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
      lastEvent: Prisma.$RobotLifecycleEventPayload<ExtArgs> | null
      salesOrder: Prisma.$SalesOrderPayload<ExtArgs> | null
      deliveryRequest: Prisma.$DeliveryRequestPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      robotUnitId: string
      currentStage: $Enums.RobotLifecycleStage
      isHeld: boolean
      holdReason: string | null
      currentLocationId: string | null
      currentCustomerId: string | null
      currentSalesOrderId: string | null
      currentDeliveryRequestId: string | null
      currentSpecialistId: string | null
      physicalProductStatus: $Enums.RobotPhysicalStatus | null
      /**
       * ⚠️ 派生值物化（原则 12 反范式）— = today - readinessCompletedAt，**每天都会变**。
       * 当前为兼容性保留；建议改为查询时计算或建 view。下个 schema 改动周期删除。
       */
      daysReadyForDelivery: number | null
      warrantyStatus: $Enums.RobotWarrantyStatus | null
      /**
       * 派生缓存指针（原则 13 单一事实源例外）：events 是权威，本字段是 read-model 的 join 快捷。
       */
      lastEventId: string | null
      lastEventAt: Date | null
      derivedAt: Date
      /**
       * 乐观锁版本（snapshot 状态/位置改动）— change-stage / activate-sn / hold / unhold / move-location 等 API 走这个。
       * ⚠️ 跟 RobotUnit.version 是**两套** —— 改 RobotUnit 基础字段（PUT /:id）用 RobotUnit.version。
       * 详见 .learnings/2026-05-17-robot-unit-vs-snapshot-version.md
       */
      version: number
    }, ExtArgs["result"]["robotUnitSnapshot"]>
    composites: {}
  }

  type RobotUnitSnapshotGetPayload<S extends boolean | null | undefined | RobotUnitSnapshotDefaultArgs> = $Result.GetResult<Prisma.$RobotUnitSnapshotPayload, S>

  type RobotUnitSnapshotCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RobotUnitSnapshotFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RobotUnitSnapshotCountAggregateInputType | true
    }

  export interface RobotUnitSnapshotDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RobotUnitSnapshot'], meta: { name: 'RobotUnitSnapshot' } }
    /**
     * Find zero or one RobotUnitSnapshot that matches the filter.
     * @param {RobotUnitSnapshotFindUniqueArgs} args - Arguments to find a RobotUnitSnapshot
     * @example
     * // Get one RobotUnitSnapshot
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RobotUnitSnapshotFindUniqueArgs>(args: SelectSubset<T, RobotUnitSnapshotFindUniqueArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RobotUnitSnapshot that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RobotUnitSnapshotFindUniqueOrThrowArgs} args - Arguments to find a RobotUnitSnapshot
     * @example
     * // Get one RobotUnitSnapshot
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RobotUnitSnapshotFindUniqueOrThrowArgs>(args: SelectSubset<T, RobotUnitSnapshotFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotUnitSnapshot 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 {RobotUnitSnapshotFindFirstArgs} args - Arguments to find a RobotUnitSnapshot
     * @example
     * // Get one RobotUnitSnapshot
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RobotUnitSnapshotFindFirstArgs>(args?: SelectSubset<T, RobotUnitSnapshotFindFirstArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotUnitSnapshot 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 {RobotUnitSnapshotFindFirstOrThrowArgs} args - Arguments to find a RobotUnitSnapshot
     * @example
     * // Get one RobotUnitSnapshot
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RobotUnitSnapshotFindFirstOrThrowArgs>(args?: SelectSubset<T, RobotUnitSnapshotFindFirstOrThrowArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RobotUnitSnapshots 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 {RobotUnitSnapshotFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RobotUnitSnapshots
     * const robotUnitSnapshots = await prisma.robotUnitSnapshot.findMany()
     * 
     * // Get first 10 RobotUnitSnapshots
     * const robotUnitSnapshots = await prisma.robotUnitSnapshot.findMany({ take: 10 })
     * 
     * // Only select the `robotUnitId`
     * const robotUnitSnapshotWithRobotUnitIdOnly = await prisma.robotUnitSnapshot.findMany({ select: { robotUnitId: true } })
     * 
     */
    findMany<T extends RobotUnitSnapshotFindManyArgs>(args?: SelectSubset<T, RobotUnitSnapshotFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RobotUnitSnapshot.
     * @param {RobotUnitSnapshotCreateArgs} args - Arguments to create a RobotUnitSnapshot.
     * @example
     * // Create one RobotUnitSnapshot
     * const RobotUnitSnapshot = await prisma.robotUnitSnapshot.create({
     *   data: {
     *     // ... data to create a RobotUnitSnapshot
     *   }
     * })
     * 
     */
    create<T extends RobotUnitSnapshotCreateArgs>(args: SelectSubset<T, RobotUnitSnapshotCreateArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RobotUnitSnapshots.
     * @param {RobotUnitSnapshotCreateManyArgs} args - Arguments to create many RobotUnitSnapshots.
     * @example
     * // Create many RobotUnitSnapshots
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RobotUnitSnapshotCreateManyArgs>(args?: SelectSubset<T, RobotUnitSnapshotCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RobotUnitSnapshots and returns the data saved in the database.
     * @param {RobotUnitSnapshotCreateManyAndReturnArgs} args - Arguments to create many RobotUnitSnapshots.
     * @example
     * // Create many RobotUnitSnapshots
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RobotUnitSnapshots and only return the `robotUnitId`
     * const robotUnitSnapshotWithRobotUnitIdOnly = await prisma.robotUnitSnapshot.createManyAndReturn({
     *   select: { robotUnitId: 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 RobotUnitSnapshotCreateManyAndReturnArgs>(args?: SelectSubset<T, RobotUnitSnapshotCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RobotUnitSnapshot.
     * @param {RobotUnitSnapshotDeleteArgs} args - Arguments to delete one RobotUnitSnapshot.
     * @example
     * // Delete one RobotUnitSnapshot
     * const RobotUnitSnapshot = await prisma.robotUnitSnapshot.delete({
     *   where: {
     *     // ... filter to delete one RobotUnitSnapshot
     *   }
     * })
     * 
     */
    delete<T extends RobotUnitSnapshotDeleteArgs>(args: SelectSubset<T, RobotUnitSnapshotDeleteArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RobotUnitSnapshot.
     * @param {RobotUnitSnapshotUpdateArgs} args - Arguments to update one RobotUnitSnapshot.
     * @example
     * // Update one RobotUnitSnapshot
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RobotUnitSnapshotUpdateArgs>(args: SelectSubset<T, RobotUnitSnapshotUpdateArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RobotUnitSnapshots.
     * @param {RobotUnitSnapshotDeleteManyArgs} args - Arguments to filter RobotUnitSnapshots to delete.
     * @example
     * // Delete a few RobotUnitSnapshots
     * const { count } = await prisma.robotUnitSnapshot.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RobotUnitSnapshotDeleteManyArgs>(args?: SelectSubset<T, RobotUnitSnapshotDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotUnitSnapshots.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotUnitSnapshotUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RobotUnitSnapshots
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RobotUnitSnapshotUpdateManyArgs>(args: SelectSubset<T, RobotUnitSnapshotUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotUnitSnapshots and returns the data updated in the database.
     * @param {RobotUnitSnapshotUpdateManyAndReturnArgs} args - Arguments to update many RobotUnitSnapshots.
     * @example
     * // Update many RobotUnitSnapshots
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RobotUnitSnapshots and only return the `robotUnitId`
     * const robotUnitSnapshotWithRobotUnitIdOnly = await prisma.robotUnitSnapshot.updateManyAndReturn({
     *   select: { robotUnitId: 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 RobotUnitSnapshotUpdateManyAndReturnArgs>(args: SelectSubset<T, RobotUnitSnapshotUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RobotUnitSnapshot.
     * @param {RobotUnitSnapshotUpsertArgs} args - Arguments to update or create a RobotUnitSnapshot.
     * @example
     * // Update or create a RobotUnitSnapshot
     * const robotUnitSnapshot = await prisma.robotUnitSnapshot.upsert({
     *   create: {
     *     // ... data to create a RobotUnitSnapshot
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RobotUnitSnapshot we want to update
     *   }
     * })
     */
    upsert<T extends RobotUnitSnapshotUpsertArgs>(args: SelectSubset<T, RobotUnitSnapshotUpsertArgs<ExtArgs>>): Prisma__RobotUnitSnapshotClient<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RobotUnitSnapshots.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotUnitSnapshotCountArgs} args - Arguments to filter RobotUnitSnapshots to count.
     * @example
     * // Count the number of RobotUnitSnapshots
     * const count = await prisma.robotUnitSnapshot.count({
     *   where: {
     *     // ... the filter for the RobotUnitSnapshots we want to count
     *   }
     * })
    **/
    count<T extends RobotUnitSnapshotCountArgs>(
      args?: Subset<T, RobotUnitSnapshotCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RobotUnitSnapshotCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RobotUnitSnapshot.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotUnitSnapshotAggregateArgs} 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 RobotUnitSnapshotAggregateArgs>(args: Subset<T, RobotUnitSnapshotAggregateArgs>): Prisma.PrismaPromise<GetRobotUnitSnapshotAggregateType<T>>

    /**
     * Group by RobotUnitSnapshot.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotUnitSnapshotGroupByArgs} 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 RobotUnitSnapshotGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RobotUnitSnapshotGroupByArgs['orderBy'] }
        : { orderBy?: RobotUnitSnapshotGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RobotUnitSnapshotGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRobotUnitSnapshotGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RobotUnitSnapshot model
   */
  readonly fields: RobotUnitSnapshotFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RobotUnitSnapshot.
   * 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__RobotUnitSnapshotClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    lastEvent<T extends RobotUnitSnapshot$lastEventArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitSnapshot$lastEventArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    salesOrder<T extends RobotUnitSnapshot$salesOrderArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitSnapshot$salesOrderArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    deliveryRequest<T extends RobotUnitSnapshot$deliveryRequestArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitSnapshot$deliveryRequestArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RobotUnitSnapshot model
   */
  interface RobotUnitSnapshotFieldRefs {
    readonly robotUnitId: FieldRef<"RobotUnitSnapshot", 'String'>
    readonly currentStage: FieldRef<"RobotUnitSnapshot", 'RobotLifecycleStage'>
    readonly isHeld: FieldRef<"RobotUnitSnapshot", 'Boolean'>
    readonly holdReason: FieldRef<"RobotUnitSnapshot", 'String'>
    readonly currentLocationId: FieldRef<"RobotUnitSnapshot", 'String'>
    readonly currentCustomerId: FieldRef<"RobotUnitSnapshot", 'String'>
    readonly currentSalesOrderId: FieldRef<"RobotUnitSnapshot", 'String'>
    readonly currentDeliveryRequestId: FieldRef<"RobotUnitSnapshot", 'String'>
    readonly currentSpecialistId: FieldRef<"RobotUnitSnapshot", 'String'>
    readonly physicalProductStatus: FieldRef<"RobotUnitSnapshot", 'RobotPhysicalStatus'>
    readonly daysReadyForDelivery: FieldRef<"RobotUnitSnapshot", 'Int'>
    readonly warrantyStatus: FieldRef<"RobotUnitSnapshot", 'RobotWarrantyStatus'>
    readonly lastEventId: FieldRef<"RobotUnitSnapshot", 'String'>
    readonly lastEventAt: FieldRef<"RobotUnitSnapshot", 'DateTime'>
    readonly derivedAt: FieldRef<"RobotUnitSnapshot", 'DateTime'>
    readonly version: FieldRef<"RobotUnitSnapshot", 'Int'>
  }
    

  // Custom InputTypes
  /**
   * RobotUnitSnapshot findUnique
   */
  export type RobotUnitSnapshotFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnitSnapshot to fetch.
     */
    where: RobotUnitSnapshotWhereUniqueInput
  }

  /**
   * RobotUnitSnapshot findUniqueOrThrow
   */
  export type RobotUnitSnapshotFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnitSnapshot to fetch.
     */
    where: RobotUnitSnapshotWhereUniqueInput
  }

  /**
   * RobotUnitSnapshot findFirst
   */
  export type RobotUnitSnapshotFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnitSnapshot to fetch.
     */
    where?: RobotUnitSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotUnitSnapshots to fetch.
     */
    orderBy?: RobotUnitSnapshotOrderByWithRelationInput | RobotUnitSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotUnitSnapshots.
     */
    cursor?: RobotUnitSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotUnitSnapshots 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` RobotUnitSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotUnitSnapshots.
     */
    distinct?: RobotUnitSnapshotScalarFieldEnum | RobotUnitSnapshotScalarFieldEnum[]
  }

  /**
   * RobotUnitSnapshot findFirstOrThrow
   */
  export type RobotUnitSnapshotFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnitSnapshot to fetch.
     */
    where?: RobotUnitSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotUnitSnapshots to fetch.
     */
    orderBy?: RobotUnitSnapshotOrderByWithRelationInput | RobotUnitSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotUnitSnapshots.
     */
    cursor?: RobotUnitSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotUnitSnapshots 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` RobotUnitSnapshots.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotUnitSnapshots.
     */
    distinct?: RobotUnitSnapshotScalarFieldEnum | RobotUnitSnapshotScalarFieldEnum[]
  }

  /**
   * RobotUnitSnapshot findMany
   */
  export type RobotUnitSnapshotFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * Filter, which RobotUnitSnapshots to fetch.
     */
    where?: RobotUnitSnapshotWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotUnitSnapshots to fetch.
     */
    orderBy?: RobotUnitSnapshotOrderByWithRelationInput | RobotUnitSnapshotOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RobotUnitSnapshots.
     */
    cursor?: RobotUnitSnapshotWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotUnitSnapshots 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` RobotUnitSnapshots.
     */
    skip?: number
    distinct?: RobotUnitSnapshotScalarFieldEnum | RobotUnitSnapshotScalarFieldEnum[]
  }

  /**
   * RobotUnitSnapshot create
   */
  export type RobotUnitSnapshotCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * The data needed to create a RobotUnitSnapshot.
     */
    data: XOR<RobotUnitSnapshotCreateInput, RobotUnitSnapshotUncheckedCreateInput>
  }

  /**
   * RobotUnitSnapshot createMany
   */
  export type RobotUnitSnapshotCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RobotUnitSnapshots.
     */
    data: RobotUnitSnapshotCreateManyInput | RobotUnitSnapshotCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotUnitSnapshot createManyAndReturn
   */
  export type RobotUnitSnapshotCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * The data used to create many RobotUnitSnapshots.
     */
    data: RobotUnitSnapshotCreateManyInput | RobotUnitSnapshotCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotUnitSnapshot update
   */
  export type RobotUnitSnapshotUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * The data needed to update a RobotUnitSnapshot.
     */
    data: XOR<RobotUnitSnapshotUpdateInput, RobotUnitSnapshotUncheckedUpdateInput>
    /**
     * Choose, which RobotUnitSnapshot to update.
     */
    where: RobotUnitSnapshotWhereUniqueInput
  }

  /**
   * RobotUnitSnapshot updateMany
   */
  export type RobotUnitSnapshotUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RobotUnitSnapshots.
     */
    data: XOR<RobotUnitSnapshotUpdateManyMutationInput, RobotUnitSnapshotUncheckedUpdateManyInput>
    /**
     * Filter which RobotUnitSnapshots to update
     */
    where?: RobotUnitSnapshotWhereInput
    /**
     * Limit how many RobotUnitSnapshots to update.
     */
    limit?: number
  }

  /**
   * RobotUnitSnapshot updateManyAndReturn
   */
  export type RobotUnitSnapshotUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * The data used to update RobotUnitSnapshots.
     */
    data: XOR<RobotUnitSnapshotUpdateManyMutationInput, RobotUnitSnapshotUncheckedUpdateManyInput>
    /**
     * Filter which RobotUnitSnapshots to update
     */
    where?: RobotUnitSnapshotWhereInput
    /**
     * Limit how many RobotUnitSnapshots to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotUnitSnapshot upsert
   */
  export type RobotUnitSnapshotUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * The filter to search for the RobotUnitSnapshot to update in case it exists.
     */
    where: RobotUnitSnapshotWhereUniqueInput
    /**
     * In case the RobotUnitSnapshot found by the `where` argument doesn't exist, create a new RobotUnitSnapshot with this data.
     */
    create: XOR<RobotUnitSnapshotCreateInput, RobotUnitSnapshotUncheckedCreateInput>
    /**
     * In case the RobotUnitSnapshot was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RobotUnitSnapshotUpdateInput, RobotUnitSnapshotUncheckedUpdateInput>
  }

  /**
   * RobotUnitSnapshot delete
   */
  export type RobotUnitSnapshotDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    /**
     * Filter which RobotUnitSnapshot to delete.
     */
    where: RobotUnitSnapshotWhereUniqueInput
  }

  /**
   * RobotUnitSnapshot deleteMany
   */
  export type RobotUnitSnapshotDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotUnitSnapshots to delete
     */
    where?: RobotUnitSnapshotWhereInput
    /**
     * Limit how many RobotUnitSnapshots to delete.
     */
    limit?: number
  }

  /**
   * RobotUnitSnapshot.lastEvent
   */
  export type RobotUnitSnapshot$lastEventArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    where?: RobotLifecycleEventWhereInput
  }

  /**
   * RobotUnitSnapshot.salesOrder
   */
  export type RobotUnitSnapshot$salesOrderArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    where?: SalesOrderWhereInput
  }

  /**
   * RobotUnitSnapshot.deliveryRequest
   */
  export type RobotUnitSnapshot$deliveryRequestArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    where?: DeliveryRequestWhereInput
  }

  /**
   * RobotUnitSnapshot without action
   */
  export type RobotUnitSnapshotDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
  }


  /**
   * Model RobotLifecycleEvent
   */

  export type AggregateRobotLifecycleEvent = {
    _count: RobotLifecycleEventCountAggregateOutputType | null
    _min: RobotLifecycleEventMinAggregateOutputType | null
    _max: RobotLifecycleEventMaxAggregateOutputType | null
  }

  export type RobotLifecycleEventMinAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    eventType: $Enums.RobotLifecycleEventType | null
    fromStage: $Enums.RobotLifecycleStage | null
    toStage: $Enums.RobotLifecycleStage | null
    fromLocationId: string | null
    toLocationId: string | null
    actorUserId: string | null
    partnerId: string | null
    customerId: string | null
    relatedType: $Enums.RobotEventRelatedType | null
    relatedId: string | null
    notes: string | null
    occurredAt: Date | null
    organizationId: string | null
    createdAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotLifecycleEventMaxAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    eventType: $Enums.RobotLifecycleEventType | null
    fromStage: $Enums.RobotLifecycleStage | null
    toStage: $Enums.RobotLifecycleStage | null
    fromLocationId: string | null
    toLocationId: string | null
    actorUserId: string | null
    partnerId: string | null
    customerId: string | null
    relatedType: $Enums.RobotEventRelatedType | null
    relatedId: string | null
    notes: string | null
    occurredAt: Date | null
    organizationId: string | null
    createdAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotLifecycleEventCountAggregateOutputType = {
    id: number
    robotUnitId: number
    eventType: number
    fromStage: number
    toStage: number
    fromLocationId: number
    toLocationId: number
    actorUserId: number
    partnerId: number
    customerId: number
    relatedType: number
    relatedId: number
    payload: number
    notes: number
    occurredAt: number
    organizationId: number
    createdAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type RobotLifecycleEventMinAggregateInputType = {
    id?: true
    robotUnitId?: true
    eventType?: true
    fromStage?: true
    toStage?: true
    fromLocationId?: true
    toLocationId?: true
    actorUserId?: true
    partnerId?: true
    customerId?: true
    relatedType?: true
    relatedId?: true
    notes?: true
    occurredAt?: true
    organizationId?: true
    createdAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotLifecycleEventMaxAggregateInputType = {
    id?: true
    robotUnitId?: true
    eventType?: true
    fromStage?: true
    toStage?: true
    fromLocationId?: true
    toLocationId?: true
    actorUserId?: true
    partnerId?: true
    customerId?: true
    relatedType?: true
    relatedId?: true
    notes?: true
    occurredAt?: true
    organizationId?: true
    createdAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotLifecycleEventCountAggregateInputType = {
    id?: true
    robotUnitId?: true
    eventType?: true
    fromStage?: true
    toStage?: true
    fromLocationId?: true
    toLocationId?: true
    actorUserId?: true
    partnerId?: true
    customerId?: true
    relatedType?: true
    relatedId?: true
    payload?: true
    notes?: true
    occurredAt?: true
    organizationId?: true
    createdAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type RobotLifecycleEventAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotLifecycleEvent to aggregate.
     */
    where?: RobotLifecycleEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotLifecycleEvents to fetch.
     */
    orderBy?: RobotLifecycleEventOrderByWithRelationInput | RobotLifecycleEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RobotLifecycleEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotLifecycleEvents 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` RobotLifecycleEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RobotLifecycleEvents
    **/
    _count?: true | RobotLifecycleEventCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RobotLifecycleEventMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RobotLifecycleEventMaxAggregateInputType
  }

  export type GetRobotLifecycleEventAggregateType<T extends RobotLifecycleEventAggregateArgs> = {
        [P in keyof T & keyof AggregateRobotLifecycleEvent]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRobotLifecycleEvent[P]>
      : GetScalarType<T[P], AggregateRobotLifecycleEvent[P]>
  }




  export type RobotLifecycleEventGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotLifecycleEventWhereInput
    orderBy?: RobotLifecycleEventOrderByWithAggregationInput | RobotLifecycleEventOrderByWithAggregationInput[]
    by: RobotLifecycleEventScalarFieldEnum[] | RobotLifecycleEventScalarFieldEnum
    having?: RobotLifecycleEventScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RobotLifecycleEventCountAggregateInputType | true
    _min?: RobotLifecycleEventMinAggregateInputType
    _max?: RobotLifecycleEventMaxAggregateInputType
  }

  export type RobotLifecycleEventGroupByOutputType = {
    id: string
    robotUnitId: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage: $Enums.RobotLifecycleStage | null
    toStage: $Enums.RobotLifecycleStage | null
    fromLocationId: string | null
    toLocationId: string | null
    actorUserId: string | null
    partnerId: string | null
    customerId: string | null
    relatedType: $Enums.RobotEventRelatedType | null
    relatedId: string | null
    payload: JsonValue
    notes: string | null
    occurredAt: Date
    organizationId: string
    createdAt: Date
    createdById: string
    deletedAt: Date | null
    _count: RobotLifecycleEventCountAggregateOutputType | null
    _min: RobotLifecycleEventMinAggregateOutputType | null
    _max: RobotLifecycleEventMaxAggregateOutputType | null
  }

  type GetRobotLifecycleEventGroupByPayload<T extends RobotLifecycleEventGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RobotLifecycleEventGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RobotLifecycleEventGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RobotLifecycleEventGroupByOutputType[P]>
            : GetScalarType<T[P], RobotLifecycleEventGroupByOutputType[P]>
        }
      >
    >


  export type RobotLifecycleEventSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    eventType?: boolean
    fromStage?: boolean
    toStage?: boolean
    fromLocationId?: boolean
    toLocationId?: boolean
    actorUserId?: boolean
    partnerId?: boolean
    customerId?: boolean
    relatedType?: boolean
    relatedId?: boolean
    payload?: boolean
    notes?: boolean
    occurredAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    snapshotsAsLastEvent?: boolean | RobotLifecycleEvent$snapshotsAsLastEventArgs<ExtArgs>
    _count?: boolean | RobotLifecycleEventCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotLifecycleEvent"]>

  export type RobotLifecycleEventSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    eventType?: boolean
    fromStage?: boolean
    toStage?: boolean
    fromLocationId?: boolean
    toLocationId?: boolean
    actorUserId?: boolean
    partnerId?: boolean
    customerId?: boolean
    relatedType?: boolean
    relatedId?: boolean
    payload?: boolean
    notes?: boolean
    occurredAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotLifecycleEvent"]>

  export type RobotLifecycleEventSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    eventType?: boolean
    fromStage?: boolean
    toStage?: boolean
    fromLocationId?: boolean
    toLocationId?: boolean
    actorUserId?: boolean
    partnerId?: boolean
    customerId?: boolean
    relatedType?: boolean
    relatedId?: boolean
    payload?: boolean
    notes?: boolean
    occurredAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotLifecycleEvent"]>

  export type RobotLifecycleEventSelectScalar = {
    id?: boolean
    robotUnitId?: boolean
    eventType?: boolean
    fromStage?: boolean
    toStage?: boolean
    fromLocationId?: boolean
    toLocationId?: boolean
    actorUserId?: boolean
    partnerId?: boolean
    customerId?: boolean
    relatedType?: boolean
    relatedId?: boolean
    payload?: boolean
    notes?: boolean
    occurredAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type RobotLifecycleEventOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "robotUnitId" | "eventType" | "fromStage" | "toStage" | "fromLocationId" | "toLocationId" | "actorUserId" | "partnerId" | "customerId" | "relatedType" | "relatedId" | "payload" | "notes" | "occurredAt" | "organizationId" | "createdAt" | "createdById" | "deletedAt", ExtArgs["result"]["robotLifecycleEvent"]>
  export type RobotLifecycleEventInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    snapshotsAsLastEvent?: boolean | RobotLifecycleEvent$snapshotsAsLastEventArgs<ExtArgs>
    _count?: boolean | RobotLifecycleEventCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type RobotLifecycleEventIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type RobotLifecycleEventIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $RobotLifecycleEventPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RobotLifecycleEvent"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
      snapshotsAsLastEvent: Prisma.$RobotUnitSnapshotPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      robotUnitId: string
      eventType: $Enums.RobotLifecycleEventType
      fromStage: $Enums.RobotLifecycleStage | null
      toStage: $Enums.RobotLifecycleStage | null
      fromLocationId: string | null
      toLocationId: string | null
      /**
       * 业务字段：触发事件的人（业务 actor）。99% 等于 createdById，差异场景：
       * - 系统自动事件（cron / 投影）：actorUserId = NULL, createdById = system-user-id
       * - 管理员代客户操作：actorUserId = customer-user-id, createdById = admin-user-id
       */
      actorUserId: string | null
      partnerId: string | null
      customerId: string | null
      relatedType: $Enums.RobotEventRelatedType | null
      relatedId: string | null
      payload: Prisma.JsonValue
      notes: string | null
      occurredAt: Date
      organizationId: string
      createdAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["robotLifecycleEvent"]>
    composites: {}
  }

  type RobotLifecycleEventGetPayload<S extends boolean | null | undefined | RobotLifecycleEventDefaultArgs> = $Result.GetResult<Prisma.$RobotLifecycleEventPayload, S>

  type RobotLifecycleEventCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RobotLifecycleEventFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RobotLifecycleEventCountAggregateInputType | true
    }

  export interface RobotLifecycleEventDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RobotLifecycleEvent'], meta: { name: 'RobotLifecycleEvent' } }
    /**
     * Find zero or one RobotLifecycleEvent that matches the filter.
     * @param {RobotLifecycleEventFindUniqueArgs} args - Arguments to find a RobotLifecycleEvent
     * @example
     * // Get one RobotLifecycleEvent
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RobotLifecycleEventFindUniqueArgs>(args: SelectSubset<T, RobotLifecycleEventFindUniqueArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RobotLifecycleEvent that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RobotLifecycleEventFindUniqueOrThrowArgs} args - Arguments to find a RobotLifecycleEvent
     * @example
     * // Get one RobotLifecycleEvent
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RobotLifecycleEventFindUniqueOrThrowArgs>(args: SelectSubset<T, RobotLifecycleEventFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotLifecycleEvent 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 {RobotLifecycleEventFindFirstArgs} args - Arguments to find a RobotLifecycleEvent
     * @example
     * // Get one RobotLifecycleEvent
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RobotLifecycleEventFindFirstArgs>(args?: SelectSubset<T, RobotLifecycleEventFindFirstArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotLifecycleEvent 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 {RobotLifecycleEventFindFirstOrThrowArgs} args - Arguments to find a RobotLifecycleEvent
     * @example
     * // Get one RobotLifecycleEvent
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RobotLifecycleEventFindFirstOrThrowArgs>(args?: SelectSubset<T, RobotLifecycleEventFindFirstOrThrowArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RobotLifecycleEvents 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 {RobotLifecycleEventFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RobotLifecycleEvents
     * const robotLifecycleEvents = await prisma.robotLifecycleEvent.findMany()
     * 
     * // Get first 10 RobotLifecycleEvents
     * const robotLifecycleEvents = await prisma.robotLifecycleEvent.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const robotLifecycleEventWithIdOnly = await prisma.robotLifecycleEvent.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RobotLifecycleEventFindManyArgs>(args?: SelectSubset<T, RobotLifecycleEventFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RobotLifecycleEvent.
     * @param {RobotLifecycleEventCreateArgs} args - Arguments to create a RobotLifecycleEvent.
     * @example
     * // Create one RobotLifecycleEvent
     * const RobotLifecycleEvent = await prisma.robotLifecycleEvent.create({
     *   data: {
     *     // ... data to create a RobotLifecycleEvent
     *   }
     * })
     * 
     */
    create<T extends RobotLifecycleEventCreateArgs>(args: SelectSubset<T, RobotLifecycleEventCreateArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RobotLifecycleEvents.
     * @param {RobotLifecycleEventCreateManyArgs} args - Arguments to create many RobotLifecycleEvents.
     * @example
     * // Create many RobotLifecycleEvents
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RobotLifecycleEventCreateManyArgs>(args?: SelectSubset<T, RobotLifecycleEventCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RobotLifecycleEvents and returns the data saved in the database.
     * @param {RobotLifecycleEventCreateManyAndReturnArgs} args - Arguments to create many RobotLifecycleEvents.
     * @example
     * // Create many RobotLifecycleEvents
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RobotLifecycleEvents and only return the `id`
     * const robotLifecycleEventWithIdOnly = await prisma.robotLifecycleEvent.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 RobotLifecycleEventCreateManyAndReturnArgs>(args?: SelectSubset<T, RobotLifecycleEventCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RobotLifecycleEvent.
     * @param {RobotLifecycleEventDeleteArgs} args - Arguments to delete one RobotLifecycleEvent.
     * @example
     * // Delete one RobotLifecycleEvent
     * const RobotLifecycleEvent = await prisma.robotLifecycleEvent.delete({
     *   where: {
     *     // ... filter to delete one RobotLifecycleEvent
     *   }
     * })
     * 
     */
    delete<T extends RobotLifecycleEventDeleteArgs>(args: SelectSubset<T, RobotLifecycleEventDeleteArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RobotLifecycleEvent.
     * @param {RobotLifecycleEventUpdateArgs} args - Arguments to update one RobotLifecycleEvent.
     * @example
     * // Update one RobotLifecycleEvent
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RobotLifecycleEventUpdateArgs>(args: SelectSubset<T, RobotLifecycleEventUpdateArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RobotLifecycleEvents.
     * @param {RobotLifecycleEventDeleteManyArgs} args - Arguments to filter RobotLifecycleEvents to delete.
     * @example
     * // Delete a few RobotLifecycleEvents
     * const { count } = await prisma.robotLifecycleEvent.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RobotLifecycleEventDeleteManyArgs>(args?: SelectSubset<T, RobotLifecycleEventDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotLifecycleEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotLifecycleEventUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RobotLifecycleEvents
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RobotLifecycleEventUpdateManyArgs>(args: SelectSubset<T, RobotLifecycleEventUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotLifecycleEvents and returns the data updated in the database.
     * @param {RobotLifecycleEventUpdateManyAndReturnArgs} args - Arguments to update many RobotLifecycleEvents.
     * @example
     * // Update many RobotLifecycleEvents
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RobotLifecycleEvents and only return the `id`
     * const robotLifecycleEventWithIdOnly = await prisma.robotLifecycleEvent.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 RobotLifecycleEventUpdateManyAndReturnArgs>(args: SelectSubset<T, RobotLifecycleEventUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RobotLifecycleEvent.
     * @param {RobotLifecycleEventUpsertArgs} args - Arguments to update or create a RobotLifecycleEvent.
     * @example
     * // Update or create a RobotLifecycleEvent
     * const robotLifecycleEvent = await prisma.robotLifecycleEvent.upsert({
     *   create: {
     *     // ... data to create a RobotLifecycleEvent
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RobotLifecycleEvent we want to update
     *   }
     * })
     */
    upsert<T extends RobotLifecycleEventUpsertArgs>(args: SelectSubset<T, RobotLifecycleEventUpsertArgs<ExtArgs>>): Prisma__RobotLifecycleEventClient<$Result.GetResult<Prisma.$RobotLifecycleEventPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RobotLifecycleEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotLifecycleEventCountArgs} args - Arguments to filter RobotLifecycleEvents to count.
     * @example
     * // Count the number of RobotLifecycleEvents
     * const count = await prisma.robotLifecycleEvent.count({
     *   where: {
     *     // ... the filter for the RobotLifecycleEvents we want to count
     *   }
     * })
    **/
    count<T extends RobotLifecycleEventCountArgs>(
      args?: Subset<T, RobotLifecycleEventCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RobotLifecycleEventCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RobotLifecycleEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotLifecycleEventAggregateArgs} 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 RobotLifecycleEventAggregateArgs>(args: Subset<T, RobotLifecycleEventAggregateArgs>): Prisma.PrismaPromise<GetRobotLifecycleEventAggregateType<T>>

    /**
     * Group by RobotLifecycleEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotLifecycleEventGroupByArgs} 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 RobotLifecycleEventGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RobotLifecycleEventGroupByArgs['orderBy'] }
        : { orderBy?: RobotLifecycleEventGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RobotLifecycleEventGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRobotLifecycleEventGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RobotLifecycleEvent model
   */
  readonly fields: RobotLifecycleEventFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RobotLifecycleEvent.
   * 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__RobotLifecycleEventClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    snapshotsAsLastEvent<T extends RobotLifecycleEvent$snapshotsAsLastEventArgs<ExtArgs> = {}>(args?: Subset<T, RobotLifecycleEvent$snapshotsAsLastEventArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RobotLifecycleEvent model
   */
  interface RobotLifecycleEventFieldRefs {
    readonly id: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly robotUnitId: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly eventType: FieldRef<"RobotLifecycleEvent", 'RobotLifecycleEventType'>
    readonly fromStage: FieldRef<"RobotLifecycleEvent", 'RobotLifecycleStage'>
    readonly toStage: FieldRef<"RobotLifecycleEvent", 'RobotLifecycleStage'>
    readonly fromLocationId: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly toLocationId: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly actorUserId: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly partnerId: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly customerId: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly relatedType: FieldRef<"RobotLifecycleEvent", 'RobotEventRelatedType'>
    readonly relatedId: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly payload: FieldRef<"RobotLifecycleEvent", 'Json'>
    readonly notes: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly occurredAt: FieldRef<"RobotLifecycleEvent", 'DateTime'>
    readonly organizationId: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly createdAt: FieldRef<"RobotLifecycleEvent", 'DateTime'>
    readonly createdById: FieldRef<"RobotLifecycleEvent", 'String'>
    readonly deletedAt: FieldRef<"RobotLifecycleEvent", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RobotLifecycleEvent findUnique
   */
  export type RobotLifecycleEventFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * Filter, which RobotLifecycleEvent to fetch.
     */
    where: RobotLifecycleEventWhereUniqueInput
  }

  /**
   * RobotLifecycleEvent findUniqueOrThrow
   */
  export type RobotLifecycleEventFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * Filter, which RobotLifecycleEvent to fetch.
     */
    where: RobotLifecycleEventWhereUniqueInput
  }

  /**
   * RobotLifecycleEvent findFirst
   */
  export type RobotLifecycleEventFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * Filter, which RobotLifecycleEvent to fetch.
     */
    where?: RobotLifecycleEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotLifecycleEvents to fetch.
     */
    orderBy?: RobotLifecycleEventOrderByWithRelationInput | RobotLifecycleEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotLifecycleEvents.
     */
    cursor?: RobotLifecycleEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotLifecycleEvents 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` RobotLifecycleEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotLifecycleEvents.
     */
    distinct?: RobotLifecycleEventScalarFieldEnum | RobotLifecycleEventScalarFieldEnum[]
  }

  /**
   * RobotLifecycleEvent findFirstOrThrow
   */
  export type RobotLifecycleEventFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * Filter, which RobotLifecycleEvent to fetch.
     */
    where?: RobotLifecycleEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotLifecycleEvents to fetch.
     */
    orderBy?: RobotLifecycleEventOrderByWithRelationInput | RobotLifecycleEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotLifecycleEvents.
     */
    cursor?: RobotLifecycleEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotLifecycleEvents 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` RobotLifecycleEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotLifecycleEvents.
     */
    distinct?: RobotLifecycleEventScalarFieldEnum | RobotLifecycleEventScalarFieldEnum[]
  }

  /**
   * RobotLifecycleEvent findMany
   */
  export type RobotLifecycleEventFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * Filter, which RobotLifecycleEvents to fetch.
     */
    where?: RobotLifecycleEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotLifecycleEvents to fetch.
     */
    orderBy?: RobotLifecycleEventOrderByWithRelationInput | RobotLifecycleEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RobotLifecycleEvents.
     */
    cursor?: RobotLifecycleEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotLifecycleEvents 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` RobotLifecycleEvents.
     */
    skip?: number
    distinct?: RobotLifecycleEventScalarFieldEnum | RobotLifecycleEventScalarFieldEnum[]
  }

  /**
   * RobotLifecycleEvent create
   */
  export type RobotLifecycleEventCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * The data needed to create a RobotLifecycleEvent.
     */
    data: XOR<RobotLifecycleEventCreateInput, RobotLifecycleEventUncheckedCreateInput>
  }

  /**
   * RobotLifecycleEvent createMany
   */
  export type RobotLifecycleEventCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RobotLifecycleEvents.
     */
    data: RobotLifecycleEventCreateManyInput | RobotLifecycleEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotLifecycleEvent createManyAndReturn
   */
  export type RobotLifecycleEventCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * The data used to create many RobotLifecycleEvents.
     */
    data: RobotLifecycleEventCreateManyInput | RobotLifecycleEventCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotLifecycleEvent update
   */
  export type RobotLifecycleEventUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * The data needed to update a RobotLifecycleEvent.
     */
    data: XOR<RobotLifecycleEventUpdateInput, RobotLifecycleEventUncheckedUpdateInput>
    /**
     * Choose, which RobotLifecycleEvent to update.
     */
    where: RobotLifecycleEventWhereUniqueInput
  }

  /**
   * RobotLifecycleEvent updateMany
   */
  export type RobotLifecycleEventUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RobotLifecycleEvents.
     */
    data: XOR<RobotLifecycleEventUpdateManyMutationInput, RobotLifecycleEventUncheckedUpdateManyInput>
    /**
     * Filter which RobotLifecycleEvents to update
     */
    where?: RobotLifecycleEventWhereInput
    /**
     * Limit how many RobotLifecycleEvents to update.
     */
    limit?: number
  }

  /**
   * RobotLifecycleEvent updateManyAndReturn
   */
  export type RobotLifecycleEventUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * The data used to update RobotLifecycleEvents.
     */
    data: XOR<RobotLifecycleEventUpdateManyMutationInput, RobotLifecycleEventUncheckedUpdateManyInput>
    /**
     * Filter which RobotLifecycleEvents to update
     */
    where?: RobotLifecycleEventWhereInput
    /**
     * Limit how many RobotLifecycleEvents to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotLifecycleEvent upsert
   */
  export type RobotLifecycleEventUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * The filter to search for the RobotLifecycleEvent to update in case it exists.
     */
    where: RobotLifecycleEventWhereUniqueInput
    /**
     * In case the RobotLifecycleEvent found by the `where` argument doesn't exist, create a new RobotLifecycleEvent with this data.
     */
    create: XOR<RobotLifecycleEventCreateInput, RobotLifecycleEventUncheckedCreateInput>
    /**
     * In case the RobotLifecycleEvent was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RobotLifecycleEventUpdateInput, RobotLifecycleEventUncheckedUpdateInput>
  }

  /**
   * RobotLifecycleEvent delete
   */
  export type RobotLifecycleEventDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
    /**
     * Filter which RobotLifecycleEvent to delete.
     */
    where: RobotLifecycleEventWhereUniqueInput
  }

  /**
   * RobotLifecycleEvent deleteMany
   */
  export type RobotLifecycleEventDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotLifecycleEvents to delete
     */
    where?: RobotLifecycleEventWhereInput
    /**
     * Limit how many RobotLifecycleEvents to delete.
     */
    limit?: number
  }

  /**
   * RobotLifecycleEvent.snapshotsAsLastEvent
   */
  export type RobotLifecycleEvent$snapshotsAsLastEventArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    where?: RobotUnitSnapshotWhereInput
    orderBy?: RobotUnitSnapshotOrderByWithRelationInput | RobotUnitSnapshotOrderByWithRelationInput[]
    cursor?: RobotUnitSnapshotWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotUnitSnapshotScalarFieldEnum | RobotUnitSnapshotScalarFieldEnum[]
  }

  /**
   * RobotLifecycleEvent without action
   */
  export type RobotLifecycleEventDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotLifecycleEvent
     */
    select?: RobotLifecycleEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotLifecycleEvent
     */
    omit?: RobotLifecycleEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotLifecycleEventInclude<ExtArgs> | null
  }


  /**
   * Model PurchaseOrder
   */

  export type AggregatePurchaseOrder = {
    _count: PurchaseOrderCountAggregateOutputType | null
    _avg: PurchaseOrderAvgAggregateOutputType | null
    _sum: PurchaseOrderSumAggregateOutputType | null
    _min: PurchaseOrderMinAggregateOutputType | null
    _max: PurchaseOrderMaxAggregateOutputType | null
  }

  export type PurchaseOrderAvgAggregateOutputType = {
    totalAmount: Decimal | null
    version: number | null
  }

  export type PurchaseOrderSumAggregateOutputType = {
    totalAmount: Decimal | null
    version: number | null
  }

  export type PurchaseOrderMinAggregateOutputType = {
    id: string | null
    poNo: string | null
    sapPoNo: string | null
    supplierId: string | null
    currencyCode: string | null
    totalAmount: Decimal | null
    status: $Enums.PurchaseOrderStatus | null
    orderedAt: Date | null
    expectedAt: Date | null
    closedAt: Date | null
    notes: string | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type PurchaseOrderMaxAggregateOutputType = {
    id: string | null
    poNo: string | null
    sapPoNo: string | null
    supplierId: string | null
    currencyCode: string | null
    totalAmount: Decimal | null
    status: $Enums.PurchaseOrderStatus | null
    orderedAt: Date | null
    expectedAt: Date | null
    closedAt: Date | null
    notes: string | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type PurchaseOrderCountAggregateOutputType = {
    id: number
    poNo: number
    sapPoNo: number
    supplierId: number
    currencyCode: number
    totalAmount: number
    status: number
    orderedAt: number
    expectedAt: number
    closedAt: number
    notes: number
    version: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type PurchaseOrderAvgAggregateInputType = {
    totalAmount?: true
    version?: true
  }

  export type PurchaseOrderSumAggregateInputType = {
    totalAmount?: true
    version?: true
  }

  export type PurchaseOrderMinAggregateInputType = {
    id?: true
    poNo?: true
    sapPoNo?: true
    supplierId?: true
    currencyCode?: true
    totalAmount?: true
    status?: true
    orderedAt?: true
    expectedAt?: true
    closedAt?: true
    notes?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type PurchaseOrderMaxAggregateInputType = {
    id?: true
    poNo?: true
    sapPoNo?: true
    supplierId?: true
    currencyCode?: true
    totalAmount?: true
    status?: true
    orderedAt?: true
    expectedAt?: true
    closedAt?: true
    notes?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type PurchaseOrderCountAggregateInputType = {
    id?: true
    poNo?: true
    sapPoNo?: true
    supplierId?: true
    currencyCode?: true
    totalAmount?: true
    status?: true
    orderedAt?: true
    expectedAt?: true
    closedAt?: true
    notes?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type PurchaseOrderAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PurchaseOrder to aggregate.
     */
    where?: PurchaseOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseOrders to fetch.
     */
    orderBy?: PurchaseOrderOrderByWithRelationInput | PurchaseOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PurchaseOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseOrders 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` PurchaseOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PurchaseOrders
    **/
    _count?: true | PurchaseOrderCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PurchaseOrderAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PurchaseOrderSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PurchaseOrderMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PurchaseOrderMaxAggregateInputType
  }

  export type GetPurchaseOrderAggregateType<T extends PurchaseOrderAggregateArgs> = {
        [P in keyof T & keyof AggregatePurchaseOrder]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePurchaseOrder[P]>
      : GetScalarType<T[P], AggregatePurchaseOrder[P]>
  }




  export type PurchaseOrderGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PurchaseOrderWhereInput
    orderBy?: PurchaseOrderOrderByWithAggregationInput | PurchaseOrderOrderByWithAggregationInput[]
    by: PurchaseOrderScalarFieldEnum[] | PurchaseOrderScalarFieldEnum
    having?: PurchaseOrderScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PurchaseOrderCountAggregateInputType | true
    _avg?: PurchaseOrderAvgAggregateInputType
    _sum?: PurchaseOrderSumAggregateInputType
    _min?: PurchaseOrderMinAggregateInputType
    _max?: PurchaseOrderMaxAggregateInputType
  }

  export type PurchaseOrderGroupByOutputType = {
    id: string
    poNo: string
    sapPoNo: string | null
    supplierId: string
    currencyCode: string
    totalAmount: Decimal
    status: $Enums.PurchaseOrderStatus
    orderedAt: Date
    expectedAt: Date | null
    closedAt: Date | null
    notes: string | null
    version: number
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: PurchaseOrderCountAggregateOutputType | null
    _avg: PurchaseOrderAvgAggregateOutputType | null
    _sum: PurchaseOrderSumAggregateOutputType | null
    _min: PurchaseOrderMinAggregateOutputType | null
    _max: PurchaseOrderMaxAggregateOutputType | null
  }

  type GetPurchaseOrderGroupByPayload<T extends PurchaseOrderGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PurchaseOrderGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PurchaseOrderGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PurchaseOrderGroupByOutputType[P]>
            : GetScalarType<T[P], PurchaseOrderGroupByOutputType[P]>
        }
      >
    >


  export type PurchaseOrderSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    poNo?: boolean
    sapPoNo?: boolean
    supplierId?: boolean
    currencyCode?: boolean
    totalAmount?: boolean
    status?: boolean
    orderedAt?: boolean
    expectedAt?: boolean
    closedAt?: boolean
    notes?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    lines?: boolean | PurchaseOrder$linesArgs<ExtArgs>
    robotUnits?: boolean | PurchaseOrder$robotUnitsArgs<ExtArgs>
    _count?: boolean | PurchaseOrderCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseOrder"]>

  export type PurchaseOrderSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    poNo?: boolean
    sapPoNo?: boolean
    supplierId?: boolean
    currencyCode?: boolean
    totalAmount?: boolean
    status?: boolean
    orderedAt?: boolean
    expectedAt?: boolean
    closedAt?: boolean
    notes?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["purchaseOrder"]>

  export type PurchaseOrderSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    poNo?: boolean
    sapPoNo?: boolean
    supplierId?: boolean
    currencyCode?: boolean
    totalAmount?: boolean
    status?: boolean
    orderedAt?: boolean
    expectedAt?: boolean
    closedAt?: boolean
    notes?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["purchaseOrder"]>

  export type PurchaseOrderSelectScalar = {
    id?: boolean
    poNo?: boolean
    sapPoNo?: boolean
    supplierId?: boolean
    currencyCode?: boolean
    totalAmount?: boolean
    status?: boolean
    orderedAt?: boolean
    expectedAt?: boolean
    closedAt?: boolean
    notes?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type PurchaseOrderOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "poNo" | "sapPoNo" | "supplierId" | "currencyCode" | "totalAmount" | "status" | "orderedAt" | "expectedAt" | "closedAt" | "notes" | "version" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["purchaseOrder"]>
  export type PurchaseOrderInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    lines?: boolean | PurchaseOrder$linesArgs<ExtArgs>
    robotUnits?: boolean | PurchaseOrder$robotUnitsArgs<ExtArgs>
    _count?: boolean | PurchaseOrderCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PurchaseOrderIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type PurchaseOrderIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $PurchaseOrderPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PurchaseOrder"
    objects: {
      lines: Prisma.$PurchaseOrderLinePayload<ExtArgs>[]
      robotUnits: Prisma.$RobotUnitPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      poNo: string
      sapPoNo: string | null
      supplierId: string
      currencyCode: string
      /**
       * ⚠️ 派生值物化（原则 12 反范式）— = sum(lines.totalPrice)。冻结 snapshot 语义：
       * PO 创建/修改 lines 时一次性算入并写死；service 层 enforce。avoid 改单价后历史汇总漂移。
       */
      totalAmount: Prisma.Decimal
      status: $Enums.PurchaseOrderStatus
      orderedAt: Date
      expectedAt: Date | null
      closedAt: Date | null
      notes: string | null
      /**
       * 乐观锁（原则 18）— status 多步流转 (DRAFT → ORDERED → PARTIAL_RECEIVED → RECEIVED → CLOSED) 防并发覆盖。
       */
      version: number
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["purchaseOrder"]>
    composites: {}
  }

  type PurchaseOrderGetPayload<S extends boolean | null | undefined | PurchaseOrderDefaultArgs> = $Result.GetResult<Prisma.$PurchaseOrderPayload, S>

  type PurchaseOrderCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PurchaseOrderFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PurchaseOrderCountAggregateInputType | true
    }

  export interface PurchaseOrderDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PurchaseOrder'], meta: { name: 'PurchaseOrder' } }
    /**
     * Find zero or one PurchaseOrder that matches the filter.
     * @param {PurchaseOrderFindUniqueArgs} args - Arguments to find a PurchaseOrder
     * @example
     * // Get one PurchaseOrder
     * const purchaseOrder = await prisma.purchaseOrder.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PurchaseOrderFindUniqueArgs>(args: SelectSubset<T, PurchaseOrderFindUniqueArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PurchaseOrder that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PurchaseOrderFindUniqueOrThrowArgs} args - Arguments to find a PurchaseOrder
     * @example
     * // Get one PurchaseOrder
     * const purchaseOrder = await prisma.purchaseOrder.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PurchaseOrderFindUniqueOrThrowArgs>(args: SelectSubset<T, PurchaseOrderFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PurchaseOrder 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 {PurchaseOrderFindFirstArgs} args - Arguments to find a PurchaseOrder
     * @example
     * // Get one PurchaseOrder
     * const purchaseOrder = await prisma.purchaseOrder.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PurchaseOrderFindFirstArgs>(args?: SelectSubset<T, PurchaseOrderFindFirstArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PurchaseOrder 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 {PurchaseOrderFindFirstOrThrowArgs} args - Arguments to find a PurchaseOrder
     * @example
     * // Get one PurchaseOrder
     * const purchaseOrder = await prisma.purchaseOrder.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PurchaseOrderFindFirstOrThrowArgs>(args?: SelectSubset<T, PurchaseOrderFindFirstOrThrowArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PurchaseOrders 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 {PurchaseOrderFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PurchaseOrders
     * const purchaseOrders = await prisma.purchaseOrder.findMany()
     * 
     * // Get first 10 PurchaseOrders
     * const purchaseOrders = await prisma.purchaseOrder.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const purchaseOrderWithIdOnly = await prisma.purchaseOrder.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PurchaseOrderFindManyArgs>(args?: SelectSubset<T, PurchaseOrderFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PurchaseOrder.
     * @param {PurchaseOrderCreateArgs} args - Arguments to create a PurchaseOrder.
     * @example
     * // Create one PurchaseOrder
     * const PurchaseOrder = await prisma.purchaseOrder.create({
     *   data: {
     *     // ... data to create a PurchaseOrder
     *   }
     * })
     * 
     */
    create<T extends PurchaseOrderCreateArgs>(args: SelectSubset<T, PurchaseOrderCreateArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PurchaseOrders.
     * @param {PurchaseOrderCreateManyArgs} args - Arguments to create many PurchaseOrders.
     * @example
     * // Create many PurchaseOrders
     * const purchaseOrder = await prisma.purchaseOrder.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PurchaseOrderCreateManyArgs>(args?: SelectSubset<T, PurchaseOrderCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PurchaseOrders and returns the data saved in the database.
     * @param {PurchaseOrderCreateManyAndReturnArgs} args - Arguments to create many PurchaseOrders.
     * @example
     * // Create many PurchaseOrders
     * const purchaseOrder = await prisma.purchaseOrder.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PurchaseOrders and only return the `id`
     * const purchaseOrderWithIdOnly = await prisma.purchaseOrder.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 PurchaseOrderCreateManyAndReturnArgs>(args?: SelectSubset<T, PurchaseOrderCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PurchaseOrder.
     * @param {PurchaseOrderDeleteArgs} args - Arguments to delete one PurchaseOrder.
     * @example
     * // Delete one PurchaseOrder
     * const PurchaseOrder = await prisma.purchaseOrder.delete({
     *   where: {
     *     // ... filter to delete one PurchaseOrder
     *   }
     * })
     * 
     */
    delete<T extends PurchaseOrderDeleteArgs>(args: SelectSubset<T, PurchaseOrderDeleteArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PurchaseOrder.
     * @param {PurchaseOrderUpdateArgs} args - Arguments to update one PurchaseOrder.
     * @example
     * // Update one PurchaseOrder
     * const purchaseOrder = await prisma.purchaseOrder.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PurchaseOrderUpdateArgs>(args: SelectSubset<T, PurchaseOrderUpdateArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PurchaseOrders.
     * @param {PurchaseOrderDeleteManyArgs} args - Arguments to filter PurchaseOrders to delete.
     * @example
     * // Delete a few PurchaseOrders
     * const { count } = await prisma.purchaseOrder.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PurchaseOrderDeleteManyArgs>(args?: SelectSubset<T, PurchaseOrderDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PurchaseOrders.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseOrderUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PurchaseOrders
     * const purchaseOrder = await prisma.purchaseOrder.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PurchaseOrderUpdateManyArgs>(args: SelectSubset<T, PurchaseOrderUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PurchaseOrders and returns the data updated in the database.
     * @param {PurchaseOrderUpdateManyAndReturnArgs} args - Arguments to update many PurchaseOrders.
     * @example
     * // Update many PurchaseOrders
     * const purchaseOrder = await prisma.purchaseOrder.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PurchaseOrders and only return the `id`
     * const purchaseOrderWithIdOnly = await prisma.purchaseOrder.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 PurchaseOrderUpdateManyAndReturnArgs>(args: SelectSubset<T, PurchaseOrderUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PurchaseOrder.
     * @param {PurchaseOrderUpsertArgs} args - Arguments to update or create a PurchaseOrder.
     * @example
     * // Update or create a PurchaseOrder
     * const purchaseOrder = await prisma.purchaseOrder.upsert({
     *   create: {
     *     // ... data to create a PurchaseOrder
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PurchaseOrder we want to update
     *   }
     * })
     */
    upsert<T extends PurchaseOrderUpsertArgs>(args: SelectSubset<T, PurchaseOrderUpsertArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PurchaseOrders.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseOrderCountArgs} args - Arguments to filter PurchaseOrders to count.
     * @example
     * // Count the number of PurchaseOrders
     * const count = await prisma.purchaseOrder.count({
     *   where: {
     *     // ... the filter for the PurchaseOrders we want to count
     *   }
     * })
    **/
    count<T extends PurchaseOrderCountArgs>(
      args?: Subset<T, PurchaseOrderCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PurchaseOrderCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PurchaseOrder.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseOrderAggregateArgs} 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 PurchaseOrderAggregateArgs>(args: Subset<T, PurchaseOrderAggregateArgs>): Prisma.PrismaPromise<GetPurchaseOrderAggregateType<T>>

    /**
     * Group by PurchaseOrder.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseOrderGroupByArgs} 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 PurchaseOrderGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PurchaseOrderGroupByArgs['orderBy'] }
        : { orderBy?: PurchaseOrderGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PurchaseOrderGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPurchaseOrderGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PurchaseOrder model
   */
  readonly fields: PurchaseOrderFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PurchaseOrder.
   * 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__PurchaseOrderClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    lines<T extends PurchaseOrder$linesArgs<ExtArgs> = {}>(args?: Subset<T, PurchaseOrder$linesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    robotUnits<T extends PurchaseOrder$robotUnitsArgs<ExtArgs> = {}>(args?: Subset<T, PurchaseOrder$robotUnitsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PurchaseOrder model
   */
  interface PurchaseOrderFieldRefs {
    readonly id: FieldRef<"PurchaseOrder", 'String'>
    readonly poNo: FieldRef<"PurchaseOrder", 'String'>
    readonly sapPoNo: FieldRef<"PurchaseOrder", 'String'>
    readonly supplierId: FieldRef<"PurchaseOrder", 'String'>
    readonly currencyCode: FieldRef<"PurchaseOrder", 'String'>
    readonly totalAmount: FieldRef<"PurchaseOrder", 'Decimal'>
    readonly status: FieldRef<"PurchaseOrder", 'PurchaseOrderStatus'>
    readonly orderedAt: FieldRef<"PurchaseOrder", 'DateTime'>
    readonly expectedAt: FieldRef<"PurchaseOrder", 'DateTime'>
    readonly closedAt: FieldRef<"PurchaseOrder", 'DateTime'>
    readonly notes: FieldRef<"PurchaseOrder", 'String'>
    readonly version: FieldRef<"PurchaseOrder", 'Int'>
    readonly organizationId: FieldRef<"PurchaseOrder", 'String'>
    readonly createdAt: FieldRef<"PurchaseOrder", 'DateTime'>
    readonly updatedAt: FieldRef<"PurchaseOrder", 'DateTime'>
    readonly createdById: FieldRef<"PurchaseOrder", 'String'>
    readonly deletedAt: FieldRef<"PurchaseOrder", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PurchaseOrder findUnique
   */
  export type PurchaseOrderFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrder to fetch.
     */
    where: PurchaseOrderWhereUniqueInput
  }

  /**
   * PurchaseOrder findUniqueOrThrow
   */
  export type PurchaseOrderFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrder to fetch.
     */
    where: PurchaseOrderWhereUniqueInput
  }

  /**
   * PurchaseOrder findFirst
   */
  export type PurchaseOrderFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrder to fetch.
     */
    where?: PurchaseOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseOrders to fetch.
     */
    orderBy?: PurchaseOrderOrderByWithRelationInput | PurchaseOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PurchaseOrders.
     */
    cursor?: PurchaseOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseOrders 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` PurchaseOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PurchaseOrders.
     */
    distinct?: PurchaseOrderScalarFieldEnum | PurchaseOrderScalarFieldEnum[]
  }

  /**
   * PurchaseOrder findFirstOrThrow
   */
  export type PurchaseOrderFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrder to fetch.
     */
    where?: PurchaseOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseOrders to fetch.
     */
    orderBy?: PurchaseOrderOrderByWithRelationInput | PurchaseOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PurchaseOrders.
     */
    cursor?: PurchaseOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseOrders 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` PurchaseOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PurchaseOrders.
     */
    distinct?: PurchaseOrderScalarFieldEnum | PurchaseOrderScalarFieldEnum[]
  }

  /**
   * PurchaseOrder findMany
   */
  export type PurchaseOrderFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrders to fetch.
     */
    where?: PurchaseOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseOrders to fetch.
     */
    orderBy?: PurchaseOrderOrderByWithRelationInput | PurchaseOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PurchaseOrders.
     */
    cursor?: PurchaseOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseOrders 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` PurchaseOrders.
     */
    skip?: number
    distinct?: PurchaseOrderScalarFieldEnum | PurchaseOrderScalarFieldEnum[]
  }

  /**
   * PurchaseOrder create
   */
  export type PurchaseOrderCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * The data needed to create a PurchaseOrder.
     */
    data: XOR<PurchaseOrderCreateInput, PurchaseOrderUncheckedCreateInput>
  }

  /**
   * PurchaseOrder createMany
   */
  export type PurchaseOrderCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PurchaseOrders.
     */
    data: PurchaseOrderCreateManyInput | PurchaseOrderCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PurchaseOrder createManyAndReturn
   */
  export type PurchaseOrderCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * The data used to create many PurchaseOrders.
     */
    data: PurchaseOrderCreateManyInput | PurchaseOrderCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PurchaseOrder update
   */
  export type PurchaseOrderUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * The data needed to update a PurchaseOrder.
     */
    data: XOR<PurchaseOrderUpdateInput, PurchaseOrderUncheckedUpdateInput>
    /**
     * Choose, which PurchaseOrder to update.
     */
    where: PurchaseOrderWhereUniqueInput
  }

  /**
   * PurchaseOrder updateMany
   */
  export type PurchaseOrderUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PurchaseOrders.
     */
    data: XOR<PurchaseOrderUpdateManyMutationInput, PurchaseOrderUncheckedUpdateManyInput>
    /**
     * Filter which PurchaseOrders to update
     */
    where?: PurchaseOrderWhereInput
    /**
     * Limit how many PurchaseOrders to update.
     */
    limit?: number
  }

  /**
   * PurchaseOrder updateManyAndReturn
   */
  export type PurchaseOrderUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * The data used to update PurchaseOrders.
     */
    data: XOR<PurchaseOrderUpdateManyMutationInput, PurchaseOrderUncheckedUpdateManyInput>
    /**
     * Filter which PurchaseOrders to update
     */
    where?: PurchaseOrderWhereInput
    /**
     * Limit how many PurchaseOrders to update.
     */
    limit?: number
  }

  /**
   * PurchaseOrder upsert
   */
  export type PurchaseOrderUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * The filter to search for the PurchaseOrder to update in case it exists.
     */
    where: PurchaseOrderWhereUniqueInput
    /**
     * In case the PurchaseOrder found by the `where` argument doesn't exist, create a new PurchaseOrder with this data.
     */
    create: XOR<PurchaseOrderCreateInput, PurchaseOrderUncheckedCreateInput>
    /**
     * In case the PurchaseOrder was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PurchaseOrderUpdateInput, PurchaseOrderUncheckedUpdateInput>
  }

  /**
   * PurchaseOrder delete
   */
  export type PurchaseOrderDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
    /**
     * Filter which PurchaseOrder to delete.
     */
    where: PurchaseOrderWhereUniqueInput
  }

  /**
   * PurchaseOrder deleteMany
   */
  export type PurchaseOrderDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PurchaseOrders to delete
     */
    where?: PurchaseOrderWhereInput
    /**
     * Limit how many PurchaseOrders to delete.
     */
    limit?: number
  }

  /**
   * PurchaseOrder.lines
   */
  export type PurchaseOrder$linesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    where?: PurchaseOrderLineWhereInput
    orderBy?: PurchaseOrderLineOrderByWithRelationInput | PurchaseOrderLineOrderByWithRelationInput[]
    cursor?: PurchaseOrderLineWhereUniqueInput
    take?: number
    skip?: number
    distinct?: PurchaseOrderLineScalarFieldEnum | PurchaseOrderLineScalarFieldEnum[]
  }

  /**
   * PurchaseOrder.robotUnits
   */
  export type PurchaseOrder$robotUnitsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    where?: RobotUnitWhereInput
    orderBy?: RobotUnitOrderByWithRelationInput | RobotUnitOrderByWithRelationInput[]
    cursor?: RobotUnitWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotUnitScalarFieldEnum | RobotUnitScalarFieldEnum[]
  }

  /**
   * PurchaseOrder without action
   */
  export type PurchaseOrderDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrder
     */
    select?: PurchaseOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrder
     */
    omit?: PurchaseOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderInclude<ExtArgs> | null
  }


  /**
   * Model PurchaseOrderLine
   */

  export type AggregatePurchaseOrderLine = {
    _count: PurchaseOrderLineCountAggregateOutputType | null
    _avg: PurchaseOrderLineAvgAggregateOutputType | null
    _sum: PurchaseOrderLineSumAggregateOutputType | null
    _min: PurchaseOrderLineMinAggregateOutputType | null
    _max: PurchaseOrderLineMaxAggregateOutputType | null
  }

  export type PurchaseOrderLineAvgAggregateOutputType = {
    lineNo: number | null
    quantity: number | null
    unitPrice: Decimal | null
    totalPrice: Decimal | null
  }

  export type PurchaseOrderLineSumAggregateOutputType = {
    lineNo: number | null
    quantity: number | null
    unitPrice: Decimal | null
    totalPrice: Decimal | null
  }

  export type PurchaseOrderLineMinAggregateOutputType = {
    id: string | null
    purchaseOrderId: string | null
    lineNo: number | null
    skuId: string | null
    quantity: number | null
    unitPrice: Decimal | null
    totalPrice: Decimal | null
    currencyCode: string | null
    defaultUsageType: $Enums.RobotUsageType | null
    placeholderPattern: string | null
    expectedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PurchaseOrderLineMaxAggregateOutputType = {
    id: string | null
    purchaseOrderId: string | null
    lineNo: number | null
    skuId: string | null
    quantity: number | null
    unitPrice: Decimal | null
    totalPrice: Decimal | null
    currencyCode: string | null
    defaultUsageType: $Enums.RobotUsageType | null
    placeholderPattern: string | null
    expectedAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type PurchaseOrderLineCountAggregateOutputType = {
    id: number
    purchaseOrderId: number
    lineNo: number
    skuId: number
    quantity: number
    unitPrice: number
    totalPrice: number
    currencyCode: number
    defaultUsageType: number
    placeholderPattern: number
    expectedAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type PurchaseOrderLineAvgAggregateInputType = {
    lineNo?: true
    quantity?: true
    unitPrice?: true
    totalPrice?: true
  }

  export type PurchaseOrderLineSumAggregateInputType = {
    lineNo?: true
    quantity?: true
    unitPrice?: true
    totalPrice?: true
  }

  export type PurchaseOrderLineMinAggregateInputType = {
    id?: true
    purchaseOrderId?: true
    lineNo?: true
    skuId?: true
    quantity?: true
    unitPrice?: true
    totalPrice?: true
    currencyCode?: true
    defaultUsageType?: true
    placeholderPattern?: true
    expectedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PurchaseOrderLineMaxAggregateInputType = {
    id?: true
    purchaseOrderId?: true
    lineNo?: true
    skuId?: true
    quantity?: true
    unitPrice?: true
    totalPrice?: true
    currencyCode?: true
    defaultUsageType?: true
    placeholderPattern?: true
    expectedAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type PurchaseOrderLineCountAggregateInputType = {
    id?: true
    purchaseOrderId?: true
    lineNo?: true
    skuId?: true
    quantity?: true
    unitPrice?: true
    totalPrice?: true
    currencyCode?: true
    defaultUsageType?: true
    placeholderPattern?: true
    expectedAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type PurchaseOrderLineAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PurchaseOrderLine to aggregate.
     */
    where?: PurchaseOrderLineWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseOrderLines to fetch.
     */
    orderBy?: PurchaseOrderLineOrderByWithRelationInput | PurchaseOrderLineOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PurchaseOrderLineWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseOrderLines 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` PurchaseOrderLines.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PurchaseOrderLines
    **/
    _count?: true | PurchaseOrderLineCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PurchaseOrderLineAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PurchaseOrderLineSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PurchaseOrderLineMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PurchaseOrderLineMaxAggregateInputType
  }

  export type GetPurchaseOrderLineAggregateType<T extends PurchaseOrderLineAggregateArgs> = {
        [P in keyof T & keyof AggregatePurchaseOrderLine]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePurchaseOrderLine[P]>
      : GetScalarType<T[P], AggregatePurchaseOrderLine[P]>
  }




  export type PurchaseOrderLineGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PurchaseOrderLineWhereInput
    orderBy?: PurchaseOrderLineOrderByWithAggregationInput | PurchaseOrderLineOrderByWithAggregationInput[]
    by: PurchaseOrderLineScalarFieldEnum[] | PurchaseOrderLineScalarFieldEnum
    having?: PurchaseOrderLineScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PurchaseOrderLineCountAggregateInputType | true
    _avg?: PurchaseOrderLineAvgAggregateInputType
    _sum?: PurchaseOrderLineSumAggregateInputType
    _min?: PurchaseOrderLineMinAggregateInputType
    _max?: PurchaseOrderLineMaxAggregateInputType
  }

  export type PurchaseOrderLineGroupByOutputType = {
    id: string
    purchaseOrderId: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal
    totalPrice: Decimal
    currencyCode: string
    defaultUsageType: $Enums.RobotUsageType | null
    placeholderPattern: string | null
    expectedAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: PurchaseOrderLineCountAggregateOutputType | null
    _avg: PurchaseOrderLineAvgAggregateOutputType | null
    _sum: PurchaseOrderLineSumAggregateOutputType | null
    _min: PurchaseOrderLineMinAggregateOutputType | null
    _max: PurchaseOrderLineMaxAggregateOutputType | null
  }

  type GetPurchaseOrderLineGroupByPayload<T extends PurchaseOrderLineGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PurchaseOrderLineGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PurchaseOrderLineGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PurchaseOrderLineGroupByOutputType[P]>
            : GetScalarType<T[P], PurchaseOrderLineGroupByOutputType[P]>
        }
      >
    >


  export type PurchaseOrderLineSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    purchaseOrderId?: boolean
    lineNo?: boolean
    skuId?: boolean
    quantity?: boolean
    unitPrice?: boolean
    totalPrice?: boolean
    currencyCode?: boolean
    defaultUsageType?: boolean
    placeholderPattern?: boolean
    expectedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    purchaseOrder?: boolean | PurchaseOrderDefaultArgs<ExtArgs>
    robotUnits?: boolean | PurchaseOrderLine$robotUnitsArgs<ExtArgs>
    _count?: boolean | PurchaseOrderLineCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseOrderLine"]>

  export type PurchaseOrderLineSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    purchaseOrderId?: boolean
    lineNo?: boolean
    skuId?: boolean
    quantity?: boolean
    unitPrice?: boolean
    totalPrice?: boolean
    currencyCode?: boolean
    defaultUsageType?: boolean
    placeholderPattern?: boolean
    expectedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    purchaseOrder?: boolean | PurchaseOrderDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseOrderLine"]>

  export type PurchaseOrderLineSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    purchaseOrderId?: boolean
    lineNo?: boolean
    skuId?: boolean
    quantity?: boolean
    unitPrice?: boolean
    totalPrice?: boolean
    currencyCode?: boolean
    defaultUsageType?: boolean
    placeholderPattern?: boolean
    expectedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    purchaseOrder?: boolean | PurchaseOrderDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["purchaseOrderLine"]>

  export type PurchaseOrderLineSelectScalar = {
    id?: boolean
    purchaseOrderId?: boolean
    lineNo?: boolean
    skuId?: boolean
    quantity?: boolean
    unitPrice?: boolean
    totalPrice?: boolean
    currencyCode?: boolean
    defaultUsageType?: boolean
    placeholderPattern?: boolean
    expectedAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type PurchaseOrderLineOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "purchaseOrderId" | "lineNo" | "skuId" | "quantity" | "unitPrice" | "totalPrice" | "currencyCode" | "defaultUsageType" | "placeholderPattern" | "expectedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["purchaseOrderLine"]>
  export type PurchaseOrderLineInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    purchaseOrder?: boolean | PurchaseOrderDefaultArgs<ExtArgs>
    robotUnits?: boolean | PurchaseOrderLine$robotUnitsArgs<ExtArgs>
    _count?: boolean | PurchaseOrderLineCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PurchaseOrderLineIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    purchaseOrder?: boolean | PurchaseOrderDefaultArgs<ExtArgs>
  }
  export type PurchaseOrderLineIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    purchaseOrder?: boolean | PurchaseOrderDefaultArgs<ExtArgs>
  }

  export type $PurchaseOrderLinePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PurchaseOrderLine"
    objects: {
      purchaseOrder: Prisma.$PurchaseOrderPayload<ExtArgs>
      robotUnits: Prisma.$RobotUnitPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      purchaseOrderId: string
      lineNo: number
      skuId: string
      /**
       * 业务规则：quantity > 0（service 层 enforce；未来 raw SQL migration 加 CHECK 约束更稳）
       */
      quantity: number
      unitPrice: Prisma.Decimal
      /**
       * ⚠️ 派生值物化（原则 12）— = quantity * unitPrice。冻结 snapshot；service 层 enforce 同步。
       */
      totalPrice: Prisma.Decimal
      currencyCode: string
      defaultUsageType: $Enums.RobotUsageType | null
      placeholderPattern: string | null
      expectedAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["purchaseOrderLine"]>
    composites: {}
  }

  type PurchaseOrderLineGetPayload<S extends boolean | null | undefined | PurchaseOrderLineDefaultArgs> = $Result.GetResult<Prisma.$PurchaseOrderLinePayload, S>

  type PurchaseOrderLineCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PurchaseOrderLineFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PurchaseOrderLineCountAggregateInputType | true
    }

  export interface PurchaseOrderLineDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PurchaseOrderLine'], meta: { name: 'PurchaseOrderLine' } }
    /**
     * Find zero or one PurchaseOrderLine that matches the filter.
     * @param {PurchaseOrderLineFindUniqueArgs} args - Arguments to find a PurchaseOrderLine
     * @example
     * // Get one PurchaseOrderLine
     * const purchaseOrderLine = await prisma.purchaseOrderLine.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PurchaseOrderLineFindUniqueArgs>(args: SelectSubset<T, PurchaseOrderLineFindUniqueArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PurchaseOrderLine that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PurchaseOrderLineFindUniqueOrThrowArgs} args - Arguments to find a PurchaseOrderLine
     * @example
     * // Get one PurchaseOrderLine
     * const purchaseOrderLine = await prisma.purchaseOrderLine.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PurchaseOrderLineFindUniqueOrThrowArgs>(args: SelectSubset<T, PurchaseOrderLineFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PurchaseOrderLine 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 {PurchaseOrderLineFindFirstArgs} args - Arguments to find a PurchaseOrderLine
     * @example
     * // Get one PurchaseOrderLine
     * const purchaseOrderLine = await prisma.purchaseOrderLine.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PurchaseOrderLineFindFirstArgs>(args?: SelectSubset<T, PurchaseOrderLineFindFirstArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PurchaseOrderLine 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 {PurchaseOrderLineFindFirstOrThrowArgs} args - Arguments to find a PurchaseOrderLine
     * @example
     * // Get one PurchaseOrderLine
     * const purchaseOrderLine = await prisma.purchaseOrderLine.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PurchaseOrderLineFindFirstOrThrowArgs>(args?: SelectSubset<T, PurchaseOrderLineFindFirstOrThrowArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PurchaseOrderLines 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 {PurchaseOrderLineFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PurchaseOrderLines
     * const purchaseOrderLines = await prisma.purchaseOrderLine.findMany()
     * 
     * // Get first 10 PurchaseOrderLines
     * const purchaseOrderLines = await prisma.purchaseOrderLine.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const purchaseOrderLineWithIdOnly = await prisma.purchaseOrderLine.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PurchaseOrderLineFindManyArgs>(args?: SelectSubset<T, PurchaseOrderLineFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PurchaseOrderLine.
     * @param {PurchaseOrderLineCreateArgs} args - Arguments to create a PurchaseOrderLine.
     * @example
     * // Create one PurchaseOrderLine
     * const PurchaseOrderLine = await prisma.purchaseOrderLine.create({
     *   data: {
     *     // ... data to create a PurchaseOrderLine
     *   }
     * })
     * 
     */
    create<T extends PurchaseOrderLineCreateArgs>(args: SelectSubset<T, PurchaseOrderLineCreateArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PurchaseOrderLines.
     * @param {PurchaseOrderLineCreateManyArgs} args - Arguments to create many PurchaseOrderLines.
     * @example
     * // Create many PurchaseOrderLines
     * const purchaseOrderLine = await prisma.purchaseOrderLine.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PurchaseOrderLineCreateManyArgs>(args?: SelectSubset<T, PurchaseOrderLineCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PurchaseOrderLines and returns the data saved in the database.
     * @param {PurchaseOrderLineCreateManyAndReturnArgs} args - Arguments to create many PurchaseOrderLines.
     * @example
     * // Create many PurchaseOrderLines
     * const purchaseOrderLine = await prisma.purchaseOrderLine.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PurchaseOrderLines and only return the `id`
     * const purchaseOrderLineWithIdOnly = await prisma.purchaseOrderLine.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 PurchaseOrderLineCreateManyAndReturnArgs>(args?: SelectSubset<T, PurchaseOrderLineCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PurchaseOrderLine.
     * @param {PurchaseOrderLineDeleteArgs} args - Arguments to delete one PurchaseOrderLine.
     * @example
     * // Delete one PurchaseOrderLine
     * const PurchaseOrderLine = await prisma.purchaseOrderLine.delete({
     *   where: {
     *     // ... filter to delete one PurchaseOrderLine
     *   }
     * })
     * 
     */
    delete<T extends PurchaseOrderLineDeleteArgs>(args: SelectSubset<T, PurchaseOrderLineDeleteArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PurchaseOrderLine.
     * @param {PurchaseOrderLineUpdateArgs} args - Arguments to update one PurchaseOrderLine.
     * @example
     * // Update one PurchaseOrderLine
     * const purchaseOrderLine = await prisma.purchaseOrderLine.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PurchaseOrderLineUpdateArgs>(args: SelectSubset<T, PurchaseOrderLineUpdateArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PurchaseOrderLines.
     * @param {PurchaseOrderLineDeleteManyArgs} args - Arguments to filter PurchaseOrderLines to delete.
     * @example
     * // Delete a few PurchaseOrderLines
     * const { count } = await prisma.purchaseOrderLine.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PurchaseOrderLineDeleteManyArgs>(args?: SelectSubset<T, PurchaseOrderLineDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PurchaseOrderLines.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseOrderLineUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PurchaseOrderLines
     * const purchaseOrderLine = await prisma.purchaseOrderLine.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PurchaseOrderLineUpdateManyArgs>(args: SelectSubset<T, PurchaseOrderLineUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PurchaseOrderLines and returns the data updated in the database.
     * @param {PurchaseOrderLineUpdateManyAndReturnArgs} args - Arguments to update many PurchaseOrderLines.
     * @example
     * // Update many PurchaseOrderLines
     * const purchaseOrderLine = await prisma.purchaseOrderLine.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PurchaseOrderLines and only return the `id`
     * const purchaseOrderLineWithIdOnly = await prisma.purchaseOrderLine.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 PurchaseOrderLineUpdateManyAndReturnArgs>(args: SelectSubset<T, PurchaseOrderLineUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PurchaseOrderLine.
     * @param {PurchaseOrderLineUpsertArgs} args - Arguments to update or create a PurchaseOrderLine.
     * @example
     * // Update or create a PurchaseOrderLine
     * const purchaseOrderLine = await prisma.purchaseOrderLine.upsert({
     *   create: {
     *     // ... data to create a PurchaseOrderLine
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PurchaseOrderLine we want to update
     *   }
     * })
     */
    upsert<T extends PurchaseOrderLineUpsertArgs>(args: SelectSubset<T, PurchaseOrderLineUpsertArgs<ExtArgs>>): Prisma__PurchaseOrderLineClient<$Result.GetResult<Prisma.$PurchaseOrderLinePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PurchaseOrderLines.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseOrderLineCountArgs} args - Arguments to filter PurchaseOrderLines to count.
     * @example
     * // Count the number of PurchaseOrderLines
     * const count = await prisma.purchaseOrderLine.count({
     *   where: {
     *     // ... the filter for the PurchaseOrderLines we want to count
     *   }
     * })
    **/
    count<T extends PurchaseOrderLineCountArgs>(
      args?: Subset<T, PurchaseOrderLineCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PurchaseOrderLineCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PurchaseOrderLine.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseOrderLineAggregateArgs} 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 PurchaseOrderLineAggregateArgs>(args: Subset<T, PurchaseOrderLineAggregateArgs>): Prisma.PrismaPromise<GetPurchaseOrderLineAggregateType<T>>

    /**
     * Group by PurchaseOrderLine.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PurchaseOrderLineGroupByArgs} 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 PurchaseOrderLineGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PurchaseOrderLineGroupByArgs['orderBy'] }
        : { orderBy?: PurchaseOrderLineGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PurchaseOrderLineGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPurchaseOrderLineGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PurchaseOrderLine model
   */
  readonly fields: PurchaseOrderLineFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PurchaseOrderLine.
   * 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__PurchaseOrderLineClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    purchaseOrder<T extends PurchaseOrderDefaultArgs<ExtArgs> = {}>(args?: Subset<T, PurchaseOrderDefaultArgs<ExtArgs>>): Prisma__PurchaseOrderClient<$Result.GetResult<Prisma.$PurchaseOrderPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    robotUnits<T extends PurchaseOrderLine$robotUnitsArgs<ExtArgs> = {}>(args?: Subset<T, PurchaseOrderLine$robotUnitsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PurchaseOrderLine model
   */
  interface PurchaseOrderLineFieldRefs {
    readonly id: FieldRef<"PurchaseOrderLine", 'String'>
    readonly purchaseOrderId: FieldRef<"PurchaseOrderLine", 'String'>
    readonly lineNo: FieldRef<"PurchaseOrderLine", 'Int'>
    readonly skuId: FieldRef<"PurchaseOrderLine", 'String'>
    readonly quantity: FieldRef<"PurchaseOrderLine", 'Int'>
    readonly unitPrice: FieldRef<"PurchaseOrderLine", 'Decimal'>
    readonly totalPrice: FieldRef<"PurchaseOrderLine", 'Decimal'>
    readonly currencyCode: FieldRef<"PurchaseOrderLine", 'String'>
    readonly defaultUsageType: FieldRef<"PurchaseOrderLine", 'RobotUsageType'>
    readonly placeholderPattern: FieldRef<"PurchaseOrderLine", 'String'>
    readonly expectedAt: FieldRef<"PurchaseOrderLine", 'DateTime'>
    readonly createdAt: FieldRef<"PurchaseOrderLine", 'DateTime'>
    readonly updatedAt: FieldRef<"PurchaseOrderLine", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PurchaseOrderLine findUnique
   */
  export type PurchaseOrderLineFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrderLine to fetch.
     */
    where: PurchaseOrderLineWhereUniqueInput
  }

  /**
   * PurchaseOrderLine findUniqueOrThrow
   */
  export type PurchaseOrderLineFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrderLine to fetch.
     */
    where: PurchaseOrderLineWhereUniqueInput
  }

  /**
   * PurchaseOrderLine findFirst
   */
  export type PurchaseOrderLineFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrderLine to fetch.
     */
    where?: PurchaseOrderLineWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseOrderLines to fetch.
     */
    orderBy?: PurchaseOrderLineOrderByWithRelationInput | PurchaseOrderLineOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PurchaseOrderLines.
     */
    cursor?: PurchaseOrderLineWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseOrderLines 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` PurchaseOrderLines.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PurchaseOrderLines.
     */
    distinct?: PurchaseOrderLineScalarFieldEnum | PurchaseOrderLineScalarFieldEnum[]
  }

  /**
   * PurchaseOrderLine findFirstOrThrow
   */
  export type PurchaseOrderLineFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrderLine to fetch.
     */
    where?: PurchaseOrderLineWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseOrderLines to fetch.
     */
    orderBy?: PurchaseOrderLineOrderByWithRelationInput | PurchaseOrderLineOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PurchaseOrderLines.
     */
    cursor?: PurchaseOrderLineWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseOrderLines 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` PurchaseOrderLines.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PurchaseOrderLines.
     */
    distinct?: PurchaseOrderLineScalarFieldEnum | PurchaseOrderLineScalarFieldEnum[]
  }

  /**
   * PurchaseOrderLine findMany
   */
  export type PurchaseOrderLineFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which PurchaseOrderLines to fetch.
     */
    where?: PurchaseOrderLineWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PurchaseOrderLines to fetch.
     */
    orderBy?: PurchaseOrderLineOrderByWithRelationInput | PurchaseOrderLineOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PurchaseOrderLines.
     */
    cursor?: PurchaseOrderLineWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PurchaseOrderLines 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` PurchaseOrderLines.
     */
    skip?: number
    distinct?: PurchaseOrderLineScalarFieldEnum | PurchaseOrderLineScalarFieldEnum[]
  }

  /**
   * PurchaseOrderLine create
   */
  export type PurchaseOrderLineCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * The data needed to create a PurchaseOrderLine.
     */
    data: XOR<PurchaseOrderLineCreateInput, PurchaseOrderLineUncheckedCreateInput>
  }

  /**
   * PurchaseOrderLine createMany
   */
  export type PurchaseOrderLineCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PurchaseOrderLines.
     */
    data: PurchaseOrderLineCreateManyInput | PurchaseOrderLineCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PurchaseOrderLine createManyAndReturn
   */
  export type PurchaseOrderLineCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * The data used to create many PurchaseOrderLines.
     */
    data: PurchaseOrderLineCreateManyInput | PurchaseOrderLineCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PurchaseOrderLine update
   */
  export type PurchaseOrderLineUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * The data needed to update a PurchaseOrderLine.
     */
    data: XOR<PurchaseOrderLineUpdateInput, PurchaseOrderLineUncheckedUpdateInput>
    /**
     * Choose, which PurchaseOrderLine to update.
     */
    where: PurchaseOrderLineWhereUniqueInput
  }

  /**
   * PurchaseOrderLine updateMany
   */
  export type PurchaseOrderLineUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PurchaseOrderLines.
     */
    data: XOR<PurchaseOrderLineUpdateManyMutationInput, PurchaseOrderLineUncheckedUpdateManyInput>
    /**
     * Filter which PurchaseOrderLines to update
     */
    where?: PurchaseOrderLineWhereInput
    /**
     * Limit how many PurchaseOrderLines to update.
     */
    limit?: number
  }

  /**
   * PurchaseOrderLine updateManyAndReturn
   */
  export type PurchaseOrderLineUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * The data used to update PurchaseOrderLines.
     */
    data: XOR<PurchaseOrderLineUpdateManyMutationInput, PurchaseOrderLineUncheckedUpdateManyInput>
    /**
     * Filter which PurchaseOrderLines to update
     */
    where?: PurchaseOrderLineWhereInput
    /**
     * Limit how many PurchaseOrderLines to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PurchaseOrderLine upsert
   */
  export type PurchaseOrderLineUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * The filter to search for the PurchaseOrderLine to update in case it exists.
     */
    where: PurchaseOrderLineWhereUniqueInput
    /**
     * In case the PurchaseOrderLine found by the `where` argument doesn't exist, create a new PurchaseOrderLine with this data.
     */
    create: XOR<PurchaseOrderLineCreateInput, PurchaseOrderLineUncheckedCreateInput>
    /**
     * In case the PurchaseOrderLine was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PurchaseOrderLineUpdateInput, PurchaseOrderLineUncheckedUpdateInput>
  }

  /**
   * PurchaseOrderLine delete
   */
  export type PurchaseOrderLineDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
    /**
     * Filter which PurchaseOrderLine to delete.
     */
    where: PurchaseOrderLineWhereUniqueInput
  }

  /**
   * PurchaseOrderLine deleteMany
   */
  export type PurchaseOrderLineDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PurchaseOrderLines to delete
     */
    where?: PurchaseOrderLineWhereInput
    /**
     * Limit how many PurchaseOrderLines to delete.
     */
    limit?: number
  }

  /**
   * PurchaseOrderLine.robotUnits
   */
  export type PurchaseOrderLine$robotUnitsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    where?: RobotUnitWhereInput
    orderBy?: RobotUnitOrderByWithRelationInput | RobotUnitOrderByWithRelationInput[]
    cursor?: RobotUnitWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotUnitScalarFieldEnum | RobotUnitScalarFieldEnum[]
  }

  /**
   * PurchaseOrderLine without action
   */
  export type PurchaseOrderLineDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PurchaseOrderLine
     */
    select?: PurchaseOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PurchaseOrderLine
     */
    omit?: PurchaseOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PurchaseOrderLineInclude<ExtArgs> | null
  }


  /**
   * Model SalesOrder
   */

  export type AggregateSalesOrder = {
    _count: SalesOrderCountAggregateOutputType | null
    _avg: SalesOrderAvgAggregateOutputType | null
    _sum: SalesOrderSumAggregateOutputType | null
    _min: SalesOrderMinAggregateOutputType | null
    _max: SalesOrderMaxAggregateOutputType | null
  }

  export type SalesOrderAvgAggregateOutputType = {
    totalAmount: Decimal | null
    version: number | null
  }

  export type SalesOrderSumAggregateOutputType = {
    totalAmount: Decimal | null
    version: number | null
  }

  export type SalesOrderMinAggregateOutputType = {
    id: string | null
    soNo: string | null
    d365SoId: string | null
    customerId: string | null
    salesPersonId: string | null
    mentorId: string | null
    menteeId: string | null
    currencyCode: string | null
    totalAmount: Decimal | null
    contractStatus: $Enums.SalesContractStatus | null
    status: $Enums.SalesOrderStatus | null
    signedAt: Date | null
    closedAt: Date | null
    notes: string | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type SalesOrderMaxAggregateOutputType = {
    id: string | null
    soNo: string | null
    d365SoId: string | null
    customerId: string | null
    salesPersonId: string | null
    mentorId: string | null
    menteeId: string | null
    currencyCode: string | null
    totalAmount: Decimal | null
    contractStatus: $Enums.SalesContractStatus | null
    status: $Enums.SalesOrderStatus | null
    signedAt: Date | null
    closedAt: Date | null
    notes: string | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type SalesOrderCountAggregateOutputType = {
    id: number
    soNo: number
    d365SoId: number
    customerId: number
    salesPersonId: number
    mentorId: number
    menteeId: number
    currencyCode: number
    totalAmount: number
    contractStatus: number
    status: number
    signedAt: number
    closedAt: number
    notes: number
    version: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type SalesOrderAvgAggregateInputType = {
    totalAmount?: true
    version?: true
  }

  export type SalesOrderSumAggregateInputType = {
    totalAmount?: true
    version?: true
  }

  export type SalesOrderMinAggregateInputType = {
    id?: true
    soNo?: true
    d365SoId?: true
    customerId?: true
    salesPersonId?: true
    mentorId?: true
    menteeId?: true
    currencyCode?: true
    totalAmount?: true
    contractStatus?: true
    status?: true
    signedAt?: true
    closedAt?: true
    notes?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type SalesOrderMaxAggregateInputType = {
    id?: true
    soNo?: true
    d365SoId?: true
    customerId?: true
    salesPersonId?: true
    mentorId?: true
    menteeId?: true
    currencyCode?: true
    totalAmount?: true
    contractStatus?: true
    status?: true
    signedAt?: true
    closedAt?: true
    notes?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type SalesOrderCountAggregateInputType = {
    id?: true
    soNo?: true
    d365SoId?: true
    customerId?: true
    salesPersonId?: true
    mentorId?: true
    menteeId?: true
    currencyCode?: true
    totalAmount?: true
    contractStatus?: true
    status?: true
    signedAt?: true
    closedAt?: true
    notes?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type SalesOrderAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SalesOrder to aggregate.
     */
    where?: SalesOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SalesOrders to fetch.
     */
    orderBy?: SalesOrderOrderByWithRelationInput | SalesOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SalesOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SalesOrders 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` SalesOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SalesOrders
    **/
    _count?: true | SalesOrderCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SalesOrderAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SalesOrderSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SalesOrderMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SalesOrderMaxAggregateInputType
  }

  export type GetSalesOrderAggregateType<T extends SalesOrderAggregateArgs> = {
        [P in keyof T & keyof AggregateSalesOrder]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSalesOrder[P]>
      : GetScalarType<T[P], AggregateSalesOrder[P]>
  }




  export type SalesOrderGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SalesOrderWhereInput
    orderBy?: SalesOrderOrderByWithAggregationInput | SalesOrderOrderByWithAggregationInput[]
    by: SalesOrderScalarFieldEnum[] | SalesOrderScalarFieldEnum
    having?: SalesOrderScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SalesOrderCountAggregateInputType | true
    _avg?: SalesOrderAvgAggregateInputType
    _sum?: SalesOrderSumAggregateInputType
    _min?: SalesOrderMinAggregateInputType
    _max?: SalesOrderMaxAggregateInputType
  }

  export type SalesOrderGroupByOutputType = {
    id: string
    soNo: string
    d365SoId: string | null
    customerId: string
    salesPersonId: string | null
    mentorId: string | null
    menteeId: string | null
    currencyCode: string
    totalAmount: Decimal
    contractStatus: $Enums.SalesContractStatus
    status: $Enums.SalesOrderStatus
    signedAt: Date | null
    closedAt: Date | null
    notes: string | null
    version: number
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: SalesOrderCountAggregateOutputType | null
    _avg: SalesOrderAvgAggregateOutputType | null
    _sum: SalesOrderSumAggregateOutputType | null
    _min: SalesOrderMinAggregateOutputType | null
    _max: SalesOrderMaxAggregateOutputType | null
  }

  type GetSalesOrderGroupByPayload<T extends SalesOrderGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SalesOrderGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SalesOrderGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SalesOrderGroupByOutputType[P]>
            : GetScalarType<T[P], SalesOrderGroupByOutputType[P]>
        }
      >
    >


  export type SalesOrderSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    soNo?: boolean
    d365SoId?: boolean
    customerId?: boolean
    salesPersonId?: boolean
    mentorId?: boolean
    menteeId?: boolean
    currencyCode?: boolean
    totalAmount?: boolean
    contractStatus?: boolean
    status?: boolean
    signedAt?: boolean
    closedAt?: boolean
    notes?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    lines?: boolean | SalesOrder$linesArgs<ExtArgs>
    deliveryRequests?: boolean | SalesOrder$deliveryRequestsArgs<ExtArgs>
    snapshotRefs?: boolean | SalesOrder$snapshotRefsArgs<ExtArgs>
    _count?: boolean | SalesOrderCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["salesOrder"]>

  export type SalesOrderSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    soNo?: boolean
    d365SoId?: boolean
    customerId?: boolean
    salesPersonId?: boolean
    mentorId?: boolean
    menteeId?: boolean
    currencyCode?: boolean
    totalAmount?: boolean
    contractStatus?: boolean
    status?: boolean
    signedAt?: boolean
    closedAt?: boolean
    notes?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["salesOrder"]>

  export type SalesOrderSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    soNo?: boolean
    d365SoId?: boolean
    customerId?: boolean
    salesPersonId?: boolean
    mentorId?: boolean
    menteeId?: boolean
    currencyCode?: boolean
    totalAmount?: boolean
    contractStatus?: boolean
    status?: boolean
    signedAt?: boolean
    closedAt?: boolean
    notes?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["salesOrder"]>

  export type SalesOrderSelectScalar = {
    id?: boolean
    soNo?: boolean
    d365SoId?: boolean
    customerId?: boolean
    salesPersonId?: boolean
    mentorId?: boolean
    menteeId?: boolean
    currencyCode?: boolean
    totalAmount?: boolean
    contractStatus?: boolean
    status?: boolean
    signedAt?: boolean
    closedAt?: boolean
    notes?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type SalesOrderOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "soNo" | "d365SoId" | "customerId" | "salesPersonId" | "mentorId" | "menteeId" | "currencyCode" | "totalAmount" | "contractStatus" | "status" | "signedAt" | "closedAt" | "notes" | "version" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["salesOrder"]>
  export type SalesOrderInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    lines?: boolean | SalesOrder$linesArgs<ExtArgs>
    deliveryRequests?: boolean | SalesOrder$deliveryRequestsArgs<ExtArgs>
    snapshotRefs?: boolean | SalesOrder$snapshotRefsArgs<ExtArgs>
    _count?: boolean | SalesOrderCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type SalesOrderIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type SalesOrderIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $SalesOrderPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SalesOrder"
    objects: {
      lines: Prisma.$SalesOrderLinePayload<ExtArgs>[]
      deliveryRequests: Prisma.$DeliveryRequestPayload<ExtArgs>[]
      snapshotRefs: Prisma.$RobotUnitSnapshotPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      soNo: string
      d365SoId: string | null
      customerId: string
      salesPersonId: string | null
      mentorId: string | null
      menteeId: string | null
      currencyCode: string
      /**
       * ⚠️ 派生值物化（原则 12）— = sum(lines.netAmount)。冻结 snapshot 语义；service 层 enforce。
       */
      totalAmount: Prisma.Decimal
      contractStatus: $Enums.SalesContractStatus
      status: $Enums.SalesOrderStatus
      signedAt: Date | null
      closedAt: Date | null
      notes: string | null
      /**
       * 乐观锁（原则 18）— status 多步流转 + 资金敏感 (contract / 履约)；防并发覆盖。
       */
      version: number
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["salesOrder"]>
    composites: {}
  }

  type SalesOrderGetPayload<S extends boolean | null | undefined | SalesOrderDefaultArgs> = $Result.GetResult<Prisma.$SalesOrderPayload, S>

  type SalesOrderCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SalesOrderFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SalesOrderCountAggregateInputType | true
    }

  export interface SalesOrderDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SalesOrder'], meta: { name: 'SalesOrder' } }
    /**
     * Find zero or one SalesOrder that matches the filter.
     * @param {SalesOrderFindUniqueArgs} args - Arguments to find a SalesOrder
     * @example
     * // Get one SalesOrder
     * const salesOrder = await prisma.salesOrder.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SalesOrderFindUniqueArgs>(args: SelectSubset<T, SalesOrderFindUniqueArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SalesOrder that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SalesOrderFindUniqueOrThrowArgs} args - Arguments to find a SalesOrder
     * @example
     * // Get one SalesOrder
     * const salesOrder = await prisma.salesOrder.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SalesOrderFindUniqueOrThrowArgs>(args: SelectSubset<T, SalesOrderFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SalesOrder 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 {SalesOrderFindFirstArgs} args - Arguments to find a SalesOrder
     * @example
     * // Get one SalesOrder
     * const salesOrder = await prisma.salesOrder.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SalesOrderFindFirstArgs>(args?: SelectSubset<T, SalesOrderFindFirstArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SalesOrder 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 {SalesOrderFindFirstOrThrowArgs} args - Arguments to find a SalesOrder
     * @example
     * // Get one SalesOrder
     * const salesOrder = await prisma.salesOrder.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SalesOrderFindFirstOrThrowArgs>(args?: SelectSubset<T, SalesOrderFindFirstOrThrowArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SalesOrders 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 {SalesOrderFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SalesOrders
     * const salesOrders = await prisma.salesOrder.findMany()
     * 
     * // Get first 10 SalesOrders
     * const salesOrders = await prisma.salesOrder.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const salesOrderWithIdOnly = await prisma.salesOrder.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SalesOrderFindManyArgs>(args?: SelectSubset<T, SalesOrderFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SalesOrder.
     * @param {SalesOrderCreateArgs} args - Arguments to create a SalesOrder.
     * @example
     * // Create one SalesOrder
     * const SalesOrder = await prisma.salesOrder.create({
     *   data: {
     *     // ... data to create a SalesOrder
     *   }
     * })
     * 
     */
    create<T extends SalesOrderCreateArgs>(args: SelectSubset<T, SalesOrderCreateArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SalesOrders.
     * @param {SalesOrderCreateManyArgs} args - Arguments to create many SalesOrders.
     * @example
     * // Create many SalesOrders
     * const salesOrder = await prisma.salesOrder.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SalesOrderCreateManyArgs>(args?: SelectSubset<T, SalesOrderCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SalesOrders and returns the data saved in the database.
     * @param {SalesOrderCreateManyAndReturnArgs} args - Arguments to create many SalesOrders.
     * @example
     * // Create many SalesOrders
     * const salesOrder = await prisma.salesOrder.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SalesOrders and only return the `id`
     * const salesOrderWithIdOnly = await prisma.salesOrder.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 SalesOrderCreateManyAndReturnArgs>(args?: SelectSubset<T, SalesOrderCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SalesOrder.
     * @param {SalesOrderDeleteArgs} args - Arguments to delete one SalesOrder.
     * @example
     * // Delete one SalesOrder
     * const SalesOrder = await prisma.salesOrder.delete({
     *   where: {
     *     // ... filter to delete one SalesOrder
     *   }
     * })
     * 
     */
    delete<T extends SalesOrderDeleteArgs>(args: SelectSubset<T, SalesOrderDeleteArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SalesOrder.
     * @param {SalesOrderUpdateArgs} args - Arguments to update one SalesOrder.
     * @example
     * // Update one SalesOrder
     * const salesOrder = await prisma.salesOrder.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SalesOrderUpdateArgs>(args: SelectSubset<T, SalesOrderUpdateArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SalesOrders.
     * @param {SalesOrderDeleteManyArgs} args - Arguments to filter SalesOrders to delete.
     * @example
     * // Delete a few SalesOrders
     * const { count } = await prisma.salesOrder.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SalesOrderDeleteManyArgs>(args?: SelectSubset<T, SalesOrderDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SalesOrders.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SalesOrderUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SalesOrders
     * const salesOrder = await prisma.salesOrder.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SalesOrderUpdateManyArgs>(args: SelectSubset<T, SalesOrderUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SalesOrders and returns the data updated in the database.
     * @param {SalesOrderUpdateManyAndReturnArgs} args - Arguments to update many SalesOrders.
     * @example
     * // Update many SalesOrders
     * const salesOrder = await prisma.salesOrder.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SalesOrders and only return the `id`
     * const salesOrderWithIdOnly = await prisma.salesOrder.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 SalesOrderUpdateManyAndReturnArgs>(args: SelectSubset<T, SalesOrderUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SalesOrder.
     * @param {SalesOrderUpsertArgs} args - Arguments to update or create a SalesOrder.
     * @example
     * // Update or create a SalesOrder
     * const salesOrder = await prisma.salesOrder.upsert({
     *   create: {
     *     // ... data to create a SalesOrder
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SalesOrder we want to update
     *   }
     * })
     */
    upsert<T extends SalesOrderUpsertArgs>(args: SelectSubset<T, SalesOrderUpsertArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SalesOrders.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SalesOrderCountArgs} args - Arguments to filter SalesOrders to count.
     * @example
     * // Count the number of SalesOrders
     * const count = await prisma.salesOrder.count({
     *   where: {
     *     // ... the filter for the SalesOrders we want to count
     *   }
     * })
    **/
    count<T extends SalesOrderCountArgs>(
      args?: Subset<T, SalesOrderCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SalesOrderCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SalesOrder.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SalesOrderAggregateArgs} 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 SalesOrderAggregateArgs>(args: Subset<T, SalesOrderAggregateArgs>): Prisma.PrismaPromise<GetSalesOrderAggregateType<T>>

    /**
     * Group by SalesOrder.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SalesOrderGroupByArgs} 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 SalesOrderGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SalesOrderGroupByArgs['orderBy'] }
        : { orderBy?: SalesOrderGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SalesOrderGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSalesOrderGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SalesOrder model
   */
  readonly fields: SalesOrderFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SalesOrder.
   * 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__SalesOrderClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    lines<T extends SalesOrder$linesArgs<ExtArgs> = {}>(args?: Subset<T, SalesOrder$linesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    deliveryRequests<T extends SalesOrder$deliveryRequestsArgs<ExtArgs> = {}>(args?: Subset<T, SalesOrder$deliveryRequestsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    snapshotRefs<T extends SalesOrder$snapshotRefsArgs<ExtArgs> = {}>(args?: Subset<T, SalesOrder$snapshotRefsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SalesOrder model
   */
  interface SalesOrderFieldRefs {
    readonly id: FieldRef<"SalesOrder", 'String'>
    readonly soNo: FieldRef<"SalesOrder", 'String'>
    readonly d365SoId: FieldRef<"SalesOrder", 'String'>
    readonly customerId: FieldRef<"SalesOrder", 'String'>
    readonly salesPersonId: FieldRef<"SalesOrder", 'String'>
    readonly mentorId: FieldRef<"SalesOrder", 'String'>
    readonly menteeId: FieldRef<"SalesOrder", 'String'>
    readonly currencyCode: FieldRef<"SalesOrder", 'String'>
    readonly totalAmount: FieldRef<"SalesOrder", 'Decimal'>
    readonly contractStatus: FieldRef<"SalesOrder", 'SalesContractStatus'>
    readonly status: FieldRef<"SalesOrder", 'SalesOrderStatus'>
    readonly signedAt: FieldRef<"SalesOrder", 'DateTime'>
    readonly closedAt: FieldRef<"SalesOrder", 'DateTime'>
    readonly notes: FieldRef<"SalesOrder", 'String'>
    readonly version: FieldRef<"SalesOrder", 'Int'>
    readonly organizationId: FieldRef<"SalesOrder", 'String'>
    readonly createdAt: FieldRef<"SalesOrder", 'DateTime'>
    readonly updatedAt: FieldRef<"SalesOrder", 'DateTime'>
    readonly createdById: FieldRef<"SalesOrder", 'String'>
    readonly deletedAt: FieldRef<"SalesOrder", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SalesOrder findUnique
   */
  export type SalesOrderFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrder to fetch.
     */
    where: SalesOrderWhereUniqueInput
  }

  /**
   * SalesOrder findUniqueOrThrow
   */
  export type SalesOrderFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrder to fetch.
     */
    where: SalesOrderWhereUniqueInput
  }

  /**
   * SalesOrder findFirst
   */
  export type SalesOrderFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrder to fetch.
     */
    where?: SalesOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SalesOrders to fetch.
     */
    orderBy?: SalesOrderOrderByWithRelationInput | SalesOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SalesOrders.
     */
    cursor?: SalesOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SalesOrders 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` SalesOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SalesOrders.
     */
    distinct?: SalesOrderScalarFieldEnum | SalesOrderScalarFieldEnum[]
  }

  /**
   * SalesOrder findFirstOrThrow
   */
  export type SalesOrderFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrder to fetch.
     */
    where?: SalesOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SalesOrders to fetch.
     */
    orderBy?: SalesOrderOrderByWithRelationInput | SalesOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SalesOrders.
     */
    cursor?: SalesOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SalesOrders 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` SalesOrders.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SalesOrders.
     */
    distinct?: SalesOrderScalarFieldEnum | SalesOrderScalarFieldEnum[]
  }

  /**
   * SalesOrder findMany
   */
  export type SalesOrderFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrders to fetch.
     */
    where?: SalesOrderWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SalesOrders to fetch.
     */
    orderBy?: SalesOrderOrderByWithRelationInput | SalesOrderOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SalesOrders.
     */
    cursor?: SalesOrderWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SalesOrders 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` SalesOrders.
     */
    skip?: number
    distinct?: SalesOrderScalarFieldEnum | SalesOrderScalarFieldEnum[]
  }

  /**
   * SalesOrder create
   */
  export type SalesOrderCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * The data needed to create a SalesOrder.
     */
    data: XOR<SalesOrderCreateInput, SalesOrderUncheckedCreateInput>
  }

  /**
   * SalesOrder createMany
   */
  export type SalesOrderCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SalesOrders.
     */
    data: SalesOrderCreateManyInput | SalesOrderCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SalesOrder createManyAndReturn
   */
  export type SalesOrderCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * The data used to create many SalesOrders.
     */
    data: SalesOrderCreateManyInput | SalesOrderCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SalesOrder update
   */
  export type SalesOrderUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * The data needed to update a SalesOrder.
     */
    data: XOR<SalesOrderUpdateInput, SalesOrderUncheckedUpdateInput>
    /**
     * Choose, which SalesOrder to update.
     */
    where: SalesOrderWhereUniqueInput
  }

  /**
   * SalesOrder updateMany
   */
  export type SalesOrderUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SalesOrders.
     */
    data: XOR<SalesOrderUpdateManyMutationInput, SalesOrderUncheckedUpdateManyInput>
    /**
     * Filter which SalesOrders to update
     */
    where?: SalesOrderWhereInput
    /**
     * Limit how many SalesOrders to update.
     */
    limit?: number
  }

  /**
   * SalesOrder updateManyAndReturn
   */
  export type SalesOrderUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * The data used to update SalesOrders.
     */
    data: XOR<SalesOrderUpdateManyMutationInput, SalesOrderUncheckedUpdateManyInput>
    /**
     * Filter which SalesOrders to update
     */
    where?: SalesOrderWhereInput
    /**
     * Limit how many SalesOrders to update.
     */
    limit?: number
  }

  /**
   * SalesOrder upsert
   */
  export type SalesOrderUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * The filter to search for the SalesOrder to update in case it exists.
     */
    where: SalesOrderWhereUniqueInput
    /**
     * In case the SalesOrder found by the `where` argument doesn't exist, create a new SalesOrder with this data.
     */
    create: XOR<SalesOrderCreateInput, SalesOrderUncheckedCreateInput>
    /**
     * In case the SalesOrder was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SalesOrderUpdateInput, SalesOrderUncheckedUpdateInput>
  }

  /**
   * SalesOrder delete
   */
  export type SalesOrderDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
    /**
     * Filter which SalesOrder to delete.
     */
    where: SalesOrderWhereUniqueInput
  }

  /**
   * SalesOrder deleteMany
   */
  export type SalesOrderDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SalesOrders to delete
     */
    where?: SalesOrderWhereInput
    /**
     * Limit how many SalesOrders to delete.
     */
    limit?: number
  }

  /**
   * SalesOrder.lines
   */
  export type SalesOrder$linesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    where?: SalesOrderLineWhereInput
    orderBy?: SalesOrderLineOrderByWithRelationInput | SalesOrderLineOrderByWithRelationInput[]
    cursor?: SalesOrderLineWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SalesOrderLineScalarFieldEnum | SalesOrderLineScalarFieldEnum[]
  }

  /**
   * SalesOrder.deliveryRequests
   */
  export type SalesOrder$deliveryRequestsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    where?: DeliveryRequestWhereInput
    orderBy?: DeliveryRequestOrderByWithRelationInput | DeliveryRequestOrderByWithRelationInput[]
    cursor?: DeliveryRequestWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DeliveryRequestScalarFieldEnum | DeliveryRequestScalarFieldEnum[]
  }

  /**
   * SalesOrder.snapshotRefs
   */
  export type SalesOrder$snapshotRefsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    where?: RobotUnitSnapshotWhereInput
    orderBy?: RobotUnitSnapshotOrderByWithRelationInput | RobotUnitSnapshotOrderByWithRelationInput[]
    cursor?: RobotUnitSnapshotWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotUnitSnapshotScalarFieldEnum | RobotUnitSnapshotScalarFieldEnum[]
  }

  /**
   * SalesOrder without action
   */
  export type SalesOrderDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrder
     */
    select?: SalesOrderSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrder
     */
    omit?: SalesOrderOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderInclude<ExtArgs> | null
  }


  /**
   * Model SalesOrderLine
   */

  export type AggregateSalesOrderLine = {
    _count: SalesOrderLineCountAggregateOutputType | null
    _avg: SalesOrderLineAvgAggregateOutputType | null
    _sum: SalesOrderLineSumAggregateOutputType | null
    _min: SalesOrderLineMinAggregateOutputType | null
    _max: SalesOrderLineMaxAggregateOutputType | null
  }

  export type SalesOrderLineAvgAggregateOutputType = {
    lineNo: number | null
    unitPrice: Decimal | null
    discount: Decimal | null
    netAmount: Decimal | null
  }

  export type SalesOrderLineSumAggregateOutputType = {
    lineNo: number | null
    unitPrice: Decimal | null
    discount: Decimal | null
    netAmount: Decimal | null
  }

  export type SalesOrderLineMinAggregateOutputType = {
    id: string | null
    salesOrderId: string | null
    lineNo: number | null
    robotUnitId: string | null
    lineType: $Enums.SalesLineType | null
    unitPrice: Decimal | null
    discount: Decimal | null
    netAmount: Decimal | null
    currencyCode: string | null
    expectedDeliveryDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SalesOrderLineMaxAggregateOutputType = {
    id: string | null
    salesOrderId: string | null
    lineNo: number | null
    robotUnitId: string | null
    lineType: $Enums.SalesLineType | null
    unitPrice: Decimal | null
    discount: Decimal | null
    netAmount: Decimal | null
    currencyCode: string | null
    expectedDeliveryDate: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type SalesOrderLineCountAggregateOutputType = {
    id: number
    salesOrderId: number
    lineNo: number
    robotUnitId: number
    lineType: number
    unitPrice: number
    discount: number
    netAmount: number
    currencyCode: number
    expectedDeliveryDate: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type SalesOrderLineAvgAggregateInputType = {
    lineNo?: true
    unitPrice?: true
    discount?: true
    netAmount?: true
  }

  export type SalesOrderLineSumAggregateInputType = {
    lineNo?: true
    unitPrice?: true
    discount?: true
    netAmount?: true
  }

  export type SalesOrderLineMinAggregateInputType = {
    id?: true
    salesOrderId?: true
    lineNo?: true
    robotUnitId?: true
    lineType?: true
    unitPrice?: true
    discount?: true
    netAmount?: true
    currencyCode?: true
    expectedDeliveryDate?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SalesOrderLineMaxAggregateInputType = {
    id?: true
    salesOrderId?: true
    lineNo?: true
    robotUnitId?: true
    lineType?: true
    unitPrice?: true
    discount?: true
    netAmount?: true
    currencyCode?: true
    expectedDeliveryDate?: true
    createdAt?: true
    updatedAt?: true
  }

  export type SalesOrderLineCountAggregateInputType = {
    id?: true
    salesOrderId?: true
    lineNo?: true
    robotUnitId?: true
    lineType?: true
    unitPrice?: true
    discount?: true
    netAmount?: true
    currencyCode?: true
    expectedDeliveryDate?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type SalesOrderLineAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SalesOrderLine to aggregate.
     */
    where?: SalesOrderLineWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SalesOrderLines to fetch.
     */
    orderBy?: SalesOrderLineOrderByWithRelationInput | SalesOrderLineOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SalesOrderLineWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SalesOrderLines 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` SalesOrderLines.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SalesOrderLines
    **/
    _count?: true | SalesOrderLineCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SalesOrderLineAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SalesOrderLineSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SalesOrderLineMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SalesOrderLineMaxAggregateInputType
  }

  export type GetSalesOrderLineAggregateType<T extends SalesOrderLineAggregateArgs> = {
        [P in keyof T & keyof AggregateSalesOrderLine]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSalesOrderLine[P]>
      : GetScalarType<T[P], AggregateSalesOrderLine[P]>
  }




  export type SalesOrderLineGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SalesOrderLineWhereInput
    orderBy?: SalesOrderLineOrderByWithAggregationInput | SalesOrderLineOrderByWithAggregationInput[]
    by: SalesOrderLineScalarFieldEnum[] | SalesOrderLineScalarFieldEnum
    having?: SalesOrderLineScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SalesOrderLineCountAggregateInputType | true
    _avg?: SalesOrderLineAvgAggregateInputType
    _sum?: SalesOrderLineSumAggregateInputType
    _min?: SalesOrderLineMinAggregateInputType
    _max?: SalesOrderLineMaxAggregateInputType
  }

  export type SalesOrderLineGroupByOutputType = {
    id: string
    salesOrderId: string
    lineNo: number
    robotUnitId: string | null
    lineType: $Enums.SalesLineType
    unitPrice: Decimal
    discount: Decimal | null
    netAmount: Decimal
    currencyCode: string
    expectedDeliveryDate: Date | null
    createdAt: Date
    updatedAt: Date
    _count: SalesOrderLineCountAggregateOutputType | null
    _avg: SalesOrderLineAvgAggregateOutputType | null
    _sum: SalesOrderLineSumAggregateOutputType | null
    _min: SalesOrderLineMinAggregateOutputType | null
    _max: SalesOrderLineMaxAggregateOutputType | null
  }

  type GetSalesOrderLineGroupByPayload<T extends SalesOrderLineGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SalesOrderLineGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SalesOrderLineGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SalesOrderLineGroupByOutputType[P]>
            : GetScalarType<T[P], SalesOrderLineGroupByOutputType[P]>
        }
      >
    >


  export type SalesOrderLineSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    salesOrderId?: boolean
    lineNo?: boolean
    robotUnitId?: boolean
    lineType?: boolean
    unitPrice?: boolean
    discount?: boolean
    netAmount?: boolean
    currencyCode?: boolean
    expectedDeliveryDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
    robotUnit?: boolean | SalesOrderLine$robotUnitArgs<ExtArgs>
  }, ExtArgs["result"]["salesOrderLine"]>

  export type SalesOrderLineSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    salesOrderId?: boolean
    lineNo?: boolean
    robotUnitId?: boolean
    lineType?: boolean
    unitPrice?: boolean
    discount?: boolean
    netAmount?: boolean
    currencyCode?: boolean
    expectedDeliveryDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
    robotUnit?: boolean | SalesOrderLine$robotUnitArgs<ExtArgs>
  }, ExtArgs["result"]["salesOrderLine"]>

  export type SalesOrderLineSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    salesOrderId?: boolean
    lineNo?: boolean
    robotUnitId?: boolean
    lineType?: boolean
    unitPrice?: boolean
    discount?: boolean
    netAmount?: boolean
    currencyCode?: boolean
    expectedDeliveryDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
    robotUnit?: boolean | SalesOrderLine$robotUnitArgs<ExtArgs>
  }, ExtArgs["result"]["salesOrderLine"]>

  export type SalesOrderLineSelectScalar = {
    id?: boolean
    salesOrderId?: boolean
    lineNo?: boolean
    robotUnitId?: boolean
    lineType?: boolean
    unitPrice?: boolean
    discount?: boolean
    netAmount?: boolean
    currencyCode?: boolean
    expectedDeliveryDate?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type SalesOrderLineOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "salesOrderId" | "lineNo" | "robotUnitId" | "lineType" | "unitPrice" | "discount" | "netAmount" | "currencyCode" | "expectedDeliveryDate" | "createdAt" | "updatedAt", ExtArgs["result"]["salesOrderLine"]>
  export type SalesOrderLineInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
    robotUnit?: boolean | SalesOrderLine$robotUnitArgs<ExtArgs>
  }
  export type SalesOrderLineIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
    robotUnit?: boolean | SalesOrderLine$robotUnitArgs<ExtArgs>
  }
  export type SalesOrderLineIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
    robotUnit?: boolean | SalesOrderLine$robotUnitArgs<ExtArgs>
  }

  export type $SalesOrderLinePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SalesOrderLine"
    objects: {
      salesOrder: Prisma.$SalesOrderPayload<ExtArgs>
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      salesOrderId: string
      lineNo: number
      robotUnitId: string | null
      lineType: $Enums.SalesLineType
      unitPrice: Prisma.Decimal
      discount: Prisma.Decimal | null
      /**
       * ⚠️ 派生值物化（原则 12）— = unitPrice - discount (单位金额，不含数量)。冻结 snapshot；service 层 enforce。
       */
      netAmount: Prisma.Decimal
      currencyCode: string
      expectedDeliveryDate: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["salesOrderLine"]>
    composites: {}
  }

  type SalesOrderLineGetPayload<S extends boolean | null | undefined | SalesOrderLineDefaultArgs> = $Result.GetResult<Prisma.$SalesOrderLinePayload, S>

  type SalesOrderLineCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SalesOrderLineFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SalesOrderLineCountAggregateInputType | true
    }

  export interface SalesOrderLineDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SalesOrderLine'], meta: { name: 'SalesOrderLine' } }
    /**
     * Find zero or one SalesOrderLine that matches the filter.
     * @param {SalesOrderLineFindUniqueArgs} args - Arguments to find a SalesOrderLine
     * @example
     * // Get one SalesOrderLine
     * const salesOrderLine = await prisma.salesOrderLine.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SalesOrderLineFindUniqueArgs>(args: SelectSubset<T, SalesOrderLineFindUniqueArgs<ExtArgs>>): Prisma__SalesOrderLineClient<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SalesOrderLine that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SalesOrderLineFindUniqueOrThrowArgs} args - Arguments to find a SalesOrderLine
     * @example
     * // Get one SalesOrderLine
     * const salesOrderLine = await prisma.salesOrderLine.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SalesOrderLineFindUniqueOrThrowArgs>(args: SelectSubset<T, SalesOrderLineFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SalesOrderLineClient<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SalesOrderLine 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 {SalesOrderLineFindFirstArgs} args - Arguments to find a SalesOrderLine
     * @example
     * // Get one SalesOrderLine
     * const salesOrderLine = await prisma.salesOrderLine.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SalesOrderLineFindFirstArgs>(args?: SelectSubset<T, SalesOrderLineFindFirstArgs<ExtArgs>>): Prisma__SalesOrderLineClient<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SalesOrderLine 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 {SalesOrderLineFindFirstOrThrowArgs} args - Arguments to find a SalesOrderLine
     * @example
     * // Get one SalesOrderLine
     * const salesOrderLine = await prisma.salesOrderLine.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SalesOrderLineFindFirstOrThrowArgs>(args?: SelectSubset<T, SalesOrderLineFindFirstOrThrowArgs<ExtArgs>>): Prisma__SalesOrderLineClient<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SalesOrderLines 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 {SalesOrderLineFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SalesOrderLines
     * const salesOrderLines = await prisma.salesOrderLine.findMany()
     * 
     * // Get first 10 SalesOrderLines
     * const salesOrderLines = await prisma.salesOrderLine.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const salesOrderLineWithIdOnly = await prisma.salesOrderLine.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SalesOrderLineFindManyArgs>(args?: SelectSubset<T, SalesOrderLineFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SalesOrderLine.
     * @param {SalesOrderLineCreateArgs} args - Arguments to create a SalesOrderLine.
     * @example
     * // Create one SalesOrderLine
     * const SalesOrderLine = await prisma.salesOrderLine.create({
     *   data: {
     *     // ... data to create a SalesOrderLine
     *   }
     * })
     * 
     */
    create<T extends SalesOrderLineCreateArgs>(args: SelectSubset<T, SalesOrderLineCreateArgs<ExtArgs>>): Prisma__SalesOrderLineClient<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SalesOrderLines.
     * @param {SalesOrderLineCreateManyArgs} args - Arguments to create many SalesOrderLines.
     * @example
     * // Create many SalesOrderLines
     * const salesOrderLine = await prisma.salesOrderLine.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SalesOrderLineCreateManyArgs>(args?: SelectSubset<T, SalesOrderLineCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SalesOrderLines and returns the data saved in the database.
     * @param {SalesOrderLineCreateManyAndReturnArgs} args - Arguments to create many SalesOrderLines.
     * @example
     * // Create many SalesOrderLines
     * const salesOrderLine = await prisma.salesOrderLine.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SalesOrderLines and only return the `id`
     * const salesOrderLineWithIdOnly = await prisma.salesOrderLine.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 SalesOrderLineCreateManyAndReturnArgs>(args?: SelectSubset<T, SalesOrderLineCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SalesOrderLine.
     * @param {SalesOrderLineDeleteArgs} args - Arguments to delete one SalesOrderLine.
     * @example
     * // Delete one SalesOrderLine
     * const SalesOrderLine = await prisma.salesOrderLine.delete({
     *   where: {
     *     // ... filter to delete one SalesOrderLine
     *   }
     * })
     * 
     */
    delete<T extends SalesOrderLineDeleteArgs>(args: SelectSubset<T, SalesOrderLineDeleteArgs<ExtArgs>>): Prisma__SalesOrderLineClient<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SalesOrderLine.
     * @param {SalesOrderLineUpdateArgs} args - Arguments to update one SalesOrderLine.
     * @example
     * // Update one SalesOrderLine
     * const salesOrderLine = await prisma.salesOrderLine.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SalesOrderLineUpdateArgs>(args: SelectSubset<T, SalesOrderLineUpdateArgs<ExtArgs>>): Prisma__SalesOrderLineClient<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SalesOrderLines.
     * @param {SalesOrderLineDeleteManyArgs} args - Arguments to filter SalesOrderLines to delete.
     * @example
     * // Delete a few SalesOrderLines
     * const { count } = await prisma.salesOrderLine.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SalesOrderLineDeleteManyArgs>(args?: SelectSubset<T, SalesOrderLineDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SalesOrderLines.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SalesOrderLineUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SalesOrderLines
     * const salesOrderLine = await prisma.salesOrderLine.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SalesOrderLineUpdateManyArgs>(args: SelectSubset<T, SalesOrderLineUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SalesOrderLines and returns the data updated in the database.
     * @param {SalesOrderLineUpdateManyAndReturnArgs} args - Arguments to update many SalesOrderLines.
     * @example
     * // Update many SalesOrderLines
     * const salesOrderLine = await prisma.salesOrderLine.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SalesOrderLines and only return the `id`
     * const salesOrderLineWithIdOnly = await prisma.salesOrderLine.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 SalesOrderLineUpdateManyAndReturnArgs>(args: SelectSubset<T, SalesOrderLineUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SalesOrderLine.
     * @param {SalesOrderLineUpsertArgs} args - Arguments to update or create a SalesOrderLine.
     * @example
     * // Update or create a SalesOrderLine
     * const salesOrderLine = await prisma.salesOrderLine.upsert({
     *   create: {
     *     // ... data to create a SalesOrderLine
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SalesOrderLine we want to update
     *   }
     * })
     */
    upsert<T extends SalesOrderLineUpsertArgs>(args: SelectSubset<T, SalesOrderLineUpsertArgs<ExtArgs>>): Prisma__SalesOrderLineClient<$Result.GetResult<Prisma.$SalesOrderLinePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SalesOrderLines.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SalesOrderLineCountArgs} args - Arguments to filter SalesOrderLines to count.
     * @example
     * // Count the number of SalesOrderLines
     * const count = await prisma.salesOrderLine.count({
     *   where: {
     *     // ... the filter for the SalesOrderLines we want to count
     *   }
     * })
    **/
    count<T extends SalesOrderLineCountArgs>(
      args?: Subset<T, SalesOrderLineCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SalesOrderLineCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SalesOrderLine.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SalesOrderLineAggregateArgs} 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 SalesOrderLineAggregateArgs>(args: Subset<T, SalesOrderLineAggregateArgs>): Prisma.PrismaPromise<GetSalesOrderLineAggregateType<T>>

    /**
     * Group by SalesOrderLine.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SalesOrderLineGroupByArgs} 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 SalesOrderLineGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SalesOrderLineGroupByArgs['orderBy'] }
        : { orderBy?: SalesOrderLineGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SalesOrderLineGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSalesOrderLineGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SalesOrderLine model
   */
  readonly fields: SalesOrderLineFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SalesOrderLine.
   * 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__SalesOrderLineClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    salesOrder<T extends SalesOrderDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SalesOrderDefaultArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    robotUnit<T extends SalesOrderLine$robotUnitArgs<ExtArgs> = {}>(args?: Subset<T, SalesOrderLine$robotUnitArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SalesOrderLine model
   */
  interface SalesOrderLineFieldRefs {
    readonly id: FieldRef<"SalesOrderLine", 'String'>
    readonly salesOrderId: FieldRef<"SalesOrderLine", 'String'>
    readonly lineNo: FieldRef<"SalesOrderLine", 'Int'>
    readonly robotUnitId: FieldRef<"SalesOrderLine", 'String'>
    readonly lineType: FieldRef<"SalesOrderLine", 'SalesLineType'>
    readonly unitPrice: FieldRef<"SalesOrderLine", 'Decimal'>
    readonly discount: FieldRef<"SalesOrderLine", 'Decimal'>
    readonly netAmount: FieldRef<"SalesOrderLine", 'Decimal'>
    readonly currencyCode: FieldRef<"SalesOrderLine", 'String'>
    readonly expectedDeliveryDate: FieldRef<"SalesOrderLine", 'DateTime'>
    readonly createdAt: FieldRef<"SalesOrderLine", 'DateTime'>
    readonly updatedAt: FieldRef<"SalesOrderLine", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SalesOrderLine findUnique
   */
  export type SalesOrderLineFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrderLine to fetch.
     */
    where: SalesOrderLineWhereUniqueInput
  }

  /**
   * SalesOrderLine findUniqueOrThrow
   */
  export type SalesOrderLineFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrderLine to fetch.
     */
    where: SalesOrderLineWhereUniqueInput
  }

  /**
   * SalesOrderLine findFirst
   */
  export type SalesOrderLineFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrderLine to fetch.
     */
    where?: SalesOrderLineWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SalesOrderLines to fetch.
     */
    orderBy?: SalesOrderLineOrderByWithRelationInput | SalesOrderLineOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SalesOrderLines.
     */
    cursor?: SalesOrderLineWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SalesOrderLines 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` SalesOrderLines.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SalesOrderLines.
     */
    distinct?: SalesOrderLineScalarFieldEnum | SalesOrderLineScalarFieldEnum[]
  }

  /**
   * SalesOrderLine findFirstOrThrow
   */
  export type SalesOrderLineFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrderLine to fetch.
     */
    where?: SalesOrderLineWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SalesOrderLines to fetch.
     */
    orderBy?: SalesOrderLineOrderByWithRelationInput | SalesOrderLineOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SalesOrderLines.
     */
    cursor?: SalesOrderLineWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SalesOrderLines 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` SalesOrderLines.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SalesOrderLines.
     */
    distinct?: SalesOrderLineScalarFieldEnum | SalesOrderLineScalarFieldEnum[]
  }

  /**
   * SalesOrderLine findMany
   */
  export type SalesOrderLineFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * Filter, which SalesOrderLines to fetch.
     */
    where?: SalesOrderLineWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SalesOrderLines to fetch.
     */
    orderBy?: SalesOrderLineOrderByWithRelationInput | SalesOrderLineOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SalesOrderLines.
     */
    cursor?: SalesOrderLineWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SalesOrderLines 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` SalesOrderLines.
     */
    skip?: number
    distinct?: SalesOrderLineScalarFieldEnum | SalesOrderLineScalarFieldEnum[]
  }

  /**
   * SalesOrderLine create
   */
  export type SalesOrderLineCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * The data needed to create a SalesOrderLine.
     */
    data: XOR<SalesOrderLineCreateInput, SalesOrderLineUncheckedCreateInput>
  }

  /**
   * SalesOrderLine createMany
   */
  export type SalesOrderLineCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SalesOrderLines.
     */
    data: SalesOrderLineCreateManyInput | SalesOrderLineCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SalesOrderLine createManyAndReturn
   */
  export type SalesOrderLineCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * The data used to create many SalesOrderLines.
     */
    data: SalesOrderLineCreateManyInput | SalesOrderLineCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SalesOrderLine update
   */
  export type SalesOrderLineUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * The data needed to update a SalesOrderLine.
     */
    data: XOR<SalesOrderLineUpdateInput, SalesOrderLineUncheckedUpdateInput>
    /**
     * Choose, which SalesOrderLine to update.
     */
    where: SalesOrderLineWhereUniqueInput
  }

  /**
   * SalesOrderLine updateMany
   */
  export type SalesOrderLineUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SalesOrderLines.
     */
    data: XOR<SalesOrderLineUpdateManyMutationInput, SalesOrderLineUncheckedUpdateManyInput>
    /**
     * Filter which SalesOrderLines to update
     */
    where?: SalesOrderLineWhereInput
    /**
     * Limit how many SalesOrderLines to update.
     */
    limit?: number
  }

  /**
   * SalesOrderLine updateManyAndReturn
   */
  export type SalesOrderLineUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * The data used to update SalesOrderLines.
     */
    data: XOR<SalesOrderLineUpdateManyMutationInput, SalesOrderLineUncheckedUpdateManyInput>
    /**
     * Filter which SalesOrderLines to update
     */
    where?: SalesOrderLineWhereInput
    /**
     * Limit how many SalesOrderLines to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SalesOrderLine upsert
   */
  export type SalesOrderLineUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * The filter to search for the SalesOrderLine to update in case it exists.
     */
    where: SalesOrderLineWhereUniqueInput
    /**
     * In case the SalesOrderLine found by the `where` argument doesn't exist, create a new SalesOrderLine with this data.
     */
    create: XOR<SalesOrderLineCreateInput, SalesOrderLineUncheckedCreateInput>
    /**
     * In case the SalesOrderLine was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SalesOrderLineUpdateInput, SalesOrderLineUncheckedUpdateInput>
  }

  /**
   * SalesOrderLine delete
   */
  export type SalesOrderLineDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
    /**
     * Filter which SalesOrderLine to delete.
     */
    where: SalesOrderLineWhereUniqueInput
  }

  /**
   * SalesOrderLine deleteMany
   */
  export type SalesOrderLineDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SalesOrderLines to delete
     */
    where?: SalesOrderLineWhereInput
    /**
     * Limit how many SalesOrderLines to delete.
     */
    limit?: number
  }

  /**
   * SalesOrderLine.robotUnit
   */
  export type SalesOrderLine$robotUnitArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    where?: RobotUnitWhereInput
  }

  /**
   * SalesOrderLine without action
   */
  export type SalesOrderLineDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SalesOrderLine
     */
    select?: SalesOrderLineSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SalesOrderLine
     */
    omit?: SalesOrderLineOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SalesOrderLineInclude<ExtArgs> | null
  }


  /**
   * Model DeliveryRequest
   */

  export type AggregateDeliveryRequest = {
    _count: DeliveryRequestCountAggregateOutputType | null
    _min: DeliveryRequestMinAggregateOutputType | null
    _max: DeliveryRequestMaxAggregateOutputType | null
  }

  export type DeliveryRequestMinAggregateOutputType = {
    id: string | null
    deliveryNo: string | null
    salesOrderId: string | null
    customerId: string | null
    requestType: $Enums.DeliveryRequestType | null
    expectedDate: Date | null
    status: $Enums.DeliveryRequestStatus | null
    notes: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type DeliveryRequestMaxAggregateOutputType = {
    id: string | null
    deliveryNo: string | null
    salesOrderId: string | null
    customerId: string | null
    requestType: $Enums.DeliveryRequestType | null
    expectedDate: Date | null
    status: $Enums.DeliveryRequestStatus | null
    notes: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type DeliveryRequestCountAggregateOutputType = {
    id: number
    deliveryNo: number
    salesOrderId: number
    customerId: number
    requestType: number
    expectedDate: number
    status: number
    notes: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type DeliveryRequestMinAggregateInputType = {
    id?: true
    deliveryNo?: true
    salesOrderId?: true
    customerId?: true
    requestType?: true
    expectedDate?: true
    status?: true
    notes?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type DeliveryRequestMaxAggregateInputType = {
    id?: true
    deliveryNo?: true
    salesOrderId?: true
    customerId?: true
    requestType?: true
    expectedDate?: true
    status?: true
    notes?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type DeliveryRequestCountAggregateInputType = {
    id?: true
    deliveryNo?: true
    salesOrderId?: true
    customerId?: true
    requestType?: true
    expectedDate?: true
    status?: true
    notes?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type DeliveryRequestAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DeliveryRequest to aggregate.
     */
    where?: DeliveryRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DeliveryRequests to fetch.
     */
    orderBy?: DeliveryRequestOrderByWithRelationInput | DeliveryRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DeliveryRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DeliveryRequests 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` DeliveryRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DeliveryRequests
    **/
    _count?: true | DeliveryRequestCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DeliveryRequestMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DeliveryRequestMaxAggregateInputType
  }

  export type GetDeliveryRequestAggregateType<T extends DeliveryRequestAggregateArgs> = {
        [P in keyof T & keyof AggregateDeliveryRequest]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDeliveryRequest[P]>
      : GetScalarType<T[P], AggregateDeliveryRequest[P]>
  }




  export type DeliveryRequestGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DeliveryRequestWhereInput
    orderBy?: DeliveryRequestOrderByWithAggregationInput | DeliveryRequestOrderByWithAggregationInput[]
    by: DeliveryRequestScalarFieldEnum[] | DeliveryRequestScalarFieldEnum
    having?: DeliveryRequestScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DeliveryRequestCountAggregateInputType | true
    _min?: DeliveryRequestMinAggregateInputType
    _max?: DeliveryRequestMaxAggregateInputType
  }

  export type DeliveryRequestGroupByOutputType = {
    id: string
    deliveryNo: string
    salesOrderId: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date
    status: $Enums.DeliveryRequestStatus
    notes: string | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: DeliveryRequestCountAggregateOutputType | null
    _min: DeliveryRequestMinAggregateOutputType | null
    _max: DeliveryRequestMaxAggregateOutputType | null
  }

  type GetDeliveryRequestGroupByPayload<T extends DeliveryRequestGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DeliveryRequestGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DeliveryRequestGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DeliveryRequestGroupByOutputType[P]>
            : GetScalarType<T[P], DeliveryRequestGroupByOutputType[P]>
        }
      >
    >


  export type DeliveryRequestSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deliveryNo?: boolean
    salesOrderId?: boolean
    customerId?: boolean
    requestType?: boolean
    expectedDate?: boolean
    status?: boolean
    notes?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
    fulfillments?: boolean | DeliveryRequest$fulfillmentsArgs<ExtArgs>
    snapshotRefs?: boolean | DeliveryRequest$snapshotRefsArgs<ExtArgs>
    _count?: boolean | DeliveryRequestCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["deliveryRequest"]>

  export type DeliveryRequestSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deliveryNo?: boolean
    salesOrderId?: boolean
    customerId?: boolean
    requestType?: boolean
    expectedDate?: boolean
    status?: boolean
    notes?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["deliveryRequest"]>

  export type DeliveryRequestSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deliveryNo?: boolean
    salesOrderId?: boolean
    customerId?: boolean
    requestType?: boolean
    expectedDate?: boolean
    status?: boolean
    notes?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["deliveryRequest"]>

  export type DeliveryRequestSelectScalar = {
    id?: boolean
    deliveryNo?: boolean
    salesOrderId?: boolean
    customerId?: boolean
    requestType?: boolean
    expectedDate?: boolean
    status?: boolean
    notes?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type DeliveryRequestOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "deliveryNo" | "salesOrderId" | "customerId" | "requestType" | "expectedDate" | "status" | "notes" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["deliveryRequest"]>
  export type DeliveryRequestInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
    fulfillments?: boolean | DeliveryRequest$fulfillmentsArgs<ExtArgs>
    snapshotRefs?: boolean | DeliveryRequest$snapshotRefsArgs<ExtArgs>
    _count?: boolean | DeliveryRequestCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type DeliveryRequestIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
  }
  export type DeliveryRequestIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    salesOrder?: boolean | SalesOrderDefaultArgs<ExtArgs>
  }

  export type $DeliveryRequestPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DeliveryRequest"
    objects: {
      salesOrder: Prisma.$SalesOrderPayload<ExtArgs>
      fulfillments: Prisma.$DeliveryFulfillmentPayload<ExtArgs>[]
      snapshotRefs: Prisma.$RobotUnitSnapshotPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      deliveryNo: string
      salesOrderId: string
      customerId: string
      requestType: $Enums.DeliveryRequestType
      expectedDate: Date
      status: $Enums.DeliveryRequestStatus
      notes: string | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["deliveryRequest"]>
    composites: {}
  }

  type DeliveryRequestGetPayload<S extends boolean | null | undefined | DeliveryRequestDefaultArgs> = $Result.GetResult<Prisma.$DeliveryRequestPayload, S>

  type DeliveryRequestCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DeliveryRequestFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DeliveryRequestCountAggregateInputType | true
    }

  export interface DeliveryRequestDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DeliveryRequest'], meta: { name: 'DeliveryRequest' } }
    /**
     * Find zero or one DeliveryRequest that matches the filter.
     * @param {DeliveryRequestFindUniqueArgs} args - Arguments to find a DeliveryRequest
     * @example
     * // Get one DeliveryRequest
     * const deliveryRequest = await prisma.deliveryRequest.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DeliveryRequestFindUniqueArgs>(args: SelectSubset<T, DeliveryRequestFindUniqueArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DeliveryRequest that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DeliveryRequestFindUniqueOrThrowArgs} args - Arguments to find a DeliveryRequest
     * @example
     * // Get one DeliveryRequest
     * const deliveryRequest = await prisma.deliveryRequest.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DeliveryRequestFindUniqueOrThrowArgs>(args: SelectSubset<T, DeliveryRequestFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DeliveryRequest 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 {DeliveryRequestFindFirstArgs} args - Arguments to find a DeliveryRequest
     * @example
     * // Get one DeliveryRequest
     * const deliveryRequest = await prisma.deliveryRequest.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DeliveryRequestFindFirstArgs>(args?: SelectSubset<T, DeliveryRequestFindFirstArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DeliveryRequest 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 {DeliveryRequestFindFirstOrThrowArgs} args - Arguments to find a DeliveryRequest
     * @example
     * // Get one DeliveryRequest
     * const deliveryRequest = await prisma.deliveryRequest.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DeliveryRequestFindFirstOrThrowArgs>(args?: SelectSubset<T, DeliveryRequestFindFirstOrThrowArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DeliveryRequests 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 {DeliveryRequestFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DeliveryRequests
     * const deliveryRequests = await prisma.deliveryRequest.findMany()
     * 
     * // Get first 10 DeliveryRequests
     * const deliveryRequests = await prisma.deliveryRequest.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const deliveryRequestWithIdOnly = await prisma.deliveryRequest.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DeliveryRequestFindManyArgs>(args?: SelectSubset<T, DeliveryRequestFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DeliveryRequest.
     * @param {DeliveryRequestCreateArgs} args - Arguments to create a DeliveryRequest.
     * @example
     * // Create one DeliveryRequest
     * const DeliveryRequest = await prisma.deliveryRequest.create({
     *   data: {
     *     // ... data to create a DeliveryRequest
     *   }
     * })
     * 
     */
    create<T extends DeliveryRequestCreateArgs>(args: SelectSubset<T, DeliveryRequestCreateArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DeliveryRequests.
     * @param {DeliveryRequestCreateManyArgs} args - Arguments to create many DeliveryRequests.
     * @example
     * // Create many DeliveryRequests
     * const deliveryRequest = await prisma.deliveryRequest.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DeliveryRequestCreateManyArgs>(args?: SelectSubset<T, DeliveryRequestCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DeliveryRequests and returns the data saved in the database.
     * @param {DeliveryRequestCreateManyAndReturnArgs} args - Arguments to create many DeliveryRequests.
     * @example
     * // Create many DeliveryRequests
     * const deliveryRequest = await prisma.deliveryRequest.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DeliveryRequests and only return the `id`
     * const deliveryRequestWithIdOnly = await prisma.deliveryRequest.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 DeliveryRequestCreateManyAndReturnArgs>(args?: SelectSubset<T, DeliveryRequestCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DeliveryRequest.
     * @param {DeliveryRequestDeleteArgs} args - Arguments to delete one DeliveryRequest.
     * @example
     * // Delete one DeliveryRequest
     * const DeliveryRequest = await prisma.deliveryRequest.delete({
     *   where: {
     *     // ... filter to delete one DeliveryRequest
     *   }
     * })
     * 
     */
    delete<T extends DeliveryRequestDeleteArgs>(args: SelectSubset<T, DeliveryRequestDeleteArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DeliveryRequest.
     * @param {DeliveryRequestUpdateArgs} args - Arguments to update one DeliveryRequest.
     * @example
     * // Update one DeliveryRequest
     * const deliveryRequest = await prisma.deliveryRequest.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DeliveryRequestUpdateArgs>(args: SelectSubset<T, DeliveryRequestUpdateArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DeliveryRequests.
     * @param {DeliveryRequestDeleteManyArgs} args - Arguments to filter DeliveryRequests to delete.
     * @example
     * // Delete a few DeliveryRequests
     * const { count } = await prisma.deliveryRequest.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DeliveryRequestDeleteManyArgs>(args?: SelectSubset<T, DeliveryRequestDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DeliveryRequests.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DeliveryRequestUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DeliveryRequests
     * const deliveryRequest = await prisma.deliveryRequest.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DeliveryRequestUpdateManyArgs>(args: SelectSubset<T, DeliveryRequestUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DeliveryRequests and returns the data updated in the database.
     * @param {DeliveryRequestUpdateManyAndReturnArgs} args - Arguments to update many DeliveryRequests.
     * @example
     * // Update many DeliveryRequests
     * const deliveryRequest = await prisma.deliveryRequest.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DeliveryRequests and only return the `id`
     * const deliveryRequestWithIdOnly = await prisma.deliveryRequest.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 DeliveryRequestUpdateManyAndReturnArgs>(args: SelectSubset<T, DeliveryRequestUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DeliveryRequest.
     * @param {DeliveryRequestUpsertArgs} args - Arguments to update or create a DeliveryRequest.
     * @example
     * // Update or create a DeliveryRequest
     * const deliveryRequest = await prisma.deliveryRequest.upsert({
     *   create: {
     *     // ... data to create a DeliveryRequest
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DeliveryRequest we want to update
     *   }
     * })
     */
    upsert<T extends DeliveryRequestUpsertArgs>(args: SelectSubset<T, DeliveryRequestUpsertArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DeliveryRequests.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DeliveryRequestCountArgs} args - Arguments to filter DeliveryRequests to count.
     * @example
     * // Count the number of DeliveryRequests
     * const count = await prisma.deliveryRequest.count({
     *   where: {
     *     // ... the filter for the DeliveryRequests we want to count
     *   }
     * })
    **/
    count<T extends DeliveryRequestCountArgs>(
      args?: Subset<T, DeliveryRequestCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DeliveryRequestCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DeliveryRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DeliveryRequestAggregateArgs} 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 DeliveryRequestAggregateArgs>(args: Subset<T, DeliveryRequestAggregateArgs>): Prisma.PrismaPromise<GetDeliveryRequestAggregateType<T>>

    /**
     * Group by DeliveryRequest.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DeliveryRequestGroupByArgs} 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 DeliveryRequestGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DeliveryRequestGroupByArgs['orderBy'] }
        : { orderBy?: DeliveryRequestGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DeliveryRequestGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDeliveryRequestGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DeliveryRequest model
   */
  readonly fields: DeliveryRequestFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DeliveryRequest.
   * 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__DeliveryRequestClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    salesOrder<T extends SalesOrderDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SalesOrderDefaultArgs<ExtArgs>>): Prisma__SalesOrderClient<$Result.GetResult<Prisma.$SalesOrderPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    fulfillments<T extends DeliveryRequest$fulfillmentsArgs<ExtArgs> = {}>(args?: Subset<T, DeliveryRequest$fulfillmentsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    snapshotRefs<T extends DeliveryRequest$snapshotRefsArgs<ExtArgs> = {}>(args?: Subset<T, DeliveryRequest$snapshotRefsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotUnitSnapshotPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DeliveryRequest model
   */
  interface DeliveryRequestFieldRefs {
    readonly id: FieldRef<"DeliveryRequest", 'String'>
    readonly deliveryNo: FieldRef<"DeliveryRequest", 'String'>
    readonly salesOrderId: FieldRef<"DeliveryRequest", 'String'>
    readonly customerId: FieldRef<"DeliveryRequest", 'String'>
    readonly requestType: FieldRef<"DeliveryRequest", 'DeliveryRequestType'>
    readonly expectedDate: FieldRef<"DeliveryRequest", 'DateTime'>
    readonly status: FieldRef<"DeliveryRequest", 'DeliveryRequestStatus'>
    readonly notes: FieldRef<"DeliveryRequest", 'String'>
    readonly organizationId: FieldRef<"DeliveryRequest", 'String'>
    readonly createdAt: FieldRef<"DeliveryRequest", 'DateTime'>
    readonly updatedAt: FieldRef<"DeliveryRequest", 'DateTime'>
    readonly createdById: FieldRef<"DeliveryRequest", 'String'>
    readonly deletedAt: FieldRef<"DeliveryRequest", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DeliveryRequest findUnique
   */
  export type DeliveryRequestFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryRequest to fetch.
     */
    where: DeliveryRequestWhereUniqueInput
  }

  /**
   * DeliveryRequest findUniqueOrThrow
   */
  export type DeliveryRequestFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryRequest to fetch.
     */
    where: DeliveryRequestWhereUniqueInput
  }

  /**
   * DeliveryRequest findFirst
   */
  export type DeliveryRequestFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryRequest to fetch.
     */
    where?: DeliveryRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DeliveryRequests to fetch.
     */
    orderBy?: DeliveryRequestOrderByWithRelationInput | DeliveryRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DeliveryRequests.
     */
    cursor?: DeliveryRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DeliveryRequests 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` DeliveryRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DeliveryRequests.
     */
    distinct?: DeliveryRequestScalarFieldEnum | DeliveryRequestScalarFieldEnum[]
  }

  /**
   * DeliveryRequest findFirstOrThrow
   */
  export type DeliveryRequestFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryRequest to fetch.
     */
    where?: DeliveryRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DeliveryRequests to fetch.
     */
    orderBy?: DeliveryRequestOrderByWithRelationInput | DeliveryRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DeliveryRequests.
     */
    cursor?: DeliveryRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DeliveryRequests 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` DeliveryRequests.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DeliveryRequests.
     */
    distinct?: DeliveryRequestScalarFieldEnum | DeliveryRequestScalarFieldEnum[]
  }

  /**
   * DeliveryRequest findMany
   */
  export type DeliveryRequestFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryRequests to fetch.
     */
    where?: DeliveryRequestWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DeliveryRequests to fetch.
     */
    orderBy?: DeliveryRequestOrderByWithRelationInput | DeliveryRequestOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DeliveryRequests.
     */
    cursor?: DeliveryRequestWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DeliveryRequests 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` DeliveryRequests.
     */
    skip?: number
    distinct?: DeliveryRequestScalarFieldEnum | DeliveryRequestScalarFieldEnum[]
  }

  /**
   * DeliveryRequest create
   */
  export type DeliveryRequestCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * The data needed to create a DeliveryRequest.
     */
    data: XOR<DeliveryRequestCreateInput, DeliveryRequestUncheckedCreateInput>
  }

  /**
   * DeliveryRequest createMany
   */
  export type DeliveryRequestCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DeliveryRequests.
     */
    data: DeliveryRequestCreateManyInput | DeliveryRequestCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DeliveryRequest createManyAndReturn
   */
  export type DeliveryRequestCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * The data used to create many DeliveryRequests.
     */
    data: DeliveryRequestCreateManyInput | DeliveryRequestCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * DeliveryRequest update
   */
  export type DeliveryRequestUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * The data needed to update a DeliveryRequest.
     */
    data: XOR<DeliveryRequestUpdateInput, DeliveryRequestUncheckedUpdateInput>
    /**
     * Choose, which DeliveryRequest to update.
     */
    where: DeliveryRequestWhereUniqueInput
  }

  /**
   * DeliveryRequest updateMany
   */
  export type DeliveryRequestUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DeliveryRequests.
     */
    data: XOR<DeliveryRequestUpdateManyMutationInput, DeliveryRequestUncheckedUpdateManyInput>
    /**
     * Filter which DeliveryRequests to update
     */
    where?: DeliveryRequestWhereInput
    /**
     * Limit how many DeliveryRequests to update.
     */
    limit?: number
  }

  /**
   * DeliveryRequest updateManyAndReturn
   */
  export type DeliveryRequestUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * The data used to update DeliveryRequests.
     */
    data: XOR<DeliveryRequestUpdateManyMutationInput, DeliveryRequestUncheckedUpdateManyInput>
    /**
     * Filter which DeliveryRequests to update
     */
    where?: DeliveryRequestWhereInput
    /**
     * Limit how many DeliveryRequests to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * DeliveryRequest upsert
   */
  export type DeliveryRequestUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * The filter to search for the DeliveryRequest to update in case it exists.
     */
    where: DeliveryRequestWhereUniqueInput
    /**
     * In case the DeliveryRequest found by the `where` argument doesn't exist, create a new DeliveryRequest with this data.
     */
    create: XOR<DeliveryRequestCreateInput, DeliveryRequestUncheckedCreateInput>
    /**
     * In case the DeliveryRequest was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DeliveryRequestUpdateInput, DeliveryRequestUncheckedUpdateInput>
  }

  /**
   * DeliveryRequest delete
   */
  export type DeliveryRequestDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
    /**
     * Filter which DeliveryRequest to delete.
     */
    where: DeliveryRequestWhereUniqueInput
  }

  /**
   * DeliveryRequest deleteMany
   */
  export type DeliveryRequestDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DeliveryRequests to delete
     */
    where?: DeliveryRequestWhereInput
    /**
     * Limit how many DeliveryRequests to delete.
     */
    limit?: number
  }

  /**
   * DeliveryRequest.fulfillments
   */
  export type DeliveryRequest$fulfillmentsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    where?: DeliveryFulfillmentWhereInput
    orderBy?: DeliveryFulfillmentOrderByWithRelationInput | DeliveryFulfillmentOrderByWithRelationInput[]
    cursor?: DeliveryFulfillmentWhereUniqueInput
    take?: number
    skip?: number
    distinct?: DeliveryFulfillmentScalarFieldEnum | DeliveryFulfillmentScalarFieldEnum[]
  }

  /**
   * DeliveryRequest.snapshotRefs
   */
  export type DeliveryRequest$snapshotRefsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnitSnapshot
     */
    select?: RobotUnitSnapshotSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnitSnapshot
     */
    omit?: RobotUnitSnapshotOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitSnapshotInclude<ExtArgs> | null
    where?: RobotUnitSnapshotWhereInput
    orderBy?: RobotUnitSnapshotOrderByWithRelationInput | RobotUnitSnapshotOrderByWithRelationInput[]
    cursor?: RobotUnitSnapshotWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RobotUnitSnapshotScalarFieldEnum | RobotUnitSnapshotScalarFieldEnum[]
  }

  /**
   * DeliveryRequest without action
   */
  export type DeliveryRequestDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryRequest
     */
    select?: DeliveryRequestSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryRequest
     */
    omit?: DeliveryRequestOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryRequestInclude<ExtArgs> | null
  }


  /**
   * Model DeliveryFulfillment
   */

  export type AggregateDeliveryFulfillment = {
    _count: DeliveryFulfillmentCountAggregateOutputType | null
    _avg: DeliveryFulfillmentAvgAggregateOutputType | null
    _sum: DeliveryFulfillmentSumAggregateOutputType | null
    _min: DeliveryFulfillmentMinAggregateOutputType | null
    _max: DeliveryFulfillmentMaxAggregateOutputType | null
  }

  export type DeliveryFulfillmentAvgAggregateOutputType = {
    cost: Decimal | null
    grossMargin: Decimal | null
    version: number | null
  }

  export type DeliveryFulfillmentSumAggregateOutputType = {
    cost: Decimal | null
    grossMargin: Decimal | null
    version: number | null
  }

  export type DeliveryFulfillmentMinAggregateOutputType = {
    id: string | null
    deliveryRequestId: string | null
    robotUnitId: string | null
    sapPgiDocNo: string | null
    deliveredAt: Date | null
    signedAt: Date | null
    signedFormStatus: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId: string | null
    notePreDel: string | null
    additionalShippingNotes: string | null
    cost: Decimal | null
    grossMargin: Decimal | null
    revenueRecognition: $Enums.RevenueRecognitionStatus | null
    invoiceStatus: $Enums.InvoiceStatus | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type DeliveryFulfillmentMaxAggregateOutputType = {
    id: string | null
    deliveryRequestId: string | null
    robotUnitId: string | null
    sapPgiDocNo: string | null
    deliveredAt: Date | null
    signedAt: Date | null
    signedFormStatus: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId: string | null
    notePreDel: string | null
    additionalShippingNotes: string | null
    cost: Decimal | null
    grossMargin: Decimal | null
    revenueRecognition: $Enums.RevenueRecognitionStatus | null
    invoiceStatus: $Enums.InvoiceStatus | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type DeliveryFulfillmentCountAggregateOutputType = {
    id: number
    deliveryRequestId: number
    robotUnitId: number
    sapPgiDocNo: number
    deliveredAt: number
    signedAt: number
    signedFormStatus: number
    acceptanceFormStatus: number
    acceptanceFormPreDel: number
    acceptanceFormAttachmentId: number
    notePreDel: number
    additionalShippingNotes: number
    cost: number
    grossMargin: number
    revenueRecognition: number
    invoiceStatus: number
    version: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type DeliveryFulfillmentAvgAggregateInputType = {
    cost?: true
    grossMargin?: true
    version?: true
  }

  export type DeliveryFulfillmentSumAggregateInputType = {
    cost?: true
    grossMargin?: true
    version?: true
  }

  export type DeliveryFulfillmentMinAggregateInputType = {
    id?: true
    deliveryRequestId?: true
    robotUnitId?: true
    sapPgiDocNo?: true
    deliveredAt?: true
    signedAt?: true
    signedFormStatus?: true
    acceptanceFormStatus?: true
    acceptanceFormPreDel?: true
    acceptanceFormAttachmentId?: true
    notePreDel?: true
    additionalShippingNotes?: true
    cost?: true
    grossMargin?: true
    revenueRecognition?: true
    invoiceStatus?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type DeliveryFulfillmentMaxAggregateInputType = {
    id?: true
    deliveryRequestId?: true
    robotUnitId?: true
    sapPgiDocNo?: true
    deliveredAt?: true
    signedAt?: true
    signedFormStatus?: true
    acceptanceFormStatus?: true
    acceptanceFormPreDel?: true
    acceptanceFormAttachmentId?: true
    notePreDel?: true
    additionalShippingNotes?: true
    cost?: true
    grossMargin?: true
    revenueRecognition?: true
    invoiceStatus?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type DeliveryFulfillmentCountAggregateInputType = {
    id?: true
    deliveryRequestId?: true
    robotUnitId?: true
    sapPgiDocNo?: true
    deliveredAt?: true
    signedAt?: true
    signedFormStatus?: true
    acceptanceFormStatus?: true
    acceptanceFormPreDel?: true
    acceptanceFormAttachmentId?: true
    notePreDel?: true
    additionalShippingNotes?: true
    cost?: true
    grossMargin?: true
    revenueRecognition?: true
    invoiceStatus?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type DeliveryFulfillmentAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DeliveryFulfillment to aggregate.
     */
    where?: DeliveryFulfillmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DeliveryFulfillments to fetch.
     */
    orderBy?: DeliveryFulfillmentOrderByWithRelationInput | DeliveryFulfillmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: DeliveryFulfillmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DeliveryFulfillments 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` DeliveryFulfillments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned DeliveryFulfillments
    **/
    _count?: true | DeliveryFulfillmentCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: DeliveryFulfillmentAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: DeliveryFulfillmentSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: DeliveryFulfillmentMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: DeliveryFulfillmentMaxAggregateInputType
  }

  export type GetDeliveryFulfillmentAggregateType<T extends DeliveryFulfillmentAggregateArgs> = {
        [P in keyof T & keyof AggregateDeliveryFulfillment]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateDeliveryFulfillment[P]>
      : GetScalarType<T[P], AggregateDeliveryFulfillment[P]>
  }




  export type DeliveryFulfillmentGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: DeliveryFulfillmentWhereInput
    orderBy?: DeliveryFulfillmentOrderByWithAggregationInput | DeliveryFulfillmentOrderByWithAggregationInput[]
    by: DeliveryFulfillmentScalarFieldEnum[] | DeliveryFulfillmentScalarFieldEnum
    having?: DeliveryFulfillmentScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: DeliveryFulfillmentCountAggregateInputType | true
    _avg?: DeliveryFulfillmentAvgAggregateInputType
    _sum?: DeliveryFulfillmentSumAggregateInputType
    _min?: DeliveryFulfillmentMinAggregateInputType
    _max?: DeliveryFulfillmentMaxAggregateInputType
  }

  export type DeliveryFulfillmentGroupByOutputType = {
    id: string
    deliveryRequestId: string
    robotUnitId: string
    sapPgiDocNo: string | null
    deliveredAt: Date
    signedAt: Date | null
    signedFormStatus: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId: string | null
    notePreDel: string | null
    additionalShippingNotes: string | null
    cost: Decimal | null
    grossMargin: Decimal | null
    revenueRecognition: $Enums.RevenueRecognitionStatus | null
    invoiceStatus: $Enums.InvoiceStatus | null
    version: number
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: DeliveryFulfillmentCountAggregateOutputType | null
    _avg: DeliveryFulfillmentAvgAggregateOutputType | null
    _sum: DeliveryFulfillmentSumAggregateOutputType | null
    _min: DeliveryFulfillmentMinAggregateOutputType | null
    _max: DeliveryFulfillmentMaxAggregateOutputType | null
  }

  type GetDeliveryFulfillmentGroupByPayload<T extends DeliveryFulfillmentGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<DeliveryFulfillmentGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof DeliveryFulfillmentGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], DeliveryFulfillmentGroupByOutputType[P]>
            : GetScalarType<T[P], DeliveryFulfillmentGroupByOutputType[P]>
        }
      >
    >


  export type DeliveryFulfillmentSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deliveryRequestId?: boolean
    robotUnitId?: boolean
    sapPgiDocNo?: boolean
    deliveredAt?: boolean
    signedAt?: boolean
    signedFormStatus?: boolean
    acceptanceFormStatus?: boolean
    acceptanceFormPreDel?: boolean
    acceptanceFormAttachmentId?: boolean
    notePreDel?: boolean
    additionalShippingNotes?: boolean
    cost?: boolean
    grossMargin?: boolean
    revenueRecognition?: boolean
    invoiceStatus?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    deliveryRequest?: boolean | DeliveryRequestDefaultArgs<ExtArgs>
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["deliveryFulfillment"]>

  export type DeliveryFulfillmentSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deliveryRequestId?: boolean
    robotUnitId?: boolean
    sapPgiDocNo?: boolean
    deliveredAt?: boolean
    signedAt?: boolean
    signedFormStatus?: boolean
    acceptanceFormStatus?: boolean
    acceptanceFormPreDel?: boolean
    acceptanceFormAttachmentId?: boolean
    notePreDel?: boolean
    additionalShippingNotes?: boolean
    cost?: boolean
    grossMargin?: boolean
    revenueRecognition?: boolean
    invoiceStatus?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    deliveryRequest?: boolean | DeliveryRequestDefaultArgs<ExtArgs>
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["deliveryFulfillment"]>

  export type DeliveryFulfillmentSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    deliveryRequestId?: boolean
    robotUnitId?: boolean
    sapPgiDocNo?: boolean
    deliveredAt?: boolean
    signedAt?: boolean
    signedFormStatus?: boolean
    acceptanceFormStatus?: boolean
    acceptanceFormPreDel?: boolean
    acceptanceFormAttachmentId?: boolean
    notePreDel?: boolean
    additionalShippingNotes?: boolean
    cost?: boolean
    grossMargin?: boolean
    revenueRecognition?: boolean
    invoiceStatus?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    deliveryRequest?: boolean | DeliveryRequestDefaultArgs<ExtArgs>
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["deliveryFulfillment"]>

  export type DeliveryFulfillmentSelectScalar = {
    id?: boolean
    deliveryRequestId?: boolean
    robotUnitId?: boolean
    sapPgiDocNo?: boolean
    deliveredAt?: boolean
    signedAt?: boolean
    signedFormStatus?: boolean
    acceptanceFormStatus?: boolean
    acceptanceFormPreDel?: boolean
    acceptanceFormAttachmentId?: boolean
    notePreDel?: boolean
    additionalShippingNotes?: boolean
    cost?: boolean
    grossMargin?: boolean
    revenueRecognition?: boolean
    invoiceStatus?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type DeliveryFulfillmentOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "deliveryRequestId" | "robotUnitId" | "sapPgiDocNo" | "deliveredAt" | "signedAt" | "signedFormStatus" | "acceptanceFormStatus" | "acceptanceFormPreDel" | "acceptanceFormAttachmentId" | "notePreDel" | "additionalShippingNotes" | "cost" | "grossMargin" | "revenueRecognition" | "invoiceStatus" | "version" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["deliveryFulfillment"]>
  export type DeliveryFulfillmentInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    deliveryRequest?: boolean | DeliveryRequestDefaultArgs<ExtArgs>
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type DeliveryFulfillmentIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    deliveryRequest?: boolean | DeliveryRequestDefaultArgs<ExtArgs>
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type DeliveryFulfillmentIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    deliveryRequest?: boolean | DeliveryRequestDefaultArgs<ExtArgs>
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $DeliveryFulfillmentPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "DeliveryFulfillment"
    objects: {
      deliveryRequest: Prisma.$DeliveryRequestPayload<ExtArgs>
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      deliveryRequestId: string
      robotUnitId: string
      sapPgiDocNo: string | null
      deliveredAt: Date
      signedAt: Date | null
      signedFormStatus: $Enums.DeliveryFormStatus | null
      acceptanceFormStatus: $Enums.DeliveryFormStatus | null
      acceptanceFormPreDel: $Enums.DeliveryFormStatus | null
      acceptanceFormAttachmentId: string | null
      notePreDel: string | null
      additionalShippingNotes: string | null
      cost: Prisma.Decimal | null
      /**
       * ⚠️ 派生值物化（原则 12 反范式）— = revenue - cost。冻结 snapshot 语义：
       * PGI 时一次性算入并写死，事后改 cost 不会更新本字段（这是财务报表惯例：避免历史汇总漂移）。
       * service 层 enforce：仅 PGI 提交那一次计算，之后只读。
       */
      grossMargin: Prisma.Decimal | null
      revenueRecognition: $Enums.RevenueRecognitionStatus | null
      invoiceStatus: $Enums.InvoiceStatus | null
      /**
       * 乐观锁（原则 18 资金敏感）— PGI 提交 / 收入确认 / 发票状态变更走这个 version。
       */
      version: number
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["deliveryFulfillment"]>
    composites: {}
  }

  type DeliveryFulfillmentGetPayload<S extends boolean | null | undefined | DeliveryFulfillmentDefaultArgs> = $Result.GetResult<Prisma.$DeliveryFulfillmentPayload, S>

  type DeliveryFulfillmentCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<DeliveryFulfillmentFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: DeliveryFulfillmentCountAggregateInputType | true
    }

  export interface DeliveryFulfillmentDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['DeliveryFulfillment'], meta: { name: 'DeliveryFulfillment' } }
    /**
     * Find zero or one DeliveryFulfillment that matches the filter.
     * @param {DeliveryFulfillmentFindUniqueArgs} args - Arguments to find a DeliveryFulfillment
     * @example
     * // Get one DeliveryFulfillment
     * const deliveryFulfillment = await prisma.deliveryFulfillment.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends DeliveryFulfillmentFindUniqueArgs>(args: SelectSubset<T, DeliveryFulfillmentFindUniqueArgs<ExtArgs>>): Prisma__DeliveryFulfillmentClient<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one DeliveryFulfillment that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {DeliveryFulfillmentFindUniqueOrThrowArgs} args - Arguments to find a DeliveryFulfillment
     * @example
     * // Get one DeliveryFulfillment
     * const deliveryFulfillment = await prisma.deliveryFulfillment.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends DeliveryFulfillmentFindUniqueOrThrowArgs>(args: SelectSubset<T, DeliveryFulfillmentFindUniqueOrThrowArgs<ExtArgs>>): Prisma__DeliveryFulfillmentClient<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DeliveryFulfillment 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 {DeliveryFulfillmentFindFirstArgs} args - Arguments to find a DeliveryFulfillment
     * @example
     * // Get one DeliveryFulfillment
     * const deliveryFulfillment = await prisma.deliveryFulfillment.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends DeliveryFulfillmentFindFirstArgs>(args?: SelectSubset<T, DeliveryFulfillmentFindFirstArgs<ExtArgs>>): Prisma__DeliveryFulfillmentClient<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first DeliveryFulfillment 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 {DeliveryFulfillmentFindFirstOrThrowArgs} args - Arguments to find a DeliveryFulfillment
     * @example
     * // Get one DeliveryFulfillment
     * const deliveryFulfillment = await prisma.deliveryFulfillment.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends DeliveryFulfillmentFindFirstOrThrowArgs>(args?: SelectSubset<T, DeliveryFulfillmentFindFirstOrThrowArgs<ExtArgs>>): Prisma__DeliveryFulfillmentClient<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more DeliveryFulfillments 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 {DeliveryFulfillmentFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all DeliveryFulfillments
     * const deliveryFulfillments = await prisma.deliveryFulfillment.findMany()
     * 
     * // Get first 10 DeliveryFulfillments
     * const deliveryFulfillments = await prisma.deliveryFulfillment.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const deliveryFulfillmentWithIdOnly = await prisma.deliveryFulfillment.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends DeliveryFulfillmentFindManyArgs>(args?: SelectSubset<T, DeliveryFulfillmentFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a DeliveryFulfillment.
     * @param {DeliveryFulfillmentCreateArgs} args - Arguments to create a DeliveryFulfillment.
     * @example
     * // Create one DeliveryFulfillment
     * const DeliveryFulfillment = await prisma.deliveryFulfillment.create({
     *   data: {
     *     // ... data to create a DeliveryFulfillment
     *   }
     * })
     * 
     */
    create<T extends DeliveryFulfillmentCreateArgs>(args: SelectSubset<T, DeliveryFulfillmentCreateArgs<ExtArgs>>): Prisma__DeliveryFulfillmentClient<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many DeliveryFulfillments.
     * @param {DeliveryFulfillmentCreateManyArgs} args - Arguments to create many DeliveryFulfillments.
     * @example
     * // Create many DeliveryFulfillments
     * const deliveryFulfillment = await prisma.deliveryFulfillment.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends DeliveryFulfillmentCreateManyArgs>(args?: SelectSubset<T, DeliveryFulfillmentCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many DeliveryFulfillments and returns the data saved in the database.
     * @param {DeliveryFulfillmentCreateManyAndReturnArgs} args - Arguments to create many DeliveryFulfillments.
     * @example
     * // Create many DeliveryFulfillments
     * const deliveryFulfillment = await prisma.deliveryFulfillment.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many DeliveryFulfillments and only return the `id`
     * const deliveryFulfillmentWithIdOnly = await prisma.deliveryFulfillment.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 DeliveryFulfillmentCreateManyAndReturnArgs>(args?: SelectSubset<T, DeliveryFulfillmentCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a DeliveryFulfillment.
     * @param {DeliveryFulfillmentDeleteArgs} args - Arguments to delete one DeliveryFulfillment.
     * @example
     * // Delete one DeliveryFulfillment
     * const DeliveryFulfillment = await prisma.deliveryFulfillment.delete({
     *   where: {
     *     // ... filter to delete one DeliveryFulfillment
     *   }
     * })
     * 
     */
    delete<T extends DeliveryFulfillmentDeleteArgs>(args: SelectSubset<T, DeliveryFulfillmentDeleteArgs<ExtArgs>>): Prisma__DeliveryFulfillmentClient<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one DeliveryFulfillment.
     * @param {DeliveryFulfillmentUpdateArgs} args - Arguments to update one DeliveryFulfillment.
     * @example
     * // Update one DeliveryFulfillment
     * const deliveryFulfillment = await prisma.deliveryFulfillment.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends DeliveryFulfillmentUpdateArgs>(args: SelectSubset<T, DeliveryFulfillmentUpdateArgs<ExtArgs>>): Prisma__DeliveryFulfillmentClient<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more DeliveryFulfillments.
     * @param {DeliveryFulfillmentDeleteManyArgs} args - Arguments to filter DeliveryFulfillments to delete.
     * @example
     * // Delete a few DeliveryFulfillments
     * const { count } = await prisma.deliveryFulfillment.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends DeliveryFulfillmentDeleteManyArgs>(args?: SelectSubset<T, DeliveryFulfillmentDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DeliveryFulfillments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DeliveryFulfillmentUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many DeliveryFulfillments
     * const deliveryFulfillment = await prisma.deliveryFulfillment.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends DeliveryFulfillmentUpdateManyArgs>(args: SelectSubset<T, DeliveryFulfillmentUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more DeliveryFulfillments and returns the data updated in the database.
     * @param {DeliveryFulfillmentUpdateManyAndReturnArgs} args - Arguments to update many DeliveryFulfillments.
     * @example
     * // Update many DeliveryFulfillments
     * const deliveryFulfillment = await prisma.deliveryFulfillment.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more DeliveryFulfillments and only return the `id`
     * const deliveryFulfillmentWithIdOnly = await prisma.deliveryFulfillment.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 DeliveryFulfillmentUpdateManyAndReturnArgs>(args: SelectSubset<T, DeliveryFulfillmentUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one DeliveryFulfillment.
     * @param {DeliveryFulfillmentUpsertArgs} args - Arguments to update or create a DeliveryFulfillment.
     * @example
     * // Update or create a DeliveryFulfillment
     * const deliveryFulfillment = await prisma.deliveryFulfillment.upsert({
     *   create: {
     *     // ... data to create a DeliveryFulfillment
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the DeliveryFulfillment we want to update
     *   }
     * })
     */
    upsert<T extends DeliveryFulfillmentUpsertArgs>(args: SelectSubset<T, DeliveryFulfillmentUpsertArgs<ExtArgs>>): Prisma__DeliveryFulfillmentClient<$Result.GetResult<Prisma.$DeliveryFulfillmentPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of DeliveryFulfillments.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DeliveryFulfillmentCountArgs} args - Arguments to filter DeliveryFulfillments to count.
     * @example
     * // Count the number of DeliveryFulfillments
     * const count = await prisma.deliveryFulfillment.count({
     *   where: {
     *     // ... the filter for the DeliveryFulfillments we want to count
     *   }
     * })
    **/
    count<T extends DeliveryFulfillmentCountArgs>(
      args?: Subset<T, DeliveryFulfillmentCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], DeliveryFulfillmentCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a DeliveryFulfillment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DeliveryFulfillmentAggregateArgs} 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 DeliveryFulfillmentAggregateArgs>(args: Subset<T, DeliveryFulfillmentAggregateArgs>): Prisma.PrismaPromise<GetDeliveryFulfillmentAggregateType<T>>

    /**
     * Group by DeliveryFulfillment.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {DeliveryFulfillmentGroupByArgs} 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 DeliveryFulfillmentGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: DeliveryFulfillmentGroupByArgs['orderBy'] }
        : { orderBy?: DeliveryFulfillmentGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, DeliveryFulfillmentGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetDeliveryFulfillmentGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the DeliveryFulfillment model
   */
  readonly fields: DeliveryFulfillmentFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for DeliveryFulfillment.
   * 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__DeliveryFulfillmentClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    deliveryRequest<T extends DeliveryRequestDefaultArgs<ExtArgs> = {}>(args?: Subset<T, DeliveryRequestDefaultArgs<ExtArgs>>): Prisma__DeliveryRequestClient<$Result.GetResult<Prisma.$DeliveryRequestPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the DeliveryFulfillment model
   */
  interface DeliveryFulfillmentFieldRefs {
    readonly id: FieldRef<"DeliveryFulfillment", 'String'>
    readonly deliveryRequestId: FieldRef<"DeliveryFulfillment", 'String'>
    readonly robotUnitId: FieldRef<"DeliveryFulfillment", 'String'>
    readonly sapPgiDocNo: FieldRef<"DeliveryFulfillment", 'String'>
    readonly deliveredAt: FieldRef<"DeliveryFulfillment", 'DateTime'>
    readonly signedAt: FieldRef<"DeliveryFulfillment", 'DateTime'>
    readonly signedFormStatus: FieldRef<"DeliveryFulfillment", 'DeliveryFormStatus'>
    readonly acceptanceFormStatus: FieldRef<"DeliveryFulfillment", 'DeliveryFormStatus'>
    readonly acceptanceFormPreDel: FieldRef<"DeliveryFulfillment", 'DeliveryFormStatus'>
    readonly acceptanceFormAttachmentId: FieldRef<"DeliveryFulfillment", 'String'>
    readonly notePreDel: FieldRef<"DeliveryFulfillment", 'String'>
    readonly additionalShippingNotes: FieldRef<"DeliveryFulfillment", 'String'>
    readonly cost: FieldRef<"DeliveryFulfillment", 'Decimal'>
    readonly grossMargin: FieldRef<"DeliveryFulfillment", 'Decimal'>
    readonly revenueRecognition: FieldRef<"DeliveryFulfillment", 'RevenueRecognitionStatus'>
    readonly invoiceStatus: FieldRef<"DeliveryFulfillment", 'InvoiceStatus'>
    readonly version: FieldRef<"DeliveryFulfillment", 'Int'>
    readonly organizationId: FieldRef<"DeliveryFulfillment", 'String'>
    readonly createdAt: FieldRef<"DeliveryFulfillment", 'DateTime'>
    readonly updatedAt: FieldRef<"DeliveryFulfillment", 'DateTime'>
    readonly createdById: FieldRef<"DeliveryFulfillment", 'String'>
    readonly deletedAt: FieldRef<"DeliveryFulfillment", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * DeliveryFulfillment findUnique
   */
  export type DeliveryFulfillmentFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryFulfillment to fetch.
     */
    where: DeliveryFulfillmentWhereUniqueInput
  }

  /**
   * DeliveryFulfillment findUniqueOrThrow
   */
  export type DeliveryFulfillmentFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryFulfillment to fetch.
     */
    where: DeliveryFulfillmentWhereUniqueInput
  }

  /**
   * DeliveryFulfillment findFirst
   */
  export type DeliveryFulfillmentFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryFulfillment to fetch.
     */
    where?: DeliveryFulfillmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DeliveryFulfillments to fetch.
     */
    orderBy?: DeliveryFulfillmentOrderByWithRelationInput | DeliveryFulfillmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DeliveryFulfillments.
     */
    cursor?: DeliveryFulfillmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DeliveryFulfillments 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` DeliveryFulfillments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DeliveryFulfillments.
     */
    distinct?: DeliveryFulfillmentScalarFieldEnum | DeliveryFulfillmentScalarFieldEnum[]
  }

  /**
   * DeliveryFulfillment findFirstOrThrow
   */
  export type DeliveryFulfillmentFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryFulfillment to fetch.
     */
    where?: DeliveryFulfillmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DeliveryFulfillments to fetch.
     */
    orderBy?: DeliveryFulfillmentOrderByWithRelationInput | DeliveryFulfillmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for DeliveryFulfillments.
     */
    cursor?: DeliveryFulfillmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DeliveryFulfillments 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` DeliveryFulfillments.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of DeliveryFulfillments.
     */
    distinct?: DeliveryFulfillmentScalarFieldEnum | DeliveryFulfillmentScalarFieldEnum[]
  }

  /**
   * DeliveryFulfillment findMany
   */
  export type DeliveryFulfillmentFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * Filter, which DeliveryFulfillments to fetch.
     */
    where?: DeliveryFulfillmentWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of DeliveryFulfillments to fetch.
     */
    orderBy?: DeliveryFulfillmentOrderByWithRelationInput | DeliveryFulfillmentOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing DeliveryFulfillments.
     */
    cursor?: DeliveryFulfillmentWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` DeliveryFulfillments 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` DeliveryFulfillments.
     */
    skip?: number
    distinct?: DeliveryFulfillmentScalarFieldEnum | DeliveryFulfillmentScalarFieldEnum[]
  }

  /**
   * DeliveryFulfillment create
   */
  export type DeliveryFulfillmentCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * The data needed to create a DeliveryFulfillment.
     */
    data: XOR<DeliveryFulfillmentCreateInput, DeliveryFulfillmentUncheckedCreateInput>
  }

  /**
   * DeliveryFulfillment createMany
   */
  export type DeliveryFulfillmentCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many DeliveryFulfillments.
     */
    data: DeliveryFulfillmentCreateManyInput | DeliveryFulfillmentCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * DeliveryFulfillment createManyAndReturn
   */
  export type DeliveryFulfillmentCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * The data used to create many DeliveryFulfillments.
     */
    data: DeliveryFulfillmentCreateManyInput | DeliveryFulfillmentCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * DeliveryFulfillment update
   */
  export type DeliveryFulfillmentUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * The data needed to update a DeliveryFulfillment.
     */
    data: XOR<DeliveryFulfillmentUpdateInput, DeliveryFulfillmentUncheckedUpdateInput>
    /**
     * Choose, which DeliveryFulfillment to update.
     */
    where: DeliveryFulfillmentWhereUniqueInput
  }

  /**
   * DeliveryFulfillment updateMany
   */
  export type DeliveryFulfillmentUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update DeliveryFulfillments.
     */
    data: XOR<DeliveryFulfillmentUpdateManyMutationInput, DeliveryFulfillmentUncheckedUpdateManyInput>
    /**
     * Filter which DeliveryFulfillments to update
     */
    where?: DeliveryFulfillmentWhereInput
    /**
     * Limit how many DeliveryFulfillments to update.
     */
    limit?: number
  }

  /**
   * DeliveryFulfillment updateManyAndReturn
   */
  export type DeliveryFulfillmentUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * The data used to update DeliveryFulfillments.
     */
    data: XOR<DeliveryFulfillmentUpdateManyMutationInput, DeliveryFulfillmentUncheckedUpdateManyInput>
    /**
     * Filter which DeliveryFulfillments to update
     */
    where?: DeliveryFulfillmentWhereInput
    /**
     * Limit how many DeliveryFulfillments to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * DeliveryFulfillment upsert
   */
  export type DeliveryFulfillmentUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * The filter to search for the DeliveryFulfillment to update in case it exists.
     */
    where: DeliveryFulfillmentWhereUniqueInput
    /**
     * In case the DeliveryFulfillment found by the `where` argument doesn't exist, create a new DeliveryFulfillment with this data.
     */
    create: XOR<DeliveryFulfillmentCreateInput, DeliveryFulfillmentUncheckedCreateInput>
    /**
     * In case the DeliveryFulfillment was found with the provided `where` argument, update it with this data.
     */
    update: XOR<DeliveryFulfillmentUpdateInput, DeliveryFulfillmentUncheckedUpdateInput>
  }

  /**
   * DeliveryFulfillment delete
   */
  export type DeliveryFulfillmentDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
    /**
     * Filter which DeliveryFulfillment to delete.
     */
    where: DeliveryFulfillmentWhereUniqueInput
  }

  /**
   * DeliveryFulfillment deleteMany
   */
  export type DeliveryFulfillmentDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which DeliveryFulfillments to delete
     */
    where?: DeliveryFulfillmentWhereInput
    /**
     * Limit how many DeliveryFulfillments to delete.
     */
    limit?: number
  }

  /**
   * DeliveryFulfillment without action
   */
  export type DeliveryFulfillmentDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the DeliveryFulfillment
     */
    select?: DeliveryFulfillmentSelect<ExtArgs> | null
    /**
     * Omit specific fields from the DeliveryFulfillment
     */
    omit?: DeliveryFulfillmentOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: DeliveryFulfillmentInclude<ExtArgs> | null
  }


  /**
   * Model PaymentRecord
   */

  export type AggregatePaymentRecord = {
    _count: PaymentRecordCountAggregateOutputType | null
    _avg: PaymentRecordAvgAggregateOutputType | null
    _sum: PaymentRecordSumAggregateOutputType | null
    _min: PaymentRecordMinAggregateOutputType | null
    _max: PaymentRecordMaxAggregateOutputType | null
  }

  export type PaymentRecordAvgAggregateOutputType = {
    amount: Decimal | null
    version: number | null
  }

  export type PaymentRecordSumAggregateOutputType = {
    amount: Decimal | null
    version: number | null
  }

  export type PaymentRecordMinAggregateOutputType = {
    id: string | null
    paymentNo: string | null
    relatedType: $Enums.PaymentRelatedType | null
    relatedId: string | null
    robotUnitId: string | null
    direction: $Enums.PaymentDirection | null
    sapClearingDocNo: string | null
    paymentMethod: $Enums.PaymentMethod | null
    paymentStatus: $Enums.PaymentStatus | null
    preDelContractStatus: $Enums.PreDelContractStatus | null
    amount: Decimal | null
    currencyCode: string | null
    paidAt: Date | null
    depositTransferFormAttachmentId: string | null
    depositTransferContractAttachmentId: string | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type PaymentRecordMaxAggregateOutputType = {
    id: string | null
    paymentNo: string | null
    relatedType: $Enums.PaymentRelatedType | null
    relatedId: string | null
    robotUnitId: string | null
    direction: $Enums.PaymentDirection | null
    sapClearingDocNo: string | null
    paymentMethod: $Enums.PaymentMethod | null
    paymentStatus: $Enums.PaymentStatus | null
    preDelContractStatus: $Enums.PreDelContractStatus | null
    amount: Decimal | null
    currencyCode: string | null
    paidAt: Date | null
    depositTransferFormAttachmentId: string | null
    depositTransferContractAttachmentId: string | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type PaymentRecordCountAggregateOutputType = {
    id: number
    paymentNo: number
    relatedType: number
    relatedId: number
    robotUnitId: number
    direction: number
    sapClearingDocNo: number
    paymentMethod: number
    paymentStatus: number
    preDelContractStatus: number
    amount: number
    currencyCode: number
    paidAt: number
    depositTransferFormAttachmentId: number
    depositTransferContractAttachmentId: number
    version: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type PaymentRecordAvgAggregateInputType = {
    amount?: true
    version?: true
  }

  export type PaymentRecordSumAggregateInputType = {
    amount?: true
    version?: true
  }

  export type PaymentRecordMinAggregateInputType = {
    id?: true
    paymentNo?: true
    relatedType?: true
    relatedId?: true
    robotUnitId?: true
    direction?: true
    sapClearingDocNo?: true
    paymentMethod?: true
    paymentStatus?: true
    preDelContractStatus?: true
    amount?: true
    currencyCode?: true
    paidAt?: true
    depositTransferFormAttachmentId?: true
    depositTransferContractAttachmentId?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type PaymentRecordMaxAggregateInputType = {
    id?: true
    paymentNo?: true
    relatedType?: true
    relatedId?: true
    robotUnitId?: true
    direction?: true
    sapClearingDocNo?: true
    paymentMethod?: true
    paymentStatus?: true
    preDelContractStatus?: true
    amount?: true
    currencyCode?: true
    paidAt?: true
    depositTransferFormAttachmentId?: true
    depositTransferContractAttachmentId?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type PaymentRecordCountAggregateInputType = {
    id?: true
    paymentNo?: true
    relatedType?: true
    relatedId?: true
    robotUnitId?: true
    direction?: true
    sapClearingDocNo?: true
    paymentMethod?: true
    paymentStatus?: true
    preDelContractStatus?: true
    amount?: true
    currencyCode?: true
    paidAt?: true
    depositTransferFormAttachmentId?: true
    depositTransferContractAttachmentId?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type PaymentRecordAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PaymentRecord to aggregate.
     */
    where?: PaymentRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PaymentRecords to fetch.
     */
    orderBy?: PaymentRecordOrderByWithRelationInput | PaymentRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: PaymentRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PaymentRecords 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` PaymentRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned PaymentRecords
    **/
    _count?: true | PaymentRecordCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: PaymentRecordAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: PaymentRecordSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: PaymentRecordMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: PaymentRecordMaxAggregateInputType
  }

  export type GetPaymentRecordAggregateType<T extends PaymentRecordAggregateArgs> = {
        [P in keyof T & keyof AggregatePaymentRecord]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregatePaymentRecord[P]>
      : GetScalarType<T[P], AggregatePaymentRecord[P]>
  }




  export type PaymentRecordGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: PaymentRecordWhereInput
    orderBy?: PaymentRecordOrderByWithAggregationInput | PaymentRecordOrderByWithAggregationInput[]
    by: PaymentRecordScalarFieldEnum[] | PaymentRecordScalarFieldEnum
    having?: PaymentRecordScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: PaymentRecordCountAggregateInputType | true
    _avg?: PaymentRecordAvgAggregateInputType
    _sum?: PaymentRecordSumAggregateInputType
    _min?: PaymentRecordMinAggregateInputType
    _max?: PaymentRecordMaxAggregateInputType
  }

  export type PaymentRecordGroupByOutputType = {
    id: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    robotUnitId: string | null
    direction: $Enums.PaymentDirection
    sapClearingDocNo: string | null
    paymentMethod: $Enums.PaymentMethod | null
    paymentStatus: $Enums.PaymentStatus | null
    preDelContractStatus: $Enums.PreDelContractStatus | null
    amount: Decimal
    currencyCode: string
    paidAt: Date | null
    depositTransferFormAttachmentId: string | null
    depositTransferContractAttachmentId: string | null
    version: number
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: PaymentRecordCountAggregateOutputType | null
    _avg: PaymentRecordAvgAggregateOutputType | null
    _sum: PaymentRecordSumAggregateOutputType | null
    _min: PaymentRecordMinAggregateOutputType | null
    _max: PaymentRecordMaxAggregateOutputType | null
  }

  type GetPaymentRecordGroupByPayload<T extends PaymentRecordGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<PaymentRecordGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof PaymentRecordGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], PaymentRecordGroupByOutputType[P]>
            : GetScalarType<T[P], PaymentRecordGroupByOutputType[P]>
        }
      >
    >


  export type PaymentRecordSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    paymentNo?: boolean
    relatedType?: boolean
    relatedId?: boolean
    robotUnitId?: boolean
    direction?: boolean
    sapClearingDocNo?: boolean
    paymentMethod?: boolean
    paymentStatus?: boolean
    preDelContractStatus?: boolean
    amount?: boolean
    currencyCode?: boolean
    paidAt?: boolean
    depositTransferFormAttachmentId?: boolean
    depositTransferContractAttachmentId?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | PaymentRecord$robotUnitArgs<ExtArgs>
    rentalScheduleEntries?: boolean | PaymentRecord$rentalScheduleEntriesArgs<ExtArgs>
    _count?: boolean | PaymentRecordCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["paymentRecord"]>

  export type PaymentRecordSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    paymentNo?: boolean
    relatedType?: boolean
    relatedId?: boolean
    robotUnitId?: boolean
    direction?: boolean
    sapClearingDocNo?: boolean
    paymentMethod?: boolean
    paymentStatus?: boolean
    preDelContractStatus?: boolean
    amount?: boolean
    currencyCode?: boolean
    paidAt?: boolean
    depositTransferFormAttachmentId?: boolean
    depositTransferContractAttachmentId?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | PaymentRecord$robotUnitArgs<ExtArgs>
  }, ExtArgs["result"]["paymentRecord"]>

  export type PaymentRecordSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    paymentNo?: boolean
    relatedType?: boolean
    relatedId?: boolean
    robotUnitId?: boolean
    direction?: boolean
    sapClearingDocNo?: boolean
    paymentMethod?: boolean
    paymentStatus?: boolean
    preDelContractStatus?: boolean
    amount?: boolean
    currencyCode?: boolean
    paidAt?: boolean
    depositTransferFormAttachmentId?: boolean
    depositTransferContractAttachmentId?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | PaymentRecord$robotUnitArgs<ExtArgs>
  }, ExtArgs["result"]["paymentRecord"]>

  export type PaymentRecordSelectScalar = {
    id?: boolean
    paymentNo?: boolean
    relatedType?: boolean
    relatedId?: boolean
    robotUnitId?: boolean
    direction?: boolean
    sapClearingDocNo?: boolean
    paymentMethod?: boolean
    paymentStatus?: boolean
    preDelContractStatus?: boolean
    amount?: boolean
    currencyCode?: boolean
    paidAt?: boolean
    depositTransferFormAttachmentId?: boolean
    depositTransferContractAttachmentId?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type PaymentRecordOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "paymentNo" | "relatedType" | "relatedId" | "robotUnitId" | "direction" | "sapClearingDocNo" | "paymentMethod" | "paymentStatus" | "preDelContractStatus" | "amount" | "currencyCode" | "paidAt" | "depositTransferFormAttachmentId" | "depositTransferContractAttachmentId" | "version" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["paymentRecord"]>
  export type PaymentRecordInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | PaymentRecord$robotUnitArgs<ExtArgs>
    rentalScheduleEntries?: boolean | PaymentRecord$rentalScheduleEntriesArgs<ExtArgs>
    _count?: boolean | PaymentRecordCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type PaymentRecordIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | PaymentRecord$robotUnitArgs<ExtArgs>
  }
  export type PaymentRecordIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | PaymentRecord$robotUnitArgs<ExtArgs>
  }

  export type $PaymentRecordPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "PaymentRecord"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs> | null
      rentalScheduleEntries: Prisma.$RentalPaymentSchedulePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      paymentNo: string
      relatedType: $Enums.PaymentRelatedType
      relatedId: string
      robotUnitId: string | null
      direction: $Enums.PaymentDirection
      sapClearingDocNo: string | null
      paymentMethod: $Enums.PaymentMethod | null
      paymentStatus: $Enums.PaymentStatus | null
      preDelContractStatus: $Enums.PreDelContractStatus | null
      /**
       * 业务规则：amount 正负随 direction —— INBOUND 正、OUTBOUND 正、退款用单独 PaymentRecord（不允许负 amount）。
       */
      amount: Prisma.Decimal
      currencyCode: string
      paidAt: Date | null
      depositTransferFormAttachmentId: string | null
      depositTransferContractAttachmentId: string | null
      /**
       * 乐观锁（原则 18 资金敏感）— 防 mark-paid / status 变更并发覆盖。
       */
      version: number
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["paymentRecord"]>
    composites: {}
  }

  type PaymentRecordGetPayload<S extends boolean | null | undefined | PaymentRecordDefaultArgs> = $Result.GetResult<Prisma.$PaymentRecordPayload, S>

  type PaymentRecordCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<PaymentRecordFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: PaymentRecordCountAggregateInputType | true
    }

  export interface PaymentRecordDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['PaymentRecord'], meta: { name: 'PaymentRecord' } }
    /**
     * Find zero or one PaymentRecord that matches the filter.
     * @param {PaymentRecordFindUniqueArgs} args - Arguments to find a PaymentRecord
     * @example
     * // Get one PaymentRecord
     * const paymentRecord = await prisma.paymentRecord.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends PaymentRecordFindUniqueArgs>(args: SelectSubset<T, PaymentRecordFindUniqueArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one PaymentRecord that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {PaymentRecordFindUniqueOrThrowArgs} args - Arguments to find a PaymentRecord
     * @example
     * // Get one PaymentRecord
     * const paymentRecord = await prisma.paymentRecord.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends PaymentRecordFindUniqueOrThrowArgs>(args: SelectSubset<T, PaymentRecordFindUniqueOrThrowArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PaymentRecord 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 {PaymentRecordFindFirstArgs} args - Arguments to find a PaymentRecord
     * @example
     * // Get one PaymentRecord
     * const paymentRecord = await prisma.paymentRecord.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends PaymentRecordFindFirstArgs>(args?: SelectSubset<T, PaymentRecordFindFirstArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first PaymentRecord 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 {PaymentRecordFindFirstOrThrowArgs} args - Arguments to find a PaymentRecord
     * @example
     * // Get one PaymentRecord
     * const paymentRecord = await prisma.paymentRecord.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends PaymentRecordFindFirstOrThrowArgs>(args?: SelectSubset<T, PaymentRecordFindFirstOrThrowArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more PaymentRecords 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 {PaymentRecordFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all PaymentRecords
     * const paymentRecords = await prisma.paymentRecord.findMany()
     * 
     * // Get first 10 PaymentRecords
     * const paymentRecords = await prisma.paymentRecord.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const paymentRecordWithIdOnly = await prisma.paymentRecord.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends PaymentRecordFindManyArgs>(args?: SelectSubset<T, PaymentRecordFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a PaymentRecord.
     * @param {PaymentRecordCreateArgs} args - Arguments to create a PaymentRecord.
     * @example
     * // Create one PaymentRecord
     * const PaymentRecord = await prisma.paymentRecord.create({
     *   data: {
     *     // ... data to create a PaymentRecord
     *   }
     * })
     * 
     */
    create<T extends PaymentRecordCreateArgs>(args: SelectSubset<T, PaymentRecordCreateArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many PaymentRecords.
     * @param {PaymentRecordCreateManyArgs} args - Arguments to create many PaymentRecords.
     * @example
     * // Create many PaymentRecords
     * const paymentRecord = await prisma.paymentRecord.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends PaymentRecordCreateManyArgs>(args?: SelectSubset<T, PaymentRecordCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many PaymentRecords and returns the data saved in the database.
     * @param {PaymentRecordCreateManyAndReturnArgs} args - Arguments to create many PaymentRecords.
     * @example
     * // Create many PaymentRecords
     * const paymentRecord = await prisma.paymentRecord.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many PaymentRecords and only return the `id`
     * const paymentRecordWithIdOnly = await prisma.paymentRecord.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 PaymentRecordCreateManyAndReturnArgs>(args?: SelectSubset<T, PaymentRecordCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a PaymentRecord.
     * @param {PaymentRecordDeleteArgs} args - Arguments to delete one PaymentRecord.
     * @example
     * // Delete one PaymentRecord
     * const PaymentRecord = await prisma.paymentRecord.delete({
     *   where: {
     *     // ... filter to delete one PaymentRecord
     *   }
     * })
     * 
     */
    delete<T extends PaymentRecordDeleteArgs>(args: SelectSubset<T, PaymentRecordDeleteArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one PaymentRecord.
     * @param {PaymentRecordUpdateArgs} args - Arguments to update one PaymentRecord.
     * @example
     * // Update one PaymentRecord
     * const paymentRecord = await prisma.paymentRecord.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends PaymentRecordUpdateArgs>(args: SelectSubset<T, PaymentRecordUpdateArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more PaymentRecords.
     * @param {PaymentRecordDeleteManyArgs} args - Arguments to filter PaymentRecords to delete.
     * @example
     * // Delete a few PaymentRecords
     * const { count } = await prisma.paymentRecord.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends PaymentRecordDeleteManyArgs>(args?: SelectSubset<T, PaymentRecordDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PaymentRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PaymentRecordUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many PaymentRecords
     * const paymentRecord = await prisma.paymentRecord.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends PaymentRecordUpdateManyArgs>(args: SelectSubset<T, PaymentRecordUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more PaymentRecords and returns the data updated in the database.
     * @param {PaymentRecordUpdateManyAndReturnArgs} args - Arguments to update many PaymentRecords.
     * @example
     * // Update many PaymentRecords
     * const paymentRecord = await prisma.paymentRecord.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more PaymentRecords and only return the `id`
     * const paymentRecordWithIdOnly = await prisma.paymentRecord.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 PaymentRecordUpdateManyAndReturnArgs>(args: SelectSubset<T, PaymentRecordUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one PaymentRecord.
     * @param {PaymentRecordUpsertArgs} args - Arguments to update or create a PaymentRecord.
     * @example
     * // Update or create a PaymentRecord
     * const paymentRecord = await prisma.paymentRecord.upsert({
     *   create: {
     *     // ... data to create a PaymentRecord
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the PaymentRecord we want to update
     *   }
     * })
     */
    upsert<T extends PaymentRecordUpsertArgs>(args: SelectSubset<T, PaymentRecordUpsertArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of PaymentRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PaymentRecordCountArgs} args - Arguments to filter PaymentRecords to count.
     * @example
     * // Count the number of PaymentRecords
     * const count = await prisma.paymentRecord.count({
     *   where: {
     *     // ... the filter for the PaymentRecords we want to count
     *   }
     * })
    **/
    count<T extends PaymentRecordCountArgs>(
      args?: Subset<T, PaymentRecordCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], PaymentRecordCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a PaymentRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PaymentRecordAggregateArgs} 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 PaymentRecordAggregateArgs>(args: Subset<T, PaymentRecordAggregateArgs>): Prisma.PrismaPromise<GetPaymentRecordAggregateType<T>>

    /**
     * Group by PaymentRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {PaymentRecordGroupByArgs} 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 PaymentRecordGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: PaymentRecordGroupByArgs['orderBy'] }
        : { orderBy?: PaymentRecordGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, PaymentRecordGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetPaymentRecordGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the PaymentRecord model
   */
  readonly fields: PaymentRecordFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for PaymentRecord.
   * 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__PaymentRecordClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends PaymentRecord$robotUnitArgs<ExtArgs> = {}>(args?: Subset<T, PaymentRecord$robotUnitArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    rentalScheduleEntries<T extends PaymentRecord$rentalScheduleEntriesArgs<ExtArgs> = {}>(args?: Subset<T, PaymentRecord$rentalScheduleEntriesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the PaymentRecord model
   */
  interface PaymentRecordFieldRefs {
    readonly id: FieldRef<"PaymentRecord", 'String'>
    readonly paymentNo: FieldRef<"PaymentRecord", 'String'>
    readonly relatedType: FieldRef<"PaymentRecord", 'PaymentRelatedType'>
    readonly relatedId: FieldRef<"PaymentRecord", 'String'>
    readonly robotUnitId: FieldRef<"PaymentRecord", 'String'>
    readonly direction: FieldRef<"PaymentRecord", 'PaymentDirection'>
    readonly sapClearingDocNo: FieldRef<"PaymentRecord", 'String'>
    readonly paymentMethod: FieldRef<"PaymentRecord", 'PaymentMethod'>
    readonly paymentStatus: FieldRef<"PaymentRecord", 'PaymentStatus'>
    readonly preDelContractStatus: FieldRef<"PaymentRecord", 'PreDelContractStatus'>
    readonly amount: FieldRef<"PaymentRecord", 'Decimal'>
    readonly currencyCode: FieldRef<"PaymentRecord", 'String'>
    readonly paidAt: FieldRef<"PaymentRecord", 'DateTime'>
    readonly depositTransferFormAttachmentId: FieldRef<"PaymentRecord", 'String'>
    readonly depositTransferContractAttachmentId: FieldRef<"PaymentRecord", 'String'>
    readonly version: FieldRef<"PaymentRecord", 'Int'>
    readonly organizationId: FieldRef<"PaymentRecord", 'String'>
    readonly createdAt: FieldRef<"PaymentRecord", 'DateTime'>
    readonly updatedAt: FieldRef<"PaymentRecord", 'DateTime'>
    readonly createdById: FieldRef<"PaymentRecord", 'String'>
    readonly deletedAt: FieldRef<"PaymentRecord", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * PaymentRecord findUnique
   */
  export type PaymentRecordFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * Filter, which PaymentRecord to fetch.
     */
    where: PaymentRecordWhereUniqueInput
  }

  /**
   * PaymentRecord findUniqueOrThrow
   */
  export type PaymentRecordFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * Filter, which PaymentRecord to fetch.
     */
    where: PaymentRecordWhereUniqueInput
  }

  /**
   * PaymentRecord findFirst
   */
  export type PaymentRecordFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * Filter, which PaymentRecord to fetch.
     */
    where?: PaymentRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PaymentRecords to fetch.
     */
    orderBy?: PaymentRecordOrderByWithRelationInput | PaymentRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PaymentRecords.
     */
    cursor?: PaymentRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PaymentRecords 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` PaymentRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PaymentRecords.
     */
    distinct?: PaymentRecordScalarFieldEnum | PaymentRecordScalarFieldEnum[]
  }

  /**
   * PaymentRecord findFirstOrThrow
   */
  export type PaymentRecordFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * Filter, which PaymentRecord to fetch.
     */
    where?: PaymentRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PaymentRecords to fetch.
     */
    orderBy?: PaymentRecordOrderByWithRelationInput | PaymentRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for PaymentRecords.
     */
    cursor?: PaymentRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PaymentRecords 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` PaymentRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of PaymentRecords.
     */
    distinct?: PaymentRecordScalarFieldEnum | PaymentRecordScalarFieldEnum[]
  }

  /**
   * PaymentRecord findMany
   */
  export type PaymentRecordFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * Filter, which PaymentRecords to fetch.
     */
    where?: PaymentRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of PaymentRecords to fetch.
     */
    orderBy?: PaymentRecordOrderByWithRelationInput | PaymentRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing PaymentRecords.
     */
    cursor?: PaymentRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` PaymentRecords 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` PaymentRecords.
     */
    skip?: number
    distinct?: PaymentRecordScalarFieldEnum | PaymentRecordScalarFieldEnum[]
  }

  /**
   * PaymentRecord create
   */
  export type PaymentRecordCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * The data needed to create a PaymentRecord.
     */
    data: XOR<PaymentRecordCreateInput, PaymentRecordUncheckedCreateInput>
  }

  /**
   * PaymentRecord createMany
   */
  export type PaymentRecordCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many PaymentRecords.
     */
    data: PaymentRecordCreateManyInput | PaymentRecordCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * PaymentRecord createManyAndReturn
   */
  export type PaymentRecordCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * The data used to create many PaymentRecords.
     */
    data: PaymentRecordCreateManyInput | PaymentRecordCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * PaymentRecord update
   */
  export type PaymentRecordUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * The data needed to update a PaymentRecord.
     */
    data: XOR<PaymentRecordUpdateInput, PaymentRecordUncheckedUpdateInput>
    /**
     * Choose, which PaymentRecord to update.
     */
    where: PaymentRecordWhereUniqueInput
  }

  /**
   * PaymentRecord updateMany
   */
  export type PaymentRecordUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update PaymentRecords.
     */
    data: XOR<PaymentRecordUpdateManyMutationInput, PaymentRecordUncheckedUpdateManyInput>
    /**
     * Filter which PaymentRecords to update
     */
    where?: PaymentRecordWhereInput
    /**
     * Limit how many PaymentRecords to update.
     */
    limit?: number
  }

  /**
   * PaymentRecord updateManyAndReturn
   */
  export type PaymentRecordUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * The data used to update PaymentRecords.
     */
    data: XOR<PaymentRecordUpdateManyMutationInput, PaymentRecordUncheckedUpdateManyInput>
    /**
     * Filter which PaymentRecords to update
     */
    where?: PaymentRecordWhereInput
    /**
     * Limit how many PaymentRecords to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * PaymentRecord upsert
   */
  export type PaymentRecordUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * The filter to search for the PaymentRecord to update in case it exists.
     */
    where: PaymentRecordWhereUniqueInput
    /**
     * In case the PaymentRecord found by the `where` argument doesn't exist, create a new PaymentRecord with this data.
     */
    create: XOR<PaymentRecordCreateInput, PaymentRecordUncheckedCreateInput>
    /**
     * In case the PaymentRecord was found with the provided `where` argument, update it with this data.
     */
    update: XOR<PaymentRecordUpdateInput, PaymentRecordUncheckedUpdateInput>
  }

  /**
   * PaymentRecord delete
   */
  export type PaymentRecordDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    /**
     * Filter which PaymentRecord to delete.
     */
    where: PaymentRecordWhereUniqueInput
  }

  /**
   * PaymentRecord deleteMany
   */
  export type PaymentRecordDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which PaymentRecords to delete
     */
    where?: PaymentRecordWhereInput
    /**
     * Limit how many PaymentRecords to delete.
     */
    limit?: number
  }

  /**
   * PaymentRecord.robotUnit
   */
  export type PaymentRecord$robotUnitArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotUnit
     */
    select?: RobotUnitSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotUnit
     */
    omit?: RobotUnitOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotUnitInclude<ExtArgs> | null
    where?: RobotUnitWhereInput
  }

  /**
   * PaymentRecord.rentalScheduleEntries
   */
  export type PaymentRecord$rentalScheduleEntriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    where?: RentalPaymentScheduleWhereInput
    orderBy?: RentalPaymentScheduleOrderByWithRelationInput | RentalPaymentScheduleOrderByWithRelationInput[]
    cursor?: RentalPaymentScheduleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RentalPaymentScheduleScalarFieldEnum | RentalPaymentScheduleScalarFieldEnum[]
  }

  /**
   * PaymentRecord without action
   */
  export type PaymentRecordDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
  }


  /**
   * Model QualityLabelRecord
   */

  export type AggregateQualityLabelRecord = {
    _count: QualityLabelRecordCountAggregateOutputType | null
    _min: QualityLabelRecordMinAggregateOutputType | null
    _max: QualityLabelRecordMaxAggregateOutputType | null
  }

  export type QualityLabelRecordMinAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    labelTypeCode: string | null
    status: $Enums.QualityLabelStatus | null
    appliedAt: Date | null
    verifiedAt: Date | null
    appliedById: string | null
    verifiedById: string | null
    photoAttachmentId: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type QualityLabelRecordMaxAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    labelTypeCode: string | null
    status: $Enums.QualityLabelStatus | null
    appliedAt: Date | null
    verifiedAt: Date | null
    appliedById: string | null
    verifiedById: string | null
    photoAttachmentId: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type QualityLabelRecordCountAggregateOutputType = {
    id: number
    robotUnitId: number
    labelTypeCode: number
    status: number
    appliedAt: number
    verifiedAt: number
    appliedById: number
    verifiedById: number
    photoAttachmentId: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type QualityLabelRecordMinAggregateInputType = {
    id?: true
    robotUnitId?: true
    labelTypeCode?: true
    status?: true
    appliedAt?: true
    verifiedAt?: true
    appliedById?: true
    verifiedById?: true
    photoAttachmentId?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type QualityLabelRecordMaxAggregateInputType = {
    id?: true
    robotUnitId?: true
    labelTypeCode?: true
    status?: true
    appliedAt?: true
    verifiedAt?: true
    appliedById?: true
    verifiedById?: true
    photoAttachmentId?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type QualityLabelRecordCountAggregateInputType = {
    id?: true
    robotUnitId?: true
    labelTypeCode?: true
    status?: true
    appliedAt?: true
    verifiedAt?: true
    appliedById?: true
    verifiedById?: true
    photoAttachmentId?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type QualityLabelRecordAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which QualityLabelRecord to aggregate.
     */
    where?: QualityLabelRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of QualityLabelRecords to fetch.
     */
    orderBy?: QualityLabelRecordOrderByWithRelationInput | QualityLabelRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: QualityLabelRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` QualityLabelRecords 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` QualityLabelRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned QualityLabelRecords
    **/
    _count?: true | QualityLabelRecordCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: QualityLabelRecordMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: QualityLabelRecordMaxAggregateInputType
  }

  export type GetQualityLabelRecordAggregateType<T extends QualityLabelRecordAggregateArgs> = {
        [P in keyof T & keyof AggregateQualityLabelRecord]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateQualityLabelRecord[P]>
      : GetScalarType<T[P], AggregateQualityLabelRecord[P]>
  }




  export type QualityLabelRecordGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: QualityLabelRecordWhereInput
    orderBy?: QualityLabelRecordOrderByWithAggregationInput | QualityLabelRecordOrderByWithAggregationInput[]
    by: QualityLabelRecordScalarFieldEnum[] | QualityLabelRecordScalarFieldEnum
    having?: QualityLabelRecordScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: QualityLabelRecordCountAggregateInputType | true
    _min?: QualityLabelRecordMinAggregateInputType
    _max?: QualityLabelRecordMaxAggregateInputType
  }

  export type QualityLabelRecordGroupByOutputType = {
    id: string
    robotUnitId: string
    labelTypeCode: string
    status: $Enums.QualityLabelStatus
    appliedAt: Date | null
    verifiedAt: Date | null
    appliedById: string | null
    verifiedById: string | null
    photoAttachmentId: string | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    _count: QualityLabelRecordCountAggregateOutputType | null
    _min: QualityLabelRecordMinAggregateOutputType | null
    _max: QualityLabelRecordMaxAggregateOutputType | null
  }

  type GetQualityLabelRecordGroupByPayload<T extends QualityLabelRecordGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<QualityLabelRecordGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof QualityLabelRecordGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], QualityLabelRecordGroupByOutputType[P]>
            : GetScalarType<T[P], QualityLabelRecordGroupByOutputType[P]>
        }
      >
    >


  export type QualityLabelRecordSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    labelTypeCode?: boolean
    status?: boolean
    appliedAt?: boolean
    verifiedAt?: boolean
    appliedById?: boolean
    verifiedById?: boolean
    photoAttachmentId?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["qualityLabelRecord"]>

  export type QualityLabelRecordSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    labelTypeCode?: boolean
    status?: boolean
    appliedAt?: boolean
    verifiedAt?: boolean
    appliedById?: boolean
    verifiedById?: boolean
    photoAttachmentId?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["qualityLabelRecord"]>

  export type QualityLabelRecordSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    labelTypeCode?: boolean
    status?: boolean
    appliedAt?: boolean
    verifiedAt?: boolean
    appliedById?: boolean
    verifiedById?: boolean
    photoAttachmentId?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["qualityLabelRecord"]>

  export type QualityLabelRecordSelectScalar = {
    id?: boolean
    robotUnitId?: boolean
    labelTypeCode?: boolean
    status?: boolean
    appliedAt?: boolean
    verifiedAt?: boolean
    appliedById?: boolean
    verifiedById?: boolean
    photoAttachmentId?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type QualityLabelRecordOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "robotUnitId" | "labelTypeCode" | "status" | "appliedAt" | "verifiedAt" | "appliedById" | "verifiedById" | "photoAttachmentId" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["qualityLabelRecord"]>
  export type QualityLabelRecordInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type QualityLabelRecordIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type QualityLabelRecordIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $QualityLabelRecordPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "QualityLabelRecord"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      robotUnitId: string
      labelTypeCode: string
      status: $Enums.QualityLabelStatus
      appliedAt: Date | null
      verifiedAt: Date | null
      appliedById: string | null
      verifiedById: string | null
      photoAttachmentId: string | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
    }, ExtArgs["result"]["qualityLabelRecord"]>
    composites: {}
  }

  type QualityLabelRecordGetPayload<S extends boolean | null | undefined | QualityLabelRecordDefaultArgs> = $Result.GetResult<Prisma.$QualityLabelRecordPayload, S>

  type QualityLabelRecordCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<QualityLabelRecordFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: QualityLabelRecordCountAggregateInputType | true
    }

  export interface QualityLabelRecordDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['QualityLabelRecord'], meta: { name: 'QualityLabelRecord' } }
    /**
     * Find zero or one QualityLabelRecord that matches the filter.
     * @param {QualityLabelRecordFindUniqueArgs} args - Arguments to find a QualityLabelRecord
     * @example
     * // Get one QualityLabelRecord
     * const qualityLabelRecord = await prisma.qualityLabelRecord.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends QualityLabelRecordFindUniqueArgs>(args: SelectSubset<T, QualityLabelRecordFindUniqueArgs<ExtArgs>>): Prisma__QualityLabelRecordClient<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one QualityLabelRecord that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {QualityLabelRecordFindUniqueOrThrowArgs} args - Arguments to find a QualityLabelRecord
     * @example
     * // Get one QualityLabelRecord
     * const qualityLabelRecord = await prisma.qualityLabelRecord.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends QualityLabelRecordFindUniqueOrThrowArgs>(args: SelectSubset<T, QualityLabelRecordFindUniqueOrThrowArgs<ExtArgs>>): Prisma__QualityLabelRecordClient<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first QualityLabelRecord 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 {QualityLabelRecordFindFirstArgs} args - Arguments to find a QualityLabelRecord
     * @example
     * // Get one QualityLabelRecord
     * const qualityLabelRecord = await prisma.qualityLabelRecord.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends QualityLabelRecordFindFirstArgs>(args?: SelectSubset<T, QualityLabelRecordFindFirstArgs<ExtArgs>>): Prisma__QualityLabelRecordClient<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first QualityLabelRecord 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 {QualityLabelRecordFindFirstOrThrowArgs} args - Arguments to find a QualityLabelRecord
     * @example
     * // Get one QualityLabelRecord
     * const qualityLabelRecord = await prisma.qualityLabelRecord.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends QualityLabelRecordFindFirstOrThrowArgs>(args?: SelectSubset<T, QualityLabelRecordFindFirstOrThrowArgs<ExtArgs>>): Prisma__QualityLabelRecordClient<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more QualityLabelRecords 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 {QualityLabelRecordFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all QualityLabelRecords
     * const qualityLabelRecords = await prisma.qualityLabelRecord.findMany()
     * 
     * // Get first 10 QualityLabelRecords
     * const qualityLabelRecords = await prisma.qualityLabelRecord.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const qualityLabelRecordWithIdOnly = await prisma.qualityLabelRecord.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends QualityLabelRecordFindManyArgs>(args?: SelectSubset<T, QualityLabelRecordFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a QualityLabelRecord.
     * @param {QualityLabelRecordCreateArgs} args - Arguments to create a QualityLabelRecord.
     * @example
     * // Create one QualityLabelRecord
     * const QualityLabelRecord = await prisma.qualityLabelRecord.create({
     *   data: {
     *     // ... data to create a QualityLabelRecord
     *   }
     * })
     * 
     */
    create<T extends QualityLabelRecordCreateArgs>(args: SelectSubset<T, QualityLabelRecordCreateArgs<ExtArgs>>): Prisma__QualityLabelRecordClient<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many QualityLabelRecords.
     * @param {QualityLabelRecordCreateManyArgs} args - Arguments to create many QualityLabelRecords.
     * @example
     * // Create many QualityLabelRecords
     * const qualityLabelRecord = await prisma.qualityLabelRecord.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends QualityLabelRecordCreateManyArgs>(args?: SelectSubset<T, QualityLabelRecordCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many QualityLabelRecords and returns the data saved in the database.
     * @param {QualityLabelRecordCreateManyAndReturnArgs} args - Arguments to create many QualityLabelRecords.
     * @example
     * // Create many QualityLabelRecords
     * const qualityLabelRecord = await prisma.qualityLabelRecord.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many QualityLabelRecords and only return the `id`
     * const qualityLabelRecordWithIdOnly = await prisma.qualityLabelRecord.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 QualityLabelRecordCreateManyAndReturnArgs>(args?: SelectSubset<T, QualityLabelRecordCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a QualityLabelRecord.
     * @param {QualityLabelRecordDeleteArgs} args - Arguments to delete one QualityLabelRecord.
     * @example
     * // Delete one QualityLabelRecord
     * const QualityLabelRecord = await prisma.qualityLabelRecord.delete({
     *   where: {
     *     // ... filter to delete one QualityLabelRecord
     *   }
     * })
     * 
     */
    delete<T extends QualityLabelRecordDeleteArgs>(args: SelectSubset<T, QualityLabelRecordDeleteArgs<ExtArgs>>): Prisma__QualityLabelRecordClient<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one QualityLabelRecord.
     * @param {QualityLabelRecordUpdateArgs} args - Arguments to update one QualityLabelRecord.
     * @example
     * // Update one QualityLabelRecord
     * const qualityLabelRecord = await prisma.qualityLabelRecord.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends QualityLabelRecordUpdateArgs>(args: SelectSubset<T, QualityLabelRecordUpdateArgs<ExtArgs>>): Prisma__QualityLabelRecordClient<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more QualityLabelRecords.
     * @param {QualityLabelRecordDeleteManyArgs} args - Arguments to filter QualityLabelRecords to delete.
     * @example
     * // Delete a few QualityLabelRecords
     * const { count } = await prisma.qualityLabelRecord.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends QualityLabelRecordDeleteManyArgs>(args?: SelectSubset<T, QualityLabelRecordDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more QualityLabelRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {QualityLabelRecordUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many QualityLabelRecords
     * const qualityLabelRecord = await prisma.qualityLabelRecord.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends QualityLabelRecordUpdateManyArgs>(args: SelectSubset<T, QualityLabelRecordUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more QualityLabelRecords and returns the data updated in the database.
     * @param {QualityLabelRecordUpdateManyAndReturnArgs} args - Arguments to update many QualityLabelRecords.
     * @example
     * // Update many QualityLabelRecords
     * const qualityLabelRecord = await prisma.qualityLabelRecord.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more QualityLabelRecords and only return the `id`
     * const qualityLabelRecordWithIdOnly = await prisma.qualityLabelRecord.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 QualityLabelRecordUpdateManyAndReturnArgs>(args: SelectSubset<T, QualityLabelRecordUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one QualityLabelRecord.
     * @param {QualityLabelRecordUpsertArgs} args - Arguments to update or create a QualityLabelRecord.
     * @example
     * // Update or create a QualityLabelRecord
     * const qualityLabelRecord = await prisma.qualityLabelRecord.upsert({
     *   create: {
     *     // ... data to create a QualityLabelRecord
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the QualityLabelRecord we want to update
     *   }
     * })
     */
    upsert<T extends QualityLabelRecordUpsertArgs>(args: SelectSubset<T, QualityLabelRecordUpsertArgs<ExtArgs>>): Prisma__QualityLabelRecordClient<$Result.GetResult<Prisma.$QualityLabelRecordPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of QualityLabelRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {QualityLabelRecordCountArgs} args - Arguments to filter QualityLabelRecords to count.
     * @example
     * // Count the number of QualityLabelRecords
     * const count = await prisma.qualityLabelRecord.count({
     *   where: {
     *     // ... the filter for the QualityLabelRecords we want to count
     *   }
     * })
    **/
    count<T extends QualityLabelRecordCountArgs>(
      args?: Subset<T, QualityLabelRecordCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], QualityLabelRecordCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a QualityLabelRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {QualityLabelRecordAggregateArgs} 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 QualityLabelRecordAggregateArgs>(args: Subset<T, QualityLabelRecordAggregateArgs>): Prisma.PrismaPromise<GetQualityLabelRecordAggregateType<T>>

    /**
     * Group by QualityLabelRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {QualityLabelRecordGroupByArgs} 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 QualityLabelRecordGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: QualityLabelRecordGroupByArgs['orderBy'] }
        : { orderBy?: QualityLabelRecordGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, QualityLabelRecordGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetQualityLabelRecordGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the QualityLabelRecord model
   */
  readonly fields: QualityLabelRecordFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for QualityLabelRecord.
   * 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__QualityLabelRecordClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the QualityLabelRecord model
   */
  interface QualityLabelRecordFieldRefs {
    readonly id: FieldRef<"QualityLabelRecord", 'String'>
    readonly robotUnitId: FieldRef<"QualityLabelRecord", 'String'>
    readonly labelTypeCode: FieldRef<"QualityLabelRecord", 'String'>
    readonly status: FieldRef<"QualityLabelRecord", 'QualityLabelStatus'>
    readonly appliedAt: FieldRef<"QualityLabelRecord", 'DateTime'>
    readonly verifiedAt: FieldRef<"QualityLabelRecord", 'DateTime'>
    readonly appliedById: FieldRef<"QualityLabelRecord", 'String'>
    readonly verifiedById: FieldRef<"QualityLabelRecord", 'String'>
    readonly photoAttachmentId: FieldRef<"QualityLabelRecord", 'String'>
    readonly organizationId: FieldRef<"QualityLabelRecord", 'String'>
    readonly createdAt: FieldRef<"QualityLabelRecord", 'DateTime'>
    readonly updatedAt: FieldRef<"QualityLabelRecord", 'DateTime'>
    readonly createdById: FieldRef<"QualityLabelRecord", 'String'>
  }
    

  // Custom InputTypes
  /**
   * QualityLabelRecord findUnique
   */
  export type QualityLabelRecordFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * Filter, which QualityLabelRecord to fetch.
     */
    where: QualityLabelRecordWhereUniqueInput
  }

  /**
   * QualityLabelRecord findUniqueOrThrow
   */
  export type QualityLabelRecordFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * Filter, which QualityLabelRecord to fetch.
     */
    where: QualityLabelRecordWhereUniqueInput
  }

  /**
   * QualityLabelRecord findFirst
   */
  export type QualityLabelRecordFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * Filter, which QualityLabelRecord to fetch.
     */
    where?: QualityLabelRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of QualityLabelRecords to fetch.
     */
    orderBy?: QualityLabelRecordOrderByWithRelationInput | QualityLabelRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for QualityLabelRecords.
     */
    cursor?: QualityLabelRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` QualityLabelRecords 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` QualityLabelRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of QualityLabelRecords.
     */
    distinct?: QualityLabelRecordScalarFieldEnum | QualityLabelRecordScalarFieldEnum[]
  }

  /**
   * QualityLabelRecord findFirstOrThrow
   */
  export type QualityLabelRecordFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * Filter, which QualityLabelRecord to fetch.
     */
    where?: QualityLabelRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of QualityLabelRecords to fetch.
     */
    orderBy?: QualityLabelRecordOrderByWithRelationInput | QualityLabelRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for QualityLabelRecords.
     */
    cursor?: QualityLabelRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` QualityLabelRecords 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` QualityLabelRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of QualityLabelRecords.
     */
    distinct?: QualityLabelRecordScalarFieldEnum | QualityLabelRecordScalarFieldEnum[]
  }

  /**
   * QualityLabelRecord findMany
   */
  export type QualityLabelRecordFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * Filter, which QualityLabelRecords to fetch.
     */
    where?: QualityLabelRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of QualityLabelRecords to fetch.
     */
    orderBy?: QualityLabelRecordOrderByWithRelationInput | QualityLabelRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing QualityLabelRecords.
     */
    cursor?: QualityLabelRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` QualityLabelRecords 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` QualityLabelRecords.
     */
    skip?: number
    distinct?: QualityLabelRecordScalarFieldEnum | QualityLabelRecordScalarFieldEnum[]
  }

  /**
   * QualityLabelRecord create
   */
  export type QualityLabelRecordCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * The data needed to create a QualityLabelRecord.
     */
    data: XOR<QualityLabelRecordCreateInput, QualityLabelRecordUncheckedCreateInput>
  }

  /**
   * QualityLabelRecord createMany
   */
  export type QualityLabelRecordCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many QualityLabelRecords.
     */
    data: QualityLabelRecordCreateManyInput | QualityLabelRecordCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * QualityLabelRecord createManyAndReturn
   */
  export type QualityLabelRecordCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * The data used to create many QualityLabelRecords.
     */
    data: QualityLabelRecordCreateManyInput | QualityLabelRecordCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * QualityLabelRecord update
   */
  export type QualityLabelRecordUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * The data needed to update a QualityLabelRecord.
     */
    data: XOR<QualityLabelRecordUpdateInput, QualityLabelRecordUncheckedUpdateInput>
    /**
     * Choose, which QualityLabelRecord to update.
     */
    where: QualityLabelRecordWhereUniqueInput
  }

  /**
   * QualityLabelRecord updateMany
   */
  export type QualityLabelRecordUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update QualityLabelRecords.
     */
    data: XOR<QualityLabelRecordUpdateManyMutationInput, QualityLabelRecordUncheckedUpdateManyInput>
    /**
     * Filter which QualityLabelRecords to update
     */
    where?: QualityLabelRecordWhereInput
    /**
     * Limit how many QualityLabelRecords to update.
     */
    limit?: number
  }

  /**
   * QualityLabelRecord updateManyAndReturn
   */
  export type QualityLabelRecordUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * The data used to update QualityLabelRecords.
     */
    data: XOR<QualityLabelRecordUpdateManyMutationInput, QualityLabelRecordUncheckedUpdateManyInput>
    /**
     * Filter which QualityLabelRecords to update
     */
    where?: QualityLabelRecordWhereInput
    /**
     * Limit how many QualityLabelRecords to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * QualityLabelRecord upsert
   */
  export type QualityLabelRecordUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * The filter to search for the QualityLabelRecord to update in case it exists.
     */
    where: QualityLabelRecordWhereUniqueInput
    /**
     * In case the QualityLabelRecord found by the `where` argument doesn't exist, create a new QualityLabelRecord with this data.
     */
    create: XOR<QualityLabelRecordCreateInput, QualityLabelRecordUncheckedCreateInput>
    /**
     * In case the QualityLabelRecord was found with the provided `where` argument, update it with this data.
     */
    update: XOR<QualityLabelRecordUpdateInput, QualityLabelRecordUncheckedUpdateInput>
  }

  /**
   * QualityLabelRecord delete
   */
  export type QualityLabelRecordDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
    /**
     * Filter which QualityLabelRecord to delete.
     */
    where: QualityLabelRecordWhereUniqueInput
  }

  /**
   * QualityLabelRecord deleteMany
   */
  export type QualityLabelRecordDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which QualityLabelRecords to delete
     */
    where?: QualityLabelRecordWhereInput
    /**
     * Limit how many QualityLabelRecords to delete.
     */
    limit?: number
  }

  /**
   * QualityLabelRecord without action
   */
  export type QualityLabelRecordDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the QualityLabelRecord
     */
    select?: QualityLabelRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the QualityLabelRecord
     */
    omit?: QualityLabelRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: QualityLabelRecordInclude<ExtArgs> | null
  }


  /**
   * Model RobotPackageReadiness
   */

  export type AggregateRobotPackageReadiness = {
    _count: RobotPackageReadinessCountAggregateOutputType | null
    _min: RobotPackageReadinessMinAggregateOutputType | null
    _max: RobotPackageReadinessMaxAggregateOutputType | null
  }

  export type RobotPackageReadinessMinAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    specialistId: string | null
    physicalProductStatus: $Enums.RobotPhysicalStatus | null
    readyAt: Date | null
    hasRobot: boolean | null
    hasBattery: boolean | null
    hasRemote: boolean | null
    hasUsaPowerCable: boolean | null
    hasCnCableWithAdapter: boolean | null
    hasPowerSupply: boolean | null
    hasChargingDock: boolean | null
    hasFootPads: boolean | null
    hasToolsKit: boolean | null
    hasPaperwork: boolean | null
    completedAt: Date | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type RobotPackageReadinessMaxAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    specialistId: string | null
    physicalProductStatus: $Enums.RobotPhysicalStatus | null
    readyAt: Date | null
    hasRobot: boolean | null
    hasBattery: boolean | null
    hasRemote: boolean | null
    hasUsaPowerCable: boolean | null
    hasCnCableWithAdapter: boolean | null
    hasPowerSupply: boolean | null
    hasChargingDock: boolean | null
    hasFootPads: boolean | null
    hasToolsKit: boolean | null
    hasPaperwork: boolean | null
    completedAt: Date | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type RobotPackageReadinessCountAggregateOutputType = {
    id: number
    robotUnitId: number
    specialistId: number
    physicalProductStatus: number
    readyAt: number
    hasRobot: number
    hasBattery: number
    hasRemote: number
    hasUsaPowerCable: number
    hasCnCableWithAdapter: number
    hasPowerSupply: number
    hasChargingDock: number
    hasFootPads: number
    hasToolsKit: number
    hasPaperwork: number
    completedAt: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type RobotPackageReadinessMinAggregateInputType = {
    id?: true
    robotUnitId?: true
    specialistId?: true
    physicalProductStatus?: true
    readyAt?: true
    hasRobot?: true
    hasBattery?: true
    hasRemote?: true
    hasUsaPowerCable?: true
    hasCnCableWithAdapter?: true
    hasPowerSupply?: true
    hasChargingDock?: true
    hasFootPads?: true
    hasToolsKit?: true
    hasPaperwork?: true
    completedAt?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type RobotPackageReadinessMaxAggregateInputType = {
    id?: true
    robotUnitId?: true
    specialistId?: true
    physicalProductStatus?: true
    readyAt?: true
    hasRobot?: true
    hasBattery?: true
    hasRemote?: true
    hasUsaPowerCable?: true
    hasCnCableWithAdapter?: true
    hasPowerSupply?: true
    hasChargingDock?: true
    hasFootPads?: true
    hasToolsKit?: true
    hasPaperwork?: true
    completedAt?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type RobotPackageReadinessCountAggregateInputType = {
    id?: true
    robotUnitId?: true
    specialistId?: true
    physicalProductStatus?: true
    readyAt?: true
    hasRobot?: true
    hasBattery?: true
    hasRemote?: true
    hasUsaPowerCable?: true
    hasCnCableWithAdapter?: true
    hasPowerSupply?: true
    hasChargingDock?: true
    hasFootPads?: true
    hasToolsKit?: true
    hasPaperwork?: true
    completedAt?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type RobotPackageReadinessAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotPackageReadiness to aggregate.
     */
    where?: RobotPackageReadinessWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotPackageReadinesses to fetch.
     */
    orderBy?: RobotPackageReadinessOrderByWithRelationInput | RobotPackageReadinessOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RobotPackageReadinessWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotPackageReadinesses 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` RobotPackageReadinesses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RobotPackageReadinesses
    **/
    _count?: true | RobotPackageReadinessCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RobotPackageReadinessMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RobotPackageReadinessMaxAggregateInputType
  }

  export type GetRobotPackageReadinessAggregateType<T extends RobotPackageReadinessAggregateArgs> = {
        [P in keyof T & keyof AggregateRobotPackageReadiness]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRobotPackageReadiness[P]>
      : GetScalarType<T[P], AggregateRobotPackageReadiness[P]>
  }




  export type RobotPackageReadinessGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotPackageReadinessWhereInput
    orderBy?: RobotPackageReadinessOrderByWithAggregationInput | RobotPackageReadinessOrderByWithAggregationInput[]
    by: RobotPackageReadinessScalarFieldEnum[] | RobotPackageReadinessScalarFieldEnum
    having?: RobotPackageReadinessScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RobotPackageReadinessCountAggregateInputType | true
    _min?: RobotPackageReadinessMinAggregateInputType
    _max?: RobotPackageReadinessMaxAggregateInputType
  }

  export type RobotPackageReadinessGroupByOutputType = {
    id: string
    robotUnitId: string
    specialistId: string | null
    physicalProductStatus: $Enums.RobotPhysicalStatus | null
    readyAt: Date | null
    hasRobot: boolean
    hasBattery: boolean
    hasRemote: boolean
    hasUsaPowerCable: boolean
    hasCnCableWithAdapter: boolean
    hasPowerSupply: boolean
    hasChargingDock: boolean
    hasFootPads: boolean
    hasToolsKit: boolean
    hasPaperwork: boolean
    completedAt: Date | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    _count: RobotPackageReadinessCountAggregateOutputType | null
    _min: RobotPackageReadinessMinAggregateOutputType | null
    _max: RobotPackageReadinessMaxAggregateOutputType | null
  }

  type GetRobotPackageReadinessGroupByPayload<T extends RobotPackageReadinessGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RobotPackageReadinessGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RobotPackageReadinessGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RobotPackageReadinessGroupByOutputType[P]>
            : GetScalarType<T[P], RobotPackageReadinessGroupByOutputType[P]>
        }
      >
    >


  export type RobotPackageReadinessSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    specialistId?: boolean
    physicalProductStatus?: boolean
    readyAt?: boolean
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotPackageReadiness"]>

  export type RobotPackageReadinessSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    specialistId?: boolean
    physicalProductStatus?: boolean
    readyAt?: boolean
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotPackageReadiness"]>

  export type RobotPackageReadinessSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    specialistId?: boolean
    physicalProductStatus?: boolean
    readyAt?: boolean
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotPackageReadiness"]>

  export type RobotPackageReadinessSelectScalar = {
    id?: boolean
    robotUnitId?: boolean
    specialistId?: boolean
    physicalProductStatus?: boolean
    readyAt?: boolean
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type RobotPackageReadinessOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "robotUnitId" | "specialistId" | "physicalProductStatus" | "readyAt" | "hasRobot" | "hasBattery" | "hasRemote" | "hasUsaPowerCable" | "hasCnCableWithAdapter" | "hasPowerSupply" | "hasChargingDock" | "hasFootPads" | "hasToolsKit" | "hasPaperwork" | "completedAt" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["robotPackageReadiness"]>
  export type RobotPackageReadinessInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type RobotPackageReadinessIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type RobotPackageReadinessIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $RobotPackageReadinessPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RobotPackageReadiness"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      robotUnitId: string
      specialistId: string | null
      physicalProductStatus: $Enums.RobotPhysicalStatus | null
      readyAt: Date | null
      hasRobot: boolean
      hasBattery: boolean
      hasRemote: boolean
      hasUsaPowerCable: boolean
      hasCnCableWithAdapter: boolean
      hasPowerSupply: boolean
      hasChargingDock: boolean
      hasFootPads: boolean
      hasToolsKit: boolean
      hasPaperwork: boolean
      completedAt: Date | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
    }, ExtArgs["result"]["robotPackageReadiness"]>
    composites: {}
  }

  type RobotPackageReadinessGetPayload<S extends boolean | null | undefined | RobotPackageReadinessDefaultArgs> = $Result.GetResult<Prisma.$RobotPackageReadinessPayload, S>

  type RobotPackageReadinessCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RobotPackageReadinessFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RobotPackageReadinessCountAggregateInputType | true
    }

  export interface RobotPackageReadinessDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RobotPackageReadiness'], meta: { name: 'RobotPackageReadiness' } }
    /**
     * Find zero or one RobotPackageReadiness that matches the filter.
     * @param {RobotPackageReadinessFindUniqueArgs} args - Arguments to find a RobotPackageReadiness
     * @example
     * // Get one RobotPackageReadiness
     * const robotPackageReadiness = await prisma.robotPackageReadiness.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RobotPackageReadinessFindUniqueArgs>(args: SelectSubset<T, RobotPackageReadinessFindUniqueArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RobotPackageReadiness that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RobotPackageReadinessFindUniqueOrThrowArgs} args - Arguments to find a RobotPackageReadiness
     * @example
     * // Get one RobotPackageReadiness
     * const robotPackageReadiness = await prisma.robotPackageReadiness.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RobotPackageReadinessFindUniqueOrThrowArgs>(args: SelectSubset<T, RobotPackageReadinessFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotPackageReadiness 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 {RobotPackageReadinessFindFirstArgs} args - Arguments to find a RobotPackageReadiness
     * @example
     * // Get one RobotPackageReadiness
     * const robotPackageReadiness = await prisma.robotPackageReadiness.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RobotPackageReadinessFindFirstArgs>(args?: SelectSubset<T, RobotPackageReadinessFindFirstArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotPackageReadiness 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 {RobotPackageReadinessFindFirstOrThrowArgs} args - Arguments to find a RobotPackageReadiness
     * @example
     * // Get one RobotPackageReadiness
     * const robotPackageReadiness = await prisma.robotPackageReadiness.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RobotPackageReadinessFindFirstOrThrowArgs>(args?: SelectSubset<T, RobotPackageReadinessFindFirstOrThrowArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RobotPackageReadinesses 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 {RobotPackageReadinessFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RobotPackageReadinesses
     * const robotPackageReadinesses = await prisma.robotPackageReadiness.findMany()
     * 
     * // Get first 10 RobotPackageReadinesses
     * const robotPackageReadinesses = await prisma.robotPackageReadiness.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const robotPackageReadinessWithIdOnly = await prisma.robotPackageReadiness.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RobotPackageReadinessFindManyArgs>(args?: SelectSubset<T, RobotPackageReadinessFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RobotPackageReadiness.
     * @param {RobotPackageReadinessCreateArgs} args - Arguments to create a RobotPackageReadiness.
     * @example
     * // Create one RobotPackageReadiness
     * const RobotPackageReadiness = await prisma.robotPackageReadiness.create({
     *   data: {
     *     // ... data to create a RobotPackageReadiness
     *   }
     * })
     * 
     */
    create<T extends RobotPackageReadinessCreateArgs>(args: SelectSubset<T, RobotPackageReadinessCreateArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RobotPackageReadinesses.
     * @param {RobotPackageReadinessCreateManyArgs} args - Arguments to create many RobotPackageReadinesses.
     * @example
     * // Create many RobotPackageReadinesses
     * const robotPackageReadiness = await prisma.robotPackageReadiness.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RobotPackageReadinessCreateManyArgs>(args?: SelectSubset<T, RobotPackageReadinessCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RobotPackageReadinesses and returns the data saved in the database.
     * @param {RobotPackageReadinessCreateManyAndReturnArgs} args - Arguments to create many RobotPackageReadinesses.
     * @example
     * // Create many RobotPackageReadinesses
     * const robotPackageReadiness = await prisma.robotPackageReadiness.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RobotPackageReadinesses and only return the `id`
     * const robotPackageReadinessWithIdOnly = await prisma.robotPackageReadiness.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 RobotPackageReadinessCreateManyAndReturnArgs>(args?: SelectSubset<T, RobotPackageReadinessCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RobotPackageReadiness.
     * @param {RobotPackageReadinessDeleteArgs} args - Arguments to delete one RobotPackageReadiness.
     * @example
     * // Delete one RobotPackageReadiness
     * const RobotPackageReadiness = await prisma.robotPackageReadiness.delete({
     *   where: {
     *     // ... filter to delete one RobotPackageReadiness
     *   }
     * })
     * 
     */
    delete<T extends RobotPackageReadinessDeleteArgs>(args: SelectSubset<T, RobotPackageReadinessDeleteArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RobotPackageReadiness.
     * @param {RobotPackageReadinessUpdateArgs} args - Arguments to update one RobotPackageReadiness.
     * @example
     * // Update one RobotPackageReadiness
     * const robotPackageReadiness = await prisma.robotPackageReadiness.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RobotPackageReadinessUpdateArgs>(args: SelectSubset<T, RobotPackageReadinessUpdateArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RobotPackageReadinesses.
     * @param {RobotPackageReadinessDeleteManyArgs} args - Arguments to filter RobotPackageReadinesses to delete.
     * @example
     * // Delete a few RobotPackageReadinesses
     * const { count } = await prisma.robotPackageReadiness.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RobotPackageReadinessDeleteManyArgs>(args?: SelectSubset<T, RobotPackageReadinessDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotPackageReadinesses.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotPackageReadinessUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RobotPackageReadinesses
     * const robotPackageReadiness = await prisma.robotPackageReadiness.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RobotPackageReadinessUpdateManyArgs>(args: SelectSubset<T, RobotPackageReadinessUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotPackageReadinesses and returns the data updated in the database.
     * @param {RobotPackageReadinessUpdateManyAndReturnArgs} args - Arguments to update many RobotPackageReadinesses.
     * @example
     * // Update many RobotPackageReadinesses
     * const robotPackageReadiness = await prisma.robotPackageReadiness.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RobotPackageReadinesses and only return the `id`
     * const robotPackageReadinessWithIdOnly = await prisma.robotPackageReadiness.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 RobotPackageReadinessUpdateManyAndReturnArgs>(args: SelectSubset<T, RobotPackageReadinessUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RobotPackageReadiness.
     * @param {RobotPackageReadinessUpsertArgs} args - Arguments to update or create a RobotPackageReadiness.
     * @example
     * // Update or create a RobotPackageReadiness
     * const robotPackageReadiness = await prisma.robotPackageReadiness.upsert({
     *   create: {
     *     // ... data to create a RobotPackageReadiness
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RobotPackageReadiness we want to update
     *   }
     * })
     */
    upsert<T extends RobotPackageReadinessUpsertArgs>(args: SelectSubset<T, RobotPackageReadinessUpsertArgs<ExtArgs>>): Prisma__RobotPackageReadinessClient<$Result.GetResult<Prisma.$RobotPackageReadinessPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RobotPackageReadinesses.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotPackageReadinessCountArgs} args - Arguments to filter RobotPackageReadinesses to count.
     * @example
     * // Count the number of RobotPackageReadinesses
     * const count = await prisma.robotPackageReadiness.count({
     *   where: {
     *     // ... the filter for the RobotPackageReadinesses we want to count
     *   }
     * })
    **/
    count<T extends RobotPackageReadinessCountArgs>(
      args?: Subset<T, RobotPackageReadinessCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RobotPackageReadinessCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RobotPackageReadiness.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotPackageReadinessAggregateArgs} 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 RobotPackageReadinessAggregateArgs>(args: Subset<T, RobotPackageReadinessAggregateArgs>): Prisma.PrismaPromise<GetRobotPackageReadinessAggregateType<T>>

    /**
     * Group by RobotPackageReadiness.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotPackageReadinessGroupByArgs} 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 RobotPackageReadinessGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RobotPackageReadinessGroupByArgs['orderBy'] }
        : { orderBy?: RobotPackageReadinessGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RobotPackageReadinessGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRobotPackageReadinessGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RobotPackageReadiness model
   */
  readonly fields: RobotPackageReadinessFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RobotPackageReadiness.
   * 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__RobotPackageReadinessClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RobotPackageReadiness model
   */
  interface RobotPackageReadinessFieldRefs {
    readonly id: FieldRef<"RobotPackageReadiness", 'String'>
    readonly robotUnitId: FieldRef<"RobotPackageReadiness", 'String'>
    readonly specialistId: FieldRef<"RobotPackageReadiness", 'String'>
    readonly physicalProductStatus: FieldRef<"RobotPackageReadiness", 'RobotPhysicalStatus'>
    readonly readyAt: FieldRef<"RobotPackageReadiness", 'DateTime'>
    readonly hasRobot: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasBattery: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasRemote: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasUsaPowerCable: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasCnCableWithAdapter: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasPowerSupply: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasChargingDock: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasFootPads: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasToolsKit: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly hasPaperwork: FieldRef<"RobotPackageReadiness", 'Boolean'>
    readonly completedAt: FieldRef<"RobotPackageReadiness", 'DateTime'>
    readonly organizationId: FieldRef<"RobotPackageReadiness", 'String'>
    readonly createdAt: FieldRef<"RobotPackageReadiness", 'DateTime'>
    readonly updatedAt: FieldRef<"RobotPackageReadiness", 'DateTime'>
    readonly createdById: FieldRef<"RobotPackageReadiness", 'String'>
  }
    

  // Custom InputTypes
  /**
   * RobotPackageReadiness findUnique
   */
  export type RobotPackageReadinessFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * Filter, which RobotPackageReadiness to fetch.
     */
    where: RobotPackageReadinessWhereUniqueInput
  }

  /**
   * RobotPackageReadiness findUniqueOrThrow
   */
  export type RobotPackageReadinessFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * Filter, which RobotPackageReadiness to fetch.
     */
    where: RobotPackageReadinessWhereUniqueInput
  }

  /**
   * RobotPackageReadiness findFirst
   */
  export type RobotPackageReadinessFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * Filter, which RobotPackageReadiness to fetch.
     */
    where?: RobotPackageReadinessWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotPackageReadinesses to fetch.
     */
    orderBy?: RobotPackageReadinessOrderByWithRelationInput | RobotPackageReadinessOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotPackageReadinesses.
     */
    cursor?: RobotPackageReadinessWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotPackageReadinesses 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` RobotPackageReadinesses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotPackageReadinesses.
     */
    distinct?: RobotPackageReadinessScalarFieldEnum | RobotPackageReadinessScalarFieldEnum[]
  }

  /**
   * RobotPackageReadiness findFirstOrThrow
   */
  export type RobotPackageReadinessFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * Filter, which RobotPackageReadiness to fetch.
     */
    where?: RobotPackageReadinessWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotPackageReadinesses to fetch.
     */
    orderBy?: RobotPackageReadinessOrderByWithRelationInput | RobotPackageReadinessOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotPackageReadinesses.
     */
    cursor?: RobotPackageReadinessWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotPackageReadinesses 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` RobotPackageReadinesses.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotPackageReadinesses.
     */
    distinct?: RobotPackageReadinessScalarFieldEnum | RobotPackageReadinessScalarFieldEnum[]
  }

  /**
   * RobotPackageReadiness findMany
   */
  export type RobotPackageReadinessFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * Filter, which RobotPackageReadinesses to fetch.
     */
    where?: RobotPackageReadinessWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotPackageReadinesses to fetch.
     */
    orderBy?: RobotPackageReadinessOrderByWithRelationInput | RobotPackageReadinessOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RobotPackageReadinesses.
     */
    cursor?: RobotPackageReadinessWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotPackageReadinesses 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` RobotPackageReadinesses.
     */
    skip?: number
    distinct?: RobotPackageReadinessScalarFieldEnum | RobotPackageReadinessScalarFieldEnum[]
  }

  /**
   * RobotPackageReadiness create
   */
  export type RobotPackageReadinessCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * The data needed to create a RobotPackageReadiness.
     */
    data: XOR<RobotPackageReadinessCreateInput, RobotPackageReadinessUncheckedCreateInput>
  }

  /**
   * RobotPackageReadiness createMany
   */
  export type RobotPackageReadinessCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RobotPackageReadinesses.
     */
    data: RobotPackageReadinessCreateManyInput | RobotPackageReadinessCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotPackageReadiness createManyAndReturn
   */
  export type RobotPackageReadinessCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * The data used to create many RobotPackageReadinesses.
     */
    data: RobotPackageReadinessCreateManyInput | RobotPackageReadinessCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotPackageReadiness update
   */
  export type RobotPackageReadinessUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * The data needed to update a RobotPackageReadiness.
     */
    data: XOR<RobotPackageReadinessUpdateInput, RobotPackageReadinessUncheckedUpdateInput>
    /**
     * Choose, which RobotPackageReadiness to update.
     */
    where: RobotPackageReadinessWhereUniqueInput
  }

  /**
   * RobotPackageReadiness updateMany
   */
  export type RobotPackageReadinessUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RobotPackageReadinesses.
     */
    data: XOR<RobotPackageReadinessUpdateManyMutationInput, RobotPackageReadinessUncheckedUpdateManyInput>
    /**
     * Filter which RobotPackageReadinesses to update
     */
    where?: RobotPackageReadinessWhereInput
    /**
     * Limit how many RobotPackageReadinesses to update.
     */
    limit?: number
  }

  /**
   * RobotPackageReadiness updateManyAndReturn
   */
  export type RobotPackageReadinessUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * The data used to update RobotPackageReadinesses.
     */
    data: XOR<RobotPackageReadinessUpdateManyMutationInput, RobotPackageReadinessUncheckedUpdateManyInput>
    /**
     * Filter which RobotPackageReadinesses to update
     */
    where?: RobotPackageReadinessWhereInput
    /**
     * Limit how many RobotPackageReadinesses to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotPackageReadiness upsert
   */
  export type RobotPackageReadinessUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * The filter to search for the RobotPackageReadiness to update in case it exists.
     */
    where: RobotPackageReadinessWhereUniqueInput
    /**
     * In case the RobotPackageReadiness found by the `where` argument doesn't exist, create a new RobotPackageReadiness with this data.
     */
    create: XOR<RobotPackageReadinessCreateInput, RobotPackageReadinessUncheckedCreateInput>
    /**
     * In case the RobotPackageReadiness was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RobotPackageReadinessUpdateInput, RobotPackageReadinessUncheckedUpdateInput>
  }

  /**
   * RobotPackageReadiness delete
   */
  export type RobotPackageReadinessDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
    /**
     * Filter which RobotPackageReadiness to delete.
     */
    where: RobotPackageReadinessWhereUniqueInput
  }

  /**
   * RobotPackageReadiness deleteMany
   */
  export type RobotPackageReadinessDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotPackageReadinesses to delete
     */
    where?: RobotPackageReadinessWhereInput
    /**
     * Limit how many RobotPackageReadinesses to delete.
     */
    limit?: number
  }

  /**
   * RobotPackageReadiness without action
   */
  export type RobotPackageReadinessDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotPackageReadiness
     */
    select?: RobotPackageReadinessSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotPackageReadiness
     */
    omit?: RobotPackageReadinessOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotPackageReadinessInclude<ExtArgs> | null
  }


  /**
   * Model InspectionRecord
   */

  export type AggregateInspectionRecord = {
    _count: InspectionRecordCountAggregateOutputType | null
    _avg: InspectionRecordAvgAggregateOutputType | null
    _sum: InspectionRecordSumAggregateOutputType | null
    _min: InspectionRecordMinAggregateOutputType | null
    _max: InspectionRecordMaxAggregateOutputType | null
  }

  export type InspectionRecordAvgAggregateOutputType = {
    inspectionNo: number | null
  }

  export type InspectionRecordSumAggregateOutputType = {
    inspectionNo: number | null
  }

  export type InspectionRecordMinAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    inspectionNo: number | null
    inspectedAt: Date | null
    inspectorId: string | null
    issue: string | null
    issueTagCode: string | null
    resolvedAt: Date | null
    resolvedById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type InspectionRecordMaxAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    inspectionNo: number | null
    inspectedAt: Date | null
    inspectorId: string | null
    issue: string | null
    issueTagCode: string | null
    resolvedAt: Date | null
    resolvedById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type InspectionRecordCountAggregateOutputType = {
    id: number
    robotUnitId: number
    inspectionNo: number
    inspectedAt: number
    inspectorId: number
    issue: number
    issueTagCode: number
    resolvedAt: number
    resolvedById: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type InspectionRecordAvgAggregateInputType = {
    inspectionNo?: true
  }

  export type InspectionRecordSumAggregateInputType = {
    inspectionNo?: true
  }

  export type InspectionRecordMinAggregateInputType = {
    id?: true
    robotUnitId?: true
    inspectionNo?: true
    inspectedAt?: true
    inspectorId?: true
    issue?: true
    issueTagCode?: true
    resolvedAt?: true
    resolvedById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type InspectionRecordMaxAggregateInputType = {
    id?: true
    robotUnitId?: true
    inspectionNo?: true
    inspectedAt?: true
    inspectorId?: true
    issue?: true
    issueTagCode?: true
    resolvedAt?: true
    resolvedById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type InspectionRecordCountAggregateInputType = {
    id?: true
    robotUnitId?: true
    inspectionNo?: true
    inspectedAt?: true
    inspectorId?: true
    issue?: true
    issueTagCode?: true
    resolvedAt?: true
    resolvedById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type InspectionRecordAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InspectionRecord to aggregate.
     */
    where?: InspectionRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InspectionRecords to fetch.
     */
    orderBy?: InspectionRecordOrderByWithRelationInput | InspectionRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: InspectionRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InspectionRecords 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` InspectionRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned InspectionRecords
    **/
    _count?: true | InspectionRecordCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: InspectionRecordAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: InspectionRecordSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: InspectionRecordMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: InspectionRecordMaxAggregateInputType
  }

  export type GetInspectionRecordAggregateType<T extends InspectionRecordAggregateArgs> = {
        [P in keyof T & keyof AggregateInspectionRecord]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateInspectionRecord[P]>
      : GetScalarType<T[P], AggregateInspectionRecord[P]>
  }




  export type InspectionRecordGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: InspectionRecordWhereInput
    orderBy?: InspectionRecordOrderByWithAggregationInput | InspectionRecordOrderByWithAggregationInput[]
    by: InspectionRecordScalarFieldEnum[] | InspectionRecordScalarFieldEnum
    having?: InspectionRecordScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: InspectionRecordCountAggregateInputType | true
    _avg?: InspectionRecordAvgAggregateInputType
    _sum?: InspectionRecordSumAggregateInputType
    _min?: InspectionRecordMinAggregateInputType
    _max?: InspectionRecordMaxAggregateInputType
  }

  export type InspectionRecordGroupByOutputType = {
    id: string
    robotUnitId: string
    inspectionNo: number
    inspectedAt: Date
    inspectorId: string | null
    issue: string | null
    issueTagCode: string | null
    resolvedAt: Date | null
    resolvedById: string | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    _count: InspectionRecordCountAggregateOutputType | null
    _avg: InspectionRecordAvgAggregateOutputType | null
    _sum: InspectionRecordSumAggregateOutputType | null
    _min: InspectionRecordMinAggregateOutputType | null
    _max: InspectionRecordMaxAggregateOutputType | null
  }

  type GetInspectionRecordGroupByPayload<T extends InspectionRecordGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<InspectionRecordGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof InspectionRecordGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], InspectionRecordGroupByOutputType[P]>
            : GetScalarType<T[P], InspectionRecordGroupByOutputType[P]>
        }
      >
    >


  export type InspectionRecordSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    inspectionNo?: boolean
    inspectedAt?: boolean
    inspectorId?: boolean
    issue?: boolean
    issueTagCode?: boolean
    resolvedAt?: boolean
    resolvedById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["inspectionRecord"]>

  export type InspectionRecordSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    inspectionNo?: boolean
    inspectedAt?: boolean
    inspectorId?: boolean
    issue?: boolean
    issueTagCode?: boolean
    resolvedAt?: boolean
    resolvedById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["inspectionRecord"]>

  export type InspectionRecordSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    inspectionNo?: boolean
    inspectedAt?: boolean
    inspectorId?: boolean
    issue?: boolean
    issueTagCode?: boolean
    resolvedAt?: boolean
    resolvedById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["inspectionRecord"]>

  export type InspectionRecordSelectScalar = {
    id?: boolean
    robotUnitId?: boolean
    inspectionNo?: boolean
    inspectedAt?: boolean
    inspectorId?: boolean
    issue?: boolean
    issueTagCode?: boolean
    resolvedAt?: boolean
    resolvedById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type InspectionRecordOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "robotUnitId" | "inspectionNo" | "inspectedAt" | "inspectorId" | "issue" | "issueTagCode" | "resolvedAt" | "resolvedById" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["inspectionRecord"]>
  export type InspectionRecordInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type InspectionRecordIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type InspectionRecordIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $InspectionRecordPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "InspectionRecord"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      robotUnitId: string
      inspectionNo: number
      inspectedAt: Date
      inspectorId: string | null
      issue: string | null
      issueTagCode: string | null
      resolvedAt: Date | null
      resolvedById: string | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
    }, ExtArgs["result"]["inspectionRecord"]>
    composites: {}
  }

  type InspectionRecordGetPayload<S extends boolean | null | undefined | InspectionRecordDefaultArgs> = $Result.GetResult<Prisma.$InspectionRecordPayload, S>

  type InspectionRecordCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<InspectionRecordFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: InspectionRecordCountAggregateInputType | true
    }

  export interface InspectionRecordDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['InspectionRecord'], meta: { name: 'InspectionRecord' } }
    /**
     * Find zero or one InspectionRecord that matches the filter.
     * @param {InspectionRecordFindUniqueArgs} args - Arguments to find a InspectionRecord
     * @example
     * // Get one InspectionRecord
     * const inspectionRecord = await prisma.inspectionRecord.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends InspectionRecordFindUniqueArgs>(args: SelectSubset<T, InspectionRecordFindUniqueArgs<ExtArgs>>): Prisma__InspectionRecordClient<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one InspectionRecord that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {InspectionRecordFindUniqueOrThrowArgs} args - Arguments to find a InspectionRecord
     * @example
     * // Get one InspectionRecord
     * const inspectionRecord = await prisma.inspectionRecord.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends InspectionRecordFindUniqueOrThrowArgs>(args: SelectSubset<T, InspectionRecordFindUniqueOrThrowArgs<ExtArgs>>): Prisma__InspectionRecordClient<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InspectionRecord 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 {InspectionRecordFindFirstArgs} args - Arguments to find a InspectionRecord
     * @example
     * // Get one InspectionRecord
     * const inspectionRecord = await prisma.inspectionRecord.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends InspectionRecordFindFirstArgs>(args?: SelectSubset<T, InspectionRecordFindFirstArgs<ExtArgs>>): Prisma__InspectionRecordClient<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first InspectionRecord 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 {InspectionRecordFindFirstOrThrowArgs} args - Arguments to find a InspectionRecord
     * @example
     * // Get one InspectionRecord
     * const inspectionRecord = await prisma.inspectionRecord.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends InspectionRecordFindFirstOrThrowArgs>(args?: SelectSubset<T, InspectionRecordFindFirstOrThrowArgs<ExtArgs>>): Prisma__InspectionRecordClient<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more InspectionRecords 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 {InspectionRecordFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all InspectionRecords
     * const inspectionRecords = await prisma.inspectionRecord.findMany()
     * 
     * // Get first 10 InspectionRecords
     * const inspectionRecords = await prisma.inspectionRecord.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const inspectionRecordWithIdOnly = await prisma.inspectionRecord.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends InspectionRecordFindManyArgs>(args?: SelectSubset<T, InspectionRecordFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a InspectionRecord.
     * @param {InspectionRecordCreateArgs} args - Arguments to create a InspectionRecord.
     * @example
     * // Create one InspectionRecord
     * const InspectionRecord = await prisma.inspectionRecord.create({
     *   data: {
     *     // ... data to create a InspectionRecord
     *   }
     * })
     * 
     */
    create<T extends InspectionRecordCreateArgs>(args: SelectSubset<T, InspectionRecordCreateArgs<ExtArgs>>): Prisma__InspectionRecordClient<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many InspectionRecords.
     * @param {InspectionRecordCreateManyArgs} args - Arguments to create many InspectionRecords.
     * @example
     * // Create many InspectionRecords
     * const inspectionRecord = await prisma.inspectionRecord.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends InspectionRecordCreateManyArgs>(args?: SelectSubset<T, InspectionRecordCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many InspectionRecords and returns the data saved in the database.
     * @param {InspectionRecordCreateManyAndReturnArgs} args - Arguments to create many InspectionRecords.
     * @example
     * // Create many InspectionRecords
     * const inspectionRecord = await prisma.inspectionRecord.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many InspectionRecords and only return the `id`
     * const inspectionRecordWithIdOnly = await prisma.inspectionRecord.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 InspectionRecordCreateManyAndReturnArgs>(args?: SelectSubset<T, InspectionRecordCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a InspectionRecord.
     * @param {InspectionRecordDeleteArgs} args - Arguments to delete one InspectionRecord.
     * @example
     * // Delete one InspectionRecord
     * const InspectionRecord = await prisma.inspectionRecord.delete({
     *   where: {
     *     // ... filter to delete one InspectionRecord
     *   }
     * })
     * 
     */
    delete<T extends InspectionRecordDeleteArgs>(args: SelectSubset<T, InspectionRecordDeleteArgs<ExtArgs>>): Prisma__InspectionRecordClient<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one InspectionRecord.
     * @param {InspectionRecordUpdateArgs} args - Arguments to update one InspectionRecord.
     * @example
     * // Update one InspectionRecord
     * const inspectionRecord = await prisma.inspectionRecord.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends InspectionRecordUpdateArgs>(args: SelectSubset<T, InspectionRecordUpdateArgs<ExtArgs>>): Prisma__InspectionRecordClient<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more InspectionRecords.
     * @param {InspectionRecordDeleteManyArgs} args - Arguments to filter InspectionRecords to delete.
     * @example
     * // Delete a few InspectionRecords
     * const { count } = await prisma.inspectionRecord.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends InspectionRecordDeleteManyArgs>(args?: SelectSubset<T, InspectionRecordDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InspectionRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InspectionRecordUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many InspectionRecords
     * const inspectionRecord = await prisma.inspectionRecord.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends InspectionRecordUpdateManyArgs>(args: SelectSubset<T, InspectionRecordUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more InspectionRecords and returns the data updated in the database.
     * @param {InspectionRecordUpdateManyAndReturnArgs} args - Arguments to update many InspectionRecords.
     * @example
     * // Update many InspectionRecords
     * const inspectionRecord = await prisma.inspectionRecord.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more InspectionRecords and only return the `id`
     * const inspectionRecordWithIdOnly = await prisma.inspectionRecord.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 InspectionRecordUpdateManyAndReturnArgs>(args: SelectSubset<T, InspectionRecordUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one InspectionRecord.
     * @param {InspectionRecordUpsertArgs} args - Arguments to update or create a InspectionRecord.
     * @example
     * // Update or create a InspectionRecord
     * const inspectionRecord = await prisma.inspectionRecord.upsert({
     *   create: {
     *     // ... data to create a InspectionRecord
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the InspectionRecord we want to update
     *   }
     * })
     */
    upsert<T extends InspectionRecordUpsertArgs>(args: SelectSubset<T, InspectionRecordUpsertArgs<ExtArgs>>): Prisma__InspectionRecordClient<$Result.GetResult<Prisma.$InspectionRecordPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of InspectionRecords.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InspectionRecordCountArgs} args - Arguments to filter InspectionRecords to count.
     * @example
     * // Count the number of InspectionRecords
     * const count = await prisma.inspectionRecord.count({
     *   where: {
     *     // ... the filter for the InspectionRecords we want to count
     *   }
     * })
    **/
    count<T extends InspectionRecordCountArgs>(
      args?: Subset<T, InspectionRecordCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], InspectionRecordCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a InspectionRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InspectionRecordAggregateArgs} 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 InspectionRecordAggregateArgs>(args: Subset<T, InspectionRecordAggregateArgs>): Prisma.PrismaPromise<GetInspectionRecordAggregateType<T>>

    /**
     * Group by InspectionRecord.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {InspectionRecordGroupByArgs} 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 InspectionRecordGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: InspectionRecordGroupByArgs['orderBy'] }
        : { orderBy?: InspectionRecordGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, InspectionRecordGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetInspectionRecordGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the InspectionRecord model
   */
  readonly fields: InspectionRecordFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for InspectionRecord.
   * 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__InspectionRecordClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the InspectionRecord model
   */
  interface InspectionRecordFieldRefs {
    readonly id: FieldRef<"InspectionRecord", 'String'>
    readonly robotUnitId: FieldRef<"InspectionRecord", 'String'>
    readonly inspectionNo: FieldRef<"InspectionRecord", 'Int'>
    readonly inspectedAt: FieldRef<"InspectionRecord", 'DateTime'>
    readonly inspectorId: FieldRef<"InspectionRecord", 'String'>
    readonly issue: FieldRef<"InspectionRecord", 'String'>
    readonly issueTagCode: FieldRef<"InspectionRecord", 'String'>
    readonly resolvedAt: FieldRef<"InspectionRecord", 'DateTime'>
    readonly resolvedById: FieldRef<"InspectionRecord", 'String'>
    readonly organizationId: FieldRef<"InspectionRecord", 'String'>
    readonly createdAt: FieldRef<"InspectionRecord", 'DateTime'>
    readonly updatedAt: FieldRef<"InspectionRecord", 'DateTime'>
    readonly createdById: FieldRef<"InspectionRecord", 'String'>
  }
    

  // Custom InputTypes
  /**
   * InspectionRecord findUnique
   */
  export type InspectionRecordFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * Filter, which InspectionRecord to fetch.
     */
    where: InspectionRecordWhereUniqueInput
  }

  /**
   * InspectionRecord findUniqueOrThrow
   */
  export type InspectionRecordFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * Filter, which InspectionRecord to fetch.
     */
    where: InspectionRecordWhereUniqueInput
  }

  /**
   * InspectionRecord findFirst
   */
  export type InspectionRecordFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * Filter, which InspectionRecord to fetch.
     */
    where?: InspectionRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InspectionRecords to fetch.
     */
    orderBy?: InspectionRecordOrderByWithRelationInput | InspectionRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InspectionRecords.
     */
    cursor?: InspectionRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InspectionRecords 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` InspectionRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InspectionRecords.
     */
    distinct?: InspectionRecordScalarFieldEnum | InspectionRecordScalarFieldEnum[]
  }

  /**
   * InspectionRecord findFirstOrThrow
   */
  export type InspectionRecordFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * Filter, which InspectionRecord to fetch.
     */
    where?: InspectionRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InspectionRecords to fetch.
     */
    orderBy?: InspectionRecordOrderByWithRelationInput | InspectionRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for InspectionRecords.
     */
    cursor?: InspectionRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InspectionRecords 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` InspectionRecords.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of InspectionRecords.
     */
    distinct?: InspectionRecordScalarFieldEnum | InspectionRecordScalarFieldEnum[]
  }

  /**
   * InspectionRecord findMany
   */
  export type InspectionRecordFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * Filter, which InspectionRecords to fetch.
     */
    where?: InspectionRecordWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of InspectionRecords to fetch.
     */
    orderBy?: InspectionRecordOrderByWithRelationInput | InspectionRecordOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing InspectionRecords.
     */
    cursor?: InspectionRecordWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` InspectionRecords 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` InspectionRecords.
     */
    skip?: number
    distinct?: InspectionRecordScalarFieldEnum | InspectionRecordScalarFieldEnum[]
  }

  /**
   * InspectionRecord create
   */
  export type InspectionRecordCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * The data needed to create a InspectionRecord.
     */
    data: XOR<InspectionRecordCreateInput, InspectionRecordUncheckedCreateInput>
  }

  /**
   * InspectionRecord createMany
   */
  export type InspectionRecordCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many InspectionRecords.
     */
    data: InspectionRecordCreateManyInput | InspectionRecordCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * InspectionRecord createManyAndReturn
   */
  export type InspectionRecordCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * The data used to create many InspectionRecords.
     */
    data: InspectionRecordCreateManyInput | InspectionRecordCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * InspectionRecord update
   */
  export type InspectionRecordUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * The data needed to update a InspectionRecord.
     */
    data: XOR<InspectionRecordUpdateInput, InspectionRecordUncheckedUpdateInput>
    /**
     * Choose, which InspectionRecord to update.
     */
    where: InspectionRecordWhereUniqueInput
  }

  /**
   * InspectionRecord updateMany
   */
  export type InspectionRecordUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update InspectionRecords.
     */
    data: XOR<InspectionRecordUpdateManyMutationInput, InspectionRecordUncheckedUpdateManyInput>
    /**
     * Filter which InspectionRecords to update
     */
    where?: InspectionRecordWhereInput
    /**
     * Limit how many InspectionRecords to update.
     */
    limit?: number
  }

  /**
   * InspectionRecord updateManyAndReturn
   */
  export type InspectionRecordUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * The data used to update InspectionRecords.
     */
    data: XOR<InspectionRecordUpdateManyMutationInput, InspectionRecordUncheckedUpdateManyInput>
    /**
     * Filter which InspectionRecords to update
     */
    where?: InspectionRecordWhereInput
    /**
     * Limit how many InspectionRecords to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * InspectionRecord upsert
   */
  export type InspectionRecordUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * The filter to search for the InspectionRecord to update in case it exists.
     */
    where: InspectionRecordWhereUniqueInput
    /**
     * In case the InspectionRecord found by the `where` argument doesn't exist, create a new InspectionRecord with this data.
     */
    create: XOR<InspectionRecordCreateInput, InspectionRecordUncheckedCreateInput>
    /**
     * In case the InspectionRecord was found with the provided `where` argument, update it with this data.
     */
    update: XOR<InspectionRecordUpdateInput, InspectionRecordUncheckedUpdateInput>
  }

  /**
   * InspectionRecord delete
   */
  export type InspectionRecordDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
    /**
     * Filter which InspectionRecord to delete.
     */
    where: InspectionRecordWhereUniqueInput
  }

  /**
   * InspectionRecord deleteMany
   */
  export type InspectionRecordDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which InspectionRecords to delete
     */
    where?: InspectionRecordWhereInput
    /**
     * Limit how many InspectionRecords to delete.
     */
    limit?: number
  }

  /**
   * InspectionRecord without action
   */
  export type InspectionRecordDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the InspectionRecord
     */
    select?: InspectionRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the InspectionRecord
     */
    omit?: InspectionRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: InspectionRecordInclude<ExtArgs> | null
  }


  /**
   * Model LogisticsLeg
   */

  export type AggregateLogisticsLeg = {
    _count: LogisticsLegCountAggregateOutputType | null
    _avg: LogisticsLegAvgAggregateOutputType | null
    _sum: LogisticsLegSumAggregateOutputType | null
    _min: LogisticsLegMinAggregateOutputType | null
    _max: LogisticsLegMaxAggregateOutputType | null
  }

  export type LogisticsLegAvgAggregateOutputType = {
    legNo: number | null
  }

  export type LogisticsLegSumAggregateOutputType = {
    legNo: number | null
  }

  export type LogisticsLegMinAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    legNo: number | null
    fromLocationId: string | null
    toLocationId: string | null
    departedAt: Date | null
    arrivedAt: Date | null
    logisticsStatus: $Enums.LogisticsStatus | null
    importDeclarationTypeCode: string | null
    tariffTypeCode: string | null
    shippingReceiptAttachmentId: string | null
    additionalNotes: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type LogisticsLegMaxAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    legNo: number | null
    fromLocationId: string | null
    toLocationId: string | null
    departedAt: Date | null
    arrivedAt: Date | null
    logisticsStatus: $Enums.LogisticsStatus | null
    importDeclarationTypeCode: string | null
    tariffTypeCode: string | null
    shippingReceiptAttachmentId: string | null
    additionalNotes: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type LogisticsLegCountAggregateOutputType = {
    id: number
    robotUnitId: number
    legNo: number
    fromLocationId: number
    toLocationId: number
    departedAt: number
    arrivedAt: number
    logisticsStatus: number
    importDeclarationTypeCode: number
    tariffTypeCode: number
    shippingReceiptAttachmentId: number
    additionalNotes: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type LogisticsLegAvgAggregateInputType = {
    legNo?: true
  }

  export type LogisticsLegSumAggregateInputType = {
    legNo?: true
  }

  export type LogisticsLegMinAggregateInputType = {
    id?: true
    robotUnitId?: true
    legNo?: true
    fromLocationId?: true
    toLocationId?: true
    departedAt?: true
    arrivedAt?: true
    logisticsStatus?: true
    importDeclarationTypeCode?: true
    tariffTypeCode?: true
    shippingReceiptAttachmentId?: true
    additionalNotes?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type LogisticsLegMaxAggregateInputType = {
    id?: true
    robotUnitId?: true
    legNo?: true
    fromLocationId?: true
    toLocationId?: true
    departedAt?: true
    arrivedAt?: true
    logisticsStatus?: true
    importDeclarationTypeCode?: true
    tariffTypeCode?: true
    shippingReceiptAttachmentId?: true
    additionalNotes?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type LogisticsLegCountAggregateInputType = {
    id?: true
    robotUnitId?: true
    legNo?: true
    fromLocationId?: true
    toLocationId?: true
    departedAt?: true
    arrivedAt?: true
    logisticsStatus?: true
    importDeclarationTypeCode?: true
    tariffTypeCode?: true
    shippingReceiptAttachmentId?: true
    additionalNotes?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type LogisticsLegAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LogisticsLeg to aggregate.
     */
    where?: LogisticsLegWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogisticsLegs to fetch.
     */
    orderBy?: LogisticsLegOrderByWithRelationInput | LogisticsLegOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: LogisticsLegWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogisticsLegs 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` LogisticsLegs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned LogisticsLegs
    **/
    _count?: true | LogisticsLegCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: LogisticsLegAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: LogisticsLegSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: LogisticsLegMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: LogisticsLegMaxAggregateInputType
  }

  export type GetLogisticsLegAggregateType<T extends LogisticsLegAggregateArgs> = {
        [P in keyof T & keyof AggregateLogisticsLeg]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateLogisticsLeg[P]>
      : GetScalarType<T[P], AggregateLogisticsLeg[P]>
  }




  export type LogisticsLegGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LogisticsLegWhereInput
    orderBy?: LogisticsLegOrderByWithAggregationInput | LogisticsLegOrderByWithAggregationInput[]
    by: LogisticsLegScalarFieldEnum[] | LogisticsLegScalarFieldEnum
    having?: LogisticsLegScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: LogisticsLegCountAggregateInputType | true
    _avg?: LogisticsLegAvgAggregateInputType
    _sum?: LogisticsLegSumAggregateInputType
    _min?: LogisticsLegMinAggregateInputType
    _max?: LogisticsLegMaxAggregateInputType
  }

  export type LogisticsLegGroupByOutputType = {
    id: string
    robotUnitId: string
    legNo: number
    fromLocationId: string | null
    toLocationId: string | null
    departedAt: Date | null
    arrivedAt: Date | null
    logisticsStatus: $Enums.LogisticsStatus
    importDeclarationTypeCode: string | null
    tariffTypeCode: string | null
    shippingReceiptAttachmentId: string | null
    additionalNotes: string | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    _count: LogisticsLegCountAggregateOutputType | null
    _avg: LogisticsLegAvgAggregateOutputType | null
    _sum: LogisticsLegSumAggregateOutputType | null
    _min: LogisticsLegMinAggregateOutputType | null
    _max: LogisticsLegMaxAggregateOutputType | null
  }

  type GetLogisticsLegGroupByPayload<T extends LogisticsLegGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<LogisticsLegGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof LogisticsLegGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], LogisticsLegGroupByOutputType[P]>
            : GetScalarType<T[P], LogisticsLegGroupByOutputType[P]>
        }
      >
    >


  export type LogisticsLegSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    legNo?: boolean
    fromLocationId?: boolean
    toLocationId?: boolean
    departedAt?: boolean
    arrivedAt?: boolean
    logisticsStatus?: boolean
    importDeclarationTypeCode?: boolean
    tariffTypeCode?: boolean
    shippingReceiptAttachmentId?: boolean
    additionalNotes?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["logisticsLeg"]>

  export type LogisticsLegSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    legNo?: boolean
    fromLocationId?: boolean
    toLocationId?: boolean
    departedAt?: boolean
    arrivedAt?: boolean
    logisticsStatus?: boolean
    importDeclarationTypeCode?: boolean
    tariffTypeCode?: boolean
    shippingReceiptAttachmentId?: boolean
    additionalNotes?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["logisticsLeg"]>

  export type LogisticsLegSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    legNo?: boolean
    fromLocationId?: boolean
    toLocationId?: boolean
    departedAt?: boolean
    arrivedAt?: boolean
    logisticsStatus?: boolean
    importDeclarationTypeCode?: boolean
    tariffTypeCode?: boolean
    shippingReceiptAttachmentId?: boolean
    additionalNotes?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["logisticsLeg"]>

  export type LogisticsLegSelectScalar = {
    id?: boolean
    robotUnitId?: boolean
    legNo?: boolean
    fromLocationId?: boolean
    toLocationId?: boolean
    departedAt?: boolean
    arrivedAt?: boolean
    logisticsStatus?: boolean
    importDeclarationTypeCode?: boolean
    tariffTypeCode?: boolean
    shippingReceiptAttachmentId?: boolean
    additionalNotes?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type LogisticsLegOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "robotUnitId" | "legNo" | "fromLocationId" | "toLocationId" | "departedAt" | "arrivedAt" | "logisticsStatus" | "importDeclarationTypeCode" | "tariffTypeCode" | "shippingReceiptAttachmentId" | "additionalNotes" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["logisticsLeg"]>
  export type LogisticsLegInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type LogisticsLegIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type LogisticsLegIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $LogisticsLegPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "LogisticsLeg"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      robotUnitId: string
      legNo: number
      fromLocationId: string | null
      toLocationId: string | null
      departedAt: Date | null
      arrivedAt: Date | null
      logisticsStatus: $Enums.LogisticsStatus
      importDeclarationTypeCode: string | null
      tariffTypeCode: string | null
      shippingReceiptAttachmentId: string | null
      additionalNotes: string | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
    }, ExtArgs["result"]["logisticsLeg"]>
    composites: {}
  }

  type LogisticsLegGetPayload<S extends boolean | null | undefined | LogisticsLegDefaultArgs> = $Result.GetResult<Prisma.$LogisticsLegPayload, S>

  type LogisticsLegCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<LogisticsLegFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: LogisticsLegCountAggregateInputType | true
    }

  export interface LogisticsLegDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['LogisticsLeg'], meta: { name: 'LogisticsLeg' } }
    /**
     * Find zero or one LogisticsLeg that matches the filter.
     * @param {LogisticsLegFindUniqueArgs} args - Arguments to find a LogisticsLeg
     * @example
     * // Get one LogisticsLeg
     * const logisticsLeg = await prisma.logisticsLeg.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends LogisticsLegFindUniqueArgs>(args: SelectSubset<T, LogisticsLegFindUniqueArgs<ExtArgs>>): Prisma__LogisticsLegClient<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one LogisticsLeg that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {LogisticsLegFindUniqueOrThrowArgs} args - Arguments to find a LogisticsLeg
     * @example
     * // Get one LogisticsLeg
     * const logisticsLeg = await prisma.logisticsLeg.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends LogisticsLegFindUniqueOrThrowArgs>(args: SelectSubset<T, LogisticsLegFindUniqueOrThrowArgs<ExtArgs>>): Prisma__LogisticsLegClient<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LogisticsLeg 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 {LogisticsLegFindFirstArgs} args - Arguments to find a LogisticsLeg
     * @example
     * // Get one LogisticsLeg
     * const logisticsLeg = await prisma.logisticsLeg.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends LogisticsLegFindFirstArgs>(args?: SelectSubset<T, LogisticsLegFindFirstArgs<ExtArgs>>): Prisma__LogisticsLegClient<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LogisticsLeg 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 {LogisticsLegFindFirstOrThrowArgs} args - Arguments to find a LogisticsLeg
     * @example
     * // Get one LogisticsLeg
     * const logisticsLeg = await prisma.logisticsLeg.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends LogisticsLegFindFirstOrThrowArgs>(args?: SelectSubset<T, LogisticsLegFindFirstOrThrowArgs<ExtArgs>>): Prisma__LogisticsLegClient<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more LogisticsLegs 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 {LogisticsLegFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all LogisticsLegs
     * const logisticsLegs = await prisma.logisticsLeg.findMany()
     * 
     * // Get first 10 LogisticsLegs
     * const logisticsLegs = await prisma.logisticsLeg.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const logisticsLegWithIdOnly = await prisma.logisticsLeg.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends LogisticsLegFindManyArgs>(args?: SelectSubset<T, LogisticsLegFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a LogisticsLeg.
     * @param {LogisticsLegCreateArgs} args - Arguments to create a LogisticsLeg.
     * @example
     * // Create one LogisticsLeg
     * const LogisticsLeg = await prisma.logisticsLeg.create({
     *   data: {
     *     // ... data to create a LogisticsLeg
     *   }
     * })
     * 
     */
    create<T extends LogisticsLegCreateArgs>(args: SelectSubset<T, LogisticsLegCreateArgs<ExtArgs>>): Prisma__LogisticsLegClient<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many LogisticsLegs.
     * @param {LogisticsLegCreateManyArgs} args - Arguments to create many LogisticsLegs.
     * @example
     * // Create many LogisticsLegs
     * const logisticsLeg = await prisma.logisticsLeg.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends LogisticsLegCreateManyArgs>(args?: SelectSubset<T, LogisticsLegCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many LogisticsLegs and returns the data saved in the database.
     * @param {LogisticsLegCreateManyAndReturnArgs} args - Arguments to create many LogisticsLegs.
     * @example
     * // Create many LogisticsLegs
     * const logisticsLeg = await prisma.logisticsLeg.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many LogisticsLegs and only return the `id`
     * const logisticsLegWithIdOnly = await prisma.logisticsLeg.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 LogisticsLegCreateManyAndReturnArgs>(args?: SelectSubset<T, LogisticsLegCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a LogisticsLeg.
     * @param {LogisticsLegDeleteArgs} args - Arguments to delete one LogisticsLeg.
     * @example
     * // Delete one LogisticsLeg
     * const LogisticsLeg = await prisma.logisticsLeg.delete({
     *   where: {
     *     // ... filter to delete one LogisticsLeg
     *   }
     * })
     * 
     */
    delete<T extends LogisticsLegDeleteArgs>(args: SelectSubset<T, LogisticsLegDeleteArgs<ExtArgs>>): Prisma__LogisticsLegClient<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one LogisticsLeg.
     * @param {LogisticsLegUpdateArgs} args - Arguments to update one LogisticsLeg.
     * @example
     * // Update one LogisticsLeg
     * const logisticsLeg = await prisma.logisticsLeg.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends LogisticsLegUpdateArgs>(args: SelectSubset<T, LogisticsLegUpdateArgs<ExtArgs>>): Prisma__LogisticsLegClient<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more LogisticsLegs.
     * @param {LogisticsLegDeleteManyArgs} args - Arguments to filter LogisticsLegs to delete.
     * @example
     * // Delete a few LogisticsLegs
     * const { count } = await prisma.logisticsLeg.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends LogisticsLegDeleteManyArgs>(args?: SelectSubset<T, LogisticsLegDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LogisticsLegs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogisticsLegUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many LogisticsLegs
     * const logisticsLeg = await prisma.logisticsLeg.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends LogisticsLegUpdateManyArgs>(args: SelectSubset<T, LogisticsLegUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LogisticsLegs and returns the data updated in the database.
     * @param {LogisticsLegUpdateManyAndReturnArgs} args - Arguments to update many LogisticsLegs.
     * @example
     * // Update many LogisticsLegs
     * const logisticsLeg = await prisma.logisticsLeg.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more LogisticsLegs and only return the `id`
     * const logisticsLegWithIdOnly = await prisma.logisticsLeg.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 LogisticsLegUpdateManyAndReturnArgs>(args: SelectSubset<T, LogisticsLegUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one LogisticsLeg.
     * @param {LogisticsLegUpsertArgs} args - Arguments to update or create a LogisticsLeg.
     * @example
     * // Update or create a LogisticsLeg
     * const logisticsLeg = await prisma.logisticsLeg.upsert({
     *   create: {
     *     // ... data to create a LogisticsLeg
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the LogisticsLeg we want to update
     *   }
     * })
     */
    upsert<T extends LogisticsLegUpsertArgs>(args: SelectSubset<T, LogisticsLegUpsertArgs<ExtArgs>>): Prisma__LogisticsLegClient<$Result.GetResult<Prisma.$LogisticsLegPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of LogisticsLegs.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogisticsLegCountArgs} args - Arguments to filter LogisticsLegs to count.
     * @example
     * // Count the number of LogisticsLegs
     * const count = await prisma.logisticsLeg.count({
     *   where: {
     *     // ... the filter for the LogisticsLegs we want to count
     *   }
     * })
    **/
    count<T extends LogisticsLegCountArgs>(
      args?: Subset<T, LogisticsLegCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], LogisticsLegCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a LogisticsLeg.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogisticsLegAggregateArgs} 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 LogisticsLegAggregateArgs>(args: Subset<T, LogisticsLegAggregateArgs>): Prisma.PrismaPromise<GetLogisticsLegAggregateType<T>>

    /**
     * Group by LogisticsLeg.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LogisticsLegGroupByArgs} 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 LogisticsLegGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: LogisticsLegGroupByArgs['orderBy'] }
        : { orderBy?: LogisticsLegGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, LogisticsLegGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetLogisticsLegGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the LogisticsLeg model
   */
  readonly fields: LogisticsLegFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for LogisticsLeg.
   * 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__LogisticsLegClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the LogisticsLeg model
   */
  interface LogisticsLegFieldRefs {
    readonly id: FieldRef<"LogisticsLeg", 'String'>
    readonly robotUnitId: FieldRef<"LogisticsLeg", 'String'>
    readonly legNo: FieldRef<"LogisticsLeg", 'Int'>
    readonly fromLocationId: FieldRef<"LogisticsLeg", 'String'>
    readonly toLocationId: FieldRef<"LogisticsLeg", 'String'>
    readonly departedAt: FieldRef<"LogisticsLeg", 'DateTime'>
    readonly arrivedAt: FieldRef<"LogisticsLeg", 'DateTime'>
    readonly logisticsStatus: FieldRef<"LogisticsLeg", 'LogisticsStatus'>
    readonly importDeclarationTypeCode: FieldRef<"LogisticsLeg", 'String'>
    readonly tariffTypeCode: FieldRef<"LogisticsLeg", 'String'>
    readonly shippingReceiptAttachmentId: FieldRef<"LogisticsLeg", 'String'>
    readonly additionalNotes: FieldRef<"LogisticsLeg", 'String'>
    readonly organizationId: FieldRef<"LogisticsLeg", 'String'>
    readonly createdAt: FieldRef<"LogisticsLeg", 'DateTime'>
    readonly updatedAt: FieldRef<"LogisticsLeg", 'DateTime'>
    readonly createdById: FieldRef<"LogisticsLeg", 'String'>
  }
    

  // Custom InputTypes
  /**
   * LogisticsLeg findUnique
   */
  export type LogisticsLegFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * Filter, which LogisticsLeg to fetch.
     */
    where: LogisticsLegWhereUniqueInput
  }

  /**
   * LogisticsLeg findUniqueOrThrow
   */
  export type LogisticsLegFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * Filter, which LogisticsLeg to fetch.
     */
    where: LogisticsLegWhereUniqueInput
  }

  /**
   * LogisticsLeg findFirst
   */
  export type LogisticsLegFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * Filter, which LogisticsLeg to fetch.
     */
    where?: LogisticsLegWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogisticsLegs to fetch.
     */
    orderBy?: LogisticsLegOrderByWithRelationInput | LogisticsLegOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LogisticsLegs.
     */
    cursor?: LogisticsLegWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogisticsLegs 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` LogisticsLegs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LogisticsLegs.
     */
    distinct?: LogisticsLegScalarFieldEnum | LogisticsLegScalarFieldEnum[]
  }

  /**
   * LogisticsLeg findFirstOrThrow
   */
  export type LogisticsLegFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * Filter, which LogisticsLeg to fetch.
     */
    where?: LogisticsLegWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogisticsLegs to fetch.
     */
    orderBy?: LogisticsLegOrderByWithRelationInput | LogisticsLegOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LogisticsLegs.
     */
    cursor?: LogisticsLegWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogisticsLegs 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` LogisticsLegs.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LogisticsLegs.
     */
    distinct?: LogisticsLegScalarFieldEnum | LogisticsLegScalarFieldEnum[]
  }

  /**
   * LogisticsLeg findMany
   */
  export type LogisticsLegFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * Filter, which LogisticsLegs to fetch.
     */
    where?: LogisticsLegWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LogisticsLegs to fetch.
     */
    orderBy?: LogisticsLegOrderByWithRelationInput | LogisticsLegOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing LogisticsLegs.
     */
    cursor?: LogisticsLegWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LogisticsLegs 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` LogisticsLegs.
     */
    skip?: number
    distinct?: LogisticsLegScalarFieldEnum | LogisticsLegScalarFieldEnum[]
  }

  /**
   * LogisticsLeg create
   */
  export type LogisticsLegCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * The data needed to create a LogisticsLeg.
     */
    data: XOR<LogisticsLegCreateInput, LogisticsLegUncheckedCreateInput>
  }

  /**
   * LogisticsLeg createMany
   */
  export type LogisticsLegCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many LogisticsLegs.
     */
    data: LogisticsLegCreateManyInput | LogisticsLegCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LogisticsLeg createManyAndReturn
   */
  export type LogisticsLegCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * The data used to create many LogisticsLegs.
     */
    data: LogisticsLegCreateManyInput | LogisticsLegCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * LogisticsLeg update
   */
  export type LogisticsLegUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * The data needed to update a LogisticsLeg.
     */
    data: XOR<LogisticsLegUpdateInput, LogisticsLegUncheckedUpdateInput>
    /**
     * Choose, which LogisticsLeg to update.
     */
    where: LogisticsLegWhereUniqueInput
  }

  /**
   * LogisticsLeg updateMany
   */
  export type LogisticsLegUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update LogisticsLegs.
     */
    data: XOR<LogisticsLegUpdateManyMutationInput, LogisticsLegUncheckedUpdateManyInput>
    /**
     * Filter which LogisticsLegs to update
     */
    where?: LogisticsLegWhereInput
    /**
     * Limit how many LogisticsLegs to update.
     */
    limit?: number
  }

  /**
   * LogisticsLeg updateManyAndReturn
   */
  export type LogisticsLegUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * The data used to update LogisticsLegs.
     */
    data: XOR<LogisticsLegUpdateManyMutationInput, LogisticsLegUncheckedUpdateManyInput>
    /**
     * Filter which LogisticsLegs to update
     */
    where?: LogisticsLegWhereInput
    /**
     * Limit how many LogisticsLegs to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * LogisticsLeg upsert
   */
  export type LogisticsLegUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * The filter to search for the LogisticsLeg to update in case it exists.
     */
    where: LogisticsLegWhereUniqueInput
    /**
     * In case the LogisticsLeg found by the `where` argument doesn't exist, create a new LogisticsLeg with this data.
     */
    create: XOR<LogisticsLegCreateInput, LogisticsLegUncheckedCreateInput>
    /**
     * In case the LogisticsLeg was found with the provided `where` argument, update it with this data.
     */
    update: XOR<LogisticsLegUpdateInput, LogisticsLegUncheckedUpdateInput>
  }

  /**
   * LogisticsLeg delete
   */
  export type LogisticsLegDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
    /**
     * Filter which LogisticsLeg to delete.
     */
    where: LogisticsLegWhereUniqueInput
  }

  /**
   * LogisticsLeg deleteMany
   */
  export type LogisticsLegDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LogisticsLegs to delete
     */
    where?: LogisticsLegWhereInput
    /**
     * Limit how many LogisticsLegs to delete.
     */
    limit?: number
  }

  /**
   * LogisticsLeg without action
   */
  export type LogisticsLegDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LogisticsLeg
     */
    select?: LogisticsLegSelect<ExtArgs> | null
    /**
     * Omit specific fields from the LogisticsLeg
     */
    omit?: LogisticsLegOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: LogisticsLegInclude<ExtArgs> | null
  }


  /**
   * Model ComplianceCheck
   */

  export type AggregateComplianceCheck = {
    _count: ComplianceCheckCountAggregateOutputType | null
    _min: ComplianceCheckMinAggregateOutputType | null
    _max: ComplianceCheckMaxAggregateOutputType | null
  }

  export type ComplianceCheckMinAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    dateReady: Date | null
    stickerStatus: $Enums.StickerStatus | null
    fccStatus: $Enums.FccStatus | null
    complianceNotes: string | null
    lastUpdatedAt: Date | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type ComplianceCheckMaxAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    dateReady: Date | null
    stickerStatus: $Enums.StickerStatus | null
    fccStatus: $Enums.FccStatus | null
    complianceNotes: string | null
    lastUpdatedAt: Date | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
  }

  export type ComplianceCheckCountAggregateOutputType = {
    id: number
    robotUnitId: number
    dateReady: number
    stickerStatus: number
    fccStatus: number
    complianceNotes: number
    lastUpdatedAt: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    _all: number
  }


  export type ComplianceCheckMinAggregateInputType = {
    id?: true
    robotUnitId?: true
    dateReady?: true
    stickerStatus?: true
    fccStatus?: true
    complianceNotes?: true
    lastUpdatedAt?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type ComplianceCheckMaxAggregateInputType = {
    id?: true
    robotUnitId?: true
    dateReady?: true
    stickerStatus?: true
    fccStatus?: true
    complianceNotes?: true
    lastUpdatedAt?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
  }

  export type ComplianceCheckCountAggregateInputType = {
    id?: true
    robotUnitId?: true
    dateReady?: true
    stickerStatus?: true
    fccStatus?: true
    complianceNotes?: true
    lastUpdatedAt?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    _all?: true
  }

  export type ComplianceCheckAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ComplianceCheck to aggregate.
     */
    where?: ComplianceCheckWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ComplianceChecks to fetch.
     */
    orderBy?: ComplianceCheckOrderByWithRelationInput | ComplianceCheckOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ComplianceCheckWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ComplianceChecks 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` ComplianceChecks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ComplianceChecks
    **/
    _count?: true | ComplianceCheckCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ComplianceCheckMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ComplianceCheckMaxAggregateInputType
  }

  export type GetComplianceCheckAggregateType<T extends ComplianceCheckAggregateArgs> = {
        [P in keyof T & keyof AggregateComplianceCheck]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateComplianceCheck[P]>
      : GetScalarType<T[P], AggregateComplianceCheck[P]>
  }




  export type ComplianceCheckGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ComplianceCheckWhereInput
    orderBy?: ComplianceCheckOrderByWithAggregationInput | ComplianceCheckOrderByWithAggregationInput[]
    by: ComplianceCheckScalarFieldEnum[] | ComplianceCheckScalarFieldEnum
    having?: ComplianceCheckScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ComplianceCheckCountAggregateInputType | true
    _min?: ComplianceCheckMinAggregateInputType
    _max?: ComplianceCheckMaxAggregateInputType
  }

  export type ComplianceCheckGroupByOutputType = {
    id: string
    robotUnitId: string
    dateReady: Date | null
    stickerStatus: $Enums.StickerStatus | null
    fccStatus: $Enums.FccStatus | null
    complianceNotes: string | null
    lastUpdatedAt: Date
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    _count: ComplianceCheckCountAggregateOutputType | null
    _min: ComplianceCheckMinAggregateOutputType | null
    _max: ComplianceCheckMaxAggregateOutputType | null
  }

  type GetComplianceCheckGroupByPayload<T extends ComplianceCheckGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ComplianceCheckGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ComplianceCheckGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ComplianceCheckGroupByOutputType[P]>
            : GetScalarType<T[P], ComplianceCheckGroupByOutputType[P]>
        }
      >
    >


  export type ComplianceCheckSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    dateReady?: boolean
    stickerStatus?: boolean
    fccStatus?: boolean
    complianceNotes?: boolean
    lastUpdatedAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["complianceCheck"]>

  export type ComplianceCheckSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    dateReady?: boolean
    stickerStatus?: boolean
    fccStatus?: boolean
    complianceNotes?: boolean
    lastUpdatedAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["complianceCheck"]>

  export type ComplianceCheckSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    dateReady?: boolean
    stickerStatus?: boolean
    fccStatus?: boolean
    complianceNotes?: boolean
    lastUpdatedAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["complianceCheck"]>

  export type ComplianceCheckSelectScalar = {
    id?: boolean
    robotUnitId?: boolean
    dateReady?: boolean
    stickerStatus?: boolean
    fccStatus?: boolean
    complianceNotes?: boolean
    lastUpdatedAt?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
  }

  export type ComplianceCheckOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "robotUnitId" | "dateReady" | "stickerStatus" | "fccStatus" | "complianceNotes" | "lastUpdatedAt" | "organizationId" | "createdAt" | "updatedAt" | "createdById", ExtArgs["result"]["complianceCheck"]>
  export type ComplianceCheckInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type ComplianceCheckIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type ComplianceCheckIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $ComplianceCheckPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ComplianceCheck"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      robotUnitId: string
      dateReady: Date | null
      stickerStatus: $Enums.StickerStatus | null
      fccStatus: $Enums.FccStatus | null
      complianceNotes: string | null
      lastUpdatedAt: Date
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
    }, ExtArgs["result"]["complianceCheck"]>
    composites: {}
  }

  type ComplianceCheckGetPayload<S extends boolean | null | undefined | ComplianceCheckDefaultArgs> = $Result.GetResult<Prisma.$ComplianceCheckPayload, S>

  type ComplianceCheckCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ComplianceCheckFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ComplianceCheckCountAggregateInputType | true
    }

  export interface ComplianceCheckDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ComplianceCheck'], meta: { name: 'ComplianceCheck' } }
    /**
     * Find zero or one ComplianceCheck that matches the filter.
     * @param {ComplianceCheckFindUniqueArgs} args - Arguments to find a ComplianceCheck
     * @example
     * // Get one ComplianceCheck
     * const complianceCheck = await prisma.complianceCheck.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ComplianceCheckFindUniqueArgs>(args: SelectSubset<T, ComplianceCheckFindUniqueArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ComplianceCheck that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ComplianceCheckFindUniqueOrThrowArgs} args - Arguments to find a ComplianceCheck
     * @example
     * // Get one ComplianceCheck
     * const complianceCheck = await prisma.complianceCheck.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ComplianceCheckFindUniqueOrThrowArgs>(args: SelectSubset<T, ComplianceCheckFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ComplianceCheck 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 {ComplianceCheckFindFirstArgs} args - Arguments to find a ComplianceCheck
     * @example
     * // Get one ComplianceCheck
     * const complianceCheck = await prisma.complianceCheck.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ComplianceCheckFindFirstArgs>(args?: SelectSubset<T, ComplianceCheckFindFirstArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ComplianceCheck 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 {ComplianceCheckFindFirstOrThrowArgs} args - Arguments to find a ComplianceCheck
     * @example
     * // Get one ComplianceCheck
     * const complianceCheck = await prisma.complianceCheck.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ComplianceCheckFindFirstOrThrowArgs>(args?: SelectSubset<T, ComplianceCheckFindFirstOrThrowArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ComplianceChecks 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 {ComplianceCheckFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ComplianceChecks
     * const complianceChecks = await prisma.complianceCheck.findMany()
     * 
     * // Get first 10 ComplianceChecks
     * const complianceChecks = await prisma.complianceCheck.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const complianceCheckWithIdOnly = await prisma.complianceCheck.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ComplianceCheckFindManyArgs>(args?: SelectSubset<T, ComplianceCheckFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ComplianceCheck.
     * @param {ComplianceCheckCreateArgs} args - Arguments to create a ComplianceCheck.
     * @example
     * // Create one ComplianceCheck
     * const ComplianceCheck = await prisma.complianceCheck.create({
     *   data: {
     *     // ... data to create a ComplianceCheck
     *   }
     * })
     * 
     */
    create<T extends ComplianceCheckCreateArgs>(args: SelectSubset<T, ComplianceCheckCreateArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ComplianceChecks.
     * @param {ComplianceCheckCreateManyArgs} args - Arguments to create many ComplianceChecks.
     * @example
     * // Create many ComplianceChecks
     * const complianceCheck = await prisma.complianceCheck.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ComplianceCheckCreateManyArgs>(args?: SelectSubset<T, ComplianceCheckCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ComplianceChecks and returns the data saved in the database.
     * @param {ComplianceCheckCreateManyAndReturnArgs} args - Arguments to create many ComplianceChecks.
     * @example
     * // Create many ComplianceChecks
     * const complianceCheck = await prisma.complianceCheck.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ComplianceChecks and only return the `id`
     * const complianceCheckWithIdOnly = await prisma.complianceCheck.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 ComplianceCheckCreateManyAndReturnArgs>(args?: SelectSubset<T, ComplianceCheckCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ComplianceCheck.
     * @param {ComplianceCheckDeleteArgs} args - Arguments to delete one ComplianceCheck.
     * @example
     * // Delete one ComplianceCheck
     * const ComplianceCheck = await prisma.complianceCheck.delete({
     *   where: {
     *     // ... filter to delete one ComplianceCheck
     *   }
     * })
     * 
     */
    delete<T extends ComplianceCheckDeleteArgs>(args: SelectSubset<T, ComplianceCheckDeleteArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ComplianceCheck.
     * @param {ComplianceCheckUpdateArgs} args - Arguments to update one ComplianceCheck.
     * @example
     * // Update one ComplianceCheck
     * const complianceCheck = await prisma.complianceCheck.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ComplianceCheckUpdateArgs>(args: SelectSubset<T, ComplianceCheckUpdateArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ComplianceChecks.
     * @param {ComplianceCheckDeleteManyArgs} args - Arguments to filter ComplianceChecks to delete.
     * @example
     * // Delete a few ComplianceChecks
     * const { count } = await prisma.complianceCheck.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ComplianceCheckDeleteManyArgs>(args?: SelectSubset<T, ComplianceCheckDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ComplianceChecks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ComplianceCheckUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ComplianceChecks
     * const complianceCheck = await prisma.complianceCheck.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ComplianceCheckUpdateManyArgs>(args: SelectSubset<T, ComplianceCheckUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ComplianceChecks and returns the data updated in the database.
     * @param {ComplianceCheckUpdateManyAndReturnArgs} args - Arguments to update many ComplianceChecks.
     * @example
     * // Update many ComplianceChecks
     * const complianceCheck = await prisma.complianceCheck.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ComplianceChecks and only return the `id`
     * const complianceCheckWithIdOnly = await prisma.complianceCheck.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 ComplianceCheckUpdateManyAndReturnArgs>(args: SelectSubset<T, ComplianceCheckUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ComplianceCheck.
     * @param {ComplianceCheckUpsertArgs} args - Arguments to update or create a ComplianceCheck.
     * @example
     * // Update or create a ComplianceCheck
     * const complianceCheck = await prisma.complianceCheck.upsert({
     *   create: {
     *     // ... data to create a ComplianceCheck
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ComplianceCheck we want to update
     *   }
     * })
     */
    upsert<T extends ComplianceCheckUpsertArgs>(args: SelectSubset<T, ComplianceCheckUpsertArgs<ExtArgs>>): Prisma__ComplianceCheckClient<$Result.GetResult<Prisma.$ComplianceCheckPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ComplianceChecks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ComplianceCheckCountArgs} args - Arguments to filter ComplianceChecks to count.
     * @example
     * // Count the number of ComplianceChecks
     * const count = await prisma.complianceCheck.count({
     *   where: {
     *     // ... the filter for the ComplianceChecks we want to count
     *   }
     * })
    **/
    count<T extends ComplianceCheckCountArgs>(
      args?: Subset<T, ComplianceCheckCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ComplianceCheckCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ComplianceCheck.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ComplianceCheckAggregateArgs} 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 ComplianceCheckAggregateArgs>(args: Subset<T, ComplianceCheckAggregateArgs>): Prisma.PrismaPromise<GetComplianceCheckAggregateType<T>>

    /**
     * Group by ComplianceCheck.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ComplianceCheckGroupByArgs} 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 ComplianceCheckGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ComplianceCheckGroupByArgs['orderBy'] }
        : { orderBy?: ComplianceCheckGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ComplianceCheckGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetComplianceCheckGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ComplianceCheck model
   */
  readonly fields: ComplianceCheckFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ComplianceCheck.
   * 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__ComplianceCheckClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ComplianceCheck model
   */
  interface ComplianceCheckFieldRefs {
    readonly id: FieldRef<"ComplianceCheck", 'String'>
    readonly robotUnitId: FieldRef<"ComplianceCheck", 'String'>
    readonly dateReady: FieldRef<"ComplianceCheck", 'DateTime'>
    readonly stickerStatus: FieldRef<"ComplianceCheck", 'StickerStatus'>
    readonly fccStatus: FieldRef<"ComplianceCheck", 'FccStatus'>
    readonly complianceNotes: FieldRef<"ComplianceCheck", 'String'>
    readonly lastUpdatedAt: FieldRef<"ComplianceCheck", 'DateTime'>
    readonly organizationId: FieldRef<"ComplianceCheck", 'String'>
    readonly createdAt: FieldRef<"ComplianceCheck", 'DateTime'>
    readonly updatedAt: FieldRef<"ComplianceCheck", 'DateTime'>
    readonly createdById: FieldRef<"ComplianceCheck", 'String'>
  }
    

  // Custom InputTypes
  /**
   * ComplianceCheck findUnique
   */
  export type ComplianceCheckFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * Filter, which ComplianceCheck to fetch.
     */
    where: ComplianceCheckWhereUniqueInput
  }

  /**
   * ComplianceCheck findUniqueOrThrow
   */
  export type ComplianceCheckFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * Filter, which ComplianceCheck to fetch.
     */
    where: ComplianceCheckWhereUniqueInput
  }

  /**
   * ComplianceCheck findFirst
   */
  export type ComplianceCheckFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * Filter, which ComplianceCheck to fetch.
     */
    where?: ComplianceCheckWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ComplianceChecks to fetch.
     */
    orderBy?: ComplianceCheckOrderByWithRelationInput | ComplianceCheckOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ComplianceChecks.
     */
    cursor?: ComplianceCheckWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ComplianceChecks 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` ComplianceChecks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ComplianceChecks.
     */
    distinct?: ComplianceCheckScalarFieldEnum | ComplianceCheckScalarFieldEnum[]
  }

  /**
   * ComplianceCheck findFirstOrThrow
   */
  export type ComplianceCheckFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * Filter, which ComplianceCheck to fetch.
     */
    where?: ComplianceCheckWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ComplianceChecks to fetch.
     */
    orderBy?: ComplianceCheckOrderByWithRelationInput | ComplianceCheckOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ComplianceChecks.
     */
    cursor?: ComplianceCheckWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ComplianceChecks 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` ComplianceChecks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ComplianceChecks.
     */
    distinct?: ComplianceCheckScalarFieldEnum | ComplianceCheckScalarFieldEnum[]
  }

  /**
   * ComplianceCheck findMany
   */
  export type ComplianceCheckFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * Filter, which ComplianceChecks to fetch.
     */
    where?: ComplianceCheckWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ComplianceChecks to fetch.
     */
    orderBy?: ComplianceCheckOrderByWithRelationInput | ComplianceCheckOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ComplianceChecks.
     */
    cursor?: ComplianceCheckWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ComplianceChecks 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` ComplianceChecks.
     */
    skip?: number
    distinct?: ComplianceCheckScalarFieldEnum | ComplianceCheckScalarFieldEnum[]
  }

  /**
   * ComplianceCheck create
   */
  export type ComplianceCheckCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * The data needed to create a ComplianceCheck.
     */
    data: XOR<ComplianceCheckCreateInput, ComplianceCheckUncheckedCreateInput>
  }

  /**
   * ComplianceCheck createMany
   */
  export type ComplianceCheckCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ComplianceChecks.
     */
    data: ComplianceCheckCreateManyInput | ComplianceCheckCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ComplianceCheck createManyAndReturn
   */
  export type ComplianceCheckCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * The data used to create many ComplianceChecks.
     */
    data: ComplianceCheckCreateManyInput | ComplianceCheckCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ComplianceCheck update
   */
  export type ComplianceCheckUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * The data needed to update a ComplianceCheck.
     */
    data: XOR<ComplianceCheckUpdateInput, ComplianceCheckUncheckedUpdateInput>
    /**
     * Choose, which ComplianceCheck to update.
     */
    where: ComplianceCheckWhereUniqueInput
  }

  /**
   * ComplianceCheck updateMany
   */
  export type ComplianceCheckUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ComplianceChecks.
     */
    data: XOR<ComplianceCheckUpdateManyMutationInput, ComplianceCheckUncheckedUpdateManyInput>
    /**
     * Filter which ComplianceChecks to update
     */
    where?: ComplianceCheckWhereInput
    /**
     * Limit how many ComplianceChecks to update.
     */
    limit?: number
  }

  /**
   * ComplianceCheck updateManyAndReturn
   */
  export type ComplianceCheckUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * The data used to update ComplianceChecks.
     */
    data: XOR<ComplianceCheckUpdateManyMutationInput, ComplianceCheckUncheckedUpdateManyInput>
    /**
     * Filter which ComplianceChecks to update
     */
    where?: ComplianceCheckWhereInput
    /**
     * Limit how many ComplianceChecks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ComplianceCheck upsert
   */
  export type ComplianceCheckUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * The filter to search for the ComplianceCheck to update in case it exists.
     */
    where: ComplianceCheckWhereUniqueInput
    /**
     * In case the ComplianceCheck found by the `where` argument doesn't exist, create a new ComplianceCheck with this data.
     */
    create: XOR<ComplianceCheckCreateInput, ComplianceCheckUncheckedCreateInput>
    /**
     * In case the ComplianceCheck was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ComplianceCheckUpdateInput, ComplianceCheckUncheckedUpdateInput>
  }

  /**
   * ComplianceCheck delete
   */
  export type ComplianceCheckDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
    /**
     * Filter which ComplianceCheck to delete.
     */
    where: ComplianceCheckWhereUniqueInput
  }

  /**
   * ComplianceCheck deleteMany
   */
  export type ComplianceCheckDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ComplianceChecks to delete
     */
    where?: ComplianceCheckWhereInput
    /**
     * Limit how many ComplianceChecks to delete.
     */
    limit?: number
  }

  /**
   * ComplianceCheck without action
   */
  export type ComplianceCheckDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ComplianceCheck
     */
    select?: ComplianceCheckSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ComplianceCheck
     */
    omit?: ComplianceCheckOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ComplianceCheckInclude<ExtArgs> | null
  }


  /**
   * Model RentalAgreement
   */

  export type AggregateRentalAgreement = {
    _count: RentalAgreementCountAggregateOutputType | null
    _avg: RentalAgreementAvgAggregateOutputType | null
    _sum: RentalAgreementSumAggregateOutputType | null
    _min: RentalAgreementMinAggregateOutputType | null
    _max: RentalAgreementMaxAggregateOutputType | null
  }

  export type RentalAgreementAvgAggregateOutputType = {
    periodMonths: number | null
    monthlyRate: Decimal | null
    version: number | null
  }

  export type RentalAgreementSumAggregateOutputType = {
    periodMonths: number | null
    monthlyRate: Decimal | null
    version: number | null
  }

  export type RentalAgreementMinAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    customerId: string | null
    startAt: Date | null
    endAt: Date | null
    periodMonths: number | null
    monthlyRate: Decimal | null
    currencyCode: string | null
    status: $Enums.RentalAgreementStatus | null
    contractAttachmentId: string | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RentalAgreementMaxAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    customerId: string | null
    startAt: Date | null
    endAt: Date | null
    periodMonths: number | null
    monthlyRate: Decimal | null
    currencyCode: string | null
    status: $Enums.RentalAgreementStatus | null
    contractAttachmentId: string | null
    version: number | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RentalAgreementCountAggregateOutputType = {
    id: number
    robotUnitId: number
    customerId: number
    startAt: number
    endAt: number
    periodMonths: number
    monthlyRate: number
    currencyCode: number
    status: number
    contractAttachmentId: number
    version: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type RentalAgreementAvgAggregateInputType = {
    periodMonths?: true
    monthlyRate?: true
    version?: true
  }

  export type RentalAgreementSumAggregateInputType = {
    periodMonths?: true
    monthlyRate?: true
    version?: true
  }

  export type RentalAgreementMinAggregateInputType = {
    id?: true
    robotUnitId?: true
    customerId?: true
    startAt?: true
    endAt?: true
    periodMonths?: true
    monthlyRate?: true
    currencyCode?: true
    status?: true
    contractAttachmentId?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RentalAgreementMaxAggregateInputType = {
    id?: true
    robotUnitId?: true
    customerId?: true
    startAt?: true
    endAt?: true
    periodMonths?: true
    monthlyRate?: true
    currencyCode?: true
    status?: true
    contractAttachmentId?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RentalAgreementCountAggregateInputType = {
    id?: true
    robotUnitId?: true
    customerId?: true
    startAt?: true
    endAt?: true
    periodMonths?: true
    monthlyRate?: true
    currencyCode?: true
    status?: true
    contractAttachmentId?: true
    version?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type RentalAgreementAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RentalAgreement to aggregate.
     */
    where?: RentalAgreementWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RentalAgreements to fetch.
     */
    orderBy?: RentalAgreementOrderByWithRelationInput | RentalAgreementOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RentalAgreementWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RentalAgreements 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` RentalAgreements.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RentalAgreements
    **/
    _count?: true | RentalAgreementCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: RentalAgreementAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: RentalAgreementSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RentalAgreementMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RentalAgreementMaxAggregateInputType
  }

  export type GetRentalAgreementAggregateType<T extends RentalAgreementAggregateArgs> = {
        [P in keyof T & keyof AggregateRentalAgreement]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRentalAgreement[P]>
      : GetScalarType<T[P], AggregateRentalAgreement[P]>
  }




  export type RentalAgreementGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RentalAgreementWhereInput
    orderBy?: RentalAgreementOrderByWithAggregationInput | RentalAgreementOrderByWithAggregationInput[]
    by: RentalAgreementScalarFieldEnum[] | RentalAgreementScalarFieldEnum
    having?: RentalAgreementScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RentalAgreementCountAggregateInputType | true
    _avg?: RentalAgreementAvgAggregateInputType
    _sum?: RentalAgreementSumAggregateInputType
    _min?: RentalAgreementMinAggregateInputType
    _max?: RentalAgreementMaxAggregateInputType
  }

  export type RentalAgreementGroupByOutputType = {
    id: string
    robotUnitId: string
    customerId: string
    startAt: Date
    endAt: Date
    periodMonths: number
    monthlyRate: Decimal
    currencyCode: string
    status: $Enums.RentalAgreementStatus
    contractAttachmentId: string | null
    version: number
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: RentalAgreementCountAggregateOutputType | null
    _avg: RentalAgreementAvgAggregateOutputType | null
    _sum: RentalAgreementSumAggregateOutputType | null
    _min: RentalAgreementMinAggregateOutputType | null
    _max: RentalAgreementMaxAggregateOutputType | null
  }

  type GetRentalAgreementGroupByPayload<T extends RentalAgreementGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RentalAgreementGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RentalAgreementGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RentalAgreementGroupByOutputType[P]>
            : GetScalarType<T[P], RentalAgreementGroupByOutputType[P]>
        }
      >
    >


  export type RentalAgreementSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    customerId?: boolean
    startAt?: boolean
    endAt?: boolean
    periodMonths?: boolean
    monthlyRate?: boolean
    currencyCode?: boolean
    status?: boolean
    contractAttachmentId?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    schedules?: boolean | RentalAgreement$schedulesArgs<ExtArgs>
    _count?: boolean | RentalAgreementCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["rentalAgreement"]>

  export type RentalAgreementSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    customerId?: boolean
    startAt?: boolean
    endAt?: boolean
    periodMonths?: boolean
    monthlyRate?: boolean
    currencyCode?: boolean
    status?: boolean
    contractAttachmentId?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["rentalAgreement"]>

  export type RentalAgreementSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    customerId?: boolean
    startAt?: boolean
    endAt?: boolean
    periodMonths?: boolean
    monthlyRate?: boolean
    currencyCode?: boolean
    status?: boolean
    contractAttachmentId?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["rentalAgreement"]>

  export type RentalAgreementSelectScalar = {
    id?: boolean
    robotUnitId?: boolean
    customerId?: boolean
    startAt?: boolean
    endAt?: boolean
    periodMonths?: boolean
    monthlyRate?: boolean
    currencyCode?: boolean
    status?: boolean
    contractAttachmentId?: boolean
    version?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type RentalAgreementOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "robotUnitId" | "customerId" | "startAt" | "endAt" | "periodMonths" | "monthlyRate" | "currencyCode" | "status" | "contractAttachmentId" | "version" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["rentalAgreement"]>
  export type RentalAgreementInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    schedules?: boolean | RentalAgreement$schedulesArgs<ExtArgs>
    _count?: boolean | RentalAgreementCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type RentalAgreementIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type RentalAgreementIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $RentalAgreementPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RentalAgreement"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
      schedules: Prisma.$RentalPaymentSchedulePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      robotUnitId: string
      customerId: string
      /**
       * 业务约束：startAt < endAt + periodMonths > 0（service 层 enforce；待 raw SQL CHECK 约束补强）
       */
      startAt: Date
      endAt: Date
      periodMonths: number
      monthlyRate: Prisma.Decimal
      currencyCode: string
      status: $Enums.RentalAgreementStatus
      contractAttachmentId: string | null
      /**
       * 乐观锁（原则 18）— 长期合约 + 资金敏感（monthlyRate / status 变更）。
       */
      version: number
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["rentalAgreement"]>
    composites: {}
  }

  type RentalAgreementGetPayload<S extends boolean | null | undefined | RentalAgreementDefaultArgs> = $Result.GetResult<Prisma.$RentalAgreementPayload, S>

  type RentalAgreementCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RentalAgreementFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RentalAgreementCountAggregateInputType | true
    }

  export interface RentalAgreementDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RentalAgreement'], meta: { name: 'RentalAgreement' } }
    /**
     * Find zero or one RentalAgreement that matches the filter.
     * @param {RentalAgreementFindUniqueArgs} args - Arguments to find a RentalAgreement
     * @example
     * // Get one RentalAgreement
     * const rentalAgreement = await prisma.rentalAgreement.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RentalAgreementFindUniqueArgs>(args: SelectSubset<T, RentalAgreementFindUniqueArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RentalAgreement that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RentalAgreementFindUniqueOrThrowArgs} args - Arguments to find a RentalAgreement
     * @example
     * // Get one RentalAgreement
     * const rentalAgreement = await prisma.rentalAgreement.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RentalAgreementFindUniqueOrThrowArgs>(args: SelectSubset<T, RentalAgreementFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RentalAgreement 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 {RentalAgreementFindFirstArgs} args - Arguments to find a RentalAgreement
     * @example
     * // Get one RentalAgreement
     * const rentalAgreement = await prisma.rentalAgreement.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RentalAgreementFindFirstArgs>(args?: SelectSubset<T, RentalAgreementFindFirstArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RentalAgreement 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 {RentalAgreementFindFirstOrThrowArgs} args - Arguments to find a RentalAgreement
     * @example
     * // Get one RentalAgreement
     * const rentalAgreement = await prisma.rentalAgreement.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RentalAgreementFindFirstOrThrowArgs>(args?: SelectSubset<T, RentalAgreementFindFirstOrThrowArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RentalAgreements 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 {RentalAgreementFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RentalAgreements
     * const rentalAgreements = await prisma.rentalAgreement.findMany()
     * 
     * // Get first 10 RentalAgreements
     * const rentalAgreements = await prisma.rentalAgreement.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const rentalAgreementWithIdOnly = await prisma.rentalAgreement.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RentalAgreementFindManyArgs>(args?: SelectSubset<T, RentalAgreementFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RentalAgreement.
     * @param {RentalAgreementCreateArgs} args - Arguments to create a RentalAgreement.
     * @example
     * // Create one RentalAgreement
     * const RentalAgreement = await prisma.rentalAgreement.create({
     *   data: {
     *     // ... data to create a RentalAgreement
     *   }
     * })
     * 
     */
    create<T extends RentalAgreementCreateArgs>(args: SelectSubset<T, RentalAgreementCreateArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RentalAgreements.
     * @param {RentalAgreementCreateManyArgs} args - Arguments to create many RentalAgreements.
     * @example
     * // Create many RentalAgreements
     * const rentalAgreement = await prisma.rentalAgreement.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RentalAgreementCreateManyArgs>(args?: SelectSubset<T, RentalAgreementCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RentalAgreements and returns the data saved in the database.
     * @param {RentalAgreementCreateManyAndReturnArgs} args - Arguments to create many RentalAgreements.
     * @example
     * // Create many RentalAgreements
     * const rentalAgreement = await prisma.rentalAgreement.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RentalAgreements and only return the `id`
     * const rentalAgreementWithIdOnly = await prisma.rentalAgreement.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 RentalAgreementCreateManyAndReturnArgs>(args?: SelectSubset<T, RentalAgreementCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RentalAgreement.
     * @param {RentalAgreementDeleteArgs} args - Arguments to delete one RentalAgreement.
     * @example
     * // Delete one RentalAgreement
     * const RentalAgreement = await prisma.rentalAgreement.delete({
     *   where: {
     *     // ... filter to delete one RentalAgreement
     *   }
     * })
     * 
     */
    delete<T extends RentalAgreementDeleteArgs>(args: SelectSubset<T, RentalAgreementDeleteArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RentalAgreement.
     * @param {RentalAgreementUpdateArgs} args - Arguments to update one RentalAgreement.
     * @example
     * // Update one RentalAgreement
     * const rentalAgreement = await prisma.rentalAgreement.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RentalAgreementUpdateArgs>(args: SelectSubset<T, RentalAgreementUpdateArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RentalAgreements.
     * @param {RentalAgreementDeleteManyArgs} args - Arguments to filter RentalAgreements to delete.
     * @example
     * // Delete a few RentalAgreements
     * const { count } = await prisma.rentalAgreement.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RentalAgreementDeleteManyArgs>(args?: SelectSubset<T, RentalAgreementDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RentalAgreements.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RentalAgreementUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RentalAgreements
     * const rentalAgreement = await prisma.rentalAgreement.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RentalAgreementUpdateManyArgs>(args: SelectSubset<T, RentalAgreementUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RentalAgreements and returns the data updated in the database.
     * @param {RentalAgreementUpdateManyAndReturnArgs} args - Arguments to update many RentalAgreements.
     * @example
     * // Update many RentalAgreements
     * const rentalAgreement = await prisma.rentalAgreement.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RentalAgreements and only return the `id`
     * const rentalAgreementWithIdOnly = await prisma.rentalAgreement.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 RentalAgreementUpdateManyAndReturnArgs>(args: SelectSubset<T, RentalAgreementUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RentalAgreement.
     * @param {RentalAgreementUpsertArgs} args - Arguments to update or create a RentalAgreement.
     * @example
     * // Update or create a RentalAgreement
     * const rentalAgreement = await prisma.rentalAgreement.upsert({
     *   create: {
     *     // ... data to create a RentalAgreement
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RentalAgreement we want to update
     *   }
     * })
     */
    upsert<T extends RentalAgreementUpsertArgs>(args: SelectSubset<T, RentalAgreementUpsertArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RentalAgreements.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RentalAgreementCountArgs} args - Arguments to filter RentalAgreements to count.
     * @example
     * // Count the number of RentalAgreements
     * const count = await prisma.rentalAgreement.count({
     *   where: {
     *     // ... the filter for the RentalAgreements we want to count
     *   }
     * })
    **/
    count<T extends RentalAgreementCountArgs>(
      args?: Subset<T, RentalAgreementCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RentalAgreementCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RentalAgreement.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RentalAgreementAggregateArgs} 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 RentalAgreementAggregateArgs>(args: Subset<T, RentalAgreementAggregateArgs>): Prisma.PrismaPromise<GetRentalAgreementAggregateType<T>>

    /**
     * Group by RentalAgreement.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RentalAgreementGroupByArgs} 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 RentalAgreementGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RentalAgreementGroupByArgs['orderBy'] }
        : { orderBy?: RentalAgreementGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RentalAgreementGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRentalAgreementGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RentalAgreement model
   */
  readonly fields: RentalAgreementFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RentalAgreement.
   * 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__RentalAgreementClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    schedules<T extends RentalAgreement$schedulesArgs<ExtArgs> = {}>(args?: Subset<T, RentalAgreement$schedulesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RentalAgreement model
   */
  interface RentalAgreementFieldRefs {
    readonly id: FieldRef<"RentalAgreement", 'String'>
    readonly robotUnitId: FieldRef<"RentalAgreement", 'String'>
    readonly customerId: FieldRef<"RentalAgreement", 'String'>
    readonly startAt: FieldRef<"RentalAgreement", 'DateTime'>
    readonly endAt: FieldRef<"RentalAgreement", 'DateTime'>
    readonly periodMonths: FieldRef<"RentalAgreement", 'Int'>
    readonly monthlyRate: FieldRef<"RentalAgreement", 'Decimal'>
    readonly currencyCode: FieldRef<"RentalAgreement", 'String'>
    readonly status: FieldRef<"RentalAgreement", 'RentalAgreementStatus'>
    readonly contractAttachmentId: FieldRef<"RentalAgreement", 'String'>
    readonly version: FieldRef<"RentalAgreement", 'Int'>
    readonly organizationId: FieldRef<"RentalAgreement", 'String'>
    readonly createdAt: FieldRef<"RentalAgreement", 'DateTime'>
    readonly updatedAt: FieldRef<"RentalAgreement", 'DateTime'>
    readonly createdById: FieldRef<"RentalAgreement", 'String'>
    readonly deletedAt: FieldRef<"RentalAgreement", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RentalAgreement findUnique
   */
  export type RentalAgreementFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * Filter, which RentalAgreement to fetch.
     */
    where: RentalAgreementWhereUniqueInput
  }

  /**
   * RentalAgreement findUniqueOrThrow
   */
  export type RentalAgreementFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * Filter, which RentalAgreement to fetch.
     */
    where: RentalAgreementWhereUniqueInput
  }

  /**
   * RentalAgreement findFirst
   */
  export type RentalAgreementFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * Filter, which RentalAgreement to fetch.
     */
    where?: RentalAgreementWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RentalAgreements to fetch.
     */
    orderBy?: RentalAgreementOrderByWithRelationInput | RentalAgreementOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RentalAgreements.
     */
    cursor?: RentalAgreementWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RentalAgreements 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` RentalAgreements.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RentalAgreements.
     */
    distinct?: RentalAgreementScalarFieldEnum | RentalAgreementScalarFieldEnum[]
  }

  /**
   * RentalAgreement findFirstOrThrow
   */
  export type RentalAgreementFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * Filter, which RentalAgreement to fetch.
     */
    where?: RentalAgreementWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RentalAgreements to fetch.
     */
    orderBy?: RentalAgreementOrderByWithRelationInput | RentalAgreementOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RentalAgreements.
     */
    cursor?: RentalAgreementWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RentalAgreements 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` RentalAgreements.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RentalAgreements.
     */
    distinct?: RentalAgreementScalarFieldEnum | RentalAgreementScalarFieldEnum[]
  }

  /**
   * RentalAgreement findMany
   */
  export type RentalAgreementFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * Filter, which RentalAgreements to fetch.
     */
    where?: RentalAgreementWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RentalAgreements to fetch.
     */
    orderBy?: RentalAgreementOrderByWithRelationInput | RentalAgreementOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RentalAgreements.
     */
    cursor?: RentalAgreementWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RentalAgreements 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` RentalAgreements.
     */
    skip?: number
    distinct?: RentalAgreementScalarFieldEnum | RentalAgreementScalarFieldEnum[]
  }

  /**
   * RentalAgreement create
   */
  export type RentalAgreementCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * The data needed to create a RentalAgreement.
     */
    data: XOR<RentalAgreementCreateInput, RentalAgreementUncheckedCreateInput>
  }

  /**
   * RentalAgreement createMany
   */
  export type RentalAgreementCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RentalAgreements.
     */
    data: RentalAgreementCreateManyInput | RentalAgreementCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RentalAgreement createManyAndReturn
   */
  export type RentalAgreementCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * The data used to create many RentalAgreements.
     */
    data: RentalAgreementCreateManyInput | RentalAgreementCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RentalAgreement update
   */
  export type RentalAgreementUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * The data needed to update a RentalAgreement.
     */
    data: XOR<RentalAgreementUpdateInput, RentalAgreementUncheckedUpdateInput>
    /**
     * Choose, which RentalAgreement to update.
     */
    where: RentalAgreementWhereUniqueInput
  }

  /**
   * RentalAgreement updateMany
   */
  export type RentalAgreementUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RentalAgreements.
     */
    data: XOR<RentalAgreementUpdateManyMutationInput, RentalAgreementUncheckedUpdateManyInput>
    /**
     * Filter which RentalAgreements to update
     */
    where?: RentalAgreementWhereInput
    /**
     * Limit how many RentalAgreements to update.
     */
    limit?: number
  }

  /**
   * RentalAgreement updateManyAndReturn
   */
  export type RentalAgreementUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * The data used to update RentalAgreements.
     */
    data: XOR<RentalAgreementUpdateManyMutationInput, RentalAgreementUncheckedUpdateManyInput>
    /**
     * Filter which RentalAgreements to update
     */
    where?: RentalAgreementWhereInput
    /**
     * Limit how many RentalAgreements to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RentalAgreement upsert
   */
  export type RentalAgreementUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * The filter to search for the RentalAgreement to update in case it exists.
     */
    where: RentalAgreementWhereUniqueInput
    /**
     * In case the RentalAgreement found by the `where` argument doesn't exist, create a new RentalAgreement with this data.
     */
    create: XOR<RentalAgreementCreateInput, RentalAgreementUncheckedCreateInput>
    /**
     * In case the RentalAgreement was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RentalAgreementUpdateInput, RentalAgreementUncheckedUpdateInput>
  }

  /**
   * RentalAgreement delete
   */
  export type RentalAgreementDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
    /**
     * Filter which RentalAgreement to delete.
     */
    where: RentalAgreementWhereUniqueInput
  }

  /**
   * RentalAgreement deleteMany
   */
  export type RentalAgreementDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RentalAgreements to delete
     */
    where?: RentalAgreementWhereInput
    /**
     * Limit how many RentalAgreements to delete.
     */
    limit?: number
  }

  /**
   * RentalAgreement.schedules
   */
  export type RentalAgreement$schedulesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    where?: RentalPaymentScheduleWhereInput
    orderBy?: RentalPaymentScheduleOrderByWithRelationInput | RentalPaymentScheduleOrderByWithRelationInput[]
    cursor?: RentalPaymentScheduleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: RentalPaymentScheduleScalarFieldEnum | RentalPaymentScheduleScalarFieldEnum[]
  }

  /**
   * RentalAgreement without action
   */
  export type RentalAgreementDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalAgreement
     */
    select?: RentalAgreementSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalAgreement
     */
    omit?: RentalAgreementOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalAgreementInclude<ExtArgs> | null
  }


  /**
   * Model RentalPaymentSchedule
   */

  export type AggregateRentalPaymentSchedule = {
    _count: RentalPaymentScheduleCountAggregateOutputType | null
    _avg: RentalPaymentScheduleAvgAggregateOutputType | null
    _sum: RentalPaymentScheduleSumAggregateOutputType | null
    _min: RentalPaymentScheduleMinAggregateOutputType | null
    _max: RentalPaymentScheduleMaxAggregateOutputType | null
  }

  export type RentalPaymentScheduleAvgAggregateOutputType = {
    amount: Decimal | null
  }

  export type RentalPaymentScheduleSumAggregateOutputType = {
    amount: Decimal | null
  }

  export type RentalPaymentScheduleMinAggregateOutputType = {
    id: string | null
    rentalAgreementId: string | null
    dueDate: Date | null
    amount: Decimal | null
    currencyCode: string | null
    paidPaymentRecordId: string | null
    paidAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type RentalPaymentScheduleMaxAggregateOutputType = {
    id: string | null
    rentalAgreementId: string | null
    dueDate: Date | null
    amount: Decimal | null
    currencyCode: string | null
    paidPaymentRecordId: string | null
    paidAt: Date | null
    createdAt: Date | null
    updatedAt: Date | null
  }

  export type RentalPaymentScheduleCountAggregateOutputType = {
    id: number
    rentalAgreementId: number
    dueDate: number
    amount: number
    currencyCode: number
    paidPaymentRecordId: number
    paidAt: number
    createdAt: number
    updatedAt: number
    _all: number
  }


  export type RentalPaymentScheduleAvgAggregateInputType = {
    amount?: true
  }

  export type RentalPaymentScheduleSumAggregateInputType = {
    amount?: true
  }

  export type RentalPaymentScheduleMinAggregateInputType = {
    id?: true
    rentalAgreementId?: true
    dueDate?: true
    amount?: true
    currencyCode?: true
    paidPaymentRecordId?: true
    paidAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type RentalPaymentScheduleMaxAggregateInputType = {
    id?: true
    rentalAgreementId?: true
    dueDate?: true
    amount?: true
    currencyCode?: true
    paidPaymentRecordId?: true
    paidAt?: true
    createdAt?: true
    updatedAt?: true
  }

  export type RentalPaymentScheduleCountAggregateInputType = {
    id?: true
    rentalAgreementId?: true
    dueDate?: true
    amount?: true
    currencyCode?: true
    paidPaymentRecordId?: true
    paidAt?: true
    createdAt?: true
    updatedAt?: true
    _all?: true
  }

  export type RentalPaymentScheduleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RentalPaymentSchedule to aggregate.
     */
    where?: RentalPaymentScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RentalPaymentSchedules to fetch.
     */
    orderBy?: RentalPaymentScheduleOrderByWithRelationInput | RentalPaymentScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RentalPaymentScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RentalPaymentSchedules 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` RentalPaymentSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RentalPaymentSchedules
    **/
    _count?: true | RentalPaymentScheduleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: RentalPaymentScheduleAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: RentalPaymentScheduleSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RentalPaymentScheduleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RentalPaymentScheduleMaxAggregateInputType
  }

  export type GetRentalPaymentScheduleAggregateType<T extends RentalPaymentScheduleAggregateArgs> = {
        [P in keyof T & keyof AggregateRentalPaymentSchedule]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRentalPaymentSchedule[P]>
      : GetScalarType<T[P], AggregateRentalPaymentSchedule[P]>
  }




  export type RentalPaymentScheduleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RentalPaymentScheduleWhereInput
    orderBy?: RentalPaymentScheduleOrderByWithAggregationInput | RentalPaymentScheduleOrderByWithAggregationInput[]
    by: RentalPaymentScheduleScalarFieldEnum[] | RentalPaymentScheduleScalarFieldEnum
    having?: RentalPaymentScheduleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RentalPaymentScheduleCountAggregateInputType | true
    _avg?: RentalPaymentScheduleAvgAggregateInputType
    _sum?: RentalPaymentScheduleSumAggregateInputType
    _min?: RentalPaymentScheduleMinAggregateInputType
    _max?: RentalPaymentScheduleMaxAggregateInputType
  }

  export type RentalPaymentScheduleGroupByOutputType = {
    id: string
    rentalAgreementId: string
    dueDate: Date
    amount: Decimal
    currencyCode: string
    paidPaymentRecordId: string | null
    paidAt: Date | null
    createdAt: Date
    updatedAt: Date
    _count: RentalPaymentScheduleCountAggregateOutputType | null
    _avg: RentalPaymentScheduleAvgAggregateOutputType | null
    _sum: RentalPaymentScheduleSumAggregateOutputType | null
    _min: RentalPaymentScheduleMinAggregateOutputType | null
    _max: RentalPaymentScheduleMaxAggregateOutputType | null
  }

  type GetRentalPaymentScheduleGroupByPayload<T extends RentalPaymentScheduleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RentalPaymentScheduleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RentalPaymentScheduleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RentalPaymentScheduleGroupByOutputType[P]>
            : GetScalarType<T[P], RentalPaymentScheduleGroupByOutputType[P]>
        }
      >
    >


  export type RentalPaymentScheduleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    rentalAgreementId?: boolean
    dueDate?: boolean
    amount?: boolean
    currencyCode?: boolean
    paidPaymentRecordId?: boolean
    paidAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    rentalAgreement?: boolean | RentalAgreementDefaultArgs<ExtArgs>
    paidPaymentRecord?: boolean | RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs>
  }, ExtArgs["result"]["rentalPaymentSchedule"]>

  export type RentalPaymentScheduleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    rentalAgreementId?: boolean
    dueDate?: boolean
    amount?: boolean
    currencyCode?: boolean
    paidPaymentRecordId?: boolean
    paidAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    rentalAgreement?: boolean | RentalAgreementDefaultArgs<ExtArgs>
    paidPaymentRecord?: boolean | RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs>
  }, ExtArgs["result"]["rentalPaymentSchedule"]>

  export type RentalPaymentScheduleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    rentalAgreementId?: boolean
    dueDate?: boolean
    amount?: boolean
    currencyCode?: boolean
    paidPaymentRecordId?: boolean
    paidAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    rentalAgreement?: boolean | RentalAgreementDefaultArgs<ExtArgs>
    paidPaymentRecord?: boolean | RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs>
  }, ExtArgs["result"]["rentalPaymentSchedule"]>

  export type RentalPaymentScheduleSelectScalar = {
    id?: boolean
    rentalAgreementId?: boolean
    dueDate?: boolean
    amount?: boolean
    currencyCode?: boolean
    paidPaymentRecordId?: boolean
    paidAt?: boolean
    createdAt?: boolean
    updatedAt?: boolean
  }

  export type RentalPaymentScheduleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "rentalAgreementId" | "dueDate" | "amount" | "currencyCode" | "paidPaymentRecordId" | "paidAt" | "createdAt" | "updatedAt", ExtArgs["result"]["rentalPaymentSchedule"]>
  export type RentalPaymentScheduleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    rentalAgreement?: boolean | RentalAgreementDefaultArgs<ExtArgs>
    paidPaymentRecord?: boolean | RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs>
  }
  export type RentalPaymentScheduleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    rentalAgreement?: boolean | RentalAgreementDefaultArgs<ExtArgs>
    paidPaymentRecord?: boolean | RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs>
  }
  export type RentalPaymentScheduleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    rentalAgreement?: boolean | RentalAgreementDefaultArgs<ExtArgs>
    paidPaymentRecord?: boolean | RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs>
  }

  export type $RentalPaymentSchedulePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RentalPaymentSchedule"
    objects: {
      rentalAgreement: Prisma.$RentalAgreementPayload<ExtArgs>
      paidPaymentRecord: Prisma.$PaymentRecordPayload<ExtArgs> | null
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      rentalAgreementId: string
      dueDate: Date
      amount: Prisma.Decimal
      currencyCode: string
      paidPaymentRecordId: string | null
      paidAt: Date | null
      createdAt: Date
      updatedAt: Date
    }, ExtArgs["result"]["rentalPaymentSchedule"]>
    composites: {}
  }

  type RentalPaymentScheduleGetPayload<S extends boolean | null | undefined | RentalPaymentScheduleDefaultArgs> = $Result.GetResult<Prisma.$RentalPaymentSchedulePayload, S>

  type RentalPaymentScheduleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RentalPaymentScheduleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RentalPaymentScheduleCountAggregateInputType | true
    }

  export interface RentalPaymentScheduleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RentalPaymentSchedule'], meta: { name: 'RentalPaymentSchedule' } }
    /**
     * Find zero or one RentalPaymentSchedule that matches the filter.
     * @param {RentalPaymentScheduleFindUniqueArgs} args - Arguments to find a RentalPaymentSchedule
     * @example
     * // Get one RentalPaymentSchedule
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RentalPaymentScheduleFindUniqueArgs>(args: SelectSubset<T, RentalPaymentScheduleFindUniqueArgs<ExtArgs>>): Prisma__RentalPaymentScheduleClient<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RentalPaymentSchedule that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RentalPaymentScheduleFindUniqueOrThrowArgs} args - Arguments to find a RentalPaymentSchedule
     * @example
     * // Get one RentalPaymentSchedule
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RentalPaymentScheduleFindUniqueOrThrowArgs>(args: SelectSubset<T, RentalPaymentScheduleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RentalPaymentScheduleClient<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RentalPaymentSchedule 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 {RentalPaymentScheduleFindFirstArgs} args - Arguments to find a RentalPaymentSchedule
     * @example
     * // Get one RentalPaymentSchedule
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RentalPaymentScheduleFindFirstArgs>(args?: SelectSubset<T, RentalPaymentScheduleFindFirstArgs<ExtArgs>>): Prisma__RentalPaymentScheduleClient<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RentalPaymentSchedule 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 {RentalPaymentScheduleFindFirstOrThrowArgs} args - Arguments to find a RentalPaymentSchedule
     * @example
     * // Get one RentalPaymentSchedule
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RentalPaymentScheduleFindFirstOrThrowArgs>(args?: SelectSubset<T, RentalPaymentScheduleFindFirstOrThrowArgs<ExtArgs>>): Prisma__RentalPaymentScheduleClient<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RentalPaymentSchedules 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 {RentalPaymentScheduleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RentalPaymentSchedules
     * const rentalPaymentSchedules = await prisma.rentalPaymentSchedule.findMany()
     * 
     * // Get first 10 RentalPaymentSchedules
     * const rentalPaymentSchedules = await prisma.rentalPaymentSchedule.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const rentalPaymentScheduleWithIdOnly = await prisma.rentalPaymentSchedule.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RentalPaymentScheduleFindManyArgs>(args?: SelectSubset<T, RentalPaymentScheduleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RentalPaymentSchedule.
     * @param {RentalPaymentScheduleCreateArgs} args - Arguments to create a RentalPaymentSchedule.
     * @example
     * // Create one RentalPaymentSchedule
     * const RentalPaymentSchedule = await prisma.rentalPaymentSchedule.create({
     *   data: {
     *     // ... data to create a RentalPaymentSchedule
     *   }
     * })
     * 
     */
    create<T extends RentalPaymentScheduleCreateArgs>(args: SelectSubset<T, RentalPaymentScheduleCreateArgs<ExtArgs>>): Prisma__RentalPaymentScheduleClient<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RentalPaymentSchedules.
     * @param {RentalPaymentScheduleCreateManyArgs} args - Arguments to create many RentalPaymentSchedules.
     * @example
     * // Create many RentalPaymentSchedules
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RentalPaymentScheduleCreateManyArgs>(args?: SelectSubset<T, RentalPaymentScheduleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RentalPaymentSchedules and returns the data saved in the database.
     * @param {RentalPaymentScheduleCreateManyAndReturnArgs} args - Arguments to create many RentalPaymentSchedules.
     * @example
     * // Create many RentalPaymentSchedules
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RentalPaymentSchedules and only return the `id`
     * const rentalPaymentScheduleWithIdOnly = await prisma.rentalPaymentSchedule.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 RentalPaymentScheduleCreateManyAndReturnArgs>(args?: SelectSubset<T, RentalPaymentScheduleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RentalPaymentSchedule.
     * @param {RentalPaymentScheduleDeleteArgs} args - Arguments to delete one RentalPaymentSchedule.
     * @example
     * // Delete one RentalPaymentSchedule
     * const RentalPaymentSchedule = await prisma.rentalPaymentSchedule.delete({
     *   where: {
     *     // ... filter to delete one RentalPaymentSchedule
     *   }
     * })
     * 
     */
    delete<T extends RentalPaymentScheduleDeleteArgs>(args: SelectSubset<T, RentalPaymentScheduleDeleteArgs<ExtArgs>>): Prisma__RentalPaymentScheduleClient<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RentalPaymentSchedule.
     * @param {RentalPaymentScheduleUpdateArgs} args - Arguments to update one RentalPaymentSchedule.
     * @example
     * // Update one RentalPaymentSchedule
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RentalPaymentScheduleUpdateArgs>(args: SelectSubset<T, RentalPaymentScheduleUpdateArgs<ExtArgs>>): Prisma__RentalPaymentScheduleClient<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RentalPaymentSchedules.
     * @param {RentalPaymentScheduleDeleteManyArgs} args - Arguments to filter RentalPaymentSchedules to delete.
     * @example
     * // Delete a few RentalPaymentSchedules
     * const { count } = await prisma.rentalPaymentSchedule.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RentalPaymentScheduleDeleteManyArgs>(args?: SelectSubset<T, RentalPaymentScheduleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RentalPaymentSchedules.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RentalPaymentScheduleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RentalPaymentSchedules
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RentalPaymentScheduleUpdateManyArgs>(args: SelectSubset<T, RentalPaymentScheduleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RentalPaymentSchedules and returns the data updated in the database.
     * @param {RentalPaymentScheduleUpdateManyAndReturnArgs} args - Arguments to update many RentalPaymentSchedules.
     * @example
     * // Update many RentalPaymentSchedules
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RentalPaymentSchedules and only return the `id`
     * const rentalPaymentScheduleWithIdOnly = await prisma.rentalPaymentSchedule.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 RentalPaymentScheduleUpdateManyAndReturnArgs>(args: SelectSubset<T, RentalPaymentScheduleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RentalPaymentSchedule.
     * @param {RentalPaymentScheduleUpsertArgs} args - Arguments to update or create a RentalPaymentSchedule.
     * @example
     * // Update or create a RentalPaymentSchedule
     * const rentalPaymentSchedule = await prisma.rentalPaymentSchedule.upsert({
     *   create: {
     *     // ... data to create a RentalPaymentSchedule
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RentalPaymentSchedule we want to update
     *   }
     * })
     */
    upsert<T extends RentalPaymentScheduleUpsertArgs>(args: SelectSubset<T, RentalPaymentScheduleUpsertArgs<ExtArgs>>): Prisma__RentalPaymentScheduleClient<$Result.GetResult<Prisma.$RentalPaymentSchedulePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RentalPaymentSchedules.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RentalPaymentScheduleCountArgs} args - Arguments to filter RentalPaymentSchedules to count.
     * @example
     * // Count the number of RentalPaymentSchedules
     * const count = await prisma.rentalPaymentSchedule.count({
     *   where: {
     *     // ... the filter for the RentalPaymentSchedules we want to count
     *   }
     * })
    **/
    count<T extends RentalPaymentScheduleCountArgs>(
      args?: Subset<T, RentalPaymentScheduleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RentalPaymentScheduleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RentalPaymentSchedule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RentalPaymentScheduleAggregateArgs} 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 RentalPaymentScheduleAggregateArgs>(args: Subset<T, RentalPaymentScheduleAggregateArgs>): Prisma.PrismaPromise<GetRentalPaymentScheduleAggregateType<T>>

    /**
     * Group by RentalPaymentSchedule.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RentalPaymentScheduleGroupByArgs} 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 RentalPaymentScheduleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RentalPaymentScheduleGroupByArgs['orderBy'] }
        : { orderBy?: RentalPaymentScheduleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RentalPaymentScheduleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRentalPaymentScheduleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RentalPaymentSchedule model
   */
  readonly fields: RentalPaymentScheduleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RentalPaymentSchedule.
   * 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__RentalPaymentScheduleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    rentalAgreement<T extends RentalAgreementDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RentalAgreementDefaultArgs<ExtArgs>>): Prisma__RentalAgreementClient<$Result.GetResult<Prisma.$RentalAgreementPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    paidPaymentRecord<T extends RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs> = {}>(args?: Subset<T, RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs>>): Prisma__PaymentRecordClient<$Result.GetResult<Prisma.$PaymentRecordPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RentalPaymentSchedule model
   */
  interface RentalPaymentScheduleFieldRefs {
    readonly id: FieldRef<"RentalPaymentSchedule", 'String'>
    readonly rentalAgreementId: FieldRef<"RentalPaymentSchedule", 'String'>
    readonly dueDate: FieldRef<"RentalPaymentSchedule", 'DateTime'>
    readonly amount: FieldRef<"RentalPaymentSchedule", 'Decimal'>
    readonly currencyCode: FieldRef<"RentalPaymentSchedule", 'String'>
    readonly paidPaymentRecordId: FieldRef<"RentalPaymentSchedule", 'String'>
    readonly paidAt: FieldRef<"RentalPaymentSchedule", 'DateTime'>
    readonly createdAt: FieldRef<"RentalPaymentSchedule", 'DateTime'>
    readonly updatedAt: FieldRef<"RentalPaymentSchedule", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RentalPaymentSchedule findUnique
   */
  export type RentalPaymentScheduleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * Filter, which RentalPaymentSchedule to fetch.
     */
    where: RentalPaymentScheduleWhereUniqueInput
  }

  /**
   * RentalPaymentSchedule findUniqueOrThrow
   */
  export type RentalPaymentScheduleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * Filter, which RentalPaymentSchedule to fetch.
     */
    where: RentalPaymentScheduleWhereUniqueInput
  }

  /**
   * RentalPaymentSchedule findFirst
   */
  export type RentalPaymentScheduleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * Filter, which RentalPaymentSchedule to fetch.
     */
    where?: RentalPaymentScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RentalPaymentSchedules to fetch.
     */
    orderBy?: RentalPaymentScheduleOrderByWithRelationInput | RentalPaymentScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RentalPaymentSchedules.
     */
    cursor?: RentalPaymentScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RentalPaymentSchedules 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` RentalPaymentSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RentalPaymentSchedules.
     */
    distinct?: RentalPaymentScheduleScalarFieldEnum | RentalPaymentScheduleScalarFieldEnum[]
  }

  /**
   * RentalPaymentSchedule findFirstOrThrow
   */
  export type RentalPaymentScheduleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * Filter, which RentalPaymentSchedule to fetch.
     */
    where?: RentalPaymentScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RentalPaymentSchedules to fetch.
     */
    orderBy?: RentalPaymentScheduleOrderByWithRelationInput | RentalPaymentScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RentalPaymentSchedules.
     */
    cursor?: RentalPaymentScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RentalPaymentSchedules 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` RentalPaymentSchedules.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RentalPaymentSchedules.
     */
    distinct?: RentalPaymentScheduleScalarFieldEnum | RentalPaymentScheduleScalarFieldEnum[]
  }

  /**
   * RentalPaymentSchedule findMany
   */
  export type RentalPaymentScheduleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * Filter, which RentalPaymentSchedules to fetch.
     */
    where?: RentalPaymentScheduleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RentalPaymentSchedules to fetch.
     */
    orderBy?: RentalPaymentScheduleOrderByWithRelationInput | RentalPaymentScheduleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RentalPaymentSchedules.
     */
    cursor?: RentalPaymentScheduleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RentalPaymentSchedules 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` RentalPaymentSchedules.
     */
    skip?: number
    distinct?: RentalPaymentScheduleScalarFieldEnum | RentalPaymentScheduleScalarFieldEnum[]
  }

  /**
   * RentalPaymentSchedule create
   */
  export type RentalPaymentScheduleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * The data needed to create a RentalPaymentSchedule.
     */
    data: XOR<RentalPaymentScheduleCreateInput, RentalPaymentScheduleUncheckedCreateInput>
  }

  /**
   * RentalPaymentSchedule createMany
   */
  export type RentalPaymentScheduleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RentalPaymentSchedules.
     */
    data: RentalPaymentScheduleCreateManyInput | RentalPaymentScheduleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RentalPaymentSchedule createManyAndReturn
   */
  export type RentalPaymentScheduleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * The data used to create many RentalPaymentSchedules.
     */
    data: RentalPaymentScheduleCreateManyInput | RentalPaymentScheduleCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RentalPaymentSchedule update
   */
  export type RentalPaymentScheduleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * The data needed to update a RentalPaymentSchedule.
     */
    data: XOR<RentalPaymentScheduleUpdateInput, RentalPaymentScheduleUncheckedUpdateInput>
    /**
     * Choose, which RentalPaymentSchedule to update.
     */
    where: RentalPaymentScheduleWhereUniqueInput
  }

  /**
   * RentalPaymentSchedule updateMany
   */
  export type RentalPaymentScheduleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RentalPaymentSchedules.
     */
    data: XOR<RentalPaymentScheduleUpdateManyMutationInput, RentalPaymentScheduleUncheckedUpdateManyInput>
    /**
     * Filter which RentalPaymentSchedules to update
     */
    where?: RentalPaymentScheduleWhereInput
    /**
     * Limit how many RentalPaymentSchedules to update.
     */
    limit?: number
  }

  /**
   * RentalPaymentSchedule updateManyAndReturn
   */
  export type RentalPaymentScheduleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * The data used to update RentalPaymentSchedules.
     */
    data: XOR<RentalPaymentScheduleUpdateManyMutationInput, RentalPaymentScheduleUncheckedUpdateManyInput>
    /**
     * Filter which RentalPaymentSchedules to update
     */
    where?: RentalPaymentScheduleWhereInput
    /**
     * Limit how many RentalPaymentSchedules to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RentalPaymentSchedule upsert
   */
  export type RentalPaymentScheduleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * The filter to search for the RentalPaymentSchedule to update in case it exists.
     */
    where: RentalPaymentScheduleWhereUniqueInput
    /**
     * In case the RentalPaymentSchedule found by the `where` argument doesn't exist, create a new RentalPaymentSchedule with this data.
     */
    create: XOR<RentalPaymentScheduleCreateInput, RentalPaymentScheduleUncheckedCreateInput>
    /**
     * In case the RentalPaymentSchedule was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RentalPaymentScheduleUpdateInput, RentalPaymentScheduleUncheckedUpdateInput>
  }

  /**
   * RentalPaymentSchedule delete
   */
  export type RentalPaymentScheduleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
    /**
     * Filter which RentalPaymentSchedule to delete.
     */
    where: RentalPaymentScheduleWhereUniqueInput
  }

  /**
   * RentalPaymentSchedule deleteMany
   */
  export type RentalPaymentScheduleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RentalPaymentSchedules to delete
     */
    where?: RentalPaymentScheduleWhereInput
    /**
     * Limit how many RentalPaymentSchedules to delete.
     */
    limit?: number
  }

  /**
   * RentalPaymentSchedule.paidPaymentRecord
   */
  export type RentalPaymentSchedule$paidPaymentRecordArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the PaymentRecord
     */
    select?: PaymentRecordSelect<ExtArgs> | null
    /**
     * Omit specific fields from the PaymentRecord
     */
    omit?: PaymentRecordOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: PaymentRecordInclude<ExtArgs> | null
    where?: PaymentRecordWhereInput
  }

  /**
   * RentalPaymentSchedule without action
   */
  export type RentalPaymentScheduleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RentalPaymentSchedule
     */
    select?: RentalPaymentScheduleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RentalPaymentSchedule
     */
    omit?: RentalPaymentScheduleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RentalPaymentScheduleInclude<ExtArgs> | null
  }


  /**
   * Model ServiceTicket
   */

  export type AggregateServiceTicket = {
    _count: ServiceTicketCountAggregateOutputType | null
    _min: ServiceTicketMinAggregateOutputType | null
    _max: ServiceTicketMaxAggregateOutputType | null
  }

  export type ServiceTicketMinAggregateOutputType = {
    id: string | null
    ticketNo: string | null
    robotUnitId: string | null
    customerId: string | null
    issueTypeCode: string | null
    severity: $Enums.TicketSeverity | null
    status: $Enums.ServiceTicketStatus | null
    serviceRecord: string | null
    customerFeedback: string | null
    openedAt: Date | null
    openedById: string | null
    closedAt: Date | null
    resolvedById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type ServiceTicketMaxAggregateOutputType = {
    id: string | null
    ticketNo: string | null
    robotUnitId: string | null
    customerId: string | null
    issueTypeCode: string | null
    severity: $Enums.TicketSeverity | null
    status: $Enums.ServiceTicketStatus | null
    serviceRecord: string | null
    customerFeedback: string | null
    openedAt: Date | null
    openedById: string | null
    closedAt: Date | null
    resolvedById: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type ServiceTicketCountAggregateOutputType = {
    id: number
    ticketNo: number
    robotUnitId: number
    customerId: number
    issueTypeCode: number
    severity: number
    status: number
    serviceRecord: number
    customerFeedback: number
    openedAt: number
    openedById: number
    closedAt: number
    resolvedById: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type ServiceTicketMinAggregateInputType = {
    id?: true
    ticketNo?: true
    robotUnitId?: true
    customerId?: true
    issueTypeCode?: true
    severity?: true
    status?: true
    serviceRecord?: true
    customerFeedback?: true
    openedAt?: true
    openedById?: true
    closedAt?: true
    resolvedById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type ServiceTicketMaxAggregateInputType = {
    id?: true
    ticketNo?: true
    robotUnitId?: true
    customerId?: true
    issueTypeCode?: true
    severity?: true
    status?: true
    serviceRecord?: true
    customerFeedback?: true
    openedAt?: true
    openedById?: true
    closedAt?: true
    resolvedById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type ServiceTicketCountAggregateInputType = {
    id?: true
    ticketNo?: true
    robotUnitId?: true
    customerId?: true
    issueTypeCode?: true
    severity?: true
    status?: true
    serviceRecord?: true
    customerFeedback?: true
    openedAt?: true
    openedById?: true
    closedAt?: true
    resolvedById?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type ServiceTicketAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ServiceTicket to aggregate.
     */
    where?: ServiceTicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ServiceTickets to fetch.
     */
    orderBy?: ServiceTicketOrderByWithRelationInput | ServiceTicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ServiceTicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ServiceTickets 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` ServiceTickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ServiceTickets
    **/
    _count?: true | ServiceTicketCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ServiceTicketMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ServiceTicketMaxAggregateInputType
  }

  export type GetServiceTicketAggregateType<T extends ServiceTicketAggregateArgs> = {
        [P in keyof T & keyof AggregateServiceTicket]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateServiceTicket[P]>
      : GetScalarType<T[P], AggregateServiceTicket[P]>
  }




  export type ServiceTicketGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ServiceTicketWhereInput
    orderBy?: ServiceTicketOrderByWithAggregationInput | ServiceTicketOrderByWithAggregationInput[]
    by: ServiceTicketScalarFieldEnum[] | ServiceTicketScalarFieldEnum
    having?: ServiceTicketScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ServiceTicketCountAggregateInputType | true
    _min?: ServiceTicketMinAggregateInputType
    _max?: ServiceTicketMaxAggregateInputType
  }

  export type ServiceTicketGroupByOutputType = {
    id: string
    ticketNo: string
    robotUnitId: string
    customerId: string | null
    issueTypeCode: string
    severity: $Enums.TicketSeverity
    status: $Enums.ServiceTicketStatus
    serviceRecord: string | null
    customerFeedback: string | null
    openedAt: Date
    openedById: string
    closedAt: Date | null
    resolvedById: string | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: ServiceTicketCountAggregateOutputType | null
    _min: ServiceTicketMinAggregateOutputType | null
    _max: ServiceTicketMaxAggregateOutputType | null
  }

  type GetServiceTicketGroupByPayload<T extends ServiceTicketGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ServiceTicketGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ServiceTicketGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ServiceTicketGroupByOutputType[P]>
            : GetScalarType<T[P], ServiceTicketGroupByOutputType[P]>
        }
      >
    >


  export type ServiceTicketSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketNo?: boolean
    robotUnitId?: boolean
    customerId?: boolean
    issueTypeCode?: boolean
    severity?: boolean
    status?: boolean
    serviceRecord?: boolean
    customerFeedback?: boolean
    openedAt?: boolean
    openedById?: boolean
    closedAt?: boolean
    resolvedById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    activities?: boolean | ServiceTicket$activitiesArgs<ExtArgs>
    _count?: boolean | ServiceTicketCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["serviceTicket"]>

  export type ServiceTicketSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketNo?: boolean
    robotUnitId?: boolean
    customerId?: boolean
    issueTypeCode?: boolean
    severity?: boolean
    status?: boolean
    serviceRecord?: boolean
    customerFeedback?: boolean
    openedAt?: boolean
    openedById?: boolean
    closedAt?: boolean
    resolvedById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["serviceTicket"]>

  export type ServiceTicketSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketNo?: boolean
    robotUnitId?: boolean
    customerId?: boolean
    issueTypeCode?: boolean
    severity?: boolean
    status?: boolean
    serviceRecord?: boolean
    customerFeedback?: boolean
    openedAt?: boolean
    openedById?: boolean
    closedAt?: boolean
    resolvedById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["serviceTicket"]>

  export type ServiceTicketSelectScalar = {
    id?: boolean
    ticketNo?: boolean
    robotUnitId?: boolean
    customerId?: boolean
    issueTypeCode?: boolean
    severity?: boolean
    status?: boolean
    serviceRecord?: boolean
    customerFeedback?: boolean
    openedAt?: boolean
    openedById?: boolean
    closedAt?: boolean
    resolvedById?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type ServiceTicketOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "ticketNo" | "robotUnitId" | "customerId" | "issueTypeCode" | "severity" | "status" | "serviceRecord" | "customerFeedback" | "openedAt" | "openedById" | "closedAt" | "resolvedById" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["serviceTicket"]>
  export type ServiceTicketInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
    activities?: boolean | ServiceTicket$activitiesArgs<ExtArgs>
    _count?: boolean | ServiceTicketCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ServiceTicketIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type ServiceTicketIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $ServiceTicketPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ServiceTicket"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
      activities: Prisma.$ServiceTicketActivityPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      ticketNo: string
      robotUnitId: string
      customerId: string | null
      issueTypeCode: string
      severity: $Enums.TicketSeverity
      status: $Enums.ServiceTicketStatus
      serviceRecord: string | null
      customerFeedback: string | null
      openedAt: Date
      openedById: string
      closedAt: Date | null
      resolvedById: string | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["serviceTicket"]>
    composites: {}
  }

  type ServiceTicketGetPayload<S extends boolean | null | undefined | ServiceTicketDefaultArgs> = $Result.GetResult<Prisma.$ServiceTicketPayload, S>

  type ServiceTicketCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ServiceTicketFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ServiceTicketCountAggregateInputType | true
    }

  export interface ServiceTicketDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ServiceTicket'], meta: { name: 'ServiceTicket' } }
    /**
     * Find zero or one ServiceTicket that matches the filter.
     * @param {ServiceTicketFindUniqueArgs} args - Arguments to find a ServiceTicket
     * @example
     * // Get one ServiceTicket
     * const serviceTicket = await prisma.serviceTicket.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ServiceTicketFindUniqueArgs>(args: SelectSubset<T, ServiceTicketFindUniqueArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ServiceTicket that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ServiceTicketFindUniqueOrThrowArgs} args - Arguments to find a ServiceTicket
     * @example
     * // Get one ServiceTicket
     * const serviceTicket = await prisma.serviceTicket.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ServiceTicketFindUniqueOrThrowArgs>(args: SelectSubset<T, ServiceTicketFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ServiceTicket 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 {ServiceTicketFindFirstArgs} args - Arguments to find a ServiceTicket
     * @example
     * // Get one ServiceTicket
     * const serviceTicket = await prisma.serviceTicket.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ServiceTicketFindFirstArgs>(args?: SelectSubset<T, ServiceTicketFindFirstArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ServiceTicket 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 {ServiceTicketFindFirstOrThrowArgs} args - Arguments to find a ServiceTicket
     * @example
     * // Get one ServiceTicket
     * const serviceTicket = await prisma.serviceTicket.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ServiceTicketFindFirstOrThrowArgs>(args?: SelectSubset<T, ServiceTicketFindFirstOrThrowArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ServiceTickets 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 {ServiceTicketFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ServiceTickets
     * const serviceTickets = await prisma.serviceTicket.findMany()
     * 
     * // Get first 10 ServiceTickets
     * const serviceTickets = await prisma.serviceTicket.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const serviceTicketWithIdOnly = await prisma.serviceTicket.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ServiceTicketFindManyArgs>(args?: SelectSubset<T, ServiceTicketFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ServiceTicket.
     * @param {ServiceTicketCreateArgs} args - Arguments to create a ServiceTicket.
     * @example
     * // Create one ServiceTicket
     * const ServiceTicket = await prisma.serviceTicket.create({
     *   data: {
     *     // ... data to create a ServiceTicket
     *   }
     * })
     * 
     */
    create<T extends ServiceTicketCreateArgs>(args: SelectSubset<T, ServiceTicketCreateArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ServiceTickets.
     * @param {ServiceTicketCreateManyArgs} args - Arguments to create many ServiceTickets.
     * @example
     * // Create many ServiceTickets
     * const serviceTicket = await prisma.serviceTicket.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ServiceTicketCreateManyArgs>(args?: SelectSubset<T, ServiceTicketCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ServiceTickets and returns the data saved in the database.
     * @param {ServiceTicketCreateManyAndReturnArgs} args - Arguments to create many ServiceTickets.
     * @example
     * // Create many ServiceTickets
     * const serviceTicket = await prisma.serviceTicket.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ServiceTickets and only return the `id`
     * const serviceTicketWithIdOnly = await prisma.serviceTicket.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 ServiceTicketCreateManyAndReturnArgs>(args?: SelectSubset<T, ServiceTicketCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ServiceTicket.
     * @param {ServiceTicketDeleteArgs} args - Arguments to delete one ServiceTicket.
     * @example
     * // Delete one ServiceTicket
     * const ServiceTicket = await prisma.serviceTicket.delete({
     *   where: {
     *     // ... filter to delete one ServiceTicket
     *   }
     * })
     * 
     */
    delete<T extends ServiceTicketDeleteArgs>(args: SelectSubset<T, ServiceTicketDeleteArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ServiceTicket.
     * @param {ServiceTicketUpdateArgs} args - Arguments to update one ServiceTicket.
     * @example
     * // Update one ServiceTicket
     * const serviceTicket = await prisma.serviceTicket.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ServiceTicketUpdateArgs>(args: SelectSubset<T, ServiceTicketUpdateArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ServiceTickets.
     * @param {ServiceTicketDeleteManyArgs} args - Arguments to filter ServiceTickets to delete.
     * @example
     * // Delete a few ServiceTickets
     * const { count } = await prisma.serviceTicket.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ServiceTicketDeleteManyArgs>(args?: SelectSubset<T, ServiceTicketDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ServiceTickets.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceTicketUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ServiceTickets
     * const serviceTicket = await prisma.serviceTicket.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ServiceTicketUpdateManyArgs>(args: SelectSubset<T, ServiceTicketUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ServiceTickets and returns the data updated in the database.
     * @param {ServiceTicketUpdateManyAndReturnArgs} args - Arguments to update many ServiceTickets.
     * @example
     * // Update many ServiceTickets
     * const serviceTicket = await prisma.serviceTicket.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ServiceTickets and only return the `id`
     * const serviceTicketWithIdOnly = await prisma.serviceTicket.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 ServiceTicketUpdateManyAndReturnArgs>(args: SelectSubset<T, ServiceTicketUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ServiceTicket.
     * @param {ServiceTicketUpsertArgs} args - Arguments to update or create a ServiceTicket.
     * @example
     * // Update or create a ServiceTicket
     * const serviceTicket = await prisma.serviceTicket.upsert({
     *   create: {
     *     // ... data to create a ServiceTicket
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ServiceTicket we want to update
     *   }
     * })
     */
    upsert<T extends ServiceTicketUpsertArgs>(args: SelectSubset<T, ServiceTicketUpsertArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ServiceTickets.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceTicketCountArgs} args - Arguments to filter ServiceTickets to count.
     * @example
     * // Count the number of ServiceTickets
     * const count = await prisma.serviceTicket.count({
     *   where: {
     *     // ... the filter for the ServiceTickets we want to count
     *   }
     * })
    **/
    count<T extends ServiceTicketCountArgs>(
      args?: Subset<T, ServiceTicketCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ServiceTicketCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ServiceTicket.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceTicketAggregateArgs} 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 ServiceTicketAggregateArgs>(args: Subset<T, ServiceTicketAggregateArgs>): Prisma.PrismaPromise<GetServiceTicketAggregateType<T>>

    /**
     * Group by ServiceTicket.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceTicketGroupByArgs} 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 ServiceTicketGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ServiceTicketGroupByArgs['orderBy'] }
        : { orderBy?: ServiceTicketGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ServiceTicketGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetServiceTicketGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ServiceTicket model
   */
  readonly fields: ServiceTicketFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ServiceTicket.
   * 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__ServiceTicketClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    activities<T extends ServiceTicket$activitiesArgs<ExtArgs> = {}>(args?: Subset<T, ServiceTicket$activitiesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ServiceTicket model
   */
  interface ServiceTicketFieldRefs {
    readonly id: FieldRef<"ServiceTicket", 'String'>
    readonly ticketNo: FieldRef<"ServiceTicket", 'String'>
    readonly robotUnitId: FieldRef<"ServiceTicket", 'String'>
    readonly customerId: FieldRef<"ServiceTicket", 'String'>
    readonly issueTypeCode: FieldRef<"ServiceTicket", 'String'>
    readonly severity: FieldRef<"ServiceTicket", 'TicketSeverity'>
    readonly status: FieldRef<"ServiceTicket", 'ServiceTicketStatus'>
    readonly serviceRecord: FieldRef<"ServiceTicket", 'String'>
    readonly customerFeedback: FieldRef<"ServiceTicket", 'String'>
    readonly openedAt: FieldRef<"ServiceTicket", 'DateTime'>
    readonly openedById: FieldRef<"ServiceTicket", 'String'>
    readonly closedAt: FieldRef<"ServiceTicket", 'DateTime'>
    readonly resolvedById: FieldRef<"ServiceTicket", 'String'>
    readonly organizationId: FieldRef<"ServiceTicket", 'String'>
    readonly createdAt: FieldRef<"ServiceTicket", 'DateTime'>
    readonly updatedAt: FieldRef<"ServiceTicket", 'DateTime'>
    readonly createdById: FieldRef<"ServiceTicket", 'String'>
    readonly deletedAt: FieldRef<"ServiceTicket", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ServiceTicket findUnique
   */
  export type ServiceTicketFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicket to fetch.
     */
    where: ServiceTicketWhereUniqueInput
  }

  /**
   * ServiceTicket findUniqueOrThrow
   */
  export type ServiceTicketFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicket to fetch.
     */
    where: ServiceTicketWhereUniqueInput
  }

  /**
   * ServiceTicket findFirst
   */
  export type ServiceTicketFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicket to fetch.
     */
    where?: ServiceTicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ServiceTickets to fetch.
     */
    orderBy?: ServiceTicketOrderByWithRelationInput | ServiceTicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ServiceTickets.
     */
    cursor?: ServiceTicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ServiceTickets 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` ServiceTickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ServiceTickets.
     */
    distinct?: ServiceTicketScalarFieldEnum | ServiceTicketScalarFieldEnum[]
  }

  /**
   * ServiceTicket findFirstOrThrow
   */
  export type ServiceTicketFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicket to fetch.
     */
    where?: ServiceTicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ServiceTickets to fetch.
     */
    orderBy?: ServiceTicketOrderByWithRelationInput | ServiceTicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ServiceTickets.
     */
    cursor?: ServiceTicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ServiceTickets 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` ServiceTickets.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ServiceTickets.
     */
    distinct?: ServiceTicketScalarFieldEnum | ServiceTicketScalarFieldEnum[]
  }

  /**
   * ServiceTicket findMany
   */
  export type ServiceTicketFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTickets to fetch.
     */
    where?: ServiceTicketWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ServiceTickets to fetch.
     */
    orderBy?: ServiceTicketOrderByWithRelationInput | ServiceTicketOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ServiceTickets.
     */
    cursor?: ServiceTicketWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ServiceTickets 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` ServiceTickets.
     */
    skip?: number
    distinct?: ServiceTicketScalarFieldEnum | ServiceTicketScalarFieldEnum[]
  }

  /**
   * ServiceTicket create
   */
  export type ServiceTicketCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * The data needed to create a ServiceTicket.
     */
    data: XOR<ServiceTicketCreateInput, ServiceTicketUncheckedCreateInput>
  }

  /**
   * ServiceTicket createMany
   */
  export type ServiceTicketCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ServiceTickets.
     */
    data: ServiceTicketCreateManyInput | ServiceTicketCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ServiceTicket createManyAndReturn
   */
  export type ServiceTicketCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * The data used to create many ServiceTickets.
     */
    data: ServiceTicketCreateManyInput | ServiceTicketCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ServiceTicket update
   */
  export type ServiceTicketUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * The data needed to update a ServiceTicket.
     */
    data: XOR<ServiceTicketUpdateInput, ServiceTicketUncheckedUpdateInput>
    /**
     * Choose, which ServiceTicket to update.
     */
    where: ServiceTicketWhereUniqueInput
  }

  /**
   * ServiceTicket updateMany
   */
  export type ServiceTicketUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ServiceTickets.
     */
    data: XOR<ServiceTicketUpdateManyMutationInput, ServiceTicketUncheckedUpdateManyInput>
    /**
     * Filter which ServiceTickets to update
     */
    where?: ServiceTicketWhereInput
    /**
     * Limit how many ServiceTickets to update.
     */
    limit?: number
  }

  /**
   * ServiceTicket updateManyAndReturn
   */
  export type ServiceTicketUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * The data used to update ServiceTickets.
     */
    data: XOR<ServiceTicketUpdateManyMutationInput, ServiceTicketUncheckedUpdateManyInput>
    /**
     * Filter which ServiceTickets to update
     */
    where?: ServiceTicketWhereInput
    /**
     * Limit how many ServiceTickets to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ServiceTicket upsert
   */
  export type ServiceTicketUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * The filter to search for the ServiceTicket to update in case it exists.
     */
    where: ServiceTicketWhereUniqueInput
    /**
     * In case the ServiceTicket found by the `where` argument doesn't exist, create a new ServiceTicket with this data.
     */
    create: XOR<ServiceTicketCreateInput, ServiceTicketUncheckedCreateInput>
    /**
     * In case the ServiceTicket was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ServiceTicketUpdateInput, ServiceTicketUncheckedUpdateInput>
  }

  /**
   * ServiceTicket delete
   */
  export type ServiceTicketDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
    /**
     * Filter which ServiceTicket to delete.
     */
    where: ServiceTicketWhereUniqueInput
  }

  /**
   * ServiceTicket deleteMany
   */
  export type ServiceTicketDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ServiceTickets to delete
     */
    where?: ServiceTicketWhereInput
    /**
     * Limit how many ServiceTickets to delete.
     */
    limit?: number
  }

  /**
   * ServiceTicket.activities
   */
  export type ServiceTicket$activitiesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    where?: ServiceTicketActivityWhereInput
    orderBy?: ServiceTicketActivityOrderByWithRelationInput | ServiceTicketActivityOrderByWithRelationInput[]
    cursor?: ServiceTicketActivityWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ServiceTicketActivityScalarFieldEnum | ServiceTicketActivityScalarFieldEnum[]
  }

  /**
   * ServiceTicket without action
   */
  export type ServiceTicketDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicket
     */
    select?: ServiceTicketSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicket
     */
    omit?: ServiceTicketOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketInclude<ExtArgs> | null
  }


  /**
   * Model ServiceTicketActivity
   */

  export type AggregateServiceTicketActivity = {
    _count: ServiceTicketActivityCountAggregateOutputType | null
    _min: ServiceTicketActivityMinAggregateOutputType | null
    _max: ServiceTicketActivityMaxAggregateOutputType | null
  }

  export type ServiceTicketActivityMinAggregateOutputType = {
    id: string | null
    ticketId: string | null
    activityType: $Enums.ServiceTicketActivityType | null
    createdById: string | null
    occurredAt: Date | null
    createdAt: Date | null
  }

  export type ServiceTicketActivityMaxAggregateOutputType = {
    id: string | null
    ticketId: string | null
    activityType: $Enums.ServiceTicketActivityType | null
    createdById: string | null
    occurredAt: Date | null
    createdAt: Date | null
  }

  export type ServiceTicketActivityCountAggregateOutputType = {
    id: number
    ticketId: number
    activityType: number
    payload: number
    createdById: number
    occurredAt: number
    createdAt: number
    _all: number
  }


  export type ServiceTicketActivityMinAggregateInputType = {
    id?: true
    ticketId?: true
    activityType?: true
    createdById?: true
    occurredAt?: true
    createdAt?: true
  }

  export type ServiceTicketActivityMaxAggregateInputType = {
    id?: true
    ticketId?: true
    activityType?: true
    createdById?: true
    occurredAt?: true
    createdAt?: true
  }

  export type ServiceTicketActivityCountAggregateInputType = {
    id?: true
    ticketId?: true
    activityType?: true
    payload?: true
    createdById?: true
    occurredAt?: true
    createdAt?: true
    _all?: true
  }

  export type ServiceTicketActivityAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ServiceTicketActivity to aggregate.
     */
    where?: ServiceTicketActivityWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ServiceTicketActivities to fetch.
     */
    orderBy?: ServiceTicketActivityOrderByWithRelationInput | ServiceTicketActivityOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ServiceTicketActivityWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ServiceTicketActivities 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` ServiceTicketActivities.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ServiceTicketActivities
    **/
    _count?: true | ServiceTicketActivityCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ServiceTicketActivityMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ServiceTicketActivityMaxAggregateInputType
  }

  export type GetServiceTicketActivityAggregateType<T extends ServiceTicketActivityAggregateArgs> = {
        [P in keyof T & keyof AggregateServiceTicketActivity]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateServiceTicketActivity[P]>
      : GetScalarType<T[P], AggregateServiceTicketActivity[P]>
  }




  export type ServiceTicketActivityGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ServiceTicketActivityWhereInput
    orderBy?: ServiceTicketActivityOrderByWithAggregationInput | ServiceTicketActivityOrderByWithAggregationInput[]
    by: ServiceTicketActivityScalarFieldEnum[] | ServiceTicketActivityScalarFieldEnum
    having?: ServiceTicketActivityScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ServiceTicketActivityCountAggregateInputType | true
    _min?: ServiceTicketActivityMinAggregateInputType
    _max?: ServiceTicketActivityMaxAggregateInputType
  }

  export type ServiceTicketActivityGroupByOutputType = {
    id: string
    ticketId: string
    activityType: $Enums.ServiceTicketActivityType
    payload: JsonValue
    createdById: string
    occurredAt: Date
    createdAt: Date
    _count: ServiceTicketActivityCountAggregateOutputType | null
    _min: ServiceTicketActivityMinAggregateOutputType | null
    _max: ServiceTicketActivityMaxAggregateOutputType | null
  }

  type GetServiceTicketActivityGroupByPayload<T extends ServiceTicketActivityGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ServiceTicketActivityGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ServiceTicketActivityGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ServiceTicketActivityGroupByOutputType[P]>
            : GetScalarType<T[P], ServiceTicketActivityGroupByOutputType[P]>
        }
      >
    >


  export type ServiceTicketActivitySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    activityType?: boolean
    payload?: boolean
    createdById?: boolean
    occurredAt?: boolean
    createdAt?: boolean
    ticket?: boolean | ServiceTicketDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["serviceTicketActivity"]>

  export type ServiceTicketActivitySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    activityType?: boolean
    payload?: boolean
    createdById?: boolean
    occurredAt?: boolean
    createdAt?: boolean
    ticket?: boolean | ServiceTicketDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["serviceTicketActivity"]>

  export type ServiceTicketActivitySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    ticketId?: boolean
    activityType?: boolean
    payload?: boolean
    createdById?: boolean
    occurredAt?: boolean
    createdAt?: boolean
    ticket?: boolean | ServiceTicketDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["serviceTicketActivity"]>

  export type ServiceTicketActivitySelectScalar = {
    id?: boolean
    ticketId?: boolean
    activityType?: boolean
    payload?: boolean
    createdById?: boolean
    occurredAt?: boolean
    createdAt?: boolean
  }

  export type ServiceTicketActivityOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "ticketId" | "activityType" | "payload" | "createdById" | "occurredAt" | "createdAt", ExtArgs["result"]["serviceTicketActivity"]>
  export type ServiceTicketActivityInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | ServiceTicketDefaultArgs<ExtArgs>
  }
  export type ServiceTicketActivityIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | ServiceTicketDefaultArgs<ExtArgs>
  }
  export type ServiceTicketActivityIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    ticket?: boolean | ServiceTicketDefaultArgs<ExtArgs>
  }

  export type $ServiceTicketActivityPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ServiceTicketActivity"
    objects: {
      ticket: Prisma.$ServiceTicketPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      ticketId: string
      activityType: $Enums.ServiceTicketActivityType
      payload: Prisma.JsonValue
      createdById: string
      occurredAt: Date
      createdAt: Date
    }, ExtArgs["result"]["serviceTicketActivity"]>
    composites: {}
  }

  type ServiceTicketActivityGetPayload<S extends boolean | null | undefined | ServiceTicketActivityDefaultArgs> = $Result.GetResult<Prisma.$ServiceTicketActivityPayload, S>

  type ServiceTicketActivityCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ServiceTicketActivityFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ServiceTicketActivityCountAggregateInputType | true
    }

  export interface ServiceTicketActivityDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ServiceTicketActivity'], meta: { name: 'ServiceTicketActivity' } }
    /**
     * Find zero or one ServiceTicketActivity that matches the filter.
     * @param {ServiceTicketActivityFindUniqueArgs} args - Arguments to find a ServiceTicketActivity
     * @example
     * // Get one ServiceTicketActivity
     * const serviceTicketActivity = await prisma.serviceTicketActivity.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ServiceTicketActivityFindUniqueArgs>(args: SelectSubset<T, ServiceTicketActivityFindUniqueArgs<ExtArgs>>): Prisma__ServiceTicketActivityClient<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ServiceTicketActivity that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ServiceTicketActivityFindUniqueOrThrowArgs} args - Arguments to find a ServiceTicketActivity
     * @example
     * // Get one ServiceTicketActivity
     * const serviceTicketActivity = await prisma.serviceTicketActivity.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ServiceTicketActivityFindUniqueOrThrowArgs>(args: SelectSubset<T, ServiceTicketActivityFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ServiceTicketActivityClient<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ServiceTicketActivity 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 {ServiceTicketActivityFindFirstArgs} args - Arguments to find a ServiceTicketActivity
     * @example
     * // Get one ServiceTicketActivity
     * const serviceTicketActivity = await prisma.serviceTicketActivity.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ServiceTicketActivityFindFirstArgs>(args?: SelectSubset<T, ServiceTicketActivityFindFirstArgs<ExtArgs>>): Prisma__ServiceTicketActivityClient<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ServiceTicketActivity 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 {ServiceTicketActivityFindFirstOrThrowArgs} args - Arguments to find a ServiceTicketActivity
     * @example
     * // Get one ServiceTicketActivity
     * const serviceTicketActivity = await prisma.serviceTicketActivity.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ServiceTicketActivityFindFirstOrThrowArgs>(args?: SelectSubset<T, ServiceTicketActivityFindFirstOrThrowArgs<ExtArgs>>): Prisma__ServiceTicketActivityClient<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ServiceTicketActivities 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 {ServiceTicketActivityFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ServiceTicketActivities
     * const serviceTicketActivities = await prisma.serviceTicketActivity.findMany()
     * 
     * // Get first 10 ServiceTicketActivities
     * const serviceTicketActivities = await prisma.serviceTicketActivity.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const serviceTicketActivityWithIdOnly = await prisma.serviceTicketActivity.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ServiceTicketActivityFindManyArgs>(args?: SelectSubset<T, ServiceTicketActivityFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ServiceTicketActivity.
     * @param {ServiceTicketActivityCreateArgs} args - Arguments to create a ServiceTicketActivity.
     * @example
     * // Create one ServiceTicketActivity
     * const ServiceTicketActivity = await prisma.serviceTicketActivity.create({
     *   data: {
     *     // ... data to create a ServiceTicketActivity
     *   }
     * })
     * 
     */
    create<T extends ServiceTicketActivityCreateArgs>(args: SelectSubset<T, ServiceTicketActivityCreateArgs<ExtArgs>>): Prisma__ServiceTicketActivityClient<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ServiceTicketActivities.
     * @param {ServiceTicketActivityCreateManyArgs} args - Arguments to create many ServiceTicketActivities.
     * @example
     * // Create many ServiceTicketActivities
     * const serviceTicketActivity = await prisma.serviceTicketActivity.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ServiceTicketActivityCreateManyArgs>(args?: SelectSubset<T, ServiceTicketActivityCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ServiceTicketActivities and returns the data saved in the database.
     * @param {ServiceTicketActivityCreateManyAndReturnArgs} args - Arguments to create many ServiceTicketActivities.
     * @example
     * // Create many ServiceTicketActivities
     * const serviceTicketActivity = await prisma.serviceTicketActivity.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ServiceTicketActivities and only return the `id`
     * const serviceTicketActivityWithIdOnly = await prisma.serviceTicketActivity.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 ServiceTicketActivityCreateManyAndReturnArgs>(args?: SelectSubset<T, ServiceTicketActivityCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ServiceTicketActivity.
     * @param {ServiceTicketActivityDeleteArgs} args - Arguments to delete one ServiceTicketActivity.
     * @example
     * // Delete one ServiceTicketActivity
     * const ServiceTicketActivity = await prisma.serviceTicketActivity.delete({
     *   where: {
     *     // ... filter to delete one ServiceTicketActivity
     *   }
     * })
     * 
     */
    delete<T extends ServiceTicketActivityDeleteArgs>(args: SelectSubset<T, ServiceTicketActivityDeleteArgs<ExtArgs>>): Prisma__ServiceTicketActivityClient<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ServiceTicketActivity.
     * @param {ServiceTicketActivityUpdateArgs} args - Arguments to update one ServiceTicketActivity.
     * @example
     * // Update one ServiceTicketActivity
     * const serviceTicketActivity = await prisma.serviceTicketActivity.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ServiceTicketActivityUpdateArgs>(args: SelectSubset<T, ServiceTicketActivityUpdateArgs<ExtArgs>>): Prisma__ServiceTicketActivityClient<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ServiceTicketActivities.
     * @param {ServiceTicketActivityDeleteManyArgs} args - Arguments to filter ServiceTicketActivities to delete.
     * @example
     * // Delete a few ServiceTicketActivities
     * const { count } = await prisma.serviceTicketActivity.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ServiceTicketActivityDeleteManyArgs>(args?: SelectSubset<T, ServiceTicketActivityDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ServiceTicketActivities.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceTicketActivityUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ServiceTicketActivities
     * const serviceTicketActivity = await prisma.serviceTicketActivity.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ServiceTicketActivityUpdateManyArgs>(args: SelectSubset<T, ServiceTicketActivityUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ServiceTicketActivities and returns the data updated in the database.
     * @param {ServiceTicketActivityUpdateManyAndReturnArgs} args - Arguments to update many ServiceTicketActivities.
     * @example
     * // Update many ServiceTicketActivities
     * const serviceTicketActivity = await prisma.serviceTicketActivity.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ServiceTicketActivities and only return the `id`
     * const serviceTicketActivityWithIdOnly = await prisma.serviceTicketActivity.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 ServiceTicketActivityUpdateManyAndReturnArgs>(args: SelectSubset<T, ServiceTicketActivityUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ServiceTicketActivity.
     * @param {ServiceTicketActivityUpsertArgs} args - Arguments to update or create a ServiceTicketActivity.
     * @example
     * // Update or create a ServiceTicketActivity
     * const serviceTicketActivity = await prisma.serviceTicketActivity.upsert({
     *   create: {
     *     // ... data to create a ServiceTicketActivity
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ServiceTicketActivity we want to update
     *   }
     * })
     */
    upsert<T extends ServiceTicketActivityUpsertArgs>(args: SelectSubset<T, ServiceTicketActivityUpsertArgs<ExtArgs>>): Prisma__ServiceTicketActivityClient<$Result.GetResult<Prisma.$ServiceTicketActivityPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ServiceTicketActivities.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceTicketActivityCountArgs} args - Arguments to filter ServiceTicketActivities to count.
     * @example
     * // Count the number of ServiceTicketActivities
     * const count = await prisma.serviceTicketActivity.count({
     *   where: {
     *     // ... the filter for the ServiceTicketActivities we want to count
     *   }
     * })
    **/
    count<T extends ServiceTicketActivityCountArgs>(
      args?: Subset<T, ServiceTicketActivityCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ServiceTicketActivityCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ServiceTicketActivity.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceTicketActivityAggregateArgs} 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 ServiceTicketActivityAggregateArgs>(args: Subset<T, ServiceTicketActivityAggregateArgs>): Prisma.PrismaPromise<GetServiceTicketActivityAggregateType<T>>

    /**
     * Group by ServiceTicketActivity.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ServiceTicketActivityGroupByArgs} 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 ServiceTicketActivityGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ServiceTicketActivityGroupByArgs['orderBy'] }
        : { orderBy?: ServiceTicketActivityGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ServiceTicketActivityGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetServiceTicketActivityGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ServiceTicketActivity model
   */
  readonly fields: ServiceTicketActivityFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ServiceTicketActivity.
   * 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__ServiceTicketActivityClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    ticket<T extends ServiceTicketDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ServiceTicketDefaultArgs<ExtArgs>>): Prisma__ServiceTicketClient<$Result.GetResult<Prisma.$ServiceTicketPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ServiceTicketActivity model
   */
  interface ServiceTicketActivityFieldRefs {
    readonly id: FieldRef<"ServiceTicketActivity", 'String'>
    readonly ticketId: FieldRef<"ServiceTicketActivity", 'String'>
    readonly activityType: FieldRef<"ServiceTicketActivity", 'ServiceTicketActivityType'>
    readonly payload: FieldRef<"ServiceTicketActivity", 'Json'>
    readonly createdById: FieldRef<"ServiceTicketActivity", 'String'>
    readonly occurredAt: FieldRef<"ServiceTicketActivity", 'DateTime'>
    readonly createdAt: FieldRef<"ServiceTicketActivity", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ServiceTicketActivity findUnique
   */
  export type ServiceTicketActivityFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicketActivity to fetch.
     */
    where: ServiceTicketActivityWhereUniqueInput
  }

  /**
   * ServiceTicketActivity findUniqueOrThrow
   */
  export type ServiceTicketActivityFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicketActivity to fetch.
     */
    where: ServiceTicketActivityWhereUniqueInput
  }

  /**
   * ServiceTicketActivity findFirst
   */
  export type ServiceTicketActivityFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicketActivity to fetch.
     */
    where?: ServiceTicketActivityWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ServiceTicketActivities to fetch.
     */
    orderBy?: ServiceTicketActivityOrderByWithRelationInput | ServiceTicketActivityOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ServiceTicketActivities.
     */
    cursor?: ServiceTicketActivityWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ServiceTicketActivities 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` ServiceTicketActivities.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ServiceTicketActivities.
     */
    distinct?: ServiceTicketActivityScalarFieldEnum | ServiceTicketActivityScalarFieldEnum[]
  }

  /**
   * ServiceTicketActivity findFirstOrThrow
   */
  export type ServiceTicketActivityFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicketActivity to fetch.
     */
    where?: ServiceTicketActivityWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ServiceTicketActivities to fetch.
     */
    orderBy?: ServiceTicketActivityOrderByWithRelationInput | ServiceTicketActivityOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ServiceTicketActivities.
     */
    cursor?: ServiceTicketActivityWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ServiceTicketActivities 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` ServiceTicketActivities.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ServiceTicketActivities.
     */
    distinct?: ServiceTicketActivityScalarFieldEnum | ServiceTicketActivityScalarFieldEnum[]
  }

  /**
   * ServiceTicketActivity findMany
   */
  export type ServiceTicketActivityFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * Filter, which ServiceTicketActivities to fetch.
     */
    where?: ServiceTicketActivityWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ServiceTicketActivities to fetch.
     */
    orderBy?: ServiceTicketActivityOrderByWithRelationInput | ServiceTicketActivityOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ServiceTicketActivities.
     */
    cursor?: ServiceTicketActivityWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ServiceTicketActivities 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` ServiceTicketActivities.
     */
    skip?: number
    distinct?: ServiceTicketActivityScalarFieldEnum | ServiceTicketActivityScalarFieldEnum[]
  }

  /**
   * ServiceTicketActivity create
   */
  export type ServiceTicketActivityCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * The data needed to create a ServiceTicketActivity.
     */
    data: XOR<ServiceTicketActivityCreateInput, ServiceTicketActivityUncheckedCreateInput>
  }

  /**
   * ServiceTicketActivity createMany
   */
  export type ServiceTicketActivityCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ServiceTicketActivities.
     */
    data: ServiceTicketActivityCreateManyInput | ServiceTicketActivityCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ServiceTicketActivity createManyAndReturn
   */
  export type ServiceTicketActivityCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * The data used to create many ServiceTicketActivities.
     */
    data: ServiceTicketActivityCreateManyInput | ServiceTicketActivityCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ServiceTicketActivity update
   */
  export type ServiceTicketActivityUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * The data needed to update a ServiceTicketActivity.
     */
    data: XOR<ServiceTicketActivityUpdateInput, ServiceTicketActivityUncheckedUpdateInput>
    /**
     * Choose, which ServiceTicketActivity to update.
     */
    where: ServiceTicketActivityWhereUniqueInput
  }

  /**
   * ServiceTicketActivity updateMany
   */
  export type ServiceTicketActivityUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ServiceTicketActivities.
     */
    data: XOR<ServiceTicketActivityUpdateManyMutationInput, ServiceTicketActivityUncheckedUpdateManyInput>
    /**
     * Filter which ServiceTicketActivities to update
     */
    where?: ServiceTicketActivityWhereInput
    /**
     * Limit how many ServiceTicketActivities to update.
     */
    limit?: number
  }

  /**
   * ServiceTicketActivity updateManyAndReturn
   */
  export type ServiceTicketActivityUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * The data used to update ServiceTicketActivities.
     */
    data: XOR<ServiceTicketActivityUpdateManyMutationInput, ServiceTicketActivityUncheckedUpdateManyInput>
    /**
     * Filter which ServiceTicketActivities to update
     */
    where?: ServiceTicketActivityWhereInput
    /**
     * Limit how many ServiceTicketActivities to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ServiceTicketActivity upsert
   */
  export type ServiceTicketActivityUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * The filter to search for the ServiceTicketActivity to update in case it exists.
     */
    where: ServiceTicketActivityWhereUniqueInput
    /**
     * In case the ServiceTicketActivity found by the `where` argument doesn't exist, create a new ServiceTicketActivity with this data.
     */
    create: XOR<ServiceTicketActivityCreateInput, ServiceTicketActivityUncheckedCreateInput>
    /**
     * In case the ServiceTicketActivity was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ServiceTicketActivityUpdateInput, ServiceTicketActivityUncheckedUpdateInput>
  }

  /**
   * ServiceTicketActivity delete
   */
  export type ServiceTicketActivityDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
    /**
     * Filter which ServiceTicketActivity to delete.
     */
    where: ServiceTicketActivityWhereUniqueInput
  }

  /**
   * ServiceTicketActivity deleteMany
   */
  export type ServiceTicketActivityDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ServiceTicketActivities to delete
     */
    where?: ServiceTicketActivityWhereInput
    /**
     * Limit how many ServiceTicketActivities to delete.
     */
    limit?: number
  }

  /**
   * ServiceTicketActivity without action
   */
  export type ServiceTicketActivityDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ServiceTicketActivity
     */
    select?: ServiceTicketActivitySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ServiceTicketActivity
     */
    omit?: ServiceTicketActivityOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ServiceTicketActivityInclude<ExtArgs> | null
  }


  /**
   * Model RobotImportAudit
   */

  export type AggregateRobotImportAudit = {
    _count: RobotImportAuditCountAggregateOutputType | null
    _avg: RobotImportAuditAvgAggregateOutputType | null
    _sum: RobotImportAuditSumAggregateOutputType | null
    _min: RobotImportAuditMinAggregateOutputType | null
    _max: RobotImportAuditMaxAggregateOutputType | null
  }

  export type RobotImportAuditAvgAggregateOutputType = {
    conflictCount: number | null
  }

  export type RobotImportAuditSumAggregateOutputType = {
    conflictCount: number | null
  }

  export type RobotImportAuditMinAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    conflictCount: number | null
    recordStatus: $Enums.ImportRecordStatus | null
    importedAt: Date | null
    importBatch: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotImportAuditMaxAggregateOutputType = {
    id: string | null
    robotUnitId: string | null
    conflictCount: number | null
    recordStatus: $Enums.ImportRecordStatus | null
    importedAt: Date | null
    importBatch: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type RobotImportAuditCountAggregateOutputType = {
    id: number
    robotUnitId: number
    sources: number
    conflictCount: number
    recordStatus: number
    conflictDetail: number
    importedAt: number
    importBatch: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type RobotImportAuditAvgAggregateInputType = {
    conflictCount?: true
  }

  export type RobotImportAuditSumAggregateInputType = {
    conflictCount?: true
  }

  export type RobotImportAuditMinAggregateInputType = {
    id?: true
    robotUnitId?: true
    conflictCount?: true
    recordStatus?: true
    importedAt?: true
    importBatch?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotImportAuditMaxAggregateInputType = {
    id?: true
    robotUnitId?: true
    conflictCount?: true
    recordStatus?: true
    importedAt?: true
    importBatch?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type RobotImportAuditCountAggregateInputType = {
    id?: true
    robotUnitId?: true
    sources?: true
    conflictCount?: true
    recordStatus?: true
    conflictDetail?: true
    importedAt?: true
    importBatch?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type RobotImportAuditAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotImportAudit to aggregate.
     */
    where?: RobotImportAuditWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotImportAudits to fetch.
     */
    orderBy?: RobotImportAuditOrderByWithRelationInput | RobotImportAuditOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: RobotImportAuditWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotImportAudits 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` RobotImportAudits.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned RobotImportAudits
    **/
    _count?: true | RobotImportAuditCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: RobotImportAuditAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: RobotImportAuditSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: RobotImportAuditMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: RobotImportAuditMaxAggregateInputType
  }

  export type GetRobotImportAuditAggregateType<T extends RobotImportAuditAggregateArgs> = {
        [P in keyof T & keyof AggregateRobotImportAudit]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateRobotImportAudit[P]>
      : GetScalarType<T[P], AggregateRobotImportAudit[P]>
  }




  export type RobotImportAuditGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: RobotImportAuditWhereInput
    orderBy?: RobotImportAuditOrderByWithAggregationInput | RobotImportAuditOrderByWithAggregationInput[]
    by: RobotImportAuditScalarFieldEnum[] | RobotImportAuditScalarFieldEnum
    having?: RobotImportAuditScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: RobotImportAuditCountAggregateInputType | true
    _avg?: RobotImportAuditAvgAggregateInputType
    _sum?: RobotImportAuditSumAggregateInputType
    _min?: RobotImportAuditMinAggregateInputType
    _max?: RobotImportAuditMaxAggregateInputType
  }

  export type RobotImportAuditGroupByOutputType = {
    id: string
    robotUnitId: string
    sources: string[]
    conflictCount: number
    recordStatus: $Enums.ImportRecordStatus
    conflictDetail: JsonValue | null
    importedAt: Date
    importBatch: string | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: RobotImportAuditCountAggregateOutputType | null
    _avg: RobotImportAuditAvgAggregateOutputType | null
    _sum: RobotImportAuditSumAggregateOutputType | null
    _min: RobotImportAuditMinAggregateOutputType | null
    _max: RobotImportAuditMaxAggregateOutputType | null
  }

  type GetRobotImportAuditGroupByPayload<T extends RobotImportAuditGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<RobotImportAuditGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof RobotImportAuditGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], RobotImportAuditGroupByOutputType[P]>
            : GetScalarType<T[P], RobotImportAuditGroupByOutputType[P]>
        }
      >
    >


  export type RobotImportAuditSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    sources?: boolean
    conflictCount?: boolean
    recordStatus?: boolean
    conflictDetail?: boolean
    importedAt?: boolean
    importBatch?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotImportAudit"]>

  export type RobotImportAuditSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    sources?: boolean
    conflictCount?: boolean
    recordStatus?: boolean
    conflictDetail?: boolean
    importedAt?: boolean
    importBatch?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotImportAudit"]>

  export type RobotImportAuditSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    robotUnitId?: boolean
    sources?: boolean
    conflictCount?: boolean
    recordStatus?: boolean
    conflictDetail?: boolean
    importedAt?: boolean
    importBatch?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["robotImportAudit"]>

  export type RobotImportAuditSelectScalar = {
    id?: boolean
    robotUnitId?: boolean
    sources?: boolean
    conflictCount?: boolean
    recordStatus?: boolean
    conflictDetail?: boolean
    importedAt?: boolean
    importBatch?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type RobotImportAuditOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "robotUnitId" | "sources" | "conflictCount" | "recordStatus" | "conflictDetail" | "importedAt" | "importBatch" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["robotImportAudit"]>
  export type RobotImportAuditInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type RobotImportAuditIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }
  export type RobotImportAuditIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    robotUnit?: boolean | RobotUnitDefaultArgs<ExtArgs>
  }

  export type $RobotImportAuditPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "RobotImportAudit"
    objects: {
      robotUnit: Prisma.$RobotUnitPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      robotUnitId: string
      sources: string[]
      conflictCount: number
      recordStatus: $Enums.ImportRecordStatus
      conflictDetail: Prisma.JsonValue | null
      importedAt: Date
      importBatch: string | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["robotImportAudit"]>
    composites: {}
  }

  type RobotImportAuditGetPayload<S extends boolean | null | undefined | RobotImportAuditDefaultArgs> = $Result.GetResult<Prisma.$RobotImportAuditPayload, S>

  type RobotImportAuditCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<RobotImportAuditFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: RobotImportAuditCountAggregateInputType | true
    }

  export interface RobotImportAuditDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['RobotImportAudit'], meta: { name: 'RobotImportAudit' } }
    /**
     * Find zero or one RobotImportAudit that matches the filter.
     * @param {RobotImportAuditFindUniqueArgs} args - Arguments to find a RobotImportAudit
     * @example
     * // Get one RobotImportAudit
     * const robotImportAudit = await prisma.robotImportAudit.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends RobotImportAuditFindUniqueArgs>(args: SelectSubset<T, RobotImportAuditFindUniqueArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one RobotImportAudit that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {RobotImportAuditFindUniqueOrThrowArgs} args - Arguments to find a RobotImportAudit
     * @example
     * // Get one RobotImportAudit
     * const robotImportAudit = await prisma.robotImportAudit.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends RobotImportAuditFindUniqueOrThrowArgs>(args: SelectSubset<T, RobotImportAuditFindUniqueOrThrowArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotImportAudit 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 {RobotImportAuditFindFirstArgs} args - Arguments to find a RobotImportAudit
     * @example
     * // Get one RobotImportAudit
     * const robotImportAudit = await prisma.robotImportAudit.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends RobotImportAuditFindFirstArgs>(args?: SelectSubset<T, RobotImportAuditFindFirstArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first RobotImportAudit 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 {RobotImportAuditFindFirstOrThrowArgs} args - Arguments to find a RobotImportAudit
     * @example
     * // Get one RobotImportAudit
     * const robotImportAudit = await prisma.robotImportAudit.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends RobotImportAuditFindFirstOrThrowArgs>(args?: SelectSubset<T, RobotImportAuditFindFirstOrThrowArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more RobotImportAudits 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 {RobotImportAuditFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all RobotImportAudits
     * const robotImportAudits = await prisma.robotImportAudit.findMany()
     * 
     * // Get first 10 RobotImportAudits
     * const robotImportAudits = await prisma.robotImportAudit.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const robotImportAuditWithIdOnly = await prisma.robotImportAudit.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends RobotImportAuditFindManyArgs>(args?: SelectSubset<T, RobotImportAuditFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a RobotImportAudit.
     * @param {RobotImportAuditCreateArgs} args - Arguments to create a RobotImportAudit.
     * @example
     * // Create one RobotImportAudit
     * const RobotImportAudit = await prisma.robotImportAudit.create({
     *   data: {
     *     // ... data to create a RobotImportAudit
     *   }
     * })
     * 
     */
    create<T extends RobotImportAuditCreateArgs>(args: SelectSubset<T, RobotImportAuditCreateArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many RobotImportAudits.
     * @param {RobotImportAuditCreateManyArgs} args - Arguments to create many RobotImportAudits.
     * @example
     * // Create many RobotImportAudits
     * const robotImportAudit = await prisma.robotImportAudit.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends RobotImportAuditCreateManyArgs>(args?: SelectSubset<T, RobotImportAuditCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many RobotImportAudits and returns the data saved in the database.
     * @param {RobotImportAuditCreateManyAndReturnArgs} args - Arguments to create many RobotImportAudits.
     * @example
     * // Create many RobotImportAudits
     * const robotImportAudit = await prisma.robotImportAudit.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many RobotImportAudits and only return the `id`
     * const robotImportAuditWithIdOnly = await prisma.robotImportAudit.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 RobotImportAuditCreateManyAndReturnArgs>(args?: SelectSubset<T, RobotImportAuditCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a RobotImportAudit.
     * @param {RobotImportAuditDeleteArgs} args - Arguments to delete one RobotImportAudit.
     * @example
     * // Delete one RobotImportAudit
     * const RobotImportAudit = await prisma.robotImportAudit.delete({
     *   where: {
     *     // ... filter to delete one RobotImportAudit
     *   }
     * })
     * 
     */
    delete<T extends RobotImportAuditDeleteArgs>(args: SelectSubset<T, RobotImportAuditDeleteArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one RobotImportAudit.
     * @param {RobotImportAuditUpdateArgs} args - Arguments to update one RobotImportAudit.
     * @example
     * // Update one RobotImportAudit
     * const robotImportAudit = await prisma.robotImportAudit.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends RobotImportAuditUpdateArgs>(args: SelectSubset<T, RobotImportAuditUpdateArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more RobotImportAudits.
     * @param {RobotImportAuditDeleteManyArgs} args - Arguments to filter RobotImportAudits to delete.
     * @example
     * // Delete a few RobotImportAudits
     * const { count } = await prisma.robotImportAudit.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends RobotImportAuditDeleteManyArgs>(args?: SelectSubset<T, RobotImportAuditDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotImportAudits.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotImportAuditUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many RobotImportAudits
     * const robotImportAudit = await prisma.robotImportAudit.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends RobotImportAuditUpdateManyArgs>(args: SelectSubset<T, RobotImportAuditUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more RobotImportAudits and returns the data updated in the database.
     * @param {RobotImportAuditUpdateManyAndReturnArgs} args - Arguments to update many RobotImportAudits.
     * @example
     * // Update many RobotImportAudits
     * const robotImportAudit = await prisma.robotImportAudit.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more RobotImportAudits and only return the `id`
     * const robotImportAuditWithIdOnly = await prisma.robotImportAudit.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 RobotImportAuditUpdateManyAndReturnArgs>(args: SelectSubset<T, RobotImportAuditUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one RobotImportAudit.
     * @param {RobotImportAuditUpsertArgs} args - Arguments to update or create a RobotImportAudit.
     * @example
     * // Update or create a RobotImportAudit
     * const robotImportAudit = await prisma.robotImportAudit.upsert({
     *   create: {
     *     // ... data to create a RobotImportAudit
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the RobotImportAudit we want to update
     *   }
     * })
     */
    upsert<T extends RobotImportAuditUpsertArgs>(args: SelectSubset<T, RobotImportAuditUpsertArgs<ExtArgs>>): Prisma__RobotImportAuditClient<$Result.GetResult<Prisma.$RobotImportAuditPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of RobotImportAudits.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotImportAuditCountArgs} args - Arguments to filter RobotImportAudits to count.
     * @example
     * // Count the number of RobotImportAudits
     * const count = await prisma.robotImportAudit.count({
     *   where: {
     *     // ... the filter for the RobotImportAudits we want to count
     *   }
     * })
    **/
    count<T extends RobotImportAuditCountArgs>(
      args?: Subset<T, RobotImportAuditCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], RobotImportAuditCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a RobotImportAudit.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotImportAuditAggregateArgs} 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 RobotImportAuditAggregateArgs>(args: Subset<T, RobotImportAuditAggregateArgs>): Prisma.PrismaPromise<GetRobotImportAuditAggregateType<T>>

    /**
     * Group by RobotImportAudit.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {RobotImportAuditGroupByArgs} 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 RobotImportAuditGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: RobotImportAuditGroupByArgs['orderBy'] }
        : { orderBy?: RobotImportAuditGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, RobotImportAuditGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetRobotImportAuditGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the RobotImportAudit model
   */
  readonly fields: RobotImportAuditFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for RobotImportAudit.
   * 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__RobotImportAuditClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    robotUnit<T extends RobotUnitDefaultArgs<ExtArgs> = {}>(args?: Subset<T, RobotUnitDefaultArgs<ExtArgs>>): Prisma__RobotUnitClient<$Result.GetResult<Prisma.$RobotUnitPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the RobotImportAudit model
   */
  interface RobotImportAuditFieldRefs {
    readonly id: FieldRef<"RobotImportAudit", 'String'>
    readonly robotUnitId: FieldRef<"RobotImportAudit", 'String'>
    readonly sources: FieldRef<"RobotImportAudit", 'String[]'>
    readonly conflictCount: FieldRef<"RobotImportAudit", 'Int'>
    readonly recordStatus: FieldRef<"RobotImportAudit", 'ImportRecordStatus'>
    readonly conflictDetail: FieldRef<"RobotImportAudit", 'Json'>
    readonly importedAt: FieldRef<"RobotImportAudit", 'DateTime'>
    readonly importBatch: FieldRef<"RobotImportAudit", 'String'>
    readonly organizationId: FieldRef<"RobotImportAudit", 'String'>
    readonly createdAt: FieldRef<"RobotImportAudit", 'DateTime'>
    readonly updatedAt: FieldRef<"RobotImportAudit", 'DateTime'>
    readonly createdById: FieldRef<"RobotImportAudit", 'String'>
    readonly deletedAt: FieldRef<"RobotImportAudit", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * RobotImportAudit findUnique
   */
  export type RobotImportAuditFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * Filter, which RobotImportAudit to fetch.
     */
    where: RobotImportAuditWhereUniqueInput
  }

  /**
   * RobotImportAudit findUniqueOrThrow
   */
  export type RobotImportAuditFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * Filter, which RobotImportAudit to fetch.
     */
    where: RobotImportAuditWhereUniqueInput
  }

  /**
   * RobotImportAudit findFirst
   */
  export type RobotImportAuditFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * Filter, which RobotImportAudit to fetch.
     */
    where?: RobotImportAuditWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotImportAudits to fetch.
     */
    orderBy?: RobotImportAuditOrderByWithRelationInput | RobotImportAuditOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotImportAudits.
     */
    cursor?: RobotImportAuditWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotImportAudits 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` RobotImportAudits.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotImportAudits.
     */
    distinct?: RobotImportAuditScalarFieldEnum | RobotImportAuditScalarFieldEnum[]
  }

  /**
   * RobotImportAudit findFirstOrThrow
   */
  export type RobotImportAuditFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * Filter, which RobotImportAudit to fetch.
     */
    where?: RobotImportAuditWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotImportAudits to fetch.
     */
    orderBy?: RobotImportAuditOrderByWithRelationInput | RobotImportAuditOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for RobotImportAudits.
     */
    cursor?: RobotImportAuditWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotImportAudits 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` RobotImportAudits.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of RobotImportAudits.
     */
    distinct?: RobotImportAuditScalarFieldEnum | RobotImportAuditScalarFieldEnum[]
  }

  /**
   * RobotImportAudit findMany
   */
  export type RobotImportAuditFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * Filter, which RobotImportAudits to fetch.
     */
    where?: RobotImportAuditWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of RobotImportAudits to fetch.
     */
    orderBy?: RobotImportAuditOrderByWithRelationInput | RobotImportAuditOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing RobotImportAudits.
     */
    cursor?: RobotImportAuditWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` RobotImportAudits 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` RobotImportAudits.
     */
    skip?: number
    distinct?: RobotImportAuditScalarFieldEnum | RobotImportAuditScalarFieldEnum[]
  }

  /**
   * RobotImportAudit create
   */
  export type RobotImportAuditCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * The data needed to create a RobotImportAudit.
     */
    data: XOR<RobotImportAuditCreateInput, RobotImportAuditUncheckedCreateInput>
  }

  /**
   * RobotImportAudit createMany
   */
  export type RobotImportAuditCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many RobotImportAudits.
     */
    data: RobotImportAuditCreateManyInput | RobotImportAuditCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * RobotImportAudit createManyAndReturn
   */
  export type RobotImportAuditCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * The data used to create many RobotImportAudits.
     */
    data: RobotImportAuditCreateManyInput | RobotImportAuditCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotImportAudit update
   */
  export type RobotImportAuditUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * The data needed to update a RobotImportAudit.
     */
    data: XOR<RobotImportAuditUpdateInput, RobotImportAuditUncheckedUpdateInput>
    /**
     * Choose, which RobotImportAudit to update.
     */
    where: RobotImportAuditWhereUniqueInput
  }

  /**
   * RobotImportAudit updateMany
   */
  export type RobotImportAuditUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update RobotImportAudits.
     */
    data: XOR<RobotImportAuditUpdateManyMutationInput, RobotImportAuditUncheckedUpdateManyInput>
    /**
     * Filter which RobotImportAudits to update
     */
    where?: RobotImportAuditWhereInput
    /**
     * Limit how many RobotImportAudits to update.
     */
    limit?: number
  }

  /**
   * RobotImportAudit updateManyAndReturn
   */
  export type RobotImportAuditUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * The data used to update RobotImportAudits.
     */
    data: XOR<RobotImportAuditUpdateManyMutationInput, RobotImportAuditUncheckedUpdateManyInput>
    /**
     * Filter which RobotImportAudits to update
     */
    where?: RobotImportAuditWhereInput
    /**
     * Limit how many RobotImportAudits to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * RobotImportAudit upsert
   */
  export type RobotImportAuditUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * The filter to search for the RobotImportAudit to update in case it exists.
     */
    where: RobotImportAuditWhereUniqueInput
    /**
     * In case the RobotImportAudit found by the `where` argument doesn't exist, create a new RobotImportAudit with this data.
     */
    create: XOR<RobotImportAuditCreateInput, RobotImportAuditUncheckedCreateInput>
    /**
     * In case the RobotImportAudit was found with the provided `where` argument, update it with this data.
     */
    update: XOR<RobotImportAuditUpdateInput, RobotImportAuditUncheckedUpdateInput>
  }

  /**
   * RobotImportAudit delete
   */
  export type RobotImportAuditDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
    /**
     * Filter which RobotImportAudit to delete.
     */
    where: RobotImportAuditWhereUniqueInput
  }

  /**
   * RobotImportAudit deleteMany
   */
  export type RobotImportAuditDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which RobotImportAudits to delete
     */
    where?: RobotImportAuditWhereInput
    /**
     * Limit how many RobotImportAudits to delete.
     */
    limit?: number
  }

  /**
   * RobotImportAudit without action
   */
  export type RobotImportAuditDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the RobotImportAudit
     */
    select?: RobotImportAuditSelect<ExtArgs> | null
    /**
     * Omit specific fields from the RobotImportAudit
     */
    omit?: RobotImportAuditOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: RobotImportAuditInclude<ExtArgs> | null
  }


  /**
   * Model ImportBatch
   */

  export type AggregateImportBatch = {
    _count: ImportBatchCountAggregateOutputType | null
    _avg: ImportBatchAvgAggregateOutputType | null
    _sum: ImportBatchSumAggregateOutputType | null
    _min: ImportBatchMinAggregateOutputType | null
    _max: ImportBatchMaxAggregateOutputType | null
  }

  export type ImportBatchAvgAggregateOutputType = {
    totalRows: number | null
    successRows: number | null
    errorRows: number | null
    warningRows: number | null
  }

  export type ImportBatchSumAggregateOutputType = {
    totalRows: number | null
    successRows: number | null
    errorRows: number | null
    warningRows: number | null
  }

  export type ImportBatchMinAggregateOutputType = {
    id: string | null
    type: $Enums.ImportBatchType | null
    status: $Enums.ImportBatchStatus | null
    fileName: string | null
    fileHash: string | null
    templateSchemaHash: string | null
    totalRows: number | null
    successRows: number | null
    errorRows: number | null
    warningRows: number | null
    startedAt: Date | null
    completedAt: Date | null
    confirmedById: string | null
    confirmedAt: Date | null
    clientIp: string | null
    userAgent: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type ImportBatchMaxAggregateOutputType = {
    id: string | null
    type: $Enums.ImportBatchType | null
    status: $Enums.ImportBatchStatus | null
    fileName: string | null
    fileHash: string | null
    templateSchemaHash: string | null
    totalRows: number | null
    successRows: number | null
    errorRows: number | null
    warningRows: number | null
    startedAt: Date | null
    completedAt: Date | null
    confirmedById: string | null
    confirmedAt: Date | null
    clientIp: string | null
    userAgent: string | null
    organizationId: string | null
    createdAt: Date | null
    updatedAt: Date | null
    createdById: string | null
    deletedAt: Date | null
  }

  export type ImportBatchCountAggregateOutputType = {
    id: number
    type: number
    status: number
    fileName: number
    fileHash: number
    templateSchemaHash: number
    totalRows: number
    successRows: number
    errorRows: number
    warningRows: number
    startedAt: number
    completedAt: number
    confirmedById: number
    confirmedAt: number
    clientIp: number
    userAgent: number
    errorSummary: number
    organizationId: number
    createdAt: number
    updatedAt: number
    createdById: number
    deletedAt: number
    _all: number
  }


  export type ImportBatchAvgAggregateInputType = {
    totalRows?: true
    successRows?: true
    errorRows?: true
    warningRows?: true
  }

  export type ImportBatchSumAggregateInputType = {
    totalRows?: true
    successRows?: true
    errorRows?: true
    warningRows?: true
  }

  export type ImportBatchMinAggregateInputType = {
    id?: true
    type?: true
    status?: true
    fileName?: true
    fileHash?: true
    templateSchemaHash?: true
    totalRows?: true
    successRows?: true
    errorRows?: true
    warningRows?: true
    startedAt?: true
    completedAt?: true
    confirmedById?: true
    confirmedAt?: true
    clientIp?: true
    userAgent?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type ImportBatchMaxAggregateInputType = {
    id?: true
    type?: true
    status?: true
    fileName?: true
    fileHash?: true
    templateSchemaHash?: true
    totalRows?: true
    successRows?: true
    errorRows?: true
    warningRows?: true
    startedAt?: true
    completedAt?: true
    confirmedById?: true
    confirmedAt?: true
    clientIp?: true
    userAgent?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
  }

  export type ImportBatchCountAggregateInputType = {
    id?: true
    type?: true
    status?: true
    fileName?: true
    fileHash?: true
    templateSchemaHash?: true
    totalRows?: true
    successRows?: true
    errorRows?: true
    warningRows?: true
    startedAt?: true
    completedAt?: true
    confirmedById?: true
    confirmedAt?: true
    clientIp?: true
    userAgent?: true
    errorSummary?: true
    organizationId?: true
    createdAt?: true
    updatedAt?: true
    createdById?: true
    deletedAt?: true
    _all?: true
  }

  export type ImportBatchAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ImportBatch to aggregate.
     */
    where?: ImportBatchWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ImportBatches to fetch.
     */
    orderBy?: ImportBatchOrderByWithRelationInput | ImportBatchOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ImportBatchWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ImportBatches 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` ImportBatches.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ImportBatches
    **/
    _count?: true | ImportBatchCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ImportBatchAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ImportBatchSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ImportBatchMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ImportBatchMaxAggregateInputType
  }

  export type GetImportBatchAggregateType<T extends ImportBatchAggregateArgs> = {
        [P in keyof T & keyof AggregateImportBatch]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateImportBatch[P]>
      : GetScalarType<T[P], AggregateImportBatch[P]>
  }




  export type ImportBatchGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ImportBatchWhereInput
    orderBy?: ImportBatchOrderByWithAggregationInput | ImportBatchOrderByWithAggregationInput[]
    by: ImportBatchScalarFieldEnum[] | ImportBatchScalarFieldEnum
    having?: ImportBatchScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ImportBatchCountAggregateInputType | true
    _avg?: ImportBatchAvgAggregateInputType
    _sum?: ImportBatchSumAggregateInputType
    _min?: ImportBatchMinAggregateInputType
    _max?: ImportBatchMaxAggregateInputType
  }

  export type ImportBatchGroupByOutputType = {
    id: string
    type: $Enums.ImportBatchType
    status: $Enums.ImportBatchStatus
    fileName: string
    fileHash: string
    templateSchemaHash: string
    totalRows: number
    successRows: number
    errorRows: number
    warningRows: number
    startedAt: Date | null
    completedAt: Date | null
    confirmedById: string | null
    confirmedAt: Date | null
    clientIp: string | null
    userAgent: string | null
    errorSummary: JsonValue | null
    organizationId: string
    createdAt: Date
    updatedAt: Date
    createdById: string
    deletedAt: Date | null
    _count: ImportBatchCountAggregateOutputType | null
    _avg: ImportBatchAvgAggregateOutputType | null
    _sum: ImportBatchSumAggregateOutputType | null
    _min: ImportBatchMinAggregateOutputType | null
    _max: ImportBatchMaxAggregateOutputType | null
  }

  type GetImportBatchGroupByPayload<T extends ImportBatchGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ImportBatchGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ImportBatchGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ImportBatchGroupByOutputType[P]>
            : GetScalarType<T[P], ImportBatchGroupByOutputType[P]>
        }
      >
    >


  export type ImportBatchSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    status?: boolean
    fileName?: boolean
    fileHash?: boolean
    templateSchemaHash?: boolean
    totalRows?: boolean
    successRows?: boolean
    errorRows?: boolean
    warningRows?: boolean
    startedAt?: boolean
    completedAt?: boolean
    confirmedById?: boolean
    confirmedAt?: boolean
    clientIp?: boolean
    userAgent?: boolean
    errorSummary?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
    entries?: boolean | ImportBatch$entriesArgs<ExtArgs>
    _count?: boolean | ImportBatchCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["importBatch"]>

  export type ImportBatchSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    status?: boolean
    fileName?: boolean
    fileHash?: boolean
    templateSchemaHash?: boolean
    totalRows?: boolean
    successRows?: boolean
    errorRows?: boolean
    warningRows?: boolean
    startedAt?: boolean
    completedAt?: boolean
    confirmedById?: boolean
    confirmedAt?: boolean
    clientIp?: boolean
    userAgent?: boolean
    errorSummary?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["importBatch"]>

  export type ImportBatchSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    type?: boolean
    status?: boolean
    fileName?: boolean
    fileHash?: boolean
    templateSchemaHash?: boolean
    totalRows?: boolean
    successRows?: boolean
    errorRows?: boolean
    warningRows?: boolean
    startedAt?: boolean
    completedAt?: boolean
    confirmedById?: boolean
    confirmedAt?: boolean
    clientIp?: boolean
    userAgent?: boolean
    errorSummary?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }, ExtArgs["result"]["importBatch"]>

  export type ImportBatchSelectScalar = {
    id?: boolean
    type?: boolean
    status?: boolean
    fileName?: boolean
    fileHash?: boolean
    templateSchemaHash?: boolean
    totalRows?: boolean
    successRows?: boolean
    errorRows?: boolean
    warningRows?: boolean
    startedAt?: boolean
    completedAt?: boolean
    confirmedById?: boolean
    confirmedAt?: boolean
    clientIp?: boolean
    userAgent?: boolean
    errorSummary?: boolean
    organizationId?: boolean
    createdAt?: boolean
    updatedAt?: boolean
    createdById?: boolean
    deletedAt?: boolean
  }

  export type ImportBatchOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "type" | "status" | "fileName" | "fileHash" | "templateSchemaHash" | "totalRows" | "successRows" | "errorRows" | "warningRows" | "startedAt" | "completedAt" | "confirmedById" | "confirmedAt" | "clientIp" | "userAgent" | "errorSummary" | "organizationId" | "createdAt" | "updatedAt" | "createdById" | "deletedAt", ExtArgs["result"]["importBatch"]>
  export type ImportBatchInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    entries?: boolean | ImportBatch$entriesArgs<ExtArgs>
    _count?: boolean | ImportBatchCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ImportBatchIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type ImportBatchIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $ImportBatchPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ImportBatch"
    objects: {
      entries: Prisma.$ImportBatchEntryPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      type: $Enums.ImportBatchType
      status: $Enums.ImportBatchStatus
      fileName: string
      fileHash: string
      templateSchemaHash: string
      totalRows: number
      successRows: number
      errorRows: number
      warningRows: number
      startedAt: Date | null
      completedAt: Date | null
      confirmedById: string | null
      confirmedAt: Date | null
      clientIp: string | null
      userAgent: string | null
      errorSummary: Prisma.JsonValue | null
      organizationId: string
      createdAt: Date
      updatedAt: Date
      createdById: string
      deletedAt: Date | null
    }, ExtArgs["result"]["importBatch"]>
    composites: {}
  }

  type ImportBatchGetPayload<S extends boolean | null | undefined | ImportBatchDefaultArgs> = $Result.GetResult<Prisma.$ImportBatchPayload, S>

  type ImportBatchCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ImportBatchFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ImportBatchCountAggregateInputType | true
    }

  export interface ImportBatchDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ImportBatch'], meta: { name: 'ImportBatch' } }
    /**
     * Find zero or one ImportBatch that matches the filter.
     * @param {ImportBatchFindUniqueArgs} args - Arguments to find a ImportBatch
     * @example
     * // Get one ImportBatch
     * const importBatch = await prisma.importBatch.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ImportBatchFindUniqueArgs>(args: SelectSubset<T, ImportBatchFindUniqueArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ImportBatch that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ImportBatchFindUniqueOrThrowArgs} args - Arguments to find a ImportBatch
     * @example
     * // Get one ImportBatch
     * const importBatch = await prisma.importBatch.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ImportBatchFindUniqueOrThrowArgs>(args: SelectSubset<T, ImportBatchFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ImportBatch 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 {ImportBatchFindFirstArgs} args - Arguments to find a ImportBatch
     * @example
     * // Get one ImportBatch
     * const importBatch = await prisma.importBatch.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ImportBatchFindFirstArgs>(args?: SelectSubset<T, ImportBatchFindFirstArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ImportBatch 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 {ImportBatchFindFirstOrThrowArgs} args - Arguments to find a ImportBatch
     * @example
     * // Get one ImportBatch
     * const importBatch = await prisma.importBatch.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ImportBatchFindFirstOrThrowArgs>(args?: SelectSubset<T, ImportBatchFindFirstOrThrowArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ImportBatches 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 {ImportBatchFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ImportBatches
     * const importBatches = await prisma.importBatch.findMany()
     * 
     * // Get first 10 ImportBatches
     * const importBatches = await prisma.importBatch.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const importBatchWithIdOnly = await prisma.importBatch.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ImportBatchFindManyArgs>(args?: SelectSubset<T, ImportBatchFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ImportBatch.
     * @param {ImportBatchCreateArgs} args - Arguments to create a ImportBatch.
     * @example
     * // Create one ImportBatch
     * const ImportBatch = await prisma.importBatch.create({
     *   data: {
     *     // ... data to create a ImportBatch
     *   }
     * })
     * 
     */
    create<T extends ImportBatchCreateArgs>(args: SelectSubset<T, ImportBatchCreateArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ImportBatches.
     * @param {ImportBatchCreateManyArgs} args - Arguments to create many ImportBatches.
     * @example
     * // Create many ImportBatches
     * const importBatch = await prisma.importBatch.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ImportBatchCreateManyArgs>(args?: SelectSubset<T, ImportBatchCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ImportBatches and returns the data saved in the database.
     * @param {ImportBatchCreateManyAndReturnArgs} args - Arguments to create many ImportBatches.
     * @example
     * // Create many ImportBatches
     * const importBatch = await prisma.importBatch.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ImportBatches and only return the `id`
     * const importBatchWithIdOnly = await prisma.importBatch.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 ImportBatchCreateManyAndReturnArgs>(args?: SelectSubset<T, ImportBatchCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ImportBatch.
     * @param {ImportBatchDeleteArgs} args - Arguments to delete one ImportBatch.
     * @example
     * // Delete one ImportBatch
     * const ImportBatch = await prisma.importBatch.delete({
     *   where: {
     *     // ... filter to delete one ImportBatch
     *   }
     * })
     * 
     */
    delete<T extends ImportBatchDeleteArgs>(args: SelectSubset<T, ImportBatchDeleteArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ImportBatch.
     * @param {ImportBatchUpdateArgs} args - Arguments to update one ImportBatch.
     * @example
     * // Update one ImportBatch
     * const importBatch = await prisma.importBatch.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ImportBatchUpdateArgs>(args: SelectSubset<T, ImportBatchUpdateArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ImportBatches.
     * @param {ImportBatchDeleteManyArgs} args - Arguments to filter ImportBatches to delete.
     * @example
     * // Delete a few ImportBatches
     * const { count } = await prisma.importBatch.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ImportBatchDeleteManyArgs>(args?: SelectSubset<T, ImportBatchDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ImportBatches.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ImportBatchUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ImportBatches
     * const importBatch = await prisma.importBatch.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ImportBatchUpdateManyArgs>(args: SelectSubset<T, ImportBatchUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ImportBatches and returns the data updated in the database.
     * @param {ImportBatchUpdateManyAndReturnArgs} args - Arguments to update many ImportBatches.
     * @example
     * // Update many ImportBatches
     * const importBatch = await prisma.importBatch.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ImportBatches and only return the `id`
     * const importBatchWithIdOnly = await prisma.importBatch.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 ImportBatchUpdateManyAndReturnArgs>(args: SelectSubset<T, ImportBatchUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ImportBatch.
     * @param {ImportBatchUpsertArgs} args - Arguments to update or create a ImportBatch.
     * @example
     * // Update or create a ImportBatch
     * const importBatch = await prisma.importBatch.upsert({
     *   create: {
     *     // ... data to create a ImportBatch
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ImportBatch we want to update
     *   }
     * })
     */
    upsert<T extends ImportBatchUpsertArgs>(args: SelectSubset<T, ImportBatchUpsertArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ImportBatches.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ImportBatchCountArgs} args - Arguments to filter ImportBatches to count.
     * @example
     * // Count the number of ImportBatches
     * const count = await prisma.importBatch.count({
     *   where: {
     *     // ... the filter for the ImportBatches we want to count
     *   }
     * })
    **/
    count<T extends ImportBatchCountArgs>(
      args?: Subset<T, ImportBatchCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ImportBatchCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ImportBatch.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ImportBatchAggregateArgs} 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 ImportBatchAggregateArgs>(args: Subset<T, ImportBatchAggregateArgs>): Prisma.PrismaPromise<GetImportBatchAggregateType<T>>

    /**
     * Group by ImportBatch.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ImportBatchGroupByArgs} 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 ImportBatchGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ImportBatchGroupByArgs['orderBy'] }
        : { orderBy?: ImportBatchGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ImportBatchGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetImportBatchGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ImportBatch model
   */
  readonly fields: ImportBatchFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ImportBatch.
   * 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__ImportBatchClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    entries<T extends ImportBatch$entriesArgs<ExtArgs> = {}>(args?: Subset<T, ImportBatch$entriesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ImportBatch model
   */
  interface ImportBatchFieldRefs {
    readonly id: FieldRef<"ImportBatch", 'String'>
    readonly type: FieldRef<"ImportBatch", 'ImportBatchType'>
    readonly status: FieldRef<"ImportBatch", 'ImportBatchStatus'>
    readonly fileName: FieldRef<"ImportBatch", 'String'>
    readonly fileHash: FieldRef<"ImportBatch", 'String'>
    readonly templateSchemaHash: FieldRef<"ImportBatch", 'String'>
    readonly totalRows: FieldRef<"ImportBatch", 'Int'>
    readonly successRows: FieldRef<"ImportBatch", 'Int'>
    readonly errorRows: FieldRef<"ImportBatch", 'Int'>
    readonly warningRows: FieldRef<"ImportBatch", 'Int'>
    readonly startedAt: FieldRef<"ImportBatch", 'DateTime'>
    readonly completedAt: FieldRef<"ImportBatch", 'DateTime'>
    readonly confirmedById: FieldRef<"ImportBatch", 'String'>
    readonly confirmedAt: FieldRef<"ImportBatch", 'DateTime'>
    readonly clientIp: FieldRef<"ImportBatch", 'String'>
    readonly userAgent: FieldRef<"ImportBatch", 'String'>
    readonly errorSummary: FieldRef<"ImportBatch", 'Json'>
    readonly organizationId: FieldRef<"ImportBatch", 'String'>
    readonly createdAt: FieldRef<"ImportBatch", 'DateTime'>
    readonly updatedAt: FieldRef<"ImportBatch", 'DateTime'>
    readonly createdById: FieldRef<"ImportBatch", 'String'>
    readonly deletedAt: FieldRef<"ImportBatch", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ImportBatch findUnique
   */
  export type ImportBatchFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatch to fetch.
     */
    where: ImportBatchWhereUniqueInput
  }

  /**
   * ImportBatch findUniqueOrThrow
   */
  export type ImportBatchFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatch to fetch.
     */
    where: ImportBatchWhereUniqueInput
  }

  /**
   * ImportBatch findFirst
   */
  export type ImportBatchFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatch to fetch.
     */
    where?: ImportBatchWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ImportBatches to fetch.
     */
    orderBy?: ImportBatchOrderByWithRelationInput | ImportBatchOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ImportBatches.
     */
    cursor?: ImportBatchWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ImportBatches 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` ImportBatches.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ImportBatches.
     */
    distinct?: ImportBatchScalarFieldEnum | ImportBatchScalarFieldEnum[]
  }

  /**
   * ImportBatch findFirstOrThrow
   */
  export type ImportBatchFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatch to fetch.
     */
    where?: ImportBatchWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ImportBatches to fetch.
     */
    orderBy?: ImportBatchOrderByWithRelationInput | ImportBatchOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ImportBatches.
     */
    cursor?: ImportBatchWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ImportBatches 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` ImportBatches.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ImportBatches.
     */
    distinct?: ImportBatchScalarFieldEnum | ImportBatchScalarFieldEnum[]
  }

  /**
   * ImportBatch findMany
   */
  export type ImportBatchFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatches to fetch.
     */
    where?: ImportBatchWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ImportBatches to fetch.
     */
    orderBy?: ImportBatchOrderByWithRelationInput | ImportBatchOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ImportBatches.
     */
    cursor?: ImportBatchWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ImportBatches 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` ImportBatches.
     */
    skip?: number
    distinct?: ImportBatchScalarFieldEnum | ImportBatchScalarFieldEnum[]
  }

  /**
   * ImportBatch create
   */
  export type ImportBatchCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * The data needed to create a ImportBatch.
     */
    data: XOR<ImportBatchCreateInput, ImportBatchUncheckedCreateInput>
  }

  /**
   * ImportBatch createMany
   */
  export type ImportBatchCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ImportBatches.
     */
    data: ImportBatchCreateManyInput | ImportBatchCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ImportBatch createManyAndReturn
   */
  export type ImportBatchCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * The data used to create many ImportBatches.
     */
    data: ImportBatchCreateManyInput | ImportBatchCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ImportBatch update
   */
  export type ImportBatchUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * The data needed to update a ImportBatch.
     */
    data: XOR<ImportBatchUpdateInput, ImportBatchUncheckedUpdateInput>
    /**
     * Choose, which ImportBatch to update.
     */
    where: ImportBatchWhereUniqueInput
  }

  /**
   * ImportBatch updateMany
   */
  export type ImportBatchUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ImportBatches.
     */
    data: XOR<ImportBatchUpdateManyMutationInput, ImportBatchUncheckedUpdateManyInput>
    /**
     * Filter which ImportBatches to update
     */
    where?: ImportBatchWhereInput
    /**
     * Limit how many ImportBatches to update.
     */
    limit?: number
  }

  /**
   * ImportBatch updateManyAndReturn
   */
  export type ImportBatchUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * The data used to update ImportBatches.
     */
    data: XOR<ImportBatchUpdateManyMutationInput, ImportBatchUncheckedUpdateManyInput>
    /**
     * Filter which ImportBatches to update
     */
    where?: ImportBatchWhereInput
    /**
     * Limit how many ImportBatches to update.
     */
    limit?: number
  }

  /**
   * ImportBatch upsert
   */
  export type ImportBatchUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * The filter to search for the ImportBatch to update in case it exists.
     */
    where: ImportBatchWhereUniqueInput
    /**
     * In case the ImportBatch found by the `where` argument doesn't exist, create a new ImportBatch with this data.
     */
    create: XOR<ImportBatchCreateInput, ImportBatchUncheckedCreateInput>
    /**
     * In case the ImportBatch was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ImportBatchUpdateInput, ImportBatchUncheckedUpdateInput>
  }

  /**
   * ImportBatch delete
   */
  export type ImportBatchDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
    /**
     * Filter which ImportBatch to delete.
     */
    where: ImportBatchWhereUniqueInput
  }

  /**
   * ImportBatch deleteMany
   */
  export type ImportBatchDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ImportBatches to delete
     */
    where?: ImportBatchWhereInput
    /**
     * Limit how many ImportBatches to delete.
     */
    limit?: number
  }

  /**
   * ImportBatch.entries
   */
  export type ImportBatch$entriesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    where?: ImportBatchEntryWhereInput
    orderBy?: ImportBatchEntryOrderByWithRelationInput | ImportBatchEntryOrderByWithRelationInput[]
    cursor?: ImportBatchEntryWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ImportBatchEntryScalarFieldEnum | ImportBatchEntryScalarFieldEnum[]
  }

  /**
   * ImportBatch without action
   */
  export type ImportBatchDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatch
     */
    select?: ImportBatchSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatch
     */
    omit?: ImportBatchOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchInclude<ExtArgs> | null
  }


  /**
   * Model ImportBatchEntry
   */

  export type AggregateImportBatchEntry = {
    _count: ImportBatchEntryCountAggregateOutputType | null
    _avg: ImportBatchEntryAvgAggregateOutputType | null
    _sum: ImportBatchEntrySumAggregateOutputType | null
    _min: ImportBatchEntryMinAggregateOutputType | null
    _max: ImportBatchEntryMaxAggregateOutputType | null
  }

  export type ImportBatchEntryAvgAggregateOutputType = {
    rowNo: number | null
  }

  export type ImportBatchEntrySumAggregateOutputType = {
    rowNo: number | null
  }

  export type ImportBatchEntryMinAggregateOutputType = {
    id: string | null
    batchId: string | null
    rowNo: number | null
    status: $Enums.ImportEntryStatus | null
    payloadHash: string | null
    createdAt: Date | null
    deletedAt: Date | null
  }

  export type ImportBatchEntryMaxAggregateOutputType = {
    id: string | null
    batchId: string | null
    rowNo: number | null
    status: $Enums.ImportEntryStatus | null
    payloadHash: string | null
    createdAt: Date | null
    deletedAt: Date | null
  }

  export type ImportBatchEntryCountAggregateOutputType = {
    id: number
    batchId: number
    rowNo: number
    status: number
    entityIds: number
    payload: number
    payloadHash: number
    errorDetail: number
    createdAt: number
    deletedAt: number
    _all: number
  }


  export type ImportBatchEntryAvgAggregateInputType = {
    rowNo?: true
  }

  export type ImportBatchEntrySumAggregateInputType = {
    rowNo?: true
  }

  export type ImportBatchEntryMinAggregateInputType = {
    id?: true
    batchId?: true
    rowNo?: true
    status?: true
    payloadHash?: true
    createdAt?: true
    deletedAt?: true
  }

  export type ImportBatchEntryMaxAggregateInputType = {
    id?: true
    batchId?: true
    rowNo?: true
    status?: true
    payloadHash?: true
    createdAt?: true
    deletedAt?: true
  }

  export type ImportBatchEntryCountAggregateInputType = {
    id?: true
    batchId?: true
    rowNo?: true
    status?: true
    entityIds?: true
    payload?: true
    payloadHash?: true
    errorDetail?: true
    createdAt?: true
    deletedAt?: true
    _all?: true
  }

  export type ImportBatchEntryAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ImportBatchEntry to aggregate.
     */
    where?: ImportBatchEntryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ImportBatchEntries to fetch.
     */
    orderBy?: ImportBatchEntryOrderByWithRelationInput | ImportBatchEntryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ImportBatchEntryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ImportBatchEntries 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` ImportBatchEntries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ImportBatchEntries
    **/
    _count?: true | ImportBatchEntryCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ImportBatchEntryAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ImportBatchEntrySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ImportBatchEntryMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ImportBatchEntryMaxAggregateInputType
  }

  export type GetImportBatchEntryAggregateType<T extends ImportBatchEntryAggregateArgs> = {
        [P in keyof T & keyof AggregateImportBatchEntry]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateImportBatchEntry[P]>
      : GetScalarType<T[P], AggregateImportBatchEntry[P]>
  }




  export type ImportBatchEntryGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ImportBatchEntryWhereInput
    orderBy?: ImportBatchEntryOrderByWithAggregationInput | ImportBatchEntryOrderByWithAggregationInput[]
    by: ImportBatchEntryScalarFieldEnum[] | ImportBatchEntryScalarFieldEnum
    having?: ImportBatchEntryScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ImportBatchEntryCountAggregateInputType | true
    _avg?: ImportBatchEntryAvgAggregateInputType
    _sum?: ImportBatchEntrySumAggregateInputType
    _min?: ImportBatchEntryMinAggregateInputType
    _max?: ImportBatchEntryMaxAggregateInputType
  }

  export type ImportBatchEntryGroupByOutputType = {
    id: string
    batchId: string
    rowNo: number
    status: $Enums.ImportEntryStatus
    entityIds: string[]
    payload: JsonValue
    payloadHash: string
    errorDetail: JsonValue | null
    createdAt: Date
    deletedAt: Date | null
    _count: ImportBatchEntryCountAggregateOutputType | null
    _avg: ImportBatchEntryAvgAggregateOutputType | null
    _sum: ImportBatchEntrySumAggregateOutputType | null
    _min: ImportBatchEntryMinAggregateOutputType | null
    _max: ImportBatchEntryMaxAggregateOutputType | null
  }

  type GetImportBatchEntryGroupByPayload<T extends ImportBatchEntryGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ImportBatchEntryGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ImportBatchEntryGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ImportBatchEntryGroupByOutputType[P]>
            : GetScalarType<T[P], ImportBatchEntryGroupByOutputType[P]>
        }
      >
    >


  export type ImportBatchEntrySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    batchId?: boolean
    rowNo?: boolean
    status?: boolean
    entityIds?: boolean
    payload?: boolean
    payloadHash?: boolean
    errorDetail?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    batch?: boolean | ImportBatchDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["importBatchEntry"]>

  export type ImportBatchEntrySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    batchId?: boolean
    rowNo?: boolean
    status?: boolean
    entityIds?: boolean
    payload?: boolean
    payloadHash?: boolean
    errorDetail?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    batch?: boolean | ImportBatchDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["importBatchEntry"]>

  export type ImportBatchEntrySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    batchId?: boolean
    rowNo?: boolean
    status?: boolean
    entityIds?: boolean
    payload?: boolean
    payloadHash?: boolean
    errorDetail?: boolean
    createdAt?: boolean
    deletedAt?: boolean
    batch?: boolean | ImportBatchDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["importBatchEntry"]>

  export type ImportBatchEntrySelectScalar = {
    id?: boolean
    batchId?: boolean
    rowNo?: boolean
    status?: boolean
    entityIds?: boolean
    payload?: boolean
    payloadHash?: boolean
    errorDetail?: boolean
    createdAt?: boolean
    deletedAt?: boolean
  }

  export type ImportBatchEntryOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "batchId" | "rowNo" | "status" | "entityIds" | "payload" | "payloadHash" | "errorDetail" | "createdAt" | "deletedAt", ExtArgs["result"]["importBatchEntry"]>
  export type ImportBatchEntryInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    batch?: boolean | ImportBatchDefaultArgs<ExtArgs>
  }
  export type ImportBatchEntryIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    batch?: boolean | ImportBatchDefaultArgs<ExtArgs>
  }
  export type ImportBatchEntryIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    batch?: boolean | ImportBatchDefaultArgs<ExtArgs>
  }

  export type $ImportBatchEntryPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ImportBatchEntry"
    objects: {
      batch: Prisma.$ImportBatchPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      batchId: string
      rowNo: number
      status: $Enums.ImportEntryStatus
      entityIds: string[]
      payload: Prisma.JsonValue
      payloadHash: string
      errorDetail: Prisma.JsonValue | null
      createdAt: Date
      deletedAt: Date | null
    }, ExtArgs["result"]["importBatchEntry"]>
    composites: {}
  }

  type ImportBatchEntryGetPayload<S extends boolean | null | undefined | ImportBatchEntryDefaultArgs> = $Result.GetResult<Prisma.$ImportBatchEntryPayload, S>

  type ImportBatchEntryCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ImportBatchEntryFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ImportBatchEntryCountAggregateInputType | true
    }

  export interface ImportBatchEntryDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ImportBatchEntry'], meta: { name: 'ImportBatchEntry' } }
    /**
     * Find zero or one ImportBatchEntry that matches the filter.
     * @param {ImportBatchEntryFindUniqueArgs} args - Arguments to find a ImportBatchEntry
     * @example
     * // Get one ImportBatchEntry
     * const importBatchEntry = await prisma.importBatchEntry.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ImportBatchEntryFindUniqueArgs>(args: SelectSubset<T, ImportBatchEntryFindUniqueArgs<ExtArgs>>): Prisma__ImportBatchEntryClient<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ImportBatchEntry that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ImportBatchEntryFindUniqueOrThrowArgs} args - Arguments to find a ImportBatchEntry
     * @example
     * // Get one ImportBatchEntry
     * const importBatchEntry = await prisma.importBatchEntry.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ImportBatchEntryFindUniqueOrThrowArgs>(args: SelectSubset<T, ImportBatchEntryFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ImportBatchEntryClient<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ImportBatchEntry 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 {ImportBatchEntryFindFirstArgs} args - Arguments to find a ImportBatchEntry
     * @example
     * // Get one ImportBatchEntry
     * const importBatchEntry = await prisma.importBatchEntry.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ImportBatchEntryFindFirstArgs>(args?: SelectSubset<T, ImportBatchEntryFindFirstArgs<ExtArgs>>): Prisma__ImportBatchEntryClient<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ImportBatchEntry 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 {ImportBatchEntryFindFirstOrThrowArgs} args - Arguments to find a ImportBatchEntry
     * @example
     * // Get one ImportBatchEntry
     * const importBatchEntry = await prisma.importBatchEntry.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ImportBatchEntryFindFirstOrThrowArgs>(args?: SelectSubset<T, ImportBatchEntryFindFirstOrThrowArgs<ExtArgs>>): Prisma__ImportBatchEntryClient<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ImportBatchEntries 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 {ImportBatchEntryFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ImportBatchEntries
     * const importBatchEntries = await prisma.importBatchEntry.findMany()
     * 
     * // Get first 10 ImportBatchEntries
     * const importBatchEntries = await prisma.importBatchEntry.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const importBatchEntryWithIdOnly = await prisma.importBatchEntry.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ImportBatchEntryFindManyArgs>(args?: SelectSubset<T, ImportBatchEntryFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ImportBatchEntry.
     * @param {ImportBatchEntryCreateArgs} args - Arguments to create a ImportBatchEntry.
     * @example
     * // Create one ImportBatchEntry
     * const ImportBatchEntry = await prisma.importBatchEntry.create({
     *   data: {
     *     // ... data to create a ImportBatchEntry
     *   }
     * })
     * 
     */
    create<T extends ImportBatchEntryCreateArgs>(args: SelectSubset<T, ImportBatchEntryCreateArgs<ExtArgs>>): Prisma__ImportBatchEntryClient<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ImportBatchEntries.
     * @param {ImportBatchEntryCreateManyArgs} args - Arguments to create many ImportBatchEntries.
     * @example
     * // Create many ImportBatchEntries
     * const importBatchEntry = await prisma.importBatchEntry.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ImportBatchEntryCreateManyArgs>(args?: SelectSubset<T, ImportBatchEntryCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ImportBatchEntries and returns the data saved in the database.
     * @param {ImportBatchEntryCreateManyAndReturnArgs} args - Arguments to create many ImportBatchEntries.
     * @example
     * // Create many ImportBatchEntries
     * const importBatchEntry = await prisma.importBatchEntry.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ImportBatchEntries and only return the `id`
     * const importBatchEntryWithIdOnly = await prisma.importBatchEntry.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 ImportBatchEntryCreateManyAndReturnArgs>(args?: SelectSubset<T, ImportBatchEntryCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ImportBatchEntry.
     * @param {ImportBatchEntryDeleteArgs} args - Arguments to delete one ImportBatchEntry.
     * @example
     * // Delete one ImportBatchEntry
     * const ImportBatchEntry = await prisma.importBatchEntry.delete({
     *   where: {
     *     // ... filter to delete one ImportBatchEntry
     *   }
     * })
     * 
     */
    delete<T extends ImportBatchEntryDeleteArgs>(args: SelectSubset<T, ImportBatchEntryDeleteArgs<ExtArgs>>): Prisma__ImportBatchEntryClient<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ImportBatchEntry.
     * @param {ImportBatchEntryUpdateArgs} args - Arguments to update one ImportBatchEntry.
     * @example
     * // Update one ImportBatchEntry
     * const importBatchEntry = await prisma.importBatchEntry.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ImportBatchEntryUpdateArgs>(args: SelectSubset<T, ImportBatchEntryUpdateArgs<ExtArgs>>): Prisma__ImportBatchEntryClient<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ImportBatchEntries.
     * @param {ImportBatchEntryDeleteManyArgs} args - Arguments to filter ImportBatchEntries to delete.
     * @example
     * // Delete a few ImportBatchEntries
     * const { count } = await prisma.importBatchEntry.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ImportBatchEntryDeleteManyArgs>(args?: SelectSubset<T, ImportBatchEntryDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ImportBatchEntries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ImportBatchEntryUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ImportBatchEntries
     * const importBatchEntry = await prisma.importBatchEntry.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ImportBatchEntryUpdateManyArgs>(args: SelectSubset<T, ImportBatchEntryUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ImportBatchEntries and returns the data updated in the database.
     * @param {ImportBatchEntryUpdateManyAndReturnArgs} args - Arguments to update many ImportBatchEntries.
     * @example
     * // Update many ImportBatchEntries
     * const importBatchEntry = await prisma.importBatchEntry.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ImportBatchEntries and only return the `id`
     * const importBatchEntryWithIdOnly = await prisma.importBatchEntry.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 ImportBatchEntryUpdateManyAndReturnArgs>(args: SelectSubset<T, ImportBatchEntryUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ImportBatchEntry.
     * @param {ImportBatchEntryUpsertArgs} args - Arguments to update or create a ImportBatchEntry.
     * @example
     * // Update or create a ImportBatchEntry
     * const importBatchEntry = await prisma.importBatchEntry.upsert({
     *   create: {
     *     // ... data to create a ImportBatchEntry
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ImportBatchEntry we want to update
     *   }
     * })
     */
    upsert<T extends ImportBatchEntryUpsertArgs>(args: SelectSubset<T, ImportBatchEntryUpsertArgs<ExtArgs>>): Prisma__ImportBatchEntryClient<$Result.GetResult<Prisma.$ImportBatchEntryPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ImportBatchEntries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ImportBatchEntryCountArgs} args - Arguments to filter ImportBatchEntries to count.
     * @example
     * // Count the number of ImportBatchEntries
     * const count = await prisma.importBatchEntry.count({
     *   where: {
     *     // ... the filter for the ImportBatchEntries we want to count
     *   }
     * })
    **/
    count<T extends ImportBatchEntryCountArgs>(
      args?: Subset<T, ImportBatchEntryCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ImportBatchEntryCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ImportBatchEntry.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ImportBatchEntryAggregateArgs} 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 ImportBatchEntryAggregateArgs>(args: Subset<T, ImportBatchEntryAggregateArgs>): Prisma.PrismaPromise<GetImportBatchEntryAggregateType<T>>

    /**
     * Group by ImportBatchEntry.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ImportBatchEntryGroupByArgs} 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 ImportBatchEntryGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ImportBatchEntryGroupByArgs['orderBy'] }
        : { orderBy?: ImportBatchEntryGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ImportBatchEntryGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetImportBatchEntryGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ImportBatchEntry model
   */
  readonly fields: ImportBatchEntryFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ImportBatchEntry.
   * 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__ImportBatchEntryClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    batch<T extends ImportBatchDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ImportBatchDefaultArgs<ExtArgs>>): Prisma__ImportBatchClient<$Result.GetResult<Prisma.$ImportBatchPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ImportBatchEntry model
   */
  interface ImportBatchEntryFieldRefs {
    readonly id: FieldRef<"ImportBatchEntry", 'String'>
    readonly batchId: FieldRef<"ImportBatchEntry", 'String'>
    readonly rowNo: FieldRef<"ImportBatchEntry", 'Int'>
    readonly status: FieldRef<"ImportBatchEntry", 'ImportEntryStatus'>
    readonly entityIds: FieldRef<"ImportBatchEntry", 'String[]'>
    readonly payload: FieldRef<"ImportBatchEntry", 'Json'>
    readonly payloadHash: FieldRef<"ImportBatchEntry", 'String'>
    readonly errorDetail: FieldRef<"ImportBatchEntry", 'Json'>
    readonly createdAt: FieldRef<"ImportBatchEntry", 'DateTime'>
    readonly deletedAt: FieldRef<"ImportBatchEntry", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ImportBatchEntry findUnique
   */
  export type ImportBatchEntryFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatchEntry to fetch.
     */
    where: ImportBatchEntryWhereUniqueInput
  }

  /**
   * ImportBatchEntry findUniqueOrThrow
   */
  export type ImportBatchEntryFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatchEntry to fetch.
     */
    where: ImportBatchEntryWhereUniqueInput
  }

  /**
   * ImportBatchEntry findFirst
   */
  export type ImportBatchEntryFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatchEntry to fetch.
     */
    where?: ImportBatchEntryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ImportBatchEntries to fetch.
     */
    orderBy?: ImportBatchEntryOrderByWithRelationInput | ImportBatchEntryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ImportBatchEntries.
     */
    cursor?: ImportBatchEntryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ImportBatchEntries 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` ImportBatchEntries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ImportBatchEntries.
     */
    distinct?: ImportBatchEntryScalarFieldEnum | ImportBatchEntryScalarFieldEnum[]
  }

  /**
   * ImportBatchEntry findFirstOrThrow
   */
  export type ImportBatchEntryFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatchEntry to fetch.
     */
    where?: ImportBatchEntryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ImportBatchEntries to fetch.
     */
    orderBy?: ImportBatchEntryOrderByWithRelationInput | ImportBatchEntryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ImportBatchEntries.
     */
    cursor?: ImportBatchEntryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ImportBatchEntries 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` ImportBatchEntries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ImportBatchEntries.
     */
    distinct?: ImportBatchEntryScalarFieldEnum | ImportBatchEntryScalarFieldEnum[]
  }

  /**
   * ImportBatchEntry findMany
   */
  export type ImportBatchEntryFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * Filter, which ImportBatchEntries to fetch.
     */
    where?: ImportBatchEntryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ImportBatchEntries to fetch.
     */
    orderBy?: ImportBatchEntryOrderByWithRelationInput | ImportBatchEntryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ImportBatchEntries.
     */
    cursor?: ImportBatchEntryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ImportBatchEntries 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` ImportBatchEntries.
     */
    skip?: number
    distinct?: ImportBatchEntryScalarFieldEnum | ImportBatchEntryScalarFieldEnum[]
  }

  /**
   * ImportBatchEntry create
   */
  export type ImportBatchEntryCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * The data needed to create a ImportBatchEntry.
     */
    data: XOR<ImportBatchEntryCreateInput, ImportBatchEntryUncheckedCreateInput>
  }

  /**
   * ImportBatchEntry createMany
   */
  export type ImportBatchEntryCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ImportBatchEntries.
     */
    data: ImportBatchEntryCreateManyInput | ImportBatchEntryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ImportBatchEntry createManyAndReturn
   */
  export type ImportBatchEntryCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * The data used to create many ImportBatchEntries.
     */
    data: ImportBatchEntryCreateManyInput | ImportBatchEntryCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ImportBatchEntry update
   */
  export type ImportBatchEntryUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * The data needed to update a ImportBatchEntry.
     */
    data: XOR<ImportBatchEntryUpdateInput, ImportBatchEntryUncheckedUpdateInput>
    /**
     * Choose, which ImportBatchEntry to update.
     */
    where: ImportBatchEntryWhereUniqueInput
  }

  /**
   * ImportBatchEntry updateMany
   */
  export type ImportBatchEntryUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ImportBatchEntries.
     */
    data: XOR<ImportBatchEntryUpdateManyMutationInput, ImportBatchEntryUncheckedUpdateManyInput>
    /**
     * Filter which ImportBatchEntries to update
     */
    where?: ImportBatchEntryWhereInput
    /**
     * Limit how many ImportBatchEntries to update.
     */
    limit?: number
  }

  /**
   * ImportBatchEntry updateManyAndReturn
   */
  export type ImportBatchEntryUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * The data used to update ImportBatchEntries.
     */
    data: XOR<ImportBatchEntryUpdateManyMutationInput, ImportBatchEntryUncheckedUpdateManyInput>
    /**
     * Filter which ImportBatchEntries to update
     */
    where?: ImportBatchEntryWhereInput
    /**
     * Limit how many ImportBatchEntries to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ImportBatchEntry upsert
   */
  export type ImportBatchEntryUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * The filter to search for the ImportBatchEntry to update in case it exists.
     */
    where: ImportBatchEntryWhereUniqueInput
    /**
     * In case the ImportBatchEntry found by the `where` argument doesn't exist, create a new ImportBatchEntry with this data.
     */
    create: XOR<ImportBatchEntryCreateInput, ImportBatchEntryUncheckedCreateInput>
    /**
     * In case the ImportBatchEntry was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ImportBatchEntryUpdateInput, ImportBatchEntryUncheckedUpdateInput>
  }

  /**
   * ImportBatchEntry delete
   */
  export type ImportBatchEntryDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
    /**
     * Filter which ImportBatchEntry to delete.
     */
    where: ImportBatchEntryWhereUniqueInput
  }

  /**
   * ImportBatchEntry deleteMany
   */
  export type ImportBatchEntryDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ImportBatchEntries to delete
     */
    where?: ImportBatchEntryWhereInput
    /**
     * Limit how many ImportBatchEntries to delete.
     */
    limit?: number
  }

  /**
   * ImportBatchEntry without action
   */
  export type ImportBatchEntryDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ImportBatchEntry
     */
    select?: ImportBatchEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the ImportBatchEntry
     */
    omit?: ImportBatchEntryOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ImportBatchEntryInclude<ExtArgs> | null
  }


  /**
   * Enums
   */

  export const TransactionIsolationLevel: {
    ReadUncommitted: 'ReadUncommitted',
    ReadCommitted: 'ReadCommitted',
    RepeatableRead: 'RepeatableRead',
    Serializable: 'Serializable'
  };

  export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]


  export const ApprovalDefinitionScalarFieldEnum: {
    id: 'id',
    key: 'key',
    name: 'name',
    category: 'category',
    description: 'description',
    latestVersion: 'latestVersion',
    organizationId: 'organizationId',
    status: 'status',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedBy: 'updatedBy',
    updatedAt: 'updatedAt'
  };

  export type ApprovalDefinitionScalarFieldEnum = (typeof ApprovalDefinitionScalarFieldEnum)[keyof typeof ApprovalDefinitionScalarFieldEnum]


  export const ApprovalVersionScalarFieldEnum: {
    id: 'id',
    definitionId: 'definitionId',
    version: 'version',
    name: 'name',
    isDefault: 'isDefault',
    processModel: 'processModel',
    settings: 'settings',
    formSchema: 'formSchema',
    ruleConfig: 'ruleConfig',
    status: 'status',
    deployedAt: 'deployedAt',
    deployedBy: 'deployedBy',
    changeLog: 'changeLog',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type ApprovalVersionScalarFieldEnum = (typeof ApprovalVersionScalarFieldEnum)[keyof typeof ApprovalVersionScalarFieldEnum]


  export const ApprovalInstanceScalarFieldEnum: {
    id: 'id',
    versionId: 'versionId',
    businessType: 'businessType',
    businessId: 'businessId',
    businessKey: 'businessKey',
    title: 'title',
    workflowId: 'workflowId',
    workflowRunId: 'workflowRunId',
    initiatorId: 'initiatorId',
    regionId: 'regionId',
    status: 'status',
    currentNodeId: 'currentNodeId',
    currentNode: 'currentNode',
    variables: 'variables',
    totalNodeExecutions: 'totalNodeExecutions',
    endReason: 'endReason',
    endComment: 'endComment',
    priority: 'priority',
    dueDate: 'dueDate',
    startTime: 'startTime',
    endTime: 'endTime'
  };

  export type ApprovalInstanceScalarFieldEnum = (typeof ApprovalInstanceScalarFieldEnum)[keyof typeof ApprovalInstanceScalarFieldEnum]


  export const ApprovalNodeInstanceScalarFieldEnum: {
    id: 'id',
    instanceId: 'instanceId',
    nodeId: 'nodeId',
    nodeName: 'nodeName',
    nodeType: 'nodeType',
    status: 'status',
    assignees: 'assignees',
    approvalMode: 'approvalMode',
    executionCount: 'executionCount',
    result: 'result',
    startTime: 'startTime',
    endTime: 'endTime'
  };

  export type ApprovalNodeInstanceScalarFieldEnum = (typeof ApprovalNodeInstanceScalarFieldEnum)[keyof typeof ApprovalNodeInstanceScalarFieldEnum]


  export const ApprovalTaskScalarFieldEnum: {
    id: 'id',
    instanceId: 'instanceId',
    nodeInstanceId: 'nodeInstanceId',
    name: 'name',
    description: 'description',
    type: 'type',
    assignee: 'assignee',
    candidateUsers: 'candidateUsers',
    candidateGroups: 'candidateGroups',
    owner: 'owner',
    status: 'status',
    version: 'version',
    formData: 'formData',
    priority: 'priority',
    dueDate: 'dueDate',
    reminderCount: 'reminderCount',
    lastReminderAt: 'lastReminderAt',
    autoApproved: 'autoApproved',
    autoApproveReason: 'autoApproveReason',
    isDelegated: 'isDelegated',
    delegatedFrom: 'delegatedFrom',
    delegatedAt: 'delegatedAt',
    delegationReason: 'delegationReason',
    delegationType: 'delegationType',
    delegationState: 'delegationState',
    createTime: 'createTime',
    claimTime: 'claimTime',
    endTime: 'endTime'
  };

  export type ApprovalTaskScalarFieldEnum = (typeof ApprovalTaskScalarFieldEnum)[keyof typeof ApprovalTaskScalarFieldEnum]


  export const ApprovalTaskLogScalarFieldEnum: {
    id: 'id',
    taskId: 'taskId',
    instanceId: 'instanceId',
    action: 'action',
    operatorId: 'operatorId',
    comment: 'comment',
    targetUserId: 'targetUserId',
    targetNodeId: 'targetNodeId',
    addSignUsers: 'addSignUsers',
    formDataChanges: 'formDataChanges',
    attachments: 'attachments',
    ipAddress: 'ipAddress',
    userAgent: 'userAgent',
    requestId: 'requestId',
    riskLevel: 'riskLevel',
    adminReason: 'adminReason',
    metadata: 'metadata',
    actionTime: 'actionTime'
  };

  export type ApprovalTaskLogScalarFieldEnum = (typeof ApprovalTaskLogScalarFieldEnum)[keyof typeof ApprovalTaskLogScalarFieldEnum]


  export const CallbackRetryQueueScalarFieldEnum: {
    id: 'id',
    instanceId: 'instanceId',
    callbackType: 'callbackType',
    callbackUrl: 'callbackUrl',
    payload: 'payload',
    retryCount: 'retryCount',
    maxRetries: 'maxRetries',
    nextRetryAt: 'nextRetryAt',
    lastError: 'lastError',
    status: 'status',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type CallbackRetryQueueScalarFieldEnum = (typeof CallbackRetryQueueScalarFieldEnum)[keyof typeof CallbackRetryQueueScalarFieldEnum]


  export const ReminderQueueScalarFieldEnum: {
    id: 'id',
    taskId: 'taskId',
    instanceId: 'instanceId',
    reminderType: 'reminderType',
    channels: 'channels',
    scheduledAt: 'scheduledAt',
    executedAt: 'executedAt',
    status: 'status',
    createdAt: 'createdAt'
  };

  export type ReminderQueueScalarFieldEnum = (typeof ReminderQueueScalarFieldEnum)[keyof typeof ReminderQueueScalarFieldEnum]


  export const UserDelegationSettingScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    enabled: 'enabled',
    delegateUserId: 'delegateUserId',
    startTime: 'startTime',
    endTime: 'endTime',
    scope: 'scope',
    processKeys: 'processKeys',
    reason: 'reason',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type UserDelegationSettingScalarFieldEnum = (typeof UserDelegationSettingScalarFieldEnum)[keyof typeof UserDelegationSettingScalarFieldEnum]


  export const ApprovalAdminConfigScalarFieldEnum: {
    id: 'id',
    key: 'key',
    value: 'value',
    description: 'description',
    updatedBy: 'updatedBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type ApprovalAdminConfigScalarFieldEnum = (typeof ApprovalAdminConfigScalarFieldEnum)[keyof typeof ApprovalAdminConfigScalarFieldEnum]


  export const ApprovalAdminExportScalarFieldEnum: {
    id: 'id',
    status: 'status',
    format: 'format',
    requestedBy: 'requestedBy',
    filters: 'filters',
    fileKey: 'fileKey',
    fileName: 'fileName',
    fileSize: 'fileSize',
    contentType: 'contentType',
    totalRows: 'totalRows',
    errorMessage: 'errorMessage',
    startedAt: 'startedAt',
    completedAt: 'completedAt',
    expiresAt: 'expiresAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type ApprovalAdminExportScalarFieldEnum = (typeof ApprovalAdminExportScalarFieldEnum)[keyof typeof ApprovalAdminExportScalarFieldEnum]


  export const OrganizationScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    displayName: 'displayName',
    nameEn: 'nameEn',
    nameZh: 'nameZh',
    legalName: 'legalName',
    legalRepresentative: 'legalRepresentative',
    registrationNumber: 'registrationNumber',
    taxId: 'taxId',
    address: 'address',
    phone: 'phone',
    email: 'email',
    website: 'website',
    primaryRegionId: 'primaryRegionId',
    settings: 'settings',
    financialConfig: 'financialConfig',
    complianceConfig: 'complianceConfig',
    status: 'status',
    isActive: 'isActive',
    order: 'order',
    metadata: 'metadata',
    establishedAt: 'establishedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type OrganizationScalarFieldEnum = (typeof OrganizationScalarFieldEnum)[keyof typeof OrganizationScalarFieldEnum]


  export const OrganizationRegionScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    regionId: 'regionId',
    isDefault: 'isDefault',
    createdAt: 'createdAt'
  };

  export type OrganizationRegionScalarFieldEnum = (typeof OrganizationRegionScalarFieldEnum)[keyof typeof OrganizationRegionScalarFieldEnum]


  export const RegionScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    nameEn: 'nameEn',
    nameZh: 'nameZh',
    timezone: 'timezone',
    currency: 'currency',
    locale: 'locale',
    isActive: 'isActive',
    order: 'order',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type RegionScalarFieldEnum = (typeof RegionScalarFieldEnum)[keyof typeof RegionScalarFieldEnum]


  export const DepartmentScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    name: 'name',
    code: 'code',
    parentId: 'parentId',
    headId: 'headId',
    description: 'description',
    order: 'order',
    tenantId: 'tenantId',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type DepartmentScalarFieldEnum = (typeof DepartmentScalarFieldEnum)[keyof typeof DepartmentScalarFieldEnum]


  export const PositionScalarFieldEnum: {
    id: 'id',
    name: 'name',
    code: 'code',
    level: 'level',
    description: 'description',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type PositionScalarFieldEnum = (typeof PositionScalarFieldEnum)[keyof typeof PositionScalarFieldEnum]


  export const UserDepartmentScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    organizationId: 'organizationId',
    departmentId: 'departmentId',
    positionId: 'positionId',
    managerId: 'managerId',
    isPrimary: 'isPrimary',
    title: 'title',
    joinedAt: 'joinedAt',
    leftAt: 'leftAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type UserDepartmentScalarFieldEnum = (typeof UserDepartmentScalarFieldEnum)[keyof typeof UserDepartmentScalarFieldEnum]


  export const ExpenseRequestScalarFieldEnum: {
    id: 'id',
    code: 'code',
    title: 'title',
    description: 'description',
    creatorId: 'creatorId',
    amount: 'amount',
    currency: 'currency',
    category: 'category',
    workflowInstanceId: 'workflowInstanceId',
    status: 'status',
    attachments: 'attachments',
    expenseDate: 'expenseDate',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type ExpenseRequestScalarFieldEnum = (typeof ExpenseRequestScalarFieldEnum)[keyof typeof ExpenseRequestScalarFieldEnum]


  export const ExpenseItemScalarFieldEnum: {
    id: 'id',
    expenseId: 'expenseId',
    description: 'description',
    amount: 'amount',
    date: 'date'
  };

  export type ExpenseItemScalarFieldEnum = (typeof ExpenseItemScalarFieldEnum)[keyof typeof ExpenseItemScalarFieldEnum]


  export const PurchaseRequestScalarFieldEnum: {
    id: 'id',
    code: 'code',
    title: 'title',
    description: 'description',
    creatorId: 'creatorId',
    totalAmount: 'totalAmount',
    currency: 'currency',
    vendorName: 'vendorName',
    vendorContact: 'vendorContact',
    workflowInstanceId: 'workflowInstanceId',
    status: 'status',
    attachments: 'attachments',
    expectedDeliveryDate: 'expectedDeliveryDate',
    actualDeliveryDate: 'actualDeliveryDate',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type PurchaseRequestScalarFieldEnum = (typeof PurchaseRequestScalarFieldEnum)[keyof typeof PurchaseRequestScalarFieldEnum]


  export const PurchaseItemScalarFieldEnum: {
    id: 'id',
    purchaseId: 'purchaseId',
    name: 'name',
    description: 'description',
    quantity: 'quantity',
    unitPrice: 'unitPrice',
    amount: 'amount'
  };

  export type PurchaseItemScalarFieldEnum = (typeof PurchaseItemScalarFieldEnum)[keyof typeof PurchaseItemScalarFieldEnum]


  export const ContractRequestScalarFieldEnum: {
    id: 'id',
    code: 'code',
    title: 'title',
    description: 'description',
    creatorId: 'creatorId',
    contractType: 'contractType',
    partnerName: 'partnerName',
    partnerContact: 'partnerContact',
    amount: 'amount',
    currency: 'currency',
    workflowInstanceId: 'workflowInstanceId',
    status: 'status',
    sealRequired: 'sealRequired',
    sealAppliedAt: 'sealAppliedAt',
    attachments: 'attachments',
    signDate: 'signDate',
    startDate: 'startDate',
    endDate: 'endDate',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type ContractRequestScalarFieldEnum = (typeof ContractRequestScalarFieldEnum)[keyof typeof ContractRequestScalarFieldEnum]


  export const PartScalarFieldEnum: {
    id: 'id',
    partNumber: 'partNumber',
    partNameEn: 'partNameEn',
    partNameCn: 'partNameCn',
    unit: 'unit',
    source: 'source',
    specifications: 'specifications',
    remark: 'remark',
    status: 'status',
    currentStock: 'currentStock',
    minStock: 'minStock',
    maxStock: 'maxStock',
    station: 'station',
    stationId: 'stationId',
    warehouseLocation: 'warehouseLocation',
    warehouseId: 'warehouseId',
    storageLocationId: 'storageLocationId',
    imageUrl: 'imageUrl',
    customFields: 'customFields',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type PartScalarFieldEnum = (typeof PartScalarFieldEnum)[keyof typeof PartScalarFieldEnum]


  export const StationScalarFieldEnum: {
    id: 'id',
    code: 'code',
    nameEn: 'nameEn',
    nameCn: 'nameCn',
    description: 'description',
    area: 'area',
    line: 'line',
    type: 'type',
    status: 'status',
    sortOrder: 'sortOrder',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type StationScalarFieldEnum = (typeof StationScalarFieldEnum)[keyof typeof StationScalarFieldEnum]


  export const WarehouseScalarFieldEnum: {
    id: 'id',
    code: 'code',
    nameEn: 'nameEn',
    nameCn: 'nameCn',
    description: 'description',
    address: 'address',
    contactPerson: 'contactPerson',
    contactPhone: 'contactPhone',
    status: 'status',
    isDefault: 'isDefault',
    sortOrder: 'sortOrder',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type WarehouseScalarFieldEnum = (typeof WarehouseScalarFieldEnum)[keyof typeof WarehouseScalarFieldEnum]


  export const StorageLocationScalarFieldEnum: {
    id: 'id',
    warehouseId: 'warehouseId',
    code: 'code',
    nameEn: 'nameEn',
    nameCn: 'nameCn',
    description: 'description',
    zone: 'zone',
    aisle: 'aisle',
    rack: 'rack',
    level: 'level',
    position: 'position',
    capacity: 'capacity',
    status: 'status',
    sortOrder: 'sortOrder',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type StorageLocationScalarFieldEnum = (typeof StorageLocationScalarFieldEnum)[keyof typeof StorageLocationScalarFieldEnum]


  export const PartLabelScalarFieldEnum: {
    id: 'id',
    partId: 'partId',
    labelCode: 'labelCode',
    qrCodeData: 'qrCodeData',
    template: 'template',
    size: 'size',
    printCount: 'printCount',
    lastPrintedAt: 'lastPrintedAt',
    printedBy: 'printedBy',
    status: 'status',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type PartLabelScalarFieldEnum = (typeof PartLabelScalarFieldEnum)[keyof typeof PartLabelScalarFieldEnum]


  export const InventoryLogScalarFieldEnum: {
    id: 'id',
    partId: 'partId',
    operationType: 'operationType',
    quantity: 'quantity',
    previousStock: 'previousStock',
    newStock: 'newStock',
    station: 'station',
    warehouseLocation: 'warehouseLocation',
    reason: 'reason',
    referenceType: 'referenceType',
    referenceId: 'referenceId',
    operatorId: 'operatorId',
    operatorName: 'operatorName',
    scannedCode: 'scannedCode',
    deviceInfo: 'deviceInfo',
    metadata: 'metadata',
    createdAt: 'createdAt'
  };

  export type InventoryLogScalarFieldEnum = (typeof InventoryLogScalarFieldEnum)[keyof typeof InventoryLogScalarFieldEnum]


  export const StockAlertScalarFieldEnum: {
    id: 'id',
    partId: 'partId',
    alertType: 'alertType',
    severity: 'severity',
    currentStock: 'currentStock',
    threshold: 'threshold',
    message: 'message',
    status: 'status',
    acknowledgedBy: 'acknowledgedBy',
    acknowledgedAt: 'acknowledgedAt',
    resolvedBy: 'resolvedBy',
    resolvedAt: 'resolvedAt',
    resolution: 'resolution',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type StockAlertScalarFieldEnum = (typeof StockAlertScalarFieldEnum)[keyof typeof StockAlertScalarFieldEnum]


  export const InventoryImportLogScalarFieldEnum: {
    id: 'id',
    fileName: 'fileName',
    fileSize: 'fileSize',
    fileHash: 'fileHash',
    status: 'status',
    totalRows: 'totalRows',
    successRows: 'successRows',
    failedRows: 'failedRows',
    skippedRows: 'skippedRows',
    errors: 'errors',
    summary: 'summary',
    importedBy: 'importedBy',
    importedAt: 'importedAt',
    startedAt: 'startedAt',
    completedAt: 'completedAt',
    metadata: 'metadata'
  };

  export type InventoryImportLogScalarFieldEnum = (typeof InventoryImportLogScalarFieldEnum)[keyof typeof InventoryImportLogScalarFieldEnum]


  export const PartColumnConfigScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    name: 'name',
    description: 'description',
    isDefault: 'isDefault',
    isTemplate: 'isTemplate',
    columns: 'columns',
    isPublic: 'isPublic',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type PartColumnConfigScalarFieldEnum = (typeof PartColumnConfigScalarFieldEnum)[keyof typeof PartColumnConfigScalarFieldEnum]


  export const PartGroupScalarFieldEnum: {
    id: 'id',
    name: 'name',
    description: 'description',
    displayOrder: 'displayOrder',
    isActive: 'isActive',
    partsCount: 'partsCount',
    fieldsCount: 'fieldsCount',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedBy: 'updatedBy',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type PartGroupScalarFieldEnum = (typeof PartGroupScalarFieldEnum)[keyof typeof PartGroupScalarFieldEnum]


  export const GroupCustomFieldScalarFieldEnum: {
    id: 'id',
    groupId: 'groupId',
    key: 'key',
    nameEn: 'nameEn',
    type: 'type',
    required: 'required',
    visible: 'visible',
    editable: 'editable',
    searchable: 'searchable',
    options: 'options',
    validation: 'validation',
    description: 'description',
    placeholder: 'placeholder',
    helpText: 'helpText',
    displayOrder: 'displayOrder',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedBy: 'updatedBy',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt',
    nameCn: 'nameCn'
  };

  export type GroupCustomFieldScalarFieldEnum = (typeof GroupCustomFieldScalarFieldEnum)[keyof typeof GroupCustomFieldScalarFieldEnum]


  export const PartGroupRelationScalarFieldEnum: {
    partId: 'partId',
    groupId: 'groupId',
    createdAt: 'createdAt',
    createdBy: 'createdBy'
  };

  export type PartGroupRelationScalarFieldEnum = (typeof PartGroupRelationScalarFieldEnum)[keyof typeof PartGroupRelationScalarFieldEnum]


  export const AIConversationScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    title: 'title',
    status: 'status',
    category: 'category',
    tags: 'tags',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AIConversationScalarFieldEnum = (typeof AIConversationScalarFieldEnum)[keyof typeof AIConversationScalarFieldEnum]


  export const AIMessageScalarFieldEnum: {
    id: 'id',
    conversationId: 'conversationId',
    role: 'role',
    source: 'source',
    content: 'content',
    tokens: 'tokens',
    metadata: 'metadata',
    createdAt: 'createdAt'
  };

  export type AIMessageScalarFieldEnum = (typeof AIMessageScalarFieldEnum)[keyof typeof AIMessageScalarFieldEnum]


  export const AIMessageFeedbackScalarFieldEnum: {
    id: 'id',
    messageId: 'messageId',
    type: 'type',
    comment: 'comment',
    createdAt: 'createdAt'
  };

  export type AIMessageFeedbackScalarFieldEnum = (typeof AIMessageFeedbackScalarFieldEnum)[keyof typeof AIMessageFeedbackScalarFieldEnum]


  export const AIAssistantTicketScalarFieldEnum: {
    id: 'id',
    conversationId: 'conversationId',
    category: 'category',
    priority: 'priority',
    status: 'status',
    title: 'title',
    description: 'description',
    assigneeId: 'assigneeId',
    assigneeTeam: 'assigneeTeam',
    assignedAt: 'assignedAt',
    resolvedAt: 'resolvedAt',
    resolution: 'resolution',
    externalTicketId: 'externalTicketId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AIAssistantTicketScalarFieldEnum = (typeof AIAssistantTicketScalarFieldEnum)[keyof typeof AIAssistantTicketScalarFieldEnum]


  export const AIKnowledgeFixScalarFieldEnum: {
    id: 'id',
    messageId: 'messageId',
    correctAnswer: 'correctAnswer',
    contributorId: 'contributorId',
    status: 'status',
    reviewerId: 'reviewerId',
    reviewNote: 'reviewNote',
    createdAt: 'createdAt',
    reviewedAt: 'reviewedAt'
  };

  export type AIKnowledgeFixScalarFieldEnum = (typeof AIKnowledgeFixScalarFieldEnum)[keyof typeof AIKnowledgeFixScalarFieldEnum]


  export const AIPromptTemplateScalarFieldEnum: {
    id: 'id',
    name: 'name',
    category: 'category',
    content: 'content',
    version: 'version',
    isActive: 'isActive',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AIPromptTemplateScalarFieldEnum = (typeof AIPromptTemplateScalarFieldEnum)[keyof typeof AIPromptTemplateScalarFieldEnum]


  export const AIConfigurationScalarFieldEnum: {
    id: 'id',
    key: 'key',
    value: 'value',
    category: 'category',
    isActive: 'isActive',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AIConfigurationScalarFieldEnum = (typeof AIConfigurationScalarFieldEnum)[keyof typeof AIConfigurationScalarFieldEnum]


  export const AIUsageStatsScalarFieldEnum: {
    id: 'id',
    date: 'date',
    category: 'category',
    totalCalls: 'totalCalls',
    successCalls: 'successCalls',
    failedCalls: 'failedCalls',
    totalTokens: 'totalTokens',
    avgTokensPerCall: 'avgTokensPerCall',
    avgResponseTime: 'avgResponseTime',
    likesCount: 'likesCount',
    dislikesCount: 'dislikesCount',
    escalationCount: 'escalationCount',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AIUsageStatsScalarFieldEnum = (typeof AIUsageStatsScalarFieldEnum)[keyof typeof AIUsageStatsScalarFieldEnum]


  export const AgentSessionScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdById: 'createdById',
    title: 'title',
    surface: 'surface',
    status: 'status',
    projectId: 'projectId',
    personaId: 'personaId',
    planMode: 'planMode',
    permissionMode: 'permissionMode',
    parentSessionId: 'parentSessionId',
    closedAt: 'closedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentSessionScalarFieldEnum = (typeof AgentSessionScalarFieldEnum)[keyof typeof AgentSessionScalarFieldEnum]


  export const AgentMessageScalarFieldEnum: {
    id: 'id',
    sessionId: 'sessionId',
    turnId: 'turnId',
    type: 'type',
    content: 'content',
    payload: 'payload',
    model: 'model',
    sequence: 'sequence',
    createdAt: 'createdAt'
  };

  export type AgentMessageScalarFieldEnum = (typeof AgentMessageScalarFieldEnum)[keyof typeof AgentMessageScalarFieldEnum]


  export const ModelRoutingRuleScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    scope: 'scope',
    scopeRefId: 'scopeRefId',
    name: 'name',
    priority: 'priority',
    enabled: 'enabled',
    pattern: 'pattern',
    primary: 'primary',
    fallbacks: 'fallbacks',
    reasoning: 'reasoning',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type ModelRoutingRuleScalarFieldEnum = (typeof ModelRoutingRuleScalarFieldEnum)[keyof typeof ModelRoutingRuleScalarFieldEnum]


  export const ModelRoutingDecisionScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    sessionId: 'sessionId',
    turnId: 'turnId',
    request: 'request',
    decision: 'decision',
    matchSource: 'matchSource',
    matchedRuleId: 'matchedRuleId',
    primaryProvider: 'primaryProvider',
    primaryModel: 'primaryModel',
    estimatedCostUsd: 'estimatedCostUsd',
    actualCostUsd: 'actualCostUsd',
    actualLatencyMs: 'actualLatencyMs',
    createdAt: 'createdAt'
  };

  export type ModelRoutingDecisionScalarFieldEnum = (typeof ModelRoutingDecisionScalarFieldEnum)[keyof typeof ModelRoutingDecisionScalarFieldEnum]


  export const AgentTrajectoryEventScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    sessionId: 'sessionId',
    turnId: 'turnId',
    eventType: 'eventType',
    payload: 'payload',
    sequenceInSession: 'sequenceInSession',
    prevEventHash: 'prevEventHash',
    eventHash: 'eventHash',
    createdAt: 'createdAt'
  };

  export type AgentTrajectoryEventScalarFieldEnum = (typeof AgentTrajectoryEventScalarFieldEnum)[keyof typeof AgentTrajectoryEventScalarFieldEnum]


  export const AgentQuotaScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    scope: 'scope',
    scopeRefId: 'scopeRefId',
    monthlyTokens: 'monthlyTokens',
    monthlyCostUsd: 'monthlyCostUsd',
    softLimitRatio: 'softLimitRatio',
    enabled: 'enabled',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentQuotaScalarFieldEnum = (typeof AgentQuotaScalarFieldEnum)[keyof typeof AgentQuotaScalarFieldEnum]


  export const AgentQuotaUsageScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    scope: 'scope',
    scopeRefId: 'scopeRefId',
    periodStart: 'periodStart',
    tokensUsed: 'tokensUsed',
    costUsdUsed: 'costUsdUsed',
    updatedAt: 'updatedAt'
  };

  export type AgentQuotaUsageScalarFieldEnum = (typeof AgentQuotaUsageScalarFieldEnum)[keyof typeof AgentQuotaUsageScalarFieldEnum]


  export const OrganizationAgentSettingsScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    defaultPlanMode: 'defaultPlanMode',
    defaultPermissionMode: 'defaultPermissionMode',
    disabledCapabilities: 'disabledCapabilities',
    allowedCliTools: 'allowedCliTools',
    allowedPermissionModes: 'allowedPermissionModes',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type OrganizationAgentSettingsScalarFieldEnum = (typeof OrganizationAgentSettingsScalarFieldEnum)[keyof typeof OrganizationAgentSettingsScalarFieldEnum]


  export const AgentArtifactScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    sessionId: 'sessionId',
    turnId: 'turnId',
    createdById: 'createdById',
    type: 'type',
    title: 'title',
    data: 'data',
    previewUrl: 'previewUrl',
    mimeType: 'mimeType',
    sizeBytes: 'sizeBytes',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentArtifactScalarFieldEnum = (typeof AgentArtifactScalarFieldEnum)[keyof typeof AgentArtifactScalarFieldEnum]


  export const AgentTaskTrackerScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    sessionId: 'sessionId',
    parentTaskId: 'parentTaskId',
    title: 'title',
    description: 'description',
    status: 'status',
    progress: 'progress',
    metadata: 'metadata',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentTaskTrackerScalarFieldEnum = (typeof AgentTaskTrackerScalarFieldEnum)[keyof typeof AgentTaskTrackerScalarFieldEnum]


  export const AgentScratchpadScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    sessionId: 'sessionId',
    key: 'key',
    value: 'value',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentScratchpadScalarFieldEnum = (typeof AgentScratchpadScalarFieldEnum)[keyof typeof AgentScratchpadScalarFieldEnum]


  export const StorageBindingScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    scope: 'scope',
    scopeRefId: 'scopeRefId',
    kind: 'kind',
    displayName: 'displayName',
    config: 'config',
    encryptedSecret: 'encryptedSecret',
    keyId: 'keyId',
    enabled: 'enabled',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type StorageBindingScalarFieldEnum = (typeof StorageBindingScalarFieldEnum)[keyof typeof StorageBindingScalarFieldEnum]


  export const StorageFileScalarFieldEnum: {
    id: 'id',
    bindingId: 'bindingId',
    organizationId: 'organizationId',
    path: 'path',
    externalId: 'externalId',
    sizeBytes: 'sizeBytes',
    mimeType: 'mimeType',
    sha256: 'sha256',
    encrypted: 'encrypted',
    uploadedById: 'uploadedById',
    createdAt: 'createdAt'
  };

  export type StorageFileScalarFieldEnum = (typeof StorageFileScalarFieldEnum)[keyof typeof StorageFileScalarFieldEnum]


  export const AgentProjectScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdById: 'createdById',
    name: 'name',
    icon: 'icon',
    color: 'color',
    instructions: 'instructions',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentProjectScalarFieldEnum = (typeof AgentProjectScalarFieldEnum)[keyof typeof AgentProjectScalarFieldEnum]


  export const AgentMemoryScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdById: 'createdById',
    ownerScope: 'ownerScope',
    content: 'content',
    scope: 'scope',
    category: 'category',
    projectId: 'projectId',
    personaId: 'personaId',
    source: 'source',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentMemoryScalarFieldEnum = (typeof AgentMemoryScalarFieldEnum)[keyof typeof AgentMemoryScalarFieldEnum]


  export const AgentPersonaScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdById: 'createdById',
    systemKey: 'systemKey',
    name: 'name',
    icon: 'icon',
    description: 'description',
    instructions: 'instructions',
    allowedTools: 'allowedTools',
    enabled: 'enabled',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentPersonaScalarFieldEnum = (typeof AgentPersonaScalarFieldEnum)[keyof typeof AgentPersonaScalarFieldEnum]


  export const AgentCronScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdById: 'createdById',
    sessionId: 'sessionId',
    name: 'name',
    cronExpr: 'cronExpr',
    prompt: 'prompt',
    enabled: 'enabled',
    lastRunAt: 'lastRunAt',
    nextRunAt: 'nextRunAt',
    runCount: 'runCount',
    failCount: 'failCount',
    lastError: 'lastError',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentCronScalarFieldEnum = (typeof AgentCronScalarFieldEnum)[keyof typeof AgentCronScalarFieldEnum]


  export const AgentMcpServerScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdById: 'createdById',
    name: 'name',
    transport: 'transport',
    endpoint: 'endpoint',
    args: 'args',
    env: 'env',
    enabled: 'enabled',
    lastConnectedAt: 'lastConnectedAt',
    lastError: 'lastError',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AgentMcpServerScalarFieldEnum = (typeof AgentMcpServerScalarFieldEnum)[keyof typeof AgentMcpServerScalarFieldEnum]


  export const AiUsageTokenScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    name: 'name',
    prefix: 'prefix',
    tokenHash: 'tokenHash',
    lastUsedAt: 'lastUsedAt',
    lastUsedIp: 'lastUsedIp',
    revokedAt: 'revokedAt',
    revokedById: 'revokedById',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AiUsageTokenScalarFieldEnum = (typeof AiUsageTokenScalarFieldEnum)[keyof typeof AiUsageTokenScalarFieldEnum]


  export const AiUsageDeviceScalarFieldEnum: {
    id: 'id',
    deviceId: 'deviceId',
    userId: 'userId',
    hostname: 'hostname',
    osUser: 'osUser',
    osPlatform: 'osPlatform',
    agentVersion: 'agentVersion',
    firstSeenAt: 'firstSeenAt',
    firstSeenIp: 'firstSeenIp',
    lastSeenAt: 'lastSeenAt',
    blockedAt: 'blockedAt',
    blockedById: 'blockedById',
    blockedReason: 'blockedReason',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AiUsageDeviceScalarFieldEnum = (typeof AiUsageDeviceScalarFieldEnum)[keyof typeof AiUsageDeviceScalarFieldEnum]


  export const AiUsageEventScalarFieldEnum: {
    id: 'id',
    rawMessageId: 'rawMessageId',
    deviceId: 'deviceId',
    userId: 'userId',
    tool: 'tool',
    sessionId: 'sessionId',
    projectPath: 'projectPath',
    projectBasename: 'projectBasename',
    model: 'model',
    ts: 'ts',
    receivedAt: 'receivedAt',
    inputTokens: 'inputTokens',
    outputTokens: 'outputTokens',
    cacheCreationTokens: 'cacheCreationTokens',
    cacheReadTokens: 'cacheReadTokens',
    totalTokens: 'totalTokens',
    estimatedCostUsd: 'estimatedCostUsd',
    gitBranch: 'gitBranch',
    agentVersionEvent: 'agentVersionEvent',
    worktreeLabel: 'worktreeLabel',
    cwdBasename: 'cwdBasename',
    turnIndex: 'turnIndex',
    toolUseCount: 'toolUseCount',
    toolNames: 'toolNames',
    stopReason: 'stopReason',
    serviceTier: 'serviceTier',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AiUsageEventScalarFieldEnum = (typeof AiUsageEventScalarFieldEnum)[keyof typeof AiUsageEventScalarFieldEnum]


  export const AiUsageEventDlqScalarFieldEnum: {
    id: 'id',
    deviceId: 'deviceId',
    reason: 'reason',
    rawPayload: 'rawPayload',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AiUsageEventDlqScalarFieldEnum = (typeof AiUsageEventDlqScalarFieldEnum)[keyof typeof AiUsageEventDlqScalarFieldEnum]


  export const AiUsageDailyRollupScalarFieldEnum: {
    id: 'id',
    date: 'date',
    userId: 'userId',
    projectBasename: 'projectBasename',
    tool: 'tool',
    model: 'model',
    totalTokens: 'totalTokens',
    inputTokens: 'inputTokens',
    outputTokens: 'outputTokens',
    cacheCreationTokens: 'cacheCreationTokens',
    cacheReadTokens: 'cacheReadTokens',
    totalCostUsd: 'totalCostUsd',
    eventCount: 'eventCount',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AiUsageDailyRollupScalarFieldEnum = (typeof AiUsageDailyRollupScalarFieldEnum)[keyof typeof AiUsageDailyRollupScalarFieldEnum]


  export const AuditLogScalarFieldEnum: {
    id: 'id',
    region: 'region',
    tenantId: 'tenantId',
    who: 'who',
    what: 'what',
    when: 'when',
    where: 'where',
    why: 'why',
    how: 'how',
    module: 'module',
    action: 'action',
    entityType: 'entityType',
    entityId: 'entityId',
    oldValue: 'oldValue',
    newValue: 'newValue',
    changes: 'changes',
    userId: 'userId',
    sessionId: 'sessionId',
    traceId: 'traceId',
    requestId: 'requestId',
    ipAddress: 'ipAddress',
    userAgent: 'userAgent',
    deviceId: 'deviceId',
    geoLocation: 'geoLocation',
    businessType: 'businessType',
    businessKey: 'businessKey',
    status: 'status',
    errorMessage: 'errorMessage',
    duration: 'duration',
    isFinancial: 'isFinancial',
    isSensitive: 'isSensitive',
    riskLevel: 'riskLevel',
    complianceLevel: 'complianceLevel',
    retentionYears: 'retentionYears',
    previousHash: 'previousHash',
    currentHash: 'currentHash',
    signature: 'signature',
    createdAt: 'createdAt',
    archivedAt: 'archivedAt'
  };

  export type AuditLogScalarFieldEnum = (typeof AuditLogScalarFieldEnum)[keyof typeof AuditLogScalarFieldEnum]


  export const AuditDatabaseChangeLogScalarFieldEnum: {
    id: 'id',
    tableName: 'tableName',
    operation: 'operation',
    recordId: 'recordId',
    oldData: 'oldData',
    newData: 'newData',
    changedFields: 'changedFields',
    userId: 'userId',
    auditLogId: 'auditLogId',
    createdAt: 'createdAt'
  };

  export type AuditDatabaseChangeLogScalarFieldEnum = (typeof AuditDatabaseChangeLogScalarFieldEnum)[keyof typeof AuditDatabaseChangeLogScalarFieldEnum]


  export const AuditSensitiveOperationLogScalarFieldEnum: {
    id: 'id',
    operationType: 'operationType',
    description: 'description',
    requiresApproval: 'requiresApproval',
    approvedBy: 'approvedBy',
    approvalTime: 'approvalTime',
    riskLevel: 'riskLevel',
    mfaVerified: 'mfaVerified',
    userId: 'userId',
    auditLogId: 'auditLogId',
    createdAt: 'createdAt'
  };

  export type AuditSensitiveOperationLogScalarFieldEnum = (typeof AuditSensitiveOperationLogScalarFieldEnum)[keyof typeof AuditSensitiveOperationLogScalarFieldEnum]


  export const AuditIntegrityCheckLogScalarFieldEnum: {
    id: 'id',
    region: 'region',
    tenantId: 'tenantId',
    checkType: 'checkType',
    startTime: 'startTime',
    endTime: 'endTime',
    recordCount: 'recordCount',
    passCount: 'passCount',
    failCount: 'failCount',
    failures: 'failures',
    status: 'status',
    errorMessage: 'errorMessage',
    createdAt: 'createdAt'
  };

  export type AuditIntegrityCheckLogScalarFieldEnum = (typeof AuditIntegrityCheckLogScalarFieldEnum)[keyof typeof AuditIntegrityCheckLogScalarFieldEnum]


  export const AutomationTaskScalarFieldEnum: {
    id: 'id',
    name: 'name',
    code: 'code',
    description: 'description',
    type: 'type',
    status: 'status',
    scheduleType: 'scheduleType',
    scheduleConfig: 'scheduleConfig',
    config: 'config',
    timeout: 'timeout',
    retryCount: 'retryCount',
    lastRunAt: 'lastRunAt',
    lastStatus: 'lastStatus',
    nextRunAt: 'nextRunAt',
    totalRuns: 'totalRuns',
    successRuns: 'successRuns',
    failedRuns: 'failedRuns',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AutomationTaskScalarFieldEnum = (typeof AutomationTaskScalarFieldEnum)[keyof typeof AutomationTaskScalarFieldEnum]


  export const AutomationExecutionScalarFieldEnum: {
    id: 'id',
    taskId: 'taskId',
    status: 'status',
    startedAt: 'startedAt',
    completedAt: 'completedAt',
    duration: 'duration',
    result: 'result',
    error: 'error',
    logs: 'logs',
    triggerType: 'triggerType',
    triggeredBy: 'triggeredBy',
    createdAt: 'createdAt'
  };

  export type AutomationExecutionScalarFieldEnum = (typeof AutomationExecutionScalarFieldEnum)[keyof typeof AutomationExecutionScalarFieldEnum]


  export const DingtalkSyncConfigScalarFieldEnum: {
    id: 'id',
    taskCode: 'taskCode',
    formUuid: 'formUuid',
    appType: 'appType',
    fieldMapping: 'fieldMapping',
    syncDirection: 'syncDirection',
    searchCondition: 'searchCondition',
    lookbackMinutes: 'lookbackMinutes',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DingtalkSyncConfigScalarFieldEnum = (typeof DingtalkSyncConfigScalarFieldEnum)[keyof typeof DingtalkSyncConfigScalarFieldEnum]


  export const DingtalkLeaveCodeScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    year: 'year',
    category: 'category',
    isActive: 'isActive',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DingtalkLeaveCodeScalarFieldEnum = (typeof DingtalkLeaveCodeScalarFieldEnum)[keyof typeof DingtalkLeaveCodeScalarFieldEnum]


  export const DingtalkLeaveQuotaSnapshotScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    employeeName: 'employeeName',
    employeeNumber: 'employeeNumber',
    leaveCode: 'leaveCode',
    leaveType: 'leaveType',
    quotaCycle: 'quotaCycle',
    totalDays: 'totalDays',
    usedDays: 'usedDays',
    remainingDays: 'remainingDays',
    startDate: 'startDate',
    endDate: 'endDate',
    usageRecords: 'usageRecords',
    releaseRecords: 'releaseRecords',
    snapshotAt: 'snapshotAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DingtalkLeaveQuotaSnapshotScalarFieldEnum = (typeof DingtalkLeaveQuotaSnapshotScalarFieldEnum)[keyof typeof DingtalkLeaveQuotaSnapshotScalarFieldEnum]


  export const SapPurchaseSyncRecordScalarFieldEnum: {
    id: 'id',
    serialNumber: 'serialNumber',
    formInstanceId: 'formInstanceId',
    applicantName: 'applicantName',
    budgetAmount: 'budgetAmount',
    sapPrNumber: 'sapPrNumber',
    sapStatus: 'sapStatus',
    sapMessages: 'sapMessages',
    sapRawResponse: 'sapRawResponse',
    approverChain: 'approverChain',
    syncedAt: 'syncedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SapPurchaseSyncRecordScalarFieldEnum = (typeof SapPurchaseSyncRecordScalarFieldEnum)[keyof typeof SapPurchaseSyncRecordScalarFieldEnum]


  export const DingtalkEmployeeScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    name: 'name',
    employeeNumber: 'employeeNumber',
    department: 'department',
    position: 'position',
    rank: 'rank',
    phone: 'phone',
    country: 'country',
    workPlace: 'workPlace',
    contractCompany: 'contractCompany',
    bank: 'bank',
    bankCardLast4: 'bankCardLast4',
    monthlyStandardHours: 'monthlyStandardHours',
    workHourLimit: 'workHourLimit',
    joinDate: 'joinDate',
    workStartDate: 'workStartDate',
    tenureDays: 'tenureDays',
    status: 'status',
    lastSyncedAt: 'lastSyncedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DingtalkEmployeeScalarFieldEnum = (typeof DingtalkEmployeeScalarFieldEnum)[keyof typeof DingtalkEmployeeScalarFieldEnum]


  export const DingtalkEmployeeEmploymentPeriodScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    periodIndex: 'periodIndex',
    joinDate: 'joinDate',
    leaveDate: 'leaveDate',
    countInTenure: 'countInTenure',
    note: 'note',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DingtalkEmployeeEmploymentPeriodScalarFieldEnum = (typeof DingtalkEmployeeEmploymentPeriodScalarFieldEnum)[keyof typeof DingtalkEmployeeEmploymentPeriodScalarFieldEnum]


  export const DingtalkEmployeeSuspensionPeriodScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    startDate: 'startDate',
    endDate: 'endDate',
    reason: 'reason',
    note: 'note',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DingtalkEmployeeSuspensionPeriodScalarFieldEnum = (typeof DingtalkEmployeeSuspensionPeriodScalarFieldEnum)[keyof typeof DingtalkEmployeeSuspensionPeriodScalarFieldEnum]


  export const SapPurchaseCacheScalarFieldEnum: {
    id: 'id',
    serialNumber: 'serialNumber',
    formInstanceId: 'formInstanceId',
    sapEnv: 'sapEnv',
    applicantName: 'applicantName',
    applicantDept: 'applicantDept',
    budgetNumber: 'budgetNumber',
    budgetAmount: 'budgetAmount',
    purchaseProjectDescription: 'purchaseProjectDescription',
    applicationDate: 'applicationDate',
    demandCategory: 'demandCategory',
    purchasingCompanyName: 'purchasingCompanyName',
    materialGroup: 'materialGroup',
    formData: 'formData',
    yidaModifiedAt: 'yidaModifiedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SapPurchaseCacheScalarFieldEnum = (typeof SapPurchaseCacheScalarFieldEnum)[keyof typeof SapPurchaseCacheScalarFieldEnum]


  export const AdpPtoScheduleScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    adpAoid: 'adpAoid',
    leaveDate: 'leaveDate',
    startTime: 'startTime',
    endTime: 'endTime',
    adpEntryId: 'adpEntryId',
    syncedAt: 'syncedAt'
  };

  export type AdpPtoScheduleScalarFieldEnum = (typeof AdpPtoScheduleScalarFieldEnum)[keyof typeof AdpPtoScheduleScalarFieldEnum]


  export const DingtalkAnnualLeaveReleasePlanScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    employeeName: 'employeeName',
    employeeNumber: 'employeeNumber',
    year: 'year',
    status: 'status',
    joinDate: 'joinDate',
    workStartDate: 'workStartDate',
    adjustmentDays: 'adjustmentDays',
    notCountDays: 'notCountDays',
    totalDays: 'totalDays',
    releaseSchedule: 'releaseSchedule',
    lastCalculatedAt: 'lastCalculatedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DingtalkAnnualLeaveReleasePlanScalarFieldEnum = (typeof DingtalkAnnualLeaveReleasePlanScalarFieldEnum)[keyof typeof DingtalkAnnualLeaveReleasePlanScalarFieldEnum]


  export const DevItemScalarFieldEnum: {
    id: 'id',
    code: 'code',
    title: 'title',
    description: 'description',
    itemType: 'itemType',
    status: 'status',
    priority: 'priority',
    severity: 'severity',
    moduleKey: 'moduleKey',
    parentId: 'parentId',
    ownerId: 'ownerId',
    reporterId: 'reporterId',
    reviewerId: 'reviewerId',
    reviewedAt: 'reviewedAt',
    startAt: 'startAt',
    devEtaAt: 'devEtaAt',
    testEtaAt: 'testEtaAt',
    etaAt: 'etaAt',
    devCompletedAt: 'devCompletedAt',
    testCompletedAt: 'testCompletedAt',
    completedAt: 'completedAt',
    content: 'content',
    labels: 'labels',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type DevItemScalarFieldEnum = (typeof DevItemScalarFieldEnum)[keyof typeof DevItemScalarFieldEnum]


  export const DevItemSequenceScalarFieldEnum: {
    prefix: 'prefix',
    current: 'current',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DevItemSequenceScalarFieldEnum = (typeof DevItemSequenceScalarFieldEnum)[keyof typeof DevItemSequenceScalarFieldEnum]


  export const ReleaseNoteScalarFieldEnum: {
    id: 'id',
    version: 'version',
    title: 'title',
    content: 'content',
    releasedAt: 'releasedAt',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type ReleaseNoteScalarFieldEnum = (typeof ReleaseNoteScalarFieldEnum)[keyof typeof ReleaseNoteScalarFieldEnum]


  export const FeedbackScalarFieldEnum: {
    id: 'id',
    type: 'type',
    title: 'title',
    content: 'content',
    attachments: 'attachments',
    pageUrl: 'pageUrl',
    userAgent: 'userAgent',
    status: 'status',
    priority: 'priority',
    adminNote: 'adminNote',
    adminReply: 'adminReply',
    assigneeId: 'assigneeId',
    resolvedAt: 'resolvedAt',
    userId: 'userId',
    region: 'region',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type FeedbackScalarFieldEnum = (typeof FeedbackScalarFieldEnum)[keyof typeof FeedbackScalarFieldEnum]


  export const FormDefinitionScalarFieldEnum: {
    id: 'id',
    key: 'key',
    slug: 'slug',
    slugHistory: 'slugHistory',
    aliases: 'aliases',
    name: 'name',
    category: 'category',
    description: 'description',
    icon: 'icon',
    color: 'color',
    defaultLocale: 'defaultLocale',
    supportedLocales: 'supportedLocales',
    latestVersion: 'latestVersion',
    status: 'status',
    requiresApproval: 'requiresApproval',
    approvalProcessKey: 'approvalProcessKey',
    organizationId: 'organizationId',
    createdBy: 'createdBy',
    updatedBy: 'updatedBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type FormDefinitionScalarFieldEnum = (typeof FormDefinitionScalarFieldEnum)[keyof typeof FormDefinitionScalarFieldEnum]


  export const FormVersionScalarFieldEnum: {
    id: 'id',
    definitionId: 'definitionId',
    version: 'version',
    schema: 'schema',
    uiSchema: 'uiSchema',
    viewSchema: 'viewSchema',
    validation: 'validation',
    changelog: 'changelog',
    nameI18n: 'nameI18n',
    descriptionI18n: 'descriptionI18n',
    isDefault: 'isDefault',
    status: 'status',
    reviewedBy: 'reviewedBy',
    reviewedAt: 'reviewedAt',
    reviewComment: 'reviewComment',
    publishedAt: 'publishedAt',
    createdBy: 'createdBy',
    createdAt: 'createdAt'
  };

  export type FormVersionScalarFieldEnum = (typeof FormVersionScalarFieldEnum)[keyof typeof FormVersionScalarFieldEnum]


  export const FormInstanceScalarFieldEnum: {
    id: 'id',
    formDefinitionId: 'formDefinitionId',
    formVersionId: 'formVersionId',
    formKey: 'formKey',
    formVersion: 'formVersion',
    snapshotId: 'snapshotId',
    businessKey: 'businessKey',
    regionId: 'regionId',
    data: 'data',
    status: 'status',
    createdBy: 'createdBy',
    updatedBy: 'updatedBy',
    submittedBy: 'submittedBy',
    submittedAt: 'submittedAt',
    approvalInstanceId: 'approvalInstanceId',
    approvalStatus: 'approvalStatus',
    approvalStartTime: 'approvalStartTime',
    approvalEndTime: 'approvalEndTime',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type FormInstanceScalarFieldEnum = (typeof FormInstanceScalarFieldEnum)[keyof typeof FormInstanceScalarFieldEnum]


  export const FormTranslationScalarFieldEnum: {
    id: 'id',
    versionId: 'versionId',
    locale: 'locale',
    translations: 'translations',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type FormTranslationScalarFieldEnum = (typeof FormTranslationScalarFieldEnum)[keyof typeof FormTranslationScalarFieldEnum]


  export const FormTemplateScalarFieldEnum: {
    id: 'id',
    nameI18n: 'nameI18n',
    descriptionI18n: 'descriptionI18n',
    category: 'category',
    icon: 'icon',
    color: 'color',
    template: 'template',
    isBuiltin: 'isBuiltin',
    isPublic: 'isPublic',
    createdBy: 'createdBy',
    updatedBy: 'updatedBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type FormTemplateScalarFieldEnum = (typeof FormTemplateScalarFieldEnum)[keyof typeof FormTemplateScalarFieldEnum]


  export const ReleaseSnapshotScalarFieldEnum: {
    id: 'id',
    formDefinitionId: 'formDefinitionId',
    formVersionId: 'formVersionId',
    processDefinitionId: 'processDefinitionId',
    processVersionId: 'processVersionId',
    status: 'status',
    versionName: 'versionName',
    releaseNote: 'releaseNote',
    submittedBy: 'submittedBy',
    submittedAt: 'submittedAt',
    submitComment: 'submitComment',
    reviewedBy: 'reviewedBy',
    reviewedAt: 'reviewedAt',
    reviewComment: 'reviewComment',
    publishedBy: 'publishedBy',
    publishedAt: 'publishedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type ReleaseSnapshotScalarFieldEnum = (typeof ReleaseSnapshotScalarFieldEnum)[keyof typeof ReleaseSnapshotScalarFieldEnum]


  export const FormWebhookScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    name: 'name',
    description: 'description',
    url: 'url',
    secret: 'secret',
    events: 'events',
    enabled: 'enabled',
    maxRetries: 'maxRetries',
    timeoutMs: 'timeoutMs',
    headers: 'headers',
    createdBy: 'createdBy',
    updatedBy: 'updatedBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type FormWebhookScalarFieldEnum = (typeof FormWebhookScalarFieldEnum)[keyof typeof FormWebhookScalarFieldEnum]


  export const FormWebhookLogScalarFieldEnum: {
    id: 'id',
    webhookId: 'webhookId',
    eventType: 'eventType',
    payload: 'payload',
    statusCode: 'statusCode',
    response: 'response',
    success: 'success',
    error: 'error',
    retryCount: 'retryCount',
    duration: 'duration',
    createdAt: 'createdAt'
  };

  export type FormWebhookLogScalarFieldEnum = (typeof FormWebhookLogScalarFieldEnum)[keyof typeof FormWebhookLogScalarFieldEnum]


  export const UserScalarFieldEnum: {
    id: 'id',
    username: 'username',
    email: 'email',
    passwordHash: 'passwordHash',
    displayName: 'displayName',
    avatar: 'avatar',
    phone: 'phone',
    status: 'status',
    source: 'source',
    ldapDn: 'ldapDn',
    employeeId: 'employeeId',
    ldapSyncedAt: 'ldapSyncedAt',
    externalId: 'externalId',
    externalSource: 'externalSource',
    adpAoid: 'adpAoid',
    adpLinkedAt: 'adpLinkedAt',
    tenantId: 'tenantId',
    defaultRegion: 'defaultRegion',
    workCity: 'workCity',
    hiredAt: 'hiredAt',
    terminatedAt: 'terminatedAt',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]


  export const RoleScalarFieldEnum: {
    id: 'id',
    name: 'name',
    code: 'code',
    description: 'description',
    isBuiltIn: 'isBuiltIn',
    enabled: 'enabled',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type RoleScalarFieldEnum = (typeof RoleScalarFieldEnum)[keyof typeof RoleScalarFieldEnum]


  export const PermissionScalarFieldEnum: {
    id: 'id',
    resource: 'resource',
    action: 'action',
    description: 'description',
    module: 'module',
    isBuiltIn: 'isBuiltIn',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type PermissionScalarFieldEnum = (typeof PermissionScalarFieldEnum)[keyof typeof PermissionScalarFieldEnum]


  export const WorkflowRoleScalarFieldEnum: {
    id: 'id',
    name: 'name',
    code: 'code',
    description: 'description',
    ruleType: 'ruleType',
    ruleConfig: 'ruleConfig',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type WorkflowRoleScalarFieldEnum = (typeof WorkflowRoleScalarFieldEnum)[keyof typeof WorkflowRoleScalarFieldEnum]


  export const WorkflowRoleUserScalarFieldEnum: {
    id: 'id',
    workflowRoleId: 'workflowRoleId',
    userId: 'userId',
    createdAt: 'createdAt'
  };

  export type WorkflowRoleUserScalarFieldEnum = (typeof WorkflowRoleUserScalarFieldEnum)[keyof typeof WorkflowRoleUserScalarFieldEnum]


  export const UserRoleScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    roleId: 'roleId',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    lastReviewedAt: 'lastReviewedAt',
    lastReviewedBy: 'lastReviewedBy',
    reviewComment: 'reviewComment'
  };

  export type UserRoleScalarFieldEnum = (typeof UserRoleScalarFieldEnum)[keyof typeof UserRoleScalarFieldEnum]


  export const RolePermissionScalarFieldEnum: {
    id: 'id',
    roleId: 'roleId',
    permissionId: 'permissionId',
    createdAt: 'createdAt'
  };

  export type RolePermissionScalarFieldEnum = (typeof RolePermissionScalarFieldEnum)[keyof typeof RolePermissionScalarFieldEnum]


  export const DataScopeScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    scopeType: 'scopeType',
    rules: 'rules',
    isBuiltIn: 'isBuiltIn',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type DataScopeScalarFieldEnum = (typeof DataScopeScalarFieldEnum)[keyof typeof DataScopeScalarFieldEnum]


  export const RoleDataScopeScalarFieldEnum: {
    id: 'id',
    roleId: 'roleId',
    dataScopeId: 'dataScopeId',
    resource: 'resource',
    createdAt: 'createdAt'
  };

  export type RoleDataScopeScalarFieldEnum = (typeof RoleDataScopeScalarFieldEnum)[keyof typeof RoleDataScopeScalarFieldEnum]


  export const AIToolGrantScalarFieldEnum: {
    id: 'id',
    roleId: 'roleId',
    toolName: 'toolName',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdBy: 'createdBy'
  };

  export type AIToolGrantScalarFieldEnum = (typeof AIToolGrantScalarFieldEnum)[keyof typeof AIToolGrantScalarFieldEnum]


  export const AIToolGrantUserScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    toolName: 'toolName',
    effect: 'effect',
    reason: 'reason',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdBy: 'createdBy'
  };

  export type AIToolGrantUserScalarFieldEnum = (typeof AIToolGrantUserScalarFieldEnum)[keyof typeof AIToolGrantUserScalarFieldEnum]


  export const PermissionDelegationScalarFieldEnum: {
    id: 'id',
    fromUserId: 'fromUserId',
    toUserId: 'toUserId',
    resource: 'resource',
    validFrom: 'validFrom',
    validTo: 'validTo',
    reason: 'reason',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    revokedAt: 'revokedAt'
  };

  export type PermissionDelegationScalarFieldEnum = (typeof PermissionDelegationScalarFieldEnum)[keyof typeof PermissionDelegationScalarFieldEnum]


  export const FieldPermissionScalarFieldEnum: {
    id: 'id',
    roleId: 'roleId',
    resource: 'resource',
    field: 'field',
    access: 'access',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type FieldPermissionScalarFieldEnum = (typeof FieldPermissionScalarFieldEnum)[keyof typeof FieldPermissionScalarFieldEnum]


  export const IamAuditLogScalarFieldEnum: {
    id: 'id',
    actor: 'actor',
    action: 'action',
    resource: 'resource',
    targetId: 'targetId',
    before: 'before',
    after: 'after',
    ip: 'ip',
    userAgent: 'userAgent',
    timestamp: 'timestamp'
  };

  export type IamAuditLogScalarFieldEnum = (typeof IamAuditLogScalarFieldEnum)[keyof typeof IamAuditLogScalarFieldEnum]


  export const EmployeeSlugBindingScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    employeeSlug: 'employeeSlug',
    sourceMailNickname: 'sourceMailNickname',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type EmployeeSlugBindingScalarFieldEnum = (typeof EmployeeSlugBindingScalarFieldEnum)[keyof typeof EmployeeSlugBindingScalarFieldEnum]


  export const InternalAppScalarFieldEnum: {
    id: 'id',
    employeeSlug: 'employeeSlug',
    appSlug: 'appSlug',
    displayName: 'displayName',
    runtime: 'runtime',
    status: 'status',
    url: 'url',
    giteaRepoFullName: 'giteaRepoFullName',
    lastDeployedAt: 'lastDeployedAt',
    currentDeploymentId: 'currentDeploymentId',
    destroyedAt: 'destroyedAt',
    retentionUntil: 'retentionUntil',
    forceDisabledAt: 'forceDisabledAt',
    forceDisabledReason: 'forceDisabledReason',
    forceDisabledById: 'forceDisabledById',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type InternalAppScalarFieldEnum = (typeof InternalAppScalarFieldEnum)[keyof typeof InternalAppScalarFieldEnum]


  export const InternalAppDeploymentScalarFieldEnum: {
    id: 'id',
    appId: 'appId',
    commitSha: 'commitSha',
    status: 'status',
    buildLogSummary: 'buildLogSummary',
    healthCheckLog: 'healthCheckLog',
    startedAt: 'startedAt',
    finishedAt: 'finishedAt',
    trigger: 'trigger',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type InternalAppDeploymentScalarFieldEnum = (typeof InternalAppDeploymentScalarFieldEnum)[keyof typeof InternalAppDeploymentScalarFieldEnum]


  export const InternalAppEnvVarScalarFieldEnum: {
    id: 'id',
    appId: 'appId',
    key: 'key',
    valueEncrypted: 'valueEncrypted',
    valueIv: 'valueIv',
    kmsKeyVersion: 'kmsKeyVersion',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type InternalAppEnvVarScalarFieldEnum = (typeof InternalAppEnvVarScalarFieldEnum)[keyof typeof InternalAppEnvVarScalarFieldEnum]


  export const InternalAppEmployeeTokenScalarFieldEnum: {
    id: 'id',
    employeeSlug: 'employeeSlug',
    tokenHash: 'tokenHash',
    prefix: 'prefix',
    status: 'status',
    issuedAt: 'issuedAt',
    expiresAt: 'expiresAt',
    revokedAt: 'revokedAt',
    revokedReason: 'revokedReason',
    lastUsedAt: 'lastUsedAt',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type InternalAppEmployeeTokenScalarFieldEnum = (typeof InternalAppEmployeeTokenScalarFieldEnum)[keyof typeof InternalAppEmployeeTokenScalarFieldEnum]


  export const InternalAppEventScalarFieldEnum: {
    id: 'id',
    appId: 'appId',
    employeeSlug: 'employeeSlug',
    actorId: 'actorId',
    actorRole: 'actorRole',
    eventType: 'eventType',
    outcome: 'outcome',
    errorCode: 'errorCode',
    durationMs: 'durationMs',
    payload: 'payload',
    requestId: 'requestId',
    ipAddr: 'ipAddr',
    userAgent: 'userAgent',
    organizationId: 'organizationId',
    createdAt: 'createdAt'
  };

  export type InternalAppEventScalarFieldEnum = (typeof InternalAppEventScalarFieldEnum)[keyof typeof InternalAppEventScalarFieldEnum]


  export const KnowledgeArticleScalarFieldEnum: {
    id: 'id',
    title: 'title',
    content: 'content',
    status: 'status',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type KnowledgeArticleScalarFieldEnum = (typeof KnowledgeArticleScalarFieldEnum)[keyof typeof KnowledgeArticleScalarFieldEnum]


  export const SPDocumentIndexScalarFieldEnum: {
    id: 'id',
    spItemId: 'spItemId',
    spDriveId: 'spDriveId',
    spSiteId: 'spSiteId',
    title: 'title',
    webUrl: 'webUrl',
    fileType: 'fileType',
    fileExtension: 'fileExtension',
    size: 'size',
    spEtag: 'spEtag',
    docAuthorityLevel: 'docAuthorityLevel',
    docLifecycleStatus: 'docLifecycleStatus',
    docType: 'docType',
    createdBy: 'createdBy',
    lastModifiedBy: 'lastModifiedBy',
    spCreatedAt: 'spCreatedAt',
    spModifiedAt: 'spModifiedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SPDocumentIndexScalarFieldEnum = (typeof SPDocumentIndexScalarFieldEnum)[keyof typeof SPDocumentIndexScalarFieldEnum]


  export const SPFolderIndexScalarFieldEnum: {
    id: 'id',
    spItemId: 'spItemId',
    spDriveId: 'spDriveId',
    spSiteId: 'spSiteId',
    title: 'title',
    folderPath: 'folderPath',
    webUrl: 'webUrl',
    createdBy: 'createdBy',
    lastModifiedBy: 'lastModifiedBy',
    spCreatedAt: 'spCreatedAt',
    spModifiedAt: 'spModifiedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SPFolderIndexScalarFieldEnum = (typeof SPFolderIndexScalarFieldEnum)[keyof typeof SPFolderIndexScalarFieldEnum]


  export const RagflowDocumentScalarFieldEnum: {
    id: 'id',
    sourceType: 'sourceType',
    sourceId: 'sourceId',
    ragflowDocumentId: 'ragflowDocumentId',
    datasetId: 'datasetId',
    contentHash: 'contentHash',
    status: 'status',
    syncError: 'syncError',
    lastSyncedAt: 'lastSyncedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type RagflowDocumentScalarFieldEnum = (typeof RagflowDocumentScalarFieldEnum)[keyof typeof RagflowDocumentScalarFieldEnum]


  export const AIQALogScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    question: 'question',
    answer: 'answer',
    sourceDocuments: 'sourceDocuments',
    confidence: 'confidence',
    modelUsed: 'modelUsed',
    tokensUsed: 'tokensUsed',
    cost: 'cost',
    responseTimeMs: 'responseTimeMs',
    feedback: 'feedback',
    feedbackComment: 'feedbackComment',
    createdAt: 'createdAt'
  };

  export type AIQALogScalarFieldEnum = (typeof AIQALogScalarFieldEnum)[keyof typeof AIQALogScalarFieldEnum]


  export const SearchLogScalarFieldEnum: {
    id: 'id',
    userIdHash: 'userIdHash',
    query: 'query',
    resultCount: 'resultCount',
    responseTimeMs: 'responseTimeMs',
    searchType: 'searchType',
    filters: 'filters',
    createdAt: 'createdAt'
  };

  export type SearchLogScalarFieldEnum = (typeof SearchLogScalarFieldEnum)[keyof typeof SearchLogScalarFieldEnum]


  export const DocumentViewScalarFieldEnum: {
    id: 'id',
    spDocumentId: 'spDocumentId',
    articleId: 'articleId',
    userId: 'userId',
    viewedAt: 'viewedAt',
    viewDate: 'viewDate'
  };

  export type DocumentViewScalarFieldEnum = (typeof DocumentViewScalarFieldEnum)[keyof typeof DocumentViewScalarFieldEnum]


  export const DocumentLikeScalarFieldEnum: {
    id: 'id',
    spDocumentId: 'spDocumentId',
    articleId: 'articleId',
    userId: 'userId',
    type: 'type',
    createdAt: 'createdAt'
  };

  export type DocumentLikeScalarFieldEnum = (typeof DocumentLikeScalarFieldEnum)[keyof typeof DocumentLikeScalarFieldEnum]


  export const DocumentCommentScalarFieldEnum: {
    id: 'id',
    spDocumentId: 'spDocumentId',
    articleId: 'articleId',
    userId: 'userId',
    content: 'content',
    parentId: 'parentId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type DocumentCommentScalarFieldEnum = (typeof DocumentCommentScalarFieldEnum)[keyof typeof DocumentCommentScalarFieldEnum]


  export const UserMentionScalarFieldEnum: {
    id: 'id',
    commentId: 'commentId',
    mentionedUserId: 'mentionedUserId',
    readAt: 'readAt',
    createdAt: 'createdAt'
  };

  export type UserMentionScalarFieldEnum = (typeof UserMentionScalarFieldEnum)[keyof typeof UserMentionScalarFieldEnum]


  export const SyncTaskScalarFieldEnum: {
    id: 'id',
    taskType: 'taskType',
    triggerSource: 'triggerSource',
    status: 'status',
    totalItems: 'totalItems',
    processedItems: 'processedItems',
    processingItems: 'processingItems',
    failedItems: 'failedItems',
    skippedItems: 'skippedItems',
    processedTokens: 'processedTokens',
    processedChunks: 'processedChunks',
    error: 'error',
    startedAt: 'startedAt',
    completedAt: 'completedAt',
    lastProgressAt: 'lastProgressAt',
    createdAt: 'createdAt'
  };

  export type SyncTaskScalarFieldEnum = (typeof SyncTaskScalarFieldEnum)[keyof typeof SyncTaskScalarFieldEnum]


  export const SyncTaskSkippedItemScalarFieldEnum: {
    id: 'id',
    taskId: 'taskId',
    sourceType: 'sourceType',
    sourceId: 'sourceId',
    filename: 'filename',
    fileExtension: 'fileExtension',
    mimeType: 'mimeType',
    reason: 'reason',
    createdAt: 'createdAt'
  };

  export type SyncTaskSkippedItemScalarFieldEnum = (typeof SyncTaskSkippedItemScalarFieldEnum)[keyof typeof SyncTaskSkippedItemScalarFieldEnum]


  export const SyncTaskProcessedItemScalarFieldEnum: {
    id: 'id',
    taskId: 'taskId',
    sourceType: 'sourceType',
    sourceId: 'sourceId',
    filename: 'filename',
    fileExtension: 'fileExtension',
    mimeType: 'mimeType',
    ragflowDocumentId: 'ragflowDocumentId',
    tokenCount: 'tokenCount',
    chunkCount: 'chunkCount',
    sourceSizeBytes: 'sourceSizeBytes',
    status: 'status',
    createdAt: 'createdAt'
  };

  export type SyncTaskProcessedItemScalarFieldEnum = (typeof SyncTaskProcessedItemScalarFieldEnum)[keyof typeof SyncTaskProcessedItemScalarFieldEnum]


  export const SyncTaskFailedItemScalarFieldEnum: {
    id: 'id',
    taskId: 'taskId',
    sourceType: 'sourceType',
    sourceId: 'sourceId',
    filename: 'filename',
    fileExtension: 'fileExtension',
    mimeType: 'mimeType',
    error: 'error',
    createdAt: 'createdAt'
  };

  export type SyncTaskFailedItemScalarFieldEnum = (typeof SyncTaskFailedItemScalarFieldEnum)[keyof typeof SyncTaskFailedItemScalarFieldEnum]


  export const SharePointSyncCursorScalarFieldEnum: {
    id: 'id',
    driveId: 'driveId',
    scopePath: 'scopePath',
    deltaLink: 'deltaLink',
    lastSyncedAt: 'lastSyncedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SharePointSyncCursorScalarFieldEnum = (typeof SharePointSyncCursorScalarFieldEnum)[keyof typeof SharePointSyncCursorScalarFieldEnum]


  export const WebhookSubscriptionScalarFieldEnum: {
    id: 'id',
    subscriptionId: 'subscriptionId',
    driveId: 'driveId',
    resource: 'resource',
    expirationDateTime: 'expirationDateTime',
    isActive: 'isActive',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type WebhookSubscriptionScalarFieldEnum = (typeof WebhookSubscriptionScalarFieldEnum)[keyof typeof WebhookSubscriptionScalarFieldEnum]


  export const SystemLogScalarFieldEnum: {
    id: 'id',
    traceId: 'traceId',
    spanId: 'spanId',
    parentSpanId: 'parentSpanId',
    requestId: 'requestId',
    level: 'level',
    message: 'message',
    method: 'method',
    url: 'url',
    statusCode: 'statusCode',
    durationMs: 'durationMs',
    userId: 'userId',
    userName: 'userName',
    clientIp: 'clientIp',
    userAgent: 'userAgent',
    service: 'service',
    region: 'region',
    instance: 'instance',
    errorType: 'errorType',
    errorMessage: 'errorMessage',
    errorCode: 'errorCode',
    errorStack: 'errorStack',
    requestBody: 'requestBody',
    responseBody: 'responseBody',
    metadata: 'metadata',
    createdAt: 'createdAt'
  };

  export type SystemLogScalarFieldEnum = (typeof SystemLogScalarFieldEnum)[keyof typeof SystemLogScalarFieldEnum]


  export const LogConfigScalarFieldEnum: {
    id: 'id',
    key: 'key',
    value: 'value',
    description: 'description',
    updatedAt: 'updatedAt',
    updatedBy: 'updatedBy'
  };

  export type LogConfigScalarFieldEnum = (typeof LogConfigScalarFieldEnum)[keyof typeof LogConfigScalarFieldEnum]


  export const LogAlertScalarFieldEnum: {
    id: 'id',
    type: 'type',
    severity: 'severity',
    message: 'message',
    context: 'context',
    channels: 'channels',
    status: 'status',
    errorMessage: 'errorMessage',
    traceId: 'traceId',
    logId: 'logId',
    acknowledgedAt: 'acknowledgedAt',
    acknowledgedBy: 'acknowledgedBy',
    createdAt: 'createdAt'
  };

  export type LogAlertScalarFieldEnum = (typeof LogAlertScalarFieldEnum)[keyof typeof LogAlertScalarFieldEnum]


  export const LogCleanupRecordScalarFieldEnum: {
    id: 'id',
    type: 'type',
    olderThanDays: 'olderThanDays',
    dryRun: 'dryRun',
    deletedCount: 'deletedCount',
    freedBytes: 'freedBytes',
    status: 'status',
    errorMessage: 'errorMessage',
    startedAt: 'startedAt',
    completedAt: 'completedAt'
  };

  export type LogCleanupRecordScalarFieldEnum = (typeof LogCleanupRecordScalarFieldEnum)[keyof typeof LogCleanupRecordScalarFieldEnum]


  export const CustomerScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    type: 'type',
    industry: 'industry',
    countryCode: 'countryCode',
    taxId: 'taxId',
    creditLimit: 'creditLimit',
    currencyCode: 'currencyCode',
    enabled: 'enabled',
    metadata: 'metadata',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type CustomerScalarFieldEnum = (typeof CustomerScalarFieldEnum)[keyof typeof CustomerScalarFieldEnum]


  export const CustomerContactScalarFieldEnum: {
    id: 'id',
    customerId: 'customerId',
    name: 'name',
    role: 'role',
    phone: 'phone',
    email: 'email',
    isPrimary: 'isPrimary',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type CustomerContactScalarFieldEnum = (typeof CustomerContactScalarFieldEnum)[keyof typeof CustomerContactScalarFieldEnum]


  export const CustomerAddressScalarFieldEnum: {
    id: 'id',
    customerId: 'customerId',
    addressType: 'addressType',
    line1: 'line1',
    line2: 'line2',
    city: 'city',
    state: 'state',
    postalCode: 'postalCode',
    countryCode: 'countryCode',
    isDefault: 'isDefault',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type CustomerAddressScalarFieldEnum = (typeof CustomerAddressScalarFieldEnum)[keyof typeof CustomerAddressScalarFieldEnum]


  export const SupplierScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    type: 'type',
    countryCode: 'countryCode',
    currencyCode: 'currencyCode',
    paymentTerms: 'paymentTerms',
    leadTimeDays: 'leadTimeDays',
    enabled: 'enabled',
    metadata: 'metadata',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type SupplierScalarFieldEnum = (typeof SupplierScalarFieldEnum)[keyof typeof SupplierScalarFieldEnum]


  export const SupplierContactScalarFieldEnum: {
    id: 'id',
    supplierId: 'supplierId',
    name: 'name',
    role: 'role',
    phone: 'phone',
    email: 'email',
    isPrimary: 'isPrimary',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SupplierContactScalarFieldEnum = (typeof SupplierContactScalarFieldEnum)[keyof typeof SupplierContactScalarFieldEnum]


  export const PartnerScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    role: 'role',
    countryCode: 'countryCode',
    currencyCode: 'currencyCode',
    enabled: 'enabled',
    metadata: 'metadata',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type PartnerScalarFieldEnum = (typeof PartnerScalarFieldEnum)[keyof typeof PartnerScalarFieldEnum]


  export const PartnerContactScalarFieldEnum: {
    id: 'id',
    partnerId: 'partnerId',
    name: 'name',
    role: 'role',
    phone: 'phone',
    email: 'email',
    isPrimary: 'isPrimary',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type PartnerContactScalarFieldEnum = (typeof PartnerContactScalarFieldEnum)[keyof typeof PartnerContactScalarFieldEnum]


  export const LocationScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    type: 'type',
    countryCode: 'countryCode',
    address: 'address',
    latitude: 'latitude',
    longitude: 'longitude',
    parentLocationId: 'parentLocationId',
    customerId: 'customerId',
    enabled: 'enabled',
    metadata: 'metadata',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type LocationScalarFieldEnum = (typeof LocationScalarFieldEnum)[keyof typeof LocationScalarFieldEnum]


  export const AttachmentScalarFieldEnum: {
    id: 'id',
    ownerType: 'ownerType',
    ownerId: 'ownerId',
    category: 'category',
    filename: 'filename',
    mimeType: 'mimeType',
    size: 'size',
    storagePath: 'storagePath',
    organizationId: 'organizationId',
    uploadedById: 'uploadedById',
    uploadedAt: 'uploadedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type AttachmentScalarFieldEnum = (typeof AttachmentScalarFieldEnum)[keyof typeof AttachmentScalarFieldEnum]


  export const CurrencyScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    symbol: 'symbol',
    decimals: 'decimals',
    enabled: 'enabled',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type CurrencyScalarFieldEnum = (typeof CurrencyScalarFieldEnum)[keyof typeof CurrencyScalarFieldEnum]


  export const CountryScalarFieldEnum: {
    id: 'id',
    code: 'code',
    iso3: 'iso3',
    name: 'name',
    region: 'region',
    enabled: 'enabled',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type CountryScalarFieldEnum = (typeof CountryScalarFieldEnum)[keyof typeof CountryScalarFieldEnum]


  export const GeoRegionScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    countries: 'countries',
    enabled: 'enabled',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type GeoRegionScalarFieldEnum = (typeof GeoRegionScalarFieldEnum)[keyof typeof GeoRegionScalarFieldEnum]


  export const UnitOfMeasureScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    category: 'category',
    enabled: 'enabled',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type UnitOfMeasureScalarFieldEnum = (typeof UnitOfMeasureScalarFieldEnum)[keyof typeof UnitOfMeasureScalarFieldEnum]


  export const DictionaryScalarFieldEnum: {
    id: 'id',
    category: 'category',
    code: 'code',
    labelEn: 'labelEn',
    labelZh: 'labelZh',
    sortOrder: 'sortOrder',
    enabled: 'enabled',
    metadata: 'metadata',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type DictionaryScalarFieldEnum = (typeof DictionaryScalarFieldEnum)[keyof typeof DictionaryScalarFieldEnum]


  export const MeetingScalarFieldEnum: {
    id: 'id',
    title: 'title',
    description: 'description',
    startTime: 'startTime',
    endTime: 'endTime',
    timezone: 'timezone',
    location: 'location',
    type: 'type',
    status: 'status',
    qrCodeOnline: 'qrCodeOnline',
    qrCodeOffline: 'qrCodeOffline',
    creatorId: 'creatorId',
    seriesId: 'seriesId',
    instanceNumber: 'instanceNumber',
    isSeriesMaster: 'isSeriesMaster',
    hasCustomAttendees: 'hasCustomAttendees',
    city: 'city',
    enforceCheckinMode: 'enforceCheckinMode',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingScalarFieldEnum = (typeof MeetingScalarFieldEnum)[keyof typeof MeetingScalarFieldEnum]


  export const MeetingSeriesScalarFieldEnum: {
    id: 'id',
    title: 'title',
    description: 'description',
    pattern: 'pattern',
    frequency: 'frequency',
    startDate: 'startDate',
    endDate: 'endDate',
    maxOccurrences: 'maxOccurrences',
    timezone: 'timezone',
    location: 'location',
    type: 'type',
    creatorId: 'creatorId',
    isActive: 'isActive',
    city: 'city',
    enforceCheckinMode: 'enforceCheckinMode',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingSeriesScalarFieldEnum = (typeof MeetingSeriesScalarFieldEnum)[keyof typeof MeetingSeriesScalarFieldEnum]


  export const MeetingAttendanceScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    meetingId: 'meetingId',
    status: 'status',
    checkinTime: 'checkinTime',
    checkoutTime: 'checkoutTime',
    isLate: 'isLate',
    isEarlyLeave: 'isEarlyLeave',
    notes: 'notes',
    checkinType: 'checkinType',
    deviceId: 'deviceId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingAttendanceScalarFieldEnum = (typeof MeetingAttendanceScalarFieldEnum)[keyof typeof MeetingAttendanceScalarFieldEnum]


  export const MeetingRequiredAttendeeScalarFieldEnum: {
    id: 'id',
    meetingId: 'meetingId',
    userId: 'userId',
    role: 'role',
    checkinMode: 'checkinMode',
    createdAt: 'createdAt'
  };

  export type MeetingRequiredAttendeeScalarFieldEnum = (typeof MeetingRequiredAttendeeScalarFieldEnum)[keyof typeof MeetingRequiredAttendeeScalarFieldEnum]


  export const MeetingSeriesAttendeePreferenceScalarFieldEnum: {
    seriesId: 'seriesId',
    userId: 'userId',
    defaultCheckinMode: 'defaultCheckinMode',
    updatedByUserId: 'updatedByUserId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingSeriesAttendeePreferenceScalarFieldEnum = (typeof MeetingSeriesAttendeePreferenceScalarFieldEnum)[keyof typeof MeetingSeriesAttendeePreferenceScalarFieldEnum]


  export const MeetingSeriesAttendeeExceptionScalarFieldEnum: {
    seriesId: 'seriesId',
    userId: 'userId',
    excludedBy: 'excludedBy',
    excludedAt: 'excludedAt',
    reason: 'reason'
  };

  export type MeetingSeriesAttendeeExceptionScalarFieldEnum = (typeof MeetingSeriesAttendeeExceptionScalarFieldEnum)[keyof typeof MeetingSeriesAttendeeExceptionScalarFieldEnum]


  export const MeetingExternalAttendeeScalarFieldEnum: {
    id: 'id',
    meetingId: 'meetingId',
    email: 'email',
    displayName: 'displayName',
    attendeeType: 'attendeeType',
    response: 'response',
    sourceRole: 'sourceRole',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingExternalAttendeeScalarFieldEnum = (typeof MeetingExternalAttendeeScalarFieldEnum)[keyof typeof MeetingExternalAttendeeScalarFieldEnum]


  export const MeetingTemplateScalarFieldEnum: {
    id: 'id',
    name: 'name',
    title: 'title',
    description: 'description',
    duration: 'duration',
    timezone: 'timezone',
    location: 'location',
    type: 'type',
    creatorId: 'creatorId',
    isPublic: 'isPublic',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingTemplateScalarFieldEnum = (typeof MeetingTemplateScalarFieldEnum)[keyof typeof MeetingTemplateScalarFieldEnum]


  export const MeetingTemplateAttendeeScalarFieldEnum: {
    id: 'id',
    templateId: 'templateId',
    userId: 'userId',
    createdAt: 'createdAt'
  };

  export type MeetingTemplateAttendeeScalarFieldEnum = (typeof MeetingTemplateAttendeeScalarFieldEnum)[keyof typeof MeetingTemplateAttendeeScalarFieldEnum]


  export const MeetingAttendanceLeaveRecordScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    type: 'type',
    startDate: 'startDate',
    endDate: 'endDate',
    reason: 'reason',
    status: 'status',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingAttendanceLeaveRecordScalarFieldEnum = (typeof MeetingAttendanceLeaveRecordScalarFieldEnum)[keyof typeof MeetingAttendanceLeaveRecordScalarFieldEnum]


  export const MeetingAttendanceAuditLogScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    userEmail: 'userEmail',
    userName: 'userName',
    userRole: 'userRole',
    action: 'action',
    resource: 'resource',
    resourceId: 'resourceId',
    method: 'method',
    endpoint: 'endpoint',
    statusCode: 'statusCode',
    source: 'source',
    deviceId: 'deviceId',
    sessionId: 'sessionId',
    requestId: 'requestId',
    traceId: 'traceId',
    geoLocation: 'geoLocation',
    ipAddress: 'ipAddress',
    userAgent: 'userAgent',
    fieldDiffs: 'fieldDiffs',
    requestBody: 'requestBody',
    changes: 'changes',
    reasonCode: 'reasonCode',
    reasonText: 'reasonText',
    errorMessage: 'errorMessage',
    prevHash: 'prevHash',
    hash: 'hash',
    isRedacted: 'isRedacted',
    isTombstoned: 'isTombstoned',
    retentionUntil: 'retentionUntil',
    duration: 'duration',
    createdAt: 'createdAt'
  };

  export type MeetingAttendanceAuditLogScalarFieldEnum = (typeof MeetingAttendanceAuditLogScalarFieldEnum)[keyof typeof MeetingAttendanceAuditLogScalarFieldEnum]


  export const MeetingAttendanceDataAccessLogScalarFieldEnum: {
    id: 'id',
    actorId: 'actorId',
    actorEmail: 'actorEmail',
    actorName: 'actorName',
    actorRole: 'actorRole',
    accessType: 'accessType',
    entityType: 'entityType',
    entityIds: 'entityIds',
    resultCount: 'resultCount',
    hasSensitiveData: 'hasSensitiveData',
    sensitiveFields: 'sensitiveFields',
    endpoint: 'endpoint',
    method: 'method',
    statusCode: 'statusCode',
    ipAddress: 'ipAddress',
    sessionId: 'sessionId',
    requestId: 'requestId',
    deviceId: 'deviceId',
    createdAt: 'createdAt'
  };

  export type MeetingAttendanceDataAccessLogScalarFieldEnum = (typeof MeetingAttendanceDataAccessLogScalarFieldEnum)[keyof typeof MeetingAttendanceDataAccessLogScalarFieldEnum]


  export const MeetingAttendanceAuditAlertRuleScalarFieldEnum: {
    id: 'id',
    name: 'name',
    description: 'description',
    ruleType: 'ruleType',
    conditions: 'conditions',
    threshold: 'threshold',
    timeWindow: 'timeWindow',
    severity: 'severity',
    isEnabled: 'isEnabled',
    notifyEmail: 'notifyEmail',
    notifyInApp: 'notifyInApp',
    notifyWebhook: 'notifyWebhook',
    webhookUrl: 'webhookUrl',
    suppressionWindow: 'suppressionWindow',
    lastTriggered: 'lastTriggered',
    triggerCount: 'triggerCount',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingAttendanceAuditAlertRuleScalarFieldEnum = (typeof MeetingAttendanceAuditAlertRuleScalarFieldEnum)[keyof typeof MeetingAttendanceAuditAlertRuleScalarFieldEnum]


  export const MeetingAttendanceAuditAlertScalarFieldEnum: {
    id: 'id',
    ruleId: 'ruleId',
    severity: 'severity',
    title: 'title',
    description: 'description',
    triggerData: 'triggerData',
    matchedLogs: 'matchedLogs',
    affectedEntities: 'affectedEntities',
    status: 'status',
    acknowledgedBy: 'acknowledgedBy',
    acknowledgedAt: 'acknowledgedAt',
    resolvedBy: 'resolvedBy',
    resolvedAt: 'resolvedAt',
    resolution: 'resolution',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingAttendanceAuditAlertScalarFieldEnum = (typeof MeetingAttendanceAuditAlertScalarFieldEnum)[keyof typeof MeetingAttendanceAuditAlertScalarFieldEnum]


  export const MeetingAttendanceRetentionPolicyScalarFieldEnum: {
    id: 'id',
    entityType: 'entityType',
    hotDays: 'hotDays',
    warmDays: 'warmDays',
    coldDays: 'coldDays',
    autoArchive: 'autoArchive',
    autoDelete: 'autoDelete',
    isActive: 'isActive',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type MeetingAttendanceRetentionPolicyScalarFieldEnum = (typeof MeetingAttendanceRetentionPolicyScalarFieldEnum)[keyof typeof MeetingAttendanceRetentionPolicyScalarFieldEnum]


  export const OutlookSyncMailboxScalarFieldEnum: {
    id: 'id',
    mailboxEmail: 'mailboxEmail',
    mailboxType: 'mailboxType',
    isEnabled: 'isEnabled',
    isPrimaryDefault: 'isPrimaryDefault',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type OutlookSyncMailboxScalarFieldEnum = (typeof OutlookSyncMailboxScalarFieldEnum)[keyof typeof OutlookSyncMailboxScalarFieldEnum]


  export const OutlookSubscriptionScalarFieldEnum: {
    id: 'id',
    mailboxId: 'mailboxId',
    graphSubscriptionId: 'graphSubscriptionId',
    resource: 'resource',
    status: 'status',
    expirationAt: 'expirationAt',
    lastError: 'lastError',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type OutlookSubscriptionScalarFieldEnum = (typeof OutlookSubscriptionScalarFieldEnum)[keyof typeof OutlookSubscriptionScalarFieldEnum]


  export const OutlookMeetingBindingScalarFieldEnum: {
    id: 'id',
    meetingId: 'meetingId',
    meetingSeriesId: 'meetingSeriesId',
    graphEventId: 'graphEventId',
    iCalUId: 'iCalUId',
    graphSeriesMasterId: 'graphSeriesMasterId',
    graphEventType: 'graphEventType',
    manageStatus: 'manageStatus',
    bootstrapStatus: 'bootstrapStatus',
    bootstrapError: 'bootstrapError',
    bootstrapUpdatedAt: 'bootstrapUpdatedAt',
    ownerUserId: 'ownerUserId',
    ownerEmail: 'ownerEmail',
    primaryMailboxId: 'primaryMailboxId',
    syncFrom: 'syncFrom',
    cancellationSource: 'cancellationSource',
    syncMode: 'syncMode',
    localOverrideAt: 'localOverrideAt',
    localOverrideByUserId: 'localOverrideByUserId',
    localOverrideByEmail: 'localOverrideByEmail',
    localOverrideReason: 'localOverrideReason',
    localOverrideFields: 'localOverrideFields',
    lastSyncedAt: 'lastSyncedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type OutlookMeetingBindingScalarFieldEnum = (typeof OutlookMeetingBindingScalarFieldEnum)[keyof typeof OutlookMeetingBindingScalarFieldEnum]


  export const OutlookSeriesOccurrenceExclusionScalarFieldEnum: {
    id: 'id',
    bindingId: 'bindingId',
    occurrenceGraphEventId: 'occurrenceGraphEventId',
    iCalUId: 'iCalUId',
    reason: 'reason',
    createdByEmail: 'createdByEmail',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type OutlookSeriesOccurrenceExclusionScalarFieldEnum = (typeof OutlookSeriesOccurrenceExclusionScalarFieldEnum)[keyof typeof OutlookSeriesOccurrenceExclusionScalarFieldEnum]


  export const OutlookSyncEventLogScalarFieldEnum: {
    id: 'id',
    bindingId: 'bindingId',
    mailboxId: 'mailboxId',
    eventType: 'eventType',
    resultStatus: 'resultStatus',
    message: 'message',
    payload: 'payload',
    createdAt: 'createdAt'
  };

  export type OutlookSyncEventLogScalarFieldEnum = (typeof OutlookSyncEventLogScalarFieldEnum)[keyof typeof OutlookSyncEventLogScalarFieldEnum]


  export const OutlookEventSourceVersionScalarFieldEnum: {
    id: 'id',
    bindingId: 'bindingId',
    mailboxId: 'mailboxId',
    graphEventId: 'graphEventId',
    graphSeriesMasterId: 'graphSeriesMasterId',
    graphEventType: 'graphEventType',
    versionSource: 'versionSource',
    graphLastModifiedAt: 'graphLastModifiedAt',
    fetchedAt: 'fetchedAt',
    etag: 'etag',
    payloadHash: 'payloadHash',
    attendeesCount: 'attendeesCount',
    attendeesRequiredCount: 'attendeesRequiredCount',
    attendeesOptionalCount: 'attendeesOptionalCount',
    attendeesResourceCount: 'attendeesResourceCount',
    organizerEmail: 'organizerEmail',
    startTime: 'startTime',
    endTime: 'endTime',
    isCancelled: 'isCancelled',
    rawPayload: 'rawPayload',
    normalizedPayload: 'normalizedPayload',
    createdAt: 'createdAt'
  };

  export type OutlookEventSourceVersionScalarFieldEnum = (typeof OutlookEventSourceVersionScalarFieldEnum)[keyof typeof OutlookEventSourceVersionScalarFieldEnum]


  export const OutlookEventSyncDiffScalarFieldEnum: {
    id: 'id',
    bindingId: 'bindingId',
    sourceVersionId: 'sourceVersionId',
    previousSourceVersionId: 'previousSourceVersionId',
    detectedAt: 'detectedAt',
    diffType: 'diffType',
    changedFields: 'changedFields',
    summaryJson: 'summaryJson',
    attendeesAdded: 'attendeesAdded',
    attendeesRemoved: 'attendeesRemoved',
    attendeesResponseChanged: 'attendeesResponseChanged',
    graphAttendeesCountBefore: 'graphAttendeesCountBefore',
    graphAttendeesCountAfter: 'graphAttendeesCountAfter',
    internalMatchedCountBefore: 'internalMatchedCountBefore',
    internalMatchedCountAfter: 'internalMatchedCountAfter',
    meetingRequiredCountBefore: 'meetingRequiredCountBefore',
    meetingRequiredCountAfter: 'meetingRequiredCountAfter',
    createdAt: 'createdAt'
  };

  export type OutlookEventSyncDiffScalarFieldEnum = (typeof OutlookEventSyncDiffScalarFieldEnum)[keyof typeof OutlookEventSyncDiffScalarFieldEnum]


  export const OutlookSyncCursorScalarFieldEnum: {
    id: 'id',
    mailboxId: 'mailboxId',
    deltaToken: 'deltaToken',
    lastSyncedAt: 'lastSyncedAt',
    lastReconciledAt: 'lastReconciledAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type OutlookSyncCursorScalarFieldEnum = (typeof OutlookSyncCursorScalarFieldEnum)[keyof typeof OutlookSyncCursorScalarFieldEnum]


  export const OutlookEventSnapshotScalarFieldEnum: {
    id: 'id',
    mailboxId: 'mailboxId',
    graphEventId: 'graphEventId',
    iCalUId: 'iCalUId',
    title: 'title',
    startTime: 'startTime',
    endTime: 'endTime',
    timezone: 'timezone',
    eventType: 'eventType',
    isCancelled: 'isCancelled',
    seriesMasterId: 'seriesMasterId',
    organizerEmail: 'organizerEmail',
    lastModifiedAt: 'lastModifiedAt',
    rawPayload: 'rawPayload',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type OutlookEventSnapshotScalarFieldEnum = (typeof OutlookEventSnapshotScalarFieldEnum)[keyof typeof OutlookEventSnapshotScalarFieldEnum]


  export const OutlookSyncSettingScalarFieldEnum: {
    id: 'id',
    reconcileCron: 'reconcileCron',
    deltaBatchSize: 'deltaBatchSize',
    lookaheadDays: 'lookaheadDays',
    lookbackDays: 'lookbackDays',
    renewBeforeMinutes: 'renewBeforeMinutes',
    includeOrganizerAsAttendee: 'includeOrganizerAsAttendee',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type OutlookSyncSettingScalarFieldEnum = (typeof OutlookSyncSettingScalarFieldEnum)[keyof typeof OutlookSyncSettingScalarFieldEnum]


  export const MeetingAgendaSectionScalarFieldEnum: {
    id: 'id',
    meetingId: 'meetingId',
    order: 'order',
    title: 'title',
    columnLabels: 'columnLabels',
    createdById: 'createdById',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type MeetingAgendaSectionScalarFieldEnum = (typeof MeetingAgendaSectionScalarFieldEnum)[keyof typeof MeetingAgendaSectionScalarFieldEnum]


  export const MeetingAgendaItemScalarFieldEnum: {
    id: 'id',
    sectionId: 'sectionId',
    order: 'order',
    title: 'title',
    description: 'description',
    columnDescriptions: 'columnDescriptions',
    code: 'code',
    timeMinutes: 'timeMinutes',
    presenterUserId: 'presenterUserId',
    createdById: 'createdById',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type MeetingAgendaItemScalarFieldEnum = (typeof MeetingAgendaItemScalarFieldEnum)[keyof typeof MeetingAgendaItemScalarFieldEnum]


  export const MeetingAgendaItemUploadTaskScalarFieldEnum: {
    id: 'id',
    agendaItemId: 'agendaItemId',
    assigneeUserId: 'assigneeUserId',
    assignedById: 'assignedById',
    status: 'status',
    dueAt: 'dueAt',
    assignedAt: 'assignedAt',
    completedAt: 'completedAt',
    createdById: 'createdById',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type MeetingAgendaItemUploadTaskScalarFieldEnum = (typeof MeetingAgendaItemUploadTaskScalarFieldEnum)[keyof typeof MeetingAgendaItemUploadTaskScalarFieldEnum]


  export const MeetingAgendaItemAttachmentScalarFieldEnum: {
    id: 'id',
    agendaItemId: 'agendaItemId',
    uploadedById: 'uploadedById',
    filename: 'filename',
    mimeType: 'mimeType',
    size: 'size',
    storagePath: 'storagePath',
    uploadedAt: 'uploadedAt',
    createdById: 'createdById',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type MeetingAgendaItemAttachmentScalarFieldEnum = (typeof MeetingAgendaItemAttachmentScalarFieldEnum)[keyof typeof MeetingAgendaItemAttachmentScalarFieldEnum]


  export const MeetingAttachmentScalarFieldEnum: {
    id: 'id',
    meetingId: 'meetingId',
    uploadedById: 'uploadedById',
    category: 'category',
    filename: 'filename',
    mimeType: 'mimeType',
    size: 'size',
    storagePath: 'storagePath',
    uploadedAt: 'uploadedAt',
    createdById: 'createdById',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type MeetingAttachmentScalarFieldEnum = (typeof MeetingAttachmentScalarFieldEnum)[keyof typeof MeetingAttachmentScalarFieldEnum]


  export const NotificationMessageScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    type: 'type',
    title: 'title',
    content: 'content',
    link: 'link',
    status: 'status',
    createdAt: 'createdAt',
    readAt: 'readAt'
  };

  export type NotificationMessageScalarFieldEnum = (typeof NotificationMessageScalarFieldEnum)[keyof typeof NotificationMessageScalarFieldEnum]


  export const NotificationPreferenceScalarFieldEnum: {
    id: 'id',
    userId: 'userId',
    email: 'email',
    webpush: 'webpush',
    websocket: 'websocket',
    quietHours: 'quietHours',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type NotificationPreferenceScalarFieldEnum = (typeof NotificationPreferenceScalarFieldEnum)[keyof typeof NotificationPreferenceScalarFieldEnum]


  export const NotificationTemplateScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    description: 'description',
    channel: 'channel',
    subject: 'subject',
    template: 'template',
    variables: 'variables',
    example: 'example',
    priority: 'priority',
    isActive: 'isActive',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type NotificationTemplateScalarFieldEnum = (typeof NotificationTemplateScalarFieldEnum)[keyof typeof NotificationTemplateScalarFieldEnum]


  export const NotificationLogScalarFieldEnum: {
    id: 'id',
    recipientId: 'recipientId',
    recipientEmail: 'recipientEmail',
    channel: 'channel',
    templateId: 'templateId',
    subject: 'subject',
    content: 'content',
    variables: 'variables',
    status: 'status',
    errorMessage: 'errorMessage',
    sentAt: 'sentAt',
    retryCount: 'retryCount',
    maxRetries: 'maxRetries',
    nextRetryAt: 'nextRetryAt',
    priority: 'priority',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type NotificationLogScalarFieldEnum = (typeof NotificationLogScalarFieldEnum)[keyof typeof NotificationLogScalarFieldEnum]


  export const M365UserScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdById: 'createdById',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    graphUserId: 'graphUserId',
    userPrincipalName: 'userPrincipalName',
    displayName: 'displayName',
    mail: 'mail',
    department: 'department',
    jobTitle: 'jobTitle',
    accountEnabled: 'accountEnabled',
    hasLicense: 'hasLicense',
    accountCreatedAt: 'accountCreatedAt',
    licenses: 'licenses',
    lastSignInDateTime: 'lastSignInDateTime',
    lastNonInteractiveSignInDateTime: 'lastNonInteractiveSignInDateTime',
    lastEmailActivity: 'lastEmailActivity',
    lastOneDriveActivity: 'lastOneDriveActivity',
    lastTeamsActivity: 'lastTeamsActivity',
    lastSharePointActivity: 'lastSharePointActivity',
    lastAnyActivity: 'lastAnyActivity',
    daysInactive: 'daysInactive',
    firstSeenInExecutionId: 'firstSeenInExecutionId',
    lastSeenInExecutionId: 'lastSeenInExecutionId'
  };

  export type M365UserScalarFieldEnum = (typeof M365UserScalarFieldEnum)[keyof typeof M365UserScalarFieldEnum]


  export const M365UserActivityChangeScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    userId: 'userId',
    executionId: 'executionId',
    field: 'field',
    previousValue: 'previousValue',
    currentValue: 'currentValue'
  };

  export type M365UserActivityChangeScalarFieldEnum = (typeof M365UserActivityChangeScalarFieldEnum)[keyof typeof M365UserActivityChangeScalarFieldEnum]


  export const GradeConfigScalarFieldEnum: {
    id: 'id',
    name: 'name',
    description: 'description',
    grades: 'grades',
    isDefault: 'isDefault',
    isActive: 'isActive',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt',
    organizationId: 'organizationId'
  };

  export type GradeConfigScalarFieldEnum = (typeof GradeConfigScalarFieldEnum)[keyof typeof GradeConfigScalarFieldEnum]


  export const PerformanceCycleScalarFieldEnum: {
    id: 'id',
    name: 'name',
    type: 'type',
    status: 'status',
    startDate: 'startDate',
    endDate: 'endDate',
    gradeConfigId: 'gradeConfigId',
    parentCycleId: 'parentCycleId',
    resultsPublishedAt: 'resultsPublishedAt',
    resultsPublishedBy: 'resultsPublishedBy',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt',
    organizationId: 'organizationId'
  };

  export type PerformanceCycleScalarFieldEnum = (typeof PerformanceCycleScalarFieldEnum)[keyof typeof PerformanceCycleScalarFieldEnum]


  export const PerformanceResultScalarFieldEnum: {
    id: 'id',
    cycleId: 'cycleId',
    employeeId: 'employeeId',
    kpiScore: 'kpiScore',
    kpiWeight: 'kpiWeight',
    e360Score: 'e360Score',
    e360Weight: 'e360Weight',
    totalScore: 'totalScore',
    proposedGradeCode: 'proposedGradeCode',
    proposedGradeName: 'proposedGradeName',
    gradeCode: 'gradeCode',
    gradeName: 'gradeName',
    isPublished: 'isPublished',
    publishedAt: 'publishedAt',
    viewedByEmployee: 'viewedByEmployee',
    viewedAt: 'viewedAt',
    confirmStatus: 'confirmStatus',
    appealReason: 'appealReason',
    appealResponse: 'appealResponse',
    appealResolvedAt: 'appealResolvedAt',
    selfOverallComment: 'selfOverallComment',
    managerOverallComment: 'managerOverallComment',
    remarks: 'remarks',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt',
    organizationId: 'organizationId'
  };

  export type PerformanceResultScalarFieldEnum = (typeof PerformanceResultScalarFieldEnum)[keyof typeof PerformanceResultScalarFieldEnum]


  export const KpiAssignmentScalarFieldEnum: {
    id: 'id',
    cycleId: 'cycleId',
    employeeId: 'employeeId',
    name: 'name',
    description: 'description',
    weight: 'weight',
    unit: 'unit',
    baseTarget: 'baseTarget',
    stretchTarget: 'stretchTarget',
    targetValue: 'targetValue',
    parentId: 'parentId',
    seq: 'seq',
    status: 'status',
    maturityScore: 'maturityScore',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type KpiAssignmentScalarFieldEnum = (typeof KpiAssignmentScalarFieldEnum)[keyof typeof KpiAssignmentScalarFieldEnum]


  export const KpiDependencyScalarFieldEnum: {
    id: 'id',
    sourceAssignmentId: 'sourceAssignmentId',
    targetAssignmentId: 'targetAssignmentId',
    targetUserId: 'targetUserId',
    description: 'description',
    status: 'status',
    rejectionReason: 'rejectionReason',
    confirmedAt: 'confirmedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type KpiDependencyScalarFieldEnum = (typeof KpiDependencyScalarFieldEnum)[keyof typeof KpiDependencyScalarFieldEnum]


  export const KpiAssessmentScalarFieldEnum: {
    id: 'id',
    assignmentId: 'assignmentId',
    status: 'status',
    selfScore: 'selfScore',
    completionNote: 'completionNote',
    selfComment: 'selfComment',
    selfEvaluatedAt: 'selfEvaluatedAt',
    managerScore: 'managerScore',
    managerComment: 'managerComment',
    managerId: 'managerId',
    managerEvaluatedAt: 'managerEvaluatedAt',
    finalScore: 'finalScore',
    deletedAt: 'deletedAt'
  };

  export type KpiAssessmentScalarFieldEnum = (typeof KpiAssessmentScalarFieldEnum)[keyof typeof KpiAssessmentScalarFieldEnum]


  export const Evaluation360ScalarFieldEnum: {
    id: 'id',
    cycleId: 'cycleId',
    targetId: 'targetId',
    status: 'status',
    templateId: 'templateId',
    deadline: 'deadline',
    minEvaluators: 'minEvaluators',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type Evaluation360ScalarFieldEnum = (typeof Evaluation360ScalarFieldEnum)[keyof typeof Evaluation360ScalarFieldEnum]


  export const EvaluationTaskScalarFieldEnum: {
    id: 'id',
    evaluationId: 'evaluationId',
    evaluatorId: 'evaluatorId',
    relationType: 'relationType',
    status: 'status',
    isAnonymous: 'isAnonymous',
    submittedAt: 'submittedAt',
    createdAt: 'createdAt',
    deletedAt: 'deletedAt'
  };

  export type EvaluationTaskScalarFieldEnum = (typeof EvaluationTaskScalarFieldEnum)[keyof typeof EvaluationTaskScalarFieldEnum]


  export const EvaluationResponseScalarFieldEnum: {
    id: 'id',
    taskId: 'taskId',
    dimension: 'dimension',
    score: 'score',
    comment: 'comment',
    deletedAt: 'deletedAt'
  };

  export type EvaluationResponseScalarFieldEnum = (typeof EvaluationResponseScalarFieldEnum)[keyof typeof EvaluationResponseScalarFieldEnum]


  export const GradeAdjustmentLogScalarFieldEnum: {
    id: 'id',
    resultId: 'resultId',
    previousGradeCode: 'previousGradeCode',
    newGradeCode: 'newGradeCode',
    reason: 'reason',
    adjustedBy: 'adjustedBy',
    adjustedAt: 'adjustedAt',
    deletedAt: 'deletedAt'
  };

  export type GradeAdjustmentLogScalarFieldEnum = (typeof GradeAdjustmentLogScalarFieldEnum)[keyof typeof GradeAdjustmentLogScalarFieldEnum]


  export const StrategicObjectiveScalarFieldEnum: {
    id: 'id',
    cycleId: 'cycleId',
    seq: 'seq',
    name: 'name',
    description: 'description',
    departmentId: 'departmentId',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type StrategicObjectiveScalarFieldEnum = (typeof StrategicObjectiveScalarFieldEnum)[keyof typeof StrategicObjectiveScalarFieldEnum]


  export const StrategicObjectiveAssignmentScalarFieldEnum: {
    id: 'id',
    objectiveId: 'objectiveId',
    assigneeId: 'assigneeId',
    createdAt: 'createdAt',
    deletedAt: 'deletedAt'
  };

  export type StrategicObjectiveAssignmentScalarFieldEnum = (typeof StrategicObjectiveAssignmentScalarFieldEnum)[keyof typeof StrategicObjectiveAssignmentScalarFieldEnum]


  export const Evaluation360TemplateScalarFieldEnum: {
    id: 'id',
    name: 'name',
    description: 'description',
    dimensions: 'dimensions',
    relationshipTypes: 'relationshipTypes',
    isDefault: 'isDefault',
    isActive: 'isActive',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt',
    cycleId: 'cycleId',
    scope: 'scope',
    organizationId: 'organizationId'
  };

  export type Evaluation360TemplateScalarFieldEnum = (typeof Evaluation360TemplateScalarFieldEnum)[keyof typeof Evaluation360TemplateScalarFieldEnum]


  export const SiteCheckpointScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    description: 'description',
    address: 'address',
    timezone: 'timezone',
    latitude: 'latitude',
    longitude: 'longitude',
    geoPolicy: 'geoPolicy',
    geoRadius: 'geoRadius',
    geoAccuracyThreshold: 'geoAccuracyThreshold',
    allowUnauthenticatedCheckin: 'allowUnauthenticatedCheckin',
    isActive: 'isActive',
    accessMode: 'accessMode',
    qrRotationSeconds: 'qrRotationSeconds',
    qrGraceSeconds: 'qrGraceSeconds',
    sharedCheckinEnabled: 'sharedCheckinEnabled',
    sharedCompanyId: 'sharedCompanyId',
    sharedCompanyLabel: 'sharedCompanyLabel',
    createdBy: 'createdBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SiteCheckpointScalarFieldEnum = (typeof SiteCheckpointScalarFieldEnum)[keyof typeof SiteCheckpointScalarFieldEnum]


  export const SharedCheckinPartnerScalarFieldEnum: {
    id: 'id',
    checkpointId: 'checkpointId',
    companyId: 'companyId',
    companyLabel: 'companyLabel',
    displayLabel: 'displayLabel',
    targetUrl: 'targetUrl',
    isActive: 'isActive',
    sortOrder: 'sortOrder',
    createdBy: 'createdBy',
    updatedBy: 'updatedBy',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SharedCheckinPartnerScalarFieldEnum = (typeof SharedCheckinPartnerScalarFieldEnum)[keyof typeof SharedCheckinPartnerScalarFieldEnum]


  export const SharedCheckinTicketUsageScalarFieldEnum: {
    nonce: 'nonce',
    usedAt: 'usedAt',
    expiresAt: 'expiresAt'
  };

  export type SharedCheckinTicketUsageScalarFieldEnum = (typeof SharedCheckinTicketUsageScalarFieldEnum)[keyof typeof SharedCheckinTicketUsageScalarFieldEnum]


  export const SiteAttendanceEventScalarFieldEnum: {
    id: 'id',
    checkpointId: 'checkpointId',
    userId: 'userId',
    eventType: 'eventType',
    timestamp: 'timestamp',
    localDate: 'localDate',
    authMethod: 'authMethod',
    latitude: 'latitude',
    longitude: 'longitude',
    accuracy: 'accuracy',
    geoStatus: 'geoStatus',
    distanceToCheckpoint: 'distanceToCheckpoint',
    deviceId: 'deviceId',
    userAgent: 'userAgent',
    ipAddress: 'ipAddress',
    createdAt: 'createdAt'
  };

  export type SiteAttendanceEventScalarFieldEnum = (typeof SiteAttendanceEventScalarFieldEnum)[keyof typeof SiteAttendanceEventScalarFieldEnum]


  export const SiteDailySummaryScalarFieldEnum: {
    id: 'id',
    checkpointId: 'checkpointId',
    userId: 'userId',
    localDate: 'localDate',
    firstCheckInAt: 'firstCheckInAt',
    lastCheckOutAt: 'lastCheckOutAt',
    checkInCount: 'checkInCount',
    checkOutCount: 'checkOutCount',
    hasGeoAnomaly: 'hasGeoAnomaly',
    lastEventId: 'lastEventId',
    updatedAt: 'updatedAt'
  };

  export type SiteDailySummaryScalarFieldEnum = (typeof SiteDailySummaryScalarFieldEnum)[keyof typeof SiteDailySummaryScalarFieldEnum]


  export const TicketScalarFieldEnum: {
    id: 'id',
    ticketNo: 'ticketNo',
    title: 'title',
    description: 'description',
    categoryId: 'categoryId',
    priority: 'priority',
    tags: 'tags',
    status: 'status',
    creatorId: 'creatorId',
    assigneeId: 'assigneeId',
    assigneeGroupId: 'assigneeGroupId',
    watcherIds: 'watcherIds',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    firstResponseAt: 'firstResponseAt',
    resolvedAt: 'resolvedAt',
    closedAt: 'closedAt',
    dueAt: 'dueAt',
    slaId: 'slaId',
    slaBreached: 'slaBreached',
    slaPausedAt: 'slaPausedAt',
    slaPausedDuration: 'slaPausedDuration',
    satisfactionRating: 'satisfactionRating',
    satisfactionComment: 'satisfactionComment',
    satisfactionRatedAt: 'satisfactionRatedAt',
    source: 'source',
    externalId: 'externalId',
    channelMetadata: 'channelMetadata',
    resolution: 'resolution',
    rootCause: 'rootCause',
    relatedTicketIds: 'relatedTicketIds',
    parentTicketId: 'parentTicketId',
    approvalInstanceId: 'approvalInstanceId',
    region: 'region',
    tenantId: 'tenantId',
    language: 'language',
    complianceFlag: 'complianceFlag',
    deletedAt: 'deletedAt'
  };

  export type TicketScalarFieldEnum = (typeof TicketScalarFieldEnum)[keyof typeof TicketScalarFieldEnum]


  export const TicketCategoryScalarFieldEnum: {
    id: 'id',
    name: 'name',
    code: 'code',
    description: 'description',
    icon: 'icon',
    parentId: 'parentId',
    defaultPriority: 'defaultPriority',
    defaultAssigneeGroupId: 'defaultAssigneeGroupId',
    slaId: 'slaId',
    formTemplateId: 'formTemplateId',
    allowedDepartmentIds: 'allowedDepartmentIds',
    allowedRoleIds: 'allowedRoleIds',
    isActive: 'isActive',
    sortOrder: 'sortOrder',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type TicketCategoryScalarFieldEnum = (typeof TicketCategoryScalarFieldEnum)[keyof typeof TicketCategoryScalarFieldEnum]


  export const TicketCommentScalarFieldEnum: {
    id: 'id',
    ticketId: 'ticketId',
    content: 'content',
    type: 'type',
    isInternal: 'isInternal',
    visibilityScope: 'visibilityScope',
    authorId: 'authorId',
    mentionedUserIds: 'mentionedUserIds',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    deletedAt: 'deletedAt'
  };

  export type TicketCommentScalarFieldEnum = (typeof TicketCommentScalarFieldEnum)[keyof typeof TicketCommentScalarFieldEnum]


  export const TicketAttachmentScalarFieldEnum: {
    id: 'id',
    ticketId: 'ticketId',
    commentId: 'commentId',
    fileName: 'fileName',
    fileUrl: 'fileUrl',
    fileSize: 'fileSize',
    mimeType: 'mimeType',
    uploadedBy: 'uploadedBy',
    createdAt: 'createdAt'
  };

  export type TicketAttachmentScalarFieldEnum = (typeof TicketAttachmentScalarFieldEnum)[keyof typeof TicketAttachmentScalarFieldEnum]


  export const TicketActivityScalarFieldEnum: {
    id: 'id',
    ticketId: 'ticketId',
    type: 'type',
    content: 'content',
    operatorId: 'operatorId',
    createdAt: 'createdAt'
  };

  export type TicketActivityScalarFieldEnum = (typeof TicketActivityScalarFieldEnum)[keyof typeof TicketActivityScalarFieldEnum]


  export const TicketSLAScalarFieldEnum: {
    id: 'id',
    name: 'name',
    description: 'description',
    firstResponseTime: 'firstResponseTime',
    resolutionTime: 'resolutionTime',
    businessHours: 'businessHours',
    excludeHolidays: 'excludeHolidays',
    holidayCalendarId: 'holidayCalendarId',
    escalationRules: 'escalationRules',
    isActive: 'isActive',
    isDefault: 'isDefault',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type TicketSLAScalarFieldEnum = (typeof TicketSLAScalarFieldEnum)[keyof typeof TicketSLAScalarFieldEnum]


  export const AssignmentGroupScalarFieldEnum: {
    id: 'id',
    name: 'name',
    code: 'code',
    description: 'description',
    memberIds: 'memberIds',
    managerId: 'managerId',
    skills: 'skills',
    assignmentStrategy: 'assignmentStrategy',
    isActive: 'isActive',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type AssignmentGroupScalarFieldEnum = (typeof AssignmentGroupScalarFieldEnum)[keyof typeof AssignmentGroupScalarFieldEnum]


  export const RobotModelScalarFieldEnum: {
    id: 'id',
    code: 'code',
    name: 'name',
    brand: 'brand',
    description: 'description',
    imageUrl: 'imageUrl',
    enabled: 'enabled',
    metadata: 'metadata',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type RobotModelScalarFieldEnum = (typeof RobotModelScalarFieldEnum)[keyof typeof RobotModelScalarFieldEnum]


  export const RobotSkuScalarFieldEnum: {
    id: 'id',
    modelId: 'modelId',
    code: 'code',
    name: 'name',
    variant: 'variant',
    defaultPrice: 'defaultPrice',
    defaultCost: 'defaultCost',
    currencyCode: 'currencyCode',
    description: 'description',
    enabled: 'enabled',
    metadata: 'metadata',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type RobotSkuScalarFieldEnum = (typeof RobotSkuScalarFieldEnum)[keyof typeof RobotSkuScalarFieldEnum]


  export const RobotSystemConfigScalarFieldEnum: {
    id: 'id',
    key: 'key',
    value: 'value',
    description: 'description',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type RobotSystemConfigScalarFieldEnum = (typeof RobotSystemConfigScalarFieldEnum)[keyof typeof RobotSystemConfigScalarFieldEnum]


  export const RobotUnitScalarFieldEnum: {
    id: 'id',
    organizationId: 'organizationId',
    version: 'version',
    ffsn: 'ffsn',
    ffsnDisplay: 'ffsnDisplay',
    placeholderSnOrig: 'placeholderSnOrig',
    supplierSn: 'supplierSn',
    modelId: 'modelId',
    skuId: 'skuId',
    usageType: 'usageType',
    purchaseOrderId: 'purchaseOrderId',
    purchaseOrderLineId: 'purchaseOrderLineId',
    originalSupplierId: 'originalSupplierId',
    manufactureDate: 'manufactureDate',
    retiredAt: 'retiredAt',
    disposalType: 'disposalType',
    disposalNotes: 'disposalNotes',
    sapMaterialNo: 'sapMaterialNo',
    metadata: 'metadata',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type RobotUnitScalarFieldEnum = (typeof RobotUnitScalarFieldEnum)[keyof typeof RobotUnitScalarFieldEnum]


  export const RobotUnitSnapshotScalarFieldEnum: {
    robotUnitId: 'robotUnitId',
    currentStage: 'currentStage',
    isHeld: 'isHeld',
    holdReason: 'holdReason',
    currentLocationId: 'currentLocationId',
    currentCustomerId: 'currentCustomerId',
    currentSalesOrderId: 'currentSalesOrderId',
    currentDeliveryRequestId: 'currentDeliveryRequestId',
    currentSpecialistId: 'currentSpecialistId',
    physicalProductStatus: 'physicalProductStatus',
    daysReadyForDelivery: 'daysReadyForDelivery',
    warrantyStatus: 'warrantyStatus',
    lastEventId: 'lastEventId',
    lastEventAt: 'lastEventAt',
    derivedAt: 'derivedAt',
    version: 'version'
  };

  export type RobotUnitSnapshotScalarFieldEnum = (typeof RobotUnitSnapshotScalarFieldEnum)[keyof typeof RobotUnitSnapshotScalarFieldEnum]


  export const RobotLifecycleEventScalarFieldEnum: {
    id: 'id',
    robotUnitId: 'robotUnitId',
    eventType: 'eventType',
    fromStage: 'fromStage',
    toStage: 'toStage',
    fromLocationId: 'fromLocationId',
    toLocationId: 'toLocationId',
    actorUserId: 'actorUserId',
    partnerId: 'partnerId',
    customerId: 'customerId',
    relatedType: 'relatedType',
    relatedId: 'relatedId',
    payload: 'payload',
    notes: 'notes',
    occurredAt: 'occurredAt',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type RobotLifecycleEventScalarFieldEnum = (typeof RobotLifecycleEventScalarFieldEnum)[keyof typeof RobotLifecycleEventScalarFieldEnum]


  export const PurchaseOrderScalarFieldEnum: {
    id: 'id',
    poNo: 'poNo',
    sapPoNo: 'sapPoNo',
    supplierId: 'supplierId',
    currencyCode: 'currencyCode',
    totalAmount: 'totalAmount',
    status: 'status',
    orderedAt: 'orderedAt',
    expectedAt: 'expectedAt',
    closedAt: 'closedAt',
    notes: 'notes',
    version: 'version',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type PurchaseOrderScalarFieldEnum = (typeof PurchaseOrderScalarFieldEnum)[keyof typeof PurchaseOrderScalarFieldEnum]


  export const PurchaseOrderLineScalarFieldEnum: {
    id: 'id',
    purchaseOrderId: 'purchaseOrderId',
    lineNo: 'lineNo',
    skuId: 'skuId',
    quantity: 'quantity',
    unitPrice: 'unitPrice',
    totalPrice: 'totalPrice',
    currencyCode: 'currencyCode',
    defaultUsageType: 'defaultUsageType',
    placeholderPattern: 'placeholderPattern',
    expectedAt: 'expectedAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type PurchaseOrderLineScalarFieldEnum = (typeof PurchaseOrderLineScalarFieldEnum)[keyof typeof PurchaseOrderLineScalarFieldEnum]


  export const SalesOrderScalarFieldEnum: {
    id: 'id',
    soNo: 'soNo',
    d365SoId: 'd365SoId',
    customerId: 'customerId',
    salesPersonId: 'salesPersonId',
    mentorId: 'mentorId',
    menteeId: 'menteeId',
    currencyCode: 'currencyCode',
    totalAmount: 'totalAmount',
    contractStatus: 'contractStatus',
    status: 'status',
    signedAt: 'signedAt',
    closedAt: 'closedAt',
    notes: 'notes',
    version: 'version',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type SalesOrderScalarFieldEnum = (typeof SalesOrderScalarFieldEnum)[keyof typeof SalesOrderScalarFieldEnum]


  export const SalesOrderLineScalarFieldEnum: {
    id: 'id',
    salesOrderId: 'salesOrderId',
    lineNo: 'lineNo',
    robotUnitId: 'robotUnitId',
    lineType: 'lineType',
    unitPrice: 'unitPrice',
    discount: 'discount',
    netAmount: 'netAmount',
    currencyCode: 'currencyCode',
    expectedDeliveryDate: 'expectedDeliveryDate',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type SalesOrderLineScalarFieldEnum = (typeof SalesOrderLineScalarFieldEnum)[keyof typeof SalesOrderLineScalarFieldEnum]


  export const DeliveryRequestScalarFieldEnum: {
    id: 'id',
    deliveryNo: 'deliveryNo',
    salesOrderId: 'salesOrderId',
    customerId: 'customerId',
    requestType: 'requestType',
    expectedDate: 'expectedDate',
    status: 'status',
    notes: 'notes',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type DeliveryRequestScalarFieldEnum = (typeof DeliveryRequestScalarFieldEnum)[keyof typeof DeliveryRequestScalarFieldEnum]


  export const DeliveryFulfillmentScalarFieldEnum: {
    id: 'id',
    deliveryRequestId: 'deliveryRequestId',
    robotUnitId: 'robotUnitId',
    sapPgiDocNo: 'sapPgiDocNo',
    deliveredAt: 'deliveredAt',
    signedAt: 'signedAt',
    signedFormStatus: 'signedFormStatus',
    acceptanceFormStatus: 'acceptanceFormStatus',
    acceptanceFormPreDel: 'acceptanceFormPreDel',
    acceptanceFormAttachmentId: 'acceptanceFormAttachmentId',
    notePreDel: 'notePreDel',
    additionalShippingNotes: 'additionalShippingNotes',
    cost: 'cost',
    grossMargin: 'grossMargin',
    revenueRecognition: 'revenueRecognition',
    invoiceStatus: 'invoiceStatus',
    version: 'version',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type DeliveryFulfillmentScalarFieldEnum = (typeof DeliveryFulfillmentScalarFieldEnum)[keyof typeof DeliveryFulfillmentScalarFieldEnum]


  export const PaymentRecordScalarFieldEnum: {
    id: 'id',
    paymentNo: 'paymentNo',
    relatedType: 'relatedType',
    relatedId: 'relatedId',
    robotUnitId: 'robotUnitId',
    direction: 'direction',
    sapClearingDocNo: 'sapClearingDocNo',
    paymentMethod: 'paymentMethod',
    paymentStatus: 'paymentStatus',
    preDelContractStatus: 'preDelContractStatus',
    amount: 'amount',
    currencyCode: 'currencyCode',
    paidAt: 'paidAt',
    depositTransferFormAttachmentId: 'depositTransferFormAttachmentId',
    depositTransferContractAttachmentId: 'depositTransferContractAttachmentId',
    version: 'version',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type PaymentRecordScalarFieldEnum = (typeof PaymentRecordScalarFieldEnum)[keyof typeof PaymentRecordScalarFieldEnum]


  export const QualityLabelRecordScalarFieldEnum: {
    id: 'id',
    robotUnitId: 'robotUnitId',
    labelTypeCode: 'labelTypeCode',
    status: 'status',
    appliedAt: 'appliedAt',
    verifiedAt: 'verifiedAt',
    appliedById: 'appliedById',
    verifiedById: 'verifiedById',
    photoAttachmentId: 'photoAttachmentId',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type QualityLabelRecordScalarFieldEnum = (typeof QualityLabelRecordScalarFieldEnum)[keyof typeof QualityLabelRecordScalarFieldEnum]


  export const RobotPackageReadinessScalarFieldEnum: {
    id: 'id',
    robotUnitId: 'robotUnitId',
    specialistId: 'specialistId',
    physicalProductStatus: 'physicalProductStatus',
    readyAt: 'readyAt',
    hasRobot: 'hasRobot',
    hasBattery: 'hasBattery',
    hasRemote: 'hasRemote',
    hasUsaPowerCable: 'hasUsaPowerCable',
    hasCnCableWithAdapter: 'hasCnCableWithAdapter',
    hasPowerSupply: 'hasPowerSupply',
    hasChargingDock: 'hasChargingDock',
    hasFootPads: 'hasFootPads',
    hasToolsKit: 'hasToolsKit',
    hasPaperwork: 'hasPaperwork',
    completedAt: 'completedAt',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type RobotPackageReadinessScalarFieldEnum = (typeof RobotPackageReadinessScalarFieldEnum)[keyof typeof RobotPackageReadinessScalarFieldEnum]


  export const InspectionRecordScalarFieldEnum: {
    id: 'id',
    robotUnitId: 'robotUnitId',
    inspectionNo: 'inspectionNo',
    inspectedAt: 'inspectedAt',
    inspectorId: 'inspectorId',
    issue: 'issue',
    issueTagCode: 'issueTagCode',
    resolvedAt: 'resolvedAt',
    resolvedById: 'resolvedById',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type InspectionRecordScalarFieldEnum = (typeof InspectionRecordScalarFieldEnum)[keyof typeof InspectionRecordScalarFieldEnum]


  export const LogisticsLegScalarFieldEnum: {
    id: 'id',
    robotUnitId: 'robotUnitId',
    legNo: 'legNo',
    fromLocationId: 'fromLocationId',
    toLocationId: 'toLocationId',
    departedAt: 'departedAt',
    arrivedAt: 'arrivedAt',
    logisticsStatus: 'logisticsStatus',
    importDeclarationTypeCode: 'importDeclarationTypeCode',
    tariffTypeCode: 'tariffTypeCode',
    shippingReceiptAttachmentId: 'shippingReceiptAttachmentId',
    additionalNotes: 'additionalNotes',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type LogisticsLegScalarFieldEnum = (typeof LogisticsLegScalarFieldEnum)[keyof typeof LogisticsLegScalarFieldEnum]


  export const ComplianceCheckScalarFieldEnum: {
    id: 'id',
    robotUnitId: 'robotUnitId',
    dateReady: 'dateReady',
    stickerStatus: 'stickerStatus',
    fccStatus: 'fccStatus',
    complianceNotes: 'complianceNotes',
    lastUpdatedAt: 'lastUpdatedAt',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById'
  };

  export type ComplianceCheckScalarFieldEnum = (typeof ComplianceCheckScalarFieldEnum)[keyof typeof ComplianceCheckScalarFieldEnum]


  export const RentalAgreementScalarFieldEnum: {
    id: 'id',
    robotUnitId: 'robotUnitId',
    customerId: 'customerId',
    startAt: 'startAt',
    endAt: 'endAt',
    periodMonths: 'periodMonths',
    monthlyRate: 'monthlyRate',
    currencyCode: 'currencyCode',
    status: 'status',
    contractAttachmentId: 'contractAttachmentId',
    version: 'version',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type RentalAgreementScalarFieldEnum = (typeof RentalAgreementScalarFieldEnum)[keyof typeof RentalAgreementScalarFieldEnum]


  export const RentalPaymentScheduleScalarFieldEnum: {
    id: 'id',
    rentalAgreementId: 'rentalAgreementId',
    dueDate: 'dueDate',
    amount: 'amount',
    currencyCode: 'currencyCode',
    paidPaymentRecordId: 'paidPaymentRecordId',
    paidAt: 'paidAt',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  };

  export type RentalPaymentScheduleScalarFieldEnum = (typeof RentalPaymentScheduleScalarFieldEnum)[keyof typeof RentalPaymentScheduleScalarFieldEnum]


  export const ServiceTicketScalarFieldEnum: {
    id: 'id',
    ticketNo: 'ticketNo',
    robotUnitId: 'robotUnitId',
    customerId: 'customerId',
    issueTypeCode: 'issueTypeCode',
    severity: 'severity',
    status: 'status',
    serviceRecord: 'serviceRecord',
    customerFeedback: 'customerFeedback',
    openedAt: 'openedAt',
    openedById: 'openedById',
    closedAt: 'closedAt',
    resolvedById: 'resolvedById',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type ServiceTicketScalarFieldEnum = (typeof ServiceTicketScalarFieldEnum)[keyof typeof ServiceTicketScalarFieldEnum]


  export const ServiceTicketActivityScalarFieldEnum: {
    id: 'id',
    ticketId: 'ticketId',
    activityType: 'activityType',
    payload: 'payload',
    createdById: 'createdById',
    occurredAt: 'occurredAt',
    createdAt: 'createdAt'
  };

  export type ServiceTicketActivityScalarFieldEnum = (typeof ServiceTicketActivityScalarFieldEnum)[keyof typeof ServiceTicketActivityScalarFieldEnum]


  export const RobotImportAuditScalarFieldEnum: {
    id: 'id',
    robotUnitId: 'robotUnitId',
    sources: 'sources',
    conflictCount: 'conflictCount',
    recordStatus: 'recordStatus',
    conflictDetail: 'conflictDetail',
    importedAt: 'importedAt',
    importBatch: 'importBatch',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type RobotImportAuditScalarFieldEnum = (typeof RobotImportAuditScalarFieldEnum)[keyof typeof RobotImportAuditScalarFieldEnum]


  export const ImportBatchScalarFieldEnum: {
    id: 'id',
    type: 'type',
    status: 'status',
    fileName: 'fileName',
    fileHash: 'fileHash',
    templateSchemaHash: 'templateSchemaHash',
    totalRows: 'totalRows',
    successRows: 'successRows',
    errorRows: 'errorRows',
    warningRows: 'warningRows',
    startedAt: 'startedAt',
    completedAt: 'completedAt',
    confirmedById: 'confirmedById',
    confirmedAt: 'confirmedAt',
    clientIp: 'clientIp',
    userAgent: 'userAgent',
    errorSummary: 'errorSummary',
    organizationId: 'organizationId',
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdById: 'createdById',
    deletedAt: 'deletedAt'
  };

  export type ImportBatchScalarFieldEnum = (typeof ImportBatchScalarFieldEnum)[keyof typeof ImportBatchScalarFieldEnum]


  export const ImportBatchEntryScalarFieldEnum: {
    id: 'id',
    batchId: 'batchId',
    rowNo: 'rowNo',
    status: 'status',
    entityIds: 'entityIds',
    payload: 'payload',
    payloadHash: 'payloadHash',
    errorDetail: 'errorDetail',
    createdAt: 'createdAt',
    deletedAt: 'deletedAt'
  };

  export type ImportBatchEntryScalarFieldEnum = (typeof ImportBatchEntryScalarFieldEnum)[keyof typeof ImportBatchEntryScalarFieldEnum]


  export const SortOrder: {
    asc: 'asc',
    desc: 'desc'
  };

  export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]


  export const JsonNullValueInput: {
    JsonNull: typeof JsonNull
  };

  export type JsonNullValueInput = (typeof JsonNullValueInput)[keyof typeof JsonNullValueInput]


  export const NullableJsonNullValueInput: {
    DbNull: typeof DbNull,
    JsonNull: typeof JsonNull
  };

  export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput]


  export const QueryMode: {
    default: 'default',
    insensitive: 'insensitive'
  };

  export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]


  export const NullsOrder: {
    first: 'first',
    last: 'last'
  };

  export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]


  export const JsonNullValueFilter: {
    DbNull: typeof DbNull,
    JsonNull: typeof JsonNull,
    AnyNull: typeof AnyNull
  };

  export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter]


  /**
   * Field references
   */


  /**
   * Reference to a field of type 'String'
   */
  export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'>
    


  /**
   * Reference to a field of type 'String[]'
   */
  export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'>
    


  /**
   * Reference to a field of type 'Int'
   */
  export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'>
    


  /**
   * Reference to a field of type 'Int[]'
   */
  export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'>
    


  /**
   * Reference to a field of type 'ProcessStatus'
   */
  export type EnumProcessStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ProcessStatus'>
    


  /**
   * Reference to a field of type 'ProcessStatus[]'
   */
  export type ListEnumProcessStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ProcessStatus[]'>
    


  /**
   * Reference to a field of type 'DateTime'
   */
  export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'>
    


  /**
   * Reference to a field of type 'DateTime[]'
   */
  export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime[]'>
    


  /**
   * Reference to a field of type 'Boolean'
   */
  export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'>
    


  /**
   * Reference to a field of type 'Json'
   */
  export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'>
    


  /**
   * Reference to a field of type 'QueryMode'
   */
  export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QueryMode'>
    


  /**
   * Reference to a field of type 'VersionStatus'
   */
  export type EnumVersionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'VersionStatus'>
    


  /**
   * Reference to a field of type 'VersionStatus[]'
   */
  export type ListEnumVersionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'VersionStatus[]'>
    


  /**
   * Reference to a field of type 'InstanceStatus'
   */
  export type EnumInstanceStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InstanceStatus'>
    


  /**
   * Reference to a field of type 'InstanceStatus[]'
   */
  export type ListEnumInstanceStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InstanceStatus[]'>
    


  /**
   * Reference to a field of type 'NodeStatus'
   */
  export type EnumNodeStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NodeStatus'>
    


  /**
   * Reference to a field of type 'NodeStatus[]'
   */
  export type ListEnumNodeStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NodeStatus[]'>
    


  /**
   * Reference to a field of type 'ApprovalTaskType'
   */
  export type EnumApprovalTaskTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApprovalTaskType'>
    


  /**
   * Reference to a field of type 'ApprovalTaskType[]'
   */
  export type ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApprovalTaskType[]'>
    


  /**
   * Reference to a field of type 'ApprovalTaskStatus'
   */
  export type EnumApprovalTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApprovalTaskStatus'>
    


  /**
   * Reference to a field of type 'ApprovalTaskStatus[]'
   */
  export type ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApprovalTaskStatus[]'>
    


  /**
   * Reference to a field of type 'DelegationType'
   */
  export type EnumDelegationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DelegationType'>
    


  /**
   * Reference to a field of type 'DelegationType[]'
   */
  export type ListEnumDelegationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DelegationType[]'>
    


  /**
   * Reference to a field of type 'ApprovalTaskAction'
   */
  export type EnumApprovalTaskActionFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApprovalTaskAction'>
    


  /**
   * Reference to a field of type 'ApprovalTaskAction[]'
   */
  export type ListEnumApprovalTaskActionFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApprovalTaskAction[]'>
    


  /**
   * Reference to a field of type 'RiskLevel'
   */
  export type EnumRiskLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RiskLevel'>
    


  /**
   * Reference to a field of type 'RiskLevel[]'
   */
  export type ListEnumRiskLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RiskLevel[]'>
    


  /**
   * Reference to a field of type 'CallbackStatus'
   */
  export type EnumCallbackStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CallbackStatus'>
    


  /**
   * Reference to a field of type 'CallbackStatus[]'
   */
  export type ListEnumCallbackStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CallbackStatus[]'>
    


  /**
   * Reference to a field of type 'ReminderType'
   */
  export type EnumReminderTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ReminderType'>
    


  /**
   * Reference to a field of type 'ReminderType[]'
   */
  export type ListEnumReminderTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ReminderType[]'>
    


  /**
   * Reference to a field of type 'ReminderStatus'
   */
  export type EnumReminderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ReminderStatus'>
    


  /**
   * Reference to a field of type 'ReminderStatus[]'
   */
  export type ListEnumReminderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ReminderStatus[]'>
    


  /**
   * Reference to a field of type 'DelegationScope'
   */
  export type EnumDelegationScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DelegationScope'>
    


  /**
   * Reference to a field of type 'DelegationScope[]'
   */
  export type ListEnumDelegationScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DelegationScope[]'>
    


  /**
   * Reference to a field of type 'ApprovalAdminExportStatus'
   */
  export type EnumApprovalAdminExportStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApprovalAdminExportStatus'>
    


  /**
   * Reference to a field of type 'ApprovalAdminExportStatus[]'
   */
  export type ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApprovalAdminExportStatus[]'>
    


  /**
   * Reference to a field of type 'BigInt'
   */
  export type BigIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BigInt'>
    


  /**
   * Reference to a field of type 'BigInt[]'
   */
  export type ListBigIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'BigInt[]'>
    


  /**
   * Reference to a field of type 'Decimal'
   */
  export type DecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Decimal'>
    


  /**
   * Reference to a field of type 'Decimal[]'
   */
  export type ListDecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Decimal[]'>
    


  /**
   * Reference to a field of type 'ExpenseCategory'
   */
  export type EnumExpenseCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ExpenseCategory'>
    


  /**
   * Reference to a field of type 'ExpenseCategory[]'
   */
  export type ListEnumExpenseCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ExpenseCategory[]'>
    


  /**
   * Reference to a field of type 'ExpenseStatus'
   */
  export type EnumExpenseStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ExpenseStatus'>
    


  /**
   * Reference to a field of type 'ExpenseStatus[]'
   */
  export type ListEnumExpenseStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ExpenseStatus[]'>
    


  /**
   * Reference to a field of type 'PurchaseStatus'
   */
  export type EnumPurchaseStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PurchaseStatus'>
    


  /**
   * Reference to a field of type 'PurchaseStatus[]'
   */
  export type ListEnumPurchaseStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PurchaseStatus[]'>
    


  /**
   * Reference to a field of type 'ContractType'
   */
  export type EnumContractTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ContractType'>
    


  /**
   * Reference to a field of type 'ContractType[]'
   */
  export type ListEnumContractTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ContractType[]'>
    


  /**
   * Reference to a field of type 'ContractStatus'
   */
  export type EnumContractStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ContractStatus'>
    


  /**
   * Reference to a field of type 'ContractStatus[]'
   */
  export type ListEnumContractStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ContractStatus[]'>
    


  /**
   * Reference to a field of type 'PartStatus'
   */
  export type EnumPartStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PartStatus'>
    


  /**
   * Reference to a field of type 'PartStatus[]'
   */
  export type ListEnumPartStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PartStatus[]'>
    


  /**
   * Reference to a field of type 'StationStatus'
   */
  export type EnumStationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StationStatus'>
    


  /**
   * Reference to a field of type 'StationStatus[]'
   */
  export type ListEnumStationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StationStatus[]'>
    


  /**
   * Reference to a field of type 'WarehouseStatus'
   */
  export type EnumWarehouseStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WarehouseStatus'>
    


  /**
   * Reference to a field of type 'WarehouseStatus[]'
   */
  export type ListEnumWarehouseStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WarehouseStatus[]'>
    


  /**
   * Reference to a field of type 'StorageLocationStatus'
   */
  export type EnumStorageLocationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StorageLocationStatus'>
    


  /**
   * Reference to a field of type 'StorageLocationStatus[]'
   */
  export type ListEnumStorageLocationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StorageLocationStatus[]'>
    


  /**
   * Reference to a field of type 'LabelStatus'
   */
  export type EnumLabelStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LabelStatus'>
    


  /**
   * Reference to a field of type 'LabelStatus[]'
   */
  export type ListEnumLabelStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LabelStatus[]'>
    


  /**
   * Reference to a field of type 'InventoryOperationType'
   */
  export type EnumInventoryOperationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InventoryOperationType'>
    


  /**
   * Reference to a field of type 'InventoryOperationType[]'
   */
  export type ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InventoryOperationType[]'>
    


  /**
   * Reference to a field of type 'StockAlertType'
   */
  export type EnumStockAlertTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StockAlertType'>
    


  /**
   * Reference to a field of type 'StockAlertType[]'
   */
  export type ListEnumStockAlertTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StockAlertType[]'>
    


  /**
   * Reference to a field of type 'AlertSeverity'
   */
  export type EnumAlertSeverityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AlertSeverity'>
    


  /**
   * Reference to a field of type 'AlertSeverity[]'
   */
  export type ListEnumAlertSeverityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AlertSeverity[]'>
    


  /**
   * Reference to a field of type 'AlertStatus'
   */
  export type EnumAlertStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AlertStatus'>
    


  /**
   * Reference to a field of type 'AlertStatus[]'
   */
  export type ListEnumAlertStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AlertStatus[]'>
    


  /**
   * Reference to a field of type 'ImportStatus'
   */
  export type EnumImportStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportStatus'>
    


  /**
   * Reference to a field of type 'ImportStatus[]'
   */
  export type ListEnumImportStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportStatus[]'>
    


  /**
   * Reference to a field of type 'GroupFieldType'
   */
  export type EnumGroupFieldTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'GroupFieldType'>
    


  /**
   * Reference to a field of type 'GroupFieldType[]'
   */
  export type ListEnumGroupFieldTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'GroupFieldType[]'>
    


  /**
   * Reference to a field of type 'AIConversationStatus'
   */
  export type EnumAIConversationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIConversationStatus'>
    


  /**
   * Reference to a field of type 'AIConversationStatus[]'
   */
  export type ListEnumAIConversationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIConversationStatus[]'>
    


  /**
   * Reference to a field of type 'AIConversationCategory'
   */
  export type EnumAIConversationCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIConversationCategory'>
    


  /**
   * Reference to a field of type 'AIConversationCategory[]'
   */
  export type ListEnumAIConversationCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIConversationCategory[]'>
    


  /**
   * Reference to a field of type 'AIMessageRole'
   */
  export type EnumAIMessageRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIMessageRole'>
    


  /**
   * Reference to a field of type 'AIMessageRole[]'
   */
  export type ListEnumAIMessageRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIMessageRole[]'>
    


  /**
   * Reference to a field of type 'AIMessageSource'
   */
  export type EnumAIMessageSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIMessageSource'>
    


  /**
   * Reference to a field of type 'AIMessageSource[]'
   */
  export type ListEnumAIMessageSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIMessageSource[]'>
    


  /**
   * Reference to a field of type 'AIFeedbackType'
   */
  export type EnumAIFeedbackTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIFeedbackType'>
    


  /**
   * Reference to a field of type 'AIFeedbackType[]'
   */
  export type ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIFeedbackType[]'>
    


  /**
   * Reference to a field of type 'AITicketCategory'
   */
  export type EnumAITicketCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AITicketCategory'>
    


  /**
   * Reference to a field of type 'AITicketCategory[]'
   */
  export type ListEnumAITicketCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AITicketCategory[]'>
    


  /**
   * Reference to a field of type 'AITicketPriority'
   */
  export type EnumAITicketPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AITicketPriority'>
    


  /**
   * Reference to a field of type 'AITicketPriority[]'
   */
  export type ListEnumAITicketPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AITicketPriority[]'>
    


  /**
   * Reference to a field of type 'AITicketStatus'
   */
  export type EnumAITicketStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AITicketStatus'>
    


  /**
   * Reference to a field of type 'AITicketStatus[]'
   */
  export type ListEnumAITicketStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AITicketStatus[]'>
    


  /**
   * Reference to a field of type 'AIAssigneeTeam'
   */
  export type EnumAIAssigneeTeamFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIAssigneeTeam'>
    


  /**
   * Reference to a field of type 'AIAssigneeTeam[]'
   */
  export type ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIAssigneeTeam[]'>
    


  /**
   * Reference to a field of type 'AIKnowledgeFixStatus'
   */
  export type EnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIKnowledgeFixStatus'>
    


  /**
   * Reference to a field of type 'AIKnowledgeFixStatus[]'
   */
  export type ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AIKnowledgeFixStatus[]'>
    


  /**
   * Reference to a field of type 'Float'
   */
  export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'>
    


  /**
   * Reference to a field of type 'Float[]'
   */
  export type ListFloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float[]'>
    


  /**
   * Reference to a field of type 'AgentSurface'
   */
  export type EnumAgentSurfaceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentSurface'>
    


  /**
   * Reference to a field of type 'AgentSurface[]'
   */
  export type ListEnumAgentSurfaceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentSurface[]'>
    


  /**
   * Reference to a field of type 'AgentSessionStatus'
   */
  export type EnumAgentSessionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentSessionStatus'>
    


  /**
   * Reference to a field of type 'AgentSessionStatus[]'
   */
  export type ListEnumAgentSessionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentSessionStatus[]'>
    


  /**
   * Reference to a field of type 'AgentPlanMode'
   */
  export type EnumAgentPlanModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentPlanMode'>
    


  /**
   * Reference to a field of type 'AgentPlanMode[]'
   */
  export type ListEnumAgentPlanModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentPlanMode[]'>
    


  /**
   * Reference to a field of type 'AgentPermissionMode'
   */
  export type EnumAgentPermissionModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentPermissionMode'>
    


  /**
   * Reference to a field of type 'AgentPermissionMode[]'
   */
  export type ListEnumAgentPermissionModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentPermissionMode[]'>
    


  /**
   * Reference to a field of type 'AgentMessageType'
   */
  export type EnumAgentMessageTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentMessageType'>
    


  /**
   * Reference to a field of type 'AgentMessageType[]'
   */
  export type ListEnumAgentMessageTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentMessageType[]'>
    


  /**
   * Reference to a field of type 'ModelRoutingScope'
   */
  export type EnumModelRoutingScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ModelRoutingScope'>
    


  /**
   * Reference to a field of type 'ModelRoutingScope[]'
   */
  export type ListEnumModelRoutingScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ModelRoutingScope[]'>
    


  /**
   * Reference to a field of type 'ModelRoutingMatchSource'
   */
  export type EnumModelRoutingMatchSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ModelRoutingMatchSource'>
    


  /**
   * Reference to a field of type 'ModelRoutingMatchSource[]'
   */
  export type ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ModelRoutingMatchSource[]'>
    


  /**
   * Reference to a field of type 'AgentTrajectoryEventType'
   */
  export type EnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentTrajectoryEventType'>
    


  /**
   * Reference to a field of type 'AgentTrajectoryEventType[]'
   */
  export type ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentTrajectoryEventType[]'>
    


  /**
   * Reference to a field of type 'AgentQuotaScope'
   */
  export type EnumAgentQuotaScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentQuotaScope'>
    


  /**
   * Reference to a field of type 'AgentQuotaScope[]'
   */
  export type ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentQuotaScope[]'>
    


  /**
   * Reference to a field of type 'AgentArtifactType'
   */
  export type EnumAgentArtifactTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentArtifactType'>
    


  /**
   * Reference to a field of type 'AgentArtifactType[]'
   */
  export type ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentArtifactType[]'>
    


  /**
   * Reference to a field of type 'AgentTaskStatus'
   */
  export type EnumAgentTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentTaskStatus'>
    


  /**
   * Reference to a field of type 'AgentTaskStatus[]'
   */
  export type ListEnumAgentTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentTaskStatus[]'>
    


  /**
   * Reference to a field of type 'StorageBindingScope'
   */
  export type EnumStorageBindingScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StorageBindingScope'>
    


  /**
   * Reference to a field of type 'StorageBindingScope[]'
   */
  export type ListEnumStorageBindingScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StorageBindingScope[]'>
    


  /**
   * Reference to a field of type 'StorageBackendKind'
   */
  export type EnumStorageBackendKindFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StorageBackendKind'>
    


  /**
   * Reference to a field of type 'StorageBackendKind[]'
   */
  export type ListEnumStorageBackendKindFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StorageBackendKind[]'>
    


  /**
   * Reference to a field of type 'MemoryOwnerScope'
   */
  export type EnumMemoryOwnerScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MemoryOwnerScope'>
    


  /**
   * Reference to a field of type 'MemoryOwnerScope[]'
   */
  export type ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MemoryOwnerScope[]'>
    


  /**
   * Reference to a field of type 'MemoryScope'
   */
  export type EnumMemoryScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MemoryScope'>
    


  /**
   * Reference to a field of type 'MemoryScope[]'
   */
  export type ListEnumMemoryScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MemoryScope[]'>
    


  /**
   * Reference to a field of type 'MemoryCategory'
   */
  export type EnumMemoryCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MemoryCategory'>
    


  /**
   * Reference to a field of type 'MemoryCategory[]'
   */
  export type ListEnumMemoryCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MemoryCategory[]'>
    


  /**
   * Reference to a field of type 'AiUsageOsPlatform'
   */
  export type EnumAiUsageOsPlatformFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AiUsageOsPlatform'>
    


  /**
   * Reference to a field of type 'AiUsageOsPlatform[]'
   */
  export type ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AiUsageOsPlatform[]'>
    


  /**
   * Reference to a field of type 'AiUsageTool'
   */
  export type EnumAiUsageToolFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AiUsageTool'>
    


  /**
   * Reference to a field of type 'AiUsageTool[]'
   */
  export type ListEnumAiUsageToolFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AiUsageTool[]'>
    


  /**
   * Reference to a field of type 'AiUsageDlqReason'
   */
  export type EnumAiUsageDlqReasonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AiUsageDlqReason'>
    


  /**
   * Reference to a field of type 'AiUsageDlqReason[]'
   */
  export type ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AiUsageDlqReason[]'>
    


  /**
   * Reference to a field of type 'AuditAction'
   */
  export type EnumAuditActionFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AuditAction'>
    


  /**
   * Reference to a field of type 'AuditAction[]'
   */
  export type ListEnumAuditActionFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AuditAction[]'>
    


  /**
   * Reference to a field of type 'AuditStatus'
   */
  export type EnumAuditStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AuditStatus'>
    


  /**
   * Reference to a field of type 'AuditStatus[]'
   */
  export type ListEnumAuditStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AuditStatus[]'>
    


  /**
   * Reference to a field of type 'ComplianceLevel'
   */
  export type EnumComplianceLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ComplianceLevel'>
    


  /**
   * Reference to a field of type 'ComplianceLevel[]'
   */
  export type ListEnumComplianceLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ComplianceLevel[]'>
    


  /**
   * Reference to a field of type 'DbOperation'
   */
  export type EnumDbOperationFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DbOperation'>
    


  /**
   * Reference to a field of type 'DbOperation[]'
   */
  export type ListEnumDbOperationFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DbOperation[]'>
    


  /**
   * Reference to a field of type 'IntegrityCheckType'
   */
  export type EnumIntegrityCheckTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'IntegrityCheckType'>
    


  /**
   * Reference to a field of type 'IntegrityCheckType[]'
   */
  export type ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'IntegrityCheckType[]'>
    


  /**
   * Reference to a field of type 'CheckStatus'
   */
  export type EnumCheckStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CheckStatus'>
    


  /**
   * Reference to a field of type 'CheckStatus[]'
   */
  export type ListEnumCheckStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CheckStatus[]'>
    


  /**
   * Reference to a field of type 'AutomationTaskType'
   */
  export type EnumAutomationTaskTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AutomationTaskType'>
    


  /**
   * Reference to a field of type 'AutomationTaskType[]'
   */
  export type ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AutomationTaskType[]'>
    


  /**
   * Reference to a field of type 'AutomationTaskStatus'
   */
  export type EnumAutomationTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AutomationTaskStatus'>
    


  /**
   * Reference to a field of type 'AutomationTaskStatus[]'
   */
  export type ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AutomationTaskStatus[]'>
    


  /**
   * Reference to a field of type 'AutomationExecutionStatus'
   */
  export type EnumAutomationExecutionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AutomationExecutionStatus'>
    


  /**
   * Reference to a field of type 'AutomationExecutionStatus[]'
   */
  export type ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AutomationExecutionStatus[]'>
    


  /**
   * Reference to a field of type 'DevItemType'
   */
  export type EnumDevItemTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DevItemType'>
    


  /**
   * Reference to a field of type 'DevItemType[]'
   */
  export type ListEnumDevItemTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DevItemType[]'>
    


  /**
   * Reference to a field of type 'DevItemStatus'
   */
  export type EnumDevItemStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DevItemStatus'>
    


  /**
   * Reference to a field of type 'DevItemStatus[]'
   */
  export type ListEnumDevItemStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DevItemStatus[]'>
    


  /**
   * Reference to a field of type 'DevItemPriority'
   */
  export type EnumDevItemPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DevItemPriority'>
    


  /**
   * Reference to a field of type 'DevItemPriority[]'
   */
  export type ListEnumDevItemPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DevItemPriority[]'>
    


  /**
   * Reference to a field of type 'DevItemSeverity'
   */
  export type EnumDevItemSeverityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DevItemSeverity'>
    


  /**
   * Reference to a field of type 'DevItemSeverity[]'
   */
  export type ListEnumDevItemSeverityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DevItemSeverity[]'>
    


  /**
   * Reference to a field of type 'FeedbackType'
   */
  export type EnumFeedbackTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FeedbackType'>
    


  /**
   * Reference to a field of type 'FeedbackType[]'
   */
  export type ListEnumFeedbackTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FeedbackType[]'>
    


  /**
   * Reference to a field of type 'FeedbackStatus'
   */
  export type EnumFeedbackStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FeedbackStatus'>
    


  /**
   * Reference to a field of type 'FeedbackStatus[]'
   */
  export type ListEnumFeedbackStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FeedbackStatus[]'>
    


  /**
   * Reference to a field of type 'FeedbackPriority'
   */
  export type EnumFeedbackPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FeedbackPriority'>
    


  /**
   * Reference to a field of type 'FeedbackPriority[]'
   */
  export type ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FeedbackPriority[]'>
    


  /**
   * Reference to a field of type 'FormStatus'
   */
  export type EnumFormStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FormStatus'>
    


  /**
   * Reference to a field of type 'FormStatus[]'
   */
  export type ListEnumFormStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FormStatus[]'>
    


  /**
   * Reference to a field of type 'FormVersionStatus'
   */
  export type EnumFormVersionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FormVersionStatus'>
    


  /**
   * Reference to a field of type 'FormVersionStatus[]'
   */
  export type ListEnumFormVersionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FormVersionStatus[]'>
    


  /**
   * Reference to a field of type 'FormInstanceStatus'
   */
  export type EnumFormInstanceStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FormInstanceStatus'>
    


  /**
   * Reference to a field of type 'FormInstanceStatus[]'
   */
  export type ListEnumFormInstanceStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FormInstanceStatus[]'>
    


  /**
   * Reference to a field of type 'ReleaseSnapshotStatus'
   */
  export type EnumReleaseSnapshotStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ReleaseSnapshotStatus'>
    


  /**
   * Reference to a field of type 'ReleaseSnapshotStatus[]'
   */
  export type ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ReleaseSnapshotStatus[]'>
    


  /**
   * Reference to a field of type 'UserStatus'
   */
  export type EnumUserStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'UserStatus'>
    


  /**
   * Reference to a field of type 'UserStatus[]'
   */
  export type ListEnumUserStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'UserStatus[]'>
    


  /**
   * Reference to a field of type 'UserSource'
   */
  export type EnumUserSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'UserSource'>
    


  /**
   * Reference to a field of type 'UserSource[]'
   */
  export type ListEnumUserSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'UserSource[]'>
    


  /**
   * Reference to a field of type 'WorkflowRuleType'
   */
  export type EnumWorkflowRuleTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WorkflowRuleType'>
    


  /**
   * Reference to a field of type 'WorkflowRuleType[]'
   */
  export type ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WorkflowRuleType[]'>
    


  /**
   * Reference to a field of type 'DataScopeType'
   */
  export type EnumDataScopeTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DataScopeType'>
    


  /**
   * Reference to a field of type 'DataScopeType[]'
   */
  export type ListEnumDataScopeTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DataScopeType[]'>
    


  /**
   * Reference to a field of type 'FieldAccess'
   */
  export type EnumFieldAccessFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FieldAccess'>
    


  /**
   * Reference to a field of type 'FieldAccess[]'
   */
  export type ListEnumFieldAccessFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FieldAccess[]'>
    


  /**
   * Reference to a field of type 'InternalAppRuntime'
   */
  export type EnumInternalAppRuntimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppRuntime'>
    


  /**
   * Reference to a field of type 'InternalAppRuntime[]'
   */
  export type ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppRuntime[]'>
    


  /**
   * Reference to a field of type 'InternalAppStatus'
   */
  export type EnumInternalAppStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppStatus'>
    


  /**
   * Reference to a field of type 'InternalAppStatus[]'
   */
  export type ListEnumInternalAppStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppStatus[]'>
    


  /**
   * Reference to a field of type 'InternalAppDeploymentStatus'
   */
  export type EnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppDeploymentStatus'>
    


  /**
   * Reference to a field of type 'InternalAppDeploymentStatus[]'
   */
  export type ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppDeploymentStatus[]'>
    


  /**
   * Reference to a field of type 'InternalAppDeploymentTrigger'
   */
  export type EnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppDeploymentTrigger'>
    


  /**
   * Reference to a field of type 'InternalAppDeploymentTrigger[]'
   */
  export type ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppDeploymentTrigger[]'>
    


  /**
   * Reference to a field of type 'Bytes'
   */
  export type BytesFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Bytes'>
    


  /**
   * Reference to a field of type 'Bytes[]'
   */
  export type ListBytesFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Bytes[]'>
    


  /**
   * Reference to a field of type 'InternalAppTokenStatus'
   */
  export type EnumInternalAppTokenStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppTokenStatus'>
    


  /**
   * Reference to a field of type 'InternalAppTokenStatus[]'
   */
  export type ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppTokenStatus[]'>
    


  /**
   * Reference to a field of type 'InternalAppTokenRevokeReason'
   */
  export type EnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppTokenRevokeReason'>
    


  /**
   * Reference to a field of type 'InternalAppTokenRevokeReason[]'
   */
  export type ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppTokenRevokeReason[]'>
    


  /**
   * Reference to a field of type 'InternalAppActorRole'
   */
  export type EnumInternalAppActorRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppActorRole'>
    


  /**
   * Reference to a field of type 'InternalAppActorRole[]'
   */
  export type ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppActorRole[]'>
    


  /**
   * Reference to a field of type 'InternalAppEventOutcome'
   */
  export type EnumInternalAppEventOutcomeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppEventOutcome'>
    


  /**
   * Reference to a field of type 'InternalAppEventOutcome[]'
   */
  export type ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InternalAppEventOutcome[]'>
    


  /**
   * Reference to a field of type 'KnowledgeArticleStatus'
   */
  export type EnumKnowledgeArticleStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'KnowledgeArticleStatus'>
    


  /**
   * Reference to a field of type 'KnowledgeArticleStatus[]'
   */
  export type ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'KnowledgeArticleStatus[]'>
    


  /**
   * Reference to a field of type 'DocAuthorityLevel'
   */
  export type EnumDocAuthorityLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DocAuthorityLevel'>
    


  /**
   * Reference to a field of type 'DocAuthorityLevel[]'
   */
  export type ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DocAuthorityLevel[]'>
    


  /**
   * Reference to a field of type 'DocLifecycleStatus'
   */
  export type EnumDocLifecycleStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DocLifecycleStatus'>
    


  /**
   * Reference to a field of type 'DocLifecycleStatus[]'
   */
  export type ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DocLifecycleStatus[]'>
    


  /**
   * Reference to a field of type 'DocType'
   */
  export type EnumDocTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DocType'>
    


  /**
   * Reference to a field of type 'DocType[]'
   */
  export type ListEnumDocTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DocType[]'>
    


  /**
   * Reference to a field of type 'RagflowSourceType'
   */
  export type EnumRagflowSourceTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RagflowSourceType'>
    


  /**
   * Reference to a field of type 'RagflowSourceType[]'
   */
  export type ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RagflowSourceType[]'>
    


  /**
   * Reference to a field of type 'SyncStatus'
   */
  export type EnumSyncStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SyncStatus'>
    


  /**
   * Reference to a field of type 'SyncStatus[]'
   */
  export type ListEnumSyncStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SyncStatus[]'>
    


  /**
   * Reference to a field of type 'QAFeedback'
   */
  export type EnumQAFeedbackFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QAFeedback'>
    


  /**
   * Reference to a field of type 'QAFeedback[]'
   */
  export type ListEnumQAFeedbackFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QAFeedback[]'>
    


  /**
   * Reference to a field of type 'SearchType'
   */
  export type EnumSearchTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SearchType'>
    


  /**
   * Reference to a field of type 'SearchType[]'
   */
  export type ListEnumSearchTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SearchType[]'>
    


  /**
   * Reference to a field of type 'LikeType'
   */
  export type EnumLikeTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LikeType'>
    


  /**
   * Reference to a field of type 'LikeType[]'
   */
  export type ListEnumLikeTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LikeType[]'>
    


  /**
   * Reference to a field of type 'SyncItemStatus'
   */
  export type EnumSyncItemStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SyncItemStatus'>
    


  /**
   * Reference to a field of type 'SyncItemStatus[]'
   */
  export type ListEnumSyncItemStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SyncItemStatus[]'>
    


  /**
   * Reference to a field of type 'LogLevel'
   */
  export type EnumLogLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogLevel'>
    


  /**
   * Reference to a field of type 'LogLevel[]'
   */
  export type ListEnumLogLevelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogLevel[]'>
    


  /**
   * Reference to a field of type 'LogAlertType'
   */
  export type EnumLogAlertTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogAlertType'>
    


  /**
   * Reference to a field of type 'LogAlertType[]'
   */
  export type ListEnumLogAlertTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogAlertType[]'>
    


  /**
   * Reference to a field of type 'LogAlertSeverity'
   */
  export type EnumLogAlertSeverityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogAlertSeverity'>
    


  /**
   * Reference to a field of type 'LogAlertSeverity[]'
   */
  export type ListEnumLogAlertSeverityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogAlertSeverity[]'>
    


  /**
   * Reference to a field of type 'LogAlertStatus'
   */
  export type EnumLogAlertStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogAlertStatus'>
    


  /**
   * Reference to a field of type 'LogAlertStatus[]'
   */
  export type ListEnumLogAlertStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogAlertStatus[]'>
    


  /**
   * Reference to a field of type 'CustomerType'
   */
  export type EnumCustomerTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CustomerType'>
    


  /**
   * Reference to a field of type 'CustomerType[]'
   */
  export type ListEnumCustomerTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CustomerType[]'>
    


  /**
   * Reference to a field of type 'SupplierType'
   */
  export type EnumSupplierTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SupplierType'>
    


  /**
   * Reference to a field of type 'SupplierType[]'
   */
  export type ListEnumSupplierTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SupplierType[]'>
    


  /**
   * Reference to a field of type 'PartnerRole'
   */
  export type EnumPartnerRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PartnerRole'>
    


  /**
   * Reference to a field of type 'PartnerRole[]'
   */
  export type ListEnumPartnerRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PartnerRole[]'>
    


  /**
   * Reference to a field of type 'LocationType'
   */
  export type EnumLocationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LocationType'>
    


  /**
   * Reference to a field of type 'LocationType[]'
   */
  export type ListEnumLocationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LocationType[]'>
    


  /**
   * Reference to a field of type 'MeetingType'
   */
  export type EnumMeetingTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MeetingType'>
    


  /**
   * Reference to a field of type 'MeetingType[]'
   */
  export type ListEnumMeetingTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MeetingType[]'>
    


  /**
   * Reference to a field of type 'MeetingStatus'
   */
  export type EnumMeetingStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MeetingStatus'>
    


  /**
   * Reference to a field of type 'MeetingStatus[]'
   */
  export type ListEnumMeetingStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MeetingStatus[]'>
    


  /**
   * Reference to a field of type 'RecurrencePattern'
   */
  export type EnumRecurrencePatternFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RecurrencePattern'>
    


  /**
   * Reference to a field of type 'RecurrencePattern[]'
   */
  export type ListEnumRecurrencePatternFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RecurrencePattern[]'>
    


  /**
   * Reference to a field of type 'AttendanceStatus'
   */
  export type EnumAttendanceStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AttendanceStatus'>
    


  /**
   * Reference to a field of type 'AttendanceStatus[]'
   */
  export type ListEnumAttendanceStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AttendanceStatus[]'>
    


  /**
   * Reference to a field of type 'CheckinType'
   */
  export type EnumCheckinTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CheckinType'>
    


  /**
   * Reference to a field of type 'CheckinType[]'
   */
  export type ListEnumCheckinTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CheckinType[]'>
    


  /**
   * Reference to a field of type 'AttendeeRole'
   */
  export type EnumAttendeeRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AttendeeRole'>
    


  /**
   * Reference to a field of type 'AttendeeRole[]'
   */
  export type ListEnumAttendeeRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AttendeeRole[]'>
    


  /**
   * Reference to a field of type 'AttendanceMode'
   */
  export type EnumAttendanceModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AttendanceMode'>
    


  /**
   * Reference to a field of type 'AttendanceMode[]'
   */
  export type ListEnumAttendanceModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AttendanceMode[]'>
    


  /**
   * Reference to a field of type 'LeaveType'
   */
  export type EnumLeaveTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LeaveType'>
    


  /**
   * Reference to a field of type 'LeaveType[]'
   */
  export type ListEnumLeaveTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LeaveType[]'>
    


  /**
   * Reference to a field of type 'LeaveStatus'
   */
  export type EnumLeaveStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LeaveStatus'>
    


  /**
   * Reference to a field of type 'LeaveStatus[]'
   */
  export type ListEnumLeaveStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LeaveStatus[]'>
    


  /**
   * Reference to a field of type 'OutlookMailboxType'
   */
  export type EnumOutlookMailboxTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookMailboxType'>
    


  /**
   * Reference to a field of type 'OutlookMailboxType[]'
   */
  export type ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookMailboxType[]'>
    


  /**
   * Reference to a field of type 'OutlookSubscriptionStatus'
   */
  export type EnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookSubscriptionStatus'>
    


  /**
   * Reference to a field of type 'OutlookSubscriptionStatus[]'
   */
  export type ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookSubscriptionStatus[]'>
    


  /**
   * Reference to a field of type 'OutlookManageStatus'
   */
  export type EnumOutlookManageStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookManageStatus'>
    


  /**
   * Reference to a field of type 'OutlookManageStatus[]'
   */
  export type ListEnumOutlookManageStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookManageStatus[]'>
    


  /**
   * Reference to a field of type 'OutlookBootstrapStatus'
   */
  export type EnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookBootstrapStatus'>
    


  /**
   * Reference to a field of type 'OutlookBootstrapStatus[]'
   */
  export type ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookBootstrapStatus[]'>
    


  /**
   * Reference to a field of type 'OutlookCancellationSource'
   */
  export type EnumOutlookCancellationSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookCancellationSource'>
    


  /**
   * Reference to a field of type 'OutlookCancellationSource[]'
   */
  export type ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookCancellationSource[]'>
    


  /**
   * Reference to a field of type 'OutlookBindingSyncMode'
   */
  export type EnumOutlookBindingSyncModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookBindingSyncMode'>
    


  /**
   * Reference to a field of type 'OutlookBindingSyncMode[]'
   */
  export type ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutlookBindingSyncMode[]'>
    


  /**
   * Reference to a field of type 'UploadTaskStatus'
   */
  export type EnumUploadTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'UploadTaskStatus'>
    


  /**
   * Reference to a field of type 'UploadTaskStatus[]'
   */
  export type ListEnumUploadTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'UploadTaskStatus[]'>
    


  /**
   * Reference to a field of type 'MeetingAttachmentCategory'
   */
  export type EnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MeetingAttachmentCategory'>
    


  /**
   * Reference to a field of type 'MeetingAttachmentCategory[]'
   */
  export type ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'MeetingAttachmentCategory[]'>
    


  /**
   * Reference to a field of type 'NotificationType'
   */
  export type EnumNotificationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationType'>
    


  /**
   * Reference to a field of type 'NotificationType[]'
   */
  export type ListEnumNotificationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationType[]'>
    


  /**
   * Reference to a field of type 'NotificationStatus'
   */
  export type EnumNotificationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationStatus'>
    


  /**
   * Reference to a field of type 'NotificationStatus[]'
   */
  export type ListEnumNotificationStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationStatus[]'>
    


  /**
   * Reference to a field of type 'NotificationChannel'
   */
  export type EnumNotificationChannelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationChannel'>
    


  /**
   * Reference to a field of type 'NotificationChannel[]'
   */
  export type ListEnumNotificationChannelFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationChannel[]'>
    


  /**
   * Reference to a field of type 'NotificationPriority'
   */
  export type EnumNotificationPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationPriority'>
    


  /**
   * Reference to a field of type 'NotificationPriority[]'
   */
  export type ListEnumNotificationPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationPriority[]'>
    


  /**
   * Reference to a field of type 'NotificationSendStatus'
   */
  export type EnumNotificationSendStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationSendStatus'>
    


  /**
   * Reference to a field of type 'NotificationSendStatus[]'
   */
  export type ListEnumNotificationSendStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'NotificationSendStatus[]'>
    


  /**
   * Reference to a field of type 'M365UserActivityChangeField'
   */
  export type EnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'M365UserActivityChangeField'>
    


  /**
   * Reference to a field of type 'M365UserActivityChangeField[]'
   */
  export type ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'M365UserActivityChangeField[]'>
    


  /**
   * Reference to a field of type 'CycleType'
   */
  export type EnumCycleTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CycleType'>
    


  /**
   * Reference to a field of type 'CycleType[]'
   */
  export type ListEnumCycleTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CycleType[]'>
    


  /**
   * Reference to a field of type 'CycleStatus'
   */
  export type EnumCycleStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CycleStatus'>
    


  /**
   * Reference to a field of type 'CycleStatus[]'
   */
  export type ListEnumCycleStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CycleStatus[]'>
    


  /**
   * Reference to a field of type 'ResultConfirmStatus'
   */
  export type EnumResultConfirmStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ResultConfirmStatus'>
    


  /**
   * Reference to a field of type 'ResultConfirmStatus[]'
   */
  export type ListEnumResultConfirmStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ResultConfirmStatus[]'>
    


  /**
   * Reference to a field of type 'KpiAssignmentStatus'
   */
  export type EnumKpiAssignmentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'KpiAssignmentStatus'>
    


  /**
   * Reference to a field of type 'KpiAssignmentStatus[]'
   */
  export type ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'KpiAssignmentStatus[]'>
    


  /**
   * Reference to a field of type 'KpiDependencyStatus'
   */
  export type EnumKpiDependencyStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'KpiDependencyStatus'>
    


  /**
   * Reference to a field of type 'KpiDependencyStatus[]'
   */
  export type ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'KpiDependencyStatus[]'>
    


  /**
   * Reference to a field of type 'KpiAssessmentStatus'
   */
  export type EnumKpiAssessmentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'KpiAssessmentStatus'>
    


  /**
   * Reference to a field of type 'KpiAssessmentStatus[]'
   */
  export type ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'KpiAssessmentStatus[]'>
    


  /**
   * Reference to a field of type 'Evaluation360Status'
   */
  export type EnumEvaluation360StatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Evaluation360Status'>
    


  /**
   * Reference to a field of type 'Evaluation360Status[]'
   */
  export type ListEnumEvaluation360StatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Evaluation360Status[]'>
    


  /**
   * Reference to a field of type 'RelationType'
   */
  export type EnumRelationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RelationType'>
    


  /**
   * Reference to a field of type 'RelationType[]'
   */
  export type ListEnumRelationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RelationType[]'>
    


  /**
   * Reference to a field of type 'EvaluationTaskStatus'
   */
  export type EnumEvaluationTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'EvaluationTaskStatus'>
    


  /**
   * Reference to a field of type 'EvaluationTaskStatus[]'
   */
  export type ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'EvaluationTaskStatus[]'>
    


  /**
   * Reference to a field of type 'SiteGeoPolicy'
   */
  export type EnumSiteGeoPolicyFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteGeoPolicy'>
    


  /**
   * Reference to a field of type 'SiteGeoPolicy[]'
   */
  export type ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteGeoPolicy[]'>
    


  /**
   * Reference to a field of type 'SiteCheckpointAccessMode'
   */
  export type EnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteCheckpointAccessMode'>
    


  /**
   * Reference to a field of type 'SiteCheckpointAccessMode[]'
   */
  export type ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteCheckpointAccessMode[]'>
    


  /**
   * Reference to a field of type 'SiteEventType'
   */
  export type EnumSiteEventTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteEventType'>
    


  /**
   * Reference to a field of type 'SiteEventType[]'
   */
  export type ListEnumSiteEventTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteEventType[]'>
    


  /**
   * Reference to a field of type 'SiteAuthMethod'
   */
  export type EnumSiteAuthMethodFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteAuthMethod'>
    


  /**
   * Reference to a field of type 'SiteAuthMethod[]'
   */
  export type ListEnumSiteAuthMethodFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteAuthMethod[]'>
    


  /**
   * Reference to a field of type 'SiteGeoStatus'
   */
  export type EnumSiteGeoStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteGeoStatus'>
    


  /**
   * Reference to a field of type 'SiteGeoStatus[]'
   */
  export type ListEnumSiteGeoStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SiteGeoStatus[]'>
    


  /**
   * Reference to a field of type 'TicketPriority'
   */
  export type EnumTicketPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TicketPriority'>
    


  /**
   * Reference to a field of type 'TicketPriority[]'
   */
  export type ListEnumTicketPriorityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TicketPriority[]'>
    


  /**
   * Reference to a field of type 'TicketStatus'
   */
  export type EnumTicketStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TicketStatus'>
    


  /**
   * Reference to a field of type 'TicketStatus[]'
   */
  export type ListEnumTicketStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TicketStatus[]'>
    


  /**
   * Reference to a field of type 'TicketSource'
   */
  export type EnumTicketSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TicketSource'>
    


  /**
   * Reference to a field of type 'TicketSource[]'
   */
  export type ListEnumTicketSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TicketSource[]'>
    


  /**
   * Reference to a field of type 'CommentType'
   */
  export type EnumCommentTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CommentType'>
    


  /**
   * Reference to a field of type 'CommentType[]'
   */
  export type ListEnumCommentTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CommentType[]'>
    


  /**
   * Reference to a field of type 'VisibilityScope'
   */
  export type EnumVisibilityScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'VisibilityScope'>
    


  /**
   * Reference to a field of type 'VisibilityScope[]'
   */
  export type ListEnumVisibilityScopeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'VisibilityScope[]'>
    


  /**
   * Reference to a field of type 'ActivityType'
   */
  export type EnumActivityTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ActivityType'>
    


  /**
   * Reference to a field of type 'ActivityType[]'
   */
  export type ListEnumActivityTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ActivityType[]'>
    


  /**
   * Reference to a field of type 'AssignmentStrategy'
   */
  export type EnumAssignmentStrategyFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AssignmentStrategy'>
    


  /**
   * Reference to a field of type 'AssignmentStrategy[]'
   */
  export type ListEnumAssignmentStrategyFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AssignmentStrategy[]'>
    


  /**
   * Reference to a field of type 'RobotUsageType'
   */
  export type EnumRobotUsageTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotUsageType'>
    


  /**
   * Reference to a field of type 'RobotUsageType[]'
   */
  export type ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotUsageType[]'>
    


  /**
   * Reference to a field of type 'RobotDisposalType'
   */
  export type EnumRobotDisposalTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotDisposalType'>
    


  /**
   * Reference to a field of type 'RobotDisposalType[]'
   */
  export type ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotDisposalType[]'>
    


  /**
   * Reference to a field of type 'RobotLifecycleStage'
   */
  export type EnumRobotLifecycleStageFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotLifecycleStage'>
    


  /**
   * Reference to a field of type 'RobotLifecycleStage[]'
   */
  export type ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotLifecycleStage[]'>
    


  /**
   * Reference to a field of type 'RobotPhysicalStatus'
   */
  export type EnumRobotPhysicalStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotPhysicalStatus'>
    


  /**
   * Reference to a field of type 'RobotPhysicalStatus[]'
   */
  export type ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotPhysicalStatus[]'>
    


  /**
   * Reference to a field of type 'RobotWarrantyStatus'
   */
  export type EnumRobotWarrantyStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotWarrantyStatus'>
    


  /**
   * Reference to a field of type 'RobotWarrantyStatus[]'
   */
  export type ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotWarrantyStatus[]'>
    


  /**
   * Reference to a field of type 'RobotLifecycleEventType'
   */
  export type EnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotLifecycleEventType'>
    


  /**
   * Reference to a field of type 'RobotLifecycleEventType[]'
   */
  export type ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotLifecycleEventType[]'>
    


  /**
   * Reference to a field of type 'RobotEventRelatedType'
   */
  export type EnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotEventRelatedType'>
    


  /**
   * Reference to a field of type 'RobotEventRelatedType[]'
   */
  export type ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RobotEventRelatedType[]'>
    


  /**
   * Reference to a field of type 'PurchaseOrderStatus'
   */
  export type EnumPurchaseOrderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PurchaseOrderStatus'>
    


  /**
   * Reference to a field of type 'PurchaseOrderStatus[]'
   */
  export type ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PurchaseOrderStatus[]'>
    


  /**
   * Reference to a field of type 'SalesContractStatus'
   */
  export type EnumSalesContractStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SalesContractStatus'>
    


  /**
   * Reference to a field of type 'SalesContractStatus[]'
   */
  export type ListEnumSalesContractStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SalesContractStatus[]'>
    


  /**
   * Reference to a field of type 'SalesOrderStatus'
   */
  export type EnumSalesOrderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SalesOrderStatus'>
    


  /**
   * Reference to a field of type 'SalesOrderStatus[]'
   */
  export type ListEnumSalesOrderStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SalesOrderStatus[]'>
    


  /**
   * Reference to a field of type 'SalesLineType'
   */
  export type EnumSalesLineTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SalesLineType'>
    


  /**
   * Reference to a field of type 'SalesLineType[]'
   */
  export type ListEnumSalesLineTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SalesLineType[]'>
    


  /**
   * Reference to a field of type 'DeliveryRequestType'
   */
  export type EnumDeliveryRequestTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DeliveryRequestType'>
    


  /**
   * Reference to a field of type 'DeliveryRequestType[]'
   */
  export type ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DeliveryRequestType[]'>
    


  /**
   * Reference to a field of type 'DeliveryRequestStatus'
   */
  export type EnumDeliveryRequestStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DeliveryRequestStatus'>
    


  /**
   * Reference to a field of type 'DeliveryRequestStatus[]'
   */
  export type ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DeliveryRequestStatus[]'>
    


  /**
   * Reference to a field of type 'DeliveryFormStatus'
   */
  export type EnumDeliveryFormStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DeliveryFormStatus'>
    


  /**
   * Reference to a field of type 'DeliveryFormStatus[]'
   */
  export type ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DeliveryFormStatus[]'>
    


  /**
   * Reference to a field of type 'RevenueRecognitionStatus'
   */
  export type EnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RevenueRecognitionStatus'>
    


  /**
   * Reference to a field of type 'RevenueRecognitionStatus[]'
   */
  export type ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RevenueRecognitionStatus[]'>
    


  /**
   * Reference to a field of type 'InvoiceStatus'
   */
  export type EnumInvoiceStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InvoiceStatus'>
    


  /**
   * Reference to a field of type 'InvoiceStatus[]'
   */
  export type ListEnumInvoiceStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'InvoiceStatus[]'>
    


  /**
   * Reference to a field of type 'PaymentRelatedType'
   */
  export type EnumPaymentRelatedTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentRelatedType'>
    


  /**
   * Reference to a field of type 'PaymentRelatedType[]'
   */
  export type ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentRelatedType[]'>
    


  /**
   * Reference to a field of type 'PaymentDirection'
   */
  export type EnumPaymentDirectionFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentDirection'>
    


  /**
   * Reference to a field of type 'PaymentDirection[]'
   */
  export type ListEnumPaymentDirectionFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentDirection[]'>
    


  /**
   * Reference to a field of type 'PaymentMethod'
   */
  export type EnumPaymentMethodFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentMethod'>
    


  /**
   * Reference to a field of type 'PaymentMethod[]'
   */
  export type ListEnumPaymentMethodFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentMethod[]'>
    


  /**
   * Reference to a field of type 'PaymentStatus'
   */
  export type EnumPaymentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentStatus'>
    


  /**
   * Reference to a field of type 'PaymentStatus[]'
   */
  export type ListEnumPaymentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PaymentStatus[]'>
    


  /**
   * Reference to a field of type 'PreDelContractStatus'
   */
  export type EnumPreDelContractStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PreDelContractStatus'>
    


  /**
   * Reference to a field of type 'PreDelContractStatus[]'
   */
  export type ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PreDelContractStatus[]'>
    


  /**
   * Reference to a field of type 'QualityLabelStatus'
   */
  export type EnumQualityLabelStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QualityLabelStatus'>
    


  /**
   * Reference to a field of type 'QualityLabelStatus[]'
   */
  export type ListEnumQualityLabelStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QualityLabelStatus[]'>
    


  /**
   * Reference to a field of type 'LogisticsStatus'
   */
  export type EnumLogisticsStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogisticsStatus'>
    


  /**
   * Reference to a field of type 'LogisticsStatus[]'
   */
  export type ListEnumLogisticsStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'LogisticsStatus[]'>
    


  /**
   * Reference to a field of type 'StickerStatus'
   */
  export type EnumStickerStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StickerStatus'>
    


  /**
   * Reference to a field of type 'StickerStatus[]'
   */
  export type ListEnumStickerStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'StickerStatus[]'>
    


  /**
   * Reference to a field of type 'FccStatus'
   */
  export type EnumFccStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FccStatus'>
    


  /**
   * Reference to a field of type 'FccStatus[]'
   */
  export type ListEnumFccStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FccStatus[]'>
    


  /**
   * Reference to a field of type 'RentalAgreementStatus'
   */
  export type EnumRentalAgreementStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RentalAgreementStatus'>
    


  /**
   * Reference to a field of type 'RentalAgreementStatus[]'
   */
  export type ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'RentalAgreementStatus[]'>
    


  /**
   * Reference to a field of type 'TicketSeverity'
   */
  export type EnumTicketSeverityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TicketSeverity'>
    


  /**
   * Reference to a field of type 'TicketSeverity[]'
   */
  export type ListEnumTicketSeverityFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TicketSeverity[]'>
    


  /**
   * Reference to a field of type 'ServiceTicketStatus'
   */
  export type EnumServiceTicketStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ServiceTicketStatus'>
    


  /**
   * Reference to a field of type 'ServiceTicketStatus[]'
   */
  export type ListEnumServiceTicketStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ServiceTicketStatus[]'>
    


  /**
   * Reference to a field of type 'ServiceTicketActivityType'
   */
  export type EnumServiceTicketActivityTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ServiceTicketActivityType'>
    


  /**
   * Reference to a field of type 'ServiceTicketActivityType[]'
   */
  export type ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ServiceTicketActivityType[]'>
    


  /**
   * Reference to a field of type 'ImportRecordStatus'
   */
  export type EnumImportRecordStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportRecordStatus'>
    


  /**
   * Reference to a field of type 'ImportRecordStatus[]'
   */
  export type ListEnumImportRecordStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportRecordStatus[]'>
    


  /**
   * Reference to a field of type 'ImportBatchType'
   */
  export type EnumImportBatchTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportBatchType'>
    


  /**
   * Reference to a field of type 'ImportBatchType[]'
   */
  export type ListEnumImportBatchTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportBatchType[]'>
    


  /**
   * Reference to a field of type 'ImportBatchStatus'
   */
  export type EnumImportBatchStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportBatchStatus'>
    


  /**
   * Reference to a field of type 'ImportBatchStatus[]'
   */
  export type ListEnumImportBatchStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportBatchStatus[]'>
    


  /**
   * Reference to a field of type 'ImportEntryStatus'
   */
  export type EnumImportEntryStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportEntryStatus'>
    


  /**
   * Reference to a field of type 'ImportEntryStatus[]'
   */
  export type ListEnumImportEntryStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ImportEntryStatus[]'>
    
  /**
   * Deep Input Types
   */


  export type ApprovalDefinitionWhereInput = {
    AND?: ApprovalDefinitionWhereInput | ApprovalDefinitionWhereInput[]
    OR?: ApprovalDefinitionWhereInput[]
    NOT?: ApprovalDefinitionWhereInput | ApprovalDefinitionWhereInput[]
    id?: UuidFilter<"ApprovalDefinition"> | string
    key?: StringFilter<"ApprovalDefinition"> | string
    name?: StringFilter<"ApprovalDefinition"> | string
    category?: StringFilter<"ApprovalDefinition"> | string
    description?: StringNullableFilter<"ApprovalDefinition"> | string | null
    latestVersion?: IntFilter<"ApprovalDefinition"> | number
    organizationId?: UuidNullableFilter<"ApprovalDefinition"> | string | null
    status?: EnumProcessStatusFilter<"ApprovalDefinition"> | $Enums.ProcessStatus
    createdBy?: StringNullableFilter<"ApprovalDefinition"> | string | null
    createdAt?: DateTimeFilter<"ApprovalDefinition"> | Date | string
    updatedBy?: StringNullableFilter<"ApprovalDefinition"> | string | null
    updatedAt?: DateTimeFilter<"ApprovalDefinition"> | Date | string
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    versions?: ApprovalVersionListRelationFilter
  }

  export type ApprovalDefinitionOrderByWithRelationInput = {
    id?: SortOrder
    key?: SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrderInput | SortOrder
    latestVersion?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    status?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
    versions?: ApprovalVersionOrderByRelationAggregateInput
  }

  export type ApprovalDefinitionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    key?: string
    AND?: ApprovalDefinitionWhereInput | ApprovalDefinitionWhereInput[]
    OR?: ApprovalDefinitionWhereInput[]
    NOT?: ApprovalDefinitionWhereInput | ApprovalDefinitionWhereInput[]
    name?: StringFilter<"ApprovalDefinition"> | string
    category?: StringFilter<"ApprovalDefinition"> | string
    description?: StringNullableFilter<"ApprovalDefinition"> | string | null
    latestVersion?: IntFilter<"ApprovalDefinition"> | number
    organizationId?: UuidNullableFilter<"ApprovalDefinition"> | string | null
    status?: EnumProcessStatusFilter<"ApprovalDefinition"> | $Enums.ProcessStatus
    createdBy?: StringNullableFilter<"ApprovalDefinition"> | string | null
    createdAt?: DateTimeFilter<"ApprovalDefinition"> | Date | string
    updatedBy?: StringNullableFilter<"ApprovalDefinition"> | string | null
    updatedAt?: DateTimeFilter<"ApprovalDefinition"> | Date | string
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    versions?: ApprovalVersionListRelationFilter
  }, "id" | "key">

  export type ApprovalDefinitionOrderByWithAggregationInput = {
    id?: SortOrder
    key?: SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrderInput | SortOrder
    latestVersion?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    status?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    _count?: ApprovalDefinitionCountOrderByAggregateInput
    _avg?: ApprovalDefinitionAvgOrderByAggregateInput
    _max?: ApprovalDefinitionMaxOrderByAggregateInput
    _min?: ApprovalDefinitionMinOrderByAggregateInput
    _sum?: ApprovalDefinitionSumOrderByAggregateInput
  }

  export type ApprovalDefinitionScalarWhereWithAggregatesInput = {
    AND?: ApprovalDefinitionScalarWhereWithAggregatesInput | ApprovalDefinitionScalarWhereWithAggregatesInput[]
    OR?: ApprovalDefinitionScalarWhereWithAggregatesInput[]
    NOT?: ApprovalDefinitionScalarWhereWithAggregatesInput | ApprovalDefinitionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ApprovalDefinition"> | string
    key?: StringWithAggregatesFilter<"ApprovalDefinition"> | string
    name?: StringWithAggregatesFilter<"ApprovalDefinition"> | string
    category?: StringWithAggregatesFilter<"ApprovalDefinition"> | string
    description?: StringNullableWithAggregatesFilter<"ApprovalDefinition"> | string | null
    latestVersion?: IntWithAggregatesFilter<"ApprovalDefinition"> | number
    organizationId?: UuidNullableWithAggregatesFilter<"ApprovalDefinition"> | string | null
    status?: EnumProcessStatusWithAggregatesFilter<"ApprovalDefinition"> | $Enums.ProcessStatus
    createdBy?: StringNullableWithAggregatesFilter<"ApprovalDefinition"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"ApprovalDefinition"> | Date | string
    updatedBy?: StringNullableWithAggregatesFilter<"ApprovalDefinition"> | string | null
    updatedAt?: DateTimeWithAggregatesFilter<"ApprovalDefinition"> | Date | string
  }

  export type ApprovalVersionWhereInput = {
    AND?: ApprovalVersionWhereInput | ApprovalVersionWhereInput[]
    OR?: ApprovalVersionWhereInput[]
    NOT?: ApprovalVersionWhereInput | ApprovalVersionWhereInput[]
    id?: UuidFilter<"ApprovalVersion"> | string
    definitionId?: UuidFilter<"ApprovalVersion"> | string
    version?: IntFilter<"ApprovalVersion"> | number
    name?: StringFilter<"ApprovalVersion"> | string
    isDefault?: BoolFilter<"ApprovalVersion"> | boolean
    processModel?: JsonFilter<"ApprovalVersion">
    settings?: JsonFilter<"ApprovalVersion">
    formSchema?: JsonNullableFilter<"ApprovalVersion">
    ruleConfig?: JsonFilter<"ApprovalVersion">
    status?: EnumVersionStatusFilter<"ApprovalVersion"> | $Enums.VersionStatus
    deployedAt?: DateTimeNullableFilter<"ApprovalVersion"> | Date | string | null
    deployedBy?: StringNullableFilter<"ApprovalVersion"> | string | null
    changeLog?: StringNullableFilter<"ApprovalVersion"> | string | null
    createdAt?: DateTimeFilter<"ApprovalVersion"> | Date | string
    updatedAt?: DateTimeFilter<"ApprovalVersion"> | Date | string
    instances?: ApprovalInstanceListRelationFilter
    definition?: XOR<ApprovalDefinitionScalarRelationFilter, ApprovalDefinitionWhereInput>
  }

  export type ApprovalVersionOrderByWithRelationInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    name?: SortOrder
    isDefault?: SortOrder
    processModel?: SortOrder
    settings?: SortOrder
    formSchema?: SortOrderInput | SortOrder
    ruleConfig?: SortOrder
    status?: SortOrder
    deployedAt?: SortOrderInput | SortOrder
    deployedBy?: SortOrderInput | SortOrder
    changeLog?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    instances?: ApprovalInstanceOrderByRelationAggregateInput
    definition?: ApprovalDefinitionOrderByWithRelationInput
  }

  export type ApprovalVersionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    definitionId_version?: ApprovalVersionDefinitionIdVersionCompoundUniqueInput
    AND?: ApprovalVersionWhereInput | ApprovalVersionWhereInput[]
    OR?: ApprovalVersionWhereInput[]
    NOT?: ApprovalVersionWhereInput | ApprovalVersionWhereInput[]
    definitionId?: UuidFilter<"ApprovalVersion"> | string
    version?: IntFilter<"ApprovalVersion"> | number
    name?: StringFilter<"ApprovalVersion"> | string
    isDefault?: BoolFilter<"ApprovalVersion"> | boolean
    processModel?: JsonFilter<"ApprovalVersion">
    settings?: JsonFilter<"ApprovalVersion">
    formSchema?: JsonNullableFilter<"ApprovalVersion">
    ruleConfig?: JsonFilter<"ApprovalVersion">
    status?: EnumVersionStatusFilter<"ApprovalVersion"> | $Enums.VersionStatus
    deployedAt?: DateTimeNullableFilter<"ApprovalVersion"> | Date | string | null
    deployedBy?: StringNullableFilter<"ApprovalVersion"> | string | null
    changeLog?: StringNullableFilter<"ApprovalVersion"> | string | null
    createdAt?: DateTimeFilter<"ApprovalVersion"> | Date | string
    updatedAt?: DateTimeFilter<"ApprovalVersion"> | Date | string
    instances?: ApprovalInstanceListRelationFilter
    definition?: XOR<ApprovalDefinitionScalarRelationFilter, ApprovalDefinitionWhereInput>
  }, "id" | "definitionId_version">

  export type ApprovalVersionOrderByWithAggregationInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    name?: SortOrder
    isDefault?: SortOrder
    processModel?: SortOrder
    settings?: SortOrder
    formSchema?: SortOrderInput | SortOrder
    ruleConfig?: SortOrder
    status?: SortOrder
    deployedAt?: SortOrderInput | SortOrder
    deployedBy?: SortOrderInput | SortOrder
    changeLog?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: ApprovalVersionCountOrderByAggregateInput
    _avg?: ApprovalVersionAvgOrderByAggregateInput
    _max?: ApprovalVersionMaxOrderByAggregateInput
    _min?: ApprovalVersionMinOrderByAggregateInput
    _sum?: ApprovalVersionSumOrderByAggregateInput
  }

  export type ApprovalVersionScalarWhereWithAggregatesInput = {
    AND?: ApprovalVersionScalarWhereWithAggregatesInput | ApprovalVersionScalarWhereWithAggregatesInput[]
    OR?: ApprovalVersionScalarWhereWithAggregatesInput[]
    NOT?: ApprovalVersionScalarWhereWithAggregatesInput | ApprovalVersionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ApprovalVersion"> | string
    definitionId?: UuidWithAggregatesFilter<"ApprovalVersion"> | string
    version?: IntWithAggregatesFilter<"ApprovalVersion"> | number
    name?: StringWithAggregatesFilter<"ApprovalVersion"> | string
    isDefault?: BoolWithAggregatesFilter<"ApprovalVersion"> | boolean
    processModel?: JsonWithAggregatesFilter<"ApprovalVersion">
    settings?: JsonWithAggregatesFilter<"ApprovalVersion">
    formSchema?: JsonNullableWithAggregatesFilter<"ApprovalVersion">
    ruleConfig?: JsonWithAggregatesFilter<"ApprovalVersion">
    status?: EnumVersionStatusWithAggregatesFilter<"ApprovalVersion"> | $Enums.VersionStatus
    deployedAt?: DateTimeNullableWithAggregatesFilter<"ApprovalVersion"> | Date | string | null
    deployedBy?: StringNullableWithAggregatesFilter<"ApprovalVersion"> | string | null
    changeLog?: StringNullableWithAggregatesFilter<"ApprovalVersion"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"ApprovalVersion"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ApprovalVersion"> | Date | string
  }

  export type ApprovalInstanceWhereInput = {
    AND?: ApprovalInstanceWhereInput | ApprovalInstanceWhereInput[]
    OR?: ApprovalInstanceWhereInput[]
    NOT?: ApprovalInstanceWhereInput | ApprovalInstanceWhereInput[]
    id?: UuidFilter<"ApprovalInstance"> | string
    versionId?: UuidFilter<"ApprovalInstance"> | string
    businessType?: StringFilter<"ApprovalInstance"> | string
    businessId?: StringFilter<"ApprovalInstance"> | string
    businessKey?: StringFilter<"ApprovalInstance"> | string
    title?: StringNullableFilter<"ApprovalInstance"> | string | null
    workflowId?: StringFilter<"ApprovalInstance"> | string
    workflowRunId?: StringFilter<"ApprovalInstance"> | string
    initiatorId?: UuidFilter<"ApprovalInstance"> | string
    regionId?: StringNullableFilter<"ApprovalInstance"> | string | null
    status?: EnumInstanceStatusFilter<"ApprovalInstance"> | $Enums.InstanceStatus
    currentNodeId?: StringNullableFilter<"ApprovalInstance"> | string | null
    currentNode?: StringNullableFilter<"ApprovalInstance"> | string | null
    variables?: JsonFilter<"ApprovalInstance">
    totalNodeExecutions?: IntFilter<"ApprovalInstance"> | number
    endReason?: StringNullableFilter<"ApprovalInstance"> | string | null
    endComment?: StringNullableFilter<"ApprovalInstance"> | string | null
    priority?: IntFilter<"ApprovalInstance"> | number
    dueDate?: DateTimeNullableFilter<"ApprovalInstance"> | Date | string | null
    startTime?: DateTimeFilter<"ApprovalInstance"> | Date | string
    endTime?: DateTimeNullableFilter<"ApprovalInstance"> | Date | string | null
    initiator?: XOR<UserScalarRelationFilter, UserWhereInput>
    version?: XOR<ApprovalVersionScalarRelationFilter, ApprovalVersionWhereInput>
    nodeInstances?: ApprovalNodeInstanceListRelationFilter
    approvalTasks?: ApprovalTaskListRelationFilter
    callbackRetries?: CallbackRetryQueueListRelationFilter
    reminderQueues?: ReminderQueueListRelationFilter
  }

  export type ApprovalInstanceOrderByWithRelationInput = {
    id?: SortOrder
    versionId?: SortOrder
    businessType?: SortOrder
    businessId?: SortOrder
    businessKey?: SortOrder
    title?: SortOrderInput | SortOrder
    workflowId?: SortOrder
    workflowRunId?: SortOrder
    initiatorId?: SortOrder
    regionId?: SortOrderInput | SortOrder
    status?: SortOrder
    currentNodeId?: SortOrderInput | SortOrder
    currentNode?: SortOrderInput | SortOrder
    variables?: SortOrder
    totalNodeExecutions?: SortOrder
    endReason?: SortOrderInput | SortOrder
    endComment?: SortOrderInput | SortOrder
    priority?: SortOrder
    dueDate?: SortOrderInput | SortOrder
    startTime?: SortOrder
    endTime?: SortOrderInput | SortOrder
    initiator?: UserOrderByWithRelationInput
    version?: ApprovalVersionOrderByWithRelationInput
    nodeInstances?: ApprovalNodeInstanceOrderByRelationAggregateInput
    approvalTasks?: ApprovalTaskOrderByRelationAggregateInput
    callbackRetries?: CallbackRetryQueueOrderByRelationAggregateInput
    reminderQueues?: ReminderQueueOrderByRelationAggregateInput
  }

  export type ApprovalInstanceWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    workflowId?: string
    businessType_businessId?: ApprovalInstanceBusinessTypeBusinessIdCompoundUniqueInput
    AND?: ApprovalInstanceWhereInput | ApprovalInstanceWhereInput[]
    OR?: ApprovalInstanceWhereInput[]
    NOT?: ApprovalInstanceWhereInput | ApprovalInstanceWhereInput[]
    versionId?: UuidFilter<"ApprovalInstance"> | string
    businessType?: StringFilter<"ApprovalInstance"> | string
    businessId?: StringFilter<"ApprovalInstance"> | string
    businessKey?: StringFilter<"ApprovalInstance"> | string
    title?: StringNullableFilter<"ApprovalInstance"> | string | null
    workflowRunId?: StringFilter<"ApprovalInstance"> | string
    initiatorId?: UuidFilter<"ApprovalInstance"> | string
    regionId?: StringNullableFilter<"ApprovalInstance"> | string | null
    status?: EnumInstanceStatusFilter<"ApprovalInstance"> | $Enums.InstanceStatus
    currentNodeId?: StringNullableFilter<"ApprovalInstance"> | string | null
    currentNode?: StringNullableFilter<"ApprovalInstance"> | string | null
    variables?: JsonFilter<"ApprovalInstance">
    totalNodeExecutions?: IntFilter<"ApprovalInstance"> | number
    endReason?: StringNullableFilter<"ApprovalInstance"> | string | null
    endComment?: StringNullableFilter<"ApprovalInstance"> | string | null
    priority?: IntFilter<"ApprovalInstance"> | number
    dueDate?: DateTimeNullableFilter<"ApprovalInstance"> | Date | string | null
    startTime?: DateTimeFilter<"ApprovalInstance"> | Date | string
    endTime?: DateTimeNullableFilter<"ApprovalInstance"> | Date | string | null
    initiator?: XOR<UserScalarRelationFilter, UserWhereInput>
    version?: XOR<ApprovalVersionScalarRelationFilter, ApprovalVersionWhereInput>
    nodeInstances?: ApprovalNodeInstanceListRelationFilter
    approvalTasks?: ApprovalTaskListRelationFilter
    callbackRetries?: CallbackRetryQueueListRelationFilter
    reminderQueues?: ReminderQueueListRelationFilter
  }, "id" | "workflowId" | "businessType_businessId">

  export type ApprovalInstanceOrderByWithAggregationInput = {
    id?: SortOrder
    versionId?: SortOrder
    businessType?: SortOrder
    businessId?: SortOrder
    businessKey?: SortOrder
    title?: SortOrderInput | SortOrder
    workflowId?: SortOrder
    workflowRunId?: SortOrder
    initiatorId?: SortOrder
    regionId?: SortOrderInput | SortOrder
    status?: SortOrder
    currentNodeId?: SortOrderInput | SortOrder
    currentNode?: SortOrderInput | SortOrder
    variables?: SortOrder
    totalNodeExecutions?: SortOrder
    endReason?: SortOrderInput | SortOrder
    endComment?: SortOrderInput | SortOrder
    priority?: SortOrder
    dueDate?: SortOrderInput | SortOrder
    startTime?: SortOrder
    endTime?: SortOrderInput | SortOrder
    _count?: ApprovalInstanceCountOrderByAggregateInput
    _avg?: ApprovalInstanceAvgOrderByAggregateInput
    _max?: ApprovalInstanceMaxOrderByAggregateInput
    _min?: ApprovalInstanceMinOrderByAggregateInput
    _sum?: ApprovalInstanceSumOrderByAggregateInput
  }

  export type ApprovalInstanceScalarWhereWithAggregatesInput = {
    AND?: ApprovalInstanceScalarWhereWithAggregatesInput | ApprovalInstanceScalarWhereWithAggregatesInput[]
    OR?: ApprovalInstanceScalarWhereWithAggregatesInput[]
    NOT?: ApprovalInstanceScalarWhereWithAggregatesInput | ApprovalInstanceScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ApprovalInstance"> | string
    versionId?: UuidWithAggregatesFilter<"ApprovalInstance"> | string
    businessType?: StringWithAggregatesFilter<"ApprovalInstance"> | string
    businessId?: StringWithAggregatesFilter<"ApprovalInstance"> | string
    businessKey?: StringWithAggregatesFilter<"ApprovalInstance"> | string
    title?: StringNullableWithAggregatesFilter<"ApprovalInstance"> | string | null
    workflowId?: StringWithAggregatesFilter<"ApprovalInstance"> | string
    workflowRunId?: StringWithAggregatesFilter<"ApprovalInstance"> | string
    initiatorId?: UuidWithAggregatesFilter<"ApprovalInstance"> | string
    regionId?: StringNullableWithAggregatesFilter<"ApprovalInstance"> | string | null
    status?: EnumInstanceStatusWithAggregatesFilter<"ApprovalInstance"> | $Enums.InstanceStatus
    currentNodeId?: StringNullableWithAggregatesFilter<"ApprovalInstance"> | string | null
    currentNode?: StringNullableWithAggregatesFilter<"ApprovalInstance"> | string | null
    variables?: JsonWithAggregatesFilter<"ApprovalInstance">
    totalNodeExecutions?: IntWithAggregatesFilter<"ApprovalInstance"> | number
    endReason?: StringNullableWithAggregatesFilter<"ApprovalInstance"> | string | null
    endComment?: StringNullableWithAggregatesFilter<"ApprovalInstance"> | string | null
    priority?: IntWithAggregatesFilter<"ApprovalInstance"> | number
    dueDate?: DateTimeNullableWithAggregatesFilter<"ApprovalInstance"> | Date | string | null
    startTime?: DateTimeWithAggregatesFilter<"ApprovalInstance"> | Date | string
    endTime?: DateTimeNullableWithAggregatesFilter<"ApprovalInstance"> | Date | string | null
  }

  export type ApprovalNodeInstanceWhereInput = {
    AND?: ApprovalNodeInstanceWhereInput | ApprovalNodeInstanceWhereInput[]
    OR?: ApprovalNodeInstanceWhereInput[]
    NOT?: ApprovalNodeInstanceWhereInput | ApprovalNodeInstanceWhereInput[]
    id?: UuidFilter<"ApprovalNodeInstance"> | string
    instanceId?: UuidFilter<"ApprovalNodeInstance"> | string
    nodeId?: StringFilter<"ApprovalNodeInstance"> | string
    nodeName?: StringFilter<"ApprovalNodeInstance"> | string
    nodeType?: StringFilter<"ApprovalNodeInstance"> | string
    status?: EnumNodeStatusFilter<"ApprovalNodeInstance"> | $Enums.NodeStatus
    assignees?: StringNullableListFilter<"ApprovalNodeInstance">
    approvalMode?: StringNullableFilter<"ApprovalNodeInstance"> | string | null
    executionCount?: IntFilter<"ApprovalNodeInstance"> | number
    result?: JsonNullableFilter<"ApprovalNodeInstance">
    startTime?: DateTimeFilter<"ApprovalNodeInstance"> | Date | string
    endTime?: DateTimeNullableFilter<"ApprovalNodeInstance"> | Date | string | null
    instance?: XOR<ApprovalInstanceScalarRelationFilter, ApprovalInstanceWhereInput>
    approvalTasks?: ApprovalTaskListRelationFilter
  }

  export type ApprovalNodeInstanceOrderByWithRelationInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeId?: SortOrder
    nodeName?: SortOrder
    nodeType?: SortOrder
    status?: SortOrder
    assignees?: SortOrder
    approvalMode?: SortOrderInput | SortOrder
    executionCount?: SortOrder
    result?: SortOrderInput | SortOrder
    startTime?: SortOrder
    endTime?: SortOrderInput | SortOrder
    instance?: ApprovalInstanceOrderByWithRelationInput
    approvalTasks?: ApprovalTaskOrderByRelationAggregateInput
  }

  export type ApprovalNodeInstanceWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ApprovalNodeInstanceWhereInput | ApprovalNodeInstanceWhereInput[]
    OR?: ApprovalNodeInstanceWhereInput[]
    NOT?: ApprovalNodeInstanceWhereInput | ApprovalNodeInstanceWhereInput[]
    instanceId?: UuidFilter<"ApprovalNodeInstance"> | string
    nodeId?: StringFilter<"ApprovalNodeInstance"> | string
    nodeName?: StringFilter<"ApprovalNodeInstance"> | string
    nodeType?: StringFilter<"ApprovalNodeInstance"> | string
    status?: EnumNodeStatusFilter<"ApprovalNodeInstance"> | $Enums.NodeStatus
    assignees?: StringNullableListFilter<"ApprovalNodeInstance">
    approvalMode?: StringNullableFilter<"ApprovalNodeInstance"> | string | null
    executionCount?: IntFilter<"ApprovalNodeInstance"> | number
    result?: JsonNullableFilter<"ApprovalNodeInstance">
    startTime?: DateTimeFilter<"ApprovalNodeInstance"> | Date | string
    endTime?: DateTimeNullableFilter<"ApprovalNodeInstance"> | Date | string | null
    instance?: XOR<ApprovalInstanceScalarRelationFilter, ApprovalInstanceWhereInput>
    approvalTasks?: ApprovalTaskListRelationFilter
  }, "id">

  export type ApprovalNodeInstanceOrderByWithAggregationInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeId?: SortOrder
    nodeName?: SortOrder
    nodeType?: SortOrder
    status?: SortOrder
    assignees?: SortOrder
    approvalMode?: SortOrderInput | SortOrder
    executionCount?: SortOrder
    result?: SortOrderInput | SortOrder
    startTime?: SortOrder
    endTime?: SortOrderInput | SortOrder
    _count?: ApprovalNodeInstanceCountOrderByAggregateInput
    _avg?: ApprovalNodeInstanceAvgOrderByAggregateInput
    _max?: ApprovalNodeInstanceMaxOrderByAggregateInput
    _min?: ApprovalNodeInstanceMinOrderByAggregateInput
    _sum?: ApprovalNodeInstanceSumOrderByAggregateInput
  }

  export type ApprovalNodeInstanceScalarWhereWithAggregatesInput = {
    AND?: ApprovalNodeInstanceScalarWhereWithAggregatesInput | ApprovalNodeInstanceScalarWhereWithAggregatesInput[]
    OR?: ApprovalNodeInstanceScalarWhereWithAggregatesInput[]
    NOT?: ApprovalNodeInstanceScalarWhereWithAggregatesInput | ApprovalNodeInstanceScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ApprovalNodeInstance"> | string
    instanceId?: UuidWithAggregatesFilter<"ApprovalNodeInstance"> | string
    nodeId?: StringWithAggregatesFilter<"ApprovalNodeInstance"> | string
    nodeName?: StringWithAggregatesFilter<"ApprovalNodeInstance"> | string
    nodeType?: StringWithAggregatesFilter<"ApprovalNodeInstance"> | string
    status?: EnumNodeStatusWithAggregatesFilter<"ApprovalNodeInstance"> | $Enums.NodeStatus
    assignees?: StringNullableListFilter<"ApprovalNodeInstance">
    approvalMode?: StringNullableWithAggregatesFilter<"ApprovalNodeInstance"> | string | null
    executionCount?: IntWithAggregatesFilter<"ApprovalNodeInstance"> | number
    result?: JsonNullableWithAggregatesFilter<"ApprovalNodeInstance">
    startTime?: DateTimeWithAggregatesFilter<"ApprovalNodeInstance"> | Date | string
    endTime?: DateTimeNullableWithAggregatesFilter<"ApprovalNodeInstance"> | Date | string | null
  }

  export type ApprovalTaskWhereInput = {
    AND?: ApprovalTaskWhereInput | ApprovalTaskWhereInput[]
    OR?: ApprovalTaskWhereInput[]
    NOT?: ApprovalTaskWhereInput | ApprovalTaskWhereInput[]
    id?: UuidFilter<"ApprovalTask"> | string
    instanceId?: UuidFilter<"ApprovalTask"> | string
    nodeInstanceId?: UuidFilter<"ApprovalTask"> | string
    name?: StringFilter<"ApprovalTask"> | string
    description?: StringNullableFilter<"ApprovalTask"> | string | null
    type?: EnumApprovalTaskTypeFilter<"ApprovalTask"> | $Enums.ApprovalTaskType
    assignee?: UuidNullableFilter<"ApprovalTask"> | string | null
    candidateUsers?: StringNullableListFilter<"ApprovalTask">
    candidateGroups?: StringNullableListFilter<"ApprovalTask">
    owner?: UuidNullableFilter<"ApprovalTask"> | string | null
    status?: EnumApprovalTaskStatusFilter<"ApprovalTask"> | $Enums.ApprovalTaskStatus
    version?: IntFilter<"ApprovalTask"> | number
    formData?: JsonNullableFilter<"ApprovalTask">
    priority?: IntFilter<"ApprovalTask"> | number
    dueDate?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    reminderCount?: IntFilter<"ApprovalTask"> | number
    lastReminderAt?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    autoApproved?: BoolFilter<"ApprovalTask"> | boolean
    autoApproveReason?: StringNullableFilter<"ApprovalTask"> | string | null
    isDelegated?: BoolFilter<"ApprovalTask"> | boolean
    delegatedFrom?: UuidNullableFilter<"ApprovalTask"> | string | null
    delegatedAt?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    delegationReason?: StringNullableFilter<"ApprovalTask"> | string | null
    delegationType?: EnumDelegationTypeNullableFilter<"ApprovalTask"> | $Enums.DelegationType | null
    delegationState?: StringNullableFilter<"ApprovalTask"> | string | null
    createTime?: DateTimeFilter<"ApprovalTask"> | Date | string
    claimTime?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    endTime?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    actionLogs?: ApprovalTaskLogListRelationFilter
    instance?: XOR<ApprovalInstanceScalarRelationFilter, ApprovalInstanceWhereInput>
    nodeInstance?: XOR<ApprovalNodeInstanceScalarRelationFilter, ApprovalNodeInstanceWhereInput>
    reminderQueues?: ReminderQueueListRelationFilter
  }

  export type ApprovalTaskOrderByWithRelationInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeInstanceId?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    type?: SortOrder
    assignee?: SortOrderInput | SortOrder
    candidateUsers?: SortOrder
    candidateGroups?: SortOrder
    owner?: SortOrderInput | SortOrder
    status?: SortOrder
    version?: SortOrder
    formData?: SortOrderInput | SortOrder
    priority?: SortOrder
    dueDate?: SortOrderInput | SortOrder
    reminderCount?: SortOrder
    lastReminderAt?: SortOrderInput | SortOrder
    autoApproved?: SortOrder
    autoApproveReason?: SortOrderInput | SortOrder
    isDelegated?: SortOrder
    delegatedFrom?: SortOrderInput | SortOrder
    delegatedAt?: SortOrderInput | SortOrder
    delegationReason?: SortOrderInput | SortOrder
    delegationType?: SortOrderInput | SortOrder
    delegationState?: SortOrderInput | SortOrder
    createTime?: SortOrder
    claimTime?: SortOrderInput | SortOrder
    endTime?: SortOrderInput | SortOrder
    actionLogs?: ApprovalTaskLogOrderByRelationAggregateInput
    instance?: ApprovalInstanceOrderByWithRelationInput
    nodeInstance?: ApprovalNodeInstanceOrderByWithRelationInput
    reminderQueues?: ReminderQueueOrderByRelationAggregateInput
  }

  export type ApprovalTaskWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ApprovalTaskWhereInput | ApprovalTaskWhereInput[]
    OR?: ApprovalTaskWhereInput[]
    NOT?: ApprovalTaskWhereInput | ApprovalTaskWhereInput[]
    instanceId?: UuidFilter<"ApprovalTask"> | string
    nodeInstanceId?: UuidFilter<"ApprovalTask"> | string
    name?: StringFilter<"ApprovalTask"> | string
    description?: StringNullableFilter<"ApprovalTask"> | string | null
    type?: EnumApprovalTaskTypeFilter<"ApprovalTask"> | $Enums.ApprovalTaskType
    assignee?: UuidNullableFilter<"ApprovalTask"> | string | null
    candidateUsers?: StringNullableListFilter<"ApprovalTask">
    candidateGroups?: StringNullableListFilter<"ApprovalTask">
    owner?: UuidNullableFilter<"ApprovalTask"> | string | null
    status?: EnumApprovalTaskStatusFilter<"ApprovalTask"> | $Enums.ApprovalTaskStatus
    version?: IntFilter<"ApprovalTask"> | number
    formData?: JsonNullableFilter<"ApprovalTask">
    priority?: IntFilter<"ApprovalTask"> | number
    dueDate?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    reminderCount?: IntFilter<"ApprovalTask"> | number
    lastReminderAt?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    autoApproved?: BoolFilter<"ApprovalTask"> | boolean
    autoApproveReason?: StringNullableFilter<"ApprovalTask"> | string | null
    isDelegated?: BoolFilter<"ApprovalTask"> | boolean
    delegatedFrom?: UuidNullableFilter<"ApprovalTask"> | string | null
    delegatedAt?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    delegationReason?: StringNullableFilter<"ApprovalTask"> | string | null
    delegationType?: EnumDelegationTypeNullableFilter<"ApprovalTask"> | $Enums.DelegationType | null
    delegationState?: StringNullableFilter<"ApprovalTask"> | string | null
    createTime?: DateTimeFilter<"ApprovalTask"> | Date | string
    claimTime?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    endTime?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    actionLogs?: ApprovalTaskLogListRelationFilter
    instance?: XOR<ApprovalInstanceScalarRelationFilter, ApprovalInstanceWhereInput>
    nodeInstance?: XOR<ApprovalNodeInstanceScalarRelationFilter, ApprovalNodeInstanceWhereInput>
    reminderQueues?: ReminderQueueListRelationFilter
  }, "id">

  export type ApprovalTaskOrderByWithAggregationInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeInstanceId?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    type?: SortOrder
    assignee?: SortOrderInput | SortOrder
    candidateUsers?: SortOrder
    candidateGroups?: SortOrder
    owner?: SortOrderInput | SortOrder
    status?: SortOrder
    version?: SortOrder
    formData?: SortOrderInput | SortOrder
    priority?: SortOrder
    dueDate?: SortOrderInput | SortOrder
    reminderCount?: SortOrder
    lastReminderAt?: SortOrderInput | SortOrder
    autoApproved?: SortOrder
    autoApproveReason?: SortOrderInput | SortOrder
    isDelegated?: SortOrder
    delegatedFrom?: SortOrderInput | SortOrder
    delegatedAt?: SortOrderInput | SortOrder
    delegationReason?: SortOrderInput | SortOrder
    delegationType?: SortOrderInput | SortOrder
    delegationState?: SortOrderInput | SortOrder
    createTime?: SortOrder
    claimTime?: SortOrderInput | SortOrder
    endTime?: SortOrderInput | SortOrder
    _count?: ApprovalTaskCountOrderByAggregateInput
    _avg?: ApprovalTaskAvgOrderByAggregateInput
    _max?: ApprovalTaskMaxOrderByAggregateInput
    _min?: ApprovalTaskMinOrderByAggregateInput
    _sum?: ApprovalTaskSumOrderByAggregateInput
  }

  export type ApprovalTaskScalarWhereWithAggregatesInput = {
    AND?: ApprovalTaskScalarWhereWithAggregatesInput | ApprovalTaskScalarWhereWithAggregatesInput[]
    OR?: ApprovalTaskScalarWhereWithAggregatesInput[]
    NOT?: ApprovalTaskScalarWhereWithAggregatesInput | ApprovalTaskScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ApprovalTask"> | string
    instanceId?: UuidWithAggregatesFilter<"ApprovalTask"> | string
    nodeInstanceId?: UuidWithAggregatesFilter<"ApprovalTask"> | string
    name?: StringWithAggregatesFilter<"ApprovalTask"> | string
    description?: StringNullableWithAggregatesFilter<"ApprovalTask"> | string | null
    type?: EnumApprovalTaskTypeWithAggregatesFilter<"ApprovalTask"> | $Enums.ApprovalTaskType
    assignee?: UuidNullableWithAggregatesFilter<"ApprovalTask"> | string | null
    candidateUsers?: StringNullableListFilter<"ApprovalTask">
    candidateGroups?: StringNullableListFilter<"ApprovalTask">
    owner?: UuidNullableWithAggregatesFilter<"ApprovalTask"> | string | null
    status?: EnumApprovalTaskStatusWithAggregatesFilter<"ApprovalTask"> | $Enums.ApprovalTaskStatus
    version?: IntWithAggregatesFilter<"ApprovalTask"> | number
    formData?: JsonNullableWithAggregatesFilter<"ApprovalTask">
    priority?: IntWithAggregatesFilter<"ApprovalTask"> | number
    dueDate?: DateTimeNullableWithAggregatesFilter<"ApprovalTask"> | Date | string | null
    reminderCount?: IntWithAggregatesFilter<"ApprovalTask"> | number
    lastReminderAt?: DateTimeNullableWithAggregatesFilter<"ApprovalTask"> | Date | string | null
    autoApproved?: BoolWithAggregatesFilter<"ApprovalTask"> | boolean
    autoApproveReason?: StringNullableWithAggregatesFilter<"ApprovalTask"> | string | null
    isDelegated?: BoolWithAggregatesFilter<"ApprovalTask"> | boolean
    delegatedFrom?: UuidNullableWithAggregatesFilter<"ApprovalTask"> | string | null
    delegatedAt?: DateTimeNullableWithAggregatesFilter<"ApprovalTask"> | Date | string | null
    delegationReason?: StringNullableWithAggregatesFilter<"ApprovalTask"> | string | null
    delegationType?: EnumDelegationTypeNullableWithAggregatesFilter<"ApprovalTask"> | $Enums.DelegationType | null
    delegationState?: StringNullableWithAggregatesFilter<"ApprovalTask"> | string | null
    createTime?: DateTimeWithAggregatesFilter<"ApprovalTask"> | Date | string
    claimTime?: DateTimeNullableWithAggregatesFilter<"ApprovalTask"> | Date | string | null
    endTime?: DateTimeNullableWithAggregatesFilter<"ApprovalTask"> | Date | string | null
  }

  export type ApprovalTaskLogWhereInput = {
    AND?: ApprovalTaskLogWhereInput | ApprovalTaskLogWhereInput[]
    OR?: ApprovalTaskLogWhereInput[]
    NOT?: ApprovalTaskLogWhereInput | ApprovalTaskLogWhereInput[]
    id?: UuidFilter<"ApprovalTaskLog"> | string
    taskId?: UuidFilter<"ApprovalTaskLog"> | string
    instanceId?: UuidFilter<"ApprovalTaskLog"> | string
    action?: EnumApprovalTaskActionFilter<"ApprovalTaskLog"> | $Enums.ApprovalTaskAction
    operatorId?: UuidFilter<"ApprovalTaskLog"> | string
    comment?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    targetUserId?: UuidNullableFilter<"ApprovalTaskLog"> | string | null
    targetNodeId?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    addSignUsers?: StringNullableListFilter<"ApprovalTaskLog">
    formDataChanges?: JsonNullableFilter<"ApprovalTaskLog">
    attachments?: JsonNullableFilter<"ApprovalTaskLog">
    ipAddress?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    userAgent?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    requestId?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    riskLevel?: EnumRiskLevelNullableFilter<"ApprovalTaskLog"> | $Enums.RiskLevel | null
    adminReason?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    metadata?: JsonNullableFilter<"ApprovalTaskLog">
    actionTime?: DateTimeFilter<"ApprovalTaskLog"> | Date | string
    operator?: XOR<UserScalarRelationFilter, UserWhereInput>
    targetUser?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    task?: XOR<ApprovalTaskScalarRelationFilter, ApprovalTaskWhereInput>
  }

  export type ApprovalTaskLogOrderByWithRelationInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    action?: SortOrder
    operatorId?: SortOrder
    comment?: SortOrderInput | SortOrder
    targetUserId?: SortOrderInput | SortOrder
    targetNodeId?: SortOrderInput | SortOrder
    addSignUsers?: SortOrder
    formDataChanges?: SortOrderInput | SortOrder
    attachments?: SortOrderInput | SortOrder
    ipAddress?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    requestId?: SortOrderInput | SortOrder
    riskLevel?: SortOrderInput | SortOrder
    adminReason?: SortOrderInput | SortOrder
    metadata?: SortOrderInput | SortOrder
    actionTime?: SortOrder
    operator?: UserOrderByWithRelationInput
    targetUser?: UserOrderByWithRelationInput
    task?: ApprovalTaskOrderByWithRelationInput
  }

  export type ApprovalTaskLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ApprovalTaskLogWhereInput | ApprovalTaskLogWhereInput[]
    OR?: ApprovalTaskLogWhereInput[]
    NOT?: ApprovalTaskLogWhereInput | ApprovalTaskLogWhereInput[]
    taskId?: UuidFilter<"ApprovalTaskLog"> | string
    instanceId?: UuidFilter<"ApprovalTaskLog"> | string
    action?: EnumApprovalTaskActionFilter<"ApprovalTaskLog"> | $Enums.ApprovalTaskAction
    operatorId?: UuidFilter<"ApprovalTaskLog"> | string
    comment?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    targetUserId?: UuidNullableFilter<"ApprovalTaskLog"> | string | null
    targetNodeId?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    addSignUsers?: StringNullableListFilter<"ApprovalTaskLog">
    formDataChanges?: JsonNullableFilter<"ApprovalTaskLog">
    attachments?: JsonNullableFilter<"ApprovalTaskLog">
    ipAddress?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    userAgent?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    requestId?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    riskLevel?: EnumRiskLevelNullableFilter<"ApprovalTaskLog"> | $Enums.RiskLevel | null
    adminReason?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    metadata?: JsonNullableFilter<"ApprovalTaskLog">
    actionTime?: DateTimeFilter<"ApprovalTaskLog"> | Date | string
    operator?: XOR<UserScalarRelationFilter, UserWhereInput>
    targetUser?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    task?: XOR<ApprovalTaskScalarRelationFilter, ApprovalTaskWhereInput>
  }, "id">

  export type ApprovalTaskLogOrderByWithAggregationInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    action?: SortOrder
    operatorId?: SortOrder
    comment?: SortOrderInput | SortOrder
    targetUserId?: SortOrderInput | SortOrder
    targetNodeId?: SortOrderInput | SortOrder
    addSignUsers?: SortOrder
    formDataChanges?: SortOrderInput | SortOrder
    attachments?: SortOrderInput | SortOrder
    ipAddress?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    requestId?: SortOrderInput | SortOrder
    riskLevel?: SortOrderInput | SortOrder
    adminReason?: SortOrderInput | SortOrder
    metadata?: SortOrderInput | SortOrder
    actionTime?: SortOrder
    _count?: ApprovalTaskLogCountOrderByAggregateInput
    _max?: ApprovalTaskLogMaxOrderByAggregateInput
    _min?: ApprovalTaskLogMinOrderByAggregateInput
  }

  export type ApprovalTaskLogScalarWhereWithAggregatesInput = {
    AND?: ApprovalTaskLogScalarWhereWithAggregatesInput | ApprovalTaskLogScalarWhereWithAggregatesInput[]
    OR?: ApprovalTaskLogScalarWhereWithAggregatesInput[]
    NOT?: ApprovalTaskLogScalarWhereWithAggregatesInput | ApprovalTaskLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ApprovalTaskLog"> | string
    taskId?: UuidWithAggregatesFilter<"ApprovalTaskLog"> | string
    instanceId?: UuidWithAggregatesFilter<"ApprovalTaskLog"> | string
    action?: EnumApprovalTaskActionWithAggregatesFilter<"ApprovalTaskLog"> | $Enums.ApprovalTaskAction
    operatorId?: UuidWithAggregatesFilter<"ApprovalTaskLog"> | string
    comment?: StringNullableWithAggregatesFilter<"ApprovalTaskLog"> | string | null
    targetUserId?: UuidNullableWithAggregatesFilter<"ApprovalTaskLog"> | string | null
    targetNodeId?: StringNullableWithAggregatesFilter<"ApprovalTaskLog"> | string | null
    addSignUsers?: StringNullableListFilter<"ApprovalTaskLog">
    formDataChanges?: JsonNullableWithAggregatesFilter<"ApprovalTaskLog">
    attachments?: JsonNullableWithAggregatesFilter<"ApprovalTaskLog">
    ipAddress?: StringNullableWithAggregatesFilter<"ApprovalTaskLog"> | string | null
    userAgent?: StringNullableWithAggregatesFilter<"ApprovalTaskLog"> | string | null
    requestId?: StringNullableWithAggregatesFilter<"ApprovalTaskLog"> | string | null
    riskLevel?: EnumRiskLevelNullableWithAggregatesFilter<"ApprovalTaskLog"> | $Enums.RiskLevel | null
    adminReason?: StringNullableWithAggregatesFilter<"ApprovalTaskLog"> | string | null
    metadata?: JsonNullableWithAggregatesFilter<"ApprovalTaskLog">
    actionTime?: DateTimeWithAggregatesFilter<"ApprovalTaskLog"> | Date | string
  }

  export type CallbackRetryQueueWhereInput = {
    AND?: CallbackRetryQueueWhereInput | CallbackRetryQueueWhereInput[]
    OR?: CallbackRetryQueueWhereInput[]
    NOT?: CallbackRetryQueueWhereInput | CallbackRetryQueueWhereInput[]
    id?: UuidFilter<"CallbackRetryQueue"> | string
    instanceId?: UuidFilter<"CallbackRetryQueue"> | string
    callbackType?: StringFilter<"CallbackRetryQueue"> | string
    callbackUrl?: StringNullableFilter<"CallbackRetryQueue"> | string | null
    payload?: JsonFilter<"CallbackRetryQueue">
    retryCount?: IntFilter<"CallbackRetryQueue"> | number
    maxRetries?: IntFilter<"CallbackRetryQueue"> | number
    nextRetryAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
    lastError?: StringNullableFilter<"CallbackRetryQueue"> | string | null
    status?: EnumCallbackStatusFilter<"CallbackRetryQueue"> | $Enums.CallbackStatus
    createdAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
    updatedAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
    instance?: XOR<ApprovalInstanceScalarRelationFilter, ApprovalInstanceWhereInput>
  }

  export type CallbackRetryQueueOrderByWithRelationInput = {
    id?: SortOrder
    instanceId?: SortOrder
    callbackType?: SortOrder
    callbackUrl?: SortOrderInput | SortOrder
    payload?: SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrder
    lastError?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    instance?: ApprovalInstanceOrderByWithRelationInput
  }

  export type CallbackRetryQueueWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: CallbackRetryQueueWhereInput | CallbackRetryQueueWhereInput[]
    OR?: CallbackRetryQueueWhereInput[]
    NOT?: CallbackRetryQueueWhereInput | CallbackRetryQueueWhereInput[]
    instanceId?: UuidFilter<"CallbackRetryQueue"> | string
    callbackType?: StringFilter<"CallbackRetryQueue"> | string
    callbackUrl?: StringNullableFilter<"CallbackRetryQueue"> | string | null
    payload?: JsonFilter<"CallbackRetryQueue">
    retryCount?: IntFilter<"CallbackRetryQueue"> | number
    maxRetries?: IntFilter<"CallbackRetryQueue"> | number
    nextRetryAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
    lastError?: StringNullableFilter<"CallbackRetryQueue"> | string | null
    status?: EnumCallbackStatusFilter<"CallbackRetryQueue"> | $Enums.CallbackStatus
    createdAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
    updatedAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
    instance?: XOR<ApprovalInstanceScalarRelationFilter, ApprovalInstanceWhereInput>
  }, "id">

  export type CallbackRetryQueueOrderByWithAggregationInput = {
    id?: SortOrder
    instanceId?: SortOrder
    callbackType?: SortOrder
    callbackUrl?: SortOrderInput | SortOrder
    payload?: SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrder
    lastError?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: CallbackRetryQueueCountOrderByAggregateInput
    _avg?: CallbackRetryQueueAvgOrderByAggregateInput
    _max?: CallbackRetryQueueMaxOrderByAggregateInput
    _min?: CallbackRetryQueueMinOrderByAggregateInput
    _sum?: CallbackRetryQueueSumOrderByAggregateInput
  }

  export type CallbackRetryQueueScalarWhereWithAggregatesInput = {
    AND?: CallbackRetryQueueScalarWhereWithAggregatesInput | CallbackRetryQueueScalarWhereWithAggregatesInput[]
    OR?: CallbackRetryQueueScalarWhereWithAggregatesInput[]
    NOT?: CallbackRetryQueueScalarWhereWithAggregatesInput | CallbackRetryQueueScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"CallbackRetryQueue"> | string
    instanceId?: UuidWithAggregatesFilter<"CallbackRetryQueue"> | string
    callbackType?: StringWithAggregatesFilter<"CallbackRetryQueue"> | string
    callbackUrl?: StringNullableWithAggregatesFilter<"CallbackRetryQueue"> | string | null
    payload?: JsonWithAggregatesFilter<"CallbackRetryQueue">
    retryCount?: IntWithAggregatesFilter<"CallbackRetryQueue"> | number
    maxRetries?: IntWithAggregatesFilter<"CallbackRetryQueue"> | number
    nextRetryAt?: DateTimeWithAggregatesFilter<"CallbackRetryQueue"> | Date | string
    lastError?: StringNullableWithAggregatesFilter<"CallbackRetryQueue"> | string | null
    status?: EnumCallbackStatusWithAggregatesFilter<"CallbackRetryQueue"> | $Enums.CallbackStatus
    createdAt?: DateTimeWithAggregatesFilter<"CallbackRetryQueue"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"CallbackRetryQueue"> | Date | string
  }

  export type ReminderQueueWhereInput = {
    AND?: ReminderQueueWhereInput | ReminderQueueWhereInput[]
    OR?: ReminderQueueWhereInput[]
    NOT?: ReminderQueueWhereInput | ReminderQueueWhereInput[]
    id?: UuidFilter<"ReminderQueue"> | string
    taskId?: UuidFilter<"ReminderQueue"> | string
    instanceId?: UuidFilter<"ReminderQueue"> | string
    reminderType?: EnumReminderTypeFilter<"ReminderQueue"> | $Enums.ReminderType
    channels?: StringNullableListFilter<"ReminderQueue">
    scheduledAt?: DateTimeFilter<"ReminderQueue"> | Date | string
    executedAt?: DateTimeNullableFilter<"ReminderQueue"> | Date | string | null
    status?: EnumReminderStatusFilter<"ReminderQueue"> | $Enums.ReminderStatus
    createdAt?: DateTimeFilter<"ReminderQueue"> | Date | string
    task?: XOR<ApprovalTaskScalarRelationFilter, ApprovalTaskWhereInput>
    instance?: XOR<ApprovalInstanceScalarRelationFilter, ApprovalInstanceWhereInput>
  }

  export type ReminderQueueOrderByWithRelationInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    reminderType?: SortOrder
    channels?: SortOrder
    scheduledAt?: SortOrder
    executedAt?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    task?: ApprovalTaskOrderByWithRelationInput
    instance?: ApprovalInstanceOrderByWithRelationInput
  }

  export type ReminderQueueWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ReminderQueueWhereInput | ReminderQueueWhereInput[]
    OR?: ReminderQueueWhereInput[]
    NOT?: ReminderQueueWhereInput | ReminderQueueWhereInput[]
    taskId?: UuidFilter<"ReminderQueue"> | string
    instanceId?: UuidFilter<"ReminderQueue"> | string
    reminderType?: EnumReminderTypeFilter<"ReminderQueue"> | $Enums.ReminderType
    channels?: StringNullableListFilter<"ReminderQueue">
    scheduledAt?: DateTimeFilter<"ReminderQueue"> | Date | string
    executedAt?: DateTimeNullableFilter<"ReminderQueue"> | Date | string | null
    status?: EnumReminderStatusFilter<"ReminderQueue"> | $Enums.ReminderStatus
    createdAt?: DateTimeFilter<"ReminderQueue"> | Date | string
    task?: XOR<ApprovalTaskScalarRelationFilter, ApprovalTaskWhereInput>
    instance?: XOR<ApprovalInstanceScalarRelationFilter, ApprovalInstanceWhereInput>
  }, "id">

  export type ReminderQueueOrderByWithAggregationInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    reminderType?: SortOrder
    channels?: SortOrder
    scheduledAt?: SortOrder
    executedAt?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    _count?: ReminderQueueCountOrderByAggregateInput
    _max?: ReminderQueueMaxOrderByAggregateInput
    _min?: ReminderQueueMinOrderByAggregateInput
  }

  export type ReminderQueueScalarWhereWithAggregatesInput = {
    AND?: ReminderQueueScalarWhereWithAggregatesInput | ReminderQueueScalarWhereWithAggregatesInput[]
    OR?: ReminderQueueScalarWhereWithAggregatesInput[]
    NOT?: ReminderQueueScalarWhereWithAggregatesInput | ReminderQueueScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ReminderQueue"> | string
    taskId?: UuidWithAggregatesFilter<"ReminderQueue"> | string
    instanceId?: UuidWithAggregatesFilter<"ReminderQueue"> | string
    reminderType?: EnumReminderTypeWithAggregatesFilter<"ReminderQueue"> | $Enums.ReminderType
    channels?: StringNullableListFilter<"ReminderQueue">
    scheduledAt?: DateTimeWithAggregatesFilter<"ReminderQueue"> | Date | string
    executedAt?: DateTimeNullableWithAggregatesFilter<"ReminderQueue"> | Date | string | null
    status?: EnumReminderStatusWithAggregatesFilter<"ReminderQueue"> | $Enums.ReminderStatus
    createdAt?: DateTimeWithAggregatesFilter<"ReminderQueue"> | Date | string
  }

  export type UserDelegationSettingWhereInput = {
    AND?: UserDelegationSettingWhereInput | UserDelegationSettingWhereInput[]
    OR?: UserDelegationSettingWhereInput[]
    NOT?: UserDelegationSettingWhereInput | UserDelegationSettingWhereInput[]
    id?: UuidFilter<"UserDelegationSetting"> | string
    userId?: UuidFilter<"UserDelegationSetting"> | string
    enabled?: BoolFilter<"UserDelegationSetting"> | boolean
    delegateUserId?: UuidFilter<"UserDelegationSetting"> | string
    startTime?: DateTimeNullableFilter<"UserDelegationSetting"> | Date | string | null
    endTime?: DateTimeNullableFilter<"UserDelegationSetting"> | Date | string | null
    scope?: EnumDelegationScopeFilter<"UserDelegationSetting"> | $Enums.DelegationScope
    processKeys?: StringNullableListFilter<"UserDelegationSetting">
    reason?: StringNullableFilter<"UserDelegationSetting"> | string | null
    createdAt?: DateTimeFilter<"UserDelegationSetting"> | Date | string
    updatedAt?: DateTimeFilter<"UserDelegationSetting"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    delegateUser?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type UserDelegationSettingOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    enabled?: SortOrder
    delegateUserId?: SortOrder
    startTime?: SortOrderInput | SortOrder
    endTime?: SortOrderInput | SortOrder
    scope?: SortOrder
    processKeys?: SortOrder
    reason?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    user?: UserOrderByWithRelationInput
    delegateUser?: UserOrderByWithRelationInput
  }

  export type UserDelegationSettingWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId?: string
    AND?: UserDelegationSettingWhereInput | UserDelegationSettingWhereInput[]
    OR?: UserDelegationSettingWhereInput[]
    NOT?: UserDelegationSettingWhereInput | UserDelegationSettingWhereInput[]
    enabled?: BoolFilter<"UserDelegationSetting"> | boolean
    delegateUserId?: UuidFilter<"UserDelegationSetting"> | string
    startTime?: DateTimeNullableFilter<"UserDelegationSetting"> | Date | string | null
    endTime?: DateTimeNullableFilter<"UserDelegationSetting"> | Date | string | null
    scope?: EnumDelegationScopeFilter<"UserDelegationSetting"> | $Enums.DelegationScope
    processKeys?: StringNullableListFilter<"UserDelegationSetting">
    reason?: StringNullableFilter<"UserDelegationSetting"> | string | null
    createdAt?: DateTimeFilter<"UserDelegationSetting"> | Date | string
    updatedAt?: DateTimeFilter<"UserDelegationSetting"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    delegateUser?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "userId">

  export type UserDelegationSettingOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    enabled?: SortOrder
    delegateUserId?: SortOrder
    startTime?: SortOrderInput | SortOrder
    endTime?: SortOrderInput | SortOrder
    scope?: SortOrder
    processKeys?: SortOrder
    reason?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: UserDelegationSettingCountOrderByAggregateInput
    _max?: UserDelegationSettingMaxOrderByAggregateInput
    _min?: UserDelegationSettingMinOrderByAggregateInput
  }

  export type UserDelegationSettingScalarWhereWithAggregatesInput = {
    AND?: UserDelegationSettingScalarWhereWithAggregatesInput | UserDelegationSettingScalarWhereWithAggregatesInput[]
    OR?: UserDelegationSettingScalarWhereWithAggregatesInput[]
    NOT?: UserDelegationSettingScalarWhereWithAggregatesInput | UserDelegationSettingScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"UserDelegationSetting"> | string
    userId?: UuidWithAggregatesFilter<"UserDelegationSetting"> | string
    enabled?: BoolWithAggregatesFilter<"UserDelegationSetting"> | boolean
    delegateUserId?: UuidWithAggregatesFilter<"UserDelegationSetting"> | string
    startTime?: DateTimeNullableWithAggregatesFilter<"UserDelegationSetting"> | Date | string | null
    endTime?: DateTimeNullableWithAggregatesFilter<"UserDelegationSetting"> | Date | string | null
    scope?: EnumDelegationScopeWithAggregatesFilter<"UserDelegationSetting"> | $Enums.DelegationScope
    processKeys?: StringNullableListFilter<"UserDelegationSetting">
    reason?: StringNullableWithAggregatesFilter<"UserDelegationSetting"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"UserDelegationSetting"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"UserDelegationSetting"> | Date | string
  }

  export type ApprovalAdminConfigWhereInput = {
    AND?: ApprovalAdminConfigWhereInput | ApprovalAdminConfigWhereInput[]
    OR?: ApprovalAdminConfigWhereInput[]
    NOT?: ApprovalAdminConfigWhereInput | ApprovalAdminConfigWhereInput[]
    id?: UuidFilter<"ApprovalAdminConfig"> | string
    key?: StringFilter<"ApprovalAdminConfig"> | string
    value?: JsonFilter<"ApprovalAdminConfig">
    description?: StringNullableFilter<"ApprovalAdminConfig"> | string | null
    updatedBy?: UuidNullableFilter<"ApprovalAdminConfig"> | string | null
    createdAt?: DateTimeFilter<"ApprovalAdminConfig"> | Date | string
    updatedAt?: DateTimeFilter<"ApprovalAdminConfig"> | Date | string
  }

  export type ApprovalAdminConfigOrderByWithRelationInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrderInput | SortOrder
    updatedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalAdminConfigWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    key?: string
    AND?: ApprovalAdminConfigWhereInput | ApprovalAdminConfigWhereInput[]
    OR?: ApprovalAdminConfigWhereInput[]
    NOT?: ApprovalAdminConfigWhereInput | ApprovalAdminConfigWhereInput[]
    value?: JsonFilter<"ApprovalAdminConfig">
    description?: StringNullableFilter<"ApprovalAdminConfig"> | string | null
    updatedBy?: UuidNullableFilter<"ApprovalAdminConfig"> | string | null
    createdAt?: DateTimeFilter<"ApprovalAdminConfig"> | Date | string
    updatedAt?: DateTimeFilter<"ApprovalAdminConfig"> | Date | string
  }, "id" | "key">

  export type ApprovalAdminConfigOrderByWithAggregationInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrderInput | SortOrder
    updatedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: ApprovalAdminConfigCountOrderByAggregateInput
    _max?: ApprovalAdminConfigMaxOrderByAggregateInput
    _min?: ApprovalAdminConfigMinOrderByAggregateInput
  }

  export type ApprovalAdminConfigScalarWhereWithAggregatesInput = {
    AND?: ApprovalAdminConfigScalarWhereWithAggregatesInput | ApprovalAdminConfigScalarWhereWithAggregatesInput[]
    OR?: ApprovalAdminConfigScalarWhereWithAggregatesInput[]
    NOT?: ApprovalAdminConfigScalarWhereWithAggregatesInput | ApprovalAdminConfigScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ApprovalAdminConfig"> | string
    key?: StringWithAggregatesFilter<"ApprovalAdminConfig"> | string
    value?: JsonWithAggregatesFilter<"ApprovalAdminConfig">
    description?: StringNullableWithAggregatesFilter<"ApprovalAdminConfig"> | string | null
    updatedBy?: UuidNullableWithAggregatesFilter<"ApprovalAdminConfig"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"ApprovalAdminConfig"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ApprovalAdminConfig"> | Date | string
  }

  export type ApprovalAdminExportWhereInput = {
    AND?: ApprovalAdminExportWhereInput | ApprovalAdminExportWhereInput[]
    OR?: ApprovalAdminExportWhereInput[]
    NOT?: ApprovalAdminExportWhereInput | ApprovalAdminExportWhereInput[]
    id?: UuidFilter<"ApprovalAdminExport"> | string
    status?: EnumApprovalAdminExportStatusFilter<"ApprovalAdminExport"> | $Enums.ApprovalAdminExportStatus
    format?: StringFilter<"ApprovalAdminExport"> | string
    requestedBy?: UuidFilter<"ApprovalAdminExport"> | string
    filters?: JsonFilter<"ApprovalAdminExport">
    fileKey?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    fileName?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    fileSize?: BigIntNullableFilter<"ApprovalAdminExport"> | bigint | number | null
    contentType?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    totalRows?: IntNullableFilter<"ApprovalAdminExport"> | number | null
    errorMessage?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    startedAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    expiresAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    createdAt?: DateTimeFilter<"ApprovalAdminExport"> | Date | string
    updatedAt?: DateTimeFilter<"ApprovalAdminExport"> | Date | string
    requester?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type ApprovalAdminExportOrderByWithRelationInput = {
    id?: SortOrder
    status?: SortOrder
    format?: SortOrder
    requestedBy?: SortOrder
    filters?: SortOrder
    fileKey?: SortOrderInput | SortOrder
    fileName?: SortOrderInput | SortOrder
    fileSize?: SortOrderInput | SortOrder
    contentType?: SortOrderInput | SortOrder
    totalRows?: SortOrderInput | SortOrder
    errorMessage?: SortOrderInput | SortOrder
    startedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    expiresAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    requester?: UserOrderByWithRelationInput
  }

  export type ApprovalAdminExportWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ApprovalAdminExportWhereInput | ApprovalAdminExportWhereInput[]
    OR?: ApprovalAdminExportWhereInput[]
    NOT?: ApprovalAdminExportWhereInput | ApprovalAdminExportWhereInput[]
    status?: EnumApprovalAdminExportStatusFilter<"ApprovalAdminExport"> | $Enums.ApprovalAdminExportStatus
    format?: StringFilter<"ApprovalAdminExport"> | string
    requestedBy?: UuidFilter<"ApprovalAdminExport"> | string
    filters?: JsonFilter<"ApprovalAdminExport">
    fileKey?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    fileName?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    fileSize?: BigIntNullableFilter<"ApprovalAdminExport"> | bigint | number | null
    contentType?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    totalRows?: IntNullableFilter<"ApprovalAdminExport"> | number | null
    errorMessage?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    startedAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    expiresAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    createdAt?: DateTimeFilter<"ApprovalAdminExport"> | Date | string
    updatedAt?: DateTimeFilter<"ApprovalAdminExport"> | Date | string
    requester?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type ApprovalAdminExportOrderByWithAggregationInput = {
    id?: SortOrder
    status?: SortOrder
    format?: SortOrder
    requestedBy?: SortOrder
    filters?: SortOrder
    fileKey?: SortOrderInput | SortOrder
    fileName?: SortOrderInput | SortOrder
    fileSize?: SortOrderInput | SortOrder
    contentType?: SortOrderInput | SortOrder
    totalRows?: SortOrderInput | SortOrder
    errorMessage?: SortOrderInput | SortOrder
    startedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    expiresAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: ApprovalAdminExportCountOrderByAggregateInput
    _avg?: ApprovalAdminExportAvgOrderByAggregateInput
    _max?: ApprovalAdminExportMaxOrderByAggregateInput
    _min?: ApprovalAdminExportMinOrderByAggregateInput
    _sum?: ApprovalAdminExportSumOrderByAggregateInput
  }

  export type ApprovalAdminExportScalarWhereWithAggregatesInput = {
    AND?: ApprovalAdminExportScalarWhereWithAggregatesInput | ApprovalAdminExportScalarWhereWithAggregatesInput[]
    OR?: ApprovalAdminExportScalarWhereWithAggregatesInput[]
    NOT?: ApprovalAdminExportScalarWhereWithAggregatesInput | ApprovalAdminExportScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ApprovalAdminExport"> | string
    status?: EnumApprovalAdminExportStatusWithAggregatesFilter<"ApprovalAdminExport"> | $Enums.ApprovalAdminExportStatus
    format?: StringWithAggregatesFilter<"ApprovalAdminExport"> | string
    requestedBy?: UuidWithAggregatesFilter<"ApprovalAdminExport"> | string
    filters?: JsonWithAggregatesFilter<"ApprovalAdminExport">
    fileKey?: StringNullableWithAggregatesFilter<"ApprovalAdminExport"> | string | null
    fileName?: StringNullableWithAggregatesFilter<"ApprovalAdminExport"> | string | null
    fileSize?: BigIntNullableWithAggregatesFilter<"ApprovalAdminExport"> | bigint | number | null
    contentType?: StringNullableWithAggregatesFilter<"ApprovalAdminExport"> | string | null
    totalRows?: IntNullableWithAggregatesFilter<"ApprovalAdminExport"> | number | null
    errorMessage?: StringNullableWithAggregatesFilter<"ApprovalAdminExport"> | string | null
    startedAt?: DateTimeNullableWithAggregatesFilter<"ApprovalAdminExport"> | Date | string | null
    completedAt?: DateTimeNullableWithAggregatesFilter<"ApprovalAdminExport"> | Date | string | null
    expiresAt?: DateTimeNullableWithAggregatesFilter<"ApprovalAdminExport"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"ApprovalAdminExport"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ApprovalAdminExport"> | Date | string
  }

  export type OrganizationWhereInput = {
    AND?: OrganizationWhereInput | OrganizationWhereInput[]
    OR?: OrganizationWhereInput[]
    NOT?: OrganizationWhereInput | OrganizationWhereInput[]
    id?: UuidFilter<"Organization"> | string
    code?: StringFilter<"Organization"> | string
    name?: StringFilter<"Organization"> | string
    displayName?: StringNullableFilter<"Organization"> | string | null
    nameEn?: StringNullableFilter<"Organization"> | string | null
    nameZh?: StringNullableFilter<"Organization"> | string | null
    legalName?: StringNullableFilter<"Organization"> | string | null
    legalRepresentative?: StringNullableFilter<"Organization"> | string | null
    registrationNumber?: StringNullableFilter<"Organization"> | string | null
    taxId?: StringNullableFilter<"Organization"> | string | null
    address?: StringNullableFilter<"Organization"> | string | null
    phone?: StringNullableFilter<"Organization"> | string | null
    email?: StringNullableFilter<"Organization"> | string | null
    website?: StringNullableFilter<"Organization"> | string | null
    primaryRegionId?: UuidNullableFilter<"Organization"> | string | null
    settings?: JsonFilter<"Organization">
    financialConfig?: JsonFilter<"Organization">
    complianceConfig?: JsonFilter<"Organization">
    status?: StringFilter<"Organization"> | string
    isActive?: BoolFilter<"Organization"> | boolean
    order?: IntFilter<"Organization"> | number
    metadata?: JsonFilter<"Organization">
    establishedAt?: DateTimeNullableFilter<"Organization"> | Date | string | null
    createdAt?: DateTimeFilter<"Organization"> | Date | string
    updatedAt?: DateTimeFilter<"Organization"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Organization"> | Date | string | null
    primaryRegion?: XOR<RegionNullableScalarRelationFilter, RegionWhereInput> | null
    departments?: DepartmentListRelationFilter
    userDepartments?: UserDepartmentListRelationFilter
    organizationRegions?: OrganizationRegionListRelationFilter
    formDefinitions?: FormDefinitionListRelationFilter
    formWebhooks?: FormWebhookListRelationFilter
    approvalDefinitions?: ApprovalDefinitionListRelationFilter
    userRoles?: UserRoleListRelationFilter
    performanceCycles?: PerformanceCycleListRelationFilter
    gradeConfigs?: GradeConfigListRelationFilter
    performanceResults?: PerformanceResultListRelationFilter
    evaluation360Templates?: Evaluation360TemplateListRelationFilter
    aiUsageTokens?: AiUsageTokenListRelationFilter
    aiUsageDevices?: AiUsageDeviceListRelationFilter
    aiUsageEvents?: AiUsageEventListRelationFilter
    aiUsageRollups?: AiUsageDailyRollupListRelationFilter
    meetingAgendaSections?: MeetingAgendaSectionListRelationFilter
    meetingAgendaItems?: MeetingAgendaItemListRelationFilter
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskListRelationFilter
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentListRelationFilter
    meetingAttachments?: MeetingAttachmentListRelationFilter
  }

  export type OrganizationOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    displayName?: SortOrderInput | SortOrder
    nameEn?: SortOrderInput | SortOrder
    nameZh?: SortOrderInput | SortOrder
    legalName?: SortOrderInput | SortOrder
    legalRepresentative?: SortOrderInput | SortOrder
    registrationNumber?: SortOrderInput | SortOrder
    taxId?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    email?: SortOrderInput | SortOrder
    website?: SortOrderInput | SortOrder
    primaryRegionId?: SortOrderInput | SortOrder
    settings?: SortOrder
    financialConfig?: SortOrder
    complianceConfig?: SortOrder
    status?: SortOrder
    isActive?: SortOrder
    order?: SortOrder
    metadata?: SortOrder
    establishedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    primaryRegion?: RegionOrderByWithRelationInput
    departments?: DepartmentOrderByRelationAggregateInput
    userDepartments?: UserDepartmentOrderByRelationAggregateInput
    organizationRegions?: OrganizationRegionOrderByRelationAggregateInput
    formDefinitions?: FormDefinitionOrderByRelationAggregateInput
    formWebhooks?: FormWebhookOrderByRelationAggregateInput
    approvalDefinitions?: ApprovalDefinitionOrderByRelationAggregateInput
    userRoles?: UserRoleOrderByRelationAggregateInput
    performanceCycles?: PerformanceCycleOrderByRelationAggregateInput
    gradeConfigs?: GradeConfigOrderByRelationAggregateInput
    performanceResults?: PerformanceResultOrderByRelationAggregateInput
    evaluation360Templates?: Evaluation360TemplateOrderByRelationAggregateInput
    aiUsageTokens?: AiUsageTokenOrderByRelationAggregateInput
    aiUsageDevices?: AiUsageDeviceOrderByRelationAggregateInput
    aiUsageEvents?: AiUsageEventOrderByRelationAggregateInput
    aiUsageRollups?: AiUsageDailyRollupOrderByRelationAggregateInput
    meetingAgendaSections?: MeetingAgendaSectionOrderByRelationAggregateInput
    meetingAgendaItems?: MeetingAgendaItemOrderByRelationAggregateInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskOrderByRelationAggregateInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentOrderByRelationAggregateInput
    meetingAttachments?: MeetingAttachmentOrderByRelationAggregateInput
  }

  export type OrganizationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: OrganizationWhereInput | OrganizationWhereInput[]
    OR?: OrganizationWhereInput[]
    NOT?: OrganizationWhereInput | OrganizationWhereInput[]
    name?: StringFilter<"Organization"> | string
    displayName?: StringNullableFilter<"Organization"> | string | null
    nameEn?: StringNullableFilter<"Organization"> | string | null
    nameZh?: StringNullableFilter<"Organization"> | string | null
    legalName?: StringNullableFilter<"Organization"> | string | null
    legalRepresentative?: StringNullableFilter<"Organization"> | string | null
    registrationNumber?: StringNullableFilter<"Organization"> | string | null
    taxId?: StringNullableFilter<"Organization"> | string | null
    address?: StringNullableFilter<"Organization"> | string | null
    phone?: StringNullableFilter<"Organization"> | string | null
    email?: StringNullableFilter<"Organization"> | string | null
    website?: StringNullableFilter<"Organization"> | string | null
    primaryRegionId?: UuidNullableFilter<"Organization"> | string | null
    settings?: JsonFilter<"Organization">
    financialConfig?: JsonFilter<"Organization">
    complianceConfig?: JsonFilter<"Organization">
    status?: StringFilter<"Organization"> | string
    isActive?: BoolFilter<"Organization"> | boolean
    order?: IntFilter<"Organization"> | number
    metadata?: JsonFilter<"Organization">
    establishedAt?: DateTimeNullableFilter<"Organization"> | Date | string | null
    createdAt?: DateTimeFilter<"Organization"> | Date | string
    updatedAt?: DateTimeFilter<"Organization"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Organization"> | Date | string | null
    primaryRegion?: XOR<RegionNullableScalarRelationFilter, RegionWhereInput> | null
    departments?: DepartmentListRelationFilter
    userDepartments?: UserDepartmentListRelationFilter
    organizationRegions?: OrganizationRegionListRelationFilter
    formDefinitions?: FormDefinitionListRelationFilter
    formWebhooks?: FormWebhookListRelationFilter
    approvalDefinitions?: ApprovalDefinitionListRelationFilter
    userRoles?: UserRoleListRelationFilter
    performanceCycles?: PerformanceCycleListRelationFilter
    gradeConfigs?: GradeConfigListRelationFilter
    performanceResults?: PerformanceResultListRelationFilter
    evaluation360Templates?: Evaluation360TemplateListRelationFilter
    aiUsageTokens?: AiUsageTokenListRelationFilter
    aiUsageDevices?: AiUsageDeviceListRelationFilter
    aiUsageEvents?: AiUsageEventListRelationFilter
    aiUsageRollups?: AiUsageDailyRollupListRelationFilter
    meetingAgendaSections?: MeetingAgendaSectionListRelationFilter
    meetingAgendaItems?: MeetingAgendaItemListRelationFilter
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskListRelationFilter
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentListRelationFilter
    meetingAttachments?: MeetingAttachmentListRelationFilter
  }, "id" | "code">

  export type OrganizationOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    displayName?: SortOrderInput | SortOrder
    nameEn?: SortOrderInput | SortOrder
    nameZh?: SortOrderInput | SortOrder
    legalName?: SortOrderInput | SortOrder
    legalRepresentative?: SortOrderInput | SortOrder
    registrationNumber?: SortOrderInput | SortOrder
    taxId?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    email?: SortOrderInput | SortOrder
    website?: SortOrderInput | SortOrder
    primaryRegionId?: SortOrderInput | SortOrder
    settings?: SortOrder
    financialConfig?: SortOrder
    complianceConfig?: SortOrder
    status?: SortOrder
    isActive?: SortOrder
    order?: SortOrder
    metadata?: SortOrder
    establishedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: OrganizationCountOrderByAggregateInput
    _avg?: OrganizationAvgOrderByAggregateInput
    _max?: OrganizationMaxOrderByAggregateInput
    _min?: OrganizationMinOrderByAggregateInput
    _sum?: OrganizationSumOrderByAggregateInput
  }

  export type OrganizationScalarWhereWithAggregatesInput = {
    AND?: OrganizationScalarWhereWithAggregatesInput | OrganizationScalarWhereWithAggregatesInput[]
    OR?: OrganizationScalarWhereWithAggregatesInput[]
    NOT?: OrganizationScalarWhereWithAggregatesInput | OrganizationScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Organization"> | string
    code?: StringWithAggregatesFilter<"Organization"> | string
    name?: StringWithAggregatesFilter<"Organization"> | string
    displayName?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    nameEn?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    nameZh?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    legalName?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    legalRepresentative?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    registrationNumber?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    taxId?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    address?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    phone?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    email?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    website?: StringNullableWithAggregatesFilter<"Organization"> | string | null
    primaryRegionId?: UuidNullableWithAggregatesFilter<"Organization"> | string | null
    settings?: JsonWithAggregatesFilter<"Organization">
    financialConfig?: JsonWithAggregatesFilter<"Organization">
    complianceConfig?: JsonWithAggregatesFilter<"Organization">
    status?: StringWithAggregatesFilter<"Organization"> | string
    isActive?: BoolWithAggregatesFilter<"Organization"> | boolean
    order?: IntWithAggregatesFilter<"Organization"> | number
    metadata?: JsonWithAggregatesFilter<"Organization">
    establishedAt?: DateTimeNullableWithAggregatesFilter<"Organization"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Organization"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Organization"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Organization"> | Date | string | null
  }

  export type OrganizationRegionWhereInput = {
    AND?: OrganizationRegionWhereInput | OrganizationRegionWhereInput[]
    OR?: OrganizationRegionWhereInput[]
    NOT?: OrganizationRegionWhereInput | OrganizationRegionWhereInput[]
    id?: UuidFilter<"OrganizationRegion"> | string
    organizationId?: UuidFilter<"OrganizationRegion"> | string
    regionId?: UuidFilter<"OrganizationRegion"> | string
    isDefault?: BoolFilter<"OrganizationRegion"> | boolean
    createdAt?: DateTimeFilter<"OrganizationRegion"> | Date | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    region?: XOR<RegionScalarRelationFilter, RegionWhereInput>
  }

  export type OrganizationRegionOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    regionId?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
    region?: RegionOrderByWithRelationInput
  }

  export type OrganizationRegionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_regionId?: OrganizationRegionOrganizationIdRegionIdCompoundUniqueInput
    AND?: OrganizationRegionWhereInput | OrganizationRegionWhereInput[]
    OR?: OrganizationRegionWhereInput[]
    NOT?: OrganizationRegionWhereInput | OrganizationRegionWhereInput[]
    organizationId?: UuidFilter<"OrganizationRegion"> | string
    regionId?: UuidFilter<"OrganizationRegion"> | string
    isDefault?: BoolFilter<"OrganizationRegion"> | boolean
    createdAt?: DateTimeFilter<"OrganizationRegion"> | Date | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    region?: XOR<RegionScalarRelationFilter, RegionWhereInput>
  }, "id" | "organizationId_regionId">

  export type OrganizationRegionOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    regionId?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    _count?: OrganizationRegionCountOrderByAggregateInput
    _max?: OrganizationRegionMaxOrderByAggregateInput
    _min?: OrganizationRegionMinOrderByAggregateInput
  }

  export type OrganizationRegionScalarWhereWithAggregatesInput = {
    AND?: OrganizationRegionScalarWhereWithAggregatesInput | OrganizationRegionScalarWhereWithAggregatesInput[]
    OR?: OrganizationRegionScalarWhereWithAggregatesInput[]
    NOT?: OrganizationRegionScalarWhereWithAggregatesInput | OrganizationRegionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"OrganizationRegion"> | string
    organizationId?: UuidWithAggregatesFilter<"OrganizationRegion"> | string
    regionId?: UuidWithAggregatesFilter<"OrganizationRegion"> | string
    isDefault?: BoolWithAggregatesFilter<"OrganizationRegion"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"OrganizationRegion"> | Date | string
  }

  export type RegionWhereInput = {
    AND?: RegionWhereInput | RegionWhereInput[]
    OR?: RegionWhereInput[]
    NOT?: RegionWhereInput | RegionWhereInput[]
    id?: UuidFilter<"Region"> | string
    code?: StringFilter<"Region"> | string
    name?: StringFilter<"Region"> | string
    nameEn?: StringNullableFilter<"Region"> | string | null
    nameZh?: StringNullableFilter<"Region"> | string | null
    timezone?: StringNullableFilter<"Region"> | string | null
    currency?: StringNullableFilter<"Region"> | string | null
    locale?: StringNullableFilter<"Region"> | string | null
    isActive?: BoolFilter<"Region"> | boolean
    order?: IntFilter<"Region"> | number
    metadata?: JsonFilter<"Region">
    createdAt?: DateTimeFilter<"Region"> | Date | string
    updatedAt?: DateTimeFilter<"Region"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Region"> | Date | string | null
    primaryOrganizations?: OrganizationListRelationFilter
    organizationRegions?: OrganizationRegionListRelationFilter
  }

  export type RegionOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    nameEn?: SortOrderInput | SortOrder
    nameZh?: SortOrderInput | SortOrder
    timezone?: SortOrderInput | SortOrder
    currency?: SortOrderInput | SortOrder
    locale?: SortOrderInput | SortOrder
    isActive?: SortOrder
    order?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    primaryOrganizations?: OrganizationOrderByRelationAggregateInput
    organizationRegions?: OrganizationRegionOrderByRelationAggregateInput
  }

  export type RegionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: RegionWhereInput | RegionWhereInput[]
    OR?: RegionWhereInput[]
    NOT?: RegionWhereInput | RegionWhereInput[]
    name?: StringFilter<"Region"> | string
    nameEn?: StringNullableFilter<"Region"> | string | null
    nameZh?: StringNullableFilter<"Region"> | string | null
    timezone?: StringNullableFilter<"Region"> | string | null
    currency?: StringNullableFilter<"Region"> | string | null
    locale?: StringNullableFilter<"Region"> | string | null
    isActive?: BoolFilter<"Region"> | boolean
    order?: IntFilter<"Region"> | number
    metadata?: JsonFilter<"Region">
    createdAt?: DateTimeFilter<"Region"> | Date | string
    updatedAt?: DateTimeFilter<"Region"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Region"> | Date | string | null
    primaryOrganizations?: OrganizationListRelationFilter
    organizationRegions?: OrganizationRegionListRelationFilter
  }, "id" | "code">

  export type RegionOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    nameEn?: SortOrderInput | SortOrder
    nameZh?: SortOrderInput | SortOrder
    timezone?: SortOrderInput | SortOrder
    currency?: SortOrderInput | SortOrder
    locale?: SortOrderInput | SortOrder
    isActive?: SortOrder
    order?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: RegionCountOrderByAggregateInput
    _avg?: RegionAvgOrderByAggregateInput
    _max?: RegionMaxOrderByAggregateInput
    _min?: RegionMinOrderByAggregateInput
    _sum?: RegionSumOrderByAggregateInput
  }

  export type RegionScalarWhereWithAggregatesInput = {
    AND?: RegionScalarWhereWithAggregatesInput | RegionScalarWhereWithAggregatesInput[]
    OR?: RegionScalarWhereWithAggregatesInput[]
    NOT?: RegionScalarWhereWithAggregatesInput | RegionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Region"> | string
    code?: StringWithAggregatesFilter<"Region"> | string
    name?: StringWithAggregatesFilter<"Region"> | string
    nameEn?: StringNullableWithAggregatesFilter<"Region"> | string | null
    nameZh?: StringNullableWithAggregatesFilter<"Region"> | string | null
    timezone?: StringNullableWithAggregatesFilter<"Region"> | string | null
    currency?: StringNullableWithAggregatesFilter<"Region"> | string | null
    locale?: StringNullableWithAggregatesFilter<"Region"> | string | null
    isActive?: BoolWithAggregatesFilter<"Region"> | boolean
    order?: IntWithAggregatesFilter<"Region"> | number
    metadata?: JsonWithAggregatesFilter<"Region">
    createdAt?: DateTimeWithAggregatesFilter<"Region"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Region"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Region"> | Date | string | null
  }

  export type DepartmentWhereInput = {
    AND?: DepartmentWhereInput | DepartmentWhereInput[]
    OR?: DepartmentWhereInput[]
    NOT?: DepartmentWhereInput | DepartmentWhereInput[]
    id?: UuidFilter<"Department"> | string
    organizationId?: UuidFilter<"Department"> | string
    name?: StringFilter<"Department"> | string
    code?: StringFilter<"Department"> | string
    parentId?: UuidNullableFilter<"Department"> | string | null
    headId?: UuidNullableFilter<"Department"> | string | null
    description?: StringNullableFilter<"Department"> | string | null
    order?: IntFilter<"Department"> | number
    tenantId?: StringNullableFilter<"Department"> | string | null
    metadata?: JsonFilter<"Department">
    createdAt?: DateTimeFilter<"Department"> | Date | string
    updatedAt?: DateTimeFilter<"Department"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Department"> | Date | string | null
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    parent?: XOR<DepartmentNullableScalarRelationFilter, DepartmentWhereInput> | null
    children?: DepartmentListRelationFilter
    userMemberships?: UserDepartmentListRelationFilter
  }

  export type DepartmentOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    name?: SortOrder
    code?: SortOrder
    parentId?: SortOrderInput | SortOrder
    headId?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    order?: SortOrder
    tenantId?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    organization?: OrganizationOrderByWithRelationInput
    parent?: DepartmentOrderByWithRelationInput
    children?: DepartmentOrderByRelationAggregateInput
    userMemberships?: UserDepartmentOrderByRelationAggregateInput
  }

  export type DepartmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_code?: DepartmentOrganizationIdCodeCompoundUniqueInput
    AND?: DepartmentWhereInput | DepartmentWhereInput[]
    OR?: DepartmentWhereInput[]
    NOT?: DepartmentWhereInput | DepartmentWhereInput[]
    organizationId?: UuidFilter<"Department"> | string
    name?: StringFilter<"Department"> | string
    code?: StringFilter<"Department"> | string
    parentId?: UuidNullableFilter<"Department"> | string | null
    headId?: UuidNullableFilter<"Department"> | string | null
    description?: StringNullableFilter<"Department"> | string | null
    order?: IntFilter<"Department"> | number
    tenantId?: StringNullableFilter<"Department"> | string | null
    metadata?: JsonFilter<"Department">
    createdAt?: DateTimeFilter<"Department"> | Date | string
    updatedAt?: DateTimeFilter<"Department"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Department"> | Date | string | null
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    parent?: XOR<DepartmentNullableScalarRelationFilter, DepartmentWhereInput> | null
    children?: DepartmentListRelationFilter
    userMemberships?: UserDepartmentListRelationFilter
  }, "id" | "organizationId_code">

  export type DepartmentOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    name?: SortOrder
    code?: SortOrder
    parentId?: SortOrderInput | SortOrder
    headId?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    order?: SortOrder
    tenantId?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: DepartmentCountOrderByAggregateInput
    _avg?: DepartmentAvgOrderByAggregateInput
    _max?: DepartmentMaxOrderByAggregateInput
    _min?: DepartmentMinOrderByAggregateInput
    _sum?: DepartmentSumOrderByAggregateInput
  }

  export type DepartmentScalarWhereWithAggregatesInput = {
    AND?: DepartmentScalarWhereWithAggregatesInput | DepartmentScalarWhereWithAggregatesInput[]
    OR?: DepartmentScalarWhereWithAggregatesInput[]
    NOT?: DepartmentScalarWhereWithAggregatesInput | DepartmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Department"> | string
    organizationId?: UuidWithAggregatesFilter<"Department"> | string
    name?: StringWithAggregatesFilter<"Department"> | string
    code?: StringWithAggregatesFilter<"Department"> | string
    parentId?: UuidNullableWithAggregatesFilter<"Department"> | string | null
    headId?: UuidNullableWithAggregatesFilter<"Department"> | string | null
    description?: StringNullableWithAggregatesFilter<"Department"> | string | null
    order?: IntWithAggregatesFilter<"Department"> | number
    tenantId?: StringNullableWithAggregatesFilter<"Department"> | string | null
    metadata?: JsonWithAggregatesFilter<"Department">
    createdAt?: DateTimeWithAggregatesFilter<"Department"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Department"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Department"> | Date | string | null
  }

  export type PositionWhereInput = {
    AND?: PositionWhereInput | PositionWhereInput[]
    OR?: PositionWhereInput[]
    NOT?: PositionWhereInput | PositionWhereInput[]
    id?: UuidFilter<"Position"> | string
    name?: StringFilter<"Position"> | string
    code?: StringFilter<"Position"> | string
    level?: IntFilter<"Position"> | number
    description?: StringNullableFilter<"Position"> | string | null
    createdAt?: DateTimeFilter<"Position"> | Date | string
    updatedAt?: DateTimeFilter<"Position"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Position"> | Date | string | null
    userMemberships?: UserDepartmentListRelationFilter
  }

  export type PositionOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    level?: SortOrder
    description?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    userMemberships?: UserDepartmentOrderByRelationAggregateInput
  }

  export type PositionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: PositionWhereInput | PositionWhereInput[]
    OR?: PositionWhereInput[]
    NOT?: PositionWhereInput | PositionWhereInput[]
    name?: StringFilter<"Position"> | string
    level?: IntFilter<"Position"> | number
    description?: StringNullableFilter<"Position"> | string | null
    createdAt?: DateTimeFilter<"Position"> | Date | string
    updatedAt?: DateTimeFilter<"Position"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Position"> | Date | string | null
    userMemberships?: UserDepartmentListRelationFilter
  }, "id" | "code">

  export type PositionOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    level?: SortOrder
    description?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: PositionCountOrderByAggregateInput
    _avg?: PositionAvgOrderByAggregateInput
    _max?: PositionMaxOrderByAggregateInput
    _min?: PositionMinOrderByAggregateInput
    _sum?: PositionSumOrderByAggregateInput
  }

  export type PositionScalarWhereWithAggregatesInput = {
    AND?: PositionScalarWhereWithAggregatesInput | PositionScalarWhereWithAggregatesInput[]
    OR?: PositionScalarWhereWithAggregatesInput[]
    NOT?: PositionScalarWhereWithAggregatesInput | PositionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Position"> | string
    name?: StringWithAggregatesFilter<"Position"> | string
    code?: StringWithAggregatesFilter<"Position"> | string
    level?: IntWithAggregatesFilter<"Position"> | number
    description?: StringNullableWithAggregatesFilter<"Position"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Position"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Position"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Position"> | Date | string | null
  }

  export type UserDepartmentWhereInput = {
    AND?: UserDepartmentWhereInput | UserDepartmentWhereInput[]
    OR?: UserDepartmentWhereInput[]
    NOT?: UserDepartmentWhereInput | UserDepartmentWhereInput[]
    id?: UuidFilter<"UserDepartment"> | string
    userId?: UuidFilter<"UserDepartment"> | string
    organizationId?: UuidFilter<"UserDepartment"> | string
    departmentId?: UuidFilter<"UserDepartment"> | string
    positionId?: UuidNullableFilter<"UserDepartment"> | string | null
    managerId?: UuidNullableFilter<"UserDepartment"> | string | null
    isPrimary?: BoolFilter<"UserDepartment"> | boolean
    title?: StringNullableFilter<"UserDepartment"> | string | null
    joinedAt?: DateTimeFilter<"UserDepartment"> | Date | string
    leftAt?: DateTimeNullableFilter<"UserDepartment"> | Date | string | null
    createdAt?: DateTimeFilter<"UserDepartment"> | Date | string
    updatedAt?: DateTimeFilter<"UserDepartment"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    department?: XOR<DepartmentScalarRelationFilter, DepartmentWhereInput>
    position?: XOR<PositionNullableScalarRelationFilter, PositionWhereInput> | null
    manager?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }

  export type UserDepartmentOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    organizationId?: SortOrder
    departmentId?: SortOrder
    positionId?: SortOrderInput | SortOrder
    managerId?: SortOrderInput | SortOrder
    isPrimary?: SortOrder
    title?: SortOrderInput | SortOrder
    joinedAt?: SortOrder
    leftAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    user?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
    department?: DepartmentOrderByWithRelationInput
    position?: PositionOrderByWithRelationInput
    manager?: UserOrderByWithRelationInput
  }

  export type UserDepartmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId_departmentId?: UserDepartmentUserIdDepartmentIdCompoundUniqueInput
    AND?: UserDepartmentWhereInput | UserDepartmentWhereInput[]
    OR?: UserDepartmentWhereInput[]
    NOT?: UserDepartmentWhereInput | UserDepartmentWhereInput[]
    userId?: UuidFilter<"UserDepartment"> | string
    organizationId?: UuidFilter<"UserDepartment"> | string
    departmentId?: UuidFilter<"UserDepartment"> | string
    positionId?: UuidNullableFilter<"UserDepartment"> | string | null
    managerId?: UuidNullableFilter<"UserDepartment"> | string | null
    isPrimary?: BoolFilter<"UserDepartment"> | boolean
    title?: StringNullableFilter<"UserDepartment"> | string | null
    joinedAt?: DateTimeFilter<"UserDepartment"> | Date | string
    leftAt?: DateTimeNullableFilter<"UserDepartment"> | Date | string | null
    createdAt?: DateTimeFilter<"UserDepartment"> | Date | string
    updatedAt?: DateTimeFilter<"UserDepartment"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    department?: XOR<DepartmentScalarRelationFilter, DepartmentWhereInput>
    position?: XOR<PositionNullableScalarRelationFilter, PositionWhereInput> | null
    manager?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }, "id" | "userId_departmentId">

  export type UserDepartmentOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    organizationId?: SortOrder
    departmentId?: SortOrder
    positionId?: SortOrderInput | SortOrder
    managerId?: SortOrderInput | SortOrder
    isPrimary?: SortOrder
    title?: SortOrderInput | SortOrder
    joinedAt?: SortOrder
    leftAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: UserDepartmentCountOrderByAggregateInput
    _max?: UserDepartmentMaxOrderByAggregateInput
    _min?: UserDepartmentMinOrderByAggregateInput
  }

  export type UserDepartmentScalarWhereWithAggregatesInput = {
    AND?: UserDepartmentScalarWhereWithAggregatesInput | UserDepartmentScalarWhereWithAggregatesInput[]
    OR?: UserDepartmentScalarWhereWithAggregatesInput[]
    NOT?: UserDepartmentScalarWhereWithAggregatesInput | UserDepartmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"UserDepartment"> | string
    userId?: UuidWithAggregatesFilter<"UserDepartment"> | string
    organizationId?: UuidWithAggregatesFilter<"UserDepartment"> | string
    departmentId?: UuidWithAggregatesFilter<"UserDepartment"> | string
    positionId?: UuidNullableWithAggregatesFilter<"UserDepartment"> | string | null
    managerId?: UuidNullableWithAggregatesFilter<"UserDepartment"> | string | null
    isPrimary?: BoolWithAggregatesFilter<"UserDepartment"> | boolean
    title?: StringNullableWithAggregatesFilter<"UserDepartment"> | string | null
    joinedAt?: DateTimeWithAggregatesFilter<"UserDepartment"> | Date | string
    leftAt?: DateTimeNullableWithAggregatesFilter<"UserDepartment"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"UserDepartment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"UserDepartment"> | Date | string
  }

  export type ExpenseRequestWhereInput = {
    AND?: ExpenseRequestWhereInput | ExpenseRequestWhereInput[]
    OR?: ExpenseRequestWhereInput[]
    NOT?: ExpenseRequestWhereInput | ExpenseRequestWhereInput[]
    id?: UuidFilter<"ExpenseRequest"> | string
    code?: StringFilter<"ExpenseRequest"> | string
    title?: StringFilter<"ExpenseRequest"> | string
    description?: StringNullableFilter<"ExpenseRequest"> | string | null
    creatorId?: UuidFilter<"ExpenseRequest"> | string
    amount?: DecimalFilter<"ExpenseRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"ExpenseRequest"> | string
    category?: EnumExpenseCategoryFilter<"ExpenseRequest"> | $Enums.ExpenseCategory
    workflowInstanceId?: UuidNullableFilter<"ExpenseRequest"> | string | null
    status?: EnumExpenseStatusFilter<"ExpenseRequest"> | $Enums.ExpenseStatus
    attachments?: JsonNullableFilter<"ExpenseRequest">
    expenseDate?: DateTimeFilter<"ExpenseRequest"> | Date | string
    createdAt?: DateTimeFilter<"ExpenseRequest"> | Date | string
    updatedAt?: DateTimeFilter<"ExpenseRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ExpenseRequest"> | Date | string | null
    items?: ExpenseItemListRelationFilter
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type ExpenseRequestOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    creatorId?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    category?: SortOrder
    workflowInstanceId?: SortOrderInput | SortOrder
    status?: SortOrder
    attachments?: SortOrderInput | SortOrder
    expenseDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    items?: ExpenseItemOrderByRelationAggregateInput
    creator?: UserOrderByWithRelationInput
  }

  export type ExpenseRequestWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    workflowInstanceId?: string
    AND?: ExpenseRequestWhereInput | ExpenseRequestWhereInput[]
    OR?: ExpenseRequestWhereInput[]
    NOT?: ExpenseRequestWhereInput | ExpenseRequestWhereInput[]
    title?: StringFilter<"ExpenseRequest"> | string
    description?: StringNullableFilter<"ExpenseRequest"> | string | null
    creatorId?: UuidFilter<"ExpenseRequest"> | string
    amount?: DecimalFilter<"ExpenseRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"ExpenseRequest"> | string
    category?: EnumExpenseCategoryFilter<"ExpenseRequest"> | $Enums.ExpenseCategory
    status?: EnumExpenseStatusFilter<"ExpenseRequest"> | $Enums.ExpenseStatus
    attachments?: JsonNullableFilter<"ExpenseRequest">
    expenseDate?: DateTimeFilter<"ExpenseRequest"> | Date | string
    createdAt?: DateTimeFilter<"ExpenseRequest"> | Date | string
    updatedAt?: DateTimeFilter<"ExpenseRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ExpenseRequest"> | Date | string | null
    items?: ExpenseItemListRelationFilter
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "code" | "workflowInstanceId">

  export type ExpenseRequestOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    creatorId?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    category?: SortOrder
    workflowInstanceId?: SortOrderInput | SortOrder
    status?: SortOrder
    attachments?: SortOrderInput | SortOrder
    expenseDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: ExpenseRequestCountOrderByAggregateInput
    _avg?: ExpenseRequestAvgOrderByAggregateInput
    _max?: ExpenseRequestMaxOrderByAggregateInput
    _min?: ExpenseRequestMinOrderByAggregateInput
    _sum?: ExpenseRequestSumOrderByAggregateInput
  }

  export type ExpenseRequestScalarWhereWithAggregatesInput = {
    AND?: ExpenseRequestScalarWhereWithAggregatesInput | ExpenseRequestScalarWhereWithAggregatesInput[]
    OR?: ExpenseRequestScalarWhereWithAggregatesInput[]
    NOT?: ExpenseRequestScalarWhereWithAggregatesInput | ExpenseRequestScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ExpenseRequest"> | string
    code?: StringWithAggregatesFilter<"ExpenseRequest"> | string
    title?: StringWithAggregatesFilter<"ExpenseRequest"> | string
    description?: StringNullableWithAggregatesFilter<"ExpenseRequest"> | string | null
    creatorId?: UuidWithAggregatesFilter<"ExpenseRequest"> | string
    amount?: DecimalWithAggregatesFilter<"ExpenseRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringWithAggregatesFilter<"ExpenseRequest"> | string
    category?: EnumExpenseCategoryWithAggregatesFilter<"ExpenseRequest"> | $Enums.ExpenseCategory
    workflowInstanceId?: UuidNullableWithAggregatesFilter<"ExpenseRequest"> | string | null
    status?: EnumExpenseStatusWithAggregatesFilter<"ExpenseRequest"> | $Enums.ExpenseStatus
    attachments?: JsonNullableWithAggregatesFilter<"ExpenseRequest">
    expenseDate?: DateTimeWithAggregatesFilter<"ExpenseRequest"> | Date | string
    createdAt?: DateTimeWithAggregatesFilter<"ExpenseRequest"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ExpenseRequest"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"ExpenseRequest"> | Date | string | null
  }

  export type ExpenseItemWhereInput = {
    AND?: ExpenseItemWhereInput | ExpenseItemWhereInput[]
    OR?: ExpenseItemWhereInput[]
    NOT?: ExpenseItemWhereInput | ExpenseItemWhereInput[]
    id?: UuidFilter<"ExpenseItem"> | string
    expenseId?: UuidFilter<"ExpenseItem"> | string
    description?: StringFilter<"ExpenseItem"> | string
    amount?: DecimalFilter<"ExpenseItem"> | Decimal | DecimalJsLike | number | string
    date?: DateTimeFilter<"ExpenseItem"> | Date | string
    expense?: XOR<ExpenseRequestScalarRelationFilter, ExpenseRequestWhereInput>
  }

  export type ExpenseItemOrderByWithRelationInput = {
    id?: SortOrder
    expenseId?: SortOrder
    description?: SortOrder
    amount?: SortOrder
    date?: SortOrder
    expense?: ExpenseRequestOrderByWithRelationInput
  }

  export type ExpenseItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ExpenseItemWhereInput | ExpenseItemWhereInput[]
    OR?: ExpenseItemWhereInput[]
    NOT?: ExpenseItemWhereInput | ExpenseItemWhereInput[]
    expenseId?: UuidFilter<"ExpenseItem"> | string
    description?: StringFilter<"ExpenseItem"> | string
    amount?: DecimalFilter<"ExpenseItem"> | Decimal | DecimalJsLike | number | string
    date?: DateTimeFilter<"ExpenseItem"> | Date | string
    expense?: XOR<ExpenseRequestScalarRelationFilter, ExpenseRequestWhereInput>
  }, "id">

  export type ExpenseItemOrderByWithAggregationInput = {
    id?: SortOrder
    expenseId?: SortOrder
    description?: SortOrder
    amount?: SortOrder
    date?: SortOrder
    _count?: ExpenseItemCountOrderByAggregateInput
    _avg?: ExpenseItemAvgOrderByAggregateInput
    _max?: ExpenseItemMaxOrderByAggregateInput
    _min?: ExpenseItemMinOrderByAggregateInput
    _sum?: ExpenseItemSumOrderByAggregateInput
  }

  export type ExpenseItemScalarWhereWithAggregatesInput = {
    AND?: ExpenseItemScalarWhereWithAggregatesInput | ExpenseItemScalarWhereWithAggregatesInput[]
    OR?: ExpenseItemScalarWhereWithAggregatesInput[]
    NOT?: ExpenseItemScalarWhereWithAggregatesInput | ExpenseItemScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ExpenseItem"> | string
    expenseId?: UuidWithAggregatesFilter<"ExpenseItem"> | string
    description?: StringWithAggregatesFilter<"ExpenseItem"> | string
    amount?: DecimalWithAggregatesFilter<"ExpenseItem"> | Decimal | DecimalJsLike | number | string
    date?: DateTimeWithAggregatesFilter<"ExpenseItem"> | Date | string
  }

  export type PurchaseRequestWhereInput = {
    AND?: PurchaseRequestWhereInput | PurchaseRequestWhereInput[]
    OR?: PurchaseRequestWhereInput[]
    NOT?: PurchaseRequestWhereInput | PurchaseRequestWhereInput[]
    id?: UuidFilter<"PurchaseRequest"> | string
    code?: StringFilter<"PurchaseRequest"> | string
    title?: StringFilter<"PurchaseRequest"> | string
    description?: StringNullableFilter<"PurchaseRequest"> | string | null
    creatorId?: UuidFilter<"PurchaseRequest"> | string
    totalAmount?: DecimalFilter<"PurchaseRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"PurchaseRequest"> | string
    vendorName?: StringFilter<"PurchaseRequest"> | string
    vendorContact?: StringNullableFilter<"PurchaseRequest"> | string | null
    workflowInstanceId?: UuidNullableFilter<"PurchaseRequest"> | string | null
    status?: EnumPurchaseStatusFilter<"PurchaseRequest"> | $Enums.PurchaseStatus
    attachments?: JsonNullableFilter<"PurchaseRequest">
    expectedDeliveryDate?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
    actualDeliveryDate?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
    createdAt?: DateTimeFilter<"PurchaseRequest"> | Date | string
    updatedAt?: DateTimeFilter<"PurchaseRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
    items?: PurchaseItemListRelationFilter
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type PurchaseRequestOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    creatorId?: SortOrder
    totalAmount?: SortOrder
    currency?: SortOrder
    vendorName?: SortOrder
    vendorContact?: SortOrderInput | SortOrder
    workflowInstanceId?: SortOrderInput | SortOrder
    status?: SortOrder
    attachments?: SortOrderInput | SortOrder
    expectedDeliveryDate?: SortOrderInput | SortOrder
    actualDeliveryDate?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    items?: PurchaseItemOrderByRelationAggregateInput
    creator?: UserOrderByWithRelationInput
  }

  export type PurchaseRequestWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    workflowInstanceId?: string
    AND?: PurchaseRequestWhereInput | PurchaseRequestWhereInput[]
    OR?: PurchaseRequestWhereInput[]
    NOT?: PurchaseRequestWhereInput | PurchaseRequestWhereInput[]
    title?: StringFilter<"PurchaseRequest"> | string
    description?: StringNullableFilter<"PurchaseRequest"> | string | null
    creatorId?: UuidFilter<"PurchaseRequest"> | string
    totalAmount?: DecimalFilter<"PurchaseRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"PurchaseRequest"> | string
    vendorName?: StringFilter<"PurchaseRequest"> | string
    vendorContact?: StringNullableFilter<"PurchaseRequest"> | string | null
    status?: EnumPurchaseStatusFilter<"PurchaseRequest"> | $Enums.PurchaseStatus
    attachments?: JsonNullableFilter<"PurchaseRequest">
    expectedDeliveryDate?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
    actualDeliveryDate?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
    createdAt?: DateTimeFilter<"PurchaseRequest"> | Date | string
    updatedAt?: DateTimeFilter<"PurchaseRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
    items?: PurchaseItemListRelationFilter
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "code" | "workflowInstanceId">

  export type PurchaseRequestOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    creatorId?: SortOrder
    totalAmount?: SortOrder
    currency?: SortOrder
    vendorName?: SortOrder
    vendorContact?: SortOrderInput | SortOrder
    workflowInstanceId?: SortOrderInput | SortOrder
    status?: SortOrder
    attachments?: SortOrderInput | SortOrder
    expectedDeliveryDate?: SortOrderInput | SortOrder
    actualDeliveryDate?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: PurchaseRequestCountOrderByAggregateInput
    _avg?: PurchaseRequestAvgOrderByAggregateInput
    _max?: PurchaseRequestMaxOrderByAggregateInput
    _min?: PurchaseRequestMinOrderByAggregateInput
    _sum?: PurchaseRequestSumOrderByAggregateInput
  }

  export type PurchaseRequestScalarWhereWithAggregatesInput = {
    AND?: PurchaseRequestScalarWhereWithAggregatesInput | PurchaseRequestScalarWhereWithAggregatesInput[]
    OR?: PurchaseRequestScalarWhereWithAggregatesInput[]
    NOT?: PurchaseRequestScalarWhereWithAggregatesInput | PurchaseRequestScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PurchaseRequest"> | string
    code?: StringWithAggregatesFilter<"PurchaseRequest"> | string
    title?: StringWithAggregatesFilter<"PurchaseRequest"> | string
    description?: StringNullableWithAggregatesFilter<"PurchaseRequest"> | string | null
    creatorId?: UuidWithAggregatesFilter<"PurchaseRequest"> | string
    totalAmount?: DecimalWithAggregatesFilter<"PurchaseRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringWithAggregatesFilter<"PurchaseRequest"> | string
    vendorName?: StringWithAggregatesFilter<"PurchaseRequest"> | string
    vendorContact?: StringNullableWithAggregatesFilter<"PurchaseRequest"> | string | null
    workflowInstanceId?: UuidNullableWithAggregatesFilter<"PurchaseRequest"> | string | null
    status?: EnumPurchaseStatusWithAggregatesFilter<"PurchaseRequest"> | $Enums.PurchaseStatus
    attachments?: JsonNullableWithAggregatesFilter<"PurchaseRequest">
    expectedDeliveryDate?: DateTimeNullableWithAggregatesFilter<"PurchaseRequest"> | Date | string | null
    actualDeliveryDate?: DateTimeNullableWithAggregatesFilter<"PurchaseRequest"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"PurchaseRequest"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PurchaseRequest"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"PurchaseRequest"> | Date | string | null
  }

  export type PurchaseItemWhereInput = {
    AND?: PurchaseItemWhereInput | PurchaseItemWhereInput[]
    OR?: PurchaseItemWhereInput[]
    NOT?: PurchaseItemWhereInput | PurchaseItemWhereInput[]
    id?: UuidFilter<"PurchaseItem"> | string
    purchaseId?: UuidFilter<"PurchaseItem"> | string
    name?: StringFilter<"PurchaseItem"> | string
    description?: StringNullableFilter<"PurchaseItem"> | string | null
    quantity?: IntFilter<"PurchaseItem"> | number
    unitPrice?: DecimalFilter<"PurchaseItem"> | Decimal | DecimalJsLike | number | string
    amount?: DecimalFilter<"PurchaseItem"> | Decimal | DecimalJsLike | number | string
    purchase?: XOR<PurchaseRequestScalarRelationFilter, PurchaseRequestWhereInput>
  }

  export type PurchaseItemOrderByWithRelationInput = {
    id?: SortOrder
    purchaseId?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    amount?: SortOrder
    purchase?: PurchaseRequestOrderByWithRelationInput
  }

  export type PurchaseItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: PurchaseItemWhereInput | PurchaseItemWhereInput[]
    OR?: PurchaseItemWhereInput[]
    NOT?: PurchaseItemWhereInput | PurchaseItemWhereInput[]
    purchaseId?: UuidFilter<"PurchaseItem"> | string
    name?: StringFilter<"PurchaseItem"> | string
    description?: StringNullableFilter<"PurchaseItem"> | string | null
    quantity?: IntFilter<"PurchaseItem"> | number
    unitPrice?: DecimalFilter<"PurchaseItem"> | Decimal | DecimalJsLike | number | string
    amount?: DecimalFilter<"PurchaseItem"> | Decimal | DecimalJsLike | number | string
    purchase?: XOR<PurchaseRequestScalarRelationFilter, PurchaseRequestWhereInput>
  }, "id">

  export type PurchaseItemOrderByWithAggregationInput = {
    id?: SortOrder
    purchaseId?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    amount?: SortOrder
    _count?: PurchaseItemCountOrderByAggregateInput
    _avg?: PurchaseItemAvgOrderByAggregateInput
    _max?: PurchaseItemMaxOrderByAggregateInput
    _min?: PurchaseItemMinOrderByAggregateInput
    _sum?: PurchaseItemSumOrderByAggregateInput
  }

  export type PurchaseItemScalarWhereWithAggregatesInput = {
    AND?: PurchaseItemScalarWhereWithAggregatesInput | PurchaseItemScalarWhereWithAggregatesInput[]
    OR?: PurchaseItemScalarWhereWithAggregatesInput[]
    NOT?: PurchaseItemScalarWhereWithAggregatesInput | PurchaseItemScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PurchaseItem"> | string
    purchaseId?: UuidWithAggregatesFilter<"PurchaseItem"> | string
    name?: StringWithAggregatesFilter<"PurchaseItem"> | string
    description?: StringNullableWithAggregatesFilter<"PurchaseItem"> | string | null
    quantity?: IntWithAggregatesFilter<"PurchaseItem"> | number
    unitPrice?: DecimalWithAggregatesFilter<"PurchaseItem"> | Decimal | DecimalJsLike | number | string
    amount?: DecimalWithAggregatesFilter<"PurchaseItem"> | Decimal | DecimalJsLike | number | string
  }

  export type ContractRequestWhereInput = {
    AND?: ContractRequestWhereInput | ContractRequestWhereInput[]
    OR?: ContractRequestWhereInput[]
    NOT?: ContractRequestWhereInput | ContractRequestWhereInput[]
    id?: UuidFilter<"ContractRequest"> | string
    code?: StringFilter<"ContractRequest"> | string
    title?: StringFilter<"ContractRequest"> | string
    description?: StringNullableFilter<"ContractRequest"> | string | null
    creatorId?: UuidFilter<"ContractRequest"> | string
    contractType?: EnumContractTypeFilter<"ContractRequest"> | $Enums.ContractType
    partnerName?: StringFilter<"ContractRequest"> | string
    partnerContact?: StringNullableFilter<"ContractRequest"> | string | null
    amount?: DecimalFilter<"ContractRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"ContractRequest"> | string
    workflowInstanceId?: UuidNullableFilter<"ContractRequest"> | string | null
    status?: EnumContractStatusFilter<"ContractRequest"> | $Enums.ContractStatus
    sealRequired?: BoolFilter<"ContractRequest"> | boolean
    sealAppliedAt?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    attachments?: JsonNullableFilter<"ContractRequest">
    signDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    startDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    endDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    createdAt?: DateTimeFilter<"ContractRequest"> | Date | string
    updatedAt?: DateTimeFilter<"ContractRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type ContractRequestOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    creatorId?: SortOrder
    contractType?: SortOrder
    partnerName?: SortOrder
    partnerContact?: SortOrderInput | SortOrder
    amount?: SortOrder
    currency?: SortOrder
    workflowInstanceId?: SortOrderInput | SortOrder
    status?: SortOrder
    sealRequired?: SortOrder
    sealAppliedAt?: SortOrderInput | SortOrder
    attachments?: SortOrderInput | SortOrder
    signDate?: SortOrderInput | SortOrder
    startDate?: SortOrderInput | SortOrder
    endDate?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    creator?: UserOrderByWithRelationInput
  }

  export type ContractRequestWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    workflowInstanceId?: string
    AND?: ContractRequestWhereInput | ContractRequestWhereInput[]
    OR?: ContractRequestWhereInput[]
    NOT?: ContractRequestWhereInput | ContractRequestWhereInput[]
    title?: StringFilter<"ContractRequest"> | string
    description?: StringNullableFilter<"ContractRequest"> | string | null
    creatorId?: UuidFilter<"ContractRequest"> | string
    contractType?: EnumContractTypeFilter<"ContractRequest"> | $Enums.ContractType
    partnerName?: StringFilter<"ContractRequest"> | string
    partnerContact?: StringNullableFilter<"ContractRequest"> | string | null
    amount?: DecimalFilter<"ContractRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"ContractRequest"> | string
    status?: EnumContractStatusFilter<"ContractRequest"> | $Enums.ContractStatus
    sealRequired?: BoolFilter<"ContractRequest"> | boolean
    sealAppliedAt?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    attachments?: JsonNullableFilter<"ContractRequest">
    signDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    startDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    endDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    createdAt?: DateTimeFilter<"ContractRequest"> | Date | string
    updatedAt?: DateTimeFilter<"ContractRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "code" | "workflowInstanceId">

  export type ContractRequestOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    creatorId?: SortOrder
    contractType?: SortOrder
    partnerName?: SortOrder
    partnerContact?: SortOrderInput | SortOrder
    amount?: SortOrder
    currency?: SortOrder
    workflowInstanceId?: SortOrderInput | SortOrder
    status?: SortOrder
    sealRequired?: SortOrder
    sealAppliedAt?: SortOrderInput | SortOrder
    attachments?: SortOrderInput | SortOrder
    signDate?: SortOrderInput | SortOrder
    startDate?: SortOrderInput | SortOrder
    endDate?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: ContractRequestCountOrderByAggregateInput
    _avg?: ContractRequestAvgOrderByAggregateInput
    _max?: ContractRequestMaxOrderByAggregateInput
    _min?: ContractRequestMinOrderByAggregateInput
    _sum?: ContractRequestSumOrderByAggregateInput
  }

  export type ContractRequestScalarWhereWithAggregatesInput = {
    AND?: ContractRequestScalarWhereWithAggregatesInput | ContractRequestScalarWhereWithAggregatesInput[]
    OR?: ContractRequestScalarWhereWithAggregatesInput[]
    NOT?: ContractRequestScalarWhereWithAggregatesInput | ContractRequestScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ContractRequest"> | string
    code?: StringWithAggregatesFilter<"ContractRequest"> | string
    title?: StringWithAggregatesFilter<"ContractRequest"> | string
    description?: StringNullableWithAggregatesFilter<"ContractRequest"> | string | null
    creatorId?: UuidWithAggregatesFilter<"ContractRequest"> | string
    contractType?: EnumContractTypeWithAggregatesFilter<"ContractRequest"> | $Enums.ContractType
    partnerName?: StringWithAggregatesFilter<"ContractRequest"> | string
    partnerContact?: StringNullableWithAggregatesFilter<"ContractRequest"> | string | null
    amount?: DecimalWithAggregatesFilter<"ContractRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringWithAggregatesFilter<"ContractRequest"> | string
    workflowInstanceId?: UuidNullableWithAggregatesFilter<"ContractRequest"> | string | null
    status?: EnumContractStatusWithAggregatesFilter<"ContractRequest"> | $Enums.ContractStatus
    sealRequired?: BoolWithAggregatesFilter<"ContractRequest"> | boolean
    sealAppliedAt?: DateTimeNullableWithAggregatesFilter<"ContractRequest"> | Date | string | null
    attachments?: JsonNullableWithAggregatesFilter<"ContractRequest">
    signDate?: DateTimeNullableWithAggregatesFilter<"ContractRequest"> | Date | string | null
    startDate?: DateTimeNullableWithAggregatesFilter<"ContractRequest"> | Date | string | null
    endDate?: DateTimeNullableWithAggregatesFilter<"ContractRequest"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"ContractRequest"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ContractRequest"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"ContractRequest"> | Date | string | null
  }

  export type PartWhereInput = {
    AND?: PartWhereInput | PartWhereInput[]
    OR?: PartWhereInput[]
    NOT?: PartWhereInput | PartWhereInput[]
    id?: UuidFilter<"Part"> | string
    partNumber?: StringFilter<"Part"> | string
    partNameEn?: StringFilter<"Part"> | string
    partNameCn?: StringNullableFilter<"Part"> | string | null
    unit?: StringFilter<"Part"> | string
    source?: StringNullableFilter<"Part"> | string | null
    specifications?: StringNullableFilter<"Part"> | string | null
    remark?: StringNullableFilter<"Part"> | string | null
    status?: EnumPartStatusFilter<"Part"> | $Enums.PartStatus
    currentStock?: IntFilter<"Part"> | number
    minStock?: IntFilter<"Part"> | number
    maxStock?: IntNullableFilter<"Part"> | number | null
    station?: StringNullableFilter<"Part"> | string | null
    stationId?: UuidNullableFilter<"Part"> | string | null
    warehouseLocation?: StringNullableFilter<"Part"> | string | null
    warehouseId?: UuidNullableFilter<"Part"> | string | null
    storageLocationId?: UuidNullableFilter<"Part"> | string | null
    imageUrl?: StringNullableFilter<"Part"> | string | null
    customFields?: JsonNullableFilter<"Part">
    metadata?: JsonFilter<"Part">
    createdAt?: DateTimeFilter<"Part"> | Date | string
    updatedAt?: DateTimeFilter<"Part"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Part"> | Date | string | null
    inventoryLogs?: InventoryLogListRelationFilter
    groups?: PartGroupRelationListRelationFilter
    labels?: PartLabelListRelationFilter
    stockAlerts?: StockAlertListRelationFilter
    warehouse?: XOR<WarehouseNullableScalarRelationFilter, WarehouseWhereInput> | null
    storageLocation?: XOR<StorageLocationNullableScalarRelationFilter, StorageLocationWhereInput> | null
    stationRef?: XOR<StationNullableScalarRelationFilter, StationWhereInput> | null
  }

  export type PartOrderByWithRelationInput = {
    id?: SortOrder
    partNumber?: SortOrder
    partNameEn?: SortOrder
    partNameCn?: SortOrderInput | SortOrder
    unit?: SortOrder
    source?: SortOrderInput | SortOrder
    specifications?: SortOrderInput | SortOrder
    remark?: SortOrderInput | SortOrder
    status?: SortOrder
    currentStock?: SortOrder
    minStock?: SortOrder
    maxStock?: SortOrderInput | SortOrder
    station?: SortOrderInput | SortOrder
    stationId?: SortOrderInput | SortOrder
    warehouseLocation?: SortOrderInput | SortOrder
    warehouseId?: SortOrderInput | SortOrder
    storageLocationId?: SortOrderInput | SortOrder
    imageUrl?: SortOrderInput | SortOrder
    customFields?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    inventoryLogs?: InventoryLogOrderByRelationAggregateInput
    groups?: PartGroupRelationOrderByRelationAggregateInput
    labels?: PartLabelOrderByRelationAggregateInput
    stockAlerts?: StockAlertOrderByRelationAggregateInput
    warehouse?: WarehouseOrderByWithRelationInput
    storageLocation?: StorageLocationOrderByWithRelationInput
    stationRef?: StationOrderByWithRelationInput
  }

  export type PartWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    partNumber?: string
    AND?: PartWhereInput | PartWhereInput[]
    OR?: PartWhereInput[]
    NOT?: PartWhereInput | PartWhereInput[]
    partNameEn?: StringFilter<"Part"> | string
    partNameCn?: StringNullableFilter<"Part"> | string | null
    unit?: StringFilter<"Part"> | string
    source?: StringNullableFilter<"Part"> | string | null
    specifications?: StringNullableFilter<"Part"> | string | null
    remark?: StringNullableFilter<"Part"> | string | null
    status?: EnumPartStatusFilter<"Part"> | $Enums.PartStatus
    currentStock?: IntFilter<"Part"> | number
    minStock?: IntFilter<"Part"> | number
    maxStock?: IntNullableFilter<"Part"> | number | null
    station?: StringNullableFilter<"Part"> | string | null
    stationId?: UuidNullableFilter<"Part"> | string | null
    warehouseLocation?: StringNullableFilter<"Part"> | string | null
    warehouseId?: UuidNullableFilter<"Part"> | string | null
    storageLocationId?: UuidNullableFilter<"Part"> | string | null
    imageUrl?: StringNullableFilter<"Part"> | string | null
    customFields?: JsonNullableFilter<"Part">
    metadata?: JsonFilter<"Part">
    createdAt?: DateTimeFilter<"Part"> | Date | string
    updatedAt?: DateTimeFilter<"Part"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Part"> | Date | string | null
    inventoryLogs?: InventoryLogListRelationFilter
    groups?: PartGroupRelationListRelationFilter
    labels?: PartLabelListRelationFilter
    stockAlerts?: StockAlertListRelationFilter
    warehouse?: XOR<WarehouseNullableScalarRelationFilter, WarehouseWhereInput> | null
    storageLocation?: XOR<StorageLocationNullableScalarRelationFilter, StorageLocationWhereInput> | null
    stationRef?: XOR<StationNullableScalarRelationFilter, StationWhereInput> | null
  }, "id" | "partNumber">

  export type PartOrderByWithAggregationInput = {
    id?: SortOrder
    partNumber?: SortOrder
    partNameEn?: SortOrder
    partNameCn?: SortOrderInput | SortOrder
    unit?: SortOrder
    source?: SortOrderInput | SortOrder
    specifications?: SortOrderInput | SortOrder
    remark?: SortOrderInput | SortOrder
    status?: SortOrder
    currentStock?: SortOrder
    minStock?: SortOrder
    maxStock?: SortOrderInput | SortOrder
    station?: SortOrderInput | SortOrder
    stationId?: SortOrderInput | SortOrder
    warehouseLocation?: SortOrderInput | SortOrder
    warehouseId?: SortOrderInput | SortOrder
    storageLocationId?: SortOrderInput | SortOrder
    imageUrl?: SortOrderInput | SortOrder
    customFields?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: PartCountOrderByAggregateInput
    _avg?: PartAvgOrderByAggregateInput
    _max?: PartMaxOrderByAggregateInput
    _min?: PartMinOrderByAggregateInput
    _sum?: PartSumOrderByAggregateInput
  }

  export type PartScalarWhereWithAggregatesInput = {
    AND?: PartScalarWhereWithAggregatesInput | PartScalarWhereWithAggregatesInput[]
    OR?: PartScalarWhereWithAggregatesInput[]
    NOT?: PartScalarWhereWithAggregatesInput | PartScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Part"> | string
    partNumber?: StringWithAggregatesFilter<"Part"> | string
    partNameEn?: StringWithAggregatesFilter<"Part"> | string
    partNameCn?: StringNullableWithAggregatesFilter<"Part"> | string | null
    unit?: StringWithAggregatesFilter<"Part"> | string
    source?: StringNullableWithAggregatesFilter<"Part"> | string | null
    specifications?: StringNullableWithAggregatesFilter<"Part"> | string | null
    remark?: StringNullableWithAggregatesFilter<"Part"> | string | null
    status?: EnumPartStatusWithAggregatesFilter<"Part"> | $Enums.PartStatus
    currentStock?: IntWithAggregatesFilter<"Part"> | number
    minStock?: IntWithAggregatesFilter<"Part"> | number
    maxStock?: IntNullableWithAggregatesFilter<"Part"> | number | null
    station?: StringNullableWithAggregatesFilter<"Part"> | string | null
    stationId?: UuidNullableWithAggregatesFilter<"Part"> | string | null
    warehouseLocation?: StringNullableWithAggregatesFilter<"Part"> | string | null
    warehouseId?: UuidNullableWithAggregatesFilter<"Part"> | string | null
    storageLocationId?: UuidNullableWithAggregatesFilter<"Part"> | string | null
    imageUrl?: StringNullableWithAggregatesFilter<"Part"> | string | null
    customFields?: JsonNullableWithAggregatesFilter<"Part">
    metadata?: JsonWithAggregatesFilter<"Part">
    createdAt?: DateTimeWithAggregatesFilter<"Part"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Part"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Part"> | Date | string | null
  }

  export type StationWhereInput = {
    AND?: StationWhereInput | StationWhereInput[]
    OR?: StationWhereInput[]
    NOT?: StationWhereInput | StationWhereInput[]
    id?: UuidFilter<"Station"> | string
    code?: StringFilter<"Station"> | string
    nameEn?: StringFilter<"Station"> | string
    nameCn?: StringNullableFilter<"Station"> | string | null
    description?: StringNullableFilter<"Station"> | string | null
    area?: StringNullableFilter<"Station"> | string | null
    line?: StringNullableFilter<"Station"> | string | null
    type?: StringNullableFilter<"Station"> | string | null
    status?: EnumStationStatusFilter<"Station"> | $Enums.StationStatus
    sortOrder?: IntFilter<"Station"> | number
    metadata?: JsonFilter<"Station">
    createdAt?: DateTimeFilter<"Station"> | Date | string
    updatedAt?: DateTimeFilter<"Station"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Station"> | Date | string | null
    parts?: PartListRelationFilter
  }

  export type StationOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    area?: SortOrderInput | SortOrder
    line?: SortOrderInput | SortOrder
    type?: SortOrderInput | SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    parts?: PartOrderByRelationAggregateInput
  }

  export type StationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: StationWhereInput | StationWhereInput[]
    OR?: StationWhereInput[]
    NOT?: StationWhereInput | StationWhereInput[]
    nameEn?: StringFilter<"Station"> | string
    nameCn?: StringNullableFilter<"Station"> | string | null
    description?: StringNullableFilter<"Station"> | string | null
    area?: StringNullableFilter<"Station"> | string | null
    line?: StringNullableFilter<"Station"> | string | null
    type?: StringNullableFilter<"Station"> | string | null
    status?: EnumStationStatusFilter<"Station"> | $Enums.StationStatus
    sortOrder?: IntFilter<"Station"> | number
    metadata?: JsonFilter<"Station">
    createdAt?: DateTimeFilter<"Station"> | Date | string
    updatedAt?: DateTimeFilter<"Station"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Station"> | Date | string | null
    parts?: PartListRelationFilter
  }, "id" | "code">

  export type StationOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    area?: SortOrderInput | SortOrder
    line?: SortOrderInput | SortOrder
    type?: SortOrderInput | SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: StationCountOrderByAggregateInput
    _avg?: StationAvgOrderByAggregateInput
    _max?: StationMaxOrderByAggregateInput
    _min?: StationMinOrderByAggregateInput
    _sum?: StationSumOrderByAggregateInput
  }

  export type StationScalarWhereWithAggregatesInput = {
    AND?: StationScalarWhereWithAggregatesInput | StationScalarWhereWithAggregatesInput[]
    OR?: StationScalarWhereWithAggregatesInput[]
    NOT?: StationScalarWhereWithAggregatesInput | StationScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Station"> | string
    code?: StringWithAggregatesFilter<"Station"> | string
    nameEn?: StringWithAggregatesFilter<"Station"> | string
    nameCn?: StringNullableWithAggregatesFilter<"Station"> | string | null
    description?: StringNullableWithAggregatesFilter<"Station"> | string | null
    area?: StringNullableWithAggregatesFilter<"Station"> | string | null
    line?: StringNullableWithAggregatesFilter<"Station"> | string | null
    type?: StringNullableWithAggregatesFilter<"Station"> | string | null
    status?: EnumStationStatusWithAggregatesFilter<"Station"> | $Enums.StationStatus
    sortOrder?: IntWithAggregatesFilter<"Station"> | number
    metadata?: JsonWithAggregatesFilter<"Station">
    createdAt?: DateTimeWithAggregatesFilter<"Station"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Station"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Station"> | Date | string | null
  }

  export type WarehouseWhereInput = {
    AND?: WarehouseWhereInput | WarehouseWhereInput[]
    OR?: WarehouseWhereInput[]
    NOT?: WarehouseWhereInput | WarehouseWhereInput[]
    id?: UuidFilter<"Warehouse"> | string
    code?: StringFilter<"Warehouse"> | string
    nameEn?: StringFilter<"Warehouse"> | string
    nameCn?: StringNullableFilter<"Warehouse"> | string | null
    description?: StringNullableFilter<"Warehouse"> | string | null
    address?: StringNullableFilter<"Warehouse"> | string | null
    contactPerson?: StringNullableFilter<"Warehouse"> | string | null
    contactPhone?: StringNullableFilter<"Warehouse"> | string | null
    status?: EnumWarehouseStatusFilter<"Warehouse"> | $Enums.WarehouseStatus
    isDefault?: BoolFilter<"Warehouse"> | boolean
    sortOrder?: IntFilter<"Warehouse"> | number
    metadata?: JsonFilter<"Warehouse">
    createdAt?: DateTimeFilter<"Warehouse"> | Date | string
    updatedAt?: DateTimeFilter<"Warehouse"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Warehouse"> | Date | string | null
    storageLocations?: StorageLocationListRelationFilter
    parts?: PartListRelationFilter
  }

  export type WarehouseOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    contactPerson?: SortOrderInput | SortOrder
    contactPhone?: SortOrderInput | SortOrder
    status?: SortOrder
    isDefault?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    storageLocations?: StorageLocationOrderByRelationAggregateInput
    parts?: PartOrderByRelationAggregateInput
  }

  export type WarehouseWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: WarehouseWhereInput | WarehouseWhereInput[]
    OR?: WarehouseWhereInput[]
    NOT?: WarehouseWhereInput | WarehouseWhereInput[]
    nameEn?: StringFilter<"Warehouse"> | string
    nameCn?: StringNullableFilter<"Warehouse"> | string | null
    description?: StringNullableFilter<"Warehouse"> | string | null
    address?: StringNullableFilter<"Warehouse"> | string | null
    contactPerson?: StringNullableFilter<"Warehouse"> | string | null
    contactPhone?: StringNullableFilter<"Warehouse"> | string | null
    status?: EnumWarehouseStatusFilter<"Warehouse"> | $Enums.WarehouseStatus
    isDefault?: BoolFilter<"Warehouse"> | boolean
    sortOrder?: IntFilter<"Warehouse"> | number
    metadata?: JsonFilter<"Warehouse">
    createdAt?: DateTimeFilter<"Warehouse"> | Date | string
    updatedAt?: DateTimeFilter<"Warehouse"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Warehouse"> | Date | string | null
    storageLocations?: StorageLocationListRelationFilter
    parts?: PartListRelationFilter
  }, "id" | "code">

  export type WarehouseOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    contactPerson?: SortOrderInput | SortOrder
    contactPhone?: SortOrderInput | SortOrder
    status?: SortOrder
    isDefault?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: WarehouseCountOrderByAggregateInput
    _avg?: WarehouseAvgOrderByAggregateInput
    _max?: WarehouseMaxOrderByAggregateInput
    _min?: WarehouseMinOrderByAggregateInput
    _sum?: WarehouseSumOrderByAggregateInput
  }

  export type WarehouseScalarWhereWithAggregatesInput = {
    AND?: WarehouseScalarWhereWithAggregatesInput | WarehouseScalarWhereWithAggregatesInput[]
    OR?: WarehouseScalarWhereWithAggregatesInput[]
    NOT?: WarehouseScalarWhereWithAggregatesInput | WarehouseScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Warehouse"> | string
    code?: StringWithAggregatesFilter<"Warehouse"> | string
    nameEn?: StringWithAggregatesFilter<"Warehouse"> | string
    nameCn?: StringNullableWithAggregatesFilter<"Warehouse"> | string | null
    description?: StringNullableWithAggregatesFilter<"Warehouse"> | string | null
    address?: StringNullableWithAggregatesFilter<"Warehouse"> | string | null
    contactPerson?: StringNullableWithAggregatesFilter<"Warehouse"> | string | null
    contactPhone?: StringNullableWithAggregatesFilter<"Warehouse"> | string | null
    status?: EnumWarehouseStatusWithAggregatesFilter<"Warehouse"> | $Enums.WarehouseStatus
    isDefault?: BoolWithAggregatesFilter<"Warehouse"> | boolean
    sortOrder?: IntWithAggregatesFilter<"Warehouse"> | number
    metadata?: JsonWithAggregatesFilter<"Warehouse">
    createdAt?: DateTimeWithAggregatesFilter<"Warehouse"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Warehouse"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Warehouse"> | Date | string | null
  }

  export type StorageLocationWhereInput = {
    AND?: StorageLocationWhereInput | StorageLocationWhereInput[]
    OR?: StorageLocationWhereInput[]
    NOT?: StorageLocationWhereInput | StorageLocationWhereInput[]
    id?: UuidFilter<"StorageLocation"> | string
    warehouseId?: UuidFilter<"StorageLocation"> | string
    code?: StringFilter<"StorageLocation"> | string
    nameEn?: StringFilter<"StorageLocation"> | string
    nameCn?: StringNullableFilter<"StorageLocation"> | string | null
    description?: StringNullableFilter<"StorageLocation"> | string | null
    zone?: StringNullableFilter<"StorageLocation"> | string | null
    aisle?: StringNullableFilter<"StorageLocation"> | string | null
    rack?: StringNullableFilter<"StorageLocation"> | string | null
    level?: StringNullableFilter<"StorageLocation"> | string | null
    position?: StringNullableFilter<"StorageLocation"> | string | null
    capacity?: IntNullableFilter<"StorageLocation"> | number | null
    status?: EnumStorageLocationStatusFilter<"StorageLocation"> | $Enums.StorageLocationStatus
    sortOrder?: IntFilter<"StorageLocation"> | number
    metadata?: JsonFilter<"StorageLocation">
    createdAt?: DateTimeFilter<"StorageLocation"> | Date | string
    updatedAt?: DateTimeFilter<"StorageLocation"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StorageLocation"> | Date | string | null
    warehouse?: XOR<WarehouseScalarRelationFilter, WarehouseWhereInput>
    parts?: PartListRelationFilter
  }

  export type StorageLocationOrderByWithRelationInput = {
    id?: SortOrder
    warehouseId?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    zone?: SortOrderInput | SortOrder
    aisle?: SortOrderInput | SortOrder
    rack?: SortOrderInput | SortOrder
    level?: SortOrderInput | SortOrder
    position?: SortOrderInput | SortOrder
    capacity?: SortOrderInput | SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    warehouse?: WarehouseOrderByWithRelationInput
    parts?: PartOrderByRelationAggregateInput
  }

  export type StorageLocationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    warehouseId_code?: StorageLocationWarehouseIdCodeCompoundUniqueInput
    AND?: StorageLocationWhereInput | StorageLocationWhereInput[]
    OR?: StorageLocationWhereInput[]
    NOT?: StorageLocationWhereInput | StorageLocationWhereInput[]
    warehouseId?: UuidFilter<"StorageLocation"> | string
    code?: StringFilter<"StorageLocation"> | string
    nameEn?: StringFilter<"StorageLocation"> | string
    nameCn?: StringNullableFilter<"StorageLocation"> | string | null
    description?: StringNullableFilter<"StorageLocation"> | string | null
    zone?: StringNullableFilter<"StorageLocation"> | string | null
    aisle?: StringNullableFilter<"StorageLocation"> | string | null
    rack?: StringNullableFilter<"StorageLocation"> | string | null
    level?: StringNullableFilter<"StorageLocation"> | string | null
    position?: StringNullableFilter<"StorageLocation"> | string | null
    capacity?: IntNullableFilter<"StorageLocation"> | number | null
    status?: EnumStorageLocationStatusFilter<"StorageLocation"> | $Enums.StorageLocationStatus
    sortOrder?: IntFilter<"StorageLocation"> | number
    metadata?: JsonFilter<"StorageLocation">
    createdAt?: DateTimeFilter<"StorageLocation"> | Date | string
    updatedAt?: DateTimeFilter<"StorageLocation"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StorageLocation"> | Date | string | null
    warehouse?: XOR<WarehouseScalarRelationFilter, WarehouseWhereInput>
    parts?: PartListRelationFilter
  }, "id" | "warehouseId_code">

  export type StorageLocationOrderByWithAggregationInput = {
    id?: SortOrder
    warehouseId?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    zone?: SortOrderInput | SortOrder
    aisle?: SortOrderInput | SortOrder
    rack?: SortOrderInput | SortOrder
    level?: SortOrderInput | SortOrder
    position?: SortOrderInput | SortOrder
    capacity?: SortOrderInput | SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: StorageLocationCountOrderByAggregateInput
    _avg?: StorageLocationAvgOrderByAggregateInput
    _max?: StorageLocationMaxOrderByAggregateInput
    _min?: StorageLocationMinOrderByAggregateInput
    _sum?: StorageLocationSumOrderByAggregateInput
  }

  export type StorageLocationScalarWhereWithAggregatesInput = {
    AND?: StorageLocationScalarWhereWithAggregatesInput | StorageLocationScalarWhereWithAggregatesInput[]
    OR?: StorageLocationScalarWhereWithAggregatesInput[]
    NOT?: StorageLocationScalarWhereWithAggregatesInput | StorageLocationScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"StorageLocation"> | string
    warehouseId?: UuidWithAggregatesFilter<"StorageLocation"> | string
    code?: StringWithAggregatesFilter<"StorageLocation"> | string
    nameEn?: StringWithAggregatesFilter<"StorageLocation"> | string
    nameCn?: StringNullableWithAggregatesFilter<"StorageLocation"> | string | null
    description?: StringNullableWithAggregatesFilter<"StorageLocation"> | string | null
    zone?: StringNullableWithAggregatesFilter<"StorageLocation"> | string | null
    aisle?: StringNullableWithAggregatesFilter<"StorageLocation"> | string | null
    rack?: StringNullableWithAggregatesFilter<"StorageLocation"> | string | null
    level?: StringNullableWithAggregatesFilter<"StorageLocation"> | string | null
    position?: StringNullableWithAggregatesFilter<"StorageLocation"> | string | null
    capacity?: IntNullableWithAggregatesFilter<"StorageLocation"> | number | null
    status?: EnumStorageLocationStatusWithAggregatesFilter<"StorageLocation"> | $Enums.StorageLocationStatus
    sortOrder?: IntWithAggregatesFilter<"StorageLocation"> | number
    metadata?: JsonWithAggregatesFilter<"StorageLocation">
    createdAt?: DateTimeWithAggregatesFilter<"StorageLocation"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"StorageLocation"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"StorageLocation"> | Date | string | null
  }

  export type PartLabelWhereInput = {
    AND?: PartLabelWhereInput | PartLabelWhereInput[]
    OR?: PartLabelWhereInput[]
    NOT?: PartLabelWhereInput | PartLabelWhereInput[]
    id?: UuidFilter<"PartLabel"> | string
    partId?: UuidFilter<"PartLabel"> | string
    labelCode?: StringFilter<"PartLabel"> | string
    qrCodeData?: StringFilter<"PartLabel"> | string
    template?: StringFilter<"PartLabel"> | string
    size?: StringFilter<"PartLabel"> | string
    printCount?: IntFilter<"PartLabel"> | number
    lastPrintedAt?: DateTimeNullableFilter<"PartLabel"> | Date | string | null
    printedBy?: StringNullableFilter<"PartLabel"> | string | null
    status?: EnumLabelStatusFilter<"PartLabel"> | $Enums.LabelStatus
    createdAt?: DateTimeFilter<"PartLabel"> | Date | string
    updatedAt?: DateTimeFilter<"PartLabel"> | Date | string
    part?: XOR<PartScalarRelationFilter, PartWhereInput>
  }

  export type PartLabelOrderByWithRelationInput = {
    id?: SortOrder
    partId?: SortOrder
    labelCode?: SortOrder
    qrCodeData?: SortOrder
    template?: SortOrder
    size?: SortOrder
    printCount?: SortOrder
    lastPrintedAt?: SortOrderInput | SortOrder
    printedBy?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    part?: PartOrderByWithRelationInput
  }

  export type PartLabelWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    labelCode?: string
    AND?: PartLabelWhereInput | PartLabelWhereInput[]
    OR?: PartLabelWhereInput[]
    NOT?: PartLabelWhereInput | PartLabelWhereInput[]
    partId?: UuidFilter<"PartLabel"> | string
    qrCodeData?: StringFilter<"PartLabel"> | string
    template?: StringFilter<"PartLabel"> | string
    size?: StringFilter<"PartLabel"> | string
    printCount?: IntFilter<"PartLabel"> | number
    lastPrintedAt?: DateTimeNullableFilter<"PartLabel"> | Date | string | null
    printedBy?: StringNullableFilter<"PartLabel"> | string | null
    status?: EnumLabelStatusFilter<"PartLabel"> | $Enums.LabelStatus
    createdAt?: DateTimeFilter<"PartLabel"> | Date | string
    updatedAt?: DateTimeFilter<"PartLabel"> | Date | string
    part?: XOR<PartScalarRelationFilter, PartWhereInput>
  }, "id" | "labelCode">

  export type PartLabelOrderByWithAggregationInput = {
    id?: SortOrder
    partId?: SortOrder
    labelCode?: SortOrder
    qrCodeData?: SortOrder
    template?: SortOrder
    size?: SortOrder
    printCount?: SortOrder
    lastPrintedAt?: SortOrderInput | SortOrder
    printedBy?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: PartLabelCountOrderByAggregateInput
    _avg?: PartLabelAvgOrderByAggregateInput
    _max?: PartLabelMaxOrderByAggregateInput
    _min?: PartLabelMinOrderByAggregateInput
    _sum?: PartLabelSumOrderByAggregateInput
  }

  export type PartLabelScalarWhereWithAggregatesInput = {
    AND?: PartLabelScalarWhereWithAggregatesInput | PartLabelScalarWhereWithAggregatesInput[]
    OR?: PartLabelScalarWhereWithAggregatesInput[]
    NOT?: PartLabelScalarWhereWithAggregatesInput | PartLabelScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PartLabel"> | string
    partId?: UuidWithAggregatesFilter<"PartLabel"> | string
    labelCode?: StringWithAggregatesFilter<"PartLabel"> | string
    qrCodeData?: StringWithAggregatesFilter<"PartLabel"> | string
    template?: StringWithAggregatesFilter<"PartLabel"> | string
    size?: StringWithAggregatesFilter<"PartLabel"> | string
    printCount?: IntWithAggregatesFilter<"PartLabel"> | number
    lastPrintedAt?: DateTimeNullableWithAggregatesFilter<"PartLabel"> | Date | string | null
    printedBy?: StringNullableWithAggregatesFilter<"PartLabel"> | string | null
    status?: EnumLabelStatusWithAggregatesFilter<"PartLabel"> | $Enums.LabelStatus
    createdAt?: DateTimeWithAggregatesFilter<"PartLabel"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PartLabel"> | Date | string
  }

  export type InventoryLogWhereInput = {
    AND?: InventoryLogWhereInput | InventoryLogWhereInput[]
    OR?: InventoryLogWhereInput[]
    NOT?: InventoryLogWhereInput | InventoryLogWhereInput[]
    id?: UuidFilter<"InventoryLog"> | string
    partId?: UuidFilter<"InventoryLog"> | string
    operationType?: EnumInventoryOperationTypeFilter<"InventoryLog"> | $Enums.InventoryOperationType
    quantity?: IntFilter<"InventoryLog"> | number
    previousStock?: IntFilter<"InventoryLog"> | number
    newStock?: IntFilter<"InventoryLog"> | number
    station?: StringNullableFilter<"InventoryLog"> | string | null
    warehouseLocation?: StringNullableFilter<"InventoryLog"> | string | null
    reason?: StringNullableFilter<"InventoryLog"> | string | null
    referenceType?: StringNullableFilter<"InventoryLog"> | string | null
    referenceId?: UuidNullableFilter<"InventoryLog"> | string | null
    operatorId?: UuidFilter<"InventoryLog"> | string
    operatorName?: StringFilter<"InventoryLog"> | string
    scannedCode?: StringNullableFilter<"InventoryLog"> | string | null
    deviceInfo?: JsonNullableFilter<"InventoryLog">
    metadata?: JsonFilter<"InventoryLog">
    createdAt?: DateTimeFilter<"InventoryLog"> | Date | string
    part?: XOR<PartScalarRelationFilter, PartWhereInput>
  }

  export type InventoryLogOrderByWithRelationInput = {
    id?: SortOrder
    partId?: SortOrder
    operationType?: SortOrder
    quantity?: SortOrder
    previousStock?: SortOrder
    newStock?: SortOrder
    station?: SortOrderInput | SortOrder
    warehouseLocation?: SortOrderInput | SortOrder
    reason?: SortOrderInput | SortOrder
    referenceType?: SortOrderInput | SortOrder
    referenceId?: SortOrderInput | SortOrder
    operatorId?: SortOrder
    operatorName?: SortOrder
    scannedCode?: SortOrderInput | SortOrder
    deviceInfo?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    part?: PartOrderByWithRelationInput
  }

  export type InventoryLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: InventoryLogWhereInput | InventoryLogWhereInput[]
    OR?: InventoryLogWhereInput[]
    NOT?: InventoryLogWhereInput | InventoryLogWhereInput[]
    partId?: UuidFilter<"InventoryLog"> | string
    operationType?: EnumInventoryOperationTypeFilter<"InventoryLog"> | $Enums.InventoryOperationType
    quantity?: IntFilter<"InventoryLog"> | number
    previousStock?: IntFilter<"InventoryLog"> | number
    newStock?: IntFilter<"InventoryLog"> | number
    station?: StringNullableFilter<"InventoryLog"> | string | null
    warehouseLocation?: StringNullableFilter<"InventoryLog"> | string | null
    reason?: StringNullableFilter<"InventoryLog"> | string | null
    referenceType?: StringNullableFilter<"InventoryLog"> | string | null
    referenceId?: UuidNullableFilter<"InventoryLog"> | string | null
    operatorId?: UuidFilter<"InventoryLog"> | string
    operatorName?: StringFilter<"InventoryLog"> | string
    scannedCode?: StringNullableFilter<"InventoryLog"> | string | null
    deviceInfo?: JsonNullableFilter<"InventoryLog">
    metadata?: JsonFilter<"InventoryLog">
    createdAt?: DateTimeFilter<"InventoryLog"> | Date | string
    part?: XOR<PartScalarRelationFilter, PartWhereInput>
  }, "id">

  export type InventoryLogOrderByWithAggregationInput = {
    id?: SortOrder
    partId?: SortOrder
    operationType?: SortOrder
    quantity?: SortOrder
    previousStock?: SortOrder
    newStock?: SortOrder
    station?: SortOrderInput | SortOrder
    warehouseLocation?: SortOrderInput | SortOrder
    reason?: SortOrderInput | SortOrder
    referenceType?: SortOrderInput | SortOrder
    referenceId?: SortOrderInput | SortOrder
    operatorId?: SortOrder
    operatorName?: SortOrder
    scannedCode?: SortOrderInput | SortOrder
    deviceInfo?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    _count?: InventoryLogCountOrderByAggregateInput
    _avg?: InventoryLogAvgOrderByAggregateInput
    _max?: InventoryLogMaxOrderByAggregateInput
    _min?: InventoryLogMinOrderByAggregateInput
    _sum?: InventoryLogSumOrderByAggregateInput
  }

  export type InventoryLogScalarWhereWithAggregatesInput = {
    AND?: InventoryLogScalarWhereWithAggregatesInput | InventoryLogScalarWhereWithAggregatesInput[]
    OR?: InventoryLogScalarWhereWithAggregatesInput[]
    NOT?: InventoryLogScalarWhereWithAggregatesInput | InventoryLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"InventoryLog"> | string
    partId?: UuidWithAggregatesFilter<"InventoryLog"> | string
    operationType?: EnumInventoryOperationTypeWithAggregatesFilter<"InventoryLog"> | $Enums.InventoryOperationType
    quantity?: IntWithAggregatesFilter<"InventoryLog"> | number
    previousStock?: IntWithAggregatesFilter<"InventoryLog"> | number
    newStock?: IntWithAggregatesFilter<"InventoryLog"> | number
    station?: StringNullableWithAggregatesFilter<"InventoryLog"> | string | null
    warehouseLocation?: StringNullableWithAggregatesFilter<"InventoryLog"> | string | null
    reason?: StringNullableWithAggregatesFilter<"InventoryLog"> | string | null
    referenceType?: StringNullableWithAggregatesFilter<"InventoryLog"> | string | null
    referenceId?: UuidNullableWithAggregatesFilter<"InventoryLog"> | string | null
    operatorId?: UuidWithAggregatesFilter<"InventoryLog"> | string
    operatorName?: StringWithAggregatesFilter<"InventoryLog"> | string
    scannedCode?: StringNullableWithAggregatesFilter<"InventoryLog"> | string | null
    deviceInfo?: JsonNullableWithAggregatesFilter<"InventoryLog">
    metadata?: JsonWithAggregatesFilter<"InventoryLog">
    createdAt?: DateTimeWithAggregatesFilter<"InventoryLog"> | Date | string
  }

  export type StockAlertWhereInput = {
    AND?: StockAlertWhereInput | StockAlertWhereInput[]
    OR?: StockAlertWhereInput[]
    NOT?: StockAlertWhereInput | StockAlertWhereInput[]
    id?: UuidFilter<"StockAlert"> | string
    partId?: UuidFilter<"StockAlert"> | string
    alertType?: EnumStockAlertTypeFilter<"StockAlert"> | $Enums.StockAlertType
    severity?: EnumAlertSeverityFilter<"StockAlert"> | $Enums.AlertSeverity
    currentStock?: IntFilter<"StockAlert"> | number
    threshold?: IntFilter<"StockAlert"> | number
    message?: StringFilter<"StockAlert"> | string
    status?: EnumAlertStatusFilter<"StockAlert"> | $Enums.AlertStatus
    acknowledgedBy?: StringNullableFilter<"StockAlert"> | string | null
    acknowledgedAt?: DateTimeNullableFilter<"StockAlert"> | Date | string | null
    resolvedBy?: StringNullableFilter<"StockAlert"> | string | null
    resolvedAt?: DateTimeNullableFilter<"StockAlert"> | Date | string | null
    resolution?: StringNullableFilter<"StockAlert"> | string | null
    createdAt?: DateTimeFilter<"StockAlert"> | Date | string
    updatedAt?: DateTimeFilter<"StockAlert"> | Date | string
    part?: XOR<PartScalarRelationFilter, PartWhereInput>
  }

  export type StockAlertOrderByWithRelationInput = {
    id?: SortOrder
    partId?: SortOrder
    alertType?: SortOrder
    severity?: SortOrder
    currentStock?: SortOrder
    threshold?: SortOrder
    message?: SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrderInput | SortOrder
    acknowledgedAt?: SortOrderInput | SortOrder
    resolvedBy?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    resolution?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    part?: PartOrderByWithRelationInput
  }

  export type StockAlertWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: StockAlertWhereInput | StockAlertWhereInput[]
    OR?: StockAlertWhereInput[]
    NOT?: StockAlertWhereInput | StockAlertWhereInput[]
    partId?: UuidFilter<"StockAlert"> | string
    alertType?: EnumStockAlertTypeFilter<"StockAlert"> | $Enums.StockAlertType
    severity?: EnumAlertSeverityFilter<"StockAlert"> | $Enums.AlertSeverity
    currentStock?: IntFilter<"StockAlert"> | number
    threshold?: IntFilter<"StockAlert"> | number
    message?: StringFilter<"StockAlert"> | string
    status?: EnumAlertStatusFilter<"StockAlert"> | $Enums.AlertStatus
    acknowledgedBy?: StringNullableFilter<"StockAlert"> | string | null
    acknowledgedAt?: DateTimeNullableFilter<"StockAlert"> | Date | string | null
    resolvedBy?: StringNullableFilter<"StockAlert"> | string | null
    resolvedAt?: DateTimeNullableFilter<"StockAlert"> | Date | string | null
    resolution?: StringNullableFilter<"StockAlert"> | string | null
    createdAt?: DateTimeFilter<"StockAlert"> | Date | string
    updatedAt?: DateTimeFilter<"StockAlert"> | Date | string
    part?: XOR<PartScalarRelationFilter, PartWhereInput>
  }, "id">

  export type StockAlertOrderByWithAggregationInput = {
    id?: SortOrder
    partId?: SortOrder
    alertType?: SortOrder
    severity?: SortOrder
    currentStock?: SortOrder
    threshold?: SortOrder
    message?: SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrderInput | SortOrder
    acknowledgedAt?: SortOrderInput | SortOrder
    resolvedBy?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    resolution?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: StockAlertCountOrderByAggregateInput
    _avg?: StockAlertAvgOrderByAggregateInput
    _max?: StockAlertMaxOrderByAggregateInput
    _min?: StockAlertMinOrderByAggregateInput
    _sum?: StockAlertSumOrderByAggregateInput
  }

  export type StockAlertScalarWhereWithAggregatesInput = {
    AND?: StockAlertScalarWhereWithAggregatesInput | StockAlertScalarWhereWithAggregatesInput[]
    OR?: StockAlertScalarWhereWithAggregatesInput[]
    NOT?: StockAlertScalarWhereWithAggregatesInput | StockAlertScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"StockAlert"> | string
    partId?: UuidWithAggregatesFilter<"StockAlert"> | string
    alertType?: EnumStockAlertTypeWithAggregatesFilter<"StockAlert"> | $Enums.StockAlertType
    severity?: EnumAlertSeverityWithAggregatesFilter<"StockAlert"> | $Enums.AlertSeverity
    currentStock?: IntWithAggregatesFilter<"StockAlert"> | number
    threshold?: IntWithAggregatesFilter<"StockAlert"> | number
    message?: StringWithAggregatesFilter<"StockAlert"> | string
    status?: EnumAlertStatusWithAggregatesFilter<"StockAlert"> | $Enums.AlertStatus
    acknowledgedBy?: StringNullableWithAggregatesFilter<"StockAlert"> | string | null
    acknowledgedAt?: DateTimeNullableWithAggregatesFilter<"StockAlert"> | Date | string | null
    resolvedBy?: StringNullableWithAggregatesFilter<"StockAlert"> | string | null
    resolvedAt?: DateTimeNullableWithAggregatesFilter<"StockAlert"> | Date | string | null
    resolution?: StringNullableWithAggregatesFilter<"StockAlert"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"StockAlert"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"StockAlert"> | Date | string
  }

  export type InventoryImportLogWhereInput = {
    AND?: InventoryImportLogWhereInput | InventoryImportLogWhereInput[]
    OR?: InventoryImportLogWhereInput[]
    NOT?: InventoryImportLogWhereInput | InventoryImportLogWhereInput[]
    id?: UuidFilter<"InventoryImportLog"> | string
    fileName?: StringFilter<"InventoryImportLog"> | string
    fileSize?: IntFilter<"InventoryImportLog"> | number
    fileHash?: StringNullableFilter<"InventoryImportLog"> | string | null
    status?: EnumImportStatusFilter<"InventoryImportLog"> | $Enums.ImportStatus
    totalRows?: IntFilter<"InventoryImportLog"> | number
    successRows?: IntFilter<"InventoryImportLog"> | number
    failedRows?: IntFilter<"InventoryImportLog"> | number
    skippedRows?: IntFilter<"InventoryImportLog"> | number
    errors?: JsonNullableFilter<"InventoryImportLog">
    summary?: JsonNullableFilter<"InventoryImportLog">
    importedBy?: StringFilter<"InventoryImportLog"> | string
    importedAt?: DateTimeFilter<"InventoryImportLog"> | Date | string
    startedAt?: DateTimeNullableFilter<"InventoryImportLog"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"InventoryImportLog"> | Date | string | null
    metadata?: JsonFilter<"InventoryImportLog">
  }

  export type InventoryImportLogOrderByWithRelationInput = {
    id?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    fileHash?: SortOrderInput | SortOrder
    status?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    failedRows?: SortOrder
    skippedRows?: SortOrder
    errors?: SortOrderInput | SortOrder
    summary?: SortOrderInput | SortOrder
    importedBy?: SortOrder
    importedAt?: SortOrder
    startedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    metadata?: SortOrder
  }

  export type InventoryImportLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: InventoryImportLogWhereInput | InventoryImportLogWhereInput[]
    OR?: InventoryImportLogWhereInput[]
    NOT?: InventoryImportLogWhereInput | InventoryImportLogWhereInput[]
    fileName?: StringFilter<"InventoryImportLog"> | string
    fileSize?: IntFilter<"InventoryImportLog"> | number
    fileHash?: StringNullableFilter<"InventoryImportLog"> | string | null
    status?: EnumImportStatusFilter<"InventoryImportLog"> | $Enums.ImportStatus
    totalRows?: IntFilter<"InventoryImportLog"> | number
    successRows?: IntFilter<"InventoryImportLog"> | number
    failedRows?: IntFilter<"InventoryImportLog"> | number
    skippedRows?: IntFilter<"InventoryImportLog"> | number
    errors?: JsonNullableFilter<"InventoryImportLog">
    summary?: JsonNullableFilter<"InventoryImportLog">
    importedBy?: StringFilter<"InventoryImportLog"> | string
    importedAt?: DateTimeFilter<"InventoryImportLog"> | Date | string
    startedAt?: DateTimeNullableFilter<"InventoryImportLog"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"InventoryImportLog"> | Date | string | null
    metadata?: JsonFilter<"InventoryImportLog">
  }, "id">

  export type InventoryImportLogOrderByWithAggregationInput = {
    id?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    fileHash?: SortOrderInput | SortOrder
    status?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    failedRows?: SortOrder
    skippedRows?: SortOrder
    errors?: SortOrderInput | SortOrder
    summary?: SortOrderInput | SortOrder
    importedBy?: SortOrder
    importedAt?: SortOrder
    startedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    metadata?: SortOrder
    _count?: InventoryImportLogCountOrderByAggregateInput
    _avg?: InventoryImportLogAvgOrderByAggregateInput
    _max?: InventoryImportLogMaxOrderByAggregateInput
    _min?: InventoryImportLogMinOrderByAggregateInput
    _sum?: InventoryImportLogSumOrderByAggregateInput
  }

  export type InventoryImportLogScalarWhereWithAggregatesInput = {
    AND?: InventoryImportLogScalarWhereWithAggregatesInput | InventoryImportLogScalarWhereWithAggregatesInput[]
    OR?: InventoryImportLogScalarWhereWithAggregatesInput[]
    NOT?: InventoryImportLogScalarWhereWithAggregatesInput | InventoryImportLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"InventoryImportLog"> | string
    fileName?: StringWithAggregatesFilter<"InventoryImportLog"> | string
    fileSize?: IntWithAggregatesFilter<"InventoryImportLog"> | number
    fileHash?: StringNullableWithAggregatesFilter<"InventoryImportLog"> | string | null
    status?: EnumImportStatusWithAggregatesFilter<"InventoryImportLog"> | $Enums.ImportStatus
    totalRows?: IntWithAggregatesFilter<"InventoryImportLog"> | number
    successRows?: IntWithAggregatesFilter<"InventoryImportLog"> | number
    failedRows?: IntWithAggregatesFilter<"InventoryImportLog"> | number
    skippedRows?: IntWithAggregatesFilter<"InventoryImportLog"> | number
    errors?: JsonNullableWithAggregatesFilter<"InventoryImportLog">
    summary?: JsonNullableWithAggregatesFilter<"InventoryImportLog">
    importedBy?: StringWithAggregatesFilter<"InventoryImportLog"> | string
    importedAt?: DateTimeWithAggregatesFilter<"InventoryImportLog"> | Date | string
    startedAt?: DateTimeNullableWithAggregatesFilter<"InventoryImportLog"> | Date | string | null
    completedAt?: DateTimeNullableWithAggregatesFilter<"InventoryImportLog"> | Date | string | null
    metadata?: JsonWithAggregatesFilter<"InventoryImportLog">
  }

  export type PartColumnConfigWhereInput = {
    AND?: PartColumnConfigWhereInput | PartColumnConfigWhereInput[]
    OR?: PartColumnConfigWhereInput[]
    NOT?: PartColumnConfigWhereInput | PartColumnConfigWhereInput[]
    id?: UuidFilter<"PartColumnConfig"> | string
    userId?: UuidNullableFilter<"PartColumnConfig"> | string | null
    name?: StringFilter<"PartColumnConfig"> | string
    description?: StringNullableFilter<"PartColumnConfig"> | string | null
    isDefault?: BoolFilter<"PartColumnConfig"> | boolean
    isTemplate?: BoolFilter<"PartColumnConfig"> | boolean
    columns?: JsonFilter<"PartColumnConfig">
    isPublic?: BoolFilter<"PartColumnConfig"> | boolean
    metadata?: JsonFilter<"PartColumnConfig">
    createdAt?: DateTimeFilter<"PartColumnConfig"> | Date | string
    updatedAt?: DateTimeFilter<"PartColumnConfig"> | Date | string
  }

  export type PartColumnConfigOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrderInput | SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    isDefault?: SortOrder
    isTemplate?: SortOrder
    columns?: SortOrder
    isPublic?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PartColumnConfigWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: PartColumnConfigWhereInput | PartColumnConfigWhereInput[]
    OR?: PartColumnConfigWhereInput[]
    NOT?: PartColumnConfigWhereInput | PartColumnConfigWhereInput[]
    userId?: UuidNullableFilter<"PartColumnConfig"> | string | null
    name?: StringFilter<"PartColumnConfig"> | string
    description?: StringNullableFilter<"PartColumnConfig"> | string | null
    isDefault?: BoolFilter<"PartColumnConfig"> | boolean
    isTemplate?: BoolFilter<"PartColumnConfig"> | boolean
    columns?: JsonFilter<"PartColumnConfig">
    isPublic?: BoolFilter<"PartColumnConfig"> | boolean
    metadata?: JsonFilter<"PartColumnConfig">
    createdAt?: DateTimeFilter<"PartColumnConfig"> | Date | string
    updatedAt?: DateTimeFilter<"PartColumnConfig"> | Date | string
  }, "id">

  export type PartColumnConfigOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrderInput | SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    isDefault?: SortOrder
    isTemplate?: SortOrder
    columns?: SortOrder
    isPublic?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: PartColumnConfigCountOrderByAggregateInput
    _max?: PartColumnConfigMaxOrderByAggregateInput
    _min?: PartColumnConfigMinOrderByAggregateInput
  }

  export type PartColumnConfigScalarWhereWithAggregatesInput = {
    AND?: PartColumnConfigScalarWhereWithAggregatesInput | PartColumnConfigScalarWhereWithAggregatesInput[]
    OR?: PartColumnConfigScalarWhereWithAggregatesInput[]
    NOT?: PartColumnConfigScalarWhereWithAggregatesInput | PartColumnConfigScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PartColumnConfig"> | string
    userId?: UuidNullableWithAggregatesFilter<"PartColumnConfig"> | string | null
    name?: StringWithAggregatesFilter<"PartColumnConfig"> | string
    description?: StringNullableWithAggregatesFilter<"PartColumnConfig"> | string | null
    isDefault?: BoolWithAggregatesFilter<"PartColumnConfig"> | boolean
    isTemplate?: BoolWithAggregatesFilter<"PartColumnConfig"> | boolean
    columns?: JsonWithAggregatesFilter<"PartColumnConfig">
    isPublic?: BoolWithAggregatesFilter<"PartColumnConfig"> | boolean
    metadata?: JsonWithAggregatesFilter<"PartColumnConfig">
    createdAt?: DateTimeWithAggregatesFilter<"PartColumnConfig"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PartColumnConfig"> | Date | string
  }

  export type PartGroupWhereInput = {
    AND?: PartGroupWhereInput | PartGroupWhereInput[]
    OR?: PartGroupWhereInput[]
    NOT?: PartGroupWhereInput | PartGroupWhereInput[]
    id?: UuidFilter<"PartGroup"> | string
    name?: StringFilter<"PartGroup"> | string
    description?: StringNullableFilter<"PartGroup"> | string | null
    displayOrder?: IntFilter<"PartGroup"> | number
    isActive?: BoolFilter<"PartGroup"> | boolean
    partsCount?: IntFilter<"PartGroup"> | number
    fieldsCount?: IntFilter<"PartGroup"> | number
    createdBy?: UuidNullableFilter<"PartGroup"> | string | null
    createdAt?: DateTimeFilter<"PartGroup"> | Date | string
    updatedBy?: UuidNullableFilter<"PartGroup"> | string | null
    updatedAt?: DateTimeFilter<"PartGroup"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PartGroup"> | Date | string | null
    customFields?: GroupCustomFieldListRelationFilter
    parts?: PartGroupRelationListRelationFilter
  }

  export type PartGroupOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    displayOrder?: SortOrder
    isActive?: SortOrder
    partsCount?: SortOrder
    fieldsCount?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    customFields?: GroupCustomFieldOrderByRelationAggregateInput
    parts?: PartGroupRelationOrderByRelationAggregateInput
  }

  export type PartGroupWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    name?: string
    AND?: PartGroupWhereInput | PartGroupWhereInput[]
    OR?: PartGroupWhereInput[]
    NOT?: PartGroupWhereInput | PartGroupWhereInput[]
    description?: StringNullableFilter<"PartGroup"> | string | null
    displayOrder?: IntFilter<"PartGroup"> | number
    isActive?: BoolFilter<"PartGroup"> | boolean
    partsCount?: IntFilter<"PartGroup"> | number
    fieldsCount?: IntFilter<"PartGroup"> | number
    createdBy?: UuidNullableFilter<"PartGroup"> | string | null
    createdAt?: DateTimeFilter<"PartGroup"> | Date | string
    updatedBy?: UuidNullableFilter<"PartGroup"> | string | null
    updatedAt?: DateTimeFilter<"PartGroup"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PartGroup"> | Date | string | null
    customFields?: GroupCustomFieldListRelationFilter
    parts?: PartGroupRelationListRelationFilter
  }, "id" | "name">

  export type PartGroupOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    displayOrder?: SortOrder
    isActive?: SortOrder
    partsCount?: SortOrder
    fieldsCount?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: PartGroupCountOrderByAggregateInput
    _avg?: PartGroupAvgOrderByAggregateInput
    _max?: PartGroupMaxOrderByAggregateInput
    _min?: PartGroupMinOrderByAggregateInput
    _sum?: PartGroupSumOrderByAggregateInput
  }

  export type PartGroupScalarWhereWithAggregatesInput = {
    AND?: PartGroupScalarWhereWithAggregatesInput | PartGroupScalarWhereWithAggregatesInput[]
    OR?: PartGroupScalarWhereWithAggregatesInput[]
    NOT?: PartGroupScalarWhereWithAggregatesInput | PartGroupScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PartGroup"> | string
    name?: StringWithAggregatesFilter<"PartGroup"> | string
    description?: StringNullableWithAggregatesFilter<"PartGroup"> | string | null
    displayOrder?: IntWithAggregatesFilter<"PartGroup"> | number
    isActive?: BoolWithAggregatesFilter<"PartGroup"> | boolean
    partsCount?: IntWithAggregatesFilter<"PartGroup"> | number
    fieldsCount?: IntWithAggregatesFilter<"PartGroup"> | number
    createdBy?: UuidNullableWithAggregatesFilter<"PartGroup"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"PartGroup"> | Date | string
    updatedBy?: UuidNullableWithAggregatesFilter<"PartGroup"> | string | null
    updatedAt?: DateTimeWithAggregatesFilter<"PartGroup"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"PartGroup"> | Date | string | null
  }

  export type GroupCustomFieldWhereInput = {
    AND?: GroupCustomFieldWhereInput | GroupCustomFieldWhereInput[]
    OR?: GroupCustomFieldWhereInput[]
    NOT?: GroupCustomFieldWhereInput | GroupCustomFieldWhereInput[]
    id?: UuidFilter<"GroupCustomField"> | string
    groupId?: UuidFilter<"GroupCustomField"> | string
    key?: StringFilter<"GroupCustomField"> | string
    nameEn?: StringFilter<"GroupCustomField"> | string
    type?: EnumGroupFieldTypeFilter<"GroupCustomField"> | $Enums.GroupFieldType
    required?: BoolFilter<"GroupCustomField"> | boolean
    visible?: BoolFilter<"GroupCustomField"> | boolean
    editable?: BoolFilter<"GroupCustomField"> | boolean
    searchable?: BoolFilter<"GroupCustomField"> | boolean
    options?: JsonNullableFilter<"GroupCustomField">
    validation?: JsonNullableFilter<"GroupCustomField">
    description?: StringNullableFilter<"GroupCustomField"> | string | null
    placeholder?: StringNullableFilter<"GroupCustomField"> | string | null
    helpText?: StringNullableFilter<"GroupCustomField"> | string | null
    displayOrder?: IntFilter<"GroupCustomField"> | number
    createdBy?: UuidNullableFilter<"GroupCustomField"> | string | null
    createdAt?: DateTimeFilter<"GroupCustomField"> | Date | string
    updatedBy?: UuidNullableFilter<"GroupCustomField"> | string | null
    updatedAt?: DateTimeFilter<"GroupCustomField"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GroupCustomField"> | Date | string | null
    nameCn?: StringNullableFilter<"GroupCustomField"> | string | null
    group?: XOR<PartGroupScalarRelationFilter, PartGroupWhereInput>
  }

  export type GroupCustomFieldOrderByWithRelationInput = {
    id?: SortOrder
    groupId?: SortOrder
    key?: SortOrder
    nameEn?: SortOrder
    type?: SortOrder
    required?: SortOrder
    visible?: SortOrder
    editable?: SortOrder
    searchable?: SortOrder
    options?: SortOrderInput | SortOrder
    validation?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    placeholder?: SortOrderInput | SortOrder
    helpText?: SortOrderInput | SortOrder
    displayOrder?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    nameCn?: SortOrderInput | SortOrder
    group?: PartGroupOrderByWithRelationInput
  }

  export type GroupCustomFieldWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    groupId_key?: GroupCustomFieldGroupIdKeyCompoundUniqueInput
    AND?: GroupCustomFieldWhereInput | GroupCustomFieldWhereInput[]
    OR?: GroupCustomFieldWhereInput[]
    NOT?: GroupCustomFieldWhereInput | GroupCustomFieldWhereInput[]
    groupId?: UuidFilter<"GroupCustomField"> | string
    key?: StringFilter<"GroupCustomField"> | string
    nameEn?: StringFilter<"GroupCustomField"> | string
    type?: EnumGroupFieldTypeFilter<"GroupCustomField"> | $Enums.GroupFieldType
    required?: BoolFilter<"GroupCustomField"> | boolean
    visible?: BoolFilter<"GroupCustomField"> | boolean
    editable?: BoolFilter<"GroupCustomField"> | boolean
    searchable?: BoolFilter<"GroupCustomField"> | boolean
    options?: JsonNullableFilter<"GroupCustomField">
    validation?: JsonNullableFilter<"GroupCustomField">
    description?: StringNullableFilter<"GroupCustomField"> | string | null
    placeholder?: StringNullableFilter<"GroupCustomField"> | string | null
    helpText?: StringNullableFilter<"GroupCustomField"> | string | null
    displayOrder?: IntFilter<"GroupCustomField"> | number
    createdBy?: UuidNullableFilter<"GroupCustomField"> | string | null
    createdAt?: DateTimeFilter<"GroupCustomField"> | Date | string
    updatedBy?: UuidNullableFilter<"GroupCustomField"> | string | null
    updatedAt?: DateTimeFilter<"GroupCustomField"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GroupCustomField"> | Date | string | null
    nameCn?: StringNullableFilter<"GroupCustomField"> | string | null
    group?: XOR<PartGroupScalarRelationFilter, PartGroupWhereInput>
  }, "id" | "groupId_key">

  export type GroupCustomFieldOrderByWithAggregationInput = {
    id?: SortOrder
    groupId?: SortOrder
    key?: SortOrder
    nameEn?: SortOrder
    type?: SortOrder
    required?: SortOrder
    visible?: SortOrder
    editable?: SortOrder
    searchable?: SortOrder
    options?: SortOrderInput | SortOrder
    validation?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    placeholder?: SortOrderInput | SortOrder
    helpText?: SortOrderInput | SortOrder
    displayOrder?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    nameCn?: SortOrderInput | SortOrder
    _count?: GroupCustomFieldCountOrderByAggregateInput
    _avg?: GroupCustomFieldAvgOrderByAggregateInput
    _max?: GroupCustomFieldMaxOrderByAggregateInput
    _min?: GroupCustomFieldMinOrderByAggregateInput
    _sum?: GroupCustomFieldSumOrderByAggregateInput
  }

  export type GroupCustomFieldScalarWhereWithAggregatesInput = {
    AND?: GroupCustomFieldScalarWhereWithAggregatesInput | GroupCustomFieldScalarWhereWithAggregatesInput[]
    OR?: GroupCustomFieldScalarWhereWithAggregatesInput[]
    NOT?: GroupCustomFieldScalarWhereWithAggregatesInput | GroupCustomFieldScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"GroupCustomField"> | string
    groupId?: UuidWithAggregatesFilter<"GroupCustomField"> | string
    key?: StringWithAggregatesFilter<"GroupCustomField"> | string
    nameEn?: StringWithAggregatesFilter<"GroupCustomField"> | string
    type?: EnumGroupFieldTypeWithAggregatesFilter<"GroupCustomField"> | $Enums.GroupFieldType
    required?: BoolWithAggregatesFilter<"GroupCustomField"> | boolean
    visible?: BoolWithAggregatesFilter<"GroupCustomField"> | boolean
    editable?: BoolWithAggregatesFilter<"GroupCustomField"> | boolean
    searchable?: BoolWithAggregatesFilter<"GroupCustomField"> | boolean
    options?: JsonNullableWithAggregatesFilter<"GroupCustomField">
    validation?: JsonNullableWithAggregatesFilter<"GroupCustomField">
    description?: StringNullableWithAggregatesFilter<"GroupCustomField"> | string | null
    placeholder?: StringNullableWithAggregatesFilter<"GroupCustomField"> | string | null
    helpText?: StringNullableWithAggregatesFilter<"GroupCustomField"> | string | null
    displayOrder?: IntWithAggregatesFilter<"GroupCustomField"> | number
    createdBy?: UuidNullableWithAggregatesFilter<"GroupCustomField"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"GroupCustomField"> | Date | string
    updatedBy?: UuidNullableWithAggregatesFilter<"GroupCustomField"> | string | null
    updatedAt?: DateTimeWithAggregatesFilter<"GroupCustomField"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"GroupCustomField"> | Date | string | null
    nameCn?: StringNullableWithAggregatesFilter<"GroupCustomField"> | string | null
  }

  export type PartGroupRelationWhereInput = {
    AND?: PartGroupRelationWhereInput | PartGroupRelationWhereInput[]
    OR?: PartGroupRelationWhereInput[]
    NOT?: PartGroupRelationWhereInput | PartGroupRelationWhereInput[]
    partId?: UuidFilter<"PartGroupRelation"> | string
    groupId?: UuidFilter<"PartGroupRelation"> | string
    createdAt?: DateTimeFilter<"PartGroupRelation"> | Date | string
    createdBy?: UuidNullableFilter<"PartGroupRelation"> | string | null
    group?: XOR<PartGroupScalarRelationFilter, PartGroupWhereInput>
    part?: XOR<PartScalarRelationFilter, PartWhereInput>
  }

  export type PartGroupRelationOrderByWithRelationInput = {
    partId?: SortOrder
    groupId?: SortOrder
    createdAt?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    group?: PartGroupOrderByWithRelationInput
    part?: PartOrderByWithRelationInput
  }

  export type PartGroupRelationWhereUniqueInput = Prisma.AtLeast<{
    partId_groupId?: PartGroupRelationPartIdGroupIdCompoundUniqueInput
    AND?: PartGroupRelationWhereInput | PartGroupRelationWhereInput[]
    OR?: PartGroupRelationWhereInput[]
    NOT?: PartGroupRelationWhereInput | PartGroupRelationWhereInput[]
    partId?: UuidFilter<"PartGroupRelation"> | string
    groupId?: UuidFilter<"PartGroupRelation"> | string
    createdAt?: DateTimeFilter<"PartGroupRelation"> | Date | string
    createdBy?: UuidNullableFilter<"PartGroupRelation"> | string | null
    group?: XOR<PartGroupScalarRelationFilter, PartGroupWhereInput>
    part?: XOR<PartScalarRelationFilter, PartWhereInput>
  }, "partId_groupId">

  export type PartGroupRelationOrderByWithAggregationInput = {
    partId?: SortOrder
    groupId?: SortOrder
    createdAt?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    _count?: PartGroupRelationCountOrderByAggregateInput
    _max?: PartGroupRelationMaxOrderByAggregateInput
    _min?: PartGroupRelationMinOrderByAggregateInput
  }

  export type PartGroupRelationScalarWhereWithAggregatesInput = {
    AND?: PartGroupRelationScalarWhereWithAggregatesInput | PartGroupRelationScalarWhereWithAggregatesInput[]
    OR?: PartGroupRelationScalarWhereWithAggregatesInput[]
    NOT?: PartGroupRelationScalarWhereWithAggregatesInput | PartGroupRelationScalarWhereWithAggregatesInput[]
    partId?: UuidWithAggregatesFilter<"PartGroupRelation"> | string
    groupId?: UuidWithAggregatesFilter<"PartGroupRelation"> | string
    createdAt?: DateTimeWithAggregatesFilter<"PartGroupRelation"> | Date | string
    createdBy?: UuidNullableWithAggregatesFilter<"PartGroupRelation"> | string | null
  }

  export type AIConversationWhereInput = {
    AND?: AIConversationWhereInput | AIConversationWhereInput[]
    OR?: AIConversationWhereInput[]
    NOT?: AIConversationWhereInput | AIConversationWhereInput[]
    id?: UuidFilter<"AIConversation"> | string
    userId?: UuidFilter<"AIConversation"> | string
    title?: StringNullableFilter<"AIConversation"> | string | null
    status?: EnumAIConversationStatusFilter<"AIConversation"> | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFilter<"AIConversation"> | $Enums.AIConversationCategory
    tags?: StringNullableListFilter<"AIConversation">
    createdAt?: DateTimeFilter<"AIConversation"> | Date | string
    updatedAt?: DateTimeFilter<"AIConversation"> | Date | string
    messages?: AIMessageListRelationFilter
    tickets?: AIAssistantTicketListRelationFilter
  }

  export type AIConversationOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    title?: SortOrderInput | SortOrder
    status?: SortOrder
    category?: SortOrder
    tags?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    messages?: AIMessageOrderByRelationAggregateInput
    tickets?: AIAssistantTicketOrderByRelationAggregateInput
  }

  export type AIConversationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AIConversationWhereInput | AIConversationWhereInput[]
    OR?: AIConversationWhereInput[]
    NOT?: AIConversationWhereInput | AIConversationWhereInput[]
    userId?: UuidFilter<"AIConversation"> | string
    title?: StringNullableFilter<"AIConversation"> | string | null
    status?: EnumAIConversationStatusFilter<"AIConversation"> | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFilter<"AIConversation"> | $Enums.AIConversationCategory
    tags?: StringNullableListFilter<"AIConversation">
    createdAt?: DateTimeFilter<"AIConversation"> | Date | string
    updatedAt?: DateTimeFilter<"AIConversation"> | Date | string
    messages?: AIMessageListRelationFilter
    tickets?: AIAssistantTicketListRelationFilter
  }, "id">

  export type AIConversationOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    title?: SortOrderInput | SortOrder
    status?: SortOrder
    category?: SortOrder
    tags?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AIConversationCountOrderByAggregateInput
    _max?: AIConversationMaxOrderByAggregateInput
    _min?: AIConversationMinOrderByAggregateInput
  }

  export type AIConversationScalarWhereWithAggregatesInput = {
    AND?: AIConversationScalarWhereWithAggregatesInput | AIConversationScalarWhereWithAggregatesInput[]
    OR?: AIConversationScalarWhereWithAggregatesInput[]
    NOT?: AIConversationScalarWhereWithAggregatesInput | AIConversationScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIConversation"> | string
    userId?: UuidWithAggregatesFilter<"AIConversation"> | string
    title?: StringNullableWithAggregatesFilter<"AIConversation"> | string | null
    status?: EnumAIConversationStatusWithAggregatesFilter<"AIConversation"> | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryWithAggregatesFilter<"AIConversation"> | $Enums.AIConversationCategory
    tags?: StringNullableListFilter<"AIConversation">
    createdAt?: DateTimeWithAggregatesFilter<"AIConversation"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AIConversation"> | Date | string
  }

  export type AIMessageWhereInput = {
    AND?: AIMessageWhereInput | AIMessageWhereInput[]
    OR?: AIMessageWhereInput[]
    NOT?: AIMessageWhereInput | AIMessageWhereInput[]
    id?: UuidFilter<"AIMessage"> | string
    conversationId?: UuidFilter<"AIMessage"> | string
    role?: EnumAIMessageRoleFilter<"AIMessage"> | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFilter<"AIMessage"> | $Enums.AIMessageSource
    content?: StringFilter<"AIMessage"> | string
    tokens?: IntNullableFilter<"AIMessage"> | number | null
    metadata?: JsonNullableFilter<"AIMessage">
    createdAt?: DateTimeFilter<"AIMessage"> | Date | string
    conversation?: XOR<AIConversationScalarRelationFilter, AIConversationWhereInput>
    feedback?: XOR<AIMessageFeedbackNullableScalarRelationFilter, AIMessageFeedbackWhereInput> | null
    knowledgeFix?: XOR<AIKnowledgeFixNullableScalarRelationFilter, AIKnowledgeFixWhereInput> | null
  }

  export type AIMessageOrderByWithRelationInput = {
    id?: SortOrder
    conversationId?: SortOrder
    role?: SortOrder
    source?: SortOrder
    content?: SortOrder
    tokens?: SortOrderInput | SortOrder
    metadata?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    conversation?: AIConversationOrderByWithRelationInput
    feedback?: AIMessageFeedbackOrderByWithRelationInput
    knowledgeFix?: AIKnowledgeFixOrderByWithRelationInput
  }

  export type AIMessageWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AIMessageWhereInput | AIMessageWhereInput[]
    OR?: AIMessageWhereInput[]
    NOT?: AIMessageWhereInput | AIMessageWhereInput[]
    conversationId?: UuidFilter<"AIMessage"> | string
    role?: EnumAIMessageRoleFilter<"AIMessage"> | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFilter<"AIMessage"> | $Enums.AIMessageSource
    content?: StringFilter<"AIMessage"> | string
    tokens?: IntNullableFilter<"AIMessage"> | number | null
    metadata?: JsonNullableFilter<"AIMessage">
    createdAt?: DateTimeFilter<"AIMessage"> | Date | string
    conversation?: XOR<AIConversationScalarRelationFilter, AIConversationWhereInput>
    feedback?: XOR<AIMessageFeedbackNullableScalarRelationFilter, AIMessageFeedbackWhereInput> | null
    knowledgeFix?: XOR<AIKnowledgeFixNullableScalarRelationFilter, AIKnowledgeFixWhereInput> | null
  }, "id">

  export type AIMessageOrderByWithAggregationInput = {
    id?: SortOrder
    conversationId?: SortOrder
    role?: SortOrder
    source?: SortOrder
    content?: SortOrder
    tokens?: SortOrderInput | SortOrder
    metadata?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: AIMessageCountOrderByAggregateInput
    _avg?: AIMessageAvgOrderByAggregateInput
    _max?: AIMessageMaxOrderByAggregateInput
    _min?: AIMessageMinOrderByAggregateInput
    _sum?: AIMessageSumOrderByAggregateInput
  }

  export type AIMessageScalarWhereWithAggregatesInput = {
    AND?: AIMessageScalarWhereWithAggregatesInput | AIMessageScalarWhereWithAggregatesInput[]
    OR?: AIMessageScalarWhereWithAggregatesInput[]
    NOT?: AIMessageScalarWhereWithAggregatesInput | AIMessageScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIMessage"> | string
    conversationId?: UuidWithAggregatesFilter<"AIMessage"> | string
    role?: EnumAIMessageRoleWithAggregatesFilter<"AIMessage"> | $Enums.AIMessageRole
    source?: EnumAIMessageSourceWithAggregatesFilter<"AIMessage"> | $Enums.AIMessageSource
    content?: StringWithAggregatesFilter<"AIMessage"> | string
    tokens?: IntNullableWithAggregatesFilter<"AIMessage"> | number | null
    metadata?: JsonNullableWithAggregatesFilter<"AIMessage">
    createdAt?: DateTimeWithAggregatesFilter<"AIMessage"> | Date | string
  }

  export type AIMessageFeedbackWhereInput = {
    AND?: AIMessageFeedbackWhereInput | AIMessageFeedbackWhereInput[]
    OR?: AIMessageFeedbackWhereInput[]
    NOT?: AIMessageFeedbackWhereInput | AIMessageFeedbackWhereInput[]
    id?: UuidFilter<"AIMessageFeedback"> | string
    messageId?: UuidFilter<"AIMessageFeedback"> | string
    type?: EnumAIFeedbackTypeFilter<"AIMessageFeedback"> | $Enums.AIFeedbackType
    comment?: StringNullableFilter<"AIMessageFeedback"> | string | null
    createdAt?: DateTimeFilter<"AIMessageFeedback"> | Date | string
    message?: XOR<AIMessageScalarRelationFilter, AIMessageWhereInput>
  }

  export type AIMessageFeedbackOrderByWithRelationInput = {
    id?: SortOrder
    messageId?: SortOrder
    type?: SortOrder
    comment?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    message?: AIMessageOrderByWithRelationInput
  }

  export type AIMessageFeedbackWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    messageId?: string
    AND?: AIMessageFeedbackWhereInput | AIMessageFeedbackWhereInput[]
    OR?: AIMessageFeedbackWhereInput[]
    NOT?: AIMessageFeedbackWhereInput | AIMessageFeedbackWhereInput[]
    type?: EnumAIFeedbackTypeFilter<"AIMessageFeedback"> | $Enums.AIFeedbackType
    comment?: StringNullableFilter<"AIMessageFeedback"> | string | null
    createdAt?: DateTimeFilter<"AIMessageFeedback"> | Date | string
    message?: XOR<AIMessageScalarRelationFilter, AIMessageWhereInput>
  }, "id" | "messageId">

  export type AIMessageFeedbackOrderByWithAggregationInput = {
    id?: SortOrder
    messageId?: SortOrder
    type?: SortOrder
    comment?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: AIMessageFeedbackCountOrderByAggregateInput
    _max?: AIMessageFeedbackMaxOrderByAggregateInput
    _min?: AIMessageFeedbackMinOrderByAggregateInput
  }

  export type AIMessageFeedbackScalarWhereWithAggregatesInput = {
    AND?: AIMessageFeedbackScalarWhereWithAggregatesInput | AIMessageFeedbackScalarWhereWithAggregatesInput[]
    OR?: AIMessageFeedbackScalarWhereWithAggregatesInput[]
    NOT?: AIMessageFeedbackScalarWhereWithAggregatesInput | AIMessageFeedbackScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIMessageFeedback"> | string
    messageId?: UuidWithAggregatesFilter<"AIMessageFeedback"> | string
    type?: EnumAIFeedbackTypeWithAggregatesFilter<"AIMessageFeedback"> | $Enums.AIFeedbackType
    comment?: StringNullableWithAggregatesFilter<"AIMessageFeedback"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AIMessageFeedback"> | Date | string
  }

  export type AIAssistantTicketWhereInput = {
    AND?: AIAssistantTicketWhereInput | AIAssistantTicketWhereInput[]
    OR?: AIAssistantTicketWhereInput[]
    NOT?: AIAssistantTicketWhereInput | AIAssistantTicketWhereInput[]
    id?: UuidFilter<"AIAssistantTicket"> | string
    conversationId?: UuidFilter<"AIAssistantTicket"> | string
    category?: EnumAITicketCategoryFilter<"AIAssistantTicket"> | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFilter<"AIAssistantTicket"> | $Enums.AITicketPriority
    status?: EnumAITicketStatusFilter<"AIAssistantTicket"> | $Enums.AITicketStatus
    title?: StringFilter<"AIAssistantTicket"> | string
    description?: StringFilter<"AIAssistantTicket"> | string
    assigneeId?: UuidNullableFilter<"AIAssistantTicket"> | string | null
    assigneeTeam?: EnumAIAssigneeTeamNullableFilter<"AIAssistantTicket"> | $Enums.AIAssigneeTeam | null
    assignedAt?: DateTimeNullableFilter<"AIAssistantTicket"> | Date | string | null
    resolvedAt?: DateTimeNullableFilter<"AIAssistantTicket"> | Date | string | null
    resolution?: StringNullableFilter<"AIAssistantTicket"> | string | null
    externalTicketId?: StringNullableFilter<"AIAssistantTicket"> | string | null
    createdAt?: DateTimeFilter<"AIAssistantTicket"> | Date | string
    updatedAt?: DateTimeFilter<"AIAssistantTicket"> | Date | string
    conversation?: XOR<AIConversationScalarRelationFilter, AIConversationWhereInput>
  }

  export type AIAssistantTicketOrderByWithRelationInput = {
    id?: SortOrder
    conversationId?: SortOrder
    category?: SortOrder
    priority?: SortOrder
    status?: SortOrder
    title?: SortOrder
    description?: SortOrder
    assigneeId?: SortOrderInput | SortOrder
    assigneeTeam?: SortOrderInput | SortOrder
    assignedAt?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    resolution?: SortOrderInput | SortOrder
    externalTicketId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    conversation?: AIConversationOrderByWithRelationInput
  }

  export type AIAssistantTicketWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AIAssistantTicketWhereInput | AIAssistantTicketWhereInput[]
    OR?: AIAssistantTicketWhereInput[]
    NOT?: AIAssistantTicketWhereInput | AIAssistantTicketWhereInput[]
    conversationId?: UuidFilter<"AIAssistantTicket"> | string
    category?: EnumAITicketCategoryFilter<"AIAssistantTicket"> | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFilter<"AIAssistantTicket"> | $Enums.AITicketPriority
    status?: EnumAITicketStatusFilter<"AIAssistantTicket"> | $Enums.AITicketStatus
    title?: StringFilter<"AIAssistantTicket"> | string
    description?: StringFilter<"AIAssistantTicket"> | string
    assigneeId?: UuidNullableFilter<"AIAssistantTicket"> | string | null
    assigneeTeam?: EnumAIAssigneeTeamNullableFilter<"AIAssistantTicket"> | $Enums.AIAssigneeTeam | null
    assignedAt?: DateTimeNullableFilter<"AIAssistantTicket"> | Date | string | null
    resolvedAt?: DateTimeNullableFilter<"AIAssistantTicket"> | Date | string | null
    resolution?: StringNullableFilter<"AIAssistantTicket"> | string | null
    externalTicketId?: StringNullableFilter<"AIAssistantTicket"> | string | null
    createdAt?: DateTimeFilter<"AIAssistantTicket"> | Date | string
    updatedAt?: DateTimeFilter<"AIAssistantTicket"> | Date | string
    conversation?: XOR<AIConversationScalarRelationFilter, AIConversationWhereInput>
  }, "id">

  export type AIAssistantTicketOrderByWithAggregationInput = {
    id?: SortOrder
    conversationId?: SortOrder
    category?: SortOrder
    priority?: SortOrder
    status?: SortOrder
    title?: SortOrder
    description?: SortOrder
    assigneeId?: SortOrderInput | SortOrder
    assigneeTeam?: SortOrderInput | SortOrder
    assignedAt?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    resolution?: SortOrderInput | SortOrder
    externalTicketId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AIAssistantTicketCountOrderByAggregateInput
    _max?: AIAssistantTicketMaxOrderByAggregateInput
    _min?: AIAssistantTicketMinOrderByAggregateInput
  }

  export type AIAssistantTicketScalarWhereWithAggregatesInput = {
    AND?: AIAssistantTicketScalarWhereWithAggregatesInput | AIAssistantTicketScalarWhereWithAggregatesInput[]
    OR?: AIAssistantTicketScalarWhereWithAggregatesInput[]
    NOT?: AIAssistantTicketScalarWhereWithAggregatesInput | AIAssistantTicketScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIAssistantTicket"> | string
    conversationId?: UuidWithAggregatesFilter<"AIAssistantTicket"> | string
    category?: EnumAITicketCategoryWithAggregatesFilter<"AIAssistantTicket"> | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityWithAggregatesFilter<"AIAssistantTicket"> | $Enums.AITicketPriority
    status?: EnumAITicketStatusWithAggregatesFilter<"AIAssistantTicket"> | $Enums.AITicketStatus
    title?: StringWithAggregatesFilter<"AIAssistantTicket"> | string
    description?: StringWithAggregatesFilter<"AIAssistantTicket"> | string
    assigneeId?: UuidNullableWithAggregatesFilter<"AIAssistantTicket"> | string | null
    assigneeTeam?: EnumAIAssigneeTeamNullableWithAggregatesFilter<"AIAssistantTicket"> | $Enums.AIAssigneeTeam | null
    assignedAt?: DateTimeNullableWithAggregatesFilter<"AIAssistantTicket"> | Date | string | null
    resolvedAt?: DateTimeNullableWithAggregatesFilter<"AIAssistantTicket"> | Date | string | null
    resolution?: StringNullableWithAggregatesFilter<"AIAssistantTicket"> | string | null
    externalTicketId?: StringNullableWithAggregatesFilter<"AIAssistantTicket"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AIAssistantTicket"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AIAssistantTicket"> | Date | string
  }

  export type AIKnowledgeFixWhereInput = {
    AND?: AIKnowledgeFixWhereInput | AIKnowledgeFixWhereInput[]
    OR?: AIKnowledgeFixWhereInput[]
    NOT?: AIKnowledgeFixWhereInput | AIKnowledgeFixWhereInput[]
    id?: UuidFilter<"AIKnowledgeFix"> | string
    messageId?: UuidFilter<"AIKnowledgeFix"> | string
    correctAnswer?: StringFilter<"AIKnowledgeFix"> | string
    contributorId?: UuidFilter<"AIKnowledgeFix"> | string
    status?: EnumAIKnowledgeFixStatusFilter<"AIKnowledgeFix"> | $Enums.AIKnowledgeFixStatus
    reviewerId?: UuidNullableFilter<"AIKnowledgeFix"> | string | null
    reviewNote?: StringNullableFilter<"AIKnowledgeFix"> | string | null
    createdAt?: DateTimeFilter<"AIKnowledgeFix"> | Date | string
    reviewedAt?: DateTimeNullableFilter<"AIKnowledgeFix"> | Date | string | null
    message?: XOR<AIMessageScalarRelationFilter, AIMessageWhereInput>
  }

  export type AIKnowledgeFixOrderByWithRelationInput = {
    id?: SortOrder
    messageId?: SortOrder
    correctAnswer?: SortOrder
    contributorId?: SortOrder
    status?: SortOrder
    reviewerId?: SortOrderInput | SortOrder
    reviewNote?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    reviewedAt?: SortOrderInput | SortOrder
    message?: AIMessageOrderByWithRelationInput
  }

  export type AIKnowledgeFixWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    messageId?: string
    AND?: AIKnowledgeFixWhereInput | AIKnowledgeFixWhereInput[]
    OR?: AIKnowledgeFixWhereInput[]
    NOT?: AIKnowledgeFixWhereInput | AIKnowledgeFixWhereInput[]
    correctAnswer?: StringFilter<"AIKnowledgeFix"> | string
    contributorId?: UuidFilter<"AIKnowledgeFix"> | string
    status?: EnumAIKnowledgeFixStatusFilter<"AIKnowledgeFix"> | $Enums.AIKnowledgeFixStatus
    reviewerId?: UuidNullableFilter<"AIKnowledgeFix"> | string | null
    reviewNote?: StringNullableFilter<"AIKnowledgeFix"> | string | null
    createdAt?: DateTimeFilter<"AIKnowledgeFix"> | Date | string
    reviewedAt?: DateTimeNullableFilter<"AIKnowledgeFix"> | Date | string | null
    message?: XOR<AIMessageScalarRelationFilter, AIMessageWhereInput>
  }, "id" | "messageId">

  export type AIKnowledgeFixOrderByWithAggregationInput = {
    id?: SortOrder
    messageId?: SortOrder
    correctAnswer?: SortOrder
    contributorId?: SortOrder
    status?: SortOrder
    reviewerId?: SortOrderInput | SortOrder
    reviewNote?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    reviewedAt?: SortOrderInput | SortOrder
    _count?: AIKnowledgeFixCountOrderByAggregateInput
    _max?: AIKnowledgeFixMaxOrderByAggregateInput
    _min?: AIKnowledgeFixMinOrderByAggregateInput
  }

  export type AIKnowledgeFixScalarWhereWithAggregatesInput = {
    AND?: AIKnowledgeFixScalarWhereWithAggregatesInput | AIKnowledgeFixScalarWhereWithAggregatesInput[]
    OR?: AIKnowledgeFixScalarWhereWithAggregatesInput[]
    NOT?: AIKnowledgeFixScalarWhereWithAggregatesInput | AIKnowledgeFixScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIKnowledgeFix"> | string
    messageId?: UuidWithAggregatesFilter<"AIKnowledgeFix"> | string
    correctAnswer?: StringWithAggregatesFilter<"AIKnowledgeFix"> | string
    contributorId?: UuidWithAggregatesFilter<"AIKnowledgeFix"> | string
    status?: EnumAIKnowledgeFixStatusWithAggregatesFilter<"AIKnowledgeFix"> | $Enums.AIKnowledgeFixStatus
    reviewerId?: UuidNullableWithAggregatesFilter<"AIKnowledgeFix"> | string | null
    reviewNote?: StringNullableWithAggregatesFilter<"AIKnowledgeFix"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AIKnowledgeFix"> | Date | string
    reviewedAt?: DateTimeNullableWithAggregatesFilter<"AIKnowledgeFix"> | Date | string | null
  }

  export type AIPromptTemplateWhereInput = {
    AND?: AIPromptTemplateWhereInput | AIPromptTemplateWhereInput[]
    OR?: AIPromptTemplateWhereInput[]
    NOT?: AIPromptTemplateWhereInput | AIPromptTemplateWhereInput[]
    id?: UuidFilter<"AIPromptTemplate"> | string
    name?: StringFilter<"AIPromptTemplate"> | string
    category?: EnumAIConversationCategoryFilter<"AIPromptTemplate"> | $Enums.AIConversationCategory
    content?: StringFilter<"AIPromptTemplate"> | string
    version?: IntFilter<"AIPromptTemplate"> | number
    isActive?: BoolFilter<"AIPromptTemplate"> | boolean
    createdBy?: UuidFilter<"AIPromptTemplate"> | string
    createdAt?: DateTimeFilter<"AIPromptTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"AIPromptTemplate"> | Date | string
  }

  export type AIPromptTemplateOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    category?: SortOrder
    content?: SortOrder
    version?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIPromptTemplateWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    category_version?: AIPromptTemplateCategoryVersionCompoundUniqueInput
    AND?: AIPromptTemplateWhereInput | AIPromptTemplateWhereInput[]
    OR?: AIPromptTemplateWhereInput[]
    NOT?: AIPromptTemplateWhereInput | AIPromptTemplateWhereInput[]
    name?: StringFilter<"AIPromptTemplate"> | string
    category?: EnumAIConversationCategoryFilter<"AIPromptTemplate"> | $Enums.AIConversationCategory
    content?: StringFilter<"AIPromptTemplate"> | string
    version?: IntFilter<"AIPromptTemplate"> | number
    isActive?: BoolFilter<"AIPromptTemplate"> | boolean
    createdBy?: UuidFilter<"AIPromptTemplate"> | string
    createdAt?: DateTimeFilter<"AIPromptTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"AIPromptTemplate"> | Date | string
  }, "id" | "category_version">

  export type AIPromptTemplateOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    category?: SortOrder
    content?: SortOrder
    version?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AIPromptTemplateCountOrderByAggregateInput
    _avg?: AIPromptTemplateAvgOrderByAggregateInput
    _max?: AIPromptTemplateMaxOrderByAggregateInput
    _min?: AIPromptTemplateMinOrderByAggregateInput
    _sum?: AIPromptTemplateSumOrderByAggregateInput
  }

  export type AIPromptTemplateScalarWhereWithAggregatesInput = {
    AND?: AIPromptTemplateScalarWhereWithAggregatesInput | AIPromptTemplateScalarWhereWithAggregatesInput[]
    OR?: AIPromptTemplateScalarWhereWithAggregatesInput[]
    NOT?: AIPromptTemplateScalarWhereWithAggregatesInput | AIPromptTemplateScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIPromptTemplate"> | string
    name?: StringWithAggregatesFilter<"AIPromptTemplate"> | string
    category?: EnumAIConversationCategoryWithAggregatesFilter<"AIPromptTemplate"> | $Enums.AIConversationCategory
    content?: StringWithAggregatesFilter<"AIPromptTemplate"> | string
    version?: IntWithAggregatesFilter<"AIPromptTemplate"> | number
    isActive?: BoolWithAggregatesFilter<"AIPromptTemplate"> | boolean
    createdBy?: UuidWithAggregatesFilter<"AIPromptTemplate"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AIPromptTemplate"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AIPromptTemplate"> | Date | string
  }

  export type AIConfigurationWhereInput = {
    AND?: AIConfigurationWhereInput | AIConfigurationWhereInput[]
    OR?: AIConfigurationWhereInput[]
    NOT?: AIConfigurationWhereInput | AIConfigurationWhereInput[]
    id?: UuidFilter<"AIConfiguration"> | string
    key?: StringFilter<"AIConfiguration"> | string
    value?: StringFilter<"AIConfiguration"> | string
    category?: StringFilter<"AIConfiguration"> | string
    isActive?: BoolFilter<"AIConfiguration"> | boolean
    createdAt?: DateTimeFilter<"AIConfiguration"> | Date | string
    updatedAt?: DateTimeFilter<"AIConfiguration"> | Date | string
  }

  export type AIConfigurationOrderByWithRelationInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    category?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIConfigurationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    key_category?: AIConfigurationKeyCategoryCompoundUniqueInput
    AND?: AIConfigurationWhereInput | AIConfigurationWhereInput[]
    OR?: AIConfigurationWhereInput[]
    NOT?: AIConfigurationWhereInput | AIConfigurationWhereInput[]
    key?: StringFilter<"AIConfiguration"> | string
    value?: StringFilter<"AIConfiguration"> | string
    category?: StringFilter<"AIConfiguration"> | string
    isActive?: BoolFilter<"AIConfiguration"> | boolean
    createdAt?: DateTimeFilter<"AIConfiguration"> | Date | string
    updatedAt?: DateTimeFilter<"AIConfiguration"> | Date | string
  }, "id" | "key_category">

  export type AIConfigurationOrderByWithAggregationInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    category?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AIConfigurationCountOrderByAggregateInput
    _max?: AIConfigurationMaxOrderByAggregateInput
    _min?: AIConfigurationMinOrderByAggregateInput
  }

  export type AIConfigurationScalarWhereWithAggregatesInput = {
    AND?: AIConfigurationScalarWhereWithAggregatesInput | AIConfigurationScalarWhereWithAggregatesInput[]
    OR?: AIConfigurationScalarWhereWithAggregatesInput[]
    NOT?: AIConfigurationScalarWhereWithAggregatesInput | AIConfigurationScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIConfiguration"> | string
    key?: StringWithAggregatesFilter<"AIConfiguration"> | string
    value?: StringWithAggregatesFilter<"AIConfiguration"> | string
    category?: StringWithAggregatesFilter<"AIConfiguration"> | string
    isActive?: BoolWithAggregatesFilter<"AIConfiguration"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"AIConfiguration"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AIConfiguration"> | Date | string
  }

  export type AIUsageStatsWhereInput = {
    AND?: AIUsageStatsWhereInput | AIUsageStatsWhereInput[]
    OR?: AIUsageStatsWhereInput[]
    NOT?: AIUsageStatsWhereInput | AIUsageStatsWhereInput[]
    id?: UuidFilter<"AIUsageStats"> | string
    date?: DateTimeFilter<"AIUsageStats"> | Date | string
    category?: EnumAIConversationCategoryFilter<"AIUsageStats"> | $Enums.AIConversationCategory
    totalCalls?: IntFilter<"AIUsageStats"> | number
    successCalls?: IntFilter<"AIUsageStats"> | number
    failedCalls?: IntFilter<"AIUsageStats"> | number
    totalTokens?: IntFilter<"AIUsageStats"> | number
    avgTokensPerCall?: FloatFilter<"AIUsageStats"> | number
    avgResponseTime?: IntFilter<"AIUsageStats"> | number
    likesCount?: IntFilter<"AIUsageStats"> | number
    dislikesCount?: IntFilter<"AIUsageStats"> | number
    escalationCount?: IntFilter<"AIUsageStats"> | number
    createdAt?: DateTimeFilter<"AIUsageStats"> | Date | string
    updatedAt?: DateTimeFilter<"AIUsageStats"> | Date | string
  }

  export type AIUsageStatsOrderByWithRelationInput = {
    id?: SortOrder
    date?: SortOrder
    category?: SortOrder
    totalCalls?: SortOrder
    successCalls?: SortOrder
    failedCalls?: SortOrder
    totalTokens?: SortOrder
    avgTokensPerCall?: SortOrder
    avgResponseTime?: SortOrder
    likesCount?: SortOrder
    dislikesCount?: SortOrder
    escalationCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIUsageStatsWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    date_category?: AIUsageStatsDateCategoryCompoundUniqueInput
    AND?: AIUsageStatsWhereInput | AIUsageStatsWhereInput[]
    OR?: AIUsageStatsWhereInput[]
    NOT?: AIUsageStatsWhereInput | AIUsageStatsWhereInput[]
    date?: DateTimeFilter<"AIUsageStats"> | Date | string
    category?: EnumAIConversationCategoryFilter<"AIUsageStats"> | $Enums.AIConversationCategory
    totalCalls?: IntFilter<"AIUsageStats"> | number
    successCalls?: IntFilter<"AIUsageStats"> | number
    failedCalls?: IntFilter<"AIUsageStats"> | number
    totalTokens?: IntFilter<"AIUsageStats"> | number
    avgTokensPerCall?: FloatFilter<"AIUsageStats"> | number
    avgResponseTime?: IntFilter<"AIUsageStats"> | number
    likesCount?: IntFilter<"AIUsageStats"> | number
    dislikesCount?: IntFilter<"AIUsageStats"> | number
    escalationCount?: IntFilter<"AIUsageStats"> | number
    createdAt?: DateTimeFilter<"AIUsageStats"> | Date | string
    updatedAt?: DateTimeFilter<"AIUsageStats"> | Date | string
  }, "id" | "date_category">

  export type AIUsageStatsOrderByWithAggregationInput = {
    id?: SortOrder
    date?: SortOrder
    category?: SortOrder
    totalCalls?: SortOrder
    successCalls?: SortOrder
    failedCalls?: SortOrder
    totalTokens?: SortOrder
    avgTokensPerCall?: SortOrder
    avgResponseTime?: SortOrder
    likesCount?: SortOrder
    dislikesCount?: SortOrder
    escalationCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AIUsageStatsCountOrderByAggregateInput
    _avg?: AIUsageStatsAvgOrderByAggregateInput
    _max?: AIUsageStatsMaxOrderByAggregateInput
    _min?: AIUsageStatsMinOrderByAggregateInput
    _sum?: AIUsageStatsSumOrderByAggregateInput
  }

  export type AIUsageStatsScalarWhereWithAggregatesInput = {
    AND?: AIUsageStatsScalarWhereWithAggregatesInput | AIUsageStatsScalarWhereWithAggregatesInput[]
    OR?: AIUsageStatsScalarWhereWithAggregatesInput[]
    NOT?: AIUsageStatsScalarWhereWithAggregatesInput | AIUsageStatsScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIUsageStats"> | string
    date?: DateTimeWithAggregatesFilter<"AIUsageStats"> | Date | string
    category?: EnumAIConversationCategoryWithAggregatesFilter<"AIUsageStats"> | $Enums.AIConversationCategory
    totalCalls?: IntWithAggregatesFilter<"AIUsageStats"> | number
    successCalls?: IntWithAggregatesFilter<"AIUsageStats"> | number
    failedCalls?: IntWithAggregatesFilter<"AIUsageStats"> | number
    totalTokens?: IntWithAggregatesFilter<"AIUsageStats"> | number
    avgTokensPerCall?: FloatWithAggregatesFilter<"AIUsageStats"> | number
    avgResponseTime?: IntWithAggregatesFilter<"AIUsageStats"> | number
    likesCount?: IntWithAggregatesFilter<"AIUsageStats"> | number
    dislikesCount?: IntWithAggregatesFilter<"AIUsageStats"> | number
    escalationCount?: IntWithAggregatesFilter<"AIUsageStats"> | number
    createdAt?: DateTimeWithAggregatesFilter<"AIUsageStats"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AIUsageStats"> | Date | string
  }

  export type AgentSessionWhereInput = {
    AND?: AgentSessionWhereInput | AgentSessionWhereInput[]
    OR?: AgentSessionWhereInput[]
    NOT?: AgentSessionWhereInput | AgentSessionWhereInput[]
    id?: UuidFilter<"AgentSession"> | string
    organizationId?: UuidFilter<"AgentSession"> | string
    createdById?: UuidFilter<"AgentSession"> | string
    title?: StringNullableFilter<"AgentSession"> | string | null
    surface?: EnumAgentSurfaceFilter<"AgentSession"> | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFilter<"AgentSession"> | $Enums.AgentSessionStatus
    projectId?: UuidNullableFilter<"AgentSession"> | string | null
    personaId?: UuidNullableFilter<"AgentSession"> | string | null
    planMode?: EnumAgentPlanModeFilter<"AgentSession"> | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFilter<"AgentSession"> | $Enums.AgentPermissionMode
    parentSessionId?: UuidNullableFilter<"AgentSession"> | string | null
    closedAt?: DateTimeNullableFilter<"AgentSession"> | Date | string | null
    createdAt?: DateTimeFilter<"AgentSession"> | Date | string
    updatedAt?: DateTimeFilter<"AgentSession"> | Date | string
    messages?: AgentMessageListRelationFilter
    parent?: XOR<AgentSessionNullableScalarRelationFilter, AgentSessionWhereInput> | null
    children?: AgentSessionListRelationFilter
    crons?: AgentCronListRelationFilter
    persona?: XOR<AgentPersonaNullableScalarRelationFilter, AgentPersonaWhereInput> | null
  }

  export type AgentSessionOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    title?: SortOrderInput | SortOrder
    surface?: SortOrder
    status?: SortOrder
    projectId?: SortOrderInput | SortOrder
    personaId?: SortOrderInput | SortOrder
    planMode?: SortOrder
    permissionMode?: SortOrder
    parentSessionId?: SortOrderInput | SortOrder
    closedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    messages?: AgentMessageOrderByRelationAggregateInput
    parent?: AgentSessionOrderByWithRelationInput
    children?: AgentSessionOrderByRelationAggregateInput
    crons?: AgentCronOrderByRelationAggregateInput
    persona?: AgentPersonaOrderByWithRelationInput
  }

  export type AgentSessionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AgentSessionWhereInput | AgentSessionWhereInput[]
    OR?: AgentSessionWhereInput[]
    NOT?: AgentSessionWhereInput | AgentSessionWhereInput[]
    organizationId?: UuidFilter<"AgentSession"> | string
    createdById?: UuidFilter<"AgentSession"> | string
    title?: StringNullableFilter<"AgentSession"> | string | null
    surface?: EnumAgentSurfaceFilter<"AgentSession"> | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFilter<"AgentSession"> | $Enums.AgentSessionStatus
    projectId?: UuidNullableFilter<"AgentSession"> | string | null
    personaId?: UuidNullableFilter<"AgentSession"> | string | null
    planMode?: EnumAgentPlanModeFilter<"AgentSession"> | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFilter<"AgentSession"> | $Enums.AgentPermissionMode
    parentSessionId?: UuidNullableFilter<"AgentSession"> | string | null
    closedAt?: DateTimeNullableFilter<"AgentSession"> | Date | string | null
    createdAt?: DateTimeFilter<"AgentSession"> | Date | string
    updatedAt?: DateTimeFilter<"AgentSession"> | Date | string
    messages?: AgentMessageListRelationFilter
    parent?: XOR<AgentSessionNullableScalarRelationFilter, AgentSessionWhereInput> | null
    children?: AgentSessionListRelationFilter
    crons?: AgentCronListRelationFilter
    persona?: XOR<AgentPersonaNullableScalarRelationFilter, AgentPersonaWhereInput> | null
  }, "id">

  export type AgentSessionOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    title?: SortOrderInput | SortOrder
    surface?: SortOrder
    status?: SortOrder
    projectId?: SortOrderInput | SortOrder
    personaId?: SortOrderInput | SortOrder
    planMode?: SortOrder
    permissionMode?: SortOrder
    parentSessionId?: SortOrderInput | SortOrder
    closedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentSessionCountOrderByAggregateInput
    _max?: AgentSessionMaxOrderByAggregateInput
    _min?: AgentSessionMinOrderByAggregateInput
  }

  export type AgentSessionScalarWhereWithAggregatesInput = {
    AND?: AgentSessionScalarWhereWithAggregatesInput | AgentSessionScalarWhereWithAggregatesInput[]
    OR?: AgentSessionScalarWhereWithAggregatesInput[]
    NOT?: AgentSessionScalarWhereWithAggregatesInput | AgentSessionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentSession"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentSession"> | string
    createdById?: UuidWithAggregatesFilter<"AgentSession"> | string
    title?: StringNullableWithAggregatesFilter<"AgentSession"> | string | null
    surface?: EnumAgentSurfaceWithAggregatesFilter<"AgentSession"> | $Enums.AgentSurface
    status?: EnumAgentSessionStatusWithAggregatesFilter<"AgentSession"> | $Enums.AgentSessionStatus
    projectId?: UuidNullableWithAggregatesFilter<"AgentSession"> | string | null
    personaId?: UuidNullableWithAggregatesFilter<"AgentSession"> | string | null
    planMode?: EnumAgentPlanModeWithAggregatesFilter<"AgentSession"> | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeWithAggregatesFilter<"AgentSession"> | $Enums.AgentPermissionMode
    parentSessionId?: UuidNullableWithAggregatesFilter<"AgentSession"> | string | null
    closedAt?: DateTimeNullableWithAggregatesFilter<"AgentSession"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AgentSession"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentSession"> | Date | string
  }

  export type AgentMessageWhereInput = {
    AND?: AgentMessageWhereInput | AgentMessageWhereInput[]
    OR?: AgentMessageWhereInput[]
    NOT?: AgentMessageWhereInput | AgentMessageWhereInput[]
    id?: UuidFilter<"AgentMessage"> | string
    sessionId?: UuidFilter<"AgentMessage"> | string
    turnId?: UuidFilter<"AgentMessage"> | string
    type?: EnumAgentMessageTypeFilter<"AgentMessage"> | $Enums.AgentMessageType
    content?: StringNullableFilter<"AgentMessage"> | string | null
    payload?: JsonNullableFilter<"AgentMessage">
    model?: StringNullableFilter<"AgentMessage"> | string | null
    sequence?: IntFilter<"AgentMessage"> | number
    createdAt?: DateTimeFilter<"AgentMessage"> | Date | string
    session?: XOR<AgentSessionScalarRelationFilter, AgentSessionWhereInput>
  }

  export type AgentMessageOrderByWithRelationInput = {
    id?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    type?: SortOrder
    content?: SortOrderInput | SortOrder
    payload?: SortOrderInput | SortOrder
    model?: SortOrderInput | SortOrder
    sequence?: SortOrder
    createdAt?: SortOrder
    session?: AgentSessionOrderByWithRelationInput
  }

  export type AgentMessageWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AgentMessageWhereInput | AgentMessageWhereInput[]
    OR?: AgentMessageWhereInput[]
    NOT?: AgentMessageWhereInput | AgentMessageWhereInput[]
    sessionId?: UuidFilter<"AgentMessage"> | string
    turnId?: UuidFilter<"AgentMessage"> | string
    type?: EnumAgentMessageTypeFilter<"AgentMessage"> | $Enums.AgentMessageType
    content?: StringNullableFilter<"AgentMessage"> | string | null
    payload?: JsonNullableFilter<"AgentMessage">
    model?: StringNullableFilter<"AgentMessage"> | string | null
    sequence?: IntFilter<"AgentMessage"> | number
    createdAt?: DateTimeFilter<"AgentMessage"> | Date | string
    session?: XOR<AgentSessionScalarRelationFilter, AgentSessionWhereInput>
  }, "id">

  export type AgentMessageOrderByWithAggregationInput = {
    id?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    type?: SortOrder
    content?: SortOrderInput | SortOrder
    payload?: SortOrderInput | SortOrder
    model?: SortOrderInput | SortOrder
    sequence?: SortOrder
    createdAt?: SortOrder
    _count?: AgentMessageCountOrderByAggregateInput
    _avg?: AgentMessageAvgOrderByAggregateInput
    _max?: AgentMessageMaxOrderByAggregateInput
    _min?: AgentMessageMinOrderByAggregateInput
    _sum?: AgentMessageSumOrderByAggregateInput
  }

  export type AgentMessageScalarWhereWithAggregatesInput = {
    AND?: AgentMessageScalarWhereWithAggregatesInput | AgentMessageScalarWhereWithAggregatesInput[]
    OR?: AgentMessageScalarWhereWithAggregatesInput[]
    NOT?: AgentMessageScalarWhereWithAggregatesInput | AgentMessageScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentMessage"> | string
    sessionId?: UuidWithAggregatesFilter<"AgentMessage"> | string
    turnId?: UuidWithAggregatesFilter<"AgentMessage"> | string
    type?: EnumAgentMessageTypeWithAggregatesFilter<"AgentMessage"> | $Enums.AgentMessageType
    content?: StringNullableWithAggregatesFilter<"AgentMessage"> | string | null
    payload?: JsonNullableWithAggregatesFilter<"AgentMessage">
    model?: StringNullableWithAggregatesFilter<"AgentMessage"> | string | null
    sequence?: IntWithAggregatesFilter<"AgentMessage"> | number
    createdAt?: DateTimeWithAggregatesFilter<"AgentMessage"> | Date | string
  }

  export type ModelRoutingRuleWhereInput = {
    AND?: ModelRoutingRuleWhereInput | ModelRoutingRuleWhereInput[]
    OR?: ModelRoutingRuleWhereInput[]
    NOT?: ModelRoutingRuleWhereInput | ModelRoutingRuleWhereInput[]
    id?: UuidFilter<"ModelRoutingRule"> | string
    organizationId?: UuidFilter<"ModelRoutingRule"> | string
    scope?: EnumModelRoutingScopeFilter<"ModelRoutingRule"> | $Enums.ModelRoutingScope
    scopeRefId?: UuidFilter<"ModelRoutingRule"> | string
    name?: StringFilter<"ModelRoutingRule"> | string
    priority?: IntFilter<"ModelRoutingRule"> | number
    enabled?: BoolFilter<"ModelRoutingRule"> | boolean
    pattern?: JsonFilter<"ModelRoutingRule">
    primary?: JsonFilter<"ModelRoutingRule">
    fallbacks?: JsonFilter<"ModelRoutingRule">
    reasoning?: StringNullableFilter<"ModelRoutingRule"> | string | null
    createdById?: UuidFilter<"ModelRoutingRule"> | string
    createdAt?: DateTimeFilter<"ModelRoutingRule"> | Date | string
    updatedAt?: DateTimeFilter<"ModelRoutingRule"> | Date | string
  }

  export type ModelRoutingRuleOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    name?: SortOrder
    priority?: SortOrder
    enabled?: SortOrder
    pattern?: SortOrder
    primary?: SortOrder
    fallbacks?: SortOrder
    reasoning?: SortOrderInput | SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ModelRoutingRuleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ModelRoutingRuleWhereInput | ModelRoutingRuleWhereInput[]
    OR?: ModelRoutingRuleWhereInput[]
    NOT?: ModelRoutingRuleWhereInput | ModelRoutingRuleWhereInput[]
    organizationId?: UuidFilter<"ModelRoutingRule"> | string
    scope?: EnumModelRoutingScopeFilter<"ModelRoutingRule"> | $Enums.ModelRoutingScope
    scopeRefId?: UuidFilter<"ModelRoutingRule"> | string
    name?: StringFilter<"ModelRoutingRule"> | string
    priority?: IntFilter<"ModelRoutingRule"> | number
    enabled?: BoolFilter<"ModelRoutingRule"> | boolean
    pattern?: JsonFilter<"ModelRoutingRule">
    primary?: JsonFilter<"ModelRoutingRule">
    fallbacks?: JsonFilter<"ModelRoutingRule">
    reasoning?: StringNullableFilter<"ModelRoutingRule"> | string | null
    createdById?: UuidFilter<"ModelRoutingRule"> | string
    createdAt?: DateTimeFilter<"ModelRoutingRule"> | Date | string
    updatedAt?: DateTimeFilter<"ModelRoutingRule"> | Date | string
  }, "id">

  export type ModelRoutingRuleOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    name?: SortOrder
    priority?: SortOrder
    enabled?: SortOrder
    pattern?: SortOrder
    primary?: SortOrder
    fallbacks?: SortOrder
    reasoning?: SortOrderInput | SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: ModelRoutingRuleCountOrderByAggregateInput
    _avg?: ModelRoutingRuleAvgOrderByAggregateInput
    _max?: ModelRoutingRuleMaxOrderByAggregateInput
    _min?: ModelRoutingRuleMinOrderByAggregateInput
    _sum?: ModelRoutingRuleSumOrderByAggregateInput
  }

  export type ModelRoutingRuleScalarWhereWithAggregatesInput = {
    AND?: ModelRoutingRuleScalarWhereWithAggregatesInput | ModelRoutingRuleScalarWhereWithAggregatesInput[]
    OR?: ModelRoutingRuleScalarWhereWithAggregatesInput[]
    NOT?: ModelRoutingRuleScalarWhereWithAggregatesInput | ModelRoutingRuleScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ModelRoutingRule"> | string
    organizationId?: UuidWithAggregatesFilter<"ModelRoutingRule"> | string
    scope?: EnumModelRoutingScopeWithAggregatesFilter<"ModelRoutingRule"> | $Enums.ModelRoutingScope
    scopeRefId?: UuidWithAggregatesFilter<"ModelRoutingRule"> | string
    name?: StringWithAggregatesFilter<"ModelRoutingRule"> | string
    priority?: IntWithAggregatesFilter<"ModelRoutingRule"> | number
    enabled?: BoolWithAggregatesFilter<"ModelRoutingRule"> | boolean
    pattern?: JsonWithAggregatesFilter<"ModelRoutingRule">
    primary?: JsonWithAggregatesFilter<"ModelRoutingRule">
    fallbacks?: JsonWithAggregatesFilter<"ModelRoutingRule">
    reasoning?: StringNullableWithAggregatesFilter<"ModelRoutingRule"> | string | null
    createdById?: UuidWithAggregatesFilter<"ModelRoutingRule"> | string
    createdAt?: DateTimeWithAggregatesFilter<"ModelRoutingRule"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ModelRoutingRule"> | Date | string
  }

  export type ModelRoutingDecisionWhereInput = {
    AND?: ModelRoutingDecisionWhereInput | ModelRoutingDecisionWhereInput[]
    OR?: ModelRoutingDecisionWhereInput[]
    NOT?: ModelRoutingDecisionWhereInput | ModelRoutingDecisionWhereInput[]
    id?: UuidFilter<"ModelRoutingDecision"> | string
    organizationId?: UuidFilter<"ModelRoutingDecision"> | string
    sessionId?: UuidNullableFilter<"ModelRoutingDecision"> | string | null
    turnId?: UuidNullableFilter<"ModelRoutingDecision"> | string | null
    request?: JsonFilter<"ModelRoutingDecision">
    decision?: JsonFilter<"ModelRoutingDecision">
    matchSource?: EnumModelRoutingMatchSourceFilter<"ModelRoutingDecision"> | $Enums.ModelRoutingMatchSource
    matchedRuleId?: UuidNullableFilter<"ModelRoutingDecision"> | string | null
    primaryProvider?: StringFilter<"ModelRoutingDecision"> | string
    primaryModel?: StringFilter<"ModelRoutingDecision"> | string
    estimatedCostUsd?: FloatNullableFilter<"ModelRoutingDecision"> | number | null
    actualCostUsd?: FloatNullableFilter<"ModelRoutingDecision"> | number | null
    actualLatencyMs?: IntNullableFilter<"ModelRoutingDecision"> | number | null
    createdAt?: DateTimeFilter<"ModelRoutingDecision"> | Date | string
  }

  export type ModelRoutingDecisionOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrderInput | SortOrder
    turnId?: SortOrderInput | SortOrder
    request?: SortOrder
    decision?: SortOrder
    matchSource?: SortOrder
    matchedRuleId?: SortOrderInput | SortOrder
    primaryProvider?: SortOrder
    primaryModel?: SortOrder
    estimatedCostUsd?: SortOrderInput | SortOrder
    actualCostUsd?: SortOrderInput | SortOrder
    actualLatencyMs?: SortOrderInput | SortOrder
    createdAt?: SortOrder
  }

  export type ModelRoutingDecisionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ModelRoutingDecisionWhereInput | ModelRoutingDecisionWhereInput[]
    OR?: ModelRoutingDecisionWhereInput[]
    NOT?: ModelRoutingDecisionWhereInput | ModelRoutingDecisionWhereInput[]
    organizationId?: UuidFilter<"ModelRoutingDecision"> | string
    sessionId?: UuidNullableFilter<"ModelRoutingDecision"> | string | null
    turnId?: UuidNullableFilter<"ModelRoutingDecision"> | string | null
    request?: JsonFilter<"ModelRoutingDecision">
    decision?: JsonFilter<"ModelRoutingDecision">
    matchSource?: EnumModelRoutingMatchSourceFilter<"ModelRoutingDecision"> | $Enums.ModelRoutingMatchSource
    matchedRuleId?: UuidNullableFilter<"ModelRoutingDecision"> | string | null
    primaryProvider?: StringFilter<"ModelRoutingDecision"> | string
    primaryModel?: StringFilter<"ModelRoutingDecision"> | string
    estimatedCostUsd?: FloatNullableFilter<"ModelRoutingDecision"> | number | null
    actualCostUsd?: FloatNullableFilter<"ModelRoutingDecision"> | number | null
    actualLatencyMs?: IntNullableFilter<"ModelRoutingDecision"> | number | null
    createdAt?: DateTimeFilter<"ModelRoutingDecision"> | Date | string
  }, "id">

  export type ModelRoutingDecisionOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrderInput | SortOrder
    turnId?: SortOrderInput | SortOrder
    request?: SortOrder
    decision?: SortOrder
    matchSource?: SortOrder
    matchedRuleId?: SortOrderInput | SortOrder
    primaryProvider?: SortOrder
    primaryModel?: SortOrder
    estimatedCostUsd?: SortOrderInput | SortOrder
    actualCostUsd?: SortOrderInput | SortOrder
    actualLatencyMs?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: ModelRoutingDecisionCountOrderByAggregateInput
    _avg?: ModelRoutingDecisionAvgOrderByAggregateInput
    _max?: ModelRoutingDecisionMaxOrderByAggregateInput
    _min?: ModelRoutingDecisionMinOrderByAggregateInput
    _sum?: ModelRoutingDecisionSumOrderByAggregateInput
  }

  export type ModelRoutingDecisionScalarWhereWithAggregatesInput = {
    AND?: ModelRoutingDecisionScalarWhereWithAggregatesInput | ModelRoutingDecisionScalarWhereWithAggregatesInput[]
    OR?: ModelRoutingDecisionScalarWhereWithAggregatesInput[]
    NOT?: ModelRoutingDecisionScalarWhereWithAggregatesInput | ModelRoutingDecisionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ModelRoutingDecision"> | string
    organizationId?: UuidWithAggregatesFilter<"ModelRoutingDecision"> | string
    sessionId?: UuidNullableWithAggregatesFilter<"ModelRoutingDecision"> | string | null
    turnId?: UuidNullableWithAggregatesFilter<"ModelRoutingDecision"> | string | null
    request?: JsonWithAggregatesFilter<"ModelRoutingDecision">
    decision?: JsonWithAggregatesFilter<"ModelRoutingDecision">
    matchSource?: EnumModelRoutingMatchSourceWithAggregatesFilter<"ModelRoutingDecision"> | $Enums.ModelRoutingMatchSource
    matchedRuleId?: UuidNullableWithAggregatesFilter<"ModelRoutingDecision"> | string | null
    primaryProvider?: StringWithAggregatesFilter<"ModelRoutingDecision"> | string
    primaryModel?: StringWithAggregatesFilter<"ModelRoutingDecision"> | string
    estimatedCostUsd?: FloatNullableWithAggregatesFilter<"ModelRoutingDecision"> | number | null
    actualCostUsd?: FloatNullableWithAggregatesFilter<"ModelRoutingDecision"> | number | null
    actualLatencyMs?: IntNullableWithAggregatesFilter<"ModelRoutingDecision"> | number | null
    createdAt?: DateTimeWithAggregatesFilter<"ModelRoutingDecision"> | Date | string
  }

  export type AgentTrajectoryEventWhereInput = {
    AND?: AgentTrajectoryEventWhereInput | AgentTrajectoryEventWhereInput[]
    OR?: AgentTrajectoryEventWhereInput[]
    NOT?: AgentTrajectoryEventWhereInput | AgentTrajectoryEventWhereInput[]
    id?: UuidFilter<"AgentTrajectoryEvent"> | string
    organizationId?: UuidFilter<"AgentTrajectoryEvent"> | string
    sessionId?: UuidFilter<"AgentTrajectoryEvent"> | string
    turnId?: UuidNullableFilter<"AgentTrajectoryEvent"> | string | null
    eventType?: EnumAgentTrajectoryEventTypeFilter<"AgentTrajectoryEvent"> | $Enums.AgentTrajectoryEventType
    payload?: JsonFilter<"AgentTrajectoryEvent">
    sequenceInSession?: IntFilter<"AgentTrajectoryEvent"> | number
    prevEventHash?: StringNullableFilter<"AgentTrajectoryEvent"> | string | null
    eventHash?: StringFilter<"AgentTrajectoryEvent"> | string
    createdAt?: DateTimeFilter<"AgentTrajectoryEvent"> | Date | string
  }

  export type AgentTrajectoryEventOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrderInput | SortOrder
    eventType?: SortOrder
    payload?: SortOrder
    sequenceInSession?: SortOrder
    prevEventHash?: SortOrderInput | SortOrder
    eventHash?: SortOrder
    createdAt?: SortOrder
  }

  export type AgentTrajectoryEventWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    sessionId_sequenceInSession?: AgentTrajectoryEventSessionIdSequenceInSessionCompoundUniqueInput
    AND?: AgentTrajectoryEventWhereInput | AgentTrajectoryEventWhereInput[]
    OR?: AgentTrajectoryEventWhereInput[]
    NOT?: AgentTrajectoryEventWhereInput | AgentTrajectoryEventWhereInput[]
    organizationId?: UuidFilter<"AgentTrajectoryEvent"> | string
    sessionId?: UuidFilter<"AgentTrajectoryEvent"> | string
    turnId?: UuidNullableFilter<"AgentTrajectoryEvent"> | string | null
    eventType?: EnumAgentTrajectoryEventTypeFilter<"AgentTrajectoryEvent"> | $Enums.AgentTrajectoryEventType
    payload?: JsonFilter<"AgentTrajectoryEvent">
    sequenceInSession?: IntFilter<"AgentTrajectoryEvent"> | number
    prevEventHash?: StringNullableFilter<"AgentTrajectoryEvent"> | string | null
    eventHash?: StringFilter<"AgentTrajectoryEvent"> | string
    createdAt?: DateTimeFilter<"AgentTrajectoryEvent"> | Date | string
  }, "id" | "sessionId_sequenceInSession">

  export type AgentTrajectoryEventOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrderInput | SortOrder
    eventType?: SortOrder
    payload?: SortOrder
    sequenceInSession?: SortOrder
    prevEventHash?: SortOrderInput | SortOrder
    eventHash?: SortOrder
    createdAt?: SortOrder
    _count?: AgentTrajectoryEventCountOrderByAggregateInput
    _avg?: AgentTrajectoryEventAvgOrderByAggregateInput
    _max?: AgentTrajectoryEventMaxOrderByAggregateInput
    _min?: AgentTrajectoryEventMinOrderByAggregateInput
    _sum?: AgentTrajectoryEventSumOrderByAggregateInput
  }

  export type AgentTrajectoryEventScalarWhereWithAggregatesInput = {
    AND?: AgentTrajectoryEventScalarWhereWithAggregatesInput | AgentTrajectoryEventScalarWhereWithAggregatesInput[]
    OR?: AgentTrajectoryEventScalarWhereWithAggregatesInput[]
    NOT?: AgentTrajectoryEventScalarWhereWithAggregatesInput | AgentTrajectoryEventScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentTrajectoryEvent"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentTrajectoryEvent"> | string
    sessionId?: UuidWithAggregatesFilter<"AgentTrajectoryEvent"> | string
    turnId?: UuidNullableWithAggregatesFilter<"AgentTrajectoryEvent"> | string | null
    eventType?: EnumAgentTrajectoryEventTypeWithAggregatesFilter<"AgentTrajectoryEvent"> | $Enums.AgentTrajectoryEventType
    payload?: JsonWithAggregatesFilter<"AgentTrajectoryEvent">
    sequenceInSession?: IntWithAggregatesFilter<"AgentTrajectoryEvent"> | number
    prevEventHash?: StringNullableWithAggregatesFilter<"AgentTrajectoryEvent"> | string | null
    eventHash?: StringWithAggregatesFilter<"AgentTrajectoryEvent"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AgentTrajectoryEvent"> | Date | string
  }

  export type AgentQuotaWhereInput = {
    AND?: AgentQuotaWhereInput | AgentQuotaWhereInput[]
    OR?: AgentQuotaWhereInput[]
    NOT?: AgentQuotaWhereInput | AgentQuotaWhereInput[]
    id?: UuidFilter<"AgentQuota"> | string
    organizationId?: UuidFilter<"AgentQuota"> | string
    scope?: EnumAgentQuotaScopeFilter<"AgentQuota"> | $Enums.AgentQuotaScope
    scopeRefId?: UuidFilter<"AgentQuota"> | string
    monthlyTokens?: IntFilter<"AgentQuota"> | number
    monthlyCostUsd?: FloatFilter<"AgentQuota"> | number
    softLimitRatio?: FloatFilter<"AgentQuota"> | number
    enabled?: BoolFilter<"AgentQuota"> | boolean
    createdById?: UuidFilter<"AgentQuota"> | string
    createdAt?: DateTimeFilter<"AgentQuota"> | Date | string
    updatedAt?: DateTimeFilter<"AgentQuota"> | Date | string
  }

  export type AgentQuotaOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    monthlyTokens?: SortOrder
    monthlyCostUsd?: SortOrder
    softLimitRatio?: SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentQuotaWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    scope_scopeRefId?: AgentQuotaScopeScopeRefIdCompoundUniqueInput
    AND?: AgentQuotaWhereInput | AgentQuotaWhereInput[]
    OR?: AgentQuotaWhereInput[]
    NOT?: AgentQuotaWhereInput | AgentQuotaWhereInput[]
    organizationId?: UuidFilter<"AgentQuota"> | string
    scope?: EnumAgentQuotaScopeFilter<"AgentQuota"> | $Enums.AgentQuotaScope
    scopeRefId?: UuidFilter<"AgentQuota"> | string
    monthlyTokens?: IntFilter<"AgentQuota"> | number
    monthlyCostUsd?: FloatFilter<"AgentQuota"> | number
    softLimitRatio?: FloatFilter<"AgentQuota"> | number
    enabled?: BoolFilter<"AgentQuota"> | boolean
    createdById?: UuidFilter<"AgentQuota"> | string
    createdAt?: DateTimeFilter<"AgentQuota"> | Date | string
    updatedAt?: DateTimeFilter<"AgentQuota"> | Date | string
  }, "id" | "scope_scopeRefId">

  export type AgentQuotaOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    monthlyTokens?: SortOrder
    monthlyCostUsd?: SortOrder
    softLimitRatio?: SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentQuotaCountOrderByAggregateInput
    _avg?: AgentQuotaAvgOrderByAggregateInput
    _max?: AgentQuotaMaxOrderByAggregateInput
    _min?: AgentQuotaMinOrderByAggregateInput
    _sum?: AgentQuotaSumOrderByAggregateInput
  }

  export type AgentQuotaScalarWhereWithAggregatesInput = {
    AND?: AgentQuotaScalarWhereWithAggregatesInput | AgentQuotaScalarWhereWithAggregatesInput[]
    OR?: AgentQuotaScalarWhereWithAggregatesInput[]
    NOT?: AgentQuotaScalarWhereWithAggregatesInput | AgentQuotaScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentQuota"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentQuota"> | string
    scope?: EnumAgentQuotaScopeWithAggregatesFilter<"AgentQuota"> | $Enums.AgentQuotaScope
    scopeRefId?: UuidWithAggregatesFilter<"AgentQuota"> | string
    monthlyTokens?: IntWithAggregatesFilter<"AgentQuota"> | number
    monthlyCostUsd?: FloatWithAggregatesFilter<"AgentQuota"> | number
    softLimitRatio?: FloatWithAggregatesFilter<"AgentQuota"> | number
    enabled?: BoolWithAggregatesFilter<"AgentQuota"> | boolean
    createdById?: UuidWithAggregatesFilter<"AgentQuota"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AgentQuota"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentQuota"> | Date | string
  }

  export type AgentQuotaUsageWhereInput = {
    AND?: AgentQuotaUsageWhereInput | AgentQuotaUsageWhereInput[]
    OR?: AgentQuotaUsageWhereInput[]
    NOT?: AgentQuotaUsageWhereInput | AgentQuotaUsageWhereInput[]
    id?: UuidFilter<"AgentQuotaUsage"> | string
    organizationId?: UuidFilter<"AgentQuotaUsage"> | string
    scope?: EnumAgentQuotaScopeFilter<"AgentQuotaUsage"> | $Enums.AgentQuotaScope
    scopeRefId?: UuidFilter<"AgentQuotaUsage"> | string
    periodStart?: DateTimeFilter<"AgentQuotaUsage"> | Date | string
    tokensUsed?: IntFilter<"AgentQuotaUsage"> | number
    costUsdUsed?: FloatFilter<"AgentQuotaUsage"> | number
    updatedAt?: DateTimeFilter<"AgentQuotaUsage"> | Date | string
  }

  export type AgentQuotaUsageOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    periodStart?: SortOrder
    tokensUsed?: SortOrder
    costUsdUsed?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentQuotaUsageWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    scope_scopeRefId_periodStart?: AgentQuotaUsageScopeScopeRefIdPeriodStartCompoundUniqueInput
    AND?: AgentQuotaUsageWhereInput | AgentQuotaUsageWhereInput[]
    OR?: AgentQuotaUsageWhereInput[]
    NOT?: AgentQuotaUsageWhereInput | AgentQuotaUsageWhereInput[]
    organizationId?: UuidFilter<"AgentQuotaUsage"> | string
    scope?: EnumAgentQuotaScopeFilter<"AgentQuotaUsage"> | $Enums.AgentQuotaScope
    scopeRefId?: UuidFilter<"AgentQuotaUsage"> | string
    periodStart?: DateTimeFilter<"AgentQuotaUsage"> | Date | string
    tokensUsed?: IntFilter<"AgentQuotaUsage"> | number
    costUsdUsed?: FloatFilter<"AgentQuotaUsage"> | number
    updatedAt?: DateTimeFilter<"AgentQuotaUsage"> | Date | string
  }, "id" | "scope_scopeRefId_periodStart">

  export type AgentQuotaUsageOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    periodStart?: SortOrder
    tokensUsed?: SortOrder
    costUsdUsed?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentQuotaUsageCountOrderByAggregateInput
    _avg?: AgentQuotaUsageAvgOrderByAggregateInput
    _max?: AgentQuotaUsageMaxOrderByAggregateInput
    _min?: AgentQuotaUsageMinOrderByAggregateInput
    _sum?: AgentQuotaUsageSumOrderByAggregateInput
  }

  export type AgentQuotaUsageScalarWhereWithAggregatesInput = {
    AND?: AgentQuotaUsageScalarWhereWithAggregatesInput | AgentQuotaUsageScalarWhereWithAggregatesInput[]
    OR?: AgentQuotaUsageScalarWhereWithAggregatesInput[]
    NOT?: AgentQuotaUsageScalarWhereWithAggregatesInput | AgentQuotaUsageScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentQuotaUsage"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentQuotaUsage"> | string
    scope?: EnumAgentQuotaScopeWithAggregatesFilter<"AgentQuotaUsage"> | $Enums.AgentQuotaScope
    scopeRefId?: UuidWithAggregatesFilter<"AgentQuotaUsage"> | string
    periodStart?: DateTimeWithAggregatesFilter<"AgentQuotaUsage"> | Date | string
    tokensUsed?: IntWithAggregatesFilter<"AgentQuotaUsage"> | number
    costUsdUsed?: FloatWithAggregatesFilter<"AgentQuotaUsage"> | number
    updatedAt?: DateTimeWithAggregatesFilter<"AgentQuotaUsage"> | Date | string
  }

  export type OrganizationAgentSettingsWhereInput = {
    AND?: OrganizationAgentSettingsWhereInput | OrganizationAgentSettingsWhereInput[]
    OR?: OrganizationAgentSettingsWhereInput[]
    NOT?: OrganizationAgentSettingsWhereInput | OrganizationAgentSettingsWhereInput[]
    id?: UuidFilter<"OrganizationAgentSettings"> | string
    organizationId?: UuidFilter<"OrganizationAgentSettings"> | string
    defaultPlanMode?: EnumAgentPlanModeFilter<"OrganizationAgentSettings"> | $Enums.AgentPlanMode
    defaultPermissionMode?: EnumAgentPermissionModeFilter<"OrganizationAgentSettings"> | $Enums.AgentPermissionMode
    disabledCapabilities?: StringNullableListFilter<"OrganizationAgentSettings">
    allowedCliTools?: StringNullableListFilter<"OrganizationAgentSettings">
    allowedPermissionModes?: StringNullableListFilter<"OrganizationAgentSettings">
    createdById?: UuidFilter<"OrganizationAgentSettings"> | string
    createdAt?: DateTimeFilter<"OrganizationAgentSettings"> | Date | string
    updatedAt?: DateTimeFilter<"OrganizationAgentSettings"> | Date | string
  }

  export type OrganizationAgentSettingsOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    defaultPlanMode?: SortOrder
    defaultPermissionMode?: SortOrder
    disabledCapabilities?: SortOrder
    allowedCliTools?: SortOrder
    allowedPermissionModes?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OrganizationAgentSettingsWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId?: string
    AND?: OrganizationAgentSettingsWhereInput | OrganizationAgentSettingsWhereInput[]
    OR?: OrganizationAgentSettingsWhereInput[]
    NOT?: OrganizationAgentSettingsWhereInput | OrganizationAgentSettingsWhereInput[]
    defaultPlanMode?: EnumAgentPlanModeFilter<"OrganizationAgentSettings"> | $Enums.AgentPlanMode
    defaultPermissionMode?: EnumAgentPermissionModeFilter<"OrganizationAgentSettings"> | $Enums.AgentPermissionMode
    disabledCapabilities?: StringNullableListFilter<"OrganizationAgentSettings">
    allowedCliTools?: StringNullableListFilter<"OrganizationAgentSettings">
    allowedPermissionModes?: StringNullableListFilter<"OrganizationAgentSettings">
    createdById?: UuidFilter<"OrganizationAgentSettings"> | string
    createdAt?: DateTimeFilter<"OrganizationAgentSettings"> | Date | string
    updatedAt?: DateTimeFilter<"OrganizationAgentSettings"> | Date | string
  }, "id" | "organizationId">

  export type OrganizationAgentSettingsOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    defaultPlanMode?: SortOrder
    defaultPermissionMode?: SortOrder
    disabledCapabilities?: SortOrder
    allowedCliTools?: SortOrder
    allowedPermissionModes?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: OrganizationAgentSettingsCountOrderByAggregateInput
    _max?: OrganizationAgentSettingsMaxOrderByAggregateInput
    _min?: OrganizationAgentSettingsMinOrderByAggregateInput
  }

  export type OrganizationAgentSettingsScalarWhereWithAggregatesInput = {
    AND?: OrganizationAgentSettingsScalarWhereWithAggregatesInput | OrganizationAgentSettingsScalarWhereWithAggregatesInput[]
    OR?: OrganizationAgentSettingsScalarWhereWithAggregatesInput[]
    NOT?: OrganizationAgentSettingsScalarWhereWithAggregatesInput | OrganizationAgentSettingsScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"OrganizationAgentSettings"> | string
    organizationId?: UuidWithAggregatesFilter<"OrganizationAgentSettings"> | string
    defaultPlanMode?: EnumAgentPlanModeWithAggregatesFilter<"OrganizationAgentSettings"> | $Enums.AgentPlanMode
    defaultPermissionMode?: EnumAgentPermissionModeWithAggregatesFilter<"OrganizationAgentSettings"> | $Enums.AgentPermissionMode
    disabledCapabilities?: StringNullableListFilter<"OrganizationAgentSettings">
    allowedCliTools?: StringNullableListFilter<"OrganizationAgentSettings">
    allowedPermissionModes?: StringNullableListFilter<"OrganizationAgentSettings">
    createdById?: UuidWithAggregatesFilter<"OrganizationAgentSettings"> | string
    createdAt?: DateTimeWithAggregatesFilter<"OrganizationAgentSettings"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"OrganizationAgentSettings"> | Date | string
  }

  export type AgentArtifactWhereInput = {
    AND?: AgentArtifactWhereInput | AgentArtifactWhereInput[]
    OR?: AgentArtifactWhereInput[]
    NOT?: AgentArtifactWhereInput | AgentArtifactWhereInput[]
    id?: UuidFilter<"AgentArtifact"> | string
    organizationId?: UuidFilter<"AgentArtifact"> | string
    sessionId?: UuidFilter<"AgentArtifact"> | string
    turnId?: UuidNullableFilter<"AgentArtifact"> | string | null
    createdById?: UuidFilter<"AgentArtifact"> | string
    type?: EnumAgentArtifactTypeFilter<"AgentArtifact"> | $Enums.AgentArtifactType
    title?: StringFilter<"AgentArtifact"> | string
    data?: JsonFilter<"AgentArtifact">
    previewUrl?: StringNullableFilter<"AgentArtifact"> | string | null
    mimeType?: StringNullableFilter<"AgentArtifact"> | string | null
    sizeBytes?: IntNullableFilter<"AgentArtifact"> | number | null
    createdAt?: DateTimeFilter<"AgentArtifact"> | Date | string
    updatedAt?: DateTimeFilter<"AgentArtifact"> | Date | string
  }

  export type AgentArtifactOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrderInput | SortOrder
    createdById?: SortOrder
    type?: SortOrder
    title?: SortOrder
    data?: SortOrder
    previewUrl?: SortOrderInput | SortOrder
    mimeType?: SortOrderInput | SortOrder
    sizeBytes?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentArtifactWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AgentArtifactWhereInput | AgentArtifactWhereInput[]
    OR?: AgentArtifactWhereInput[]
    NOT?: AgentArtifactWhereInput | AgentArtifactWhereInput[]
    organizationId?: UuidFilter<"AgentArtifact"> | string
    sessionId?: UuidFilter<"AgentArtifact"> | string
    turnId?: UuidNullableFilter<"AgentArtifact"> | string | null
    createdById?: UuidFilter<"AgentArtifact"> | string
    type?: EnumAgentArtifactTypeFilter<"AgentArtifact"> | $Enums.AgentArtifactType
    title?: StringFilter<"AgentArtifact"> | string
    data?: JsonFilter<"AgentArtifact">
    previewUrl?: StringNullableFilter<"AgentArtifact"> | string | null
    mimeType?: StringNullableFilter<"AgentArtifact"> | string | null
    sizeBytes?: IntNullableFilter<"AgentArtifact"> | number | null
    createdAt?: DateTimeFilter<"AgentArtifact"> | Date | string
    updatedAt?: DateTimeFilter<"AgentArtifact"> | Date | string
  }, "id">

  export type AgentArtifactOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrderInput | SortOrder
    createdById?: SortOrder
    type?: SortOrder
    title?: SortOrder
    data?: SortOrder
    previewUrl?: SortOrderInput | SortOrder
    mimeType?: SortOrderInput | SortOrder
    sizeBytes?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentArtifactCountOrderByAggregateInput
    _avg?: AgentArtifactAvgOrderByAggregateInput
    _max?: AgentArtifactMaxOrderByAggregateInput
    _min?: AgentArtifactMinOrderByAggregateInput
    _sum?: AgentArtifactSumOrderByAggregateInput
  }

  export type AgentArtifactScalarWhereWithAggregatesInput = {
    AND?: AgentArtifactScalarWhereWithAggregatesInput | AgentArtifactScalarWhereWithAggregatesInput[]
    OR?: AgentArtifactScalarWhereWithAggregatesInput[]
    NOT?: AgentArtifactScalarWhereWithAggregatesInput | AgentArtifactScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentArtifact"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentArtifact"> | string
    sessionId?: UuidWithAggregatesFilter<"AgentArtifact"> | string
    turnId?: UuidNullableWithAggregatesFilter<"AgentArtifact"> | string | null
    createdById?: UuidWithAggregatesFilter<"AgentArtifact"> | string
    type?: EnumAgentArtifactTypeWithAggregatesFilter<"AgentArtifact"> | $Enums.AgentArtifactType
    title?: StringWithAggregatesFilter<"AgentArtifact"> | string
    data?: JsonWithAggregatesFilter<"AgentArtifact">
    previewUrl?: StringNullableWithAggregatesFilter<"AgentArtifact"> | string | null
    mimeType?: StringNullableWithAggregatesFilter<"AgentArtifact"> | string | null
    sizeBytes?: IntNullableWithAggregatesFilter<"AgentArtifact"> | number | null
    createdAt?: DateTimeWithAggregatesFilter<"AgentArtifact"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentArtifact"> | Date | string
  }

  export type AgentTaskTrackerWhereInput = {
    AND?: AgentTaskTrackerWhereInput | AgentTaskTrackerWhereInput[]
    OR?: AgentTaskTrackerWhereInput[]
    NOT?: AgentTaskTrackerWhereInput | AgentTaskTrackerWhereInput[]
    id?: UuidFilter<"AgentTaskTracker"> | string
    organizationId?: UuidFilter<"AgentTaskTracker"> | string
    sessionId?: UuidFilter<"AgentTaskTracker"> | string
    parentTaskId?: UuidNullableFilter<"AgentTaskTracker"> | string | null
    title?: StringFilter<"AgentTaskTracker"> | string
    description?: StringNullableFilter<"AgentTaskTracker"> | string | null
    status?: EnumAgentTaskStatusFilter<"AgentTaskTracker"> | $Enums.AgentTaskStatus
    progress?: IntFilter<"AgentTaskTracker"> | number
    metadata?: JsonNullableFilter<"AgentTaskTracker">
    createdById?: UuidFilter<"AgentTaskTracker"> | string
    createdAt?: DateTimeFilter<"AgentTaskTracker"> | Date | string
    updatedAt?: DateTimeFilter<"AgentTaskTracker"> | Date | string
  }

  export type AgentTaskTrackerOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    parentTaskId?: SortOrderInput | SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    status?: SortOrder
    progress?: SortOrder
    metadata?: SortOrderInput | SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentTaskTrackerWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AgentTaskTrackerWhereInput | AgentTaskTrackerWhereInput[]
    OR?: AgentTaskTrackerWhereInput[]
    NOT?: AgentTaskTrackerWhereInput | AgentTaskTrackerWhereInput[]
    organizationId?: UuidFilter<"AgentTaskTracker"> | string
    sessionId?: UuidFilter<"AgentTaskTracker"> | string
    parentTaskId?: UuidNullableFilter<"AgentTaskTracker"> | string | null
    title?: StringFilter<"AgentTaskTracker"> | string
    description?: StringNullableFilter<"AgentTaskTracker"> | string | null
    status?: EnumAgentTaskStatusFilter<"AgentTaskTracker"> | $Enums.AgentTaskStatus
    progress?: IntFilter<"AgentTaskTracker"> | number
    metadata?: JsonNullableFilter<"AgentTaskTracker">
    createdById?: UuidFilter<"AgentTaskTracker"> | string
    createdAt?: DateTimeFilter<"AgentTaskTracker"> | Date | string
    updatedAt?: DateTimeFilter<"AgentTaskTracker"> | Date | string
  }, "id">

  export type AgentTaskTrackerOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    parentTaskId?: SortOrderInput | SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    status?: SortOrder
    progress?: SortOrder
    metadata?: SortOrderInput | SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentTaskTrackerCountOrderByAggregateInput
    _avg?: AgentTaskTrackerAvgOrderByAggregateInput
    _max?: AgentTaskTrackerMaxOrderByAggregateInput
    _min?: AgentTaskTrackerMinOrderByAggregateInput
    _sum?: AgentTaskTrackerSumOrderByAggregateInput
  }

  export type AgentTaskTrackerScalarWhereWithAggregatesInput = {
    AND?: AgentTaskTrackerScalarWhereWithAggregatesInput | AgentTaskTrackerScalarWhereWithAggregatesInput[]
    OR?: AgentTaskTrackerScalarWhereWithAggregatesInput[]
    NOT?: AgentTaskTrackerScalarWhereWithAggregatesInput | AgentTaskTrackerScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentTaskTracker"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentTaskTracker"> | string
    sessionId?: UuidWithAggregatesFilter<"AgentTaskTracker"> | string
    parentTaskId?: UuidNullableWithAggregatesFilter<"AgentTaskTracker"> | string | null
    title?: StringWithAggregatesFilter<"AgentTaskTracker"> | string
    description?: StringNullableWithAggregatesFilter<"AgentTaskTracker"> | string | null
    status?: EnumAgentTaskStatusWithAggregatesFilter<"AgentTaskTracker"> | $Enums.AgentTaskStatus
    progress?: IntWithAggregatesFilter<"AgentTaskTracker"> | number
    metadata?: JsonNullableWithAggregatesFilter<"AgentTaskTracker">
    createdById?: UuidWithAggregatesFilter<"AgentTaskTracker"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AgentTaskTracker"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentTaskTracker"> | Date | string
  }

  export type AgentScratchpadWhereInput = {
    AND?: AgentScratchpadWhereInput | AgentScratchpadWhereInput[]
    OR?: AgentScratchpadWhereInput[]
    NOT?: AgentScratchpadWhereInput | AgentScratchpadWhereInput[]
    id?: UuidFilter<"AgentScratchpad"> | string
    organizationId?: UuidFilter<"AgentScratchpad"> | string
    sessionId?: UuidFilter<"AgentScratchpad"> | string
    key?: StringFilter<"AgentScratchpad"> | string
    value?: JsonFilter<"AgentScratchpad">
    createdAt?: DateTimeFilter<"AgentScratchpad"> | Date | string
    updatedAt?: DateTimeFilter<"AgentScratchpad"> | Date | string
  }

  export type AgentScratchpadOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    key?: SortOrder
    value?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentScratchpadWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    sessionId_key?: AgentScratchpadSessionIdKeyCompoundUniqueInput
    AND?: AgentScratchpadWhereInput | AgentScratchpadWhereInput[]
    OR?: AgentScratchpadWhereInput[]
    NOT?: AgentScratchpadWhereInput | AgentScratchpadWhereInput[]
    organizationId?: UuidFilter<"AgentScratchpad"> | string
    sessionId?: UuidFilter<"AgentScratchpad"> | string
    key?: StringFilter<"AgentScratchpad"> | string
    value?: JsonFilter<"AgentScratchpad">
    createdAt?: DateTimeFilter<"AgentScratchpad"> | Date | string
    updatedAt?: DateTimeFilter<"AgentScratchpad"> | Date | string
  }, "id" | "sessionId_key">

  export type AgentScratchpadOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    key?: SortOrder
    value?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentScratchpadCountOrderByAggregateInput
    _max?: AgentScratchpadMaxOrderByAggregateInput
    _min?: AgentScratchpadMinOrderByAggregateInput
  }

  export type AgentScratchpadScalarWhereWithAggregatesInput = {
    AND?: AgentScratchpadScalarWhereWithAggregatesInput | AgentScratchpadScalarWhereWithAggregatesInput[]
    OR?: AgentScratchpadScalarWhereWithAggregatesInput[]
    NOT?: AgentScratchpadScalarWhereWithAggregatesInput | AgentScratchpadScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentScratchpad"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentScratchpad"> | string
    sessionId?: UuidWithAggregatesFilter<"AgentScratchpad"> | string
    key?: StringWithAggregatesFilter<"AgentScratchpad"> | string
    value?: JsonWithAggregatesFilter<"AgentScratchpad">
    createdAt?: DateTimeWithAggregatesFilter<"AgentScratchpad"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentScratchpad"> | Date | string
  }

  export type StorageBindingWhereInput = {
    AND?: StorageBindingWhereInput | StorageBindingWhereInput[]
    OR?: StorageBindingWhereInput[]
    NOT?: StorageBindingWhereInput | StorageBindingWhereInput[]
    id?: UuidFilter<"StorageBinding"> | string
    organizationId?: UuidFilter<"StorageBinding"> | string
    scope?: EnumStorageBindingScopeFilter<"StorageBinding"> | $Enums.StorageBindingScope
    scopeRefId?: UuidFilter<"StorageBinding"> | string
    kind?: EnumStorageBackendKindFilter<"StorageBinding"> | $Enums.StorageBackendKind
    displayName?: StringFilter<"StorageBinding"> | string
    config?: JsonFilter<"StorageBinding">
    encryptedSecret?: StringNullableFilter<"StorageBinding"> | string | null
    keyId?: StringNullableFilter<"StorageBinding"> | string | null
    enabled?: BoolFilter<"StorageBinding"> | boolean
    createdById?: UuidFilter<"StorageBinding"> | string
    createdAt?: DateTimeFilter<"StorageBinding"> | Date | string
    updatedAt?: DateTimeFilter<"StorageBinding"> | Date | string
    files?: StorageFileListRelationFilter
  }

  export type StorageBindingOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    kind?: SortOrder
    displayName?: SortOrder
    config?: SortOrder
    encryptedSecret?: SortOrderInput | SortOrder
    keyId?: SortOrderInput | SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    files?: StorageFileOrderByRelationAggregateInput
  }

  export type StorageBindingWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: StorageBindingWhereInput | StorageBindingWhereInput[]
    OR?: StorageBindingWhereInput[]
    NOT?: StorageBindingWhereInput | StorageBindingWhereInput[]
    organizationId?: UuidFilter<"StorageBinding"> | string
    scope?: EnumStorageBindingScopeFilter<"StorageBinding"> | $Enums.StorageBindingScope
    scopeRefId?: UuidFilter<"StorageBinding"> | string
    kind?: EnumStorageBackendKindFilter<"StorageBinding"> | $Enums.StorageBackendKind
    displayName?: StringFilter<"StorageBinding"> | string
    config?: JsonFilter<"StorageBinding">
    encryptedSecret?: StringNullableFilter<"StorageBinding"> | string | null
    keyId?: StringNullableFilter<"StorageBinding"> | string | null
    enabled?: BoolFilter<"StorageBinding"> | boolean
    createdById?: UuidFilter<"StorageBinding"> | string
    createdAt?: DateTimeFilter<"StorageBinding"> | Date | string
    updatedAt?: DateTimeFilter<"StorageBinding"> | Date | string
    files?: StorageFileListRelationFilter
  }, "id">

  export type StorageBindingOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    kind?: SortOrder
    displayName?: SortOrder
    config?: SortOrder
    encryptedSecret?: SortOrderInput | SortOrder
    keyId?: SortOrderInput | SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: StorageBindingCountOrderByAggregateInput
    _max?: StorageBindingMaxOrderByAggregateInput
    _min?: StorageBindingMinOrderByAggregateInput
  }

  export type StorageBindingScalarWhereWithAggregatesInput = {
    AND?: StorageBindingScalarWhereWithAggregatesInput | StorageBindingScalarWhereWithAggregatesInput[]
    OR?: StorageBindingScalarWhereWithAggregatesInput[]
    NOT?: StorageBindingScalarWhereWithAggregatesInput | StorageBindingScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"StorageBinding"> | string
    organizationId?: UuidWithAggregatesFilter<"StorageBinding"> | string
    scope?: EnumStorageBindingScopeWithAggregatesFilter<"StorageBinding"> | $Enums.StorageBindingScope
    scopeRefId?: UuidWithAggregatesFilter<"StorageBinding"> | string
    kind?: EnumStorageBackendKindWithAggregatesFilter<"StorageBinding"> | $Enums.StorageBackendKind
    displayName?: StringWithAggregatesFilter<"StorageBinding"> | string
    config?: JsonWithAggregatesFilter<"StorageBinding">
    encryptedSecret?: StringNullableWithAggregatesFilter<"StorageBinding"> | string | null
    keyId?: StringNullableWithAggregatesFilter<"StorageBinding"> | string | null
    enabled?: BoolWithAggregatesFilter<"StorageBinding"> | boolean
    createdById?: UuidWithAggregatesFilter<"StorageBinding"> | string
    createdAt?: DateTimeWithAggregatesFilter<"StorageBinding"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"StorageBinding"> | Date | string
  }

  export type StorageFileWhereInput = {
    AND?: StorageFileWhereInput | StorageFileWhereInput[]
    OR?: StorageFileWhereInput[]
    NOT?: StorageFileWhereInput | StorageFileWhereInput[]
    id?: UuidFilter<"StorageFile"> | string
    bindingId?: UuidFilter<"StorageFile"> | string
    organizationId?: UuidFilter<"StorageFile"> | string
    path?: StringFilter<"StorageFile"> | string
    externalId?: StringNullableFilter<"StorageFile"> | string | null
    sizeBytes?: IntFilter<"StorageFile"> | number
    mimeType?: StringNullableFilter<"StorageFile"> | string | null
    sha256?: StringFilter<"StorageFile"> | string
    encrypted?: BoolFilter<"StorageFile"> | boolean
    uploadedById?: UuidFilter<"StorageFile"> | string
    createdAt?: DateTimeFilter<"StorageFile"> | Date | string
    binding?: XOR<StorageBindingScalarRelationFilter, StorageBindingWhereInput>
  }

  export type StorageFileOrderByWithRelationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    organizationId?: SortOrder
    path?: SortOrder
    externalId?: SortOrderInput | SortOrder
    sizeBytes?: SortOrder
    mimeType?: SortOrderInput | SortOrder
    sha256?: SortOrder
    encrypted?: SortOrder
    uploadedById?: SortOrder
    createdAt?: SortOrder
    binding?: StorageBindingOrderByWithRelationInput
  }

  export type StorageFileWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: StorageFileWhereInput | StorageFileWhereInput[]
    OR?: StorageFileWhereInput[]
    NOT?: StorageFileWhereInput | StorageFileWhereInput[]
    bindingId?: UuidFilter<"StorageFile"> | string
    organizationId?: UuidFilter<"StorageFile"> | string
    path?: StringFilter<"StorageFile"> | string
    externalId?: StringNullableFilter<"StorageFile"> | string | null
    sizeBytes?: IntFilter<"StorageFile"> | number
    mimeType?: StringNullableFilter<"StorageFile"> | string | null
    sha256?: StringFilter<"StorageFile"> | string
    encrypted?: BoolFilter<"StorageFile"> | boolean
    uploadedById?: UuidFilter<"StorageFile"> | string
    createdAt?: DateTimeFilter<"StorageFile"> | Date | string
    binding?: XOR<StorageBindingScalarRelationFilter, StorageBindingWhereInput>
  }, "id">

  export type StorageFileOrderByWithAggregationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    organizationId?: SortOrder
    path?: SortOrder
    externalId?: SortOrderInput | SortOrder
    sizeBytes?: SortOrder
    mimeType?: SortOrderInput | SortOrder
    sha256?: SortOrder
    encrypted?: SortOrder
    uploadedById?: SortOrder
    createdAt?: SortOrder
    _count?: StorageFileCountOrderByAggregateInput
    _avg?: StorageFileAvgOrderByAggregateInput
    _max?: StorageFileMaxOrderByAggregateInput
    _min?: StorageFileMinOrderByAggregateInput
    _sum?: StorageFileSumOrderByAggregateInput
  }

  export type StorageFileScalarWhereWithAggregatesInput = {
    AND?: StorageFileScalarWhereWithAggregatesInput | StorageFileScalarWhereWithAggregatesInput[]
    OR?: StorageFileScalarWhereWithAggregatesInput[]
    NOT?: StorageFileScalarWhereWithAggregatesInput | StorageFileScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"StorageFile"> | string
    bindingId?: UuidWithAggregatesFilter<"StorageFile"> | string
    organizationId?: UuidWithAggregatesFilter<"StorageFile"> | string
    path?: StringWithAggregatesFilter<"StorageFile"> | string
    externalId?: StringNullableWithAggregatesFilter<"StorageFile"> | string | null
    sizeBytes?: IntWithAggregatesFilter<"StorageFile"> | number
    mimeType?: StringNullableWithAggregatesFilter<"StorageFile"> | string | null
    sha256?: StringWithAggregatesFilter<"StorageFile"> | string
    encrypted?: BoolWithAggregatesFilter<"StorageFile"> | boolean
    uploadedById?: UuidWithAggregatesFilter<"StorageFile"> | string
    createdAt?: DateTimeWithAggregatesFilter<"StorageFile"> | Date | string
  }

  export type AgentProjectWhereInput = {
    AND?: AgentProjectWhereInput | AgentProjectWhereInput[]
    OR?: AgentProjectWhereInput[]
    NOT?: AgentProjectWhereInput | AgentProjectWhereInput[]
    id?: UuidFilter<"AgentProject"> | string
    organizationId?: UuidFilter<"AgentProject"> | string
    createdById?: UuidFilter<"AgentProject"> | string
    name?: StringFilter<"AgentProject"> | string
    icon?: StringNullableFilter<"AgentProject"> | string | null
    color?: StringNullableFilter<"AgentProject"> | string | null
    instructions?: StringNullableFilter<"AgentProject"> | string | null
    createdAt?: DateTimeFilter<"AgentProject"> | Date | string
    updatedAt?: DateTimeFilter<"AgentProject"> | Date | string
    memories?: AgentMemoryListRelationFilter
  }

  export type AgentProjectOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    icon?: SortOrderInput | SortOrder
    color?: SortOrderInput | SortOrder
    instructions?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    memories?: AgentMemoryOrderByRelationAggregateInput
  }

  export type AgentProjectWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AgentProjectWhereInput | AgentProjectWhereInput[]
    OR?: AgentProjectWhereInput[]
    NOT?: AgentProjectWhereInput | AgentProjectWhereInput[]
    organizationId?: UuidFilter<"AgentProject"> | string
    createdById?: UuidFilter<"AgentProject"> | string
    name?: StringFilter<"AgentProject"> | string
    icon?: StringNullableFilter<"AgentProject"> | string | null
    color?: StringNullableFilter<"AgentProject"> | string | null
    instructions?: StringNullableFilter<"AgentProject"> | string | null
    createdAt?: DateTimeFilter<"AgentProject"> | Date | string
    updatedAt?: DateTimeFilter<"AgentProject"> | Date | string
    memories?: AgentMemoryListRelationFilter
  }, "id">

  export type AgentProjectOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    icon?: SortOrderInput | SortOrder
    color?: SortOrderInput | SortOrder
    instructions?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentProjectCountOrderByAggregateInput
    _max?: AgentProjectMaxOrderByAggregateInput
    _min?: AgentProjectMinOrderByAggregateInput
  }

  export type AgentProjectScalarWhereWithAggregatesInput = {
    AND?: AgentProjectScalarWhereWithAggregatesInput | AgentProjectScalarWhereWithAggregatesInput[]
    OR?: AgentProjectScalarWhereWithAggregatesInput[]
    NOT?: AgentProjectScalarWhereWithAggregatesInput | AgentProjectScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentProject"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentProject"> | string
    createdById?: UuidWithAggregatesFilter<"AgentProject"> | string
    name?: StringWithAggregatesFilter<"AgentProject"> | string
    icon?: StringNullableWithAggregatesFilter<"AgentProject"> | string | null
    color?: StringNullableWithAggregatesFilter<"AgentProject"> | string | null
    instructions?: StringNullableWithAggregatesFilter<"AgentProject"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AgentProject"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentProject"> | Date | string
  }

  export type AgentMemoryWhereInput = {
    AND?: AgentMemoryWhereInput | AgentMemoryWhereInput[]
    OR?: AgentMemoryWhereInput[]
    NOT?: AgentMemoryWhereInput | AgentMemoryWhereInput[]
    id?: UuidFilter<"AgentMemory"> | string
    organizationId?: UuidFilter<"AgentMemory"> | string
    createdById?: UuidNullableFilter<"AgentMemory"> | string | null
    ownerScope?: EnumMemoryOwnerScopeFilter<"AgentMemory"> | $Enums.MemoryOwnerScope
    content?: StringFilter<"AgentMemory"> | string
    scope?: EnumMemoryScopeFilter<"AgentMemory"> | $Enums.MemoryScope
    category?: EnumMemoryCategoryFilter<"AgentMemory"> | $Enums.MemoryCategory
    projectId?: UuidNullableFilter<"AgentMemory"> | string | null
    personaId?: UuidNullableFilter<"AgentMemory"> | string | null
    source?: StringNullableFilter<"AgentMemory"> | string | null
    createdAt?: DateTimeFilter<"AgentMemory"> | Date | string
    updatedAt?: DateTimeFilter<"AgentMemory"> | Date | string
    project?: XOR<AgentProjectNullableScalarRelationFilter, AgentProjectWhereInput> | null
    persona?: XOR<AgentPersonaNullableScalarRelationFilter, AgentPersonaWhereInput> | null
  }

  export type AgentMemoryOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrderInput | SortOrder
    ownerScope?: SortOrder
    content?: SortOrder
    scope?: SortOrder
    category?: SortOrder
    projectId?: SortOrderInput | SortOrder
    personaId?: SortOrderInput | SortOrder
    source?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    project?: AgentProjectOrderByWithRelationInput
    persona?: AgentPersonaOrderByWithRelationInput
  }

  export type AgentMemoryWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AgentMemoryWhereInput | AgentMemoryWhereInput[]
    OR?: AgentMemoryWhereInput[]
    NOT?: AgentMemoryWhereInput | AgentMemoryWhereInput[]
    organizationId?: UuidFilter<"AgentMemory"> | string
    createdById?: UuidNullableFilter<"AgentMemory"> | string | null
    ownerScope?: EnumMemoryOwnerScopeFilter<"AgentMemory"> | $Enums.MemoryOwnerScope
    content?: StringFilter<"AgentMemory"> | string
    scope?: EnumMemoryScopeFilter<"AgentMemory"> | $Enums.MemoryScope
    category?: EnumMemoryCategoryFilter<"AgentMemory"> | $Enums.MemoryCategory
    projectId?: UuidNullableFilter<"AgentMemory"> | string | null
    personaId?: UuidNullableFilter<"AgentMemory"> | string | null
    source?: StringNullableFilter<"AgentMemory"> | string | null
    createdAt?: DateTimeFilter<"AgentMemory"> | Date | string
    updatedAt?: DateTimeFilter<"AgentMemory"> | Date | string
    project?: XOR<AgentProjectNullableScalarRelationFilter, AgentProjectWhereInput> | null
    persona?: XOR<AgentPersonaNullableScalarRelationFilter, AgentPersonaWhereInput> | null
  }, "id">

  export type AgentMemoryOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrderInput | SortOrder
    ownerScope?: SortOrder
    content?: SortOrder
    scope?: SortOrder
    category?: SortOrder
    projectId?: SortOrderInput | SortOrder
    personaId?: SortOrderInput | SortOrder
    source?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentMemoryCountOrderByAggregateInput
    _max?: AgentMemoryMaxOrderByAggregateInput
    _min?: AgentMemoryMinOrderByAggregateInput
  }

  export type AgentMemoryScalarWhereWithAggregatesInput = {
    AND?: AgentMemoryScalarWhereWithAggregatesInput | AgentMemoryScalarWhereWithAggregatesInput[]
    OR?: AgentMemoryScalarWhereWithAggregatesInput[]
    NOT?: AgentMemoryScalarWhereWithAggregatesInput | AgentMemoryScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentMemory"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentMemory"> | string
    createdById?: UuidNullableWithAggregatesFilter<"AgentMemory"> | string | null
    ownerScope?: EnumMemoryOwnerScopeWithAggregatesFilter<"AgentMemory"> | $Enums.MemoryOwnerScope
    content?: StringWithAggregatesFilter<"AgentMemory"> | string
    scope?: EnumMemoryScopeWithAggregatesFilter<"AgentMemory"> | $Enums.MemoryScope
    category?: EnumMemoryCategoryWithAggregatesFilter<"AgentMemory"> | $Enums.MemoryCategory
    projectId?: UuidNullableWithAggregatesFilter<"AgentMemory"> | string | null
    personaId?: UuidNullableWithAggregatesFilter<"AgentMemory"> | string | null
    source?: StringNullableWithAggregatesFilter<"AgentMemory"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AgentMemory"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentMemory"> | Date | string
  }

  export type AgentPersonaWhereInput = {
    AND?: AgentPersonaWhereInput | AgentPersonaWhereInput[]
    OR?: AgentPersonaWhereInput[]
    NOT?: AgentPersonaWhereInput | AgentPersonaWhereInput[]
    id?: UuidFilter<"AgentPersona"> | string
    organizationId?: UuidFilter<"AgentPersona"> | string
    createdById?: UuidNullableFilter<"AgentPersona"> | string | null
    systemKey?: StringNullableFilter<"AgentPersona"> | string | null
    name?: StringFilter<"AgentPersona"> | string
    icon?: StringNullableFilter<"AgentPersona"> | string | null
    description?: StringNullableFilter<"AgentPersona"> | string | null
    instructions?: StringNullableFilter<"AgentPersona"> | string | null
    allowedTools?: StringNullableListFilter<"AgentPersona">
    enabled?: BoolFilter<"AgentPersona"> | boolean
    createdAt?: DateTimeFilter<"AgentPersona"> | Date | string
    updatedAt?: DateTimeFilter<"AgentPersona"> | Date | string
    memories?: AgentMemoryListRelationFilter
    sessions?: AgentSessionListRelationFilter
  }

  export type AgentPersonaOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrderInput | SortOrder
    systemKey?: SortOrderInput | SortOrder
    name?: SortOrder
    icon?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    instructions?: SortOrderInput | SortOrder
    allowedTools?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    memories?: AgentMemoryOrderByRelationAggregateInput
    sessions?: AgentSessionOrderByRelationAggregateInput
  }

  export type AgentPersonaWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_systemKey?: AgentPersonaOrganizationIdSystemKeyCompoundUniqueInput
    AND?: AgentPersonaWhereInput | AgentPersonaWhereInput[]
    OR?: AgentPersonaWhereInput[]
    NOT?: AgentPersonaWhereInput | AgentPersonaWhereInput[]
    organizationId?: UuidFilter<"AgentPersona"> | string
    createdById?: UuidNullableFilter<"AgentPersona"> | string | null
    systemKey?: StringNullableFilter<"AgentPersona"> | string | null
    name?: StringFilter<"AgentPersona"> | string
    icon?: StringNullableFilter<"AgentPersona"> | string | null
    description?: StringNullableFilter<"AgentPersona"> | string | null
    instructions?: StringNullableFilter<"AgentPersona"> | string | null
    allowedTools?: StringNullableListFilter<"AgentPersona">
    enabled?: BoolFilter<"AgentPersona"> | boolean
    createdAt?: DateTimeFilter<"AgentPersona"> | Date | string
    updatedAt?: DateTimeFilter<"AgentPersona"> | Date | string
    memories?: AgentMemoryListRelationFilter
    sessions?: AgentSessionListRelationFilter
  }, "id" | "organizationId_systemKey">

  export type AgentPersonaOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrderInput | SortOrder
    systemKey?: SortOrderInput | SortOrder
    name?: SortOrder
    icon?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    instructions?: SortOrderInput | SortOrder
    allowedTools?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentPersonaCountOrderByAggregateInput
    _max?: AgentPersonaMaxOrderByAggregateInput
    _min?: AgentPersonaMinOrderByAggregateInput
  }

  export type AgentPersonaScalarWhereWithAggregatesInput = {
    AND?: AgentPersonaScalarWhereWithAggregatesInput | AgentPersonaScalarWhereWithAggregatesInput[]
    OR?: AgentPersonaScalarWhereWithAggregatesInput[]
    NOT?: AgentPersonaScalarWhereWithAggregatesInput | AgentPersonaScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentPersona"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentPersona"> | string
    createdById?: UuidNullableWithAggregatesFilter<"AgentPersona"> | string | null
    systemKey?: StringNullableWithAggregatesFilter<"AgentPersona"> | string | null
    name?: StringWithAggregatesFilter<"AgentPersona"> | string
    icon?: StringNullableWithAggregatesFilter<"AgentPersona"> | string | null
    description?: StringNullableWithAggregatesFilter<"AgentPersona"> | string | null
    instructions?: StringNullableWithAggregatesFilter<"AgentPersona"> | string | null
    allowedTools?: StringNullableListFilter<"AgentPersona">
    enabled?: BoolWithAggregatesFilter<"AgentPersona"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"AgentPersona"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentPersona"> | Date | string
  }

  export type AgentCronWhereInput = {
    AND?: AgentCronWhereInput | AgentCronWhereInput[]
    OR?: AgentCronWhereInput[]
    NOT?: AgentCronWhereInput | AgentCronWhereInput[]
    id?: UuidFilter<"AgentCron"> | string
    organizationId?: UuidFilter<"AgentCron"> | string
    createdById?: UuidFilter<"AgentCron"> | string
    sessionId?: UuidFilter<"AgentCron"> | string
    name?: StringFilter<"AgentCron"> | string
    cronExpr?: StringFilter<"AgentCron"> | string
    prompt?: StringFilter<"AgentCron"> | string
    enabled?: BoolFilter<"AgentCron"> | boolean
    lastRunAt?: DateTimeNullableFilter<"AgentCron"> | Date | string | null
    nextRunAt?: DateTimeFilter<"AgentCron"> | Date | string
    runCount?: IntFilter<"AgentCron"> | number
    failCount?: IntFilter<"AgentCron"> | number
    lastError?: StringNullableFilter<"AgentCron"> | string | null
    createdAt?: DateTimeFilter<"AgentCron"> | Date | string
    updatedAt?: DateTimeFilter<"AgentCron"> | Date | string
    session?: XOR<AgentSessionScalarRelationFilter, AgentSessionWhereInput>
  }

  export type AgentCronOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    sessionId?: SortOrder
    name?: SortOrder
    cronExpr?: SortOrder
    prompt?: SortOrder
    enabled?: SortOrder
    lastRunAt?: SortOrderInput | SortOrder
    nextRunAt?: SortOrder
    runCount?: SortOrder
    failCount?: SortOrder
    lastError?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    session?: AgentSessionOrderByWithRelationInput
  }

  export type AgentCronWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AgentCronWhereInput | AgentCronWhereInput[]
    OR?: AgentCronWhereInput[]
    NOT?: AgentCronWhereInput | AgentCronWhereInput[]
    organizationId?: UuidFilter<"AgentCron"> | string
    createdById?: UuidFilter<"AgentCron"> | string
    sessionId?: UuidFilter<"AgentCron"> | string
    name?: StringFilter<"AgentCron"> | string
    cronExpr?: StringFilter<"AgentCron"> | string
    prompt?: StringFilter<"AgentCron"> | string
    enabled?: BoolFilter<"AgentCron"> | boolean
    lastRunAt?: DateTimeNullableFilter<"AgentCron"> | Date | string | null
    nextRunAt?: DateTimeFilter<"AgentCron"> | Date | string
    runCount?: IntFilter<"AgentCron"> | number
    failCount?: IntFilter<"AgentCron"> | number
    lastError?: StringNullableFilter<"AgentCron"> | string | null
    createdAt?: DateTimeFilter<"AgentCron"> | Date | string
    updatedAt?: DateTimeFilter<"AgentCron"> | Date | string
    session?: XOR<AgentSessionScalarRelationFilter, AgentSessionWhereInput>
  }, "id">

  export type AgentCronOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    sessionId?: SortOrder
    name?: SortOrder
    cronExpr?: SortOrder
    prompt?: SortOrder
    enabled?: SortOrder
    lastRunAt?: SortOrderInput | SortOrder
    nextRunAt?: SortOrder
    runCount?: SortOrder
    failCount?: SortOrder
    lastError?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentCronCountOrderByAggregateInput
    _avg?: AgentCronAvgOrderByAggregateInput
    _max?: AgentCronMaxOrderByAggregateInput
    _min?: AgentCronMinOrderByAggregateInput
    _sum?: AgentCronSumOrderByAggregateInput
  }

  export type AgentCronScalarWhereWithAggregatesInput = {
    AND?: AgentCronScalarWhereWithAggregatesInput | AgentCronScalarWhereWithAggregatesInput[]
    OR?: AgentCronScalarWhereWithAggregatesInput[]
    NOT?: AgentCronScalarWhereWithAggregatesInput | AgentCronScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentCron"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentCron"> | string
    createdById?: UuidWithAggregatesFilter<"AgentCron"> | string
    sessionId?: UuidWithAggregatesFilter<"AgentCron"> | string
    name?: StringWithAggregatesFilter<"AgentCron"> | string
    cronExpr?: StringWithAggregatesFilter<"AgentCron"> | string
    prompt?: StringWithAggregatesFilter<"AgentCron"> | string
    enabled?: BoolWithAggregatesFilter<"AgentCron"> | boolean
    lastRunAt?: DateTimeNullableWithAggregatesFilter<"AgentCron"> | Date | string | null
    nextRunAt?: DateTimeWithAggregatesFilter<"AgentCron"> | Date | string
    runCount?: IntWithAggregatesFilter<"AgentCron"> | number
    failCount?: IntWithAggregatesFilter<"AgentCron"> | number
    lastError?: StringNullableWithAggregatesFilter<"AgentCron"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AgentCron"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentCron"> | Date | string
  }

  export type AgentMcpServerWhereInput = {
    AND?: AgentMcpServerWhereInput | AgentMcpServerWhereInput[]
    OR?: AgentMcpServerWhereInput[]
    NOT?: AgentMcpServerWhereInput | AgentMcpServerWhereInput[]
    id?: UuidFilter<"AgentMcpServer"> | string
    organizationId?: UuidFilter<"AgentMcpServer"> | string
    createdById?: UuidFilter<"AgentMcpServer"> | string
    name?: StringFilter<"AgentMcpServer"> | string
    transport?: StringFilter<"AgentMcpServer"> | string
    endpoint?: StringFilter<"AgentMcpServer"> | string
    args?: StringNullableFilter<"AgentMcpServer"> | string | null
    env?: StringNullableFilter<"AgentMcpServer"> | string | null
    enabled?: BoolFilter<"AgentMcpServer"> | boolean
    lastConnectedAt?: DateTimeNullableFilter<"AgentMcpServer"> | Date | string | null
    lastError?: StringNullableFilter<"AgentMcpServer"> | string | null
    createdAt?: DateTimeFilter<"AgentMcpServer"> | Date | string
    updatedAt?: DateTimeFilter<"AgentMcpServer"> | Date | string
  }

  export type AgentMcpServerOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    transport?: SortOrder
    endpoint?: SortOrder
    args?: SortOrderInput | SortOrder
    env?: SortOrderInput | SortOrder
    enabled?: SortOrder
    lastConnectedAt?: SortOrderInput | SortOrder
    lastError?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentMcpServerWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AgentMcpServerWhereInput | AgentMcpServerWhereInput[]
    OR?: AgentMcpServerWhereInput[]
    NOT?: AgentMcpServerWhereInput | AgentMcpServerWhereInput[]
    organizationId?: UuidFilter<"AgentMcpServer"> | string
    createdById?: UuidFilter<"AgentMcpServer"> | string
    name?: StringFilter<"AgentMcpServer"> | string
    transport?: StringFilter<"AgentMcpServer"> | string
    endpoint?: StringFilter<"AgentMcpServer"> | string
    args?: StringNullableFilter<"AgentMcpServer"> | string | null
    env?: StringNullableFilter<"AgentMcpServer"> | string | null
    enabled?: BoolFilter<"AgentMcpServer"> | boolean
    lastConnectedAt?: DateTimeNullableFilter<"AgentMcpServer"> | Date | string | null
    lastError?: StringNullableFilter<"AgentMcpServer"> | string | null
    createdAt?: DateTimeFilter<"AgentMcpServer"> | Date | string
    updatedAt?: DateTimeFilter<"AgentMcpServer"> | Date | string
  }, "id">

  export type AgentMcpServerOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    transport?: SortOrder
    endpoint?: SortOrder
    args?: SortOrderInput | SortOrder
    env?: SortOrderInput | SortOrder
    enabled?: SortOrder
    lastConnectedAt?: SortOrderInput | SortOrder
    lastError?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AgentMcpServerCountOrderByAggregateInput
    _max?: AgentMcpServerMaxOrderByAggregateInput
    _min?: AgentMcpServerMinOrderByAggregateInput
  }

  export type AgentMcpServerScalarWhereWithAggregatesInput = {
    AND?: AgentMcpServerScalarWhereWithAggregatesInput | AgentMcpServerScalarWhereWithAggregatesInput[]
    OR?: AgentMcpServerScalarWhereWithAggregatesInput[]
    NOT?: AgentMcpServerScalarWhereWithAggregatesInput | AgentMcpServerScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AgentMcpServer"> | string
    organizationId?: UuidWithAggregatesFilter<"AgentMcpServer"> | string
    createdById?: UuidWithAggregatesFilter<"AgentMcpServer"> | string
    name?: StringWithAggregatesFilter<"AgentMcpServer"> | string
    transport?: StringWithAggregatesFilter<"AgentMcpServer"> | string
    endpoint?: StringWithAggregatesFilter<"AgentMcpServer"> | string
    args?: StringNullableWithAggregatesFilter<"AgentMcpServer"> | string | null
    env?: StringNullableWithAggregatesFilter<"AgentMcpServer"> | string | null
    enabled?: BoolWithAggregatesFilter<"AgentMcpServer"> | boolean
    lastConnectedAt?: DateTimeNullableWithAggregatesFilter<"AgentMcpServer"> | Date | string | null
    lastError?: StringNullableWithAggregatesFilter<"AgentMcpServer"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AgentMcpServer"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AgentMcpServer"> | Date | string
  }

  export type AiUsageTokenWhereInput = {
    AND?: AiUsageTokenWhereInput | AiUsageTokenWhereInput[]
    OR?: AiUsageTokenWhereInput[]
    NOT?: AiUsageTokenWhereInput | AiUsageTokenWhereInput[]
    id?: UuidFilter<"AiUsageToken"> | string
    userId?: UuidFilter<"AiUsageToken"> | string
    name?: StringFilter<"AiUsageToken"> | string
    prefix?: StringFilter<"AiUsageToken"> | string
    tokenHash?: StringFilter<"AiUsageToken"> | string
    lastUsedAt?: DateTimeNullableFilter<"AiUsageToken"> | Date | string | null
    lastUsedIp?: StringNullableFilter<"AiUsageToken"> | string | null
    revokedAt?: DateTimeNullableFilter<"AiUsageToken"> | Date | string | null
    revokedById?: UuidNullableFilter<"AiUsageToken"> | string | null
    organizationId?: UuidFilter<"AiUsageToken"> | string
    createdById?: UuidFilter<"AiUsageToken"> | string
    createdAt?: DateTimeFilter<"AiUsageToken"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageToken"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    revokedBy?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type AiUsageTokenOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    prefix?: SortOrder
    tokenHash?: SortOrder
    lastUsedAt?: SortOrderInput | SortOrder
    lastUsedIp?: SortOrderInput | SortOrder
    revokedAt?: SortOrderInput | SortOrder
    revokedById?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    user?: UserOrderByWithRelationInput
    revokedBy?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type AiUsageTokenWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    prefix?: string
    AND?: AiUsageTokenWhereInput | AiUsageTokenWhereInput[]
    OR?: AiUsageTokenWhereInput[]
    NOT?: AiUsageTokenWhereInput | AiUsageTokenWhereInput[]
    userId?: UuidFilter<"AiUsageToken"> | string
    name?: StringFilter<"AiUsageToken"> | string
    tokenHash?: StringFilter<"AiUsageToken"> | string
    lastUsedAt?: DateTimeNullableFilter<"AiUsageToken"> | Date | string | null
    lastUsedIp?: StringNullableFilter<"AiUsageToken"> | string | null
    revokedAt?: DateTimeNullableFilter<"AiUsageToken"> | Date | string | null
    revokedById?: UuidNullableFilter<"AiUsageToken"> | string | null
    organizationId?: UuidFilter<"AiUsageToken"> | string
    createdById?: UuidFilter<"AiUsageToken"> | string
    createdAt?: DateTimeFilter<"AiUsageToken"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageToken"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    revokedBy?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id" | "prefix">

  export type AiUsageTokenOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    prefix?: SortOrder
    tokenHash?: SortOrder
    lastUsedAt?: SortOrderInput | SortOrder
    lastUsedIp?: SortOrderInput | SortOrder
    revokedAt?: SortOrderInput | SortOrder
    revokedById?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AiUsageTokenCountOrderByAggregateInput
    _max?: AiUsageTokenMaxOrderByAggregateInput
    _min?: AiUsageTokenMinOrderByAggregateInput
  }

  export type AiUsageTokenScalarWhereWithAggregatesInput = {
    AND?: AiUsageTokenScalarWhereWithAggregatesInput | AiUsageTokenScalarWhereWithAggregatesInput[]
    OR?: AiUsageTokenScalarWhereWithAggregatesInput[]
    NOT?: AiUsageTokenScalarWhereWithAggregatesInput | AiUsageTokenScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AiUsageToken"> | string
    userId?: UuidWithAggregatesFilter<"AiUsageToken"> | string
    name?: StringWithAggregatesFilter<"AiUsageToken"> | string
    prefix?: StringWithAggregatesFilter<"AiUsageToken"> | string
    tokenHash?: StringWithAggregatesFilter<"AiUsageToken"> | string
    lastUsedAt?: DateTimeNullableWithAggregatesFilter<"AiUsageToken"> | Date | string | null
    lastUsedIp?: StringNullableWithAggregatesFilter<"AiUsageToken"> | string | null
    revokedAt?: DateTimeNullableWithAggregatesFilter<"AiUsageToken"> | Date | string | null
    revokedById?: UuidNullableWithAggregatesFilter<"AiUsageToken"> | string | null
    organizationId?: UuidWithAggregatesFilter<"AiUsageToken"> | string
    createdById?: UuidWithAggregatesFilter<"AiUsageToken"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AiUsageToken"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AiUsageToken"> | Date | string
  }

  export type AiUsageDeviceWhereInput = {
    AND?: AiUsageDeviceWhereInput | AiUsageDeviceWhereInput[]
    OR?: AiUsageDeviceWhereInput[]
    NOT?: AiUsageDeviceWhereInput | AiUsageDeviceWhereInput[]
    id?: UuidFilter<"AiUsageDevice"> | string
    deviceId?: StringFilter<"AiUsageDevice"> | string
    userId?: UuidFilter<"AiUsageDevice"> | string
    hostname?: StringFilter<"AiUsageDevice"> | string
    osUser?: StringNullableFilter<"AiUsageDevice"> | string | null
    osPlatform?: EnumAiUsageOsPlatformFilter<"AiUsageDevice"> | $Enums.AiUsageOsPlatform
    agentVersion?: StringNullableFilter<"AiUsageDevice"> | string | null
    firstSeenAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    firstSeenIp?: StringNullableFilter<"AiUsageDevice"> | string | null
    lastSeenAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    blockedAt?: DateTimeNullableFilter<"AiUsageDevice"> | Date | string | null
    blockedById?: UuidNullableFilter<"AiUsageDevice"> | string | null
    blockedReason?: StringNullableFilter<"AiUsageDevice"> | string | null
    organizationId?: UuidFilter<"AiUsageDevice"> | string
    createdById?: UuidFilter<"AiUsageDevice"> | string
    createdAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    blockedBy?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    events?: AiUsageEventListRelationFilter
  }

  export type AiUsageDeviceOrderByWithRelationInput = {
    id?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    hostname?: SortOrder
    osUser?: SortOrderInput | SortOrder
    osPlatform?: SortOrder
    agentVersion?: SortOrderInput | SortOrder
    firstSeenAt?: SortOrder
    firstSeenIp?: SortOrderInput | SortOrder
    lastSeenAt?: SortOrder
    blockedAt?: SortOrderInput | SortOrder
    blockedById?: SortOrderInput | SortOrder
    blockedReason?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    user?: UserOrderByWithRelationInput
    blockedBy?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
    events?: AiUsageEventOrderByRelationAggregateInput
  }

  export type AiUsageDeviceWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    deviceId?: string
    AND?: AiUsageDeviceWhereInput | AiUsageDeviceWhereInput[]
    OR?: AiUsageDeviceWhereInput[]
    NOT?: AiUsageDeviceWhereInput | AiUsageDeviceWhereInput[]
    userId?: UuidFilter<"AiUsageDevice"> | string
    hostname?: StringFilter<"AiUsageDevice"> | string
    osUser?: StringNullableFilter<"AiUsageDevice"> | string | null
    osPlatform?: EnumAiUsageOsPlatformFilter<"AiUsageDevice"> | $Enums.AiUsageOsPlatform
    agentVersion?: StringNullableFilter<"AiUsageDevice"> | string | null
    firstSeenAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    firstSeenIp?: StringNullableFilter<"AiUsageDevice"> | string | null
    lastSeenAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    blockedAt?: DateTimeNullableFilter<"AiUsageDevice"> | Date | string | null
    blockedById?: UuidNullableFilter<"AiUsageDevice"> | string | null
    blockedReason?: StringNullableFilter<"AiUsageDevice"> | string | null
    organizationId?: UuidFilter<"AiUsageDevice"> | string
    createdById?: UuidFilter<"AiUsageDevice"> | string
    createdAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    blockedBy?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    events?: AiUsageEventListRelationFilter
  }, "id" | "deviceId">

  export type AiUsageDeviceOrderByWithAggregationInput = {
    id?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    hostname?: SortOrder
    osUser?: SortOrderInput | SortOrder
    osPlatform?: SortOrder
    agentVersion?: SortOrderInput | SortOrder
    firstSeenAt?: SortOrder
    firstSeenIp?: SortOrderInput | SortOrder
    lastSeenAt?: SortOrder
    blockedAt?: SortOrderInput | SortOrder
    blockedById?: SortOrderInput | SortOrder
    blockedReason?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AiUsageDeviceCountOrderByAggregateInput
    _max?: AiUsageDeviceMaxOrderByAggregateInput
    _min?: AiUsageDeviceMinOrderByAggregateInput
  }

  export type AiUsageDeviceScalarWhereWithAggregatesInput = {
    AND?: AiUsageDeviceScalarWhereWithAggregatesInput | AiUsageDeviceScalarWhereWithAggregatesInput[]
    OR?: AiUsageDeviceScalarWhereWithAggregatesInput[]
    NOT?: AiUsageDeviceScalarWhereWithAggregatesInput | AiUsageDeviceScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AiUsageDevice"> | string
    deviceId?: StringWithAggregatesFilter<"AiUsageDevice"> | string
    userId?: UuidWithAggregatesFilter<"AiUsageDevice"> | string
    hostname?: StringWithAggregatesFilter<"AiUsageDevice"> | string
    osUser?: StringNullableWithAggregatesFilter<"AiUsageDevice"> | string | null
    osPlatform?: EnumAiUsageOsPlatformWithAggregatesFilter<"AiUsageDevice"> | $Enums.AiUsageOsPlatform
    agentVersion?: StringNullableWithAggregatesFilter<"AiUsageDevice"> | string | null
    firstSeenAt?: DateTimeWithAggregatesFilter<"AiUsageDevice"> | Date | string
    firstSeenIp?: StringNullableWithAggregatesFilter<"AiUsageDevice"> | string | null
    lastSeenAt?: DateTimeWithAggregatesFilter<"AiUsageDevice"> | Date | string
    blockedAt?: DateTimeNullableWithAggregatesFilter<"AiUsageDevice"> | Date | string | null
    blockedById?: UuidNullableWithAggregatesFilter<"AiUsageDevice"> | string | null
    blockedReason?: StringNullableWithAggregatesFilter<"AiUsageDevice"> | string | null
    organizationId?: UuidWithAggregatesFilter<"AiUsageDevice"> | string
    createdById?: UuidWithAggregatesFilter<"AiUsageDevice"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AiUsageDevice"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AiUsageDevice"> | Date | string
  }

  export type AiUsageEventWhereInput = {
    AND?: AiUsageEventWhereInput | AiUsageEventWhereInput[]
    OR?: AiUsageEventWhereInput[]
    NOT?: AiUsageEventWhereInput | AiUsageEventWhereInput[]
    id?: UuidFilter<"AiUsageEvent"> | string
    rawMessageId?: StringFilter<"AiUsageEvent"> | string
    deviceId?: UuidFilter<"AiUsageEvent"> | string
    userId?: UuidFilter<"AiUsageEvent"> | string
    tool?: EnumAiUsageToolFilter<"AiUsageEvent"> | $Enums.AiUsageTool
    sessionId?: StringFilter<"AiUsageEvent"> | string
    projectPath?: StringFilter<"AiUsageEvent"> | string
    projectBasename?: StringFilter<"AiUsageEvent"> | string
    model?: StringFilter<"AiUsageEvent"> | string
    ts?: DateTimeFilter<"AiUsageEvent"> | Date | string
    receivedAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
    inputTokens?: IntFilter<"AiUsageEvent"> | number
    outputTokens?: IntFilter<"AiUsageEvent"> | number
    cacheCreationTokens?: IntFilter<"AiUsageEvent"> | number
    cacheReadTokens?: IntFilter<"AiUsageEvent"> | number
    totalTokens?: IntFilter<"AiUsageEvent"> | number
    estimatedCostUsd?: DecimalFilter<"AiUsageEvent"> | Decimal | DecimalJsLike | number | string
    gitBranch?: StringNullableFilter<"AiUsageEvent"> | string | null
    agentVersionEvent?: StringNullableFilter<"AiUsageEvent"> | string | null
    worktreeLabel?: StringNullableFilter<"AiUsageEvent"> | string | null
    cwdBasename?: StringNullableFilter<"AiUsageEvent"> | string | null
    turnIndex?: IntNullableFilter<"AiUsageEvent"> | number | null
    toolUseCount?: IntNullableFilter<"AiUsageEvent"> | number | null
    toolNames?: JsonNullableFilter<"AiUsageEvent">
    stopReason?: StringNullableFilter<"AiUsageEvent"> | string | null
    serviceTier?: StringNullableFilter<"AiUsageEvent"> | string | null
    organizationId?: UuidFilter<"AiUsageEvent"> | string
    createdById?: UuidFilter<"AiUsageEvent"> | string
    createdAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
    device?: XOR<AiUsageDeviceScalarRelationFilter, AiUsageDeviceWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type AiUsageEventOrderByWithRelationInput = {
    id?: SortOrder
    rawMessageId?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    tool?: SortOrder
    sessionId?: SortOrder
    projectPath?: SortOrder
    projectBasename?: SortOrder
    model?: SortOrder
    ts?: SortOrder
    receivedAt?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalTokens?: SortOrder
    estimatedCostUsd?: SortOrder
    gitBranch?: SortOrderInput | SortOrder
    agentVersionEvent?: SortOrderInput | SortOrder
    worktreeLabel?: SortOrderInput | SortOrder
    cwdBasename?: SortOrderInput | SortOrder
    turnIndex?: SortOrderInput | SortOrder
    toolUseCount?: SortOrderInput | SortOrder
    toolNames?: SortOrderInput | SortOrder
    stopReason?: SortOrderInput | SortOrder
    serviceTier?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    device?: AiUsageDeviceOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type AiUsageEventWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    rawMessageId?: string
    AND?: AiUsageEventWhereInput | AiUsageEventWhereInput[]
    OR?: AiUsageEventWhereInput[]
    NOT?: AiUsageEventWhereInput | AiUsageEventWhereInput[]
    deviceId?: UuidFilter<"AiUsageEvent"> | string
    userId?: UuidFilter<"AiUsageEvent"> | string
    tool?: EnumAiUsageToolFilter<"AiUsageEvent"> | $Enums.AiUsageTool
    sessionId?: StringFilter<"AiUsageEvent"> | string
    projectPath?: StringFilter<"AiUsageEvent"> | string
    projectBasename?: StringFilter<"AiUsageEvent"> | string
    model?: StringFilter<"AiUsageEvent"> | string
    ts?: DateTimeFilter<"AiUsageEvent"> | Date | string
    receivedAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
    inputTokens?: IntFilter<"AiUsageEvent"> | number
    outputTokens?: IntFilter<"AiUsageEvent"> | number
    cacheCreationTokens?: IntFilter<"AiUsageEvent"> | number
    cacheReadTokens?: IntFilter<"AiUsageEvent"> | number
    totalTokens?: IntFilter<"AiUsageEvent"> | number
    estimatedCostUsd?: DecimalFilter<"AiUsageEvent"> | Decimal | DecimalJsLike | number | string
    gitBranch?: StringNullableFilter<"AiUsageEvent"> | string | null
    agentVersionEvent?: StringNullableFilter<"AiUsageEvent"> | string | null
    worktreeLabel?: StringNullableFilter<"AiUsageEvent"> | string | null
    cwdBasename?: StringNullableFilter<"AiUsageEvent"> | string | null
    turnIndex?: IntNullableFilter<"AiUsageEvent"> | number | null
    toolUseCount?: IntNullableFilter<"AiUsageEvent"> | number | null
    toolNames?: JsonNullableFilter<"AiUsageEvent">
    stopReason?: StringNullableFilter<"AiUsageEvent"> | string | null
    serviceTier?: StringNullableFilter<"AiUsageEvent"> | string | null
    organizationId?: UuidFilter<"AiUsageEvent"> | string
    createdById?: UuidFilter<"AiUsageEvent"> | string
    createdAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
    device?: XOR<AiUsageDeviceScalarRelationFilter, AiUsageDeviceWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id" | "rawMessageId">

  export type AiUsageEventOrderByWithAggregationInput = {
    id?: SortOrder
    rawMessageId?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    tool?: SortOrder
    sessionId?: SortOrder
    projectPath?: SortOrder
    projectBasename?: SortOrder
    model?: SortOrder
    ts?: SortOrder
    receivedAt?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalTokens?: SortOrder
    estimatedCostUsd?: SortOrder
    gitBranch?: SortOrderInput | SortOrder
    agentVersionEvent?: SortOrderInput | SortOrder
    worktreeLabel?: SortOrderInput | SortOrder
    cwdBasename?: SortOrderInput | SortOrder
    turnIndex?: SortOrderInput | SortOrder
    toolUseCount?: SortOrderInput | SortOrder
    toolNames?: SortOrderInput | SortOrder
    stopReason?: SortOrderInput | SortOrder
    serviceTier?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AiUsageEventCountOrderByAggregateInput
    _avg?: AiUsageEventAvgOrderByAggregateInput
    _max?: AiUsageEventMaxOrderByAggregateInput
    _min?: AiUsageEventMinOrderByAggregateInput
    _sum?: AiUsageEventSumOrderByAggregateInput
  }

  export type AiUsageEventScalarWhereWithAggregatesInput = {
    AND?: AiUsageEventScalarWhereWithAggregatesInput | AiUsageEventScalarWhereWithAggregatesInput[]
    OR?: AiUsageEventScalarWhereWithAggregatesInput[]
    NOT?: AiUsageEventScalarWhereWithAggregatesInput | AiUsageEventScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AiUsageEvent"> | string
    rawMessageId?: StringWithAggregatesFilter<"AiUsageEvent"> | string
    deviceId?: UuidWithAggregatesFilter<"AiUsageEvent"> | string
    userId?: UuidWithAggregatesFilter<"AiUsageEvent"> | string
    tool?: EnumAiUsageToolWithAggregatesFilter<"AiUsageEvent"> | $Enums.AiUsageTool
    sessionId?: StringWithAggregatesFilter<"AiUsageEvent"> | string
    projectPath?: StringWithAggregatesFilter<"AiUsageEvent"> | string
    projectBasename?: StringWithAggregatesFilter<"AiUsageEvent"> | string
    model?: StringWithAggregatesFilter<"AiUsageEvent"> | string
    ts?: DateTimeWithAggregatesFilter<"AiUsageEvent"> | Date | string
    receivedAt?: DateTimeWithAggregatesFilter<"AiUsageEvent"> | Date | string
    inputTokens?: IntWithAggregatesFilter<"AiUsageEvent"> | number
    outputTokens?: IntWithAggregatesFilter<"AiUsageEvent"> | number
    cacheCreationTokens?: IntWithAggregatesFilter<"AiUsageEvent"> | number
    cacheReadTokens?: IntWithAggregatesFilter<"AiUsageEvent"> | number
    totalTokens?: IntWithAggregatesFilter<"AiUsageEvent"> | number
    estimatedCostUsd?: DecimalWithAggregatesFilter<"AiUsageEvent"> | Decimal | DecimalJsLike | number | string
    gitBranch?: StringNullableWithAggregatesFilter<"AiUsageEvent"> | string | null
    agentVersionEvent?: StringNullableWithAggregatesFilter<"AiUsageEvent"> | string | null
    worktreeLabel?: StringNullableWithAggregatesFilter<"AiUsageEvent"> | string | null
    cwdBasename?: StringNullableWithAggregatesFilter<"AiUsageEvent"> | string | null
    turnIndex?: IntNullableWithAggregatesFilter<"AiUsageEvent"> | number | null
    toolUseCount?: IntNullableWithAggregatesFilter<"AiUsageEvent"> | number | null
    toolNames?: JsonNullableWithAggregatesFilter<"AiUsageEvent">
    stopReason?: StringNullableWithAggregatesFilter<"AiUsageEvent"> | string | null
    serviceTier?: StringNullableWithAggregatesFilter<"AiUsageEvent"> | string | null
    organizationId?: UuidWithAggregatesFilter<"AiUsageEvent"> | string
    createdById?: UuidWithAggregatesFilter<"AiUsageEvent"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AiUsageEvent"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AiUsageEvent"> | Date | string
  }

  export type AiUsageEventDlqWhereInput = {
    AND?: AiUsageEventDlqWhereInput | AiUsageEventDlqWhereInput[]
    OR?: AiUsageEventDlqWhereInput[]
    NOT?: AiUsageEventDlqWhereInput | AiUsageEventDlqWhereInput[]
    id?: UuidFilter<"AiUsageEventDlq"> | string
    deviceId?: UuidNullableFilter<"AiUsageEventDlq"> | string | null
    reason?: EnumAiUsageDlqReasonFilter<"AiUsageEventDlq"> | $Enums.AiUsageDlqReason
    rawPayload?: JsonFilter<"AiUsageEventDlq">
    organizationId?: UuidFilter<"AiUsageEventDlq"> | string
    createdById?: UuidFilter<"AiUsageEventDlq"> | string
    createdAt?: DateTimeFilter<"AiUsageEventDlq"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageEventDlq"> | Date | string
  }

  export type AiUsageEventDlqOrderByWithRelationInput = {
    id?: SortOrder
    deviceId?: SortOrderInput | SortOrder
    reason?: SortOrder
    rawPayload?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageEventDlqWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AiUsageEventDlqWhereInput | AiUsageEventDlqWhereInput[]
    OR?: AiUsageEventDlqWhereInput[]
    NOT?: AiUsageEventDlqWhereInput | AiUsageEventDlqWhereInput[]
    deviceId?: UuidNullableFilter<"AiUsageEventDlq"> | string | null
    reason?: EnumAiUsageDlqReasonFilter<"AiUsageEventDlq"> | $Enums.AiUsageDlqReason
    rawPayload?: JsonFilter<"AiUsageEventDlq">
    organizationId?: UuidFilter<"AiUsageEventDlq"> | string
    createdById?: UuidFilter<"AiUsageEventDlq"> | string
    createdAt?: DateTimeFilter<"AiUsageEventDlq"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageEventDlq"> | Date | string
  }, "id">

  export type AiUsageEventDlqOrderByWithAggregationInput = {
    id?: SortOrder
    deviceId?: SortOrderInput | SortOrder
    reason?: SortOrder
    rawPayload?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AiUsageEventDlqCountOrderByAggregateInput
    _max?: AiUsageEventDlqMaxOrderByAggregateInput
    _min?: AiUsageEventDlqMinOrderByAggregateInput
  }

  export type AiUsageEventDlqScalarWhereWithAggregatesInput = {
    AND?: AiUsageEventDlqScalarWhereWithAggregatesInput | AiUsageEventDlqScalarWhereWithAggregatesInput[]
    OR?: AiUsageEventDlqScalarWhereWithAggregatesInput[]
    NOT?: AiUsageEventDlqScalarWhereWithAggregatesInput | AiUsageEventDlqScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AiUsageEventDlq"> | string
    deviceId?: UuidNullableWithAggregatesFilter<"AiUsageEventDlq"> | string | null
    reason?: EnumAiUsageDlqReasonWithAggregatesFilter<"AiUsageEventDlq"> | $Enums.AiUsageDlqReason
    rawPayload?: JsonWithAggregatesFilter<"AiUsageEventDlq">
    organizationId?: UuidWithAggregatesFilter<"AiUsageEventDlq"> | string
    createdById?: UuidWithAggregatesFilter<"AiUsageEventDlq"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AiUsageEventDlq"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AiUsageEventDlq"> | Date | string
  }

  export type AiUsageDailyRollupWhereInput = {
    AND?: AiUsageDailyRollupWhereInput | AiUsageDailyRollupWhereInput[]
    OR?: AiUsageDailyRollupWhereInput[]
    NOT?: AiUsageDailyRollupWhereInput | AiUsageDailyRollupWhereInput[]
    id?: UuidFilter<"AiUsageDailyRollup"> | string
    date?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
    userId?: UuidFilter<"AiUsageDailyRollup"> | string
    projectBasename?: StringFilter<"AiUsageDailyRollup"> | string
    tool?: EnumAiUsageToolFilter<"AiUsageDailyRollup"> | $Enums.AiUsageTool
    model?: StringFilter<"AiUsageDailyRollup"> | string
    totalTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    inputTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    outputTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    cacheCreationTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    cacheReadTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    totalCostUsd?: DecimalFilter<"AiUsageDailyRollup"> | Decimal | DecimalJsLike | number | string
    eventCount?: IntFilter<"AiUsageDailyRollup"> | number
    organizationId?: UuidFilter<"AiUsageDailyRollup"> | string
    createdById?: UuidFilter<"AiUsageDailyRollup"> | string
    createdAt?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }

  export type AiUsageDailyRollupOrderByWithRelationInput = {
    id?: SortOrder
    date?: SortOrder
    userId?: SortOrder
    projectBasename?: SortOrder
    tool?: SortOrder
    model?: SortOrder
    totalTokens?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalCostUsd?: SortOrder
    eventCount?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    user?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type AiUsageDailyRollupWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    uniq_rollup_dim?: AiUsageDailyRollupUniq_rollup_dimCompoundUniqueInput
    AND?: AiUsageDailyRollupWhereInput | AiUsageDailyRollupWhereInput[]
    OR?: AiUsageDailyRollupWhereInput[]
    NOT?: AiUsageDailyRollupWhereInput | AiUsageDailyRollupWhereInput[]
    date?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
    userId?: UuidFilter<"AiUsageDailyRollup"> | string
    projectBasename?: StringFilter<"AiUsageDailyRollup"> | string
    tool?: EnumAiUsageToolFilter<"AiUsageDailyRollup"> | $Enums.AiUsageTool
    model?: StringFilter<"AiUsageDailyRollup"> | string
    totalTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    inputTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    outputTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    cacheCreationTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    cacheReadTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    totalCostUsd?: DecimalFilter<"AiUsageDailyRollup"> | Decimal | DecimalJsLike | number | string
    eventCount?: IntFilter<"AiUsageDailyRollup"> | number
    organizationId?: UuidFilter<"AiUsageDailyRollup"> | string
    createdById?: UuidFilter<"AiUsageDailyRollup"> | string
    createdAt?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
  }, "id" | "uniq_rollup_dim">

  export type AiUsageDailyRollupOrderByWithAggregationInput = {
    id?: SortOrder
    date?: SortOrder
    userId?: SortOrder
    projectBasename?: SortOrder
    tool?: SortOrder
    model?: SortOrder
    totalTokens?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalCostUsd?: SortOrder
    eventCount?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AiUsageDailyRollupCountOrderByAggregateInput
    _avg?: AiUsageDailyRollupAvgOrderByAggregateInput
    _max?: AiUsageDailyRollupMaxOrderByAggregateInput
    _min?: AiUsageDailyRollupMinOrderByAggregateInput
    _sum?: AiUsageDailyRollupSumOrderByAggregateInput
  }

  export type AiUsageDailyRollupScalarWhereWithAggregatesInput = {
    AND?: AiUsageDailyRollupScalarWhereWithAggregatesInput | AiUsageDailyRollupScalarWhereWithAggregatesInput[]
    OR?: AiUsageDailyRollupScalarWhereWithAggregatesInput[]
    NOT?: AiUsageDailyRollupScalarWhereWithAggregatesInput | AiUsageDailyRollupScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AiUsageDailyRollup"> | string
    date?: DateTimeWithAggregatesFilter<"AiUsageDailyRollup"> | Date | string
    userId?: UuidWithAggregatesFilter<"AiUsageDailyRollup"> | string
    projectBasename?: StringWithAggregatesFilter<"AiUsageDailyRollup"> | string
    tool?: EnumAiUsageToolWithAggregatesFilter<"AiUsageDailyRollup"> | $Enums.AiUsageTool
    model?: StringWithAggregatesFilter<"AiUsageDailyRollup"> | string
    totalTokens?: BigIntWithAggregatesFilter<"AiUsageDailyRollup"> | bigint | number
    inputTokens?: BigIntWithAggregatesFilter<"AiUsageDailyRollup"> | bigint | number
    outputTokens?: BigIntWithAggregatesFilter<"AiUsageDailyRollup"> | bigint | number
    cacheCreationTokens?: BigIntWithAggregatesFilter<"AiUsageDailyRollup"> | bigint | number
    cacheReadTokens?: BigIntWithAggregatesFilter<"AiUsageDailyRollup"> | bigint | number
    totalCostUsd?: DecimalWithAggregatesFilter<"AiUsageDailyRollup"> | Decimal | DecimalJsLike | number | string
    eventCount?: IntWithAggregatesFilter<"AiUsageDailyRollup"> | number
    organizationId?: UuidWithAggregatesFilter<"AiUsageDailyRollup"> | string
    createdById?: UuidWithAggregatesFilter<"AiUsageDailyRollup"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AiUsageDailyRollup"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AiUsageDailyRollup"> | Date | string
  }

  export type AuditLogWhereInput = {
    AND?: AuditLogWhereInput | AuditLogWhereInput[]
    OR?: AuditLogWhereInput[]
    NOT?: AuditLogWhereInput | AuditLogWhereInput[]
    id?: UuidFilter<"AuditLog"> | string
    region?: StringFilter<"AuditLog"> | string
    tenantId?: StringFilter<"AuditLog"> | string
    who?: StringFilter<"AuditLog"> | string
    what?: StringFilter<"AuditLog"> | string
    when?: DateTimeFilter<"AuditLog"> | Date | string
    where?: StringFilter<"AuditLog"> | string
    why?: StringNullableFilter<"AuditLog"> | string | null
    how?: StringFilter<"AuditLog"> | string
    module?: StringFilter<"AuditLog"> | string
    action?: EnumAuditActionFilter<"AuditLog"> | $Enums.AuditAction
    entityType?: StringFilter<"AuditLog"> | string
    entityId?: UuidFilter<"AuditLog"> | string
    oldValue?: JsonNullableFilter<"AuditLog">
    newValue?: JsonNullableFilter<"AuditLog">
    changes?: JsonNullableFilter<"AuditLog">
    userId?: UuidNullableFilter<"AuditLog"> | string | null
    sessionId?: UuidFilter<"AuditLog"> | string
    traceId?: UuidFilter<"AuditLog"> | string
    requestId?: UuidFilter<"AuditLog"> | string
    ipAddress?: StringFilter<"AuditLog"> | string
    userAgent?: StringFilter<"AuditLog"> | string
    deviceId?: UuidNullableFilter<"AuditLog"> | string | null
    geoLocation?: StringNullableFilter<"AuditLog"> | string | null
    businessType?: StringNullableFilter<"AuditLog"> | string | null
    businessKey?: StringNullableFilter<"AuditLog"> | string | null
    status?: EnumAuditStatusFilter<"AuditLog"> | $Enums.AuditStatus
    errorMessage?: StringNullableFilter<"AuditLog"> | string | null
    duration?: IntNullableFilter<"AuditLog"> | number | null
    isFinancial?: BoolFilter<"AuditLog"> | boolean
    isSensitive?: BoolFilter<"AuditLog"> | boolean
    riskLevel?: EnumRiskLevelFilter<"AuditLog"> | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFilter<"AuditLog"> | $Enums.ComplianceLevel
    retentionYears?: IntFilter<"AuditLog"> | number
    previousHash?: StringNullableFilter<"AuditLog"> | string | null
    currentHash?: StringFilter<"AuditLog"> | string
    signature?: StringNullableFilter<"AuditLog"> | string | null
    createdAt?: DateTimeFilter<"AuditLog"> | Date | string
    archivedAt?: DateTimeNullableFilter<"AuditLog"> | Date | string | null
    databaseChanges?: AuditDatabaseChangeLogListRelationFilter
    user?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    sensitiveOps?: AuditSensitiveOperationLogListRelationFilter
  }

  export type AuditLogOrderByWithRelationInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    who?: SortOrder
    what?: SortOrder
    when?: SortOrder
    where?: SortOrder
    why?: SortOrderInput | SortOrder
    how?: SortOrder
    module?: SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    oldValue?: SortOrderInput | SortOrder
    newValue?: SortOrderInput | SortOrder
    changes?: SortOrderInput | SortOrder
    userId?: SortOrderInput | SortOrder
    sessionId?: SortOrder
    traceId?: SortOrder
    requestId?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    deviceId?: SortOrderInput | SortOrder
    geoLocation?: SortOrderInput | SortOrder
    businessType?: SortOrderInput | SortOrder
    businessKey?: SortOrderInput | SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    duration?: SortOrderInput | SortOrder
    isFinancial?: SortOrder
    isSensitive?: SortOrder
    riskLevel?: SortOrder
    complianceLevel?: SortOrder
    retentionYears?: SortOrder
    previousHash?: SortOrderInput | SortOrder
    currentHash?: SortOrder
    signature?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    archivedAt?: SortOrderInput | SortOrder
    databaseChanges?: AuditDatabaseChangeLogOrderByRelationAggregateInput
    user?: UserOrderByWithRelationInput
    sensitiveOps?: AuditSensitiveOperationLogOrderByRelationAggregateInput
  }

  export type AuditLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    currentHash?: string
    AND?: AuditLogWhereInput | AuditLogWhereInput[]
    OR?: AuditLogWhereInput[]
    NOT?: AuditLogWhereInput | AuditLogWhereInput[]
    region?: StringFilter<"AuditLog"> | string
    tenantId?: StringFilter<"AuditLog"> | string
    who?: StringFilter<"AuditLog"> | string
    what?: StringFilter<"AuditLog"> | string
    when?: DateTimeFilter<"AuditLog"> | Date | string
    where?: StringFilter<"AuditLog"> | string
    why?: StringNullableFilter<"AuditLog"> | string | null
    how?: StringFilter<"AuditLog"> | string
    module?: StringFilter<"AuditLog"> | string
    action?: EnumAuditActionFilter<"AuditLog"> | $Enums.AuditAction
    entityType?: StringFilter<"AuditLog"> | string
    entityId?: UuidFilter<"AuditLog"> | string
    oldValue?: JsonNullableFilter<"AuditLog">
    newValue?: JsonNullableFilter<"AuditLog">
    changes?: JsonNullableFilter<"AuditLog">
    userId?: UuidNullableFilter<"AuditLog"> | string | null
    sessionId?: UuidFilter<"AuditLog"> | string
    traceId?: UuidFilter<"AuditLog"> | string
    requestId?: UuidFilter<"AuditLog"> | string
    ipAddress?: StringFilter<"AuditLog"> | string
    userAgent?: StringFilter<"AuditLog"> | string
    deviceId?: UuidNullableFilter<"AuditLog"> | string | null
    geoLocation?: StringNullableFilter<"AuditLog"> | string | null
    businessType?: StringNullableFilter<"AuditLog"> | string | null
    businessKey?: StringNullableFilter<"AuditLog"> | string | null
    status?: EnumAuditStatusFilter<"AuditLog"> | $Enums.AuditStatus
    errorMessage?: StringNullableFilter<"AuditLog"> | string | null
    duration?: IntNullableFilter<"AuditLog"> | number | null
    isFinancial?: BoolFilter<"AuditLog"> | boolean
    isSensitive?: BoolFilter<"AuditLog"> | boolean
    riskLevel?: EnumRiskLevelFilter<"AuditLog"> | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFilter<"AuditLog"> | $Enums.ComplianceLevel
    retentionYears?: IntFilter<"AuditLog"> | number
    previousHash?: StringNullableFilter<"AuditLog"> | string | null
    signature?: StringNullableFilter<"AuditLog"> | string | null
    createdAt?: DateTimeFilter<"AuditLog"> | Date | string
    archivedAt?: DateTimeNullableFilter<"AuditLog"> | Date | string | null
    databaseChanges?: AuditDatabaseChangeLogListRelationFilter
    user?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    sensitiveOps?: AuditSensitiveOperationLogListRelationFilter
  }, "id" | "currentHash">

  export type AuditLogOrderByWithAggregationInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    who?: SortOrder
    what?: SortOrder
    when?: SortOrder
    where?: SortOrder
    why?: SortOrderInput | SortOrder
    how?: SortOrder
    module?: SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    oldValue?: SortOrderInput | SortOrder
    newValue?: SortOrderInput | SortOrder
    changes?: SortOrderInput | SortOrder
    userId?: SortOrderInput | SortOrder
    sessionId?: SortOrder
    traceId?: SortOrder
    requestId?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    deviceId?: SortOrderInput | SortOrder
    geoLocation?: SortOrderInput | SortOrder
    businessType?: SortOrderInput | SortOrder
    businessKey?: SortOrderInput | SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    duration?: SortOrderInput | SortOrder
    isFinancial?: SortOrder
    isSensitive?: SortOrder
    riskLevel?: SortOrder
    complianceLevel?: SortOrder
    retentionYears?: SortOrder
    previousHash?: SortOrderInput | SortOrder
    currentHash?: SortOrder
    signature?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    archivedAt?: SortOrderInput | SortOrder
    _count?: AuditLogCountOrderByAggregateInput
    _avg?: AuditLogAvgOrderByAggregateInput
    _max?: AuditLogMaxOrderByAggregateInput
    _min?: AuditLogMinOrderByAggregateInput
    _sum?: AuditLogSumOrderByAggregateInput
  }

  export type AuditLogScalarWhereWithAggregatesInput = {
    AND?: AuditLogScalarWhereWithAggregatesInput | AuditLogScalarWhereWithAggregatesInput[]
    OR?: AuditLogScalarWhereWithAggregatesInput[]
    NOT?: AuditLogScalarWhereWithAggregatesInput | AuditLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AuditLog"> | string
    region?: StringWithAggregatesFilter<"AuditLog"> | string
    tenantId?: StringWithAggregatesFilter<"AuditLog"> | string
    who?: StringWithAggregatesFilter<"AuditLog"> | string
    what?: StringWithAggregatesFilter<"AuditLog"> | string
    when?: DateTimeWithAggregatesFilter<"AuditLog"> | Date | string
    where?: StringWithAggregatesFilter<"AuditLog"> | string
    why?: StringNullableWithAggregatesFilter<"AuditLog"> | string | null
    how?: StringWithAggregatesFilter<"AuditLog"> | string
    module?: StringWithAggregatesFilter<"AuditLog"> | string
    action?: EnumAuditActionWithAggregatesFilter<"AuditLog"> | $Enums.AuditAction
    entityType?: StringWithAggregatesFilter<"AuditLog"> | string
    entityId?: UuidWithAggregatesFilter<"AuditLog"> | string
    oldValue?: JsonNullableWithAggregatesFilter<"AuditLog">
    newValue?: JsonNullableWithAggregatesFilter<"AuditLog">
    changes?: JsonNullableWithAggregatesFilter<"AuditLog">
    userId?: UuidNullableWithAggregatesFilter<"AuditLog"> | string | null
    sessionId?: UuidWithAggregatesFilter<"AuditLog"> | string
    traceId?: UuidWithAggregatesFilter<"AuditLog"> | string
    requestId?: UuidWithAggregatesFilter<"AuditLog"> | string
    ipAddress?: StringWithAggregatesFilter<"AuditLog"> | string
    userAgent?: StringWithAggregatesFilter<"AuditLog"> | string
    deviceId?: UuidNullableWithAggregatesFilter<"AuditLog"> | string | null
    geoLocation?: StringNullableWithAggregatesFilter<"AuditLog"> | string | null
    businessType?: StringNullableWithAggregatesFilter<"AuditLog"> | string | null
    businessKey?: StringNullableWithAggregatesFilter<"AuditLog"> | string | null
    status?: EnumAuditStatusWithAggregatesFilter<"AuditLog"> | $Enums.AuditStatus
    errorMessage?: StringNullableWithAggregatesFilter<"AuditLog"> | string | null
    duration?: IntNullableWithAggregatesFilter<"AuditLog"> | number | null
    isFinancial?: BoolWithAggregatesFilter<"AuditLog"> | boolean
    isSensitive?: BoolWithAggregatesFilter<"AuditLog"> | boolean
    riskLevel?: EnumRiskLevelWithAggregatesFilter<"AuditLog"> | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelWithAggregatesFilter<"AuditLog"> | $Enums.ComplianceLevel
    retentionYears?: IntWithAggregatesFilter<"AuditLog"> | number
    previousHash?: StringNullableWithAggregatesFilter<"AuditLog"> | string | null
    currentHash?: StringWithAggregatesFilter<"AuditLog"> | string
    signature?: StringNullableWithAggregatesFilter<"AuditLog"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AuditLog"> | Date | string
    archivedAt?: DateTimeNullableWithAggregatesFilter<"AuditLog"> | Date | string | null
  }

  export type AuditDatabaseChangeLogWhereInput = {
    AND?: AuditDatabaseChangeLogWhereInput | AuditDatabaseChangeLogWhereInput[]
    OR?: AuditDatabaseChangeLogWhereInput[]
    NOT?: AuditDatabaseChangeLogWhereInput | AuditDatabaseChangeLogWhereInput[]
    id?: UuidFilter<"AuditDatabaseChangeLog"> | string
    tableName?: StringFilter<"AuditDatabaseChangeLog"> | string
    operation?: EnumDbOperationFilter<"AuditDatabaseChangeLog"> | $Enums.DbOperation
    recordId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    oldData?: JsonNullableFilter<"AuditDatabaseChangeLog">
    newData?: JsonNullableFilter<"AuditDatabaseChangeLog">
    changedFields?: StringNullableListFilter<"AuditDatabaseChangeLog">
    userId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    auditLogId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    createdAt?: DateTimeFilter<"AuditDatabaseChangeLog"> | Date | string
    auditLog?: XOR<AuditLogScalarRelationFilter, AuditLogWhereInput>
  }

  export type AuditDatabaseChangeLogOrderByWithRelationInput = {
    id?: SortOrder
    tableName?: SortOrder
    operation?: SortOrder
    recordId?: SortOrder
    oldData?: SortOrderInput | SortOrder
    newData?: SortOrderInput | SortOrder
    changedFields?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
    auditLog?: AuditLogOrderByWithRelationInput
  }

  export type AuditDatabaseChangeLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AuditDatabaseChangeLogWhereInput | AuditDatabaseChangeLogWhereInput[]
    OR?: AuditDatabaseChangeLogWhereInput[]
    NOT?: AuditDatabaseChangeLogWhereInput | AuditDatabaseChangeLogWhereInput[]
    tableName?: StringFilter<"AuditDatabaseChangeLog"> | string
    operation?: EnumDbOperationFilter<"AuditDatabaseChangeLog"> | $Enums.DbOperation
    recordId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    oldData?: JsonNullableFilter<"AuditDatabaseChangeLog">
    newData?: JsonNullableFilter<"AuditDatabaseChangeLog">
    changedFields?: StringNullableListFilter<"AuditDatabaseChangeLog">
    userId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    auditLogId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    createdAt?: DateTimeFilter<"AuditDatabaseChangeLog"> | Date | string
    auditLog?: XOR<AuditLogScalarRelationFilter, AuditLogWhereInput>
  }, "id">

  export type AuditDatabaseChangeLogOrderByWithAggregationInput = {
    id?: SortOrder
    tableName?: SortOrder
    operation?: SortOrder
    recordId?: SortOrder
    oldData?: SortOrderInput | SortOrder
    newData?: SortOrderInput | SortOrder
    changedFields?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
    _count?: AuditDatabaseChangeLogCountOrderByAggregateInput
    _max?: AuditDatabaseChangeLogMaxOrderByAggregateInput
    _min?: AuditDatabaseChangeLogMinOrderByAggregateInput
  }

  export type AuditDatabaseChangeLogScalarWhereWithAggregatesInput = {
    AND?: AuditDatabaseChangeLogScalarWhereWithAggregatesInput | AuditDatabaseChangeLogScalarWhereWithAggregatesInput[]
    OR?: AuditDatabaseChangeLogScalarWhereWithAggregatesInput[]
    NOT?: AuditDatabaseChangeLogScalarWhereWithAggregatesInput | AuditDatabaseChangeLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AuditDatabaseChangeLog"> | string
    tableName?: StringWithAggregatesFilter<"AuditDatabaseChangeLog"> | string
    operation?: EnumDbOperationWithAggregatesFilter<"AuditDatabaseChangeLog"> | $Enums.DbOperation
    recordId?: UuidWithAggregatesFilter<"AuditDatabaseChangeLog"> | string
    oldData?: JsonNullableWithAggregatesFilter<"AuditDatabaseChangeLog">
    newData?: JsonNullableWithAggregatesFilter<"AuditDatabaseChangeLog">
    changedFields?: StringNullableListFilter<"AuditDatabaseChangeLog">
    userId?: UuidWithAggregatesFilter<"AuditDatabaseChangeLog"> | string
    auditLogId?: UuidWithAggregatesFilter<"AuditDatabaseChangeLog"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AuditDatabaseChangeLog"> | Date | string
  }

  export type AuditSensitiveOperationLogWhereInput = {
    AND?: AuditSensitiveOperationLogWhereInput | AuditSensitiveOperationLogWhereInput[]
    OR?: AuditSensitiveOperationLogWhereInput[]
    NOT?: AuditSensitiveOperationLogWhereInput | AuditSensitiveOperationLogWhereInput[]
    id?: UuidFilter<"AuditSensitiveOperationLog"> | string
    operationType?: StringFilter<"AuditSensitiveOperationLog"> | string
    description?: StringFilter<"AuditSensitiveOperationLog"> | string
    requiresApproval?: BoolFilter<"AuditSensitiveOperationLog"> | boolean
    approvedBy?: StringNullableFilter<"AuditSensitiveOperationLog"> | string | null
    approvalTime?: DateTimeNullableFilter<"AuditSensitiveOperationLog"> | Date | string | null
    riskLevel?: EnumRiskLevelFilter<"AuditSensitiveOperationLog"> | $Enums.RiskLevel
    mfaVerified?: BoolFilter<"AuditSensitiveOperationLog"> | boolean
    userId?: UuidFilter<"AuditSensitiveOperationLog"> | string
    auditLogId?: UuidFilter<"AuditSensitiveOperationLog"> | string
    createdAt?: DateTimeFilter<"AuditSensitiveOperationLog"> | Date | string
    auditLog?: XOR<AuditLogScalarRelationFilter, AuditLogWhereInput>
  }

  export type AuditSensitiveOperationLogOrderByWithRelationInput = {
    id?: SortOrder
    operationType?: SortOrder
    description?: SortOrder
    requiresApproval?: SortOrder
    approvedBy?: SortOrderInput | SortOrder
    approvalTime?: SortOrderInput | SortOrder
    riskLevel?: SortOrder
    mfaVerified?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
    auditLog?: AuditLogOrderByWithRelationInput
  }

  export type AuditSensitiveOperationLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AuditSensitiveOperationLogWhereInput | AuditSensitiveOperationLogWhereInput[]
    OR?: AuditSensitiveOperationLogWhereInput[]
    NOT?: AuditSensitiveOperationLogWhereInput | AuditSensitiveOperationLogWhereInput[]
    operationType?: StringFilter<"AuditSensitiveOperationLog"> | string
    description?: StringFilter<"AuditSensitiveOperationLog"> | string
    requiresApproval?: BoolFilter<"AuditSensitiveOperationLog"> | boolean
    approvedBy?: StringNullableFilter<"AuditSensitiveOperationLog"> | string | null
    approvalTime?: DateTimeNullableFilter<"AuditSensitiveOperationLog"> | Date | string | null
    riskLevel?: EnumRiskLevelFilter<"AuditSensitiveOperationLog"> | $Enums.RiskLevel
    mfaVerified?: BoolFilter<"AuditSensitiveOperationLog"> | boolean
    userId?: UuidFilter<"AuditSensitiveOperationLog"> | string
    auditLogId?: UuidFilter<"AuditSensitiveOperationLog"> | string
    createdAt?: DateTimeFilter<"AuditSensitiveOperationLog"> | Date | string
    auditLog?: XOR<AuditLogScalarRelationFilter, AuditLogWhereInput>
  }, "id">

  export type AuditSensitiveOperationLogOrderByWithAggregationInput = {
    id?: SortOrder
    operationType?: SortOrder
    description?: SortOrder
    requiresApproval?: SortOrder
    approvedBy?: SortOrderInput | SortOrder
    approvalTime?: SortOrderInput | SortOrder
    riskLevel?: SortOrder
    mfaVerified?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
    _count?: AuditSensitiveOperationLogCountOrderByAggregateInput
    _max?: AuditSensitiveOperationLogMaxOrderByAggregateInput
    _min?: AuditSensitiveOperationLogMinOrderByAggregateInput
  }

  export type AuditSensitiveOperationLogScalarWhereWithAggregatesInput = {
    AND?: AuditSensitiveOperationLogScalarWhereWithAggregatesInput | AuditSensitiveOperationLogScalarWhereWithAggregatesInput[]
    OR?: AuditSensitiveOperationLogScalarWhereWithAggregatesInput[]
    NOT?: AuditSensitiveOperationLogScalarWhereWithAggregatesInput | AuditSensitiveOperationLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AuditSensitiveOperationLog"> | string
    operationType?: StringWithAggregatesFilter<"AuditSensitiveOperationLog"> | string
    description?: StringWithAggregatesFilter<"AuditSensitiveOperationLog"> | string
    requiresApproval?: BoolWithAggregatesFilter<"AuditSensitiveOperationLog"> | boolean
    approvedBy?: StringNullableWithAggregatesFilter<"AuditSensitiveOperationLog"> | string | null
    approvalTime?: DateTimeNullableWithAggregatesFilter<"AuditSensitiveOperationLog"> | Date | string | null
    riskLevel?: EnumRiskLevelWithAggregatesFilter<"AuditSensitiveOperationLog"> | $Enums.RiskLevel
    mfaVerified?: BoolWithAggregatesFilter<"AuditSensitiveOperationLog"> | boolean
    userId?: UuidWithAggregatesFilter<"AuditSensitiveOperationLog"> | string
    auditLogId?: UuidWithAggregatesFilter<"AuditSensitiveOperationLog"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AuditSensitiveOperationLog"> | Date | string
  }

  export type AuditIntegrityCheckLogWhereInput = {
    AND?: AuditIntegrityCheckLogWhereInput | AuditIntegrityCheckLogWhereInput[]
    OR?: AuditIntegrityCheckLogWhereInput[]
    NOT?: AuditIntegrityCheckLogWhereInput | AuditIntegrityCheckLogWhereInput[]
    id?: UuidFilter<"AuditIntegrityCheckLog"> | string
    region?: StringFilter<"AuditIntegrityCheckLog"> | string
    tenantId?: StringFilter<"AuditIntegrityCheckLog"> | string
    checkType?: EnumIntegrityCheckTypeFilter<"AuditIntegrityCheckLog"> | $Enums.IntegrityCheckType
    startTime?: DateTimeFilter<"AuditIntegrityCheckLog"> | Date | string
    endTime?: DateTimeFilter<"AuditIntegrityCheckLog"> | Date | string
    recordCount?: IntFilter<"AuditIntegrityCheckLog"> | number
    passCount?: IntFilter<"AuditIntegrityCheckLog"> | number
    failCount?: IntFilter<"AuditIntegrityCheckLog"> | number
    failures?: JsonNullableFilter<"AuditIntegrityCheckLog">
    status?: EnumCheckStatusFilter<"AuditIntegrityCheckLog"> | $Enums.CheckStatus
    errorMessage?: StringNullableFilter<"AuditIntegrityCheckLog"> | string | null
    createdAt?: DateTimeFilter<"AuditIntegrityCheckLog"> | Date | string
  }

  export type AuditIntegrityCheckLogOrderByWithRelationInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    checkType?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    recordCount?: SortOrder
    passCount?: SortOrder
    failCount?: SortOrder
    failures?: SortOrderInput | SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    createdAt?: SortOrder
  }

  export type AuditIntegrityCheckLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AuditIntegrityCheckLogWhereInput | AuditIntegrityCheckLogWhereInput[]
    OR?: AuditIntegrityCheckLogWhereInput[]
    NOT?: AuditIntegrityCheckLogWhereInput | AuditIntegrityCheckLogWhereInput[]
    region?: StringFilter<"AuditIntegrityCheckLog"> | string
    tenantId?: StringFilter<"AuditIntegrityCheckLog"> | string
    checkType?: EnumIntegrityCheckTypeFilter<"AuditIntegrityCheckLog"> | $Enums.IntegrityCheckType
    startTime?: DateTimeFilter<"AuditIntegrityCheckLog"> | Date | string
    endTime?: DateTimeFilter<"AuditIntegrityCheckLog"> | Date | string
    recordCount?: IntFilter<"AuditIntegrityCheckLog"> | number
    passCount?: IntFilter<"AuditIntegrityCheckLog"> | number
    failCount?: IntFilter<"AuditIntegrityCheckLog"> | number
    failures?: JsonNullableFilter<"AuditIntegrityCheckLog">
    status?: EnumCheckStatusFilter<"AuditIntegrityCheckLog"> | $Enums.CheckStatus
    errorMessage?: StringNullableFilter<"AuditIntegrityCheckLog"> | string | null
    createdAt?: DateTimeFilter<"AuditIntegrityCheckLog"> | Date | string
  }, "id">

  export type AuditIntegrityCheckLogOrderByWithAggregationInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    checkType?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    recordCount?: SortOrder
    passCount?: SortOrder
    failCount?: SortOrder
    failures?: SortOrderInput | SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: AuditIntegrityCheckLogCountOrderByAggregateInput
    _avg?: AuditIntegrityCheckLogAvgOrderByAggregateInput
    _max?: AuditIntegrityCheckLogMaxOrderByAggregateInput
    _min?: AuditIntegrityCheckLogMinOrderByAggregateInput
    _sum?: AuditIntegrityCheckLogSumOrderByAggregateInput
  }

  export type AuditIntegrityCheckLogScalarWhereWithAggregatesInput = {
    AND?: AuditIntegrityCheckLogScalarWhereWithAggregatesInput | AuditIntegrityCheckLogScalarWhereWithAggregatesInput[]
    OR?: AuditIntegrityCheckLogScalarWhereWithAggregatesInput[]
    NOT?: AuditIntegrityCheckLogScalarWhereWithAggregatesInput | AuditIntegrityCheckLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AuditIntegrityCheckLog"> | string
    region?: StringWithAggregatesFilter<"AuditIntegrityCheckLog"> | string
    tenantId?: StringWithAggregatesFilter<"AuditIntegrityCheckLog"> | string
    checkType?: EnumIntegrityCheckTypeWithAggregatesFilter<"AuditIntegrityCheckLog"> | $Enums.IntegrityCheckType
    startTime?: DateTimeWithAggregatesFilter<"AuditIntegrityCheckLog"> | Date | string
    endTime?: DateTimeWithAggregatesFilter<"AuditIntegrityCheckLog"> | Date | string
    recordCount?: IntWithAggregatesFilter<"AuditIntegrityCheckLog"> | number
    passCount?: IntWithAggregatesFilter<"AuditIntegrityCheckLog"> | number
    failCount?: IntWithAggregatesFilter<"AuditIntegrityCheckLog"> | number
    failures?: JsonNullableWithAggregatesFilter<"AuditIntegrityCheckLog">
    status?: EnumCheckStatusWithAggregatesFilter<"AuditIntegrityCheckLog"> | $Enums.CheckStatus
    errorMessage?: StringNullableWithAggregatesFilter<"AuditIntegrityCheckLog"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AuditIntegrityCheckLog"> | Date | string
  }

  export type AutomationTaskWhereInput = {
    AND?: AutomationTaskWhereInput | AutomationTaskWhereInput[]
    OR?: AutomationTaskWhereInput[]
    NOT?: AutomationTaskWhereInput | AutomationTaskWhereInput[]
    id?: UuidFilter<"AutomationTask"> | string
    name?: StringFilter<"AutomationTask"> | string
    code?: StringFilter<"AutomationTask"> | string
    description?: StringNullableFilter<"AutomationTask"> | string | null
    type?: EnumAutomationTaskTypeFilter<"AutomationTask"> | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFilter<"AutomationTask"> | $Enums.AutomationTaskStatus
    scheduleType?: StringFilter<"AutomationTask"> | string
    scheduleConfig?: JsonFilter<"AutomationTask">
    config?: JsonFilter<"AutomationTask">
    timeout?: IntFilter<"AutomationTask"> | number
    retryCount?: IntFilter<"AutomationTask"> | number
    lastRunAt?: DateTimeNullableFilter<"AutomationTask"> | Date | string | null
    lastStatus?: EnumAutomationExecutionStatusNullableFilter<"AutomationTask"> | $Enums.AutomationExecutionStatus | null
    nextRunAt?: DateTimeNullableFilter<"AutomationTask"> | Date | string | null
    totalRuns?: IntFilter<"AutomationTask"> | number
    successRuns?: IntFilter<"AutomationTask"> | number
    failedRuns?: IntFilter<"AutomationTask"> | number
    createdById?: UuidNullableFilter<"AutomationTask"> | string | null
    createdAt?: DateTimeFilter<"AutomationTask"> | Date | string
    updatedAt?: DateTimeFilter<"AutomationTask"> | Date | string
    executions?: AutomationExecutionListRelationFilter
    createdBy?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }

  export type AutomationTaskOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    type?: SortOrder
    status?: SortOrder
    scheduleType?: SortOrder
    scheduleConfig?: SortOrder
    config?: SortOrder
    timeout?: SortOrder
    retryCount?: SortOrder
    lastRunAt?: SortOrderInput | SortOrder
    lastStatus?: SortOrderInput | SortOrder
    nextRunAt?: SortOrderInput | SortOrder
    totalRuns?: SortOrder
    successRuns?: SortOrder
    failedRuns?: SortOrder
    createdById?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    executions?: AutomationExecutionOrderByRelationAggregateInput
    createdBy?: UserOrderByWithRelationInput
  }

  export type AutomationTaskWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: AutomationTaskWhereInput | AutomationTaskWhereInput[]
    OR?: AutomationTaskWhereInput[]
    NOT?: AutomationTaskWhereInput | AutomationTaskWhereInput[]
    name?: StringFilter<"AutomationTask"> | string
    description?: StringNullableFilter<"AutomationTask"> | string | null
    type?: EnumAutomationTaskTypeFilter<"AutomationTask"> | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFilter<"AutomationTask"> | $Enums.AutomationTaskStatus
    scheduleType?: StringFilter<"AutomationTask"> | string
    scheduleConfig?: JsonFilter<"AutomationTask">
    config?: JsonFilter<"AutomationTask">
    timeout?: IntFilter<"AutomationTask"> | number
    retryCount?: IntFilter<"AutomationTask"> | number
    lastRunAt?: DateTimeNullableFilter<"AutomationTask"> | Date | string | null
    lastStatus?: EnumAutomationExecutionStatusNullableFilter<"AutomationTask"> | $Enums.AutomationExecutionStatus | null
    nextRunAt?: DateTimeNullableFilter<"AutomationTask"> | Date | string | null
    totalRuns?: IntFilter<"AutomationTask"> | number
    successRuns?: IntFilter<"AutomationTask"> | number
    failedRuns?: IntFilter<"AutomationTask"> | number
    createdById?: UuidNullableFilter<"AutomationTask"> | string | null
    createdAt?: DateTimeFilter<"AutomationTask"> | Date | string
    updatedAt?: DateTimeFilter<"AutomationTask"> | Date | string
    executions?: AutomationExecutionListRelationFilter
    createdBy?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }, "id" | "code">

  export type AutomationTaskOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    type?: SortOrder
    status?: SortOrder
    scheduleType?: SortOrder
    scheduleConfig?: SortOrder
    config?: SortOrder
    timeout?: SortOrder
    retryCount?: SortOrder
    lastRunAt?: SortOrderInput | SortOrder
    lastStatus?: SortOrderInput | SortOrder
    nextRunAt?: SortOrderInput | SortOrder
    totalRuns?: SortOrder
    successRuns?: SortOrder
    failedRuns?: SortOrder
    createdById?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AutomationTaskCountOrderByAggregateInput
    _avg?: AutomationTaskAvgOrderByAggregateInput
    _max?: AutomationTaskMaxOrderByAggregateInput
    _min?: AutomationTaskMinOrderByAggregateInput
    _sum?: AutomationTaskSumOrderByAggregateInput
  }

  export type AutomationTaskScalarWhereWithAggregatesInput = {
    AND?: AutomationTaskScalarWhereWithAggregatesInput | AutomationTaskScalarWhereWithAggregatesInput[]
    OR?: AutomationTaskScalarWhereWithAggregatesInput[]
    NOT?: AutomationTaskScalarWhereWithAggregatesInput | AutomationTaskScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AutomationTask"> | string
    name?: StringWithAggregatesFilter<"AutomationTask"> | string
    code?: StringWithAggregatesFilter<"AutomationTask"> | string
    description?: StringNullableWithAggregatesFilter<"AutomationTask"> | string | null
    type?: EnumAutomationTaskTypeWithAggregatesFilter<"AutomationTask"> | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusWithAggregatesFilter<"AutomationTask"> | $Enums.AutomationTaskStatus
    scheduleType?: StringWithAggregatesFilter<"AutomationTask"> | string
    scheduleConfig?: JsonWithAggregatesFilter<"AutomationTask">
    config?: JsonWithAggregatesFilter<"AutomationTask">
    timeout?: IntWithAggregatesFilter<"AutomationTask"> | number
    retryCount?: IntWithAggregatesFilter<"AutomationTask"> | number
    lastRunAt?: DateTimeNullableWithAggregatesFilter<"AutomationTask"> | Date | string | null
    lastStatus?: EnumAutomationExecutionStatusNullableWithAggregatesFilter<"AutomationTask"> | $Enums.AutomationExecutionStatus | null
    nextRunAt?: DateTimeNullableWithAggregatesFilter<"AutomationTask"> | Date | string | null
    totalRuns?: IntWithAggregatesFilter<"AutomationTask"> | number
    successRuns?: IntWithAggregatesFilter<"AutomationTask"> | number
    failedRuns?: IntWithAggregatesFilter<"AutomationTask"> | number
    createdById?: UuidNullableWithAggregatesFilter<"AutomationTask"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AutomationTask"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AutomationTask"> | Date | string
  }

  export type AutomationExecutionWhereInput = {
    AND?: AutomationExecutionWhereInput | AutomationExecutionWhereInput[]
    OR?: AutomationExecutionWhereInput[]
    NOT?: AutomationExecutionWhereInput | AutomationExecutionWhereInput[]
    id?: UuidFilter<"AutomationExecution"> | string
    taskId?: UuidFilter<"AutomationExecution"> | string
    status?: EnumAutomationExecutionStatusFilter<"AutomationExecution"> | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFilter<"AutomationExecution"> | Date | string
    completedAt?: DateTimeNullableFilter<"AutomationExecution"> | Date | string | null
    duration?: IntNullableFilter<"AutomationExecution"> | number | null
    result?: JsonNullableFilter<"AutomationExecution">
    error?: StringNullableFilter<"AutomationExecution"> | string | null
    logs?: StringNullableFilter<"AutomationExecution"> | string | null
    triggerType?: StringFilter<"AutomationExecution"> | string
    triggeredBy?: StringNullableFilter<"AutomationExecution"> | string | null
    createdAt?: DateTimeFilter<"AutomationExecution"> | Date | string
    task?: XOR<AutomationTaskScalarRelationFilter, AutomationTaskWhereInput>
  }

  export type AutomationExecutionOrderByWithRelationInput = {
    id?: SortOrder
    taskId?: SortOrder
    status?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrderInput | SortOrder
    duration?: SortOrderInput | SortOrder
    result?: SortOrderInput | SortOrder
    error?: SortOrderInput | SortOrder
    logs?: SortOrderInput | SortOrder
    triggerType?: SortOrder
    triggeredBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    task?: AutomationTaskOrderByWithRelationInput
  }

  export type AutomationExecutionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AutomationExecutionWhereInput | AutomationExecutionWhereInput[]
    OR?: AutomationExecutionWhereInput[]
    NOT?: AutomationExecutionWhereInput | AutomationExecutionWhereInput[]
    taskId?: UuidFilter<"AutomationExecution"> | string
    status?: EnumAutomationExecutionStatusFilter<"AutomationExecution"> | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFilter<"AutomationExecution"> | Date | string
    completedAt?: DateTimeNullableFilter<"AutomationExecution"> | Date | string | null
    duration?: IntNullableFilter<"AutomationExecution"> | number | null
    result?: JsonNullableFilter<"AutomationExecution">
    error?: StringNullableFilter<"AutomationExecution"> | string | null
    logs?: StringNullableFilter<"AutomationExecution"> | string | null
    triggerType?: StringFilter<"AutomationExecution"> | string
    triggeredBy?: StringNullableFilter<"AutomationExecution"> | string | null
    createdAt?: DateTimeFilter<"AutomationExecution"> | Date | string
    task?: XOR<AutomationTaskScalarRelationFilter, AutomationTaskWhereInput>
  }, "id">

  export type AutomationExecutionOrderByWithAggregationInput = {
    id?: SortOrder
    taskId?: SortOrder
    status?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrderInput | SortOrder
    duration?: SortOrderInput | SortOrder
    result?: SortOrderInput | SortOrder
    error?: SortOrderInput | SortOrder
    logs?: SortOrderInput | SortOrder
    triggerType?: SortOrder
    triggeredBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: AutomationExecutionCountOrderByAggregateInput
    _avg?: AutomationExecutionAvgOrderByAggregateInput
    _max?: AutomationExecutionMaxOrderByAggregateInput
    _min?: AutomationExecutionMinOrderByAggregateInput
    _sum?: AutomationExecutionSumOrderByAggregateInput
  }

  export type AutomationExecutionScalarWhereWithAggregatesInput = {
    AND?: AutomationExecutionScalarWhereWithAggregatesInput | AutomationExecutionScalarWhereWithAggregatesInput[]
    OR?: AutomationExecutionScalarWhereWithAggregatesInput[]
    NOT?: AutomationExecutionScalarWhereWithAggregatesInput | AutomationExecutionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AutomationExecution"> | string
    taskId?: UuidWithAggregatesFilter<"AutomationExecution"> | string
    status?: EnumAutomationExecutionStatusWithAggregatesFilter<"AutomationExecution"> | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeWithAggregatesFilter<"AutomationExecution"> | Date | string
    completedAt?: DateTimeNullableWithAggregatesFilter<"AutomationExecution"> | Date | string | null
    duration?: IntNullableWithAggregatesFilter<"AutomationExecution"> | number | null
    result?: JsonNullableWithAggregatesFilter<"AutomationExecution">
    error?: StringNullableWithAggregatesFilter<"AutomationExecution"> | string | null
    logs?: StringNullableWithAggregatesFilter<"AutomationExecution"> | string | null
    triggerType?: StringWithAggregatesFilter<"AutomationExecution"> | string
    triggeredBy?: StringNullableWithAggregatesFilter<"AutomationExecution"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AutomationExecution"> | Date | string
  }

  export type DingtalkSyncConfigWhereInput = {
    AND?: DingtalkSyncConfigWhereInput | DingtalkSyncConfigWhereInput[]
    OR?: DingtalkSyncConfigWhereInput[]
    NOT?: DingtalkSyncConfigWhereInput | DingtalkSyncConfigWhereInput[]
    id?: UuidFilter<"DingtalkSyncConfig"> | string
    taskCode?: StringFilter<"DingtalkSyncConfig"> | string
    formUuid?: StringNullableFilter<"DingtalkSyncConfig"> | string | null
    appType?: StringNullableFilter<"DingtalkSyncConfig"> | string | null
    fieldMapping?: JsonFilter<"DingtalkSyncConfig">
    syncDirection?: StringFilter<"DingtalkSyncConfig"> | string
    searchCondition?: JsonNullableFilter<"DingtalkSyncConfig">
    lookbackMinutes?: IntFilter<"DingtalkSyncConfig"> | number
    metadata?: JsonFilter<"DingtalkSyncConfig">
    createdAt?: DateTimeFilter<"DingtalkSyncConfig"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkSyncConfig"> | Date | string
  }

  export type DingtalkSyncConfigOrderByWithRelationInput = {
    id?: SortOrder
    taskCode?: SortOrder
    formUuid?: SortOrderInput | SortOrder
    appType?: SortOrderInput | SortOrder
    fieldMapping?: SortOrder
    syncDirection?: SortOrder
    searchCondition?: SortOrderInput | SortOrder
    lookbackMinutes?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkSyncConfigWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    taskCode?: string
    AND?: DingtalkSyncConfigWhereInput | DingtalkSyncConfigWhereInput[]
    OR?: DingtalkSyncConfigWhereInput[]
    NOT?: DingtalkSyncConfigWhereInput | DingtalkSyncConfigWhereInput[]
    formUuid?: StringNullableFilter<"DingtalkSyncConfig"> | string | null
    appType?: StringNullableFilter<"DingtalkSyncConfig"> | string | null
    fieldMapping?: JsonFilter<"DingtalkSyncConfig">
    syncDirection?: StringFilter<"DingtalkSyncConfig"> | string
    searchCondition?: JsonNullableFilter<"DingtalkSyncConfig">
    lookbackMinutes?: IntFilter<"DingtalkSyncConfig"> | number
    metadata?: JsonFilter<"DingtalkSyncConfig">
    createdAt?: DateTimeFilter<"DingtalkSyncConfig"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkSyncConfig"> | Date | string
  }, "id" | "taskCode">

  export type DingtalkSyncConfigOrderByWithAggregationInput = {
    id?: SortOrder
    taskCode?: SortOrder
    formUuid?: SortOrderInput | SortOrder
    appType?: SortOrderInput | SortOrder
    fieldMapping?: SortOrder
    syncDirection?: SortOrder
    searchCondition?: SortOrderInput | SortOrder
    lookbackMinutes?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DingtalkSyncConfigCountOrderByAggregateInput
    _avg?: DingtalkSyncConfigAvgOrderByAggregateInput
    _max?: DingtalkSyncConfigMaxOrderByAggregateInput
    _min?: DingtalkSyncConfigMinOrderByAggregateInput
    _sum?: DingtalkSyncConfigSumOrderByAggregateInput
  }

  export type DingtalkSyncConfigScalarWhereWithAggregatesInput = {
    AND?: DingtalkSyncConfigScalarWhereWithAggregatesInput | DingtalkSyncConfigScalarWhereWithAggregatesInput[]
    OR?: DingtalkSyncConfigScalarWhereWithAggregatesInput[]
    NOT?: DingtalkSyncConfigScalarWhereWithAggregatesInput | DingtalkSyncConfigScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DingtalkSyncConfig"> | string
    taskCode?: StringWithAggregatesFilter<"DingtalkSyncConfig"> | string
    formUuid?: StringNullableWithAggregatesFilter<"DingtalkSyncConfig"> | string | null
    appType?: StringNullableWithAggregatesFilter<"DingtalkSyncConfig"> | string | null
    fieldMapping?: JsonWithAggregatesFilter<"DingtalkSyncConfig">
    syncDirection?: StringWithAggregatesFilter<"DingtalkSyncConfig"> | string
    searchCondition?: JsonNullableWithAggregatesFilter<"DingtalkSyncConfig">
    lookbackMinutes?: IntWithAggregatesFilter<"DingtalkSyncConfig"> | number
    metadata?: JsonWithAggregatesFilter<"DingtalkSyncConfig">
    createdAt?: DateTimeWithAggregatesFilter<"DingtalkSyncConfig"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DingtalkSyncConfig"> | Date | string
  }

  export type DingtalkLeaveCodeWhereInput = {
    AND?: DingtalkLeaveCodeWhereInput | DingtalkLeaveCodeWhereInput[]
    OR?: DingtalkLeaveCodeWhereInput[]
    NOT?: DingtalkLeaveCodeWhereInput | DingtalkLeaveCodeWhereInput[]
    id?: UuidFilter<"DingtalkLeaveCode"> | string
    code?: StringFilter<"DingtalkLeaveCode"> | string
    name?: StringFilter<"DingtalkLeaveCode"> | string
    year?: IntNullableFilter<"DingtalkLeaveCode"> | number | null
    category?: StringFilter<"DingtalkLeaveCode"> | string
    isActive?: BoolFilter<"DingtalkLeaveCode"> | boolean
    metadata?: JsonFilter<"DingtalkLeaveCode">
    createdAt?: DateTimeFilter<"DingtalkLeaveCode"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkLeaveCode"> | Date | string
  }

  export type DingtalkLeaveCodeOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    year?: SortOrderInput | SortOrder
    category?: SortOrder
    isActive?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkLeaveCodeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: DingtalkLeaveCodeWhereInput | DingtalkLeaveCodeWhereInput[]
    OR?: DingtalkLeaveCodeWhereInput[]
    NOT?: DingtalkLeaveCodeWhereInput | DingtalkLeaveCodeWhereInput[]
    name?: StringFilter<"DingtalkLeaveCode"> | string
    year?: IntNullableFilter<"DingtalkLeaveCode"> | number | null
    category?: StringFilter<"DingtalkLeaveCode"> | string
    isActive?: BoolFilter<"DingtalkLeaveCode"> | boolean
    metadata?: JsonFilter<"DingtalkLeaveCode">
    createdAt?: DateTimeFilter<"DingtalkLeaveCode"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkLeaveCode"> | Date | string
  }, "id" | "code">

  export type DingtalkLeaveCodeOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    year?: SortOrderInput | SortOrder
    category?: SortOrder
    isActive?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DingtalkLeaveCodeCountOrderByAggregateInput
    _avg?: DingtalkLeaveCodeAvgOrderByAggregateInput
    _max?: DingtalkLeaveCodeMaxOrderByAggregateInput
    _min?: DingtalkLeaveCodeMinOrderByAggregateInput
    _sum?: DingtalkLeaveCodeSumOrderByAggregateInput
  }

  export type DingtalkLeaveCodeScalarWhereWithAggregatesInput = {
    AND?: DingtalkLeaveCodeScalarWhereWithAggregatesInput | DingtalkLeaveCodeScalarWhereWithAggregatesInput[]
    OR?: DingtalkLeaveCodeScalarWhereWithAggregatesInput[]
    NOT?: DingtalkLeaveCodeScalarWhereWithAggregatesInput | DingtalkLeaveCodeScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DingtalkLeaveCode"> | string
    code?: StringWithAggregatesFilter<"DingtalkLeaveCode"> | string
    name?: StringWithAggregatesFilter<"DingtalkLeaveCode"> | string
    year?: IntNullableWithAggregatesFilter<"DingtalkLeaveCode"> | number | null
    category?: StringWithAggregatesFilter<"DingtalkLeaveCode"> | string
    isActive?: BoolWithAggregatesFilter<"DingtalkLeaveCode"> | boolean
    metadata?: JsonWithAggregatesFilter<"DingtalkLeaveCode">
    createdAt?: DateTimeWithAggregatesFilter<"DingtalkLeaveCode"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DingtalkLeaveCode"> | Date | string
  }

  export type DingtalkLeaveQuotaSnapshotWhereInput = {
    AND?: DingtalkLeaveQuotaSnapshotWhereInput | DingtalkLeaveQuotaSnapshotWhereInput[]
    OR?: DingtalkLeaveQuotaSnapshotWhereInput[]
    NOT?: DingtalkLeaveQuotaSnapshotWhereInput | DingtalkLeaveQuotaSnapshotWhereInput[]
    id?: UuidFilter<"DingtalkLeaveQuotaSnapshot"> | string
    userId?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    employeeName?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    employeeNumber?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    leaveCode?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    leaveType?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    quotaCycle?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    totalDays?: DecimalFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    usedDays?: DecimalFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    remainingDays?: DecimalFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    startDate?: DateTimeNullableFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string | null
    endDate?: DateTimeNullableFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string | null
    usageRecords?: JsonNullableFilter<"DingtalkLeaveQuotaSnapshot">
    releaseRecords?: JsonNullableFilter<"DingtalkLeaveQuotaSnapshot">
    snapshotAt?: DateTimeFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
    createdAt?: DateTimeFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
  }

  export type DingtalkLeaveQuotaSnapshotOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    leaveCode?: SortOrder
    leaveType?: SortOrder
    quotaCycle?: SortOrder
    totalDays?: SortOrder
    usedDays?: SortOrder
    remainingDays?: SortOrder
    startDate?: SortOrderInput | SortOrder
    endDate?: SortOrderInput | SortOrder
    usageRecords?: SortOrderInput | SortOrder
    releaseRecords?: SortOrderInput | SortOrder
    snapshotAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkLeaveQuotaSnapshotWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId_leaveCode_quotaCycle_startDate_endDate?: DingtalkLeaveQuotaSnapshotUserIdLeaveCodeQuotaCycleStartDateEndDateCompoundUniqueInput
    AND?: DingtalkLeaveQuotaSnapshotWhereInput | DingtalkLeaveQuotaSnapshotWhereInput[]
    OR?: DingtalkLeaveQuotaSnapshotWhereInput[]
    NOT?: DingtalkLeaveQuotaSnapshotWhereInput | DingtalkLeaveQuotaSnapshotWhereInput[]
    userId?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    employeeName?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    employeeNumber?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    leaveCode?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    leaveType?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    quotaCycle?: StringFilter<"DingtalkLeaveQuotaSnapshot"> | string
    totalDays?: DecimalFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    usedDays?: DecimalFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    remainingDays?: DecimalFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    startDate?: DateTimeNullableFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string | null
    endDate?: DateTimeNullableFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string | null
    usageRecords?: JsonNullableFilter<"DingtalkLeaveQuotaSnapshot">
    releaseRecords?: JsonNullableFilter<"DingtalkLeaveQuotaSnapshot">
    snapshotAt?: DateTimeFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
    createdAt?: DateTimeFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
  }, "id" | "userId_leaveCode_quotaCycle_startDate_endDate">

  export type DingtalkLeaveQuotaSnapshotOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    leaveCode?: SortOrder
    leaveType?: SortOrder
    quotaCycle?: SortOrder
    totalDays?: SortOrder
    usedDays?: SortOrder
    remainingDays?: SortOrder
    startDate?: SortOrderInput | SortOrder
    endDate?: SortOrderInput | SortOrder
    usageRecords?: SortOrderInput | SortOrder
    releaseRecords?: SortOrderInput | SortOrder
    snapshotAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DingtalkLeaveQuotaSnapshotCountOrderByAggregateInput
    _avg?: DingtalkLeaveQuotaSnapshotAvgOrderByAggregateInput
    _max?: DingtalkLeaveQuotaSnapshotMaxOrderByAggregateInput
    _min?: DingtalkLeaveQuotaSnapshotMinOrderByAggregateInput
    _sum?: DingtalkLeaveQuotaSnapshotSumOrderByAggregateInput
  }

  export type DingtalkLeaveQuotaSnapshotScalarWhereWithAggregatesInput = {
    AND?: DingtalkLeaveQuotaSnapshotScalarWhereWithAggregatesInput | DingtalkLeaveQuotaSnapshotScalarWhereWithAggregatesInput[]
    OR?: DingtalkLeaveQuotaSnapshotScalarWhereWithAggregatesInput[]
    NOT?: DingtalkLeaveQuotaSnapshotScalarWhereWithAggregatesInput | DingtalkLeaveQuotaSnapshotScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | string
    userId?: StringWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | string
    employeeName?: StringWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | string
    employeeNumber?: StringWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | string
    leaveCode?: StringWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | string
    leaveType?: StringWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | string
    quotaCycle?: StringWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | string
    totalDays?: DecimalWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    usedDays?: DecimalWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    remainingDays?: DecimalWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | Decimal | DecimalJsLike | number | string
    startDate?: DateTimeNullableWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string | null
    endDate?: DateTimeNullableWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string | null
    usageRecords?: JsonNullableWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot">
    releaseRecords?: JsonNullableWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot">
    snapshotAt?: DateTimeWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
    createdAt?: DateTimeWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DingtalkLeaveQuotaSnapshot"> | Date | string
  }

  export type SapPurchaseSyncRecordWhereInput = {
    AND?: SapPurchaseSyncRecordWhereInput | SapPurchaseSyncRecordWhereInput[]
    OR?: SapPurchaseSyncRecordWhereInput[]
    NOT?: SapPurchaseSyncRecordWhereInput | SapPurchaseSyncRecordWhereInput[]
    id?: UuidFilter<"SapPurchaseSyncRecord"> | string
    serialNumber?: StringFilter<"SapPurchaseSyncRecord"> | string
    formInstanceId?: StringFilter<"SapPurchaseSyncRecord"> | string
    applicantName?: StringFilter<"SapPurchaseSyncRecord"> | string
    budgetAmount?: DecimalFilter<"SapPurchaseSyncRecord"> | Decimal | DecimalJsLike | number | string
    sapPrNumber?: StringNullableFilter<"SapPurchaseSyncRecord"> | string | null
    sapStatus?: StringFilter<"SapPurchaseSyncRecord"> | string
    sapMessages?: JsonNullableFilter<"SapPurchaseSyncRecord">
    sapRawResponse?: JsonNullableFilter<"SapPurchaseSyncRecord">
    approverChain?: StringNullableFilter<"SapPurchaseSyncRecord"> | string | null
    syncedAt?: DateTimeFilter<"SapPurchaseSyncRecord"> | Date | string
    createdAt?: DateTimeFilter<"SapPurchaseSyncRecord"> | Date | string
    updatedAt?: DateTimeFilter<"SapPurchaseSyncRecord"> | Date | string
  }

  export type SapPurchaseSyncRecordOrderByWithRelationInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    applicantName?: SortOrder
    budgetAmount?: SortOrder
    sapPrNumber?: SortOrderInput | SortOrder
    sapStatus?: SortOrder
    sapMessages?: SortOrderInput | SortOrder
    sapRawResponse?: SortOrderInput | SortOrder
    approverChain?: SortOrderInput | SortOrder
    syncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseSyncRecordWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    serialNumber?: string
    AND?: SapPurchaseSyncRecordWhereInput | SapPurchaseSyncRecordWhereInput[]
    OR?: SapPurchaseSyncRecordWhereInput[]
    NOT?: SapPurchaseSyncRecordWhereInput | SapPurchaseSyncRecordWhereInput[]
    formInstanceId?: StringFilter<"SapPurchaseSyncRecord"> | string
    applicantName?: StringFilter<"SapPurchaseSyncRecord"> | string
    budgetAmount?: DecimalFilter<"SapPurchaseSyncRecord"> | Decimal | DecimalJsLike | number | string
    sapPrNumber?: StringNullableFilter<"SapPurchaseSyncRecord"> | string | null
    sapStatus?: StringFilter<"SapPurchaseSyncRecord"> | string
    sapMessages?: JsonNullableFilter<"SapPurchaseSyncRecord">
    sapRawResponse?: JsonNullableFilter<"SapPurchaseSyncRecord">
    approverChain?: StringNullableFilter<"SapPurchaseSyncRecord"> | string | null
    syncedAt?: DateTimeFilter<"SapPurchaseSyncRecord"> | Date | string
    createdAt?: DateTimeFilter<"SapPurchaseSyncRecord"> | Date | string
    updatedAt?: DateTimeFilter<"SapPurchaseSyncRecord"> | Date | string
  }, "id" | "serialNumber">

  export type SapPurchaseSyncRecordOrderByWithAggregationInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    applicantName?: SortOrder
    budgetAmount?: SortOrder
    sapPrNumber?: SortOrderInput | SortOrder
    sapStatus?: SortOrder
    sapMessages?: SortOrderInput | SortOrder
    sapRawResponse?: SortOrderInput | SortOrder
    approverChain?: SortOrderInput | SortOrder
    syncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SapPurchaseSyncRecordCountOrderByAggregateInput
    _avg?: SapPurchaseSyncRecordAvgOrderByAggregateInput
    _max?: SapPurchaseSyncRecordMaxOrderByAggregateInput
    _min?: SapPurchaseSyncRecordMinOrderByAggregateInput
    _sum?: SapPurchaseSyncRecordSumOrderByAggregateInput
  }

  export type SapPurchaseSyncRecordScalarWhereWithAggregatesInput = {
    AND?: SapPurchaseSyncRecordScalarWhereWithAggregatesInput | SapPurchaseSyncRecordScalarWhereWithAggregatesInput[]
    OR?: SapPurchaseSyncRecordScalarWhereWithAggregatesInput[]
    NOT?: SapPurchaseSyncRecordScalarWhereWithAggregatesInput | SapPurchaseSyncRecordScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SapPurchaseSyncRecord"> | string
    serialNumber?: StringWithAggregatesFilter<"SapPurchaseSyncRecord"> | string
    formInstanceId?: StringWithAggregatesFilter<"SapPurchaseSyncRecord"> | string
    applicantName?: StringWithAggregatesFilter<"SapPurchaseSyncRecord"> | string
    budgetAmount?: DecimalWithAggregatesFilter<"SapPurchaseSyncRecord"> | Decimal | DecimalJsLike | number | string
    sapPrNumber?: StringNullableWithAggregatesFilter<"SapPurchaseSyncRecord"> | string | null
    sapStatus?: StringWithAggregatesFilter<"SapPurchaseSyncRecord"> | string
    sapMessages?: JsonNullableWithAggregatesFilter<"SapPurchaseSyncRecord">
    sapRawResponse?: JsonNullableWithAggregatesFilter<"SapPurchaseSyncRecord">
    approverChain?: StringNullableWithAggregatesFilter<"SapPurchaseSyncRecord"> | string | null
    syncedAt?: DateTimeWithAggregatesFilter<"SapPurchaseSyncRecord"> | Date | string
    createdAt?: DateTimeWithAggregatesFilter<"SapPurchaseSyncRecord"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SapPurchaseSyncRecord"> | Date | string
  }

  export type DingtalkEmployeeWhereInput = {
    AND?: DingtalkEmployeeWhereInput | DingtalkEmployeeWhereInput[]
    OR?: DingtalkEmployeeWhereInput[]
    NOT?: DingtalkEmployeeWhereInput | DingtalkEmployeeWhereInput[]
    id?: UuidFilter<"DingtalkEmployee"> | string
    userId?: StringFilter<"DingtalkEmployee"> | string
    name?: StringFilter<"DingtalkEmployee"> | string
    employeeNumber?: StringFilter<"DingtalkEmployee"> | string
    department?: StringFilter<"DingtalkEmployee"> | string
    position?: StringFilter<"DingtalkEmployee"> | string
    rank?: StringFilter<"DingtalkEmployee"> | string
    phone?: StringFilter<"DingtalkEmployee"> | string
    country?: StringFilter<"DingtalkEmployee"> | string
    workPlace?: StringFilter<"DingtalkEmployee"> | string
    contractCompany?: StringFilter<"DingtalkEmployee"> | string
    bank?: StringFilter<"DingtalkEmployee"> | string
    bankCardLast4?: StringFilter<"DingtalkEmployee"> | string
    monthlyStandardHours?: StringFilter<"DingtalkEmployee"> | string
    workHourLimit?: StringFilter<"DingtalkEmployee"> | string
    joinDate?: DateTimeNullableFilter<"DingtalkEmployee"> | Date | string | null
    workStartDate?: DateTimeNullableFilter<"DingtalkEmployee"> | Date | string | null
    tenureDays?: IntFilter<"DingtalkEmployee"> | number
    status?: StringFilter<"DingtalkEmployee"> | string
    lastSyncedAt?: DateTimeNullableFilter<"DingtalkEmployee"> | Date | string | null
    createdAt?: DateTimeFilter<"DingtalkEmployee"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkEmployee"> | Date | string
  }

  export type DingtalkEmployeeOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    employeeNumber?: SortOrder
    department?: SortOrder
    position?: SortOrder
    rank?: SortOrder
    phone?: SortOrder
    country?: SortOrder
    workPlace?: SortOrder
    contractCompany?: SortOrder
    bank?: SortOrder
    bankCardLast4?: SortOrder
    monthlyStandardHours?: SortOrder
    workHourLimit?: SortOrder
    joinDate?: SortOrderInput | SortOrder
    workStartDate?: SortOrderInput | SortOrder
    tenureDays?: SortOrder
    status?: SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId?: string
    AND?: DingtalkEmployeeWhereInput | DingtalkEmployeeWhereInput[]
    OR?: DingtalkEmployeeWhereInput[]
    NOT?: DingtalkEmployeeWhereInput | DingtalkEmployeeWhereInput[]
    name?: StringFilter<"DingtalkEmployee"> | string
    employeeNumber?: StringFilter<"DingtalkEmployee"> | string
    department?: StringFilter<"DingtalkEmployee"> | string
    position?: StringFilter<"DingtalkEmployee"> | string
    rank?: StringFilter<"DingtalkEmployee"> | string
    phone?: StringFilter<"DingtalkEmployee"> | string
    country?: StringFilter<"DingtalkEmployee"> | string
    workPlace?: StringFilter<"DingtalkEmployee"> | string
    contractCompany?: StringFilter<"DingtalkEmployee"> | string
    bank?: StringFilter<"DingtalkEmployee"> | string
    bankCardLast4?: StringFilter<"DingtalkEmployee"> | string
    monthlyStandardHours?: StringFilter<"DingtalkEmployee"> | string
    workHourLimit?: StringFilter<"DingtalkEmployee"> | string
    joinDate?: DateTimeNullableFilter<"DingtalkEmployee"> | Date | string | null
    workStartDate?: DateTimeNullableFilter<"DingtalkEmployee"> | Date | string | null
    tenureDays?: IntFilter<"DingtalkEmployee"> | number
    status?: StringFilter<"DingtalkEmployee"> | string
    lastSyncedAt?: DateTimeNullableFilter<"DingtalkEmployee"> | Date | string | null
    createdAt?: DateTimeFilter<"DingtalkEmployee"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkEmployee"> | Date | string
  }, "id" | "userId">

  export type DingtalkEmployeeOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    employeeNumber?: SortOrder
    department?: SortOrder
    position?: SortOrder
    rank?: SortOrder
    phone?: SortOrder
    country?: SortOrder
    workPlace?: SortOrder
    contractCompany?: SortOrder
    bank?: SortOrder
    bankCardLast4?: SortOrder
    monthlyStandardHours?: SortOrder
    workHourLimit?: SortOrder
    joinDate?: SortOrderInput | SortOrder
    workStartDate?: SortOrderInput | SortOrder
    tenureDays?: SortOrder
    status?: SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DingtalkEmployeeCountOrderByAggregateInput
    _avg?: DingtalkEmployeeAvgOrderByAggregateInput
    _max?: DingtalkEmployeeMaxOrderByAggregateInput
    _min?: DingtalkEmployeeMinOrderByAggregateInput
    _sum?: DingtalkEmployeeSumOrderByAggregateInput
  }

  export type DingtalkEmployeeScalarWhereWithAggregatesInput = {
    AND?: DingtalkEmployeeScalarWhereWithAggregatesInput | DingtalkEmployeeScalarWhereWithAggregatesInput[]
    OR?: DingtalkEmployeeScalarWhereWithAggregatesInput[]
    NOT?: DingtalkEmployeeScalarWhereWithAggregatesInput | DingtalkEmployeeScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DingtalkEmployee"> | string
    userId?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    name?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    employeeNumber?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    department?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    position?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    rank?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    phone?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    country?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    workPlace?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    contractCompany?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    bank?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    bankCardLast4?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    monthlyStandardHours?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    workHourLimit?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    joinDate?: DateTimeNullableWithAggregatesFilter<"DingtalkEmployee"> | Date | string | null
    workStartDate?: DateTimeNullableWithAggregatesFilter<"DingtalkEmployee"> | Date | string | null
    tenureDays?: IntWithAggregatesFilter<"DingtalkEmployee"> | number
    status?: StringWithAggregatesFilter<"DingtalkEmployee"> | string
    lastSyncedAt?: DateTimeNullableWithAggregatesFilter<"DingtalkEmployee"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"DingtalkEmployee"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DingtalkEmployee"> | Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodWhereInput = {
    AND?: DingtalkEmployeeEmploymentPeriodWhereInput | DingtalkEmployeeEmploymentPeriodWhereInput[]
    OR?: DingtalkEmployeeEmploymentPeriodWhereInput[]
    NOT?: DingtalkEmployeeEmploymentPeriodWhereInput | DingtalkEmployeeEmploymentPeriodWhereInput[]
    id?: UuidFilter<"DingtalkEmployeeEmploymentPeriod"> | string
    userId?: StringFilter<"DingtalkEmployeeEmploymentPeriod"> | string
    periodIndex?: IntFilter<"DingtalkEmployeeEmploymentPeriod"> | number
    joinDate?: DateTimeFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
    leaveDate?: DateTimeNullableFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string | null
    countInTenure?: BoolFilter<"DingtalkEmployeeEmploymentPeriod"> | boolean
    note?: StringFilter<"DingtalkEmployeeEmploymentPeriod"> | string
    createdAt?: DateTimeFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    periodIndex?: SortOrder
    joinDate?: SortOrder
    leaveDate?: SortOrderInput | SortOrder
    countInTenure?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeEmploymentPeriodWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId_periodIndex?: DingtalkEmployeeEmploymentPeriodUserIdPeriodIndexCompoundUniqueInput
    AND?: DingtalkEmployeeEmploymentPeriodWhereInput | DingtalkEmployeeEmploymentPeriodWhereInput[]
    OR?: DingtalkEmployeeEmploymentPeriodWhereInput[]
    NOT?: DingtalkEmployeeEmploymentPeriodWhereInput | DingtalkEmployeeEmploymentPeriodWhereInput[]
    userId?: StringFilter<"DingtalkEmployeeEmploymentPeriod"> | string
    periodIndex?: IntFilter<"DingtalkEmployeeEmploymentPeriod"> | number
    joinDate?: DateTimeFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
    leaveDate?: DateTimeNullableFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string | null
    countInTenure?: BoolFilter<"DingtalkEmployeeEmploymentPeriod"> | boolean
    note?: StringFilter<"DingtalkEmployeeEmploymentPeriod"> | string
    createdAt?: DateTimeFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
  }, "id" | "userId_periodIndex">

  export type DingtalkEmployeeEmploymentPeriodOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    periodIndex?: SortOrder
    joinDate?: SortOrder
    leaveDate?: SortOrderInput | SortOrder
    countInTenure?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DingtalkEmployeeEmploymentPeriodCountOrderByAggregateInput
    _avg?: DingtalkEmployeeEmploymentPeriodAvgOrderByAggregateInput
    _max?: DingtalkEmployeeEmploymentPeriodMaxOrderByAggregateInput
    _min?: DingtalkEmployeeEmploymentPeriodMinOrderByAggregateInput
    _sum?: DingtalkEmployeeEmploymentPeriodSumOrderByAggregateInput
  }

  export type DingtalkEmployeeEmploymentPeriodScalarWhereWithAggregatesInput = {
    AND?: DingtalkEmployeeEmploymentPeriodScalarWhereWithAggregatesInput | DingtalkEmployeeEmploymentPeriodScalarWhereWithAggregatesInput[]
    OR?: DingtalkEmployeeEmploymentPeriodScalarWhereWithAggregatesInput[]
    NOT?: DingtalkEmployeeEmploymentPeriodScalarWhereWithAggregatesInput | DingtalkEmployeeEmploymentPeriodScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | string
    userId?: StringWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | string
    periodIndex?: IntWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | number
    joinDate?: DateTimeWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
    leaveDate?: DateTimeNullableWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string | null
    countInTenure?: BoolWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | boolean
    note?: StringWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | string
    createdAt?: DateTimeWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DingtalkEmployeeEmploymentPeriod"> | Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodWhereInput = {
    AND?: DingtalkEmployeeSuspensionPeriodWhereInput | DingtalkEmployeeSuspensionPeriodWhereInput[]
    OR?: DingtalkEmployeeSuspensionPeriodWhereInput[]
    NOT?: DingtalkEmployeeSuspensionPeriodWhereInput | DingtalkEmployeeSuspensionPeriodWhereInput[]
    id?: UuidFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    userId?: StringFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    startDate?: DateTimeFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
    endDate?: DateTimeNullableFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string | null
    reason?: StringFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    note?: StringFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    createdAt?: DateTimeFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrderInput | SortOrder
    reason?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeSuspensionPeriodWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: DingtalkEmployeeSuspensionPeriodWhereInput | DingtalkEmployeeSuspensionPeriodWhereInput[]
    OR?: DingtalkEmployeeSuspensionPeriodWhereInput[]
    NOT?: DingtalkEmployeeSuspensionPeriodWhereInput | DingtalkEmployeeSuspensionPeriodWhereInput[]
    userId?: StringFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    startDate?: DateTimeFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
    endDate?: DateTimeNullableFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string | null
    reason?: StringFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    note?: StringFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    createdAt?: DateTimeFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
  }, "id">

  export type DingtalkEmployeeSuspensionPeriodOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrderInput | SortOrder
    reason?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DingtalkEmployeeSuspensionPeriodCountOrderByAggregateInput
    _max?: DingtalkEmployeeSuspensionPeriodMaxOrderByAggregateInput
    _min?: DingtalkEmployeeSuspensionPeriodMinOrderByAggregateInput
  }

  export type DingtalkEmployeeSuspensionPeriodScalarWhereWithAggregatesInput = {
    AND?: DingtalkEmployeeSuspensionPeriodScalarWhereWithAggregatesInput | DingtalkEmployeeSuspensionPeriodScalarWhereWithAggregatesInput[]
    OR?: DingtalkEmployeeSuspensionPeriodScalarWhereWithAggregatesInput[]
    NOT?: DingtalkEmployeeSuspensionPeriodScalarWhereWithAggregatesInput | DingtalkEmployeeSuspensionPeriodScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    userId?: StringWithAggregatesFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    startDate?: DateTimeWithAggregatesFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
    endDate?: DateTimeNullableWithAggregatesFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string | null
    reason?: StringWithAggregatesFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    note?: StringWithAggregatesFilter<"DingtalkEmployeeSuspensionPeriod"> | string
    createdAt?: DateTimeWithAggregatesFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DingtalkEmployeeSuspensionPeriod"> | Date | string
  }

  export type SapPurchaseCacheWhereInput = {
    AND?: SapPurchaseCacheWhereInput | SapPurchaseCacheWhereInput[]
    OR?: SapPurchaseCacheWhereInput[]
    NOT?: SapPurchaseCacheWhereInput | SapPurchaseCacheWhereInput[]
    id?: UuidFilter<"SapPurchaseCache"> | string
    serialNumber?: StringFilter<"SapPurchaseCache"> | string
    formInstanceId?: StringFilter<"SapPurchaseCache"> | string
    sapEnv?: StringFilter<"SapPurchaseCache"> | string
    applicantName?: StringFilter<"SapPurchaseCache"> | string
    applicantDept?: StringFilter<"SapPurchaseCache"> | string
    budgetNumber?: StringFilter<"SapPurchaseCache"> | string
    budgetAmount?: DecimalFilter<"SapPurchaseCache"> | Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: StringFilter<"SapPurchaseCache"> | string
    applicationDate?: StringFilter<"SapPurchaseCache"> | string
    demandCategory?: StringFilter<"SapPurchaseCache"> | string
    purchasingCompanyName?: StringFilter<"SapPurchaseCache"> | string
    materialGroup?: StringFilter<"SapPurchaseCache"> | string
    formData?: JsonFilter<"SapPurchaseCache">
    yidaModifiedAt?: StringFilter<"SapPurchaseCache"> | string
    createdAt?: DateTimeFilter<"SapPurchaseCache"> | Date | string
    updatedAt?: DateTimeFilter<"SapPurchaseCache"> | Date | string
  }

  export type SapPurchaseCacheOrderByWithRelationInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    sapEnv?: SortOrder
    applicantName?: SortOrder
    applicantDept?: SortOrder
    budgetNumber?: SortOrder
    budgetAmount?: SortOrder
    purchaseProjectDescription?: SortOrder
    applicationDate?: SortOrder
    demandCategory?: SortOrder
    purchasingCompanyName?: SortOrder
    materialGroup?: SortOrder
    formData?: SortOrder
    yidaModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseCacheWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    serialNumber?: string
    AND?: SapPurchaseCacheWhereInput | SapPurchaseCacheWhereInput[]
    OR?: SapPurchaseCacheWhereInput[]
    NOT?: SapPurchaseCacheWhereInput | SapPurchaseCacheWhereInput[]
    formInstanceId?: StringFilter<"SapPurchaseCache"> | string
    sapEnv?: StringFilter<"SapPurchaseCache"> | string
    applicantName?: StringFilter<"SapPurchaseCache"> | string
    applicantDept?: StringFilter<"SapPurchaseCache"> | string
    budgetNumber?: StringFilter<"SapPurchaseCache"> | string
    budgetAmount?: DecimalFilter<"SapPurchaseCache"> | Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: StringFilter<"SapPurchaseCache"> | string
    applicationDate?: StringFilter<"SapPurchaseCache"> | string
    demandCategory?: StringFilter<"SapPurchaseCache"> | string
    purchasingCompanyName?: StringFilter<"SapPurchaseCache"> | string
    materialGroup?: StringFilter<"SapPurchaseCache"> | string
    formData?: JsonFilter<"SapPurchaseCache">
    yidaModifiedAt?: StringFilter<"SapPurchaseCache"> | string
    createdAt?: DateTimeFilter<"SapPurchaseCache"> | Date | string
    updatedAt?: DateTimeFilter<"SapPurchaseCache"> | Date | string
  }, "id" | "serialNumber">

  export type SapPurchaseCacheOrderByWithAggregationInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    sapEnv?: SortOrder
    applicantName?: SortOrder
    applicantDept?: SortOrder
    budgetNumber?: SortOrder
    budgetAmount?: SortOrder
    purchaseProjectDescription?: SortOrder
    applicationDate?: SortOrder
    demandCategory?: SortOrder
    purchasingCompanyName?: SortOrder
    materialGroup?: SortOrder
    formData?: SortOrder
    yidaModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SapPurchaseCacheCountOrderByAggregateInput
    _avg?: SapPurchaseCacheAvgOrderByAggregateInput
    _max?: SapPurchaseCacheMaxOrderByAggregateInput
    _min?: SapPurchaseCacheMinOrderByAggregateInput
    _sum?: SapPurchaseCacheSumOrderByAggregateInput
  }

  export type SapPurchaseCacheScalarWhereWithAggregatesInput = {
    AND?: SapPurchaseCacheScalarWhereWithAggregatesInput | SapPurchaseCacheScalarWhereWithAggregatesInput[]
    OR?: SapPurchaseCacheScalarWhereWithAggregatesInput[]
    NOT?: SapPurchaseCacheScalarWhereWithAggregatesInput | SapPurchaseCacheScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SapPurchaseCache"> | string
    serialNumber?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    formInstanceId?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    sapEnv?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    applicantName?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    applicantDept?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    budgetNumber?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    budgetAmount?: DecimalWithAggregatesFilter<"SapPurchaseCache"> | Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    applicationDate?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    demandCategory?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    purchasingCompanyName?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    materialGroup?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    formData?: JsonWithAggregatesFilter<"SapPurchaseCache">
    yidaModifiedAt?: StringWithAggregatesFilter<"SapPurchaseCache"> | string
    createdAt?: DateTimeWithAggregatesFilter<"SapPurchaseCache"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SapPurchaseCache"> | Date | string
  }

  export type AdpPtoScheduleWhereInput = {
    AND?: AdpPtoScheduleWhereInput | AdpPtoScheduleWhereInput[]
    OR?: AdpPtoScheduleWhereInput[]
    NOT?: AdpPtoScheduleWhereInput | AdpPtoScheduleWhereInput[]
    id?: StringFilter<"AdpPtoSchedule"> | string
    userId?: UuidFilter<"AdpPtoSchedule"> | string
    adpAoid?: StringFilter<"AdpPtoSchedule"> | string
    leaveDate?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    startTime?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    endTime?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    adpEntryId?: StringFilter<"AdpPtoSchedule"> | string
    syncedAt?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type AdpPtoScheduleOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    adpAoid?: SortOrder
    leaveDate?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    adpEntryId?: SortOrder
    syncedAt?: SortOrder
    user?: UserOrderByWithRelationInput
  }

  export type AdpPtoScheduleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId_adpEntryId?: AdpPtoScheduleUserIdAdpEntryIdCompoundUniqueInput
    AND?: AdpPtoScheduleWhereInput | AdpPtoScheduleWhereInput[]
    OR?: AdpPtoScheduleWhereInput[]
    NOT?: AdpPtoScheduleWhereInput | AdpPtoScheduleWhereInput[]
    userId?: UuidFilter<"AdpPtoSchedule"> | string
    adpAoid?: StringFilter<"AdpPtoSchedule"> | string
    leaveDate?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    startTime?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    endTime?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    adpEntryId?: StringFilter<"AdpPtoSchedule"> | string
    syncedAt?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "userId_adpEntryId">

  export type AdpPtoScheduleOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    adpAoid?: SortOrder
    leaveDate?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    adpEntryId?: SortOrder
    syncedAt?: SortOrder
    _count?: AdpPtoScheduleCountOrderByAggregateInput
    _max?: AdpPtoScheduleMaxOrderByAggregateInput
    _min?: AdpPtoScheduleMinOrderByAggregateInput
  }

  export type AdpPtoScheduleScalarWhereWithAggregatesInput = {
    AND?: AdpPtoScheduleScalarWhereWithAggregatesInput | AdpPtoScheduleScalarWhereWithAggregatesInput[]
    OR?: AdpPtoScheduleScalarWhereWithAggregatesInput[]
    NOT?: AdpPtoScheduleScalarWhereWithAggregatesInput | AdpPtoScheduleScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"AdpPtoSchedule"> | string
    userId?: UuidWithAggregatesFilter<"AdpPtoSchedule"> | string
    adpAoid?: StringWithAggregatesFilter<"AdpPtoSchedule"> | string
    leaveDate?: DateTimeWithAggregatesFilter<"AdpPtoSchedule"> | Date | string
    startTime?: DateTimeWithAggregatesFilter<"AdpPtoSchedule"> | Date | string
    endTime?: DateTimeWithAggregatesFilter<"AdpPtoSchedule"> | Date | string
    adpEntryId?: StringWithAggregatesFilter<"AdpPtoSchedule"> | string
    syncedAt?: DateTimeWithAggregatesFilter<"AdpPtoSchedule"> | Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanWhereInput = {
    AND?: DingtalkAnnualLeaveReleasePlanWhereInput | DingtalkAnnualLeaveReleasePlanWhereInput[]
    OR?: DingtalkAnnualLeaveReleasePlanWhereInput[]
    NOT?: DingtalkAnnualLeaveReleasePlanWhereInput | DingtalkAnnualLeaveReleasePlanWhereInput[]
    id?: UuidFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    userId?: StringFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    employeeName?: StringFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    employeeNumber?: StringFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    year?: IntFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    status?: StringFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    joinDate?: DateTimeNullableFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string | null
    workStartDate?: DateTimeNullableFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string | null
    adjustmentDays?: DecimalFilter<"DingtalkAnnualLeaveReleasePlan"> | Decimal | DecimalJsLike | number | string
    notCountDays?: IntFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    totalDays?: IntFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    releaseSchedule?: JsonFilter<"DingtalkAnnualLeaveReleasePlan">
    lastCalculatedAt?: DateTimeFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
    createdAt?: DateTimeFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    year?: SortOrder
    status?: SortOrder
    joinDate?: SortOrderInput | SortOrder
    workStartDate?: SortOrderInput | SortOrder
    adjustmentDays?: SortOrder
    notCountDays?: SortOrder
    totalDays?: SortOrder
    releaseSchedule?: SortOrder
    lastCalculatedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkAnnualLeaveReleasePlanWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId_year?: DingtalkAnnualLeaveReleasePlanUserIdYearCompoundUniqueInput
    AND?: DingtalkAnnualLeaveReleasePlanWhereInput | DingtalkAnnualLeaveReleasePlanWhereInput[]
    OR?: DingtalkAnnualLeaveReleasePlanWhereInput[]
    NOT?: DingtalkAnnualLeaveReleasePlanWhereInput | DingtalkAnnualLeaveReleasePlanWhereInput[]
    userId?: StringFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    employeeName?: StringFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    employeeNumber?: StringFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    year?: IntFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    status?: StringFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    joinDate?: DateTimeNullableFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string | null
    workStartDate?: DateTimeNullableFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string | null
    adjustmentDays?: DecimalFilter<"DingtalkAnnualLeaveReleasePlan"> | Decimal | DecimalJsLike | number | string
    notCountDays?: IntFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    totalDays?: IntFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    releaseSchedule?: JsonFilter<"DingtalkAnnualLeaveReleasePlan">
    lastCalculatedAt?: DateTimeFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
    createdAt?: DateTimeFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
    updatedAt?: DateTimeFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
  }, "id" | "userId_year">

  export type DingtalkAnnualLeaveReleasePlanOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    year?: SortOrder
    status?: SortOrder
    joinDate?: SortOrderInput | SortOrder
    workStartDate?: SortOrderInput | SortOrder
    adjustmentDays?: SortOrder
    notCountDays?: SortOrder
    totalDays?: SortOrder
    releaseSchedule?: SortOrder
    lastCalculatedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DingtalkAnnualLeaveReleasePlanCountOrderByAggregateInput
    _avg?: DingtalkAnnualLeaveReleasePlanAvgOrderByAggregateInput
    _max?: DingtalkAnnualLeaveReleasePlanMaxOrderByAggregateInput
    _min?: DingtalkAnnualLeaveReleasePlanMinOrderByAggregateInput
    _sum?: DingtalkAnnualLeaveReleasePlanSumOrderByAggregateInput
  }

  export type DingtalkAnnualLeaveReleasePlanScalarWhereWithAggregatesInput = {
    AND?: DingtalkAnnualLeaveReleasePlanScalarWhereWithAggregatesInput | DingtalkAnnualLeaveReleasePlanScalarWhereWithAggregatesInput[]
    OR?: DingtalkAnnualLeaveReleasePlanScalarWhereWithAggregatesInput[]
    NOT?: DingtalkAnnualLeaveReleasePlanScalarWhereWithAggregatesInput | DingtalkAnnualLeaveReleasePlanScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    userId?: StringWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    employeeName?: StringWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    employeeNumber?: StringWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    year?: IntWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    status?: StringWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | string
    joinDate?: DateTimeNullableWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string | null
    workStartDate?: DateTimeNullableWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string | null
    adjustmentDays?: DecimalWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | Decimal | DecimalJsLike | number | string
    notCountDays?: IntWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    totalDays?: IntWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | number
    releaseSchedule?: JsonWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan">
    lastCalculatedAt?: DateTimeWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
    createdAt?: DateTimeWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DingtalkAnnualLeaveReleasePlan"> | Date | string
  }

  export type DevItemWhereInput = {
    AND?: DevItemWhereInput | DevItemWhereInput[]
    OR?: DevItemWhereInput[]
    NOT?: DevItemWhereInput | DevItemWhereInput[]
    id?: UuidFilter<"DevItem"> | string
    code?: StringFilter<"DevItem"> | string
    title?: StringFilter<"DevItem"> | string
    description?: StringNullableFilter<"DevItem"> | string | null
    itemType?: EnumDevItemTypeFilter<"DevItem"> | $Enums.DevItemType
    status?: EnumDevItemStatusFilter<"DevItem"> | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFilter<"DevItem"> | $Enums.DevItemPriority
    severity?: EnumDevItemSeverityNullableFilter<"DevItem"> | $Enums.DevItemSeverity | null
    moduleKey?: StringNullableFilter<"DevItem"> | string | null
    parentId?: UuidNullableFilter<"DevItem"> | string | null
    ownerId?: UuidFilter<"DevItem"> | string
    reporterId?: UuidFilter<"DevItem"> | string
    reviewerId?: UuidNullableFilter<"DevItem"> | string | null
    reviewedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    startAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    devEtaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    testEtaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    etaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    devCompletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    testCompletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    content?: JsonNullableFilter<"DevItem">
    labels?: JsonNullableFilter<"DevItem">
    createdAt?: DateTimeFilter<"DevItem"> | Date | string
    updatedAt?: DateTimeFilter<"DevItem"> | Date | string
    deletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    parent?: XOR<DevItemNullableScalarRelationFilter, DevItemWhereInput> | null
    children?: DevItemListRelationFilter
    owner?: XOR<UserScalarRelationFilter, UserWhereInput>
    reporter?: XOR<UserScalarRelationFilter, UserWhereInput>
    reviewer?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }

  export type DevItemOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    itemType?: SortOrder
    status?: SortOrder
    priority?: SortOrder
    severity?: SortOrderInput | SortOrder
    moduleKey?: SortOrderInput | SortOrder
    parentId?: SortOrderInput | SortOrder
    ownerId?: SortOrder
    reporterId?: SortOrder
    reviewerId?: SortOrderInput | SortOrder
    reviewedAt?: SortOrderInput | SortOrder
    startAt?: SortOrderInput | SortOrder
    devEtaAt?: SortOrderInput | SortOrder
    testEtaAt?: SortOrderInput | SortOrder
    etaAt?: SortOrderInput | SortOrder
    devCompletedAt?: SortOrderInput | SortOrder
    testCompletedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    content?: SortOrderInput | SortOrder
    labels?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    parent?: DevItemOrderByWithRelationInput
    children?: DevItemOrderByRelationAggregateInput
    owner?: UserOrderByWithRelationInput
    reporter?: UserOrderByWithRelationInput
    reviewer?: UserOrderByWithRelationInput
  }

  export type DevItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: DevItemWhereInput | DevItemWhereInput[]
    OR?: DevItemWhereInput[]
    NOT?: DevItemWhereInput | DevItemWhereInput[]
    title?: StringFilter<"DevItem"> | string
    description?: StringNullableFilter<"DevItem"> | string | null
    itemType?: EnumDevItemTypeFilter<"DevItem"> | $Enums.DevItemType
    status?: EnumDevItemStatusFilter<"DevItem"> | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFilter<"DevItem"> | $Enums.DevItemPriority
    severity?: EnumDevItemSeverityNullableFilter<"DevItem"> | $Enums.DevItemSeverity | null
    moduleKey?: StringNullableFilter<"DevItem"> | string | null
    parentId?: UuidNullableFilter<"DevItem"> | string | null
    ownerId?: UuidFilter<"DevItem"> | string
    reporterId?: UuidFilter<"DevItem"> | string
    reviewerId?: UuidNullableFilter<"DevItem"> | string | null
    reviewedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    startAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    devEtaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    testEtaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    etaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    devCompletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    testCompletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    content?: JsonNullableFilter<"DevItem">
    labels?: JsonNullableFilter<"DevItem">
    createdAt?: DateTimeFilter<"DevItem"> | Date | string
    updatedAt?: DateTimeFilter<"DevItem"> | Date | string
    deletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    parent?: XOR<DevItemNullableScalarRelationFilter, DevItemWhereInput> | null
    children?: DevItemListRelationFilter
    owner?: XOR<UserScalarRelationFilter, UserWhereInput>
    reporter?: XOR<UserScalarRelationFilter, UserWhereInput>
    reviewer?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }, "id" | "code">

  export type DevItemOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    itemType?: SortOrder
    status?: SortOrder
    priority?: SortOrder
    severity?: SortOrderInput | SortOrder
    moduleKey?: SortOrderInput | SortOrder
    parentId?: SortOrderInput | SortOrder
    ownerId?: SortOrder
    reporterId?: SortOrder
    reviewerId?: SortOrderInput | SortOrder
    reviewedAt?: SortOrderInput | SortOrder
    startAt?: SortOrderInput | SortOrder
    devEtaAt?: SortOrderInput | SortOrder
    testEtaAt?: SortOrderInput | SortOrder
    etaAt?: SortOrderInput | SortOrder
    devCompletedAt?: SortOrderInput | SortOrder
    testCompletedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    content?: SortOrderInput | SortOrder
    labels?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: DevItemCountOrderByAggregateInput
    _max?: DevItemMaxOrderByAggregateInput
    _min?: DevItemMinOrderByAggregateInput
  }

  export type DevItemScalarWhereWithAggregatesInput = {
    AND?: DevItemScalarWhereWithAggregatesInput | DevItemScalarWhereWithAggregatesInput[]
    OR?: DevItemScalarWhereWithAggregatesInput[]
    NOT?: DevItemScalarWhereWithAggregatesInput | DevItemScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DevItem"> | string
    code?: StringWithAggregatesFilter<"DevItem"> | string
    title?: StringWithAggregatesFilter<"DevItem"> | string
    description?: StringNullableWithAggregatesFilter<"DevItem"> | string | null
    itemType?: EnumDevItemTypeWithAggregatesFilter<"DevItem"> | $Enums.DevItemType
    status?: EnumDevItemStatusWithAggregatesFilter<"DevItem"> | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityWithAggregatesFilter<"DevItem"> | $Enums.DevItemPriority
    severity?: EnumDevItemSeverityNullableWithAggregatesFilter<"DevItem"> | $Enums.DevItemSeverity | null
    moduleKey?: StringNullableWithAggregatesFilter<"DevItem"> | string | null
    parentId?: UuidNullableWithAggregatesFilter<"DevItem"> | string | null
    ownerId?: UuidWithAggregatesFilter<"DevItem"> | string
    reporterId?: UuidWithAggregatesFilter<"DevItem"> | string
    reviewerId?: UuidNullableWithAggregatesFilter<"DevItem"> | string | null
    reviewedAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
    startAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
    devEtaAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
    testEtaAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
    etaAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
    devCompletedAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
    testCompletedAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
    completedAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
    content?: JsonNullableWithAggregatesFilter<"DevItem">
    labels?: JsonNullableWithAggregatesFilter<"DevItem">
    createdAt?: DateTimeWithAggregatesFilter<"DevItem"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DevItem"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"DevItem"> | Date | string | null
  }

  export type DevItemSequenceWhereInput = {
    AND?: DevItemSequenceWhereInput | DevItemSequenceWhereInput[]
    OR?: DevItemSequenceWhereInput[]
    NOT?: DevItemSequenceWhereInput | DevItemSequenceWhereInput[]
    prefix?: StringFilter<"DevItemSequence"> | string
    current?: IntFilter<"DevItemSequence"> | number
    createdAt?: DateTimeFilter<"DevItemSequence"> | Date | string
    updatedAt?: DateTimeFilter<"DevItemSequence"> | Date | string
  }

  export type DevItemSequenceOrderByWithRelationInput = {
    prefix?: SortOrder
    current?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DevItemSequenceWhereUniqueInput = Prisma.AtLeast<{
    prefix?: string
    AND?: DevItemSequenceWhereInput | DevItemSequenceWhereInput[]
    OR?: DevItemSequenceWhereInput[]
    NOT?: DevItemSequenceWhereInput | DevItemSequenceWhereInput[]
    current?: IntFilter<"DevItemSequence"> | number
    createdAt?: DateTimeFilter<"DevItemSequence"> | Date | string
    updatedAt?: DateTimeFilter<"DevItemSequence"> | Date | string
  }, "prefix">

  export type DevItemSequenceOrderByWithAggregationInput = {
    prefix?: SortOrder
    current?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DevItemSequenceCountOrderByAggregateInput
    _avg?: DevItemSequenceAvgOrderByAggregateInput
    _max?: DevItemSequenceMaxOrderByAggregateInput
    _min?: DevItemSequenceMinOrderByAggregateInput
    _sum?: DevItemSequenceSumOrderByAggregateInput
  }

  export type DevItemSequenceScalarWhereWithAggregatesInput = {
    AND?: DevItemSequenceScalarWhereWithAggregatesInput | DevItemSequenceScalarWhereWithAggregatesInput[]
    OR?: DevItemSequenceScalarWhereWithAggregatesInput[]
    NOT?: DevItemSequenceScalarWhereWithAggregatesInput | DevItemSequenceScalarWhereWithAggregatesInput[]
    prefix?: StringWithAggregatesFilter<"DevItemSequence"> | string
    current?: IntWithAggregatesFilter<"DevItemSequence"> | number
    createdAt?: DateTimeWithAggregatesFilter<"DevItemSequence"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DevItemSequence"> | Date | string
  }

  export type ReleaseNoteWhereInput = {
    AND?: ReleaseNoteWhereInput | ReleaseNoteWhereInput[]
    OR?: ReleaseNoteWhereInput[]
    NOT?: ReleaseNoteWhereInput | ReleaseNoteWhereInput[]
    id?: UuidFilter<"ReleaseNote"> | string
    version?: StringFilter<"ReleaseNote"> | string
    title?: StringFilter<"ReleaseNote"> | string
    content?: JsonNullableFilter<"ReleaseNote">
    releasedAt?: DateTimeFilter<"ReleaseNote"> | Date | string
    createdBy?: UuidFilter<"ReleaseNote"> | string
    createdAt?: DateTimeFilter<"ReleaseNote"> | Date | string
    updatedAt?: DateTimeFilter<"ReleaseNote"> | Date | string
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type ReleaseNoteOrderByWithRelationInput = {
    id?: SortOrder
    version?: SortOrder
    title?: SortOrder
    content?: SortOrderInput | SortOrder
    releasedAt?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    creator?: UserOrderByWithRelationInput
  }

  export type ReleaseNoteWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    version?: string
    AND?: ReleaseNoteWhereInput | ReleaseNoteWhereInput[]
    OR?: ReleaseNoteWhereInput[]
    NOT?: ReleaseNoteWhereInput | ReleaseNoteWhereInput[]
    title?: StringFilter<"ReleaseNote"> | string
    content?: JsonNullableFilter<"ReleaseNote">
    releasedAt?: DateTimeFilter<"ReleaseNote"> | Date | string
    createdBy?: UuidFilter<"ReleaseNote"> | string
    createdAt?: DateTimeFilter<"ReleaseNote"> | Date | string
    updatedAt?: DateTimeFilter<"ReleaseNote"> | Date | string
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "version">

  export type ReleaseNoteOrderByWithAggregationInput = {
    id?: SortOrder
    version?: SortOrder
    title?: SortOrder
    content?: SortOrderInput | SortOrder
    releasedAt?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: ReleaseNoteCountOrderByAggregateInput
    _max?: ReleaseNoteMaxOrderByAggregateInput
    _min?: ReleaseNoteMinOrderByAggregateInput
  }

  export type ReleaseNoteScalarWhereWithAggregatesInput = {
    AND?: ReleaseNoteScalarWhereWithAggregatesInput | ReleaseNoteScalarWhereWithAggregatesInput[]
    OR?: ReleaseNoteScalarWhereWithAggregatesInput[]
    NOT?: ReleaseNoteScalarWhereWithAggregatesInput | ReleaseNoteScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ReleaseNote"> | string
    version?: StringWithAggregatesFilter<"ReleaseNote"> | string
    title?: StringWithAggregatesFilter<"ReleaseNote"> | string
    content?: JsonNullableWithAggregatesFilter<"ReleaseNote">
    releasedAt?: DateTimeWithAggregatesFilter<"ReleaseNote"> | Date | string
    createdBy?: UuidWithAggregatesFilter<"ReleaseNote"> | string
    createdAt?: DateTimeWithAggregatesFilter<"ReleaseNote"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ReleaseNote"> | Date | string
  }

  export type FeedbackWhereInput = {
    AND?: FeedbackWhereInput | FeedbackWhereInput[]
    OR?: FeedbackWhereInput[]
    NOT?: FeedbackWhereInput | FeedbackWhereInput[]
    id?: UuidFilter<"Feedback"> | string
    type?: EnumFeedbackTypeFilter<"Feedback"> | $Enums.FeedbackType
    title?: StringFilter<"Feedback"> | string
    content?: StringFilter<"Feedback"> | string
    attachments?: StringNullableListFilter<"Feedback">
    pageUrl?: StringNullableFilter<"Feedback"> | string | null
    userAgent?: StringNullableFilter<"Feedback"> | string | null
    status?: EnumFeedbackStatusFilter<"Feedback"> | $Enums.FeedbackStatus
    priority?: EnumFeedbackPriorityNullableFilter<"Feedback"> | $Enums.FeedbackPriority | null
    adminNote?: StringNullableFilter<"Feedback"> | string | null
    adminReply?: StringNullableFilter<"Feedback"> | string | null
    assigneeId?: UuidNullableFilter<"Feedback"> | string | null
    resolvedAt?: DateTimeNullableFilter<"Feedback"> | Date | string | null
    userId?: UuidFilter<"Feedback"> | string
    region?: StringFilter<"Feedback"> | string
    createdAt?: DateTimeFilter<"Feedback"> | Date | string
    updatedAt?: DateTimeFilter<"Feedback"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Feedback"> | Date | string | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    assignee?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }

  export type FeedbackOrderByWithRelationInput = {
    id?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    attachments?: SortOrder
    pageUrl?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    status?: SortOrder
    priority?: SortOrderInput | SortOrder
    adminNote?: SortOrderInput | SortOrder
    adminReply?: SortOrderInput | SortOrder
    assigneeId?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    userId?: SortOrder
    region?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    user?: UserOrderByWithRelationInput
    assignee?: UserOrderByWithRelationInput
  }

  export type FeedbackWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: FeedbackWhereInput | FeedbackWhereInput[]
    OR?: FeedbackWhereInput[]
    NOT?: FeedbackWhereInput | FeedbackWhereInput[]
    type?: EnumFeedbackTypeFilter<"Feedback"> | $Enums.FeedbackType
    title?: StringFilter<"Feedback"> | string
    content?: StringFilter<"Feedback"> | string
    attachments?: StringNullableListFilter<"Feedback">
    pageUrl?: StringNullableFilter<"Feedback"> | string | null
    userAgent?: StringNullableFilter<"Feedback"> | string | null
    status?: EnumFeedbackStatusFilter<"Feedback"> | $Enums.FeedbackStatus
    priority?: EnumFeedbackPriorityNullableFilter<"Feedback"> | $Enums.FeedbackPriority | null
    adminNote?: StringNullableFilter<"Feedback"> | string | null
    adminReply?: StringNullableFilter<"Feedback"> | string | null
    assigneeId?: UuidNullableFilter<"Feedback"> | string | null
    resolvedAt?: DateTimeNullableFilter<"Feedback"> | Date | string | null
    userId?: UuidFilter<"Feedback"> | string
    region?: StringFilter<"Feedback"> | string
    createdAt?: DateTimeFilter<"Feedback"> | Date | string
    updatedAt?: DateTimeFilter<"Feedback"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Feedback"> | Date | string | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    assignee?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }, "id">

  export type FeedbackOrderByWithAggregationInput = {
    id?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    attachments?: SortOrder
    pageUrl?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    status?: SortOrder
    priority?: SortOrderInput | SortOrder
    adminNote?: SortOrderInput | SortOrder
    adminReply?: SortOrderInput | SortOrder
    assigneeId?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    userId?: SortOrder
    region?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: FeedbackCountOrderByAggregateInput
    _max?: FeedbackMaxOrderByAggregateInput
    _min?: FeedbackMinOrderByAggregateInput
  }

  export type FeedbackScalarWhereWithAggregatesInput = {
    AND?: FeedbackScalarWhereWithAggregatesInput | FeedbackScalarWhereWithAggregatesInput[]
    OR?: FeedbackScalarWhereWithAggregatesInput[]
    NOT?: FeedbackScalarWhereWithAggregatesInput | FeedbackScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Feedback"> | string
    type?: EnumFeedbackTypeWithAggregatesFilter<"Feedback"> | $Enums.FeedbackType
    title?: StringWithAggregatesFilter<"Feedback"> | string
    content?: StringWithAggregatesFilter<"Feedback"> | string
    attachments?: StringNullableListFilter<"Feedback">
    pageUrl?: StringNullableWithAggregatesFilter<"Feedback"> | string | null
    userAgent?: StringNullableWithAggregatesFilter<"Feedback"> | string | null
    status?: EnumFeedbackStatusWithAggregatesFilter<"Feedback"> | $Enums.FeedbackStatus
    priority?: EnumFeedbackPriorityNullableWithAggregatesFilter<"Feedback"> | $Enums.FeedbackPriority | null
    adminNote?: StringNullableWithAggregatesFilter<"Feedback"> | string | null
    adminReply?: StringNullableWithAggregatesFilter<"Feedback"> | string | null
    assigneeId?: UuidNullableWithAggregatesFilter<"Feedback"> | string | null
    resolvedAt?: DateTimeNullableWithAggregatesFilter<"Feedback"> | Date | string | null
    userId?: UuidWithAggregatesFilter<"Feedback"> | string
    region?: StringWithAggregatesFilter<"Feedback"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Feedback"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Feedback"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Feedback"> | Date | string | null
  }

  export type FormDefinitionWhereInput = {
    AND?: FormDefinitionWhereInput | FormDefinitionWhereInput[]
    OR?: FormDefinitionWhereInput[]
    NOT?: FormDefinitionWhereInput | FormDefinitionWhereInput[]
    id?: UuidFilter<"FormDefinition"> | string
    key?: StringFilter<"FormDefinition"> | string
    slug?: StringFilter<"FormDefinition"> | string
    slugHistory?: JsonNullableFilter<"FormDefinition">
    aliases?: JsonNullableFilter<"FormDefinition">
    name?: StringFilter<"FormDefinition"> | string
    category?: StringFilter<"FormDefinition"> | string
    description?: StringNullableFilter<"FormDefinition"> | string | null
    icon?: StringNullableFilter<"FormDefinition"> | string | null
    color?: StringNullableFilter<"FormDefinition"> | string | null
    defaultLocale?: StringFilter<"FormDefinition"> | string
    supportedLocales?: JsonFilter<"FormDefinition">
    latestVersion?: IntFilter<"FormDefinition"> | number
    status?: EnumFormStatusFilter<"FormDefinition"> | $Enums.FormStatus
    requiresApproval?: BoolFilter<"FormDefinition"> | boolean
    approvalProcessKey?: StringNullableFilter<"FormDefinition"> | string | null
    organizationId?: UuidNullableFilter<"FormDefinition"> | string | null
    createdBy?: UuidFilter<"FormDefinition"> | string
    updatedBy?: UuidNullableFilter<"FormDefinition"> | string | null
    createdAt?: DateTimeFilter<"FormDefinition"> | Date | string
    updatedAt?: DateTimeFilter<"FormDefinition"> | Date | string
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    updater?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    instances?: FormInstanceListRelationFilter
    versions?: FormVersionListRelationFilter
  }

  export type FormDefinitionOrderByWithRelationInput = {
    id?: SortOrder
    key?: SortOrder
    slug?: SortOrder
    slugHistory?: SortOrderInput | SortOrder
    aliases?: SortOrderInput | SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrderInput | SortOrder
    icon?: SortOrderInput | SortOrder
    color?: SortOrderInput | SortOrder
    defaultLocale?: SortOrder
    supportedLocales?: SortOrder
    latestVersion?: SortOrder
    status?: SortOrder
    requiresApproval?: SortOrder
    approvalProcessKey?: SortOrderInput | SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
    creator?: UserOrderByWithRelationInput
    updater?: UserOrderByWithRelationInput
    instances?: FormInstanceOrderByRelationAggregateInput
    versions?: FormVersionOrderByRelationAggregateInput
  }

  export type FormDefinitionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    key?: string
    slug?: string
    AND?: FormDefinitionWhereInput | FormDefinitionWhereInput[]
    OR?: FormDefinitionWhereInput[]
    NOT?: FormDefinitionWhereInput | FormDefinitionWhereInput[]
    slugHistory?: JsonNullableFilter<"FormDefinition">
    aliases?: JsonNullableFilter<"FormDefinition">
    name?: StringFilter<"FormDefinition"> | string
    category?: StringFilter<"FormDefinition"> | string
    description?: StringNullableFilter<"FormDefinition"> | string | null
    icon?: StringNullableFilter<"FormDefinition"> | string | null
    color?: StringNullableFilter<"FormDefinition"> | string | null
    defaultLocale?: StringFilter<"FormDefinition"> | string
    supportedLocales?: JsonFilter<"FormDefinition">
    latestVersion?: IntFilter<"FormDefinition"> | number
    status?: EnumFormStatusFilter<"FormDefinition"> | $Enums.FormStatus
    requiresApproval?: BoolFilter<"FormDefinition"> | boolean
    approvalProcessKey?: StringNullableFilter<"FormDefinition"> | string | null
    organizationId?: UuidNullableFilter<"FormDefinition"> | string | null
    createdBy?: UuidFilter<"FormDefinition"> | string
    updatedBy?: UuidNullableFilter<"FormDefinition"> | string | null
    createdAt?: DateTimeFilter<"FormDefinition"> | Date | string
    updatedAt?: DateTimeFilter<"FormDefinition"> | Date | string
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    updater?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    instances?: FormInstanceListRelationFilter
    versions?: FormVersionListRelationFilter
  }, "id" | "key" | "slug">

  export type FormDefinitionOrderByWithAggregationInput = {
    id?: SortOrder
    key?: SortOrder
    slug?: SortOrder
    slugHistory?: SortOrderInput | SortOrder
    aliases?: SortOrderInput | SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrderInput | SortOrder
    icon?: SortOrderInput | SortOrder
    color?: SortOrderInput | SortOrder
    defaultLocale?: SortOrder
    supportedLocales?: SortOrder
    latestVersion?: SortOrder
    status?: SortOrder
    requiresApproval?: SortOrder
    approvalProcessKey?: SortOrderInput | SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: FormDefinitionCountOrderByAggregateInput
    _avg?: FormDefinitionAvgOrderByAggregateInput
    _max?: FormDefinitionMaxOrderByAggregateInput
    _min?: FormDefinitionMinOrderByAggregateInput
    _sum?: FormDefinitionSumOrderByAggregateInput
  }

  export type FormDefinitionScalarWhereWithAggregatesInput = {
    AND?: FormDefinitionScalarWhereWithAggregatesInput | FormDefinitionScalarWhereWithAggregatesInput[]
    OR?: FormDefinitionScalarWhereWithAggregatesInput[]
    NOT?: FormDefinitionScalarWhereWithAggregatesInput | FormDefinitionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"FormDefinition"> | string
    key?: StringWithAggregatesFilter<"FormDefinition"> | string
    slug?: StringWithAggregatesFilter<"FormDefinition"> | string
    slugHistory?: JsonNullableWithAggregatesFilter<"FormDefinition">
    aliases?: JsonNullableWithAggregatesFilter<"FormDefinition">
    name?: StringWithAggregatesFilter<"FormDefinition"> | string
    category?: StringWithAggregatesFilter<"FormDefinition"> | string
    description?: StringNullableWithAggregatesFilter<"FormDefinition"> | string | null
    icon?: StringNullableWithAggregatesFilter<"FormDefinition"> | string | null
    color?: StringNullableWithAggregatesFilter<"FormDefinition"> | string | null
    defaultLocale?: StringWithAggregatesFilter<"FormDefinition"> | string
    supportedLocales?: JsonWithAggregatesFilter<"FormDefinition">
    latestVersion?: IntWithAggregatesFilter<"FormDefinition"> | number
    status?: EnumFormStatusWithAggregatesFilter<"FormDefinition"> | $Enums.FormStatus
    requiresApproval?: BoolWithAggregatesFilter<"FormDefinition"> | boolean
    approvalProcessKey?: StringNullableWithAggregatesFilter<"FormDefinition"> | string | null
    organizationId?: UuidNullableWithAggregatesFilter<"FormDefinition"> | string | null
    createdBy?: UuidWithAggregatesFilter<"FormDefinition"> | string
    updatedBy?: UuidNullableWithAggregatesFilter<"FormDefinition"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"FormDefinition"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"FormDefinition"> | Date | string
  }

  export type FormVersionWhereInput = {
    AND?: FormVersionWhereInput | FormVersionWhereInput[]
    OR?: FormVersionWhereInput[]
    NOT?: FormVersionWhereInput | FormVersionWhereInput[]
    id?: UuidFilter<"FormVersion"> | string
    definitionId?: UuidFilter<"FormVersion"> | string
    version?: IntFilter<"FormVersion"> | number
    schema?: JsonFilter<"FormVersion">
    uiSchema?: JsonNullableFilter<"FormVersion">
    viewSchema?: JsonNullableFilter<"FormVersion">
    validation?: JsonNullableFilter<"FormVersion">
    changelog?: StringNullableFilter<"FormVersion"> | string | null
    nameI18n?: JsonFilter<"FormVersion">
    descriptionI18n?: JsonNullableFilter<"FormVersion">
    isDefault?: BoolFilter<"FormVersion"> | boolean
    status?: EnumFormVersionStatusFilter<"FormVersion"> | $Enums.FormVersionStatus
    reviewedBy?: UuidNullableFilter<"FormVersion"> | string | null
    reviewedAt?: DateTimeNullableFilter<"FormVersion"> | Date | string | null
    reviewComment?: StringNullableFilter<"FormVersion"> | string | null
    publishedAt?: DateTimeNullableFilter<"FormVersion"> | Date | string | null
    createdBy?: UuidFilter<"FormVersion"> | string
    createdAt?: DateTimeFilter<"FormVersion"> | Date | string
    instances?: FormInstanceListRelationFilter
    translations?: FormTranslationListRelationFilter
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    reviewer?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    definition?: XOR<FormDefinitionScalarRelationFilter, FormDefinitionWhereInput>
  }

  export type FormVersionOrderByWithRelationInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    schema?: SortOrder
    uiSchema?: SortOrderInput | SortOrder
    viewSchema?: SortOrderInput | SortOrder
    validation?: SortOrderInput | SortOrder
    changelog?: SortOrderInput | SortOrder
    nameI18n?: SortOrder
    descriptionI18n?: SortOrderInput | SortOrder
    isDefault?: SortOrder
    status?: SortOrder
    reviewedBy?: SortOrderInput | SortOrder
    reviewedAt?: SortOrderInput | SortOrder
    reviewComment?: SortOrderInput | SortOrder
    publishedAt?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    instances?: FormInstanceOrderByRelationAggregateInput
    translations?: FormTranslationOrderByRelationAggregateInput
    creator?: UserOrderByWithRelationInput
    reviewer?: UserOrderByWithRelationInput
    definition?: FormDefinitionOrderByWithRelationInput
  }

  export type FormVersionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    definitionId_version?: FormVersionDefinitionIdVersionCompoundUniqueInput
    AND?: FormVersionWhereInput | FormVersionWhereInput[]
    OR?: FormVersionWhereInput[]
    NOT?: FormVersionWhereInput | FormVersionWhereInput[]
    definitionId?: UuidFilter<"FormVersion"> | string
    version?: IntFilter<"FormVersion"> | number
    schema?: JsonFilter<"FormVersion">
    uiSchema?: JsonNullableFilter<"FormVersion">
    viewSchema?: JsonNullableFilter<"FormVersion">
    validation?: JsonNullableFilter<"FormVersion">
    changelog?: StringNullableFilter<"FormVersion"> | string | null
    nameI18n?: JsonFilter<"FormVersion">
    descriptionI18n?: JsonNullableFilter<"FormVersion">
    isDefault?: BoolFilter<"FormVersion"> | boolean
    status?: EnumFormVersionStatusFilter<"FormVersion"> | $Enums.FormVersionStatus
    reviewedBy?: UuidNullableFilter<"FormVersion"> | string | null
    reviewedAt?: DateTimeNullableFilter<"FormVersion"> | Date | string | null
    reviewComment?: StringNullableFilter<"FormVersion"> | string | null
    publishedAt?: DateTimeNullableFilter<"FormVersion"> | Date | string | null
    createdBy?: UuidFilter<"FormVersion"> | string
    createdAt?: DateTimeFilter<"FormVersion"> | Date | string
    instances?: FormInstanceListRelationFilter
    translations?: FormTranslationListRelationFilter
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    reviewer?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    definition?: XOR<FormDefinitionScalarRelationFilter, FormDefinitionWhereInput>
  }, "id" | "definitionId_version">

  export type FormVersionOrderByWithAggregationInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    schema?: SortOrder
    uiSchema?: SortOrderInput | SortOrder
    viewSchema?: SortOrderInput | SortOrder
    validation?: SortOrderInput | SortOrder
    changelog?: SortOrderInput | SortOrder
    nameI18n?: SortOrder
    descriptionI18n?: SortOrderInput | SortOrder
    isDefault?: SortOrder
    status?: SortOrder
    reviewedBy?: SortOrderInput | SortOrder
    reviewedAt?: SortOrderInput | SortOrder
    reviewComment?: SortOrderInput | SortOrder
    publishedAt?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    _count?: FormVersionCountOrderByAggregateInput
    _avg?: FormVersionAvgOrderByAggregateInput
    _max?: FormVersionMaxOrderByAggregateInput
    _min?: FormVersionMinOrderByAggregateInput
    _sum?: FormVersionSumOrderByAggregateInput
  }

  export type FormVersionScalarWhereWithAggregatesInput = {
    AND?: FormVersionScalarWhereWithAggregatesInput | FormVersionScalarWhereWithAggregatesInput[]
    OR?: FormVersionScalarWhereWithAggregatesInput[]
    NOT?: FormVersionScalarWhereWithAggregatesInput | FormVersionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"FormVersion"> | string
    definitionId?: UuidWithAggregatesFilter<"FormVersion"> | string
    version?: IntWithAggregatesFilter<"FormVersion"> | number
    schema?: JsonWithAggregatesFilter<"FormVersion">
    uiSchema?: JsonNullableWithAggregatesFilter<"FormVersion">
    viewSchema?: JsonNullableWithAggregatesFilter<"FormVersion">
    validation?: JsonNullableWithAggregatesFilter<"FormVersion">
    changelog?: StringNullableWithAggregatesFilter<"FormVersion"> | string | null
    nameI18n?: JsonWithAggregatesFilter<"FormVersion">
    descriptionI18n?: JsonNullableWithAggregatesFilter<"FormVersion">
    isDefault?: BoolWithAggregatesFilter<"FormVersion"> | boolean
    status?: EnumFormVersionStatusWithAggregatesFilter<"FormVersion"> | $Enums.FormVersionStatus
    reviewedBy?: UuidNullableWithAggregatesFilter<"FormVersion"> | string | null
    reviewedAt?: DateTimeNullableWithAggregatesFilter<"FormVersion"> | Date | string | null
    reviewComment?: StringNullableWithAggregatesFilter<"FormVersion"> | string | null
    publishedAt?: DateTimeNullableWithAggregatesFilter<"FormVersion"> | Date | string | null
    createdBy?: UuidWithAggregatesFilter<"FormVersion"> | string
    createdAt?: DateTimeWithAggregatesFilter<"FormVersion"> | Date | string
  }

  export type FormInstanceWhereInput = {
    AND?: FormInstanceWhereInput | FormInstanceWhereInput[]
    OR?: FormInstanceWhereInput[]
    NOT?: FormInstanceWhereInput | FormInstanceWhereInput[]
    id?: UuidFilter<"FormInstance"> | string
    formDefinitionId?: UuidFilter<"FormInstance"> | string
    formVersionId?: UuidFilter<"FormInstance"> | string
    formKey?: StringFilter<"FormInstance"> | string
    formVersion?: IntFilter<"FormInstance"> | number
    snapshotId?: UuidNullableFilter<"FormInstance"> | string | null
    businessKey?: StringFilter<"FormInstance"> | string
    regionId?: StringNullableFilter<"FormInstance"> | string | null
    data?: JsonFilter<"FormInstance">
    status?: EnumFormInstanceStatusFilter<"FormInstance"> | $Enums.FormInstanceStatus
    createdBy?: UuidFilter<"FormInstance"> | string
    updatedBy?: UuidNullableFilter<"FormInstance"> | string | null
    submittedBy?: UuidNullableFilter<"FormInstance"> | string | null
    submittedAt?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    approvalInstanceId?: UuidNullableFilter<"FormInstance"> | string | null
    approvalStatus?: StringNullableFilter<"FormInstance"> | string | null
    approvalStartTime?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    approvalEndTime?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    createdAt?: DateTimeFilter<"FormInstance"> | Date | string
    updatedAt?: DateTimeFilter<"FormInstance"> | Date | string
    deletedAt?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    definition?: XOR<FormDefinitionScalarRelationFilter, FormDefinitionWhereInput>
    version?: XOR<FormVersionScalarRelationFilter, FormVersionWhereInput>
    snapshot?: XOR<ReleaseSnapshotNullableScalarRelationFilter, ReleaseSnapshotWhereInput> | null
    submitter?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    updater?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }

  export type FormInstanceOrderByWithRelationInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    formKey?: SortOrder
    formVersion?: SortOrder
    snapshotId?: SortOrderInput | SortOrder
    businessKey?: SortOrder
    regionId?: SortOrderInput | SortOrder
    data?: SortOrder
    status?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    submittedBy?: SortOrderInput | SortOrder
    submittedAt?: SortOrderInput | SortOrder
    approvalInstanceId?: SortOrderInput | SortOrder
    approvalStatus?: SortOrderInput | SortOrder
    approvalStartTime?: SortOrderInput | SortOrder
    approvalEndTime?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    creator?: UserOrderByWithRelationInput
    definition?: FormDefinitionOrderByWithRelationInput
    version?: FormVersionOrderByWithRelationInput
    snapshot?: ReleaseSnapshotOrderByWithRelationInput
    submitter?: UserOrderByWithRelationInput
    updater?: UserOrderByWithRelationInput
  }

  export type FormInstanceWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    businessKey?: string
    AND?: FormInstanceWhereInput | FormInstanceWhereInput[]
    OR?: FormInstanceWhereInput[]
    NOT?: FormInstanceWhereInput | FormInstanceWhereInput[]
    formDefinitionId?: UuidFilter<"FormInstance"> | string
    formVersionId?: UuidFilter<"FormInstance"> | string
    formKey?: StringFilter<"FormInstance"> | string
    formVersion?: IntFilter<"FormInstance"> | number
    snapshotId?: UuidNullableFilter<"FormInstance"> | string | null
    regionId?: StringNullableFilter<"FormInstance"> | string | null
    data?: JsonFilter<"FormInstance">
    status?: EnumFormInstanceStatusFilter<"FormInstance"> | $Enums.FormInstanceStatus
    createdBy?: UuidFilter<"FormInstance"> | string
    updatedBy?: UuidNullableFilter<"FormInstance"> | string | null
    submittedBy?: UuidNullableFilter<"FormInstance"> | string | null
    submittedAt?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    approvalInstanceId?: UuidNullableFilter<"FormInstance"> | string | null
    approvalStatus?: StringNullableFilter<"FormInstance"> | string | null
    approvalStartTime?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    approvalEndTime?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    createdAt?: DateTimeFilter<"FormInstance"> | Date | string
    updatedAt?: DateTimeFilter<"FormInstance"> | Date | string
    deletedAt?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    definition?: XOR<FormDefinitionScalarRelationFilter, FormDefinitionWhereInput>
    version?: XOR<FormVersionScalarRelationFilter, FormVersionWhereInput>
    snapshot?: XOR<ReleaseSnapshotNullableScalarRelationFilter, ReleaseSnapshotWhereInput> | null
    submitter?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    updater?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }, "id" | "businessKey">

  export type FormInstanceOrderByWithAggregationInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    formKey?: SortOrder
    formVersion?: SortOrder
    snapshotId?: SortOrderInput | SortOrder
    businessKey?: SortOrder
    regionId?: SortOrderInput | SortOrder
    data?: SortOrder
    status?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    submittedBy?: SortOrderInput | SortOrder
    submittedAt?: SortOrderInput | SortOrder
    approvalInstanceId?: SortOrderInput | SortOrder
    approvalStatus?: SortOrderInput | SortOrder
    approvalStartTime?: SortOrderInput | SortOrder
    approvalEndTime?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: FormInstanceCountOrderByAggregateInput
    _avg?: FormInstanceAvgOrderByAggregateInput
    _max?: FormInstanceMaxOrderByAggregateInput
    _min?: FormInstanceMinOrderByAggregateInput
    _sum?: FormInstanceSumOrderByAggregateInput
  }

  export type FormInstanceScalarWhereWithAggregatesInput = {
    AND?: FormInstanceScalarWhereWithAggregatesInput | FormInstanceScalarWhereWithAggregatesInput[]
    OR?: FormInstanceScalarWhereWithAggregatesInput[]
    NOT?: FormInstanceScalarWhereWithAggregatesInput | FormInstanceScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"FormInstance"> | string
    formDefinitionId?: UuidWithAggregatesFilter<"FormInstance"> | string
    formVersionId?: UuidWithAggregatesFilter<"FormInstance"> | string
    formKey?: StringWithAggregatesFilter<"FormInstance"> | string
    formVersion?: IntWithAggregatesFilter<"FormInstance"> | number
    snapshotId?: UuidNullableWithAggregatesFilter<"FormInstance"> | string | null
    businessKey?: StringWithAggregatesFilter<"FormInstance"> | string
    regionId?: StringNullableWithAggregatesFilter<"FormInstance"> | string | null
    data?: JsonWithAggregatesFilter<"FormInstance">
    status?: EnumFormInstanceStatusWithAggregatesFilter<"FormInstance"> | $Enums.FormInstanceStatus
    createdBy?: UuidWithAggregatesFilter<"FormInstance"> | string
    updatedBy?: UuidNullableWithAggregatesFilter<"FormInstance"> | string | null
    submittedBy?: UuidNullableWithAggregatesFilter<"FormInstance"> | string | null
    submittedAt?: DateTimeNullableWithAggregatesFilter<"FormInstance"> | Date | string | null
    approvalInstanceId?: UuidNullableWithAggregatesFilter<"FormInstance"> | string | null
    approvalStatus?: StringNullableWithAggregatesFilter<"FormInstance"> | string | null
    approvalStartTime?: DateTimeNullableWithAggregatesFilter<"FormInstance"> | Date | string | null
    approvalEndTime?: DateTimeNullableWithAggregatesFilter<"FormInstance"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"FormInstance"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"FormInstance"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"FormInstance"> | Date | string | null
  }

  export type FormTranslationWhereInput = {
    AND?: FormTranslationWhereInput | FormTranslationWhereInput[]
    OR?: FormTranslationWhereInput[]
    NOT?: FormTranslationWhereInput | FormTranslationWhereInput[]
    id?: UuidFilter<"FormTranslation"> | string
    versionId?: UuidFilter<"FormTranslation"> | string
    locale?: StringFilter<"FormTranslation"> | string
    translations?: JsonFilter<"FormTranslation">
    createdAt?: DateTimeFilter<"FormTranslation"> | Date | string
    updatedAt?: DateTimeFilter<"FormTranslation"> | Date | string
    version?: XOR<FormVersionScalarRelationFilter, FormVersionWhereInput>
  }

  export type FormTranslationOrderByWithRelationInput = {
    id?: SortOrder
    versionId?: SortOrder
    locale?: SortOrder
    translations?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    version?: FormVersionOrderByWithRelationInput
  }

  export type FormTranslationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    versionId_locale?: FormTranslationVersionIdLocaleCompoundUniqueInput
    AND?: FormTranslationWhereInput | FormTranslationWhereInput[]
    OR?: FormTranslationWhereInput[]
    NOT?: FormTranslationWhereInput | FormTranslationWhereInput[]
    versionId?: UuidFilter<"FormTranslation"> | string
    locale?: StringFilter<"FormTranslation"> | string
    translations?: JsonFilter<"FormTranslation">
    createdAt?: DateTimeFilter<"FormTranslation"> | Date | string
    updatedAt?: DateTimeFilter<"FormTranslation"> | Date | string
    version?: XOR<FormVersionScalarRelationFilter, FormVersionWhereInput>
  }, "id" | "versionId_locale">

  export type FormTranslationOrderByWithAggregationInput = {
    id?: SortOrder
    versionId?: SortOrder
    locale?: SortOrder
    translations?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: FormTranslationCountOrderByAggregateInput
    _max?: FormTranslationMaxOrderByAggregateInput
    _min?: FormTranslationMinOrderByAggregateInput
  }

  export type FormTranslationScalarWhereWithAggregatesInput = {
    AND?: FormTranslationScalarWhereWithAggregatesInput | FormTranslationScalarWhereWithAggregatesInput[]
    OR?: FormTranslationScalarWhereWithAggregatesInput[]
    NOT?: FormTranslationScalarWhereWithAggregatesInput | FormTranslationScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"FormTranslation"> | string
    versionId?: UuidWithAggregatesFilter<"FormTranslation"> | string
    locale?: StringWithAggregatesFilter<"FormTranslation"> | string
    translations?: JsonWithAggregatesFilter<"FormTranslation">
    createdAt?: DateTimeWithAggregatesFilter<"FormTranslation"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"FormTranslation"> | Date | string
  }

  export type FormTemplateWhereInput = {
    AND?: FormTemplateWhereInput | FormTemplateWhereInput[]
    OR?: FormTemplateWhereInput[]
    NOT?: FormTemplateWhereInput | FormTemplateWhereInput[]
    id?: UuidFilter<"FormTemplate"> | string
    nameI18n?: JsonFilter<"FormTemplate">
    descriptionI18n?: JsonNullableFilter<"FormTemplate">
    category?: StringFilter<"FormTemplate"> | string
    icon?: StringNullableFilter<"FormTemplate"> | string | null
    color?: StringNullableFilter<"FormTemplate"> | string | null
    template?: JsonFilter<"FormTemplate">
    isBuiltin?: BoolFilter<"FormTemplate"> | boolean
    isPublic?: BoolFilter<"FormTemplate"> | boolean
    createdBy?: UuidFilter<"FormTemplate"> | string
    updatedBy?: UuidNullableFilter<"FormTemplate"> | string | null
    createdAt?: DateTimeFilter<"FormTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"FormTemplate"> | Date | string
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    updater?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }

  export type FormTemplateOrderByWithRelationInput = {
    id?: SortOrder
    nameI18n?: SortOrder
    descriptionI18n?: SortOrderInput | SortOrder
    category?: SortOrder
    icon?: SortOrderInput | SortOrder
    color?: SortOrderInput | SortOrder
    template?: SortOrder
    isBuiltin?: SortOrder
    isPublic?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    creator?: UserOrderByWithRelationInput
    updater?: UserOrderByWithRelationInput
  }

  export type FormTemplateWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: FormTemplateWhereInput | FormTemplateWhereInput[]
    OR?: FormTemplateWhereInput[]
    NOT?: FormTemplateWhereInput | FormTemplateWhereInput[]
    nameI18n?: JsonFilter<"FormTemplate">
    descriptionI18n?: JsonNullableFilter<"FormTemplate">
    category?: StringFilter<"FormTemplate"> | string
    icon?: StringNullableFilter<"FormTemplate"> | string | null
    color?: StringNullableFilter<"FormTemplate"> | string | null
    template?: JsonFilter<"FormTemplate">
    isBuiltin?: BoolFilter<"FormTemplate"> | boolean
    isPublic?: BoolFilter<"FormTemplate"> | boolean
    createdBy?: UuidFilter<"FormTemplate"> | string
    updatedBy?: UuidNullableFilter<"FormTemplate"> | string | null
    createdAt?: DateTimeFilter<"FormTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"FormTemplate"> | Date | string
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    updater?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }, "id">

  export type FormTemplateOrderByWithAggregationInput = {
    id?: SortOrder
    nameI18n?: SortOrder
    descriptionI18n?: SortOrderInput | SortOrder
    category?: SortOrder
    icon?: SortOrderInput | SortOrder
    color?: SortOrderInput | SortOrder
    template?: SortOrder
    isBuiltin?: SortOrder
    isPublic?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: FormTemplateCountOrderByAggregateInput
    _max?: FormTemplateMaxOrderByAggregateInput
    _min?: FormTemplateMinOrderByAggregateInput
  }

  export type FormTemplateScalarWhereWithAggregatesInput = {
    AND?: FormTemplateScalarWhereWithAggregatesInput | FormTemplateScalarWhereWithAggregatesInput[]
    OR?: FormTemplateScalarWhereWithAggregatesInput[]
    NOT?: FormTemplateScalarWhereWithAggregatesInput | FormTemplateScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"FormTemplate"> | string
    nameI18n?: JsonWithAggregatesFilter<"FormTemplate">
    descriptionI18n?: JsonNullableWithAggregatesFilter<"FormTemplate">
    category?: StringWithAggregatesFilter<"FormTemplate"> | string
    icon?: StringNullableWithAggregatesFilter<"FormTemplate"> | string | null
    color?: StringNullableWithAggregatesFilter<"FormTemplate"> | string | null
    template?: JsonWithAggregatesFilter<"FormTemplate">
    isBuiltin?: BoolWithAggregatesFilter<"FormTemplate"> | boolean
    isPublic?: BoolWithAggregatesFilter<"FormTemplate"> | boolean
    createdBy?: UuidWithAggregatesFilter<"FormTemplate"> | string
    updatedBy?: UuidNullableWithAggregatesFilter<"FormTemplate"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"FormTemplate"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"FormTemplate"> | Date | string
  }

  export type ReleaseSnapshotWhereInput = {
    AND?: ReleaseSnapshotWhereInput | ReleaseSnapshotWhereInput[]
    OR?: ReleaseSnapshotWhereInput[]
    NOT?: ReleaseSnapshotWhereInput | ReleaseSnapshotWhereInput[]
    id?: UuidFilter<"ReleaseSnapshot"> | string
    formDefinitionId?: UuidFilter<"ReleaseSnapshot"> | string
    formVersionId?: UuidFilter<"ReleaseSnapshot"> | string
    processDefinitionId?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    processVersionId?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    status?: EnumReleaseSnapshotStatusFilter<"ReleaseSnapshot"> | $Enums.ReleaseSnapshotStatus
    versionName?: StringNullableFilter<"ReleaseSnapshot"> | string | null
    releaseNote?: StringNullableFilter<"ReleaseSnapshot"> | string | null
    submittedBy?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    submittedAt?: DateTimeNullableFilter<"ReleaseSnapshot"> | Date | string | null
    submitComment?: StringNullableFilter<"ReleaseSnapshot"> | string | null
    reviewedBy?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    reviewedAt?: DateTimeNullableFilter<"ReleaseSnapshot"> | Date | string | null
    reviewComment?: StringNullableFilter<"ReleaseSnapshot"> | string | null
    publishedBy?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    publishedAt?: DateTimeNullableFilter<"ReleaseSnapshot"> | Date | string | null
    createdAt?: DateTimeFilter<"ReleaseSnapshot"> | Date | string
    updatedAt?: DateTimeFilter<"ReleaseSnapshot"> | Date | string
    instances?: FormInstanceListRelationFilter
  }

  export type ReleaseSnapshotOrderByWithRelationInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    processDefinitionId?: SortOrderInput | SortOrder
    processVersionId?: SortOrderInput | SortOrder
    status?: SortOrder
    versionName?: SortOrderInput | SortOrder
    releaseNote?: SortOrderInput | SortOrder
    submittedBy?: SortOrderInput | SortOrder
    submittedAt?: SortOrderInput | SortOrder
    submitComment?: SortOrderInput | SortOrder
    reviewedBy?: SortOrderInput | SortOrder
    reviewedAt?: SortOrderInput | SortOrder
    reviewComment?: SortOrderInput | SortOrder
    publishedBy?: SortOrderInput | SortOrder
    publishedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    instances?: FormInstanceOrderByRelationAggregateInput
  }

  export type ReleaseSnapshotWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    formDefinitionId_status?: ReleaseSnapshotFormDefinitionIdStatusCompoundUniqueInput
    AND?: ReleaseSnapshotWhereInput | ReleaseSnapshotWhereInput[]
    OR?: ReleaseSnapshotWhereInput[]
    NOT?: ReleaseSnapshotWhereInput | ReleaseSnapshotWhereInput[]
    formDefinitionId?: UuidFilter<"ReleaseSnapshot"> | string
    formVersionId?: UuidFilter<"ReleaseSnapshot"> | string
    processDefinitionId?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    processVersionId?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    status?: EnumReleaseSnapshotStatusFilter<"ReleaseSnapshot"> | $Enums.ReleaseSnapshotStatus
    versionName?: StringNullableFilter<"ReleaseSnapshot"> | string | null
    releaseNote?: StringNullableFilter<"ReleaseSnapshot"> | string | null
    submittedBy?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    submittedAt?: DateTimeNullableFilter<"ReleaseSnapshot"> | Date | string | null
    submitComment?: StringNullableFilter<"ReleaseSnapshot"> | string | null
    reviewedBy?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    reviewedAt?: DateTimeNullableFilter<"ReleaseSnapshot"> | Date | string | null
    reviewComment?: StringNullableFilter<"ReleaseSnapshot"> | string | null
    publishedBy?: UuidNullableFilter<"ReleaseSnapshot"> | string | null
    publishedAt?: DateTimeNullableFilter<"ReleaseSnapshot"> | Date | string | null
    createdAt?: DateTimeFilter<"ReleaseSnapshot"> | Date | string
    updatedAt?: DateTimeFilter<"ReleaseSnapshot"> | Date | string
    instances?: FormInstanceListRelationFilter
  }, "id" | "formDefinitionId_status">

  export type ReleaseSnapshotOrderByWithAggregationInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    processDefinitionId?: SortOrderInput | SortOrder
    processVersionId?: SortOrderInput | SortOrder
    status?: SortOrder
    versionName?: SortOrderInput | SortOrder
    releaseNote?: SortOrderInput | SortOrder
    submittedBy?: SortOrderInput | SortOrder
    submittedAt?: SortOrderInput | SortOrder
    submitComment?: SortOrderInput | SortOrder
    reviewedBy?: SortOrderInput | SortOrder
    reviewedAt?: SortOrderInput | SortOrder
    reviewComment?: SortOrderInput | SortOrder
    publishedBy?: SortOrderInput | SortOrder
    publishedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: ReleaseSnapshotCountOrderByAggregateInput
    _max?: ReleaseSnapshotMaxOrderByAggregateInput
    _min?: ReleaseSnapshotMinOrderByAggregateInput
  }

  export type ReleaseSnapshotScalarWhereWithAggregatesInput = {
    AND?: ReleaseSnapshotScalarWhereWithAggregatesInput | ReleaseSnapshotScalarWhereWithAggregatesInput[]
    OR?: ReleaseSnapshotScalarWhereWithAggregatesInput[]
    NOT?: ReleaseSnapshotScalarWhereWithAggregatesInput | ReleaseSnapshotScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ReleaseSnapshot"> | string
    formDefinitionId?: UuidWithAggregatesFilter<"ReleaseSnapshot"> | string
    formVersionId?: UuidWithAggregatesFilter<"ReleaseSnapshot"> | string
    processDefinitionId?: UuidNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    processVersionId?: UuidNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    status?: EnumReleaseSnapshotStatusWithAggregatesFilter<"ReleaseSnapshot"> | $Enums.ReleaseSnapshotStatus
    versionName?: StringNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    releaseNote?: StringNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    submittedBy?: UuidNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    submittedAt?: DateTimeNullableWithAggregatesFilter<"ReleaseSnapshot"> | Date | string | null
    submitComment?: StringNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    reviewedBy?: UuidNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    reviewedAt?: DateTimeNullableWithAggregatesFilter<"ReleaseSnapshot"> | Date | string | null
    reviewComment?: StringNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    publishedBy?: UuidNullableWithAggregatesFilter<"ReleaseSnapshot"> | string | null
    publishedAt?: DateTimeNullableWithAggregatesFilter<"ReleaseSnapshot"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"ReleaseSnapshot"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ReleaseSnapshot"> | Date | string
  }

  export type FormWebhookWhereInput = {
    AND?: FormWebhookWhereInput | FormWebhookWhereInput[]
    OR?: FormWebhookWhereInput[]
    NOT?: FormWebhookWhereInput | FormWebhookWhereInput[]
    id?: UuidFilter<"FormWebhook"> | string
    organizationId?: UuidNullableFilter<"FormWebhook"> | string | null
    name?: StringFilter<"FormWebhook"> | string
    description?: StringNullableFilter<"FormWebhook"> | string | null
    url?: StringFilter<"FormWebhook"> | string
    secret?: StringFilter<"FormWebhook"> | string
    events?: JsonFilter<"FormWebhook">
    enabled?: BoolFilter<"FormWebhook"> | boolean
    maxRetries?: IntFilter<"FormWebhook"> | number
    timeoutMs?: IntFilter<"FormWebhook"> | number
    headers?: JsonNullableFilter<"FormWebhook">
    createdBy?: UuidFilter<"FormWebhook"> | string
    updatedBy?: UuidNullableFilter<"FormWebhook"> | string | null
    createdAt?: DateTimeFilter<"FormWebhook"> | Date | string
    updatedAt?: DateTimeFilter<"FormWebhook"> | Date | string
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    logs?: FormWebhookLogListRelationFilter
  }

  export type FormWebhookOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    url?: SortOrder
    secret?: SortOrder
    events?: SortOrder
    enabled?: SortOrder
    maxRetries?: SortOrder
    timeoutMs?: SortOrder
    headers?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
    logs?: FormWebhookLogOrderByRelationAggregateInput
  }

  export type FormWebhookWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: FormWebhookWhereInput | FormWebhookWhereInput[]
    OR?: FormWebhookWhereInput[]
    NOT?: FormWebhookWhereInput | FormWebhookWhereInput[]
    organizationId?: UuidNullableFilter<"FormWebhook"> | string | null
    name?: StringFilter<"FormWebhook"> | string
    description?: StringNullableFilter<"FormWebhook"> | string | null
    url?: StringFilter<"FormWebhook"> | string
    secret?: StringFilter<"FormWebhook"> | string
    events?: JsonFilter<"FormWebhook">
    enabled?: BoolFilter<"FormWebhook"> | boolean
    maxRetries?: IntFilter<"FormWebhook"> | number
    timeoutMs?: IntFilter<"FormWebhook"> | number
    headers?: JsonNullableFilter<"FormWebhook">
    createdBy?: UuidFilter<"FormWebhook"> | string
    updatedBy?: UuidNullableFilter<"FormWebhook"> | string | null
    createdAt?: DateTimeFilter<"FormWebhook"> | Date | string
    updatedAt?: DateTimeFilter<"FormWebhook"> | Date | string
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    logs?: FormWebhookLogListRelationFilter
  }, "id">

  export type FormWebhookOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    url?: SortOrder
    secret?: SortOrder
    events?: SortOrder
    enabled?: SortOrder
    maxRetries?: SortOrder
    timeoutMs?: SortOrder
    headers?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: FormWebhookCountOrderByAggregateInput
    _avg?: FormWebhookAvgOrderByAggregateInput
    _max?: FormWebhookMaxOrderByAggregateInput
    _min?: FormWebhookMinOrderByAggregateInput
    _sum?: FormWebhookSumOrderByAggregateInput
  }

  export type FormWebhookScalarWhereWithAggregatesInput = {
    AND?: FormWebhookScalarWhereWithAggregatesInput | FormWebhookScalarWhereWithAggregatesInput[]
    OR?: FormWebhookScalarWhereWithAggregatesInput[]
    NOT?: FormWebhookScalarWhereWithAggregatesInput | FormWebhookScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"FormWebhook"> | string
    organizationId?: UuidNullableWithAggregatesFilter<"FormWebhook"> | string | null
    name?: StringWithAggregatesFilter<"FormWebhook"> | string
    description?: StringNullableWithAggregatesFilter<"FormWebhook"> | string | null
    url?: StringWithAggregatesFilter<"FormWebhook"> | string
    secret?: StringWithAggregatesFilter<"FormWebhook"> | string
    events?: JsonWithAggregatesFilter<"FormWebhook">
    enabled?: BoolWithAggregatesFilter<"FormWebhook"> | boolean
    maxRetries?: IntWithAggregatesFilter<"FormWebhook"> | number
    timeoutMs?: IntWithAggregatesFilter<"FormWebhook"> | number
    headers?: JsonNullableWithAggregatesFilter<"FormWebhook">
    createdBy?: UuidWithAggregatesFilter<"FormWebhook"> | string
    updatedBy?: UuidNullableWithAggregatesFilter<"FormWebhook"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"FormWebhook"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"FormWebhook"> | Date | string
  }

  export type FormWebhookLogWhereInput = {
    AND?: FormWebhookLogWhereInput | FormWebhookLogWhereInput[]
    OR?: FormWebhookLogWhereInput[]
    NOT?: FormWebhookLogWhereInput | FormWebhookLogWhereInput[]
    id?: UuidFilter<"FormWebhookLog"> | string
    webhookId?: UuidFilter<"FormWebhookLog"> | string
    eventType?: StringFilter<"FormWebhookLog"> | string
    payload?: JsonFilter<"FormWebhookLog">
    statusCode?: IntNullableFilter<"FormWebhookLog"> | number | null
    response?: StringNullableFilter<"FormWebhookLog"> | string | null
    success?: BoolFilter<"FormWebhookLog"> | boolean
    error?: StringNullableFilter<"FormWebhookLog"> | string | null
    retryCount?: IntFilter<"FormWebhookLog"> | number
    duration?: IntNullableFilter<"FormWebhookLog"> | number | null
    createdAt?: DateTimeFilter<"FormWebhookLog"> | Date | string
    webhook?: XOR<FormWebhookScalarRelationFilter, FormWebhookWhereInput>
  }

  export type FormWebhookLogOrderByWithRelationInput = {
    id?: SortOrder
    webhookId?: SortOrder
    eventType?: SortOrder
    payload?: SortOrder
    statusCode?: SortOrderInput | SortOrder
    response?: SortOrderInput | SortOrder
    success?: SortOrder
    error?: SortOrderInput | SortOrder
    retryCount?: SortOrder
    duration?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    webhook?: FormWebhookOrderByWithRelationInput
  }

  export type FormWebhookLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: FormWebhookLogWhereInput | FormWebhookLogWhereInput[]
    OR?: FormWebhookLogWhereInput[]
    NOT?: FormWebhookLogWhereInput | FormWebhookLogWhereInput[]
    webhookId?: UuidFilter<"FormWebhookLog"> | string
    eventType?: StringFilter<"FormWebhookLog"> | string
    payload?: JsonFilter<"FormWebhookLog">
    statusCode?: IntNullableFilter<"FormWebhookLog"> | number | null
    response?: StringNullableFilter<"FormWebhookLog"> | string | null
    success?: BoolFilter<"FormWebhookLog"> | boolean
    error?: StringNullableFilter<"FormWebhookLog"> | string | null
    retryCount?: IntFilter<"FormWebhookLog"> | number
    duration?: IntNullableFilter<"FormWebhookLog"> | number | null
    createdAt?: DateTimeFilter<"FormWebhookLog"> | Date | string
    webhook?: XOR<FormWebhookScalarRelationFilter, FormWebhookWhereInput>
  }, "id">

  export type FormWebhookLogOrderByWithAggregationInput = {
    id?: SortOrder
    webhookId?: SortOrder
    eventType?: SortOrder
    payload?: SortOrder
    statusCode?: SortOrderInput | SortOrder
    response?: SortOrderInput | SortOrder
    success?: SortOrder
    error?: SortOrderInput | SortOrder
    retryCount?: SortOrder
    duration?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: FormWebhookLogCountOrderByAggregateInput
    _avg?: FormWebhookLogAvgOrderByAggregateInput
    _max?: FormWebhookLogMaxOrderByAggregateInput
    _min?: FormWebhookLogMinOrderByAggregateInput
    _sum?: FormWebhookLogSumOrderByAggregateInput
  }

  export type FormWebhookLogScalarWhereWithAggregatesInput = {
    AND?: FormWebhookLogScalarWhereWithAggregatesInput | FormWebhookLogScalarWhereWithAggregatesInput[]
    OR?: FormWebhookLogScalarWhereWithAggregatesInput[]
    NOT?: FormWebhookLogScalarWhereWithAggregatesInput | FormWebhookLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"FormWebhookLog"> | string
    webhookId?: UuidWithAggregatesFilter<"FormWebhookLog"> | string
    eventType?: StringWithAggregatesFilter<"FormWebhookLog"> | string
    payload?: JsonWithAggregatesFilter<"FormWebhookLog">
    statusCode?: IntNullableWithAggregatesFilter<"FormWebhookLog"> | number | null
    response?: StringNullableWithAggregatesFilter<"FormWebhookLog"> | string | null
    success?: BoolWithAggregatesFilter<"FormWebhookLog"> | boolean
    error?: StringNullableWithAggregatesFilter<"FormWebhookLog"> | string | null
    retryCount?: IntWithAggregatesFilter<"FormWebhookLog"> | number
    duration?: IntNullableWithAggregatesFilter<"FormWebhookLog"> | number | null
    createdAt?: DateTimeWithAggregatesFilter<"FormWebhookLog"> | Date | string
  }

  export type UserWhereInput = {
    AND?: UserWhereInput | UserWhereInput[]
    OR?: UserWhereInput[]
    NOT?: UserWhereInput | UserWhereInput[]
    id?: UuidFilter<"User"> | string
    username?: StringFilter<"User"> | string
    email?: StringFilter<"User"> | string
    passwordHash?: StringNullableFilter<"User"> | string | null
    displayName?: StringFilter<"User"> | string
    avatar?: StringNullableFilter<"User"> | string | null
    phone?: StringNullableFilter<"User"> | string | null
    status?: EnumUserStatusFilter<"User"> | $Enums.UserStatus
    source?: EnumUserSourceFilter<"User"> | $Enums.UserSource
    ldapDn?: StringNullableFilter<"User"> | string | null
    employeeId?: StringNullableFilter<"User"> | string | null
    ldapSyncedAt?: DateTimeNullableFilter<"User"> | Date | string | null
    externalId?: StringNullableFilter<"User"> | string | null
    externalSource?: StringNullableFilter<"User"> | string | null
    adpAoid?: StringNullableFilter<"User"> | string | null
    adpLinkedAt?: DateTimeNullableFilter<"User"> | Date | string | null
    tenantId?: StringNullableFilter<"User"> | string | null
    defaultRegion?: StringFilter<"User"> | string
    workCity?: StringNullableFilter<"User"> | string | null
    hiredAt?: DateTimeNullableFilter<"User"> | Date | string | null
    terminatedAt?: DateTimeNullableFilter<"User"> | Date | string | null
    metadata?: JsonFilter<"User">
    createdAt?: DateTimeFilter<"User"> | Date | string
    updatedAt?: DateTimeFilter<"User"> | Date | string
    deletedAt?: DateTimeNullableFilter<"User"> | Date | string | null
    initiatedProcesses?: ApprovalInstanceListRelationFilter
    approvalActionLogs?: ApprovalTaskLogListRelationFilter
    approvalActionTargets?: ApprovalTaskLogListRelationFilter
    approvalAdminExports?: ApprovalAdminExportListRelationFilter
    createdContracts?: ContractRequestListRelationFilter
    createdExpenses?: ExpenseRequestListRelationFilter
    createdPurchases?: PurchaseRequestListRelationFilter
    auditLogs?: AuditLogListRelationFilter
    createdAutomationTasks?: AutomationTaskListRelationFilter
    createdFormDefinitions?: FormDefinitionListRelationFilter
    updatedFormDefinitions?: FormDefinitionListRelationFilter
    createdFormInstances?: FormInstanceListRelationFilter
    submittedFormInstances?: FormInstanceListRelationFilter
    updatedFormInstances?: FormInstanceListRelationFilter
    createdFormTemplates?: FormTemplateListRelationFilter
    updatedFormTemplates?: FormTemplateListRelationFilter
    createdFormVersions?: FormVersionListRelationFilter
    reviewedFormVersions?: FormVersionListRelationFilter
    roles?: UserRoleListRelationFilter
    workflowRoles?: WorkflowRoleUserListRelationFilter
    departmentMemberships?: UserDepartmentListRelationFilter
    managedUsers?: UserDepartmentListRelationFilter
    notificationLogs?: NotificationLogListRelationFilter
    notifications?: NotificationMessageListRelationFilter
    delegationSettings?: UserDelegationSettingListRelationFilter
    delegatedToMe?: UserDelegationSettingListRelationFilter
    knowledgeArticles?: KnowledgeArticleListRelationFilter
    aiQALogs?: AIQALogListRelationFilter
    documentViews?: DocumentViewListRelationFilter
    documentLikes?: DocumentLikeListRelationFilter
    documentComments?: DocumentCommentListRelationFilter
    mentionedIn?: UserMentionListRelationFilter
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentListRelationFilter
    feedbacks?: FeedbackListRelationFilter
    assignedFeedbacks?: FeedbackListRelationFilter
    devItemsOwned?: DevItemListRelationFilter
    devItemsReported?: DevItemListRelationFilter
    devItemsReviewed?: DevItemListRelationFilter
    releaseNotes?: ReleaseNoteListRelationFilter
    siteCheckpointsCreated?: SiteCheckpointListRelationFilter
    siteAttendanceEvents?: SiteAttendanceEventListRelationFilter
    siteDailySummaries?: SiteDailySummaryListRelationFilter
    sharedCheckinPartnersCreated?: SharedCheckinPartnerListRelationFilter
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerListRelationFilter
    meetingAttendances?: MeetingAttendanceListRelationFilter
    meetingRequiredAttendees?: MeetingRequiredAttendeeListRelationFilter
    meetingTemplatesCreated?: MeetingTemplateListRelationFilter
    meetingTemplateAttendees?: MeetingTemplateAttendeeListRelationFilter
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordListRelationFilter
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogListRelationFilter
    meetingsCreated?: MeetingListRelationFilter
    meetingSeriesCreated?: MeetingSeriesListRelationFilter
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceListRelationFilter
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionListRelationFilter
    agendaSectionsCreated?: MeetingAgendaSectionListRelationFilter
    agendaItemsCreated?: MeetingAgendaItemListRelationFilter
    agendaItemsPresented?: MeetingAgendaItemListRelationFilter
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskListRelationFilter
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskListRelationFilter
    uploadTasksCreated?: MeetingAgendaItemUploadTaskListRelationFilter
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentListRelationFilter
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentListRelationFilter
    meetingAttachmentsUploaded?: MeetingAttachmentListRelationFilter
    meetingAttachmentsCreated?: MeetingAttachmentListRelationFilter
    aiToolGrantsDirect?: AIToolGrantUserListRelationFilter
    adpPtoSchedules?: AdpPtoScheduleListRelationFilter
    internalAppSlugBinding?: XOR<EmployeeSlugBindingNullableScalarRelationFilter, EmployeeSlugBindingWhereInput> | null
    internalAppsCreated?: InternalAppListRelationFilter
    internalAppsForceDisabled?: InternalAppListRelationFilter
    internalAppDeploymentsTriggered?: InternalAppDeploymentListRelationFilter
    internalAppEnvVarsManaged?: InternalAppEnvVarListRelationFilter
    internalAppTokens?: InternalAppEmployeeTokenListRelationFilter
    internalAppEvents?: InternalAppEventListRelationFilter
    aiUsageTokens?: AiUsageTokenListRelationFilter
    aiUsageTokensRevoked?: AiUsageTokenListRelationFilter
    aiUsageDevices?: AiUsageDeviceListRelationFilter
    aiUsageDevicesBlocked?: AiUsageDeviceListRelationFilter
    aiUsageEvents?: AiUsageEventListRelationFilter
    aiUsageRollups?: AiUsageDailyRollupListRelationFilter
  }

  export type UserOrderByWithRelationInput = {
    id?: SortOrder
    username?: SortOrder
    email?: SortOrder
    passwordHash?: SortOrderInput | SortOrder
    displayName?: SortOrder
    avatar?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    status?: SortOrder
    source?: SortOrder
    ldapDn?: SortOrderInput | SortOrder
    employeeId?: SortOrderInput | SortOrder
    ldapSyncedAt?: SortOrderInput | SortOrder
    externalId?: SortOrderInput | SortOrder
    externalSource?: SortOrderInput | SortOrder
    adpAoid?: SortOrderInput | SortOrder
    adpLinkedAt?: SortOrderInput | SortOrder
    tenantId?: SortOrderInput | SortOrder
    defaultRegion?: SortOrder
    workCity?: SortOrderInput | SortOrder
    hiredAt?: SortOrderInput | SortOrder
    terminatedAt?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    initiatedProcesses?: ApprovalInstanceOrderByRelationAggregateInput
    approvalActionLogs?: ApprovalTaskLogOrderByRelationAggregateInput
    approvalActionTargets?: ApprovalTaskLogOrderByRelationAggregateInput
    approvalAdminExports?: ApprovalAdminExportOrderByRelationAggregateInput
    createdContracts?: ContractRequestOrderByRelationAggregateInput
    createdExpenses?: ExpenseRequestOrderByRelationAggregateInput
    createdPurchases?: PurchaseRequestOrderByRelationAggregateInput
    auditLogs?: AuditLogOrderByRelationAggregateInput
    createdAutomationTasks?: AutomationTaskOrderByRelationAggregateInput
    createdFormDefinitions?: FormDefinitionOrderByRelationAggregateInput
    updatedFormDefinitions?: FormDefinitionOrderByRelationAggregateInput
    createdFormInstances?: FormInstanceOrderByRelationAggregateInput
    submittedFormInstances?: FormInstanceOrderByRelationAggregateInput
    updatedFormInstances?: FormInstanceOrderByRelationAggregateInput
    createdFormTemplates?: FormTemplateOrderByRelationAggregateInput
    updatedFormTemplates?: FormTemplateOrderByRelationAggregateInput
    createdFormVersions?: FormVersionOrderByRelationAggregateInput
    reviewedFormVersions?: FormVersionOrderByRelationAggregateInput
    roles?: UserRoleOrderByRelationAggregateInput
    workflowRoles?: WorkflowRoleUserOrderByRelationAggregateInput
    departmentMemberships?: UserDepartmentOrderByRelationAggregateInput
    managedUsers?: UserDepartmentOrderByRelationAggregateInput
    notificationLogs?: NotificationLogOrderByRelationAggregateInput
    notifications?: NotificationMessageOrderByRelationAggregateInput
    delegationSettings?: UserDelegationSettingOrderByRelationAggregateInput
    delegatedToMe?: UserDelegationSettingOrderByRelationAggregateInput
    knowledgeArticles?: KnowledgeArticleOrderByRelationAggregateInput
    aiQALogs?: AIQALogOrderByRelationAggregateInput
    documentViews?: DocumentViewOrderByRelationAggregateInput
    documentLikes?: DocumentLikeOrderByRelationAggregateInput
    documentComments?: DocumentCommentOrderByRelationAggregateInput
    mentionedIn?: UserMentionOrderByRelationAggregateInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentOrderByRelationAggregateInput
    feedbacks?: FeedbackOrderByRelationAggregateInput
    assignedFeedbacks?: FeedbackOrderByRelationAggregateInput
    devItemsOwned?: DevItemOrderByRelationAggregateInput
    devItemsReported?: DevItemOrderByRelationAggregateInput
    devItemsReviewed?: DevItemOrderByRelationAggregateInput
    releaseNotes?: ReleaseNoteOrderByRelationAggregateInput
    siteCheckpointsCreated?: SiteCheckpointOrderByRelationAggregateInput
    siteAttendanceEvents?: SiteAttendanceEventOrderByRelationAggregateInput
    siteDailySummaries?: SiteDailySummaryOrderByRelationAggregateInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerOrderByRelationAggregateInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerOrderByRelationAggregateInput
    meetingAttendances?: MeetingAttendanceOrderByRelationAggregateInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeOrderByRelationAggregateInput
    meetingTemplatesCreated?: MeetingTemplateOrderByRelationAggregateInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeOrderByRelationAggregateInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordOrderByRelationAggregateInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogOrderByRelationAggregateInput
    meetingsCreated?: MeetingOrderByRelationAggregateInput
    meetingSeriesCreated?: MeetingSeriesOrderByRelationAggregateInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceOrderByRelationAggregateInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionOrderByRelationAggregateInput
    agendaSectionsCreated?: MeetingAgendaSectionOrderByRelationAggregateInput
    agendaItemsCreated?: MeetingAgendaItemOrderByRelationAggregateInput
    agendaItemsPresented?: MeetingAgendaItemOrderByRelationAggregateInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskOrderByRelationAggregateInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskOrderByRelationAggregateInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskOrderByRelationAggregateInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentOrderByRelationAggregateInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentOrderByRelationAggregateInput
    meetingAttachmentsUploaded?: MeetingAttachmentOrderByRelationAggregateInput
    meetingAttachmentsCreated?: MeetingAttachmentOrderByRelationAggregateInput
    aiToolGrantsDirect?: AIToolGrantUserOrderByRelationAggregateInput
    adpPtoSchedules?: AdpPtoScheduleOrderByRelationAggregateInput
    internalAppSlugBinding?: EmployeeSlugBindingOrderByWithRelationInput
    internalAppsCreated?: InternalAppOrderByRelationAggregateInput
    internalAppsForceDisabled?: InternalAppOrderByRelationAggregateInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentOrderByRelationAggregateInput
    internalAppEnvVarsManaged?: InternalAppEnvVarOrderByRelationAggregateInput
    internalAppTokens?: InternalAppEmployeeTokenOrderByRelationAggregateInput
    internalAppEvents?: InternalAppEventOrderByRelationAggregateInput
    aiUsageTokens?: AiUsageTokenOrderByRelationAggregateInput
    aiUsageTokensRevoked?: AiUsageTokenOrderByRelationAggregateInput
    aiUsageDevices?: AiUsageDeviceOrderByRelationAggregateInput
    aiUsageDevicesBlocked?: AiUsageDeviceOrderByRelationAggregateInput
    aiUsageEvents?: AiUsageEventOrderByRelationAggregateInput
    aiUsageRollups?: AiUsageDailyRollupOrderByRelationAggregateInput
  }

  export type UserWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    username?: string
    email?: string
    employeeId?: string
    adpAoid?: string
    AND?: UserWhereInput | UserWhereInput[]
    OR?: UserWhereInput[]
    NOT?: UserWhereInput | UserWhereInput[]
    passwordHash?: StringNullableFilter<"User"> | string | null
    displayName?: StringFilter<"User"> | string
    avatar?: StringNullableFilter<"User"> | string | null
    phone?: StringNullableFilter<"User"> | string | null
    status?: EnumUserStatusFilter<"User"> | $Enums.UserStatus
    source?: EnumUserSourceFilter<"User"> | $Enums.UserSource
    ldapDn?: StringNullableFilter<"User"> | string | null
    ldapSyncedAt?: DateTimeNullableFilter<"User"> | Date | string | null
    externalId?: StringNullableFilter<"User"> | string | null
    externalSource?: StringNullableFilter<"User"> | string | null
    adpLinkedAt?: DateTimeNullableFilter<"User"> | Date | string | null
    tenantId?: StringNullableFilter<"User"> | string | null
    defaultRegion?: StringFilter<"User"> | string
    workCity?: StringNullableFilter<"User"> | string | null
    hiredAt?: DateTimeNullableFilter<"User"> | Date | string | null
    terminatedAt?: DateTimeNullableFilter<"User"> | Date | string | null
    metadata?: JsonFilter<"User">
    createdAt?: DateTimeFilter<"User"> | Date | string
    updatedAt?: DateTimeFilter<"User"> | Date | string
    deletedAt?: DateTimeNullableFilter<"User"> | Date | string | null
    initiatedProcesses?: ApprovalInstanceListRelationFilter
    approvalActionLogs?: ApprovalTaskLogListRelationFilter
    approvalActionTargets?: ApprovalTaskLogListRelationFilter
    approvalAdminExports?: ApprovalAdminExportListRelationFilter
    createdContracts?: ContractRequestListRelationFilter
    createdExpenses?: ExpenseRequestListRelationFilter
    createdPurchases?: PurchaseRequestListRelationFilter
    auditLogs?: AuditLogListRelationFilter
    createdAutomationTasks?: AutomationTaskListRelationFilter
    createdFormDefinitions?: FormDefinitionListRelationFilter
    updatedFormDefinitions?: FormDefinitionListRelationFilter
    createdFormInstances?: FormInstanceListRelationFilter
    submittedFormInstances?: FormInstanceListRelationFilter
    updatedFormInstances?: FormInstanceListRelationFilter
    createdFormTemplates?: FormTemplateListRelationFilter
    updatedFormTemplates?: FormTemplateListRelationFilter
    createdFormVersions?: FormVersionListRelationFilter
    reviewedFormVersions?: FormVersionListRelationFilter
    roles?: UserRoleListRelationFilter
    workflowRoles?: WorkflowRoleUserListRelationFilter
    departmentMemberships?: UserDepartmentListRelationFilter
    managedUsers?: UserDepartmentListRelationFilter
    notificationLogs?: NotificationLogListRelationFilter
    notifications?: NotificationMessageListRelationFilter
    delegationSettings?: UserDelegationSettingListRelationFilter
    delegatedToMe?: UserDelegationSettingListRelationFilter
    knowledgeArticles?: KnowledgeArticleListRelationFilter
    aiQALogs?: AIQALogListRelationFilter
    documentViews?: DocumentViewListRelationFilter
    documentLikes?: DocumentLikeListRelationFilter
    documentComments?: DocumentCommentListRelationFilter
    mentionedIn?: UserMentionListRelationFilter
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentListRelationFilter
    feedbacks?: FeedbackListRelationFilter
    assignedFeedbacks?: FeedbackListRelationFilter
    devItemsOwned?: DevItemListRelationFilter
    devItemsReported?: DevItemListRelationFilter
    devItemsReviewed?: DevItemListRelationFilter
    releaseNotes?: ReleaseNoteListRelationFilter
    siteCheckpointsCreated?: SiteCheckpointListRelationFilter
    siteAttendanceEvents?: SiteAttendanceEventListRelationFilter
    siteDailySummaries?: SiteDailySummaryListRelationFilter
    sharedCheckinPartnersCreated?: SharedCheckinPartnerListRelationFilter
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerListRelationFilter
    meetingAttendances?: MeetingAttendanceListRelationFilter
    meetingRequiredAttendees?: MeetingRequiredAttendeeListRelationFilter
    meetingTemplatesCreated?: MeetingTemplateListRelationFilter
    meetingTemplateAttendees?: MeetingTemplateAttendeeListRelationFilter
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordListRelationFilter
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogListRelationFilter
    meetingsCreated?: MeetingListRelationFilter
    meetingSeriesCreated?: MeetingSeriesListRelationFilter
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceListRelationFilter
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionListRelationFilter
    agendaSectionsCreated?: MeetingAgendaSectionListRelationFilter
    agendaItemsCreated?: MeetingAgendaItemListRelationFilter
    agendaItemsPresented?: MeetingAgendaItemListRelationFilter
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskListRelationFilter
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskListRelationFilter
    uploadTasksCreated?: MeetingAgendaItemUploadTaskListRelationFilter
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentListRelationFilter
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentListRelationFilter
    meetingAttachmentsUploaded?: MeetingAttachmentListRelationFilter
    meetingAttachmentsCreated?: MeetingAttachmentListRelationFilter
    aiToolGrantsDirect?: AIToolGrantUserListRelationFilter
    adpPtoSchedules?: AdpPtoScheduleListRelationFilter
    internalAppSlugBinding?: XOR<EmployeeSlugBindingNullableScalarRelationFilter, EmployeeSlugBindingWhereInput> | null
    internalAppsCreated?: InternalAppListRelationFilter
    internalAppsForceDisabled?: InternalAppListRelationFilter
    internalAppDeploymentsTriggered?: InternalAppDeploymentListRelationFilter
    internalAppEnvVarsManaged?: InternalAppEnvVarListRelationFilter
    internalAppTokens?: InternalAppEmployeeTokenListRelationFilter
    internalAppEvents?: InternalAppEventListRelationFilter
    aiUsageTokens?: AiUsageTokenListRelationFilter
    aiUsageTokensRevoked?: AiUsageTokenListRelationFilter
    aiUsageDevices?: AiUsageDeviceListRelationFilter
    aiUsageDevicesBlocked?: AiUsageDeviceListRelationFilter
    aiUsageEvents?: AiUsageEventListRelationFilter
    aiUsageRollups?: AiUsageDailyRollupListRelationFilter
  }, "id" | "username" | "email" | "employeeId" | "adpAoid">

  export type UserOrderByWithAggregationInput = {
    id?: SortOrder
    username?: SortOrder
    email?: SortOrder
    passwordHash?: SortOrderInput | SortOrder
    displayName?: SortOrder
    avatar?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    status?: SortOrder
    source?: SortOrder
    ldapDn?: SortOrderInput | SortOrder
    employeeId?: SortOrderInput | SortOrder
    ldapSyncedAt?: SortOrderInput | SortOrder
    externalId?: SortOrderInput | SortOrder
    externalSource?: SortOrderInput | SortOrder
    adpAoid?: SortOrderInput | SortOrder
    adpLinkedAt?: SortOrderInput | SortOrder
    tenantId?: SortOrderInput | SortOrder
    defaultRegion?: SortOrder
    workCity?: SortOrderInput | SortOrder
    hiredAt?: SortOrderInput | SortOrder
    terminatedAt?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: UserCountOrderByAggregateInput
    _max?: UserMaxOrderByAggregateInput
    _min?: UserMinOrderByAggregateInput
  }

  export type UserScalarWhereWithAggregatesInput = {
    AND?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[]
    OR?: UserScalarWhereWithAggregatesInput[]
    NOT?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"User"> | string
    username?: StringWithAggregatesFilter<"User"> | string
    email?: StringWithAggregatesFilter<"User"> | string
    passwordHash?: StringNullableWithAggregatesFilter<"User"> | string | null
    displayName?: StringWithAggregatesFilter<"User"> | string
    avatar?: StringNullableWithAggregatesFilter<"User"> | string | null
    phone?: StringNullableWithAggregatesFilter<"User"> | string | null
    status?: EnumUserStatusWithAggregatesFilter<"User"> | $Enums.UserStatus
    source?: EnumUserSourceWithAggregatesFilter<"User"> | $Enums.UserSource
    ldapDn?: StringNullableWithAggregatesFilter<"User"> | string | null
    employeeId?: StringNullableWithAggregatesFilter<"User"> | string | null
    ldapSyncedAt?: DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null
    externalId?: StringNullableWithAggregatesFilter<"User"> | string | null
    externalSource?: StringNullableWithAggregatesFilter<"User"> | string | null
    adpAoid?: StringNullableWithAggregatesFilter<"User"> | string | null
    adpLinkedAt?: DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null
    tenantId?: StringNullableWithAggregatesFilter<"User"> | string | null
    defaultRegion?: StringWithAggregatesFilter<"User"> | string
    workCity?: StringNullableWithAggregatesFilter<"User"> | string | null
    hiredAt?: DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null
    terminatedAt?: DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null
    metadata?: JsonWithAggregatesFilter<"User">
    createdAt?: DateTimeWithAggregatesFilter<"User"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"User"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null
  }

  export type RoleWhereInput = {
    AND?: RoleWhereInput | RoleWhereInput[]
    OR?: RoleWhereInput[]
    NOT?: RoleWhereInput | RoleWhereInput[]
    id?: UuidFilter<"Role"> | string
    name?: StringFilter<"Role"> | string
    code?: StringFilter<"Role"> | string
    description?: StringNullableFilter<"Role"> | string | null
    isBuiltIn?: BoolFilter<"Role"> | boolean
    enabled?: BoolFilter<"Role"> | boolean
    createdAt?: DateTimeFilter<"Role"> | Date | string
    updatedAt?: DateTimeFilter<"Role"> | Date | string
    permissions?: RolePermissionListRelationFilter
    users?: UserRoleListRelationFilter
    aiToolGrants?: AIToolGrantListRelationFilter
    dataScopes?: RoleDataScopeListRelationFilter
  }

  export type RoleOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    isBuiltIn?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    permissions?: RolePermissionOrderByRelationAggregateInput
    users?: UserRoleOrderByRelationAggregateInput
    aiToolGrants?: AIToolGrantOrderByRelationAggregateInput
    dataScopes?: RoleDataScopeOrderByRelationAggregateInput
  }

  export type RoleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    name?: string
    code?: string
    AND?: RoleWhereInput | RoleWhereInput[]
    OR?: RoleWhereInput[]
    NOT?: RoleWhereInput | RoleWhereInput[]
    description?: StringNullableFilter<"Role"> | string | null
    isBuiltIn?: BoolFilter<"Role"> | boolean
    enabled?: BoolFilter<"Role"> | boolean
    createdAt?: DateTimeFilter<"Role"> | Date | string
    updatedAt?: DateTimeFilter<"Role"> | Date | string
    permissions?: RolePermissionListRelationFilter
    users?: UserRoleListRelationFilter
    aiToolGrants?: AIToolGrantListRelationFilter
    dataScopes?: RoleDataScopeListRelationFilter
  }, "id" | "name" | "code">

  export type RoleOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    isBuiltIn?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: RoleCountOrderByAggregateInput
    _max?: RoleMaxOrderByAggregateInput
    _min?: RoleMinOrderByAggregateInput
  }

  export type RoleScalarWhereWithAggregatesInput = {
    AND?: RoleScalarWhereWithAggregatesInput | RoleScalarWhereWithAggregatesInput[]
    OR?: RoleScalarWhereWithAggregatesInput[]
    NOT?: RoleScalarWhereWithAggregatesInput | RoleScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Role"> | string
    name?: StringWithAggregatesFilter<"Role"> | string
    code?: StringWithAggregatesFilter<"Role"> | string
    description?: StringNullableWithAggregatesFilter<"Role"> | string | null
    isBuiltIn?: BoolWithAggregatesFilter<"Role"> | boolean
    enabled?: BoolWithAggregatesFilter<"Role"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"Role"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Role"> | Date | string
  }

  export type PermissionWhereInput = {
    AND?: PermissionWhereInput | PermissionWhereInput[]
    OR?: PermissionWhereInput[]
    NOT?: PermissionWhereInput | PermissionWhereInput[]
    id?: UuidFilter<"Permission"> | string
    resource?: StringFilter<"Permission"> | string
    action?: StringFilter<"Permission"> | string
    description?: StringNullableFilter<"Permission"> | string | null
    module?: StringNullableFilter<"Permission"> | string | null
    isBuiltIn?: BoolFilter<"Permission"> | boolean
    createdAt?: DateTimeFilter<"Permission"> | Date | string
    updatedAt?: DateTimeFilter<"Permission"> | Date | string
    roles?: RolePermissionListRelationFilter
  }

  export type PermissionOrderByWithRelationInput = {
    id?: SortOrder
    resource?: SortOrder
    action?: SortOrder
    description?: SortOrderInput | SortOrder
    module?: SortOrderInput | SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    roles?: RolePermissionOrderByRelationAggregateInput
  }

  export type PermissionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    resource_action?: PermissionResourceActionCompoundUniqueInput
    AND?: PermissionWhereInput | PermissionWhereInput[]
    OR?: PermissionWhereInput[]
    NOT?: PermissionWhereInput | PermissionWhereInput[]
    resource?: StringFilter<"Permission"> | string
    action?: StringFilter<"Permission"> | string
    description?: StringNullableFilter<"Permission"> | string | null
    module?: StringNullableFilter<"Permission"> | string | null
    isBuiltIn?: BoolFilter<"Permission"> | boolean
    createdAt?: DateTimeFilter<"Permission"> | Date | string
    updatedAt?: DateTimeFilter<"Permission"> | Date | string
    roles?: RolePermissionListRelationFilter
  }, "id" | "resource_action">

  export type PermissionOrderByWithAggregationInput = {
    id?: SortOrder
    resource?: SortOrder
    action?: SortOrder
    description?: SortOrderInput | SortOrder
    module?: SortOrderInput | SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: PermissionCountOrderByAggregateInput
    _max?: PermissionMaxOrderByAggregateInput
    _min?: PermissionMinOrderByAggregateInput
  }

  export type PermissionScalarWhereWithAggregatesInput = {
    AND?: PermissionScalarWhereWithAggregatesInput | PermissionScalarWhereWithAggregatesInput[]
    OR?: PermissionScalarWhereWithAggregatesInput[]
    NOT?: PermissionScalarWhereWithAggregatesInput | PermissionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Permission"> | string
    resource?: StringWithAggregatesFilter<"Permission"> | string
    action?: StringWithAggregatesFilter<"Permission"> | string
    description?: StringNullableWithAggregatesFilter<"Permission"> | string | null
    module?: StringNullableWithAggregatesFilter<"Permission"> | string | null
    isBuiltIn?: BoolWithAggregatesFilter<"Permission"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"Permission"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Permission"> | Date | string
  }

  export type WorkflowRoleWhereInput = {
    AND?: WorkflowRoleWhereInput | WorkflowRoleWhereInput[]
    OR?: WorkflowRoleWhereInput[]
    NOT?: WorkflowRoleWhereInput | WorkflowRoleWhereInput[]
    id?: UuidFilter<"WorkflowRole"> | string
    name?: StringFilter<"WorkflowRole"> | string
    code?: StringFilter<"WorkflowRole"> | string
    description?: StringNullableFilter<"WorkflowRole"> | string | null
    ruleType?: EnumWorkflowRuleTypeFilter<"WorkflowRole"> | $Enums.WorkflowRuleType
    ruleConfig?: JsonFilter<"WorkflowRole">
    createdAt?: DateTimeFilter<"WorkflowRole"> | Date | string
    updatedAt?: DateTimeFilter<"WorkflowRole"> | Date | string
    userAssignments?: WorkflowRoleUserListRelationFilter
  }

  export type WorkflowRoleOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    ruleType?: SortOrder
    ruleConfig?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    userAssignments?: WorkflowRoleUserOrderByRelationAggregateInput
  }

  export type WorkflowRoleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    name?: string
    code?: string
    AND?: WorkflowRoleWhereInput | WorkflowRoleWhereInput[]
    OR?: WorkflowRoleWhereInput[]
    NOT?: WorkflowRoleWhereInput | WorkflowRoleWhereInput[]
    description?: StringNullableFilter<"WorkflowRole"> | string | null
    ruleType?: EnumWorkflowRuleTypeFilter<"WorkflowRole"> | $Enums.WorkflowRuleType
    ruleConfig?: JsonFilter<"WorkflowRole">
    createdAt?: DateTimeFilter<"WorkflowRole"> | Date | string
    updatedAt?: DateTimeFilter<"WorkflowRole"> | Date | string
    userAssignments?: WorkflowRoleUserListRelationFilter
  }, "id" | "name" | "code">

  export type WorkflowRoleOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    ruleType?: SortOrder
    ruleConfig?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: WorkflowRoleCountOrderByAggregateInput
    _max?: WorkflowRoleMaxOrderByAggregateInput
    _min?: WorkflowRoleMinOrderByAggregateInput
  }

  export type WorkflowRoleScalarWhereWithAggregatesInput = {
    AND?: WorkflowRoleScalarWhereWithAggregatesInput | WorkflowRoleScalarWhereWithAggregatesInput[]
    OR?: WorkflowRoleScalarWhereWithAggregatesInput[]
    NOT?: WorkflowRoleScalarWhereWithAggregatesInput | WorkflowRoleScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"WorkflowRole"> | string
    name?: StringWithAggregatesFilter<"WorkflowRole"> | string
    code?: StringWithAggregatesFilter<"WorkflowRole"> | string
    description?: StringNullableWithAggregatesFilter<"WorkflowRole"> | string | null
    ruleType?: EnumWorkflowRuleTypeWithAggregatesFilter<"WorkflowRole"> | $Enums.WorkflowRuleType
    ruleConfig?: JsonWithAggregatesFilter<"WorkflowRole">
    createdAt?: DateTimeWithAggregatesFilter<"WorkflowRole"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"WorkflowRole"> | Date | string
  }

  export type WorkflowRoleUserWhereInput = {
    AND?: WorkflowRoleUserWhereInput | WorkflowRoleUserWhereInput[]
    OR?: WorkflowRoleUserWhereInput[]
    NOT?: WorkflowRoleUserWhereInput | WorkflowRoleUserWhereInput[]
    id?: UuidFilter<"WorkflowRoleUser"> | string
    workflowRoleId?: UuidFilter<"WorkflowRoleUser"> | string
    userId?: UuidFilter<"WorkflowRoleUser"> | string
    createdAt?: DateTimeFilter<"WorkflowRoleUser"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    workflowRole?: XOR<WorkflowRoleScalarRelationFilter, WorkflowRoleWhereInput>
  }

  export type WorkflowRoleUserOrderByWithRelationInput = {
    id?: SortOrder
    workflowRoleId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
    user?: UserOrderByWithRelationInput
    workflowRole?: WorkflowRoleOrderByWithRelationInput
  }

  export type WorkflowRoleUserWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    workflowRoleId_userId?: WorkflowRoleUserWorkflowRoleIdUserIdCompoundUniqueInput
    AND?: WorkflowRoleUserWhereInput | WorkflowRoleUserWhereInput[]
    OR?: WorkflowRoleUserWhereInput[]
    NOT?: WorkflowRoleUserWhereInput | WorkflowRoleUserWhereInput[]
    workflowRoleId?: UuidFilter<"WorkflowRoleUser"> | string
    userId?: UuidFilter<"WorkflowRoleUser"> | string
    createdAt?: DateTimeFilter<"WorkflowRoleUser"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    workflowRole?: XOR<WorkflowRoleScalarRelationFilter, WorkflowRoleWhereInput>
  }, "id" | "workflowRoleId_userId">

  export type WorkflowRoleUserOrderByWithAggregationInput = {
    id?: SortOrder
    workflowRoleId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
    _count?: WorkflowRoleUserCountOrderByAggregateInput
    _max?: WorkflowRoleUserMaxOrderByAggregateInput
    _min?: WorkflowRoleUserMinOrderByAggregateInput
  }

  export type WorkflowRoleUserScalarWhereWithAggregatesInput = {
    AND?: WorkflowRoleUserScalarWhereWithAggregatesInput | WorkflowRoleUserScalarWhereWithAggregatesInput[]
    OR?: WorkflowRoleUserScalarWhereWithAggregatesInput[]
    NOT?: WorkflowRoleUserScalarWhereWithAggregatesInput | WorkflowRoleUserScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"WorkflowRoleUser"> | string
    workflowRoleId?: UuidWithAggregatesFilter<"WorkflowRoleUser"> | string
    userId?: UuidWithAggregatesFilter<"WorkflowRoleUser"> | string
    createdAt?: DateTimeWithAggregatesFilter<"WorkflowRoleUser"> | Date | string
  }

  export type UserRoleWhereInput = {
    AND?: UserRoleWhereInput | UserRoleWhereInput[]
    OR?: UserRoleWhereInput[]
    NOT?: UserRoleWhereInput | UserRoleWhereInput[]
    id?: UuidFilter<"UserRole"> | string
    userId?: UuidFilter<"UserRole"> | string
    roleId?: UuidFilter<"UserRole"> | string
    organizationId?: UuidNullableFilter<"UserRole"> | string | null
    createdAt?: DateTimeFilter<"UserRole"> | Date | string
    lastReviewedAt?: DateTimeNullableFilter<"UserRole"> | Date | string | null
    lastReviewedBy?: UuidNullableFilter<"UserRole"> | string | null
    reviewComment?: StringNullableFilter<"UserRole"> | string | null
    role?: XOR<RoleScalarRelationFilter, RoleWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }

  export type UserRoleOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    roleId?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    lastReviewedAt?: SortOrderInput | SortOrder
    lastReviewedBy?: SortOrderInput | SortOrder
    reviewComment?: SortOrderInput | SortOrder
    role?: RoleOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type UserRoleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId_roleId_organizationId?: UserRoleUserIdRoleIdOrganizationIdCompoundUniqueInput
    AND?: UserRoleWhereInput | UserRoleWhereInput[]
    OR?: UserRoleWhereInput[]
    NOT?: UserRoleWhereInput | UserRoleWhereInput[]
    userId?: UuidFilter<"UserRole"> | string
    roleId?: UuidFilter<"UserRole"> | string
    organizationId?: UuidNullableFilter<"UserRole"> | string | null
    createdAt?: DateTimeFilter<"UserRole"> | Date | string
    lastReviewedAt?: DateTimeNullableFilter<"UserRole"> | Date | string | null
    lastReviewedBy?: UuidNullableFilter<"UserRole"> | string | null
    reviewComment?: StringNullableFilter<"UserRole"> | string | null
    role?: XOR<RoleScalarRelationFilter, RoleWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }, "id" | "userId_roleId_organizationId">

  export type UserRoleOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    roleId?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    lastReviewedAt?: SortOrderInput | SortOrder
    lastReviewedBy?: SortOrderInput | SortOrder
    reviewComment?: SortOrderInput | SortOrder
    _count?: UserRoleCountOrderByAggregateInput
    _max?: UserRoleMaxOrderByAggregateInput
    _min?: UserRoleMinOrderByAggregateInput
  }

  export type UserRoleScalarWhereWithAggregatesInput = {
    AND?: UserRoleScalarWhereWithAggregatesInput | UserRoleScalarWhereWithAggregatesInput[]
    OR?: UserRoleScalarWhereWithAggregatesInput[]
    NOT?: UserRoleScalarWhereWithAggregatesInput | UserRoleScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"UserRole"> | string
    userId?: UuidWithAggregatesFilter<"UserRole"> | string
    roleId?: UuidWithAggregatesFilter<"UserRole"> | string
    organizationId?: UuidNullableWithAggregatesFilter<"UserRole"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"UserRole"> | Date | string
    lastReviewedAt?: DateTimeNullableWithAggregatesFilter<"UserRole"> | Date | string | null
    lastReviewedBy?: UuidNullableWithAggregatesFilter<"UserRole"> | string | null
    reviewComment?: StringNullableWithAggregatesFilter<"UserRole"> | string | null
  }

  export type RolePermissionWhereInput = {
    AND?: RolePermissionWhereInput | RolePermissionWhereInput[]
    OR?: RolePermissionWhereInput[]
    NOT?: RolePermissionWhereInput | RolePermissionWhereInput[]
    id?: UuidFilter<"RolePermission"> | string
    roleId?: UuidFilter<"RolePermission"> | string
    permissionId?: UuidFilter<"RolePermission"> | string
    createdAt?: DateTimeFilter<"RolePermission"> | Date | string
    permission?: XOR<PermissionScalarRelationFilter, PermissionWhereInput>
    role?: XOR<RoleScalarRelationFilter, RoleWhereInput>
  }

  export type RolePermissionOrderByWithRelationInput = {
    id?: SortOrder
    roleId?: SortOrder
    permissionId?: SortOrder
    createdAt?: SortOrder
    permission?: PermissionOrderByWithRelationInput
    role?: RoleOrderByWithRelationInput
  }

  export type RolePermissionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    roleId_permissionId?: RolePermissionRoleIdPermissionIdCompoundUniqueInput
    AND?: RolePermissionWhereInput | RolePermissionWhereInput[]
    OR?: RolePermissionWhereInput[]
    NOT?: RolePermissionWhereInput | RolePermissionWhereInput[]
    roleId?: UuidFilter<"RolePermission"> | string
    permissionId?: UuidFilter<"RolePermission"> | string
    createdAt?: DateTimeFilter<"RolePermission"> | Date | string
    permission?: XOR<PermissionScalarRelationFilter, PermissionWhereInput>
    role?: XOR<RoleScalarRelationFilter, RoleWhereInput>
  }, "id" | "roleId_permissionId">

  export type RolePermissionOrderByWithAggregationInput = {
    id?: SortOrder
    roleId?: SortOrder
    permissionId?: SortOrder
    createdAt?: SortOrder
    _count?: RolePermissionCountOrderByAggregateInput
    _max?: RolePermissionMaxOrderByAggregateInput
    _min?: RolePermissionMinOrderByAggregateInput
  }

  export type RolePermissionScalarWhereWithAggregatesInput = {
    AND?: RolePermissionScalarWhereWithAggregatesInput | RolePermissionScalarWhereWithAggregatesInput[]
    OR?: RolePermissionScalarWhereWithAggregatesInput[]
    NOT?: RolePermissionScalarWhereWithAggregatesInput | RolePermissionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RolePermission"> | string
    roleId?: UuidWithAggregatesFilter<"RolePermission"> | string
    permissionId?: UuidWithAggregatesFilter<"RolePermission"> | string
    createdAt?: DateTimeWithAggregatesFilter<"RolePermission"> | Date | string
  }

  export type DataScopeWhereInput = {
    AND?: DataScopeWhereInput | DataScopeWhereInput[]
    OR?: DataScopeWhereInput[]
    NOT?: DataScopeWhereInput | DataScopeWhereInput[]
    id?: UuidFilter<"DataScope"> | string
    code?: StringFilter<"DataScope"> | string
    name?: StringFilter<"DataScope"> | string
    scopeType?: EnumDataScopeTypeFilter<"DataScope"> | $Enums.DataScopeType
    rules?: JsonNullableFilter<"DataScope">
    isBuiltIn?: BoolFilter<"DataScope"> | boolean
    createdAt?: DateTimeFilter<"DataScope"> | Date | string
    updatedAt?: DateTimeFilter<"DataScope"> | Date | string
    roleScopes?: RoleDataScopeListRelationFilter
  }

  export type DataScopeOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    scopeType?: SortOrder
    rules?: SortOrderInput | SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    roleScopes?: RoleDataScopeOrderByRelationAggregateInput
  }

  export type DataScopeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: DataScopeWhereInput | DataScopeWhereInput[]
    OR?: DataScopeWhereInput[]
    NOT?: DataScopeWhereInput | DataScopeWhereInput[]
    name?: StringFilter<"DataScope"> | string
    scopeType?: EnumDataScopeTypeFilter<"DataScope"> | $Enums.DataScopeType
    rules?: JsonNullableFilter<"DataScope">
    isBuiltIn?: BoolFilter<"DataScope"> | boolean
    createdAt?: DateTimeFilter<"DataScope"> | Date | string
    updatedAt?: DateTimeFilter<"DataScope"> | Date | string
    roleScopes?: RoleDataScopeListRelationFilter
  }, "id" | "code">

  export type DataScopeOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    scopeType?: SortOrder
    rules?: SortOrderInput | SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: DataScopeCountOrderByAggregateInput
    _max?: DataScopeMaxOrderByAggregateInput
    _min?: DataScopeMinOrderByAggregateInput
  }

  export type DataScopeScalarWhereWithAggregatesInput = {
    AND?: DataScopeScalarWhereWithAggregatesInput | DataScopeScalarWhereWithAggregatesInput[]
    OR?: DataScopeScalarWhereWithAggregatesInput[]
    NOT?: DataScopeScalarWhereWithAggregatesInput | DataScopeScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DataScope"> | string
    code?: StringWithAggregatesFilter<"DataScope"> | string
    name?: StringWithAggregatesFilter<"DataScope"> | string
    scopeType?: EnumDataScopeTypeWithAggregatesFilter<"DataScope"> | $Enums.DataScopeType
    rules?: JsonNullableWithAggregatesFilter<"DataScope">
    isBuiltIn?: BoolWithAggregatesFilter<"DataScope"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"DataScope"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DataScope"> | Date | string
  }

  export type RoleDataScopeWhereInput = {
    AND?: RoleDataScopeWhereInput | RoleDataScopeWhereInput[]
    OR?: RoleDataScopeWhereInput[]
    NOT?: RoleDataScopeWhereInput | RoleDataScopeWhereInput[]
    id?: UuidFilter<"RoleDataScope"> | string
    roleId?: UuidFilter<"RoleDataScope"> | string
    dataScopeId?: UuidFilter<"RoleDataScope"> | string
    resource?: StringFilter<"RoleDataScope"> | string
    createdAt?: DateTimeFilter<"RoleDataScope"> | Date | string
    role?: XOR<RoleScalarRelationFilter, RoleWhereInput>
    dataScope?: XOR<DataScopeScalarRelationFilter, DataScopeWhereInput>
  }

  export type RoleDataScopeOrderByWithRelationInput = {
    id?: SortOrder
    roleId?: SortOrder
    dataScopeId?: SortOrder
    resource?: SortOrder
    createdAt?: SortOrder
    role?: RoleOrderByWithRelationInput
    dataScope?: DataScopeOrderByWithRelationInput
  }

  export type RoleDataScopeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    roleId_dataScopeId_resource?: RoleDataScopeRoleIdDataScopeIdResourceCompoundUniqueInput
    AND?: RoleDataScopeWhereInput | RoleDataScopeWhereInput[]
    OR?: RoleDataScopeWhereInput[]
    NOT?: RoleDataScopeWhereInput | RoleDataScopeWhereInput[]
    roleId?: UuidFilter<"RoleDataScope"> | string
    dataScopeId?: UuidFilter<"RoleDataScope"> | string
    resource?: StringFilter<"RoleDataScope"> | string
    createdAt?: DateTimeFilter<"RoleDataScope"> | Date | string
    role?: XOR<RoleScalarRelationFilter, RoleWhereInput>
    dataScope?: XOR<DataScopeScalarRelationFilter, DataScopeWhereInput>
  }, "id" | "roleId_dataScopeId_resource">

  export type RoleDataScopeOrderByWithAggregationInput = {
    id?: SortOrder
    roleId?: SortOrder
    dataScopeId?: SortOrder
    resource?: SortOrder
    createdAt?: SortOrder
    _count?: RoleDataScopeCountOrderByAggregateInput
    _max?: RoleDataScopeMaxOrderByAggregateInput
    _min?: RoleDataScopeMinOrderByAggregateInput
  }

  export type RoleDataScopeScalarWhereWithAggregatesInput = {
    AND?: RoleDataScopeScalarWhereWithAggregatesInput | RoleDataScopeScalarWhereWithAggregatesInput[]
    OR?: RoleDataScopeScalarWhereWithAggregatesInput[]
    NOT?: RoleDataScopeScalarWhereWithAggregatesInput | RoleDataScopeScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RoleDataScope"> | string
    roleId?: UuidWithAggregatesFilter<"RoleDataScope"> | string
    dataScopeId?: UuidWithAggregatesFilter<"RoleDataScope"> | string
    resource?: StringWithAggregatesFilter<"RoleDataScope"> | string
    createdAt?: DateTimeWithAggregatesFilter<"RoleDataScope"> | Date | string
  }

  export type AIToolGrantWhereInput = {
    AND?: AIToolGrantWhereInput | AIToolGrantWhereInput[]
    OR?: AIToolGrantWhereInput[]
    NOT?: AIToolGrantWhereInput | AIToolGrantWhereInput[]
    id?: UuidFilter<"AIToolGrant"> | string
    roleId?: UuidFilter<"AIToolGrant"> | string
    toolName?: StringFilter<"AIToolGrant"> | string
    createdAt?: DateTimeFilter<"AIToolGrant"> | Date | string
    updatedAt?: DateTimeFilter<"AIToolGrant"> | Date | string
    createdBy?: UuidNullableFilter<"AIToolGrant"> | string | null
    role?: XOR<RoleScalarRelationFilter, RoleWhereInput>
  }

  export type AIToolGrantOrderByWithRelationInput = {
    id?: SortOrder
    roleId?: SortOrder
    toolName?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    role?: RoleOrderByWithRelationInput
  }

  export type AIToolGrantWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    roleId_toolName?: AIToolGrantRoleIdToolNameCompoundUniqueInput
    AND?: AIToolGrantWhereInput | AIToolGrantWhereInput[]
    OR?: AIToolGrantWhereInput[]
    NOT?: AIToolGrantWhereInput | AIToolGrantWhereInput[]
    roleId?: UuidFilter<"AIToolGrant"> | string
    toolName?: StringFilter<"AIToolGrant"> | string
    createdAt?: DateTimeFilter<"AIToolGrant"> | Date | string
    updatedAt?: DateTimeFilter<"AIToolGrant"> | Date | string
    createdBy?: UuidNullableFilter<"AIToolGrant"> | string | null
    role?: XOR<RoleScalarRelationFilter, RoleWhereInput>
  }, "id" | "roleId_toolName">

  export type AIToolGrantOrderByWithAggregationInput = {
    id?: SortOrder
    roleId?: SortOrder
    toolName?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    _count?: AIToolGrantCountOrderByAggregateInput
    _max?: AIToolGrantMaxOrderByAggregateInput
    _min?: AIToolGrantMinOrderByAggregateInput
  }

  export type AIToolGrantScalarWhereWithAggregatesInput = {
    AND?: AIToolGrantScalarWhereWithAggregatesInput | AIToolGrantScalarWhereWithAggregatesInput[]
    OR?: AIToolGrantScalarWhereWithAggregatesInput[]
    NOT?: AIToolGrantScalarWhereWithAggregatesInput | AIToolGrantScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIToolGrant"> | string
    roleId?: UuidWithAggregatesFilter<"AIToolGrant"> | string
    toolName?: StringWithAggregatesFilter<"AIToolGrant"> | string
    createdAt?: DateTimeWithAggregatesFilter<"AIToolGrant"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AIToolGrant"> | Date | string
    createdBy?: UuidNullableWithAggregatesFilter<"AIToolGrant"> | string | null
  }

  export type AIToolGrantUserWhereInput = {
    AND?: AIToolGrantUserWhereInput | AIToolGrantUserWhereInput[]
    OR?: AIToolGrantUserWhereInput[]
    NOT?: AIToolGrantUserWhereInput | AIToolGrantUserWhereInput[]
    id?: UuidFilter<"AIToolGrantUser"> | string
    userId?: UuidFilter<"AIToolGrantUser"> | string
    toolName?: StringFilter<"AIToolGrantUser"> | string
    effect?: StringFilter<"AIToolGrantUser"> | string
    reason?: StringNullableFilter<"AIToolGrantUser"> | string | null
    createdAt?: DateTimeFilter<"AIToolGrantUser"> | Date | string
    updatedAt?: DateTimeFilter<"AIToolGrantUser"> | Date | string
    createdBy?: UuidNullableFilter<"AIToolGrantUser"> | string | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type AIToolGrantUserOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    toolName?: SortOrder
    effect?: SortOrder
    reason?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    user?: UserOrderByWithRelationInput
  }

  export type AIToolGrantUserWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId_toolName?: AIToolGrantUserUserIdToolNameCompoundUniqueInput
    AND?: AIToolGrantUserWhereInput | AIToolGrantUserWhereInput[]
    OR?: AIToolGrantUserWhereInput[]
    NOT?: AIToolGrantUserWhereInput | AIToolGrantUserWhereInput[]
    userId?: UuidFilter<"AIToolGrantUser"> | string
    toolName?: StringFilter<"AIToolGrantUser"> | string
    effect?: StringFilter<"AIToolGrantUser"> | string
    reason?: StringNullableFilter<"AIToolGrantUser"> | string | null
    createdAt?: DateTimeFilter<"AIToolGrantUser"> | Date | string
    updatedAt?: DateTimeFilter<"AIToolGrantUser"> | Date | string
    createdBy?: UuidNullableFilter<"AIToolGrantUser"> | string | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "userId_toolName">

  export type AIToolGrantUserOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    toolName?: SortOrder
    effect?: SortOrder
    reason?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    _count?: AIToolGrantUserCountOrderByAggregateInput
    _max?: AIToolGrantUserMaxOrderByAggregateInput
    _min?: AIToolGrantUserMinOrderByAggregateInput
  }

  export type AIToolGrantUserScalarWhereWithAggregatesInput = {
    AND?: AIToolGrantUserScalarWhereWithAggregatesInput | AIToolGrantUserScalarWhereWithAggregatesInput[]
    OR?: AIToolGrantUserScalarWhereWithAggregatesInput[]
    NOT?: AIToolGrantUserScalarWhereWithAggregatesInput | AIToolGrantUserScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIToolGrantUser"> | string
    userId?: UuidWithAggregatesFilter<"AIToolGrantUser"> | string
    toolName?: StringWithAggregatesFilter<"AIToolGrantUser"> | string
    effect?: StringWithAggregatesFilter<"AIToolGrantUser"> | string
    reason?: StringNullableWithAggregatesFilter<"AIToolGrantUser"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AIToolGrantUser"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AIToolGrantUser"> | Date | string
    createdBy?: UuidNullableWithAggregatesFilter<"AIToolGrantUser"> | string | null
  }

  export type PermissionDelegationWhereInput = {
    AND?: PermissionDelegationWhereInput | PermissionDelegationWhereInput[]
    OR?: PermissionDelegationWhereInput[]
    NOT?: PermissionDelegationWhereInput | PermissionDelegationWhereInput[]
    id?: UuidFilter<"PermissionDelegation"> | string
    fromUserId?: UuidFilter<"PermissionDelegation"> | string
    toUserId?: UuidFilter<"PermissionDelegation"> | string
    resource?: StringFilter<"PermissionDelegation"> | string
    validFrom?: DateTimeFilter<"PermissionDelegation"> | Date | string
    validTo?: DateTimeFilter<"PermissionDelegation"> | Date | string
    reason?: StringFilter<"PermissionDelegation"> | string
    organizationId?: UuidNullableFilter<"PermissionDelegation"> | string | null
    createdById?: UuidFilter<"PermissionDelegation"> | string
    createdAt?: DateTimeFilter<"PermissionDelegation"> | Date | string
    updatedAt?: DateTimeFilter<"PermissionDelegation"> | Date | string
    revokedAt?: DateTimeNullableFilter<"PermissionDelegation"> | Date | string | null
  }

  export type PermissionDelegationOrderByWithRelationInput = {
    id?: SortOrder
    fromUserId?: SortOrder
    toUserId?: SortOrder
    resource?: SortOrder
    validFrom?: SortOrder
    validTo?: SortOrder
    reason?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    revokedAt?: SortOrderInput | SortOrder
  }

  export type PermissionDelegationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: PermissionDelegationWhereInput | PermissionDelegationWhereInput[]
    OR?: PermissionDelegationWhereInput[]
    NOT?: PermissionDelegationWhereInput | PermissionDelegationWhereInput[]
    fromUserId?: UuidFilter<"PermissionDelegation"> | string
    toUserId?: UuidFilter<"PermissionDelegation"> | string
    resource?: StringFilter<"PermissionDelegation"> | string
    validFrom?: DateTimeFilter<"PermissionDelegation"> | Date | string
    validTo?: DateTimeFilter<"PermissionDelegation"> | Date | string
    reason?: StringFilter<"PermissionDelegation"> | string
    organizationId?: UuidNullableFilter<"PermissionDelegation"> | string | null
    createdById?: UuidFilter<"PermissionDelegation"> | string
    createdAt?: DateTimeFilter<"PermissionDelegation"> | Date | string
    updatedAt?: DateTimeFilter<"PermissionDelegation"> | Date | string
    revokedAt?: DateTimeNullableFilter<"PermissionDelegation"> | Date | string | null
  }, "id">

  export type PermissionDelegationOrderByWithAggregationInput = {
    id?: SortOrder
    fromUserId?: SortOrder
    toUserId?: SortOrder
    resource?: SortOrder
    validFrom?: SortOrder
    validTo?: SortOrder
    reason?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    revokedAt?: SortOrderInput | SortOrder
    _count?: PermissionDelegationCountOrderByAggregateInput
    _max?: PermissionDelegationMaxOrderByAggregateInput
    _min?: PermissionDelegationMinOrderByAggregateInput
  }

  export type PermissionDelegationScalarWhereWithAggregatesInput = {
    AND?: PermissionDelegationScalarWhereWithAggregatesInput | PermissionDelegationScalarWhereWithAggregatesInput[]
    OR?: PermissionDelegationScalarWhereWithAggregatesInput[]
    NOT?: PermissionDelegationScalarWhereWithAggregatesInput | PermissionDelegationScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PermissionDelegation"> | string
    fromUserId?: UuidWithAggregatesFilter<"PermissionDelegation"> | string
    toUserId?: UuidWithAggregatesFilter<"PermissionDelegation"> | string
    resource?: StringWithAggregatesFilter<"PermissionDelegation"> | string
    validFrom?: DateTimeWithAggregatesFilter<"PermissionDelegation"> | Date | string
    validTo?: DateTimeWithAggregatesFilter<"PermissionDelegation"> | Date | string
    reason?: StringWithAggregatesFilter<"PermissionDelegation"> | string
    organizationId?: UuidNullableWithAggregatesFilter<"PermissionDelegation"> | string | null
    createdById?: UuidWithAggregatesFilter<"PermissionDelegation"> | string
    createdAt?: DateTimeWithAggregatesFilter<"PermissionDelegation"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PermissionDelegation"> | Date | string
    revokedAt?: DateTimeNullableWithAggregatesFilter<"PermissionDelegation"> | Date | string | null
  }

  export type FieldPermissionWhereInput = {
    AND?: FieldPermissionWhereInput | FieldPermissionWhereInput[]
    OR?: FieldPermissionWhereInput[]
    NOT?: FieldPermissionWhereInput | FieldPermissionWhereInput[]
    id?: UuidFilter<"FieldPermission"> | string
    roleId?: UuidFilter<"FieldPermission"> | string
    resource?: StringFilter<"FieldPermission"> | string
    field?: StringFilter<"FieldPermission"> | string
    access?: EnumFieldAccessFilter<"FieldPermission"> | $Enums.FieldAccess
    createdAt?: DateTimeFilter<"FieldPermission"> | Date | string
    updatedAt?: DateTimeFilter<"FieldPermission"> | Date | string
  }

  export type FieldPermissionOrderByWithRelationInput = {
    id?: SortOrder
    roleId?: SortOrder
    resource?: SortOrder
    field?: SortOrder
    access?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FieldPermissionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    roleId_resource_field?: FieldPermissionRoleIdResourceFieldCompoundUniqueInput
    AND?: FieldPermissionWhereInput | FieldPermissionWhereInput[]
    OR?: FieldPermissionWhereInput[]
    NOT?: FieldPermissionWhereInput | FieldPermissionWhereInput[]
    roleId?: UuidFilter<"FieldPermission"> | string
    resource?: StringFilter<"FieldPermission"> | string
    field?: StringFilter<"FieldPermission"> | string
    access?: EnumFieldAccessFilter<"FieldPermission"> | $Enums.FieldAccess
    createdAt?: DateTimeFilter<"FieldPermission"> | Date | string
    updatedAt?: DateTimeFilter<"FieldPermission"> | Date | string
  }, "id" | "roleId_resource_field">

  export type FieldPermissionOrderByWithAggregationInput = {
    id?: SortOrder
    roleId?: SortOrder
    resource?: SortOrder
    field?: SortOrder
    access?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: FieldPermissionCountOrderByAggregateInput
    _max?: FieldPermissionMaxOrderByAggregateInput
    _min?: FieldPermissionMinOrderByAggregateInput
  }

  export type FieldPermissionScalarWhereWithAggregatesInput = {
    AND?: FieldPermissionScalarWhereWithAggregatesInput | FieldPermissionScalarWhereWithAggregatesInput[]
    OR?: FieldPermissionScalarWhereWithAggregatesInput[]
    NOT?: FieldPermissionScalarWhereWithAggregatesInput | FieldPermissionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"FieldPermission"> | string
    roleId?: UuidWithAggregatesFilter<"FieldPermission"> | string
    resource?: StringWithAggregatesFilter<"FieldPermission"> | string
    field?: StringWithAggregatesFilter<"FieldPermission"> | string
    access?: EnumFieldAccessWithAggregatesFilter<"FieldPermission"> | $Enums.FieldAccess
    createdAt?: DateTimeWithAggregatesFilter<"FieldPermission"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"FieldPermission"> | Date | string
  }

  export type IamAuditLogWhereInput = {
    AND?: IamAuditLogWhereInput | IamAuditLogWhereInput[]
    OR?: IamAuditLogWhereInput[]
    NOT?: IamAuditLogWhereInput | IamAuditLogWhereInput[]
    id?: UuidFilter<"IamAuditLog"> | string
    actor?: UuidFilter<"IamAuditLog"> | string
    action?: StringFilter<"IamAuditLog"> | string
    resource?: StringFilter<"IamAuditLog"> | string
    targetId?: UuidNullableFilter<"IamAuditLog"> | string | null
    before?: JsonNullableFilter<"IamAuditLog">
    after?: JsonNullableFilter<"IamAuditLog">
    ip?: StringNullableFilter<"IamAuditLog"> | string | null
    userAgent?: StringNullableFilter<"IamAuditLog"> | string | null
    timestamp?: DateTimeFilter<"IamAuditLog"> | Date | string
  }

  export type IamAuditLogOrderByWithRelationInput = {
    id?: SortOrder
    actor?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    targetId?: SortOrderInput | SortOrder
    before?: SortOrderInput | SortOrder
    after?: SortOrderInput | SortOrder
    ip?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    timestamp?: SortOrder
  }

  export type IamAuditLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: IamAuditLogWhereInput | IamAuditLogWhereInput[]
    OR?: IamAuditLogWhereInput[]
    NOT?: IamAuditLogWhereInput | IamAuditLogWhereInput[]
    actor?: UuidFilter<"IamAuditLog"> | string
    action?: StringFilter<"IamAuditLog"> | string
    resource?: StringFilter<"IamAuditLog"> | string
    targetId?: UuidNullableFilter<"IamAuditLog"> | string | null
    before?: JsonNullableFilter<"IamAuditLog">
    after?: JsonNullableFilter<"IamAuditLog">
    ip?: StringNullableFilter<"IamAuditLog"> | string | null
    userAgent?: StringNullableFilter<"IamAuditLog"> | string | null
    timestamp?: DateTimeFilter<"IamAuditLog"> | Date | string
  }, "id">

  export type IamAuditLogOrderByWithAggregationInput = {
    id?: SortOrder
    actor?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    targetId?: SortOrderInput | SortOrder
    before?: SortOrderInput | SortOrder
    after?: SortOrderInput | SortOrder
    ip?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    timestamp?: SortOrder
    _count?: IamAuditLogCountOrderByAggregateInput
    _max?: IamAuditLogMaxOrderByAggregateInput
    _min?: IamAuditLogMinOrderByAggregateInput
  }

  export type IamAuditLogScalarWhereWithAggregatesInput = {
    AND?: IamAuditLogScalarWhereWithAggregatesInput | IamAuditLogScalarWhereWithAggregatesInput[]
    OR?: IamAuditLogScalarWhereWithAggregatesInput[]
    NOT?: IamAuditLogScalarWhereWithAggregatesInput | IamAuditLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"IamAuditLog"> | string
    actor?: UuidWithAggregatesFilter<"IamAuditLog"> | string
    action?: StringWithAggregatesFilter<"IamAuditLog"> | string
    resource?: StringWithAggregatesFilter<"IamAuditLog"> | string
    targetId?: UuidNullableWithAggregatesFilter<"IamAuditLog"> | string | null
    before?: JsonNullableWithAggregatesFilter<"IamAuditLog">
    after?: JsonNullableWithAggregatesFilter<"IamAuditLog">
    ip?: StringNullableWithAggregatesFilter<"IamAuditLog"> | string | null
    userAgent?: StringNullableWithAggregatesFilter<"IamAuditLog"> | string | null
    timestamp?: DateTimeWithAggregatesFilter<"IamAuditLog"> | Date | string
  }

  export type EmployeeSlugBindingWhereInput = {
    AND?: EmployeeSlugBindingWhereInput | EmployeeSlugBindingWhereInput[]
    OR?: EmployeeSlugBindingWhereInput[]
    NOT?: EmployeeSlugBindingWhereInput | EmployeeSlugBindingWhereInput[]
    id?: UuidFilter<"EmployeeSlugBinding"> | string
    userId?: UuidFilter<"EmployeeSlugBinding"> | string
    employeeSlug?: StringFilter<"EmployeeSlugBinding"> | string
    sourceMailNickname?: StringFilter<"EmployeeSlugBinding"> | string
    organizationId?: UuidFilter<"EmployeeSlugBinding"> | string
    createdById?: UuidFilter<"EmployeeSlugBinding"> | string
    createdAt?: DateTimeFilter<"EmployeeSlugBinding"> | Date | string
    updatedAt?: DateTimeFilter<"EmployeeSlugBinding"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    apps?: InternalAppListRelationFilter
    tokens?: InternalAppEmployeeTokenListRelationFilter
  }

  export type EmployeeSlugBindingOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeSlug?: SortOrder
    sourceMailNickname?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    user?: UserOrderByWithRelationInput
    apps?: InternalAppOrderByRelationAggregateInput
    tokens?: InternalAppEmployeeTokenOrderByRelationAggregateInput
  }

  export type EmployeeSlugBindingWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId?: string
    employeeSlug?: string
    AND?: EmployeeSlugBindingWhereInput | EmployeeSlugBindingWhereInput[]
    OR?: EmployeeSlugBindingWhereInput[]
    NOT?: EmployeeSlugBindingWhereInput | EmployeeSlugBindingWhereInput[]
    sourceMailNickname?: StringFilter<"EmployeeSlugBinding"> | string
    organizationId?: UuidFilter<"EmployeeSlugBinding"> | string
    createdById?: UuidFilter<"EmployeeSlugBinding"> | string
    createdAt?: DateTimeFilter<"EmployeeSlugBinding"> | Date | string
    updatedAt?: DateTimeFilter<"EmployeeSlugBinding"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    apps?: InternalAppListRelationFilter
    tokens?: InternalAppEmployeeTokenListRelationFilter
  }, "id" | "userId" | "employeeSlug">

  export type EmployeeSlugBindingOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeSlug?: SortOrder
    sourceMailNickname?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: EmployeeSlugBindingCountOrderByAggregateInput
    _max?: EmployeeSlugBindingMaxOrderByAggregateInput
    _min?: EmployeeSlugBindingMinOrderByAggregateInput
  }

  export type EmployeeSlugBindingScalarWhereWithAggregatesInput = {
    AND?: EmployeeSlugBindingScalarWhereWithAggregatesInput | EmployeeSlugBindingScalarWhereWithAggregatesInput[]
    OR?: EmployeeSlugBindingScalarWhereWithAggregatesInput[]
    NOT?: EmployeeSlugBindingScalarWhereWithAggregatesInput | EmployeeSlugBindingScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"EmployeeSlugBinding"> | string
    userId?: UuidWithAggregatesFilter<"EmployeeSlugBinding"> | string
    employeeSlug?: StringWithAggregatesFilter<"EmployeeSlugBinding"> | string
    sourceMailNickname?: StringWithAggregatesFilter<"EmployeeSlugBinding"> | string
    organizationId?: UuidWithAggregatesFilter<"EmployeeSlugBinding"> | string
    createdById?: UuidWithAggregatesFilter<"EmployeeSlugBinding"> | string
    createdAt?: DateTimeWithAggregatesFilter<"EmployeeSlugBinding"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"EmployeeSlugBinding"> | Date | string
  }

  export type InternalAppWhereInput = {
    AND?: InternalAppWhereInput | InternalAppWhereInput[]
    OR?: InternalAppWhereInput[]
    NOT?: InternalAppWhereInput | InternalAppWhereInput[]
    id?: UuidFilter<"InternalApp"> | string
    employeeSlug?: StringFilter<"InternalApp"> | string
    appSlug?: StringFilter<"InternalApp"> | string
    displayName?: StringNullableFilter<"InternalApp"> | string | null
    runtime?: EnumInternalAppRuntimeFilter<"InternalApp"> | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFilter<"InternalApp"> | $Enums.InternalAppStatus
    url?: StringFilter<"InternalApp"> | string
    giteaRepoFullName?: StringFilter<"InternalApp"> | string
    lastDeployedAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    currentDeploymentId?: UuidNullableFilter<"InternalApp"> | string | null
    destroyedAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    retentionUntil?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    forceDisabledAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    forceDisabledReason?: StringNullableFilter<"InternalApp"> | string | null
    forceDisabledById?: UuidNullableFilter<"InternalApp"> | string | null
    organizationId?: UuidFilter<"InternalApp"> | string
    createdById?: UuidFilter<"InternalApp"> | string
    createdAt?: DateTimeFilter<"InternalApp"> | Date | string
    updatedAt?: DateTimeFilter<"InternalApp"> | Date | string
    ownerBinding?: XOR<EmployeeSlugBindingScalarRelationFilter, EmployeeSlugBindingWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    forceDisabler?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    deployments?: InternalAppDeploymentListRelationFilter
    envVars?: InternalAppEnvVarListRelationFilter
    events?: InternalAppEventListRelationFilter
  }

  export type InternalAppOrderByWithRelationInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    appSlug?: SortOrder
    displayName?: SortOrderInput | SortOrder
    runtime?: SortOrder
    status?: SortOrder
    url?: SortOrder
    giteaRepoFullName?: SortOrder
    lastDeployedAt?: SortOrderInput | SortOrder
    currentDeploymentId?: SortOrderInput | SortOrder
    destroyedAt?: SortOrderInput | SortOrder
    retentionUntil?: SortOrderInput | SortOrder
    forceDisabledAt?: SortOrderInput | SortOrder
    forceDisabledReason?: SortOrderInput | SortOrder
    forceDisabledById?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    ownerBinding?: EmployeeSlugBindingOrderByWithRelationInput
    creator?: UserOrderByWithRelationInput
    forceDisabler?: UserOrderByWithRelationInput
    deployments?: InternalAppDeploymentOrderByRelationAggregateInput
    envVars?: InternalAppEnvVarOrderByRelationAggregateInput
    events?: InternalAppEventOrderByRelationAggregateInput
  }

  export type InternalAppWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    giteaRepoFullName?: string
    uq_app_per_employee?: InternalAppUq_app_per_employeeCompoundUniqueInput
    AND?: InternalAppWhereInput | InternalAppWhereInput[]
    OR?: InternalAppWhereInput[]
    NOT?: InternalAppWhereInput | InternalAppWhereInput[]
    employeeSlug?: StringFilter<"InternalApp"> | string
    appSlug?: StringFilter<"InternalApp"> | string
    displayName?: StringNullableFilter<"InternalApp"> | string | null
    runtime?: EnumInternalAppRuntimeFilter<"InternalApp"> | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFilter<"InternalApp"> | $Enums.InternalAppStatus
    url?: StringFilter<"InternalApp"> | string
    lastDeployedAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    currentDeploymentId?: UuidNullableFilter<"InternalApp"> | string | null
    destroyedAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    retentionUntil?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    forceDisabledAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    forceDisabledReason?: StringNullableFilter<"InternalApp"> | string | null
    forceDisabledById?: UuidNullableFilter<"InternalApp"> | string | null
    organizationId?: UuidFilter<"InternalApp"> | string
    createdById?: UuidFilter<"InternalApp"> | string
    createdAt?: DateTimeFilter<"InternalApp"> | Date | string
    updatedAt?: DateTimeFilter<"InternalApp"> | Date | string
    ownerBinding?: XOR<EmployeeSlugBindingScalarRelationFilter, EmployeeSlugBindingWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    forceDisabler?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    deployments?: InternalAppDeploymentListRelationFilter
    envVars?: InternalAppEnvVarListRelationFilter
    events?: InternalAppEventListRelationFilter
  }, "id" | "giteaRepoFullName" | "uq_app_per_employee">

  export type InternalAppOrderByWithAggregationInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    appSlug?: SortOrder
    displayName?: SortOrderInput | SortOrder
    runtime?: SortOrder
    status?: SortOrder
    url?: SortOrder
    giteaRepoFullName?: SortOrder
    lastDeployedAt?: SortOrderInput | SortOrder
    currentDeploymentId?: SortOrderInput | SortOrder
    destroyedAt?: SortOrderInput | SortOrder
    retentionUntil?: SortOrderInput | SortOrder
    forceDisabledAt?: SortOrderInput | SortOrder
    forceDisabledReason?: SortOrderInput | SortOrder
    forceDisabledById?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: InternalAppCountOrderByAggregateInput
    _max?: InternalAppMaxOrderByAggregateInput
    _min?: InternalAppMinOrderByAggregateInput
  }

  export type InternalAppScalarWhereWithAggregatesInput = {
    AND?: InternalAppScalarWhereWithAggregatesInput | InternalAppScalarWhereWithAggregatesInput[]
    OR?: InternalAppScalarWhereWithAggregatesInput[]
    NOT?: InternalAppScalarWhereWithAggregatesInput | InternalAppScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"InternalApp"> | string
    employeeSlug?: StringWithAggregatesFilter<"InternalApp"> | string
    appSlug?: StringWithAggregatesFilter<"InternalApp"> | string
    displayName?: StringNullableWithAggregatesFilter<"InternalApp"> | string | null
    runtime?: EnumInternalAppRuntimeWithAggregatesFilter<"InternalApp"> | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusWithAggregatesFilter<"InternalApp"> | $Enums.InternalAppStatus
    url?: StringWithAggregatesFilter<"InternalApp"> | string
    giteaRepoFullName?: StringWithAggregatesFilter<"InternalApp"> | string
    lastDeployedAt?: DateTimeNullableWithAggregatesFilter<"InternalApp"> | Date | string | null
    currentDeploymentId?: UuidNullableWithAggregatesFilter<"InternalApp"> | string | null
    destroyedAt?: DateTimeNullableWithAggregatesFilter<"InternalApp"> | Date | string | null
    retentionUntil?: DateTimeNullableWithAggregatesFilter<"InternalApp"> | Date | string | null
    forceDisabledAt?: DateTimeNullableWithAggregatesFilter<"InternalApp"> | Date | string | null
    forceDisabledReason?: StringNullableWithAggregatesFilter<"InternalApp"> | string | null
    forceDisabledById?: UuidNullableWithAggregatesFilter<"InternalApp"> | string | null
    organizationId?: UuidWithAggregatesFilter<"InternalApp"> | string
    createdById?: UuidWithAggregatesFilter<"InternalApp"> | string
    createdAt?: DateTimeWithAggregatesFilter<"InternalApp"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"InternalApp"> | Date | string
  }

  export type InternalAppDeploymentWhereInput = {
    AND?: InternalAppDeploymentWhereInput | InternalAppDeploymentWhereInput[]
    OR?: InternalAppDeploymentWhereInput[]
    NOT?: InternalAppDeploymentWhereInput | InternalAppDeploymentWhereInput[]
    id?: UuidFilter<"InternalAppDeployment"> | string
    appId?: UuidFilter<"InternalAppDeployment"> | string
    commitSha?: StringNullableFilter<"InternalAppDeployment"> | string | null
    status?: EnumInternalAppDeploymentStatusFilter<"InternalAppDeployment"> | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: StringNullableFilter<"InternalAppDeployment"> | string | null
    healthCheckLog?: JsonNullableFilter<"InternalAppDeployment">
    startedAt?: DateTimeNullableFilter<"InternalAppDeployment"> | Date | string | null
    finishedAt?: DateTimeNullableFilter<"InternalAppDeployment"> | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFilter<"InternalAppDeployment"> | $Enums.InternalAppDeploymentTrigger
    organizationId?: UuidFilter<"InternalAppDeployment"> | string
    createdById?: UuidFilter<"InternalAppDeployment"> | string
    createdAt?: DateTimeFilter<"InternalAppDeployment"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppDeployment"> | Date | string
    app?: XOR<InternalAppScalarRelationFilter, InternalAppWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type InternalAppDeploymentOrderByWithRelationInput = {
    id?: SortOrder
    appId?: SortOrder
    commitSha?: SortOrderInput | SortOrder
    status?: SortOrder
    buildLogSummary?: SortOrderInput | SortOrder
    healthCheckLog?: SortOrderInput | SortOrder
    startedAt?: SortOrderInput | SortOrder
    finishedAt?: SortOrderInput | SortOrder
    trigger?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    app?: InternalAppOrderByWithRelationInput
    creator?: UserOrderByWithRelationInput
  }

  export type InternalAppDeploymentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: InternalAppDeploymentWhereInput | InternalAppDeploymentWhereInput[]
    OR?: InternalAppDeploymentWhereInput[]
    NOT?: InternalAppDeploymentWhereInput | InternalAppDeploymentWhereInput[]
    appId?: UuidFilter<"InternalAppDeployment"> | string
    commitSha?: StringNullableFilter<"InternalAppDeployment"> | string | null
    status?: EnumInternalAppDeploymentStatusFilter<"InternalAppDeployment"> | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: StringNullableFilter<"InternalAppDeployment"> | string | null
    healthCheckLog?: JsonNullableFilter<"InternalAppDeployment">
    startedAt?: DateTimeNullableFilter<"InternalAppDeployment"> | Date | string | null
    finishedAt?: DateTimeNullableFilter<"InternalAppDeployment"> | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFilter<"InternalAppDeployment"> | $Enums.InternalAppDeploymentTrigger
    organizationId?: UuidFilter<"InternalAppDeployment"> | string
    createdById?: UuidFilter<"InternalAppDeployment"> | string
    createdAt?: DateTimeFilter<"InternalAppDeployment"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppDeployment"> | Date | string
    app?: XOR<InternalAppScalarRelationFilter, InternalAppWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type InternalAppDeploymentOrderByWithAggregationInput = {
    id?: SortOrder
    appId?: SortOrder
    commitSha?: SortOrderInput | SortOrder
    status?: SortOrder
    buildLogSummary?: SortOrderInput | SortOrder
    healthCheckLog?: SortOrderInput | SortOrder
    startedAt?: SortOrderInput | SortOrder
    finishedAt?: SortOrderInput | SortOrder
    trigger?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: InternalAppDeploymentCountOrderByAggregateInput
    _max?: InternalAppDeploymentMaxOrderByAggregateInput
    _min?: InternalAppDeploymentMinOrderByAggregateInput
  }

  export type InternalAppDeploymentScalarWhereWithAggregatesInput = {
    AND?: InternalAppDeploymentScalarWhereWithAggregatesInput | InternalAppDeploymentScalarWhereWithAggregatesInput[]
    OR?: InternalAppDeploymentScalarWhereWithAggregatesInput[]
    NOT?: InternalAppDeploymentScalarWhereWithAggregatesInput | InternalAppDeploymentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"InternalAppDeployment"> | string
    appId?: UuidWithAggregatesFilter<"InternalAppDeployment"> | string
    commitSha?: StringNullableWithAggregatesFilter<"InternalAppDeployment"> | string | null
    status?: EnumInternalAppDeploymentStatusWithAggregatesFilter<"InternalAppDeployment"> | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: StringNullableWithAggregatesFilter<"InternalAppDeployment"> | string | null
    healthCheckLog?: JsonNullableWithAggregatesFilter<"InternalAppDeployment">
    startedAt?: DateTimeNullableWithAggregatesFilter<"InternalAppDeployment"> | Date | string | null
    finishedAt?: DateTimeNullableWithAggregatesFilter<"InternalAppDeployment"> | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerWithAggregatesFilter<"InternalAppDeployment"> | $Enums.InternalAppDeploymentTrigger
    organizationId?: UuidWithAggregatesFilter<"InternalAppDeployment"> | string
    createdById?: UuidWithAggregatesFilter<"InternalAppDeployment"> | string
    createdAt?: DateTimeWithAggregatesFilter<"InternalAppDeployment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"InternalAppDeployment"> | Date | string
  }

  export type InternalAppEnvVarWhereInput = {
    AND?: InternalAppEnvVarWhereInput | InternalAppEnvVarWhereInput[]
    OR?: InternalAppEnvVarWhereInput[]
    NOT?: InternalAppEnvVarWhereInput | InternalAppEnvVarWhereInput[]
    id?: UuidFilter<"InternalAppEnvVar"> | string
    appId?: UuidFilter<"InternalAppEnvVar"> | string
    key?: StringFilter<"InternalAppEnvVar"> | string
    valueEncrypted?: BytesFilter<"InternalAppEnvVar"> | Bytes
    valueIv?: BytesFilter<"InternalAppEnvVar"> | Bytes
    kmsKeyVersion?: IntFilter<"InternalAppEnvVar"> | number
    organizationId?: UuidFilter<"InternalAppEnvVar"> | string
    createdById?: UuidFilter<"InternalAppEnvVar"> | string
    createdAt?: DateTimeFilter<"InternalAppEnvVar"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppEnvVar"> | Date | string
    app?: XOR<InternalAppScalarRelationFilter, InternalAppWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type InternalAppEnvVarOrderByWithRelationInput = {
    id?: SortOrder
    appId?: SortOrder
    key?: SortOrder
    valueEncrypted?: SortOrder
    valueIv?: SortOrder
    kmsKeyVersion?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    app?: InternalAppOrderByWithRelationInput
    creator?: UserOrderByWithRelationInput
  }

  export type InternalAppEnvVarWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    uq_env_per_app?: InternalAppEnvVarUq_env_per_appCompoundUniqueInput
    AND?: InternalAppEnvVarWhereInput | InternalAppEnvVarWhereInput[]
    OR?: InternalAppEnvVarWhereInput[]
    NOT?: InternalAppEnvVarWhereInput | InternalAppEnvVarWhereInput[]
    appId?: UuidFilter<"InternalAppEnvVar"> | string
    key?: StringFilter<"InternalAppEnvVar"> | string
    valueEncrypted?: BytesFilter<"InternalAppEnvVar"> | Bytes
    valueIv?: BytesFilter<"InternalAppEnvVar"> | Bytes
    kmsKeyVersion?: IntFilter<"InternalAppEnvVar"> | number
    organizationId?: UuidFilter<"InternalAppEnvVar"> | string
    createdById?: UuidFilter<"InternalAppEnvVar"> | string
    createdAt?: DateTimeFilter<"InternalAppEnvVar"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppEnvVar"> | Date | string
    app?: XOR<InternalAppScalarRelationFilter, InternalAppWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "uq_env_per_app">

  export type InternalAppEnvVarOrderByWithAggregationInput = {
    id?: SortOrder
    appId?: SortOrder
    key?: SortOrder
    valueEncrypted?: SortOrder
    valueIv?: SortOrder
    kmsKeyVersion?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: InternalAppEnvVarCountOrderByAggregateInput
    _avg?: InternalAppEnvVarAvgOrderByAggregateInput
    _max?: InternalAppEnvVarMaxOrderByAggregateInput
    _min?: InternalAppEnvVarMinOrderByAggregateInput
    _sum?: InternalAppEnvVarSumOrderByAggregateInput
  }

  export type InternalAppEnvVarScalarWhereWithAggregatesInput = {
    AND?: InternalAppEnvVarScalarWhereWithAggregatesInput | InternalAppEnvVarScalarWhereWithAggregatesInput[]
    OR?: InternalAppEnvVarScalarWhereWithAggregatesInput[]
    NOT?: InternalAppEnvVarScalarWhereWithAggregatesInput | InternalAppEnvVarScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"InternalAppEnvVar"> | string
    appId?: UuidWithAggregatesFilter<"InternalAppEnvVar"> | string
    key?: StringWithAggregatesFilter<"InternalAppEnvVar"> | string
    valueEncrypted?: BytesWithAggregatesFilter<"InternalAppEnvVar"> | Bytes
    valueIv?: BytesWithAggregatesFilter<"InternalAppEnvVar"> | Bytes
    kmsKeyVersion?: IntWithAggregatesFilter<"InternalAppEnvVar"> | number
    organizationId?: UuidWithAggregatesFilter<"InternalAppEnvVar"> | string
    createdById?: UuidWithAggregatesFilter<"InternalAppEnvVar"> | string
    createdAt?: DateTimeWithAggregatesFilter<"InternalAppEnvVar"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"InternalAppEnvVar"> | Date | string
  }

  export type InternalAppEmployeeTokenWhereInput = {
    AND?: InternalAppEmployeeTokenWhereInput | InternalAppEmployeeTokenWhereInput[]
    OR?: InternalAppEmployeeTokenWhereInput[]
    NOT?: InternalAppEmployeeTokenWhereInput | InternalAppEmployeeTokenWhereInput[]
    id?: UuidFilter<"InternalAppEmployeeToken"> | string
    employeeSlug?: StringFilter<"InternalAppEmployeeToken"> | string
    tokenHash?: StringFilter<"InternalAppEmployeeToken"> | string
    prefix?: StringFilter<"InternalAppEmployeeToken"> | string
    status?: EnumInternalAppTokenStatusFilter<"InternalAppEmployeeToken"> | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    expiresAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    revokedAt?: DateTimeNullableFilter<"InternalAppEmployeeToken"> | Date | string | null
    revokedReason?: EnumInternalAppTokenRevokeReasonNullableFilter<"InternalAppEmployeeToken"> | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: DateTimeNullableFilter<"InternalAppEmployeeToken"> | Date | string | null
    organizationId?: UuidFilter<"InternalAppEmployeeToken"> | string
    createdById?: UuidFilter<"InternalAppEmployeeToken"> | string
    createdAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    binding?: XOR<EmployeeSlugBindingScalarRelationFilter, EmployeeSlugBindingWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type InternalAppEmployeeTokenOrderByWithRelationInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    tokenHash?: SortOrder
    prefix?: SortOrder
    status?: SortOrder
    issuedAt?: SortOrder
    expiresAt?: SortOrder
    revokedAt?: SortOrderInput | SortOrder
    revokedReason?: SortOrderInput | SortOrder
    lastUsedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    binding?: EmployeeSlugBindingOrderByWithRelationInput
    creator?: UserOrderByWithRelationInput
  }

  export type InternalAppEmployeeTokenWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    tokenHash?: string
    AND?: InternalAppEmployeeTokenWhereInput | InternalAppEmployeeTokenWhereInput[]
    OR?: InternalAppEmployeeTokenWhereInput[]
    NOT?: InternalAppEmployeeTokenWhereInput | InternalAppEmployeeTokenWhereInput[]
    employeeSlug?: StringFilter<"InternalAppEmployeeToken"> | string
    prefix?: StringFilter<"InternalAppEmployeeToken"> | string
    status?: EnumInternalAppTokenStatusFilter<"InternalAppEmployeeToken"> | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    expiresAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    revokedAt?: DateTimeNullableFilter<"InternalAppEmployeeToken"> | Date | string | null
    revokedReason?: EnumInternalAppTokenRevokeReasonNullableFilter<"InternalAppEmployeeToken"> | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: DateTimeNullableFilter<"InternalAppEmployeeToken"> | Date | string | null
    organizationId?: UuidFilter<"InternalAppEmployeeToken"> | string
    createdById?: UuidFilter<"InternalAppEmployeeToken"> | string
    createdAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    binding?: XOR<EmployeeSlugBindingScalarRelationFilter, EmployeeSlugBindingWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "tokenHash">

  export type InternalAppEmployeeTokenOrderByWithAggregationInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    tokenHash?: SortOrder
    prefix?: SortOrder
    status?: SortOrder
    issuedAt?: SortOrder
    expiresAt?: SortOrder
    revokedAt?: SortOrderInput | SortOrder
    revokedReason?: SortOrderInput | SortOrder
    lastUsedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: InternalAppEmployeeTokenCountOrderByAggregateInput
    _max?: InternalAppEmployeeTokenMaxOrderByAggregateInput
    _min?: InternalAppEmployeeTokenMinOrderByAggregateInput
  }

  export type InternalAppEmployeeTokenScalarWhereWithAggregatesInput = {
    AND?: InternalAppEmployeeTokenScalarWhereWithAggregatesInput | InternalAppEmployeeTokenScalarWhereWithAggregatesInput[]
    OR?: InternalAppEmployeeTokenScalarWhereWithAggregatesInput[]
    NOT?: InternalAppEmployeeTokenScalarWhereWithAggregatesInput | InternalAppEmployeeTokenScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"InternalAppEmployeeToken"> | string
    employeeSlug?: StringWithAggregatesFilter<"InternalAppEmployeeToken"> | string
    tokenHash?: StringWithAggregatesFilter<"InternalAppEmployeeToken"> | string
    prefix?: StringWithAggregatesFilter<"InternalAppEmployeeToken"> | string
    status?: EnumInternalAppTokenStatusWithAggregatesFilter<"InternalAppEmployeeToken"> | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeWithAggregatesFilter<"InternalAppEmployeeToken"> | Date | string
    expiresAt?: DateTimeWithAggregatesFilter<"InternalAppEmployeeToken"> | Date | string
    revokedAt?: DateTimeNullableWithAggregatesFilter<"InternalAppEmployeeToken"> | Date | string | null
    revokedReason?: EnumInternalAppTokenRevokeReasonNullableWithAggregatesFilter<"InternalAppEmployeeToken"> | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: DateTimeNullableWithAggregatesFilter<"InternalAppEmployeeToken"> | Date | string | null
    organizationId?: UuidWithAggregatesFilter<"InternalAppEmployeeToken"> | string
    createdById?: UuidWithAggregatesFilter<"InternalAppEmployeeToken"> | string
    createdAt?: DateTimeWithAggregatesFilter<"InternalAppEmployeeToken"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"InternalAppEmployeeToken"> | Date | string
  }

  export type InternalAppEventWhereInput = {
    AND?: InternalAppEventWhereInput | InternalAppEventWhereInput[]
    OR?: InternalAppEventWhereInput[]
    NOT?: InternalAppEventWhereInput | InternalAppEventWhereInput[]
    id?: UuidFilter<"InternalAppEvent"> | string
    appId?: UuidNullableFilter<"InternalAppEvent"> | string | null
    employeeSlug?: StringNullableFilter<"InternalAppEvent"> | string | null
    actorId?: UuidNullableFilter<"InternalAppEvent"> | string | null
    actorRole?: EnumInternalAppActorRoleFilter<"InternalAppEvent"> | $Enums.InternalAppActorRole
    eventType?: StringFilter<"InternalAppEvent"> | string
    outcome?: EnumInternalAppEventOutcomeFilter<"InternalAppEvent"> | $Enums.InternalAppEventOutcome
    errorCode?: StringNullableFilter<"InternalAppEvent"> | string | null
    durationMs?: IntNullableFilter<"InternalAppEvent"> | number | null
    payload?: JsonFilter<"InternalAppEvent">
    requestId?: StringNullableFilter<"InternalAppEvent"> | string | null
    ipAddr?: StringNullableFilter<"InternalAppEvent"> | string | null
    userAgent?: StringNullableFilter<"InternalAppEvent"> | string | null
    organizationId?: UuidFilter<"InternalAppEvent"> | string
    createdAt?: DateTimeFilter<"InternalAppEvent"> | Date | string
    app?: XOR<InternalAppNullableScalarRelationFilter, InternalAppWhereInput> | null
    actor?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }

  export type InternalAppEventOrderByWithRelationInput = {
    id?: SortOrder
    appId?: SortOrderInput | SortOrder
    employeeSlug?: SortOrderInput | SortOrder
    actorId?: SortOrderInput | SortOrder
    actorRole?: SortOrder
    eventType?: SortOrder
    outcome?: SortOrder
    errorCode?: SortOrderInput | SortOrder
    durationMs?: SortOrderInput | SortOrder
    payload?: SortOrder
    requestId?: SortOrderInput | SortOrder
    ipAddr?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    app?: InternalAppOrderByWithRelationInput
    actor?: UserOrderByWithRelationInput
  }

  export type InternalAppEventWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: InternalAppEventWhereInput | InternalAppEventWhereInput[]
    OR?: InternalAppEventWhereInput[]
    NOT?: InternalAppEventWhereInput | InternalAppEventWhereInput[]
    appId?: UuidNullableFilter<"InternalAppEvent"> | string | null
    employeeSlug?: StringNullableFilter<"InternalAppEvent"> | string | null
    actorId?: UuidNullableFilter<"InternalAppEvent"> | string | null
    actorRole?: EnumInternalAppActorRoleFilter<"InternalAppEvent"> | $Enums.InternalAppActorRole
    eventType?: StringFilter<"InternalAppEvent"> | string
    outcome?: EnumInternalAppEventOutcomeFilter<"InternalAppEvent"> | $Enums.InternalAppEventOutcome
    errorCode?: StringNullableFilter<"InternalAppEvent"> | string | null
    durationMs?: IntNullableFilter<"InternalAppEvent"> | number | null
    payload?: JsonFilter<"InternalAppEvent">
    requestId?: StringNullableFilter<"InternalAppEvent"> | string | null
    ipAddr?: StringNullableFilter<"InternalAppEvent"> | string | null
    userAgent?: StringNullableFilter<"InternalAppEvent"> | string | null
    organizationId?: UuidFilter<"InternalAppEvent"> | string
    createdAt?: DateTimeFilter<"InternalAppEvent"> | Date | string
    app?: XOR<InternalAppNullableScalarRelationFilter, InternalAppWhereInput> | null
    actor?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
  }, "id">

  export type InternalAppEventOrderByWithAggregationInput = {
    id?: SortOrder
    appId?: SortOrderInput | SortOrder
    employeeSlug?: SortOrderInput | SortOrder
    actorId?: SortOrderInput | SortOrder
    actorRole?: SortOrder
    eventType?: SortOrder
    outcome?: SortOrder
    errorCode?: SortOrderInput | SortOrder
    durationMs?: SortOrderInput | SortOrder
    payload?: SortOrder
    requestId?: SortOrderInput | SortOrder
    ipAddr?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    _count?: InternalAppEventCountOrderByAggregateInput
    _avg?: InternalAppEventAvgOrderByAggregateInput
    _max?: InternalAppEventMaxOrderByAggregateInput
    _min?: InternalAppEventMinOrderByAggregateInput
    _sum?: InternalAppEventSumOrderByAggregateInput
  }

  export type InternalAppEventScalarWhereWithAggregatesInput = {
    AND?: InternalAppEventScalarWhereWithAggregatesInput | InternalAppEventScalarWhereWithAggregatesInput[]
    OR?: InternalAppEventScalarWhereWithAggregatesInput[]
    NOT?: InternalAppEventScalarWhereWithAggregatesInput | InternalAppEventScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"InternalAppEvent"> | string
    appId?: UuidNullableWithAggregatesFilter<"InternalAppEvent"> | string | null
    employeeSlug?: StringNullableWithAggregatesFilter<"InternalAppEvent"> | string | null
    actorId?: UuidNullableWithAggregatesFilter<"InternalAppEvent"> | string | null
    actorRole?: EnumInternalAppActorRoleWithAggregatesFilter<"InternalAppEvent"> | $Enums.InternalAppActorRole
    eventType?: StringWithAggregatesFilter<"InternalAppEvent"> | string
    outcome?: EnumInternalAppEventOutcomeWithAggregatesFilter<"InternalAppEvent"> | $Enums.InternalAppEventOutcome
    errorCode?: StringNullableWithAggregatesFilter<"InternalAppEvent"> | string | null
    durationMs?: IntNullableWithAggregatesFilter<"InternalAppEvent"> | number | null
    payload?: JsonWithAggregatesFilter<"InternalAppEvent">
    requestId?: StringNullableWithAggregatesFilter<"InternalAppEvent"> | string | null
    ipAddr?: StringNullableWithAggregatesFilter<"InternalAppEvent"> | string | null
    userAgent?: StringNullableWithAggregatesFilter<"InternalAppEvent"> | string | null
    organizationId?: UuidWithAggregatesFilter<"InternalAppEvent"> | string
    createdAt?: DateTimeWithAggregatesFilter<"InternalAppEvent"> | Date | string
  }

  export type KnowledgeArticleWhereInput = {
    AND?: KnowledgeArticleWhereInput | KnowledgeArticleWhereInput[]
    OR?: KnowledgeArticleWhereInput[]
    NOT?: KnowledgeArticleWhereInput | KnowledgeArticleWhereInput[]
    id?: UuidFilter<"KnowledgeArticle"> | string
    title?: StringFilter<"KnowledgeArticle"> | string
    content?: StringFilter<"KnowledgeArticle"> | string
    status?: EnumKnowledgeArticleStatusFilter<"KnowledgeArticle"> | $Enums.KnowledgeArticleStatus
    createdById?: UuidFilter<"KnowledgeArticle"> | string
    createdAt?: DateTimeFilter<"KnowledgeArticle"> | Date | string
    updatedAt?: DateTimeFilter<"KnowledgeArticle"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KnowledgeArticle"> | Date | string | null
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    views?: DocumentViewListRelationFilter
    likes?: DocumentLikeListRelationFilter
    comments?: DocumentCommentListRelationFilter
  }

  export type KnowledgeArticleOrderByWithRelationInput = {
    id?: SortOrder
    title?: SortOrder
    content?: SortOrder
    status?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    createdBy?: UserOrderByWithRelationInput
    views?: DocumentViewOrderByRelationAggregateInput
    likes?: DocumentLikeOrderByRelationAggregateInput
    comments?: DocumentCommentOrderByRelationAggregateInput
  }

  export type KnowledgeArticleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: KnowledgeArticleWhereInput | KnowledgeArticleWhereInput[]
    OR?: KnowledgeArticleWhereInput[]
    NOT?: KnowledgeArticleWhereInput | KnowledgeArticleWhereInput[]
    title?: StringFilter<"KnowledgeArticle"> | string
    content?: StringFilter<"KnowledgeArticle"> | string
    status?: EnumKnowledgeArticleStatusFilter<"KnowledgeArticle"> | $Enums.KnowledgeArticleStatus
    createdById?: UuidFilter<"KnowledgeArticle"> | string
    createdAt?: DateTimeFilter<"KnowledgeArticle"> | Date | string
    updatedAt?: DateTimeFilter<"KnowledgeArticle"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KnowledgeArticle"> | Date | string | null
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    views?: DocumentViewListRelationFilter
    likes?: DocumentLikeListRelationFilter
    comments?: DocumentCommentListRelationFilter
  }, "id">

  export type KnowledgeArticleOrderByWithAggregationInput = {
    id?: SortOrder
    title?: SortOrder
    content?: SortOrder
    status?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: KnowledgeArticleCountOrderByAggregateInput
    _max?: KnowledgeArticleMaxOrderByAggregateInput
    _min?: KnowledgeArticleMinOrderByAggregateInput
  }

  export type KnowledgeArticleScalarWhereWithAggregatesInput = {
    AND?: KnowledgeArticleScalarWhereWithAggregatesInput | KnowledgeArticleScalarWhereWithAggregatesInput[]
    OR?: KnowledgeArticleScalarWhereWithAggregatesInput[]
    NOT?: KnowledgeArticleScalarWhereWithAggregatesInput | KnowledgeArticleScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"KnowledgeArticle"> | string
    title?: StringWithAggregatesFilter<"KnowledgeArticle"> | string
    content?: StringWithAggregatesFilter<"KnowledgeArticle"> | string
    status?: EnumKnowledgeArticleStatusWithAggregatesFilter<"KnowledgeArticle"> | $Enums.KnowledgeArticleStatus
    createdById?: UuidWithAggregatesFilter<"KnowledgeArticle"> | string
    createdAt?: DateTimeWithAggregatesFilter<"KnowledgeArticle"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"KnowledgeArticle"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"KnowledgeArticle"> | Date | string | null
  }

  export type SPDocumentIndexWhereInput = {
    AND?: SPDocumentIndexWhereInput | SPDocumentIndexWhereInput[]
    OR?: SPDocumentIndexWhereInput[]
    NOT?: SPDocumentIndexWhereInput | SPDocumentIndexWhereInput[]
    id?: UuidFilter<"SPDocumentIndex"> | string
    spItemId?: StringFilter<"SPDocumentIndex"> | string
    spDriveId?: StringFilter<"SPDocumentIndex"> | string
    spSiteId?: StringFilter<"SPDocumentIndex"> | string
    title?: StringFilter<"SPDocumentIndex"> | string
    webUrl?: StringFilter<"SPDocumentIndex"> | string
    fileType?: StringNullableFilter<"SPDocumentIndex"> | string | null
    fileExtension?: StringNullableFilter<"SPDocumentIndex"> | string | null
    size?: BigIntNullableFilter<"SPDocumentIndex"> | bigint | number | null
    spEtag?: StringNullableFilter<"SPDocumentIndex"> | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFilter<"SPDocumentIndex"> | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFilter<"SPDocumentIndex"> | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFilter<"SPDocumentIndex"> | $Enums.DocType
    createdBy?: StringNullableFilter<"SPDocumentIndex"> | string | null
    lastModifiedBy?: StringNullableFilter<"SPDocumentIndex"> | string | null
    spCreatedAt?: DateTimeNullableFilter<"SPDocumentIndex"> | Date | string | null
    spModifiedAt?: DateTimeNullableFilter<"SPDocumentIndex"> | Date | string | null
    createdAt?: DateTimeFilter<"SPDocumentIndex"> | Date | string
    updatedAt?: DateTimeFilter<"SPDocumentIndex"> | Date | string
    views?: DocumentViewListRelationFilter
    likes?: DocumentLikeListRelationFilter
    comments?: DocumentCommentListRelationFilter
  }

  export type SPDocumentIndexOrderByWithRelationInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    webUrl?: SortOrder
    fileType?: SortOrderInput | SortOrder
    fileExtension?: SortOrderInput | SortOrder
    size?: SortOrderInput | SortOrder
    spEtag?: SortOrderInput | SortOrder
    docAuthorityLevel?: SortOrder
    docLifecycleStatus?: SortOrder
    docType?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    lastModifiedBy?: SortOrderInput | SortOrder
    spCreatedAt?: SortOrderInput | SortOrder
    spModifiedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    views?: DocumentViewOrderByRelationAggregateInput
    likes?: DocumentLikeOrderByRelationAggregateInput
    comments?: DocumentCommentOrderByRelationAggregateInput
  }

  export type SPDocumentIndexWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    spItemId_spDriveId?: SPDocumentIndexSpItemIdSpDriveIdCompoundUniqueInput
    AND?: SPDocumentIndexWhereInput | SPDocumentIndexWhereInput[]
    OR?: SPDocumentIndexWhereInput[]
    NOT?: SPDocumentIndexWhereInput | SPDocumentIndexWhereInput[]
    spItemId?: StringFilter<"SPDocumentIndex"> | string
    spDriveId?: StringFilter<"SPDocumentIndex"> | string
    spSiteId?: StringFilter<"SPDocumentIndex"> | string
    title?: StringFilter<"SPDocumentIndex"> | string
    webUrl?: StringFilter<"SPDocumentIndex"> | string
    fileType?: StringNullableFilter<"SPDocumentIndex"> | string | null
    fileExtension?: StringNullableFilter<"SPDocumentIndex"> | string | null
    size?: BigIntNullableFilter<"SPDocumentIndex"> | bigint | number | null
    spEtag?: StringNullableFilter<"SPDocumentIndex"> | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFilter<"SPDocumentIndex"> | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFilter<"SPDocumentIndex"> | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFilter<"SPDocumentIndex"> | $Enums.DocType
    createdBy?: StringNullableFilter<"SPDocumentIndex"> | string | null
    lastModifiedBy?: StringNullableFilter<"SPDocumentIndex"> | string | null
    spCreatedAt?: DateTimeNullableFilter<"SPDocumentIndex"> | Date | string | null
    spModifiedAt?: DateTimeNullableFilter<"SPDocumentIndex"> | Date | string | null
    createdAt?: DateTimeFilter<"SPDocumentIndex"> | Date | string
    updatedAt?: DateTimeFilter<"SPDocumentIndex"> | Date | string
    views?: DocumentViewListRelationFilter
    likes?: DocumentLikeListRelationFilter
    comments?: DocumentCommentListRelationFilter
  }, "id" | "spItemId_spDriveId">

  export type SPDocumentIndexOrderByWithAggregationInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    webUrl?: SortOrder
    fileType?: SortOrderInput | SortOrder
    fileExtension?: SortOrderInput | SortOrder
    size?: SortOrderInput | SortOrder
    spEtag?: SortOrderInput | SortOrder
    docAuthorityLevel?: SortOrder
    docLifecycleStatus?: SortOrder
    docType?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    lastModifiedBy?: SortOrderInput | SortOrder
    spCreatedAt?: SortOrderInput | SortOrder
    spModifiedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SPDocumentIndexCountOrderByAggregateInput
    _avg?: SPDocumentIndexAvgOrderByAggregateInput
    _max?: SPDocumentIndexMaxOrderByAggregateInput
    _min?: SPDocumentIndexMinOrderByAggregateInput
    _sum?: SPDocumentIndexSumOrderByAggregateInput
  }

  export type SPDocumentIndexScalarWhereWithAggregatesInput = {
    AND?: SPDocumentIndexScalarWhereWithAggregatesInput | SPDocumentIndexScalarWhereWithAggregatesInput[]
    OR?: SPDocumentIndexScalarWhereWithAggregatesInput[]
    NOT?: SPDocumentIndexScalarWhereWithAggregatesInput | SPDocumentIndexScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SPDocumentIndex"> | string
    spItemId?: StringWithAggregatesFilter<"SPDocumentIndex"> | string
    spDriveId?: StringWithAggregatesFilter<"SPDocumentIndex"> | string
    spSiteId?: StringWithAggregatesFilter<"SPDocumentIndex"> | string
    title?: StringWithAggregatesFilter<"SPDocumentIndex"> | string
    webUrl?: StringWithAggregatesFilter<"SPDocumentIndex"> | string
    fileType?: StringNullableWithAggregatesFilter<"SPDocumentIndex"> | string | null
    fileExtension?: StringNullableWithAggregatesFilter<"SPDocumentIndex"> | string | null
    size?: BigIntNullableWithAggregatesFilter<"SPDocumentIndex"> | bigint | number | null
    spEtag?: StringNullableWithAggregatesFilter<"SPDocumentIndex"> | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelWithAggregatesFilter<"SPDocumentIndex"> | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusWithAggregatesFilter<"SPDocumentIndex"> | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeWithAggregatesFilter<"SPDocumentIndex"> | $Enums.DocType
    createdBy?: StringNullableWithAggregatesFilter<"SPDocumentIndex"> | string | null
    lastModifiedBy?: StringNullableWithAggregatesFilter<"SPDocumentIndex"> | string | null
    spCreatedAt?: DateTimeNullableWithAggregatesFilter<"SPDocumentIndex"> | Date | string | null
    spModifiedAt?: DateTimeNullableWithAggregatesFilter<"SPDocumentIndex"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"SPDocumentIndex"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SPDocumentIndex"> | Date | string
  }

  export type SPFolderIndexWhereInput = {
    AND?: SPFolderIndexWhereInput | SPFolderIndexWhereInput[]
    OR?: SPFolderIndexWhereInput[]
    NOT?: SPFolderIndexWhereInput | SPFolderIndexWhereInput[]
    id?: UuidFilter<"SPFolderIndex"> | string
    spItemId?: StringFilter<"SPFolderIndex"> | string
    spDriveId?: StringFilter<"SPFolderIndex"> | string
    spSiteId?: StringFilter<"SPFolderIndex"> | string
    title?: StringFilter<"SPFolderIndex"> | string
    folderPath?: StringFilter<"SPFolderIndex"> | string
    webUrl?: StringFilter<"SPFolderIndex"> | string
    createdBy?: StringNullableFilter<"SPFolderIndex"> | string | null
    lastModifiedBy?: StringNullableFilter<"SPFolderIndex"> | string | null
    spCreatedAt?: DateTimeNullableFilter<"SPFolderIndex"> | Date | string | null
    spModifiedAt?: DateTimeNullableFilter<"SPFolderIndex"> | Date | string | null
    createdAt?: DateTimeFilter<"SPFolderIndex"> | Date | string
    updatedAt?: DateTimeFilter<"SPFolderIndex"> | Date | string
  }

  export type SPFolderIndexOrderByWithRelationInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    folderPath?: SortOrder
    webUrl?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    lastModifiedBy?: SortOrderInput | SortOrder
    spCreatedAt?: SortOrderInput | SortOrder
    spModifiedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SPFolderIndexWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    spItemId_spDriveId?: SPFolderIndexSpItemIdSpDriveIdCompoundUniqueInput
    AND?: SPFolderIndexWhereInput | SPFolderIndexWhereInput[]
    OR?: SPFolderIndexWhereInput[]
    NOT?: SPFolderIndexWhereInput | SPFolderIndexWhereInput[]
    spItemId?: StringFilter<"SPFolderIndex"> | string
    spDriveId?: StringFilter<"SPFolderIndex"> | string
    spSiteId?: StringFilter<"SPFolderIndex"> | string
    title?: StringFilter<"SPFolderIndex"> | string
    folderPath?: StringFilter<"SPFolderIndex"> | string
    webUrl?: StringFilter<"SPFolderIndex"> | string
    createdBy?: StringNullableFilter<"SPFolderIndex"> | string | null
    lastModifiedBy?: StringNullableFilter<"SPFolderIndex"> | string | null
    spCreatedAt?: DateTimeNullableFilter<"SPFolderIndex"> | Date | string | null
    spModifiedAt?: DateTimeNullableFilter<"SPFolderIndex"> | Date | string | null
    createdAt?: DateTimeFilter<"SPFolderIndex"> | Date | string
    updatedAt?: DateTimeFilter<"SPFolderIndex"> | Date | string
  }, "id" | "spItemId_spDriveId">

  export type SPFolderIndexOrderByWithAggregationInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    folderPath?: SortOrder
    webUrl?: SortOrder
    createdBy?: SortOrderInput | SortOrder
    lastModifiedBy?: SortOrderInput | SortOrder
    spCreatedAt?: SortOrderInput | SortOrder
    spModifiedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SPFolderIndexCountOrderByAggregateInput
    _max?: SPFolderIndexMaxOrderByAggregateInput
    _min?: SPFolderIndexMinOrderByAggregateInput
  }

  export type SPFolderIndexScalarWhereWithAggregatesInput = {
    AND?: SPFolderIndexScalarWhereWithAggregatesInput | SPFolderIndexScalarWhereWithAggregatesInput[]
    OR?: SPFolderIndexScalarWhereWithAggregatesInput[]
    NOT?: SPFolderIndexScalarWhereWithAggregatesInput | SPFolderIndexScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SPFolderIndex"> | string
    spItemId?: StringWithAggregatesFilter<"SPFolderIndex"> | string
    spDriveId?: StringWithAggregatesFilter<"SPFolderIndex"> | string
    spSiteId?: StringWithAggregatesFilter<"SPFolderIndex"> | string
    title?: StringWithAggregatesFilter<"SPFolderIndex"> | string
    folderPath?: StringWithAggregatesFilter<"SPFolderIndex"> | string
    webUrl?: StringWithAggregatesFilter<"SPFolderIndex"> | string
    createdBy?: StringNullableWithAggregatesFilter<"SPFolderIndex"> | string | null
    lastModifiedBy?: StringNullableWithAggregatesFilter<"SPFolderIndex"> | string | null
    spCreatedAt?: DateTimeNullableWithAggregatesFilter<"SPFolderIndex"> | Date | string | null
    spModifiedAt?: DateTimeNullableWithAggregatesFilter<"SPFolderIndex"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"SPFolderIndex"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SPFolderIndex"> | Date | string
  }

  export type RagflowDocumentWhereInput = {
    AND?: RagflowDocumentWhereInput | RagflowDocumentWhereInput[]
    OR?: RagflowDocumentWhereInput[]
    NOT?: RagflowDocumentWhereInput | RagflowDocumentWhereInput[]
    id?: UuidFilter<"RagflowDocument"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"RagflowDocument"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"RagflowDocument"> | string
    ragflowDocumentId?: StringFilter<"RagflowDocument"> | string
    datasetId?: StringFilter<"RagflowDocument"> | string
    contentHash?: StringFilter<"RagflowDocument"> | string
    status?: EnumSyncStatusFilter<"RagflowDocument"> | $Enums.SyncStatus
    syncError?: StringNullableFilter<"RagflowDocument"> | string | null
    lastSyncedAt?: DateTimeNullableFilter<"RagflowDocument"> | Date | string | null
    createdAt?: DateTimeFilter<"RagflowDocument"> | Date | string
    updatedAt?: DateTimeFilter<"RagflowDocument"> | Date | string
  }

  export type RagflowDocumentOrderByWithRelationInput = {
    id?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    ragflowDocumentId?: SortOrder
    datasetId?: SortOrder
    contentHash?: SortOrder
    status?: SortOrder
    syncError?: SortOrderInput | SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type RagflowDocumentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    ragflowDocumentId?: string
    sourceType_sourceId?: RagflowDocumentSourceTypeSourceIdCompoundUniqueInput
    AND?: RagflowDocumentWhereInput | RagflowDocumentWhereInput[]
    OR?: RagflowDocumentWhereInput[]
    NOT?: RagflowDocumentWhereInput | RagflowDocumentWhereInput[]
    sourceType?: EnumRagflowSourceTypeFilter<"RagflowDocument"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"RagflowDocument"> | string
    datasetId?: StringFilter<"RagflowDocument"> | string
    contentHash?: StringFilter<"RagflowDocument"> | string
    status?: EnumSyncStatusFilter<"RagflowDocument"> | $Enums.SyncStatus
    syncError?: StringNullableFilter<"RagflowDocument"> | string | null
    lastSyncedAt?: DateTimeNullableFilter<"RagflowDocument"> | Date | string | null
    createdAt?: DateTimeFilter<"RagflowDocument"> | Date | string
    updatedAt?: DateTimeFilter<"RagflowDocument"> | Date | string
  }, "id" | "sourceType_sourceId" | "ragflowDocumentId">

  export type RagflowDocumentOrderByWithAggregationInput = {
    id?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    ragflowDocumentId?: SortOrder
    datasetId?: SortOrder
    contentHash?: SortOrder
    status?: SortOrder
    syncError?: SortOrderInput | SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: RagflowDocumentCountOrderByAggregateInput
    _max?: RagflowDocumentMaxOrderByAggregateInput
    _min?: RagflowDocumentMinOrderByAggregateInput
  }

  export type RagflowDocumentScalarWhereWithAggregatesInput = {
    AND?: RagflowDocumentScalarWhereWithAggregatesInput | RagflowDocumentScalarWhereWithAggregatesInput[]
    OR?: RagflowDocumentScalarWhereWithAggregatesInput[]
    NOT?: RagflowDocumentScalarWhereWithAggregatesInput | RagflowDocumentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RagflowDocument"> | string
    sourceType?: EnumRagflowSourceTypeWithAggregatesFilter<"RagflowDocument"> | $Enums.RagflowSourceType
    sourceId?: UuidWithAggregatesFilter<"RagflowDocument"> | string
    ragflowDocumentId?: StringWithAggregatesFilter<"RagflowDocument"> | string
    datasetId?: StringWithAggregatesFilter<"RagflowDocument"> | string
    contentHash?: StringWithAggregatesFilter<"RagflowDocument"> | string
    status?: EnumSyncStatusWithAggregatesFilter<"RagflowDocument"> | $Enums.SyncStatus
    syncError?: StringNullableWithAggregatesFilter<"RagflowDocument"> | string | null
    lastSyncedAt?: DateTimeNullableWithAggregatesFilter<"RagflowDocument"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"RagflowDocument"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RagflowDocument"> | Date | string
  }

  export type AIQALogWhereInput = {
    AND?: AIQALogWhereInput | AIQALogWhereInput[]
    OR?: AIQALogWhereInput[]
    NOT?: AIQALogWhereInput | AIQALogWhereInput[]
    id?: UuidFilter<"AIQALog"> | string
    userId?: UuidFilter<"AIQALog"> | string
    question?: StringFilter<"AIQALog"> | string
    answer?: StringFilter<"AIQALog"> | string
    sourceDocuments?: JsonNullableFilter<"AIQALog">
    confidence?: FloatNullableFilter<"AIQALog"> | number | null
    modelUsed?: StringNullableFilter<"AIQALog"> | string | null
    tokensUsed?: IntNullableFilter<"AIQALog"> | number | null
    cost?: FloatNullableFilter<"AIQALog"> | number | null
    responseTimeMs?: IntNullableFilter<"AIQALog"> | number | null
    feedback?: EnumQAFeedbackNullableFilter<"AIQALog"> | $Enums.QAFeedback | null
    feedbackComment?: StringNullableFilter<"AIQALog"> | string | null
    createdAt?: DateTimeFilter<"AIQALog"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type AIQALogOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    question?: SortOrder
    answer?: SortOrder
    sourceDocuments?: SortOrderInput | SortOrder
    confidence?: SortOrderInput | SortOrder
    modelUsed?: SortOrderInput | SortOrder
    tokensUsed?: SortOrderInput | SortOrder
    cost?: SortOrderInput | SortOrder
    responseTimeMs?: SortOrderInput | SortOrder
    feedback?: SortOrderInput | SortOrder
    feedbackComment?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    user?: UserOrderByWithRelationInput
  }

  export type AIQALogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AIQALogWhereInput | AIQALogWhereInput[]
    OR?: AIQALogWhereInput[]
    NOT?: AIQALogWhereInput | AIQALogWhereInput[]
    userId?: UuidFilter<"AIQALog"> | string
    question?: StringFilter<"AIQALog"> | string
    answer?: StringFilter<"AIQALog"> | string
    sourceDocuments?: JsonNullableFilter<"AIQALog">
    confidence?: FloatNullableFilter<"AIQALog"> | number | null
    modelUsed?: StringNullableFilter<"AIQALog"> | string | null
    tokensUsed?: IntNullableFilter<"AIQALog"> | number | null
    cost?: FloatNullableFilter<"AIQALog"> | number | null
    responseTimeMs?: IntNullableFilter<"AIQALog"> | number | null
    feedback?: EnumQAFeedbackNullableFilter<"AIQALog"> | $Enums.QAFeedback | null
    feedbackComment?: StringNullableFilter<"AIQALog"> | string | null
    createdAt?: DateTimeFilter<"AIQALog"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type AIQALogOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    question?: SortOrder
    answer?: SortOrder
    sourceDocuments?: SortOrderInput | SortOrder
    confidence?: SortOrderInput | SortOrder
    modelUsed?: SortOrderInput | SortOrder
    tokensUsed?: SortOrderInput | SortOrder
    cost?: SortOrderInput | SortOrder
    responseTimeMs?: SortOrderInput | SortOrder
    feedback?: SortOrderInput | SortOrder
    feedbackComment?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: AIQALogCountOrderByAggregateInput
    _avg?: AIQALogAvgOrderByAggregateInput
    _max?: AIQALogMaxOrderByAggregateInput
    _min?: AIQALogMinOrderByAggregateInput
    _sum?: AIQALogSumOrderByAggregateInput
  }

  export type AIQALogScalarWhereWithAggregatesInput = {
    AND?: AIQALogScalarWhereWithAggregatesInput | AIQALogScalarWhereWithAggregatesInput[]
    OR?: AIQALogScalarWhereWithAggregatesInput[]
    NOT?: AIQALogScalarWhereWithAggregatesInput | AIQALogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AIQALog"> | string
    userId?: UuidWithAggregatesFilter<"AIQALog"> | string
    question?: StringWithAggregatesFilter<"AIQALog"> | string
    answer?: StringWithAggregatesFilter<"AIQALog"> | string
    sourceDocuments?: JsonNullableWithAggregatesFilter<"AIQALog">
    confidence?: FloatNullableWithAggregatesFilter<"AIQALog"> | number | null
    modelUsed?: StringNullableWithAggregatesFilter<"AIQALog"> | string | null
    tokensUsed?: IntNullableWithAggregatesFilter<"AIQALog"> | number | null
    cost?: FloatNullableWithAggregatesFilter<"AIQALog"> | number | null
    responseTimeMs?: IntNullableWithAggregatesFilter<"AIQALog"> | number | null
    feedback?: EnumQAFeedbackNullableWithAggregatesFilter<"AIQALog"> | $Enums.QAFeedback | null
    feedbackComment?: StringNullableWithAggregatesFilter<"AIQALog"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"AIQALog"> | Date | string
  }

  export type SearchLogWhereInput = {
    AND?: SearchLogWhereInput | SearchLogWhereInput[]
    OR?: SearchLogWhereInput[]
    NOT?: SearchLogWhereInput | SearchLogWhereInput[]
    id?: UuidFilter<"SearchLog"> | string
    userIdHash?: StringFilter<"SearchLog"> | string
    query?: StringFilter<"SearchLog"> | string
    resultCount?: IntFilter<"SearchLog"> | number
    responseTimeMs?: IntFilter<"SearchLog"> | number
    searchType?: EnumSearchTypeFilter<"SearchLog"> | $Enums.SearchType
    filters?: JsonNullableFilter<"SearchLog">
    createdAt?: DateTimeFilter<"SearchLog"> | Date | string
  }

  export type SearchLogOrderByWithRelationInput = {
    id?: SortOrder
    userIdHash?: SortOrder
    query?: SortOrder
    resultCount?: SortOrder
    responseTimeMs?: SortOrder
    searchType?: SortOrder
    filters?: SortOrderInput | SortOrder
    createdAt?: SortOrder
  }

  export type SearchLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SearchLogWhereInput | SearchLogWhereInput[]
    OR?: SearchLogWhereInput[]
    NOT?: SearchLogWhereInput | SearchLogWhereInput[]
    userIdHash?: StringFilter<"SearchLog"> | string
    query?: StringFilter<"SearchLog"> | string
    resultCount?: IntFilter<"SearchLog"> | number
    responseTimeMs?: IntFilter<"SearchLog"> | number
    searchType?: EnumSearchTypeFilter<"SearchLog"> | $Enums.SearchType
    filters?: JsonNullableFilter<"SearchLog">
    createdAt?: DateTimeFilter<"SearchLog"> | Date | string
  }, "id">

  export type SearchLogOrderByWithAggregationInput = {
    id?: SortOrder
    userIdHash?: SortOrder
    query?: SortOrder
    resultCount?: SortOrder
    responseTimeMs?: SortOrder
    searchType?: SortOrder
    filters?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: SearchLogCountOrderByAggregateInput
    _avg?: SearchLogAvgOrderByAggregateInput
    _max?: SearchLogMaxOrderByAggregateInput
    _min?: SearchLogMinOrderByAggregateInput
    _sum?: SearchLogSumOrderByAggregateInput
  }

  export type SearchLogScalarWhereWithAggregatesInput = {
    AND?: SearchLogScalarWhereWithAggregatesInput | SearchLogScalarWhereWithAggregatesInput[]
    OR?: SearchLogScalarWhereWithAggregatesInput[]
    NOT?: SearchLogScalarWhereWithAggregatesInput | SearchLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SearchLog"> | string
    userIdHash?: StringWithAggregatesFilter<"SearchLog"> | string
    query?: StringWithAggregatesFilter<"SearchLog"> | string
    resultCount?: IntWithAggregatesFilter<"SearchLog"> | number
    responseTimeMs?: IntWithAggregatesFilter<"SearchLog"> | number
    searchType?: EnumSearchTypeWithAggregatesFilter<"SearchLog"> | $Enums.SearchType
    filters?: JsonNullableWithAggregatesFilter<"SearchLog">
    createdAt?: DateTimeWithAggregatesFilter<"SearchLog"> | Date | string
  }

  export type DocumentViewWhereInput = {
    AND?: DocumentViewWhereInput | DocumentViewWhereInput[]
    OR?: DocumentViewWhereInput[]
    NOT?: DocumentViewWhereInput | DocumentViewWhereInput[]
    id?: UuidFilter<"DocumentView"> | string
    spDocumentId?: UuidNullableFilter<"DocumentView"> | string | null
    articleId?: UuidNullableFilter<"DocumentView"> | string | null
    userId?: UuidFilter<"DocumentView"> | string
    viewedAt?: DateTimeFilter<"DocumentView"> | Date | string
    viewDate?: DateTimeFilter<"DocumentView"> | Date | string
    spDocument?: XOR<SPDocumentIndexNullableScalarRelationFilter, SPDocumentIndexWhereInput> | null
    article?: XOR<KnowledgeArticleNullableScalarRelationFilter, KnowledgeArticleWhereInput> | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type DocumentViewOrderByWithRelationInput = {
    id?: SortOrder
    spDocumentId?: SortOrderInput | SortOrder
    articleId?: SortOrderInput | SortOrder
    userId?: SortOrder
    viewedAt?: SortOrder
    viewDate?: SortOrder
    spDocument?: SPDocumentIndexOrderByWithRelationInput
    article?: KnowledgeArticleOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
  }

  export type DocumentViewWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    spDocumentId_userId_viewDate?: DocumentViewSpDocumentIdUserIdViewDateCompoundUniqueInput
    articleId_userId_viewDate?: DocumentViewArticleIdUserIdViewDateCompoundUniqueInput
    AND?: DocumentViewWhereInput | DocumentViewWhereInput[]
    OR?: DocumentViewWhereInput[]
    NOT?: DocumentViewWhereInput | DocumentViewWhereInput[]
    spDocumentId?: UuidNullableFilter<"DocumentView"> | string | null
    articleId?: UuidNullableFilter<"DocumentView"> | string | null
    userId?: UuidFilter<"DocumentView"> | string
    viewedAt?: DateTimeFilter<"DocumentView"> | Date | string
    viewDate?: DateTimeFilter<"DocumentView"> | Date | string
    spDocument?: XOR<SPDocumentIndexNullableScalarRelationFilter, SPDocumentIndexWhereInput> | null
    article?: XOR<KnowledgeArticleNullableScalarRelationFilter, KnowledgeArticleWhereInput> | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "spDocumentId_userId_viewDate" | "articleId_userId_viewDate">

  export type DocumentViewOrderByWithAggregationInput = {
    id?: SortOrder
    spDocumentId?: SortOrderInput | SortOrder
    articleId?: SortOrderInput | SortOrder
    userId?: SortOrder
    viewedAt?: SortOrder
    viewDate?: SortOrder
    _count?: DocumentViewCountOrderByAggregateInput
    _max?: DocumentViewMaxOrderByAggregateInput
    _min?: DocumentViewMinOrderByAggregateInput
  }

  export type DocumentViewScalarWhereWithAggregatesInput = {
    AND?: DocumentViewScalarWhereWithAggregatesInput | DocumentViewScalarWhereWithAggregatesInput[]
    OR?: DocumentViewScalarWhereWithAggregatesInput[]
    NOT?: DocumentViewScalarWhereWithAggregatesInput | DocumentViewScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DocumentView"> | string
    spDocumentId?: UuidNullableWithAggregatesFilter<"DocumentView"> | string | null
    articleId?: UuidNullableWithAggregatesFilter<"DocumentView"> | string | null
    userId?: UuidWithAggregatesFilter<"DocumentView"> | string
    viewedAt?: DateTimeWithAggregatesFilter<"DocumentView"> | Date | string
    viewDate?: DateTimeWithAggregatesFilter<"DocumentView"> | Date | string
  }

  export type DocumentLikeWhereInput = {
    AND?: DocumentLikeWhereInput | DocumentLikeWhereInput[]
    OR?: DocumentLikeWhereInput[]
    NOT?: DocumentLikeWhereInput | DocumentLikeWhereInput[]
    id?: UuidFilter<"DocumentLike"> | string
    spDocumentId?: UuidNullableFilter<"DocumentLike"> | string | null
    articleId?: UuidNullableFilter<"DocumentLike"> | string | null
    userId?: UuidFilter<"DocumentLike"> | string
    type?: EnumLikeTypeFilter<"DocumentLike"> | $Enums.LikeType
    createdAt?: DateTimeFilter<"DocumentLike"> | Date | string
    spDocument?: XOR<SPDocumentIndexNullableScalarRelationFilter, SPDocumentIndexWhereInput> | null
    article?: XOR<KnowledgeArticleNullableScalarRelationFilter, KnowledgeArticleWhereInput> | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type DocumentLikeOrderByWithRelationInput = {
    id?: SortOrder
    spDocumentId?: SortOrderInput | SortOrder
    articleId?: SortOrderInput | SortOrder
    userId?: SortOrder
    type?: SortOrder
    createdAt?: SortOrder
    spDocument?: SPDocumentIndexOrderByWithRelationInput
    article?: KnowledgeArticleOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
  }

  export type DocumentLikeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    spDocumentId_userId?: DocumentLikeSpDocumentIdUserIdCompoundUniqueInput
    articleId_userId?: DocumentLikeArticleIdUserIdCompoundUniqueInput
    AND?: DocumentLikeWhereInput | DocumentLikeWhereInput[]
    OR?: DocumentLikeWhereInput[]
    NOT?: DocumentLikeWhereInput | DocumentLikeWhereInput[]
    spDocumentId?: UuidNullableFilter<"DocumentLike"> | string | null
    articleId?: UuidNullableFilter<"DocumentLike"> | string | null
    userId?: UuidFilter<"DocumentLike"> | string
    type?: EnumLikeTypeFilter<"DocumentLike"> | $Enums.LikeType
    createdAt?: DateTimeFilter<"DocumentLike"> | Date | string
    spDocument?: XOR<SPDocumentIndexNullableScalarRelationFilter, SPDocumentIndexWhereInput> | null
    article?: XOR<KnowledgeArticleNullableScalarRelationFilter, KnowledgeArticleWhereInput> | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "spDocumentId_userId" | "articleId_userId">

  export type DocumentLikeOrderByWithAggregationInput = {
    id?: SortOrder
    spDocumentId?: SortOrderInput | SortOrder
    articleId?: SortOrderInput | SortOrder
    userId?: SortOrder
    type?: SortOrder
    createdAt?: SortOrder
    _count?: DocumentLikeCountOrderByAggregateInput
    _max?: DocumentLikeMaxOrderByAggregateInput
    _min?: DocumentLikeMinOrderByAggregateInput
  }

  export type DocumentLikeScalarWhereWithAggregatesInput = {
    AND?: DocumentLikeScalarWhereWithAggregatesInput | DocumentLikeScalarWhereWithAggregatesInput[]
    OR?: DocumentLikeScalarWhereWithAggregatesInput[]
    NOT?: DocumentLikeScalarWhereWithAggregatesInput | DocumentLikeScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DocumentLike"> | string
    spDocumentId?: UuidNullableWithAggregatesFilter<"DocumentLike"> | string | null
    articleId?: UuidNullableWithAggregatesFilter<"DocumentLike"> | string | null
    userId?: UuidWithAggregatesFilter<"DocumentLike"> | string
    type?: EnumLikeTypeWithAggregatesFilter<"DocumentLike"> | $Enums.LikeType
    createdAt?: DateTimeWithAggregatesFilter<"DocumentLike"> | Date | string
  }

  export type DocumentCommentWhereInput = {
    AND?: DocumentCommentWhereInput | DocumentCommentWhereInput[]
    OR?: DocumentCommentWhereInput[]
    NOT?: DocumentCommentWhereInput | DocumentCommentWhereInput[]
    id?: UuidFilter<"DocumentComment"> | string
    spDocumentId?: UuidNullableFilter<"DocumentComment"> | string | null
    articleId?: UuidNullableFilter<"DocumentComment"> | string | null
    userId?: UuidFilter<"DocumentComment"> | string
    content?: StringFilter<"DocumentComment"> | string
    parentId?: UuidNullableFilter<"DocumentComment"> | string | null
    createdAt?: DateTimeFilter<"DocumentComment"> | Date | string
    updatedAt?: DateTimeFilter<"DocumentComment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"DocumentComment"> | Date | string | null
    spDocument?: XOR<SPDocumentIndexNullableScalarRelationFilter, SPDocumentIndexWhereInput> | null
    article?: XOR<KnowledgeArticleNullableScalarRelationFilter, KnowledgeArticleWhereInput> | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    parent?: XOR<DocumentCommentNullableScalarRelationFilter, DocumentCommentWhereInput> | null
    replies?: DocumentCommentListRelationFilter
    mentions?: UserMentionListRelationFilter
  }

  export type DocumentCommentOrderByWithRelationInput = {
    id?: SortOrder
    spDocumentId?: SortOrderInput | SortOrder
    articleId?: SortOrderInput | SortOrder
    userId?: SortOrder
    content?: SortOrder
    parentId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    spDocument?: SPDocumentIndexOrderByWithRelationInput
    article?: KnowledgeArticleOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
    parent?: DocumentCommentOrderByWithRelationInput
    replies?: DocumentCommentOrderByRelationAggregateInput
    mentions?: UserMentionOrderByRelationAggregateInput
  }

  export type DocumentCommentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: DocumentCommentWhereInput | DocumentCommentWhereInput[]
    OR?: DocumentCommentWhereInput[]
    NOT?: DocumentCommentWhereInput | DocumentCommentWhereInput[]
    spDocumentId?: UuidNullableFilter<"DocumentComment"> | string | null
    articleId?: UuidNullableFilter<"DocumentComment"> | string | null
    userId?: UuidFilter<"DocumentComment"> | string
    content?: StringFilter<"DocumentComment"> | string
    parentId?: UuidNullableFilter<"DocumentComment"> | string | null
    createdAt?: DateTimeFilter<"DocumentComment"> | Date | string
    updatedAt?: DateTimeFilter<"DocumentComment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"DocumentComment"> | Date | string | null
    spDocument?: XOR<SPDocumentIndexNullableScalarRelationFilter, SPDocumentIndexWhereInput> | null
    article?: XOR<KnowledgeArticleNullableScalarRelationFilter, KnowledgeArticleWhereInput> | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    parent?: XOR<DocumentCommentNullableScalarRelationFilter, DocumentCommentWhereInput> | null
    replies?: DocumentCommentListRelationFilter
    mentions?: UserMentionListRelationFilter
  }, "id">

  export type DocumentCommentOrderByWithAggregationInput = {
    id?: SortOrder
    spDocumentId?: SortOrderInput | SortOrder
    articleId?: SortOrderInput | SortOrder
    userId?: SortOrder
    content?: SortOrder
    parentId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: DocumentCommentCountOrderByAggregateInput
    _max?: DocumentCommentMaxOrderByAggregateInput
    _min?: DocumentCommentMinOrderByAggregateInput
  }

  export type DocumentCommentScalarWhereWithAggregatesInput = {
    AND?: DocumentCommentScalarWhereWithAggregatesInput | DocumentCommentScalarWhereWithAggregatesInput[]
    OR?: DocumentCommentScalarWhereWithAggregatesInput[]
    NOT?: DocumentCommentScalarWhereWithAggregatesInput | DocumentCommentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DocumentComment"> | string
    spDocumentId?: UuidNullableWithAggregatesFilter<"DocumentComment"> | string | null
    articleId?: UuidNullableWithAggregatesFilter<"DocumentComment"> | string | null
    userId?: UuidWithAggregatesFilter<"DocumentComment"> | string
    content?: StringWithAggregatesFilter<"DocumentComment"> | string
    parentId?: UuidNullableWithAggregatesFilter<"DocumentComment"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"DocumentComment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DocumentComment"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"DocumentComment"> | Date | string | null
  }

  export type UserMentionWhereInput = {
    AND?: UserMentionWhereInput | UserMentionWhereInput[]
    OR?: UserMentionWhereInput[]
    NOT?: UserMentionWhereInput | UserMentionWhereInput[]
    id?: UuidFilter<"UserMention"> | string
    commentId?: UuidFilter<"UserMention"> | string
    mentionedUserId?: UuidFilter<"UserMention"> | string
    readAt?: DateTimeNullableFilter<"UserMention"> | Date | string | null
    createdAt?: DateTimeFilter<"UserMention"> | Date | string
    comment?: XOR<DocumentCommentScalarRelationFilter, DocumentCommentWhereInput>
    mentionedUser?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type UserMentionOrderByWithRelationInput = {
    id?: SortOrder
    commentId?: SortOrder
    mentionedUserId?: SortOrder
    readAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    comment?: DocumentCommentOrderByWithRelationInput
    mentionedUser?: UserOrderByWithRelationInput
  }

  export type UserMentionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    commentId_mentionedUserId?: UserMentionCommentIdMentionedUserIdCompoundUniqueInput
    AND?: UserMentionWhereInput | UserMentionWhereInput[]
    OR?: UserMentionWhereInput[]
    NOT?: UserMentionWhereInput | UserMentionWhereInput[]
    commentId?: UuidFilter<"UserMention"> | string
    mentionedUserId?: UuidFilter<"UserMention"> | string
    readAt?: DateTimeNullableFilter<"UserMention"> | Date | string | null
    createdAt?: DateTimeFilter<"UserMention"> | Date | string
    comment?: XOR<DocumentCommentScalarRelationFilter, DocumentCommentWhereInput>
    mentionedUser?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "commentId_mentionedUserId">

  export type UserMentionOrderByWithAggregationInput = {
    id?: SortOrder
    commentId?: SortOrder
    mentionedUserId?: SortOrder
    readAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: UserMentionCountOrderByAggregateInput
    _max?: UserMentionMaxOrderByAggregateInput
    _min?: UserMentionMinOrderByAggregateInput
  }

  export type UserMentionScalarWhereWithAggregatesInput = {
    AND?: UserMentionScalarWhereWithAggregatesInput | UserMentionScalarWhereWithAggregatesInput[]
    OR?: UserMentionScalarWhereWithAggregatesInput[]
    NOT?: UserMentionScalarWhereWithAggregatesInput | UserMentionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"UserMention"> | string
    commentId?: UuidWithAggregatesFilter<"UserMention"> | string
    mentionedUserId?: UuidWithAggregatesFilter<"UserMention"> | string
    readAt?: DateTimeNullableWithAggregatesFilter<"UserMention"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"UserMention"> | Date | string
  }

  export type SyncTaskWhereInput = {
    AND?: SyncTaskWhereInput | SyncTaskWhereInput[]
    OR?: SyncTaskWhereInput[]
    NOT?: SyncTaskWhereInput | SyncTaskWhereInput[]
    id?: UuidFilter<"SyncTask"> | string
    taskType?: StringFilter<"SyncTask"> | string
    triggerSource?: StringNullableFilter<"SyncTask"> | string | null
    status?: EnumSyncStatusFilter<"SyncTask"> | $Enums.SyncStatus
    totalItems?: IntNullableFilter<"SyncTask"> | number | null
    processedItems?: IntFilter<"SyncTask"> | number
    processingItems?: IntFilter<"SyncTask"> | number
    failedItems?: IntFilter<"SyncTask"> | number
    skippedItems?: IntFilter<"SyncTask"> | number
    processedTokens?: IntFilter<"SyncTask"> | number
    processedChunks?: IntFilter<"SyncTask"> | number
    error?: StringNullableFilter<"SyncTask"> | string | null
    startedAt?: DateTimeNullableFilter<"SyncTask"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"SyncTask"> | Date | string | null
    lastProgressAt?: DateTimeNullableFilter<"SyncTask"> | Date | string | null
    createdAt?: DateTimeFilter<"SyncTask"> | Date | string
    skippedDetails?: SyncTaskSkippedItemListRelationFilter
    processedDetails?: SyncTaskProcessedItemListRelationFilter
    failedDetails?: SyncTaskFailedItemListRelationFilter
  }

  export type SyncTaskOrderByWithRelationInput = {
    id?: SortOrder
    taskType?: SortOrder
    triggerSource?: SortOrderInput | SortOrder
    status?: SortOrder
    totalItems?: SortOrderInput | SortOrder
    processedItems?: SortOrder
    processingItems?: SortOrder
    failedItems?: SortOrder
    skippedItems?: SortOrder
    processedTokens?: SortOrder
    processedChunks?: SortOrder
    error?: SortOrderInput | SortOrder
    startedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    lastProgressAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    skippedDetails?: SyncTaskSkippedItemOrderByRelationAggregateInput
    processedDetails?: SyncTaskProcessedItemOrderByRelationAggregateInput
    failedDetails?: SyncTaskFailedItemOrderByRelationAggregateInput
  }

  export type SyncTaskWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SyncTaskWhereInput | SyncTaskWhereInput[]
    OR?: SyncTaskWhereInput[]
    NOT?: SyncTaskWhereInput | SyncTaskWhereInput[]
    taskType?: StringFilter<"SyncTask"> | string
    triggerSource?: StringNullableFilter<"SyncTask"> | string | null
    status?: EnumSyncStatusFilter<"SyncTask"> | $Enums.SyncStatus
    totalItems?: IntNullableFilter<"SyncTask"> | number | null
    processedItems?: IntFilter<"SyncTask"> | number
    processingItems?: IntFilter<"SyncTask"> | number
    failedItems?: IntFilter<"SyncTask"> | number
    skippedItems?: IntFilter<"SyncTask"> | number
    processedTokens?: IntFilter<"SyncTask"> | number
    processedChunks?: IntFilter<"SyncTask"> | number
    error?: StringNullableFilter<"SyncTask"> | string | null
    startedAt?: DateTimeNullableFilter<"SyncTask"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"SyncTask"> | Date | string | null
    lastProgressAt?: DateTimeNullableFilter<"SyncTask"> | Date | string | null
    createdAt?: DateTimeFilter<"SyncTask"> | Date | string
    skippedDetails?: SyncTaskSkippedItemListRelationFilter
    processedDetails?: SyncTaskProcessedItemListRelationFilter
    failedDetails?: SyncTaskFailedItemListRelationFilter
  }, "id">

  export type SyncTaskOrderByWithAggregationInput = {
    id?: SortOrder
    taskType?: SortOrder
    triggerSource?: SortOrderInput | SortOrder
    status?: SortOrder
    totalItems?: SortOrderInput | SortOrder
    processedItems?: SortOrder
    processingItems?: SortOrder
    failedItems?: SortOrder
    skippedItems?: SortOrder
    processedTokens?: SortOrder
    processedChunks?: SortOrder
    error?: SortOrderInput | SortOrder
    startedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    lastProgressAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: SyncTaskCountOrderByAggregateInput
    _avg?: SyncTaskAvgOrderByAggregateInput
    _max?: SyncTaskMaxOrderByAggregateInput
    _min?: SyncTaskMinOrderByAggregateInput
    _sum?: SyncTaskSumOrderByAggregateInput
  }

  export type SyncTaskScalarWhereWithAggregatesInput = {
    AND?: SyncTaskScalarWhereWithAggregatesInput | SyncTaskScalarWhereWithAggregatesInput[]
    OR?: SyncTaskScalarWhereWithAggregatesInput[]
    NOT?: SyncTaskScalarWhereWithAggregatesInput | SyncTaskScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SyncTask"> | string
    taskType?: StringWithAggregatesFilter<"SyncTask"> | string
    triggerSource?: StringNullableWithAggregatesFilter<"SyncTask"> | string | null
    status?: EnumSyncStatusWithAggregatesFilter<"SyncTask"> | $Enums.SyncStatus
    totalItems?: IntNullableWithAggregatesFilter<"SyncTask"> | number | null
    processedItems?: IntWithAggregatesFilter<"SyncTask"> | number
    processingItems?: IntWithAggregatesFilter<"SyncTask"> | number
    failedItems?: IntWithAggregatesFilter<"SyncTask"> | number
    skippedItems?: IntWithAggregatesFilter<"SyncTask"> | number
    processedTokens?: IntWithAggregatesFilter<"SyncTask"> | number
    processedChunks?: IntWithAggregatesFilter<"SyncTask"> | number
    error?: StringNullableWithAggregatesFilter<"SyncTask"> | string | null
    startedAt?: DateTimeNullableWithAggregatesFilter<"SyncTask"> | Date | string | null
    completedAt?: DateTimeNullableWithAggregatesFilter<"SyncTask"> | Date | string | null
    lastProgressAt?: DateTimeNullableWithAggregatesFilter<"SyncTask"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"SyncTask"> | Date | string
  }

  export type SyncTaskSkippedItemWhereInput = {
    AND?: SyncTaskSkippedItemWhereInput | SyncTaskSkippedItemWhereInput[]
    OR?: SyncTaskSkippedItemWhereInput[]
    NOT?: SyncTaskSkippedItemWhereInput | SyncTaskSkippedItemWhereInput[]
    id?: UuidFilter<"SyncTaskSkippedItem"> | string
    taskId?: UuidFilter<"SyncTaskSkippedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskSkippedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskSkippedItem"> | string
    filename?: StringFilter<"SyncTaskSkippedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskSkippedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskSkippedItem"> | string | null
    reason?: StringFilter<"SyncTaskSkippedItem"> | string
    createdAt?: DateTimeFilter<"SyncTaskSkippedItem"> | Date | string
    task?: XOR<SyncTaskScalarRelationFilter, SyncTaskWhereInput>
  }

  export type SyncTaskSkippedItemOrderByWithRelationInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrderInput | SortOrder
    mimeType?: SortOrderInput | SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
    task?: SyncTaskOrderByWithRelationInput
  }

  export type SyncTaskSkippedItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SyncTaskSkippedItemWhereInput | SyncTaskSkippedItemWhereInput[]
    OR?: SyncTaskSkippedItemWhereInput[]
    NOT?: SyncTaskSkippedItemWhereInput | SyncTaskSkippedItemWhereInput[]
    taskId?: UuidFilter<"SyncTaskSkippedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskSkippedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskSkippedItem"> | string
    filename?: StringFilter<"SyncTaskSkippedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskSkippedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskSkippedItem"> | string | null
    reason?: StringFilter<"SyncTaskSkippedItem"> | string
    createdAt?: DateTimeFilter<"SyncTaskSkippedItem"> | Date | string
    task?: XOR<SyncTaskScalarRelationFilter, SyncTaskWhereInput>
  }, "id">

  export type SyncTaskSkippedItemOrderByWithAggregationInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrderInput | SortOrder
    mimeType?: SortOrderInput | SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
    _count?: SyncTaskSkippedItemCountOrderByAggregateInput
    _max?: SyncTaskSkippedItemMaxOrderByAggregateInput
    _min?: SyncTaskSkippedItemMinOrderByAggregateInput
  }

  export type SyncTaskSkippedItemScalarWhereWithAggregatesInput = {
    AND?: SyncTaskSkippedItemScalarWhereWithAggregatesInput | SyncTaskSkippedItemScalarWhereWithAggregatesInput[]
    OR?: SyncTaskSkippedItemScalarWhereWithAggregatesInput[]
    NOT?: SyncTaskSkippedItemScalarWhereWithAggregatesInput | SyncTaskSkippedItemScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SyncTaskSkippedItem"> | string
    taskId?: UuidWithAggregatesFilter<"SyncTaskSkippedItem"> | string
    sourceType?: EnumRagflowSourceTypeWithAggregatesFilter<"SyncTaskSkippedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidWithAggregatesFilter<"SyncTaskSkippedItem"> | string
    filename?: StringWithAggregatesFilter<"SyncTaskSkippedItem"> | string
    fileExtension?: StringNullableWithAggregatesFilter<"SyncTaskSkippedItem"> | string | null
    mimeType?: StringNullableWithAggregatesFilter<"SyncTaskSkippedItem"> | string | null
    reason?: StringWithAggregatesFilter<"SyncTaskSkippedItem"> | string
    createdAt?: DateTimeWithAggregatesFilter<"SyncTaskSkippedItem"> | Date | string
  }

  export type SyncTaskProcessedItemWhereInput = {
    AND?: SyncTaskProcessedItemWhereInput | SyncTaskProcessedItemWhereInput[]
    OR?: SyncTaskProcessedItemWhereInput[]
    NOT?: SyncTaskProcessedItemWhereInput | SyncTaskProcessedItemWhereInput[]
    id?: UuidFilter<"SyncTaskProcessedItem"> | string
    taskId?: UuidFilter<"SyncTaskProcessedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskProcessedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskProcessedItem"> | string
    filename?: StringFilter<"SyncTaskProcessedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    ragflowDocumentId?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    tokenCount?: IntNullableFilter<"SyncTaskProcessedItem"> | number | null
    chunkCount?: IntNullableFilter<"SyncTaskProcessedItem"> | number | null
    sourceSizeBytes?: BigIntNullableFilter<"SyncTaskProcessedItem"> | bigint | number | null
    status?: EnumSyncItemStatusFilter<"SyncTaskProcessedItem"> | $Enums.SyncItemStatus
    createdAt?: DateTimeFilter<"SyncTaskProcessedItem"> | Date | string
    task?: XOR<SyncTaskScalarRelationFilter, SyncTaskWhereInput>
  }

  export type SyncTaskProcessedItemOrderByWithRelationInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrderInput | SortOrder
    mimeType?: SortOrderInput | SortOrder
    ragflowDocumentId?: SortOrderInput | SortOrder
    tokenCount?: SortOrderInput | SortOrder
    chunkCount?: SortOrderInput | SortOrder
    sourceSizeBytes?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    task?: SyncTaskOrderByWithRelationInput
  }

  export type SyncTaskProcessedItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SyncTaskProcessedItemWhereInput | SyncTaskProcessedItemWhereInput[]
    OR?: SyncTaskProcessedItemWhereInput[]
    NOT?: SyncTaskProcessedItemWhereInput | SyncTaskProcessedItemWhereInput[]
    taskId?: UuidFilter<"SyncTaskProcessedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskProcessedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskProcessedItem"> | string
    filename?: StringFilter<"SyncTaskProcessedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    ragflowDocumentId?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    tokenCount?: IntNullableFilter<"SyncTaskProcessedItem"> | number | null
    chunkCount?: IntNullableFilter<"SyncTaskProcessedItem"> | number | null
    sourceSizeBytes?: BigIntNullableFilter<"SyncTaskProcessedItem"> | bigint | number | null
    status?: EnumSyncItemStatusFilter<"SyncTaskProcessedItem"> | $Enums.SyncItemStatus
    createdAt?: DateTimeFilter<"SyncTaskProcessedItem"> | Date | string
    task?: XOR<SyncTaskScalarRelationFilter, SyncTaskWhereInput>
  }, "id">

  export type SyncTaskProcessedItemOrderByWithAggregationInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrderInput | SortOrder
    mimeType?: SortOrderInput | SortOrder
    ragflowDocumentId?: SortOrderInput | SortOrder
    tokenCount?: SortOrderInput | SortOrder
    chunkCount?: SortOrderInput | SortOrder
    sourceSizeBytes?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    _count?: SyncTaskProcessedItemCountOrderByAggregateInput
    _avg?: SyncTaskProcessedItemAvgOrderByAggregateInput
    _max?: SyncTaskProcessedItemMaxOrderByAggregateInput
    _min?: SyncTaskProcessedItemMinOrderByAggregateInput
    _sum?: SyncTaskProcessedItemSumOrderByAggregateInput
  }

  export type SyncTaskProcessedItemScalarWhereWithAggregatesInput = {
    AND?: SyncTaskProcessedItemScalarWhereWithAggregatesInput | SyncTaskProcessedItemScalarWhereWithAggregatesInput[]
    OR?: SyncTaskProcessedItemScalarWhereWithAggregatesInput[]
    NOT?: SyncTaskProcessedItemScalarWhereWithAggregatesInput | SyncTaskProcessedItemScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SyncTaskProcessedItem"> | string
    taskId?: UuidWithAggregatesFilter<"SyncTaskProcessedItem"> | string
    sourceType?: EnumRagflowSourceTypeWithAggregatesFilter<"SyncTaskProcessedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidWithAggregatesFilter<"SyncTaskProcessedItem"> | string
    filename?: StringWithAggregatesFilter<"SyncTaskProcessedItem"> | string
    fileExtension?: StringNullableWithAggregatesFilter<"SyncTaskProcessedItem"> | string | null
    mimeType?: StringNullableWithAggregatesFilter<"SyncTaskProcessedItem"> | string | null
    ragflowDocumentId?: StringNullableWithAggregatesFilter<"SyncTaskProcessedItem"> | string | null
    tokenCount?: IntNullableWithAggregatesFilter<"SyncTaskProcessedItem"> | number | null
    chunkCount?: IntNullableWithAggregatesFilter<"SyncTaskProcessedItem"> | number | null
    sourceSizeBytes?: BigIntNullableWithAggregatesFilter<"SyncTaskProcessedItem"> | bigint | number | null
    status?: EnumSyncItemStatusWithAggregatesFilter<"SyncTaskProcessedItem"> | $Enums.SyncItemStatus
    createdAt?: DateTimeWithAggregatesFilter<"SyncTaskProcessedItem"> | Date | string
  }

  export type SyncTaskFailedItemWhereInput = {
    AND?: SyncTaskFailedItemWhereInput | SyncTaskFailedItemWhereInput[]
    OR?: SyncTaskFailedItemWhereInput[]
    NOT?: SyncTaskFailedItemWhereInput | SyncTaskFailedItemWhereInput[]
    id?: UuidFilter<"SyncTaskFailedItem"> | string
    taskId?: UuidFilter<"SyncTaskFailedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskFailedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskFailedItem"> | string
    filename?: StringFilter<"SyncTaskFailedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskFailedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskFailedItem"> | string | null
    error?: StringFilter<"SyncTaskFailedItem"> | string
    createdAt?: DateTimeFilter<"SyncTaskFailedItem"> | Date | string
    task?: XOR<SyncTaskScalarRelationFilter, SyncTaskWhereInput>
  }

  export type SyncTaskFailedItemOrderByWithRelationInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrderInput | SortOrder
    mimeType?: SortOrderInput | SortOrder
    error?: SortOrder
    createdAt?: SortOrder
    task?: SyncTaskOrderByWithRelationInput
  }

  export type SyncTaskFailedItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SyncTaskFailedItemWhereInput | SyncTaskFailedItemWhereInput[]
    OR?: SyncTaskFailedItemWhereInput[]
    NOT?: SyncTaskFailedItemWhereInput | SyncTaskFailedItemWhereInput[]
    taskId?: UuidFilter<"SyncTaskFailedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskFailedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskFailedItem"> | string
    filename?: StringFilter<"SyncTaskFailedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskFailedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskFailedItem"> | string | null
    error?: StringFilter<"SyncTaskFailedItem"> | string
    createdAt?: DateTimeFilter<"SyncTaskFailedItem"> | Date | string
    task?: XOR<SyncTaskScalarRelationFilter, SyncTaskWhereInput>
  }, "id">

  export type SyncTaskFailedItemOrderByWithAggregationInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrderInput | SortOrder
    mimeType?: SortOrderInput | SortOrder
    error?: SortOrder
    createdAt?: SortOrder
    _count?: SyncTaskFailedItemCountOrderByAggregateInput
    _max?: SyncTaskFailedItemMaxOrderByAggregateInput
    _min?: SyncTaskFailedItemMinOrderByAggregateInput
  }

  export type SyncTaskFailedItemScalarWhereWithAggregatesInput = {
    AND?: SyncTaskFailedItemScalarWhereWithAggregatesInput | SyncTaskFailedItemScalarWhereWithAggregatesInput[]
    OR?: SyncTaskFailedItemScalarWhereWithAggregatesInput[]
    NOT?: SyncTaskFailedItemScalarWhereWithAggregatesInput | SyncTaskFailedItemScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SyncTaskFailedItem"> | string
    taskId?: UuidWithAggregatesFilter<"SyncTaskFailedItem"> | string
    sourceType?: EnumRagflowSourceTypeWithAggregatesFilter<"SyncTaskFailedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidWithAggregatesFilter<"SyncTaskFailedItem"> | string
    filename?: StringWithAggregatesFilter<"SyncTaskFailedItem"> | string
    fileExtension?: StringNullableWithAggregatesFilter<"SyncTaskFailedItem"> | string | null
    mimeType?: StringNullableWithAggregatesFilter<"SyncTaskFailedItem"> | string | null
    error?: StringWithAggregatesFilter<"SyncTaskFailedItem"> | string
    createdAt?: DateTimeWithAggregatesFilter<"SyncTaskFailedItem"> | Date | string
  }

  export type SharePointSyncCursorWhereInput = {
    AND?: SharePointSyncCursorWhereInput | SharePointSyncCursorWhereInput[]
    OR?: SharePointSyncCursorWhereInput[]
    NOT?: SharePointSyncCursorWhereInput | SharePointSyncCursorWhereInput[]
    id?: UuidFilter<"SharePointSyncCursor"> | string
    driveId?: StringFilter<"SharePointSyncCursor"> | string
    scopePath?: StringFilter<"SharePointSyncCursor"> | string
    deltaLink?: StringFilter<"SharePointSyncCursor"> | string
    lastSyncedAt?: DateTimeNullableFilter<"SharePointSyncCursor"> | Date | string | null
    createdAt?: DateTimeFilter<"SharePointSyncCursor"> | Date | string
    updatedAt?: DateTimeFilter<"SharePointSyncCursor"> | Date | string
  }

  export type SharePointSyncCursorOrderByWithRelationInput = {
    id?: SortOrder
    driveId?: SortOrder
    scopePath?: SortOrder
    deltaLink?: SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SharePointSyncCursorWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    driveId_scopePath?: SharePointSyncCursorDriveIdScopePathCompoundUniqueInput
    AND?: SharePointSyncCursorWhereInput | SharePointSyncCursorWhereInput[]
    OR?: SharePointSyncCursorWhereInput[]
    NOT?: SharePointSyncCursorWhereInput | SharePointSyncCursorWhereInput[]
    driveId?: StringFilter<"SharePointSyncCursor"> | string
    scopePath?: StringFilter<"SharePointSyncCursor"> | string
    deltaLink?: StringFilter<"SharePointSyncCursor"> | string
    lastSyncedAt?: DateTimeNullableFilter<"SharePointSyncCursor"> | Date | string | null
    createdAt?: DateTimeFilter<"SharePointSyncCursor"> | Date | string
    updatedAt?: DateTimeFilter<"SharePointSyncCursor"> | Date | string
  }, "id" | "driveId_scopePath">

  export type SharePointSyncCursorOrderByWithAggregationInput = {
    id?: SortOrder
    driveId?: SortOrder
    scopePath?: SortOrder
    deltaLink?: SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SharePointSyncCursorCountOrderByAggregateInput
    _max?: SharePointSyncCursorMaxOrderByAggregateInput
    _min?: SharePointSyncCursorMinOrderByAggregateInput
  }

  export type SharePointSyncCursorScalarWhereWithAggregatesInput = {
    AND?: SharePointSyncCursorScalarWhereWithAggregatesInput | SharePointSyncCursorScalarWhereWithAggregatesInput[]
    OR?: SharePointSyncCursorScalarWhereWithAggregatesInput[]
    NOT?: SharePointSyncCursorScalarWhereWithAggregatesInput | SharePointSyncCursorScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SharePointSyncCursor"> | string
    driveId?: StringWithAggregatesFilter<"SharePointSyncCursor"> | string
    scopePath?: StringWithAggregatesFilter<"SharePointSyncCursor"> | string
    deltaLink?: StringWithAggregatesFilter<"SharePointSyncCursor"> | string
    lastSyncedAt?: DateTimeNullableWithAggregatesFilter<"SharePointSyncCursor"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"SharePointSyncCursor"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SharePointSyncCursor"> | Date | string
  }

  export type WebhookSubscriptionWhereInput = {
    AND?: WebhookSubscriptionWhereInput | WebhookSubscriptionWhereInput[]
    OR?: WebhookSubscriptionWhereInput[]
    NOT?: WebhookSubscriptionWhereInput | WebhookSubscriptionWhereInput[]
    id?: UuidFilter<"WebhookSubscription"> | string
    subscriptionId?: StringFilter<"WebhookSubscription"> | string
    driveId?: StringFilter<"WebhookSubscription"> | string
    resource?: StringFilter<"WebhookSubscription"> | string
    expirationDateTime?: DateTimeFilter<"WebhookSubscription"> | Date | string
    isActive?: BoolFilter<"WebhookSubscription"> | boolean
    createdAt?: DateTimeFilter<"WebhookSubscription"> | Date | string
    updatedAt?: DateTimeFilter<"WebhookSubscription"> | Date | string
  }

  export type WebhookSubscriptionOrderByWithRelationInput = {
    id?: SortOrder
    subscriptionId?: SortOrder
    driveId?: SortOrder
    resource?: SortOrder
    expirationDateTime?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WebhookSubscriptionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    subscriptionId?: string
    AND?: WebhookSubscriptionWhereInput | WebhookSubscriptionWhereInput[]
    OR?: WebhookSubscriptionWhereInput[]
    NOT?: WebhookSubscriptionWhereInput | WebhookSubscriptionWhereInput[]
    driveId?: StringFilter<"WebhookSubscription"> | string
    resource?: StringFilter<"WebhookSubscription"> | string
    expirationDateTime?: DateTimeFilter<"WebhookSubscription"> | Date | string
    isActive?: BoolFilter<"WebhookSubscription"> | boolean
    createdAt?: DateTimeFilter<"WebhookSubscription"> | Date | string
    updatedAt?: DateTimeFilter<"WebhookSubscription"> | Date | string
  }, "id" | "subscriptionId">

  export type WebhookSubscriptionOrderByWithAggregationInput = {
    id?: SortOrder
    subscriptionId?: SortOrder
    driveId?: SortOrder
    resource?: SortOrder
    expirationDateTime?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: WebhookSubscriptionCountOrderByAggregateInput
    _max?: WebhookSubscriptionMaxOrderByAggregateInput
    _min?: WebhookSubscriptionMinOrderByAggregateInput
  }

  export type WebhookSubscriptionScalarWhereWithAggregatesInput = {
    AND?: WebhookSubscriptionScalarWhereWithAggregatesInput | WebhookSubscriptionScalarWhereWithAggregatesInput[]
    OR?: WebhookSubscriptionScalarWhereWithAggregatesInput[]
    NOT?: WebhookSubscriptionScalarWhereWithAggregatesInput | WebhookSubscriptionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"WebhookSubscription"> | string
    subscriptionId?: StringWithAggregatesFilter<"WebhookSubscription"> | string
    driveId?: StringWithAggregatesFilter<"WebhookSubscription"> | string
    resource?: StringWithAggregatesFilter<"WebhookSubscription"> | string
    expirationDateTime?: DateTimeWithAggregatesFilter<"WebhookSubscription"> | Date | string
    isActive?: BoolWithAggregatesFilter<"WebhookSubscription"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"WebhookSubscription"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"WebhookSubscription"> | Date | string
  }

  export type SystemLogWhereInput = {
    AND?: SystemLogWhereInput | SystemLogWhereInput[]
    OR?: SystemLogWhereInput[]
    NOT?: SystemLogWhereInput | SystemLogWhereInput[]
    id?: UuidFilter<"SystemLog"> | string
    traceId?: StringFilter<"SystemLog"> | string
    spanId?: StringNullableFilter<"SystemLog"> | string | null
    parentSpanId?: StringNullableFilter<"SystemLog"> | string | null
    requestId?: StringFilter<"SystemLog"> | string
    level?: EnumLogLevelFilter<"SystemLog"> | $Enums.LogLevel
    message?: StringNullableFilter<"SystemLog"> | string | null
    method?: StringNullableFilter<"SystemLog"> | string | null
    url?: StringNullableFilter<"SystemLog"> | string | null
    statusCode?: IntNullableFilter<"SystemLog"> | number | null
    durationMs?: IntNullableFilter<"SystemLog"> | number | null
    userId?: UuidNullableFilter<"SystemLog"> | string | null
    userName?: StringNullableFilter<"SystemLog"> | string | null
    clientIp?: StringNullableFilter<"SystemLog"> | string | null
    userAgent?: StringNullableFilter<"SystemLog"> | string | null
    service?: StringFilter<"SystemLog"> | string
    region?: StringFilter<"SystemLog"> | string
    instance?: StringNullableFilter<"SystemLog"> | string | null
    errorType?: StringNullableFilter<"SystemLog"> | string | null
    errorMessage?: StringNullableFilter<"SystemLog"> | string | null
    errorCode?: StringNullableFilter<"SystemLog"> | string | null
    errorStack?: StringNullableFilter<"SystemLog"> | string | null
    requestBody?: JsonNullableFilter<"SystemLog">
    responseBody?: JsonNullableFilter<"SystemLog">
    metadata?: JsonNullableFilter<"SystemLog">
    createdAt?: DateTimeFilter<"SystemLog"> | Date | string
  }

  export type SystemLogOrderByWithRelationInput = {
    id?: SortOrder
    traceId?: SortOrder
    spanId?: SortOrderInput | SortOrder
    parentSpanId?: SortOrderInput | SortOrder
    requestId?: SortOrder
    level?: SortOrder
    message?: SortOrderInput | SortOrder
    method?: SortOrderInput | SortOrder
    url?: SortOrderInput | SortOrder
    statusCode?: SortOrderInput | SortOrder
    durationMs?: SortOrderInput | SortOrder
    userId?: SortOrderInput | SortOrder
    userName?: SortOrderInput | SortOrder
    clientIp?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    service?: SortOrder
    region?: SortOrder
    instance?: SortOrderInput | SortOrder
    errorType?: SortOrderInput | SortOrder
    errorMessage?: SortOrderInput | SortOrder
    errorCode?: SortOrderInput | SortOrder
    errorStack?: SortOrderInput | SortOrder
    requestBody?: SortOrderInput | SortOrder
    responseBody?: SortOrderInput | SortOrder
    metadata?: SortOrderInput | SortOrder
    createdAt?: SortOrder
  }

  export type SystemLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SystemLogWhereInput | SystemLogWhereInput[]
    OR?: SystemLogWhereInput[]
    NOT?: SystemLogWhereInput | SystemLogWhereInput[]
    traceId?: StringFilter<"SystemLog"> | string
    spanId?: StringNullableFilter<"SystemLog"> | string | null
    parentSpanId?: StringNullableFilter<"SystemLog"> | string | null
    requestId?: StringFilter<"SystemLog"> | string
    level?: EnumLogLevelFilter<"SystemLog"> | $Enums.LogLevel
    message?: StringNullableFilter<"SystemLog"> | string | null
    method?: StringNullableFilter<"SystemLog"> | string | null
    url?: StringNullableFilter<"SystemLog"> | string | null
    statusCode?: IntNullableFilter<"SystemLog"> | number | null
    durationMs?: IntNullableFilter<"SystemLog"> | number | null
    userId?: UuidNullableFilter<"SystemLog"> | string | null
    userName?: StringNullableFilter<"SystemLog"> | string | null
    clientIp?: StringNullableFilter<"SystemLog"> | string | null
    userAgent?: StringNullableFilter<"SystemLog"> | string | null
    service?: StringFilter<"SystemLog"> | string
    region?: StringFilter<"SystemLog"> | string
    instance?: StringNullableFilter<"SystemLog"> | string | null
    errorType?: StringNullableFilter<"SystemLog"> | string | null
    errorMessage?: StringNullableFilter<"SystemLog"> | string | null
    errorCode?: StringNullableFilter<"SystemLog"> | string | null
    errorStack?: StringNullableFilter<"SystemLog"> | string | null
    requestBody?: JsonNullableFilter<"SystemLog">
    responseBody?: JsonNullableFilter<"SystemLog">
    metadata?: JsonNullableFilter<"SystemLog">
    createdAt?: DateTimeFilter<"SystemLog"> | Date | string
  }, "id">

  export type SystemLogOrderByWithAggregationInput = {
    id?: SortOrder
    traceId?: SortOrder
    spanId?: SortOrderInput | SortOrder
    parentSpanId?: SortOrderInput | SortOrder
    requestId?: SortOrder
    level?: SortOrder
    message?: SortOrderInput | SortOrder
    method?: SortOrderInput | SortOrder
    url?: SortOrderInput | SortOrder
    statusCode?: SortOrderInput | SortOrder
    durationMs?: SortOrderInput | SortOrder
    userId?: SortOrderInput | SortOrder
    userName?: SortOrderInput | SortOrder
    clientIp?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    service?: SortOrder
    region?: SortOrder
    instance?: SortOrderInput | SortOrder
    errorType?: SortOrderInput | SortOrder
    errorMessage?: SortOrderInput | SortOrder
    errorCode?: SortOrderInput | SortOrder
    errorStack?: SortOrderInput | SortOrder
    requestBody?: SortOrderInput | SortOrder
    responseBody?: SortOrderInput | SortOrder
    metadata?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: SystemLogCountOrderByAggregateInput
    _avg?: SystemLogAvgOrderByAggregateInput
    _max?: SystemLogMaxOrderByAggregateInput
    _min?: SystemLogMinOrderByAggregateInput
    _sum?: SystemLogSumOrderByAggregateInput
  }

  export type SystemLogScalarWhereWithAggregatesInput = {
    AND?: SystemLogScalarWhereWithAggregatesInput | SystemLogScalarWhereWithAggregatesInput[]
    OR?: SystemLogScalarWhereWithAggregatesInput[]
    NOT?: SystemLogScalarWhereWithAggregatesInput | SystemLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SystemLog"> | string
    traceId?: StringWithAggregatesFilter<"SystemLog"> | string
    spanId?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    parentSpanId?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    requestId?: StringWithAggregatesFilter<"SystemLog"> | string
    level?: EnumLogLevelWithAggregatesFilter<"SystemLog"> | $Enums.LogLevel
    message?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    method?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    url?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    statusCode?: IntNullableWithAggregatesFilter<"SystemLog"> | number | null
    durationMs?: IntNullableWithAggregatesFilter<"SystemLog"> | number | null
    userId?: UuidNullableWithAggregatesFilter<"SystemLog"> | string | null
    userName?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    clientIp?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    userAgent?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    service?: StringWithAggregatesFilter<"SystemLog"> | string
    region?: StringWithAggregatesFilter<"SystemLog"> | string
    instance?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    errorType?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    errorMessage?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    errorCode?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    errorStack?: StringNullableWithAggregatesFilter<"SystemLog"> | string | null
    requestBody?: JsonNullableWithAggregatesFilter<"SystemLog">
    responseBody?: JsonNullableWithAggregatesFilter<"SystemLog">
    metadata?: JsonNullableWithAggregatesFilter<"SystemLog">
    createdAt?: DateTimeWithAggregatesFilter<"SystemLog"> | Date | string
  }

  export type LogConfigWhereInput = {
    AND?: LogConfigWhereInput | LogConfigWhereInput[]
    OR?: LogConfigWhereInput[]
    NOT?: LogConfigWhereInput | LogConfigWhereInput[]
    id?: UuidFilter<"LogConfig"> | string
    key?: StringFilter<"LogConfig"> | string
    value?: JsonFilter<"LogConfig">
    description?: StringNullableFilter<"LogConfig"> | string | null
    updatedAt?: DateTimeFilter<"LogConfig"> | Date | string
    updatedBy?: StringNullableFilter<"LogConfig"> | string | null
  }

  export type LogConfigOrderByWithRelationInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
  }

  export type LogConfigWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    key?: string
    AND?: LogConfigWhereInput | LogConfigWhereInput[]
    OR?: LogConfigWhereInput[]
    NOT?: LogConfigWhereInput | LogConfigWhereInput[]
    value?: JsonFilter<"LogConfig">
    description?: StringNullableFilter<"LogConfig"> | string | null
    updatedAt?: DateTimeFilter<"LogConfig"> | Date | string
    updatedBy?: StringNullableFilter<"LogConfig"> | string | null
  }, "id" | "key">

  export type LogConfigOrderByWithAggregationInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    updatedBy?: SortOrderInput | SortOrder
    _count?: LogConfigCountOrderByAggregateInput
    _max?: LogConfigMaxOrderByAggregateInput
    _min?: LogConfigMinOrderByAggregateInput
  }

  export type LogConfigScalarWhereWithAggregatesInput = {
    AND?: LogConfigScalarWhereWithAggregatesInput | LogConfigScalarWhereWithAggregatesInput[]
    OR?: LogConfigScalarWhereWithAggregatesInput[]
    NOT?: LogConfigScalarWhereWithAggregatesInput | LogConfigScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"LogConfig"> | string
    key?: StringWithAggregatesFilter<"LogConfig"> | string
    value?: JsonWithAggregatesFilter<"LogConfig">
    description?: StringNullableWithAggregatesFilter<"LogConfig"> | string | null
    updatedAt?: DateTimeWithAggregatesFilter<"LogConfig"> | Date | string
    updatedBy?: StringNullableWithAggregatesFilter<"LogConfig"> | string | null
  }

  export type LogAlertWhereInput = {
    AND?: LogAlertWhereInput | LogAlertWhereInput[]
    OR?: LogAlertWhereInput[]
    NOT?: LogAlertWhereInput | LogAlertWhereInput[]
    id?: UuidFilter<"LogAlert"> | string
    type?: EnumLogAlertTypeFilter<"LogAlert"> | $Enums.LogAlertType
    severity?: EnumLogAlertSeverityFilter<"LogAlert"> | $Enums.LogAlertSeverity
    message?: StringFilter<"LogAlert"> | string
    context?: JsonNullableFilter<"LogAlert">
    channels?: StringNullableListFilter<"LogAlert">
    status?: EnumLogAlertStatusFilter<"LogAlert"> | $Enums.LogAlertStatus
    errorMessage?: StringNullableFilter<"LogAlert"> | string | null
    traceId?: StringNullableFilter<"LogAlert"> | string | null
    logId?: UuidNullableFilter<"LogAlert"> | string | null
    acknowledgedAt?: DateTimeNullableFilter<"LogAlert"> | Date | string | null
    acknowledgedBy?: StringNullableFilter<"LogAlert"> | string | null
    createdAt?: DateTimeFilter<"LogAlert"> | Date | string
  }

  export type LogAlertOrderByWithRelationInput = {
    id?: SortOrder
    type?: SortOrder
    severity?: SortOrder
    message?: SortOrder
    context?: SortOrderInput | SortOrder
    channels?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    traceId?: SortOrderInput | SortOrder
    logId?: SortOrderInput | SortOrder
    acknowledgedAt?: SortOrderInput | SortOrder
    acknowledgedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
  }

  export type LogAlertWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: LogAlertWhereInput | LogAlertWhereInput[]
    OR?: LogAlertWhereInput[]
    NOT?: LogAlertWhereInput | LogAlertWhereInput[]
    type?: EnumLogAlertTypeFilter<"LogAlert"> | $Enums.LogAlertType
    severity?: EnumLogAlertSeverityFilter<"LogAlert"> | $Enums.LogAlertSeverity
    message?: StringFilter<"LogAlert"> | string
    context?: JsonNullableFilter<"LogAlert">
    channels?: StringNullableListFilter<"LogAlert">
    status?: EnumLogAlertStatusFilter<"LogAlert"> | $Enums.LogAlertStatus
    errorMessage?: StringNullableFilter<"LogAlert"> | string | null
    traceId?: StringNullableFilter<"LogAlert"> | string | null
    logId?: UuidNullableFilter<"LogAlert"> | string | null
    acknowledgedAt?: DateTimeNullableFilter<"LogAlert"> | Date | string | null
    acknowledgedBy?: StringNullableFilter<"LogAlert"> | string | null
    createdAt?: DateTimeFilter<"LogAlert"> | Date | string
  }, "id">

  export type LogAlertOrderByWithAggregationInput = {
    id?: SortOrder
    type?: SortOrder
    severity?: SortOrder
    message?: SortOrder
    context?: SortOrderInput | SortOrder
    channels?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    traceId?: SortOrderInput | SortOrder
    logId?: SortOrderInput | SortOrder
    acknowledgedAt?: SortOrderInput | SortOrder
    acknowledgedBy?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: LogAlertCountOrderByAggregateInput
    _max?: LogAlertMaxOrderByAggregateInput
    _min?: LogAlertMinOrderByAggregateInput
  }

  export type LogAlertScalarWhereWithAggregatesInput = {
    AND?: LogAlertScalarWhereWithAggregatesInput | LogAlertScalarWhereWithAggregatesInput[]
    OR?: LogAlertScalarWhereWithAggregatesInput[]
    NOT?: LogAlertScalarWhereWithAggregatesInput | LogAlertScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"LogAlert"> | string
    type?: EnumLogAlertTypeWithAggregatesFilter<"LogAlert"> | $Enums.LogAlertType
    severity?: EnumLogAlertSeverityWithAggregatesFilter<"LogAlert"> | $Enums.LogAlertSeverity
    message?: StringWithAggregatesFilter<"LogAlert"> | string
    context?: JsonNullableWithAggregatesFilter<"LogAlert">
    channels?: StringNullableListFilter<"LogAlert">
    status?: EnumLogAlertStatusWithAggregatesFilter<"LogAlert"> | $Enums.LogAlertStatus
    errorMessage?: StringNullableWithAggregatesFilter<"LogAlert"> | string | null
    traceId?: StringNullableWithAggregatesFilter<"LogAlert"> | string | null
    logId?: UuidNullableWithAggregatesFilter<"LogAlert"> | string | null
    acknowledgedAt?: DateTimeNullableWithAggregatesFilter<"LogAlert"> | Date | string | null
    acknowledgedBy?: StringNullableWithAggregatesFilter<"LogAlert"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"LogAlert"> | Date | string
  }

  export type LogCleanupRecordWhereInput = {
    AND?: LogCleanupRecordWhereInput | LogCleanupRecordWhereInput[]
    OR?: LogCleanupRecordWhereInput[]
    NOT?: LogCleanupRecordWhereInput | LogCleanupRecordWhereInput[]
    id?: UuidFilter<"LogCleanupRecord"> | string
    type?: StringFilter<"LogCleanupRecord"> | string
    olderThanDays?: IntFilter<"LogCleanupRecord"> | number
    dryRun?: BoolFilter<"LogCleanupRecord"> | boolean
    deletedCount?: IntFilter<"LogCleanupRecord"> | number
    freedBytes?: BigIntFilter<"LogCleanupRecord"> | bigint | number
    status?: StringFilter<"LogCleanupRecord"> | string
    errorMessage?: StringNullableFilter<"LogCleanupRecord"> | string | null
    startedAt?: DateTimeFilter<"LogCleanupRecord"> | Date | string
    completedAt?: DateTimeNullableFilter<"LogCleanupRecord"> | Date | string | null
  }

  export type LogCleanupRecordOrderByWithRelationInput = {
    id?: SortOrder
    type?: SortOrder
    olderThanDays?: SortOrder
    dryRun?: SortOrder
    deletedCount?: SortOrder
    freedBytes?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrderInput | SortOrder
  }

  export type LogCleanupRecordWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: LogCleanupRecordWhereInput | LogCleanupRecordWhereInput[]
    OR?: LogCleanupRecordWhereInput[]
    NOT?: LogCleanupRecordWhereInput | LogCleanupRecordWhereInput[]
    type?: StringFilter<"LogCleanupRecord"> | string
    olderThanDays?: IntFilter<"LogCleanupRecord"> | number
    dryRun?: BoolFilter<"LogCleanupRecord"> | boolean
    deletedCount?: IntFilter<"LogCleanupRecord"> | number
    freedBytes?: BigIntFilter<"LogCleanupRecord"> | bigint | number
    status?: StringFilter<"LogCleanupRecord"> | string
    errorMessage?: StringNullableFilter<"LogCleanupRecord"> | string | null
    startedAt?: DateTimeFilter<"LogCleanupRecord"> | Date | string
    completedAt?: DateTimeNullableFilter<"LogCleanupRecord"> | Date | string | null
  }, "id">

  export type LogCleanupRecordOrderByWithAggregationInput = {
    id?: SortOrder
    type?: SortOrder
    olderThanDays?: SortOrder
    dryRun?: SortOrder
    deletedCount?: SortOrder
    freedBytes?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrderInput | SortOrder
    _count?: LogCleanupRecordCountOrderByAggregateInput
    _avg?: LogCleanupRecordAvgOrderByAggregateInput
    _max?: LogCleanupRecordMaxOrderByAggregateInput
    _min?: LogCleanupRecordMinOrderByAggregateInput
    _sum?: LogCleanupRecordSumOrderByAggregateInput
  }

  export type LogCleanupRecordScalarWhereWithAggregatesInput = {
    AND?: LogCleanupRecordScalarWhereWithAggregatesInput | LogCleanupRecordScalarWhereWithAggregatesInput[]
    OR?: LogCleanupRecordScalarWhereWithAggregatesInput[]
    NOT?: LogCleanupRecordScalarWhereWithAggregatesInput | LogCleanupRecordScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"LogCleanupRecord"> | string
    type?: StringWithAggregatesFilter<"LogCleanupRecord"> | string
    olderThanDays?: IntWithAggregatesFilter<"LogCleanupRecord"> | number
    dryRun?: BoolWithAggregatesFilter<"LogCleanupRecord"> | boolean
    deletedCount?: IntWithAggregatesFilter<"LogCleanupRecord"> | number
    freedBytes?: BigIntWithAggregatesFilter<"LogCleanupRecord"> | bigint | number
    status?: StringWithAggregatesFilter<"LogCleanupRecord"> | string
    errorMessage?: StringNullableWithAggregatesFilter<"LogCleanupRecord"> | string | null
    startedAt?: DateTimeWithAggregatesFilter<"LogCleanupRecord"> | Date | string
    completedAt?: DateTimeNullableWithAggregatesFilter<"LogCleanupRecord"> | Date | string | null
  }

  export type CustomerWhereInput = {
    AND?: CustomerWhereInput | CustomerWhereInput[]
    OR?: CustomerWhereInput[]
    NOT?: CustomerWhereInput | CustomerWhereInput[]
    id?: UuidFilter<"Customer"> | string
    code?: StringFilter<"Customer"> | string
    name?: StringFilter<"Customer"> | string
    type?: EnumCustomerTypeFilter<"Customer"> | $Enums.CustomerType
    industry?: StringNullableFilter<"Customer"> | string | null
    countryCode?: StringNullableFilter<"Customer"> | string | null
    taxId?: StringNullableFilter<"Customer"> | string | null
    creditLimit?: DecimalNullableFilter<"Customer"> | Decimal | DecimalJsLike | number | string | null
    currencyCode?: StringNullableFilter<"Customer"> | string | null
    enabled?: BoolFilter<"Customer"> | boolean
    metadata?: JsonFilter<"Customer">
    organizationId?: UuidFilter<"Customer"> | string
    createdAt?: DateTimeFilter<"Customer"> | Date | string
    updatedAt?: DateTimeFilter<"Customer"> | Date | string
    createdById?: UuidFilter<"Customer"> | string
    deletedAt?: DateTimeNullableFilter<"Customer"> | Date | string | null
    contacts?: CustomerContactListRelationFilter
    addresses?: CustomerAddressListRelationFilter
    locations?: LocationListRelationFilter
  }

  export type CustomerOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    industry?: SortOrderInput | SortOrder
    countryCode?: SortOrderInput | SortOrder
    taxId?: SortOrderInput | SortOrder
    creditLimit?: SortOrderInput | SortOrder
    currencyCode?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    contacts?: CustomerContactOrderByRelationAggregateInput
    addresses?: CustomerAddressOrderByRelationAggregateInput
    locations?: LocationOrderByRelationAggregateInput
  }

  export type CustomerWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: CustomerWhereInput | CustomerWhereInput[]
    OR?: CustomerWhereInput[]
    NOT?: CustomerWhereInput | CustomerWhereInput[]
    name?: StringFilter<"Customer"> | string
    type?: EnumCustomerTypeFilter<"Customer"> | $Enums.CustomerType
    industry?: StringNullableFilter<"Customer"> | string | null
    countryCode?: StringNullableFilter<"Customer"> | string | null
    taxId?: StringNullableFilter<"Customer"> | string | null
    creditLimit?: DecimalNullableFilter<"Customer"> | Decimal | DecimalJsLike | number | string | null
    currencyCode?: StringNullableFilter<"Customer"> | string | null
    enabled?: BoolFilter<"Customer"> | boolean
    metadata?: JsonFilter<"Customer">
    organizationId?: UuidFilter<"Customer"> | string
    createdAt?: DateTimeFilter<"Customer"> | Date | string
    updatedAt?: DateTimeFilter<"Customer"> | Date | string
    createdById?: UuidFilter<"Customer"> | string
    deletedAt?: DateTimeNullableFilter<"Customer"> | Date | string | null
    contacts?: CustomerContactListRelationFilter
    addresses?: CustomerAddressListRelationFilter
    locations?: LocationListRelationFilter
  }, "id" | "code">

  export type CustomerOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    industry?: SortOrderInput | SortOrder
    countryCode?: SortOrderInput | SortOrder
    taxId?: SortOrderInput | SortOrder
    creditLimit?: SortOrderInput | SortOrder
    currencyCode?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: CustomerCountOrderByAggregateInput
    _avg?: CustomerAvgOrderByAggregateInput
    _max?: CustomerMaxOrderByAggregateInput
    _min?: CustomerMinOrderByAggregateInput
    _sum?: CustomerSumOrderByAggregateInput
  }

  export type CustomerScalarWhereWithAggregatesInput = {
    AND?: CustomerScalarWhereWithAggregatesInput | CustomerScalarWhereWithAggregatesInput[]
    OR?: CustomerScalarWhereWithAggregatesInput[]
    NOT?: CustomerScalarWhereWithAggregatesInput | CustomerScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Customer"> | string
    code?: StringWithAggregatesFilter<"Customer"> | string
    name?: StringWithAggregatesFilter<"Customer"> | string
    type?: EnumCustomerTypeWithAggregatesFilter<"Customer"> | $Enums.CustomerType
    industry?: StringNullableWithAggregatesFilter<"Customer"> | string | null
    countryCode?: StringNullableWithAggregatesFilter<"Customer"> | string | null
    taxId?: StringNullableWithAggregatesFilter<"Customer"> | string | null
    creditLimit?: DecimalNullableWithAggregatesFilter<"Customer"> | Decimal | DecimalJsLike | number | string | null
    currencyCode?: StringNullableWithAggregatesFilter<"Customer"> | string | null
    enabled?: BoolWithAggregatesFilter<"Customer"> | boolean
    metadata?: JsonWithAggregatesFilter<"Customer">
    organizationId?: UuidWithAggregatesFilter<"Customer"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Customer"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Customer"> | Date | string
    createdById?: UuidWithAggregatesFilter<"Customer"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Customer"> | Date | string | null
  }

  export type CustomerContactWhereInput = {
    AND?: CustomerContactWhereInput | CustomerContactWhereInput[]
    OR?: CustomerContactWhereInput[]
    NOT?: CustomerContactWhereInput | CustomerContactWhereInput[]
    id?: UuidFilter<"CustomerContact"> | string
    customerId?: UuidFilter<"CustomerContact"> | string
    name?: StringFilter<"CustomerContact"> | string
    role?: StringNullableFilter<"CustomerContact"> | string | null
    phone?: StringNullableFilter<"CustomerContact"> | string | null
    email?: StringNullableFilter<"CustomerContact"> | string | null
    isPrimary?: BoolFilter<"CustomerContact"> | boolean
    createdAt?: DateTimeFilter<"CustomerContact"> | Date | string
    updatedAt?: DateTimeFilter<"CustomerContact"> | Date | string
    customer?: XOR<CustomerScalarRelationFilter, CustomerWhereInput>
  }

  export type CustomerContactOrderByWithRelationInput = {
    id?: SortOrder
    customerId?: SortOrder
    name?: SortOrder
    role?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    email?: SortOrderInput | SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    customer?: CustomerOrderByWithRelationInput
  }

  export type CustomerContactWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: CustomerContactWhereInput | CustomerContactWhereInput[]
    OR?: CustomerContactWhereInput[]
    NOT?: CustomerContactWhereInput | CustomerContactWhereInput[]
    customerId?: UuidFilter<"CustomerContact"> | string
    name?: StringFilter<"CustomerContact"> | string
    role?: StringNullableFilter<"CustomerContact"> | string | null
    phone?: StringNullableFilter<"CustomerContact"> | string | null
    email?: StringNullableFilter<"CustomerContact"> | string | null
    isPrimary?: BoolFilter<"CustomerContact"> | boolean
    createdAt?: DateTimeFilter<"CustomerContact"> | Date | string
    updatedAt?: DateTimeFilter<"CustomerContact"> | Date | string
    customer?: XOR<CustomerScalarRelationFilter, CustomerWhereInput>
  }, "id">

  export type CustomerContactOrderByWithAggregationInput = {
    id?: SortOrder
    customerId?: SortOrder
    name?: SortOrder
    role?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    email?: SortOrderInput | SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: CustomerContactCountOrderByAggregateInput
    _max?: CustomerContactMaxOrderByAggregateInput
    _min?: CustomerContactMinOrderByAggregateInput
  }

  export type CustomerContactScalarWhereWithAggregatesInput = {
    AND?: CustomerContactScalarWhereWithAggregatesInput | CustomerContactScalarWhereWithAggregatesInput[]
    OR?: CustomerContactScalarWhereWithAggregatesInput[]
    NOT?: CustomerContactScalarWhereWithAggregatesInput | CustomerContactScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"CustomerContact"> | string
    customerId?: UuidWithAggregatesFilter<"CustomerContact"> | string
    name?: StringWithAggregatesFilter<"CustomerContact"> | string
    role?: StringNullableWithAggregatesFilter<"CustomerContact"> | string | null
    phone?: StringNullableWithAggregatesFilter<"CustomerContact"> | string | null
    email?: StringNullableWithAggregatesFilter<"CustomerContact"> | string | null
    isPrimary?: BoolWithAggregatesFilter<"CustomerContact"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"CustomerContact"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"CustomerContact"> | Date | string
  }

  export type CustomerAddressWhereInput = {
    AND?: CustomerAddressWhereInput | CustomerAddressWhereInput[]
    OR?: CustomerAddressWhereInput[]
    NOT?: CustomerAddressWhereInput | CustomerAddressWhereInput[]
    id?: UuidFilter<"CustomerAddress"> | string
    customerId?: UuidFilter<"CustomerAddress"> | string
    addressType?: StringFilter<"CustomerAddress"> | string
    line1?: StringFilter<"CustomerAddress"> | string
    line2?: StringNullableFilter<"CustomerAddress"> | string | null
    city?: StringNullableFilter<"CustomerAddress"> | string | null
    state?: StringNullableFilter<"CustomerAddress"> | string | null
    postalCode?: StringNullableFilter<"CustomerAddress"> | string | null
    countryCode?: StringNullableFilter<"CustomerAddress"> | string | null
    isDefault?: BoolFilter<"CustomerAddress"> | boolean
    createdAt?: DateTimeFilter<"CustomerAddress"> | Date | string
    updatedAt?: DateTimeFilter<"CustomerAddress"> | Date | string
    customer?: XOR<CustomerScalarRelationFilter, CustomerWhereInput>
  }

  export type CustomerAddressOrderByWithRelationInput = {
    id?: SortOrder
    customerId?: SortOrder
    addressType?: SortOrder
    line1?: SortOrder
    line2?: SortOrderInput | SortOrder
    city?: SortOrderInput | SortOrder
    state?: SortOrderInput | SortOrder
    postalCode?: SortOrderInput | SortOrder
    countryCode?: SortOrderInput | SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    customer?: CustomerOrderByWithRelationInput
  }

  export type CustomerAddressWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: CustomerAddressWhereInput | CustomerAddressWhereInput[]
    OR?: CustomerAddressWhereInput[]
    NOT?: CustomerAddressWhereInput | CustomerAddressWhereInput[]
    customerId?: UuidFilter<"CustomerAddress"> | string
    addressType?: StringFilter<"CustomerAddress"> | string
    line1?: StringFilter<"CustomerAddress"> | string
    line2?: StringNullableFilter<"CustomerAddress"> | string | null
    city?: StringNullableFilter<"CustomerAddress"> | string | null
    state?: StringNullableFilter<"CustomerAddress"> | string | null
    postalCode?: StringNullableFilter<"CustomerAddress"> | string | null
    countryCode?: StringNullableFilter<"CustomerAddress"> | string | null
    isDefault?: BoolFilter<"CustomerAddress"> | boolean
    createdAt?: DateTimeFilter<"CustomerAddress"> | Date | string
    updatedAt?: DateTimeFilter<"CustomerAddress"> | Date | string
    customer?: XOR<CustomerScalarRelationFilter, CustomerWhereInput>
  }, "id">

  export type CustomerAddressOrderByWithAggregationInput = {
    id?: SortOrder
    customerId?: SortOrder
    addressType?: SortOrder
    line1?: SortOrder
    line2?: SortOrderInput | SortOrder
    city?: SortOrderInput | SortOrder
    state?: SortOrderInput | SortOrder
    postalCode?: SortOrderInput | SortOrder
    countryCode?: SortOrderInput | SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: CustomerAddressCountOrderByAggregateInput
    _max?: CustomerAddressMaxOrderByAggregateInput
    _min?: CustomerAddressMinOrderByAggregateInput
  }

  export type CustomerAddressScalarWhereWithAggregatesInput = {
    AND?: CustomerAddressScalarWhereWithAggregatesInput | CustomerAddressScalarWhereWithAggregatesInput[]
    OR?: CustomerAddressScalarWhereWithAggregatesInput[]
    NOT?: CustomerAddressScalarWhereWithAggregatesInput | CustomerAddressScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"CustomerAddress"> | string
    customerId?: UuidWithAggregatesFilter<"CustomerAddress"> | string
    addressType?: StringWithAggregatesFilter<"CustomerAddress"> | string
    line1?: StringWithAggregatesFilter<"CustomerAddress"> | string
    line2?: StringNullableWithAggregatesFilter<"CustomerAddress"> | string | null
    city?: StringNullableWithAggregatesFilter<"CustomerAddress"> | string | null
    state?: StringNullableWithAggregatesFilter<"CustomerAddress"> | string | null
    postalCode?: StringNullableWithAggregatesFilter<"CustomerAddress"> | string | null
    countryCode?: StringNullableWithAggregatesFilter<"CustomerAddress"> | string | null
    isDefault?: BoolWithAggregatesFilter<"CustomerAddress"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"CustomerAddress"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"CustomerAddress"> | Date | string
  }

  export type SupplierWhereInput = {
    AND?: SupplierWhereInput | SupplierWhereInput[]
    OR?: SupplierWhereInput[]
    NOT?: SupplierWhereInput | SupplierWhereInput[]
    id?: UuidFilter<"Supplier"> | string
    code?: StringFilter<"Supplier"> | string
    name?: StringFilter<"Supplier"> | string
    type?: EnumSupplierTypeFilter<"Supplier"> | $Enums.SupplierType
    countryCode?: StringNullableFilter<"Supplier"> | string | null
    currencyCode?: StringNullableFilter<"Supplier"> | string | null
    paymentTerms?: StringNullableFilter<"Supplier"> | string | null
    leadTimeDays?: IntNullableFilter<"Supplier"> | number | null
    enabled?: BoolFilter<"Supplier"> | boolean
    metadata?: JsonFilter<"Supplier">
    organizationId?: UuidFilter<"Supplier"> | string
    createdAt?: DateTimeFilter<"Supplier"> | Date | string
    updatedAt?: DateTimeFilter<"Supplier"> | Date | string
    createdById?: UuidFilter<"Supplier"> | string
    deletedAt?: DateTimeNullableFilter<"Supplier"> | Date | string | null
    contacts?: SupplierContactListRelationFilter
  }

  export type SupplierOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrderInput | SortOrder
    currencyCode?: SortOrderInput | SortOrder
    paymentTerms?: SortOrderInput | SortOrder
    leadTimeDays?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    contacts?: SupplierContactOrderByRelationAggregateInput
  }

  export type SupplierWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: SupplierWhereInput | SupplierWhereInput[]
    OR?: SupplierWhereInput[]
    NOT?: SupplierWhereInput | SupplierWhereInput[]
    name?: StringFilter<"Supplier"> | string
    type?: EnumSupplierTypeFilter<"Supplier"> | $Enums.SupplierType
    countryCode?: StringNullableFilter<"Supplier"> | string | null
    currencyCode?: StringNullableFilter<"Supplier"> | string | null
    paymentTerms?: StringNullableFilter<"Supplier"> | string | null
    leadTimeDays?: IntNullableFilter<"Supplier"> | number | null
    enabled?: BoolFilter<"Supplier"> | boolean
    metadata?: JsonFilter<"Supplier">
    organizationId?: UuidFilter<"Supplier"> | string
    createdAt?: DateTimeFilter<"Supplier"> | Date | string
    updatedAt?: DateTimeFilter<"Supplier"> | Date | string
    createdById?: UuidFilter<"Supplier"> | string
    deletedAt?: DateTimeNullableFilter<"Supplier"> | Date | string | null
    contacts?: SupplierContactListRelationFilter
  }, "id" | "code">

  export type SupplierOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrderInput | SortOrder
    currencyCode?: SortOrderInput | SortOrder
    paymentTerms?: SortOrderInput | SortOrder
    leadTimeDays?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: SupplierCountOrderByAggregateInput
    _avg?: SupplierAvgOrderByAggregateInput
    _max?: SupplierMaxOrderByAggregateInput
    _min?: SupplierMinOrderByAggregateInput
    _sum?: SupplierSumOrderByAggregateInput
  }

  export type SupplierScalarWhereWithAggregatesInput = {
    AND?: SupplierScalarWhereWithAggregatesInput | SupplierScalarWhereWithAggregatesInput[]
    OR?: SupplierScalarWhereWithAggregatesInput[]
    NOT?: SupplierScalarWhereWithAggregatesInput | SupplierScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Supplier"> | string
    code?: StringWithAggregatesFilter<"Supplier"> | string
    name?: StringWithAggregatesFilter<"Supplier"> | string
    type?: EnumSupplierTypeWithAggregatesFilter<"Supplier"> | $Enums.SupplierType
    countryCode?: StringNullableWithAggregatesFilter<"Supplier"> | string | null
    currencyCode?: StringNullableWithAggregatesFilter<"Supplier"> | string | null
    paymentTerms?: StringNullableWithAggregatesFilter<"Supplier"> | string | null
    leadTimeDays?: IntNullableWithAggregatesFilter<"Supplier"> | number | null
    enabled?: BoolWithAggregatesFilter<"Supplier"> | boolean
    metadata?: JsonWithAggregatesFilter<"Supplier">
    organizationId?: UuidWithAggregatesFilter<"Supplier"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Supplier"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Supplier"> | Date | string
    createdById?: UuidWithAggregatesFilter<"Supplier"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Supplier"> | Date | string | null
  }

  export type SupplierContactWhereInput = {
    AND?: SupplierContactWhereInput | SupplierContactWhereInput[]
    OR?: SupplierContactWhereInput[]
    NOT?: SupplierContactWhereInput | SupplierContactWhereInput[]
    id?: UuidFilter<"SupplierContact"> | string
    supplierId?: UuidFilter<"SupplierContact"> | string
    name?: StringFilter<"SupplierContact"> | string
    role?: StringNullableFilter<"SupplierContact"> | string | null
    phone?: StringNullableFilter<"SupplierContact"> | string | null
    email?: StringNullableFilter<"SupplierContact"> | string | null
    isPrimary?: BoolFilter<"SupplierContact"> | boolean
    createdAt?: DateTimeFilter<"SupplierContact"> | Date | string
    updatedAt?: DateTimeFilter<"SupplierContact"> | Date | string
    supplier?: XOR<SupplierScalarRelationFilter, SupplierWhereInput>
  }

  export type SupplierContactOrderByWithRelationInput = {
    id?: SortOrder
    supplierId?: SortOrder
    name?: SortOrder
    role?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    email?: SortOrderInput | SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    supplier?: SupplierOrderByWithRelationInput
  }

  export type SupplierContactWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SupplierContactWhereInput | SupplierContactWhereInput[]
    OR?: SupplierContactWhereInput[]
    NOT?: SupplierContactWhereInput | SupplierContactWhereInput[]
    supplierId?: UuidFilter<"SupplierContact"> | string
    name?: StringFilter<"SupplierContact"> | string
    role?: StringNullableFilter<"SupplierContact"> | string | null
    phone?: StringNullableFilter<"SupplierContact"> | string | null
    email?: StringNullableFilter<"SupplierContact"> | string | null
    isPrimary?: BoolFilter<"SupplierContact"> | boolean
    createdAt?: DateTimeFilter<"SupplierContact"> | Date | string
    updatedAt?: DateTimeFilter<"SupplierContact"> | Date | string
    supplier?: XOR<SupplierScalarRelationFilter, SupplierWhereInput>
  }, "id">

  export type SupplierContactOrderByWithAggregationInput = {
    id?: SortOrder
    supplierId?: SortOrder
    name?: SortOrder
    role?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    email?: SortOrderInput | SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SupplierContactCountOrderByAggregateInput
    _max?: SupplierContactMaxOrderByAggregateInput
    _min?: SupplierContactMinOrderByAggregateInput
  }

  export type SupplierContactScalarWhereWithAggregatesInput = {
    AND?: SupplierContactScalarWhereWithAggregatesInput | SupplierContactScalarWhereWithAggregatesInput[]
    OR?: SupplierContactScalarWhereWithAggregatesInput[]
    NOT?: SupplierContactScalarWhereWithAggregatesInput | SupplierContactScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SupplierContact"> | string
    supplierId?: UuidWithAggregatesFilter<"SupplierContact"> | string
    name?: StringWithAggregatesFilter<"SupplierContact"> | string
    role?: StringNullableWithAggregatesFilter<"SupplierContact"> | string | null
    phone?: StringNullableWithAggregatesFilter<"SupplierContact"> | string | null
    email?: StringNullableWithAggregatesFilter<"SupplierContact"> | string | null
    isPrimary?: BoolWithAggregatesFilter<"SupplierContact"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"SupplierContact"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SupplierContact"> | Date | string
  }

  export type PartnerWhereInput = {
    AND?: PartnerWhereInput | PartnerWhereInput[]
    OR?: PartnerWhereInput[]
    NOT?: PartnerWhereInput | PartnerWhereInput[]
    id?: UuidFilter<"Partner"> | string
    code?: StringFilter<"Partner"> | string
    name?: StringFilter<"Partner"> | string
    role?: EnumPartnerRoleFilter<"Partner"> | $Enums.PartnerRole
    countryCode?: StringNullableFilter<"Partner"> | string | null
    currencyCode?: StringNullableFilter<"Partner"> | string | null
    enabled?: BoolFilter<"Partner"> | boolean
    metadata?: JsonFilter<"Partner">
    organizationId?: UuidFilter<"Partner"> | string
    createdAt?: DateTimeFilter<"Partner"> | Date | string
    updatedAt?: DateTimeFilter<"Partner"> | Date | string
    createdById?: UuidFilter<"Partner"> | string
    deletedAt?: DateTimeNullableFilter<"Partner"> | Date | string | null
    contacts?: PartnerContactListRelationFilter
  }

  export type PartnerOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    role?: SortOrder
    countryCode?: SortOrderInput | SortOrder
    currencyCode?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    contacts?: PartnerContactOrderByRelationAggregateInput
  }

  export type PartnerWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: PartnerWhereInput | PartnerWhereInput[]
    OR?: PartnerWhereInput[]
    NOT?: PartnerWhereInput | PartnerWhereInput[]
    name?: StringFilter<"Partner"> | string
    role?: EnumPartnerRoleFilter<"Partner"> | $Enums.PartnerRole
    countryCode?: StringNullableFilter<"Partner"> | string | null
    currencyCode?: StringNullableFilter<"Partner"> | string | null
    enabled?: BoolFilter<"Partner"> | boolean
    metadata?: JsonFilter<"Partner">
    organizationId?: UuidFilter<"Partner"> | string
    createdAt?: DateTimeFilter<"Partner"> | Date | string
    updatedAt?: DateTimeFilter<"Partner"> | Date | string
    createdById?: UuidFilter<"Partner"> | string
    deletedAt?: DateTimeNullableFilter<"Partner"> | Date | string | null
    contacts?: PartnerContactListRelationFilter
  }, "id" | "code">

  export type PartnerOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    role?: SortOrder
    countryCode?: SortOrderInput | SortOrder
    currencyCode?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: PartnerCountOrderByAggregateInput
    _max?: PartnerMaxOrderByAggregateInput
    _min?: PartnerMinOrderByAggregateInput
  }

  export type PartnerScalarWhereWithAggregatesInput = {
    AND?: PartnerScalarWhereWithAggregatesInput | PartnerScalarWhereWithAggregatesInput[]
    OR?: PartnerScalarWhereWithAggregatesInput[]
    NOT?: PartnerScalarWhereWithAggregatesInput | PartnerScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Partner"> | string
    code?: StringWithAggregatesFilter<"Partner"> | string
    name?: StringWithAggregatesFilter<"Partner"> | string
    role?: EnumPartnerRoleWithAggregatesFilter<"Partner"> | $Enums.PartnerRole
    countryCode?: StringNullableWithAggregatesFilter<"Partner"> | string | null
    currencyCode?: StringNullableWithAggregatesFilter<"Partner"> | string | null
    enabled?: BoolWithAggregatesFilter<"Partner"> | boolean
    metadata?: JsonWithAggregatesFilter<"Partner">
    organizationId?: UuidWithAggregatesFilter<"Partner"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Partner"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Partner"> | Date | string
    createdById?: UuidWithAggregatesFilter<"Partner"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Partner"> | Date | string | null
  }

  export type PartnerContactWhereInput = {
    AND?: PartnerContactWhereInput | PartnerContactWhereInput[]
    OR?: PartnerContactWhereInput[]
    NOT?: PartnerContactWhereInput | PartnerContactWhereInput[]
    id?: UuidFilter<"PartnerContact"> | string
    partnerId?: UuidFilter<"PartnerContact"> | string
    name?: StringFilter<"PartnerContact"> | string
    role?: StringNullableFilter<"PartnerContact"> | string | null
    phone?: StringNullableFilter<"PartnerContact"> | string | null
    email?: StringNullableFilter<"PartnerContact"> | string | null
    isPrimary?: BoolFilter<"PartnerContact"> | boolean
    createdAt?: DateTimeFilter<"PartnerContact"> | Date | string
    updatedAt?: DateTimeFilter<"PartnerContact"> | Date | string
    partner?: XOR<PartnerScalarRelationFilter, PartnerWhereInput>
  }

  export type PartnerContactOrderByWithRelationInput = {
    id?: SortOrder
    partnerId?: SortOrder
    name?: SortOrder
    role?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    email?: SortOrderInput | SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    partner?: PartnerOrderByWithRelationInput
  }

  export type PartnerContactWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: PartnerContactWhereInput | PartnerContactWhereInput[]
    OR?: PartnerContactWhereInput[]
    NOT?: PartnerContactWhereInput | PartnerContactWhereInput[]
    partnerId?: UuidFilter<"PartnerContact"> | string
    name?: StringFilter<"PartnerContact"> | string
    role?: StringNullableFilter<"PartnerContact"> | string | null
    phone?: StringNullableFilter<"PartnerContact"> | string | null
    email?: StringNullableFilter<"PartnerContact"> | string | null
    isPrimary?: BoolFilter<"PartnerContact"> | boolean
    createdAt?: DateTimeFilter<"PartnerContact"> | Date | string
    updatedAt?: DateTimeFilter<"PartnerContact"> | Date | string
    partner?: XOR<PartnerScalarRelationFilter, PartnerWhereInput>
  }, "id">

  export type PartnerContactOrderByWithAggregationInput = {
    id?: SortOrder
    partnerId?: SortOrder
    name?: SortOrder
    role?: SortOrderInput | SortOrder
    phone?: SortOrderInput | SortOrder
    email?: SortOrderInput | SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: PartnerContactCountOrderByAggregateInput
    _max?: PartnerContactMaxOrderByAggregateInput
    _min?: PartnerContactMinOrderByAggregateInput
  }

  export type PartnerContactScalarWhereWithAggregatesInput = {
    AND?: PartnerContactScalarWhereWithAggregatesInput | PartnerContactScalarWhereWithAggregatesInput[]
    OR?: PartnerContactScalarWhereWithAggregatesInput[]
    NOT?: PartnerContactScalarWhereWithAggregatesInput | PartnerContactScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PartnerContact"> | string
    partnerId?: UuidWithAggregatesFilter<"PartnerContact"> | string
    name?: StringWithAggregatesFilter<"PartnerContact"> | string
    role?: StringNullableWithAggregatesFilter<"PartnerContact"> | string | null
    phone?: StringNullableWithAggregatesFilter<"PartnerContact"> | string | null
    email?: StringNullableWithAggregatesFilter<"PartnerContact"> | string | null
    isPrimary?: BoolWithAggregatesFilter<"PartnerContact"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"PartnerContact"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PartnerContact"> | Date | string
  }

  export type LocationWhereInput = {
    AND?: LocationWhereInput | LocationWhereInput[]
    OR?: LocationWhereInput[]
    NOT?: LocationWhereInput | LocationWhereInput[]
    id?: UuidFilter<"Location"> | string
    code?: StringFilter<"Location"> | string
    name?: StringFilter<"Location"> | string
    type?: EnumLocationTypeFilter<"Location"> | $Enums.LocationType
    countryCode?: StringNullableFilter<"Location"> | string | null
    address?: StringNullableFilter<"Location"> | string | null
    latitude?: DecimalNullableFilter<"Location"> | Decimal | DecimalJsLike | number | string | null
    longitude?: DecimalNullableFilter<"Location"> | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: UuidNullableFilter<"Location"> | string | null
    customerId?: UuidNullableFilter<"Location"> | string | null
    enabled?: BoolFilter<"Location"> | boolean
    metadata?: JsonFilter<"Location">
    organizationId?: UuidFilter<"Location"> | string
    createdAt?: DateTimeFilter<"Location"> | Date | string
    updatedAt?: DateTimeFilter<"Location"> | Date | string
    createdById?: UuidFilter<"Location"> | string
    deletedAt?: DateTimeNullableFilter<"Location"> | Date | string | null
    parent?: XOR<LocationNullableScalarRelationFilter, LocationWhereInput> | null
    children?: LocationListRelationFilter
    customer?: XOR<CustomerNullableScalarRelationFilter, CustomerWhereInput> | null
  }

  export type LocationOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    latitude?: SortOrderInput | SortOrder
    longitude?: SortOrderInput | SortOrder
    parentLocationId?: SortOrderInput | SortOrder
    customerId?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    parent?: LocationOrderByWithRelationInput
    children?: LocationOrderByRelationAggregateInput
    customer?: CustomerOrderByWithRelationInput
  }

  export type LocationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: LocationWhereInput | LocationWhereInput[]
    OR?: LocationWhereInput[]
    NOT?: LocationWhereInput | LocationWhereInput[]
    name?: StringFilter<"Location"> | string
    type?: EnumLocationTypeFilter<"Location"> | $Enums.LocationType
    countryCode?: StringNullableFilter<"Location"> | string | null
    address?: StringNullableFilter<"Location"> | string | null
    latitude?: DecimalNullableFilter<"Location"> | Decimal | DecimalJsLike | number | string | null
    longitude?: DecimalNullableFilter<"Location"> | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: UuidNullableFilter<"Location"> | string | null
    customerId?: UuidNullableFilter<"Location"> | string | null
    enabled?: BoolFilter<"Location"> | boolean
    metadata?: JsonFilter<"Location">
    organizationId?: UuidFilter<"Location"> | string
    createdAt?: DateTimeFilter<"Location"> | Date | string
    updatedAt?: DateTimeFilter<"Location"> | Date | string
    createdById?: UuidFilter<"Location"> | string
    deletedAt?: DateTimeNullableFilter<"Location"> | Date | string | null
    parent?: XOR<LocationNullableScalarRelationFilter, LocationWhereInput> | null
    children?: LocationListRelationFilter
    customer?: XOR<CustomerNullableScalarRelationFilter, CustomerWhereInput> | null
  }, "id" | "code">

  export type LocationOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    latitude?: SortOrderInput | SortOrder
    longitude?: SortOrderInput | SortOrder
    parentLocationId?: SortOrderInput | SortOrder
    customerId?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: LocationCountOrderByAggregateInput
    _avg?: LocationAvgOrderByAggregateInput
    _max?: LocationMaxOrderByAggregateInput
    _min?: LocationMinOrderByAggregateInput
    _sum?: LocationSumOrderByAggregateInput
  }

  export type LocationScalarWhereWithAggregatesInput = {
    AND?: LocationScalarWhereWithAggregatesInput | LocationScalarWhereWithAggregatesInput[]
    OR?: LocationScalarWhereWithAggregatesInput[]
    NOT?: LocationScalarWhereWithAggregatesInput | LocationScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Location"> | string
    code?: StringWithAggregatesFilter<"Location"> | string
    name?: StringWithAggregatesFilter<"Location"> | string
    type?: EnumLocationTypeWithAggregatesFilter<"Location"> | $Enums.LocationType
    countryCode?: StringNullableWithAggregatesFilter<"Location"> | string | null
    address?: StringNullableWithAggregatesFilter<"Location"> | string | null
    latitude?: DecimalNullableWithAggregatesFilter<"Location"> | Decimal | DecimalJsLike | number | string | null
    longitude?: DecimalNullableWithAggregatesFilter<"Location"> | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: UuidNullableWithAggregatesFilter<"Location"> | string | null
    customerId?: UuidNullableWithAggregatesFilter<"Location"> | string | null
    enabled?: BoolWithAggregatesFilter<"Location"> | boolean
    metadata?: JsonWithAggregatesFilter<"Location">
    organizationId?: UuidWithAggregatesFilter<"Location"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Location"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Location"> | Date | string
    createdById?: UuidWithAggregatesFilter<"Location"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Location"> | Date | string | null
  }

  export type AttachmentWhereInput = {
    AND?: AttachmentWhereInput | AttachmentWhereInput[]
    OR?: AttachmentWhereInput[]
    NOT?: AttachmentWhereInput | AttachmentWhereInput[]
    id?: UuidFilter<"Attachment"> | string
    ownerType?: StringFilter<"Attachment"> | string
    ownerId?: UuidFilter<"Attachment"> | string
    category?: StringNullableFilter<"Attachment"> | string | null
    filename?: StringFilter<"Attachment"> | string
    mimeType?: StringFilter<"Attachment"> | string
    size?: IntFilter<"Attachment"> | number
    storagePath?: StringFilter<"Attachment"> | string
    organizationId?: UuidFilter<"Attachment"> | string
    uploadedById?: UuidFilter<"Attachment"> | string
    uploadedAt?: DateTimeFilter<"Attachment"> | Date | string
    createdAt?: DateTimeFilter<"Attachment"> | Date | string
    updatedAt?: DateTimeFilter<"Attachment"> | Date | string
    createdById?: UuidFilter<"Attachment"> | string
    deletedAt?: DateTimeNullableFilter<"Attachment"> | Date | string | null
  }

  export type AttachmentOrderByWithRelationInput = {
    id?: SortOrder
    ownerType?: SortOrder
    ownerId?: SortOrder
    category?: SortOrderInput | SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    organizationId?: SortOrder
    uploadedById?: SortOrder
    uploadedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
  }

  export type AttachmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AttachmentWhereInput | AttachmentWhereInput[]
    OR?: AttachmentWhereInput[]
    NOT?: AttachmentWhereInput | AttachmentWhereInput[]
    ownerType?: StringFilter<"Attachment"> | string
    ownerId?: UuidFilter<"Attachment"> | string
    category?: StringNullableFilter<"Attachment"> | string | null
    filename?: StringFilter<"Attachment"> | string
    mimeType?: StringFilter<"Attachment"> | string
    size?: IntFilter<"Attachment"> | number
    storagePath?: StringFilter<"Attachment"> | string
    organizationId?: UuidFilter<"Attachment"> | string
    uploadedById?: UuidFilter<"Attachment"> | string
    uploadedAt?: DateTimeFilter<"Attachment"> | Date | string
    createdAt?: DateTimeFilter<"Attachment"> | Date | string
    updatedAt?: DateTimeFilter<"Attachment"> | Date | string
    createdById?: UuidFilter<"Attachment"> | string
    deletedAt?: DateTimeNullableFilter<"Attachment"> | Date | string | null
  }, "id">

  export type AttachmentOrderByWithAggregationInput = {
    id?: SortOrder
    ownerType?: SortOrder
    ownerId?: SortOrder
    category?: SortOrderInput | SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    organizationId?: SortOrder
    uploadedById?: SortOrder
    uploadedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: AttachmentCountOrderByAggregateInput
    _avg?: AttachmentAvgOrderByAggregateInput
    _max?: AttachmentMaxOrderByAggregateInput
    _min?: AttachmentMinOrderByAggregateInput
    _sum?: AttachmentSumOrderByAggregateInput
  }

  export type AttachmentScalarWhereWithAggregatesInput = {
    AND?: AttachmentScalarWhereWithAggregatesInput | AttachmentScalarWhereWithAggregatesInput[]
    OR?: AttachmentScalarWhereWithAggregatesInput[]
    NOT?: AttachmentScalarWhereWithAggregatesInput | AttachmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Attachment"> | string
    ownerType?: StringWithAggregatesFilter<"Attachment"> | string
    ownerId?: UuidWithAggregatesFilter<"Attachment"> | string
    category?: StringNullableWithAggregatesFilter<"Attachment"> | string | null
    filename?: StringWithAggregatesFilter<"Attachment"> | string
    mimeType?: StringWithAggregatesFilter<"Attachment"> | string
    size?: IntWithAggregatesFilter<"Attachment"> | number
    storagePath?: StringWithAggregatesFilter<"Attachment"> | string
    organizationId?: UuidWithAggregatesFilter<"Attachment"> | string
    uploadedById?: UuidWithAggregatesFilter<"Attachment"> | string
    uploadedAt?: DateTimeWithAggregatesFilter<"Attachment"> | Date | string
    createdAt?: DateTimeWithAggregatesFilter<"Attachment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Attachment"> | Date | string
    createdById?: UuidWithAggregatesFilter<"Attachment"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Attachment"> | Date | string | null
  }

  export type CurrencyWhereInput = {
    AND?: CurrencyWhereInput | CurrencyWhereInput[]
    OR?: CurrencyWhereInput[]
    NOT?: CurrencyWhereInput | CurrencyWhereInput[]
    id?: UuidFilter<"Currency"> | string
    code?: StringFilter<"Currency"> | string
    name?: StringFilter<"Currency"> | string
    symbol?: StringNullableFilter<"Currency"> | string | null
    decimals?: IntFilter<"Currency"> | number
    enabled?: BoolFilter<"Currency"> | boolean
    organizationId?: UuidNullableFilter<"Currency"> | string | null
    createdAt?: DateTimeFilter<"Currency"> | Date | string
    updatedAt?: DateTimeFilter<"Currency"> | Date | string
    createdById?: UuidNullableFilter<"Currency"> | string | null
  }

  export type CurrencyOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    symbol?: SortOrderInput | SortOrder
    decimals?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
  }

  export type CurrencyWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: CurrencyWhereInput | CurrencyWhereInput[]
    OR?: CurrencyWhereInput[]
    NOT?: CurrencyWhereInput | CurrencyWhereInput[]
    name?: StringFilter<"Currency"> | string
    symbol?: StringNullableFilter<"Currency"> | string | null
    decimals?: IntFilter<"Currency"> | number
    enabled?: BoolFilter<"Currency"> | boolean
    organizationId?: UuidNullableFilter<"Currency"> | string | null
    createdAt?: DateTimeFilter<"Currency"> | Date | string
    updatedAt?: DateTimeFilter<"Currency"> | Date | string
    createdById?: UuidNullableFilter<"Currency"> | string | null
  }, "id" | "code">

  export type CurrencyOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    symbol?: SortOrderInput | SortOrder
    decimals?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
    _count?: CurrencyCountOrderByAggregateInput
    _avg?: CurrencyAvgOrderByAggregateInput
    _max?: CurrencyMaxOrderByAggregateInput
    _min?: CurrencyMinOrderByAggregateInput
    _sum?: CurrencySumOrderByAggregateInput
  }

  export type CurrencyScalarWhereWithAggregatesInput = {
    AND?: CurrencyScalarWhereWithAggregatesInput | CurrencyScalarWhereWithAggregatesInput[]
    OR?: CurrencyScalarWhereWithAggregatesInput[]
    NOT?: CurrencyScalarWhereWithAggregatesInput | CurrencyScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Currency"> | string
    code?: StringWithAggregatesFilter<"Currency"> | string
    name?: StringWithAggregatesFilter<"Currency"> | string
    symbol?: StringNullableWithAggregatesFilter<"Currency"> | string | null
    decimals?: IntWithAggregatesFilter<"Currency"> | number
    enabled?: BoolWithAggregatesFilter<"Currency"> | boolean
    organizationId?: UuidNullableWithAggregatesFilter<"Currency"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Currency"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Currency"> | Date | string
    createdById?: UuidNullableWithAggregatesFilter<"Currency"> | string | null
  }

  export type CountryWhereInput = {
    AND?: CountryWhereInput | CountryWhereInput[]
    OR?: CountryWhereInput[]
    NOT?: CountryWhereInput | CountryWhereInput[]
    id?: UuidFilter<"Country"> | string
    code?: StringFilter<"Country"> | string
    iso3?: StringFilter<"Country"> | string
    name?: StringFilter<"Country"> | string
    region?: StringNullableFilter<"Country"> | string | null
    enabled?: BoolFilter<"Country"> | boolean
    organizationId?: UuidNullableFilter<"Country"> | string | null
    createdAt?: DateTimeFilter<"Country"> | Date | string
    updatedAt?: DateTimeFilter<"Country"> | Date | string
    createdById?: UuidNullableFilter<"Country"> | string | null
  }

  export type CountryOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    iso3?: SortOrder
    name?: SortOrder
    region?: SortOrderInput | SortOrder
    enabled?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
  }

  export type CountryWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    iso3?: string
    AND?: CountryWhereInput | CountryWhereInput[]
    OR?: CountryWhereInput[]
    NOT?: CountryWhereInput | CountryWhereInput[]
    name?: StringFilter<"Country"> | string
    region?: StringNullableFilter<"Country"> | string | null
    enabled?: BoolFilter<"Country"> | boolean
    organizationId?: UuidNullableFilter<"Country"> | string | null
    createdAt?: DateTimeFilter<"Country"> | Date | string
    updatedAt?: DateTimeFilter<"Country"> | Date | string
    createdById?: UuidNullableFilter<"Country"> | string | null
  }, "id" | "code" | "iso3">

  export type CountryOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    iso3?: SortOrder
    name?: SortOrder
    region?: SortOrderInput | SortOrder
    enabled?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
    _count?: CountryCountOrderByAggregateInput
    _max?: CountryMaxOrderByAggregateInput
    _min?: CountryMinOrderByAggregateInput
  }

  export type CountryScalarWhereWithAggregatesInput = {
    AND?: CountryScalarWhereWithAggregatesInput | CountryScalarWhereWithAggregatesInput[]
    OR?: CountryScalarWhereWithAggregatesInput[]
    NOT?: CountryScalarWhereWithAggregatesInput | CountryScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Country"> | string
    code?: StringWithAggregatesFilter<"Country"> | string
    iso3?: StringWithAggregatesFilter<"Country"> | string
    name?: StringWithAggregatesFilter<"Country"> | string
    region?: StringNullableWithAggregatesFilter<"Country"> | string | null
    enabled?: BoolWithAggregatesFilter<"Country"> | boolean
    organizationId?: UuidNullableWithAggregatesFilter<"Country"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Country"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Country"> | Date | string
    createdById?: UuidNullableWithAggregatesFilter<"Country"> | string | null
  }

  export type GeoRegionWhereInput = {
    AND?: GeoRegionWhereInput | GeoRegionWhereInput[]
    OR?: GeoRegionWhereInput[]
    NOT?: GeoRegionWhereInput | GeoRegionWhereInput[]
    id?: UuidFilter<"GeoRegion"> | string
    code?: StringFilter<"GeoRegion"> | string
    name?: StringFilter<"GeoRegion"> | string
    countries?: StringNullableListFilter<"GeoRegion">
    enabled?: BoolFilter<"GeoRegion"> | boolean
    organizationId?: UuidNullableFilter<"GeoRegion"> | string | null
    createdAt?: DateTimeFilter<"GeoRegion"> | Date | string
    updatedAt?: DateTimeFilter<"GeoRegion"> | Date | string
    createdById?: UuidNullableFilter<"GeoRegion"> | string | null
  }

  export type GeoRegionOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    countries?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
  }

  export type GeoRegionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: GeoRegionWhereInput | GeoRegionWhereInput[]
    OR?: GeoRegionWhereInput[]
    NOT?: GeoRegionWhereInput | GeoRegionWhereInput[]
    name?: StringFilter<"GeoRegion"> | string
    countries?: StringNullableListFilter<"GeoRegion">
    enabled?: BoolFilter<"GeoRegion"> | boolean
    organizationId?: UuidNullableFilter<"GeoRegion"> | string | null
    createdAt?: DateTimeFilter<"GeoRegion"> | Date | string
    updatedAt?: DateTimeFilter<"GeoRegion"> | Date | string
    createdById?: UuidNullableFilter<"GeoRegion"> | string | null
  }, "id" | "code">

  export type GeoRegionOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    countries?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
    _count?: GeoRegionCountOrderByAggregateInput
    _max?: GeoRegionMaxOrderByAggregateInput
    _min?: GeoRegionMinOrderByAggregateInput
  }

  export type GeoRegionScalarWhereWithAggregatesInput = {
    AND?: GeoRegionScalarWhereWithAggregatesInput | GeoRegionScalarWhereWithAggregatesInput[]
    OR?: GeoRegionScalarWhereWithAggregatesInput[]
    NOT?: GeoRegionScalarWhereWithAggregatesInput | GeoRegionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"GeoRegion"> | string
    code?: StringWithAggregatesFilter<"GeoRegion"> | string
    name?: StringWithAggregatesFilter<"GeoRegion"> | string
    countries?: StringNullableListFilter<"GeoRegion">
    enabled?: BoolWithAggregatesFilter<"GeoRegion"> | boolean
    organizationId?: UuidNullableWithAggregatesFilter<"GeoRegion"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"GeoRegion"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"GeoRegion"> | Date | string
    createdById?: UuidNullableWithAggregatesFilter<"GeoRegion"> | string | null
  }

  export type UnitOfMeasureWhereInput = {
    AND?: UnitOfMeasureWhereInput | UnitOfMeasureWhereInput[]
    OR?: UnitOfMeasureWhereInput[]
    NOT?: UnitOfMeasureWhereInput | UnitOfMeasureWhereInput[]
    id?: UuidFilter<"UnitOfMeasure"> | string
    code?: StringFilter<"UnitOfMeasure"> | string
    name?: StringFilter<"UnitOfMeasure"> | string
    category?: StringNullableFilter<"UnitOfMeasure"> | string | null
    enabled?: BoolFilter<"UnitOfMeasure"> | boolean
    organizationId?: UuidNullableFilter<"UnitOfMeasure"> | string | null
    createdAt?: DateTimeFilter<"UnitOfMeasure"> | Date | string
    updatedAt?: DateTimeFilter<"UnitOfMeasure"> | Date | string
    createdById?: UuidNullableFilter<"UnitOfMeasure"> | string | null
  }

  export type UnitOfMeasureOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    category?: SortOrderInput | SortOrder
    enabled?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
  }

  export type UnitOfMeasureWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: UnitOfMeasureWhereInput | UnitOfMeasureWhereInput[]
    OR?: UnitOfMeasureWhereInput[]
    NOT?: UnitOfMeasureWhereInput | UnitOfMeasureWhereInput[]
    name?: StringFilter<"UnitOfMeasure"> | string
    category?: StringNullableFilter<"UnitOfMeasure"> | string | null
    enabled?: BoolFilter<"UnitOfMeasure"> | boolean
    organizationId?: UuidNullableFilter<"UnitOfMeasure"> | string | null
    createdAt?: DateTimeFilter<"UnitOfMeasure"> | Date | string
    updatedAt?: DateTimeFilter<"UnitOfMeasure"> | Date | string
    createdById?: UuidNullableFilter<"UnitOfMeasure"> | string | null
  }, "id" | "code">

  export type UnitOfMeasureOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    category?: SortOrderInput | SortOrder
    enabled?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
    _count?: UnitOfMeasureCountOrderByAggregateInput
    _max?: UnitOfMeasureMaxOrderByAggregateInput
    _min?: UnitOfMeasureMinOrderByAggregateInput
  }

  export type UnitOfMeasureScalarWhereWithAggregatesInput = {
    AND?: UnitOfMeasureScalarWhereWithAggregatesInput | UnitOfMeasureScalarWhereWithAggregatesInput[]
    OR?: UnitOfMeasureScalarWhereWithAggregatesInput[]
    NOT?: UnitOfMeasureScalarWhereWithAggregatesInput | UnitOfMeasureScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"UnitOfMeasure"> | string
    code?: StringWithAggregatesFilter<"UnitOfMeasure"> | string
    name?: StringWithAggregatesFilter<"UnitOfMeasure"> | string
    category?: StringNullableWithAggregatesFilter<"UnitOfMeasure"> | string | null
    enabled?: BoolWithAggregatesFilter<"UnitOfMeasure"> | boolean
    organizationId?: UuidNullableWithAggregatesFilter<"UnitOfMeasure"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"UnitOfMeasure"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"UnitOfMeasure"> | Date | string
    createdById?: UuidNullableWithAggregatesFilter<"UnitOfMeasure"> | string | null
  }

  export type DictionaryWhereInput = {
    AND?: DictionaryWhereInput | DictionaryWhereInput[]
    OR?: DictionaryWhereInput[]
    NOT?: DictionaryWhereInput | DictionaryWhereInput[]
    id?: UuidFilter<"Dictionary"> | string
    category?: StringFilter<"Dictionary"> | string
    code?: StringFilter<"Dictionary"> | string
    labelEn?: StringFilter<"Dictionary"> | string
    labelZh?: StringNullableFilter<"Dictionary"> | string | null
    sortOrder?: IntFilter<"Dictionary"> | number
    enabled?: BoolFilter<"Dictionary"> | boolean
    metadata?: JsonFilter<"Dictionary">
    organizationId?: UuidNullableFilter<"Dictionary"> | string | null
    createdAt?: DateTimeFilter<"Dictionary"> | Date | string
    updatedAt?: DateTimeFilter<"Dictionary"> | Date | string
    createdById?: UuidNullableFilter<"Dictionary"> | string | null
  }

  export type DictionaryOrderByWithRelationInput = {
    id?: SortOrder
    category?: SortOrder
    code?: SortOrder
    labelEn?: SortOrder
    labelZh?: SortOrderInput | SortOrder
    sortOrder?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
  }

  export type DictionaryWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    category_code?: DictionaryCategoryCodeCompoundUniqueInput
    AND?: DictionaryWhereInput | DictionaryWhereInput[]
    OR?: DictionaryWhereInput[]
    NOT?: DictionaryWhereInput | DictionaryWhereInput[]
    category?: StringFilter<"Dictionary"> | string
    code?: StringFilter<"Dictionary"> | string
    labelEn?: StringFilter<"Dictionary"> | string
    labelZh?: StringNullableFilter<"Dictionary"> | string | null
    sortOrder?: IntFilter<"Dictionary"> | number
    enabled?: BoolFilter<"Dictionary"> | boolean
    metadata?: JsonFilter<"Dictionary">
    organizationId?: UuidNullableFilter<"Dictionary"> | string | null
    createdAt?: DateTimeFilter<"Dictionary"> | Date | string
    updatedAt?: DateTimeFilter<"Dictionary"> | Date | string
    createdById?: UuidNullableFilter<"Dictionary"> | string | null
  }, "id" | "category_code">

  export type DictionaryOrderByWithAggregationInput = {
    id?: SortOrder
    category?: SortOrder
    code?: SortOrder
    labelEn?: SortOrder
    labelZh?: SortOrderInput | SortOrder
    sortOrder?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
    _count?: DictionaryCountOrderByAggregateInput
    _avg?: DictionaryAvgOrderByAggregateInput
    _max?: DictionaryMaxOrderByAggregateInput
    _min?: DictionaryMinOrderByAggregateInput
    _sum?: DictionarySumOrderByAggregateInput
  }

  export type DictionaryScalarWhereWithAggregatesInput = {
    AND?: DictionaryScalarWhereWithAggregatesInput | DictionaryScalarWhereWithAggregatesInput[]
    OR?: DictionaryScalarWhereWithAggregatesInput[]
    NOT?: DictionaryScalarWhereWithAggregatesInput | DictionaryScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Dictionary"> | string
    category?: StringWithAggregatesFilter<"Dictionary"> | string
    code?: StringWithAggregatesFilter<"Dictionary"> | string
    labelEn?: StringWithAggregatesFilter<"Dictionary"> | string
    labelZh?: StringNullableWithAggregatesFilter<"Dictionary"> | string | null
    sortOrder?: IntWithAggregatesFilter<"Dictionary"> | number
    enabled?: BoolWithAggregatesFilter<"Dictionary"> | boolean
    metadata?: JsonWithAggregatesFilter<"Dictionary">
    organizationId?: UuidNullableWithAggregatesFilter<"Dictionary"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"Dictionary"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Dictionary"> | Date | string
    createdById?: UuidNullableWithAggregatesFilter<"Dictionary"> | string | null
  }

  export type MeetingWhereInput = {
    AND?: MeetingWhereInput | MeetingWhereInput[]
    OR?: MeetingWhereInput[]
    NOT?: MeetingWhereInput | MeetingWhereInput[]
    id?: StringFilter<"Meeting"> | string
    title?: StringFilter<"Meeting"> | string
    description?: StringNullableFilter<"Meeting"> | string | null
    startTime?: DateTimeFilter<"Meeting"> | Date | string
    endTime?: DateTimeFilter<"Meeting"> | Date | string
    timezone?: StringFilter<"Meeting"> | string
    location?: StringNullableFilter<"Meeting"> | string | null
    type?: EnumMeetingTypeFilter<"Meeting"> | $Enums.MeetingType
    status?: EnumMeetingStatusFilter<"Meeting"> | $Enums.MeetingStatus
    qrCodeOnline?: StringNullableFilter<"Meeting"> | string | null
    qrCodeOffline?: StringNullableFilter<"Meeting"> | string | null
    creatorId?: UuidFilter<"Meeting"> | string
    seriesId?: StringNullableFilter<"Meeting"> | string | null
    instanceNumber?: IntNullableFilter<"Meeting"> | number | null
    isSeriesMaster?: BoolFilter<"Meeting"> | boolean
    hasCustomAttendees?: BoolFilter<"Meeting"> | boolean
    city?: StringNullableFilter<"Meeting"> | string | null
    enforceCheckinMode?: BoolFilter<"Meeting"> | boolean
    createdAt?: DateTimeFilter<"Meeting"> | Date | string
    updatedAt?: DateTimeFilter<"Meeting"> | Date | string
    attendances?: MeetingAttendanceListRelationFilter
    requiredAttendees?: MeetingRequiredAttendeeListRelationFilter
    externalAttendees?: MeetingExternalAttendeeListRelationFilter
    series?: XOR<MeetingSeriesNullableScalarRelationFilter, MeetingSeriesWhereInput> | null
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    outlookBindings?: OutlookMeetingBindingListRelationFilter
    agendaSections?: MeetingAgendaSectionListRelationFilter
    attachments?: MeetingAttachmentListRelationFilter
  }

  export type MeetingOrderByWithRelationInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    timezone?: SortOrder
    location?: SortOrderInput | SortOrder
    type?: SortOrder
    status?: SortOrder
    qrCodeOnline?: SortOrderInput | SortOrder
    qrCodeOffline?: SortOrderInput | SortOrder
    creatorId?: SortOrder
    seriesId?: SortOrderInput | SortOrder
    instanceNumber?: SortOrderInput | SortOrder
    isSeriesMaster?: SortOrder
    hasCustomAttendees?: SortOrder
    city?: SortOrderInput | SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    attendances?: MeetingAttendanceOrderByRelationAggregateInput
    requiredAttendees?: MeetingRequiredAttendeeOrderByRelationAggregateInput
    externalAttendees?: MeetingExternalAttendeeOrderByRelationAggregateInput
    series?: MeetingSeriesOrderByWithRelationInput
    creator?: UserOrderByWithRelationInput
    outlookBindings?: OutlookMeetingBindingOrderByRelationAggregateInput
    agendaSections?: MeetingAgendaSectionOrderByRelationAggregateInput
    attachments?: MeetingAttachmentOrderByRelationAggregateInput
  }

  export type MeetingWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingWhereInput | MeetingWhereInput[]
    OR?: MeetingWhereInput[]
    NOT?: MeetingWhereInput | MeetingWhereInput[]
    title?: StringFilter<"Meeting"> | string
    description?: StringNullableFilter<"Meeting"> | string | null
    startTime?: DateTimeFilter<"Meeting"> | Date | string
    endTime?: DateTimeFilter<"Meeting"> | Date | string
    timezone?: StringFilter<"Meeting"> | string
    location?: StringNullableFilter<"Meeting"> | string | null
    type?: EnumMeetingTypeFilter<"Meeting"> | $Enums.MeetingType
    status?: EnumMeetingStatusFilter<"Meeting"> | $Enums.MeetingStatus
    qrCodeOnline?: StringNullableFilter<"Meeting"> | string | null
    qrCodeOffline?: StringNullableFilter<"Meeting"> | string | null
    creatorId?: UuidFilter<"Meeting"> | string
    seriesId?: StringNullableFilter<"Meeting"> | string | null
    instanceNumber?: IntNullableFilter<"Meeting"> | number | null
    isSeriesMaster?: BoolFilter<"Meeting"> | boolean
    hasCustomAttendees?: BoolFilter<"Meeting"> | boolean
    city?: StringNullableFilter<"Meeting"> | string | null
    enforceCheckinMode?: BoolFilter<"Meeting"> | boolean
    createdAt?: DateTimeFilter<"Meeting"> | Date | string
    updatedAt?: DateTimeFilter<"Meeting"> | Date | string
    attendances?: MeetingAttendanceListRelationFilter
    requiredAttendees?: MeetingRequiredAttendeeListRelationFilter
    externalAttendees?: MeetingExternalAttendeeListRelationFilter
    series?: XOR<MeetingSeriesNullableScalarRelationFilter, MeetingSeriesWhereInput> | null
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    outlookBindings?: OutlookMeetingBindingListRelationFilter
    agendaSections?: MeetingAgendaSectionListRelationFilter
    attachments?: MeetingAttachmentListRelationFilter
  }, "id">

  export type MeetingOrderByWithAggregationInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    timezone?: SortOrder
    location?: SortOrderInput | SortOrder
    type?: SortOrder
    status?: SortOrder
    qrCodeOnline?: SortOrderInput | SortOrder
    qrCodeOffline?: SortOrderInput | SortOrder
    creatorId?: SortOrder
    seriesId?: SortOrderInput | SortOrder
    instanceNumber?: SortOrderInput | SortOrder
    isSeriesMaster?: SortOrder
    hasCustomAttendees?: SortOrder
    city?: SortOrderInput | SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingCountOrderByAggregateInput
    _avg?: MeetingAvgOrderByAggregateInput
    _max?: MeetingMaxOrderByAggregateInput
    _min?: MeetingMinOrderByAggregateInput
    _sum?: MeetingSumOrderByAggregateInput
  }

  export type MeetingScalarWhereWithAggregatesInput = {
    AND?: MeetingScalarWhereWithAggregatesInput | MeetingScalarWhereWithAggregatesInput[]
    OR?: MeetingScalarWhereWithAggregatesInput[]
    NOT?: MeetingScalarWhereWithAggregatesInput | MeetingScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Meeting"> | string
    title?: StringWithAggregatesFilter<"Meeting"> | string
    description?: StringNullableWithAggregatesFilter<"Meeting"> | string | null
    startTime?: DateTimeWithAggregatesFilter<"Meeting"> | Date | string
    endTime?: DateTimeWithAggregatesFilter<"Meeting"> | Date | string
    timezone?: StringWithAggregatesFilter<"Meeting"> | string
    location?: StringNullableWithAggregatesFilter<"Meeting"> | string | null
    type?: EnumMeetingTypeWithAggregatesFilter<"Meeting"> | $Enums.MeetingType
    status?: EnumMeetingStatusWithAggregatesFilter<"Meeting"> | $Enums.MeetingStatus
    qrCodeOnline?: StringNullableWithAggregatesFilter<"Meeting"> | string | null
    qrCodeOffline?: StringNullableWithAggregatesFilter<"Meeting"> | string | null
    creatorId?: UuidWithAggregatesFilter<"Meeting"> | string
    seriesId?: StringNullableWithAggregatesFilter<"Meeting"> | string | null
    instanceNumber?: IntNullableWithAggregatesFilter<"Meeting"> | number | null
    isSeriesMaster?: BoolWithAggregatesFilter<"Meeting"> | boolean
    hasCustomAttendees?: BoolWithAggregatesFilter<"Meeting"> | boolean
    city?: StringNullableWithAggregatesFilter<"Meeting"> | string | null
    enforceCheckinMode?: BoolWithAggregatesFilter<"Meeting"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"Meeting"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Meeting"> | Date | string
  }

  export type MeetingSeriesWhereInput = {
    AND?: MeetingSeriesWhereInput | MeetingSeriesWhereInput[]
    OR?: MeetingSeriesWhereInput[]
    NOT?: MeetingSeriesWhereInput | MeetingSeriesWhereInput[]
    id?: StringFilter<"MeetingSeries"> | string
    title?: StringFilter<"MeetingSeries"> | string
    description?: StringNullableFilter<"MeetingSeries"> | string | null
    pattern?: EnumRecurrencePatternFilter<"MeetingSeries"> | $Enums.RecurrencePattern
    frequency?: IntFilter<"MeetingSeries"> | number
    startDate?: DateTimeFilter<"MeetingSeries"> | Date | string
    endDate?: DateTimeNullableFilter<"MeetingSeries"> | Date | string | null
    maxOccurrences?: IntNullableFilter<"MeetingSeries"> | number | null
    timezone?: StringFilter<"MeetingSeries"> | string
    location?: StringNullableFilter<"MeetingSeries"> | string | null
    type?: EnumMeetingTypeFilter<"MeetingSeries"> | $Enums.MeetingType
    creatorId?: UuidFilter<"MeetingSeries"> | string
    isActive?: BoolFilter<"MeetingSeries"> | boolean
    city?: StringNullableFilter<"MeetingSeries"> | string | null
    enforceCheckinMode?: BoolFilter<"MeetingSeries"> | boolean
    createdAt?: DateTimeFilter<"MeetingSeries"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingSeries"> | Date | string
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    meetings?: MeetingListRelationFilter
    outlookBindings?: OutlookMeetingBindingListRelationFilter
    attendeePreferences?: MeetingSeriesAttendeePreferenceListRelationFilter
    attendeeExceptions?: MeetingSeriesAttendeeExceptionListRelationFilter
  }

  export type MeetingSeriesOrderByWithRelationInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    pattern?: SortOrder
    frequency?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrderInput | SortOrder
    maxOccurrences?: SortOrderInput | SortOrder
    timezone?: SortOrder
    location?: SortOrderInput | SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isActive?: SortOrder
    city?: SortOrderInput | SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    creator?: UserOrderByWithRelationInput
    meetings?: MeetingOrderByRelationAggregateInput
    outlookBindings?: OutlookMeetingBindingOrderByRelationAggregateInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceOrderByRelationAggregateInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionOrderByRelationAggregateInput
  }

  export type MeetingSeriesWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingSeriesWhereInput | MeetingSeriesWhereInput[]
    OR?: MeetingSeriesWhereInput[]
    NOT?: MeetingSeriesWhereInput | MeetingSeriesWhereInput[]
    title?: StringFilter<"MeetingSeries"> | string
    description?: StringNullableFilter<"MeetingSeries"> | string | null
    pattern?: EnumRecurrencePatternFilter<"MeetingSeries"> | $Enums.RecurrencePattern
    frequency?: IntFilter<"MeetingSeries"> | number
    startDate?: DateTimeFilter<"MeetingSeries"> | Date | string
    endDate?: DateTimeNullableFilter<"MeetingSeries"> | Date | string | null
    maxOccurrences?: IntNullableFilter<"MeetingSeries"> | number | null
    timezone?: StringFilter<"MeetingSeries"> | string
    location?: StringNullableFilter<"MeetingSeries"> | string | null
    type?: EnumMeetingTypeFilter<"MeetingSeries"> | $Enums.MeetingType
    creatorId?: UuidFilter<"MeetingSeries"> | string
    isActive?: BoolFilter<"MeetingSeries"> | boolean
    city?: StringNullableFilter<"MeetingSeries"> | string | null
    enforceCheckinMode?: BoolFilter<"MeetingSeries"> | boolean
    createdAt?: DateTimeFilter<"MeetingSeries"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingSeries"> | Date | string
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    meetings?: MeetingListRelationFilter
    outlookBindings?: OutlookMeetingBindingListRelationFilter
    attendeePreferences?: MeetingSeriesAttendeePreferenceListRelationFilter
    attendeeExceptions?: MeetingSeriesAttendeeExceptionListRelationFilter
  }, "id">

  export type MeetingSeriesOrderByWithAggregationInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    pattern?: SortOrder
    frequency?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrderInput | SortOrder
    maxOccurrences?: SortOrderInput | SortOrder
    timezone?: SortOrder
    location?: SortOrderInput | SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isActive?: SortOrder
    city?: SortOrderInput | SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingSeriesCountOrderByAggregateInput
    _avg?: MeetingSeriesAvgOrderByAggregateInput
    _max?: MeetingSeriesMaxOrderByAggregateInput
    _min?: MeetingSeriesMinOrderByAggregateInput
    _sum?: MeetingSeriesSumOrderByAggregateInput
  }

  export type MeetingSeriesScalarWhereWithAggregatesInput = {
    AND?: MeetingSeriesScalarWhereWithAggregatesInput | MeetingSeriesScalarWhereWithAggregatesInput[]
    OR?: MeetingSeriesScalarWhereWithAggregatesInput[]
    NOT?: MeetingSeriesScalarWhereWithAggregatesInput | MeetingSeriesScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingSeries"> | string
    title?: StringWithAggregatesFilter<"MeetingSeries"> | string
    description?: StringNullableWithAggregatesFilter<"MeetingSeries"> | string | null
    pattern?: EnumRecurrencePatternWithAggregatesFilter<"MeetingSeries"> | $Enums.RecurrencePattern
    frequency?: IntWithAggregatesFilter<"MeetingSeries"> | number
    startDate?: DateTimeWithAggregatesFilter<"MeetingSeries"> | Date | string
    endDate?: DateTimeNullableWithAggregatesFilter<"MeetingSeries"> | Date | string | null
    maxOccurrences?: IntNullableWithAggregatesFilter<"MeetingSeries"> | number | null
    timezone?: StringWithAggregatesFilter<"MeetingSeries"> | string
    location?: StringNullableWithAggregatesFilter<"MeetingSeries"> | string | null
    type?: EnumMeetingTypeWithAggregatesFilter<"MeetingSeries"> | $Enums.MeetingType
    creatorId?: UuidWithAggregatesFilter<"MeetingSeries"> | string
    isActive?: BoolWithAggregatesFilter<"MeetingSeries"> | boolean
    city?: StringNullableWithAggregatesFilter<"MeetingSeries"> | string | null
    enforceCheckinMode?: BoolWithAggregatesFilter<"MeetingSeries"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"MeetingSeries"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingSeries"> | Date | string
  }

  export type MeetingAttendanceWhereInput = {
    AND?: MeetingAttendanceWhereInput | MeetingAttendanceWhereInput[]
    OR?: MeetingAttendanceWhereInput[]
    NOT?: MeetingAttendanceWhereInput | MeetingAttendanceWhereInput[]
    id?: StringFilter<"MeetingAttendance"> | string
    userId?: UuidFilter<"MeetingAttendance"> | string
    meetingId?: StringFilter<"MeetingAttendance"> | string
    status?: EnumAttendanceStatusFilter<"MeetingAttendance"> | $Enums.AttendanceStatus
    checkinTime?: DateTimeNullableFilter<"MeetingAttendance"> | Date | string | null
    checkoutTime?: DateTimeNullableFilter<"MeetingAttendance"> | Date | string | null
    isLate?: BoolFilter<"MeetingAttendance"> | boolean
    isEarlyLeave?: BoolFilter<"MeetingAttendance"> | boolean
    notes?: StringNullableFilter<"MeetingAttendance"> | string | null
    checkinType?: EnumCheckinTypeNullableFilter<"MeetingAttendance"> | $Enums.CheckinType | null
    deviceId?: StringNullableFilter<"MeetingAttendance"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttendance"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendance"> | Date | string
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type MeetingAttendanceOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    meetingId?: SortOrder
    status?: SortOrder
    checkinTime?: SortOrderInput | SortOrder
    checkoutTime?: SortOrderInput | SortOrder
    isLate?: SortOrder
    isEarlyLeave?: SortOrder
    notes?: SortOrderInput | SortOrder
    checkinType?: SortOrderInput | SortOrder
    deviceId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    meeting?: MeetingOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
  }

  export type MeetingAttendanceWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId_meetingId?: MeetingAttendanceUserIdMeetingIdCompoundUniqueInput
    AND?: MeetingAttendanceWhereInput | MeetingAttendanceWhereInput[]
    OR?: MeetingAttendanceWhereInput[]
    NOT?: MeetingAttendanceWhereInput | MeetingAttendanceWhereInput[]
    userId?: UuidFilter<"MeetingAttendance"> | string
    meetingId?: StringFilter<"MeetingAttendance"> | string
    status?: EnumAttendanceStatusFilter<"MeetingAttendance"> | $Enums.AttendanceStatus
    checkinTime?: DateTimeNullableFilter<"MeetingAttendance"> | Date | string | null
    checkoutTime?: DateTimeNullableFilter<"MeetingAttendance"> | Date | string | null
    isLate?: BoolFilter<"MeetingAttendance"> | boolean
    isEarlyLeave?: BoolFilter<"MeetingAttendance"> | boolean
    notes?: StringNullableFilter<"MeetingAttendance"> | string | null
    checkinType?: EnumCheckinTypeNullableFilter<"MeetingAttendance"> | $Enums.CheckinType | null
    deviceId?: StringNullableFilter<"MeetingAttendance"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttendance"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendance"> | Date | string
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "userId_meetingId">

  export type MeetingAttendanceOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    meetingId?: SortOrder
    status?: SortOrder
    checkinTime?: SortOrderInput | SortOrder
    checkoutTime?: SortOrderInput | SortOrder
    isLate?: SortOrder
    isEarlyLeave?: SortOrder
    notes?: SortOrderInput | SortOrder
    checkinType?: SortOrderInput | SortOrder
    deviceId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingAttendanceCountOrderByAggregateInput
    _max?: MeetingAttendanceMaxOrderByAggregateInput
    _min?: MeetingAttendanceMinOrderByAggregateInput
  }

  export type MeetingAttendanceScalarWhereWithAggregatesInput = {
    AND?: MeetingAttendanceScalarWhereWithAggregatesInput | MeetingAttendanceScalarWhereWithAggregatesInput[]
    OR?: MeetingAttendanceScalarWhereWithAggregatesInput[]
    NOT?: MeetingAttendanceScalarWhereWithAggregatesInput | MeetingAttendanceScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingAttendance"> | string
    userId?: UuidWithAggregatesFilter<"MeetingAttendance"> | string
    meetingId?: StringWithAggregatesFilter<"MeetingAttendance"> | string
    status?: EnumAttendanceStatusWithAggregatesFilter<"MeetingAttendance"> | $Enums.AttendanceStatus
    checkinTime?: DateTimeNullableWithAggregatesFilter<"MeetingAttendance"> | Date | string | null
    checkoutTime?: DateTimeNullableWithAggregatesFilter<"MeetingAttendance"> | Date | string | null
    isLate?: BoolWithAggregatesFilter<"MeetingAttendance"> | boolean
    isEarlyLeave?: BoolWithAggregatesFilter<"MeetingAttendance"> | boolean
    notes?: StringNullableWithAggregatesFilter<"MeetingAttendance"> | string | null
    checkinType?: EnumCheckinTypeNullableWithAggregatesFilter<"MeetingAttendance"> | $Enums.CheckinType | null
    deviceId?: StringNullableWithAggregatesFilter<"MeetingAttendance"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAttendance"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAttendance"> | Date | string
  }

  export type MeetingRequiredAttendeeWhereInput = {
    AND?: MeetingRequiredAttendeeWhereInput | MeetingRequiredAttendeeWhereInput[]
    OR?: MeetingRequiredAttendeeWhereInput[]
    NOT?: MeetingRequiredAttendeeWhereInput | MeetingRequiredAttendeeWhereInput[]
    id?: StringFilter<"MeetingRequiredAttendee"> | string
    meetingId?: StringFilter<"MeetingRequiredAttendee"> | string
    userId?: UuidFilter<"MeetingRequiredAttendee"> | string
    role?: EnumAttendeeRoleFilter<"MeetingRequiredAttendee"> | $Enums.AttendeeRole
    checkinMode?: EnumAttendanceModeNullableFilter<"MeetingRequiredAttendee"> | $Enums.AttendanceMode | null
    createdAt?: DateTimeFilter<"MeetingRequiredAttendee"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
  }

  export type MeetingRequiredAttendeeOrderByWithRelationInput = {
    id?: SortOrder
    meetingId?: SortOrder
    userId?: SortOrder
    role?: SortOrder
    checkinMode?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    user?: UserOrderByWithRelationInput
    meeting?: MeetingOrderByWithRelationInput
  }

  export type MeetingRequiredAttendeeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    meetingId_userId?: MeetingRequiredAttendeeMeetingIdUserIdCompoundUniqueInput
    AND?: MeetingRequiredAttendeeWhereInput | MeetingRequiredAttendeeWhereInput[]
    OR?: MeetingRequiredAttendeeWhereInput[]
    NOT?: MeetingRequiredAttendeeWhereInput | MeetingRequiredAttendeeWhereInput[]
    meetingId?: StringFilter<"MeetingRequiredAttendee"> | string
    userId?: UuidFilter<"MeetingRequiredAttendee"> | string
    role?: EnumAttendeeRoleFilter<"MeetingRequiredAttendee"> | $Enums.AttendeeRole
    checkinMode?: EnumAttendanceModeNullableFilter<"MeetingRequiredAttendee"> | $Enums.AttendanceMode | null
    createdAt?: DateTimeFilter<"MeetingRequiredAttendee"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
  }, "id" | "meetingId_userId">

  export type MeetingRequiredAttendeeOrderByWithAggregationInput = {
    id?: SortOrder
    meetingId?: SortOrder
    userId?: SortOrder
    role?: SortOrder
    checkinMode?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: MeetingRequiredAttendeeCountOrderByAggregateInput
    _max?: MeetingRequiredAttendeeMaxOrderByAggregateInput
    _min?: MeetingRequiredAttendeeMinOrderByAggregateInput
  }

  export type MeetingRequiredAttendeeScalarWhereWithAggregatesInput = {
    AND?: MeetingRequiredAttendeeScalarWhereWithAggregatesInput | MeetingRequiredAttendeeScalarWhereWithAggregatesInput[]
    OR?: MeetingRequiredAttendeeScalarWhereWithAggregatesInput[]
    NOT?: MeetingRequiredAttendeeScalarWhereWithAggregatesInput | MeetingRequiredAttendeeScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingRequiredAttendee"> | string
    meetingId?: StringWithAggregatesFilter<"MeetingRequiredAttendee"> | string
    userId?: UuidWithAggregatesFilter<"MeetingRequiredAttendee"> | string
    role?: EnumAttendeeRoleWithAggregatesFilter<"MeetingRequiredAttendee"> | $Enums.AttendeeRole
    checkinMode?: EnumAttendanceModeNullableWithAggregatesFilter<"MeetingRequiredAttendee"> | $Enums.AttendanceMode | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingRequiredAttendee"> | Date | string
  }

  export type MeetingSeriesAttendeePreferenceWhereInput = {
    AND?: MeetingSeriesAttendeePreferenceWhereInput | MeetingSeriesAttendeePreferenceWhereInput[]
    OR?: MeetingSeriesAttendeePreferenceWhereInput[]
    NOT?: MeetingSeriesAttendeePreferenceWhereInput | MeetingSeriesAttendeePreferenceWhereInput[]
    seriesId?: StringFilter<"MeetingSeriesAttendeePreference"> | string
    userId?: UuidFilter<"MeetingSeriesAttendeePreference"> | string
    defaultCheckinMode?: EnumAttendanceModeFilter<"MeetingSeriesAttendeePreference"> | $Enums.AttendanceMode
    updatedByUserId?: UuidNullableFilter<"MeetingSeriesAttendeePreference"> | string | null
    createdAt?: DateTimeFilter<"MeetingSeriesAttendeePreference"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingSeriesAttendeePreference"> | Date | string
    series?: XOR<MeetingSeriesScalarRelationFilter, MeetingSeriesWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type MeetingSeriesAttendeePreferenceOrderByWithRelationInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    defaultCheckinMode?: SortOrder
    updatedByUserId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    series?: MeetingSeriesOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
  }

  export type MeetingSeriesAttendeePreferenceWhereUniqueInput = Prisma.AtLeast<{
    seriesId_userId?: MeetingSeriesAttendeePreferenceSeriesIdUserIdCompoundUniqueInput
    AND?: MeetingSeriesAttendeePreferenceWhereInput | MeetingSeriesAttendeePreferenceWhereInput[]
    OR?: MeetingSeriesAttendeePreferenceWhereInput[]
    NOT?: MeetingSeriesAttendeePreferenceWhereInput | MeetingSeriesAttendeePreferenceWhereInput[]
    seriesId?: StringFilter<"MeetingSeriesAttendeePreference"> | string
    userId?: UuidFilter<"MeetingSeriesAttendeePreference"> | string
    defaultCheckinMode?: EnumAttendanceModeFilter<"MeetingSeriesAttendeePreference"> | $Enums.AttendanceMode
    updatedByUserId?: UuidNullableFilter<"MeetingSeriesAttendeePreference"> | string | null
    createdAt?: DateTimeFilter<"MeetingSeriesAttendeePreference"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingSeriesAttendeePreference"> | Date | string
    series?: XOR<MeetingSeriesScalarRelationFilter, MeetingSeriesWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "seriesId_userId">

  export type MeetingSeriesAttendeePreferenceOrderByWithAggregationInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    defaultCheckinMode?: SortOrder
    updatedByUserId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingSeriesAttendeePreferenceCountOrderByAggregateInput
    _max?: MeetingSeriesAttendeePreferenceMaxOrderByAggregateInput
    _min?: MeetingSeriesAttendeePreferenceMinOrderByAggregateInput
  }

  export type MeetingSeriesAttendeePreferenceScalarWhereWithAggregatesInput = {
    AND?: MeetingSeriesAttendeePreferenceScalarWhereWithAggregatesInput | MeetingSeriesAttendeePreferenceScalarWhereWithAggregatesInput[]
    OR?: MeetingSeriesAttendeePreferenceScalarWhereWithAggregatesInput[]
    NOT?: MeetingSeriesAttendeePreferenceScalarWhereWithAggregatesInput | MeetingSeriesAttendeePreferenceScalarWhereWithAggregatesInput[]
    seriesId?: StringWithAggregatesFilter<"MeetingSeriesAttendeePreference"> | string
    userId?: UuidWithAggregatesFilter<"MeetingSeriesAttendeePreference"> | string
    defaultCheckinMode?: EnumAttendanceModeWithAggregatesFilter<"MeetingSeriesAttendeePreference"> | $Enums.AttendanceMode
    updatedByUserId?: UuidNullableWithAggregatesFilter<"MeetingSeriesAttendeePreference"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingSeriesAttendeePreference"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingSeriesAttendeePreference"> | Date | string
  }

  export type MeetingSeriesAttendeeExceptionWhereInput = {
    AND?: MeetingSeriesAttendeeExceptionWhereInput | MeetingSeriesAttendeeExceptionWhereInput[]
    OR?: MeetingSeriesAttendeeExceptionWhereInput[]
    NOT?: MeetingSeriesAttendeeExceptionWhereInput | MeetingSeriesAttendeeExceptionWhereInput[]
    seriesId?: StringFilter<"MeetingSeriesAttendeeException"> | string
    userId?: UuidFilter<"MeetingSeriesAttendeeException"> | string
    excludedBy?: UuidFilter<"MeetingSeriesAttendeeException"> | string
    excludedAt?: DateTimeFilter<"MeetingSeriesAttendeeException"> | Date | string
    reason?: StringNullableFilter<"MeetingSeriesAttendeeException"> | string | null
    series?: XOR<MeetingSeriesScalarRelationFilter, MeetingSeriesWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type MeetingSeriesAttendeeExceptionOrderByWithRelationInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    excludedBy?: SortOrder
    excludedAt?: SortOrder
    reason?: SortOrderInput | SortOrder
    series?: MeetingSeriesOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
  }

  export type MeetingSeriesAttendeeExceptionWhereUniqueInput = Prisma.AtLeast<{
    seriesId_userId?: MeetingSeriesAttendeeExceptionSeriesIdUserIdCompoundUniqueInput
    AND?: MeetingSeriesAttendeeExceptionWhereInput | MeetingSeriesAttendeeExceptionWhereInput[]
    OR?: MeetingSeriesAttendeeExceptionWhereInput[]
    NOT?: MeetingSeriesAttendeeExceptionWhereInput | MeetingSeriesAttendeeExceptionWhereInput[]
    seriesId?: StringFilter<"MeetingSeriesAttendeeException"> | string
    userId?: UuidFilter<"MeetingSeriesAttendeeException"> | string
    excludedBy?: UuidFilter<"MeetingSeriesAttendeeException"> | string
    excludedAt?: DateTimeFilter<"MeetingSeriesAttendeeException"> | Date | string
    reason?: StringNullableFilter<"MeetingSeriesAttendeeException"> | string | null
    series?: XOR<MeetingSeriesScalarRelationFilter, MeetingSeriesWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "seriesId_userId">

  export type MeetingSeriesAttendeeExceptionOrderByWithAggregationInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    excludedBy?: SortOrder
    excludedAt?: SortOrder
    reason?: SortOrderInput | SortOrder
    _count?: MeetingSeriesAttendeeExceptionCountOrderByAggregateInput
    _max?: MeetingSeriesAttendeeExceptionMaxOrderByAggregateInput
    _min?: MeetingSeriesAttendeeExceptionMinOrderByAggregateInput
  }

  export type MeetingSeriesAttendeeExceptionScalarWhereWithAggregatesInput = {
    AND?: MeetingSeriesAttendeeExceptionScalarWhereWithAggregatesInput | MeetingSeriesAttendeeExceptionScalarWhereWithAggregatesInput[]
    OR?: MeetingSeriesAttendeeExceptionScalarWhereWithAggregatesInput[]
    NOT?: MeetingSeriesAttendeeExceptionScalarWhereWithAggregatesInput | MeetingSeriesAttendeeExceptionScalarWhereWithAggregatesInput[]
    seriesId?: StringWithAggregatesFilter<"MeetingSeriesAttendeeException"> | string
    userId?: UuidWithAggregatesFilter<"MeetingSeriesAttendeeException"> | string
    excludedBy?: UuidWithAggregatesFilter<"MeetingSeriesAttendeeException"> | string
    excludedAt?: DateTimeWithAggregatesFilter<"MeetingSeriesAttendeeException"> | Date | string
    reason?: StringNullableWithAggregatesFilter<"MeetingSeriesAttendeeException"> | string | null
  }

  export type MeetingExternalAttendeeWhereInput = {
    AND?: MeetingExternalAttendeeWhereInput | MeetingExternalAttendeeWhereInput[]
    OR?: MeetingExternalAttendeeWhereInput[]
    NOT?: MeetingExternalAttendeeWhereInput | MeetingExternalAttendeeWhereInput[]
    id?: StringFilter<"MeetingExternalAttendee"> | string
    meetingId?: StringFilter<"MeetingExternalAttendee"> | string
    email?: StringFilter<"MeetingExternalAttendee"> | string
    displayName?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    attendeeType?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    response?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    sourceRole?: StringFilter<"MeetingExternalAttendee"> | string
    createdAt?: DateTimeFilter<"MeetingExternalAttendee"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingExternalAttendee"> | Date | string
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
  }

  export type MeetingExternalAttendeeOrderByWithRelationInput = {
    id?: SortOrder
    meetingId?: SortOrder
    email?: SortOrder
    displayName?: SortOrderInput | SortOrder
    attendeeType?: SortOrderInput | SortOrder
    response?: SortOrderInput | SortOrder
    sourceRole?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    meeting?: MeetingOrderByWithRelationInput
  }

  export type MeetingExternalAttendeeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    meetingId_email_sourceRole?: MeetingExternalAttendeeMeetingIdEmailSourceRoleCompoundUniqueInput
    AND?: MeetingExternalAttendeeWhereInput | MeetingExternalAttendeeWhereInput[]
    OR?: MeetingExternalAttendeeWhereInput[]
    NOT?: MeetingExternalAttendeeWhereInput | MeetingExternalAttendeeWhereInput[]
    meetingId?: StringFilter<"MeetingExternalAttendee"> | string
    email?: StringFilter<"MeetingExternalAttendee"> | string
    displayName?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    attendeeType?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    response?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    sourceRole?: StringFilter<"MeetingExternalAttendee"> | string
    createdAt?: DateTimeFilter<"MeetingExternalAttendee"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingExternalAttendee"> | Date | string
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
  }, "id" | "meetingId_email_sourceRole">

  export type MeetingExternalAttendeeOrderByWithAggregationInput = {
    id?: SortOrder
    meetingId?: SortOrder
    email?: SortOrder
    displayName?: SortOrderInput | SortOrder
    attendeeType?: SortOrderInput | SortOrder
    response?: SortOrderInput | SortOrder
    sourceRole?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingExternalAttendeeCountOrderByAggregateInput
    _max?: MeetingExternalAttendeeMaxOrderByAggregateInput
    _min?: MeetingExternalAttendeeMinOrderByAggregateInput
  }

  export type MeetingExternalAttendeeScalarWhereWithAggregatesInput = {
    AND?: MeetingExternalAttendeeScalarWhereWithAggregatesInput | MeetingExternalAttendeeScalarWhereWithAggregatesInput[]
    OR?: MeetingExternalAttendeeScalarWhereWithAggregatesInput[]
    NOT?: MeetingExternalAttendeeScalarWhereWithAggregatesInput | MeetingExternalAttendeeScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingExternalAttendee"> | string
    meetingId?: StringWithAggregatesFilter<"MeetingExternalAttendee"> | string
    email?: StringWithAggregatesFilter<"MeetingExternalAttendee"> | string
    displayName?: StringNullableWithAggregatesFilter<"MeetingExternalAttendee"> | string | null
    attendeeType?: StringNullableWithAggregatesFilter<"MeetingExternalAttendee"> | string | null
    response?: StringNullableWithAggregatesFilter<"MeetingExternalAttendee"> | string | null
    sourceRole?: StringWithAggregatesFilter<"MeetingExternalAttendee"> | string
    createdAt?: DateTimeWithAggregatesFilter<"MeetingExternalAttendee"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingExternalAttendee"> | Date | string
  }

  export type MeetingTemplateWhereInput = {
    AND?: MeetingTemplateWhereInput | MeetingTemplateWhereInput[]
    OR?: MeetingTemplateWhereInput[]
    NOT?: MeetingTemplateWhereInput | MeetingTemplateWhereInput[]
    id?: StringFilter<"MeetingTemplate"> | string
    name?: StringFilter<"MeetingTemplate"> | string
    title?: StringFilter<"MeetingTemplate"> | string
    description?: StringNullableFilter<"MeetingTemplate"> | string | null
    duration?: IntFilter<"MeetingTemplate"> | number
    timezone?: StringFilter<"MeetingTemplate"> | string
    location?: StringNullableFilter<"MeetingTemplate"> | string | null
    type?: EnumMeetingTypeFilter<"MeetingTemplate"> | $Enums.MeetingType
    creatorId?: UuidFilter<"MeetingTemplate"> | string
    isPublic?: BoolFilter<"MeetingTemplate"> | boolean
    createdAt?: DateTimeFilter<"MeetingTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingTemplate"> | Date | string
    templateAttendees?: MeetingTemplateAttendeeListRelationFilter
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type MeetingTemplateOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    duration?: SortOrder
    timezone?: SortOrder
    location?: SortOrderInput | SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isPublic?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    templateAttendees?: MeetingTemplateAttendeeOrderByRelationAggregateInput
    creator?: UserOrderByWithRelationInput
  }

  export type MeetingTemplateWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingTemplateWhereInput | MeetingTemplateWhereInput[]
    OR?: MeetingTemplateWhereInput[]
    NOT?: MeetingTemplateWhereInput | MeetingTemplateWhereInput[]
    name?: StringFilter<"MeetingTemplate"> | string
    title?: StringFilter<"MeetingTemplate"> | string
    description?: StringNullableFilter<"MeetingTemplate"> | string | null
    duration?: IntFilter<"MeetingTemplate"> | number
    timezone?: StringFilter<"MeetingTemplate"> | string
    location?: StringNullableFilter<"MeetingTemplate"> | string | null
    type?: EnumMeetingTypeFilter<"MeetingTemplate"> | $Enums.MeetingType
    creatorId?: UuidFilter<"MeetingTemplate"> | string
    isPublic?: BoolFilter<"MeetingTemplate"> | boolean
    createdAt?: DateTimeFilter<"MeetingTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingTemplate"> | Date | string
    templateAttendees?: MeetingTemplateAttendeeListRelationFilter
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type MeetingTemplateOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    duration?: SortOrder
    timezone?: SortOrder
    location?: SortOrderInput | SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isPublic?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingTemplateCountOrderByAggregateInput
    _avg?: MeetingTemplateAvgOrderByAggregateInput
    _max?: MeetingTemplateMaxOrderByAggregateInput
    _min?: MeetingTemplateMinOrderByAggregateInput
    _sum?: MeetingTemplateSumOrderByAggregateInput
  }

  export type MeetingTemplateScalarWhereWithAggregatesInput = {
    AND?: MeetingTemplateScalarWhereWithAggregatesInput | MeetingTemplateScalarWhereWithAggregatesInput[]
    OR?: MeetingTemplateScalarWhereWithAggregatesInput[]
    NOT?: MeetingTemplateScalarWhereWithAggregatesInput | MeetingTemplateScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingTemplate"> | string
    name?: StringWithAggregatesFilter<"MeetingTemplate"> | string
    title?: StringWithAggregatesFilter<"MeetingTemplate"> | string
    description?: StringNullableWithAggregatesFilter<"MeetingTemplate"> | string | null
    duration?: IntWithAggregatesFilter<"MeetingTemplate"> | number
    timezone?: StringWithAggregatesFilter<"MeetingTemplate"> | string
    location?: StringNullableWithAggregatesFilter<"MeetingTemplate"> | string | null
    type?: EnumMeetingTypeWithAggregatesFilter<"MeetingTemplate"> | $Enums.MeetingType
    creatorId?: UuidWithAggregatesFilter<"MeetingTemplate"> | string
    isPublic?: BoolWithAggregatesFilter<"MeetingTemplate"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"MeetingTemplate"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingTemplate"> | Date | string
  }

  export type MeetingTemplateAttendeeWhereInput = {
    AND?: MeetingTemplateAttendeeWhereInput | MeetingTemplateAttendeeWhereInput[]
    OR?: MeetingTemplateAttendeeWhereInput[]
    NOT?: MeetingTemplateAttendeeWhereInput | MeetingTemplateAttendeeWhereInput[]
    id?: StringFilter<"MeetingTemplateAttendee"> | string
    templateId?: StringFilter<"MeetingTemplateAttendee"> | string
    userId?: UuidFilter<"MeetingTemplateAttendee"> | string
    createdAt?: DateTimeFilter<"MeetingTemplateAttendee"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    template?: XOR<MeetingTemplateScalarRelationFilter, MeetingTemplateWhereInput>
  }

  export type MeetingTemplateAttendeeOrderByWithRelationInput = {
    id?: SortOrder
    templateId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
    user?: UserOrderByWithRelationInput
    template?: MeetingTemplateOrderByWithRelationInput
  }

  export type MeetingTemplateAttendeeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    templateId_userId?: MeetingTemplateAttendeeTemplateIdUserIdCompoundUniqueInput
    AND?: MeetingTemplateAttendeeWhereInput | MeetingTemplateAttendeeWhereInput[]
    OR?: MeetingTemplateAttendeeWhereInput[]
    NOT?: MeetingTemplateAttendeeWhereInput | MeetingTemplateAttendeeWhereInput[]
    templateId?: StringFilter<"MeetingTemplateAttendee"> | string
    userId?: UuidFilter<"MeetingTemplateAttendee"> | string
    createdAt?: DateTimeFilter<"MeetingTemplateAttendee"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
    template?: XOR<MeetingTemplateScalarRelationFilter, MeetingTemplateWhereInput>
  }, "id" | "templateId_userId">

  export type MeetingTemplateAttendeeOrderByWithAggregationInput = {
    id?: SortOrder
    templateId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
    _count?: MeetingTemplateAttendeeCountOrderByAggregateInput
    _max?: MeetingTemplateAttendeeMaxOrderByAggregateInput
    _min?: MeetingTemplateAttendeeMinOrderByAggregateInput
  }

  export type MeetingTemplateAttendeeScalarWhereWithAggregatesInput = {
    AND?: MeetingTemplateAttendeeScalarWhereWithAggregatesInput | MeetingTemplateAttendeeScalarWhereWithAggregatesInput[]
    OR?: MeetingTemplateAttendeeScalarWhereWithAggregatesInput[]
    NOT?: MeetingTemplateAttendeeScalarWhereWithAggregatesInput | MeetingTemplateAttendeeScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingTemplateAttendee"> | string
    templateId?: StringWithAggregatesFilter<"MeetingTemplateAttendee"> | string
    userId?: UuidWithAggregatesFilter<"MeetingTemplateAttendee"> | string
    createdAt?: DateTimeWithAggregatesFilter<"MeetingTemplateAttendee"> | Date | string
  }

  export type MeetingAttendanceLeaveRecordWhereInput = {
    AND?: MeetingAttendanceLeaveRecordWhereInput | MeetingAttendanceLeaveRecordWhereInput[]
    OR?: MeetingAttendanceLeaveRecordWhereInput[]
    NOT?: MeetingAttendanceLeaveRecordWhereInput | MeetingAttendanceLeaveRecordWhereInput[]
    id?: StringFilter<"MeetingAttendanceLeaveRecord"> | string
    userId?: UuidFilter<"MeetingAttendanceLeaveRecord"> | string
    type?: EnumLeaveTypeFilter<"MeetingAttendanceLeaveRecord"> | $Enums.LeaveType
    startDate?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    endDate?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    reason?: StringNullableFilter<"MeetingAttendanceLeaveRecord"> | string | null
    status?: EnumLeaveStatusFilter<"MeetingAttendanceLeaveRecord"> | $Enums.LeaveStatus
    createdAt?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type MeetingAttendanceLeaveRecordOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    reason?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    user?: UserOrderByWithRelationInput
  }

  export type MeetingAttendanceLeaveRecordWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAttendanceLeaveRecordWhereInput | MeetingAttendanceLeaveRecordWhereInput[]
    OR?: MeetingAttendanceLeaveRecordWhereInput[]
    NOT?: MeetingAttendanceLeaveRecordWhereInput | MeetingAttendanceLeaveRecordWhereInput[]
    userId?: UuidFilter<"MeetingAttendanceLeaveRecord"> | string
    type?: EnumLeaveTypeFilter<"MeetingAttendanceLeaveRecord"> | $Enums.LeaveType
    startDate?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    endDate?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    reason?: StringNullableFilter<"MeetingAttendanceLeaveRecord"> | string | null
    status?: EnumLeaveStatusFilter<"MeetingAttendanceLeaveRecord"> | $Enums.LeaveStatus
    createdAt?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type MeetingAttendanceLeaveRecordOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    reason?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingAttendanceLeaveRecordCountOrderByAggregateInput
    _max?: MeetingAttendanceLeaveRecordMaxOrderByAggregateInput
    _min?: MeetingAttendanceLeaveRecordMinOrderByAggregateInput
  }

  export type MeetingAttendanceLeaveRecordScalarWhereWithAggregatesInput = {
    AND?: MeetingAttendanceLeaveRecordScalarWhereWithAggregatesInput | MeetingAttendanceLeaveRecordScalarWhereWithAggregatesInput[]
    OR?: MeetingAttendanceLeaveRecordScalarWhereWithAggregatesInput[]
    NOT?: MeetingAttendanceLeaveRecordScalarWhereWithAggregatesInput | MeetingAttendanceLeaveRecordScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | string
    userId?: UuidWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | string
    type?: EnumLeaveTypeWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | $Enums.LeaveType
    startDate?: DateTimeWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    endDate?: DateTimeWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    reason?: StringNullableWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | string | null
    status?: EnumLeaveStatusWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | $Enums.LeaveStatus
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceLeaveRecord"> | Date | string
  }

  export type MeetingAttendanceAuditLogWhereInput = {
    AND?: MeetingAttendanceAuditLogWhereInput | MeetingAttendanceAuditLogWhereInput[]
    OR?: MeetingAttendanceAuditLogWhereInput[]
    NOT?: MeetingAttendanceAuditLogWhereInput | MeetingAttendanceAuditLogWhereInput[]
    id?: StringFilter<"MeetingAttendanceAuditLog"> | string
    userId?: UuidFilter<"MeetingAttendanceAuditLog"> | string
    userEmail?: StringFilter<"MeetingAttendanceAuditLog"> | string
    userName?: StringFilter<"MeetingAttendanceAuditLog"> | string
    userRole?: StringFilter<"MeetingAttendanceAuditLog"> | string
    action?: StringFilter<"MeetingAttendanceAuditLog"> | string
    resource?: StringFilter<"MeetingAttendanceAuditLog"> | string
    resourceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    method?: StringFilter<"MeetingAttendanceAuditLog"> | string
    endpoint?: StringFilter<"MeetingAttendanceAuditLog"> | string
    statusCode?: IntFilter<"MeetingAttendanceAuditLog"> | number
    source?: StringFilter<"MeetingAttendanceAuditLog"> | string
    deviceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    sessionId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    requestId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    traceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    geoLocation?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    ipAddress?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    userAgent?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    fieldDiffs?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    requestBody?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    changes?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    reasonCode?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    reasonText?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    errorMessage?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    prevHash?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    hash?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    isRedacted?: BoolFilter<"MeetingAttendanceAuditLog"> | boolean
    isTombstoned?: BoolFilter<"MeetingAttendanceAuditLog"> | boolean
    retentionUntil?: DateTimeNullableFilter<"MeetingAttendanceAuditLog"> | Date | string | null
    duration?: IntNullableFilter<"MeetingAttendanceAuditLog"> | number | null
    createdAt?: DateTimeFilter<"MeetingAttendanceAuditLog"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type MeetingAttendanceAuditLogOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    userEmail?: SortOrder
    userName?: SortOrder
    userRole?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    resourceId?: SortOrderInput | SortOrder
    method?: SortOrder
    endpoint?: SortOrder
    statusCode?: SortOrder
    source?: SortOrder
    deviceId?: SortOrderInput | SortOrder
    sessionId?: SortOrderInput | SortOrder
    requestId?: SortOrderInput | SortOrder
    traceId?: SortOrderInput | SortOrder
    geoLocation?: SortOrderInput | SortOrder
    ipAddress?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    fieldDiffs?: SortOrderInput | SortOrder
    requestBody?: SortOrderInput | SortOrder
    changes?: SortOrderInput | SortOrder
    reasonCode?: SortOrderInput | SortOrder
    reasonText?: SortOrderInput | SortOrder
    errorMessage?: SortOrderInput | SortOrder
    prevHash?: SortOrderInput | SortOrder
    hash?: SortOrderInput | SortOrder
    isRedacted?: SortOrder
    isTombstoned?: SortOrder
    retentionUntil?: SortOrderInput | SortOrder
    duration?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    user?: UserOrderByWithRelationInput
  }

  export type MeetingAttendanceAuditLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAttendanceAuditLogWhereInput | MeetingAttendanceAuditLogWhereInput[]
    OR?: MeetingAttendanceAuditLogWhereInput[]
    NOT?: MeetingAttendanceAuditLogWhereInput | MeetingAttendanceAuditLogWhereInput[]
    userId?: UuidFilter<"MeetingAttendanceAuditLog"> | string
    userEmail?: StringFilter<"MeetingAttendanceAuditLog"> | string
    userName?: StringFilter<"MeetingAttendanceAuditLog"> | string
    userRole?: StringFilter<"MeetingAttendanceAuditLog"> | string
    action?: StringFilter<"MeetingAttendanceAuditLog"> | string
    resource?: StringFilter<"MeetingAttendanceAuditLog"> | string
    resourceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    method?: StringFilter<"MeetingAttendanceAuditLog"> | string
    endpoint?: StringFilter<"MeetingAttendanceAuditLog"> | string
    statusCode?: IntFilter<"MeetingAttendanceAuditLog"> | number
    source?: StringFilter<"MeetingAttendanceAuditLog"> | string
    deviceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    sessionId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    requestId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    traceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    geoLocation?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    ipAddress?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    userAgent?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    fieldDiffs?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    requestBody?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    changes?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    reasonCode?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    reasonText?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    errorMessage?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    prevHash?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    hash?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    isRedacted?: BoolFilter<"MeetingAttendanceAuditLog"> | boolean
    isTombstoned?: BoolFilter<"MeetingAttendanceAuditLog"> | boolean
    retentionUntil?: DateTimeNullableFilter<"MeetingAttendanceAuditLog"> | Date | string | null
    duration?: IntNullableFilter<"MeetingAttendanceAuditLog"> | number | null
    createdAt?: DateTimeFilter<"MeetingAttendanceAuditLog"> | Date | string
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type MeetingAttendanceAuditLogOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    userEmail?: SortOrder
    userName?: SortOrder
    userRole?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    resourceId?: SortOrderInput | SortOrder
    method?: SortOrder
    endpoint?: SortOrder
    statusCode?: SortOrder
    source?: SortOrder
    deviceId?: SortOrderInput | SortOrder
    sessionId?: SortOrderInput | SortOrder
    requestId?: SortOrderInput | SortOrder
    traceId?: SortOrderInput | SortOrder
    geoLocation?: SortOrderInput | SortOrder
    ipAddress?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    fieldDiffs?: SortOrderInput | SortOrder
    requestBody?: SortOrderInput | SortOrder
    changes?: SortOrderInput | SortOrder
    reasonCode?: SortOrderInput | SortOrder
    reasonText?: SortOrderInput | SortOrder
    errorMessage?: SortOrderInput | SortOrder
    prevHash?: SortOrderInput | SortOrder
    hash?: SortOrderInput | SortOrder
    isRedacted?: SortOrder
    isTombstoned?: SortOrder
    retentionUntil?: SortOrderInput | SortOrder
    duration?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: MeetingAttendanceAuditLogCountOrderByAggregateInput
    _avg?: MeetingAttendanceAuditLogAvgOrderByAggregateInput
    _max?: MeetingAttendanceAuditLogMaxOrderByAggregateInput
    _min?: MeetingAttendanceAuditLogMinOrderByAggregateInput
    _sum?: MeetingAttendanceAuditLogSumOrderByAggregateInput
  }

  export type MeetingAttendanceAuditLogScalarWhereWithAggregatesInput = {
    AND?: MeetingAttendanceAuditLogScalarWhereWithAggregatesInput | MeetingAttendanceAuditLogScalarWhereWithAggregatesInput[]
    OR?: MeetingAttendanceAuditLogScalarWhereWithAggregatesInput[]
    NOT?: MeetingAttendanceAuditLogScalarWhereWithAggregatesInput | MeetingAttendanceAuditLogScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    userId?: UuidWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    userEmail?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    userName?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    userRole?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    action?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    resource?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    resourceId?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    method?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    endpoint?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    statusCode?: IntWithAggregatesFilter<"MeetingAttendanceAuditLog"> | number
    source?: StringWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string
    deviceId?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    sessionId?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    requestId?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    traceId?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    geoLocation?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    ipAddress?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    userAgent?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    fieldDiffs?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    requestBody?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    changes?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    reasonCode?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    reasonText?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    errorMessage?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    prevHash?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    hash?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | string | null
    isRedacted?: BoolWithAggregatesFilter<"MeetingAttendanceAuditLog"> | boolean
    isTombstoned?: BoolWithAggregatesFilter<"MeetingAttendanceAuditLog"> | boolean
    retentionUntil?: DateTimeNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | Date | string | null
    duration?: IntNullableWithAggregatesFilter<"MeetingAttendanceAuditLog"> | number | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceAuditLog"> | Date | string
  }

  export type MeetingAttendanceDataAccessLogWhereInput = {
    AND?: MeetingAttendanceDataAccessLogWhereInput | MeetingAttendanceDataAccessLogWhereInput[]
    OR?: MeetingAttendanceDataAccessLogWhereInput[]
    NOT?: MeetingAttendanceDataAccessLogWhereInput | MeetingAttendanceDataAccessLogWhereInput[]
    id?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    actorId?: UuidNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    actorEmail?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    actorName?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    actorRole?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    accessType?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    entityType?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    entityIds?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    resultCount?: IntFilter<"MeetingAttendanceDataAccessLog"> | number
    hasSensitiveData?: BoolFilter<"MeetingAttendanceDataAccessLog"> | boolean
    sensitiveFields?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    endpoint?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    method?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    statusCode?: IntFilter<"MeetingAttendanceDataAccessLog"> | number
    ipAddress?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    sessionId?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    requestId?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    deviceId?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttendanceDataAccessLog"> | Date | string
  }

  export type MeetingAttendanceDataAccessLogOrderByWithRelationInput = {
    id?: SortOrder
    actorId?: SortOrderInput | SortOrder
    actorEmail?: SortOrder
    actorName?: SortOrder
    actorRole?: SortOrder
    accessType?: SortOrder
    entityType?: SortOrder
    entityIds?: SortOrderInput | SortOrder
    resultCount?: SortOrder
    hasSensitiveData?: SortOrder
    sensitiveFields?: SortOrderInput | SortOrder
    endpoint?: SortOrder
    method?: SortOrder
    statusCode?: SortOrder
    ipAddress?: SortOrderInput | SortOrder
    sessionId?: SortOrderInput | SortOrder
    requestId?: SortOrderInput | SortOrder
    deviceId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
  }

  export type MeetingAttendanceDataAccessLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAttendanceDataAccessLogWhereInput | MeetingAttendanceDataAccessLogWhereInput[]
    OR?: MeetingAttendanceDataAccessLogWhereInput[]
    NOT?: MeetingAttendanceDataAccessLogWhereInput | MeetingAttendanceDataAccessLogWhereInput[]
    actorId?: UuidNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    actorEmail?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    actorName?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    actorRole?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    accessType?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    entityType?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    entityIds?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    resultCount?: IntFilter<"MeetingAttendanceDataAccessLog"> | number
    hasSensitiveData?: BoolFilter<"MeetingAttendanceDataAccessLog"> | boolean
    sensitiveFields?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    endpoint?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    method?: StringFilter<"MeetingAttendanceDataAccessLog"> | string
    statusCode?: IntFilter<"MeetingAttendanceDataAccessLog"> | number
    ipAddress?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    sessionId?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    requestId?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    deviceId?: StringNullableFilter<"MeetingAttendanceDataAccessLog"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttendanceDataAccessLog"> | Date | string
  }, "id">

  export type MeetingAttendanceDataAccessLogOrderByWithAggregationInput = {
    id?: SortOrder
    actorId?: SortOrderInput | SortOrder
    actorEmail?: SortOrder
    actorName?: SortOrder
    actorRole?: SortOrder
    accessType?: SortOrder
    entityType?: SortOrder
    entityIds?: SortOrderInput | SortOrder
    resultCount?: SortOrder
    hasSensitiveData?: SortOrder
    sensitiveFields?: SortOrderInput | SortOrder
    endpoint?: SortOrder
    method?: SortOrder
    statusCode?: SortOrder
    ipAddress?: SortOrderInput | SortOrder
    sessionId?: SortOrderInput | SortOrder
    requestId?: SortOrderInput | SortOrder
    deviceId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: MeetingAttendanceDataAccessLogCountOrderByAggregateInput
    _avg?: MeetingAttendanceDataAccessLogAvgOrderByAggregateInput
    _max?: MeetingAttendanceDataAccessLogMaxOrderByAggregateInput
    _min?: MeetingAttendanceDataAccessLogMinOrderByAggregateInput
    _sum?: MeetingAttendanceDataAccessLogSumOrderByAggregateInput
  }

  export type MeetingAttendanceDataAccessLogScalarWhereWithAggregatesInput = {
    AND?: MeetingAttendanceDataAccessLogScalarWhereWithAggregatesInput | MeetingAttendanceDataAccessLogScalarWhereWithAggregatesInput[]
    OR?: MeetingAttendanceDataAccessLogScalarWhereWithAggregatesInput[]
    NOT?: MeetingAttendanceDataAccessLogScalarWhereWithAggregatesInput | MeetingAttendanceDataAccessLogScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string
    actorId?: UuidNullableWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string | null
    actorEmail?: StringWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string
    actorName?: StringWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string
    actorRole?: StringWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string
    accessType?: StringWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string
    entityType?: StringWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string
    entityIds?: StringNullableWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string | null
    resultCount?: IntWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | number
    hasSensitiveData?: BoolWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | boolean
    sensitiveFields?: StringNullableWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string | null
    endpoint?: StringWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string
    method?: StringWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string
    statusCode?: IntWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | number
    ipAddress?: StringNullableWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string | null
    sessionId?: StringNullableWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string | null
    requestId?: StringNullableWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string | null
    deviceId?: StringNullableWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceDataAccessLog"> | Date | string
  }

  export type MeetingAttendanceAuditAlertRuleWhereInput = {
    AND?: MeetingAttendanceAuditAlertRuleWhereInput | MeetingAttendanceAuditAlertRuleWhereInput[]
    OR?: MeetingAttendanceAuditAlertRuleWhereInput[]
    NOT?: MeetingAttendanceAuditAlertRuleWhereInput | MeetingAttendanceAuditAlertRuleWhereInput[]
    id?: StringFilter<"MeetingAttendanceAuditAlertRule"> | string
    name?: StringFilter<"MeetingAttendanceAuditAlertRule"> | string
    description?: StringNullableFilter<"MeetingAttendanceAuditAlertRule"> | string | null
    ruleType?: StringFilter<"MeetingAttendanceAuditAlertRule"> | string
    conditions?: StringFilter<"MeetingAttendanceAuditAlertRule"> | string
    threshold?: IntNullableFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    timeWindow?: IntNullableFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    severity?: StringFilter<"MeetingAttendanceAuditAlertRule"> | string
    isEnabled?: BoolFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyEmail?: BoolFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyInApp?: BoolFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyWebhook?: BoolFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    webhookUrl?: StringNullableFilter<"MeetingAttendanceAuditAlertRule"> | string | null
    suppressionWindow?: IntNullableFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    lastTriggered?: DateTimeNullableFilter<"MeetingAttendanceAuditAlertRule"> | Date | string | null
    triggerCount?: IntFilter<"MeetingAttendanceAuditAlertRule"> | number
    createdAt?: DateTimeFilter<"MeetingAttendanceAuditAlertRule"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceAuditAlertRule"> | Date | string
    alerts?: MeetingAttendanceAuditAlertListRelationFilter
  }

  export type MeetingAttendanceAuditAlertRuleOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    ruleType?: SortOrder
    conditions?: SortOrder
    threshold?: SortOrderInput | SortOrder
    timeWindow?: SortOrderInput | SortOrder
    severity?: SortOrder
    isEnabled?: SortOrder
    notifyEmail?: SortOrder
    notifyInApp?: SortOrder
    notifyWebhook?: SortOrder
    webhookUrl?: SortOrderInput | SortOrder
    suppressionWindow?: SortOrderInput | SortOrder
    lastTriggered?: SortOrderInput | SortOrder
    triggerCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    alerts?: MeetingAttendanceAuditAlertOrderByRelationAggregateInput
  }

  export type MeetingAttendanceAuditAlertRuleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    name?: string
    AND?: MeetingAttendanceAuditAlertRuleWhereInput | MeetingAttendanceAuditAlertRuleWhereInput[]
    OR?: MeetingAttendanceAuditAlertRuleWhereInput[]
    NOT?: MeetingAttendanceAuditAlertRuleWhereInput | MeetingAttendanceAuditAlertRuleWhereInput[]
    description?: StringNullableFilter<"MeetingAttendanceAuditAlertRule"> | string | null
    ruleType?: StringFilter<"MeetingAttendanceAuditAlertRule"> | string
    conditions?: StringFilter<"MeetingAttendanceAuditAlertRule"> | string
    threshold?: IntNullableFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    timeWindow?: IntNullableFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    severity?: StringFilter<"MeetingAttendanceAuditAlertRule"> | string
    isEnabled?: BoolFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyEmail?: BoolFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyInApp?: BoolFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyWebhook?: BoolFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    webhookUrl?: StringNullableFilter<"MeetingAttendanceAuditAlertRule"> | string | null
    suppressionWindow?: IntNullableFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    lastTriggered?: DateTimeNullableFilter<"MeetingAttendanceAuditAlertRule"> | Date | string | null
    triggerCount?: IntFilter<"MeetingAttendanceAuditAlertRule"> | number
    createdAt?: DateTimeFilter<"MeetingAttendanceAuditAlertRule"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceAuditAlertRule"> | Date | string
    alerts?: MeetingAttendanceAuditAlertListRelationFilter
  }, "id" | "name">

  export type MeetingAttendanceAuditAlertRuleOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    ruleType?: SortOrder
    conditions?: SortOrder
    threshold?: SortOrderInput | SortOrder
    timeWindow?: SortOrderInput | SortOrder
    severity?: SortOrder
    isEnabled?: SortOrder
    notifyEmail?: SortOrder
    notifyInApp?: SortOrder
    notifyWebhook?: SortOrder
    webhookUrl?: SortOrderInput | SortOrder
    suppressionWindow?: SortOrderInput | SortOrder
    lastTriggered?: SortOrderInput | SortOrder
    triggerCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingAttendanceAuditAlertRuleCountOrderByAggregateInput
    _avg?: MeetingAttendanceAuditAlertRuleAvgOrderByAggregateInput
    _max?: MeetingAttendanceAuditAlertRuleMaxOrderByAggregateInput
    _min?: MeetingAttendanceAuditAlertRuleMinOrderByAggregateInput
    _sum?: MeetingAttendanceAuditAlertRuleSumOrderByAggregateInput
  }

  export type MeetingAttendanceAuditAlertRuleScalarWhereWithAggregatesInput = {
    AND?: MeetingAttendanceAuditAlertRuleScalarWhereWithAggregatesInput | MeetingAttendanceAuditAlertRuleScalarWhereWithAggregatesInput[]
    OR?: MeetingAttendanceAuditAlertRuleScalarWhereWithAggregatesInput[]
    NOT?: MeetingAttendanceAuditAlertRuleScalarWhereWithAggregatesInput | MeetingAttendanceAuditAlertRuleScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | string
    name?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | string
    description?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | string | null
    ruleType?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | string
    conditions?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | string
    threshold?: IntNullableWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    timeWindow?: IntNullableWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    severity?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | string
    isEnabled?: BoolWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyEmail?: BoolWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyInApp?: BoolWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    notifyWebhook?: BoolWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | boolean
    webhookUrl?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | string | null
    suppressionWindow?: IntNullableWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | number | null
    lastTriggered?: DateTimeNullableWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | Date | string | null
    triggerCount?: IntWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | number
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceAuditAlertRule"> | Date | string
  }

  export type MeetingAttendanceAuditAlertWhereInput = {
    AND?: MeetingAttendanceAuditAlertWhereInput | MeetingAttendanceAuditAlertWhereInput[]
    OR?: MeetingAttendanceAuditAlertWhereInput[]
    NOT?: MeetingAttendanceAuditAlertWhereInput | MeetingAttendanceAuditAlertWhereInput[]
    id?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    ruleId?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    severity?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    title?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    description?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    triggerData?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    matchedLogs?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    affectedEntities?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    status?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    acknowledgedBy?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    acknowledgedAt?: DateTimeNullableFilter<"MeetingAttendanceAuditAlert"> | Date | string | null
    resolvedBy?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    resolvedAt?: DateTimeNullableFilter<"MeetingAttendanceAuditAlert"> | Date | string | null
    resolution?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttendanceAuditAlert"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceAuditAlert"> | Date | string
    rule?: XOR<MeetingAttendanceAuditAlertRuleScalarRelationFilter, MeetingAttendanceAuditAlertRuleWhereInput>
  }

  export type MeetingAttendanceAuditAlertOrderByWithRelationInput = {
    id?: SortOrder
    ruleId?: SortOrder
    severity?: SortOrder
    title?: SortOrder
    description?: SortOrder
    triggerData?: SortOrder
    matchedLogs?: SortOrder
    affectedEntities?: SortOrderInput | SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrderInput | SortOrder
    acknowledgedAt?: SortOrderInput | SortOrder
    resolvedBy?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    resolution?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    rule?: MeetingAttendanceAuditAlertRuleOrderByWithRelationInput
  }

  export type MeetingAttendanceAuditAlertWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAttendanceAuditAlertWhereInput | MeetingAttendanceAuditAlertWhereInput[]
    OR?: MeetingAttendanceAuditAlertWhereInput[]
    NOT?: MeetingAttendanceAuditAlertWhereInput | MeetingAttendanceAuditAlertWhereInput[]
    ruleId?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    severity?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    title?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    description?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    triggerData?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    matchedLogs?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    affectedEntities?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    status?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    acknowledgedBy?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    acknowledgedAt?: DateTimeNullableFilter<"MeetingAttendanceAuditAlert"> | Date | string | null
    resolvedBy?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    resolvedAt?: DateTimeNullableFilter<"MeetingAttendanceAuditAlert"> | Date | string | null
    resolution?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttendanceAuditAlert"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceAuditAlert"> | Date | string
    rule?: XOR<MeetingAttendanceAuditAlertRuleScalarRelationFilter, MeetingAttendanceAuditAlertRuleWhereInput>
  }, "id">

  export type MeetingAttendanceAuditAlertOrderByWithAggregationInput = {
    id?: SortOrder
    ruleId?: SortOrder
    severity?: SortOrder
    title?: SortOrder
    description?: SortOrder
    triggerData?: SortOrder
    matchedLogs?: SortOrder
    affectedEntities?: SortOrderInput | SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrderInput | SortOrder
    acknowledgedAt?: SortOrderInput | SortOrder
    resolvedBy?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    resolution?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingAttendanceAuditAlertCountOrderByAggregateInput
    _max?: MeetingAttendanceAuditAlertMaxOrderByAggregateInput
    _min?: MeetingAttendanceAuditAlertMinOrderByAggregateInput
  }

  export type MeetingAttendanceAuditAlertScalarWhereWithAggregatesInput = {
    AND?: MeetingAttendanceAuditAlertScalarWhereWithAggregatesInput | MeetingAttendanceAuditAlertScalarWhereWithAggregatesInput[]
    OR?: MeetingAttendanceAuditAlertScalarWhereWithAggregatesInput[]
    NOT?: MeetingAttendanceAuditAlertScalarWhereWithAggregatesInput | MeetingAttendanceAuditAlertScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string
    ruleId?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string
    severity?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string
    title?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string
    description?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string
    triggerData?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string
    matchedLogs?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string
    affectedEntities?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string | null
    status?: StringWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string
    acknowledgedBy?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string | null
    acknowledgedAt?: DateTimeNullableWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | Date | string | null
    resolvedBy?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string | null
    resolvedAt?: DateTimeNullableWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | Date | string | null
    resolution?: StringNullableWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceAuditAlert"> | Date | string
  }

  export type MeetingAttendanceRetentionPolicyWhereInput = {
    AND?: MeetingAttendanceRetentionPolicyWhereInput | MeetingAttendanceRetentionPolicyWhereInput[]
    OR?: MeetingAttendanceRetentionPolicyWhereInput[]
    NOT?: MeetingAttendanceRetentionPolicyWhereInput | MeetingAttendanceRetentionPolicyWhereInput[]
    id?: StringFilter<"MeetingAttendanceRetentionPolicy"> | string
    entityType?: StringFilter<"MeetingAttendanceRetentionPolicy"> | string
    hotDays?: IntFilter<"MeetingAttendanceRetentionPolicy"> | number
    warmDays?: IntFilter<"MeetingAttendanceRetentionPolicy"> | number
    coldDays?: IntFilter<"MeetingAttendanceRetentionPolicy"> | number
    autoArchive?: BoolFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    autoDelete?: BoolFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    isActive?: BoolFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    createdAt?: DateTimeFilter<"MeetingAttendanceRetentionPolicy"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceRetentionPolicy"> | Date | string
  }

  export type MeetingAttendanceRetentionPolicyOrderByWithRelationInput = {
    id?: SortOrder
    entityType?: SortOrder
    hotDays?: SortOrder
    warmDays?: SortOrder
    coldDays?: SortOrder
    autoArchive?: SortOrder
    autoDelete?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceRetentionPolicyWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    entityType?: string
    AND?: MeetingAttendanceRetentionPolicyWhereInput | MeetingAttendanceRetentionPolicyWhereInput[]
    OR?: MeetingAttendanceRetentionPolicyWhereInput[]
    NOT?: MeetingAttendanceRetentionPolicyWhereInput | MeetingAttendanceRetentionPolicyWhereInput[]
    hotDays?: IntFilter<"MeetingAttendanceRetentionPolicy"> | number
    warmDays?: IntFilter<"MeetingAttendanceRetentionPolicy"> | number
    coldDays?: IntFilter<"MeetingAttendanceRetentionPolicy"> | number
    autoArchive?: BoolFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    autoDelete?: BoolFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    isActive?: BoolFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    createdAt?: DateTimeFilter<"MeetingAttendanceRetentionPolicy"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceRetentionPolicy"> | Date | string
  }, "id" | "entityType">

  export type MeetingAttendanceRetentionPolicyOrderByWithAggregationInput = {
    id?: SortOrder
    entityType?: SortOrder
    hotDays?: SortOrder
    warmDays?: SortOrder
    coldDays?: SortOrder
    autoArchive?: SortOrder
    autoDelete?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: MeetingAttendanceRetentionPolicyCountOrderByAggregateInput
    _avg?: MeetingAttendanceRetentionPolicyAvgOrderByAggregateInput
    _max?: MeetingAttendanceRetentionPolicyMaxOrderByAggregateInput
    _min?: MeetingAttendanceRetentionPolicyMinOrderByAggregateInput
    _sum?: MeetingAttendanceRetentionPolicySumOrderByAggregateInput
  }

  export type MeetingAttendanceRetentionPolicyScalarWhereWithAggregatesInput = {
    AND?: MeetingAttendanceRetentionPolicyScalarWhereWithAggregatesInput | MeetingAttendanceRetentionPolicyScalarWhereWithAggregatesInput[]
    OR?: MeetingAttendanceRetentionPolicyScalarWhereWithAggregatesInput[]
    NOT?: MeetingAttendanceRetentionPolicyScalarWhereWithAggregatesInput | MeetingAttendanceRetentionPolicyScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | string
    entityType?: StringWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | string
    hotDays?: IntWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | number
    warmDays?: IntWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | number
    coldDays?: IntWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | number
    autoArchive?: BoolWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    autoDelete?: BoolWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    isActive?: BoolWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAttendanceRetentionPolicy"> | Date | string
  }

  export type OutlookSyncMailboxWhereInput = {
    AND?: OutlookSyncMailboxWhereInput | OutlookSyncMailboxWhereInput[]
    OR?: OutlookSyncMailboxWhereInput[]
    NOT?: OutlookSyncMailboxWhereInput | OutlookSyncMailboxWhereInput[]
    id?: StringFilter<"OutlookSyncMailbox"> | string
    mailboxEmail?: StringFilter<"OutlookSyncMailbox"> | string
    mailboxType?: EnumOutlookMailboxTypeFilter<"OutlookSyncMailbox"> | $Enums.OutlookMailboxType
    isEnabled?: BoolFilter<"OutlookSyncMailbox"> | boolean
    isPrimaryDefault?: BoolFilter<"OutlookSyncMailbox"> | boolean
    createdAt?: DateTimeFilter<"OutlookSyncMailbox"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSyncMailbox"> | Date | string
    subscriptions?: OutlookSubscriptionListRelationFilter
    primaryBindings?: OutlookMeetingBindingListRelationFilter
    eventSnapshots?: OutlookEventSnapshotListRelationFilter
    syncEventLogs?: OutlookSyncEventLogListRelationFilter
    sourceVersions?: OutlookEventSourceVersionListRelationFilter
    cursor?: XOR<OutlookSyncCursorNullableScalarRelationFilter, OutlookSyncCursorWhereInput> | null
  }

  export type OutlookSyncMailboxOrderByWithRelationInput = {
    id?: SortOrder
    mailboxEmail?: SortOrder
    mailboxType?: SortOrder
    isEnabled?: SortOrder
    isPrimaryDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    subscriptions?: OutlookSubscriptionOrderByRelationAggregateInput
    primaryBindings?: OutlookMeetingBindingOrderByRelationAggregateInput
    eventSnapshots?: OutlookEventSnapshotOrderByRelationAggregateInput
    syncEventLogs?: OutlookSyncEventLogOrderByRelationAggregateInput
    sourceVersions?: OutlookEventSourceVersionOrderByRelationAggregateInput
    cursor?: OutlookSyncCursorOrderByWithRelationInput
  }

  export type OutlookSyncMailboxWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    mailboxEmail?: string
    AND?: OutlookSyncMailboxWhereInput | OutlookSyncMailboxWhereInput[]
    OR?: OutlookSyncMailboxWhereInput[]
    NOT?: OutlookSyncMailboxWhereInput | OutlookSyncMailboxWhereInput[]
    mailboxType?: EnumOutlookMailboxTypeFilter<"OutlookSyncMailbox"> | $Enums.OutlookMailboxType
    isEnabled?: BoolFilter<"OutlookSyncMailbox"> | boolean
    isPrimaryDefault?: BoolFilter<"OutlookSyncMailbox"> | boolean
    createdAt?: DateTimeFilter<"OutlookSyncMailbox"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSyncMailbox"> | Date | string
    subscriptions?: OutlookSubscriptionListRelationFilter
    primaryBindings?: OutlookMeetingBindingListRelationFilter
    eventSnapshots?: OutlookEventSnapshotListRelationFilter
    syncEventLogs?: OutlookSyncEventLogListRelationFilter
    sourceVersions?: OutlookEventSourceVersionListRelationFilter
    cursor?: XOR<OutlookSyncCursorNullableScalarRelationFilter, OutlookSyncCursorWhereInput> | null
  }, "id" | "mailboxEmail">

  export type OutlookSyncMailboxOrderByWithAggregationInput = {
    id?: SortOrder
    mailboxEmail?: SortOrder
    mailboxType?: SortOrder
    isEnabled?: SortOrder
    isPrimaryDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: OutlookSyncMailboxCountOrderByAggregateInput
    _max?: OutlookSyncMailboxMaxOrderByAggregateInput
    _min?: OutlookSyncMailboxMinOrderByAggregateInput
  }

  export type OutlookSyncMailboxScalarWhereWithAggregatesInput = {
    AND?: OutlookSyncMailboxScalarWhereWithAggregatesInput | OutlookSyncMailboxScalarWhereWithAggregatesInput[]
    OR?: OutlookSyncMailboxScalarWhereWithAggregatesInput[]
    NOT?: OutlookSyncMailboxScalarWhereWithAggregatesInput | OutlookSyncMailboxScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookSyncMailbox"> | string
    mailboxEmail?: StringWithAggregatesFilter<"OutlookSyncMailbox"> | string
    mailboxType?: EnumOutlookMailboxTypeWithAggregatesFilter<"OutlookSyncMailbox"> | $Enums.OutlookMailboxType
    isEnabled?: BoolWithAggregatesFilter<"OutlookSyncMailbox"> | boolean
    isPrimaryDefault?: BoolWithAggregatesFilter<"OutlookSyncMailbox"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"OutlookSyncMailbox"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"OutlookSyncMailbox"> | Date | string
  }

  export type OutlookSubscriptionWhereInput = {
    AND?: OutlookSubscriptionWhereInput | OutlookSubscriptionWhereInput[]
    OR?: OutlookSubscriptionWhereInput[]
    NOT?: OutlookSubscriptionWhereInput | OutlookSubscriptionWhereInput[]
    id?: StringFilter<"OutlookSubscription"> | string
    mailboxId?: StringFilter<"OutlookSubscription"> | string
    graphSubscriptionId?: StringFilter<"OutlookSubscription"> | string
    resource?: StringFilter<"OutlookSubscription"> | string
    status?: EnumOutlookSubscriptionStatusFilter<"OutlookSubscription"> | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
    lastError?: StringNullableFilter<"OutlookSubscription"> | string | null
    createdAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
  }

  export type OutlookSubscriptionOrderByWithRelationInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphSubscriptionId?: SortOrder
    resource?: SortOrder
    status?: SortOrder
    expirationAt?: SortOrder
    lastError?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    mailbox?: OutlookSyncMailboxOrderByWithRelationInput
  }

  export type OutlookSubscriptionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    graphSubscriptionId?: string
    AND?: OutlookSubscriptionWhereInput | OutlookSubscriptionWhereInput[]
    OR?: OutlookSubscriptionWhereInput[]
    NOT?: OutlookSubscriptionWhereInput | OutlookSubscriptionWhereInput[]
    mailboxId?: StringFilter<"OutlookSubscription"> | string
    resource?: StringFilter<"OutlookSubscription"> | string
    status?: EnumOutlookSubscriptionStatusFilter<"OutlookSubscription"> | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
    lastError?: StringNullableFilter<"OutlookSubscription"> | string | null
    createdAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
  }, "id" | "graphSubscriptionId">

  export type OutlookSubscriptionOrderByWithAggregationInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphSubscriptionId?: SortOrder
    resource?: SortOrder
    status?: SortOrder
    expirationAt?: SortOrder
    lastError?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: OutlookSubscriptionCountOrderByAggregateInput
    _max?: OutlookSubscriptionMaxOrderByAggregateInput
    _min?: OutlookSubscriptionMinOrderByAggregateInput
  }

  export type OutlookSubscriptionScalarWhereWithAggregatesInput = {
    AND?: OutlookSubscriptionScalarWhereWithAggregatesInput | OutlookSubscriptionScalarWhereWithAggregatesInput[]
    OR?: OutlookSubscriptionScalarWhereWithAggregatesInput[]
    NOT?: OutlookSubscriptionScalarWhereWithAggregatesInput | OutlookSubscriptionScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookSubscription"> | string
    mailboxId?: StringWithAggregatesFilter<"OutlookSubscription"> | string
    graphSubscriptionId?: StringWithAggregatesFilter<"OutlookSubscription"> | string
    resource?: StringWithAggregatesFilter<"OutlookSubscription"> | string
    status?: EnumOutlookSubscriptionStatusWithAggregatesFilter<"OutlookSubscription"> | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeWithAggregatesFilter<"OutlookSubscription"> | Date | string
    lastError?: StringNullableWithAggregatesFilter<"OutlookSubscription"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"OutlookSubscription"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"OutlookSubscription"> | Date | string
  }

  export type OutlookMeetingBindingWhereInput = {
    AND?: OutlookMeetingBindingWhereInput | OutlookMeetingBindingWhereInput[]
    OR?: OutlookMeetingBindingWhereInput[]
    NOT?: OutlookMeetingBindingWhereInput | OutlookMeetingBindingWhereInput[]
    id?: StringFilter<"OutlookMeetingBinding"> | string
    meetingId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    meetingSeriesId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    graphEventId?: StringFilter<"OutlookMeetingBinding"> | string
    iCalUId?: StringFilter<"OutlookMeetingBinding"> | string
    graphSeriesMasterId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    graphEventType?: StringFilter<"OutlookMeetingBinding"> | string
    manageStatus?: EnumOutlookManageStatusFilter<"OutlookMeetingBinding"> | $Enums.OutlookManageStatus
    bootstrapStatus?: EnumOutlookBootstrapStatusNullableFilter<"OutlookMeetingBinding"> | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    bootstrapUpdatedAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    ownerUserId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    ownerEmail?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    primaryMailboxId?: StringFilter<"OutlookMeetingBinding"> | string
    syncFrom?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
    cancellationSource?: EnumOutlookCancellationSourceNullableFilter<"OutlookMeetingBinding"> | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFilter<"OutlookMeetingBinding"> | $Enums.OutlookBindingSyncMode
    localOverrideAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    localOverrideByUserId?: UuidNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideByEmail?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideReason?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideFields?: JsonNullableFilter<"OutlookMeetingBinding">
    lastSyncedAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    createdAt?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
    meeting?: XOR<MeetingNullableScalarRelationFilter, MeetingWhereInput> | null
    meetingSeries?: XOR<MeetingSeriesNullableScalarRelationFilter, MeetingSeriesWhereInput> | null
    primaryMailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
    syncEventLogs?: OutlookSyncEventLogListRelationFilter
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionListRelationFilter
    sourceVersions?: OutlookEventSourceVersionListRelationFilter
    syncDiffs?: OutlookEventSyncDiffListRelationFilter
  }

  export type OutlookMeetingBindingOrderByWithRelationInput = {
    id?: SortOrder
    meetingId?: SortOrderInput | SortOrder
    meetingSeriesId?: SortOrderInput | SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    graphSeriesMasterId?: SortOrderInput | SortOrder
    graphEventType?: SortOrder
    manageStatus?: SortOrder
    bootstrapStatus?: SortOrderInput | SortOrder
    bootstrapError?: SortOrderInput | SortOrder
    bootstrapUpdatedAt?: SortOrderInput | SortOrder
    ownerUserId?: SortOrderInput | SortOrder
    ownerEmail?: SortOrderInput | SortOrder
    primaryMailboxId?: SortOrder
    syncFrom?: SortOrder
    cancellationSource?: SortOrderInput | SortOrder
    syncMode?: SortOrder
    localOverrideAt?: SortOrderInput | SortOrder
    localOverrideByUserId?: SortOrderInput | SortOrder
    localOverrideByEmail?: SortOrderInput | SortOrder
    localOverrideReason?: SortOrderInput | SortOrder
    localOverrideFields?: SortOrderInput | SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    meeting?: MeetingOrderByWithRelationInput
    meetingSeries?: MeetingSeriesOrderByWithRelationInput
    primaryMailbox?: OutlookSyncMailboxOrderByWithRelationInput
    syncEventLogs?: OutlookSyncEventLogOrderByRelationAggregateInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionOrderByRelationAggregateInput
    sourceVersions?: OutlookEventSourceVersionOrderByRelationAggregateInput
    syncDiffs?: OutlookEventSyncDiffOrderByRelationAggregateInput
  }

  export type OutlookMeetingBindingWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    graphEventId?: string
    AND?: OutlookMeetingBindingWhereInput | OutlookMeetingBindingWhereInput[]
    OR?: OutlookMeetingBindingWhereInput[]
    NOT?: OutlookMeetingBindingWhereInput | OutlookMeetingBindingWhereInput[]
    meetingId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    meetingSeriesId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    iCalUId?: StringFilter<"OutlookMeetingBinding"> | string
    graphSeriesMasterId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    graphEventType?: StringFilter<"OutlookMeetingBinding"> | string
    manageStatus?: EnumOutlookManageStatusFilter<"OutlookMeetingBinding"> | $Enums.OutlookManageStatus
    bootstrapStatus?: EnumOutlookBootstrapStatusNullableFilter<"OutlookMeetingBinding"> | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    bootstrapUpdatedAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    ownerUserId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    ownerEmail?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    primaryMailboxId?: StringFilter<"OutlookMeetingBinding"> | string
    syncFrom?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
    cancellationSource?: EnumOutlookCancellationSourceNullableFilter<"OutlookMeetingBinding"> | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFilter<"OutlookMeetingBinding"> | $Enums.OutlookBindingSyncMode
    localOverrideAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    localOverrideByUserId?: UuidNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideByEmail?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideReason?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideFields?: JsonNullableFilter<"OutlookMeetingBinding">
    lastSyncedAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    createdAt?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
    meeting?: XOR<MeetingNullableScalarRelationFilter, MeetingWhereInput> | null
    meetingSeries?: XOR<MeetingSeriesNullableScalarRelationFilter, MeetingSeriesWhereInput> | null
    primaryMailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
    syncEventLogs?: OutlookSyncEventLogListRelationFilter
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionListRelationFilter
    sourceVersions?: OutlookEventSourceVersionListRelationFilter
    syncDiffs?: OutlookEventSyncDiffListRelationFilter
  }, "id" | "graphEventId">

  export type OutlookMeetingBindingOrderByWithAggregationInput = {
    id?: SortOrder
    meetingId?: SortOrderInput | SortOrder
    meetingSeriesId?: SortOrderInput | SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    graphSeriesMasterId?: SortOrderInput | SortOrder
    graphEventType?: SortOrder
    manageStatus?: SortOrder
    bootstrapStatus?: SortOrderInput | SortOrder
    bootstrapError?: SortOrderInput | SortOrder
    bootstrapUpdatedAt?: SortOrderInput | SortOrder
    ownerUserId?: SortOrderInput | SortOrder
    ownerEmail?: SortOrderInput | SortOrder
    primaryMailboxId?: SortOrder
    syncFrom?: SortOrder
    cancellationSource?: SortOrderInput | SortOrder
    syncMode?: SortOrder
    localOverrideAt?: SortOrderInput | SortOrder
    localOverrideByUserId?: SortOrderInput | SortOrder
    localOverrideByEmail?: SortOrderInput | SortOrder
    localOverrideReason?: SortOrderInput | SortOrder
    localOverrideFields?: SortOrderInput | SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: OutlookMeetingBindingCountOrderByAggregateInput
    _max?: OutlookMeetingBindingMaxOrderByAggregateInput
    _min?: OutlookMeetingBindingMinOrderByAggregateInput
  }

  export type OutlookMeetingBindingScalarWhereWithAggregatesInput = {
    AND?: OutlookMeetingBindingScalarWhereWithAggregatesInput | OutlookMeetingBindingScalarWhereWithAggregatesInput[]
    OR?: OutlookMeetingBindingScalarWhereWithAggregatesInput[]
    NOT?: OutlookMeetingBindingScalarWhereWithAggregatesInput | OutlookMeetingBindingScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookMeetingBinding"> | string
    meetingId?: StringNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    meetingSeriesId?: StringNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    graphEventId?: StringWithAggregatesFilter<"OutlookMeetingBinding"> | string
    iCalUId?: StringWithAggregatesFilter<"OutlookMeetingBinding"> | string
    graphSeriesMasterId?: StringNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    graphEventType?: StringWithAggregatesFilter<"OutlookMeetingBinding"> | string
    manageStatus?: EnumOutlookManageStatusWithAggregatesFilter<"OutlookMeetingBinding"> | $Enums.OutlookManageStatus
    bootstrapStatus?: EnumOutlookBootstrapStatusNullableWithAggregatesFilter<"OutlookMeetingBinding"> | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: StringNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    bootstrapUpdatedAt?: DateTimeNullableWithAggregatesFilter<"OutlookMeetingBinding"> | Date | string | null
    ownerUserId?: StringNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    ownerEmail?: StringNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    primaryMailboxId?: StringWithAggregatesFilter<"OutlookMeetingBinding"> | string
    syncFrom?: DateTimeWithAggregatesFilter<"OutlookMeetingBinding"> | Date | string
    cancellationSource?: EnumOutlookCancellationSourceNullableWithAggregatesFilter<"OutlookMeetingBinding"> | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeWithAggregatesFilter<"OutlookMeetingBinding"> | $Enums.OutlookBindingSyncMode
    localOverrideAt?: DateTimeNullableWithAggregatesFilter<"OutlookMeetingBinding"> | Date | string | null
    localOverrideByUserId?: UuidNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    localOverrideByEmail?: StringNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    localOverrideReason?: StringNullableWithAggregatesFilter<"OutlookMeetingBinding"> | string | null
    localOverrideFields?: JsonNullableWithAggregatesFilter<"OutlookMeetingBinding">
    lastSyncedAt?: DateTimeNullableWithAggregatesFilter<"OutlookMeetingBinding"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"OutlookMeetingBinding"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"OutlookMeetingBinding"> | Date | string
  }

  export type OutlookSeriesOccurrenceExclusionWhereInput = {
    AND?: OutlookSeriesOccurrenceExclusionWhereInput | OutlookSeriesOccurrenceExclusionWhereInput[]
    OR?: OutlookSeriesOccurrenceExclusionWhereInput[]
    NOT?: OutlookSeriesOccurrenceExclusionWhereInput | OutlookSeriesOccurrenceExclusionWhereInput[]
    id?: StringFilter<"OutlookSeriesOccurrenceExclusion"> | string
    bindingId?: StringFilter<"OutlookSeriesOccurrenceExclusion"> | string
    occurrenceGraphEventId?: StringFilter<"OutlookSeriesOccurrenceExclusion"> | string
    iCalUId?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    reason?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    createdByEmail?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    createdAt?: DateTimeFilter<"OutlookSeriesOccurrenceExclusion"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSeriesOccurrenceExclusion"> | Date | string
    binding?: XOR<OutlookMeetingBindingScalarRelationFilter, OutlookMeetingBindingWhereInput>
  }

  export type OutlookSeriesOccurrenceExclusionOrderByWithRelationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    occurrenceGraphEventId?: SortOrder
    iCalUId?: SortOrderInput | SortOrder
    reason?: SortOrderInput | SortOrder
    createdByEmail?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    binding?: OutlookMeetingBindingOrderByWithRelationInput
  }

  export type OutlookSeriesOccurrenceExclusionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    bindingId_occurrenceGraphEventId?: OutlookSeriesOccurrenceExclusionBindingIdOccurrenceGraphEventIdCompoundUniqueInput
    AND?: OutlookSeriesOccurrenceExclusionWhereInput | OutlookSeriesOccurrenceExclusionWhereInput[]
    OR?: OutlookSeriesOccurrenceExclusionWhereInput[]
    NOT?: OutlookSeriesOccurrenceExclusionWhereInput | OutlookSeriesOccurrenceExclusionWhereInput[]
    bindingId?: StringFilter<"OutlookSeriesOccurrenceExclusion"> | string
    occurrenceGraphEventId?: StringFilter<"OutlookSeriesOccurrenceExclusion"> | string
    iCalUId?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    reason?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    createdByEmail?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    createdAt?: DateTimeFilter<"OutlookSeriesOccurrenceExclusion"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSeriesOccurrenceExclusion"> | Date | string
    binding?: XOR<OutlookMeetingBindingScalarRelationFilter, OutlookMeetingBindingWhereInput>
  }, "id" | "bindingId_occurrenceGraphEventId">

  export type OutlookSeriesOccurrenceExclusionOrderByWithAggregationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    occurrenceGraphEventId?: SortOrder
    iCalUId?: SortOrderInput | SortOrder
    reason?: SortOrderInput | SortOrder
    createdByEmail?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: OutlookSeriesOccurrenceExclusionCountOrderByAggregateInput
    _max?: OutlookSeriesOccurrenceExclusionMaxOrderByAggregateInput
    _min?: OutlookSeriesOccurrenceExclusionMinOrderByAggregateInput
  }

  export type OutlookSeriesOccurrenceExclusionScalarWhereWithAggregatesInput = {
    AND?: OutlookSeriesOccurrenceExclusionScalarWhereWithAggregatesInput | OutlookSeriesOccurrenceExclusionScalarWhereWithAggregatesInput[]
    OR?: OutlookSeriesOccurrenceExclusionScalarWhereWithAggregatesInput[]
    NOT?: OutlookSeriesOccurrenceExclusionScalarWhereWithAggregatesInput | OutlookSeriesOccurrenceExclusionScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookSeriesOccurrenceExclusion"> | string
    bindingId?: StringWithAggregatesFilter<"OutlookSeriesOccurrenceExclusion"> | string
    occurrenceGraphEventId?: StringWithAggregatesFilter<"OutlookSeriesOccurrenceExclusion"> | string
    iCalUId?: StringNullableWithAggregatesFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    reason?: StringNullableWithAggregatesFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    createdByEmail?: StringNullableWithAggregatesFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"OutlookSeriesOccurrenceExclusion"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"OutlookSeriesOccurrenceExclusion"> | Date | string
  }

  export type OutlookSyncEventLogWhereInput = {
    AND?: OutlookSyncEventLogWhereInput | OutlookSyncEventLogWhereInput[]
    OR?: OutlookSyncEventLogWhereInput[]
    NOT?: OutlookSyncEventLogWhereInput | OutlookSyncEventLogWhereInput[]
    id?: StringFilter<"OutlookSyncEventLog"> | string
    bindingId?: StringFilter<"OutlookSyncEventLog"> | string
    mailboxId?: StringFilter<"OutlookSyncEventLog"> | string
    eventType?: StringFilter<"OutlookSyncEventLog"> | string
    resultStatus?: StringFilter<"OutlookSyncEventLog"> | string
    message?: StringNullableFilter<"OutlookSyncEventLog"> | string | null
    payload?: JsonNullableFilter<"OutlookSyncEventLog">
    createdAt?: DateTimeFilter<"OutlookSyncEventLog"> | Date | string
    binding?: XOR<OutlookMeetingBindingScalarRelationFilter, OutlookMeetingBindingWhereInput>
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
  }

  export type OutlookSyncEventLogOrderByWithRelationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    eventType?: SortOrder
    resultStatus?: SortOrder
    message?: SortOrderInput | SortOrder
    payload?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    binding?: OutlookMeetingBindingOrderByWithRelationInput
    mailbox?: OutlookSyncMailboxOrderByWithRelationInput
  }

  export type OutlookSyncEventLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: OutlookSyncEventLogWhereInput | OutlookSyncEventLogWhereInput[]
    OR?: OutlookSyncEventLogWhereInput[]
    NOT?: OutlookSyncEventLogWhereInput | OutlookSyncEventLogWhereInput[]
    bindingId?: StringFilter<"OutlookSyncEventLog"> | string
    mailboxId?: StringFilter<"OutlookSyncEventLog"> | string
    eventType?: StringFilter<"OutlookSyncEventLog"> | string
    resultStatus?: StringFilter<"OutlookSyncEventLog"> | string
    message?: StringNullableFilter<"OutlookSyncEventLog"> | string | null
    payload?: JsonNullableFilter<"OutlookSyncEventLog">
    createdAt?: DateTimeFilter<"OutlookSyncEventLog"> | Date | string
    binding?: XOR<OutlookMeetingBindingScalarRelationFilter, OutlookMeetingBindingWhereInput>
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
  }, "id">

  export type OutlookSyncEventLogOrderByWithAggregationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    eventType?: SortOrder
    resultStatus?: SortOrder
    message?: SortOrderInput | SortOrder
    payload?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: OutlookSyncEventLogCountOrderByAggregateInput
    _max?: OutlookSyncEventLogMaxOrderByAggregateInput
    _min?: OutlookSyncEventLogMinOrderByAggregateInput
  }

  export type OutlookSyncEventLogScalarWhereWithAggregatesInput = {
    AND?: OutlookSyncEventLogScalarWhereWithAggregatesInput | OutlookSyncEventLogScalarWhereWithAggregatesInput[]
    OR?: OutlookSyncEventLogScalarWhereWithAggregatesInput[]
    NOT?: OutlookSyncEventLogScalarWhereWithAggregatesInput | OutlookSyncEventLogScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookSyncEventLog"> | string
    bindingId?: StringWithAggregatesFilter<"OutlookSyncEventLog"> | string
    mailboxId?: StringWithAggregatesFilter<"OutlookSyncEventLog"> | string
    eventType?: StringWithAggregatesFilter<"OutlookSyncEventLog"> | string
    resultStatus?: StringWithAggregatesFilter<"OutlookSyncEventLog"> | string
    message?: StringNullableWithAggregatesFilter<"OutlookSyncEventLog"> | string | null
    payload?: JsonNullableWithAggregatesFilter<"OutlookSyncEventLog">
    createdAt?: DateTimeWithAggregatesFilter<"OutlookSyncEventLog"> | Date | string
  }

  export type OutlookEventSourceVersionWhereInput = {
    AND?: OutlookEventSourceVersionWhereInput | OutlookEventSourceVersionWhereInput[]
    OR?: OutlookEventSourceVersionWhereInput[]
    NOT?: OutlookEventSourceVersionWhereInput | OutlookEventSourceVersionWhereInput[]
    id?: StringFilter<"OutlookEventSourceVersion"> | string
    bindingId?: StringFilter<"OutlookEventSourceVersion"> | string
    mailboxId?: StringFilter<"OutlookEventSourceVersion"> | string
    graphEventId?: StringFilter<"OutlookEventSourceVersion"> | string
    graphSeriesMasterId?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    graphEventType?: StringFilter<"OutlookEventSourceVersion"> | string
    versionSource?: StringFilter<"OutlookEventSourceVersion"> | string
    graphLastModifiedAt?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    fetchedAt?: DateTimeFilter<"OutlookEventSourceVersion"> | Date | string
    etag?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    payloadHash?: StringFilter<"OutlookEventSourceVersion"> | string
    attendeesCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesRequiredCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesOptionalCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesResourceCount?: IntFilter<"OutlookEventSourceVersion"> | number
    organizerEmail?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    startTime?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    endTime?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    isCancelled?: BoolFilter<"OutlookEventSourceVersion"> | boolean
    rawPayload?: JsonFilter<"OutlookEventSourceVersion">
    normalizedPayload?: JsonFilter<"OutlookEventSourceVersion">
    createdAt?: DateTimeFilter<"OutlookEventSourceVersion"> | Date | string
    binding?: XOR<OutlookMeetingBindingScalarRelationFilter, OutlookMeetingBindingWhereInput>
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
    diffsAsCurrent?: OutlookEventSyncDiffListRelationFilter
    diffsAsPrevious?: OutlookEventSyncDiffListRelationFilter
  }

  export type OutlookEventSourceVersionOrderByWithRelationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    graphSeriesMasterId?: SortOrderInput | SortOrder
    graphEventType?: SortOrder
    versionSource?: SortOrder
    graphLastModifiedAt?: SortOrderInput | SortOrder
    fetchedAt?: SortOrder
    etag?: SortOrderInput | SortOrder
    payloadHash?: SortOrder
    attendeesCount?: SortOrder
    attendeesRequiredCount?: SortOrder
    attendeesOptionalCount?: SortOrder
    attendeesResourceCount?: SortOrder
    organizerEmail?: SortOrderInput | SortOrder
    startTime?: SortOrderInput | SortOrder
    endTime?: SortOrderInput | SortOrder
    isCancelled?: SortOrder
    rawPayload?: SortOrder
    normalizedPayload?: SortOrder
    createdAt?: SortOrder
    binding?: OutlookMeetingBindingOrderByWithRelationInput
    mailbox?: OutlookSyncMailboxOrderByWithRelationInput
    diffsAsCurrent?: OutlookEventSyncDiffOrderByRelationAggregateInput
    diffsAsPrevious?: OutlookEventSyncDiffOrderByRelationAggregateInput
  }

  export type OutlookEventSourceVersionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    bindingId_payloadHash?: OutlookEventSourceVersionBindingIdPayloadHashCompoundUniqueInput
    AND?: OutlookEventSourceVersionWhereInput | OutlookEventSourceVersionWhereInput[]
    OR?: OutlookEventSourceVersionWhereInput[]
    NOT?: OutlookEventSourceVersionWhereInput | OutlookEventSourceVersionWhereInput[]
    bindingId?: StringFilter<"OutlookEventSourceVersion"> | string
    mailboxId?: StringFilter<"OutlookEventSourceVersion"> | string
    graphEventId?: StringFilter<"OutlookEventSourceVersion"> | string
    graphSeriesMasterId?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    graphEventType?: StringFilter<"OutlookEventSourceVersion"> | string
    versionSource?: StringFilter<"OutlookEventSourceVersion"> | string
    graphLastModifiedAt?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    fetchedAt?: DateTimeFilter<"OutlookEventSourceVersion"> | Date | string
    etag?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    payloadHash?: StringFilter<"OutlookEventSourceVersion"> | string
    attendeesCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesRequiredCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesOptionalCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesResourceCount?: IntFilter<"OutlookEventSourceVersion"> | number
    organizerEmail?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    startTime?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    endTime?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    isCancelled?: BoolFilter<"OutlookEventSourceVersion"> | boolean
    rawPayload?: JsonFilter<"OutlookEventSourceVersion">
    normalizedPayload?: JsonFilter<"OutlookEventSourceVersion">
    createdAt?: DateTimeFilter<"OutlookEventSourceVersion"> | Date | string
    binding?: XOR<OutlookMeetingBindingScalarRelationFilter, OutlookMeetingBindingWhereInput>
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
    diffsAsCurrent?: OutlookEventSyncDiffListRelationFilter
    diffsAsPrevious?: OutlookEventSyncDiffListRelationFilter
  }, "id" | "bindingId_payloadHash">

  export type OutlookEventSourceVersionOrderByWithAggregationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    graphSeriesMasterId?: SortOrderInput | SortOrder
    graphEventType?: SortOrder
    versionSource?: SortOrder
    graphLastModifiedAt?: SortOrderInput | SortOrder
    fetchedAt?: SortOrder
    etag?: SortOrderInput | SortOrder
    payloadHash?: SortOrder
    attendeesCount?: SortOrder
    attendeesRequiredCount?: SortOrder
    attendeesOptionalCount?: SortOrder
    attendeesResourceCount?: SortOrder
    organizerEmail?: SortOrderInput | SortOrder
    startTime?: SortOrderInput | SortOrder
    endTime?: SortOrderInput | SortOrder
    isCancelled?: SortOrder
    rawPayload?: SortOrder
    normalizedPayload?: SortOrder
    createdAt?: SortOrder
    _count?: OutlookEventSourceVersionCountOrderByAggregateInput
    _avg?: OutlookEventSourceVersionAvgOrderByAggregateInput
    _max?: OutlookEventSourceVersionMaxOrderByAggregateInput
    _min?: OutlookEventSourceVersionMinOrderByAggregateInput
    _sum?: OutlookEventSourceVersionSumOrderByAggregateInput
  }

  export type OutlookEventSourceVersionScalarWhereWithAggregatesInput = {
    AND?: OutlookEventSourceVersionScalarWhereWithAggregatesInput | OutlookEventSourceVersionScalarWhereWithAggregatesInput[]
    OR?: OutlookEventSourceVersionScalarWhereWithAggregatesInput[]
    NOT?: OutlookEventSourceVersionScalarWhereWithAggregatesInput | OutlookEventSourceVersionScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookEventSourceVersion"> | string
    bindingId?: StringWithAggregatesFilter<"OutlookEventSourceVersion"> | string
    mailboxId?: StringWithAggregatesFilter<"OutlookEventSourceVersion"> | string
    graphEventId?: StringWithAggregatesFilter<"OutlookEventSourceVersion"> | string
    graphSeriesMasterId?: StringNullableWithAggregatesFilter<"OutlookEventSourceVersion"> | string | null
    graphEventType?: StringWithAggregatesFilter<"OutlookEventSourceVersion"> | string
    versionSource?: StringWithAggregatesFilter<"OutlookEventSourceVersion"> | string
    graphLastModifiedAt?: DateTimeNullableWithAggregatesFilter<"OutlookEventSourceVersion"> | Date | string | null
    fetchedAt?: DateTimeWithAggregatesFilter<"OutlookEventSourceVersion"> | Date | string
    etag?: StringNullableWithAggregatesFilter<"OutlookEventSourceVersion"> | string | null
    payloadHash?: StringWithAggregatesFilter<"OutlookEventSourceVersion"> | string
    attendeesCount?: IntWithAggregatesFilter<"OutlookEventSourceVersion"> | number
    attendeesRequiredCount?: IntWithAggregatesFilter<"OutlookEventSourceVersion"> | number
    attendeesOptionalCount?: IntWithAggregatesFilter<"OutlookEventSourceVersion"> | number
    attendeesResourceCount?: IntWithAggregatesFilter<"OutlookEventSourceVersion"> | number
    organizerEmail?: StringNullableWithAggregatesFilter<"OutlookEventSourceVersion"> | string | null
    startTime?: DateTimeNullableWithAggregatesFilter<"OutlookEventSourceVersion"> | Date | string | null
    endTime?: DateTimeNullableWithAggregatesFilter<"OutlookEventSourceVersion"> | Date | string | null
    isCancelled?: BoolWithAggregatesFilter<"OutlookEventSourceVersion"> | boolean
    rawPayload?: JsonWithAggregatesFilter<"OutlookEventSourceVersion">
    normalizedPayload?: JsonWithAggregatesFilter<"OutlookEventSourceVersion">
    createdAt?: DateTimeWithAggregatesFilter<"OutlookEventSourceVersion"> | Date | string
  }

  export type OutlookEventSyncDiffWhereInput = {
    AND?: OutlookEventSyncDiffWhereInput | OutlookEventSyncDiffWhereInput[]
    OR?: OutlookEventSyncDiffWhereInput[]
    NOT?: OutlookEventSyncDiffWhereInput | OutlookEventSyncDiffWhereInput[]
    id?: StringFilter<"OutlookEventSyncDiff"> | string
    bindingId?: StringFilter<"OutlookEventSyncDiff"> | string
    sourceVersionId?: StringFilter<"OutlookEventSyncDiff"> | string
    previousSourceVersionId?: StringNullableFilter<"OutlookEventSyncDiff"> | string | null
    detectedAt?: DateTimeFilter<"OutlookEventSyncDiff"> | Date | string
    diffType?: StringFilter<"OutlookEventSyncDiff"> | string
    changedFields?: JsonFilter<"OutlookEventSyncDiff">
    summaryJson?: JsonFilter<"OutlookEventSyncDiff">
    attendeesAdded?: JsonNullableFilter<"OutlookEventSyncDiff">
    attendeesRemoved?: JsonNullableFilter<"OutlookEventSyncDiff">
    attendeesResponseChanged?: JsonNullableFilter<"OutlookEventSyncDiff">
    graphAttendeesCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    graphAttendeesCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    internalMatchedCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    internalMatchedCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    meetingRequiredCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    meetingRequiredCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    createdAt?: DateTimeFilter<"OutlookEventSyncDiff"> | Date | string
    binding?: XOR<OutlookMeetingBindingScalarRelationFilter, OutlookMeetingBindingWhereInput>
    sourceVersion?: XOR<OutlookEventSourceVersionScalarRelationFilter, OutlookEventSourceVersionWhereInput>
    previousSourceVersion?: XOR<OutlookEventSourceVersionNullableScalarRelationFilter, OutlookEventSourceVersionWhereInput> | null
  }

  export type OutlookEventSyncDiffOrderByWithRelationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    sourceVersionId?: SortOrder
    previousSourceVersionId?: SortOrderInput | SortOrder
    detectedAt?: SortOrder
    diffType?: SortOrder
    changedFields?: SortOrder
    summaryJson?: SortOrder
    attendeesAdded?: SortOrderInput | SortOrder
    attendeesRemoved?: SortOrderInput | SortOrder
    attendeesResponseChanged?: SortOrderInput | SortOrder
    graphAttendeesCountBefore?: SortOrderInput | SortOrder
    graphAttendeesCountAfter?: SortOrderInput | SortOrder
    internalMatchedCountBefore?: SortOrderInput | SortOrder
    internalMatchedCountAfter?: SortOrderInput | SortOrder
    meetingRequiredCountBefore?: SortOrderInput | SortOrder
    meetingRequiredCountAfter?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    binding?: OutlookMeetingBindingOrderByWithRelationInput
    sourceVersion?: OutlookEventSourceVersionOrderByWithRelationInput
    previousSourceVersion?: OutlookEventSourceVersionOrderByWithRelationInput
  }

  export type OutlookEventSyncDiffWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: OutlookEventSyncDiffWhereInput | OutlookEventSyncDiffWhereInput[]
    OR?: OutlookEventSyncDiffWhereInput[]
    NOT?: OutlookEventSyncDiffWhereInput | OutlookEventSyncDiffWhereInput[]
    bindingId?: StringFilter<"OutlookEventSyncDiff"> | string
    sourceVersionId?: StringFilter<"OutlookEventSyncDiff"> | string
    previousSourceVersionId?: StringNullableFilter<"OutlookEventSyncDiff"> | string | null
    detectedAt?: DateTimeFilter<"OutlookEventSyncDiff"> | Date | string
    diffType?: StringFilter<"OutlookEventSyncDiff"> | string
    changedFields?: JsonFilter<"OutlookEventSyncDiff">
    summaryJson?: JsonFilter<"OutlookEventSyncDiff">
    attendeesAdded?: JsonNullableFilter<"OutlookEventSyncDiff">
    attendeesRemoved?: JsonNullableFilter<"OutlookEventSyncDiff">
    attendeesResponseChanged?: JsonNullableFilter<"OutlookEventSyncDiff">
    graphAttendeesCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    graphAttendeesCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    internalMatchedCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    internalMatchedCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    meetingRequiredCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    meetingRequiredCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    createdAt?: DateTimeFilter<"OutlookEventSyncDiff"> | Date | string
    binding?: XOR<OutlookMeetingBindingScalarRelationFilter, OutlookMeetingBindingWhereInput>
    sourceVersion?: XOR<OutlookEventSourceVersionScalarRelationFilter, OutlookEventSourceVersionWhereInput>
    previousSourceVersion?: XOR<OutlookEventSourceVersionNullableScalarRelationFilter, OutlookEventSourceVersionWhereInput> | null
  }, "id">

  export type OutlookEventSyncDiffOrderByWithAggregationInput = {
    id?: SortOrder
    bindingId?: SortOrder
    sourceVersionId?: SortOrder
    previousSourceVersionId?: SortOrderInput | SortOrder
    detectedAt?: SortOrder
    diffType?: SortOrder
    changedFields?: SortOrder
    summaryJson?: SortOrder
    attendeesAdded?: SortOrderInput | SortOrder
    attendeesRemoved?: SortOrderInput | SortOrder
    attendeesResponseChanged?: SortOrderInput | SortOrder
    graphAttendeesCountBefore?: SortOrderInput | SortOrder
    graphAttendeesCountAfter?: SortOrderInput | SortOrder
    internalMatchedCountBefore?: SortOrderInput | SortOrder
    internalMatchedCountAfter?: SortOrderInput | SortOrder
    meetingRequiredCountBefore?: SortOrderInput | SortOrder
    meetingRequiredCountAfter?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: OutlookEventSyncDiffCountOrderByAggregateInput
    _avg?: OutlookEventSyncDiffAvgOrderByAggregateInput
    _max?: OutlookEventSyncDiffMaxOrderByAggregateInput
    _min?: OutlookEventSyncDiffMinOrderByAggregateInput
    _sum?: OutlookEventSyncDiffSumOrderByAggregateInput
  }

  export type OutlookEventSyncDiffScalarWhereWithAggregatesInput = {
    AND?: OutlookEventSyncDiffScalarWhereWithAggregatesInput | OutlookEventSyncDiffScalarWhereWithAggregatesInput[]
    OR?: OutlookEventSyncDiffScalarWhereWithAggregatesInput[]
    NOT?: OutlookEventSyncDiffScalarWhereWithAggregatesInput | OutlookEventSyncDiffScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookEventSyncDiff"> | string
    bindingId?: StringWithAggregatesFilter<"OutlookEventSyncDiff"> | string
    sourceVersionId?: StringWithAggregatesFilter<"OutlookEventSyncDiff"> | string
    previousSourceVersionId?: StringNullableWithAggregatesFilter<"OutlookEventSyncDiff"> | string | null
    detectedAt?: DateTimeWithAggregatesFilter<"OutlookEventSyncDiff"> | Date | string
    diffType?: StringWithAggregatesFilter<"OutlookEventSyncDiff"> | string
    changedFields?: JsonWithAggregatesFilter<"OutlookEventSyncDiff">
    summaryJson?: JsonWithAggregatesFilter<"OutlookEventSyncDiff">
    attendeesAdded?: JsonNullableWithAggregatesFilter<"OutlookEventSyncDiff">
    attendeesRemoved?: JsonNullableWithAggregatesFilter<"OutlookEventSyncDiff">
    attendeesResponseChanged?: JsonNullableWithAggregatesFilter<"OutlookEventSyncDiff">
    graphAttendeesCountBefore?: IntNullableWithAggregatesFilter<"OutlookEventSyncDiff"> | number | null
    graphAttendeesCountAfter?: IntNullableWithAggregatesFilter<"OutlookEventSyncDiff"> | number | null
    internalMatchedCountBefore?: IntNullableWithAggregatesFilter<"OutlookEventSyncDiff"> | number | null
    internalMatchedCountAfter?: IntNullableWithAggregatesFilter<"OutlookEventSyncDiff"> | number | null
    meetingRequiredCountBefore?: IntNullableWithAggregatesFilter<"OutlookEventSyncDiff"> | number | null
    meetingRequiredCountAfter?: IntNullableWithAggregatesFilter<"OutlookEventSyncDiff"> | number | null
    createdAt?: DateTimeWithAggregatesFilter<"OutlookEventSyncDiff"> | Date | string
  }

  export type OutlookSyncCursorWhereInput = {
    AND?: OutlookSyncCursorWhereInput | OutlookSyncCursorWhereInput[]
    OR?: OutlookSyncCursorWhereInput[]
    NOT?: OutlookSyncCursorWhereInput | OutlookSyncCursorWhereInput[]
    id?: StringFilter<"OutlookSyncCursor"> | string
    mailboxId?: StringFilter<"OutlookSyncCursor"> | string
    deltaToken?: StringFilter<"OutlookSyncCursor"> | string
    lastSyncedAt?: DateTimeNullableFilter<"OutlookSyncCursor"> | Date | string | null
    lastReconciledAt?: DateTimeNullableFilter<"OutlookSyncCursor"> | Date | string | null
    createdAt?: DateTimeFilter<"OutlookSyncCursor"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSyncCursor"> | Date | string
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
  }

  export type OutlookSyncCursorOrderByWithRelationInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    deltaToken?: SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    lastReconciledAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    mailbox?: OutlookSyncMailboxOrderByWithRelationInput
  }

  export type OutlookSyncCursorWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    mailboxId?: string
    AND?: OutlookSyncCursorWhereInput | OutlookSyncCursorWhereInput[]
    OR?: OutlookSyncCursorWhereInput[]
    NOT?: OutlookSyncCursorWhereInput | OutlookSyncCursorWhereInput[]
    deltaToken?: StringFilter<"OutlookSyncCursor"> | string
    lastSyncedAt?: DateTimeNullableFilter<"OutlookSyncCursor"> | Date | string | null
    lastReconciledAt?: DateTimeNullableFilter<"OutlookSyncCursor"> | Date | string | null
    createdAt?: DateTimeFilter<"OutlookSyncCursor"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSyncCursor"> | Date | string
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
  }, "id" | "mailboxId">

  export type OutlookSyncCursorOrderByWithAggregationInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    deltaToken?: SortOrder
    lastSyncedAt?: SortOrderInput | SortOrder
    lastReconciledAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: OutlookSyncCursorCountOrderByAggregateInput
    _max?: OutlookSyncCursorMaxOrderByAggregateInput
    _min?: OutlookSyncCursorMinOrderByAggregateInput
  }

  export type OutlookSyncCursorScalarWhereWithAggregatesInput = {
    AND?: OutlookSyncCursorScalarWhereWithAggregatesInput | OutlookSyncCursorScalarWhereWithAggregatesInput[]
    OR?: OutlookSyncCursorScalarWhereWithAggregatesInput[]
    NOT?: OutlookSyncCursorScalarWhereWithAggregatesInput | OutlookSyncCursorScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookSyncCursor"> | string
    mailboxId?: StringWithAggregatesFilter<"OutlookSyncCursor"> | string
    deltaToken?: StringWithAggregatesFilter<"OutlookSyncCursor"> | string
    lastSyncedAt?: DateTimeNullableWithAggregatesFilter<"OutlookSyncCursor"> | Date | string | null
    lastReconciledAt?: DateTimeNullableWithAggregatesFilter<"OutlookSyncCursor"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"OutlookSyncCursor"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"OutlookSyncCursor"> | Date | string
  }

  export type OutlookEventSnapshotWhereInput = {
    AND?: OutlookEventSnapshotWhereInput | OutlookEventSnapshotWhereInput[]
    OR?: OutlookEventSnapshotWhereInput[]
    NOT?: OutlookEventSnapshotWhereInput | OutlookEventSnapshotWhereInput[]
    id?: StringFilter<"OutlookEventSnapshot"> | string
    mailboxId?: StringFilter<"OutlookEventSnapshot"> | string
    graphEventId?: StringFilter<"OutlookEventSnapshot"> | string
    iCalUId?: StringFilter<"OutlookEventSnapshot"> | string
    title?: StringFilter<"OutlookEventSnapshot"> | string
    startTime?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    endTime?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    timezone?: StringFilter<"OutlookEventSnapshot"> | string
    eventType?: StringFilter<"OutlookEventSnapshot"> | string
    isCancelled?: BoolFilter<"OutlookEventSnapshot"> | boolean
    seriesMasterId?: StringNullableFilter<"OutlookEventSnapshot"> | string | null
    organizerEmail?: StringNullableFilter<"OutlookEventSnapshot"> | string | null
    lastModifiedAt?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    rawPayload?: JsonNullableFilter<"OutlookEventSnapshot">
    createdAt?: DateTimeFilter<"OutlookEventSnapshot"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookEventSnapshot"> | Date | string
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
  }

  export type OutlookEventSnapshotOrderByWithRelationInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    title?: SortOrder
    startTime?: SortOrderInput | SortOrder
    endTime?: SortOrderInput | SortOrder
    timezone?: SortOrder
    eventType?: SortOrder
    isCancelled?: SortOrder
    seriesMasterId?: SortOrderInput | SortOrder
    organizerEmail?: SortOrderInput | SortOrder
    lastModifiedAt?: SortOrderInput | SortOrder
    rawPayload?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    mailbox?: OutlookSyncMailboxOrderByWithRelationInput
  }

  export type OutlookEventSnapshotWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    mailboxId_graphEventId?: OutlookEventSnapshotMailboxIdGraphEventIdCompoundUniqueInput
    AND?: OutlookEventSnapshotWhereInput | OutlookEventSnapshotWhereInput[]
    OR?: OutlookEventSnapshotWhereInput[]
    NOT?: OutlookEventSnapshotWhereInput | OutlookEventSnapshotWhereInput[]
    mailboxId?: StringFilter<"OutlookEventSnapshot"> | string
    graphEventId?: StringFilter<"OutlookEventSnapshot"> | string
    iCalUId?: StringFilter<"OutlookEventSnapshot"> | string
    title?: StringFilter<"OutlookEventSnapshot"> | string
    startTime?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    endTime?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    timezone?: StringFilter<"OutlookEventSnapshot"> | string
    eventType?: StringFilter<"OutlookEventSnapshot"> | string
    isCancelled?: BoolFilter<"OutlookEventSnapshot"> | boolean
    seriesMasterId?: StringNullableFilter<"OutlookEventSnapshot"> | string | null
    organizerEmail?: StringNullableFilter<"OutlookEventSnapshot"> | string | null
    lastModifiedAt?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    rawPayload?: JsonNullableFilter<"OutlookEventSnapshot">
    createdAt?: DateTimeFilter<"OutlookEventSnapshot"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookEventSnapshot"> | Date | string
    mailbox?: XOR<OutlookSyncMailboxScalarRelationFilter, OutlookSyncMailboxWhereInput>
  }, "id" | "mailboxId_graphEventId">

  export type OutlookEventSnapshotOrderByWithAggregationInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    title?: SortOrder
    startTime?: SortOrderInput | SortOrder
    endTime?: SortOrderInput | SortOrder
    timezone?: SortOrder
    eventType?: SortOrder
    isCancelled?: SortOrder
    seriesMasterId?: SortOrderInput | SortOrder
    organizerEmail?: SortOrderInput | SortOrder
    lastModifiedAt?: SortOrderInput | SortOrder
    rawPayload?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: OutlookEventSnapshotCountOrderByAggregateInput
    _max?: OutlookEventSnapshotMaxOrderByAggregateInput
    _min?: OutlookEventSnapshotMinOrderByAggregateInput
  }

  export type OutlookEventSnapshotScalarWhereWithAggregatesInput = {
    AND?: OutlookEventSnapshotScalarWhereWithAggregatesInput | OutlookEventSnapshotScalarWhereWithAggregatesInput[]
    OR?: OutlookEventSnapshotScalarWhereWithAggregatesInput[]
    NOT?: OutlookEventSnapshotScalarWhereWithAggregatesInput | OutlookEventSnapshotScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookEventSnapshot"> | string
    mailboxId?: StringWithAggregatesFilter<"OutlookEventSnapshot"> | string
    graphEventId?: StringWithAggregatesFilter<"OutlookEventSnapshot"> | string
    iCalUId?: StringWithAggregatesFilter<"OutlookEventSnapshot"> | string
    title?: StringWithAggregatesFilter<"OutlookEventSnapshot"> | string
    startTime?: DateTimeNullableWithAggregatesFilter<"OutlookEventSnapshot"> | Date | string | null
    endTime?: DateTimeNullableWithAggregatesFilter<"OutlookEventSnapshot"> | Date | string | null
    timezone?: StringWithAggregatesFilter<"OutlookEventSnapshot"> | string
    eventType?: StringWithAggregatesFilter<"OutlookEventSnapshot"> | string
    isCancelled?: BoolWithAggregatesFilter<"OutlookEventSnapshot"> | boolean
    seriesMasterId?: StringNullableWithAggregatesFilter<"OutlookEventSnapshot"> | string | null
    organizerEmail?: StringNullableWithAggregatesFilter<"OutlookEventSnapshot"> | string | null
    lastModifiedAt?: DateTimeNullableWithAggregatesFilter<"OutlookEventSnapshot"> | Date | string | null
    rawPayload?: JsonNullableWithAggregatesFilter<"OutlookEventSnapshot">
    createdAt?: DateTimeWithAggregatesFilter<"OutlookEventSnapshot"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"OutlookEventSnapshot"> | Date | string
  }

  export type OutlookSyncSettingWhereInput = {
    AND?: OutlookSyncSettingWhereInput | OutlookSyncSettingWhereInput[]
    OR?: OutlookSyncSettingWhereInput[]
    NOT?: OutlookSyncSettingWhereInput | OutlookSyncSettingWhereInput[]
    id?: StringFilter<"OutlookSyncSetting"> | string
    reconcileCron?: StringFilter<"OutlookSyncSetting"> | string
    deltaBatchSize?: IntFilter<"OutlookSyncSetting"> | number
    lookaheadDays?: IntFilter<"OutlookSyncSetting"> | number
    lookbackDays?: IntFilter<"OutlookSyncSetting"> | number
    renewBeforeMinutes?: IntFilter<"OutlookSyncSetting"> | number
    includeOrganizerAsAttendee?: BoolFilter<"OutlookSyncSetting"> | boolean
    createdAt?: DateTimeFilter<"OutlookSyncSetting"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSyncSetting"> | Date | string
  }

  export type OutlookSyncSettingOrderByWithRelationInput = {
    id?: SortOrder
    reconcileCron?: SortOrder
    deltaBatchSize?: SortOrder
    lookaheadDays?: SortOrder
    lookbackDays?: SortOrder
    renewBeforeMinutes?: SortOrder
    includeOrganizerAsAttendee?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncSettingWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: OutlookSyncSettingWhereInput | OutlookSyncSettingWhereInput[]
    OR?: OutlookSyncSettingWhereInput[]
    NOT?: OutlookSyncSettingWhereInput | OutlookSyncSettingWhereInput[]
    reconcileCron?: StringFilter<"OutlookSyncSetting"> | string
    deltaBatchSize?: IntFilter<"OutlookSyncSetting"> | number
    lookaheadDays?: IntFilter<"OutlookSyncSetting"> | number
    lookbackDays?: IntFilter<"OutlookSyncSetting"> | number
    renewBeforeMinutes?: IntFilter<"OutlookSyncSetting"> | number
    includeOrganizerAsAttendee?: BoolFilter<"OutlookSyncSetting"> | boolean
    createdAt?: DateTimeFilter<"OutlookSyncSetting"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSyncSetting"> | Date | string
  }, "id">

  export type OutlookSyncSettingOrderByWithAggregationInput = {
    id?: SortOrder
    reconcileCron?: SortOrder
    deltaBatchSize?: SortOrder
    lookaheadDays?: SortOrder
    lookbackDays?: SortOrder
    renewBeforeMinutes?: SortOrder
    includeOrganizerAsAttendee?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: OutlookSyncSettingCountOrderByAggregateInput
    _avg?: OutlookSyncSettingAvgOrderByAggregateInput
    _max?: OutlookSyncSettingMaxOrderByAggregateInput
    _min?: OutlookSyncSettingMinOrderByAggregateInput
    _sum?: OutlookSyncSettingSumOrderByAggregateInput
  }

  export type OutlookSyncSettingScalarWhereWithAggregatesInput = {
    AND?: OutlookSyncSettingScalarWhereWithAggregatesInput | OutlookSyncSettingScalarWhereWithAggregatesInput[]
    OR?: OutlookSyncSettingScalarWhereWithAggregatesInput[]
    NOT?: OutlookSyncSettingScalarWhereWithAggregatesInput | OutlookSyncSettingScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"OutlookSyncSetting"> | string
    reconcileCron?: StringWithAggregatesFilter<"OutlookSyncSetting"> | string
    deltaBatchSize?: IntWithAggregatesFilter<"OutlookSyncSetting"> | number
    lookaheadDays?: IntWithAggregatesFilter<"OutlookSyncSetting"> | number
    lookbackDays?: IntWithAggregatesFilter<"OutlookSyncSetting"> | number
    renewBeforeMinutes?: IntWithAggregatesFilter<"OutlookSyncSetting"> | number
    includeOrganizerAsAttendee?: BoolWithAggregatesFilter<"OutlookSyncSetting"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"OutlookSyncSetting"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"OutlookSyncSetting"> | Date | string
  }

  export type MeetingAgendaSectionWhereInput = {
    AND?: MeetingAgendaSectionWhereInput | MeetingAgendaSectionWhereInput[]
    OR?: MeetingAgendaSectionWhereInput[]
    NOT?: MeetingAgendaSectionWhereInput | MeetingAgendaSectionWhereInput[]
    id?: UuidFilter<"MeetingAgendaSection"> | string
    meetingId?: StringFilter<"MeetingAgendaSection"> | string
    order?: IntFilter<"MeetingAgendaSection"> | number
    title?: StringFilter<"MeetingAgendaSection"> | string
    columnLabels?: StringNullableListFilter<"MeetingAgendaSection">
    createdById?: UuidFilter<"MeetingAgendaSection"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaSection"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaSection"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaSection"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaSection"> | Date | string | null
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    items?: MeetingAgendaItemListRelationFilter
  }

  export type MeetingAgendaSectionOrderByWithRelationInput = {
    id?: SortOrder
    meetingId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    columnLabels?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    meeting?: MeetingOrderByWithRelationInput
    createdBy?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
    items?: MeetingAgendaItemOrderByRelationAggregateInput
  }

  export type MeetingAgendaSectionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAgendaSectionWhereInput | MeetingAgendaSectionWhereInput[]
    OR?: MeetingAgendaSectionWhereInput[]
    NOT?: MeetingAgendaSectionWhereInput | MeetingAgendaSectionWhereInput[]
    meetingId?: StringFilter<"MeetingAgendaSection"> | string
    order?: IntFilter<"MeetingAgendaSection"> | number
    title?: StringFilter<"MeetingAgendaSection"> | string
    columnLabels?: StringNullableListFilter<"MeetingAgendaSection">
    createdById?: UuidFilter<"MeetingAgendaSection"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaSection"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaSection"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaSection"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaSection"> | Date | string | null
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    items?: MeetingAgendaItemListRelationFilter
  }, "id">

  export type MeetingAgendaSectionOrderByWithAggregationInput = {
    id?: SortOrder
    meetingId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    columnLabels?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: MeetingAgendaSectionCountOrderByAggregateInput
    _avg?: MeetingAgendaSectionAvgOrderByAggregateInput
    _max?: MeetingAgendaSectionMaxOrderByAggregateInput
    _min?: MeetingAgendaSectionMinOrderByAggregateInput
    _sum?: MeetingAgendaSectionSumOrderByAggregateInput
  }

  export type MeetingAgendaSectionScalarWhereWithAggregatesInput = {
    AND?: MeetingAgendaSectionScalarWhereWithAggregatesInput | MeetingAgendaSectionScalarWhereWithAggregatesInput[]
    OR?: MeetingAgendaSectionScalarWhereWithAggregatesInput[]
    NOT?: MeetingAgendaSectionScalarWhereWithAggregatesInput | MeetingAgendaSectionScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"MeetingAgendaSection"> | string
    meetingId?: StringWithAggregatesFilter<"MeetingAgendaSection"> | string
    order?: IntWithAggregatesFilter<"MeetingAgendaSection"> | number
    title?: StringWithAggregatesFilter<"MeetingAgendaSection"> | string
    columnLabels?: StringNullableListFilter<"MeetingAgendaSection">
    createdById?: UuidWithAggregatesFilter<"MeetingAgendaSection"> | string
    organizationId?: UuidNullableWithAggregatesFilter<"MeetingAgendaSection"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAgendaSection"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAgendaSection"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"MeetingAgendaSection"> | Date | string | null
  }

  export type MeetingAgendaItemWhereInput = {
    AND?: MeetingAgendaItemWhereInput | MeetingAgendaItemWhereInput[]
    OR?: MeetingAgendaItemWhereInput[]
    NOT?: MeetingAgendaItemWhereInput | MeetingAgendaItemWhereInput[]
    id?: UuidFilter<"MeetingAgendaItem"> | string
    sectionId?: UuidFilter<"MeetingAgendaItem"> | string
    order?: IntFilter<"MeetingAgendaItem"> | number
    title?: StringFilter<"MeetingAgendaItem"> | string
    description?: StringNullableFilter<"MeetingAgendaItem"> | string | null
    columnDescriptions?: StringNullableListFilter<"MeetingAgendaItem">
    code?: StringNullableFilter<"MeetingAgendaItem"> | string | null
    timeMinutes?: IntNullableFilter<"MeetingAgendaItem"> | number | null
    presenterUserId?: UuidNullableFilter<"MeetingAgendaItem"> | string | null
    createdById?: UuidFilter<"MeetingAgendaItem"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItem"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItem"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItem"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItem"> | Date | string | null
    section?: XOR<MeetingAgendaSectionScalarRelationFilter, MeetingAgendaSectionWhereInput>
    presenter?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    uploadTasks?: MeetingAgendaItemUploadTaskListRelationFilter
    attachments?: MeetingAgendaItemAttachmentListRelationFilter
  }

  export type MeetingAgendaItemOrderByWithRelationInput = {
    id?: SortOrder
    sectionId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    columnDescriptions?: SortOrder
    code?: SortOrderInput | SortOrder
    timeMinutes?: SortOrderInput | SortOrder
    presenterUserId?: SortOrderInput | SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    section?: MeetingAgendaSectionOrderByWithRelationInput
    presenter?: UserOrderByWithRelationInput
    createdBy?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
    uploadTasks?: MeetingAgendaItemUploadTaskOrderByRelationAggregateInput
    attachments?: MeetingAgendaItemAttachmentOrderByRelationAggregateInput
  }

  export type MeetingAgendaItemWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAgendaItemWhereInput | MeetingAgendaItemWhereInput[]
    OR?: MeetingAgendaItemWhereInput[]
    NOT?: MeetingAgendaItemWhereInput | MeetingAgendaItemWhereInput[]
    sectionId?: UuidFilter<"MeetingAgendaItem"> | string
    order?: IntFilter<"MeetingAgendaItem"> | number
    title?: StringFilter<"MeetingAgendaItem"> | string
    description?: StringNullableFilter<"MeetingAgendaItem"> | string | null
    columnDescriptions?: StringNullableListFilter<"MeetingAgendaItem">
    code?: StringNullableFilter<"MeetingAgendaItem"> | string | null
    timeMinutes?: IntNullableFilter<"MeetingAgendaItem"> | number | null
    presenterUserId?: UuidNullableFilter<"MeetingAgendaItem"> | string | null
    createdById?: UuidFilter<"MeetingAgendaItem"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItem"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItem"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItem"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItem"> | Date | string | null
    section?: XOR<MeetingAgendaSectionScalarRelationFilter, MeetingAgendaSectionWhereInput>
    presenter?: XOR<UserNullableScalarRelationFilter, UserWhereInput> | null
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    uploadTasks?: MeetingAgendaItemUploadTaskListRelationFilter
    attachments?: MeetingAgendaItemAttachmentListRelationFilter
  }, "id">

  export type MeetingAgendaItemOrderByWithAggregationInput = {
    id?: SortOrder
    sectionId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    description?: SortOrderInput | SortOrder
    columnDescriptions?: SortOrder
    code?: SortOrderInput | SortOrder
    timeMinutes?: SortOrderInput | SortOrder
    presenterUserId?: SortOrderInput | SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: MeetingAgendaItemCountOrderByAggregateInput
    _avg?: MeetingAgendaItemAvgOrderByAggregateInput
    _max?: MeetingAgendaItemMaxOrderByAggregateInput
    _min?: MeetingAgendaItemMinOrderByAggregateInput
    _sum?: MeetingAgendaItemSumOrderByAggregateInput
  }

  export type MeetingAgendaItemScalarWhereWithAggregatesInput = {
    AND?: MeetingAgendaItemScalarWhereWithAggregatesInput | MeetingAgendaItemScalarWhereWithAggregatesInput[]
    OR?: MeetingAgendaItemScalarWhereWithAggregatesInput[]
    NOT?: MeetingAgendaItemScalarWhereWithAggregatesInput | MeetingAgendaItemScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"MeetingAgendaItem"> | string
    sectionId?: UuidWithAggregatesFilter<"MeetingAgendaItem"> | string
    order?: IntWithAggregatesFilter<"MeetingAgendaItem"> | number
    title?: StringWithAggregatesFilter<"MeetingAgendaItem"> | string
    description?: StringNullableWithAggregatesFilter<"MeetingAgendaItem"> | string | null
    columnDescriptions?: StringNullableListFilter<"MeetingAgendaItem">
    code?: StringNullableWithAggregatesFilter<"MeetingAgendaItem"> | string | null
    timeMinutes?: IntNullableWithAggregatesFilter<"MeetingAgendaItem"> | number | null
    presenterUserId?: UuidNullableWithAggregatesFilter<"MeetingAgendaItem"> | string | null
    createdById?: UuidWithAggregatesFilter<"MeetingAgendaItem"> | string
    organizationId?: UuidNullableWithAggregatesFilter<"MeetingAgendaItem"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAgendaItem"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAgendaItem"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"MeetingAgendaItem"> | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskWhereInput = {
    AND?: MeetingAgendaItemUploadTaskWhereInput | MeetingAgendaItemUploadTaskWhereInput[]
    OR?: MeetingAgendaItemUploadTaskWhereInput[]
    NOT?: MeetingAgendaItemUploadTaskWhereInput | MeetingAgendaItemUploadTaskWhereInput[]
    id?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    agendaItemId?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    assigneeUserId?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    assignedById?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    status?: EnumUploadTaskStatusFilter<"MeetingAgendaItemUploadTask"> | $Enums.UploadTaskStatus
    dueAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    assignedAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    completedAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    createdById?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItemUploadTask"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    agendaItem?: XOR<MeetingAgendaItemScalarRelationFilter, MeetingAgendaItemWhereInput>
    assignee?: XOR<UserScalarRelationFilter, UserWhereInput>
    assignedBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }

  export type MeetingAgendaItemUploadTaskOrderByWithRelationInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    assigneeUserId?: SortOrder
    assignedById?: SortOrder
    status?: SortOrder
    dueAt?: SortOrderInput | SortOrder
    assignedAt?: SortOrder
    completedAt?: SortOrderInput | SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    agendaItem?: MeetingAgendaItemOrderByWithRelationInput
    assignee?: UserOrderByWithRelationInput
    assignedBy?: UserOrderByWithRelationInput
    createdBy?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type MeetingAgendaItemUploadTaskWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAgendaItemUploadTaskWhereInput | MeetingAgendaItemUploadTaskWhereInput[]
    OR?: MeetingAgendaItemUploadTaskWhereInput[]
    NOT?: MeetingAgendaItemUploadTaskWhereInput | MeetingAgendaItemUploadTaskWhereInput[]
    agendaItemId?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    assigneeUserId?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    assignedById?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    status?: EnumUploadTaskStatusFilter<"MeetingAgendaItemUploadTask"> | $Enums.UploadTaskStatus
    dueAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    assignedAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    completedAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    createdById?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItemUploadTask"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    agendaItem?: XOR<MeetingAgendaItemScalarRelationFilter, MeetingAgendaItemWhereInput>
    assignee?: XOR<UserScalarRelationFilter, UserWhereInput>
    assignedBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }, "id">

  export type MeetingAgendaItemUploadTaskOrderByWithAggregationInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    assigneeUserId?: SortOrder
    assignedById?: SortOrder
    status?: SortOrder
    dueAt?: SortOrderInput | SortOrder
    assignedAt?: SortOrder
    completedAt?: SortOrderInput | SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: MeetingAgendaItemUploadTaskCountOrderByAggregateInput
    _max?: MeetingAgendaItemUploadTaskMaxOrderByAggregateInput
    _min?: MeetingAgendaItemUploadTaskMinOrderByAggregateInput
  }

  export type MeetingAgendaItemUploadTaskScalarWhereWithAggregatesInput = {
    AND?: MeetingAgendaItemUploadTaskScalarWhereWithAggregatesInput | MeetingAgendaItemUploadTaskScalarWhereWithAggregatesInput[]
    OR?: MeetingAgendaItemUploadTaskScalarWhereWithAggregatesInput[]
    NOT?: MeetingAgendaItemUploadTaskScalarWhereWithAggregatesInput | MeetingAgendaItemUploadTaskScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | string
    agendaItemId?: UuidWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | string
    assigneeUserId?: UuidWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | string
    assignedById?: UuidWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | string
    status?: EnumUploadTaskStatusWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | $Enums.UploadTaskStatus
    dueAt?: DateTimeNullableWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    assignedAt?: DateTimeWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | Date | string
    completedAt?: DateTimeNullableWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    createdById?: UuidWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | string
    organizationId?: UuidNullableWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
  }

  export type MeetingAgendaItemAttachmentWhereInput = {
    AND?: MeetingAgendaItemAttachmentWhereInput | MeetingAgendaItemAttachmentWhereInput[]
    OR?: MeetingAgendaItemAttachmentWhereInput[]
    NOT?: MeetingAgendaItemAttachmentWhereInput | MeetingAgendaItemAttachmentWhereInput[]
    id?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    agendaItemId?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    uploadedById?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    filename?: StringFilter<"MeetingAgendaItemAttachment"> | string
    mimeType?: StringFilter<"MeetingAgendaItemAttachment"> | string
    size?: BigIntFilter<"MeetingAgendaItemAttachment"> | bigint | number
    storagePath?: StringFilter<"MeetingAgendaItemAttachment"> | string
    uploadedAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    createdById?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItemAttachment"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItemAttachment"> | Date | string | null
    agendaItem?: XOR<MeetingAgendaItemScalarRelationFilter, MeetingAgendaItemWhereInput>
    uploadedBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }

  export type MeetingAgendaItemAttachmentOrderByWithRelationInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    uploadedById?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    agendaItem?: MeetingAgendaItemOrderByWithRelationInput
    uploadedBy?: UserOrderByWithRelationInput
    createdBy?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type MeetingAgendaItemAttachmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAgendaItemAttachmentWhereInput | MeetingAgendaItemAttachmentWhereInput[]
    OR?: MeetingAgendaItemAttachmentWhereInput[]
    NOT?: MeetingAgendaItemAttachmentWhereInput | MeetingAgendaItemAttachmentWhereInput[]
    agendaItemId?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    uploadedById?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    filename?: StringFilter<"MeetingAgendaItemAttachment"> | string
    mimeType?: StringFilter<"MeetingAgendaItemAttachment"> | string
    size?: BigIntFilter<"MeetingAgendaItemAttachment"> | bigint | number
    storagePath?: StringFilter<"MeetingAgendaItemAttachment"> | string
    uploadedAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    createdById?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItemAttachment"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItemAttachment"> | Date | string | null
    agendaItem?: XOR<MeetingAgendaItemScalarRelationFilter, MeetingAgendaItemWhereInput>
    uploadedBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }, "id">

  export type MeetingAgendaItemAttachmentOrderByWithAggregationInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    uploadedById?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: MeetingAgendaItemAttachmentCountOrderByAggregateInput
    _avg?: MeetingAgendaItemAttachmentAvgOrderByAggregateInput
    _max?: MeetingAgendaItemAttachmentMaxOrderByAggregateInput
    _min?: MeetingAgendaItemAttachmentMinOrderByAggregateInput
    _sum?: MeetingAgendaItemAttachmentSumOrderByAggregateInput
  }

  export type MeetingAgendaItemAttachmentScalarWhereWithAggregatesInput = {
    AND?: MeetingAgendaItemAttachmentScalarWhereWithAggregatesInput | MeetingAgendaItemAttachmentScalarWhereWithAggregatesInput[]
    OR?: MeetingAgendaItemAttachmentScalarWhereWithAggregatesInput[]
    NOT?: MeetingAgendaItemAttachmentScalarWhereWithAggregatesInput | MeetingAgendaItemAttachmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"MeetingAgendaItemAttachment"> | string
    agendaItemId?: UuidWithAggregatesFilter<"MeetingAgendaItemAttachment"> | string
    uploadedById?: UuidWithAggregatesFilter<"MeetingAgendaItemAttachment"> | string
    filename?: StringWithAggregatesFilter<"MeetingAgendaItemAttachment"> | string
    mimeType?: StringWithAggregatesFilter<"MeetingAgendaItemAttachment"> | string
    size?: BigIntWithAggregatesFilter<"MeetingAgendaItemAttachment"> | bigint | number
    storagePath?: StringWithAggregatesFilter<"MeetingAgendaItemAttachment"> | string
    uploadedAt?: DateTimeWithAggregatesFilter<"MeetingAgendaItemAttachment"> | Date | string
    createdById?: UuidWithAggregatesFilter<"MeetingAgendaItemAttachment"> | string
    organizationId?: UuidNullableWithAggregatesFilter<"MeetingAgendaItemAttachment"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAgendaItemAttachment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAgendaItemAttachment"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"MeetingAgendaItemAttachment"> | Date | string | null
  }

  export type MeetingAttachmentWhereInput = {
    AND?: MeetingAttachmentWhereInput | MeetingAttachmentWhereInput[]
    OR?: MeetingAttachmentWhereInput[]
    NOT?: MeetingAttachmentWhereInput | MeetingAttachmentWhereInput[]
    id?: UuidFilter<"MeetingAttachment"> | string
    meetingId?: StringFilter<"MeetingAttachment"> | string
    uploadedById?: UuidFilter<"MeetingAttachment"> | string
    category?: EnumMeetingAttachmentCategoryNullableFilter<"MeetingAttachment"> | $Enums.MeetingAttachmentCategory | null
    filename?: StringFilter<"MeetingAttachment"> | string
    mimeType?: StringFilter<"MeetingAttachment"> | string
    size?: BigIntFilter<"MeetingAttachment"> | bigint | number
    storagePath?: StringFilter<"MeetingAttachment"> | string
    uploadedAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    createdById?: UuidFilter<"MeetingAttachment"> | string
    organizationId?: UuidNullableFilter<"MeetingAttachment"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAttachment"> | Date | string | null
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
    uploadedBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }

  export type MeetingAttachmentOrderByWithRelationInput = {
    id?: SortOrder
    meetingId?: SortOrder
    uploadedById?: SortOrder
    category?: SortOrderInput | SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    meeting?: MeetingOrderByWithRelationInput
    uploadedBy?: UserOrderByWithRelationInput
    createdBy?: UserOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
  }

  export type MeetingAttachmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: MeetingAttachmentWhereInput | MeetingAttachmentWhereInput[]
    OR?: MeetingAttachmentWhereInput[]
    NOT?: MeetingAttachmentWhereInput | MeetingAttachmentWhereInput[]
    meetingId?: StringFilter<"MeetingAttachment"> | string
    uploadedById?: UuidFilter<"MeetingAttachment"> | string
    category?: EnumMeetingAttachmentCategoryNullableFilter<"MeetingAttachment"> | $Enums.MeetingAttachmentCategory | null
    filename?: StringFilter<"MeetingAttachment"> | string
    mimeType?: StringFilter<"MeetingAttachment"> | string
    size?: BigIntFilter<"MeetingAttachment"> | bigint | number
    storagePath?: StringFilter<"MeetingAttachment"> | string
    uploadedAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    createdById?: UuidFilter<"MeetingAttachment"> | string
    organizationId?: UuidNullableFilter<"MeetingAttachment"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAttachment"> | Date | string | null
    meeting?: XOR<MeetingScalarRelationFilter, MeetingWhereInput>
    uploadedBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    createdBy?: XOR<UserScalarRelationFilter, UserWhereInput>
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
  }, "id">

  export type MeetingAttachmentOrderByWithAggregationInput = {
    id?: SortOrder
    meetingId?: SortOrder
    uploadedById?: SortOrder
    category?: SortOrderInput | SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: MeetingAttachmentCountOrderByAggregateInput
    _avg?: MeetingAttachmentAvgOrderByAggregateInput
    _max?: MeetingAttachmentMaxOrderByAggregateInput
    _min?: MeetingAttachmentMinOrderByAggregateInput
    _sum?: MeetingAttachmentSumOrderByAggregateInput
  }

  export type MeetingAttachmentScalarWhereWithAggregatesInput = {
    AND?: MeetingAttachmentScalarWhereWithAggregatesInput | MeetingAttachmentScalarWhereWithAggregatesInput[]
    OR?: MeetingAttachmentScalarWhereWithAggregatesInput[]
    NOT?: MeetingAttachmentScalarWhereWithAggregatesInput | MeetingAttachmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"MeetingAttachment"> | string
    meetingId?: StringWithAggregatesFilter<"MeetingAttachment"> | string
    uploadedById?: UuidWithAggregatesFilter<"MeetingAttachment"> | string
    category?: EnumMeetingAttachmentCategoryNullableWithAggregatesFilter<"MeetingAttachment"> | $Enums.MeetingAttachmentCategory | null
    filename?: StringWithAggregatesFilter<"MeetingAttachment"> | string
    mimeType?: StringWithAggregatesFilter<"MeetingAttachment"> | string
    size?: BigIntWithAggregatesFilter<"MeetingAttachment"> | bigint | number
    storagePath?: StringWithAggregatesFilter<"MeetingAttachment"> | string
    uploadedAt?: DateTimeWithAggregatesFilter<"MeetingAttachment"> | Date | string
    createdById?: UuidWithAggregatesFilter<"MeetingAttachment"> | string
    organizationId?: UuidNullableWithAggregatesFilter<"MeetingAttachment"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"MeetingAttachment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"MeetingAttachment"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"MeetingAttachment"> | Date | string | null
  }

  export type NotificationMessageWhereInput = {
    AND?: NotificationMessageWhereInput | NotificationMessageWhereInput[]
    OR?: NotificationMessageWhereInput[]
    NOT?: NotificationMessageWhereInput | NotificationMessageWhereInput[]
    id?: UuidFilter<"NotificationMessage"> | string
    userId?: UuidFilter<"NotificationMessage"> | string
    type?: EnumNotificationTypeFilter<"NotificationMessage"> | $Enums.NotificationType
    title?: StringFilter<"NotificationMessage"> | string
    content?: StringFilter<"NotificationMessage"> | string
    link?: StringNullableFilter<"NotificationMessage"> | string | null
    status?: EnumNotificationStatusFilter<"NotificationMessage"> | $Enums.NotificationStatus
    createdAt?: DateTimeFilter<"NotificationMessage"> | Date | string
    readAt?: DateTimeNullableFilter<"NotificationMessage"> | Date | string | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type NotificationMessageOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    link?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    readAt?: SortOrderInput | SortOrder
    user?: UserOrderByWithRelationInput
  }

  export type NotificationMessageWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: NotificationMessageWhereInput | NotificationMessageWhereInput[]
    OR?: NotificationMessageWhereInput[]
    NOT?: NotificationMessageWhereInput | NotificationMessageWhereInput[]
    userId?: UuidFilter<"NotificationMessage"> | string
    type?: EnumNotificationTypeFilter<"NotificationMessage"> | $Enums.NotificationType
    title?: StringFilter<"NotificationMessage"> | string
    content?: StringFilter<"NotificationMessage"> | string
    link?: StringNullableFilter<"NotificationMessage"> | string | null
    status?: EnumNotificationStatusFilter<"NotificationMessage"> | $Enums.NotificationStatus
    createdAt?: DateTimeFilter<"NotificationMessage"> | Date | string
    readAt?: DateTimeNullableFilter<"NotificationMessage"> | Date | string | null
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type NotificationMessageOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    link?: SortOrderInput | SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    readAt?: SortOrderInput | SortOrder
    _count?: NotificationMessageCountOrderByAggregateInput
    _max?: NotificationMessageMaxOrderByAggregateInput
    _min?: NotificationMessageMinOrderByAggregateInput
  }

  export type NotificationMessageScalarWhereWithAggregatesInput = {
    AND?: NotificationMessageScalarWhereWithAggregatesInput | NotificationMessageScalarWhereWithAggregatesInput[]
    OR?: NotificationMessageScalarWhereWithAggregatesInput[]
    NOT?: NotificationMessageScalarWhereWithAggregatesInput | NotificationMessageScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"NotificationMessage"> | string
    userId?: UuidWithAggregatesFilter<"NotificationMessage"> | string
    type?: EnumNotificationTypeWithAggregatesFilter<"NotificationMessage"> | $Enums.NotificationType
    title?: StringWithAggregatesFilter<"NotificationMessage"> | string
    content?: StringWithAggregatesFilter<"NotificationMessage"> | string
    link?: StringNullableWithAggregatesFilter<"NotificationMessage"> | string | null
    status?: EnumNotificationStatusWithAggregatesFilter<"NotificationMessage"> | $Enums.NotificationStatus
    createdAt?: DateTimeWithAggregatesFilter<"NotificationMessage"> | Date | string
    readAt?: DateTimeNullableWithAggregatesFilter<"NotificationMessage"> | Date | string | null
  }

  export type NotificationPreferenceWhereInput = {
    AND?: NotificationPreferenceWhereInput | NotificationPreferenceWhereInput[]
    OR?: NotificationPreferenceWhereInput[]
    NOT?: NotificationPreferenceWhereInput | NotificationPreferenceWhereInput[]
    id?: UuidFilter<"NotificationPreference"> | string
    userId?: UuidFilter<"NotificationPreference"> | string
    email?: BoolFilter<"NotificationPreference"> | boolean
    webpush?: BoolFilter<"NotificationPreference"> | boolean
    websocket?: BoolFilter<"NotificationPreference"> | boolean
    quietHours?: JsonNullableFilter<"NotificationPreference">
    createdAt?: DateTimeFilter<"NotificationPreference"> | Date | string
    updatedAt?: DateTimeFilter<"NotificationPreference"> | Date | string
  }

  export type NotificationPreferenceOrderByWithRelationInput = {
    id?: SortOrder
    userId?: SortOrder
    email?: SortOrder
    webpush?: SortOrder
    websocket?: SortOrder
    quietHours?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type NotificationPreferenceWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    userId?: string
    AND?: NotificationPreferenceWhereInput | NotificationPreferenceWhereInput[]
    OR?: NotificationPreferenceWhereInput[]
    NOT?: NotificationPreferenceWhereInput | NotificationPreferenceWhereInput[]
    email?: BoolFilter<"NotificationPreference"> | boolean
    webpush?: BoolFilter<"NotificationPreference"> | boolean
    websocket?: BoolFilter<"NotificationPreference"> | boolean
    quietHours?: JsonNullableFilter<"NotificationPreference">
    createdAt?: DateTimeFilter<"NotificationPreference"> | Date | string
    updatedAt?: DateTimeFilter<"NotificationPreference"> | Date | string
  }, "id" | "userId">

  export type NotificationPreferenceOrderByWithAggregationInput = {
    id?: SortOrder
    userId?: SortOrder
    email?: SortOrder
    webpush?: SortOrder
    websocket?: SortOrder
    quietHours?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: NotificationPreferenceCountOrderByAggregateInput
    _max?: NotificationPreferenceMaxOrderByAggregateInput
    _min?: NotificationPreferenceMinOrderByAggregateInput
  }

  export type NotificationPreferenceScalarWhereWithAggregatesInput = {
    AND?: NotificationPreferenceScalarWhereWithAggregatesInput | NotificationPreferenceScalarWhereWithAggregatesInput[]
    OR?: NotificationPreferenceScalarWhereWithAggregatesInput[]
    NOT?: NotificationPreferenceScalarWhereWithAggregatesInput | NotificationPreferenceScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"NotificationPreference"> | string
    userId?: UuidWithAggregatesFilter<"NotificationPreference"> | string
    email?: BoolWithAggregatesFilter<"NotificationPreference"> | boolean
    webpush?: BoolWithAggregatesFilter<"NotificationPreference"> | boolean
    websocket?: BoolWithAggregatesFilter<"NotificationPreference"> | boolean
    quietHours?: JsonNullableWithAggregatesFilter<"NotificationPreference">
    createdAt?: DateTimeWithAggregatesFilter<"NotificationPreference"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"NotificationPreference"> | Date | string
  }

  export type NotificationTemplateWhereInput = {
    AND?: NotificationTemplateWhereInput | NotificationTemplateWhereInput[]
    OR?: NotificationTemplateWhereInput[]
    NOT?: NotificationTemplateWhereInput | NotificationTemplateWhereInput[]
    id?: UuidFilter<"NotificationTemplate"> | string
    code?: StringFilter<"NotificationTemplate"> | string
    name?: StringFilter<"NotificationTemplate"> | string
    description?: StringNullableFilter<"NotificationTemplate"> | string | null
    channel?: EnumNotificationChannelFilter<"NotificationTemplate"> | $Enums.NotificationChannel
    subject?: StringNullableFilter<"NotificationTemplate"> | string | null
    template?: StringFilter<"NotificationTemplate"> | string
    variables?: StringNullableListFilter<"NotificationTemplate">
    example?: JsonNullableFilter<"NotificationTemplate">
    priority?: EnumNotificationPriorityFilter<"NotificationTemplate"> | $Enums.NotificationPriority
    isActive?: BoolFilter<"NotificationTemplate"> | boolean
    createdAt?: DateTimeFilter<"NotificationTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"NotificationTemplate"> | Date | string
    logs?: NotificationLogListRelationFilter
  }

  export type NotificationTemplateOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    channel?: SortOrder
    subject?: SortOrderInput | SortOrder
    template?: SortOrder
    variables?: SortOrder
    example?: SortOrderInput | SortOrder
    priority?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    logs?: NotificationLogOrderByRelationAggregateInput
  }

  export type NotificationTemplateWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: NotificationTemplateWhereInput | NotificationTemplateWhereInput[]
    OR?: NotificationTemplateWhereInput[]
    NOT?: NotificationTemplateWhereInput | NotificationTemplateWhereInput[]
    name?: StringFilter<"NotificationTemplate"> | string
    description?: StringNullableFilter<"NotificationTemplate"> | string | null
    channel?: EnumNotificationChannelFilter<"NotificationTemplate"> | $Enums.NotificationChannel
    subject?: StringNullableFilter<"NotificationTemplate"> | string | null
    template?: StringFilter<"NotificationTemplate"> | string
    variables?: StringNullableListFilter<"NotificationTemplate">
    example?: JsonNullableFilter<"NotificationTemplate">
    priority?: EnumNotificationPriorityFilter<"NotificationTemplate"> | $Enums.NotificationPriority
    isActive?: BoolFilter<"NotificationTemplate"> | boolean
    createdAt?: DateTimeFilter<"NotificationTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"NotificationTemplate"> | Date | string
    logs?: NotificationLogListRelationFilter
  }, "id" | "code">

  export type NotificationTemplateOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    channel?: SortOrder
    subject?: SortOrderInput | SortOrder
    template?: SortOrder
    variables?: SortOrder
    example?: SortOrderInput | SortOrder
    priority?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: NotificationTemplateCountOrderByAggregateInput
    _max?: NotificationTemplateMaxOrderByAggregateInput
    _min?: NotificationTemplateMinOrderByAggregateInput
  }

  export type NotificationTemplateScalarWhereWithAggregatesInput = {
    AND?: NotificationTemplateScalarWhereWithAggregatesInput | NotificationTemplateScalarWhereWithAggregatesInput[]
    OR?: NotificationTemplateScalarWhereWithAggregatesInput[]
    NOT?: NotificationTemplateScalarWhereWithAggregatesInput | NotificationTemplateScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"NotificationTemplate"> | string
    code?: StringWithAggregatesFilter<"NotificationTemplate"> | string
    name?: StringWithAggregatesFilter<"NotificationTemplate"> | string
    description?: StringNullableWithAggregatesFilter<"NotificationTemplate"> | string | null
    channel?: EnumNotificationChannelWithAggregatesFilter<"NotificationTemplate"> | $Enums.NotificationChannel
    subject?: StringNullableWithAggregatesFilter<"NotificationTemplate"> | string | null
    template?: StringWithAggregatesFilter<"NotificationTemplate"> | string
    variables?: StringNullableListFilter<"NotificationTemplate">
    example?: JsonNullableWithAggregatesFilter<"NotificationTemplate">
    priority?: EnumNotificationPriorityWithAggregatesFilter<"NotificationTemplate"> | $Enums.NotificationPriority
    isActive?: BoolWithAggregatesFilter<"NotificationTemplate"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"NotificationTemplate"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"NotificationTemplate"> | Date | string
  }

  export type NotificationLogWhereInput = {
    AND?: NotificationLogWhereInput | NotificationLogWhereInput[]
    OR?: NotificationLogWhereInput[]
    NOT?: NotificationLogWhereInput | NotificationLogWhereInput[]
    id?: UuidFilter<"NotificationLog"> | string
    recipientId?: UuidFilter<"NotificationLog"> | string
    recipientEmail?: StringNullableFilter<"NotificationLog"> | string | null
    channel?: EnumNotificationChannelFilter<"NotificationLog"> | $Enums.NotificationChannel
    templateId?: UuidNullableFilter<"NotificationLog"> | string | null
    subject?: StringNullableFilter<"NotificationLog"> | string | null
    content?: StringFilter<"NotificationLog"> | string
    variables?: JsonNullableFilter<"NotificationLog">
    status?: EnumNotificationSendStatusFilter<"NotificationLog"> | $Enums.NotificationSendStatus
    errorMessage?: StringNullableFilter<"NotificationLog"> | string | null
    sentAt?: DateTimeNullableFilter<"NotificationLog"> | Date | string | null
    retryCount?: IntFilter<"NotificationLog"> | number
    maxRetries?: IntFilter<"NotificationLog"> | number
    nextRetryAt?: DateTimeNullableFilter<"NotificationLog"> | Date | string | null
    priority?: EnumNotificationPriorityFilter<"NotificationLog"> | $Enums.NotificationPriority
    metadata?: JsonNullableFilter<"NotificationLog">
    createdAt?: DateTimeFilter<"NotificationLog"> | Date | string
    updatedAt?: DateTimeFilter<"NotificationLog"> | Date | string
    recipient?: XOR<UserScalarRelationFilter, UserWhereInput>
    template?: XOR<NotificationTemplateNullableScalarRelationFilter, NotificationTemplateWhereInput> | null
  }

  export type NotificationLogOrderByWithRelationInput = {
    id?: SortOrder
    recipientId?: SortOrder
    recipientEmail?: SortOrderInput | SortOrder
    channel?: SortOrder
    templateId?: SortOrderInput | SortOrder
    subject?: SortOrderInput | SortOrder
    content?: SortOrder
    variables?: SortOrderInput | SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    sentAt?: SortOrderInput | SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrderInput | SortOrder
    priority?: SortOrder
    metadata?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    recipient?: UserOrderByWithRelationInput
    template?: NotificationTemplateOrderByWithRelationInput
  }

  export type NotificationLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: NotificationLogWhereInput | NotificationLogWhereInput[]
    OR?: NotificationLogWhereInput[]
    NOT?: NotificationLogWhereInput | NotificationLogWhereInput[]
    recipientId?: UuidFilter<"NotificationLog"> | string
    recipientEmail?: StringNullableFilter<"NotificationLog"> | string | null
    channel?: EnumNotificationChannelFilter<"NotificationLog"> | $Enums.NotificationChannel
    templateId?: UuidNullableFilter<"NotificationLog"> | string | null
    subject?: StringNullableFilter<"NotificationLog"> | string | null
    content?: StringFilter<"NotificationLog"> | string
    variables?: JsonNullableFilter<"NotificationLog">
    status?: EnumNotificationSendStatusFilter<"NotificationLog"> | $Enums.NotificationSendStatus
    errorMessage?: StringNullableFilter<"NotificationLog"> | string | null
    sentAt?: DateTimeNullableFilter<"NotificationLog"> | Date | string | null
    retryCount?: IntFilter<"NotificationLog"> | number
    maxRetries?: IntFilter<"NotificationLog"> | number
    nextRetryAt?: DateTimeNullableFilter<"NotificationLog"> | Date | string | null
    priority?: EnumNotificationPriorityFilter<"NotificationLog"> | $Enums.NotificationPriority
    metadata?: JsonNullableFilter<"NotificationLog">
    createdAt?: DateTimeFilter<"NotificationLog"> | Date | string
    updatedAt?: DateTimeFilter<"NotificationLog"> | Date | string
    recipient?: XOR<UserScalarRelationFilter, UserWhereInput>
    template?: XOR<NotificationTemplateNullableScalarRelationFilter, NotificationTemplateWhereInput> | null
  }, "id">

  export type NotificationLogOrderByWithAggregationInput = {
    id?: SortOrder
    recipientId?: SortOrder
    recipientEmail?: SortOrderInput | SortOrder
    channel?: SortOrder
    templateId?: SortOrderInput | SortOrder
    subject?: SortOrderInput | SortOrder
    content?: SortOrder
    variables?: SortOrderInput | SortOrder
    status?: SortOrder
    errorMessage?: SortOrderInput | SortOrder
    sentAt?: SortOrderInput | SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrderInput | SortOrder
    priority?: SortOrder
    metadata?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: NotificationLogCountOrderByAggregateInput
    _avg?: NotificationLogAvgOrderByAggregateInput
    _max?: NotificationLogMaxOrderByAggregateInput
    _min?: NotificationLogMinOrderByAggregateInput
    _sum?: NotificationLogSumOrderByAggregateInput
  }

  export type NotificationLogScalarWhereWithAggregatesInput = {
    AND?: NotificationLogScalarWhereWithAggregatesInput | NotificationLogScalarWhereWithAggregatesInput[]
    OR?: NotificationLogScalarWhereWithAggregatesInput[]
    NOT?: NotificationLogScalarWhereWithAggregatesInput | NotificationLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"NotificationLog"> | string
    recipientId?: UuidWithAggregatesFilter<"NotificationLog"> | string
    recipientEmail?: StringNullableWithAggregatesFilter<"NotificationLog"> | string | null
    channel?: EnumNotificationChannelWithAggregatesFilter<"NotificationLog"> | $Enums.NotificationChannel
    templateId?: UuidNullableWithAggregatesFilter<"NotificationLog"> | string | null
    subject?: StringNullableWithAggregatesFilter<"NotificationLog"> | string | null
    content?: StringWithAggregatesFilter<"NotificationLog"> | string
    variables?: JsonNullableWithAggregatesFilter<"NotificationLog">
    status?: EnumNotificationSendStatusWithAggregatesFilter<"NotificationLog"> | $Enums.NotificationSendStatus
    errorMessage?: StringNullableWithAggregatesFilter<"NotificationLog"> | string | null
    sentAt?: DateTimeNullableWithAggregatesFilter<"NotificationLog"> | Date | string | null
    retryCount?: IntWithAggregatesFilter<"NotificationLog"> | number
    maxRetries?: IntWithAggregatesFilter<"NotificationLog"> | number
    nextRetryAt?: DateTimeNullableWithAggregatesFilter<"NotificationLog"> | Date | string | null
    priority?: EnumNotificationPriorityWithAggregatesFilter<"NotificationLog"> | $Enums.NotificationPriority
    metadata?: JsonNullableWithAggregatesFilter<"NotificationLog">
    createdAt?: DateTimeWithAggregatesFilter<"NotificationLog"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"NotificationLog"> | Date | string
  }

  export type M365UserWhereInput = {
    AND?: M365UserWhereInput | M365UserWhereInput[]
    OR?: M365UserWhereInput[]
    NOT?: M365UserWhereInput | M365UserWhereInput[]
    id?: UuidFilter<"M365User"> | string
    organizationId?: UuidFilter<"M365User"> | string
    createdById?: UuidFilter<"M365User"> | string
    createdAt?: DateTimeFilter<"M365User"> | Date | string
    updatedAt?: DateTimeFilter<"M365User"> | Date | string
    graphUserId?: StringFilter<"M365User"> | string
    userPrincipalName?: StringFilter<"M365User"> | string
    displayName?: StringNullableFilter<"M365User"> | string | null
    mail?: StringNullableFilter<"M365User"> | string | null
    department?: StringNullableFilter<"M365User"> | string | null
    jobTitle?: StringNullableFilter<"M365User"> | string | null
    accountEnabled?: BoolFilter<"M365User"> | boolean
    hasLicense?: BoolFilter<"M365User"> | boolean
    accountCreatedAt?: DateTimeNullableFilter<"M365User"> | Date | string | null
    licenses?: JsonFilter<"M365User">
    lastSignInDateTime?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastNonInteractiveSignInDateTime?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastEmailActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastOneDriveActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastTeamsActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastSharePointActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastAnyActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    daysInactive?: IntNullableFilter<"M365User"> | number | null
    firstSeenInExecutionId?: UuidFilter<"M365User"> | string
    lastSeenInExecutionId?: UuidFilter<"M365User"> | string
    changes?: M365UserActivityChangeListRelationFilter
  }

  export type M365UserOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    graphUserId?: SortOrder
    userPrincipalName?: SortOrder
    displayName?: SortOrderInput | SortOrder
    mail?: SortOrderInput | SortOrder
    department?: SortOrderInput | SortOrder
    jobTitle?: SortOrderInput | SortOrder
    accountEnabled?: SortOrder
    hasLicense?: SortOrder
    accountCreatedAt?: SortOrderInput | SortOrder
    licenses?: SortOrder
    lastSignInDateTime?: SortOrderInput | SortOrder
    lastNonInteractiveSignInDateTime?: SortOrderInput | SortOrder
    lastEmailActivity?: SortOrderInput | SortOrder
    lastOneDriveActivity?: SortOrderInput | SortOrder
    lastTeamsActivity?: SortOrderInput | SortOrder
    lastSharePointActivity?: SortOrderInput | SortOrder
    lastAnyActivity?: SortOrderInput | SortOrder
    daysInactive?: SortOrderInput | SortOrder
    firstSeenInExecutionId?: SortOrder
    lastSeenInExecutionId?: SortOrder
    changes?: M365UserActivityChangeOrderByRelationAggregateInput
  }

  export type M365UserWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_graphUserId?: M365UserOrganizationIdGraphUserIdCompoundUniqueInput
    AND?: M365UserWhereInput | M365UserWhereInput[]
    OR?: M365UserWhereInput[]
    NOT?: M365UserWhereInput | M365UserWhereInput[]
    organizationId?: UuidFilter<"M365User"> | string
    createdById?: UuidFilter<"M365User"> | string
    createdAt?: DateTimeFilter<"M365User"> | Date | string
    updatedAt?: DateTimeFilter<"M365User"> | Date | string
    graphUserId?: StringFilter<"M365User"> | string
    userPrincipalName?: StringFilter<"M365User"> | string
    displayName?: StringNullableFilter<"M365User"> | string | null
    mail?: StringNullableFilter<"M365User"> | string | null
    department?: StringNullableFilter<"M365User"> | string | null
    jobTitle?: StringNullableFilter<"M365User"> | string | null
    accountEnabled?: BoolFilter<"M365User"> | boolean
    hasLicense?: BoolFilter<"M365User"> | boolean
    accountCreatedAt?: DateTimeNullableFilter<"M365User"> | Date | string | null
    licenses?: JsonFilter<"M365User">
    lastSignInDateTime?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastNonInteractiveSignInDateTime?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastEmailActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastOneDriveActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastTeamsActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastSharePointActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    lastAnyActivity?: DateTimeNullableFilter<"M365User"> | Date | string | null
    daysInactive?: IntNullableFilter<"M365User"> | number | null
    firstSeenInExecutionId?: UuidFilter<"M365User"> | string
    lastSeenInExecutionId?: UuidFilter<"M365User"> | string
    changes?: M365UserActivityChangeListRelationFilter
  }, "id" | "organizationId_graphUserId">

  export type M365UserOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    graphUserId?: SortOrder
    userPrincipalName?: SortOrder
    displayName?: SortOrderInput | SortOrder
    mail?: SortOrderInput | SortOrder
    department?: SortOrderInput | SortOrder
    jobTitle?: SortOrderInput | SortOrder
    accountEnabled?: SortOrder
    hasLicense?: SortOrder
    accountCreatedAt?: SortOrderInput | SortOrder
    licenses?: SortOrder
    lastSignInDateTime?: SortOrderInput | SortOrder
    lastNonInteractiveSignInDateTime?: SortOrderInput | SortOrder
    lastEmailActivity?: SortOrderInput | SortOrder
    lastOneDriveActivity?: SortOrderInput | SortOrder
    lastTeamsActivity?: SortOrderInput | SortOrder
    lastSharePointActivity?: SortOrderInput | SortOrder
    lastAnyActivity?: SortOrderInput | SortOrder
    daysInactive?: SortOrderInput | SortOrder
    firstSeenInExecutionId?: SortOrder
    lastSeenInExecutionId?: SortOrder
    _count?: M365UserCountOrderByAggregateInput
    _avg?: M365UserAvgOrderByAggregateInput
    _max?: M365UserMaxOrderByAggregateInput
    _min?: M365UserMinOrderByAggregateInput
    _sum?: M365UserSumOrderByAggregateInput
  }

  export type M365UserScalarWhereWithAggregatesInput = {
    AND?: M365UserScalarWhereWithAggregatesInput | M365UserScalarWhereWithAggregatesInput[]
    OR?: M365UserScalarWhereWithAggregatesInput[]
    NOT?: M365UserScalarWhereWithAggregatesInput | M365UserScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"M365User"> | string
    organizationId?: UuidWithAggregatesFilter<"M365User"> | string
    createdById?: UuidWithAggregatesFilter<"M365User"> | string
    createdAt?: DateTimeWithAggregatesFilter<"M365User"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"M365User"> | Date | string
    graphUserId?: StringWithAggregatesFilter<"M365User"> | string
    userPrincipalName?: StringWithAggregatesFilter<"M365User"> | string
    displayName?: StringNullableWithAggregatesFilter<"M365User"> | string | null
    mail?: StringNullableWithAggregatesFilter<"M365User"> | string | null
    department?: StringNullableWithAggregatesFilter<"M365User"> | string | null
    jobTitle?: StringNullableWithAggregatesFilter<"M365User"> | string | null
    accountEnabled?: BoolWithAggregatesFilter<"M365User"> | boolean
    hasLicense?: BoolWithAggregatesFilter<"M365User"> | boolean
    accountCreatedAt?: DateTimeNullableWithAggregatesFilter<"M365User"> | Date | string | null
    licenses?: JsonWithAggregatesFilter<"M365User">
    lastSignInDateTime?: DateTimeNullableWithAggregatesFilter<"M365User"> | Date | string | null
    lastNonInteractiveSignInDateTime?: DateTimeNullableWithAggregatesFilter<"M365User"> | Date | string | null
    lastEmailActivity?: DateTimeNullableWithAggregatesFilter<"M365User"> | Date | string | null
    lastOneDriveActivity?: DateTimeNullableWithAggregatesFilter<"M365User"> | Date | string | null
    lastTeamsActivity?: DateTimeNullableWithAggregatesFilter<"M365User"> | Date | string | null
    lastSharePointActivity?: DateTimeNullableWithAggregatesFilter<"M365User"> | Date | string | null
    lastAnyActivity?: DateTimeNullableWithAggregatesFilter<"M365User"> | Date | string | null
    daysInactive?: IntNullableWithAggregatesFilter<"M365User"> | number | null
    firstSeenInExecutionId?: UuidWithAggregatesFilter<"M365User"> | string
    lastSeenInExecutionId?: UuidWithAggregatesFilter<"M365User"> | string
  }

  export type M365UserActivityChangeWhereInput = {
    AND?: M365UserActivityChangeWhereInput | M365UserActivityChangeWhereInput[]
    OR?: M365UserActivityChangeWhereInput[]
    NOT?: M365UserActivityChangeWhereInput | M365UserActivityChangeWhereInput[]
    id?: UuidFilter<"M365UserActivityChange"> | string
    organizationId?: UuidFilter<"M365UserActivityChange"> | string
    createdAt?: DateTimeFilter<"M365UserActivityChange"> | Date | string
    userId?: UuidFilter<"M365UserActivityChange"> | string
    executionId?: UuidFilter<"M365UserActivityChange"> | string
    field?: EnumM365UserActivityChangeFieldFilter<"M365UserActivityChange"> | $Enums.M365UserActivityChangeField
    previousValue?: StringNullableFilter<"M365UserActivityChange"> | string | null
    currentValue?: StringNullableFilter<"M365UserActivityChange"> | string | null
    user?: XOR<M365UserScalarRelationFilter, M365UserWhereInput>
  }

  export type M365UserActivityChangeOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrder
    executionId?: SortOrder
    field?: SortOrder
    previousValue?: SortOrderInput | SortOrder
    currentValue?: SortOrderInput | SortOrder
    user?: M365UserOrderByWithRelationInput
  }

  export type M365UserActivityChangeWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: M365UserActivityChangeWhereInput | M365UserActivityChangeWhereInput[]
    OR?: M365UserActivityChangeWhereInput[]
    NOT?: M365UserActivityChangeWhereInput | M365UserActivityChangeWhereInput[]
    organizationId?: UuidFilter<"M365UserActivityChange"> | string
    createdAt?: DateTimeFilter<"M365UserActivityChange"> | Date | string
    userId?: UuidFilter<"M365UserActivityChange"> | string
    executionId?: UuidFilter<"M365UserActivityChange"> | string
    field?: EnumM365UserActivityChangeFieldFilter<"M365UserActivityChange"> | $Enums.M365UserActivityChangeField
    previousValue?: StringNullableFilter<"M365UserActivityChange"> | string | null
    currentValue?: StringNullableFilter<"M365UserActivityChange"> | string | null
    user?: XOR<M365UserScalarRelationFilter, M365UserWhereInput>
  }, "id">

  export type M365UserActivityChangeOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrder
    executionId?: SortOrder
    field?: SortOrder
    previousValue?: SortOrderInput | SortOrder
    currentValue?: SortOrderInput | SortOrder
    _count?: M365UserActivityChangeCountOrderByAggregateInput
    _max?: M365UserActivityChangeMaxOrderByAggregateInput
    _min?: M365UserActivityChangeMinOrderByAggregateInput
  }

  export type M365UserActivityChangeScalarWhereWithAggregatesInput = {
    AND?: M365UserActivityChangeScalarWhereWithAggregatesInput | M365UserActivityChangeScalarWhereWithAggregatesInput[]
    OR?: M365UserActivityChangeScalarWhereWithAggregatesInput[]
    NOT?: M365UserActivityChangeScalarWhereWithAggregatesInput | M365UserActivityChangeScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"M365UserActivityChange"> | string
    organizationId?: UuidWithAggregatesFilter<"M365UserActivityChange"> | string
    createdAt?: DateTimeWithAggregatesFilter<"M365UserActivityChange"> | Date | string
    userId?: UuidWithAggregatesFilter<"M365UserActivityChange"> | string
    executionId?: UuidWithAggregatesFilter<"M365UserActivityChange"> | string
    field?: EnumM365UserActivityChangeFieldWithAggregatesFilter<"M365UserActivityChange"> | $Enums.M365UserActivityChangeField
    previousValue?: StringNullableWithAggregatesFilter<"M365UserActivityChange"> | string | null
    currentValue?: StringNullableWithAggregatesFilter<"M365UserActivityChange"> | string | null
  }

  export type GradeConfigWhereInput = {
    AND?: GradeConfigWhereInput | GradeConfigWhereInput[]
    OR?: GradeConfigWhereInput[]
    NOT?: GradeConfigWhereInput | GradeConfigWhereInput[]
    id?: UuidFilter<"GradeConfig"> | string
    name?: StringFilter<"GradeConfig"> | string
    description?: StringNullableFilter<"GradeConfig"> | string | null
    grades?: JsonFilter<"GradeConfig">
    isDefault?: BoolFilter<"GradeConfig"> | boolean
    isActive?: BoolFilter<"GradeConfig"> | boolean
    createdBy?: UuidFilter<"GradeConfig"> | string
    createdAt?: DateTimeFilter<"GradeConfig"> | Date | string
    updatedAt?: DateTimeFilter<"GradeConfig"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GradeConfig"> | Date | string | null
    organizationId?: UuidNullableFilter<"GradeConfig"> | string | null
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    cycles?: PerformanceCycleListRelationFilter
  }

  export type GradeConfigOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    grades?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrderInput | SortOrder
    organization?: OrganizationOrderByWithRelationInput
    cycles?: PerformanceCycleOrderByRelationAggregateInput
  }

  export type GradeConfigWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: GradeConfigWhereInput | GradeConfigWhereInput[]
    OR?: GradeConfigWhereInput[]
    NOT?: GradeConfigWhereInput | GradeConfigWhereInput[]
    name?: StringFilter<"GradeConfig"> | string
    description?: StringNullableFilter<"GradeConfig"> | string | null
    grades?: JsonFilter<"GradeConfig">
    isDefault?: BoolFilter<"GradeConfig"> | boolean
    isActive?: BoolFilter<"GradeConfig"> | boolean
    createdBy?: UuidFilter<"GradeConfig"> | string
    createdAt?: DateTimeFilter<"GradeConfig"> | Date | string
    updatedAt?: DateTimeFilter<"GradeConfig"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GradeConfig"> | Date | string | null
    organizationId?: UuidNullableFilter<"GradeConfig"> | string | null
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    cycles?: PerformanceCycleListRelationFilter
  }, "id">

  export type GradeConfigOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    grades?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrderInput | SortOrder
    _count?: GradeConfigCountOrderByAggregateInput
    _max?: GradeConfigMaxOrderByAggregateInput
    _min?: GradeConfigMinOrderByAggregateInput
  }

  export type GradeConfigScalarWhereWithAggregatesInput = {
    AND?: GradeConfigScalarWhereWithAggregatesInput | GradeConfigScalarWhereWithAggregatesInput[]
    OR?: GradeConfigScalarWhereWithAggregatesInput[]
    NOT?: GradeConfigScalarWhereWithAggregatesInput | GradeConfigScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"GradeConfig"> | string
    name?: StringWithAggregatesFilter<"GradeConfig"> | string
    description?: StringNullableWithAggregatesFilter<"GradeConfig"> | string | null
    grades?: JsonWithAggregatesFilter<"GradeConfig">
    isDefault?: BoolWithAggregatesFilter<"GradeConfig"> | boolean
    isActive?: BoolWithAggregatesFilter<"GradeConfig"> | boolean
    createdBy?: UuidWithAggregatesFilter<"GradeConfig"> | string
    createdAt?: DateTimeWithAggregatesFilter<"GradeConfig"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"GradeConfig"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"GradeConfig"> | Date | string | null
    organizationId?: UuidNullableWithAggregatesFilter<"GradeConfig"> | string | null
  }

  export type PerformanceCycleWhereInput = {
    AND?: PerformanceCycleWhereInput | PerformanceCycleWhereInput[]
    OR?: PerformanceCycleWhereInput[]
    NOT?: PerformanceCycleWhereInput | PerformanceCycleWhereInput[]
    id?: UuidFilter<"PerformanceCycle"> | string
    name?: StringFilter<"PerformanceCycle"> | string
    type?: EnumCycleTypeFilter<"PerformanceCycle"> | $Enums.CycleType
    status?: EnumCycleStatusFilter<"PerformanceCycle"> | $Enums.CycleStatus
    startDate?: DateTimeFilter<"PerformanceCycle"> | Date | string
    endDate?: DateTimeFilter<"PerformanceCycle"> | Date | string
    gradeConfigId?: UuidNullableFilter<"PerformanceCycle"> | string | null
    parentCycleId?: UuidNullableFilter<"PerformanceCycle"> | string | null
    resultsPublishedAt?: DateTimeNullableFilter<"PerformanceCycle"> | Date | string | null
    resultsPublishedBy?: UuidNullableFilter<"PerformanceCycle"> | string | null
    createdBy?: UuidFilter<"PerformanceCycle"> | string
    createdAt?: DateTimeFilter<"PerformanceCycle"> | Date | string
    updatedAt?: DateTimeFilter<"PerformanceCycle"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PerformanceCycle"> | Date | string | null
    organizationId?: UuidFilter<"PerformanceCycle"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    gradeConfig?: XOR<GradeConfigNullableScalarRelationFilter, GradeConfigWhereInput> | null
    parentCycle?: XOR<PerformanceCycleNullableScalarRelationFilter, PerformanceCycleWhereInput> | null
    childCycles?: PerformanceCycleListRelationFilter
    kpiAssignments?: KpiAssignmentListRelationFilter
    evaluations?: Evaluation360ListRelationFilter
    results?: PerformanceResultListRelationFilter
    strategicObjectives?: StrategicObjectiveListRelationFilter
    e360Templates?: Evaluation360TemplateListRelationFilter
  }

  export type PerformanceCycleOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    type?: SortOrder
    status?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    gradeConfigId?: SortOrderInput | SortOrder
    parentCycleId?: SortOrderInput | SortOrder
    resultsPublishedAt?: SortOrderInput | SortOrder
    resultsPublishedBy?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    organization?: OrganizationOrderByWithRelationInput
    gradeConfig?: GradeConfigOrderByWithRelationInput
    parentCycle?: PerformanceCycleOrderByWithRelationInput
    childCycles?: PerformanceCycleOrderByRelationAggregateInput
    kpiAssignments?: KpiAssignmentOrderByRelationAggregateInput
    evaluations?: Evaluation360OrderByRelationAggregateInput
    results?: PerformanceResultOrderByRelationAggregateInput
    strategicObjectives?: StrategicObjectiveOrderByRelationAggregateInput
    e360Templates?: Evaluation360TemplateOrderByRelationAggregateInput
  }

  export type PerformanceCycleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: PerformanceCycleWhereInput | PerformanceCycleWhereInput[]
    OR?: PerformanceCycleWhereInput[]
    NOT?: PerformanceCycleWhereInput | PerformanceCycleWhereInput[]
    name?: StringFilter<"PerformanceCycle"> | string
    type?: EnumCycleTypeFilter<"PerformanceCycle"> | $Enums.CycleType
    status?: EnumCycleStatusFilter<"PerformanceCycle"> | $Enums.CycleStatus
    startDate?: DateTimeFilter<"PerformanceCycle"> | Date | string
    endDate?: DateTimeFilter<"PerformanceCycle"> | Date | string
    gradeConfigId?: UuidNullableFilter<"PerformanceCycle"> | string | null
    parentCycleId?: UuidNullableFilter<"PerformanceCycle"> | string | null
    resultsPublishedAt?: DateTimeNullableFilter<"PerformanceCycle"> | Date | string | null
    resultsPublishedBy?: UuidNullableFilter<"PerformanceCycle"> | string | null
    createdBy?: UuidFilter<"PerformanceCycle"> | string
    createdAt?: DateTimeFilter<"PerformanceCycle"> | Date | string
    updatedAt?: DateTimeFilter<"PerformanceCycle"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PerformanceCycle"> | Date | string | null
    organizationId?: UuidFilter<"PerformanceCycle"> | string
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    gradeConfig?: XOR<GradeConfigNullableScalarRelationFilter, GradeConfigWhereInput> | null
    parentCycle?: XOR<PerformanceCycleNullableScalarRelationFilter, PerformanceCycleWhereInput> | null
    childCycles?: PerformanceCycleListRelationFilter
    kpiAssignments?: KpiAssignmentListRelationFilter
    evaluations?: Evaluation360ListRelationFilter
    results?: PerformanceResultListRelationFilter
    strategicObjectives?: StrategicObjectiveListRelationFilter
    e360Templates?: Evaluation360TemplateListRelationFilter
  }, "id">

  export type PerformanceCycleOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    type?: SortOrder
    status?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    gradeConfigId?: SortOrderInput | SortOrder
    parentCycleId?: SortOrderInput | SortOrder
    resultsPublishedAt?: SortOrderInput | SortOrder
    resultsPublishedBy?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    _count?: PerformanceCycleCountOrderByAggregateInput
    _max?: PerformanceCycleMaxOrderByAggregateInput
    _min?: PerformanceCycleMinOrderByAggregateInput
  }

  export type PerformanceCycleScalarWhereWithAggregatesInput = {
    AND?: PerformanceCycleScalarWhereWithAggregatesInput | PerformanceCycleScalarWhereWithAggregatesInput[]
    OR?: PerformanceCycleScalarWhereWithAggregatesInput[]
    NOT?: PerformanceCycleScalarWhereWithAggregatesInput | PerformanceCycleScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PerformanceCycle"> | string
    name?: StringWithAggregatesFilter<"PerformanceCycle"> | string
    type?: EnumCycleTypeWithAggregatesFilter<"PerformanceCycle"> | $Enums.CycleType
    status?: EnumCycleStatusWithAggregatesFilter<"PerformanceCycle"> | $Enums.CycleStatus
    startDate?: DateTimeWithAggregatesFilter<"PerformanceCycle"> | Date | string
    endDate?: DateTimeWithAggregatesFilter<"PerformanceCycle"> | Date | string
    gradeConfigId?: UuidNullableWithAggregatesFilter<"PerformanceCycle"> | string | null
    parentCycleId?: UuidNullableWithAggregatesFilter<"PerformanceCycle"> | string | null
    resultsPublishedAt?: DateTimeNullableWithAggregatesFilter<"PerformanceCycle"> | Date | string | null
    resultsPublishedBy?: UuidNullableWithAggregatesFilter<"PerformanceCycle"> | string | null
    createdBy?: UuidWithAggregatesFilter<"PerformanceCycle"> | string
    createdAt?: DateTimeWithAggregatesFilter<"PerformanceCycle"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PerformanceCycle"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"PerformanceCycle"> | Date | string | null
    organizationId?: UuidWithAggregatesFilter<"PerformanceCycle"> | string
  }

  export type PerformanceResultWhereInput = {
    AND?: PerformanceResultWhereInput | PerformanceResultWhereInput[]
    OR?: PerformanceResultWhereInput[]
    NOT?: PerformanceResultWhereInput | PerformanceResultWhereInput[]
    id?: UuidFilter<"PerformanceResult"> | string
    cycleId?: UuidFilter<"PerformanceResult"> | string
    employeeId?: UuidFilter<"PerformanceResult"> | string
    kpiScore?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    e360Score?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    e360Weight?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    totalScore?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: StringNullableFilter<"PerformanceResult"> | string | null
    proposedGradeName?: StringNullableFilter<"PerformanceResult"> | string | null
    gradeCode?: StringNullableFilter<"PerformanceResult"> | string | null
    gradeName?: StringNullableFilter<"PerformanceResult"> | string | null
    isPublished?: BoolFilter<"PerformanceResult"> | boolean
    publishedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    viewedByEmployee?: BoolFilter<"PerformanceResult"> | boolean
    viewedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFilter<"PerformanceResult"> | $Enums.ResultConfirmStatus
    appealReason?: StringNullableFilter<"PerformanceResult"> | string | null
    appealResponse?: StringNullableFilter<"PerformanceResult"> | string | null
    appealResolvedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    selfOverallComment?: StringNullableFilter<"PerformanceResult"> | string | null
    managerOverallComment?: StringNullableFilter<"PerformanceResult"> | string | null
    remarks?: StringNullableFilter<"PerformanceResult"> | string | null
    createdAt?: DateTimeFilter<"PerformanceResult"> | Date | string
    updatedAt?: DateTimeFilter<"PerformanceResult"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    organizationId?: UuidFilter<"PerformanceResult"> | string
    cycle?: XOR<PerformanceCycleScalarRelationFilter, PerformanceCycleWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    adjustmentLogs?: GradeAdjustmentLogListRelationFilter
  }

  export type PerformanceResultOrderByWithRelationInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    kpiScore?: SortOrderInput | SortOrder
    kpiWeight?: SortOrderInput | SortOrder
    e360Score?: SortOrderInput | SortOrder
    e360Weight?: SortOrderInput | SortOrder
    totalScore?: SortOrderInput | SortOrder
    proposedGradeCode?: SortOrderInput | SortOrder
    proposedGradeName?: SortOrderInput | SortOrder
    gradeCode?: SortOrderInput | SortOrder
    gradeName?: SortOrderInput | SortOrder
    isPublished?: SortOrder
    publishedAt?: SortOrderInput | SortOrder
    viewedByEmployee?: SortOrder
    viewedAt?: SortOrderInput | SortOrder
    confirmStatus?: SortOrder
    appealReason?: SortOrderInput | SortOrder
    appealResponse?: SortOrderInput | SortOrder
    appealResolvedAt?: SortOrderInput | SortOrder
    selfOverallComment?: SortOrderInput | SortOrder
    managerOverallComment?: SortOrderInput | SortOrder
    remarks?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    cycle?: PerformanceCycleOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
    adjustmentLogs?: GradeAdjustmentLogOrderByRelationAggregateInput
  }

  export type PerformanceResultWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    cycleId_employeeId?: PerformanceResultCycleIdEmployeeIdCompoundUniqueInput
    AND?: PerformanceResultWhereInput | PerformanceResultWhereInput[]
    OR?: PerformanceResultWhereInput[]
    NOT?: PerformanceResultWhereInput | PerformanceResultWhereInput[]
    cycleId?: UuidFilter<"PerformanceResult"> | string
    employeeId?: UuidFilter<"PerformanceResult"> | string
    kpiScore?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    e360Score?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    e360Weight?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    totalScore?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: StringNullableFilter<"PerformanceResult"> | string | null
    proposedGradeName?: StringNullableFilter<"PerformanceResult"> | string | null
    gradeCode?: StringNullableFilter<"PerformanceResult"> | string | null
    gradeName?: StringNullableFilter<"PerformanceResult"> | string | null
    isPublished?: BoolFilter<"PerformanceResult"> | boolean
    publishedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    viewedByEmployee?: BoolFilter<"PerformanceResult"> | boolean
    viewedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFilter<"PerformanceResult"> | $Enums.ResultConfirmStatus
    appealReason?: StringNullableFilter<"PerformanceResult"> | string | null
    appealResponse?: StringNullableFilter<"PerformanceResult"> | string | null
    appealResolvedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    selfOverallComment?: StringNullableFilter<"PerformanceResult"> | string | null
    managerOverallComment?: StringNullableFilter<"PerformanceResult"> | string | null
    remarks?: StringNullableFilter<"PerformanceResult"> | string | null
    createdAt?: DateTimeFilter<"PerformanceResult"> | Date | string
    updatedAt?: DateTimeFilter<"PerformanceResult"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    organizationId?: UuidFilter<"PerformanceResult"> | string
    cycle?: XOR<PerformanceCycleScalarRelationFilter, PerformanceCycleWhereInput>
    organization?: XOR<OrganizationScalarRelationFilter, OrganizationWhereInput>
    adjustmentLogs?: GradeAdjustmentLogListRelationFilter
  }, "id" | "cycleId_employeeId">

  export type PerformanceResultOrderByWithAggregationInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    kpiScore?: SortOrderInput | SortOrder
    kpiWeight?: SortOrderInput | SortOrder
    e360Score?: SortOrderInput | SortOrder
    e360Weight?: SortOrderInput | SortOrder
    totalScore?: SortOrderInput | SortOrder
    proposedGradeCode?: SortOrderInput | SortOrder
    proposedGradeName?: SortOrderInput | SortOrder
    gradeCode?: SortOrderInput | SortOrder
    gradeName?: SortOrderInput | SortOrder
    isPublished?: SortOrder
    publishedAt?: SortOrderInput | SortOrder
    viewedByEmployee?: SortOrder
    viewedAt?: SortOrderInput | SortOrder
    confirmStatus?: SortOrder
    appealReason?: SortOrderInput | SortOrder
    appealResponse?: SortOrderInput | SortOrder
    appealResolvedAt?: SortOrderInput | SortOrder
    selfOverallComment?: SortOrderInput | SortOrder
    managerOverallComment?: SortOrderInput | SortOrder
    remarks?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    _count?: PerformanceResultCountOrderByAggregateInput
    _avg?: PerformanceResultAvgOrderByAggregateInput
    _max?: PerformanceResultMaxOrderByAggregateInput
    _min?: PerformanceResultMinOrderByAggregateInput
    _sum?: PerformanceResultSumOrderByAggregateInput
  }

  export type PerformanceResultScalarWhereWithAggregatesInput = {
    AND?: PerformanceResultScalarWhereWithAggregatesInput | PerformanceResultScalarWhereWithAggregatesInput[]
    OR?: PerformanceResultScalarWhereWithAggregatesInput[]
    NOT?: PerformanceResultScalarWhereWithAggregatesInput | PerformanceResultScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PerformanceResult"> | string
    cycleId?: UuidWithAggregatesFilter<"PerformanceResult"> | string
    employeeId?: UuidWithAggregatesFilter<"PerformanceResult"> | string
    kpiScore?: DecimalNullableWithAggregatesFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: DecimalNullableWithAggregatesFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    e360Score?: DecimalNullableWithAggregatesFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    e360Weight?: DecimalNullableWithAggregatesFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    totalScore?: DecimalNullableWithAggregatesFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    proposedGradeName?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    gradeCode?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    gradeName?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    isPublished?: BoolWithAggregatesFilter<"PerformanceResult"> | boolean
    publishedAt?: DateTimeNullableWithAggregatesFilter<"PerformanceResult"> | Date | string | null
    viewedByEmployee?: BoolWithAggregatesFilter<"PerformanceResult"> | boolean
    viewedAt?: DateTimeNullableWithAggregatesFilter<"PerformanceResult"> | Date | string | null
    confirmStatus?: EnumResultConfirmStatusWithAggregatesFilter<"PerformanceResult"> | $Enums.ResultConfirmStatus
    appealReason?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    appealResponse?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    appealResolvedAt?: DateTimeNullableWithAggregatesFilter<"PerformanceResult"> | Date | string | null
    selfOverallComment?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    managerOverallComment?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    remarks?: StringNullableWithAggregatesFilter<"PerformanceResult"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"PerformanceResult"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PerformanceResult"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"PerformanceResult"> | Date | string | null
    organizationId?: UuidWithAggregatesFilter<"PerformanceResult"> | string
  }

  export type KpiAssignmentWhereInput = {
    AND?: KpiAssignmentWhereInput | KpiAssignmentWhereInput[]
    OR?: KpiAssignmentWhereInput[]
    NOT?: KpiAssignmentWhereInput | KpiAssignmentWhereInput[]
    id?: UuidFilter<"KpiAssignment"> | string
    cycleId?: UuidFilter<"KpiAssignment"> | string
    employeeId?: UuidFilter<"KpiAssignment"> | string
    name?: StringFilter<"KpiAssignment"> | string
    description?: StringNullableFilter<"KpiAssignment"> | string | null
    weight?: DecimalFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string
    unit?: StringNullableFilter<"KpiAssignment"> | string | null
    baseTarget?: StringNullableFilter<"KpiAssignment"> | string | null
    stretchTarget?: StringNullableFilter<"KpiAssignment"> | string | null
    targetValue?: DecimalNullableFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string | null
    parentId?: UuidNullableFilter<"KpiAssignment"> | string | null
    seq?: IntNullableFilter<"KpiAssignment"> | number | null
    status?: EnumKpiAssignmentStatusFilter<"KpiAssignment"> | $Enums.KpiAssignmentStatus
    maturityScore?: DecimalNullableFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFilter<"KpiAssignment"> | Date | string
    updatedAt?: DateTimeFilter<"KpiAssignment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KpiAssignment"> | Date | string | null
    cycle?: XOR<PerformanceCycleScalarRelationFilter, PerformanceCycleWhereInput>
    parent?: XOR<KpiAssignmentNullableScalarRelationFilter, KpiAssignmentWhereInput> | null
    children?: KpiAssignmentListRelationFilter
    assessment?: XOR<KpiAssessmentNullableScalarRelationFilter, KpiAssessmentWhereInput> | null
    outgoingDependencies?: KpiDependencyListRelationFilter
    incomingDependencies?: KpiDependencyListRelationFilter
  }

  export type KpiAssignmentOrderByWithRelationInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    weight?: SortOrder
    unit?: SortOrderInput | SortOrder
    baseTarget?: SortOrderInput | SortOrder
    stretchTarget?: SortOrderInput | SortOrder
    targetValue?: SortOrderInput | SortOrder
    parentId?: SortOrderInput | SortOrder
    seq?: SortOrderInput | SortOrder
    status?: SortOrder
    maturityScore?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    cycle?: PerformanceCycleOrderByWithRelationInput
    parent?: KpiAssignmentOrderByWithRelationInput
    children?: KpiAssignmentOrderByRelationAggregateInput
    assessment?: KpiAssessmentOrderByWithRelationInput
    outgoingDependencies?: KpiDependencyOrderByRelationAggregateInput
    incomingDependencies?: KpiDependencyOrderByRelationAggregateInput
  }

  export type KpiAssignmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    cycleId_employeeId_name?: KpiAssignmentCycleIdEmployeeIdNameCompoundUniqueInput
    AND?: KpiAssignmentWhereInput | KpiAssignmentWhereInput[]
    OR?: KpiAssignmentWhereInput[]
    NOT?: KpiAssignmentWhereInput | KpiAssignmentWhereInput[]
    cycleId?: UuidFilter<"KpiAssignment"> | string
    employeeId?: UuidFilter<"KpiAssignment"> | string
    name?: StringFilter<"KpiAssignment"> | string
    description?: StringNullableFilter<"KpiAssignment"> | string | null
    weight?: DecimalFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string
    unit?: StringNullableFilter<"KpiAssignment"> | string | null
    baseTarget?: StringNullableFilter<"KpiAssignment"> | string | null
    stretchTarget?: StringNullableFilter<"KpiAssignment"> | string | null
    targetValue?: DecimalNullableFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string | null
    parentId?: UuidNullableFilter<"KpiAssignment"> | string | null
    seq?: IntNullableFilter<"KpiAssignment"> | number | null
    status?: EnumKpiAssignmentStatusFilter<"KpiAssignment"> | $Enums.KpiAssignmentStatus
    maturityScore?: DecimalNullableFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFilter<"KpiAssignment"> | Date | string
    updatedAt?: DateTimeFilter<"KpiAssignment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KpiAssignment"> | Date | string | null
    cycle?: XOR<PerformanceCycleScalarRelationFilter, PerformanceCycleWhereInput>
    parent?: XOR<KpiAssignmentNullableScalarRelationFilter, KpiAssignmentWhereInput> | null
    children?: KpiAssignmentListRelationFilter
    assessment?: XOR<KpiAssessmentNullableScalarRelationFilter, KpiAssessmentWhereInput> | null
    outgoingDependencies?: KpiDependencyListRelationFilter
    incomingDependencies?: KpiDependencyListRelationFilter
  }, "id" | "cycleId_employeeId_name">

  export type KpiAssignmentOrderByWithAggregationInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    weight?: SortOrder
    unit?: SortOrderInput | SortOrder
    baseTarget?: SortOrderInput | SortOrder
    stretchTarget?: SortOrderInput | SortOrder
    targetValue?: SortOrderInput | SortOrder
    parentId?: SortOrderInput | SortOrder
    seq?: SortOrderInput | SortOrder
    status?: SortOrder
    maturityScore?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: KpiAssignmentCountOrderByAggregateInput
    _avg?: KpiAssignmentAvgOrderByAggregateInput
    _max?: KpiAssignmentMaxOrderByAggregateInput
    _min?: KpiAssignmentMinOrderByAggregateInput
    _sum?: KpiAssignmentSumOrderByAggregateInput
  }

  export type KpiAssignmentScalarWhereWithAggregatesInput = {
    AND?: KpiAssignmentScalarWhereWithAggregatesInput | KpiAssignmentScalarWhereWithAggregatesInput[]
    OR?: KpiAssignmentScalarWhereWithAggregatesInput[]
    NOT?: KpiAssignmentScalarWhereWithAggregatesInput | KpiAssignmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"KpiAssignment"> | string
    cycleId?: UuidWithAggregatesFilter<"KpiAssignment"> | string
    employeeId?: UuidWithAggregatesFilter<"KpiAssignment"> | string
    name?: StringWithAggregatesFilter<"KpiAssignment"> | string
    description?: StringNullableWithAggregatesFilter<"KpiAssignment"> | string | null
    weight?: DecimalWithAggregatesFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string
    unit?: StringNullableWithAggregatesFilter<"KpiAssignment"> | string | null
    baseTarget?: StringNullableWithAggregatesFilter<"KpiAssignment"> | string | null
    stretchTarget?: StringNullableWithAggregatesFilter<"KpiAssignment"> | string | null
    targetValue?: DecimalNullableWithAggregatesFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string | null
    parentId?: UuidNullableWithAggregatesFilter<"KpiAssignment"> | string | null
    seq?: IntNullableWithAggregatesFilter<"KpiAssignment"> | number | null
    status?: EnumKpiAssignmentStatusWithAggregatesFilter<"KpiAssignment"> | $Enums.KpiAssignmentStatus
    maturityScore?: DecimalNullableWithAggregatesFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeWithAggregatesFilter<"KpiAssignment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"KpiAssignment"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"KpiAssignment"> | Date | string | null
  }

  export type KpiDependencyWhereInput = {
    AND?: KpiDependencyWhereInput | KpiDependencyWhereInput[]
    OR?: KpiDependencyWhereInput[]
    NOT?: KpiDependencyWhereInput | KpiDependencyWhereInput[]
    id?: UuidFilter<"KpiDependency"> | string
    sourceAssignmentId?: UuidFilter<"KpiDependency"> | string
    targetAssignmentId?: UuidNullableFilter<"KpiDependency"> | string | null
    targetUserId?: UuidFilter<"KpiDependency"> | string
    description?: StringNullableFilter<"KpiDependency"> | string | null
    status?: EnumKpiDependencyStatusFilter<"KpiDependency"> | $Enums.KpiDependencyStatus
    rejectionReason?: StringNullableFilter<"KpiDependency"> | string | null
    confirmedAt?: DateTimeNullableFilter<"KpiDependency"> | Date | string | null
    createdAt?: DateTimeFilter<"KpiDependency"> | Date | string
    updatedAt?: DateTimeFilter<"KpiDependency"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KpiDependency"> | Date | string | null
    sourceAssignment?: XOR<KpiAssignmentScalarRelationFilter, KpiAssignmentWhereInput>
    targetAssignment?: XOR<KpiAssignmentNullableScalarRelationFilter, KpiAssignmentWhereInput> | null
  }

  export type KpiDependencyOrderByWithRelationInput = {
    id?: SortOrder
    sourceAssignmentId?: SortOrder
    targetAssignmentId?: SortOrderInput | SortOrder
    targetUserId?: SortOrder
    description?: SortOrderInput | SortOrder
    status?: SortOrder
    rejectionReason?: SortOrderInput | SortOrder
    confirmedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    sourceAssignment?: KpiAssignmentOrderByWithRelationInput
    targetAssignment?: KpiAssignmentOrderByWithRelationInput
  }

  export type KpiDependencyWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    sourceAssignmentId_targetUserId?: KpiDependencySourceAssignmentIdTargetUserIdCompoundUniqueInput
    AND?: KpiDependencyWhereInput | KpiDependencyWhereInput[]
    OR?: KpiDependencyWhereInput[]
    NOT?: KpiDependencyWhereInput | KpiDependencyWhereInput[]
    sourceAssignmentId?: UuidFilter<"KpiDependency"> | string
    targetAssignmentId?: UuidNullableFilter<"KpiDependency"> | string | null
    targetUserId?: UuidFilter<"KpiDependency"> | string
    description?: StringNullableFilter<"KpiDependency"> | string | null
    status?: EnumKpiDependencyStatusFilter<"KpiDependency"> | $Enums.KpiDependencyStatus
    rejectionReason?: StringNullableFilter<"KpiDependency"> | string | null
    confirmedAt?: DateTimeNullableFilter<"KpiDependency"> | Date | string | null
    createdAt?: DateTimeFilter<"KpiDependency"> | Date | string
    updatedAt?: DateTimeFilter<"KpiDependency"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KpiDependency"> | Date | string | null
    sourceAssignment?: XOR<KpiAssignmentScalarRelationFilter, KpiAssignmentWhereInput>
    targetAssignment?: XOR<KpiAssignmentNullableScalarRelationFilter, KpiAssignmentWhereInput> | null
  }, "id" | "sourceAssignmentId_targetUserId">

  export type KpiDependencyOrderByWithAggregationInput = {
    id?: SortOrder
    sourceAssignmentId?: SortOrder
    targetAssignmentId?: SortOrderInput | SortOrder
    targetUserId?: SortOrder
    description?: SortOrderInput | SortOrder
    status?: SortOrder
    rejectionReason?: SortOrderInput | SortOrder
    confirmedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: KpiDependencyCountOrderByAggregateInput
    _max?: KpiDependencyMaxOrderByAggregateInput
    _min?: KpiDependencyMinOrderByAggregateInput
  }

  export type KpiDependencyScalarWhereWithAggregatesInput = {
    AND?: KpiDependencyScalarWhereWithAggregatesInput | KpiDependencyScalarWhereWithAggregatesInput[]
    OR?: KpiDependencyScalarWhereWithAggregatesInput[]
    NOT?: KpiDependencyScalarWhereWithAggregatesInput | KpiDependencyScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"KpiDependency"> | string
    sourceAssignmentId?: UuidWithAggregatesFilter<"KpiDependency"> | string
    targetAssignmentId?: UuidNullableWithAggregatesFilter<"KpiDependency"> | string | null
    targetUserId?: UuidWithAggregatesFilter<"KpiDependency"> | string
    description?: StringNullableWithAggregatesFilter<"KpiDependency"> | string | null
    status?: EnumKpiDependencyStatusWithAggregatesFilter<"KpiDependency"> | $Enums.KpiDependencyStatus
    rejectionReason?: StringNullableWithAggregatesFilter<"KpiDependency"> | string | null
    confirmedAt?: DateTimeNullableWithAggregatesFilter<"KpiDependency"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"KpiDependency"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"KpiDependency"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"KpiDependency"> | Date | string | null
  }

  export type KpiAssessmentWhereInput = {
    AND?: KpiAssessmentWhereInput | KpiAssessmentWhereInput[]
    OR?: KpiAssessmentWhereInput[]
    NOT?: KpiAssessmentWhereInput | KpiAssessmentWhereInput[]
    id?: UuidFilter<"KpiAssessment"> | string
    assignmentId?: UuidFilter<"KpiAssessment"> | string
    status?: EnumKpiAssessmentStatusFilter<"KpiAssessment"> | $Enums.KpiAssessmentStatus
    selfScore?: DecimalNullableFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    completionNote?: StringNullableFilter<"KpiAssessment"> | string | null
    selfComment?: StringNullableFilter<"KpiAssessment"> | string | null
    selfEvaluatedAt?: DateTimeNullableFilter<"KpiAssessment"> | Date | string | null
    managerScore?: DecimalNullableFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    managerComment?: StringNullableFilter<"KpiAssessment"> | string | null
    managerId?: UuidNullableFilter<"KpiAssessment"> | string | null
    managerEvaluatedAt?: DateTimeNullableFilter<"KpiAssessment"> | Date | string | null
    finalScore?: DecimalNullableFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    deletedAt?: DateTimeNullableFilter<"KpiAssessment"> | Date | string | null
    assignment?: XOR<KpiAssignmentScalarRelationFilter, KpiAssignmentWhereInput>
  }

  export type KpiAssessmentOrderByWithRelationInput = {
    id?: SortOrder
    assignmentId?: SortOrder
    status?: SortOrder
    selfScore?: SortOrderInput | SortOrder
    completionNote?: SortOrderInput | SortOrder
    selfComment?: SortOrderInput | SortOrder
    selfEvaluatedAt?: SortOrderInput | SortOrder
    managerScore?: SortOrderInput | SortOrder
    managerComment?: SortOrderInput | SortOrder
    managerId?: SortOrderInput | SortOrder
    managerEvaluatedAt?: SortOrderInput | SortOrder
    finalScore?: SortOrderInput | SortOrder
    deletedAt?: SortOrderInput | SortOrder
    assignment?: KpiAssignmentOrderByWithRelationInput
  }

  export type KpiAssessmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    assignmentId?: string
    AND?: KpiAssessmentWhereInput | KpiAssessmentWhereInput[]
    OR?: KpiAssessmentWhereInput[]
    NOT?: KpiAssessmentWhereInput | KpiAssessmentWhereInput[]
    status?: EnumKpiAssessmentStatusFilter<"KpiAssessment"> | $Enums.KpiAssessmentStatus
    selfScore?: DecimalNullableFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    completionNote?: StringNullableFilter<"KpiAssessment"> | string | null
    selfComment?: StringNullableFilter<"KpiAssessment"> | string | null
    selfEvaluatedAt?: DateTimeNullableFilter<"KpiAssessment"> | Date | string | null
    managerScore?: DecimalNullableFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    managerComment?: StringNullableFilter<"KpiAssessment"> | string | null
    managerId?: UuidNullableFilter<"KpiAssessment"> | string | null
    managerEvaluatedAt?: DateTimeNullableFilter<"KpiAssessment"> | Date | string | null
    finalScore?: DecimalNullableFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    deletedAt?: DateTimeNullableFilter<"KpiAssessment"> | Date | string | null
    assignment?: XOR<KpiAssignmentScalarRelationFilter, KpiAssignmentWhereInput>
  }, "id" | "assignmentId">

  export type KpiAssessmentOrderByWithAggregationInput = {
    id?: SortOrder
    assignmentId?: SortOrder
    status?: SortOrder
    selfScore?: SortOrderInput | SortOrder
    completionNote?: SortOrderInput | SortOrder
    selfComment?: SortOrderInput | SortOrder
    selfEvaluatedAt?: SortOrderInput | SortOrder
    managerScore?: SortOrderInput | SortOrder
    managerComment?: SortOrderInput | SortOrder
    managerId?: SortOrderInput | SortOrder
    managerEvaluatedAt?: SortOrderInput | SortOrder
    finalScore?: SortOrderInput | SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: KpiAssessmentCountOrderByAggregateInput
    _avg?: KpiAssessmentAvgOrderByAggregateInput
    _max?: KpiAssessmentMaxOrderByAggregateInput
    _min?: KpiAssessmentMinOrderByAggregateInput
    _sum?: KpiAssessmentSumOrderByAggregateInput
  }

  export type KpiAssessmentScalarWhereWithAggregatesInput = {
    AND?: KpiAssessmentScalarWhereWithAggregatesInput | KpiAssessmentScalarWhereWithAggregatesInput[]
    OR?: KpiAssessmentScalarWhereWithAggregatesInput[]
    NOT?: KpiAssessmentScalarWhereWithAggregatesInput | KpiAssessmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"KpiAssessment"> | string
    assignmentId?: UuidWithAggregatesFilter<"KpiAssessment"> | string
    status?: EnumKpiAssessmentStatusWithAggregatesFilter<"KpiAssessment"> | $Enums.KpiAssessmentStatus
    selfScore?: DecimalNullableWithAggregatesFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    completionNote?: StringNullableWithAggregatesFilter<"KpiAssessment"> | string | null
    selfComment?: StringNullableWithAggregatesFilter<"KpiAssessment"> | string | null
    selfEvaluatedAt?: DateTimeNullableWithAggregatesFilter<"KpiAssessment"> | Date | string | null
    managerScore?: DecimalNullableWithAggregatesFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    managerComment?: StringNullableWithAggregatesFilter<"KpiAssessment"> | string | null
    managerId?: UuidNullableWithAggregatesFilter<"KpiAssessment"> | string | null
    managerEvaluatedAt?: DateTimeNullableWithAggregatesFilter<"KpiAssessment"> | Date | string | null
    finalScore?: DecimalNullableWithAggregatesFilter<"KpiAssessment"> | Decimal | DecimalJsLike | number | string | null
    deletedAt?: DateTimeNullableWithAggregatesFilter<"KpiAssessment"> | Date | string | null
  }

  export type Evaluation360WhereInput = {
    AND?: Evaluation360WhereInput | Evaluation360WhereInput[]
    OR?: Evaluation360WhereInput[]
    NOT?: Evaluation360WhereInput | Evaluation360WhereInput[]
    id?: UuidFilter<"Evaluation360"> | string
    cycleId?: UuidFilter<"Evaluation360"> | string
    targetId?: UuidFilter<"Evaluation360"> | string
    status?: EnumEvaluation360StatusFilter<"Evaluation360"> | $Enums.Evaluation360Status
    templateId?: UuidNullableFilter<"Evaluation360"> | string | null
    deadline?: DateTimeFilter<"Evaluation360"> | Date | string
    minEvaluators?: IntNullableFilter<"Evaluation360"> | number | null
    createdBy?: UuidFilter<"Evaluation360"> | string
    createdAt?: DateTimeFilter<"Evaluation360"> | Date | string
    updatedAt?: DateTimeFilter<"Evaluation360"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Evaluation360"> | Date | string | null
    cycle?: XOR<PerformanceCycleScalarRelationFilter, PerformanceCycleWhereInput>
    template?: XOR<Evaluation360TemplateNullableScalarRelationFilter, Evaluation360TemplateWhereInput> | null
    tasks?: EvaluationTaskListRelationFilter
  }

  export type Evaluation360OrderByWithRelationInput = {
    id?: SortOrder
    cycleId?: SortOrder
    targetId?: SortOrder
    status?: SortOrder
    templateId?: SortOrderInput | SortOrder
    deadline?: SortOrder
    minEvaluators?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    cycle?: PerformanceCycleOrderByWithRelationInput
    template?: Evaluation360TemplateOrderByWithRelationInput
    tasks?: EvaluationTaskOrderByRelationAggregateInput
  }

  export type Evaluation360WhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: Evaluation360WhereInput | Evaluation360WhereInput[]
    OR?: Evaluation360WhereInput[]
    NOT?: Evaluation360WhereInput | Evaluation360WhereInput[]
    cycleId?: UuidFilter<"Evaluation360"> | string
    targetId?: UuidFilter<"Evaluation360"> | string
    status?: EnumEvaluation360StatusFilter<"Evaluation360"> | $Enums.Evaluation360Status
    templateId?: UuidNullableFilter<"Evaluation360"> | string | null
    deadline?: DateTimeFilter<"Evaluation360"> | Date | string
    minEvaluators?: IntNullableFilter<"Evaluation360"> | number | null
    createdBy?: UuidFilter<"Evaluation360"> | string
    createdAt?: DateTimeFilter<"Evaluation360"> | Date | string
    updatedAt?: DateTimeFilter<"Evaluation360"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Evaluation360"> | Date | string | null
    cycle?: XOR<PerformanceCycleScalarRelationFilter, PerformanceCycleWhereInput>
    template?: XOR<Evaluation360TemplateNullableScalarRelationFilter, Evaluation360TemplateWhereInput> | null
    tasks?: EvaluationTaskListRelationFilter
  }, "id">

  export type Evaluation360OrderByWithAggregationInput = {
    id?: SortOrder
    cycleId?: SortOrder
    targetId?: SortOrder
    status?: SortOrder
    templateId?: SortOrderInput | SortOrder
    deadline?: SortOrder
    minEvaluators?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: Evaluation360CountOrderByAggregateInput
    _avg?: Evaluation360AvgOrderByAggregateInput
    _max?: Evaluation360MaxOrderByAggregateInput
    _min?: Evaluation360MinOrderByAggregateInput
    _sum?: Evaluation360SumOrderByAggregateInput
  }

  export type Evaluation360ScalarWhereWithAggregatesInput = {
    AND?: Evaluation360ScalarWhereWithAggregatesInput | Evaluation360ScalarWhereWithAggregatesInput[]
    OR?: Evaluation360ScalarWhereWithAggregatesInput[]
    NOT?: Evaluation360ScalarWhereWithAggregatesInput | Evaluation360ScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Evaluation360"> | string
    cycleId?: UuidWithAggregatesFilter<"Evaluation360"> | string
    targetId?: UuidWithAggregatesFilter<"Evaluation360"> | string
    status?: EnumEvaluation360StatusWithAggregatesFilter<"Evaluation360"> | $Enums.Evaluation360Status
    templateId?: UuidNullableWithAggregatesFilter<"Evaluation360"> | string | null
    deadline?: DateTimeWithAggregatesFilter<"Evaluation360"> | Date | string
    minEvaluators?: IntNullableWithAggregatesFilter<"Evaluation360"> | number | null
    createdBy?: UuidWithAggregatesFilter<"Evaluation360"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Evaluation360"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Evaluation360"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Evaluation360"> | Date | string | null
  }

  export type EvaluationTaskWhereInput = {
    AND?: EvaluationTaskWhereInput | EvaluationTaskWhereInput[]
    OR?: EvaluationTaskWhereInput[]
    NOT?: EvaluationTaskWhereInput | EvaluationTaskWhereInput[]
    id?: UuidFilter<"EvaluationTask"> | string
    evaluationId?: UuidFilter<"EvaluationTask"> | string
    evaluatorId?: UuidFilter<"EvaluationTask"> | string
    relationType?: EnumRelationTypeFilter<"EvaluationTask"> | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFilter<"EvaluationTask"> | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFilter<"EvaluationTask"> | boolean
    submittedAt?: DateTimeNullableFilter<"EvaluationTask"> | Date | string | null
    createdAt?: DateTimeFilter<"EvaluationTask"> | Date | string
    deletedAt?: DateTimeNullableFilter<"EvaluationTask"> | Date | string | null
    evaluation?: XOR<Evaluation360ScalarRelationFilter, Evaluation360WhereInput>
    responses?: EvaluationResponseListRelationFilter
  }

  export type EvaluationTaskOrderByWithRelationInput = {
    id?: SortOrder
    evaluationId?: SortOrder
    evaluatorId?: SortOrder
    relationType?: SortOrder
    status?: SortOrder
    isAnonymous?: SortOrder
    submittedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    evaluation?: Evaluation360OrderByWithRelationInput
    responses?: EvaluationResponseOrderByRelationAggregateInput
  }

  export type EvaluationTaskWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    evaluationId_evaluatorId?: EvaluationTaskEvaluationIdEvaluatorIdCompoundUniqueInput
    AND?: EvaluationTaskWhereInput | EvaluationTaskWhereInput[]
    OR?: EvaluationTaskWhereInput[]
    NOT?: EvaluationTaskWhereInput | EvaluationTaskWhereInput[]
    evaluationId?: UuidFilter<"EvaluationTask"> | string
    evaluatorId?: UuidFilter<"EvaluationTask"> | string
    relationType?: EnumRelationTypeFilter<"EvaluationTask"> | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFilter<"EvaluationTask"> | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFilter<"EvaluationTask"> | boolean
    submittedAt?: DateTimeNullableFilter<"EvaluationTask"> | Date | string | null
    createdAt?: DateTimeFilter<"EvaluationTask"> | Date | string
    deletedAt?: DateTimeNullableFilter<"EvaluationTask"> | Date | string | null
    evaluation?: XOR<Evaluation360ScalarRelationFilter, Evaluation360WhereInput>
    responses?: EvaluationResponseListRelationFilter
  }, "id" | "evaluationId_evaluatorId">

  export type EvaluationTaskOrderByWithAggregationInput = {
    id?: SortOrder
    evaluationId?: SortOrder
    evaluatorId?: SortOrder
    relationType?: SortOrder
    status?: SortOrder
    isAnonymous?: SortOrder
    submittedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: EvaluationTaskCountOrderByAggregateInput
    _max?: EvaluationTaskMaxOrderByAggregateInput
    _min?: EvaluationTaskMinOrderByAggregateInput
  }

  export type EvaluationTaskScalarWhereWithAggregatesInput = {
    AND?: EvaluationTaskScalarWhereWithAggregatesInput | EvaluationTaskScalarWhereWithAggregatesInput[]
    OR?: EvaluationTaskScalarWhereWithAggregatesInput[]
    NOT?: EvaluationTaskScalarWhereWithAggregatesInput | EvaluationTaskScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"EvaluationTask"> | string
    evaluationId?: UuidWithAggregatesFilter<"EvaluationTask"> | string
    evaluatorId?: UuidWithAggregatesFilter<"EvaluationTask"> | string
    relationType?: EnumRelationTypeWithAggregatesFilter<"EvaluationTask"> | $Enums.RelationType
    status?: EnumEvaluationTaskStatusWithAggregatesFilter<"EvaluationTask"> | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolWithAggregatesFilter<"EvaluationTask"> | boolean
    submittedAt?: DateTimeNullableWithAggregatesFilter<"EvaluationTask"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"EvaluationTask"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"EvaluationTask"> | Date | string | null
  }

  export type EvaluationResponseWhereInput = {
    AND?: EvaluationResponseWhereInput | EvaluationResponseWhereInput[]
    OR?: EvaluationResponseWhereInput[]
    NOT?: EvaluationResponseWhereInput | EvaluationResponseWhereInput[]
    id?: UuidFilter<"EvaluationResponse"> | string
    taskId?: UuidFilter<"EvaluationResponse"> | string
    dimension?: StringFilter<"EvaluationResponse"> | string
    score?: DecimalFilter<"EvaluationResponse"> | Decimal | DecimalJsLike | number | string
    comment?: StringNullableFilter<"EvaluationResponse"> | string | null
    deletedAt?: DateTimeNullableFilter<"EvaluationResponse"> | Date | string | null
    task?: XOR<EvaluationTaskScalarRelationFilter, EvaluationTaskWhereInput>
  }

  export type EvaluationResponseOrderByWithRelationInput = {
    id?: SortOrder
    taskId?: SortOrder
    dimension?: SortOrder
    score?: SortOrder
    comment?: SortOrderInput | SortOrder
    deletedAt?: SortOrderInput | SortOrder
    task?: EvaluationTaskOrderByWithRelationInput
  }

  export type EvaluationResponseWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: EvaluationResponseWhereInput | EvaluationResponseWhereInput[]
    OR?: EvaluationResponseWhereInput[]
    NOT?: EvaluationResponseWhereInput | EvaluationResponseWhereInput[]
    taskId?: UuidFilter<"EvaluationResponse"> | string
    dimension?: StringFilter<"EvaluationResponse"> | string
    score?: DecimalFilter<"EvaluationResponse"> | Decimal | DecimalJsLike | number | string
    comment?: StringNullableFilter<"EvaluationResponse"> | string | null
    deletedAt?: DateTimeNullableFilter<"EvaluationResponse"> | Date | string | null
    task?: XOR<EvaluationTaskScalarRelationFilter, EvaluationTaskWhereInput>
  }, "id">

  export type EvaluationResponseOrderByWithAggregationInput = {
    id?: SortOrder
    taskId?: SortOrder
    dimension?: SortOrder
    score?: SortOrder
    comment?: SortOrderInput | SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: EvaluationResponseCountOrderByAggregateInput
    _avg?: EvaluationResponseAvgOrderByAggregateInput
    _max?: EvaluationResponseMaxOrderByAggregateInput
    _min?: EvaluationResponseMinOrderByAggregateInput
    _sum?: EvaluationResponseSumOrderByAggregateInput
  }

  export type EvaluationResponseScalarWhereWithAggregatesInput = {
    AND?: EvaluationResponseScalarWhereWithAggregatesInput | EvaluationResponseScalarWhereWithAggregatesInput[]
    OR?: EvaluationResponseScalarWhereWithAggregatesInput[]
    NOT?: EvaluationResponseScalarWhereWithAggregatesInput | EvaluationResponseScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"EvaluationResponse"> | string
    taskId?: UuidWithAggregatesFilter<"EvaluationResponse"> | string
    dimension?: StringWithAggregatesFilter<"EvaluationResponse"> | string
    score?: DecimalWithAggregatesFilter<"EvaluationResponse"> | Decimal | DecimalJsLike | number | string
    comment?: StringNullableWithAggregatesFilter<"EvaluationResponse"> | string | null
    deletedAt?: DateTimeNullableWithAggregatesFilter<"EvaluationResponse"> | Date | string | null
  }

  export type GradeAdjustmentLogWhereInput = {
    AND?: GradeAdjustmentLogWhereInput | GradeAdjustmentLogWhereInput[]
    OR?: GradeAdjustmentLogWhereInput[]
    NOT?: GradeAdjustmentLogWhereInput | GradeAdjustmentLogWhereInput[]
    id?: UuidFilter<"GradeAdjustmentLog"> | string
    resultId?: UuidFilter<"GradeAdjustmentLog"> | string
    previousGradeCode?: StringFilter<"GradeAdjustmentLog"> | string
    newGradeCode?: StringFilter<"GradeAdjustmentLog"> | string
    reason?: StringFilter<"GradeAdjustmentLog"> | string
    adjustedBy?: UuidFilter<"GradeAdjustmentLog"> | string
    adjustedAt?: DateTimeFilter<"GradeAdjustmentLog"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GradeAdjustmentLog"> | Date | string | null
    result?: XOR<PerformanceResultScalarRelationFilter, PerformanceResultWhereInput>
  }

  export type GradeAdjustmentLogOrderByWithRelationInput = {
    id?: SortOrder
    resultId?: SortOrder
    previousGradeCode?: SortOrder
    newGradeCode?: SortOrder
    reason?: SortOrder
    adjustedBy?: SortOrder
    adjustedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    result?: PerformanceResultOrderByWithRelationInput
  }

  export type GradeAdjustmentLogWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: GradeAdjustmentLogWhereInput | GradeAdjustmentLogWhereInput[]
    OR?: GradeAdjustmentLogWhereInput[]
    NOT?: GradeAdjustmentLogWhereInput | GradeAdjustmentLogWhereInput[]
    resultId?: UuidFilter<"GradeAdjustmentLog"> | string
    previousGradeCode?: StringFilter<"GradeAdjustmentLog"> | string
    newGradeCode?: StringFilter<"GradeAdjustmentLog"> | string
    reason?: StringFilter<"GradeAdjustmentLog"> | string
    adjustedBy?: UuidFilter<"GradeAdjustmentLog"> | string
    adjustedAt?: DateTimeFilter<"GradeAdjustmentLog"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GradeAdjustmentLog"> | Date | string | null
    result?: XOR<PerformanceResultScalarRelationFilter, PerformanceResultWhereInput>
  }, "id">

  export type GradeAdjustmentLogOrderByWithAggregationInput = {
    id?: SortOrder
    resultId?: SortOrder
    previousGradeCode?: SortOrder
    newGradeCode?: SortOrder
    reason?: SortOrder
    adjustedBy?: SortOrder
    adjustedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: GradeAdjustmentLogCountOrderByAggregateInput
    _max?: GradeAdjustmentLogMaxOrderByAggregateInput
    _min?: GradeAdjustmentLogMinOrderByAggregateInput
  }

  export type GradeAdjustmentLogScalarWhereWithAggregatesInput = {
    AND?: GradeAdjustmentLogScalarWhereWithAggregatesInput | GradeAdjustmentLogScalarWhereWithAggregatesInput[]
    OR?: GradeAdjustmentLogScalarWhereWithAggregatesInput[]
    NOT?: GradeAdjustmentLogScalarWhereWithAggregatesInput | GradeAdjustmentLogScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"GradeAdjustmentLog"> | string
    resultId?: UuidWithAggregatesFilter<"GradeAdjustmentLog"> | string
    previousGradeCode?: StringWithAggregatesFilter<"GradeAdjustmentLog"> | string
    newGradeCode?: StringWithAggregatesFilter<"GradeAdjustmentLog"> | string
    reason?: StringWithAggregatesFilter<"GradeAdjustmentLog"> | string
    adjustedBy?: UuidWithAggregatesFilter<"GradeAdjustmentLog"> | string
    adjustedAt?: DateTimeWithAggregatesFilter<"GradeAdjustmentLog"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"GradeAdjustmentLog"> | Date | string | null
  }

  export type StrategicObjectiveWhereInput = {
    AND?: StrategicObjectiveWhereInput | StrategicObjectiveWhereInput[]
    OR?: StrategicObjectiveWhereInput[]
    NOT?: StrategicObjectiveWhereInput | StrategicObjectiveWhereInput[]
    id?: UuidFilter<"StrategicObjective"> | string
    cycleId?: UuidFilter<"StrategicObjective"> | string
    seq?: IntFilter<"StrategicObjective"> | number
    name?: StringFilter<"StrategicObjective"> | string
    description?: StringNullableFilter<"StrategicObjective"> | string | null
    departmentId?: UuidNullableFilter<"StrategicObjective"> | string | null
    createdBy?: UuidFilter<"StrategicObjective"> | string
    createdAt?: DateTimeFilter<"StrategicObjective"> | Date | string
    updatedAt?: DateTimeFilter<"StrategicObjective"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StrategicObjective"> | Date | string | null
    cycle?: XOR<PerformanceCycleScalarRelationFilter, PerformanceCycleWhereInput>
    assignments?: StrategicObjectiveAssignmentListRelationFilter
  }

  export type StrategicObjectiveOrderByWithRelationInput = {
    id?: SortOrder
    cycleId?: SortOrder
    seq?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    departmentId?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    cycle?: PerformanceCycleOrderByWithRelationInput
    assignments?: StrategicObjectiveAssignmentOrderByRelationAggregateInput
  }

  export type StrategicObjectiveWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: StrategicObjectiveWhereInput | StrategicObjectiveWhereInput[]
    OR?: StrategicObjectiveWhereInput[]
    NOT?: StrategicObjectiveWhereInput | StrategicObjectiveWhereInput[]
    cycleId?: UuidFilter<"StrategicObjective"> | string
    seq?: IntFilter<"StrategicObjective"> | number
    name?: StringFilter<"StrategicObjective"> | string
    description?: StringNullableFilter<"StrategicObjective"> | string | null
    departmentId?: UuidNullableFilter<"StrategicObjective"> | string | null
    createdBy?: UuidFilter<"StrategicObjective"> | string
    createdAt?: DateTimeFilter<"StrategicObjective"> | Date | string
    updatedAt?: DateTimeFilter<"StrategicObjective"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StrategicObjective"> | Date | string | null
    cycle?: XOR<PerformanceCycleScalarRelationFilter, PerformanceCycleWhereInput>
    assignments?: StrategicObjectiveAssignmentListRelationFilter
  }, "id">

  export type StrategicObjectiveOrderByWithAggregationInput = {
    id?: SortOrder
    cycleId?: SortOrder
    seq?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    departmentId?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: StrategicObjectiveCountOrderByAggregateInput
    _avg?: StrategicObjectiveAvgOrderByAggregateInput
    _max?: StrategicObjectiveMaxOrderByAggregateInput
    _min?: StrategicObjectiveMinOrderByAggregateInput
    _sum?: StrategicObjectiveSumOrderByAggregateInput
  }

  export type StrategicObjectiveScalarWhereWithAggregatesInput = {
    AND?: StrategicObjectiveScalarWhereWithAggregatesInput | StrategicObjectiveScalarWhereWithAggregatesInput[]
    OR?: StrategicObjectiveScalarWhereWithAggregatesInput[]
    NOT?: StrategicObjectiveScalarWhereWithAggregatesInput | StrategicObjectiveScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"StrategicObjective"> | string
    cycleId?: UuidWithAggregatesFilter<"StrategicObjective"> | string
    seq?: IntWithAggregatesFilter<"StrategicObjective"> | number
    name?: StringWithAggregatesFilter<"StrategicObjective"> | string
    description?: StringNullableWithAggregatesFilter<"StrategicObjective"> | string | null
    departmentId?: UuidNullableWithAggregatesFilter<"StrategicObjective"> | string | null
    createdBy?: UuidWithAggregatesFilter<"StrategicObjective"> | string
    createdAt?: DateTimeWithAggregatesFilter<"StrategicObjective"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"StrategicObjective"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"StrategicObjective"> | Date | string | null
  }

  export type StrategicObjectiveAssignmentWhereInput = {
    AND?: StrategicObjectiveAssignmentWhereInput | StrategicObjectiveAssignmentWhereInput[]
    OR?: StrategicObjectiveAssignmentWhereInput[]
    NOT?: StrategicObjectiveAssignmentWhereInput | StrategicObjectiveAssignmentWhereInput[]
    id?: UuidFilter<"StrategicObjectiveAssignment"> | string
    objectiveId?: UuidFilter<"StrategicObjectiveAssignment"> | string
    assigneeId?: UuidFilter<"StrategicObjectiveAssignment"> | string
    createdAt?: DateTimeFilter<"StrategicObjectiveAssignment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StrategicObjectiveAssignment"> | Date | string | null
    objective?: XOR<StrategicObjectiveScalarRelationFilter, StrategicObjectiveWhereInput>
    assignee?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type StrategicObjectiveAssignmentOrderByWithRelationInput = {
    id?: SortOrder
    objectiveId?: SortOrder
    assigneeId?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    objective?: StrategicObjectiveOrderByWithRelationInput
    assignee?: UserOrderByWithRelationInput
  }

  export type StrategicObjectiveAssignmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    objectiveId_assigneeId?: StrategicObjectiveAssignmentObjectiveIdAssigneeIdCompoundUniqueInput
    AND?: StrategicObjectiveAssignmentWhereInput | StrategicObjectiveAssignmentWhereInput[]
    OR?: StrategicObjectiveAssignmentWhereInput[]
    NOT?: StrategicObjectiveAssignmentWhereInput | StrategicObjectiveAssignmentWhereInput[]
    objectiveId?: UuidFilter<"StrategicObjectiveAssignment"> | string
    assigneeId?: UuidFilter<"StrategicObjectiveAssignment"> | string
    createdAt?: DateTimeFilter<"StrategicObjectiveAssignment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StrategicObjectiveAssignment"> | Date | string | null
    objective?: XOR<StrategicObjectiveScalarRelationFilter, StrategicObjectiveWhereInput>
    assignee?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "objectiveId_assigneeId">

  export type StrategicObjectiveAssignmentOrderByWithAggregationInput = {
    id?: SortOrder
    objectiveId?: SortOrder
    assigneeId?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: StrategicObjectiveAssignmentCountOrderByAggregateInput
    _max?: StrategicObjectiveAssignmentMaxOrderByAggregateInput
    _min?: StrategicObjectiveAssignmentMinOrderByAggregateInput
  }

  export type StrategicObjectiveAssignmentScalarWhereWithAggregatesInput = {
    AND?: StrategicObjectiveAssignmentScalarWhereWithAggregatesInput | StrategicObjectiveAssignmentScalarWhereWithAggregatesInput[]
    OR?: StrategicObjectiveAssignmentScalarWhereWithAggregatesInput[]
    NOT?: StrategicObjectiveAssignmentScalarWhereWithAggregatesInput | StrategicObjectiveAssignmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"StrategicObjectiveAssignment"> | string
    objectiveId?: UuidWithAggregatesFilter<"StrategicObjectiveAssignment"> | string
    assigneeId?: UuidWithAggregatesFilter<"StrategicObjectiveAssignment"> | string
    createdAt?: DateTimeWithAggregatesFilter<"StrategicObjectiveAssignment"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"StrategicObjectiveAssignment"> | Date | string | null
  }

  export type Evaluation360TemplateWhereInput = {
    AND?: Evaluation360TemplateWhereInput | Evaluation360TemplateWhereInput[]
    OR?: Evaluation360TemplateWhereInput[]
    NOT?: Evaluation360TemplateWhereInput | Evaluation360TemplateWhereInput[]
    id?: UuidFilter<"Evaluation360Template"> | string
    name?: StringFilter<"Evaluation360Template"> | string
    description?: StringNullableFilter<"Evaluation360Template"> | string | null
    dimensions?: JsonFilter<"Evaluation360Template">
    relationshipTypes?: JsonFilter<"Evaluation360Template">
    isDefault?: BoolFilter<"Evaluation360Template"> | boolean
    isActive?: BoolFilter<"Evaluation360Template"> | boolean
    createdBy?: UuidFilter<"Evaluation360Template"> | string
    createdAt?: DateTimeFilter<"Evaluation360Template"> | Date | string
    updatedAt?: DateTimeFilter<"Evaluation360Template"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Evaluation360Template"> | Date | string | null
    cycleId?: UuidNullableFilter<"Evaluation360Template"> | string | null
    scope?: JsonNullableFilter<"Evaluation360Template">
    organizationId?: UuidNullableFilter<"Evaluation360Template"> | string | null
    cycle?: XOR<PerformanceCycleNullableScalarRelationFilter, PerformanceCycleWhereInput> | null
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    evaluations?: Evaluation360ListRelationFilter
  }

  export type Evaluation360TemplateOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    dimensions?: SortOrder
    relationshipTypes?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    cycleId?: SortOrderInput | SortOrder
    scope?: SortOrderInput | SortOrder
    organizationId?: SortOrderInput | SortOrder
    cycle?: PerformanceCycleOrderByWithRelationInput
    organization?: OrganizationOrderByWithRelationInput
    evaluations?: Evaluation360OrderByRelationAggregateInput
  }

  export type Evaluation360TemplateWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: Evaluation360TemplateWhereInput | Evaluation360TemplateWhereInput[]
    OR?: Evaluation360TemplateWhereInput[]
    NOT?: Evaluation360TemplateWhereInput | Evaluation360TemplateWhereInput[]
    name?: StringFilter<"Evaluation360Template"> | string
    description?: StringNullableFilter<"Evaluation360Template"> | string | null
    dimensions?: JsonFilter<"Evaluation360Template">
    relationshipTypes?: JsonFilter<"Evaluation360Template">
    isDefault?: BoolFilter<"Evaluation360Template"> | boolean
    isActive?: BoolFilter<"Evaluation360Template"> | boolean
    createdBy?: UuidFilter<"Evaluation360Template"> | string
    createdAt?: DateTimeFilter<"Evaluation360Template"> | Date | string
    updatedAt?: DateTimeFilter<"Evaluation360Template"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Evaluation360Template"> | Date | string | null
    cycleId?: UuidNullableFilter<"Evaluation360Template"> | string | null
    scope?: JsonNullableFilter<"Evaluation360Template">
    organizationId?: UuidNullableFilter<"Evaluation360Template"> | string | null
    cycle?: XOR<PerformanceCycleNullableScalarRelationFilter, PerformanceCycleWhereInput> | null
    organization?: XOR<OrganizationNullableScalarRelationFilter, OrganizationWhereInput> | null
    evaluations?: Evaluation360ListRelationFilter
  }, "id">

  export type Evaluation360TemplateOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    dimensions?: SortOrder
    relationshipTypes?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    cycleId?: SortOrderInput | SortOrder
    scope?: SortOrderInput | SortOrder
    organizationId?: SortOrderInput | SortOrder
    _count?: Evaluation360TemplateCountOrderByAggregateInput
    _max?: Evaluation360TemplateMaxOrderByAggregateInput
    _min?: Evaluation360TemplateMinOrderByAggregateInput
  }

  export type Evaluation360TemplateScalarWhereWithAggregatesInput = {
    AND?: Evaluation360TemplateScalarWhereWithAggregatesInput | Evaluation360TemplateScalarWhereWithAggregatesInput[]
    OR?: Evaluation360TemplateScalarWhereWithAggregatesInput[]
    NOT?: Evaluation360TemplateScalarWhereWithAggregatesInput | Evaluation360TemplateScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Evaluation360Template"> | string
    name?: StringWithAggregatesFilter<"Evaluation360Template"> | string
    description?: StringNullableWithAggregatesFilter<"Evaluation360Template"> | string | null
    dimensions?: JsonWithAggregatesFilter<"Evaluation360Template">
    relationshipTypes?: JsonWithAggregatesFilter<"Evaluation360Template">
    isDefault?: BoolWithAggregatesFilter<"Evaluation360Template"> | boolean
    isActive?: BoolWithAggregatesFilter<"Evaluation360Template"> | boolean
    createdBy?: UuidWithAggregatesFilter<"Evaluation360Template"> | string
    createdAt?: DateTimeWithAggregatesFilter<"Evaluation360Template"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Evaluation360Template"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Evaluation360Template"> | Date | string | null
    cycleId?: UuidNullableWithAggregatesFilter<"Evaluation360Template"> | string | null
    scope?: JsonNullableWithAggregatesFilter<"Evaluation360Template">
    organizationId?: UuidNullableWithAggregatesFilter<"Evaluation360Template"> | string | null
  }

  export type SiteCheckpointWhereInput = {
    AND?: SiteCheckpointWhereInput | SiteCheckpointWhereInput[]
    OR?: SiteCheckpointWhereInput[]
    NOT?: SiteCheckpointWhereInput | SiteCheckpointWhereInput[]
    id?: StringFilter<"SiteCheckpoint"> | string
    code?: StringFilter<"SiteCheckpoint"> | string
    name?: StringFilter<"SiteCheckpoint"> | string
    description?: StringNullableFilter<"SiteCheckpoint"> | string | null
    address?: StringNullableFilter<"SiteCheckpoint"> | string | null
    timezone?: StringFilter<"SiteCheckpoint"> | string
    latitude?: FloatFilter<"SiteCheckpoint"> | number
    longitude?: FloatFilter<"SiteCheckpoint"> | number
    geoPolicy?: EnumSiteGeoPolicyFilter<"SiteCheckpoint"> | $Enums.SiteGeoPolicy
    geoRadius?: IntFilter<"SiteCheckpoint"> | number
    geoAccuracyThreshold?: IntFilter<"SiteCheckpoint"> | number
    allowUnauthenticatedCheckin?: BoolFilter<"SiteCheckpoint"> | boolean
    isActive?: BoolFilter<"SiteCheckpoint"> | boolean
    accessMode?: EnumSiteCheckpointAccessModeFilter<"SiteCheckpoint"> | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: IntNullableFilter<"SiteCheckpoint"> | number | null
    qrGraceSeconds?: IntFilter<"SiteCheckpoint"> | number
    sharedCheckinEnabled?: BoolFilter<"SiteCheckpoint"> | boolean
    sharedCompanyId?: StringNullableFilter<"SiteCheckpoint"> | string | null
    sharedCompanyLabel?: StringNullableFilter<"SiteCheckpoint"> | string | null
    createdBy?: UuidFilter<"SiteCheckpoint"> | string
    createdAt?: DateTimeFilter<"SiteCheckpoint"> | Date | string
    updatedAt?: DateTimeFilter<"SiteCheckpoint"> | Date | string
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    events?: SiteAttendanceEventListRelationFilter
    dailySummaries?: SiteDailySummaryListRelationFilter
    sharedPartners?: SharedCheckinPartnerListRelationFilter
  }

  export type SiteCheckpointOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    timezone?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    geoPolicy?: SortOrder
    geoRadius?: SortOrder
    geoAccuracyThreshold?: SortOrder
    allowUnauthenticatedCheckin?: SortOrder
    isActive?: SortOrder
    accessMode?: SortOrder
    qrRotationSeconds?: SortOrderInput | SortOrder
    qrGraceSeconds?: SortOrder
    sharedCheckinEnabled?: SortOrder
    sharedCompanyId?: SortOrderInput | SortOrder
    sharedCompanyLabel?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    creator?: UserOrderByWithRelationInput
    events?: SiteAttendanceEventOrderByRelationAggregateInput
    dailySummaries?: SiteDailySummaryOrderByRelationAggregateInput
    sharedPartners?: SharedCheckinPartnerOrderByRelationAggregateInput
  }

  export type SiteCheckpointWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: SiteCheckpointWhereInput | SiteCheckpointWhereInput[]
    OR?: SiteCheckpointWhereInput[]
    NOT?: SiteCheckpointWhereInput | SiteCheckpointWhereInput[]
    name?: StringFilter<"SiteCheckpoint"> | string
    description?: StringNullableFilter<"SiteCheckpoint"> | string | null
    address?: StringNullableFilter<"SiteCheckpoint"> | string | null
    timezone?: StringFilter<"SiteCheckpoint"> | string
    latitude?: FloatFilter<"SiteCheckpoint"> | number
    longitude?: FloatFilter<"SiteCheckpoint"> | number
    geoPolicy?: EnumSiteGeoPolicyFilter<"SiteCheckpoint"> | $Enums.SiteGeoPolicy
    geoRadius?: IntFilter<"SiteCheckpoint"> | number
    geoAccuracyThreshold?: IntFilter<"SiteCheckpoint"> | number
    allowUnauthenticatedCheckin?: BoolFilter<"SiteCheckpoint"> | boolean
    isActive?: BoolFilter<"SiteCheckpoint"> | boolean
    accessMode?: EnumSiteCheckpointAccessModeFilter<"SiteCheckpoint"> | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: IntNullableFilter<"SiteCheckpoint"> | number | null
    qrGraceSeconds?: IntFilter<"SiteCheckpoint"> | number
    sharedCheckinEnabled?: BoolFilter<"SiteCheckpoint"> | boolean
    sharedCompanyId?: StringNullableFilter<"SiteCheckpoint"> | string | null
    sharedCompanyLabel?: StringNullableFilter<"SiteCheckpoint"> | string | null
    createdBy?: UuidFilter<"SiteCheckpoint"> | string
    createdAt?: DateTimeFilter<"SiteCheckpoint"> | Date | string
    updatedAt?: DateTimeFilter<"SiteCheckpoint"> | Date | string
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    events?: SiteAttendanceEventListRelationFilter
    dailySummaries?: SiteDailySummaryListRelationFilter
    sharedPartners?: SharedCheckinPartnerListRelationFilter
  }, "id" | "code">

  export type SiteCheckpointOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    address?: SortOrderInput | SortOrder
    timezone?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    geoPolicy?: SortOrder
    geoRadius?: SortOrder
    geoAccuracyThreshold?: SortOrder
    allowUnauthenticatedCheckin?: SortOrder
    isActive?: SortOrder
    accessMode?: SortOrder
    qrRotationSeconds?: SortOrderInput | SortOrder
    qrGraceSeconds?: SortOrder
    sharedCheckinEnabled?: SortOrder
    sharedCompanyId?: SortOrderInput | SortOrder
    sharedCompanyLabel?: SortOrderInput | SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SiteCheckpointCountOrderByAggregateInput
    _avg?: SiteCheckpointAvgOrderByAggregateInput
    _max?: SiteCheckpointMaxOrderByAggregateInput
    _min?: SiteCheckpointMinOrderByAggregateInput
    _sum?: SiteCheckpointSumOrderByAggregateInput
  }

  export type SiteCheckpointScalarWhereWithAggregatesInput = {
    AND?: SiteCheckpointScalarWhereWithAggregatesInput | SiteCheckpointScalarWhereWithAggregatesInput[]
    OR?: SiteCheckpointScalarWhereWithAggregatesInput[]
    NOT?: SiteCheckpointScalarWhereWithAggregatesInput | SiteCheckpointScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SiteCheckpoint"> | string
    code?: StringWithAggregatesFilter<"SiteCheckpoint"> | string
    name?: StringWithAggregatesFilter<"SiteCheckpoint"> | string
    description?: StringNullableWithAggregatesFilter<"SiteCheckpoint"> | string | null
    address?: StringNullableWithAggregatesFilter<"SiteCheckpoint"> | string | null
    timezone?: StringWithAggregatesFilter<"SiteCheckpoint"> | string
    latitude?: FloatWithAggregatesFilter<"SiteCheckpoint"> | number
    longitude?: FloatWithAggregatesFilter<"SiteCheckpoint"> | number
    geoPolicy?: EnumSiteGeoPolicyWithAggregatesFilter<"SiteCheckpoint"> | $Enums.SiteGeoPolicy
    geoRadius?: IntWithAggregatesFilter<"SiteCheckpoint"> | number
    geoAccuracyThreshold?: IntWithAggregatesFilter<"SiteCheckpoint"> | number
    allowUnauthenticatedCheckin?: BoolWithAggregatesFilter<"SiteCheckpoint"> | boolean
    isActive?: BoolWithAggregatesFilter<"SiteCheckpoint"> | boolean
    accessMode?: EnumSiteCheckpointAccessModeWithAggregatesFilter<"SiteCheckpoint"> | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: IntNullableWithAggregatesFilter<"SiteCheckpoint"> | number | null
    qrGraceSeconds?: IntWithAggregatesFilter<"SiteCheckpoint"> | number
    sharedCheckinEnabled?: BoolWithAggregatesFilter<"SiteCheckpoint"> | boolean
    sharedCompanyId?: StringNullableWithAggregatesFilter<"SiteCheckpoint"> | string | null
    sharedCompanyLabel?: StringNullableWithAggregatesFilter<"SiteCheckpoint"> | string | null
    createdBy?: UuidWithAggregatesFilter<"SiteCheckpoint"> | string
    createdAt?: DateTimeWithAggregatesFilter<"SiteCheckpoint"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SiteCheckpoint"> | Date | string
  }

  export type SharedCheckinPartnerWhereInput = {
    AND?: SharedCheckinPartnerWhereInput | SharedCheckinPartnerWhereInput[]
    OR?: SharedCheckinPartnerWhereInput[]
    NOT?: SharedCheckinPartnerWhereInput | SharedCheckinPartnerWhereInput[]
    id?: StringFilter<"SharedCheckinPartner"> | string
    checkpointId?: StringFilter<"SharedCheckinPartner"> | string
    companyId?: StringFilter<"SharedCheckinPartner"> | string
    companyLabel?: StringFilter<"SharedCheckinPartner"> | string
    displayLabel?: StringNullableFilter<"SharedCheckinPartner"> | string | null
    targetUrl?: StringFilter<"SharedCheckinPartner"> | string
    isActive?: BoolFilter<"SharedCheckinPartner"> | boolean
    sortOrder?: IntFilter<"SharedCheckinPartner"> | number
    createdBy?: UuidFilter<"SharedCheckinPartner"> | string
    updatedBy?: UuidFilter<"SharedCheckinPartner"> | string
    createdAt?: DateTimeFilter<"SharedCheckinPartner"> | Date | string
    updatedAt?: DateTimeFilter<"SharedCheckinPartner"> | Date | string
    checkpoint?: XOR<SiteCheckpointScalarRelationFilter, SiteCheckpointWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    updater?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type SharedCheckinPartnerOrderByWithRelationInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    companyId?: SortOrder
    companyLabel?: SortOrder
    displayLabel?: SortOrderInput | SortOrder
    targetUrl?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    checkpoint?: SiteCheckpointOrderByWithRelationInput
    creator?: UserOrderByWithRelationInput
    updater?: UserOrderByWithRelationInput
  }

  export type SharedCheckinPartnerWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SharedCheckinPartnerWhereInput | SharedCheckinPartnerWhereInput[]
    OR?: SharedCheckinPartnerWhereInput[]
    NOT?: SharedCheckinPartnerWhereInput | SharedCheckinPartnerWhereInput[]
    checkpointId?: StringFilter<"SharedCheckinPartner"> | string
    companyId?: StringFilter<"SharedCheckinPartner"> | string
    companyLabel?: StringFilter<"SharedCheckinPartner"> | string
    displayLabel?: StringNullableFilter<"SharedCheckinPartner"> | string | null
    targetUrl?: StringFilter<"SharedCheckinPartner"> | string
    isActive?: BoolFilter<"SharedCheckinPartner"> | boolean
    sortOrder?: IntFilter<"SharedCheckinPartner"> | number
    createdBy?: UuidFilter<"SharedCheckinPartner"> | string
    updatedBy?: UuidFilter<"SharedCheckinPartner"> | string
    createdAt?: DateTimeFilter<"SharedCheckinPartner"> | Date | string
    updatedAt?: DateTimeFilter<"SharedCheckinPartner"> | Date | string
    checkpoint?: XOR<SiteCheckpointScalarRelationFilter, SiteCheckpointWhereInput>
    creator?: XOR<UserScalarRelationFilter, UserWhereInput>
    updater?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type SharedCheckinPartnerOrderByWithAggregationInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    companyId?: SortOrder
    companyLabel?: SortOrder
    displayLabel?: SortOrderInput | SortOrder
    targetUrl?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SharedCheckinPartnerCountOrderByAggregateInput
    _avg?: SharedCheckinPartnerAvgOrderByAggregateInput
    _max?: SharedCheckinPartnerMaxOrderByAggregateInput
    _min?: SharedCheckinPartnerMinOrderByAggregateInput
    _sum?: SharedCheckinPartnerSumOrderByAggregateInput
  }

  export type SharedCheckinPartnerScalarWhereWithAggregatesInput = {
    AND?: SharedCheckinPartnerScalarWhereWithAggregatesInput | SharedCheckinPartnerScalarWhereWithAggregatesInput[]
    OR?: SharedCheckinPartnerScalarWhereWithAggregatesInput[]
    NOT?: SharedCheckinPartnerScalarWhereWithAggregatesInput | SharedCheckinPartnerScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SharedCheckinPartner"> | string
    checkpointId?: StringWithAggregatesFilter<"SharedCheckinPartner"> | string
    companyId?: StringWithAggregatesFilter<"SharedCheckinPartner"> | string
    companyLabel?: StringWithAggregatesFilter<"SharedCheckinPartner"> | string
    displayLabel?: StringNullableWithAggregatesFilter<"SharedCheckinPartner"> | string | null
    targetUrl?: StringWithAggregatesFilter<"SharedCheckinPartner"> | string
    isActive?: BoolWithAggregatesFilter<"SharedCheckinPartner"> | boolean
    sortOrder?: IntWithAggregatesFilter<"SharedCheckinPartner"> | number
    createdBy?: UuidWithAggregatesFilter<"SharedCheckinPartner"> | string
    updatedBy?: UuidWithAggregatesFilter<"SharedCheckinPartner"> | string
    createdAt?: DateTimeWithAggregatesFilter<"SharedCheckinPartner"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SharedCheckinPartner"> | Date | string
  }

  export type SharedCheckinTicketUsageWhereInput = {
    AND?: SharedCheckinTicketUsageWhereInput | SharedCheckinTicketUsageWhereInput[]
    OR?: SharedCheckinTicketUsageWhereInput[]
    NOT?: SharedCheckinTicketUsageWhereInput | SharedCheckinTicketUsageWhereInput[]
    nonce?: StringFilter<"SharedCheckinTicketUsage"> | string
    usedAt?: DateTimeFilter<"SharedCheckinTicketUsage"> | Date | string
    expiresAt?: DateTimeFilter<"SharedCheckinTicketUsage"> | Date | string
  }

  export type SharedCheckinTicketUsageOrderByWithRelationInput = {
    nonce?: SortOrder
    usedAt?: SortOrder
    expiresAt?: SortOrder
  }

  export type SharedCheckinTicketUsageWhereUniqueInput = Prisma.AtLeast<{
    nonce?: string
    AND?: SharedCheckinTicketUsageWhereInput | SharedCheckinTicketUsageWhereInput[]
    OR?: SharedCheckinTicketUsageWhereInput[]
    NOT?: SharedCheckinTicketUsageWhereInput | SharedCheckinTicketUsageWhereInput[]
    usedAt?: DateTimeFilter<"SharedCheckinTicketUsage"> | Date | string
    expiresAt?: DateTimeFilter<"SharedCheckinTicketUsage"> | Date | string
  }, "nonce">

  export type SharedCheckinTicketUsageOrderByWithAggregationInput = {
    nonce?: SortOrder
    usedAt?: SortOrder
    expiresAt?: SortOrder
    _count?: SharedCheckinTicketUsageCountOrderByAggregateInput
    _max?: SharedCheckinTicketUsageMaxOrderByAggregateInput
    _min?: SharedCheckinTicketUsageMinOrderByAggregateInput
  }

  export type SharedCheckinTicketUsageScalarWhereWithAggregatesInput = {
    AND?: SharedCheckinTicketUsageScalarWhereWithAggregatesInput | SharedCheckinTicketUsageScalarWhereWithAggregatesInput[]
    OR?: SharedCheckinTicketUsageScalarWhereWithAggregatesInput[]
    NOT?: SharedCheckinTicketUsageScalarWhereWithAggregatesInput | SharedCheckinTicketUsageScalarWhereWithAggregatesInput[]
    nonce?: StringWithAggregatesFilter<"SharedCheckinTicketUsage"> | string
    usedAt?: DateTimeWithAggregatesFilter<"SharedCheckinTicketUsage"> | Date | string
    expiresAt?: DateTimeWithAggregatesFilter<"SharedCheckinTicketUsage"> | Date | string
  }

  export type SiteAttendanceEventWhereInput = {
    AND?: SiteAttendanceEventWhereInput | SiteAttendanceEventWhereInput[]
    OR?: SiteAttendanceEventWhereInput[]
    NOT?: SiteAttendanceEventWhereInput | SiteAttendanceEventWhereInput[]
    id?: StringFilter<"SiteAttendanceEvent"> | string
    checkpointId?: StringFilter<"SiteAttendanceEvent"> | string
    userId?: UuidFilter<"SiteAttendanceEvent"> | string
    eventType?: EnumSiteEventTypeFilter<"SiteAttendanceEvent"> | $Enums.SiteEventType
    timestamp?: DateTimeFilter<"SiteAttendanceEvent"> | Date | string
    localDate?: StringFilter<"SiteAttendanceEvent"> | string
    authMethod?: EnumSiteAuthMethodFilter<"SiteAttendanceEvent"> | $Enums.SiteAuthMethod
    latitude?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    longitude?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    accuracy?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    geoStatus?: EnumSiteGeoStatusFilter<"SiteAttendanceEvent"> | $Enums.SiteGeoStatus
    distanceToCheckpoint?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    deviceId?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    userAgent?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    ipAddress?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    createdAt?: DateTimeFilter<"SiteAttendanceEvent"> | Date | string
    checkpoint?: XOR<SiteCheckpointScalarRelationFilter, SiteCheckpointWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type SiteAttendanceEventOrderByWithRelationInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    eventType?: SortOrder
    timestamp?: SortOrder
    localDate?: SortOrder
    authMethod?: SortOrder
    latitude?: SortOrderInput | SortOrder
    longitude?: SortOrderInput | SortOrder
    accuracy?: SortOrderInput | SortOrder
    geoStatus?: SortOrder
    distanceToCheckpoint?: SortOrderInput | SortOrder
    deviceId?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    ipAddress?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    checkpoint?: SiteCheckpointOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
  }

  export type SiteAttendanceEventWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SiteAttendanceEventWhereInput | SiteAttendanceEventWhereInput[]
    OR?: SiteAttendanceEventWhereInput[]
    NOT?: SiteAttendanceEventWhereInput | SiteAttendanceEventWhereInput[]
    checkpointId?: StringFilter<"SiteAttendanceEvent"> | string
    userId?: UuidFilter<"SiteAttendanceEvent"> | string
    eventType?: EnumSiteEventTypeFilter<"SiteAttendanceEvent"> | $Enums.SiteEventType
    timestamp?: DateTimeFilter<"SiteAttendanceEvent"> | Date | string
    localDate?: StringFilter<"SiteAttendanceEvent"> | string
    authMethod?: EnumSiteAuthMethodFilter<"SiteAttendanceEvent"> | $Enums.SiteAuthMethod
    latitude?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    longitude?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    accuracy?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    geoStatus?: EnumSiteGeoStatusFilter<"SiteAttendanceEvent"> | $Enums.SiteGeoStatus
    distanceToCheckpoint?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    deviceId?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    userAgent?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    ipAddress?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    createdAt?: DateTimeFilter<"SiteAttendanceEvent"> | Date | string
    checkpoint?: XOR<SiteCheckpointScalarRelationFilter, SiteCheckpointWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id">

  export type SiteAttendanceEventOrderByWithAggregationInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    eventType?: SortOrder
    timestamp?: SortOrder
    localDate?: SortOrder
    authMethod?: SortOrder
    latitude?: SortOrderInput | SortOrder
    longitude?: SortOrderInput | SortOrder
    accuracy?: SortOrderInput | SortOrder
    geoStatus?: SortOrder
    distanceToCheckpoint?: SortOrderInput | SortOrder
    deviceId?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    ipAddress?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: SiteAttendanceEventCountOrderByAggregateInput
    _avg?: SiteAttendanceEventAvgOrderByAggregateInput
    _max?: SiteAttendanceEventMaxOrderByAggregateInput
    _min?: SiteAttendanceEventMinOrderByAggregateInput
    _sum?: SiteAttendanceEventSumOrderByAggregateInput
  }

  export type SiteAttendanceEventScalarWhereWithAggregatesInput = {
    AND?: SiteAttendanceEventScalarWhereWithAggregatesInput | SiteAttendanceEventScalarWhereWithAggregatesInput[]
    OR?: SiteAttendanceEventScalarWhereWithAggregatesInput[]
    NOT?: SiteAttendanceEventScalarWhereWithAggregatesInput | SiteAttendanceEventScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SiteAttendanceEvent"> | string
    checkpointId?: StringWithAggregatesFilter<"SiteAttendanceEvent"> | string
    userId?: UuidWithAggregatesFilter<"SiteAttendanceEvent"> | string
    eventType?: EnumSiteEventTypeWithAggregatesFilter<"SiteAttendanceEvent"> | $Enums.SiteEventType
    timestamp?: DateTimeWithAggregatesFilter<"SiteAttendanceEvent"> | Date | string
    localDate?: StringWithAggregatesFilter<"SiteAttendanceEvent"> | string
    authMethod?: EnumSiteAuthMethodWithAggregatesFilter<"SiteAttendanceEvent"> | $Enums.SiteAuthMethod
    latitude?: FloatNullableWithAggregatesFilter<"SiteAttendanceEvent"> | number | null
    longitude?: FloatNullableWithAggregatesFilter<"SiteAttendanceEvent"> | number | null
    accuracy?: FloatNullableWithAggregatesFilter<"SiteAttendanceEvent"> | number | null
    geoStatus?: EnumSiteGeoStatusWithAggregatesFilter<"SiteAttendanceEvent"> | $Enums.SiteGeoStatus
    distanceToCheckpoint?: FloatNullableWithAggregatesFilter<"SiteAttendanceEvent"> | number | null
    deviceId?: StringNullableWithAggregatesFilter<"SiteAttendanceEvent"> | string | null
    userAgent?: StringNullableWithAggregatesFilter<"SiteAttendanceEvent"> | string | null
    ipAddress?: StringNullableWithAggregatesFilter<"SiteAttendanceEvent"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"SiteAttendanceEvent"> | Date | string
  }

  export type SiteDailySummaryWhereInput = {
    AND?: SiteDailySummaryWhereInput | SiteDailySummaryWhereInput[]
    OR?: SiteDailySummaryWhereInput[]
    NOT?: SiteDailySummaryWhereInput | SiteDailySummaryWhereInput[]
    id?: StringFilter<"SiteDailySummary"> | string
    checkpointId?: StringFilter<"SiteDailySummary"> | string
    userId?: UuidFilter<"SiteDailySummary"> | string
    localDate?: StringFilter<"SiteDailySummary"> | string
    firstCheckInAt?: DateTimeNullableFilter<"SiteDailySummary"> | Date | string | null
    lastCheckOutAt?: DateTimeNullableFilter<"SiteDailySummary"> | Date | string | null
    checkInCount?: IntFilter<"SiteDailySummary"> | number
    checkOutCount?: IntFilter<"SiteDailySummary"> | number
    hasGeoAnomaly?: BoolFilter<"SiteDailySummary"> | boolean
    lastEventId?: StringNullableFilter<"SiteDailySummary"> | string | null
    updatedAt?: DateTimeFilter<"SiteDailySummary"> | Date | string
    checkpoint?: XOR<SiteCheckpointScalarRelationFilter, SiteCheckpointWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }

  export type SiteDailySummaryOrderByWithRelationInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    localDate?: SortOrder
    firstCheckInAt?: SortOrderInput | SortOrder
    lastCheckOutAt?: SortOrderInput | SortOrder
    checkInCount?: SortOrder
    checkOutCount?: SortOrder
    hasGeoAnomaly?: SortOrder
    lastEventId?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    checkpoint?: SiteCheckpointOrderByWithRelationInput
    user?: UserOrderByWithRelationInput
  }

  export type SiteDailySummaryWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    checkpointId_userId_localDate?: SiteDailySummaryCheckpointIdUserIdLocalDateCompoundUniqueInput
    AND?: SiteDailySummaryWhereInput | SiteDailySummaryWhereInput[]
    OR?: SiteDailySummaryWhereInput[]
    NOT?: SiteDailySummaryWhereInput | SiteDailySummaryWhereInput[]
    checkpointId?: StringFilter<"SiteDailySummary"> | string
    userId?: UuidFilter<"SiteDailySummary"> | string
    localDate?: StringFilter<"SiteDailySummary"> | string
    firstCheckInAt?: DateTimeNullableFilter<"SiteDailySummary"> | Date | string | null
    lastCheckOutAt?: DateTimeNullableFilter<"SiteDailySummary"> | Date | string | null
    checkInCount?: IntFilter<"SiteDailySummary"> | number
    checkOutCount?: IntFilter<"SiteDailySummary"> | number
    hasGeoAnomaly?: BoolFilter<"SiteDailySummary"> | boolean
    lastEventId?: StringNullableFilter<"SiteDailySummary"> | string | null
    updatedAt?: DateTimeFilter<"SiteDailySummary"> | Date | string
    checkpoint?: XOR<SiteCheckpointScalarRelationFilter, SiteCheckpointWhereInput>
    user?: XOR<UserScalarRelationFilter, UserWhereInput>
  }, "id" | "checkpointId_userId_localDate">

  export type SiteDailySummaryOrderByWithAggregationInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    localDate?: SortOrder
    firstCheckInAt?: SortOrderInput | SortOrder
    lastCheckOutAt?: SortOrderInput | SortOrder
    checkInCount?: SortOrder
    checkOutCount?: SortOrder
    hasGeoAnomaly?: SortOrder
    lastEventId?: SortOrderInput | SortOrder
    updatedAt?: SortOrder
    _count?: SiteDailySummaryCountOrderByAggregateInput
    _avg?: SiteDailySummaryAvgOrderByAggregateInput
    _max?: SiteDailySummaryMaxOrderByAggregateInput
    _min?: SiteDailySummaryMinOrderByAggregateInput
    _sum?: SiteDailySummarySumOrderByAggregateInput
  }

  export type SiteDailySummaryScalarWhereWithAggregatesInput = {
    AND?: SiteDailySummaryScalarWhereWithAggregatesInput | SiteDailySummaryScalarWhereWithAggregatesInput[]
    OR?: SiteDailySummaryScalarWhereWithAggregatesInput[]
    NOT?: SiteDailySummaryScalarWhereWithAggregatesInput | SiteDailySummaryScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SiteDailySummary"> | string
    checkpointId?: StringWithAggregatesFilter<"SiteDailySummary"> | string
    userId?: UuidWithAggregatesFilter<"SiteDailySummary"> | string
    localDate?: StringWithAggregatesFilter<"SiteDailySummary"> | string
    firstCheckInAt?: DateTimeNullableWithAggregatesFilter<"SiteDailySummary"> | Date | string | null
    lastCheckOutAt?: DateTimeNullableWithAggregatesFilter<"SiteDailySummary"> | Date | string | null
    checkInCount?: IntWithAggregatesFilter<"SiteDailySummary"> | number
    checkOutCount?: IntWithAggregatesFilter<"SiteDailySummary"> | number
    hasGeoAnomaly?: BoolWithAggregatesFilter<"SiteDailySummary"> | boolean
    lastEventId?: StringNullableWithAggregatesFilter<"SiteDailySummary"> | string | null
    updatedAt?: DateTimeWithAggregatesFilter<"SiteDailySummary"> | Date | string
  }

  export type TicketWhereInput = {
    AND?: TicketWhereInput | TicketWhereInput[]
    OR?: TicketWhereInput[]
    NOT?: TicketWhereInput | TicketWhereInput[]
    id?: UuidFilter<"Ticket"> | string
    ticketNo?: StringFilter<"Ticket"> | string
    title?: StringFilter<"Ticket"> | string
    description?: StringFilter<"Ticket"> | string
    categoryId?: UuidFilter<"Ticket"> | string
    priority?: EnumTicketPriorityFilter<"Ticket"> | $Enums.TicketPriority
    tags?: StringNullableListFilter<"Ticket">
    status?: EnumTicketStatusFilter<"Ticket"> | $Enums.TicketStatus
    creatorId?: UuidFilter<"Ticket"> | string
    assigneeId?: UuidNullableFilter<"Ticket"> | string | null
    assigneeGroupId?: UuidNullableFilter<"Ticket"> | string | null
    watcherIds?: StringNullableListFilter<"Ticket">
    createdAt?: DateTimeFilter<"Ticket"> | Date | string
    updatedAt?: DateTimeFilter<"Ticket"> | Date | string
    firstResponseAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    resolvedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    closedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    dueAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    slaId?: UuidNullableFilter<"Ticket"> | string | null
    slaBreached?: BoolFilter<"Ticket"> | boolean
    slaPausedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    slaPausedDuration?: IntFilter<"Ticket"> | number
    satisfactionRating?: IntNullableFilter<"Ticket"> | number | null
    satisfactionComment?: StringNullableFilter<"Ticket"> | string | null
    satisfactionRatedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    source?: EnumTicketSourceFilter<"Ticket"> | $Enums.TicketSource
    externalId?: StringNullableFilter<"Ticket"> | string | null
    channelMetadata?: JsonNullableFilter<"Ticket">
    resolution?: StringNullableFilter<"Ticket"> | string | null
    rootCause?: StringNullableFilter<"Ticket"> | string | null
    relatedTicketIds?: StringNullableListFilter<"Ticket">
    parentTicketId?: UuidNullableFilter<"Ticket"> | string | null
    approvalInstanceId?: UuidNullableFilter<"Ticket"> | string | null
    region?: StringFilter<"Ticket"> | string
    tenantId?: UuidNullableFilter<"Ticket"> | string | null
    language?: StringNullableFilter<"Ticket"> | string | null
    complianceFlag?: BoolFilter<"Ticket"> | boolean
    deletedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    category?: XOR<TicketCategoryScalarRelationFilter, TicketCategoryWhereInput>
    assigneeGroup?: XOR<AssignmentGroupNullableScalarRelationFilter, AssignmentGroupWhereInput> | null
    sla?: XOR<TicketSLANullableScalarRelationFilter, TicketSLAWhereInput> | null
    parentTicket?: XOR<TicketNullableScalarRelationFilter, TicketWhereInput> | null
    childTickets?: TicketListRelationFilter
    comments?: TicketCommentListRelationFilter
    activities?: TicketActivityListRelationFilter
    attachments?: TicketAttachmentListRelationFilter
  }

  export type TicketOrderByWithRelationInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    title?: SortOrder
    description?: SortOrder
    categoryId?: SortOrder
    priority?: SortOrder
    tags?: SortOrder
    status?: SortOrder
    creatorId?: SortOrder
    assigneeId?: SortOrderInput | SortOrder
    assigneeGroupId?: SortOrderInput | SortOrder
    watcherIds?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    firstResponseAt?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    closedAt?: SortOrderInput | SortOrder
    dueAt?: SortOrderInput | SortOrder
    slaId?: SortOrderInput | SortOrder
    slaBreached?: SortOrder
    slaPausedAt?: SortOrderInput | SortOrder
    slaPausedDuration?: SortOrder
    satisfactionRating?: SortOrderInput | SortOrder
    satisfactionComment?: SortOrderInput | SortOrder
    satisfactionRatedAt?: SortOrderInput | SortOrder
    source?: SortOrder
    externalId?: SortOrderInput | SortOrder
    channelMetadata?: SortOrderInput | SortOrder
    resolution?: SortOrderInput | SortOrder
    rootCause?: SortOrderInput | SortOrder
    relatedTicketIds?: SortOrder
    parentTicketId?: SortOrderInput | SortOrder
    approvalInstanceId?: SortOrderInput | SortOrder
    region?: SortOrder
    tenantId?: SortOrderInput | SortOrder
    language?: SortOrderInput | SortOrder
    complianceFlag?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    category?: TicketCategoryOrderByWithRelationInput
    assigneeGroup?: AssignmentGroupOrderByWithRelationInput
    sla?: TicketSLAOrderByWithRelationInput
    parentTicket?: TicketOrderByWithRelationInput
    childTickets?: TicketOrderByRelationAggregateInput
    comments?: TicketCommentOrderByRelationAggregateInput
    activities?: TicketActivityOrderByRelationAggregateInput
    attachments?: TicketAttachmentOrderByRelationAggregateInput
  }

  export type TicketWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    ticketNo?: string
    AND?: TicketWhereInput | TicketWhereInput[]
    OR?: TicketWhereInput[]
    NOT?: TicketWhereInput | TicketWhereInput[]
    title?: StringFilter<"Ticket"> | string
    description?: StringFilter<"Ticket"> | string
    categoryId?: UuidFilter<"Ticket"> | string
    priority?: EnumTicketPriorityFilter<"Ticket"> | $Enums.TicketPriority
    tags?: StringNullableListFilter<"Ticket">
    status?: EnumTicketStatusFilter<"Ticket"> | $Enums.TicketStatus
    creatorId?: UuidFilter<"Ticket"> | string
    assigneeId?: UuidNullableFilter<"Ticket"> | string | null
    assigneeGroupId?: UuidNullableFilter<"Ticket"> | string | null
    watcherIds?: StringNullableListFilter<"Ticket">
    createdAt?: DateTimeFilter<"Ticket"> | Date | string
    updatedAt?: DateTimeFilter<"Ticket"> | Date | string
    firstResponseAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    resolvedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    closedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    dueAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    slaId?: UuidNullableFilter<"Ticket"> | string | null
    slaBreached?: BoolFilter<"Ticket"> | boolean
    slaPausedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    slaPausedDuration?: IntFilter<"Ticket"> | number
    satisfactionRating?: IntNullableFilter<"Ticket"> | number | null
    satisfactionComment?: StringNullableFilter<"Ticket"> | string | null
    satisfactionRatedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    source?: EnumTicketSourceFilter<"Ticket"> | $Enums.TicketSource
    externalId?: StringNullableFilter<"Ticket"> | string | null
    channelMetadata?: JsonNullableFilter<"Ticket">
    resolution?: StringNullableFilter<"Ticket"> | string | null
    rootCause?: StringNullableFilter<"Ticket"> | string | null
    relatedTicketIds?: StringNullableListFilter<"Ticket">
    parentTicketId?: UuidNullableFilter<"Ticket"> | string | null
    approvalInstanceId?: UuidNullableFilter<"Ticket"> | string | null
    region?: StringFilter<"Ticket"> | string
    tenantId?: UuidNullableFilter<"Ticket"> | string | null
    language?: StringNullableFilter<"Ticket"> | string | null
    complianceFlag?: BoolFilter<"Ticket"> | boolean
    deletedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    category?: XOR<TicketCategoryScalarRelationFilter, TicketCategoryWhereInput>
    assigneeGroup?: XOR<AssignmentGroupNullableScalarRelationFilter, AssignmentGroupWhereInput> | null
    sla?: XOR<TicketSLANullableScalarRelationFilter, TicketSLAWhereInput> | null
    parentTicket?: XOR<TicketNullableScalarRelationFilter, TicketWhereInput> | null
    childTickets?: TicketListRelationFilter
    comments?: TicketCommentListRelationFilter
    activities?: TicketActivityListRelationFilter
    attachments?: TicketAttachmentListRelationFilter
  }, "id" | "ticketNo">

  export type TicketOrderByWithAggregationInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    title?: SortOrder
    description?: SortOrder
    categoryId?: SortOrder
    priority?: SortOrder
    tags?: SortOrder
    status?: SortOrder
    creatorId?: SortOrder
    assigneeId?: SortOrderInput | SortOrder
    assigneeGroupId?: SortOrderInput | SortOrder
    watcherIds?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    firstResponseAt?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    closedAt?: SortOrderInput | SortOrder
    dueAt?: SortOrderInput | SortOrder
    slaId?: SortOrderInput | SortOrder
    slaBreached?: SortOrder
    slaPausedAt?: SortOrderInput | SortOrder
    slaPausedDuration?: SortOrder
    satisfactionRating?: SortOrderInput | SortOrder
    satisfactionComment?: SortOrderInput | SortOrder
    satisfactionRatedAt?: SortOrderInput | SortOrder
    source?: SortOrder
    externalId?: SortOrderInput | SortOrder
    channelMetadata?: SortOrderInput | SortOrder
    resolution?: SortOrderInput | SortOrder
    rootCause?: SortOrderInput | SortOrder
    relatedTicketIds?: SortOrder
    parentTicketId?: SortOrderInput | SortOrder
    approvalInstanceId?: SortOrderInput | SortOrder
    region?: SortOrder
    tenantId?: SortOrderInput | SortOrder
    language?: SortOrderInput | SortOrder
    complianceFlag?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: TicketCountOrderByAggregateInput
    _avg?: TicketAvgOrderByAggregateInput
    _max?: TicketMaxOrderByAggregateInput
    _min?: TicketMinOrderByAggregateInput
    _sum?: TicketSumOrderByAggregateInput
  }

  export type TicketScalarWhereWithAggregatesInput = {
    AND?: TicketScalarWhereWithAggregatesInput | TicketScalarWhereWithAggregatesInput[]
    OR?: TicketScalarWhereWithAggregatesInput[]
    NOT?: TicketScalarWhereWithAggregatesInput | TicketScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"Ticket"> | string
    ticketNo?: StringWithAggregatesFilter<"Ticket"> | string
    title?: StringWithAggregatesFilter<"Ticket"> | string
    description?: StringWithAggregatesFilter<"Ticket"> | string
    categoryId?: UuidWithAggregatesFilter<"Ticket"> | string
    priority?: EnumTicketPriorityWithAggregatesFilter<"Ticket"> | $Enums.TicketPriority
    tags?: StringNullableListFilter<"Ticket">
    status?: EnumTicketStatusWithAggregatesFilter<"Ticket"> | $Enums.TicketStatus
    creatorId?: UuidWithAggregatesFilter<"Ticket"> | string
    assigneeId?: UuidNullableWithAggregatesFilter<"Ticket"> | string | null
    assigneeGroupId?: UuidNullableWithAggregatesFilter<"Ticket"> | string | null
    watcherIds?: StringNullableListFilter<"Ticket">
    createdAt?: DateTimeWithAggregatesFilter<"Ticket"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"Ticket"> | Date | string
    firstResponseAt?: DateTimeNullableWithAggregatesFilter<"Ticket"> | Date | string | null
    resolvedAt?: DateTimeNullableWithAggregatesFilter<"Ticket"> | Date | string | null
    closedAt?: DateTimeNullableWithAggregatesFilter<"Ticket"> | Date | string | null
    dueAt?: DateTimeNullableWithAggregatesFilter<"Ticket"> | Date | string | null
    slaId?: UuidNullableWithAggregatesFilter<"Ticket"> | string | null
    slaBreached?: BoolWithAggregatesFilter<"Ticket"> | boolean
    slaPausedAt?: DateTimeNullableWithAggregatesFilter<"Ticket"> | Date | string | null
    slaPausedDuration?: IntWithAggregatesFilter<"Ticket"> | number
    satisfactionRating?: IntNullableWithAggregatesFilter<"Ticket"> | number | null
    satisfactionComment?: StringNullableWithAggregatesFilter<"Ticket"> | string | null
    satisfactionRatedAt?: DateTimeNullableWithAggregatesFilter<"Ticket"> | Date | string | null
    source?: EnumTicketSourceWithAggregatesFilter<"Ticket"> | $Enums.TicketSource
    externalId?: StringNullableWithAggregatesFilter<"Ticket"> | string | null
    channelMetadata?: JsonNullableWithAggregatesFilter<"Ticket">
    resolution?: StringNullableWithAggregatesFilter<"Ticket"> | string | null
    rootCause?: StringNullableWithAggregatesFilter<"Ticket"> | string | null
    relatedTicketIds?: StringNullableListFilter<"Ticket">
    parentTicketId?: UuidNullableWithAggregatesFilter<"Ticket"> | string | null
    approvalInstanceId?: UuidNullableWithAggregatesFilter<"Ticket"> | string | null
    region?: StringWithAggregatesFilter<"Ticket"> | string
    tenantId?: UuidNullableWithAggregatesFilter<"Ticket"> | string | null
    language?: StringNullableWithAggregatesFilter<"Ticket"> | string | null
    complianceFlag?: BoolWithAggregatesFilter<"Ticket"> | boolean
    deletedAt?: DateTimeNullableWithAggregatesFilter<"Ticket"> | Date | string | null
  }

  export type TicketCategoryWhereInput = {
    AND?: TicketCategoryWhereInput | TicketCategoryWhereInput[]
    OR?: TicketCategoryWhereInput[]
    NOT?: TicketCategoryWhereInput | TicketCategoryWhereInput[]
    id?: UuidFilter<"TicketCategory"> | string
    name?: StringFilter<"TicketCategory"> | string
    code?: StringFilter<"TicketCategory"> | string
    description?: StringNullableFilter<"TicketCategory"> | string | null
    icon?: StringNullableFilter<"TicketCategory"> | string | null
    parentId?: UuidNullableFilter<"TicketCategory"> | string | null
    defaultPriority?: EnumTicketPriorityFilter<"TicketCategory"> | $Enums.TicketPriority
    defaultAssigneeGroupId?: UuidNullableFilter<"TicketCategory"> | string | null
    slaId?: UuidNullableFilter<"TicketCategory"> | string | null
    formTemplateId?: UuidNullableFilter<"TicketCategory"> | string | null
    allowedDepartmentIds?: StringNullableListFilter<"TicketCategory">
    allowedRoleIds?: StringNullableListFilter<"TicketCategory">
    isActive?: BoolFilter<"TicketCategory"> | boolean
    sortOrder?: IntFilter<"TicketCategory"> | number
    createdAt?: DateTimeFilter<"TicketCategory"> | Date | string
    updatedAt?: DateTimeFilter<"TicketCategory"> | Date | string
    parent?: XOR<TicketCategoryNullableScalarRelationFilter, TicketCategoryWhereInput> | null
    children?: TicketCategoryListRelationFilter
    defaultAssigneeGroup?: XOR<AssignmentGroupNullableScalarRelationFilter, AssignmentGroupWhereInput> | null
    sla?: XOR<TicketSLANullableScalarRelationFilter, TicketSLAWhereInput> | null
    tickets?: TicketListRelationFilter
  }

  export type TicketCategoryOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    icon?: SortOrderInput | SortOrder
    parentId?: SortOrderInput | SortOrder
    defaultPriority?: SortOrder
    defaultAssigneeGroupId?: SortOrderInput | SortOrder
    slaId?: SortOrderInput | SortOrder
    formTemplateId?: SortOrderInput | SortOrder
    allowedDepartmentIds?: SortOrder
    allowedRoleIds?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    parent?: TicketCategoryOrderByWithRelationInput
    children?: TicketCategoryOrderByRelationAggregateInput
    defaultAssigneeGroup?: AssignmentGroupOrderByWithRelationInput
    sla?: TicketSLAOrderByWithRelationInput
    tickets?: TicketOrderByRelationAggregateInput
  }

  export type TicketCategoryWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: TicketCategoryWhereInput | TicketCategoryWhereInput[]
    OR?: TicketCategoryWhereInput[]
    NOT?: TicketCategoryWhereInput | TicketCategoryWhereInput[]
    name?: StringFilter<"TicketCategory"> | string
    description?: StringNullableFilter<"TicketCategory"> | string | null
    icon?: StringNullableFilter<"TicketCategory"> | string | null
    parentId?: UuidNullableFilter<"TicketCategory"> | string | null
    defaultPriority?: EnumTicketPriorityFilter<"TicketCategory"> | $Enums.TicketPriority
    defaultAssigneeGroupId?: UuidNullableFilter<"TicketCategory"> | string | null
    slaId?: UuidNullableFilter<"TicketCategory"> | string | null
    formTemplateId?: UuidNullableFilter<"TicketCategory"> | string | null
    allowedDepartmentIds?: StringNullableListFilter<"TicketCategory">
    allowedRoleIds?: StringNullableListFilter<"TicketCategory">
    isActive?: BoolFilter<"TicketCategory"> | boolean
    sortOrder?: IntFilter<"TicketCategory"> | number
    createdAt?: DateTimeFilter<"TicketCategory"> | Date | string
    updatedAt?: DateTimeFilter<"TicketCategory"> | Date | string
    parent?: XOR<TicketCategoryNullableScalarRelationFilter, TicketCategoryWhereInput> | null
    children?: TicketCategoryListRelationFilter
    defaultAssigneeGroup?: XOR<AssignmentGroupNullableScalarRelationFilter, AssignmentGroupWhereInput> | null
    sla?: XOR<TicketSLANullableScalarRelationFilter, TicketSLAWhereInput> | null
    tickets?: TicketListRelationFilter
  }, "id" | "code">

  export type TicketCategoryOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    icon?: SortOrderInput | SortOrder
    parentId?: SortOrderInput | SortOrder
    defaultPriority?: SortOrder
    defaultAssigneeGroupId?: SortOrderInput | SortOrder
    slaId?: SortOrderInput | SortOrder
    formTemplateId?: SortOrderInput | SortOrder
    allowedDepartmentIds?: SortOrder
    allowedRoleIds?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: TicketCategoryCountOrderByAggregateInput
    _avg?: TicketCategoryAvgOrderByAggregateInput
    _max?: TicketCategoryMaxOrderByAggregateInput
    _min?: TicketCategoryMinOrderByAggregateInput
    _sum?: TicketCategorySumOrderByAggregateInput
  }

  export type TicketCategoryScalarWhereWithAggregatesInput = {
    AND?: TicketCategoryScalarWhereWithAggregatesInput | TicketCategoryScalarWhereWithAggregatesInput[]
    OR?: TicketCategoryScalarWhereWithAggregatesInput[]
    NOT?: TicketCategoryScalarWhereWithAggregatesInput | TicketCategoryScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"TicketCategory"> | string
    name?: StringWithAggregatesFilter<"TicketCategory"> | string
    code?: StringWithAggregatesFilter<"TicketCategory"> | string
    description?: StringNullableWithAggregatesFilter<"TicketCategory"> | string | null
    icon?: StringNullableWithAggregatesFilter<"TicketCategory"> | string | null
    parentId?: UuidNullableWithAggregatesFilter<"TicketCategory"> | string | null
    defaultPriority?: EnumTicketPriorityWithAggregatesFilter<"TicketCategory"> | $Enums.TicketPriority
    defaultAssigneeGroupId?: UuidNullableWithAggregatesFilter<"TicketCategory"> | string | null
    slaId?: UuidNullableWithAggregatesFilter<"TicketCategory"> | string | null
    formTemplateId?: UuidNullableWithAggregatesFilter<"TicketCategory"> | string | null
    allowedDepartmentIds?: StringNullableListFilter<"TicketCategory">
    allowedRoleIds?: StringNullableListFilter<"TicketCategory">
    isActive?: BoolWithAggregatesFilter<"TicketCategory"> | boolean
    sortOrder?: IntWithAggregatesFilter<"TicketCategory"> | number
    createdAt?: DateTimeWithAggregatesFilter<"TicketCategory"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"TicketCategory"> | Date | string
  }

  export type TicketCommentWhereInput = {
    AND?: TicketCommentWhereInput | TicketCommentWhereInput[]
    OR?: TicketCommentWhereInput[]
    NOT?: TicketCommentWhereInput | TicketCommentWhereInput[]
    id?: UuidFilter<"TicketComment"> | string
    ticketId?: UuidFilter<"TicketComment"> | string
    content?: StringFilter<"TicketComment"> | string
    type?: EnumCommentTypeFilter<"TicketComment"> | $Enums.CommentType
    isInternal?: BoolFilter<"TicketComment"> | boolean
    visibilityScope?: EnumVisibilityScopeFilter<"TicketComment"> | $Enums.VisibilityScope
    authorId?: UuidFilter<"TicketComment"> | string
    mentionedUserIds?: StringNullableListFilter<"TicketComment">
    createdAt?: DateTimeFilter<"TicketComment"> | Date | string
    updatedAt?: DateTimeFilter<"TicketComment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"TicketComment"> | Date | string | null
    ticket?: XOR<TicketScalarRelationFilter, TicketWhereInput>
    attachments?: TicketAttachmentListRelationFilter
  }

  export type TicketCommentOrderByWithRelationInput = {
    id?: SortOrder
    ticketId?: SortOrder
    content?: SortOrder
    type?: SortOrder
    isInternal?: SortOrder
    visibilityScope?: SortOrder
    authorId?: SortOrder
    mentionedUserIds?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    ticket?: TicketOrderByWithRelationInput
    attachments?: TicketAttachmentOrderByRelationAggregateInput
  }

  export type TicketCommentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: TicketCommentWhereInput | TicketCommentWhereInput[]
    OR?: TicketCommentWhereInput[]
    NOT?: TicketCommentWhereInput | TicketCommentWhereInput[]
    ticketId?: UuidFilter<"TicketComment"> | string
    content?: StringFilter<"TicketComment"> | string
    type?: EnumCommentTypeFilter<"TicketComment"> | $Enums.CommentType
    isInternal?: BoolFilter<"TicketComment"> | boolean
    visibilityScope?: EnumVisibilityScopeFilter<"TicketComment"> | $Enums.VisibilityScope
    authorId?: UuidFilter<"TicketComment"> | string
    mentionedUserIds?: StringNullableListFilter<"TicketComment">
    createdAt?: DateTimeFilter<"TicketComment"> | Date | string
    updatedAt?: DateTimeFilter<"TicketComment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"TicketComment"> | Date | string | null
    ticket?: XOR<TicketScalarRelationFilter, TicketWhereInput>
    attachments?: TicketAttachmentListRelationFilter
  }, "id">

  export type TicketCommentOrderByWithAggregationInput = {
    id?: SortOrder
    ticketId?: SortOrder
    content?: SortOrder
    type?: SortOrder
    isInternal?: SortOrder
    visibilityScope?: SortOrder
    authorId?: SortOrder
    mentionedUserIds?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: TicketCommentCountOrderByAggregateInput
    _max?: TicketCommentMaxOrderByAggregateInput
    _min?: TicketCommentMinOrderByAggregateInput
  }

  export type TicketCommentScalarWhereWithAggregatesInput = {
    AND?: TicketCommentScalarWhereWithAggregatesInput | TicketCommentScalarWhereWithAggregatesInput[]
    OR?: TicketCommentScalarWhereWithAggregatesInput[]
    NOT?: TicketCommentScalarWhereWithAggregatesInput | TicketCommentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"TicketComment"> | string
    ticketId?: UuidWithAggregatesFilter<"TicketComment"> | string
    content?: StringWithAggregatesFilter<"TicketComment"> | string
    type?: EnumCommentTypeWithAggregatesFilter<"TicketComment"> | $Enums.CommentType
    isInternal?: BoolWithAggregatesFilter<"TicketComment"> | boolean
    visibilityScope?: EnumVisibilityScopeWithAggregatesFilter<"TicketComment"> | $Enums.VisibilityScope
    authorId?: UuidWithAggregatesFilter<"TicketComment"> | string
    mentionedUserIds?: StringNullableListFilter<"TicketComment">
    createdAt?: DateTimeWithAggregatesFilter<"TicketComment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"TicketComment"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"TicketComment"> | Date | string | null
  }

  export type TicketAttachmentWhereInput = {
    AND?: TicketAttachmentWhereInput | TicketAttachmentWhereInput[]
    OR?: TicketAttachmentWhereInput[]
    NOT?: TicketAttachmentWhereInput | TicketAttachmentWhereInput[]
    id?: UuidFilter<"TicketAttachment"> | string
    ticketId?: UuidFilter<"TicketAttachment"> | string
    commentId?: UuidNullableFilter<"TicketAttachment"> | string | null
    fileName?: StringFilter<"TicketAttachment"> | string
    fileUrl?: StringFilter<"TicketAttachment"> | string
    fileSize?: IntFilter<"TicketAttachment"> | number
    mimeType?: StringFilter<"TicketAttachment"> | string
    uploadedBy?: UuidFilter<"TicketAttachment"> | string
    createdAt?: DateTimeFilter<"TicketAttachment"> | Date | string
    ticket?: XOR<TicketScalarRelationFilter, TicketWhereInput>
    comment?: XOR<TicketCommentNullableScalarRelationFilter, TicketCommentWhereInput> | null
  }

  export type TicketAttachmentOrderByWithRelationInput = {
    id?: SortOrder
    ticketId?: SortOrder
    commentId?: SortOrderInput | SortOrder
    fileName?: SortOrder
    fileUrl?: SortOrder
    fileSize?: SortOrder
    mimeType?: SortOrder
    uploadedBy?: SortOrder
    createdAt?: SortOrder
    ticket?: TicketOrderByWithRelationInput
    comment?: TicketCommentOrderByWithRelationInput
  }

  export type TicketAttachmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: TicketAttachmentWhereInput | TicketAttachmentWhereInput[]
    OR?: TicketAttachmentWhereInput[]
    NOT?: TicketAttachmentWhereInput | TicketAttachmentWhereInput[]
    ticketId?: UuidFilter<"TicketAttachment"> | string
    commentId?: UuidNullableFilter<"TicketAttachment"> | string | null
    fileName?: StringFilter<"TicketAttachment"> | string
    fileUrl?: StringFilter<"TicketAttachment"> | string
    fileSize?: IntFilter<"TicketAttachment"> | number
    mimeType?: StringFilter<"TicketAttachment"> | string
    uploadedBy?: UuidFilter<"TicketAttachment"> | string
    createdAt?: DateTimeFilter<"TicketAttachment"> | Date | string
    ticket?: XOR<TicketScalarRelationFilter, TicketWhereInput>
    comment?: XOR<TicketCommentNullableScalarRelationFilter, TicketCommentWhereInput> | null
  }, "id">

  export type TicketAttachmentOrderByWithAggregationInput = {
    id?: SortOrder
    ticketId?: SortOrder
    commentId?: SortOrderInput | SortOrder
    fileName?: SortOrder
    fileUrl?: SortOrder
    fileSize?: SortOrder
    mimeType?: SortOrder
    uploadedBy?: SortOrder
    createdAt?: SortOrder
    _count?: TicketAttachmentCountOrderByAggregateInput
    _avg?: TicketAttachmentAvgOrderByAggregateInput
    _max?: TicketAttachmentMaxOrderByAggregateInput
    _min?: TicketAttachmentMinOrderByAggregateInput
    _sum?: TicketAttachmentSumOrderByAggregateInput
  }

  export type TicketAttachmentScalarWhereWithAggregatesInput = {
    AND?: TicketAttachmentScalarWhereWithAggregatesInput | TicketAttachmentScalarWhereWithAggregatesInput[]
    OR?: TicketAttachmentScalarWhereWithAggregatesInput[]
    NOT?: TicketAttachmentScalarWhereWithAggregatesInput | TicketAttachmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"TicketAttachment"> | string
    ticketId?: UuidWithAggregatesFilter<"TicketAttachment"> | string
    commentId?: UuidNullableWithAggregatesFilter<"TicketAttachment"> | string | null
    fileName?: StringWithAggregatesFilter<"TicketAttachment"> | string
    fileUrl?: StringWithAggregatesFilter<"TicketAttachment"> | string
    fileSize?: IntWithAggregatesFilter<"TicketAttachment"> | number
    mimeType?: StringWithAggregatesFilter<"TicketAttachment"> | string
    uploadedBy?: UuidWithAggregatesFilter<"TicketAttachment"> | string
    createdAt?: DateTimeWithAggregatesFilter<"TicketAttachment"> | Date | string
  }

  export type TicketActivityWhereInput = {
    AND?: TicketActivityWhereInput | TicketActivityWhereInput[]
    OR?: TicketActivityWhereInput[]
    NOT?: TicketActivityWhereInput | TicketActivityWhereInput[]
    id?: UuidFilter<"TicketActivity"> | string
    ticketId?: UuidFilter<"TicketActivity"> | string
    type?: EnumActivityTypeFilter<"TicketActivity"> | $Enums.ActivityType
    content?: JsonFilter<"TicketActivity">
    operatorId?: UuidNullableFilter<"TicketActivity"> | string | null
    createdAt?: DateTimeFilter<"TicketActivity"> | Date | string
    ticket?: XOR<TicketScalarRelationFilter, TicketWhereInput>
  }

  export type TicketActivityOrderByWithRelationInput = {
    id?: SortOrder
    ticketId?: SortOrder
    type?: SortOrder
    content?: SortOrder
    operatorId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    ticket?: TicketOrderByWithRelationInput
  }

  export type TicketActivityWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: TicketActivityWhereInput | TicketActivityWhereInput[]
    OR?: TicketActivityWhereInput[]
    NOT?: TicketActivityWhereInput | TicketActivityWhereInput[]
    ticketId?: UuidFilter<"TicketActivity"> | string
    type?: EnumActivityTypeFilter<"TicketActivity"> | $Enums.ActivityType
    content?: JsonFilter<"TicketActivity">
    operatorId?: UuidNullableFilter<"TicketActivity"> | string | null
    createdAt?: DateTimeFilter<"TicketActivity"> | Date | string
    ticket?: XOR<TicketScalarRelationFilter, TicketWhereInput>
  }, "id">

  export type TicketActivityOrderByWithAggregationInput = {
    id?: SortOrder
    ticketId?: SortOrder
    type?: SortOrder
    content?: SortOrder
    operatorId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: TicketActivityCountOrderByAggregateInput
    _max?: TicketActivityMaxOrderByAggregateInput
    _min?: TicketActivityMinOrderByAggregateInput
  }

  export type TicketActivityScalarWhereWithAggregatesInput = {
    AND?: TicketActivityScalarWhereWithAggregatesInput | TicketActivityScalarWhereWithAggregatesInput[]
    OR?: TicketActivityScalarWhereWithAggregatesInput[]
    NOT?: TicketActivityScalarWhereWithAggregatesInput | TicketActivityScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"TicketActivity"> | string
    ticketId?: UuidWithAggregatesFilter<"TicketActivity"> | string
    type?: EnumActivityTypeWithAggregatesFilter<"TicketActivity"> | $Enums.ActivityType
    content?: JsonWithAggregatesFilter<"TicketActivity">
    operatorId?: UuidNullableWithAggregatesFilter<"TicketActivity"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"TicketActivity"> | Date | string
  }

  export type TicketSLAWhereInput = {
    AND?: TicketSLAWhereInput | TicketSLAWhereInput[]
    OR?: TicketSLAWhereInput[]
    NOT?: TicketSLAWhereInput | TicketSLAWhereInput[]
    id?: UuidFilter<"TicketSLA"> | string
    name?: StringFilter<"TicketSLA"> | string
    description?: StringNullableFilter<"TicketSLA"> | string | null
    firstResponseTime?: JsonFilter<"TicketSLA">
    resolutionTime?: JsonFilter<"TicketSLA">
    businessHours?: JsonFilter<"TicketSLA">
    excludeHolidays?: BoolFilter<"TicketSLA"> | boolean
    holidayCalendarId?: UuidNullableFilter<"TicketSLA"> | string | null
    escalationRules?: JsonNullableFilter<"TicketSLA">
    isActive?: BoolFilter<"TicketSLA"> | boolean
    isDefault?: BoolFilter<"TicketSLA"> | boolean
    createdAt?: DateTimeFilter<"TicketSLA"> | Date | string
    updatedAt?: DateTimeFilter<"TicketSLA"> | Date | string
    categories?: TicketCategoryListRelationFilter
    tickets?: TicketListRelationFilter
  }

  export type TicketSLAOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    firstResponseTime?: SortOrder
    resolutionTime?: SortOrder
    businessHours?: SortOrder
    excludeHolidays?: SortOrder
    holidayCalendarId?: SortOrderInput | SortOrder
    escalationRules?: SortOrderInput | SortOrder
    isActive?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    categories?: TicketCategoryOrderByRelationAggregateInput
    tickets?: TicketOrderByRelationAggregateInput
  }

  export type TicketSLAWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: TicketSLAWhereInput | TicketSLAWhereInput[]
    OR?: TicketSLAWhereInput[]
    NOT?: TicketSLAWhereInput | TicketSLAWhereInput[]
    name?: StringFilter<"TicketSLA"> | string
    description?: StringNullableFilter<"TicketSLA"> | string | null
    firstResponseTime?: JsonFilter<"TicketSLA">
    resolutionTime?: JsonFilter<"TicketSLA">
    businessHours?: JsonFilter<"TicketSLA">
    excludeHolidays?: BoolFilter<"TicketSLA"> | boolean
    holidayCalendarId?: UuidNullableFilter<"TicketSLA"> | string | null
    escalationRules?: JsonNullableFilter<"TicketSLA">
    isActive?: BoolFilter<"TicketSLA"> | boolean
    isDefault?: BoolFilter<"TicketSLA"> | boolean
    createdAt?: DateTimeFilter<"TicketSLA"> | Date | string
    updatedAt?: DateTimeFilter<"TicketSLA"> | Date | string
    categories?: TicketCategoryListRelationFilter
    tickets?: TicketListRelationFilter
  }, "id">

  export type TicketSLAOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrderInput | SortOrder
    firstResponseTime?: SortOrder
    resolutionTime?: SortOrder
    businessHours?: SortOrder
    excludeHolidays?: SortOrder
    holidayCalendarId?: SortOrderInput | SortOrder
    escalationRules?: SortOrderInput | SortOrder
    isActive?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: TicketSLACountOrderByAggregateInput
    _max?: TicketSLAMaxOrderByAggregateInput
    _min?: TicketSLAMinOrderByAggregateInput
  }

  export type TicketSLAScalarWhereWithAggregatesInput = {
    AND?: TicketSLAScalarWhereWithAggregatesInput | TicketSLAScalarWhereWithAggregatesInput[]
    OR?: TicketSLAScalarWhereWithAggregatesInput[]
    NOT?: TicketSLAScalarWhereWithAggregatesInput | TicketSLAScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"TicketSLA"> | string
    name?: StringWithAggregatesFilter<"TicketSLA"> | string
    description?: StringNullableWithAggregatesFilter<"TicketSLA"> | string | null
    firstResponseTime?: JsonWithAggregatesFilter<"TicketSLA">
    resolutionTime?: JsonWithAggregatesFilter<"TicketSLA">
    businessHours?: JsonWithAggregatesFilter<"TicketSLA">
    excludeHolidays?: BoolWithAggregatesFilter<"TicketSLA"> | boolean
    holidayCalendarId?: UuidNullableWithAggregatesFilter<"TicketSLA"> | string | null
    escalationRules?: JsonNullableWithAggregatesFilter<"TicketSLA">
    isActive?: BoolWithAggregatesFilter<"TicketSLA"> | boolean
    isDefault?: BoolWithAggregatesFilter<"TicketSLA"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"TicketSLA"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"TicketSLA"> | Date | string
  }

  export type AssignmentGroupWhereInput = {
    AND?: AssignmentGroupWhereInput | AssignmentGroupWhereInput[]
    OR?: AssignmentGroupWhereInput[]
    NOT?: AssignmentGroupWhereInput | AssignmentGroupWhereInput[]
    id?: UuidFilter<"AssignmentGroup"> | string
    name?: StringFilter<"AssignmentGroup"> | string
    code?: StringFilter<"AssignmentGroup"> | string
    description?: StringNullableFilter<"AssignmentGroup"> | string | null
    memberIds?: StringNullableListFilter<"AssignmentGroup">
    managerId?: UuidNullableFilter<"AssignmentGroup"> | string | null
    skills?: StringNullableListFilter<"AssignmentGroup">
    assignmentStrategy?: EnumAssignmentStrategyFilter<"AssignmentGroup"> | $Enums.AssignmentStrategy
    isActive?: BoolFilter<"AssignmentGroup"> | boolean
    createdAt?: DateTimeFilter<"AssignmentGroup"> | Date | string
    updatedAt?: DateTimeFilter<"AssignmentGroup"> | Date | string
    categories?: TicketCategoryListRelationFilter
    tickets?: TicketListRelationFilter
  }

  export type AssignmentGroupOrderByWithRelationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    memberIds?: SortOrder
    managerId?: SortOrderInput | SortOrder
    skills?: SortOrder
    assignmentStrategy?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    categories?: TicketCategoryOrderByRelationAggregateInput
    tickets?: TicketOrderByRelationAggregateInput
  }

  export type AssignmentGroupWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: AssignmentGroupWhereInput | AssignmentGroupWhereInput[]
    OR?: AssignmentGroupWhereInput[]
    NOT?: AssignmentGroupWhereInput | AssignmentGroupWhereInput[]
    name?: StringFilter<"AssignmentGroup"> | string
    description?: StringNullableFilter<"AssignmentGroup"> | string | null
    memberIds?: StringNullableListFilter<"AssignmentGroup">
    managerId?: UuidNullableFilter<"AssignmentGroup"> | string | null
    skills?: StringNullableListFilter<"AssignmentGroup">
    assignmentStrategy?: EnumAssignmentStrategyFilter<"AssignmentGroup"> | $Enums.AssignmentStrategy
    isActive?: BoolFilter<"AssignmentGroup"> | boolean
    createdAt?: DateTimeFilter<"AssignmentGroup"> | Date | string
    updatedAt?: DateTimeFilter<"AssignmentGroup"> | Date | string
    categories?: TicketCategoryListRelationFilter
    tickets?: TicketListRelationFilter
  }, "id" | "code">

  export type AssignmentGroupOrderByWithAggregationInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrderInput | SortOrder
    memberIds?: SortOrder
    managerId?: SortOrderInput | SortOrder
    skills?: SortOrder
    assignmentStrategy?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: AssignmentGroupCountOrderByAggregateInput
    _max?: AssignmentGroupMaxOrderByAggregateInput
    _min?: AssignmentGroupMinOrderByAggregateInput
  }

  export type AssignmentGroupScalarWhereWithAggregatesInput = {
    AND?: AssignmentGroupScalarWhereWithAggregatesInput | AssignmentGroupScalarWhereWithAggregatesInput[]
    OR?: AssignmentGroupScalarWhereWithAggregatesInput[]
    NOT?: AssignmentGroupScalarWhereWithAggregatesInput | AssignmentGroupScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"AssignmentGroup"> | string
    name?: StringWithAggregatesFilter<"AssignmentGroup"> | string
    code?: StringWithAggregatesFilter<"AssignmentGroup"> | string
    description?: StringNullableWithAggregatesFilter<"AssignmentGroup"> | string | null
    memberIds?: StringNullableListFilter<"AssignmentGroup">
    managerId?: UuidNullableWithAggregatesFilter<"AssignmentGroup"> | string | null
    skills?: StringNullableListFilter<"AssignmentGroup">
    assignmentStrategy?: EnumAssignmentStrategyWithAggregatesFilter<"AssignmentGroup"> | $Enums.AssignmentStrategy
    isActive?: BoolWithAggregatesFilter<"AssignmentGroup"> | boolean
    createdAt?: DateTimeWithAggregatesFilter<"AssignmentGroup"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"AssignmentGroup"> | Date | string
  }

  export type RobotModelWhereInput = {
    AND?: RobotModelWhereInput | RobotModelWhereInput[]
    OR?: RobotModelWhereInput[]
    NOT?: RobotModelWhereInput | RobotModelWhereInput[]
    id?: UuidFilter<"RobotModel"> | string
    code?: StringFilter<"RobotModel"> | string
    name?: StringFilter<"RobotModel"> | string
    brand?: StringNullableFilter<"RobotModel"> | string | null
    description?: StringNullableFilter<"RobotModel"> | string | null
    imageUrl?: StringNullableFilter<"RobotModel"> | string | null
    enabled?: BoolFilter<"RobotModel"> | boolean
    metadata?: JsonFilter<"RobotModel">
    organizationId?: UuidFilter<"RobotModel"> | string
    createdAt?: DateTimeFilter<"RobotModel"> | Date | string
    updatedAt?: DateTimeFilter<"RobotModel"> | Date | string
    createdById?: UuidFilter<"RobotModel"> | string
    deletedAt?: DateTimeNullableFilter<"RobotModel"> | Date | string | null
    skus?: RobotSkuListRelationFilter
    robotUnits?: RobotUnitListRelationFilter
  }

  export type RobotModelOrderByWithRelationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    brand?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    imageUrl?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    skus?: RobotSkuOrderByRelationAggregateInput
    robotUnits?: RobotUnitOrderByRelationAggregateInput
  }

  export type RobotModelWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: RobotModelWhereInput | RobotModelWhereInput[]
    OR?: RobotModelWhereInput[]
    NOT?: RobotModelWhereInput | RobotModelWhereInput[]
    name?: StringFilter<"RobotModel"> | string
    brand?: StringNullableFilter<"RobotModel"> | string | null
    description?: StringNullableFilter<"RobotModel"> | string | null
    imageUrl?: StringNullableFilter<"RobotModel"> | string | null
    enabled?: BoolFilter<"RobotModel"> | boolean
    metadata?: JsonFilter<"RobotModel">
    organizationId?: UuidFilter<"RobotModel"> | string
    createdAt?: DateTimeFilter<"RobotModel"> | Date | string
    updatedAt?: DateTimeFilter<"RobotModel"> | Date | string
    createdById?: UuidFilter<"RobotModel"> | string
    deletedAt?: DateTimeNullableFilter<"RobotModel"> | Date | string | null
    skus?: RobotSkuListRelationFilter
    robotUnits?: RobotUnitListRelationFilter
  }, "id" | "code">

  export type RobotModelOrderByWithAggregationInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    brand?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    imageUrl?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: RobotModelCountOrderByAggregateInput
    _max?: RobotModelMaxOrderByAggregateInput
    _min?: RobotModelMinOrderByAggregateInput
  }

  export type RobotModelScalarWhereWithAggregatesInput = {
    AND?: RobotModelScalarWhereWithAggregatesInput | RobotModelScalarWhereWithAggregatesInput[]
    OR?: RobotModelScalarWhereWithAggregatesInput[]
    NOT?: RobotModelScalarWhereWithAggregatesInput | RobotModelScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RobotModel"> | string
    code?: StringWithAggregatesFilter<"RobotModel"> | string
    name?: StringWithAggregatesFilter<"RobotModel"> | string
    brand?: StringNullableWithAggregatesFilter<"RobotModel"> | string | null
    description?: StringNullableWithAggregatesFilter<"RobotModel"> | string | null
    imageUrl?: StringNullableWithAggregatesFilter<"RobotModel"> | string | null
    enabled?: BoolWithAggregatesFilter<"RobotModel"> | boolean
    metadata?: JsonWithAggregatesFilter<"RobotModel">
    organizationId?: UuidWithAggregatesFilter<"RobotModel"> | string
    createdAt?: DateTimeWithAggregatesFilter<"RobotModel"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RobotModel"> | Date | string
    createdById?: UuidWithAggregatesFilter<"RobotModel"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"RobotModel"> | Date | string | null
  }

  export type RobotSkuWhereInput = {
    AND?: RobotSkuWhereInput | RobotSkuWhereInput[]
    OR?: RobotSkuWhereInput[]
    NOT?: RobotSkuWhereInput | RobotSkuWhereInput[]
    id?: UuidFilter<"RobotSku"> | string
    modelId?: UuidFilter<"RobotSku"> | string
    code?: StringFilter<"RobotSku"> | string
    name?: StringFilter<"RobotSku"> | string
    variant?: StringNullableFilter<"RobotSku"> | string | null
    defaultPrice?: DecimalNullableFilter<"RobotSku"> | Decimal | DecimalJsLike | number | string | null
    defaultCost?: DecimalNullableFilter<"RobotSku"> | Decimal | DecimalJsLike | number | string | null
    currencyCode?: StringNullableFilter<"RobotSku"> | string | null
    description?: StringNullableFilter<"RobotSku"> | string | null
    enabled?: BoolFilter<"RobotSku"> | boolean
    metadata?: JsonFilter<"RobotSku">
    organizationId?: UuidFilter<"RobotSku"> | string
    createdAt?: DateTimeFilter<"RobotSku"> | Date | string
    updatedAt?: DateTimeFilter<"RobotSku"> | Date | string
    createdById?: UuidFilter<"RobotSku"> | string
    deletedAt?: DateTimeNullableFilter<"RobotSku"> | Date | string | null
    model?: XOR<RobotModelScalarRelationFilter, RobotModelWhereInput>
    robotUnits?: RobotUnitListRelationFilter
  }

  export type RobotSkuOrderByWithRelationInput = {
    id?: SortOrder
    modelId?: SortOrder
    code?: SortOrder
    name?: SortOrder
    variant?: SortOrderInput | SortOrder
    defaultPrice?: SortOrderInput | SortOrder
    defaultCost?: SortOrderInput | SortOrder
    currencyCode?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    model?: RobotModelOrderByWithRelationInput
    robotUnits?: RobotUnitOrderByRelationAggregateInput
  }

  export type RobotSkuWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    code?: string
    AND?: RobotSkuWhereInput | RobotSkuWhereInput[]
    OR?: RobotSkuWhereInput[]
    NOT?: RobotSkuWhereInput | RobotSkuWhereInput[]
    modelId?: UuidFilter<"RobotSku"> | string
    name?: StringFilter<"RobotSku"> | string
    variant?: StringNullableFilter<"RobotSku"> | string | null
    defaultPrice?: DecimalNullableFilter<"RobotSku"> | Decimal | DecimalJsLike | number | string | null
    defaultCost?: DecimalNullableFilter<"RobotSku"> | Decimal | DecimalJsLike | number | string | null
    currencyCode?: StringNullableFilter<"RobotSku"> | string | null
    description?: StringNullableFilter<"RobotSku"> | string | null
    enabled?: BoolFilter<"RobotSku"> | boolean
    metadata?: JsonFilter<"RobotSku">
    organizationId?: UuidFilter<"RobotSku"> | string
    createdAt?: DateTimeFilter<"RobotSku"> | Date | string
    updatedAt?: DateTimeFilter<"RobotSku"> | Date | string
    createdById?: UuidFilter<"RobotSku"> | string
    deletedAt?: DateTimeNullableFilter<"RobotSku"> | Date | string | null
    model?: XOR<RobotModelScalarRelationFilter, RobotModelWhereInput>
    robotUnits?: RobotUnitListRelationFilter
  }, "id" | "code">

  export type RobotSkuOrderByWithAggregationInput = {
    id?: SortOrder
    modelId?: SortOrder
    code?: SortOrder
    name?: SortOrder
    variant?: SortOrderInput | SortOrder
    defaultPrice?: SortOrderInput | SortOrder
    defaultCost?: SortOrderInput | SortOrder
    currencyCode?: SortOrderInput | SortOrder
    description?: SortOrderInput | SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: RobotSkuCountOrderByAggregateInput
    _avg?: RobotSkuAvgOrderByAggregateInput
    _max?: RobotSkuMaxOrderByAggregateInput
    _min?: RobotSkuMinOrderByAggregateInput
    _sum?: RobotSkuSumOrderByAggregateInput
  }

  export type RobotSkuScalarWhereWithAggregatesInput = {
    AND?: RobotSkuScalarWhereWithAggregatesInput | RobotSkuScalarWhereWithAggregatesInput[]
    OR?: RobotSkuScalarWhereWithAggregatesInput[]
    NOT?: RobotSkuScalarWhereWithAggregatesInput | RobotSkuScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RobotSku"> | string
    modelId?: UuidWithAggregatesFilter<"RobotSku"> | string
    code?: StringWithAggregatesFilter<"RobotSku"> | string
    name?: StringWithAggregatesFilter<"RobotSku"> | string
    variant?: StringNullableWithAggregatesFilter<"RobotSku"> | string | null
    defaultPrice?: DecimalNullableWithAggregatesFilter<"RobotSku"> | Decimal | DecimalJsLike | number | string | null
    defaultCost?: DecimalNullableWithAggregatesFilter<"RobotSku"> | Decimal | DecimalJsLike | number | string | null
    currencyCode?: StringNullableWithAggregatesFilter<"RobotSku"> | string | null
    description?: StringNullableWithAggregatesFilter<"RobotSku"> | string | null
    enabled?: BoolWithAggregatesFilter<"RobotSku"> | boolean
    metadata?: JsonWithAggregatesFilter<"RobotSku">
    organizationId?: UuidWithAggregatesFilter<"RobotSku"> | string
    createdAt?: DateTimeWithAggregatesFilter<"RobotSku"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RobotSku"> | Date | string
    createdById?: UuidWithAggregatesFilter<"RobotSku"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"RobotSku"> | Date | string | null
  }

  export type RobotSystemConfigWhereInput = {
    AND?: RobotSystemConfigWhereInput | RobotSystemConfigWhereInput[]
    OR?: RobotSystemConfigWhereInput[]
    NOT?: RobotSystemConfigWhereInput | RobotSystemConfigWhereInput[]
    id?: UuidFilter<"RobotSystemConfig"> | string
    key?: StringFilter<"RobotSystemConfig"> | string
    value?: JsonFilter<"RobotSystemConfig">
    description?: StringNullableFilter<"RobotSystemConfig"> | string | null
    organizationId?: UuidNullableFilter<"RobotSystemConfig"> | string | null
    createdAt?: DateTimeFilter<"RobotSystemConfig"> | Date | string
    updatedAt?: DateTimeFilter<"RobotSystemConfig"> | Date | string
    createdById?: UuidNullableFilter<"RobotSystemConfig"> | string | null
  }

  export type RobotSystemConfigOrderByWithRelationInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrderInput | SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
  }

  export type RobotSystemConfigWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    key?: string
    AND?: RobotSystemConfigWhereInput | RobotSystemConfigWhereInput[]
    OR?: RobotSystemConfigWhereInput[]
    NOT?: RobotSystemConfigWhereInput | RobotSystemConfigWhereInput[]
    value?: JsonFilter<"RobotSystemConfig">
    description?: StringNullableFilter<"RobotSystemConfig"> | string | null
    organizationId?: UuidNullableFilter<"RobotSystemConfig"> | string | null
    createdAt?: DateTimeFilter<"RobotSystemConfig"> | Date | string
    updatedAt?: DateTimeFilter<"RobotSystemConfig"> | Date | string
    createdById?: UuidNullableFilter<"RobotSystemConfig"> | string | null
  }, "id" | "key">

  export type RobotSystemConfigOrderByWithAggregationInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrderInput | SortOrder
    organizationId?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrderInput | SortOrder
    _count?: RobotSystemConfigCountOrderByAggregateInput
    _max?: RobotSystemConfigMaxOrderByAggregateInput
    _min?: RobotSystemConfigMinOrderByAggregateInput
  }

  export type RobotSystemConfigScalarWhereWithAggregatesInput = {
    AND?: RobotSystemConfigScalarWhereWithAggregatesInput | RobotSystemConfigScalarWhereWithAggregatesInput[]
    OR?: RobotSystemConfigScalarWhereWithAggregatesInput[]
    NOT?: RobotSystemConfigScalarWhereWithAggregatesInput | RobotSystemConfigScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RobotSystemConfig"> | string
    key?: StringWithAggregatesFilter<"RobotSystemConfig"> | string
    value?: JsonWithAggregatesFilter<"RobotSystemConfig">
    description?: StringNullableWithAggregatesFilter<"RobotSystemConfig"> | string | null
    organizationId?: UuidNullableWithAggregatesFilter<"RobotSystemConfig"> | string | null
    createdAt?: DateTimeWithAggregatesFilter<"RobotSystemConfig"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RobotSystemConfig"> | Date | string
    createdById?: UuidNullableWithAggregatesFilter<"RobotSystemConfig"> | string | null
  }

  export type RobotUnitWhereInput = {
    AND?: RobotUnitWhereInput | RobotUnitWhereInput[]
    OR?: RobotUnitWhereInput[]
    NOT?: RobotUnitWhereInput | RobotUnitWhereInput[]
    id?: UuidFilter<"RobotUnit"> | string
    organizationId?: UuidFilter<"RobotUnit"> | string
    version?: IntFilter<"RobotUnit"> | number
    ffsn?: StringFilter<"RobotUnit"> | string
    ffsnDisplay?: StringNullableFilter<"RobotUnit"> | string | null
    placeholderSnOrig?: StringNullableFilter<"RobotUnit"> | string | null
    supplierSn?: StringNullableFilter<"RobotUnit"> | string | null
    modelId?: UuidFilter<"RobotUnit"> | string
    skuId?: UuidFilter<"RobotUnit"> | string
    usageType?: EnumRobotUsageTypeFilter<"RobotUnit"> | $Enums.RobotUsageType
    purchaseOrderId?: UuidNullableFilter<"RobotUnit"> | string | null
    purchaseOrderLineId?: UuidNullableFilter<"RobotUnit"> | string | null
    originalSupplierId?: UuidNullableFilter<"RobotUnit"> | string | null
    manufactureDate?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
    retiredAt?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
    disposalType?: EnumRobotDisposalTypeNullableFilter<"RobotUnit"> | $Enums.RobotDisposalType | null
    disposalNotes?: StringNullableFilter<"RobotUnit"> | string | null
    sapMaterialNo?: StringNullableFilter<"RobotUnit"> | string | null
    metadata?: JsonFilter<"RobotUnit">
    createdAt?: DateTimeFilter<"RobotUnit"> | Date | string
    updatedAt?: DateTimeFilter<"RobotUnit"> | Date | string
    createdById?: UuidFilter<"RobotUnit"> | string
    deletedAt?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
    model?: XOR<RobotModelScalarRelationFilter, RobotModelWhereInput>
    sku?: XOR<RobotSkuScalarRelationFilter, RobotSkuWhereInput>
    purchaseOrder?: XOR<PurchaseOrderNullableScalarRelationFilter, PurchaseOrderWhereInput> | null
    purchaseOrderLine?: XOR<PurchaseOrderLineNullableScalarRelationFilter, PurchaseOrderLineWhereInput> | null
    snapshot?: XOR<RobotUnitSnapshotNullableScalarRelationFilter, RobotUnitSnapshotWhereInput> | null
    events?: RobotLifecycleEventListRelationFilter
    qualityLabels?: QualityLabelRecordListRelationFilter
    packageReadiness?: XOR<RobotPackageReadinessNullableScalarRelationFilter, RobotPackageReadinessWhereInput> | null
    inspections?: InspectionRecordListRelationFilter
    logisticsLegs?: LogisticsLegListRelationFilter
    complianceCheck?: XOR<ComplianceCheckNullableScalarRelationFilter, ComplianceCheckWhereInput> | null
    rentalAgreements?: RentalAgreementListRelationFilter
    serviceTickets?: ServiceTicketListRelationFilter
    deliveryFulfillments?: DeliveryFulfillmentListRelationFilter
    salesOrderLines?: SalesOrderLineListRelationFilter
    importAudit?: XOR<RobotImportAuditNullableScalarRelationFilter, RobotImportAuditWhereInput> | null
    paymentRecords?: PaymentRecordListRelationFilter
  }

  export type RobotUnitOrderByWithRelationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    version?: SortOrder
    ffsn?: SortOrder
    ffsnDisplay?: SortOrderInput | SortOrder
    placeholderSnOrig?: SortOrderInput | SortOrder
    supplierSn?: SortOrderInput | SortOrder
    modelId?: SortOrder
    skuId?: SortOrder
    usageType?: SortOrder
    purchaseOrderId?: SortOrderInput | SortOrder
    purchaseOrderLineId?: SortOrderInput | SortOrder
    originalSupplierId?: SortOrderInput | SortOrder
    manufactureDate?: SortOrderInput | SortOrder
    retiredAt?: SortOrderInput | SortOrder
    disposalType?: SortOrderInput | SortOrder
    disposalNotes?: SortOrderInput | SortOrder
    sapMaterialNo?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    model?: RobotModelOrderByWithRelationInput
    sku?: RobotSkuOrderByWithRelationInput
    purchaseOrder?: PurchaseOrderOrderByWithRelationInput
    purchaseOrderLine?: PurchaseOrderLineOrderByWithRelationInput
    snapshot?: RobotUnitSnapshotOrderByWithRelationInput
    events?: RobotLifecycleEventOrderByRelationAggregateInput
    qualityLabels?: QualityLabelRecordOrderByRelationAggregateInput
    packageReadiness?: RobotPackageReadinessOrderByWithRelationInput
    inspections?: InspectionRecordOrderByRelationAggregateInput
    logisticsLegs?: LogisticsLegOrderByRelationAggregateInput
    complianceCheck?: ComplianceCheckOrderByWithRelationInput
    rentalAgreements?: RentalAgreementOrderByRelationAggregateInput
    serviceTickets?: ServiceTicketOrderByRelationAggregateInput
    deliveryFulfillments?: DeliveryFulfillmentOrderByRelationAggregateInput
    salesOrderLines?: SalesOrderLineOrderByRelationAggregateInput
    importAudit?: RobotImportAuditOrderByWithRelationInput
    paymentRecords?: PaymentRecordOrderByRelationAggregateInput
  }

  export type RobotUnitWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    organizationId_ffsn?: RobotUnitOrganizationIdFfsnCompoundUniqueInput
    AND?: RobotUnitWhereInput | RobotUnitWhereInput[]
    OR?: RobotUnitWhereInput[]
    NOT?: RobotUnitWhereInput | RobotUnitWhereInput[]
    organizationId?: UuidFilter<"RobotUnit"> | string
    version?: IntFilter<"RobotUnit"> | number
    ffsn?: StringFilter<"RobotUnit"> | string
    ffsnDisplay?: StringNullableFilter<"RobotUnit"> | string | null
    placeholderSnOrig?: StringNullableFilter<"RobotUnit"> | string | null
    supplierSn?: StringNullableFilter<"RobotUnit"> | string | null
    modelId?: UuidFilter<"RobotUnit"> | string
    skuId?: UuidFilter<"RobotUnit"> | string
    usageType?: EnumRobotUsageTypeFilter<"RobotUnit"> | $Enums.RobotUsageType
    purchaseOrderId?: UuidNullableFilter<"RobotUnit"> | string | null
    purchaseOrderLineId?: UuidNullableFilter<"RobotUnit"> | string | null
    originalSupplierId?: UuidNullableFilter<"RobotUnit"> | string | null
    manufactureDate?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
    retiredAt?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
    disposalType?: EnumRobotDisposalTypeNullableFilter<"RobotUnit"> | $Enums.RobotDisposalType | null
    disposalNotes?: StringNullableFilter<"RobotUnit"> | string | null
    sapMaterialNo?: StringNullableFilter<"RobotUnit"> | string | null
    metadata?: JsonFilter<"RobotUnit">
    createdAt?: DateTimeFilter<"RobotUnit"> | Date | string
    updatedAt?: DateTimeFilter<"RobotUnit"> | Date | string
    createdById?: UuidFilter<"RobotUnit"> | string
    deletedAt?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
    model?: XOR<RobotModelScalarRelationFilter, RobotModelWhereInput>
    sku?: XOR<RobotSkuScalarRelationFilter, RobotSkuWhereInput>
    purchaseOrder?: XOR<PurchaseOrderNullableScalarRelationFilter, PurchaseOrderWhereInput> | null
    purchaseOrderLine?: XOR<PurchaseOrderLineNullableScalarRelationFilter, PurchaseOrderLineWhereInput> | null
    snapshot?: XOR<RobotUnitSnapshotNullableScalarRelationFilter, RobotUnitSnapshotWhereInput> | null
    events?: RobotLifecycleEventListRelationFilter
    qualityLabels?: QualityLabelRecordListRelationFilter
    packageReadiness?: XOR<RobotPackageReadinessNullableScalarRelationFilter, RobotPackageReadinessWhereInput> | null
    inspections?: InspectionRecordListRelationFilter
    logisticsLegs?: LogisticsLegListRelationFilter
    complianceCheck?: XOR<ComplianceCheckNullableScalarRelationFilter, ComplianceCheckWhereInput> | null
    rentalAgreements?: RentalAgreementListRelationFilter
    serviceTickets?: ServiceTicketListRelationFilter
    deliveryFulfillments?: DeliveryFulfillmentListRelationFilter
    salesOrderLines?: SalesOrderLineListRelationFilter
    importAudit?: XOR<RobotImportAuditNullableScalarRelationFilter, RobotImportAuditWhereInput> | null
    paymentRecords?: PaymentRecordListRelationFilter
  }, "id" | "organizationId_ffsn">

  export type RobotUnitOrderByWithAggregationInput = {
    id?: SortOrder
    organizationId?: SortOrder
    version?: SortOrder
    ffsn?: SortOrder
    ffsnDisplay?: SortOrderInput | SortOrder
    placeholderSnOrig?: SortOrderInput | SortOrder
    supplierSn?: SortOrderInput | SortOrder
    modelId?: SortOrder
    skuId?: SortOrder
    usageType?: SortOrder
    purchaseOrderId?: SortOrderInput | SortOrder
    purchaseOrderLineId?: SortOrderInput | SortOrder
    originalSupplierId?: SortOrderInput | SortOrder
    manufactureDate?: SortOrderInput | SortOrder
    retiredAt?: SortOrderInput | SortOrder
    disposalType?: SortOrderInput | SortOrder
    disposalNotes?: SortOrderInput | SortOrder
    sapMaterialNo?: SortOrderInput | SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: RobotUnitCountOrderByAggregateInput
    _avg?: RobotUnitAvgOrderByAggregateInput
    _max?: RobotUnitMaxOrderByAggregateInput
    _min?: RobotUnitMinOrderByAggregateInput
    _sum?: RobotUnitSumOrderByAggregateInput
  }

  export type RobotUnitScalarWhereWithAggregatesInput = {
    AND?: RobotUnitScalarWhereWithAggregatesInput | RobotUnitScalarWhereWithAggregatesInput[]
    OR?: RobotUnitScalarWhereWithAggregatesInput[]
    NOT?: RobotUnitScalarWhereWithAggregatesInput | RobotUnitScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RobotUnit"> | string
    organizationId?: UuidWithAggregatesFilter<"RobotUnit"> | string
    version?: IntWithAggregatesFilter<"RobotUnit"> | number
    ffsn?: StringWithAggregatesFilter<"RobotUnit"> | string
    ffsnDisplay?: StringNullableWithAggregatesFilter<"RobotUnit"> | string | null
    placeholderSnOrig?: StringNullableWithAggregatesFilter<"RobotUnit"> | string | null
    supplierSn?: StringNullableWithAggregatesFilter<"RobotUnit"> | string | null
    modelId?: UuidWithAggregatesFilter<"RobotUnit"> | string
    skuId?: UuidWithAggregatesFilter<"RobotUnit"> | string
    usageType?: EnumRobotUsageTypeWithAggregatesFilter<"RobotUnit"> | $Enums.RobotUsageType
    purchaseOrderId?: UuidNullableWithAggregatesFilter<"RobotUnit"> | string | null
    purchaseOrderLineId?: UuidNullableWithAggregatesFilter<"RobotUnit"> | string | null
    originalSupplierId?: UuidNullableWithAggregatesFilter<"RobotUnit"> | string | null
    manufactureDate?: DateTimeNullableWithAggregatesFilter<"RobotUnit"> | Date | string | null
    retiredAt?: DateTimeNullableWithAggregatesFilter<"RobotUnit"> | Date | string | null
    disposalType?: EnumRobotDisposalTypeNullableWithAggregatesFilter<"RobotUnit"> | $Enums.RobotDisposalType | null
    disposalNotes?: StringNullableWithAggregatesFilter<"RobotUnit"> | string | null
    sapMaterialNo?: StringNullableWithAggregatesFilter<"RobotUnit"> | string | null
    metadata?: JsonWithAggregatesFilter<"RobotUnit">
    createdAt?: DateTimeWithAggregatesFilter<"RobotUnit"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RobotUnit"> | Date | string
    createdById?: UuidWithAggregatesFilter<"RobotUnit"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"RobotUnit"> | Date | string | null
  }

  export type RobotUnitSnapshotWhereInput = {
    AND?: RobotUnitSnapshotWhereInput | RobotUnitSnapshotWhereInput[]
    OR?: RobotUnitSnapshotWhereInput[]
    NOT?: RobotUnitSnapshotWhereInput | RobotUnitSnapshotWhereInput[]
    robotUnitId?: UuidFilter<"RobotUnitSnapshot"> | string
    currentStage?: EnumRobotLifecycleStageFilter<"RobotUnitSnapshot"> | $Enums.RobotLifecycleStage
    isHeld?: BoolFilter<"RobotUnitSnapshot"> | boolean
    holdReason?: StringNullableFilter<"RobotUnitSnapshot"> | string | null
    currentLocationId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentCustomerId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentSalesOrderId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentDeliveryRequestId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentSpecialistId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    physicalProductStatus?: EnumRobotPhysicalStatusNullableFilter<"RobotUnitSnapshot"> | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: IntNullableFilter<"RobotUnitSnapshot"> | number | null
    warrantyStatus?: EnumRobotWarrantyStatusNullableFilter<"RobotUnitSnapshot"> | $Enums.RobotWarrantyStatus | null
    lastEventId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    lastEventAt?: DateTimeNullableFilter<"RobotUnitSnapshot"> | Date | string | null
    derivedAt?: DateTimeFilter<"RobotUnitSnapshot"> | Date | string
    version?: IntFilter<"RobotUnitSnapshot"> | number
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
    lastEvent?: XOR<RobotLifecycleEventNullableScalarRelationFilter, RobotLifecycleEventWhereInput> | null
    salesOrder?: XOR<SalesOrderNullableScalarRelationFilter, SalesOrderWhereInput> | null
    deliveryRequest?: XOR<DeliveryRequestNullableScalarRelationFilter, DeliveryRequestWhereInput> | null
  }

  export type RobotUnitSnapshotOrderByWithRelationInput = {
    robotUnitId?: SortOrder
    currentStage?: SortOrder
    isHeld?: SortOrder
    holdReason?: SortOrderInput | SortOrder
    currentLocationId?: SortOrderInput | SortOrder
    currentCustomerId?: SortOrderInput | SortOrder
    currentSalesOrderId?: SortOrderInput | SortOrder
    currentDeliveryRequestId?: SortOrderInput | SortOrder
    currentSpecialistId?: SortOrderInput | SortOrder
    physicalProductStatus?: SortOrderInput | SortOrder
    daysReadyForDelivery?: SortOrderInput | SortOrder
    warrantyStatus?: SortOrderInput | SortOrder
    lastEventId?: SortOrderInput | SortOrder
    lastEventAt?: SortOrderInput | SortOrder
    derivedAt?: SortOrder
    version?: SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
    lastEvent?: RobotLifecycleEventOrderByWithRelationInput
    salesOrder?: SalesOrderOrderByWithRelationInput
    deliveryRequest?: DeliveryRequestOrderByWithRelationInput
  }

  export type RobotUnitSnapshotWhereUniqueInput = Prisma.AtLeast<{
    robotUnitId?: string
    AND?: RobotUnitSnapshotWhereInput | RobotUnitSnapshotWhereInput[]
    OR?: RobotUnitSnapshotWhereInput[]
    NOT?: RobotUnitSnapshotWhereInput | RobotUnitSnapshotWhereInput[]
    currentStage?: EnumRobotLifecycleStageFilter<"RobotUnitSnapshot"> | $Enums.RobotLifecycleStage
    isHeld?: BoolFilter<"RobotUnitSnapshot"> | boolean
    holdReason?: StringNullableFilter<"RobotUnitSnapshot"> | string | null
    currentLocationId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentCustomerId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentSalesOrderId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentDeliveryRequestId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentSpecialistId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    physicalProductStatus?: EnumRobotPhysicalStatusNullableFilter<"RobotUnitSnapshot"> | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: IntNullableFilter<"RobotUnitSnapshot"> | number | null
    warrantyStatus?: EnumRobotWarrantyStatusNullableFilter<"RobotUnitSnapshot"> | $Enums.RobotWarrantyStatus | null
    lastEventId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    lastEventAt?: DateTimeNullableFilter<"RobotUnitSnapshot"> | Date | string | null
    derivedAt?: DateTimeFilter<"RobotUnitSnapshot"> | Date | string
    version?: IntFilter<"RobotUnitSnapshot"> | number
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
    lastEvent?: XOR<RobotLifecycleEventNullableScalarRelationFilter, RobotLifecycleEventWhereInput> | null
    salesOrder?: XOR<SalesOrderNullableScalarRelationFilter, SalesOrderWhereInput> | null
    deliveryRequest?: XOR<DeliveryRequestNullableScalarRelationFilter, DeliveryRequestWhereInput> | null
  }, "robotUnitId">

  export type RobotUnitSnapshotOrderByWithAggregationInput = {
    robotUnitId?: SortOrder
    currentStage?: SortOrder
    isHeld?: SortOrder
    holdReason?: SortOrderInput | SortOrder
    currentLocationId?: SortOrderInput | SortOrder
    currentCustomerId?: SortOrderInput | SortOrder
    currentSalesOrderId?: SortOrderInput | SortOrder
    currentDeliveryRequestId?: SortOrderInput | SortOrder
    currentSpecialistId?: SortOrderInput | SortOrder
    physicalProductStatus?: SortOrderInput | SortOrder
    daysReadyForDelivery?: SortOrderInput | SortOrder
    warrantyStatus?: SortOrderInput | SortOrder
    lastEventId?: SortOrderInput | SortOrder
    lastEventAt?: SortOrderInput | SortOrder
    derivedAt?: SortOrder
    version?: SortOrder
    _count?: RobotUnitSnapshotCountOrderByAggregateInput
    _avg?: RobotUnitSnapshotAvgOrderByAggregateInput
    _max?: RobotUnitSnapshotMaxOrderByAggregateInput
    _min?: RobotUnitSnapshotMinOrderByAggregateInput
    _sum?: RobotUnitSnapshotSumOrderByAggregateInput
  }

  export type RobotUnitSnapshotScalarWhereWithAggregatesInput = {
    AND?: RobotUnitSnapshotScalarWhereWithAggregatesInput | RobotUnitSnapshotScalarWhereWithAggregatesInput[]
    OR?: RobotUnitSnapshotScalarWhereWithAggregatesInput[]
    NOT?: RobotUnitSnapshotScalarWhereWithAggregatesInput | RobotUnitSnapshotScalarWhereWithAggregatesInput[]
    robotUnitId?: UuidWithAggregatesFilter<"RobotUnitSnapshot"> | string
    currentStage?: EnumRobotLifecycleStageWithAggregatesFilter<"RobotUnitSnapshot"> | $Enums.RobotLifecycleStage
    isHeld?: BoolWithAggregatesFilter<"RobotUnitSnapshot"> | boolean
    holdReason?: StringNullableWithAggregatesFilter<"RobotUnitSnapshot"> | string | null
    currentLocationId?: UuidNullableWithAggregatesFilter<"RobotUnitSnapshot"> | string | null
    currentCustomerId?: UuidNullableWithAggregatesFilter<"RobotUnitSnapshot"> | string | null
    currentSalesOrderId?: UuidNullableWithAggregatesFilter<"RobotUnitSnapshot"> | string | null
    currentDeliveryRequestId?: UuidNullableWithAggregatesFilter<"RobotUnitSnapshot"> | string | null
    currentSpecialistId?: UuidNullableWithAggregatesFilter<"RobotUnitSnapshot"> | string | null
    physicalProductStatus?: EnumRobotPhysicalStatusNullableWithAggregatesFilter<"RobotUnitSnapshot"> | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: IntNullableWithAggregatesFilter<"RobotUnitSnapshot"> | number | null
    warrantyStatus?: EnumRobotWarrantyStatusNullableWithAggregatesFilter<"RobotUnitSnapshot"> | $Enums.RobotWarrantyStatus | null
    lastEventId?: UuidNullableWithAggregatesFilter<"RobotUnitSnapshot"> | string | null
    lastEventAt?: DateTimeNullableWithAggregatesFilter<"RobotUnitSnapshot"> | Date | string | null
    derivedAt?: DateTimeWithAggregatesFilter<"RobotUnitSnapshot"> | Date | string
    version?: IntWithAggregatesFilter<"RobotUnitSnapshot"> | number
  }

  export type RobotLifecycleEventWhereInput = {
    AND?: RobotLifecycleEventWhereInput | RobotLifecycleEventWhereInput[]
    OR?: RobotLifecycleEventWhereInput[]
    NOT?: RobotLifecycleEventWhereInput | RobotLifecycleEventWhereInput[]
    id?: UuidFilter<"RobotLifecycleEvent"> | string
    robotUnitId?: UuidFilter<"RobotLifecycleEvent"> | string
    eventType?: EnumRobotLifecycleEventTypeFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleEventType
    fromStage?: EnumRobotLifecycleStageNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleStage | null
    toStage?: EnumRobotLifecycleStageNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleStage | null
    fromLocationId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    toLocationId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    actorUserId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    partnerId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    customerId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    relatedType?: EnumRobotEventRelatedTypeNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotEventRelatedType | null
    relatedId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    payload?: JsonFilter<"RobotLifecycleEvent">
    notes?: StringNullableFilter<"RobotLifecycleEvent"> | string | null
    occurredAt?: DateTimeFilter<"RobotLifecycleEvent"> | Date | string
    organizationId?: UuidFilter<"RobotLifecycleEvent"> | string
    createdAt?: DateTimeFilter<"RobotLifecycleEvent"> | Date | string
    createdById?: UuidFilter<"RobotLifecycleEvent"> | string
    deletedAt?: DateTimeNullableFilter<"RobotLifecycleEvent"> | Date | string | null
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
    snapshotsAsLastEvent?: RobotUnitSnapshotListRelationFilter
  }

  export type RobotLifecycleEventOrderByWithRelationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    eventType?: SortOrder
    fromStage?: SortOrderInput | SortOrder
    toStage?: SortOrderInput | SortOrder
    fromLocationId?: SortOrderInput | SortOrder
    toLocationId?: SortOrderInput | SortOrder
    actorUserId?: SortOrderInput | SortOrder
    partnerId?: SortOrderInput | SortOrder
    customerId?: SortOrderInput | SortOrder
    relatedType?: SortOrderInput | SortOrder
    relatedId?: SortOrderInput | SortOrder
    payload?: SortOrder
    notes?: SortOrderInput | SortOrder
    occurredAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
    snapshotsAsLastEvent?: RobotUnitSnapshotOrderByRelationAggregateInput
  }

  export type RobotLifecycleEventWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: RobotLifecycleEventWhereInput | RobotLifecycleEventWhereInput[]
    OR?: RobotLifecycleEventWhereInput[]
    NOT?: RobotLifecycleEventWhereInput | RobotLifecycleEventWhereInput[]
    robotUnitId?: UuidFilter<"RobotLifecycleEvent"> | string
    eventType?: EnumRobotLifecycleEventTypeFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleEventType
    fromStage?: EnumRobotLifecycleStageNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleStage | null
    toStage?: EnumRobotLifecycleStageNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleStage | null
    fromLocationId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    toLocationId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    actorUserId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    partnerId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    customerId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    relatedType?: EnumRobotEventRelatedTypeNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotEventRelatedType | null
    relatedId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    payload?: JsonFilter<"RobotLifecycleEvent">
    notes?: StringNullableFilter<"RobotLifecycleEvent"> | string | null
    occurredAt?: DateTimeFilter<"RobotLifecycleEvent"> | Date | string
    organizationId?: UuidFilter<"RobotLifecycleEvent"> | string
    createdAt?: DateTimeFilter<"RobotLifecycleEvent"> | Date | string
    createdById?: UuidFilter<"RobotLifecycleEvent"> | string
    deletedAt?: DateTimeNullableFilter<"RobotLifecycleEvent"> | Date | string | null
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
    snapshotsAsLastEvent?: RobotUnitSnapshotListRelationFilter
  }, "id">

  export type RobotLifecycleEventOrderByWithAggregationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    eventType?: SortOrder
    fromStage?: SortOrderInput | SortOrder
    toStage?: SortOrderInput | SortOrder
    fromLocationId?: SortOrderInput | SortOrder
    toLocationId?: SortOrderInput | SortOrder
    actorUserId?: SortOrderInput | SortOrder
    partnerId?: SortOrderInput | SortOrder
    customerId?: SortOrderInput | SortOrder
    relatedType?: SortOrderInput | SortOrder
    relatedId?: SortOrderInput | SortOrder
    payload?: SortOrder
    notes?: SortOrderInput | SortOrder
    occurredAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: RobotLifecycleEventCountOrderByAggregateInput
    _max?: RobotLifecycleEventMaxOrderByAggregateInput
    _min?: RobotLifecycleEventMinOrderByAggregateInput
  }

  export type RobotLifecycleEventScalarWhereWithAggregatesInput = {
    AND?: RobotLifecycleEventScalarWhereWithAggregatesInput | RobotLifecycleEventScalarWhereWithAggregatesInput[]
    OR?: RobotLifecycleEventScalarWhereWithAggregatesInput[]
    NOT?: RobotLifecycleEventScalarWhereWithAggregatesInput | RobotLifecycleEventScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RobotLifecycleEvent"> | string
    robotUnitId?: UuidWithAggregatesFilter<"RobotLifecycleEvent"> | string
    eventType?: EnumRobotLifecycleEventTypeWithAggregatesFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleEventType
    fromStage?: EnumRobotLifecycleStageNullableWithAggregatesFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleStage | null
    toStage?: EnumRobotLifecycleStageNullableWithAggregatesFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleStage | null
    fromLocationId?: UuidNullableWithAggregatesFilter<"RobotLifecycleEvent"> | string | null
    toLocationId?: UuidNullableWithAggregatesFilter<"RobotLifecycleEvent"> | string | null
    actorUserId?: UuidNullableWithAggregatesFilter<"RobotLifecycleEvent"> | string | null
    partnerId?: UuidNullableWithAggregatesFilter<"RobotLifecycleEvent"> | string | null
    customerId?: UuidNullableWithAggregatesFilter<"RobotLifecycleEvent"> | string | null
    relatedType?: EnumRobotEventRelatedTypeNullableWithAggregatesFilter<"RobotLifecycleEvent"> | $Enums.RobotEventRelatedType | null
    relatedId?: UuidNullableWithAggregatesFilter<"RobotLifecycleEvent"> | string | null
    payload?: JsonWithAggregatesFilter<"RobotLifecycleEvent">
    notes?: StringNullableWithAggregatesFilter<"RobotLifecycleEvent"> | string | null
    occurredAt?: DateTimeWithAggregatesFilter<"RobotLifecycleEvent"> | Date | string
    organizationId?: UuidWithAggregatesFilter<"RobotLifecycleEvent"> | string
    createdAt?: DateTimeWithAggregatesFilter<"RobotLifecycleEvent"> | Date | string
    createdById?: UuidWithAggregatesFilter<"RobotLifecycleEvent"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"RobotLifecycleEvent"> | Date | string | null
  }

  export type PurchaseOrderWhereInput = {
    AND?: PurchaseOrderWhereInput | PurchaseOrderWhereInput[]
    OR?: PurchaseOrderWhereInput[]
    NOT?: PurchaseOrderWhereInput | PurchaseOrderWhereInput[]
    id?: UuidFilter<"PurchaseOrder"> | string
    poNo?: StringFilter<"PurchaseOrder"> | string
    sapPoNo?: StringNullableFilter<"PurchaseOrder"> | string | null
    supplierId?: UuidFilter<"PurchaseOrder"> | string
    currencyCode?: StringFilter<"PurchaseOrder"> | string
    totalAmount?: DecimalFilter<"PurchaseOrder"> | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFilter<"PurchaseOrder"> | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFilter<"PurchaseOrder"> | Date | string
    expectedAt?: DateTimeNullableFilter<"PurchaseOrder"> | Date | string | null
    closedAt?: DateTimeNullableFilter<"PurchaseOrder"> | Date | string | null
    notes?: StringNullableFilter<"PurchaseOrder"> | string | null
    version?: IntFilter<"PurchaseOrder"> | number
    organizationId?: UuidFilter<"PurchaseOrder"> | string
    createdAt?: DateTimeFilter<"PurchaseOrder"> | Date | string
    updatedAt?: DateTimeFilter<"PurchaseOrder"> | Date | string
    createdById?: UuidFilter<"PurchaseOrder"> | string
    deletedAt?: DateTimeNullableFilter<"PurchaseOrder"> | Date | string | null
    lines?: PurchaseOrderLineListRelationFilter
    robotUnits?: RobotUnitListRelationFilter
  }

  export type PurchaseOrderOrderByWithRelationInput = {
    id?: SortOrder
    poNo?: SortOrder
    sapPoNo?: SortOrderInput | SortOrder
    supplierId?: SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    status?: SortOrder
    orderedAt?: SortOrder
    expectedAt?: SortOrderInput | SortOrder
    closedAt?: SortOrderInput | SortOrder
    notes?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    lines?: PurchaseOrderLineOrderByRelationAggregateInput
    robotUnits?: RobotUnitOrderByRelationAggregateInput
  }

  export type PurchaseOrderWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    poNo?: string
    sapPoNo?: string
    AND?: PurchaseOrderWhereInput | PurchaseOrderWhereInput[]
    OR?: PurchaseOrderWhereInput[]
    NOT?: PurchaseOrderWhereInput | PurchaseOrderWhereInput[]
    supplierId?: UuidFilter<"PurchaseOrder"> | string
    currencyCode?: StringFilter<"PurchaseOrder"> | string
    totalAmount?: DecimalFilter<"PurchaseOrder"> | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFilter<"PurchaseOrder"> | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFilter<"PurchaseOrder"> | Date | string
    expectedAt?: DateTimeNullableFilter<"PurchaseOrder"> | Date | string | null
    closedAt?: DateTimeNullableFilter<"PurchaseOrder"> | Date | string | null
    notes?: StringNullableFilter<"PurchaseOrder"> | string | null
    version?: IntFilter<"PurchaseOrder"> | number
    organizationId?: UuidFilter<"PurchaseOrder"> | string
    createdAt?: DateTimeFilter<"PurchaseOrder"> | Date | string
    updatedAt?: DateTimeFilter<"PurchaseOrder"> | Date | string
    createdById?: UuidFilter<"PurchaseOrder"> | string
    deletedAt?: DateTimeNullableFilter<"PurchaseOrder"> | Date | string | null
    lines?: PurchaseOrderLineListRelationFilter
    robotUnits?: RobotUnitListRelationFilter
  }, "id" | "poNo" | "sapPoNo">

  export type PurchaseOrderOrderByWithAggregationInput = {
    id?: SortOrder
    poNo?: SortOrder
    sapPoNo?: SortOrderInput | SortOrder
    supplierId?: SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    status?: SortOrder
    orderedAt?: SortOrder
    expectedAt?: SortOrderInput | SortOrder
    closedAt?: SortOrderInput | SortOrder
    notes?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: PurchaseOrderCountOrderByAggregateInput
    _avg?: PurchaseOrderAvgOrderByAggregateInput
    _max?: PurchaseOrderMaxOrderByAggregateInput
    _min?: PurchaseOrderMinOrderByAggregateInput
    _sum?: PurchaseOrderSumOrderByAggregateInput
  }

  export type PurchaseOrderScalarWhereWithAggregatesInput = {
    AND?: PurchaseOrderScalarWhereWithAggregatesInput | PurchaseOrderScalarWhereWithAggregatesInput[]
    OR?: PurchaseOrderScalarWhereWithAggregatesInput[]
    NOT?: PurchaseOrderScalarWhereWithAggregatesInput | PurchaseOrderScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PurchaseOrder"> | string
    poNo?: StringWithAggregatesFilter<"PurchaseOrder"> | string
    sapPoNo?: StringNullableWithAggregatesFilter<"PurchaseOrder"> | string | null
    supplierId?: UuidWithAggregatesFilter<"PurchaseOrder"> | string
    currencyCode?: StringWithAggregatesFilter<"PurchaseOrder"> | string
    totalAmount?: DecimalWithAggregatesFilter<"PurchaseOrder"> | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusWithAggregatesFilter<"PurchaseOrder"> | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeWithAggregatesFilter<"PurchaseOrder"> | Date | string
    expectedAt?: DateTimeNullableWithAggregatesFilter<"PurchaseOrder"> | Date | string | null
    closedAt?: DateTimeNullableWithAggregatesFilter<"PurchaseOrder"> | Date | string | null
    notes?: StringNullableWithAggregatesFilter<"PurchaseOrder"> | string | null
    version?: IntWithAggregatesFilter<"PurchaseOrder"> | number
    organizationId?: UuidWithAggregatesFilter<"PurchaseOrder"> | string
    createdAt?: DateTimeWithAggregatesFilter<"PurchaseOrder"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PurchaseOrder"> | Date | string
    createdById?: UuidWithAggregatesFilter<"PurchaseOrder"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"PurchaseOrder"> | Date | string | null
  }

  export type PurchaseOrderLineWhereInput = {
    AND?: PurchaseOrderLineWhereInput | PurchaseOrderLineWhereInput[]
    OR?: PurchaseOrderLineWhereInput[]
    NOT?: PurchaseOrderLineWhereInput | PurchaseOrderLineWhereInput[]
    id?: UuidFilter<"PurchaseOrderLine"> | string
    purchaseOrderId?: UuidFilter<"PurchaseOrderLine"> | string
    lineNo?: IntFilter<"PurchaseOrderLine"> | number
    skuId?: UuidFilter<"PurchaseOrderLine"> | string
    quantity?: IntFilter<"PurchaseOrderLine"> | number
    unitPrice?: DecimalFilter<"PurchaseOrderLine"> | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFilter<"PurchaseOrderLine"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"PurchaseOrderLine"> | string
    defaultUsageType?: EnumRobotUsageTypeNullableFilter<"PurchaseOrderLine"> | $Enums.RobotUsageType | null
    placeholderPattern?: StringNullableFilter<"PurchaseOrderLine"> | string | null
    expectedAt?: DateTimeNullableFilter<"PurchaseOrderLine"> | Date | string | null
    createdAt?: DateTimeFilter<"PurchaseOrderLine"> | Date | string
    updatedAt?: DateTimeFilter<"PurchaseOrderLine"> | Date | string
    purchaseOrder?: XOR<PurchaseOrderScalarRelationFilter, PurchaseOrderWhereInput>
    robotUnits?: RobotUnitListRelationFilter
  }

  export type PurchaseOrderLineOrderByWithRelationInput = {
    id?: SortOrder
    purchaseOrderId?: SortOrder
    lineNo?: SortOrder
    skuId?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    totalPrice?: SortOrder
    currencyCode?: SortOrder
    defaultUsageType?: SortOrderInput | SortOrder
    placeholderPattern?: SortOrderInput | SortOrder
    expectedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    purchaseOrder?: PurchaseOrderOrderByWithRelationInput
    robotUnits?: RobotUnitOrderByRelationAggregateInput
  }

  export type PurchaseOrderLineWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    purchaseOrderId_lineNo?: PurchaseOrderLinePurchaseOrderIdLineNoCompoundUniqueInput
    AND?: PurchaseOrderLineWhereInput | PurchaseOrderLineWhereInput[]
    OR?: PurchaseOrderLineWhereInput[]
    NOT?: PurchaseOrderLineWhereInput | PurchaseOrderLineWhereInput[]
    purchaseOrderId?: UuidFilter<"PurchaseOrderLine"> | string
    lineNo?: IntFilter<"PurchaseOrderLine"> | number
    skuId?: UuidFilter<"PurchaseOrderLine"> | string
    quantity?: IntFilter<"PurchaseOrderLine"> | number
    unitPrice?: DecimalFilter<"PurchaseOrderLine"> | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFilter<"PurchaseOrderLine"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"PurchaseOrderLine"> | string
    defaultUsageType?: EnumRobotUsageTypeNullableFilter<"PurchaseOrderLine"> | $Enums.RobotUsageType | null
    placeholderPattern?: StringNullableFilter<"PurchaseOrderLine"> | string | null
    expectedAt?: DateTimeNullableFilter<"PurchaseOrderLine"> | Date | string | null
    createdAt?: DateTimeFilter<"PurchaseOrderLine"> | Date | string
    updatedAt?: DateTimeFilter<"PurchaseOrderLine"> | Date | string
    purchaseOrder?: XOR<PurchaseOrderScalarRelationFilter, PurchaseOrderWhereInput>
    robotUnits?: RobotUnitListRelationFilter
  }, "id" | "purchaseOrderId_lineNo">

  export type PurchaseOrderLineOrderByWithAggregationInput = {
    id?: SortOrder
    purchaseOrderId?: SortOrder
    lineNo?: SortOrder
    skuId?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    totalPrice?: SortOrder
    currencyCode?: SortOrder
    defaultUsageType?: SortOrderInput | SortOrder
    placeholderPattern?: SortOrderInput | SortOrder
    expectedAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: PurchaseOrderLineCountOrderByAggregateInput
    _avg?: PurchaseOrderLineAvgOrderByAggregateInput
    _max?: PurchaseOrderLineMaxOrderByAggregateInput
    _min?: PurchaseOrderLineMinOrderByAggregateInput
    _sum?: PurchaseOrderLineSumOrderByAggregateInput
  }

  export type PurchaseOrderLineScalarWhereWithAggregatesInput = {
    AND?: PurchaseOrderLineScalarWhereWithAggregatesInput | PurchaseOrderLineScalarWhereWithAggregatesInput[]
    OR?: PurchaseOrderLineScalarWhereWithAggregatesInput[]
    NOT?: PurchaseOrderLineScalarWhereWithAggregatesInput | PurchaseOrderLineScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PurchaseOrderLine"> | string
    purchaseOrderId?: UuidWithAggregatesFilter<"PurchaseOrderLine"> | string
    lineNo?: IntWithAggregatesFilter<"PurchaseOrderLine"> | number
    skuId?: UuidWithAggregatesFilter<"PurchaseOrderLine"> | string
    quantity?: IntWithAggregatesFilter<"PurchaseOrderLine"> | number
    unitPrice?: DecimalWithAggregatesFilter<"PurchaseOrderLine"> | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalWithAggregatesFilter<"PurchaseOrderLine"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringWithAggregatesFilter<"PurchaseOrderLine"> | string
    defaultUsageType?: EnumRobotUsageTypeNullableWithAggregatesFilter<"PurchaseOrderLine"> | $Enums.RobotUsageType | null
    placeholderPattern?: StringNullableWithAggregatesFilter<"PurchaseOrderLine"> | string | null
    expectedAt?: DateTimeNullableWithAggregatesFilter<"PurchaseOrderLine"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"PurchaseOrderLine"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PurchaseOrderLine"> | Date | string
  }

  export type SalesOrderWhereInput = {
    AND?: SalesOrderWhereInput | SalesOrderWhereInput[]
    OR?: SalesOrderWhereInput[]
    NOT?: SalesOrderWhereInput | SalesOrderWhereInput[]
    id?: UuidFilter<"SalesOrder"> | string
    soNo?: StringFilter<"SalesOrder"> | string
    d365SoId?: StringNullableFilter<"SalesOrder"> | string | null
    customerId?: UuidFilter<"SalesOrder"> | string
    salesPersonId?: UuidNullableFilter<"SalesOrder"> | string | null
    mentorId?: UuidNullableFilter<"SalesOrder"> | string | null
    menteeId?: UuidNullableFilter<"SalesOrder"> | string | null
    currencyCode?: StringFilter<"SalesOrder"> | string
    totalAmount?: DecimalFilter<"SalesOrder"> | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFilter<"SalesOrder"> | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFilter<"SalesOrder"> | $Enums.SalesOrderStatus
    signedAt?: DateTimeNullableFilter<"SalesOrder"> | Date | string | null
    closedAt?: DateTimeNullableFilter<"SalesOrder"> | Date | string | null
    notes?: StringNullableFilter<"SalesOrder"> | string | null
    version?: IntFilter<"SalesOrder"> | number
    organizationId?: UuidFilter<"SalesOrder"> | string
    createdAt?: DateTimeFilter<"SalesOrder"> | Date | string
    updatedAt?: DateTimeFilter<"SalesOrder"> | Date | string
    createdById?: UuidFilter<"SalesOrder"> | string
    deletedAt?: DateTimeNullableFilter<"SalesOrder"> | Date | string | null
    lines?: SalesOrderLineListRelationFilter
    deliveryRequests?: DeliveryRequestListRelationFilter
    snapshotRefs?: RobotUnitSnapshotListRelationFilter
  }

  export type SalesOrderOrderByWithRelationInput = {
    id?: SortOrder
    soNo?: SortOrder
    d365SoId?: SortOrderInput | SortOrder
    customerId?: SortOrder
    salesPersonId?: SortOrderInput | SortOrder
    mentorId?: SortOrderInput | SortOrder
    menteeId?: SortOrderInput | SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    contractStatus?: SortOrder
    status?: SortOrder
    signedAt?: SortOrderInput | SortOrder
    closedAt?: SortOrderInput | SortOrder
    notes?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    lines?: SalesOrderLineOrderByRelationAggregateInput
    deliveryRequests?: DeliveryRequestOrderByRelationAggregateInput
    snapshotRefs?: RobotUnitSnapshotOrderByRelationAggregateInput
  }

  export type SalesOrderWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    soNo?: string
    d365SoId?: string
    AND?: SalesOrderWhereInput | SalesOrderWhereInput[]
    OR?: SalesOrderWhereInput[]
    NOT?: SalesOrderWhereInput | SalesOrderWhereInput[]
    customerId?: UuidFilter<"SalesOrder"> | string
    salesPersonId?: UuidNullableFilter<"SalesOrder"> | string | null
    mentorId?: UuidNullableFilter<"SalesOrder"> | string | null
    menteeId?: UuidNullableFilter<"SalesOrder"> | string | null
    currencyCode?: StringFilter<"SalesOrder"> | string
    totalAmount?: DecimalFilter<"SalesOrder"> | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFilter<"SalesOrder"> | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFilter<"SalesOrder"> | $Enums.SalesOrderStatus
    signedAt?: DateTimeNullableFilter<"SalesOrder"> | Date | string | null
    closedAt?: DateTimeNullableFilter<"SalesOrder"> | Date | string | null
    notes?: StringNullableFilter<"SalesOrder"> | string | null
    version?: IntFilter<"SalesOrder"> | number
    organizationId?: UuidFilter<"SalesOrder"> | string
    createdAt?: DateTimeFilter<"SalesOrder"> | Date | string
    updatedAt?: DateTimeFilter<"SalesOrder"> | Date | string
    createdById?: UuidFilter<"SalesOrder"> | string
    deletedAt?: DateTimeNullableFilter<"SalesOrder"> | Date | string | null
    lines?: SalesOrderLineListRelationFilter
    deliveryRequests?: DeliveryRequestListRelationFilter
    snapshotRefs?: RobotUnitSnapshotListRelationFilter
  }, "id" | "soNo" | "d365SoId">

  export type SalesOrderOrderByWithAggregationInput = {
    id?: SortOrder
    soNo?: SortOrder
    d365SoId?: SortOrderInput | SortOrder
    customerId?: SortOrder
    salesPersonId?: SortOrderInput | SortOrder
    mentorId?: SortOrderInput | SortOrder
    menteeId?: SortOrderInput | SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    contractStatus?: SortOrder
    status?: SortOrder
    signedAt?: SortOrderInput | SortOrder
    closedAt?: SortOrderInput | SortOrder
    notes?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: SalesOrderCountOrderByAggregateInput
    _avg?: SalesOrderAvgOrderByAggregateInput
    _max?: SalesOrderMaxOrderByAggregateInput
    _min?: SalesOrderMinOrderByAggregateInput
    _sum?: SalesOrderSumOrderByAggregateInput
  }

  export type SalesOrderScalarWhereWithAggregatesInput = {
    AND?: SalesOrderScalarWhereWithAggregatesInput | SalesOrderScalarWhereWithAggregatesInput[]
    OR?: SalesOrderScalarWhereWithAggregatesInput[]
    NOT?: SalesOrderScalarWhereWithAggregatesInput | SalesOrderScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SalesOrder"> | string
    soNo?: StringWithAggregatesFilter<"SalesOrder"> | string
    d365SoId?: StringNullableWithAggregatesFilter<"SalesOrder"> | string | null
    customerId?: UuidWithAggregatesFilter<"SalesOrder"> | string
    salesPersonId?: UuidNullableWithAggregatesFilter<"SalesOrder"> | string | null
    mentorId?: UuidNullableWithAggregatesFilter<"SalesOrder"> | string | null
    menteeId?: UuidNullableWithAggregatesFilter<"SalesOrder"> | string | null
    currencyCode?: StringWithAggregatesFilter<"SalesOrder"> | string
    totalAmount?: DecimalWithAggregatesFilter<"SalesOrder"> | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusWithAggregatesFilter<"SalesOrder"> | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusWithAggregatesFilter<"SalesOrder"> | $Enums.SalesOrderStatus
    signedAt?: DateTimeNullableWithAggregatesFilter<"SalesOrder"> | Date | string | null
    closedAt?: DateTimeNullableWithAggregatesFilter<"SalesOrder"> | Date | string | null
    notes?: StringNullableWithAggregatesFilter<"SalesOrder"> | string | null
    version?: IntWithAggregatesFilter<"SalesOrder"> | number
    organizationId?: UuidWithAggregatesFilter<"SalesOrder"> | string
    createdAt?: DateTimeWithAggregatesFilter<"SalesOrder"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SalesOrder"> | Date | string
    createdById?: UuidWithAggregatesFilter<"SalesOrder"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"SalesOrder"> | Date | string | null
  }

  export type SalesOrderLineWhereInput = {
    AND?: SalesOrderLineWhereInput | SalesOrderLineWhereInput[]
    OR?: SalesOrderLineWhereInput[]
    NOT?: SalesOrderLineWhereInput | SalesOrderLineWhereInput[]
    id?: UuidFilter<"SalesOrderLine"> | string
    salesOrderId?: UuidFilter<"SalesOrderLine"> | string
    lineNo?: IntFilter<"SalesOrderLine"> | number
    robotUnitId?: UuidNullableFilter<"SalesOrderLine"> | string | null
    lineType?: EnumSalesLineTypeFilter<"SalesOrderLine"> | $Enums.SalesLineType
    unitPrice?: DecimalFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string
    discount?: DecimalNullableFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"SalesOrderLine"> | string
    expectedDeliveryDate?: DateTimeNullableFilter<"SalesOrderLine"> | Date | string | null
    createdAt?: DateTimeFilter<"SalesOrderLine"> | Date | string
    updatedAt?: DateTimeFilter<"SalesOrderLine"> | Date | string
    salesOrder?: XOR<SalesOrderScalarRelationFilter, SalesOrderWhereInput>
    robotUnit?: XOR<RobotUnitNullableScalarRelationFilter, RobotUnitWhereInput> | null
  }

  export type SalesOrderLineOrderByWithRelationInput = {
    id?: SortOrder
    salesOrderId?: SortOrder
    lineNo?: SortOrder
    robotUnitId?: SortOrderInput | SortOrder
    lineType?: SortOrder
    unitPrice?: SortOrder
    discount?: SortOrderInput | SortOrder
    netAmount?: SortOrder
    currencyCode?: SortOrder
    expectedDeliveryDate?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    salesOrder?: SalesOrderOrderByWithRelationInput
    robotUnit?: RobotUnitOrderByWithRelationInput
  }

  export type SalesOrderLineWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    salesOrderId_lineNo?: SalesOrderLineSalesOrderIdLineNoCompoundUniqueInput
    AND?: SalesOrderLineWhereInput | SalesOrderLineWhereInput[]
    OR?: SalesOrderLineWhereInput[]
    NOT?: SalesOrderLineWhereInput | SalesOrderLineWhereInput[]
    salesOrderId?: UuidFilter<"SalesOrderLine"> | string
    lineNo?: IntFilter<"SalesOrderLine"> | number
    robotUnitId?: UuidNullableFilter<"SalesOrderLine"> | string | null
    lineType?: EnumSalesLineTypeFilter<"SalesOrderLine"> | $Enums.SalesLineType
    unitPrice?: DecimalFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string
    discount?: DecimalNullableFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"SalesOrderLine"> | string
    expectedDeliveryDate?: DateTimeNullableFilter<"SalesOrderLine"> | Date | string | null
    createdAt?: DateTimeFilter<"SalesOrderLine"> | Date | string
    updatedAt?: DateTimeFilter<"SalesOrderLine"> | Date | string
    salesOrder?: XOR<SalesOrderScalarRelationFilter, SalesOrderWhereInput>
    robotUnit?: XOR<RobotUnitNullableScalarRelationFilter, RobotUnitWhereInput> | null
  }, "id" | "salesOrderId_lineNo">

  export type SalesOrderLineOrderByWithAggregationInput = {
    id?: SortOrder
    salesOrderId?: SortOrder
    lineNo?: SortOrder
    robotUnitId?: SortOrderInput | SortOrder
    lineType?: SortOrder
    unitPrice?: SortOrder
    discount?: SortOrderInput | SortOrder
    netAmount?: SortOrder
    currencyCode?: SortOrder
    expectedDeliveryDate?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: SalesOrderLineCountOrderByAggregateInput
    _avg?: SalesOrderLineAvgOrderByAggregateInput
    _max?: SalesOrderLineMaxOrderByAggregateInput
    _min?: SalesOrderLineMinOrderByAggregateInput
    _sum?: SalesOrderLineSumOrderByAggregateInput
  }

  export type SalesOrderLineScalarWhereWithAggregatesInput = {
    AND?: SalesOrderLineScalarWhereWithAggregatesInput | SalesOrderLineScalarWhereWithAggregatesInput[]
    OR?: SalesOrderLineScalarWhereWithAggregatesInput[]
    NOT?: SalesOrderLineScalarWhereWithAggregatesInput | SalesOrderLineScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"SalesOrderLine"> | string
    salesOrderId?: UuidWithAggregatesFilter<"SalesOrderLine"> | string
    lineNo?: IntWithAggregatesFilter<"SalesOrderLine"> | number
    robotUnitId?: UuidNullableWithAggregatesFilter<"SalesOrderLine"> | string | null
    lineType?: EnumSalesLineTypeWithAggregatesFilter<"SalesOrderLine"> | $Enums.SalesLineType
    unitPrice?: DecimalWithAggregatesFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string
    discount?: DecimalNullableWithAggregatesFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalWithAggregatesFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringWithAggregatesFilter<"SalesOrderLine"> | string
    expectedDeliveryDate?: DateTimeNullableWithAggregatesFilter<"SalesOrderLine"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"SalesOrderLine"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"SalesOrderLine"> | Date | string
  }

  export type DeliveryRequestWhereInput = {
    AND?: DeliveryRequestWhereInput | DeliveryRequestWhereInput[]
    OR?: DeliveryRequestWhereInput[]
    NOT?: DeliveryRequestWhereInput | DeliveryRequestWhereInput[]
    id?: UuidFilter<"DeliveryRequest"> | string
    deliveryNo?: StringFilter<"DeliveryRequest"> | string
    salesOrderId?: UuidFilter<"DeliveryRequest"> | string
    customerId?: UuidFilter<"DeliveryRequest"> | string
    requestType?: EnumDeliveryRequestTypeFilter<"DeliveryRequest"> | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFilter<"DeliveryRequest"> | Date | string
    status?: EnumDeliveryRequestStatusFilter<"DeliveryRequest"> | $Enums.DeliveryRequestStatus
    notes?: StringNullableFilter<"DeliveryRequest"> | string | null
    organizationId?: UuidFilter<"DeliveryRequest"> | string
    createdAt?: DateTimeFilter<"DeliveryRequest"> | Date | string
    updatedAt?: DateTimeFilter<"DeliveryRequest"> | Date | string
    createdById?: UuidFilter<"DeliveryRequest"> | string
    deletedAt?: DateTimeNullableFilter<"DeliveryRequest"> | Date | string | null
    salesOrder?: XOR<SalesOrderScalarRelationFilter, SalesOrderWhereInput>
    fulfillments?: DeliveryFulfillmentListRelationFilter
    snapshotRefs?: RobotUnitSnapshotListRelationFilter
  }

  export type DeliveryRequestOrderByWithRelationInput = {
    id?: SortOrder
    deliveryNo?: SortOrder
    salesOrderId?: SortOrder
    customerId?: SortOrder
    requestType?: SortOrder
    expectedDate?: SortOrder
    status?: SortOrder
    notes?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    salesOrder?: SalesOrderOrderByWithRelationInput
    fulfillments?: DeliveryFulfillmentOrderByRelationAggregateInput
    snapshotRefs?: RobotUnitSnapshotOrderByRelationAggregateInput
  }

  export type DeliveryRequestWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    deliveryNo?: string
    AND?: DeliveryRequestWhereInput | DeliveryRequestWhereInput[]
    OR?: DeliveryRequestWhereInput[]
    NOT?: DeliveryRequestWhereInput | DeliveryRequestWhereInput[]
    salesOrderId?: UuidFilter<"DeliveryRequest"> | string
    customerId?: UuidFilter<"DeliveryRequest"> | string
    requestType?: EnumDeliveryRequestTypeFilter<"DeliveryRequest"> | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFilter<"DeliveryRequest"> | Date | string
    status?: EnumDeliveryRequestStatusFilter<"DeliveryRequest"> | $Enums.DeliveryRequestStatus
    notes?: StringNullableFilter<"DeliveryRequest"> | string | null
    organizationId?: UuidFilter<"DeliveryRequest"> | string
    createdAt?: DateTimeFilter<"DeliveryRequest"> | Date | string
    updatedAt?: DateTimeFilter<"DeliveryRequest"> | Date | string
    createdById?: UuidFilter<"DeliveryRequest"> | string
    deletedAt?: DateTimeNullableFilter<"DeliveryRequest"> | Date | string | null
    salesOrder?: XOR<SalesOrderScalarRelationFilter, SalesOrderWhereInput>
    fulfillments?: DeliveryFulfillmentListRelationFilter
    snapshotRefs?: RobotUnitSnapshotListRelationFilter
  }, "id" | "deliveryNo">

  export type DeliveryRequestOrderByWithAggregationInput = {
    id?: SortOrder
    deliveryNo?: SortOrder
    salesOrderId?: SortOrder
    customerId?: SortOrder
    requestType?: SortOrder
    expectedDate?: SortOrder
    status?: SortOrder
    notes?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: DeliveryRequestCountOrderByAggregateInput
    _max?: DeliveryRequestMaxOrderByAggregateInput
    _min?: DeliveryRequestMinOrderByAggregateInput
  }

  export type DeliveryRequestScalarWhereWithAggregatesInput = {
    AND?: DeliveryRequestScalarWhereWithAggregatesInput | DeliveryRequestScalarWhereWithAggregatesInput[]
    OR?: DeliveryRequestScalarWhereWithAggregatesInput[]
    NOT?: DeliveryRequestScalarWhereWithAggregatesInput | DeliveryRequestScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DeliveryRequest"> | string
    deliveryNo?: StringWithAggregatesFilter<"DeliveryRequest"> | string
    salesOrderId?: UuidWithAggregatesFilter<"DeliveryRequest"> | string
    customerId?: UuidWithAggregatesFilter<"DeliveryRequest"> | string
    requestType?: EnumDeliveryRequestTypeWithAggregatesFilter<"DeliveryRequest"> | $Enums.DeliveryRequestType
    expectedDate?: DateTimeWithAggregatesFilter<"DeliveryRequest"> | Date | string
    status?: EnumDeliveryRequestStatusWithAggregatesFilter<"DeliveryRequest"> | $Enums.DeliveryRequestStatus
    notes?: StringNullableWithAggregatesFilter<"DeliveryRequest"> | string | null
    organizationId?: UuidWithAggregatesFilter<"DeliveryRequest"> | string
    createdAt?: DateTimeWithAggregatesFilter<"DeliveryRequest"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DeliveryRequest"> | Date | string
    createdById?: UuidWithAggregatesFilter<"DeliveryRequest"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"DeliveryRequest"> | Date | string | null
  }

  export type DeliveryFulfillmentWhereInput = {
    AND?: DeliveryFulfillmentWhereInput | DeliveryFulfillmentWhereInput[]
    OR?: DeliveryFulfillmentWhereInput[]
    NOT?: DeliveryFulfillmentWhereInput | DeliveryFulfillmentWhereInput[]
    id?: UuidFilter<"DeliveryFulfillment"> | string
    deliveryRequestId?: UuidFilter<"DeliveryFulfillment"> | string
    robotUnitId?: UuidFilter<"DeliveryFulfillment"> | string
    sapPgiDocNo?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    deliveredAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    signedAt?: DateTimeNullableFilter<"DeliveryFulfillment"> | Date | string | null
    signedFormStatus?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: UuidNullableFilter<"DeliveryFulfillment"> | string | null
    notePreDel?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    additionalShippingNotes?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    cost?: DecimalNullableFilter<"DeliveryFulfillment"> | Decimal | DecimalJsLike | number | string | null
    grossMargin?: DecimalNullableFilter<"DeliveryFulfillment"> | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: EnumRevenueRecognitionStatusNullableFilter<"DeliveryFulfillment"> | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: EnumInvoiceStatusNullableFilter<"DeliveryFulfillment"> | $Enums.InvoiceStatus | null
    version?: IntFilter<"DeliveryFulfillment"> | number
    organizationId?: UuidFilter<"DeliveryFulfillment"> | string
    createdAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    updatedAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    createdById?: UuidFilter<"DeliveryFulfillment"> | string
    deletedAt?: DateTimeNullableFilter<"DeliveryFulfillment"> | Date | string | null
    deliveryRequest?: XOR<DeliveryRequestScalarRelationFilter, DeliveryRequestWhereInput>
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }

  export type DeliveryFulfillmentOrderByWithRelationInput = {
    id?: SortOrder
    deliveryRequestId?: SortOrder
    robotUnitId?: SortOrder
    sapPgiDocNo?: SortOrderInput | SortOrder
    deliveredAt?: SortOrder
    signedAt?: SortOrderInput | SortOrder
    signedFormStatus?: SortOrderInput | SortOrder
    acceptanceFormStatus?: SortOrderInput | SortOrder
    acceptanceFormPreDel?: SortOrderInput | SortOrder
    acceptanceFormAttachmentId?: SortOrderInput | SortOrder
    notePreDel?: SortOrderInput | SortOrder
    additionalShippingNotes?: SortOrderInput | SortOrder
    cost?: SortOrderInput | SortOrder
    grossMargin?: SortOrderInput | SortOrder
    revenueRecognition?: SortOrderInput | SortOrder
    invoiceStatus?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    deliveryRequest?: DeliveryRequestOrderByWithRelationInput
    robotUnit?: RobotUnitOrderByWithRelationInput
  }

  export type DeliveryFulfillmentWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: DeliveryFulfillmentWhereInput | DeliveryFulfillmentWhereInput[]
    OR?: DeliveryFulfillmentWhereInput[]
    NOT?: DeliveryFulfillmentWhereInput | DeliveryFulfillmentWhereInput[]
    deliveryRequestId?: UuidFilter<"DeliveryFulfillment"> | string
    robotUnitId?: UuidFilter<"DeliveryFulfillment"> | string
    sapPgiDocNo?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    deliveredAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    signedAt?: DateTimeNullableFilter<"DeliveryFulfillment"> | Date | string | null
    signedFormStatus?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: UuidNullableFilter<"DeliveryFulfillment"> | string | null
    notePreDel?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    additionalShippingNotes?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    cost?: DecimalNullableFilter<"DeliveryFulfillment"> | Decimal | DecimalJsLike | number | string | null
    grossMargin?: DecimalNullableFilter<"DeliveryFulfillment"> | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: EnumRevenueRecognitionStatusNullableFilter<"DeliveryFulfillment"> | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: EnumInvoiceStatusNullableFilter<"DeliveryFulfillment"> | $Enums.InvoiceStatus | null
    version?: IntFilter<"DeliveryFulfillment"> | number
    organizationId?: UuidFilter<"DeliveryFulfillment"> | string
    createdAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    updatedAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    createdById?: UuidFilter<"DeliveryFulfillment"> | string
    deletedAt?: DateTimeNullableFilter<"DeliveryFulfillment"> | Date | string | null
    deliveryRequest?: XOR<DeliveryRequestScalarRelationFilter, DeliveryRequestWhereInput>
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }, "id">

  export type DeliveryFulfillmentOrderByWithAggregationInput = {
    id?: SortOrder
    deliveryRequestId?: SortOrder
    robotUnitId?: SortOrder
    sapPgiDocNo?: SortOrderInput | SortOrder
    deliveredAt?: SortOrder
    signedAt?: SortOrderInput | SortOrder
    signedFormStatus?: SortOrderInput | SortOrder
    acceptanceFormStatus?: SortOrderInput | SortOrder
    acceptanceFormPreDel?: SortOrderInput | SortOrder
    acceptanceFormAttachmentId?: SortOrderInput | SortOrder
    notePreDel?: SortOrderInput | SortOrder
    additionalShippingNotes?: SortOrderInput | SortOrder
    cost?: SortOrderInput | SortOrder
    grossMargin?: SortOrderInput | SortOrder
    revenueRecognition?: SortOrderInput | SortOrder
    invoiceStatus?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: DeliveryFulfillmentCountOrderByAggregateInput
    _avg?: DeliveryFulfillmentAvgOrderByAggregateInput
    _max?: DeliveryFulfillmentMaxOrderByAggregateInput
    _min?: DeliveryFulfillmentMinOrderByAggregateInput
    _sum?: DeliveryFulfillmentSumOrderByAggregateInput
  }

  export type DeliveryFulfillmentScalarWhereWithAggregatesInput = {
    AND?: DeliveryFulfillmentScalarWhereWithAggregatesInput | DeliveryFulfillmentScalarWhereWithAggregatesInput[]
    OR?: DeliveryFulfillmentScalarWhereWithAggregatesInput[]
    NOT?: DeliveryFulfillmentScalarWhereWithAggregatesInput | DeliveryFulfillmentScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"DeliveryFulfillment"> | string
    deliveryRequestId?: UuidWithAggregatesFilter<"DeliveryFulfillment"> | string
    robotUnitId?: UuidWithAggregatesFilter<"DeliveryFulfillment"> | string
    sapPgiDocNo?: StringNullableWithAggregatesFilter<"DeliveryFulfillment"> | string | null
    deliveredAt?: DateTimeWithAggregatesFilter<"DeliveryFulfillment"> | Date | string
    signedAt?: DateTimeNullableWithAggregatesFilter<"DeliveryFulfillment"> | Date | string | null
    signedFormStatus?: EnumDeliveryFormStatusNullableWithAggregatesFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: EnumDeliveryFormStatusNullableWithAggregatesFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: EnumDeliveryFormStatusNullableWithAggregatesFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: UuidNullableWithAggregatesFilter<"DeliveryFulfillment"> | string | null
    notePreDel?: StringNullableWithAggregatesFilter<"DeliveryFulfillment"> | string | null
    additionalShippingNotes?: StringNullableWithAggregatesFilter<"DeliveryFulfillment"> | string | null
    cost?: DecimalNullableWithAggregatesFilter<"DeliveryFulfillment"> | Decimal | DecimalJsLike | number | string | null
    grossMargin?: DecimalNullableWithAggregatesFilter<"DeliveryFulfillment"> | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: EnumRevenueRecognitionStatusNullableWithAggregatesFilter<"DeliveryFulfillment"> | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: EnumInvoiceStatusNullableWithAggregatesFilter<"DeliveryFulfillment"> | $Enums.InvoiceStatus | null
    version?: IntWithAggregatesFilter<"DeliveryFulfillment"> | number
    organizationId?: UuidWithAggregatesFilter<"DeliveryFulfillment"> | string
    createdAt?: DateTimeWithAggregatesFilter<"DeliveryFulfillment"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"DeliveryFulfillment"> | Date | string
    createdById?: UuidWithAggregatesFilter<"DeliveryFulfillment"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"DeliveryFulfillment"> | Date | string | null
  }

  export type PaymentRecordWhereInput = {
    AND?: PaymentRecordWhereInput | PaymentRecordWhereInput[]
    OR?: PaymentRecordWhereInput[]
    NOT?: PaymentRecordWhereInput | PaymentRecordWhereInput[]
    id?: UuidFilter<"PaymentRecord"> | string
    paymentNo?: StringFilter<"PaymentRecord"> | string
    relatedType?: EnumPaymentRelatedTypeFilter<"PaymentRecord"> | $Enums.PaymentRelatedType
    relatedId?: UuidFilter<"PaymentRecord"> | string
    robotUnitId?: UuidNullableFilter<"PaymentRecord"> | string | null
    direction?: EnumPaymentDirectionFilter<"PaymentRecord"> | $Enums.PaymentDirection
    sapClearingDocNo?: StringNullableFilter<"PaymentRecord"> | string | null
    paymentMethod?: EnumPaymentMethodNullableFilter<"PaymentRecord"> | $Enums.PaymentMethod | null
    paymentStatus?: EnumPaymentStatusNullableFilter<"PaymentRecord"> | $Enums.PaymentStatus | null
    preDelContractStatus?: EnumPreDelContractStatusNullableFilter<"PaymentRecord"> | $Enums.PreDelContractStatus | null
    amount?: DecimalFilter<"PaymentRecord"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"PaymentRecord"> | string
    paidAt?: DateTimeNullableFilter<"PaymentRecord"> | Date | string | null
    depositTransferFormAttachmentId?: UuidNullableFilter<"PaymentRecord"> | string | null
    depositTransferContractAttachmentId?: UuidNullableFilter<"PaymentRecord"> | string | null
    version?: IntFilter<"PaymentRecord"> | number
    organizationId?: UuidFilter<"PaymentRecord"> | string
    createdAt?: DateTimeFilter<"PaymentRecord"> | Date | string
    updatedAt?: DateTimeFilter<"PaymentRecord"> | Date | string
    createdById?: UuidFilter<"PaymentRecord"> | string
    deletedAt?: DateTimeNullableFilter<"PaymentRecord"> | Date | string | null
    robotUnit?: XOR<RobotUnitNullableScalarRelationFilter, RobotUnitWhereInput> | null
    rentalScheduleEntries?: RentalPaymentScheduleListRelationFilter
  }

  export type PaymentRecordOrderByWithRelationInput = {
    id?: SortOrder
    paymentNo?: SortOrder
    relatedType?: SortOrder
    relatedId?: SortOrder
    robotUnitId?: SortOrderInput | SortOrder
    direction?: SortOrder
    sapClearingDocNo?: SortOrderInput | SortOrder
    paymentMethod?: SortOrderInput | SortOrder
    paymentStatus?: SortOrderInput | SortOrder
    preDelContractStatus?: SortOrderInput | SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidAt?: SortOrderInput | SortOrder
    depositTransferFormAttachmentId?: SortOrderInput | SortOrder
    depositTransferContractAttachmentId?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
    rentalScheduleEntries?: RentalPaymentScheduleOrderByRelationAggregateInput
  }

  export type PaymentRecordWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    paymentNo?: string
    AND?: PaymentRecordWhereInput | PaymentRecordWhereInput[]
    OR?: PaymentRecordWhereInput[]
    NOT?: PaymentRecordWhereInput | PaymentRecordWhereInput[]
    relatedType?: EnumPaymentRelatedTypeFilter<"PaymentRecord"> | $Enums.PaymentRelatedType
    relatedId?: UuidFilter<"PaymentRecord"> | string
    robotUnitId?: UuidNullableFilter<"PaymentRecord"> | string | null
    direction?: EnumPaymentDirectionFilter<"PaymentRecord"> | $Enums.PaymentDirection
    sapClearingDocNo?: StringNullableFilter<"PaymentRecord"> | string | null
    paymentMethod?: EnumPaymentMethodNullableFilter<"PaymentRecord"> | $Enums.PaymentMethod | null
    paymentStatus?: EnumPaymentStatusNullableFilter<"PaymentRecord"> | $Enums.PaymentStatus | null
    preDelContractStatus?: EnumPreDelContractStatusNullableFilter<"PaymentRecord"> | $Enums.PreDelContractStatus | null
    amount?: DecimalFilter<"PaymentRecord"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"PaymentRecord"> | string
    paidAt?: DateTimeNullableFilter<"PaymentRecord"> | Date | string | null
    depositTransferFormAttachmentId?: UuidNullableFilter<"PaymentRecord"> | string | null
    depositTransferContractAttachmentId?: UuidNullableFilter<"PaymentRecord"> | string | null
    version?: IntFilter<"PaymentRecord"> | number
    organizationId?: UuidFilter<"PaymentRecord"> | string
    createdAt?: DateTimeFilter<"PaymentRecord"> | Date | string
    updatedAt?: DateTimeFilter<"PaymentRecord"> | Date | string
    createdById?: UuidFilter<"PaymentRecord"> | string
    deletedAt?: DateTimeNullableFilter<"PaymentRecord"> | Date | string | null
    robotUnit?: XOR<RobotUnitNullableScalarRelationFilter, RobotUnitWhereInput> | null
    rentalScheduleEntries?: RentalPaymentScheduleListRelationFilter
  }, "id" | "paymentNo">

  export type PaymentRecordOrderByWithAggregationInput = {
    id?: SortOrder
    paymentNo?: SortOrder
    relatedType?: SortOrder
    relatedId?: SortOrder
    robotUnitId?: SortOrderInput | SortOrder
    direction?: SortOrder
    sapClearingDocNo?: SortOrderInput | SortOrder
    paymentMethod?: SortOrderInput | SortOrder
    paymentStatus?: SortOrderInput | SortOrder
    preDelContractStatus?: SortOrderInput | SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidAt?: SortOrderInput | SortOrder
    depositTransferFormAttachmentId?: SortOrderInput | SortOrder
    depositTransferContractAttachmentId?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: PaymentRecordCountOrderByAggregateInput
    _avg?: PaymentRecordAvgOrderByAggregateInput
    _max?: PaymentRecordMaxOrderByAggregateInput
    _min?: PaymentRecordMinOrderByAggregateInput
    _sum?: PaymentRecordSumOrderByAggregateInput
  }

  export type PaymentRecordScalarWhereWithAggregatesInput = {
    AND?: PaymentRecordScalarWhereWithAggregatesInput | PaymentRecordScalarWhereWithAggregatesInput[]
    OR?: PaymentRecordScalarWhereWithAggregatesInput[]
    NOT?: PaymentRecordScalarWhereWithAggregatesInput | PaymentRecordScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"PaymentRecord"> | string
    paymentNo?: StringWithAggregatesFilter<"PaymentRecord"> | string
    relatedType?: EnumPaymentRelatedTypeWithAggregatesFilter<"PaymentRecord"> | $Enums.PaymentRelatedType
    relatedId?: UuidWithAggregatesFilter<"PaymentRecord"> | string
    robotUnitId?: UuidNullableWithAggregatesFilter<"PaymentRecord"> | string | null
    direction?: EnumPaymentDirectionWithAggregatesFilter<"PaymentRecord"> | $Enums.PaymentDirection
    sapClearingDocNo?: StringNullableWithAggregatesFilter<"PaymentRecord"> | string | null
    paymentMethod?: EnumPaymentMethodNullableWithAggregatesFilter<"PaymentRecord"> | $Enums.PaymentMethod | null
    paymentStatus?: EnumPaymentStatusNullableWithAggregatesFilter<"PaymentRecord"> | $Enums.PaymentStatus | null
    preDelContractStatus?: EnumPreDelContractStatusNullableWithAggregatesFilter<"PaymentRecord"> | $Enums.PreDelContractStatus | null
    amount?: DecimalWithAggregatesFilter<"PaymentRecord"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringWithAggregatesFilter<"PaymentRecord"> | string
    paidAt?: DateTimeNullableWithAggregatesFilter<"PaymentRecord"> | Date | string | null
    depositTransferFormAttachmentId?: UuidNullableWithAggregatesFilter<"PaymentRecord"> | string | null
    depositTransferContractAttachmentId?: UuidNullableWithAggregatesFilter<"PaymentRecord"> | string | null
    version?: IntWithAggregatesFilter<"PaymentRecord"> | number
    organizationId?: UuidWithAggregatesFilter<"PaymentRecord"> | string
    createdAt?: DateTimeWithAggregatesFilter<"PaymentRecord"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"PaymentRecord"> | Date | string
    createdById?: UuidWithAggregatesFilter<"PaymentRecord"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"PaymentRecord"> | Date | string | null
  }

  export type QualityLabelRecordWhereInput = {
    AND?: QualityLabelRecordWhereInput | QualityLabelRecordWhereInput[]
    OR?: QualityLabelRecordWhereInput[]
    NOT?: QualityLabelRecordWhereInput | QualityLabelRecordWhereInput[]
    id?: UuidFilter<"QualityLabelRecord"> | string
    robotUnitId?: UuidFilter<"QualityLabelRecord"> | string
    labelTypeCode?: StringFilter<"QualityLabelRecord"> | string
    status?: EnumQualityLabelStatusFilter<"QualityLabelRecord"> | $Enums.QualityLabelStatus
    appliedAt?: DateTimeNullableFilter<"QualityLabelRecord"> | Date | string | null
    verifiedAt?: DateTimeNullableFilter<"QualityLabelRecord"> | Date | string | null
    appliedById?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    verifiedById?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    photoAttachmentId?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    organizationId?: UuidFilter<"QualityLabelRecord"> | string
    createdAt?: DateTimeFilter<"QualityLabelRecord"> | Date | string
    updatedAt?: DateTimeFilter<"QualityLabelRecord"> | Date | string
    createdById?: UuidFilter<"QualityLabelRecord"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }

  export type QualityLabelRecordOrderByWithRelationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    labelTypeCode?: SortOrder
    status?: SortOrder
    appliedAt?: SortOrderInput | SortOrder
    verifiedAt?: SortOrderInput | SortOrder
    appliedById?: SortOrderInput | SortOrder
    verifiedById?: SortOrderInput | SortOrder
    photoAttachmentId?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
  }

  export type QualityLabelRecordWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    robotUnitId_labelTypeCode?: QualityLabelRecordRobotUnitIdLabelTypeCodeCompoundUniqueInput
    AND?: QualityLabelRecordWhereInput | QualityLabelRecordWhereInput[]
    OR?: QualityLabelRecordWhereInput[]
    NOT?: QualityLabelRecordWhereInput | QualityLabelRecordWhereInput[]
    robotUnitId?: UuidFilter<"QualityLabelRecord"> | string
    labelTypeCode?: StringFilter<"QualityLabelRecord"> | string
    status?: EnumQualityLabelStatusFilter<"QualityLabelRecord"> | $Enums.QualityLabelStatus
    appliedAt?: DateTimeNullableFilter<"QualityLabelRecord"> | Date | string | null
    verifiedAt?: DateTimeNullableFilter<"QualityLabelRecord"> | Date | string | null
    appliedById?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    verifiedById?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    photoAttachmentId?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    organizationId?: UuidFilter<"QualityLabelRecord"> | string
    createdAt?: DateTimeFilter<"QualityLabelRecord"> | Date | string
    updatedAt?: DateTimeFilter<"QualityLabelRecord"> | Date | string
    createdById?: UuidFilter<"QualityLabelRecord"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }, "id" | "robotUnitId_labelTypeCode">

  export type QualityLabelRecordOrderByWithAggregationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    labelTypeCode?: SortOrder
    status?: SortOrder
    appliedAt?: SortOrderInput | SortOrder
    verifiedAt?: SortOrderInput | SortOrder
    appliedById?: SortOrderInput | SortOrder
    verifiedById?: SortOrderInput | SortOrder
    photoAttachmentId?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    _count?: QualityLabelRecordCountOrderByAggregateInput
    _max?: QualityLabelRecordMaxOrderByAggregateInput
    _min?: QualityLabelRecordMinOrderByAggregateInput
  }

  export type QualityLabelRecordScalarWhereWithAggregatesInput = {
    AND?: QualityLabelRecordScalarWhereWithAggregatesInput | QualityLabelRecordScalarWhereWithAggregatesInput[]
    OR?: QualityLabelRecordScalarWhereWithAggregatesInput[]
    NOT?: QualityLabelRecordScalarWhereWithAggregatesInput | QualityLabelRecordScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"QualityLabelRecord"> | string
    robotUnitId?: UuidWithAggregatesFilter<"QualityLabelRecord"> | string
    labelTypeCode?: StringWithAggregatesFilter<"QualityLabelRecord"> | string
    status?: EnumQualityLabelStatusWithAggregatesFilter<"QualityLabelRecord"> | $Enums.QualityLabelStatus
    appliedAt?: DateTimeNullableWithAggregatesFilter<"QualityLabelRecord"> | Date | string | null
    verifiedAt?: DateTimeNullableWithAggregatesFilter<"QualityLabelRecord"> | Date | string | null
    appliedById?: UuidNullableWithAggregatesFilter<"QualityLabelRecord"> | string | null
    verifiedById?: UuidNullableWithAggregatesFilter<"QualityLabelRecord"> | string | null
    photoAttachmentId?: UuidNullableWithAggregatesFilter<"QualityLabelRecord"> | string | null
    organizationId?: UuidWithAggregatesFilter<"QualityLabelRecord"> | string
    createdAt?: DateTimeWithAggregatesFilter<"QualityLabelRecord"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"QualityLabelRecord"> | Date | string
    createdById?: UuidWithAggregatesFilter<"QualityLabelRecord"> | string
  }

  export type RobotPackageReadinessWhereInput = {
    AND?: RobotPackageReadinessWhereInput | RobotPackageReadinessWhereInput[]
    OR?: RobotPackageReadinessWhereInput[]
    NOT?: RobotPackageReadinessWhereInput | RobotPackageReadinessWhereInput[]
    id?: UuidFilter<"RobotPackageReadiness"> | string
    robotUnitId?: UuidFilter<"RobotPackageReadiness"> | string
    specialistId?: UuidNullableFilter<"RobotPackageReadiness"> | string | null
    physicalProductStatus?: EnumRobotPhysicalStatusNullableFilter<"RobotPackageReadiness"> | $Enums.RobotPhysicalStatus | null
    readyAt?: DateTimeNullableFilter<"RobotPackageReadiness"> | Date | string | null
    hasRobot?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasBattery?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasRemote?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasUsaPowerCable?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasCnCableWithAdapter?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasPowerSupply?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasChargingDock?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasFootPads?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasToolsKit?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasPaperwork?: BoolFilter<"RobotPackageReadiness"> | boolean
    completedAt?: DateTimeNullableFilter<"RobotPackageReadiness"> | Date | string | null
    organizationId?: UuidFilter<"RobotPackageReadiness"> | string
    createdAt?: DateTimeFilter<"RobotPackageReadiness"> | Date | string
    updatedAt?: DateTimeFilter<"RobotPackageReadiness"> | Date | string
    createdById?: UuidFilter<"RobotPackageReadiness"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }

  export type RobotPackageReadinessOrderByWithRelationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    specialistId?: SortOrderInput | SortOrder
    physicalProductStatus?: SortOrderInput | SortOrder
    readyAt?: SortOrderInput | SortOrder
    hasRobot?: SortOrder
    hasBattery?: SortOrder
    hasRemote?: SortOrder
    hasUsaPowerCable?: SortOrder
    hasCnCableWithAdapter?: SortOrder
    hasPowerSupply?: SortOrder
    hasChargingDock?: SortOrder
    hasFootPads?: SortOrder
    hasToolsKit?: SortOrder
    hasPaperwork?: SortOrder
    completedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
  }

  export type RobotPackageReadinessWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    robotUnitId?: string
    AND?: RobotPackageReadinessWhereInput | RobotPackageReadinessWhereInput[]
    OR?: RobotPackageReadinessWhereInput[]
    NOT?: RobotPackageReadinessWhereInput | RobotPackageReadinessWhereInput[]
    specialistId?: UuidNullableFilter<"RobotPackageReadiness"> | string | null
    physicalProductStatus?: EnumRobotPhysicalStatusNullableFilter<"RobotPackageReadiness"> | $Enums.RobotPhysicalStatus | null
    readyAt?: DateTimeNullableFilter<"RobotPackageReadiness"> | Date | string | null
    hasRobot?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasBattery?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasRemote?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasUsaPowerCable?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasCnCableWithAdapter?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasPowerSupply?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasChargingDock?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasFootPads?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasToolsKit?: BoolFilter<"RobotPackageReadiness"> | boolean
    hasPaperwork?: BoolFilter<"RobotPackageReadiness"> | boolean
    completedAt?: DateTimeNullableFilter<"RobotPackageReadiness"> | Date | string | null
    organizationId?: UuidFilter<"RobotPackageReadiness"> | string
    createdAt?: DateTimeFilter<"RobotPackageReadiness"> | Date | string
    updatedAt?: DateTimeFilter<"RobotPackageReadiness"> | Date | string
    createdById?: UuidFilter<"RobotPackageReadiness"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }, "id" | "robotUnitId">

  export type RobotPackageReadinessOrderByWithAggregationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    specialistId?: SortOrderInput | SortOrder
    physicalProductStatus?: SortOrderInput | SortOrder
    readyAt?: SortOrderInput | SortOrder
    hasRobot?: SortOrder
    hasBattery?: SortOrder
    hasRemote?: SortOrder
    hasUsaPowerCable?: SortOrder
    hasCnCableWithAdapter?: SortOrder
    hasPowerSupply?: SortOrder
    hasChargingDock?: SortOrder
    hasFootPads?: SortOrder
    hasToolsKit?: SortOrder
    hasPaperwork?: SortOrder
    completedAt?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    _count?: RobotPackageReadinessCountOrderByAggregateInput
    _max?: RobotPackageReadinessMaxOrderByAggregateInput
    _min?: RobotPackageReadinessMinOrderByAggregateInput
  }

  export type RobotPackageReadinessScalarWhereWithAggregatesInput = {
    AND?: RobotPackageReadinessScalarWhereWithAggregatesInput | RobotPackageReadinessScalarWhereWithAggregatesInput[]
    OR?: RobotPackageReadinessScalarWhereWithAggregatesInput[]
    NOT?: RobotPackageReadinessScalarWhereWithAggregatesInput | RobotPackageReadinessScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RobotPackageReadiness"> | string
    robotUnitId?: UuidWithAggregatesFilter<"RobotPackageReadiness"> | string
    specialistId?: UuidNullableWithAggregatesFilter<"RobotPackageReadiness"> | string | null
    physicalProductStatus?: EnumRobotPhysicalStatusNullableWithAggregatesFilter<"RobotPackageReadiness"> | $Enums.RobotPhysicalStatus | null
    readyAt?: DateTimeNullableWithAggregatesFilter<"RobotPackageReadiness"> | Date | string | null
    hasRobot?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasBattery?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasRemote?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasUsaPowerCable?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasCnCableWithAdapter?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasPowerSupply?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasChargingDock?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasFootPads?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasToolsKit?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    hasPaperwork?: BoolWithAggregatesFilter<"RobotPackageReadiness"> | boolean
    completedAt?: DateTimeNullableWithAggregatesFilter<"RobotPackageReadiness"> | Date | string | null
    organizationId?: UuidWithAggregatesFilter<"RobotPackageReadiness"> | string
    createdAt?: DateTimeWithAggregatesFilter<"RobotPackageReadiness"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RobotPackageReadiness"> | Date | string
    createdById?: UuidWithAggregatesFilter<"RobotPackageReadiness"> | string
  }

  export type InspectionRecordWhereInput = {
    AND?: InspectionRecordWhereInput | InspectionRecordWhereInput[]
    OR?: InspectionRecordWhereInput[]
    NOT?: InspectionRecordWhereInput | InspectionRecordWhereInput[]
    id?: UuidFilter<"InspectionRecord"> | string
    robotUnitId?: UuidFilter<"InspectionRecord"> | string
    inspectionNo?: IntFilter<"InspectionRecord"> | number
    inspectedAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    inspectorId?: UuidNullableFilter<"InspectionRecord"> | string | null
    issue?: StringNullableFilter<"InspectionRecord"> | string | null
    issueTagCode?: StringNullableFilter<"InspectionRecord"> | string | null
    resolvedAt?: DateTimeNullableFilter<"InspectionRecord"> | Date | string | null
    resolvedById?: UuidNullableFilter<"InspectionRecord"> | string | null
    organizationId?: UuidFilter<"InspectionRecord"> | string
    createdAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    updatedAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    createdById?: UuidFilter<"InspectionRecord"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }

  export type InspectionRecordOrderByWithRelationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    inspectionNo?: SortOrder
    inspectedAt?: SortOrder
    inspectorId?: SortOrderInput | SortOrder
    issue?: SortOrderInput | SortOrder
    issueTagCode?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    resolvedById?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
  }

  export type InspectionRecordWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    robotUnitId_inspectionNo?: InspectionRecordRobotUnitIdInspectionNoCompoundUniqueInput
    AND?: InspectionRecordWhereInput | InspectionRecordWhereInput[]
    OR?: InspectionRecordWhereInput[]
    NOT?: InspectionRecordWhereInput | InspectionRecordWhereInput[]
    robotUnitId?: UuidFilter<"InspectionRecord"> | string
    inspectionNo?: IntFilter<"InspectionRecord"> | number
    inspectedAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    inspectorId?: UuidNullableFilter<"InspectionRecord"> | string | null
    issue?: StringNullableFilter<"InspectionRecord"> | string | null
    issueTagCode?: StringNullableFilter<"InspectionRecord"> | string | null
    resolvedAt?: DateTimeNullableFilter<"InspectionRecord"> | Date | string | null
    resolvedById?: UuidNullableFilter<"InspectionRecord"> | string | null
    organizationId?: UuidFilter<"InspectionRecord"> | string
    createdAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    updatedAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    createdById?: UuidFilter<"InspectionRecord"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }, "id" | "robotUnitId_inspectionNo">

  export type InspectionRecordOrderByWithAggregationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    inspectionNo?: SortOrder
    inspectedAt?: SortOrder
    inspectorId?: SortOrderInput | SortOrder
    issue?: SortOrderInput | SortOrder
    issueTagCode?: SortOrderInput | SortOrder
    resolvedAt?: SortOrderInput | SortOrder
    resolvedById?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    _count?: InspectionRecordCountOrderByAggregateInput
    _avg?: InspectionRecordAvgOrderByAggregateInput
    _max?: InspectionRecordMaxOrderByAggregateInput
    _min?: InspectionRecordMinOrderByAggregateInput
    _sum?: InspectionRecordSumOrderByAggregateInput
  }

  export type InspectionRecordScalarWhereWithAggregatesInput = {
    AND?: InspectionRecordScalarWhereWithAggregatesInput | InspectionRecordScalarWhereWithAggregatesInput[]
    OR?: InspectionRecordScalarWhereWithAggregatesInput[]
    NOT?: InspectionRecordScalarWhereWithAggregatesInput | InspectionRecordScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"InspectionRecord"> | string
    robotUnitId?: UuidWithAggregatesFilter<"InspectionRecord"> | string
    inspectionNo?: IntWithAggregatesFilter<"InspectionRecord"> | number
    inspectedAt?: DateTimeWithAggregatesFilter<"InspectionRecord"> | Date | string
    inspectorId?: UuidNullableWithAggregatesFilter<"InspectionRecord"> | string | null
    issue?: StringNullableWithAggregatesFilter<"InspectionRecord"> | string | null
    issueTagCode?: StringNullableWithAggregatesFilter<"InspectionRecord"> | string | null
    resolvedAt?: DateTimeNullableWithAggregatesFilter<"InspectionRecord"> | Date | string | null
    resolvedById?: UuidNullableWithAggregatesFilter<"InspectionRecord"> | string | null
    organizationId?: UuidWithAggregatesFilter<"InspectionRecord"> | string
    createdAt?: DateTimeWithAggregatesFilter<"InspectionRecord"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"InspectionRecord"> | Date | string
    createdById?: UuidWithAggregatesFilter<"InspectionRecord"> | string
  }

  export type LogisticsLegWhereInput = {
    AND?: LogisticsLegWhereInput | LogisticsLegWhereInput[]
    OR?: LogisticsLegWhereInput[]
    NOT?: LogisticsLegWhereInput | LogisticsLegWhereInput[]
    id?: UuidFilter<"LogisticsLeg"> | string
    robotUnitId?: UuidFilter<"LogisticsLeg"> | string
    legNo?: IntFilter<"LogisticsLeg"> | number
    fromLocationId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    toLocationId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    departedAt?: DateTimeNullableFilter<"LogisticsLeg"> | Date | string | null
    arrivedAt?: DateTimeNullableFilter<"LogisticsLeg"> | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFilter<"LogisticsLeg"> | $Enums.LogisticsStatus
    importDeclarationTypeCode?: StringNullableFilter<"LogisticsLeg"> | string | null
    tariffTypeCode?: StringNullableFilter<"LogisticsLeg"> | string | null
    shippingReceiptAttachmentId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    additionalNotes?: StringNullableFilter<"LogisticsLeg"> | string | null
    organizationId?: UuidFilter<"LogisticsLeg"> | string
    createdAt?: DateTimeFilter<"LogisticsLeg"> | Date | string
    updatedAt?: DateTimeFilter<"LogisticsLeg"> | Date | string
    createdById?: UuidFilter<"LogisticsLeg"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }

  export type LogisticsLegOrderByWithRelationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    legNo?: SortOrder
    fromLocationId?: SortOrderInput | SortOrder
    toLocationId?: SortOrderInput | SortOrder
    departedAt?: SortOrderInput | SortOrder
    arrivedAt?: SortOrderInput | SortOrder
    logisticsStatus?: SortOrder
    importDeclarationTypeCode?: SortOrderInput | SortOrder
    tariffTypeCode?: SortOrderInput | SortOrder
    shippingReceiptAttachmentId?: SortOrderInput | SortOrder
    additionalNotes?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
  }

  export type LogisticsLegWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    robotUnitId_legNo?: LogisticsLegRobotUnitIdLegNoCompoundUniqueInput
    AND?: LogisticsLegWhereInput | LogisticsLegWhereInput[]
    OR?: LogisticsLegWhereInput[]
    NOT?: LogisticsLegWhereInput | LogisticsLegWhereInput[]
    robotUnitId?: UuidFilter<"LogisticsLeg"> | string
    legNo?: IntFilter<"LogisticsLeg"> | number
    fromLocationId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    toLocationId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    departedAt?: DateTimeNullableFilter<"LogisticsLeg"> | Date | string | null
    arrivedAt?: DateTimeNullableFilter<"LogisticsLeg"> | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFilter<"LogisticsLeg"> | $Enums.LogisticsStatus
    importDeclarationTypeCode?: StringNullableFilter<"LogisticsLeg"> | string | null
    tariffTypeCode?: StringNullableFilter<"LogisticsLeg"> | string | null
    shippingReceiptAttachmentId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    additionalNotes?: StringNullableFilter<"LogisticsLeg"> | string | null
    organizationId?: UuidFilter<"LogisticsLeg"> | string
    createdAt?: DateTimeFilter<"LogisticsLeg"> | Date | string
    updatedAt?: DateTimeFilter<"LogisticsLeg"> | Date | string
    createdById?: UuidFilter<"LogisticsLeg"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }, "id" | "robotUnitId_legNo">

  export type LogisticsLegOrderByWithAggregationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    legNo?: SortOrder
    fromLocationId?: SortOrderInput | SortOrder
    toLocationId?: SortOrderInput | SortOrder
    departedAt?: SortOrderInput | SortOrder
    arrivedAt?: SortOrderInput | SortOrder
    logisticsStatus?: SortOrder
    importDeclarationTypeCode?: SortOrderInput | SortOrder
    tariffTypeCode?: SortOrderInput | SortOrder
    shippingReceiptAttachmentId?: SortOrderInput | SortOrder
    additionalNotes?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    _count?: LogisticsLegCountOrderByAggregateInput
    _avg?: LogisticsLegAvgOrderByAggregateInput
    _max?: LogisticsLegMaxOrderByAggregateInput
    _min?: LogisticsLegMinOrderByAggregateInput
    _sum?: LogisticsLegSumOrderByAggregateInput
  }

  export type LogisticsLegScalarWhereWithAggregatesInput = {
    AND?: LogisticsLegScalarWhereWithAggregatesInput | LogisticsLegScalarWhereWithAggregatesInput[]
    OR?: LogisticsLegScalarWhereWithAggregatesInput[]
    NOT?: LogisticsLegScalarWhereWithAggregatesInput | LogisticsLegScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"LogisticsLeg"> | string
    robotUnitId?: UuidWithAggregatesFilter<"LogisticsLeg"> | string
    legNo?: IntWithAggregatesFilter<"LogisticsLeg"> | number
    fromLocationId?: UuidNullableWithAggregatesFilter<"LogisticsLeg"> | string | null
    toLocationId?: UuidNullableWithAggregatesFilter<"LogisticsLeg"> | string | null
    departedAt?: DateTimeNullableWithAggregatesFilter<"LogisticsLeg"> | Date | string | null
    arrivedAt?: DateTimeNullableWithAggregatesFilter<"LogisticsLeg"> | Date | string | null
    logisticsStatus?: EnumLogisticsStatusWithAggregatesFilter<"LogisticsLeg"> | $Enums.LogisticsStatus
    importDeclarationTypeCode?: StringNullableWithAggregatesFilter<"LogisticsLeg"> | string | null
    tariffTypeCode?: StringNullableWithAggregatesFilter<"LogisticsLeg"> | string | null
    shippingReceiptAttachmentId?: UuidNullableWithAggregatesFilter<"LogisticsLeg"> | string | null
    additionalNotes?: StringNullableWithAggregatesFilter<"LogisticsLeg"> | string | null
    organizationId?: UuidWithAggregatesFilter<"LogisticsLeg"> | string
    createdAt?: DateTimeWithAggregatesFilter<"LogisticsLeg"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"LogisticsLeg"> | Date | string
    createdById?: UuidWithAggregatesFilter<"LogisticsLeg"> | string
  }

  export type ComplianceCheckWhereInput = {
    AND?: ComplianceCheckWhereInput | ComplianceCheckWhereInput[]
    OR?: ComplianceCheckWhereInput[]
    NOT?: ComplianceCheckWhereInput | ComplianceCheckWhereInput[]
    id?: UuidFilter<"ComplianceCheck"> | string
    robotUnitId?: UuidFilter<"ComplianceCheck"> | string
    dateReady?: DateTimeNullableFilter<"ComplianceCheck"> | Date | string | null
    stickerStatus?: EnumStickerStatusNullableFilter<"ComplianceCheck"> | $Enums.StickerStatus | null
    fccStatus?: EnumFccStatusNullableFilter<"ComplianceCheck"> | $Enums.FccStatus | null
    complianceNotes?: StringNullableFilter<"ComplianceCheck"> | string | null
    lastUpdatedAt?: DateTimeFilter<"ComplianceCheck"> | Date | string
    organizationId?: UuidFilter<"ComplianceCheck"> | string
    createdAt?: DateTimeFilter<"ComplianceCheck"> | Date | string
    updatedAt?: DateTimeFilter<"ComplianceCheck"> | Date | string
    createdById?: UuidFilter<"ComplianceCheck"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }

  export type ComplianceCheckOrderByWithRelationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    dateReady?: SortOrderInput | SortOrder
    stickerStatus?: SortOrderInput | SortOrder
    fccStatus?: SortOrderInput | SortOrder
    complianceNotes?: SortOrderInput | SortOrder
    lastUpdatedAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
  }

  export type ComplianceCheckWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    robotUnitId?: string
    AND?: ComplianceCheckWhereInput | ComplianceCheckWhereInput[]
    OR?: ComplianceCheckWhereInput[]
    NOT?: ComplianceCheckWhereInput | ComplianceCheckWhereInput[]
    dateReady?: DateTimeNullableFilter<"ComplianceCheck"> | Date | string | null
    stickerStatus?: EnumStickerStatusNullableFilter<"ComplianceCheck"> | $Enums.StickerStatus | null
    fccStatus?: EnumFccStatusNullableFilter<"ComplianceCheck"> | $Enums.FccStatus | null
    complianceNotes?: StringNullableFilter<"ComplianceCheck"> | string | null
    lastUpdatedAt?: DateTimeFilter<"ComplianceCheck"> | Date | string
    organizationId?: UuidFilter<"ComplianceCheck"> | string
    createdAt?: DateTimeFilter<"ComplianceCheck"> | Date | string
    updatedAt?: DateTimeFilter<"ComplianceCheck"> | Date | string
    createdById?: UuidFilter<"ComplianceCheck"> | string
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }, "id" | "robotUnitId">

  export type ComplianceCheckOrderByWithAggregationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    dateReady?: SortOrderInput | SortOrder
    stickerStatus?: SortOrderInput | SortOrder
    fccStatus?: SortOrderInput | SortOrder
    complianceNotes?: SortOrderInput | SortOrder
    lastUpdatedAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    _count?: ComplianceCheckCountOrderByAggregateInput
    _max?: ComplianceCheckMaxOrderByAggregateInput
    _min?: ComplianceCheckMinOrderByAggregateInput
  }

  export type ComplianceCheckScalarWhereWithAggregatesInput = {
    AND?: ComplianceCheckScalarWhereWithAggregatesInput | ComplianceCheckScalarWhereWithAggregatesInput[]
    OR?: ComplianceCheckScalarWhereWithAggregatesInput[]
    NOT?: ComplianceCheckScalarWhereWithAggregatesInput | ComplianceCheckScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ComplianceCheck"> | string
    robotUnitId?: UuidWithAggregatesFilter<"ComplianceCheck"> | string
    dateReady?: DateTimeNullableWithAggregatesFilter<"ComplianceCheck"> | Date | string | null
    stickerStatus?: EnumStickerStatusNullableWithAggregatesFilter<"ComplianceCheck"> | $Enums.StickerStatus | null
    fccStatus?: EnumFccStatusNullableWithAggregatesFilter<"ComplianceCheck"> | $Enums.FccStatus | null
    complianceNotes?: StringNullableWithAggregatesFilter<"ComplianceCheck"> | string | null
    lastUpdatedAt?: DateTimeWithAggregatesFilter<"ComplianceCheck"> | Date | string
    organizationId?: UuidWithAggregatesFilter<"ComplianceCheck"> | string
    createdAt?: DateTimeWithAggregatesFilter<"ComplianceCheck"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ComplianceCheck"> | Date | string
    createdById?: UuidWithAggregatesFilter<"ComplianceCheck"> | string
  }

  export type RentalAgreementWhereInput = {
    AND?: RentalAgreementWhereInput | RentalAgreementWhereInput[]
    OR?: RentalAgreementWhereInput[]
    NOT?: RentalAgreementWhereInput | RentalAgreementWhereInput[]
    id?: UuidFilter<"RentalAgreement"> | string
    robotUnitId?: UuidFilter<"RentalAgreement"> | string
    customerId?: UuidFilter<"RentalAgreement"> | string
    startAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    endAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    periodMonths?: IntFilter<"RentalAgreement"> | number
    monthlyRate?: DecimalFilter<"RentalAgreement"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"RentalAgreement"> | string
    status?: EnumRentalAgreementStatusFilter<"RentalAgreement"> | $Enums.RentalAgreementStatus
    contractAttachmentId?: UuidNullableFilter<"RentalAgreement"> | string | null
    version?: IntFilter<"RentalAgreement"> | number
    organizationId?: UuidFilter<"RentalAgreement"> | string
    createdAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    updatedAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    createdById?: UuidFilter<"RentalAgreement"> | string
    deletedAt?: DateTimeNullableFilter<"RentalAgreement"> | Date | string | null
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
    schedules?: RentalPaymentScheduleListRelationFilter
  }

  export type RentalAgreementOrderByWithRelationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrder
    startAt?: SortOrder
    endAt?: SortOrder
    periodMonths?: SortOrder
    monthlyRate?: SortOrder
    currencyCode?: SortOrder
    status?: SortOrder
    contractAttachmentId?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
    schedules?: RentalPaymentScheduleOrderByRelationAggregateInput
  }

  export type RentalAgreementWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: RentalAgreementWhereInput | RentalAgreementWhereInput[]
    OR?: RentalAgreementWhereInput[]
    NOT?: RentalAgreementWhereInput | RentalAgreementWhereInput[]
    robotUnitId?: UuidFilter<"RentalAgreement"> | string
    customerId?: UuidFilter<"RentalAgreement"> | string
    startAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    endAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    periodMonths?: IntFilter<"RentalAgreement"> | number
    monthlyRate?: DecimalFilter<"RentalAgreement"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"RentalAgreement"> | string
    status?: EnumRentalAgreementStatusFilter<"RentalAgreement"> | $Enums.RentalAgreementStatus
    contractAttachmentId?: UuidNullableFilter<"RentalAgreement"> | string | null
    version?: IntFilter<"RentalAgreement"> | number
    organizationId?: UuidFilter<"RentalAgreement"> | string
    createdAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    updatedAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    createdById?: UuidFilter<"RentalAgreement"> | string
    deletedAt?: DateTimeNullableFilter<"RentalAgreement"> | Date | string | null
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
    schedules?: RentalPaymentScheduleListRelationFilter
  }, "id">

  export type RentalAgreementOrderByWithAggregationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrder
    startAt?: SortOrder
    endAt?: SortOrder
    periodMonths?: SortOrder
    monthlyRate?: SortOrder
    currencyCode?: SortOrder
    status?: SortOrder
    contractAttachmentId?: SortOrderInput | SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: RentalAgreementCountOrderByAggregateInput
    _avg?: RentalAgreementAvgOrderByAggregateInput
    _max?: RentalAgreementMaxOrderByAggregateInput
    _min?: RentalAgreementMinOrderByAggregateInput
    _sum?: RentalAgreementSumOrderByAggregateInput
  }

  export type RentalAgreementScalarWhereWithAggregatesInput = {
    AND?: RentalAgreementScalarWhereWithAggregatesInput | RentalAgreementScalarWhereWithAggregatesInput[]
    OR?: RentalAgreementScalarWhereWithAggregatesInput[]
    NOT?: RentalAgreementScalarWhereWithAggregatesInput | RentalAgreementScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RentalAgreement"> | string
    robotUnitId?: UuidWithAggregatesFilter<"RentalAgreement"> | string
    customerId?: UuidWithAggregatesFilter<"RentalAgreement"> | string
    startAt?: DateTimeWithAggregatesFilter<"RentalAgreement"> | Date | string
    endAt?: DateTimeWithAggregatesFilter<"RentalAgreement"> | Date | string
    periodMonths?: IntWithAggregatesFilter<"RentalAgreement"> | number
    monthlyRate?: DecimalWithAggregatesFilter<"RentalAgreement"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringWithAggregatesFilter<"RentalAgreement"> | string
    status?: EnumRentalAgreementStatusWithAggregatesFilter<"RentalAgreement"> | $Enums.RentalAgreementStatus
    contractAttachmentId?: UuidNullableWithAggregatesFilter<"RentalAgreement"> | string | null
    version?: IntWithAggregatesFilter<"RentalAgreement"> | number
    organizationId?: UuidWithAggregatesFilter<"RentalAgreement"> | string
    createdAt?: DateTimeWithAggregatesFilter<"RentalAgreement"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RentalAgreement"> | Date | string
    createdById?: UuidWithAggregatesFilter<"RentalAgreement"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"RentalAgreement"> | Date | string | null
  }

  export type RentalPaymentScheduleWhereInput = {
    AND?: RentalPaymentScheduleWhereInput | RentalPaymentScheduleWhereInput[]
    OR?: RentalPaymentScheduleWhereInput[]
    NOT?: RentalPaymentScheduleWhereInput | RentalPaymentScheduleWhereInput[]
    id?: UuidFilter<"RentalPaymentSchedule"> | string
    rentalAgreementId?: UuidFilter<"RentalPaymentSchedule"> | string
    dueDate?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
    amount?: DecimalFilter<"RentalPaymentSchedule"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"RentalPaymentSchedule"> | string
    paidPaymentRecordId?: UuidNullableFilter<"RentalPaymentSchedule"> | string | null
    paidAt?: DateTimeNullableFilter<"RentalPaymentSchedule"> | Date | string | null
    createdAt?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
    updatedAt?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
    rentalAgreement?: XOR<RentalAgreementScalarRelationFilter, RentalAgreementWhereInput>
    paidPaymentRecord?: XOR<PaymentRecordNullableScalarRelationFilter, PaymentRecordWhereInput> | null
  }

  export type RentalPaymentScheduleOrderByWithRelationInput = {
    id?: SortOrder
    rentalAgreementId?: SortOrder
    dueDate?: SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidPaymentRecordId?: SortOrderInput | SortOrder
    paidAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    rentalAgreement?: RentalAgreementOrderByWithRelationInput
    paidPaymentRecord?: PaymentRecordOrderByWithRelationInput
  }

  export type RentalPaymentScheduleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: RentalPaymentScheduleWhereInput | RentalPaymentScheduleWhereInput[]
    OR?: RentalPaymentScheduleWhereInput[]
    NOT?: RentalPaymentScheduleWhereInput | RentalPaymentScheduleWhereInput[]
    rentalAgreementId?: UuidFilter<"RentalPaymentSchedule"> | string
    dueDate?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
    amount?: DecimalFilter<"RentalPaymentSchedule"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"RentalPaymentSchedule"> | string
    paidPaymentRecordId?: UuidNullableFilter<"RentalPaymentSchedule"> | string | null
    paidAt?: DateTimeNullableFilter<"RentalPaymentSchedule"> | Date | string | null
    createdAt?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
    updatedAt?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
    rentalAgreement?: XOR<RentalAgreementScalarRelationFilter, RentalAgreementWhereInput>
    paidPaymentRecord?: XOR<PaymentRecordNullableScalarRelationFilter, PaymentRecordWhereInput> | null
  }, "id">

  export type RentalPaymentScheduleOrderByWithAggregationInput = {
    id?: SortOrder
    rentalAgreementId?: SortOrder
    dueDate?: SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidPaymentRecordId?: SortOrderInput | SortOrder
    paidAt?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    _count?: RentalPaymentScheduleCountOrderByAggregateInput
    _avg?: RentalPaymentScheduleAvgOrderByAggregateInput
    _max?: RentalPaymentScheduleMaxOrderByAggregateInput
    _min?: RentalPaymentScheduleMinOrderByAggregateInput
    _sum?: RentalPaymentScheduleSumOrderByAggregateInput
  }

  export type RentalPaymentScheduleScalarWhereWithAggregatesInput = {
    AND?: RentalPaymentScheduleScalarWhereWithAggregatesInput | RentalPaymentScheduleScalarWhereWithAggregatesInput[]
    OR?: RentalPaymentScheduleScalarWhereWithAggregatesInput[]
    NOT?: RentalPaymentScheduleScalarWhereWithAggregatesInput | RentalPaymentScheduleScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RentalPaymentSchedule"> | string
    rentalAgreementId?: UuidWithAggregatesFilter<"RentalPaymentSchedule"> | string
    dueDate?: DateTimeWithAggregatesFilter<"RentalPaymentSchedule"> | Date | string
    amount?: DecimalWithAggregatesFilter<"RentalPaymentSchedule"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringWithAggregatesFilter<"RentalPaymentSchedule"> | string
    paidPaymentRecordId?: UuidNullableWithAggregatesFilter<"RentalPaymentSchedule"> | string | null
    paidAt?: DateTimeNullableWithAggregatesFilter<"RentalPaymentSchedule"> | Date | string | null
    createdAt?: DateTimeWithAggregatesFilter<"RentalPaymentSchedule"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RentalPaymentSchedule"> | Date | string
  }

  export type ServiceTicketWhereInput = {
    AND?: ServiceTicketWhereInput | ServiceTicketWhereInput[]
    OR?: ServiceTicketWhereInput[]
    NOT?: ServiceTicketWhereInput | ServiceTicketWhereInput[]
    id?: UuidFilter<"ServiceTicket"> | string
    ticketNo?: StringFilter<"ServiceTicket"> | string
    robotUnitId?: UuidFilter<"ServiceTicket"> | string
    customerId?: UuidNullableFilter<"ServiceTicket"> | string | null
    issueTypeCode?: StringFilter<"ServiceTicket"> | string
    severity?: EnumTicketSeverityFilter<"ServiceTicket"> | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFilter<"ServiceTicket"> | $Enums.ServiceTicketStatus
    serviceRecord?: StringNullableFilter<"ServiceTicket"> | string | null
    customerFeedback?: StringNullableFilter<"ServiceTicket"> | string | null
    openedAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    openedById?: UuidFilter<"ServiceTicket"> | string
    closedAt?: DateTimeNullableFilter<"ServiceTicket"> | Date | string | null
    resolvedById?: UuidNullableFilter<"ServiceTicket"> | string | null
    organizationId?: UuidFilter<"ServiceTicket"> | string
    createdAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    updatedAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    createdById?: UuidFilter<"ServiceTicket"> | string
    deletedAt?: DateTimeNullableFilter<"ServiceTicket"> | Date | string | null
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
    activities?: ServiceTicketActivityListRelationFilter
  }

  export type ServiceTicketOrderByWithRelationInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrderInput | SortOrder
    issueTypeCode?: SortOrder
    severity?: SortOrder
    status?: SortOrder
    serviceRecord?: SortOrderInput | SortOrder
    customerFeedback?: SortOrderInput | SortOrder
    openedAt?: SortOrder
    openedById?: SortOrder
    closedAt?: SortOrderInput | SortOrder
    resolvedById?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
    activities?: ServiceTicketActivityOrderByRelationAggregateInput
  }

  export type ServiceTicketWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    ticketNo?: string
    AND?: ServiceTicketWhereInput | ServiceTicketWhereInput[]
    OR?: ServiceTicketWhereInput[]
    NOT?: ServiceTicketWhereInput | ServiceTicketWhereInput[]
    robotUnitId?: UuidFilter<"ServiceTicket"> | string
    customerId?: UuidNullableFilter<"ServiceTicket"> | string | null
    issueTypeCode?: StringFilter<"ServiceTicket"> | string
    severity?: EnumTicketSeverityFilter<"ServiceTicket"> | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFilter<"ServiceTicket"> | $Enums.ServiceTicketStatus
    serviceRecord?: StringNullableFilter<"ServiceTicket"> | string | null
    customerFeedback?: StringNullableFilter<"ServiceTicket"> | string | null
    openedAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    openedById?: UuidFilter<"ServiceTicket"> | string
    closedAt?: DateTimeNullableFilter<"ServiceTicket"> | Date | string | null
    resolvedById?: UuidNullableFilter<"ServiceTicket"> | string | null
    organizationId?: UuidFilter<"ServiceTicket"> | string
    createdAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    updatedAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    createdById?: UuidFilter<"ServiceTicket"> | string
    deletedAt?: DateTimeNullableFilter<"ServiceTicket"> | Date | string | null
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
    activities?: ServiceTicketActivityListRelationFilter
  }, "id" | "ticketNo">

  export type ServiceTicketOrderByWithAggregationInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrderInput | SortOrder
    issueTypeCode?: SortOrder
    severity?: SortOrder
    status?: SortOrder
    serviceRecord?: SortOrderInput | SortOrder
    customerFeedback?: SortOrderInput | SortOrder
    openedAt?: SortOrder
    openedById?: SortOrder
    closedAt?: SortOrderInput | SortOrder
    resolvedById?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: ServiceTicketCountOrderByAggregateInput
    _max?: ServiceTicketMaxOrderByAggregateInput
    _min?: ServiceTicketMinOrderByAggregateInput
  }

  export type ServiceTicketScalarWhereWithAggregatesInput = {
    AND?: ServiceTicketScalarWhereWithAggregatesInput | ServiceTicketScalarWhereWithAggregatesInput[]
    OR?: ServiceTicketScalarWhereWithAggregatesInput[]
    NOT?: ServiceTicketScalarWhereWithAggregatesInput | ServiceTicketScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ServiceTicket"> | string
    ticketNo?: StringWithAggregatesFilter<"ServiceTicket"> | string
    robotUnitId?: UuidWithAggregatesFilter<"ServiceTicket"> | string
    customerId?: UuidNullableWithAggregatesFilter<"ServiceTicket"> | string | null
    issueTypeCode?: StringWithAggregatesFilter<"ServiceTicket"> | string
    severity?: EnumTicketSeverityWithAggregatesFilter<"ServiceTicket"> | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusWithAggregatesFilter<"ServiceTicket"> | $Enums.ServiceTicketStatus
    serviceRecord?: StringNullableWithAggregatesFilter<"ServiceTicket"> | string | null
    customerFeedback?: StringNullableWithAggregatesFilter<"ServiceTicket"> | string | null
    openedAt?: DateTimeWithAggregatesFilter<"ServiceTicket"> | Date | string
    openedById?: UuidWithAggregatesFilter<"ServiceTicket"> | string
    closedAt?: DateTimeNullableWithAggregatesFilter<"ServiceTicket"> | Date | string | null
    resolvedById?: UuidNullableWithAggregatesFilter<"ServiceTicket"> | string | null
    organizationId?: UuidWithAggregatesFilter<"ServiceTicket"> | string
    createdAt?: DateTimeWithAggregatesFilter<"ServiceTicket"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ServiceTicket"> | Date | string
    createdById?: UuidWithAggregatesFilter<"ServiceTicket"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"ServiceTicket"> | Date | string | null
  }

  export type ServiceTicketActivityWhereInput = {
    AND?: ServiceTicketActivityWhereInput | ServiceTicketActivityWhereInput[]
    OR?: ServiceTicketActivityWhereInput[]
    NOT?: ServiceTicketActivityWhereInput | ServiceTicketActivityWhereInput[]
    id?: UuidFilter<"ServiceTicketActivity"> | string
    ticketId?: UuidFilter<"ServiceTicketActivity"> | string
    activityType?: EnumServiceTicketActivityTypeFilter<"ServiceTicketActivity"> | $Enums.ServiceTicketActivityType
    payload?: JsonFilter<"ServiceTicketActivity">
    createdById?: UuidFilter<"ServiceTicketActivity"> | string
    occurredAt?: DateTimeFilter<"ServiceTicketActivity"> | Date | string
    createdAt?: DateTimeFilter<"ServiceTicketActivity"> | Date | string
    ticket?: XOR<ServiceTicketScalarRelationFilter, ServiceTicketWhereInput>
  }

  export type ServiceTicketActivityOrderByWithRelationInput = {
    id?: SortOrder
    ticketId?: SortOrder
    activityType?: SortOrder
    payload?: SortOrder
    createdById?: SortOrder
    occurredAt?: SortOrder
    createdAt?: SortOrder
    ticket?: ServiceTicketOrderByWithRelationInput
  }

  export type ServiceTicketActivityWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ServiceTicketActivityWhereInput | ServiceTicketActivityWhereInput[]
    OR?: ServiceTicketActivityWhereInput[]
    NOT?: ServiceTicketActivityWhereInput | ServiceTicketActivityWhereInput[]
    ticketId?: UuidFilter<"ServiceTicketActivity"> | string
    activityType?: EnumServiceTicketActivityTypeFilter<"ServiceTicketActivity"> | $Enums.ServiceTicketActivityType
    payload?: JsonFilter<"ServiceTicketActivity">
    createdById?: UuidFilter<"ServiceTicketActivity"> | string
    occurredAt?: DateTimeFilter<"ServiceTicketActivity"> | Date | string
    createdAt?: DateTimeFilter<"ServiceTicketActivity"> | Date | string
    ticket?: XOR<ServiceTicketScalarRelationFilter, ServiceTicketWhereInput>
  }, "id">

  export type ServiceTicketActivityOrderByWithAggregationInput = {
    id?: SortOrder
    ticketId?: SortOrder
    activityType?: SortOrder
    payload?: SortOrder
    createdById?: SortOrder
    occurredAt?: SortOrder
    createdAt?: SortOrder
    _count?: ServiceTicketActivityCountOrderByAggregateInput
    _max?: ServiceTicketActivityMaxOrderByAggregateInput
    _min?: ServiceTicketActivityMinOrderByAggregateInput
  }

  export type ServiceTicketActivityScalarWhereWithAggregatesInput = {
    AND?: ServiceTicketActivityScalarWhereWithAggregatesInput | ServiceTicketActivityScalarWhereWithAggregatesInput[]
    OR?: ServiceTicketActivityScalarWhereWithAggregatesInput[]
    NOT?: ServiceTicketActivityScalarWhereWithAggregatesInput | ServiceTicketActivityScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ServiceTicketActivity"> | string
    ticketId?: UuidWithAggregatesFilter<"ServiceTicketActivity"> | string
    activityType?: EnumServiceTicketActivityTypeWithAggregatesFilter<"ServiceTicketActivity"> | $Enums.ServiceTicketActivityType
    payload?: JsonWithAggregatesFilter<"ServiceTicketActivity">
    createdById?: UuidWithAggregatesFilter<"ServiceTicketActivity"> | string
    occurredAt?: DateTimeWithAggregatesFilter<"ServiceTicketActivity"> | Date | string
    createdAt?: DateTimeWithAggregatesFilter<"ServiceTicketActivity"> | Date | string
  }

  export type RobotImportAuditWhereInput = {
    AND?: RobotImportAuditWhereInput | RobotImportAuditWhereInput[]
    OR?: RobotImportAuditWhereInput[]
    NOT?: RobotImportAuditWhereInput | RobotImportAuditWhereInput[]
    id?: UuidFilter<"RobotImportAudit"> | string
    robotUnitId?: UuidFilter<"RobotImportAudit"> | string
    sources?: StringNullableListFilter<"RobotImportAudit">
    conflictCount?: IntFilter<"RobotImportAudit"> | number
    recordStatus?: EnumImportRecordStatusFilter<"RobotImportAudit"> | $Enums.ImportRecordStatus
    conflictDetail?: JsonNullableFilter<"RobotImportAudit">
    importedAt?: DateTimeFilter<"RobotImportAudit"> | Date | string
    importBatch?: StringNullableFilter<"RobotImportAudit"> | string | null
    organizationId?: UuidFilter<"RobotImportAudit"> | string
    createdAt?: DateTimeFilter<"RobotImportAudit"> | Date | string
    updatedAt?: DateTimeFilter<"RobotImportAudit"> | Date | string
    createdById?: UuidFilter<"RobotImportAudit"> | string
    deletedAt?: DateTimeNullableFilter<"RobotImportAudit"> | Date | string | null
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }

  export type RobotImportAuditOrderByWithRelationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    sources?: SortOrder
    conflictCount?: SortOrder
    recordStatus?: SortOrder
    conflictDetail?: SortOrderInput | SortOrder
    importedAt?: SortOrder
    importBatch?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    robotUnit?: RobotUnitOrderByWithRelationInput
  }

  export type RobotImportAuditWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    robotUnitId?: string
    AND?: RobotImportAuditWhereInput | RobotImportAuditWhereInput[]
    OR?: RobotImportAuditWhereInput[]
    NOT?: RobotImportAuditWhereInput | RobotImportAuditWhereInput[]
    sources?: StringNullableListFilter<"RobotImportAudit">
    conflictCount?: IntFilter<"RobotImportAudit"> | number
    recordStatus?: EnumImportRecordStatusFilter<"RobotImportAudit"> | $Enums.ImportRecordStatus
    conflictDetail?: JsonNullableFilter<"RobotImportAudit">
    importedAt?: DateTimeFilter<"RobotImportAudit"> | Date | string
    importBatch?: StringNullableFilter<"RobotImportAudit"> | string | null
    organizationId?: UuidFilter<"RobotImportAudit"> | string
    createdAt?: DateTimeFilter<"RobotImportAudit"> | Date | string
    updatedAt?: DateTimeFilter<"RobotImportAudit"> | Date | string
    createdById?: UuidFilter<"RobotImportAudit"> | string
    deletedAt?: DateTimeNullableFilter<"RobotImportAudit"> | Date | string | null
    robotUnit?: XOR<RobotUnitScalarRelationFilter, RobotUnitWhereInput>
  }, "id" | "robotUnitId">

  export type RobotImportAuditOrderByWithAggregationInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    sources?: SortOrder
    conflictCount?: SortOrder
    recordStatus?: SortOrder
    conflictDetail?: SortOrderInput | SortOrder
    importedAt?: SortOrder
    importBatch?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: RobotImportAuditCountOrderByAggregateInput
    _avg?: RobotImportAuditAvgOrderByAggregateInput
    _max?: RobotImportAuditMaxOrderByAggregateInput
    _min?: RobotImportAuditMinOrderByAggregateInput
    _sum?: RobotImportAuditSumOrderByAggregateInput
  }

  export type RobotImportAuditScalarWhereWithAggregatesInput = {
    AND?: RobotImportAuditScalarWhereWithAggregatesInput | RobotImportAuditScalarWhereWithAggregatesInput[]
    OR?: RobotImportAuditScalarWhereWithAggregatesInput[]
    NOT?: RobotImportAuditScalarWhereWithAggregatesInput | RobotImportAuditScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"RobotImportAudit"> | string
    robotUnitId?: UuidWithAggregatesFilter<"RobotImportAudit"> | string
    sources?: StringNullableListFilter<"RobotImportAudit">
    conflictCount?: IntWithAggregatesFilter<"RobotImportAudit"> | number
    recordStatus?: EnumImportRecordStatusWithAggregatesFilter<"RobotImportAudit"> | $Enums.ImportRecordStatus
    conflictDetail?: JsonNullableWithAggregatesFilter<"RobotImportAudit">
    importedAt?: DateTimeWithAggregatesFilter<"RobotImportAudit"> | Date | string
    importBatch?: StringNullableWithAggregatesFilter<"RobotImportAudit"> | string | null
    organizationId?: UuidWithAggregatesFilter<"RobotImportAudit"> | string
    createdAt?: DateTimeWithAggregatesFilter<"RobotImportAudit"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"RobotImportAudit"> | Date | string
    createdById?: UuidWithAggregatesFilter<"RobotImportAudit"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"RobotImportAudit"> | Date | string | null
  }

  export type ImportBatchWhereInput = {
    AND?: ImportBatchWhereInput | ImportBatchWhereInput[]
    OR?: ImportBatchWhereInput[]
    NOT?: ImportBatchWhereInput | ImportBatchWhereInput[]
    id?: UuidFilter<"ImportBatch"> | string
    type?: EnumImportBatchTypeFilter<"ImportBatch"> | $Enums.ImportBatchType
    status?: EnumImportBatchStatusFilter<"ImportBatch"> | $Enums.ImportBatchStatus
    fileName?: StringFilter<"ImportBatch"> | string
    fileHash?: StringFilter<"ImportBatch"> | string
    templateSchemaHash?: StringFilter<"ImportBatch"> | string
    totalRows?: IntFilter<"ImportBatch"> | number
    successRows?: IntFilter<"ImportBatch"> | number
    errorRows?: IntFilter<"ImportBatch"> | number
    warningRows?: IntFilter<"ImportBatch"> | number
    startedAt?: DateTimeNullableFilter<"ImportBatch"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"ImportBatch"> | Date | string | null
    confirmedById?: UuidNullableFilter<"ImportBatch"> | string | null
    confirmedAt?: DateTimeNullableFilter<"ImportBatch"> | Date | string | null
    clientIp?: StringNullableFilter<"ImportBatch"> | string | null
    userAgent?: StringNullableFilter<"ImportBatch"> | string | null
    errorSummary?: JsonNullableFilter<"ImportBatch">
    organizationId?: UuidFilter<"ImportBatch"> | string
    createdAt?: DateTimeFilter<"ImportBatch"> | Date | string
    updatedAt?: DateTimeFilter<"ImportBatch"> | Date | string
    createdById?: UuidFilter<"ImportBatch"> | string
    deletedAt?: DateTimeNullableFilter<"ImportBatch"> | Date | string | null
    entries?: ImportBatchEntryListRelationFilter
  }

  export type ImportBatchOrderByWithRelationInput = {
    id?: SortOrder
    type?: SortOrder
    status?: SortOrder
    fileName?: SortOrder
    fileHash?: SortOrder
    templateSchemaHash?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    errorRows?: SortOrder
    warningRows?: SortOrder
    startedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    confirmedById?: SortOrderInput | SortOrder
    confirmedAt?: SortOrderInput | SortOrder
    clientIp?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    errorSummary?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    entries?: ImportBatchEntryOrderByRelationAggregateInput
  }

  export type ImportBatchWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ImportBatchWhereInput | ImportBatchWhereInput[]
    OR?: ImportBatchWhereInput[]
    NOT?: ImportBatchWhereInput | ImportBatchWhereInput[]
    type?: EnumImportBatchTypeFilter<"ImportBatch"> | $Enums.ImportBatchType
    status?: EnumImportBatchStatusFilter<"ImportBatch"> | $Enums.ImportBatchStatus
    fileName?: StringFilter<"ImportBatch"> | string
    fileHash?: StringFilter<"ImportBatch"> | string
    templateSchemaHash?: StringFilter<"ImportBatch"> | string
    totalRows?: IntFilter<"ImportBatch"> | number
    successRows?: IntFilter<"ImportBatch"> | number
    errorRows?: IntFilter<"ImportBatch"> | number
    warningRows?: IntFilter<"ImportBatch"> | number
    startedAt?: DateTimeNullableFilter<"ImportBatch"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"ImportBatch"> | Date | string | null
    confirmedById?: UuidNullableFilter<"ImportBatch"> | string | null
    confirmedAt?: DateTimeNullableFilter<"ImportBatch"> | Date | string | null
    clientIp?: StringNullableFilter<"ImportBatch"> | string | null
    userAgent?: StringNullableFilter<"ImportBatch"> | string | null
    errorSummary?: JsonNullableFilter<"ImportBatch">
    organizationId?: UuidFilter<"ImportBatch"> | string
    createdAt?: DateTimeFilter<"ImportBatch"> | Date | string
    updatedAt?: DateTimeFilter<"ImportBatch"> | Date | string
    createdById?: UuidFilter<"ImportBatch"> | string
    deletedAt?: DateTimeNullableFilter<"ImportBatch"> | Date | string | null
    entries?: ImportBatchEntryListRelationFilter
  }, "id">

  export type ImportBatchOrderByWithAggregationInput = {
    id?: SortOrder
    type?: SortOrder
    status?: SortOrder
    fileName?: SortOrder
    fileHash?: SortOrder
    templateSchemaHash?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    errorRows?: SortOrder
    warningRows?: SortOrder
    startedAt?: SortOrderInput | SortOrder
    completedAt?: SortOrderInput | SortOrder
    confirmedById?: SortOrderInput | SortOrder
    confirmedAt?: SortOrderInput | SortOrder
    clientIp?: SortOrderInput | SortOrder
    userAgent?: SortOrderInput | SortOrder
    errorSummary?: SortOrderInput | SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: ImportBatchCountOrderByAggregateInput
    _avg?: ImportBatchAvgOrderByAggregateInput
    _max?: ImportBatchMaxOrderByAggregateInput
    _min?: ImportBatchMinOrderByAggregateInput
    _sum?: ImportBatchSumOrderByAggregateInput
  }

  export type ImportBatchScalarWhereWithAggregatesInput = {
    AND?: ImportBatchScalarWhereWithAggregatesInput | ImportBatchScalarWhereWithAggregatesInput[]
    OR?: ImportBatchScalarWhereWithAggregatesInput[]
    NOT?: ImportBatchScalarWhereWithAggregatesInput | ImportBatchScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ImportBatch"> | string
    type?: EnumImportBatchTypeWithAggregatesFilter<"ImportBatch"> | $Enums.ImportBatchType
    status?: EnumImportBatchStatusWithAggregatesFilter<"ImportBatch"> | $Enums.ImportBatchStatus
    fileName?: StringWithAggregatesFilter<"ImportBatch"> | string
    fileHash?: StringWithAggregatesFilter<"ImportBatch"> | string
    templateSchemaHash?: StringWithAggregatesFilter<"ImportBatch"> | string
    totalRows?: IntWithAggregatesFilter<"ImportBatch"> | number
    successRows?: IntWithAggregatesFilter<"ImportBatch"> | number
    errorRows?: IntWithAggregatesFilter<"ImportBatch"> | number
    warningRows?: IntWithAggregatesFilter<"ImportBatch"> | number
    startedAt?: DateTimeNullableWithAggregatesFilter<"ImportBatch"> | Date | string | null
    completedAt?: DateTimeNullableWithAggregatesFilter<"ImportBatch"> | Date | string | null
    confirmedById?: UuidNullableWithAggregatesFilter<"ImportBatch"> | string | null
    confirmedAt?: DateTimeNullableWithAggregatesFilter<"ImportBatch"> | Date | string | null
    clientIp?: StringNullableWithAggregatesFilter<"ImportBatch"> | string | null
    userAgent?: StringNullableWithAggregatesFilter<"ImportBatch"> | string | null
    errorSummary?: JsonNullableWithAggregatesFilter<"ImportBatch">
    organizationId?: UuidWithAggregatesFilter<"ImportBatch"> | string
    createdAt?: DateTimeWithAggregatesFilter<"ImportBatch"> | Date | string
    updatedAt?: DateTimeWithAggregatesFilter<"ImportBatch"> | Date | string
    createdById?: UuidWithAggregatesFilter<"ImportBatch"> | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"ImportBatch"> | Date | string | null
  }

  export type ImportBatchEntryWhereInput = {
    AND?: ImportBatchEntryWhereInput | ImportBatchEntryWhereInput[]
    OR?: ImportBatchEntryWhereInput[]
    NOT?: ImportBatchEntryWhereInput | ImportBatchEntryWhereInput[]
    id?: UuidFilter<"ImportBatchEntry"> | string
    batchId?: UuidFilter<"ImportBatchEntry"> | string
    rowNo?: IntFilter<"ImportBatchEntry"> | number
    status?: EnumImportEntryStatusFilter<"ImportBatchEntry"> | $Enums.ImportEntryStatus
    entityIds?: StringNullableListFilter<"ImportBatchEntry">
    payload?: JsonFilter<"ImportBatchEntry">
    payloadHash?: StringFilter<"ImportBatchEntry"> | string
    errorDetail?: JsonNullableFilter<"ImportBatchEntry">
    createdAt?: DateTimeFilter<"ImportBatchEntry"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ImportBatchEntry"> | Date | string | null
    batch?: XOR<ImportBatchScalarRelationFilter, ImportBatchWhereInput>
  }

  export type ImportBatchEntryOrderByWithRelationInput = {
    id?: SortOrder
    batchId?: SortOrder
    rowNo?: SortOrder
    status?: SortOrder
    entityIds?: SortOrder
    payload?: SortOrder
    payloadHash?: SortOrder
    errorDetail?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    batch?: ImportBatchOrderByWithRelationInput
  }

  export type ImportBatchEntryWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ImportBatchEntryWhereInput | ImportBatchEntryWhereInput[]
    OR?: ImportBatchEntryWhereInput[]
    NOT?: ImportBatchEntryWhereInput | ImportBatchEntryWhereInput[]
    batchId?: UuidFilter<"ImportBatchEntry"> | string
    rowNo?: IntFilter<"ImportBatchEntry"> | number
    status?: EnumImportEntryStatusFilter<"ImportBatchEntry"> | $Enums.ImportEntryStatus
    entityIds?: StringNullableListFilter<"ImportBatchEntry">
    payload?: JsonFilter<"ImportBatchEntry">
    payloadHash?: StringFilter<"ImportBatchEntry"> | string
    errorDetail?: JsonNullableFilter<"ImportBatchEntry">
    createdAt?: DateTimeFilter<"ImportBatchEntry"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ImportBatchEntry"> | Date | string | null
    batch?: XOR<ImportBatchScalarRelationFilter, ImportBatchWhereInput>
  }, "id">

  export type ImportBatchEntryOrderByWithAggregationInput = {
    id?: SortOrder
    batchId?: SortOrder
    rowNo?: SortOrder
    status?: SortOrder
    entityIds?: SortOrder
    payload?: SortOrder
    payloadHash?: SortOrder
    errorDetail?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrderInput | SortOrder
    _count?: ImportBatchEntryCountOrderByAggregateInput
    _avg?: ImportBatchEntryAvgOrderByAggregateInput
    _max?: ImportBatchEntryMaxOrderByAggregateInput
    _min?: ImportBatchEntryMinOrderByAggregateInput
    _sum?: ImportBatchEntrySumOrderByAggregateInput
  }

  export type ImportBatchEntryScalarWhereWithAggregatesInput = {
    AND?: ImportBatchEntryScalarWhereWithAggregatesInput | ImportBatchEntryScalarWhereWithAggregatesInput[]
    OR?: ImportBatchEntryScalarWhereWithAggregatesInput[]
    NOT?: ImportBatchEntryScalarWhereWithAggregatesInput | ImportBatchEntryScalarWhereWithAggregatesInput[]
    id?: UuidWithAggregatesFilter<"ImportBatchEntry"> | string
    batchId?: UuidWithAggregatesFilter<"ImportBatchEntry"> | string
    rowNo?: IntWithAggregatesFilter<"ImportBatchEntry"> | number
    status?: EnumImportEntryStatusWithAggregatesFilter<"ImportBatchEntry"> | $Enums.ImportEntryStatus
    entityIds?: StringNullableListFilter<"ImportBatchEntry">
    payload?: JsonWithAggregatesFilter<"ImportBatchEntry">
    payloadHash?: StringWithAggregatesFilter<"ImportBatchEntry"> | string
    errorDetail?: JsonNullableWithAggregatesFilter<"ImportBatchEntry">
    createdAt?: DateTimeWithAggregatesFilter<"ImportBatchEntry"> | Date | string
    deletedAt?: DateTimeNullableWithAggregatesFilter<"ImportBatchEntry"> | Date | string | null
  }

  export type ApprovalDefinitionCreateInput = {
    id?: string
    key: string
    name: string
    category: string
    description?: string | null
    latestVersion?: number
    status?: $Enums.ProcessStatus
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutApprovalDefinitionsInput
    versions?: ApprovalVersionCreateNestedManyWithoutDefinitionInput
  }

  export type ApprovalDefinitionUncheckedCreateInput = {
    id?: string
    key: string
    name: string
    category: string
    description?: string | null
    latestVersion?: number
    organizationId?: string | null
    status?: $Enums.ProcessStatus
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    versions?: ApprovalVersionUncheckedCreateNestedManyWithoutDefinitionInput
  }

  export type ApprovalDefinitionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutApprovalDefinitionsNestedInput
    versions?: ApprovalVersionUpdateManyWithoutDefinitionNestedInput
  }

  export type ApprovalDefinitionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    versions?: ApprovalVersionUncheckedUpdateManyWithoutDefinitionNestedInput
  }

  export type ApprovalDefinitionCreateManyInput = {
    id?: string
    key: string
    name: string
    category: string
    description?: string | null
    latestVersion?: number
    organizationId?: string | null
    status?: $Enums.ProcessStatus
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
  }

  export type ApprovalDefinitionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalDefinitionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalVersionCreateInput = {
    id?: string
    version: number
    name: string
    isDefault?: boolean
    processModel: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: $Enums.VersionStatus
    deployedAt?: Date | string | null
    deployedBy?: string | null
    changeLog?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: ApprovalInstanceCreateNestedManyWithoutVersionInput
    definition: ApprovalDefinitionCreateNestedOneWithoutVersionsInput
  }

  export type ApprovalVersionUncheckedCreateInput = {
    id?: string
    definitionId: string
    version: number
    name: string
    isDefault?: boolean
    processModel: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: $Enums.VersionStatus
    deployedAt?: Date | string | null
    deployedBy?: string | null
    changeLog?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: ApprovalInstanceUncheckedCreateNestedManyWithoutVersionInput
  }

  export type ApprovalVersionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: ApprovalInstanceUpdateManyWithoutVersionNestedInput
    definition?: ApprovalDefinitionUpdateOneRequiredWithoutVersionsNestedInput
  }

  export type ApprovalVersionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: ApprovalInstanceUncheckedUpdateManyWithoutVersionNestedInput
  }

  export type ApprovalVersionCreateManyInput = {
    id?: string
    definitionId: string
    version: number
    name: string
    isDefault?: boolean
    processModel: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: $Enums.VersionStatus
    deployedAt?: Date | string | null
    deployedBy?: string | null
    changeLog?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalVersionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalVersionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalInstanceCreateInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    initiator: UserCreateNestedOneWithoutInitiatedProcessesInput
    version: ApprovalVersionCreateNestedOneWithoutInstancesInput
    nodeInstances?: ApprovalNodeInstanceCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceUncheckedCreateInput = {
    id?: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskUncheckedCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueUncheckedCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiator?: UserUpdateOneRequiredWithoutInitiatedProcessesNestedInput
    version?: ApprovalVersionUpdateOneRequiredWithoutInstancesNestedInput
    nodeInstances?: ApprovalNodeInstanceUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    initiatorId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUncheckedUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUncheckedUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceCreateManyInput = {
    id?: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
  }

  export type ApprovalInstanceUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalInstanceUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    initiatorId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalNodeInstanceCreateInput = {
    id?: string
    nodeId: string
    nodeName: string
    nodeType: string
    status?: $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceCreateassigneesInput | string[]
    approvalMode?: string | null
    executionCount?: number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: Date | string
    endTime?: Date | string | null
    instance: ApprovalInstanceCreateNestedOneWithoutNodeInstancesInput
    approvalTasks?: ApprovalTaskCreateNestedManyWithoutNodeInstanceInput
  }

  export type ApprovalNodeInstanceUncheckedCreateInput = {
    id?: string
    instanceId: string
    nodeId: string
    nodeName: string
    nodeType: string
    status?: $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceCreateassigneesInput | string[]
    approvalMode?: string | null
    executionCount?: number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: Date | string
    endTime?: Date | string | null
    approvalTasks?: ApprovalTaskUncheckedCreateNestedManyWithoutNodeInstanceInput
  }

  export type ApprovalNodeInstanceUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    instance?: ApprovalInstanceUpdateOneRequiredWithoutNodeInstancesNestedInput
    approvalTasks?: ApprovalTaskUpdateManyWithoutNodeInstanceNestedInput
  }

  export type ApprovalNodeInstanceUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalTasks?: ApprovalTaskUncheckedUpdateManyWithoutNodeInstanceNestedInput
  }

  export type ApprovalNodeInstanceCreateManyInput = {
    id?: string
    instanceId: string
    nodeId: string
    nodeName: string
    nodeType: string
    status?: $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceCreateassigneesInput | string[]
    approvalMode?: string | null
    executionCount?: number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: Date | string
    endTime?: Date | string | null
  }

  export type ApprovalNodeInstanceUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalNodeInstanceUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalTaskCreateInput = {
    id?: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    actionLogs?: ApprovalTaskLogCreateNestedManyWithoutTaskInput
    instance: ApprovalInstanceCreateNestedOneWithoutApprovalTasksInput
    nodeInstance: ApprovalNodeInstanceCreateNestedOneWithoutApprovalTasksInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskUncheckedCreateInput = {
    id?: string
    instanceId: string
    nodeInstanceId: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    actionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTaskInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actionLogs?: ApprovalTaskLogUpdateManyWithoutTaskNestedInput
    instance?: ApprovalInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput
    nodeInstance?: ApprovalNodeInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalTaskUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    nodeInstanceId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutTaskNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalTaskCreateManyInput = {
    id?: string
    instanceId: string
    nodeInstanceId: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
  }

  export type ApprovalTaskUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalTaskUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    nodeInstanceId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalTaskLogCreateInput = {
    id?: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    comment?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
    operator: UserCreateNestedOneWithoutApprovalActionLogsInput
    targetUser?: UserCreateNestedOneWithoutApprovalActionTargetsInput
    task: ApprovalTaskCreateNestedOneWithoutActionLogsInput
  }

  export type ApprovalTaskLogUncheckedCreateInput = {
    id?: string
    taskId: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    operatorId: string
    comment?: string | null
    targetUserId?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
  }

  export type ApprovalTaskLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
    operator?: UserUpdateOneRequiredWithoutApprovalActionLogsNestedInput
    targetUser?: UserUpdateOneWithoutApprovalActionTargetsNestedInput
    task?: ApprovalTaskUpdateOneRequiredWithoutActionLogsNestedInput
  }

  export type ApprovalTaskLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    operatorId?: StringFieldUpdateOperationsInput | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalTaskLogCreateManyInput = {
    id?: string
    taskId: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    operatorId: string
    comment?: string | null
    targetUserId?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
  }

  export type ApprovalTaskLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalTaskLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    operatorId?: StringFieldUpdateOperationsInput | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CallbackRetryQueueCreateInput = {
    id?: string
    callbackType: string
    callbackUrl?: string | null
    payload: JsonNullValueInput | InputJsonValue
    retryCount?: number
    maxRetries?: number
    nextRetryAt: Date | string
    lastError?: string | null
    status?: $Enums.CallbackStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    instance: ApprovalInstanceCreateNestedOneWithoutCallbackRetriesInput
  }

  export type CallbackRetryQueueUncheckedCreateInput = {
    id?: string
    instanceId: string
    callbackType: string
    callbackUrl?: string | null
    payload: JsonNullValueInput | InputJsonValue
    retryCount?: number
    maxRetries?: number
    nextRetryAt: Date | string
    lastError?: string | null
    status?: $Enums.CallbackStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CallbackRetryQueueUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    callbackType?: StringFieldUpdateOperationsInput | string
    callbackUrl?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumCallbackStatusFieldUpdateOperationsInput | $Enums.CallbackStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instance?: ApprovalInstanceUpdateOneRequiredWithoutCallbackRetriesNestedInput
  }

  export type CallbackRetryQueueUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    callbackType?: StringFieldUpdateOperationsInput | string
    callbackUrl?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumCallbackStatusFieldUpdateOperationsInput | $Enums.CallbackStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CallbackRetryQueueCreateManyInput = {
    id?: string
    instanceId: string
    callbackType: string
    callbackUrl?: string | null
    payload: JsonNullValueInput | InputJsonValue
    retryCount?: number
    maxRetries?: number
    nextRetryAt: Date | string
    lastError?: string | null
    status?: $Enums.CallbackStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CallbackRetryQueueUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    callbackType?: StringFieldUpdateOperationsInput | string
    callbackUrl?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumCallbackStatusFieldUpdateOperationsInput | $Enums.CallbackStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CallbackRetryQueueUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    callbackType?: StringFieldUpdateOperationsInput | string
    callbackUrl?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumCallbackStatusFieldUpdateOperationsInput | $Enums.CallbackStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReminderQueueCreateInput = {
    id?: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
    task: ApprovalTaskCreateNestedOneWithoutReminderQueuesInput
    instance: ApprovalInstanceCreateNestedOneWithoutReminderQueuesInput
  }

  export type ReminderQueueUncheckedCreateInput = {
    id?: string
    taskId: string
    instanceId: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
  }

  export type ReminderQueueUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: ApprovalTaskUpdateOneRequiredWithoutReminderQueuesNestedInput
    instance?: ApprovalInstanceUpdateOneRequiredWithoutReminderQueuesNestedInput
  }

  export type ReminderQueueUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReminderQueueCreateManyInput = {
    id?: string
    taskId: string
    instanceId: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
  }

  export type ReminderQueueUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReminderQueueUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDelegationSettingCreateInput = {
    id?: string
    enabled?: boolean
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutDelegationSettingsInput
    delegateUser: UserCreateNestedOneWithoutDelegatedToMeInput
  }

  export type UserDelegationSettingUncheckedCreateInput = {
    id?: string
    userId: string
    enabled?: boolean
    delegateUserId: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDelegationSettingUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutDelegationSettingsNestedInput
    delegateUser?: UserUpdateOneRequiredWithoutDelegatedToMeNestedInput
  }

  export type UserDelegationSettingUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    delegateUserId?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDelegationSettingCreateManyInput = {
    id?: string
    userId: string
    enabled?: boolean
    delegateUserId: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDelegationSettingUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDelegationSettingUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    delegateUserId?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminConfigCreateInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalAdminConfigUncheckedCreateInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalAdminConfigUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminConfigUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminConfigCreateManyInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalAdminConfigUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminConfigUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminExportCreateInput = {
    id?: string
    status?: $Enums.ApprovalAdminExportStatus
    format?: string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: string | null
    fileName?: string | null
    fileSize?: bigint | number | null
    contentType?: string | null
    totalRows?: number | null
    errorMessage?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    expiresAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    requester: UserCreateNestedOneWithoutApprovalAdminExportsInput
  }

  export type ApprovalAdminExportUncheckedCreateInput = {
    id?: string
    status?: $Enums.ApprovalAdminExportStatus
    format?: string
    requestedBy: string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: string | null
    fileName?: string | null
    fileSize?: bigint | number | null
    contentType?: string | null
    totalRows?: number | null
    errorMessage?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    expiresAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalAdminExportUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumApprovalAdminExportStatusFieldUpdateOperationsInput | $Enums.ApprovalAdminExportStatus
    format?: StringFieldUpdateOperationsInput | string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    contentType?: NullableStringFieldUpdateOperationsInput | string | null
    totalRows?: NullableIntFieldUpdateOperationsInput | number | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    requester?: UserUpdateOneRequiredWithoutApprovalAdminExportsNestedInput
  }

  export type ApprovalAdminExportUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumApprovalAdminExportStatusFieldUpdateOperationsInput | $Enums.ApprovalAdminExportStatus
    format?: StringFieldUpdateOperationsInput | string
    requestedBy?: StringFieldUpdateOperationsInput | string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    contentType?: NullableStringFieldUpdateOperationsInput | string | null
    totalRows?: NullableIntFieldUpdateOperationsInput | number | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminExportCreateManyInput = {
    id?: string
    status?: $Enums.ApprovalAdminExportStatus
    format?: string
    requestedBy: string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: string | null
    fileName?: string | null
    fileSize?: bigint | number | null
    contentType?: string | null
    totalRows?: number | null
    errorMessage?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    expiresAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalAdminExportUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumApprovalAdminExportStatusFieldUpdateOperationsInput | $Enums.ApprovalAdminExportStatus
    format?: StringFieldUpdateOperationsInput | string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    contentType?: NullableStringFieldUpdateOperationsInput | string | null
    totalRows?: NullableIntFieldUpdateOperationsInput | number | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminExportUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumApprovalAdminExportStatusFieldUpdateOperationsInput | $Enums.ApprovalAdminExportStatus
    format?: StringFieldUpdateOperationsInput | string
    requestedBy?: StringFieldUpdateOperationsInput | string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    contentType?: NullableStringFieldUpdateOperationsInput | string | null
    totalRows?: NullableIntFieldUpdateOperationsInput | number | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationCreateInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationCreateManyInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type OrganizationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type OrganizationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type OrganizationRegionCreateInput = {
    id?: string
    isDefault?: boolean
    createdAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutOrganizationRegionsInput
    region: RegionCreateNestedOneWithoutOrganizationRegionsInput
  }

  export type OrganizationRegionUncheckedCreateInput = {
    id?: string
    organizationId: string
    regionId: string
    isDefault?: boolean
    createdAt?: Date | string
  }

  export type OrganizationRegionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutOrganizationRegionsNestedInput
    region?: RegionUpdateOneRequiredWithoutOrganizationRegionsNestedInput
  }

  export type OrganizationRegionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    regionId?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationRegionCreateManyInput = {
    id?: string
    organizationId: string
    regionId: string
    isDefault?: boolean
    createdAt?: Date | string
  }

  export type OrganizationRegionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationRegionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    regionId?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RegionCreateInput = {
    id?: string
    code: string
    name: string
    nameEn?: string | null
    nameZh?: string | null
    timezone?: string | null
    currency?: string | null
    locale?: string | null
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryOrganizations?: OrganizationCreateNestedManyWithoutPrimaryRegionInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutRegionInput
  }

  export type RegionUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    nameEn?: string | null
    nameZh?: string | null
    timezone?: string | null
    currency?: string | null
    locale?: string | null
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryOrganizations?: OrganizationUncheckedCreateNestedManyWithoutPrimaryRegionInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutRegionInput
  }

  export type RegionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: NullableStringFieldUpdateOperationsInput | string | null
    currency?: NullableStringFieldUpdateOperationsInput | string | null
    locale?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryOrganizations?: OrganizationUpdateManyWithoutPrimaryRegionNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutRegionNestedInput
  }

  export type RegionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: NullableStringFieldUpdateOperationsInput | string | null
    currency?: NullableStringFieldUpdateOperationsInput | string | null
    locale?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryOrganizations?: OrganizationUncheckedUpdateManyWithoutPrimaryRegionNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutRegionNestedInput
  }

  export type RegionCreateManyInput = {
    id?: string
    code: string
    name: string
    nameEn?: string | null
    nameZh?: string | null
    timezone?: string | null
    currency?: string | null
    locale?: string | null
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type RegionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: NullableStringFieldUpdateOperationsInput | string | null
    currency?: NullableStringFieldUpdateOperationsInput | string | null
    locale?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RegionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: NullableStringFieldUpdateOperationsInput | string | null
    currency?: NullableStringFieldUpdateOperationsInput | string | null
    locale?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DepartmentCreateInput = {
    id?: string
    name: string
    code: string
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutDepartmentsInput
    parent?: DepartmentCreateNestedOneWithoutChildrenInput
    children?: DepartmentCreateNestedManyWithoutParentInput
    userMemberships?: UserDepartmentCreateNestedManyWithoutDepartmentInput
  }

  export type DepartmentUncheckedCreateInput = {
    id?: string
    organizationId: string
    name: string
    code: string
    parentId?: string | null
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DepartmentUncheckedCreateNestedManyWithoutParentInput
    userMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutDepartmentInput
  }

  export type DepartmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutDepartmentsNestedInput
    parent?: DepartmentUpdateOneWithoutChildrenNestedInput
    children?: DepartmentUpdateManyWithoutParentNestedInput
    userMemberships?: UserDepartmentUpdateManyWithoutDepartmentNestedInput
  }

  export type DepartmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DepartmentUncheckedUpdateManyWithoutParentNestedInput
    userMemberships?: UserDepartmentUncheckedUpdateManyWithoutDepartmentNestedInput
  }

  export type DepartmentCreateManyInput = {
    id?: string
    organizationId: string
    name: string
    code: string
    parentId?: string | null
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DepartmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DepartmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PositionCreateInput = {
    id?: string
    name: string
    code: string
    level?: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    userMemberships?: UserDepartmentCreateNestedManyWithoutPositionInput
  }

  export type PositionUncheckedCreateInput = {
    id?: string
    name: string
    code: string
    level?: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    userMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutPositionInput
  }

  export type PositionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    level?: IntFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    userMemberships?: UserDepartmentUpdateManyWithoutPositionNestedInput
  }

  export type PositionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    level?: IntFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    userMemberships?: UserDepartmentUncheckedUpdateManyWithoutPositionNestedInput
  }

  export type PositionCreateManyInput = {
    id?: string
    name: string
    code: string
    level?: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PositionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    level?: IntFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PositionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    level?: IntFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserDepartmentCreateInput = {
    id?: string
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutDepartmentMembershipsInput
    organization: OrganizationCreateNestedOneWithoutUserDepartmentsInput
    department: DepartmentCreateNestedOneWithoutUserMembershipsInput
    position?: PositionCreateNestedOneWithoutUserMembershipsInput
    manager?: UserCreateNestedOneWithoutManagedUsersInput
  }

  export type UserDepartmentUncheckedCreateInput = {
    id?: string
    userId: string
    organizationId: string
    departmentId: string
    positionId?: string | null
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutDepartmentMembershipsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutUserDepartmentsNestedInput
    department?: DepartmentUpdateOneRequiredWithoutUserMembershipsNestedInput
    position?: PositionUpdateOneWithoutUserMembershipsNestedInput
    manager?: UserUpdateOneWithoutManagedUsersNestedInput
  }

  export type UserDepartmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentCreateManyInput = {
    id?: string
    userId: string
    organizationId: string
    departmentId: string
    positionId?: string | null
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ExpenseRequestCreateInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    category: $Enums.ExpenseCategory
    workflowInstanceId?: string | null
    status?: $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: ExpenseItemCreateNestedManyWithoutExpenseInput
    creator: UserCreateNestedOneWithoutCreatedExpensesInput
  }

  export type ExpenseRequestUncheckedCreateInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    creatorId: string
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    category: $Enums.ExpenseCategory
    workflowInstanceId?: string | null
    status?: $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: ExpenseItemUncheckedCreateNestedManyWithoutExpenseInput
  }

  export type ExpenseRequestUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: ExpenseItemUpdateManyWithoutExpenseNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedExpensesNestedInput
  }

  export type ExpenseRequestUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: ExpenseItemUncheckedUpdateManyWithoutExpenseNestedInput
  }

  export type ExpenseRequestCreateManyInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    creatorId: string
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    category: $Enums.ExpenseCategory
    workflowInstanceId?: string | null
    status?: $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ExpenseRequestUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ExpenseRequestUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ExpenseItemCreateInput = {
    id?: string
    description: string
    amount: Decimal | DecimalJsLike | number | string
    date: Date | string
    expense: ExpenseRequestCreateNestedOneWithoutItemsInput
  }

  export type ExpenseItemUncheckedCreateInput = {
    id?: string
    expenseId: string
    description: string
    amount: Decimal | DecimalJsLike | number | string
    date: Date | string
  }

  export type ExpenseItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    expense?: ExpenseRequestUpdateOneRequiredWithoutItemsNestedInput
  }

  export type ExpenseItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    expenseId?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ExpenseItemCreateManyInput = {
    id?: string
    expenseId: string
    description: string
    amount: Decimal | DecimalJsLike | number | string
    date: Date | string
  }

  export type ExpenseItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ExpenseItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    expenseId?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PurchaseRequestCreateInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    totalAmount: Decimal | DecimalJsLike | number | string
    currency?: string
    vendorName: string
    vendorContact?: string | null
    workflowInstanceId?: string | null
    status?: $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: Date | string | null
    actualDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: PurchaseItemCreateNestedManyWithoutPurchaseInput
    creator: UserCreateNestedOneWithoutCreatedPurchasesInput
  }

  export type PurchaseRequestUncheckedCreateInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    creatorId: string
    totalAmount: Decimal | DecimalJsLike | number | string
    currency?: string
    vendorName: string
    vendorContact?: string | null
    workflowInstanceId?: string | null
    status?: $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: Date | string | null
    actualDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: PurchaseItemUncheckedCreateNestedManyWithoutPurchaseInput
  }

  export type PurchaseRequestUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: PurchaseItemUpdateManyWithoutPurchaseNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedPurchasesNestedInput
  }

  export type PurchaseRequestUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: PurchaseItemUncheckedUpdateManyWithoutPurchaseNestedInput
  }

  export type PurchaseRequestCreateManyInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    creatorId: string
    totalAmount: Decimal | DecimalJsLike | number | string
    currency?: string
    vendorName: string
    vendorContact?: string | null
    workflowInstanceId?: string | null
    status?: $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: Date | string | null
    actualDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PurchaseRequestUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PurchaseRequestUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PurchaseItemCreateInput = {
    id?: string
    name: string
    description?: string | null
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    amount: Decimal | DecimalJsLike | number | string
    purchase: PurchaseRequestCreateNestedOneWithoutItemsInput
  }

  export type PurchaseItemUncheckedCreateInput = {
    id?: string
    purchaseId: string
    name: string
    description?: string | null
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    amount: Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    purchase?: PurchaseRequestUpdateOneRequiredWithoutItemsNestedInput
  }

  export type PurchaseItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    purchaseId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemCreateManyInput = {
    id?: string
    purchaseId: string
    name: string
    description?: string | null
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    amount: Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    purchaseId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
  }

  export type ContractRequestCreateInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    contractType: $Enums.ContractType
    partnerName: string
    partnerContact?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    workflowInstanceId?: string | null
    status?: $Enums.ContractStatus
    sealRequired?: boolean
    sealAppliedAt?: Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: Date | string | null
    startDate?: Date | string | null
    endDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedContractsInput
  }

  export type ContractRequestUncheckedCreateInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    creatorId: string
    contractType: $Enums.ContractType
    partnerName: string
    partnerContact?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    workflowInstanceId?: string | null
    status?: $Enums.ContractStatus
    sealRequired?: boolean
    sealAppliedAt?: Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: Date | string | null
    startDate?: Date | string | null
    endDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ContractRequestUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    contractType?: EnumContractTypeFieldUpdateOperationsInput | $Enums.ContractType
    partnerName?: StringFieldUpdateOperationsInput | string
    partnerContact?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumContractStatusFieldUpdateOperationsInput | $Enums.ContractStatus
    sealRequired?: BoolFieldUpdateOperationsInput | boolean
    sealAppliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedContractsNestedInput
  }

  export type ContractRequestUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    contractType?: EnumContractTypeFieldUpdateOperationsInput | $Enums.ContractType
    partnerName?: StringFieldUpdateOperationsInput | string
    partnerContact?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumContractStatusFieldUpdateOperationsInput | $Enums.ContractStatus
    sealRequired?: BoolFieldUpdateOperationsInput | boolean
    sealAppliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ContractRequestCreateManyInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    creatorId: string
    contractType: $Enums.ContractType
    partnerName: string
    partnerContact?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    workflowInstanceId?: string | null
    status?: $Enums.ContractStatus
    sealRequired?: boolean
    sealAppliedAt?: Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: Date | string | null
    startDate?: Date | string | null
    endDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ContractRequestUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    contractType?: EnumContractTypeFieldUpdateOperationsInput | $Enums.ContractType
    partnerName?: StringFieldUpdateOperationsInput | string
    partnerContact?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumContractStatusFieldUpdateOperationsInput | $Enums.ContractStatus
    sealRequired?: BoolFieldUpdateOperationsInput | boolean
    sealAppliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ContractRequestUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    contractType?: EnumContractTypeFieldUpdateOperationsInput | $Enums.ContractType
    partnerName?: StringFieldUpdateOperationsInput | string
    partnerContact?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumContractStatusFieldUpdateOperationsInput | $Enums.ContractStatus
    sealRequired?: BoolFieldUpdateOperationsInput | boolean
    sealAppliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartCreateInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationCreateNestedManyWithoutPartInput
    labels?: PartLabelCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertCreateNestedManyWithoutPartInput
    warehouse?: WarehouseCreateNestedOneWithoutPartsInput
    storageLocation?: StorageLocationCreateNestedOneWithoutPartsInput
    stationRef?: StationCreateNestedOneWithoutPartsInput
  }

  export type PartUncheckedCreateInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogUncheckedCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationUncheckedCreateNestedManyWithoutPartInput
    labels?: PartLabelUncheckedCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertUncheckedCreateNestedManyWithoutPartInput
  }

  export type PartUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUpdateManyWithoutPartNestedInput
    labels?: PartLabelUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUpdateManyWithoutPartNestedInput
    warehouse?: WarehouseUpdateOneWithoutPartsNestedInput
    storageLocation?: StorageLocationUpdateOneWithoutPartsNestedInput
    stationRef?: StationUpdateOneWithoutPartsNestedInput
  }

  export type PartUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUncheckedUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUncheckedUpdateManyWithoutPartNestedInput
    labels?: PartLabelUncheckedUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUncheckedUpdateManyWithoutPartNestedInput
  }

  export type PartCreateManyInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PartUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StationCreateInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    area?: string | null
    line?: string | null
    type?: string | null
    status?: $Enums.StationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartCreateNestedManyWithoutStationRefInput
  }

  export type StationUncheckedCreateInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    area?: string | null
    line?: string | null
    type?: string | null
    status?: $Enums.StationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartUncheckedCreateNestedManyWithoutStationRefInput
  }

  export type StationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    area?: NullableStringFieldUpdateOperationsInput | string | null
    line?: NullableStringFieldUpdateOperationsInput | string | null
    type?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumStationStatusFieldUpdateOperationsInput | $Enums.StationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartUpdateManyWithoutStationRefNestedInput
  }

  export type StationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    area?: NullableStringFieldUpdateOperationsInput | string | null
    line?: NullableStringFieldUpdateOperationsInput | string | null
    type?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumStationStatusFieldUpdateOperationsInput | $Enums.StationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartUncheckedUpdateManyWithoutStationRefNestedInput
  }

  export type StationCreateManyInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    area?: string | null
    line?: string | null
    type?: string | null
    status?: $Enums.StationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    area?: NullableStringFieldUpdateOperationsInput | string | null
    line?: NullableStringFieldUpdateOperationsInput | string | null
    type?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumStationStatusFieldUpdateOperationsInput | $Enums.StationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    area?: NullableStringFieldUpdateOperationsInput | string | null
    line?: NullableStringFieldUpdateOperationsInput | string | null
    type?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumStationStatusFieldUpdateOperationsInput | $Enums.StationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type WarehouseCreateInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    address?: string | null
    contactPerson?: string | null
    contactPhone?: string | null
    status?: $Enums.WarehouseStatus
    isDefault?: boolean
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    storageLocations?: StorageLocationCreateNestedManyWithoutWarehouseInput
    parts?: PartCreateNestedManyWithoutWarehouseInput
  }

  export type WarehouseUncheckedCreateInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    address?: string | null
    contactPerson?: string | null
    contactPhone?: string | null
    status?: $Enums.WarehouseStatus
    isDefault?: boolean
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    storageLocations?: StorageLocationUncheckedCreateNestedManyWithoutWarehouseInput
    parts?: PartUncheckedCreateNestedManyWithoutWarehouseInput
  }

  export type WarehouseUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    contactPerson?: NullableStringFieldUpdateOperationsInput | string | null
    contactPhone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumWarehouseStatusFieldUpdateOperationsInput | $Enums.WarehouseStatus
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    storageLocations?: StorageLocationUpdateManyWithoutWarehouseNestedInput
    parts?: PartUpdateManyWithoutWarehouseNestedInput
  }

  export type WarehouseUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    contactPerson?: NullableStringFieldUpdateOperationsInput | string | null
    contactPhone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumWarehouseStatusFieldUpdateOperationsInput | $Enums.WarehouseStatus
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    storageLocations?: StorageLocationUncheckedUpdateManyWithoutWarehouseNestedInput
    parts?: PartUncheckedUpdateManyWithoutWarehouseNestedInput
  }

  export type WarehouseCreateManyInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    address?: string | null
    contactPerson?: string | null
    contactPhone?: string | null
    status?: $Enums.WarehouseStatus
    isDefault?: boolean
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type WarehouseUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    contactPerson?: NullableStringFieldUpdateOperationsInput | string | null
    contactPhone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumWarehouseStatusFieldUpdateOperationsInput | $Enums.WarehouseStatus
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type WarehouseUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    contactPerson?: NullableStringFieldUpdateOperationsInput | string | null
    contactPhone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumWarehouseStatusFieldUpdateOperationsInput | $Enums.WarehouseStatus
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StorageLocationCreateInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    zone?: string | null
    aisle?: string | null
    rack?: string | null
    level?: string | null
    position?: string | null
    capacity?: number | null
    status?: $Enums.StorageLocationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    warehouse: WarehouseCreateNestedOneWithoutStorageLocationsInput
    parts?: PartCreateNestedManyWithoutStorageLocationInput
  }

  export type StorageLocationUncheckedCreateInput = {
    id?: string
    warehouseId: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    zone?: string | null
    aisle?: string | null
    rack?: string | null
    level?: string | null
    position?: string | null
    capacity?: number | null
    status?: $Enums.StorageLocationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartUncheckedCreateNestedManyWithoutStorageLocationInput
  }

  export type StorageLocationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    warehouse?: WarehouseUpdateOneRequiredWithoutStorageLocationsNestedInput
    parts?: PartUpdateManyWithoutStorageLocationNestedInput
  }

  export type StorageLocationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    warehouseId?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartUncheckedUpdateManyWithoutStorageLocationNestedInput
  }

  export type StorageLocationCreateManyInput = {
    id?: string
    warehouseId: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    zone?: string | null
    aisle?: string | null
    rack?: string | null
    level?: string | null
    position?: string | null
    capacity?: number | null
    status?: $Enums.StorageLocationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StorageLocationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StorageLocationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    warehouseId?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartLabelCreateInput = {
    id?: string
    labelCode: string
    qrCodeData: string
    template?: string
    size?: string
    printCount?: number
    lastPrintedAt?: Date | string | null
    printedBy?: string | null
    status?: $Enums.LabelStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    part: PartCreateNestedOneWithoutLabelsInput
  }

  export type PartLabelUncheckedCreateInput = {
    id?: string
    partId: string
    labelCode: string
    qrCodeData: string
    template?: string
    size?: string
    printCount?: number
    lastPrintedAt?: Date | string | null
    printedBy?: string | null
    status?: $Enums.LabelStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartLabelUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelCode?: StringFieldUpdateOperationsInput | string
    qrCodeData?: StringFieldUpdateOperationsInput | string
    template?: StringFieldUpdateOperationsInput | string
    size?: StringFieldUpdateOperationsInput | string
    printCount?: IntFieldUpdateOperationsInput | number
    lastPrintedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    printedBy?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLabelStatusFieldUpdateOperationsInput | $Enums.LabelStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    part?: PartUpdateOneRequiredWithoutLabelsNestedInput
  }

  export type PartLabelUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    partId?: StringFieldUpdateOperationsInput | string
    labelCode?: StringFieldUpdateOperationsInput | string
    qrCodeData?: StringFieldUpdateOperationsInput | string
    template?: StringFieldUpdateOperationsInput | string
    size?: StringFieldUpdateOperationsInput | string
    printCount?: IntFieldUpdateOperationsInput | number
    lastPrintedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    printedBy?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLabelStatusFieldUpdateOperationsInput | $Enums.LabelStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartLabelCreateManyInput = {
    id?: string
    partId: string
    labelCode: string
    qrCodeData: string
    template?: string
    size?: string
    printCount?: number
    lastPrintedAt?: Date | string | null
    printedBy?: string | null
    status?: $Enums.LabelStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartLabelUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelCode?: StringFieldUpdateOperationsInput | string
    qrCodeData?: StringFieldUpdateOperationsInput | string
    template?: StringFieldUpdateOperationsInput | string
    size?: StringFieldUpdateOperationsInput | string
    printCount?: IntFieldUpdateOperationsInput | number
    lastPrintedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    printedBy?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLabelStatusFieldUpdateOperationsInput | $Enums.LabelStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartLabelUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    partId?: StringFieldUpdateOperationsInput | string
    labelCode?: StringFieldUpdateOperationsInput | string
    qrCodeData?: StringFieldUpdateOperationsInput | string
    template?: StringFieldUpdateOperationsInput | string
    size?: StringFieldUpdateOperationsInput | string
    printCount?: IntFieldUpdateOperationsInput | number
    lastPrintedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    printedBy?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLabelStatusFieldUpdateOperationsInput | $Enums.LabelStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InventoryLogCreateInput = {
    id?: string
    operationType: $Enums.InventoryOperationType
    quantity: number
    previousStock: number
    newStock: number
    station?: string | null
    warehouseLocation?: string | null
    reason?: string | null
    referenceType?: string | null
    referenceId?: string | null
    operatorId: string
    operatorName: string
    scannedCode?: string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    part: PartCreateNestedOneWithoutInventoryLogsInput
  }

  export type InventoryLogUncheckedCreateInput = {
    id?: string
    partId: string
    operationType: $Enums.InventoryOperationType
    quantity: number
    previousStock: number
    newStock: number
    station?: string | null
    warehouseLocation?: string | null
    reason?: string | null
    referenceType?: string | null
    referenceId?: string | null
    operatorId: string
    operatorName: string
    scannedCode?: string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type InventoryLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: EnumInventoryOperationTypeFieldUpdateOperationsInput | $Enums.InventoryOperationType
    quantity?: IntFieldUpdateOperationsInput | number
    previousStock?: IntFieldUpdateOperationsInput | number
    newStock?: IntFieldUpdateOperationsInput | number
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    referenceType?: NullableStringFieldUpdateOperationsInput | string | null
    referenceId?: NullableStringFieldUpdateOperationsInput | string | null
    operatorId?: StringFieldUpdateOperationsInput | string
    operatorName?: StringFieldUpdateOperationsInput | string
    scannedCode?: NullableStringFieldUpdateOperationsInput | string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    part?: PartUpdateOneRequiredWithoutInventoryLogsNestedInput
  }

  export type InventoryLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    partId?: StringFieldUpdateOperationsInput | string
    operationType?: EnumInventoryOperationTypeFieldUpdateOperationsInput | $Enums.InventoryOperationType
    quantity?: IntFieldUpdateOperationsInput | number
    previousStock?: IntFieldUpdateOperationsInput | number
    newStock?: IntFieldUpdateOperationsInput | number
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    referenceType?: NullableStringFieldUpdateOperationsInput | string | null
    referenceId?: NullableStringFieldUpdateOperationsInput | string | null
    operatorId?: StringFieldUpdateOperationsInput | string
    operatorName?: StringFieldUpdateOperationsInput | string
    scannedCode?: NullableStringFieldUpdateOperationsInput | string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InventoryLogCreateManyInput = {
    id?: string
    partId: string
    operationType: $Enums.InventoryOperationType
    quantity: number
    previousStock: number
    newStock: number
    station?: string | null
    warehouseLocation?: string | null
    reason?: string | null
    referenceType?: string | null
    referenceId?: string | null
    operatorId: string
    operatorName: string
    scannedCode?: string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type InventoryLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: EnumInventoryOperationTypeFieldUpdateOperationsInput | $Enums.InventoryOperationType
    quantity?: IntFieldUpdateOperationsInput | number
    previousStock?: IntFieldUpdateOperationsInput | number
    newStock?: IntFieldUpdateOperationsInput | number
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    referenceType?: NullableStringFieldUpdateOperationsInput | string | null
    referenceId?: NullableStringFieldUpdateOperationsInput | string | null
    operatorId?: StringFieldUpdateOperationsInput | string
    operatorName?: StringFieldUpdateOperationsInput | string
    scannedCode?: NullableStringFieldUpdateOperationsInput | string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InventoryLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    partId?: StringFieldUpdateOperationsInput | string
    operationType?: EnumInventoryOperationTypeFieldUpdateOperationsInput | $Enums.InventoryOperationType
    quantity?: IntFieldUpdateOperationsInput | number
    previousStock?: IntFieldUpdateOperationsInput | number
    newStock?: IntFieldUpdateOperationsInput | number
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    referenceType?: NullableStringFieldUpdateOperationsInput | string | null
    referenceId?: NullableStringFieldUpdateOperationsInput | string | null
    operatorId?: StringFieldUpdateOperationsInput | string
    operatorName?: StringFieldUpdateOperationsInput | string
    scannedCode?: NullableStringFieldUpdateOperationsInput | string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StockAlertCreateInput = {
    id?: string
    alertType: $Enums.StockAlertType
    severity: $Enums.AlertSeverity
    currentStock: number
    threshold: number
    message: string
    status?: $Enums.AlertStatus
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    part: PartCreateNestedOneWithoutStockAlertsInput
  }

  export type StockAlertUncheckedCreateInput = {
    id?: string
    partId: string
    alertType: $Enums.StockAlertType
    severity: $Enums.AlertSeverity
    currentStock: number
    threshold: number
    message: string
    status?: $Enums.AlertStatus
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type StockAlertUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    alertType?: EnumStockAlertTypeFieldUpdateOperationsInput | $Enums.StockAlertType
    severity?: EnumAlertSeverityFieldUpdateOperationsInput | $Enums.AlertSeverity
    currentStock?: IntFieldUpdateOperationsInput | number
    threshold?: IntFieldUpdateOperationsInput | number
    message?: StringFieldUpdateOperationsInput | string
    status?: EnumAlertStatusFieldUpdateOperationsInput | $Enums.AlertStatus
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    part?: PartUpdateOneRequiredWithoutStockAlertsNestedInput
  }

  export type StockAlertUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    partId?: StringFieldUpdateOperationsInput | string
    alertType?: EnumStockAlertTypeFieldUpdateOperationsInput | $Enums.StockAlertType
    severity?: EnumAlertSeverityFieldUpdateOperationsInput | $Enums.AlertSeverity
    currentStock?: IntFieldUpdateOperationsInput | number
    threshold?: IntFieldUpdateOperationsInput | number
    message?: StringFieldUpdateOperationsInput | string
    status?: EnumAlertStatusFieldUpdateOperationsInput | $Enums.AlertStatus
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StockAlertCreateManyInput = {
    id?: string
    partId: string
    alertType: $Enums.StockAlertType
    severity: $Enums.AlertSeverity
    currentStock: number
    threshold: number
    message: string
    status?: $Enums.AlertStatus
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type StockAlertUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    alertType?: EnumStockAlertTypeFieldUpdateOperationsInput | $Enums.StockAlertType
    severity?: EnumAlertSeverityFieldUpdateOperationsInput | $Enums.AlertSeverity
    currentStock?: IntFieldUpdateOperationsInput | number
    threshold?: IntFieldUpdateOperationsInput | number
    message?: StringFieldUpdateOperationsInput | string
    status?: EnumAlertStatusFieldUpdateOperationsInput | $Enums.AlertStatus
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StockAlertUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    partId?: StringFieldUpdateOperationsInput | string
    alertType?: EnumStockAlertTypeFieldUpdateOperationsInput | $Enums.StockAlertType
    severity?: EnumAlertSeverityFieldUpdateOperationsInput | $Enums.AlertSeverity
    currentStock?: IntFieldUpdateOperationsInput | number
    threshold?: IntFieldUpdateOperationsInput | number
    message?: StringFieldUpdateOperationsInput | string
    status?: EnumAlertStatusFieldUpdateOperationsInput | $Enums.AlertStatus
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InventoryImportLogCreateInput = {
    id?: string
    fileName: string
    fileSize: number
    fileHash?: string | null
    status?: $Enums.ImportStatus
    totalRows?: number
    successRows?: number
    failedRows?: number
    skippedRows?: number
    errors?: NullableJsonNullValueInput | InputJsonValue
    summary?: NullableJsonNullValueInput | InputJsonValue
    importedBy: string
    importedAt?: Date | string
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
  }

  export type InventoryImportLogUncheckedCreateInput = {
    id?: string
    fileName: string
    fileSize: number
    fileHash?: string | null
    status?: $Enums.ImportStatus
    totalRows?: number
    successRows?: number
    failedRows?: number
    skippedRows?: number
    errors?: NullableJsonNullValueInput | InputJsonValue
    summary?: NullableJsonNullValueInput | InputJsonValue
    importedBy: string
    importedAt?: Date | string
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
  }

  export type InventoryImportLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    fileHash?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumImportStatusFieldUpdateOperationsInput | $Enums.ImportStatus
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    failedRows?: IntFieldUpdateOperationsInput | number
    skippedRows?: IntFieldUpdateOperationsInput | number
    errors?: NullableJsonNullValueInput | InputJsonValue
    summary?: NullableJsonNullValueInput | InputJsonValue
    importedBy?: StringFieldUpdateOperationsInput | string
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
  }

  export type InventoryImportLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    fileHash?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumImportStatusFieldUpdateOperationsInput | $Enums.ImportStatus
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    failedRows?: IntFieldUpdateOperationsInput | number
    skippedRows?: IntFieldUpdateOperationsInput | number
    errors?: NullableJsonNullValueInput | InputJsonValue
    summary?: NullableJsonNullValueInput | InputJsonValue
    importedBy?: StringFieldUpdateOperationsInput | string
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
  }

  export type InventoryImportLogCreateManyInput = {
    id?: string
    fileName: string
    fileSize: number
    fileHash?: string | null
    status?: $Enums.ImportStatus
    totalRows?: number
    successRows?: number
    failedRows?: number
    skippedRows?: number
    errors?: NullableJsonNullValueInput | InputJsonValue
    summary?: NullableJsonNullValueInput | InputJsonValue
    importedBy: string
    importedAt?: Date | string
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
  }

  export type InventoryImportLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    fileHash?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumImportStatusFieldUpdateOperationsInput | $Enums.ImportStatus
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    failedRows?: IntFieldUpdateOperationsInput | number
    skippedRows?: IntFieldUpdateOperationsInput | number
    errors?: NullableJsonNullValueInput | InputJsonValue
    summary?: NullableJsonNullValueInput | InputJsonValue
    importedBy?: StringFieldUpdateOperationsInput | string
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
  }

  export type InventoryImportLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    fileHash?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumImportStatusFieldUpdateOperationsInput | $Enums.ImportStatus
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    failedRows?: IntFieldUpdateOperationsInput | number
    skippedRows?: IntFieldUpdateOperationsInput | number
    errors?: NullableJsonNullValueInput | InputJsonValue
    summary?: NullableJsonNullValueInput | InputJsonValue
    importedBy?: StringFieldUpdateOperationsInput | string
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
  }

  export type PartColumnConfigCreateInput = {
    id?: string
    userId?: string | null
    name: string
    description?: string | null
    isDefault?: boolean
    isTemplate?: boolean
    columns: JsonNullValueInput | InputJsonValue
    isPublic?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartColumnConfigUncheckedCreateInput = {
    id?: string
    userId?: string | null
    name: string
    description?: string | null
    isDefault?: boolean
    isTemplate?: boolean
    columns: JsonNullValueInput | InputJsonValue
    isPublic?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartColumnConfigUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isTemplate?: BoolFieldUpdateOperationsInput | boolean
    columns?: JsonNullValueInput | InputJsonValue
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartColumnConfigUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isTemplate?: BoolFieldUpdateOperationsInput | boolean
    columns?: JsonNullValueInput | InputJsonValue
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartColumnConfigCreateManyInput = {
    id?: string
    userId?: string | null
    name: string
    description?: string | null
    isDefault?: boolean
    isTemplate?: boolean
    columns: JsonNullValueInput | InputJsonValue
    isPublic?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartColumnConfigUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isTemplate?: BoolFieldUpdateOperationsInput | boolean
    columns?: JsonNullValueInput | InputJsonValue
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartColumnConfigUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isTemplate?: BoolFieldUpdateOperationsInput | boolean
    columns?: JsonNullValueInput | InputJsonValue
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartGroupCreateInput = {
    id?: string
    name: string
    description?: string | null
    displayOrder?: number
    isActive?: boolean
    partsCount?: number
    fieldsCount?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    customFields?: GroupCustomFieldCreateNestedManyWithoutGroupInput
    parts?: PartGroupRelationCreateNestedManyWithoutGroupInput
  }

  export type PartGroupUncheckedCreateInput = {
    id?: string
    name: string
    description?: string | null
    displayOrder?: number
    isActive?: boolean
    partsCount?: number
    fieldsCount?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    customFields?: GroupCustomFieldUncheckedCreateNestedManyWithoutGroupInput
    parts?: PartGroupRelationUncheckedCreateNestedManyWithoutGroupInput
  }

  export type PartGroupUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    partsCount?: IntFieldUpdateOperationsInput | number
    fieldsCount?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    customFields?: GroupCustomFieldUpdateManyWithoutGroupNestedInput
    parts?: PartGroupRelationUpdateManyWithoutGroupNestedInput
  }

  export type PartGroupUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    partsCount?: IntFieldUpdateOperationsInput | number
    fieldsCount?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    customFields?: GroupCustomFieldUncheckedUpdateManyWithoutGroupNestedInput
    parts?: PartGroupRelationUncheckedUpdateManyWithoutGroupNestedInput
  }

  export type PartGroupCreateManyInput = {
    id?: string
    name: string
    description?: string | null
    displayOrder?: number
    isActive?: boolean
    partsCount?: number
    fieldsCount?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PartGroupUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    partsCount?: IntFieldUpdateOperationsInput | number
    fieldsCount?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartGroupUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    partsCount?: IntFieldUpdateOperationsInput | number
    fieldsCount?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GroupCustomFieldCreateInput = {
    id?: string
    key: string
    nameEn: string
    type: $Enums.GroupFieldType
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: string | null
    placeholder?: string | null
    helpText?: string | null
    displayOrder?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    nameCn?: string | null
    group: PartGroupCreateNestedOneWithoutCustomFieldsInput
  }

  export type GroupCustomFieldUncheckedCreateInput = {
    id?: string
    groupId: string
    key: string
    nameEn: string
    type: $Enums.GroupFieldType
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: string | null
    placeholder?: string | null
    helpText?: string | null
    displayOrder?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    nameCn?: string | null
  }

  export type GroupCustomFieldUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    type?: EnumGroupFieldTypeFieldUpdateOperationsInput | $Enums.GroupFieldType
    required?: BoolFieldUpdateOperationsInput | boolean
    visible?: BoolFieldUpdateOperationsInput | boolean
    editable?: BoolFieldUpdateOperationsInput | boolean
    searchable?: BoolFieldUpdateOperationsInput | boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    placeholder?: NullableStringFieldUpdateOperationsInput | string | null
    helpText?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    group?: PartGroupUpdateOneRequiredWithoutCustomFieldsNestedInput
  }

  export type GroupCustomFieldUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    groupId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    type?: EnumGroupFieldTypeFieldUpdateOperationsInput | $Enums.GroupFieldType
    required?: BoolFieldUpdateOperationsInput | boolean
    visible?: BoolFieldUpdateOperationsInput | boolean
    editable?: BoolFieldUpdateOperationsInput | boolean
    searchable?: BoolFieldUpdateOperationsInput | boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    placeholder?: NullableStringFieldUpdateOperationsInput | string | null
    helpText?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GroupCustomFieldCreateManyInput = {
    id?: string
    groupId: string
    key: string
    nameEn: string
    type: $Enums.GroupFieldType
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: string | null
    placeholder?: string | null
    helpText?: string | null
    displayOrder?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    nameCn?: string | null
  }

  export type GroupCustomFieldUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    type?: EnumGroupFieldTypeFieldUpdateOperationsInput | $Enums.GroupFieldType
    required?: BoolFieldUpdateOperationsInput | boolean
    visible?: BoolFieldUpdateOperationsInput | boolean
    editable?: BoolFieldUpdateOperationsInput | boolean
    searchable?: BoolFieldUpdateOperationsInput | boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    placeholder?: NullableStringFieldUpdateOperationsInput | string | null
    helpText?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GroupCustomFieldUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    groupId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    type?: EnumGroupFieldTypeFieldUpdateOperationsInput | $Enums.GroupFieldType
    required?: BoolFieldUpdateOperationsInput | boolean
    visible?: BoolFieldUpdateOperationsInput | boolean
    editable?: BoolFieldUpdateOperationsInput | boolean
    searchable?: BoolFieldUpdateOperationsInput | boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    placeholder?: NullableStringFieldUpdateOperationsInput | string | null
    helpText?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PartGroupRelationCreateInput = {
    createdAt?: Date | string
    createdBy?: string | null
    group: PartGroupCreateNestedOneWithoutPartsInput
    part: PartCreateNestedOneWithoutGroupsInput
  }

  export type PartGroupRelationUncheckedCreateInput = {
    partId: string
    groupId: string
    createdAt?: Date | string
    createdBy?: string | null
  }

  export type PartGroupRelationUpdateInput = {
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    group?: PartGroupUpdateOneRequiredWithoutPartsNestedInput
    part?: PartUpdateOneRequiredWithoutGroupsNestedInput
  }

  export type PartGroupRelationUncheckedUpdateInput = {
    partId?: StringFieldUpdateOperationsInput | string
    groupId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PartGroupRelationCreateManyInput = {
    partId: string
    groupId: string
    createdAt?: Date | string
    createdBy?: string | null
  }

  export type PartGroupRelationUpdateManyMutationInput = {
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PartGroupRelationUncheckedUpdateManyInput = {
    partId?: StringFieldUpdateOperationsInput | string
    groupId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIConversationCreateInput = {
    id?: string
    userId: string
    title?: string | null
    status?: $Enums.AIConversationStatus
    category?: $Enums.AIConversationCategory
    tags?: AIConversationCreatetagsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AIMessageCreateNestedManyWithoutConversationInput
    tickets?: AIAssistantTicketCreateNestedManyWithoutConversationInput
  }

  export type AIConversationUncheckedCreateInput = {
    id?: string
    userId: string
    title?: string | null
    status?: $Enums.AIConversationStatus
    category?: $Enums.AIConversationCategory
    tags?: AIConversationCreatetagsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AIMessageUncheckedCreateNestedManyWithoutConversationInput
    tickets?: AIAssistantTicketUncheckedCreateNestedManyWithoutConversationInput
  }

  export type AIConversationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAIConversationStatusFieldUpdateOperationsInput | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    tags?: AIConversationUpdatetagsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AIMessageUpdateManyWithoutConversationNestedInput
    tickets?: AIAssistantTicketUpdateManyWithoutConversationNestedInput
  }

  export type AIConversationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAIConversationStatusFieldUpdateOperationsInput | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    tags?: AIConversationUpdatetagsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AIMessageUncheckedUpdateManyWithoutConversationNestedInput
    tickets?: AIAssistantTicketUncheckedUpdateManyWithoutConversationNestedInput
  }

  export type AIConversationCreateManyInput = {
    id?: string
    userId: string
    title?: string | null
    status?: $Enums.AIConversationStatus
    category?: $Enums.AIConversationCategory
    tags?: AIConversationCreatetagsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIConversationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAIConversationStatusFieldUpdateOperationsInput | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    tags?: AIConversationUpdatetagsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIConversationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAIConversationStatusFieldUpdateOperationsInput | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    tags?: AIConversationUpdatetagsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIMessageCreateInput = {
    id?: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    conversation: AIConversationCreateNestedOneWithoutMessagesInput
    feedback?: AIMessageFeedbackCreateNestedOneWithoutMessageInput
    knowledgeFix?: AIKnowledgeFixCreateNestedOneWithoutMessageInput
  }

  export type AIMessageUncheckedCreateInput = {
    id?: string
    conversationId: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    feedback?: AIMessageFeedbackUncheckedCreateNestedOneWithoutMessageInput
    knowledgeFix?: AIKnowledgeFixUncheckedCreateNestedOneWithoutMessageInput
  }

  export type AIMessageUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    conversation?: AIConversationUpdateOneRequiredWithoutMessagesNestedInput
    feedback?: AIMessageFeedbackUpdateOneWithoutMessageNestedInput
    knowledgeFix?: AIKnowledgeFixUpdateOneWithoutMessageNestedInput
  }

  export type AIMessageUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    conversationId?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    feedback?: AIMessageFeedbackUncheckedUpdateOneWithoutMessageNestedInput
    knowledgeFix?: AIKnowledgeFixUncheckedUpdateOneWithoutMessageNestedInput
  }

  export type AIMessageCreateManyInput = {
    id?: string
    conversationId: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type AIMessageUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIMessageUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    conversationId?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIMessageFeedbackCreateInput = {
    id?: string
    type: $Enums.AIFeedbackType
    comment?: string | null
    createdAt?: Date | string
    message: AIMessageCreateNestedOneWithoutFeedbackInput
  }

  export type AIMessageFeedbackUncheckedCreateInput = {
    id?: string
    messageId: string
    type: $Enums.AIFeedbackType
    comment?: string | null
    createdAt?: Date | string
  }

  export type AIMessageFeedbackUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumAIFeedbackTypeFieldUpdateOperationsInput | $Enums.AIFeedbackType
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    message?: AIMessageUpdateOneRequiredWithoutFeedbackNestedInput
  }

  export type AIMessageFeedbackUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    messageId?: StringFieldUpdateOperationsInput | string
    type?: EnumAIFeedbackTypeFieldUpdateOperationsInput | $Enums.AIFeedbackType
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIMessageFeedbackCreateManyInput = {
    id?: string
    messageId: string
    type: $Enums.AIFeedbackType
    comment?: string | null
    createdAt?: Date | string
  }

  export type AIMessageFeedbackUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumAIFeedbackTypeFieldUpdateOperationsInput | $Enums.AIFeedbackType
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIMessageFeedbackUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    messageId?: StringFieldUpdateOperationsInput | string
    type?: EnumAIFeedbackTypeFieldUpdateOperationsInput | $Enums.AIFeedbackType
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIAssistantTicketCreateInput = {
    id?: string
    category: $Enums.AITicketCategory
    priority?: $Enums.AITicketPriority
    status?: $Enums.AITicketStatus
    title: string
    description: string
    assigneeId?: string | null
    assigneeTeam?: $Enums.AIAssigneeTeam | null
    assignedAt?: Date | string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    externalTicketId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    conversation: AIConversationCreateNestedOneWithoutTicketsInput
  }

  export type AIAssistantTicketUncheckedCreateInput = {
    id?: string
    conversationId: string
    category: $Enums.AITicketCategory
    priority?: $Enums.AITicketPriority
    status?: $Enums.AITicketStatus
    title: string
    description: string
    assigneeId?: string | null
    assigneeTeam?: $Enums.AIAssigneeTeam | null
    assignedAt?: Date | string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    externalTicketId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIAssistantTicketUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: EnumAITicketCategoryFieldUpdateOperationsInput | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFieldUpdateOperationsInput | $Enums.AITicketPriority
    status?: EnumAITicketStatusFieldUpdateOperationsInput | $Enums.AITicketStatus
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeTeam?: NullableEnumAIAssigneeTeamFieldUpdateOperationsInput | $Enums.AIAssigneeTeam | null
    assignedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    externalTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    conversation?: AIConversationUpdateOneRequiredWithoutTicketsNestedInput
  }

  export type AIAssistantTicketUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    conversationId?: StringFieldUpdateOperationsInput | string
    category?: EnumAITicketCategoryFieldUpdateOperationsInput | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFieldUpdateOperationsInput | $Enums.AITicketPriority
    status?: EnumAITicketStatusFieldUpdateOperationsInput | $Enums.AITicketStatus
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeTeam?: NullableEnumAIAssigneeTeamFieldUpdateOperationsInput | $Enums.AIAssigneeTeam | null
    assignedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    externalTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIAssistantTicketCreateManyInput = {
    id?: string
    conversationId: string
    category: $Enums.AITicketCategory
    priority?: $Enums.AITicketPriority
    status?: $Enums.AITicketStatus
    title: string
    description: string
    assigneeId?: string | null
    assigneeTeam?: $Enums.AIAssigneeTeam | null
    assignedAt?: Date | string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    externalTicketId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIAssistantTicketUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: EnumAITicketCategoryFieldUpdateOperationsInput | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFieldUpdateOperationsInput | $Enums.AITicketPriority
    status?: EnumAITicketStatusFieldUpdateOperationsInput | $Enums.AITicketStatus
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeTeam?: NullableEnumAIAssigneeTeamFieldUpdateOperationsInput | $Enums.AIAssigneeTeam | null
    assignedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    externalTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIAssistantTicketUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    conversationId?: StringFieldUpdateOperationsInput | string
    category?: EnumAITicketCategoryFieldUpdateOperationsInput | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFieldUpdateOperationsInput | $Enums.AITicketPriority
    status?: EnumAITicketStatusFieldUpdateOperationsInput | $Enums.AITicketStatus
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeTeam?: NullableEnumAIAssigneeTeamFieldUpdateOperationsInput | $Enums.AIAssigneeTeam | null
    assignedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    externalTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIKnowledgeFixCreateInput = {
    id?: string
    correctAnswer: string
    contributorId: string
    status?: $Enums.AIKnowledgeFixStatus
    reviewerId?: string | null
    reviewNote?: string | null
    createdAt?: Date | string
    reviewedAt?: Date | string | null
    message: AIMessageCreateNestedOneWithoutKnowledgeFixInput
  }

  export type AIKnowledgeFixUncheckedCreateInput = {
    id?: string
    messageId: string
    correctAnswer: string
    contributorId: string
    status?: $Enums.AIKnowledgeFixStatus
    reviewerId?: string | null
    reviewNote?: string | null
    createdAt?: Date | string
    reviewedAt?: Date | string | null
  }

  export type AIKnowledgeFixUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    correctAnswer?: StringFieldUpdateOperationsInput | string
    contributorId?: StringFieldUpdateOperationsInput | string
    status?: EnumAIKnowledgeFixStatusFieldUpdateOperationsInput | $Enums.AIKnowledgeFixStatus
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewNote?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    message?: AIMessageUpdateOneRequiredWithoutKnowledgeFixNestedInput
  }

  export type AIKnowledgeFixUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    messageId?: StringFieldUpdateOperationsInput | string
    correctAnswer?: StringFieldUpdateOperationsInput | string
    contributorId?: StringFieldUpdateOperationsInput | string
    status?: EnumAIKnowledgeFixStatusFieldUpdateOperationsInput | $Enums.AIKnowledgeFixStatus
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewNote?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AIKnowledgeFixCreateManyInput = {
    id?: string
    messageId: string
    correctAnswer: string
    contributorId: string
    status?: $Enums.AIKnowledgeFixStatus
    reviewerId?: string | null
    reviewNote?: string | null
    createdAt?: Date | string
    reviewedAt?: Date | string | null
  }

  export type AIKnowledgeFixUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    correctAnswer?: StringFieldUpdateOperationsInput | string
    contributorId?: StringFieldUpdateOperationsInput | string
    status?: EnumAIKnowledgeFixStatusFieldUpdateOperationsInput | $Enums.AIKnowledgeFixStatus
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewNote?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AIKnowledgeFixUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    messageId?: StringFieldUpdateOperationsInput | string
    correctAnswer?: StringFieldUpdateOperationsInput | string
    contributorId?: StringFieldUpdateOperationsInput | string
    status?: EnumAIKnowledgeFixStatusFieldUpdateOperationsInput | $Enums.AIKnowledgeFixStatus
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewNote?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AIPromptTemplateCreateInput = {
    id?: string
    name: string
    category: $Enums.AIConversationCategory
    content: string
    version?: number
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIPromptTemplateUncheckedCreateInput = {
    id?: string
    name: string
    category: $Enums.AIConversationCategory
    content: string
    version?: number
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIPromptTemplateUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    content?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIPromptTemplateUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    content?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIPromptTemplateCreateManyInput = {
    id?: string
    name: string
    category: $Enums.AIConversationCategory
    content: string
    version?: number
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIPromptTemplateUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    content?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIPromptTemplateUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    content?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIConfigurationCreateInput = {
    id?: string
    key: string
    value: string
    category?: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIConfigurationUncheckedCreateInput = {
    id?: string
    key: string
    value: string
    category?: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIConfigurationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIConfigurationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIConfigurationCreateManyInput = {
    id?: string
    key: string
    value: string
    category?: string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIConfigurationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIConfigurationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIUsageStatsCreateInput = {
    id?: string
    date: Date | string
    category: $Enums.AIConversationCategory
    totalCalls?: number
    successCalls?: number
    failedCalls?: number
    totalTokens?: number
    avgTokensPerCall?: number
    avgResponseTime?: number
    likesCount?: number
    dislikesCount?: number
    escalationCount?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIUsageStatsUncheckedCreateInput = {
    id?: string
    date: Date | string
    category: $Enums.AIConversationCategory
    totalCalls?: number
    successCalls?: number
    failedCalls?: number
    totalTokens?: number
    avgTokensPerCall?: number
    avgResponseTime?: number
    likesCount?: number
    dislikesCount?: number
    escalationCount?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIUsageStatsUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    totalCalls?: IntFieldUpdateOperationsInput | number
    successCalls?: IntFieldUpdateOperationsInput | number
    failedCalls?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    avgTokensPerCall?: FloatFieldUpdateOperationsInput | number
    avgResponseTime?: IntFieldUpdateOperationsInput | number
    likesCount?: IntFieldUpdateOperationsInput | number
    dislikesCount?: IntFieldUpdateOperationsInput | number
    escalationCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIUsageStatsUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    totalCalls?: IntFieldUpdateOperationsInput | number
    successCalls?: IntFieldUpdateOperationsInput | number
    failedCalls?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    avgTokensPerCall?: FloatFieldUpdateOperationsInput | number
    avgResponseTime?: IntFieldUpdateOperationsInput | number
    likesCount?: IntFieldUpdateOperationsInput | number
    dislikesCount?: IntFieldUpdateOperationsInput | number
    escalationCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIUsageStatsCreateManyInput = {
    id?: string
    date: Date | string
    category: $Enums.AIConversationCategory
    totalCalls?: number
    successCalls?: number
    failedCalls?: number
    totalTokens?: number
    avgTokensPerCall?: number
    avgResponseTime?: number
    likesCount?: number
    dislikesCount?: number
    escalationCount?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIUsageStatsUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    totalCalls?: IntFieldUpdateOperationsInput | number
    successCalls?: IntFieldUpdateOperationsInput | number
    failedCalls?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    avgTokensPerCall?: FloatFieldUpdateOperationsInput | number
    avgResponseTime?: IntFieldUpdateOperationsInput | number
    likesCount?: IntFieldUpdateOperationsInput | number
    dislikesCount?: IntFieldUpdateOperationsInput | number
    escalationCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIUsageStatsUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    totalCalls?: IntFieldUpdateOperationsInput | number
    successCalls?: IntFieldUpdateOperationsInput | number
    failedCalls?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    avgTokensPerCall?: FloatFieldUpdateOperationsInput | number
    avgResponseTime?: IntFieldUpdateOperationsInput | number
    likesCount?: IntFieldUpdateOperationsInput | number
    dislikesCount?: IntFieldUpdateOperationsInput | number
    escalationCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentSessionCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageCreateNestedManyWithoutSessionInput
    parent?: AgentSessionCreateNestedOneWithoutChildrenInput
    children?: AgentSessionCreateNestedManyWithoutParentInput
    crons?: AgentCronCreateNestedManyWithoutSessionInput
    persona?: AgentPersonaCreateNestedOneWithoutSessionsInput
  }

  export type AgentSessionUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    personaId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    parentSessionId?: string | null
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageUncheckedCreateNestedManyWithoutSessionInput
    children?: AgentSessionUncheckedCreateNestedManyWithoutParentInput
    crons?: AgentCronUncheckedCreateNestedManyWithoutSessionInput
  }

  export type AgentSessionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUpdateManyWithoutSessionNestedInput
    parent?: AgentSessionUpdateOneWithoutChildrenNestedInput
    children?: AgentSessionUpdateManyWithoutParentNestedInput
    crons?: AgentCronUpdateManyWithoutSessionNestedInput
    persona?: AgentPersonaUpdateOneWithoutSessionsNestedInput
  }

  export type AgentSessionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    parentSessionId?: NullableStringFieldUpdateOperationsInput | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUncheckedUpdateManyWithoutSessionNestedInput
    children?: AgentSessionUncheckedUpdateManyWithoutParentNestedInput
    crons?: AgentCronUncheckedUpdateManyWithoutSessionNestedInput
  }

  export type AgentSessionCreateManyInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    personaId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    parentSessionId?: string | null
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentSessionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentSessionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    parentSessionId?: NullableStringFieldUpdateOperationsInput | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMessageCreateInput = {
    id?: string
    turnId: string
    type: $Enums.AgentMessageType
    content?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: string | null
    sequence: number
    createdAt?: Date | string
    session: AgentSessionCreateNestedOneWithoutMessagesInput
  }

  export type AgentMessageUncheckedCreateInput = {
    id?: string
    sessionId: string
    turnId: string
    type: $Enums.AgentMessageType
    content?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: string | null
    sequence: number
    createdAt?: Date | string
  }

  export type AgentMessageUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    turnId?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentMessageTypeFieldUpdateOperationsInput | $Enums.AgentMessageType
    content?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: NullableStringFieldUpdateOperationsInput | string | null
    sequence?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    session?: AgentSessionUpdateOneRequiredWithoutMessagesNestedInput
  }

  export type AgentMessageUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentMessageTypeFieldUpdateOperationsInput | $Enums.AgentMessageType
    content?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: NullableStringFieldUpdateOperationsInput | string | null
    sequence?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMessageCreateManyInput = {
    id?: string
    sessionId: string
    turnId: string
    type: $Enums.AgentMessageType
    content?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: string | null
    sequence: number
    createdAt?: Date | string
  }

  export type AgentMessageUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    turnId?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentMessageTypeFieldUpdateOperationsInput | $Enums.AgentMessageType
    content?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: NullableStringFieldUpdateOperationsInput | string | null
    sequence?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMessageUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentMessageTypeFieldUpdateOperationsInput | $Enums.AgentMessageType
    content?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: NullableStringFieldUpdateOperationsInput | string | null
    sequence?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ModelRoutingRuleCreateInput = {
    id?: string
    organizationId: string
    scope?: $Enums.ModelRoutingScope
    scopeRefId: string
    name: string
    priority?: number
    enabled?: boolean
    pattern: JsonNullValueInput | InputJsonValue
    primary: JsonNullValueInput | InputJsonValue
    fallbacks?: JsonNullValueInput | InputJsonValue
    reasoning?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ModelRoutingRuleUncheckedCreateInput = {
    id?: string
    organizationId: string
    scope?: $Enums.ModelRoutingScope
    scopeRefId: string
    name: string
    priority?: number
    enabled?: boolean
    pattern: JsonNullValueInput | InputJsonValue
    primary: JsonNullValueInput | InputJsonValue
    fallbacks?: JsonNullValueInput | InputJsonValue
    reasoning?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ModelRoutingRuleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumModelRoutingScopeFieldUpdateOperationsInput | $Enums.ModelRoutingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    priority?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    pattern?: JsonNullValueInput | InputJsonValue
    primary?: JsonNullValueInput | InputJsonValue
    fallbacks?: JsonNullValueInput | InputJsonValue
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ModelRoutingRuleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumModelRoutingScopeFieldUpdateOperationsInput | $Enums.ModelRoutingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    priority?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    pattern?: JsonNullValueInput | InputJsonValue
    primary?: JsonNullValueInput | InputJsonValue
    fallbacks?: JsonNullValueInput | InputJsonValue
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ModelRoutingRuleCreateManyInput = {
    id?: string
    organizationId: string
    scope?: $Enums.ModelRoutingScope
    scopeRefId: string
    name: string
    priority?: number
    enabled?: boolean
    pattern: JsonNullValueInput | InputJsonValue
    primary: JsonNullValueInput | InputJsonValue
    fallbacks?: JsonNullValueInput | InputJsonValue
    reasoning?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ModelRoutingRuleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumModelRoutingScopeFieldUpdateOperationsInput | $Enums.ModelRoutingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    priority?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    pattern?: JsonNullValueInput | InputJsonValue
    primary?: JsonNullValueInput | InputJsonValue
    fallbacks?: JsonNullValueInput | InputJsonValue
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ModelRoutingRuleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumModelRoutingScopeFieldUpdateOperationsInput | $Enums.ModelRoutingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    priority?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    pattern?: JsonNullValueInput | InputJsonValue
    primary?: JsonNullValueInput | InputJsonValue
    fallbacks?: JsonNullValueInput | InputJsonValue
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ModelRoutingDecisionCreateInput = {
    id?: string
    organizationId: string
    sessionId?: string | null
    turnId?: string | null
    request: JsonNullValueInput | InputJsonValue
    decision: JsonNullValueInput | InputJsonValue
    matchSource: $Enums.ModelRoutingMatchSource
    matchedRuleId?: string | null
    primaryProvider: string
    primaryModel: string
    estimatedCostUsd?: number | null
    actualCostUsd?: number | null
    actualLatencyMs?: number | null
    createdAt?: Date | string
  }

  export type ModelRoutingDecisionUncheckedCreateInput = {
    id?: string
    organizationId: string
    sessionId?: string | null
    turnId?: string | null
    request: JsonNullValueInput | InputJsonValue
    decision: JsonNullValueInput | InputJsonValue
    matchSource: $Enums.ModelRoutingMatchSource
    matchedRuleId?: string | null
    primaryProvider: string
    primaryModel: string
    estimatedCostUsd?: number | null
    actualCostUsd?: number | null
    actualLatencyMs?: number | null
    createdAt?: Date | string
  }

  export type ModelRoutingDecisionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    request?: JsonNullValueInput | InputJsonValue
    decision?: JsonNullValueInput | InputJsonValue
    matchSource?: EnumModelRoutingMatchSourceFieldUpdateOperationsInput | $Enums.ModelRoutingMatchSource
    matchedRuleId?: NullableStringFieldUpdateOperationsInput | string | null
    primaryProvider?: StringFieldUpdateOperationsInput | string
    primaryModel?: StringFieldUpdateOperationsInput | string
    estimatedCostUsd?: NullableFloatFieldUpdateOperationsInput | number | null
    actualCostUsd?: NullableFloatFieldUpdateOperationsInput | number | null
    actualLatencyMs?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ModelRoutingDecisionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    request?: JsonNullValueInput | InputJsonValue
    decision?: JsonNullValueInput | InputJsonValue
    matchSource?: EnumModelRoutingMatchSourceFieldUpdateOperationsInput | $Enums.ModelRoutingMatchSource
    matchedRuleId?: NullableStringFieldUpdateOperationsInput | string | null
    primaryProvider?: StringFieldUpdateOperationsInput | string
    primaryModel?: StringFieldUpdateOperationsInput | string
    estimatedCostUsd?: NullableFloatFieldUpdateOperationsInput | number | null
    actualCostUsd?: NullableFloatFieldUpdateOperationsInput | number | null
    actualLatencyMs?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ModelRoutingDecisionCreateManyInput = {
    id?: string
    organizationId: string
    sessionId?: string | null
    turnId?: string | null
    request: JsonNullValueInput | InputJsonValue
    decision: JsonNullValueInput | InputJsonValue
    matchSource: $Enums.ModelRoutingMatchSource
    matchedRuleId?: string | null
    primaryProvider: string
    primaryModel: string
    estimatedCostUsd?: number | null
    actualCostUsd?: number | null
    actualLatencyMs?: number | null
    createdAt?: Date | string
  }

  export type ModelRoutingDecisionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    request?: JsonNullValueInput | InputJsonValue
    decision?: JsonNullValueInput | InputJsonValue
    matchSource?: EnumModelRoutingMatchSourceFieldUpdateOperationsInput | $Enums.ModelRoutingMatchSource
    matchedRuleId?: NullableStringFieldUpdateOperationsInput | string | null
    primaryProvider?: StringFieldUpdateOperationsInput | string
    primaryModel?: StringFieldUpdateOperationsInput | string
    estimatedCostUsd?: NullableFloatFieldUpdateOperationsInput | number | null
    actualCostUsd?: NullableFloatFieldUpdateOperationsInput | number | null
    actualLatencyMs?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ModelRoutingDecisionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    request?: JsonNullValueInput | InputJsonValue
    decision?: JsonNullValueInput | InputJsonValue
    matchSource?: EnumModelRoutingMatchSourceFieldUpdateOperationsInput | $Enums.ModelRoutingMatchSource
    matchedRuleId?: NullableStringFieldUpdateOperationsInput | string | null
    primaryProvider?: StringFieldUpdateOperationsInput | string
    primaryModel?: StringFieldUpdateOperationsInput | string
    estimatedCostUsd?: NullableFloatFieldUpdateOperationsInput | number | null
    actualCostUsd?: NullableFloatFieldUpdateOperationsInput | number | null
    actualLatencyMs?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentTrajectoryEventCreateInput = {
    id?: string
    organizationId: string
    sessionId: string
    turnId?: string | null
    eventType: $Enums.AgentTrajectoryEventType
    payload: JsonNullValueInput | InputJsonValue
    sequenceInSession: number
    prevEventHash?: string | null
    eventHash: string
    createdAt?: Date | string
  }

  export type AgentTrajectoryEventUncheckedCreateInput = {
    id?: string
    organizationId: string
    sessionId: string
    turnId?: string | null
    eventType: $Enums.AgentTrajectoryEventType
    payload: JsonNullValueInput | InputJsonValue
    sequenceInSession: number
    prevEventHash?: string | null
    eventHash: string
    createdAt?: Date | string
  }

  export type AgentTrajectoryEventUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    eventType?: EnumAgentTrajectoryEventTypeFieldUpdateOperationsInput | $Enums.AgentTrajectoryEventType
    payload?: JsonNullValueInput | InputJsonValue
    sequenceInSession?: IntFieldUpdateOperationsInput | number
    prevEventHash?: NullableStringFieldUpdateOperationsInput | string | null
    eventHash?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentTrajectoryEventUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    eventType?: EnumAgentTrajectoryEventTypeFieldUpdateOperationsInput | $Enums.AgentTrajectoryEventType
    payload?: JsonNullValueInput | InputJsonValue
    sequenceInSession?: IntFieldUpdateOperationsInput | number
    prevEventHash?: NullableStringFieldUpdateOperationsInput | string | null
    eventHash?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentTrajectoryEventCreateManyInput = {
    id?: string
    organizationId: string
    sessionId: string
    turnId?: string | null
    eventType: $Enums.AgentTrajectoryEventType
    payload: JsonNullValueInput | InputJsonValue
    sequenceInSession: number
    prevEventHash?: string | null
    eventHash: string
    createdAt?: Date | string
  }

  export type AgentTrajectoryEventUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    eventType?: EnumAgentTrajectoryEventTypeFieldUpdateOperationsInput | $Enums.AgentTrajectoryEventType
    payload?: JsonNullValueInput | InputJsonValue
    sequenceInSession?: IntFieldUpdateOperationsInput | number
    prevEventHash?: NullableStringFieldUpdateOperationsInput | string | null
    eventHash?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentTrajectoryEventUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    eventType?: EnumAgentTrajectoryEventTypeFieldUpdateOperationsInput | $Enums.AgentTrajectoryEventType
    payload?: JsonNullValueInput | InputJsonValue
    sequenceInSession?: IntFieldUpdateOperationsInput | number
    prevEventHash?: NullableStringFieldUpdateOperationsInput | string | null
    eventHash?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentQuotaCreateInput = {
    id?: string
    organizationId: string
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    monthlyTokens?: number
    monthlyCostUsd?: number
    softLimitRatio?: number
    enabled?: boolean
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentQuotaUncheckedCreateInput = {
    id?: string
    organizationId: string
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    monthlyTokens?: number
    monthlyCostUsd?: number
    softLimitRatio?: number
    enabled?: boolean
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentQuotaUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumAgentQuotaScopeFieldUpdateOperationsInput | $Enums.AgentQuotaScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    monthlyTokens?: IntFieldUpdateOperationsInput | number
    monthlyCostUsd?: FloatFieldUpdateOperationsInput | number
    softLimitRatio?: FloatFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentQuotaUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumAgentQuotaScopeFieldUpdateOperationsInput | $Enums.AgentQuotaScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    monthlyTokens?: IntFieldUpdateOperationsInput | number
    monthlyCostUsd?: FloatFieldUpdateOperationsInput | number
    softLimitRatio?: FloatFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentQuotaCreateManyInput = {
    id?: string
    organizationId: string
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    monthlyTokens?: number
    monthlyCostUsd?: number
    softLimitRatio?: number
    enabled?: boolean
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentQuotaUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumAgentQuotaScopeFieldUpdateOperationsInput | $Enums.AgentQuotaScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    monthlyTokens?: IntFieldUpdateOperationsInput | number
    monthlyCostUsd?: FloatFieldUpdateOperationsInput | number
    softLimitRatio?: FloatFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentQuotaUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumAgentQuotaScopeFieldUpdateOperationsInput | $Enums.AgentQuotaScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    monthlyTokens?: IntFieldUpdateOperationsInput | number
    monthlyCostUsd?: FloatFieldUpdateOperationsInput | number
    softLimitRatio?: FloatFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentQuotaUsageCreateInput = {
    id?: string
    organizationId: string
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    periodStart: Date | string
    tokensUsed?: number
    costUsdUsed?: number
    updatedAt?: Date | string
  }

  export type AgentQuotaUsageUncheckedCreateInput = {
    id?: string
    organizationId: string
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    periodStart: Date | string
    tokensUsed?: number
    costUsdUsed?: number
    updatedAt?: Date | string
  }

  export type AgentQuotaUsageUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumAgentQuotaScopeFieldUpdateOperationsInput | $Enums.AgentQuotaScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    periodStart?: DateTimeFieldUpdateOperationsInput | Date | string
    tokensUsed?: IntFieldUpdateOperationsInput | number
    costUsdUsed?: FloatFieldUpdateOperationsInput | number
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentQuotaUsageUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumAgentQuotaScopeFieldUpdateOperationsInput | $Enums.AgentQuotaScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    periodStart?: DateTimeFieldUpdateOperationsInput | Date | string
    tokensUsed?: IntFieldUpdateOperationsInput | number
    costUsdUsed?: FloatFieldUpdateOperationsInput | number
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentQuotaUsageCreateManyInput = {
    id?: string
    organizationId: string
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    periodStart: Date | string
    tokensUsed?: number
    costUsdUsed?: number
    updatedAt?: Date | string
  }

  export type AgentQuotaUsageUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumAgentQuotaScopeFieldUpdateOperationsInput | $Enums.AgentQuotaScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    periodStart?: DateTimeFieldUpdateOperationsInput | Date | string
    tokensUsed?: IntFieldUpdateOperationsInput | number
    costUsdUsed?: FloatFieldUpdateOperationsInput | number
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentQuotaUsageUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumAgentQuotaScopeFieldUpdateOperationsInput | $Enums.AgentQuotaScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    periodStart?: DateTimeFieldUpdateOperationsInput | Date | string
    tokensUsed?: IntFieldUpdateOperationsInput | number
    costUsdUsed?: FloatFieldUpdateOperationsInput | number
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationAgentSettingsCreateInput = {
    id?: string
    organizationId: string
    defaultPlanMode?: $Enums.AgentPlanMode
    defaultPermissionMode?: $Enums.AgentPermissionMode
    disabledCapabilities?: OrganizationAgentSettingsCreatedisabledCapabilitiesInput | string[]
    allowedCliTools?: OrganizationAgentSettingsCreateallowedCliToolsInput | string[]
    allowedPermissionModes?: OrganizationAgentSettingsCreateallowedPermissionModesInput | string[]
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OrganizationAgentSettingsUncheckedCreateInput = {
    id?: string
    organizationId: string
    defaultPlanMode?: $Enums.AgentPlanMode
    defaultPermissionMode?: $Enums.AgentPermissionMode
    disabledCapabilities?: OrganizationAgentSettingsCreatedisabledCapabilitiesInput | string[]
    allowedCliTools?: OrganizationAgentSettingsCreateallowedCliToolsInput | string[]
    allowedPermissionModes?: OrganizationAgentSettingsCreateallowedPermissionModesInput | string[]
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OrganizationAgentSettingsUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    defaultPlanMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    defaultPermissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    disabledCapabilities?: OrganizationAgentSettingsUpdatedisabledCapabilitiesInput | string[]
    allowedCliTools?: OrganizationAgentSettingsUpdateallowedCliToolsInput | string[]
    allowedPermissionModes?: OrganizationAgentSettingsUpdateallowedPermissionModesInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationAgentSettingsUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    defaultPlanMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    defaultPermissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    disabledCapabilities?: OrganizationAgentSettingsUpdatedisabledCapabilitiesInput | string[]
    allowedCliTools?: OrganizationAgentSettingsUpdateallowedCliToolsInput | string[]
    allowedPermissionModes?: OrganizationAgentSettingsUpdateallowedPermissionModesInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationAgentSettingsCreateManyInput = {
    id?: string
    organizationId: string
    defaultPlanMode?: $Enums.AgentPlanMode
    defaultPermissionMode?: $Enums.AgentPermissionMode
    disabledCapabilities?: OrganizationAgentSettingsCreatedisabledCapabilitiesInput | string[]
    allowedCliTools?: OrganizationAgentSettingsCreateallowedCliToolsInput | string[]
    allowedPermissionModes?: OrganizationAgentSettingsCreateallowedPermissionModesInput | string[]
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OrganizationAgentSettingsUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    defaultPlanMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    defaultPermissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    disabledCapabilities?: OrganizationAgentSettingsUpdatedisabledCapabilitiesInput | string[]
    allowedCliTools?: OrganizationAgentSettingsUpdateallowedCliToolsInput | string[]
    allowedPermissionModes?: OrganizationAgentSettingsUpdateallowedPermissionModesInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationAgentSettingsUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    defaultPlanMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    defaultPermissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    disabledCapabilities?: OrganizationAgentSettingsUpdatedisabledCapabilitiesInput | string[]
    allowedCliTools?: OrganizationAgentSettingsUpdateallowedCliToolsInput | string[]
    allowedPermissionModes?: OrganizationAgentSettingsUpdateallowedPermissionModesInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentArtifactCreateInput = {
    id?: string
    organizationId: string
    sessionId: string
    turnId?: string | null
    createdById: string
    type: $Enums.AgentArtifactType
    title: string
    data: JsonNullValueInput | InputJsonValue
    previewUrl?: string | null
    mimeType?: string | null
    sizeBytes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentArtifactUncheckedCreateInput = {
    id?: string
    organizationId: string
    sessionId: string
    turnId?: string | null
    createdById: string
    type: $Enums.AgentArtifactType
    title: string
    data: JsonNullValueInput | InputJsonValue
    previewUrl?: string | null
    mimeType?: string | null
    sizeBytes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentArtifactUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentArtifactTypeFieldUpdateOperationsInput | $Enums.AgentArtifactType
    title?: StringFieldUpdateOperationsInput | string
    data?: JsonNullValueInput | InputJsonValue
    previewUrl?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentArtifactUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentArtifactTypeFieldUpdateOperationsInput | $Enums.AgentArtifactType
    title?: StringFieldUpdateOperationsInput | string
    data?: JsonNullValueInput | InputJsonValue
    previewUrl?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentArtifactCreateManyInput = {
    id?: string
    organizationId: string
    sessionId: string
    turnId?: string | null
    createdById: string
    type: $Enums.AgentArtifactType
    title: string
    data: JsonNullValueInput | InputJsonValue
    previewUrl?: string | null
    mimeType?: string | null
    sizeBytes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentArtifactUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentArtifactTypeFieldUpdateOperationsInput | $Enums.AgentArtifactType
    title?: StringFieldUpdateOperationsInput | string
    data?: JsonNullValueInput | InputJsonValue
    previewUrl?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentArtifactUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    turnId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentArtifactTypeFieldUpdateOperationsInput | $Enums.AgentArtifactType
    title?: StringFieldUpdateOperationsInput | string
    data?: JsonNullValueInput | InputJsonValue
    previewUrl?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentTaskTrackerCreateInput = {
    id?: string
    organizationId: string
    sessionId: string
    parentTaskId?: string | null
    title: string
    description?: string | null
    status?: $Enums.AgentTaskStatus
    progress?: number
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentTaskTrackerUncheckedCreateInput = {
    id?: string
    organizationId: string
    sessionId: string
    parentTaskId?: string | null
    title: string
    description?: string | null
    status?: $Enums.AgentTaskStatus
    progress?: number
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentTaskTrackerUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    parentTaskId?: NullableStringFieldUpdateOperationsInput | string | null
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentTaskStatusFieldUpdateOperationsInput | $Enums.AgentTaskStatus
    progress?: IntFieldUpdateOperationsInput | number
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentTaskTrackerUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    parentTaskId?: NullableStringFieldUpdateOperationsInput | string | null
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentTaskStatusFieldUpdateOperationsInput | $Enums.AgentTaskStatus
    progress?: IntFieldUpdateOperationsInput | number
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentTaskTrackerCreateManyInput = {
    id?: string
    organizationId: string
    sessionId: string
    parentTaskId?: string | null
    title: string
    description?: string | null
    status?: $Enums.AgentTaskStatus
    progress?: number
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentTaskTrackerUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    parentTaskId?: NullableStringFieldUpdateOperationsInput | string | null
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentTaskStatusFieldUpdateOperationsInput | $Enums.AgentTaskStatus
    progress?: IntFieldUpdateOperationsInput | number
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentTaskTrackerUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    parentTaskId?: NullableStringFieldUpdateOperationsInput | string | null
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentTaskStatusFieldUpdateOperationsInput | $Enums.AgentTaskStatus
    progress?: IntFieldUpdateOperationsInput | number
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentScratchpadCreateInput = {
    id?: string
    organizationId: string
    sessionId: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentScratchpadUncheckedCreateInput = {
    id?: string
    organizationId: string
    sessionId: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentScratchpadUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentScratchpadUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentScratchpadCreateManyInput = {
    id?: string
    organizationId: string
    sessionId: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentScratchpadUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentScratchpadUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageBindingCreateInput = {
    id?: string
    organizationId: string
    scope: $Enums.StorageBindingScope
    scopeRefId: string
    kind: $Enums.StorageBackendKind
    displayName: string
    config: JsonNullValueInput | InputJsonValue
    encryptedSecret?: string | null
    keyId?: string | null
    enabled?: boolean
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    files?: StorageFileCreateNestedManyWithoutBindingInput
  }

  export type StorageBindingUncheckedCreateInput = {
    id?: string
    organizationId: string
    scope: $Enums.StorageBindingScope
    scopeRefId: string
    kind: $Enums.StorageBackendKind
    displayName: string
    config: JsonNullValueInput | InputJsonValue
    encryptedSecret?: string | null
    keyId?: string | null
    enabled?: boolean
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    files?: StorageFileUncheckedCreateNestedManyWithoutBindingInput
  }

  export type StorageBindingUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumStorageBindingScopeFieldUpdateOperationsInput | $Enums.StorageBindingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    kind?: EnumStorageBackendKindFieldUpdateOperationsInput | $Enums.StorageBackendKind
    displayName?: StringFieldUpdateOperationsInput | string
    config?: JsonNullValueInput | InputJsonValue
    encryptedSecret?: NullableStringFieldUpdateOperationsInput | string | null
    keyId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    files?: StorageFileUpdateManyWithoutBindingNestedInput
  }

  export type StorageBindingUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumStorageBindingScopeFieldUpdateOperationsInput | $Enums.StorageBindingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    kind?: EnumStorageBackendKindFieldUpdateOperationsInput | $Enums.StorageBackendKind
    displayName?: StringFieldUpdateOperationsInput | string
    config?: JsonNullValueInput | InputJsonValue
    encryptedSecret?: NullableStringFieldUpdateOperationsInput | string | null
    keyId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    files?: StorageFileUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type StorageBindingCreateManyInput = {
    id?: string
    organizationId: string
    scope: $Enums.StorageBindingScope
    scopeRefId: string
    kind: $Enums.StorageBackendKind
    displayName: string
    config: JsonNullValueInput | InputJsonValue
    encryptedSecret?: string | null
    keyId?: string | null
    enabled?: boolean
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type StorageBindingUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumStorageBindingScopeFieldUpdateOperationsInput | $Enums.StorageBindingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    kind?: EnumStorageBackendKindFieldUpdateOperationsInput | $Enums.StorageBackendKind
    displayName?: StringFieldUpdateOperationsInput | string
    config?: JsonNullValueInput | InputJsonValue
    encryptedSecret?: NullableStringFieldUpdateOperationsInput | string | null
    keyId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageBindingUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumStorageBindingScopeFieldUpdateOperationsInput | $Enums.StorageBindingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    kind?: EnumStorageBackendKindFieldUpdateOperationsInput | $Enums.StorageBackendKind
    displayName?: StringFieldUpdateOperationsInput | string
    config?: JsonNullValueInput | InputJsonValue
    encryptedSecret?: NullableStringFieldUpdateOperationsInput | string | null
    keyId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageFileCreateInput = {
    id?: string
    organizationId: string
    path: string
    externalId?: string | null
    sizeBytes: number
    mimeType?: string | null
    sha256: string
    encrypted?: boolean
    uploadedById: string
    createdAt?: Date | string
    binding: StorageBindingCreateNestedOneWithoutFilesInput
  }

  export type StorageFileUncheckedCreateInput = {
    id?: string
    bindingId: string
    organizationId: string
    path: string
    externalId?: string | null
    sizeBytes: number
    mimeType?: string | null
    sha256: string
    encrypted?: boolean
    uploadedById: string
    createdAt?: Date | string
  }

  export type StorageFileUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    path?: StringFieldUpdateOperationsInput | string
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: IntFieldUpdateOperationsInput | number
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sha256?: StringFieldUpdateOperationsInput | string
    encrypted?: BoolFieldUpdateOperationsInput | boolean
    uploadedById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: StorageBindingUpdateOneRequiredWithoutFilesNestedInput
  }

  export type StorageFileUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    path?: StringFieldUpdateOperationsInput | string
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: IntFieldUpdateOperationsInput | number
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sha256?: StringFieldUpdateOperationsInput | string
    encrypted?: BoolFieldUpdateOperationsInput | boolean
    uploadedById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageFileCreateManyInput = {
    id?: string
    bindingId: string
    organizationId: string
    path: string
    externalId?: string | null
    sizeBytes: number
    mimeType?: string | null
    sha256: string
    encrypted?: boolean
    uploadedById: string
    createdAt?: Date | string
  }

  export type StorageFileUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    path?: StringFieldUpdateOperationsInput | string
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: IntFieldUpdateOperationsInput | number
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sha256?: StringFieldUpdateOperationsInput | string
    encrypted?: BoolFieldUpdateOperationsInput | boolean
    uploadedById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageFileUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    path?: StringFieldUpdateOperationsInput | string
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: IntFieldUpdateOperationsInput | number
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sha256?: StringFieldUpdateOperationsInput | string
    encrypted?: BoolFieldUpdateOperationsInput | boolean
    uploadedById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentProjectCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    icon?: string | null
    color?: string | null
    instructions?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    memories?: AgentMemoryCreateNestedManyWithoutProjectInput
  }

  export type AgentProjectUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    icon?: string | null
    color?: string | null
    instructions?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    memories?: AgentMemoryUncheckedCreateNestedManyWithoutProjectInput
  }

  export type AgentProjectUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    memories?: AgentMemoryUpdateManyWithoutProjectNestedInput
  }

  export type AgentProjectUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    memories?: AgentMemoryUncheckedUpdateManyWithoutProjectNestedInput
  }

  export type AgentProjectCreateManyInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    icon?: string | null
    color?: string | null
    instructions?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentProjectUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentProjectUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMemoryCreateInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    project?: AgentProjectCreateNestedOneWithoutMemoriesInput
    persona?: AgentPersonaCreateNestedOneWithoutMemoriesInput
  }

  export type AgentMemoryUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    projectId?: string | null
    personaId?: string | null
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMemoryUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    project?: AgentProjectUpdateOneWithoutMemoriesNestedInput
    persona?: AgentPersonaUpdateOneWithoutMemoriesNestedInput
  }

  export type AgentMemoryUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMemoryCreateManyInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    projectId?: string | null
    personaId?: string | null
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMemoryUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMemoryUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentPersonaCreateInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    systemKey?: string | null
    name: string
    icon?: string | null
    description?: string | null
    instructions?: string | null
    allowedTools?: AgentPersonaCreateallowedToolsInput | string[]
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    memories?: AgentMemoryCreateNestedManyWithoutPersonaInput
    sessions?: AgentSessionCreateNestedManyWithoutPersonaInput
  }

  export type AgentPersonaUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    systemKey?: string | null
    name: string
    icon?: string | null
    description?: string | null
    instructions?: string | null
    allowedTools?: AgentPersonaCreateallowedToolsInput | string[]
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    memories?: AgentMemoryUncheckedCreateNestedManyWithoutPersonaInput
    sessions?: AgentSessionUncheckedCreateNestedManyWithoutPersonaInput
  }

  export type AgentPersonaUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    systemKey?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    allowedTools?: AgentPersonaUpdateallowedToolsInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    memories?: AgentMemoryUpdateManyWithoutPersonaNestedInput
    sessions?: AgentSessionUpdateManyWithoutPersonaNestedInput
  }

  export type AgentPersonaUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    systemKey?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    allowedTools?: AgentPersonaUpdateallowedToolsInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    memories?: AgentMemoryUncheckedUpdateManyWithoutPersonaNestedInput
    sessions?: AgentSessionUncheckedUpdateManyWithoutPersonaNestedInput
  }

  export type AgentPersonaCreateManyInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    systemKey?: string | null
    name: string
    icon?: string | null
    description?: string | null
    instructions?: string | null
    allowedTools?: AgentPersonaCreateallowedToolsInput | string[]
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentPersonaUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    systemKey?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    allowedTools?: AgentPersonaUpdateallowedToolsInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentPersonaUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    systemKey?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    allowedTools?: AgentPersonaUpdateallowedToolsInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentCronCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    cronExpr: string
    prompt: string
    enabled?: boolean
    lastRunAt?: Date | string | null
    nextRunAt: Date | string
    runCount?: number
    failCount?: number
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    session: AgentSessionCreateNestedOneWithoutCronsInput
  }

  export type AgentCronUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    sessionId: string
    name: string
    cronExpr: string
    prompt: string
    enabled?: boolean
    lastRunAt?: Date | string | null
    nextRunAt: Date | string
    runCount?: number
    failCount?: number
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentCronUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    cronExpr?: StringFieldUpdateOperationsInput | string
    prompt?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nextRunAt?: DateTimeFieldUpdateOperationsInput | Date | string
    runCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    session?: AgentSessionUpdateOneRequiredWithoutCronsNestedInput
  }

  export type AgentCronUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    cronExpr?: StringFieldUpdateOperationsInput | string
    prompt?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nextRunAt?: DateTimeFieldUpdateOperationsInput | Date | string
    runCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentCronCreateManyInput = {
    id?: string
    organizationId: string
    createdById: string
    sessionId: string
    name: string
    cronExpr: string
    prompt: string
    enabled?: boolean
    lastRunAt?: Date | string | null
    nextRunAt: Date | string
    runCount?: number
    failCount?: number
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentCronUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    cronExpr?: StringFieldUpdateOperationsInput | string
    prompt?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nextRunAt?: DateTimeFieldUpdateOperationsInput | Date | string
    runCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentCronUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    sessionId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    cronExpr?: StringFieldUpdateOperationsInput | string
    prompt?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nextRunAt?: DateTimeFieldUpdateOperationsInput | Date | string
    runCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMcpServerCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    transport: string
    endpoint: string
    args?: string | null
    env?: string | null
    enabled?: boolean
    lastConnectedAt?: Date | string | null
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMcpServerUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    transport: string
    endpoint: string
    args?: string | null
    env?: string | null
    enabled?: boolean
    lastConnectedAt?: Date | string | null
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMcpServerUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    transport?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    args?: NullableStringFieldUpdateOperationsInput | string | null
    env?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastConnectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMcpServerUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    transport?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    args?: NullableStringFieldUpdateOperationsInput | string | null
    env?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastConnectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMcpServerCreateManyInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    transport: string
    endpoint: string
    args?: string | null
    env?: string | null
    enabled?: boolean
    lastConnectedAt?: Date | string | null
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMcpServerUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    transport?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    args?: NullableStringFieldUpdateOperationsInput | string | null
    env?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastConnectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMcpServerUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    transport?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    args?: NullableStringFieldUpdateOperationsInput | string | null
    env?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastConnectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageTokenCreateInput = {
    id?: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageTokensInput
    revokedBy?: UserCreateNestedOneWithoutAiUsageTokensRevokedInput
    organization: OrganizationCreateNestedOneWithoutAiUsageTokensInput
  }

  export type AiUsageTokenUncheckedCreateInput = {
    id?: string
    userId: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    revokedById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageTokenUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageTokensNestedInput
    revokedBy?: UserUpdateOneWithoutAiUsageTokensRevokedNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageTokensNestedInput
  }

  export type AiUsageTokenUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageTokenCreateManyInput = {
    id?: string
    userId: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    revokedById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageTokenUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageTokenUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDeviceCreateInput = {
    id?: string
    deviceId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedReason?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageDevicesInput
    blockedBy?: UserCreateNestedOneWithoutAiUsageDevicesBlockedInput
    organization: OrganizationCreateNestedOneWithoutAiUsageDevicesInput
    events?: AiUsageEventCreateNestedManyWithoutDeviceInput
  }

  export type AiUsageDeviceUncheckedCreateInput = {
    id?: string
    deviceId: string
    userId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedById?: string | null
    blockedReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: AiUsageEventUncheckedCreateNestedManyWithoutDeviceInput
  }

  export type AiUsageDeviceUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageDevicesNestedInput
    blockedBy?: UserUpdateOneWithoutAiUsageDevicesBlockedNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageDevicesNestedInput
    events?: AiUsageEventUpdateManyWithoutDeviceNestedInput
  }

  export type AiUsageDeviceUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedById?: NullableStringFieldUpdateOperationsInput | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: AiUsageEventUncheckedUpdateManyWithoutDeviceNestedInput
  }

  export type AiUsageDeviceCreateManyInput = {
    id?: string
    deviceId: string
    userId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedById?: string | null
    blockedReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDeviceUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDeviceUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedById?: NullableStringFieldUpdateOperationsInput | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventCreateInput = {
    id?: string
    rawMessageId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    device: AiUsageDeviceCreateNestedOneWithoutEventsInput
    user: UserCreateNestedOneWithoutAiUsageEventsInput
    organization: OrganizationCreateNestedOneWithoutAiUsageEventsInput
  }

  export type AiUsageEventUncheckedCreateInput = {
    id?: string
    rawMessageId: string
    deviceId: string
    userId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    device?: AiUsageDeviceUpdateOneRequiredWithoutEventsNestedInput
    user?: UserUpdateOneRequiredWithoutAiUsageEventsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageEventsNestedInput
  }

  export type AiUsageEventUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventCreateManyInput = {
    id?: string
    rawMessageId: string
    deviceId: string
    userId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventDlqCreateInput = {
    id?: string
    deviceId?: string | null
    reason: $Enums.AiUsageDlqReason
    rawPayload: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventDlqUncheckedCreateInput = {
    id?: string
    deviceId?: string | null
    reason: $Enums.AiUsageDlqReason
    rawPayload: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventDlqUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: EnumAiUsageDlqReasonFieldUpdateOperationsInput | $Enums.AiUsageDlqReason
    rawPayload?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventDlqUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: EnumAiUsageDlqReasonFieldUpdateOperationsInput | $Enums.AiUsageDlqReason
    rawPayload?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventDlqCreateManyInput = {
    id?: string
    deviceId?: string | null
    reason: $Enums.AiUsageDlqReason
    rawPayload: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventDlqUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: EnumAiUsageDlqReasonFieldUpdateOperationsInput | $Enums.AiUsageDlqReason
    rawPayload?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventDlqUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: EnumAiUsageDlqReasonFieldUpdateOperationsInput | $Enums.AiUsageDlqReason
    rawPayload?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDailyRollupCreateInput = {
    id?: string
    date: Date | string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageRollupsInput
    organization: OrganizationCreateNestedOneWithoutAiUsageRollupsInput
  }

  export type AiUsageDailyRollupUncheckedCreateInput = {
    id?: string
    date: Date | string
    userId: string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDailyRollupUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageRollupsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageRollupsNestedInput
  }

  export type AiUsageDailyRollupUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    userId?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDailyRollupCreateManyInput = {
    id?: string
    date: Date | string
    userId: string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDailyRollupUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDailyRollupUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    userId?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditLogCreateInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
    databaseChanges?: AuditDatabaseChangeLogCreateNestedManyWithoutAuditLogInput
    user?: UserCreateNestedOneWithoutAuditLogsInput
    sensitiveOps?: AuditSensitiveOperationLogCreateNestedManyWithoutAuditLogInput
  }

  export type AuditLogUncheckedCreateInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    userId?: string | null
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUncheckedCreateNestedManyWithoutAuditLogInput
    sensitiveOps?: AuditSensitiveOperationLogUncheckedCreateNestedManyWithoutAuditLogInput
  }

  export type AuditLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUpdateManyWithoutAuditLogNestedInput
    user?: UserUpdateOneWithoutAuditLogsNestedInput
    sensitiveOps?: AuditSensitiveOperationLogUpdateManyWithoutAuditLogNestedInput
  }

  export type AuditLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUncheckedUpdateManyWithoutAuditLogNestedInput
    sensitiveOps?: AuditSensitiveOperationLogUncheckedUpdateManyWithoutAuditLogNestedInput
  }

  export type AuditLogCreateManyInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    userId?: string | null
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
  }

  export type AuditLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AuditLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AuditDatabaseChangeLogCreateInput = {
    id?: string
    tableName: string
    operation: $Enums.DbOperation
    recordId: string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogCreatechangedFieldsInput | string[]
    userId: string
    createdAt?: Date | string
    auditLog: AuditLogCreateNestedOneWithoutDatabaseChangesInput
  }

  export type AuditDatabaseChangeLogUncheckedCreateInput = {
    id?: string
    tableName: string
    operation: $Enums.DbOperation
    recordId: string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogCreatechangedFieldsInput | string[]
    userId: string
    auditLogId: string
    createdAt?: Date | string
  }

  export type AuditDatabaseChangeLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    tableName?: StringFieldUpdateOperationsInput | string
    operation?: EnumDbOperationFieldUpdateOperationsInput | $Enums.DbOperation
    recordId?: StringFieldUpdateOperationsInput | string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogUpdatechangedFieldsInput | string[]
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    auditLog?: AuditLogUpdateOneRequiredWithoutDatabaseChangesNestedInput
  }

  export type AuditDatabaseChangeLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    tableName?: StringFieldUpdateOperationsInput | string
    operation?: EnumDbOperationFieldUpdateOperationsInput | $Enums.DbOperation
    recordId?: StringFieldUpdateOperationsInput | string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogUpdatechangedFieldsInput | string[]
    userId?: StringFieldUpdateOperationsInput | string
    auditLogId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditDatabaseChangeLogCreateManyInput = {
    id?: string
    tableName: string
    operation: $Enums.DbOperation
    recordId: string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogCreatechangedFieldsInput | string[]
    userId: string
    auditLogId: string
    createdAt?: Date | string
  }

  export type AuditDatabaseChangeLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    tableName?: StringFieldUpdateOperationsInput | string
    operation?: EnumDbOperationFieldUpdateOperationsInput | $Enums.DbOperation
    recordId?: StringFieldUpdateOperationsInput | string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogUpdatechangedFieldsInput | string[]
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditDatabaseChangeLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    tableName?: StringFieldUpdateOperationsInput | string
    operation?: EnumDbOperationFieldUpdateOperationsInput | $Enums.DbOperation
    recordId?: StringFieldUpdateOperationsInput | string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogUpdatechangedFieldsInput | string[]
    userId?: StringFieldUpdateOperationsInput | string
    auditLogId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditSensitiveOperationLogCreateInput = {
    id?: string
    operationType: string
    description: string
    requiresApproval?: boolean
    approvedBy?: string | null
    approvalTime?: Date | string | null
    riskLevel: $Enums.RiskLevel
    mfaVerified?: boolean
    userId: string
    createdAt?: Date | string
    auditLog: AuditLogCreateNestedOneWithoutSensitiveOpsInput
  }

  export type AuditSensitiveOperationLogUncheckedCreateInput = {
    id?: string
    operationType: string
    description: string
    requiresApproval?: boolean
    approvedBy?: string | null
    approvalTime?: Date | string | null
    riskLevel: $Enums.RiskLevel
    mfaVerified?: boolean
    userId: string
    auditLogId: string
    createdAt?: Date | string
  }

  export type AuditSensitiveOperationLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    approvalTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    mfaVerified?: BoolFieldUpdateOperationsInput | boolean
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    auditLog?: AuditLogUpdateOneRequiredWithoutSensitiveOpsNestedInput
  }

  export type AuditSensitiveOperationLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    approvalTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    mfaVerified?: BoolFieldUpdateOperationsInput | boolean
    userId?: StringFieldUpdateOperationsInput | string
    auditLogId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditSensitiveOperationLogCreateManyInput = {
    id?: string
    operationType: string
    description: string
    requiresApproval?: boolean
    approvedBy?: string | null
    approvalTime?: Date | string | null
    riskLevel: $Enums.RiskLevel
    mfaVerified?: boolean
    userId: string
    auditLogId: string
    createdAt?: Date | string
  }

  export type AuditSensitiveOperationLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    approvalTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    mfaVerified?: BoolFieldUpdateOperationsInput | boolean
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditSensitiveOperationLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    approvalTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    mfaVerified?: BoolFieldUpdateOperationsInput | boolean
    userId?: StringFieldUpdateOperationsInput | string
    auditLogId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditIntegrityCheckLogCreateInput = {
    id?: string
    region?: string
    tenantId?: string
    checkType: $Enums.IntegrityCheckType
    startTime: Date | string
    endTime: Date | string
    recordCount: number
    passCount: number
    failCount: number
    failures?: NullableJsonNullValueInput | InputJsonValue
    status: $Enums.CheckStatus
    errorMessage?: string | null
    createdAt?: Date | string
  }

  export type AuditIntegrityCheckLogUncheckedCreateInput = {
    id?: string
    region?: string
    tenantId?: string
    checkType: $Enums.IntegrityCheckType
    startTime: Date | string
    endTime: Date | string
    recordCount: number
    passCount: number
    failCount: number
    failures?: NullableJsonNullValueInput | InputJsonValue
    status: $Enums.CheckStatus
    errorMessage?: string | null
    createdAt?: Date | string
  }

  export type AuditIntegrityCheckLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    checkType?: EnumIntegrityCheckTypeFieldUpdateOperationsInput | $Enums.IntegrityCheckType
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    recordCount?: IntFieldUpdateOperationsInput | number
    passCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    failures?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumCheckStatusFieldUpdateOperationsInput | $Enums.CheckStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditIntegrityCheckLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    checkType?: EnumIntegrityCheckTypeFieldUpdateOperationsInput | $Enums.IntegrityCheckType
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    recordCount?: IntFieldUpdateOperationsInput | number
    passCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    failures?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumCheckStatusFieldUpdateOperationsInput | $Enums.CheckStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditIntegrityCheckLogCreateManyInput = {
    id?: string
    region?: string
    tenantId?: string
    checkType: $Enums.IntegrityCheckType
    startTime: Date | string
    endTime: Date | string
    recordCount: number
    passCount: number
    failCount: number
    failures?: NullableJsonNullValueInput | InputJsonValue
    status: $Enums.CheckStatus
    errorMessage?: string | null
    createdAt?: Date | string
  }

  export type AuditIntegrityCheckLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    checkType?: EnumIntegrityCheckTypeFieldUpdateOperationsInput | $Enums.IntegrityCheckType
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    recordCount?: IntFieldUpdateOperationsInput | number
    passCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    failures?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumCheckStatusFieldUpdateOperationsInput | $Enums.CheckStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditIntegrityCheckLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    checkType?: EnumIntegrityCheckTypeFieldUpdateOperationsInput | $Enums.IntegrityCheckType
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    recordCount?: IntFieldUpdateOperationsInput | number
    passCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    failures?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumCheckStatusFieldUpdateOperationsInput | $Enums.CheckStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AutomationTaskCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    type: $Enums.AutomationTaskType
    status?: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: number
    retryCount?: number
    lastRunAt?: Date | string | null
    lastStatus?: $Enums.AutomationExecutionStatus | null
    nextRunAt?: Date | string | null
    totalRuns?: number
    successRuns?: number
    failedRuns?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    executions?: AutomationExecutionCreateNestedManyWithoutTaskInput
    createdBy?: UserCreateNestedOneWithoutCreatedAutomationTasksInput
  }

  export type AutomationTaskUncheckedCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    type: $Enums.AutomationTaskType
    status?: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: number
    retryCount?: number
    lastRunAt?: Date | string | null
    lastStatus?: $Enums.AutomationExecutionStatus | null
    nextRunAt?: Date | string | null
    totalRuns?: number
    successRuns?: number
    failedRuns?: number
    createdById?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    executions?: AutomationExecutionUncheckedCreateNestedManyWithoutTaskInput
  }

  export type AutomationTaskUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executions?: AutomationExecutionUpdateManyWithoutTaskNestedInput
    createdBy?: UserUpdateOneWithoutCreatedAutomationTasksNestedInput
  }

  export type AutomationTaskUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executions?: AutomationExecutionUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type AutomationTaskCreateManyInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    type: $Enums.AutomationTaskType
    status?: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: number
    retryCount?: number
    lastRunAt?: Date | string | null
    lastStatus?: $Enums.AutomationExecutionStatus | null
    nextRunAt?: Date | string | null
    totalRuns?: number
    successRuns?: number
    failedRuns?: number
    createdById?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AutomationTaskUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AutomationTaskUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AutomationExecutionCreateInput = {
    id?: string
    status: $Enums.AutomationExecutionStatus
    startedAt?: Date | string
    completedAt?: Date | string | null
    duration?: number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: string | null
    logs?: string | null
    triggerType: string
    triggeredBy?: string | null
    createdAt?: Date | string
    task: AutomationTaskCreateNestedOneWithoutExecutionsInput
  }

  export type AutomationExecutionUncheckedCreateInput = {
    id?: string
    taskId: string
    status: $Enums.AutomationExecutionStatus
    startedAt?: Date | string
    completedAt?: Date | string | null
    duration?: number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: string | null
    logs?: string | null
    triggerType: string
    triggeredBy?: string | null
    createdAt?: Date | string
  }

  export type AutomationExecutionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: NullableStringFieldUpdateOperationsInput | string | null
    logs?: NullableStringFieldUpdateOperationsInput | string | null
    triggerType?: StringFieldUpdateOperationsInput | string
    triggeredBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: AutomationTaskUpdateOneRequiredWithoutExecutionsNestedInput
  }

  export type AutomationExecutionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    status?: EnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: NullableStringFieldUpdateOperationsInput | string | null
    logs?: NullableStringFieldUpdateOperationsInput | string | null
    triggerType?: StringFieldUpdateOperationsInput | string
    triggeredBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AutomationExecutionCreateManyInput = {
    id?: string
    taskId: string
    status: $Enums.AutomationExecutionStatus
    startedAt?: Date | string
    completedAt?: Date | string | null
    duration?: number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: string | null
    logs?: string | null
    triggerType: string
    triggeredBy?: string | null
    createdAt?: Date | string
  }

  export type AutomationExecutionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: NullableStringFieldUpdateOperationsInput | string | null
    logs?: NullableStringFieldUpdateOperationsInput | string | null
    triggerType?: StringFieldUpdateOperationsInput | string
    triggeredBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AutomationExecutionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    status?: EnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: NullableStringFieldUpdateOperationsInput | string | null
    logs?: NullableStringFieldUpdateOperationsInput | string | null
    triggerType?: StringFieldUpdateOperationsInput | string
    triggeredBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkSyncConfigCreateInput = {
    id?: string
    taskCode: string
    formUuid?: string | null
    appType?: string | null
    fieldMapping?: JsonNullValueInput | InputJsonValue
    syncDirection: string
    searchCondition?: NullableJsonNullValueInput | InputJsonValue
    lookbackMinutes?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkSyncConfigUncheckedCreateInput = {
    id?: string
    taskCode: string
    formUuid?: string | null
    appType?: string | null
    fieldMapping?: JsonNullValueInput | InputJsonValue
    syncDirection: string
    searchCondition?: NullableJsonNullValueInput | InputJsonValue
    lookbackMinutes?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkSyncConfigUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskCode?: StringFieldUpdateOperationsInput | string
    formUuid?: NullableStringFieldUpdateOperationsInput | string | null
    appType?: NullableStringFieldUpdateOperationsInput | string | null
    fieldMapping?: JsonNullValueInput | InputJsonValue
    syncDirection?: StringFieldUpdateOperationsInput | string
    searchCondition?: NullableJsonNullValueInput | InputJsonValue
    lookbackMinutes?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkSyncConfigUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskCode?: StringFieldUpdateOperationsInput | string
    formUuid?: NullableStringFieldUpdateOperationsInput | string | null
    appType?: NullableStringFieldUpdateOperationsInput | string | null
    fieldMapping?: JsonNullValueInput | InputJsonValue
    syncDirection?: StringFieldUpdateOperationsInput | string
    searchCondition?: NullableJsonNullValueInput | InputJsonValue
    lookbackMinutes?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkSyncConfigCreateManyInput = {
    id?: string
    taskCode: string
    formUuid?: string | null
    appType?: string | null
    fieldMapping?: JsonNullValueInput | InputJsonValue
    syncDirection: string
    searchCondition?: NullableJsonNullValueInput | InputJsonValue
    lookbackMinutes?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkSyncConfigUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskCode?: StringFieldUpdateOperationsInput | string
    formUuid?: NullableStringFieldUpdateOperationsInput | string | null
    appType?: NullableStringFieldUpdateOperationsInput | string | null
    fieldMapping?: JsonNullValueInput | InputJsonValue
    syncDirection?: StringFieldUpdateOperationsInput | string
    searchCondition?: NullableJsonNullValueInput | InputJsonValue
    lookbackMinutes?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkSyncConfigUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskCode?: StringFieldUpdateOperationsInput | string
    formUuid?: NullableStringFieldUpdateOperationsInput | string | null
    appType?: NullableStringFieldUpdateOperationsInput | string | null
    fieldMapping?: JsonNullValueInput | InputJsonValue
    syncDirection?: StringFieldUpdateOperationsInput | string
    searchCondition?: NullableJsonNullValueInput | InputJsonValue
    lookbackMinutes?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkLeaveCodeCreateInput = {
    id?: string
    code: string
    name: string
    year?: number | null
    category: string
    isActive?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkLeaveCodeUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    year?: number | null
    category: string
    isActive?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkLeaveCodeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    year?: NullableIntFieldUpdateOperationsInput | number | null
    category?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkLeaveCodeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    year?: NullableIntFieldUpdateOperationsInput | number | null
    category?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkLeaveCodeCreateManyInput = {
    id?: string
    code: string
    name: string
    year?: number | null
    category: string
    isActive?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkLeaveCodeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    year?: NullableIntFieldUpdateOperationsInput | number | null
    category?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkLeaveCodeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    year?: NullableIntFieldUpdateOperationsInput | number | null
    category?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkLeaveQuotaSnapshotCreateInput = {
    id?: string
    userId: string
    employeeName: string
    employeeNumber?: string
    leaveCode: string
    leaveType: string
    quotaCycle?: string
    totalDays?: Decimal | DecimalJsLike | number | string
    usedDays?: Decimal | DecimalJsLike | number | string
    remainingDays?: Decimal | DecimalJsLike | number | string
    startDate?: Date | string | null
    endDate?: Date | string | null
    usageRecords?: NullableJsonNullValueInput | InputJsonValue
    releaseRecords?: NullableJsonNullValueInput | InputJsonValue
    snapshotAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkLeaveQuotaSnapshotUncheckedCreateInput = {
    id?: string
    userId: string
    employeeName: string
    employeeNumber?: string
    leaveCode: string
    leaveType: string
    quotaCycle?: string
    totalDays?: Decimal | DecimalJsLike | number | string
    usedDays?: Decimal | DecimalJsLike | number | string
    remainingDays?: Decimal | DecimalJsLike | number | string
    startDate?: Date | string | null
    endDate?: Date | string | null
    usageRecords?: NullableJsonNullValueInput | InputJsonValue
    releaseRecords?: NullableJsonNullValueInput | InputJsonValue
    snapshotAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkLeaveQuotaSnapshotUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeName?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    leaveCode?: StringFieldUpdateOperationsInput | string
    leaveType?: StringFieldUpdateOperationsInput | string
    quotaCycle?: StringFieldUpdateOperationsInput | string
    totalDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    usedDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    remainingDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    usageRecords?: NullableJsonNullValueInput | InputJsonValue
    releaseRecords?: NullableJsonNullValueInput | InputJsonValue
    snapshotAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkLeaveQuotaSnapshotUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeName?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    leaveCode?: StringFieldUpdateOperationsInput | string
    leaveType?: StringFieldUpdateOperationsInput | string
    quotaCycle?: StringFieldUpdateOperationsInput | string
    totalDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    usedDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    remainingDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    usageRecords?: NullableJsonNullValueInput | InputJsonValue
    releaseRecords?: NullableJsonNullValueInput | InputJsonValue
    snapshotAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkLeaveQuotaSnapshotCreateManyInput = {
    id?: string
    userId: string
    employeeName: string
    employeeNumber?: string
    leaveCode: string
    leaveType: string
    quotaCycle?: string
    totalDays?: Decimal | DecimalJsLike | number | string
    usedDays?: Decimal | DecimalJsLike | number | string
    remainingDays?: Decimal | DecimalJsLike | number | string
    startDate?: Date | string | null
    endDate?: Date | string | null
    usageRecords?: NullableJsonNullValueInput | InputJsonValue
    releaseRecords?: NullableJsonNullValueInput | InputJsonValue
    snapshotAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkLeaveQuotaSnapshotUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeName?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    leaveCode?: StringFieldUpdateOperationsInput | string
    leaveType?: StringFieldUpdateOperationsInput | string
    quotaCycle?: StringFieldUpdateOperationsInput | string
    totalDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    usedDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    remainingDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    usageRecords?: NullableJsonNullValueInput | InputJsonValue
    releaseRecords?: NullableJsonNullValueInput | InputJsonValue
    snapshotAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkLeaveQuotaSnapshotUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeName?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    leaveCode?: StringFieldUpdateOperationsInput | string
    leaveType?: StringFieldUpdateOperationsInput | string
    quotaCycle?: StringFieldUpdateOperationsInput | string
    totalDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    usedDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    remainingDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    usageRecords?: NullableJsonNullValueInput | InputJsonValue
    releaseRecords?: NullableJsonNullValueInput | InputJsonValue
    snapshotAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SapPurchaseSyncRecordCreateInput = {
    id?: string
    serialNumber: string
    formInstanceId: string
    applicantName: string
    budgetAmount?: Decimal | DecimalJsLike | number | string
    sapPrNumber?: string | null
    sapStatus: string
    sapMessages?: NullableJsonNullValueInput | InputJsonValue
    sapRawResponse?: NullableJsonNullValueInput | InputJsonValue
    approverChain?: string | null
    syncedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SapPurchaseSyncRecordUncheckedCreateInput = {
    id?: string
    serialNumber: string
    formInstanceId: string
    applicantName: string
    budgetAmount?: Decimal | DecimalJsLike | number | string
    sapPrNumber?: string | null
    sapStatus: string
    sapMessages?: NullableJsonNullValueInput | InputJsonValue
    sapRawResponse?: NullableJsonNullValueInput | InputJsonValue
    approverChain?: string | null
    syncedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SapPurchaseSyncRecordUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    serialNumber?: StringFieldUpdateOperationsInput | string
    formInstanceId?: StringFieldUpdateOperationsInput | string
    applicantName?: StringFieldUpdateOperationsInput | string
    budgetAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    sapPrNumber?: NullableStringFieldUpdateOperationsInput | string | null
    sapStatus?: StringFieldUpdateOperationsInput | string
    sapMessages?: NullableJsonNullValueInput | InputJsonValue
    sapRawResponse?: NullableJsonNullValueInput | InputJsonValue
    approverChain?: NullableStringFieldUpdateOperationsInput | string | null
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SapPurchaseSyncRecordUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    serialNumber?: StringFieldUpdateOperationsInput | string
    formInstanceId?: StringFieldUpdateOperationsInput | string
    applicantName?: StringFieldUpdateOperationsInput | string
    budgetAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    sapPrNumber?: NullableStringFieldUpdateOperationsInput | string | null
    sapStatus?: StringFieldUpdateOperationsInput | string
    sapMessages?: NullableJsonNullValueInput | InputJsonValue
    sapRawResponse?: NullableJsonNullValueInput | InputJsonValue
    approverChain?: NullableStringFieldUpdateOperationsInput | string | null
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SapPurchaseSyncRecordCreateManyInput = {
    id?: string
    serialNumber: string
    formInstanceId: string
    applicantName: string
    budgetAmount?: Decimal | DecimalJsLike | number | string
    sapPrNumber?: string | null
    sapStatus: string
    sapMessages?: NullableJsonNullValueInput | InputJsonValue
    sapRawResponse?: NullableJsonNullValueInput | InputJsonValue
    approverChain?: string | null
    syncedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SapPurchaseSyncRecordUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    serialNumber?: StringFieldUpdateOperationsInput | string
    formInstanceId?: StringFieldUpdateOperationsInput | string
    applicantName?: StringFieldUpdateOperationsInput | string
    budgetAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    sapPrNumber?: NullableStringFieldUpdateOperationsInput | string | null
    sapStatus?: StringFieldUpdateOperationsInput | string
    sapMessages?: NullableJsonNullValueInput | InputJsonValue
    sapRawResponse?: NullableJsonNullValueInput | InputJsonValue
    approverChain?: NullableStringFieldUpdateOperationsInput | string | null
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SapPurchaseSyncRecordUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    serialNumber?: StringFieldUpdateOperationsInput | string
    formInstanceId?: StringFieldUpdateOperationsInput | string
    applicantName?: StringFieldUpdateOperationsInput | string
    budgetAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    sapPrNumber?: NullableStringFieldUpdateOperationsInput | string | null
    sapStatus?: StringFieldUpdateOperationsInput | string
    sapMessages?: NullableJsonNullValueInput | InputJsonValue
    sapRawResponse?: NullableJsonNullValueInput | InputJsonValue
    approverChain?: NullableStringFieldUpdateOperationsInput | string | null
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeCreateInput = {
    id?: string
    userId: string
    name?: string
    employeeNumber?: string
    department?: string
    position?: string
    rank?: string
    phone?: string
    country?: string
    workPlace?: string
    contractCompany?: string
    bank?: string
    bankCardLast4?: string
    monthlyStandardHours?: string
    workHourLimit?: string
    joinDate?: Date | string | null
    workStartDate?: Date | string | null
    tenureDays?: number
    status?: string
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeUncheckedCreateInput = {
    id?: string
    userId: string
    name?: string
    employeeNumber?: string
    department?: string
    position?: string
    rank?: string
    phone?: string
    country?: string
    workPlace?: string
    contractCompany?: string
    bank?: string
    bankCardLast4?: string
    monthlyStandardHours?: string
    workHourLimit?: string
    joinDate?: Date | string | null
    workStartDate?: Date | string | null
    tenureDays?: number
    status?: string
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    department?: StringFieldUpdateOperationsInput | string
    position?: StringFieldUpdateOperationsInput | string
    rank?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    country?: StringFieldUpdateOperationsInput | string
    workPlace?: StringFieldUpdateOperationsInput | string
    contractCompany?: StringFieldUpdateOperationsInput | string
    bank?: StringFieldUpdateOperationsInput | string
    bankCardLast4?: StringFieldUpdateOperationsInput | string
    monthlyStandardHours?: StringFieldUpdateOperationsInput | string
    workHourLimit?: StringFieldUpdateOperationsInput | string
    joinDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    workStartDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenureDays?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    department?: StringFieldUpdateOperationsInput | string
    position?: StringFieldUpdateOperationsInput | string
    rank?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    country?: StringFieldUpdateOperationsInput | string
    workPlace?: StringFieldUpdateOperationsInput | string
    contractCompany?: StringFieldUpdateOperationsInput | string
    bank?: StringFieldUpdateOperationsInput | string
    bankCardLast4?: StringFieldUpdateOperationsInput | string
    monthlyStandardHours?: StringFieldUpdateOperationsInput | string
    workHourLimit?: StringFieldUpdateOperationsInput | string
    joinDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    workStartDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenureDays?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeCreateManyInput = {
    id?: string
    userId: string
    name?: string
    employeeNumber?: string
    department?: string
    position?: string
    rank?: string
    phone?: string
    country?: string
    workPlace?: string
    contractCompany?: string
    bank?: string
    bankCardLast4?: string
    monthlyStandardHours?: string
    workHourLimit?: string
    joinDate?: Date | string | null
    workStartDate?: Date | string | null
    tenureDays?: number
    status?: string
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    department?: StringFieldUpdateOperationsInput | string
    position?: StringFieldUpdateOperationsInput | string
    rank?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    country?: StringFieldUpdateOperationsInput | string
    workPlace?: StringFieldUpdateOperationsInput | string
    contractCompany?: StringFieldUpdateOperationsInput | string
    bank?: StringFieldUpdateOperationsInput | string
    bankCardLast4?: StringFieldUpdateOperationsInput | string
    monthlyStandardHours?: StringFieldUpdateOperationsInput | string
    workHourLimit?: StringFieldUpdateOperationsInput | string
    joinDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    workStartDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenureDays?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    department?: StringFieldUpdateOperationsInput | string
    position?: StringFieldUpdateOperationsInput | string
    rank?: StringFieldUpdateOperationsInput | string
    phone?: StringFieldUpdateOperationsInput | string
    country?: StringFieldUpdateOperationsInput | string
    workPlace?: StringFieldUpdateOperationsInput | string
    contractCompany?: StringFieldUpdateOperationsInput | string
    bank?: StringFieldUpdateOperationsInput | string
    bankCardLast4?: StringFieldUpdateOperationsInput | string
    monthlyStandardHours?: StringFieldUpdateOperationsInput | string
    workHourLimit?: StringFieldUpdateOperationsInput | string
    joinDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    workStartDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenureDays?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodCreateInput = {
    id?: string
    userId: string
    periodIndex: number
    joinDate: Date | string
    leaveDate?: Date | string | null
    countInTenure?: boolean
    note?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodUncheckedCreateInput = {
    id?: string
    userId: string
    periodIndex: number
    joinDate: Date | string
    leaveDate?: Date | string | null
    countInTenure?: boolean
    note?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    periodIndex?: IntFieldUpdateOperationsInput | number
    joinDate?: DateTimeFieldUpdateOperationsInput | Date | string
    leaveDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    countInTenure?: BoolFieldUpdateOperationsInput | boolean
    note?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    periodIndex?: IntFieldUpdateOperationsInput | number
    joinDate?: DateTimeFieldUpdateOperationsInput | Date | string
    leaveDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    countInTenure?: BoolFieldUpdateOperationsInput | boolean
    note?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodCreateManyInput = {
    id?: string
    userId: string
    periodIndex: number
    joinDate: Date | string
    leaveDate?: Date | string | null
    countInTenure?: boolean
    note?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    periodIndex?: IntFieldUpdateOperationsInput | number
    joinDate?: DateTimeFieldUpdateOperationsInput | Date | string
    leaveDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    countInTenure?: BoolFieldUpdateOperationsInput | boolean
    note?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeEmploymentPeriodUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    periodIndex?: IntFieldUpdateOperationsInput | number
    joinDate?: DateTimeFieldUpdateOperationsInput | Date | string
    leaveDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    countInTenure?: BoolFieldUpdateOperationsInput | boolean
    note?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodCreateInput = {
    id?: string
    userId: string
    startDate: Date | string
    endDate?: Date | string | null
    reason?: string
    note?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodUncheckedCreateInput = {
    id?: string
    userId: string
    startDate: Date | string
    endDate?: Date | string | null
    reason?: string
    note?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reason?: StringFieldUpdateOperationsInput | string
    note?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reason?: StringFieldUpdateOperationsInput | string
    note?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodCreateManyInput = {
    id?: string
    userId: string
    startDate: Date | string
    endDate?: Date | string | null
    reason?: string
    note?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reason?: StringFieldUpdateOperationsInput | string
    note?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkEmployeeSuspensionPeriodUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reason?: StringFieldUpdateOperationsInput | string
    note?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SapPurchaseCacheCreateInput = {
    id?: string
    serialNumber: string
    formInstanceId: string
    sapEnv: string
    applicantName?: string
    applicantDept?: string
    budgetNumber?: string
    budgetAmount?: Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: string
    applicationDate?: string
    demandCategory?: string
    purchasingCompanyName?: string
    materialGroup?: string
    formData?: JsonNullValueInput | InputJsonValue
    yidaModifiedAt?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SapPurchaseCacheUncheckedCreateInput = {
    id?: string
    serialNumber: string
    formInstanceId: string
    sapEnv: string
    applicantName?: string
    applicantDept?: string
    budgetNumber?: string
    budgetAmount?: Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: string
    applicationDate?: string
    demandCategory?: string
    purchasingCompanyName?: string
    materialGroup?: string
    formData?: JsonNullValueInput | InputJsonValue
    yidaModifiedAt?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SapPurchaseCacheUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    serialNumber?: StringFieldUpdateOperationsInput | string
    formInstanceId?: StringFieldUpdateOperationsInput | string
    sapEnv?: StringFieldUpdateOperationsInput | string
    applicantName?: StringFieldUpdateOperationsInput | string
    applicantDept?: StringFieldUpdateOperationsInput | string
    budgetNumber?: StringFieldUpdateOperationsInput | string
    budgetAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: StringFieldUpdateOperationsInput | string
    applicationDate?: StringFieldUpdateOperationsInput | string
    demandCategory?: StringFieldUpdateOperationsInput | string
    purchasingCompanyName?: StringFieldUpdateOperationsInput | string
    materialGroup?: StringFieldUpdateOperationsInput | string
    formData?: JsonNullValueInput | InputJsonValue
    yidaModifiedAt?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SapPurchaseCacheUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    serialNumber?: StringFieldUpdateOperationsInput | string
    formInstanceId?: StringFieldUpdateOperationsInput | string
    sapEnv?: StringFieldUpdateOperationsInput | string
    applicantName?: StringFieldUpdateOperationsInput | string
    applicantDept?: StringFieldUpdateOperationsInput | string
    budgetNumber?: StringFieldUpdateOperationsInput | string
    budgetAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: StringFieldUpdateOperationsInput | string
    applicationDate?: StringFieldUpdateOperationsInput | string
    demandCategory?: StringFieldUpdateOperationsInput | string
    purchasingCompanyName?: StringFieldUpdateOperationsInput | string
    materialGroup?: StringFieldUpdateOperationsInput | string
    formData?: JsonNullValueInput | InputJsonValue
    yidaModifiedAt?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SapPurchaseCacheCreateManyInput = {
    id?: string
    serialNumber: string
    formInstanceId: string
    sapEnv: string
    applicantName?: string
    applicantDept?: string
    budgetNumber?: string
    budgetAmount?: Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: string
    applicationDate?: string
    demandCategory?: string
    purchasingCompanyName?: string
    materialGroup?: string
    formData?: JsonNullValueInput | InputJsonValue
    yidaModifiedAt?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SapPurchaseCacheUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    serialNumber?: StringFieldUpdateOperationsInput | string
    formInstanceId?: StringFieldUpdateOperationsInput | string
    sapEnv?: StringFieldUpdateOperationsInput | string
    applicantName?: StringFieldUpdateOperationsInput | string
    applicantDept?: StringFieldUpdateOperationsInput | string
    budgetNumber?: StringFieldUpdateOperationsInput | string
    budgetAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: StringFieldUpdateOperationsInput | string
    applicationDate?: StringFieldUpdateOperationsInput | string
    demandCategory?: StringFieldUpdateOperationsInput | string
    purchasingCompanyName?: StringFieldUpdateOperationsInput | string
    materialGroup?: StringFieldUpdateOperationsInput | string
    formData?: JsonNullValueInput | InputJsonValue
    yidaModifiedAt?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SapPurchaseCacheUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    serialNumber?: StringFieldUpdateOperationsInput | string
    formInstanceId?: StringFieldUpdateOperationsInput | string
    sapEnv?: StringFieldUpdateOperationsInput | string
    applicantName?: StringFieldUpdateOperationsInput | string
    applicantDept?: StringFieldUpdateOperationsInput | string
    budgetNumber?: StringFieldUpdateOperationsInput | string
    budgetAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    purchaseProjectDescription?: StringFieldUpdateOperationsInput | string
    applicationDate?: StringFieldUpdateOperationsInput | string
    demandCategory?: StringFieldUpdateOperationsInput | string
    purchasingCompanyName?: StringFieldUpdateOperationsInput | string
    materialGroup?: StringFieldUpdateOperationsInput | string
    formData?: JsonNullValueInput | InputJsonValue
    yidaModifiedAt?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AdpPtoScheduleCreateInput = {
    id?: string
    adpAoid: string
    leaveDate: Date | string
    startTime: Date | string
    endTime: Date | string
    adpEntryId: string
    syncedAt?: Date | string
    user: UserCreateNestedOneWithoutAdpPtoSchedulesInput
  }

  export type AdpPtoScheduleUncheckedCreateInput = {
    id?: string
    userId: string
    adpAoid: string
    leaveDate: Date | string
    startTime: Date | string
    endTime: Date | string
    adpEntryId: string
    syncedAt?: Date | string
  }

  export type AdpPtoScheduleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    adpAoid?: StringFieldUpdateOperationsInput | string
    leaveDate?: DateTimeFieldUpdateOperationsInput | Date | string
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    adpEntryId?: StringFieldUpdateOperationsInput | string
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAdpPtoSchedulesNestedInput
  }

  export type AdpPtoScheduleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    adpAoid?: StringFieldUpdateOperationsInput | string
    leaveDate?: DateTimeFieldUpdateOperationsInput | Date | string
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    adpEntryId?: StringFieldUpdateOperationsInput | string
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AdpPtoScheduleCreateManyInput = {
    id?: string
    userId: string
    adpAoid: string
    leaveDate: Date | string
    startTime: Date | string
    endTime: Date | string
    adpEntryId: string
    syncedAt?: Date | string
  }

  export type AdpPtoScheduleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    adpAoid?: StringFieldUpdateOperationsInput | string
    leaveDate?: DateTimeFieldUpdateOperationsInput | Date | string
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    adpEntryId?: StringFieldUpdateOperationsInput | string
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AdpPtoScheduleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    adpAoid?: StringFieldUpdateOperationsInput | string
    leaveDate?: DateTimeFieldUpdateOperationsInput | Date | string
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    adpEntryId?: StringFieldUpdateOperationsInput | string
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanCreateInput = {
    id?: string
    userId: string
    employeeName?: string
    employeeNumber?: string
    year: number
    status?: string
    joinDate?: Date | string | null
    workStartDate?: Date | string | null
    adjustmentDays?: Decimal | DecimalJsLike | number | string
    notCountDays?: number
    totalDays?: number
    releaseSchedule?: JsonNullValueInput | InputJsonValue
    lastCalculatedAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanUncheckedCreateInput = {
    id?: string
    userId: string
    employeeName?: string
    employeeNumber?: string
    year: number
    status?: string
    joinDate?: Date | string | null
    workStartDate?: Date | string | null
    adjustmentDays?: Decimal | DecimalJsLike | number | string
    notCountDays?: number
    totalDays?: number
    releaseSchedule?: JsonNullValueInput | InputJsonValue
    lastCalculatedAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeName?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    year?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    joinDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    workStartDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    adjustmentDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    notCountDays?: IntFieldUpdateOperationsInput | number
    totalDays?: IntFieldUpdateOperationsInput | number
    releaseSchedule?: JsonNullValueInput | InputJsonValue
    lastCalculatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeName?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    year?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    joinDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    workStartDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    adjustmentDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    notCountDays?: IntFieldUpdateOperationsInput | number
    totalDays?: IntFieldUpdateOperationsInput | number
    releaseSchedule?: JsonNullValueInput | InputJsonValue
    lastCalculatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanCreateManyInput = {
    id?: string
    userId: string
    employeeName?: string
    employeeNumber?: string
    year: number
    status?: string
    joinDate?: Date | string | null
    workStartDate?: Date | string | null
    adjustmentDays?: Decimal | DecimalJsLike | number | string
    notCountDays?: number
    totalDays?: number
    releaseSchedule?: JsonNullValueInput | InputJsonValue
    lastCalculatedAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeName?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    year?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    joinDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    workStartDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    adjustmentDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    notCountDays?: IntFieldUpdateOperationsInput | number
    totalDays?: IntFieldUpdateOperationsInput | number
    releaseSchedule?: JsonNullValueInput | InputJsonValue
    lastCalculatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DingtalkAnnualLeaveReleasePlanUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeName?: StringFieldUpdateOperationsInput | string
    employeeNumber?: StringFieldUpdateOperationsInput | string
    year?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    joinDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    workStartDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    adjustmentDays?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    notCountDays?: IntFieldUpdateOperationsInput | number
    totalDays?: IntFieldUpdateOperationsInput | number
    releaseSchedule?: JsonNullValueInput | InputJsonValue
    lastCalculatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DevItemCreateInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parent?: DevItemCreateNestedOneWithoutChildrenInput
    children?: DevItemCreateNestedManyWithoutParentInput
    owner: UserCreateNestedOneWithoutDevItemsOwnedInput
    reporter: UserCreateNestedOneWithoutDevItemsReportedInput
    reviewer?: UserCreateNestedOneWithoutDevItemsReviewedInput
  }

  export type DevItemUncheckedCreateInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    ownerId: string
    reporterId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DevItemUncheckedCreateNestedManyWithoutParentInput
  }

  export type DevItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: DevItemUpdateOneWithoutChildrenNestedInput
    children?: DevItemUpdateManyWithoutParentNestedInput
    owner?: UserUpdateOneRequiredWithoutDevItemsOwnedNestedInput
    reporter?: UserUpdateOneRequiredWithoutDevItemsReportedNestedInput
    reviewer?: UserUpdateOneWithoutDevItemsReviewedNestedInput
  }

  export type DevItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DevItemUncheckedUpdateManyWithoutParentNestedInput
  }

  export type DevItemCreateManyInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    ownerId: string
    reporterId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DevItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DevItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DevItemSequenceCreateInput = {
    prefix: string
    current?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DevItemSequenceUncheckedCreateInput = {
    prefix: string
    current?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DevItemSequenceUpdateInput = {
    prefix?: StringFieldUpdateOperationsInput | string
    current?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DevItemSequenceUncheckedUpdateInput = {
    prefix?: StringFieldUpdateOperationsInput | string
    current?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DevItemSequenceCreateManyInput = {
    prefix: string
    current?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DevItemSequenceUpdateManyMutationInput = {
    prefix?: StringFieldUpdateOperationsInput | string
    current?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DevItemSequenceUncheckedUpdateManyInput = {
    prefix?: StringFieldUpdateOperationsInput | string
    current?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReleaseNoteCreateInput = {
    id?: string
    version: string
    title: string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutReleaseNotesInput
  }

  export type ReleaseNoteUncheckedCreateInput = {
    id?: string
    version: string
    title: string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt: Date | string
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ReleaseNoteUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutReleaseNotesNestedInput
  }

  export type ReleaseNoteUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReleaseNoteCreateManyInput = {
    id?: string
    version: string
    title: string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt: Date | string
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ReleaseNoteUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReleaseNoteUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FeedbackCreateInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    resolvedAt?: Date | string | null
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    user: UserCreateNestedOneWithoutFeedbacksInput
    assignee?: UserCreateNestedOneWithoutAssignedFeedbacksInput
  }

  export type FeedbackUncheckedCreateInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    assigneeId?: string | null
    resolvedAt?: Date | string | null
    userId: string
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FeedbackUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    user?: UserUpdateOneRequiredWithoutFeedbacksNestedInput
    assignee?: UserUpdateOneWithoutAssignedFeedbacksNestedInput
  }

  export type FeedbackUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    userId?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FeedbackCreateManyInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    assigneeId?: string | null
    resolvedAt?: Date | string | null
    userId: string
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FeedbackUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FeedbackUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    userId?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormDefinitionCreateInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutFormDefinitionsInput
    creator: UserCreateNestedOneWithoutCreatedFormDefinitionsInput
    updater?: UserCreateNestedOneWithoutUpdatedFormDefinitionsInput
    instances?: FormInstanceCreateNestedManyWithoutDefinitionInput
    versions?: FormVersionCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionUncheckedCreateInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    organizationId?: string | null
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutDefinitionInput
    versions?: FormVersionUncheckedCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutFormDefinitionsNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormDefinitionsNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormDefinitionsNestedInput
    instances?: FormInstanceUpdateManyWithoutDefinitionNestedInput
    versions?: FormVersionUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutDefinitionNestedInput
    versions?: FormVersionUncheckedUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionCreateManyInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    organizationId?: string | null
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormDefinitionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormDefinitionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormVersionCreateInput = {
    id?: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    instances?: FormInstanceCreateNestedManyWithoutVersionInput
    translations?: FormTranslationCreateNestedManyWithoutVersionInput
    creator: UserCreateNestedOneWithoutCreatedFormVersionsInput
    reviewer?: UserCreateNestedOneWithoutReviewedFormVersionsInput
    definition: FormDefinitionCreateNestedOneWithoutVersionsInput
  }

  export type FormVersionUncheckedCreateInput = {
    id?: string
    definitionId: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdBy: string
    createdAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutVersionInput
    translations?: FormTranslationUncheckedCreateNestedManyWithoutVersionInput
  }

  export type FormVersionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUpdateManyWithoutVersionNestedInput
    translations?: FormTranslationUpdateManyWithoutVersionNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormVersionsNestedInput
    reviewer?: UserUpdateOneWithoutReviewedFormVersionsNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutVersionsNestedInput
  }

  export type FormVersionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutVersionNestedInput
    translations?: FormTranslationUncheckedUpdateManyWithoutVersionNestedInput
  }

  export type FormVersionCreateManyInput = {
    id?: string
    definitionId: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdBy: string
    createdAt?: Date | string
  }

  export type FormVersionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormVersionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormInstanceCreateInput = {
    id?: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedFormInstancesInput
    definition: FormDefinitionCreateNestedOneWithoutInstancesInput
    version: FormVersionCreateNestedOneWithoutInstancesInput
    snapshot?: ReleaseSnapshotCreateNestedOneWithoutInstancesInput
    submitter?: UserCreateNestedOneWithoutSubmittedFormInstancesInput
    updater?: UserCreateNestedOneWithoutUpdatedFormInstancesInput
  }

  export type FormInstanceUncheckedCreateInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedFormInstancesNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutInstancesNestedInput
    version?: FormVersionUpdateOneRequiredWithoutInstancesNestedInput
    snapshot?: ReleaseSnapshotUpdateOneWithoutInstancesNestedInput
    submitter?: UserUpdateOneWithoutSubmittedFormInstancesNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormInstancesNestedInput
  }

  export type FormInstanceUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceCreateManyInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormTranslationCreateInput = {
    id?: string
    locale: string
    translations: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    version: FormVersionCreateNestedOneWithoutTranslationsInput
  }

  export type FormTranslationUncheckedCreateInput = {
    id?: string
    versionId: string
    locale: string
    translations: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTranslationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    locale?: StringFieldUpdateOperationsInput | string
    translations?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: FormVersionUpdateOneRequiredWithoutTranslationsNestedInput
  }

  export type FormTranslationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    locale?: StringFieldUpdateOperationsInput | string
    translations?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTranslationCreateManyInput = {
    id?: string
    versionId: string
    locale: string
    translations: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTranslationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    locale?: StringFieldUpdateOperationsInput | string
    translations?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTranslationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    locale?: StringFieldUpdateOperationsInput | string
    translations?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTemplateCreateInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutCreatedFormTemplatesInput
    updater?: UserCreateNestedOneWithoutUpdatedFormTemplatesInput
  }

  export type FormTemplateUncheckedCreateInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTemplateUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutCreatedFormTemplatesNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormTemplatesNestedInput
  }

  export type FormTemplateUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTemplateCreateManyInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTemplateUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTemplateUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReleaseSnapshotCreateInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    processDefinitionId?: string | null
    processVersionId?: string | null
    status?: $Enums.ReleaseSnapshotStatus
    versionName?: string | null
    releaseNote?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    submitComment?: string | null
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedBy?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: FormInstanceCreateNestedManyWithoutSnapshotInput
  }

  export type ReleaseSnapshotUncheckedCreateInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    processDefinitionId?: string | null
    processVersionId?: string | null
    status?: $Enums.ReleaseSnapshotStatus
    versionName?: string | null
    releaseNote?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    submitComment?: string | null
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedBy?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutSnapshotInput
  }

  export type ReleaseSnapshotUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    processDefinitionId?: NullableStringFieldUpdateOperationsInput | string | null
    processVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumReleaseSnapshotStatusFieldUpdateOperationsInput | $Enums.ReleaseSnapshotStatus
    versionName?: NullableStringFieldUpdateOperationsInput | string | null
    releaseNote?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    submitComment?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUpdateManyWithoutSnapshotNestedInput
  }

  export type ReleaseSnapshotUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    processDefinitionId?: NullableStringFieldUpdateOperationsInput | string | null
    processVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumReleaseSnapshotStatusFieldUpdateOperationsInput | $Enums.ReleaseSnapshotStatus
    versionName?: NullableStringFieldUpdateOperationsInput | string | null
    releaseNote?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    submitComment?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutSnapshotNestedInput
  }

  export type ReleaseSnapshotCreateManyInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    processDefinitionId?: string | null
    processVersionId?: string | null
    status?: $Enums.ReleaseSnapshotStatus
    versionName?: string | null
    releaseNote?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    submitComment?: string | null
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedBy?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ReleaseSnapshotUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    processDefinitionId?: NullableStringFieldUpdateOperationsInput | string | null
    processVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumReleaseSnapshotStatusFieldUpdateOperationsInput | $Enums.ReleaseSnapshotStatus
    versionName?: NullableStringFieldUpdateOperationsInput | string | null
    releaseNote?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    submitComment?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReleaseSnapshotUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    processDefinitionId?: NullableStringFieldUpdateOperationsInput | string | null
    processVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumReleaseSnapshotStatusFieldUpdateOperationsInput | $Enums.ReleaseSnapshotStatus
    versionName?: NullableStringFieldUpdateOperationsInput | string | null
    releaseNote?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    submitComment?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormWebhookCreateInput = {
    id?: string
    name: string
    description?: string | null
    url: string
    secret: string
    events: JsonNullValueInput | InputJsonValue
    enabled?: boolean
    maxRetries?: number
    timeoutMs?: number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutFormWebhooksInput
    logs?: FormWebhookLogCreateNestedManyWithoutWebhookInput
  }

  export type FormWebhookUncheckedCreateInput = {
    id?: string
    organizationId?: string | null
    name: string
    description?: string | null
    url: string
    secret: string
    events: JsonNullValueInput | InputJsonValue
    enabled?: boolean
    maxRetries?: number
    timeoutMs?: number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    logs?: FormWebhookLogUncheckedCreateNestedManyWithoutWebhookInput
  }

  export type FormWebhookUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutFormWebhooksNestedInput
    logs?: FormWebhookLogUpdateManyWithoutWebhookNestedInput
  }

  export type FormWebhookUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    logs?: FormWebhookLogUncheckedUpdateManyWithoutWebhookNestedInput
  }

  export type FormWebhookCreateManyInput = {
    id?: string
    organizationId?: string | null
    name: string
    description?: string | null
    url: string
    secret: string
    events: JsonNullValueInput | InputJsonValue
    enabled?: boolean
    maxRetries?: number
    timeoutMs?: number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormWebhookUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormWebhookUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormWebhookLogCreateInput = {
    id?: string
    eventType: string
    payload: JsonNullValueInput | InputJsonValue
    statusCode?: number | null
    response?: string | null
    success: boolean
    error?: string | null
    retryCount?: number
    duration?: number | null
    createdAt?: Date | string
    webhook: FormWebhookCreateNestedOneWithoutLogsInput
  }

  export type FormWebhookLogUncheckedCreateInput = {
    id?: string
    webhookId: string
    eventType: string
    payload: JsonNullValueInput | InputJsonValue
    statusCode?: number | null
    response?: string | null
    success: boolean
    error?: string | null
    retryCount?: number
    duration?: number | null
    createdAt?: Date | string
  }

  export type FormWebhookLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    payload?: JsonNullValueInput | InputJsonValue
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    success?: BoolFieldUpdateOperationsInput | boolean
    error?: NullableStringFieldUpdateOperationsInput | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    webhook?: FormWebhookUpdateOneRequiredWithoutLogsNestedInput
  }

  export type FormWebhookLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    webhookId?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    payload?: JsonNullValueInput | InputJsonValue
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    success?: BoolFieldUpdateOperationsInput | boolean
    error?: NullableStringFieldUpdateOperationsInput | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormWebhookLogCreateManyInput = {
    id?: string
    webhookId: string
    eventType: string
    payload: JsonNullValueInput | InputJsonValue
    statusCode?: number | null
    response?: string | null
    success: boolean
    error?: string | null
    retryCount?: number
    duration?: number | null
    createdAt?: Date | string
  }

  export type FormWebhookLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    payload?: JsonNullValueInput | InputJsonValue
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    success?: BoolFieldUpdateOperationsInput | boolean
    error?: NullableStringFieldUpdateOperationsInput | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormWebhookLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    webhookId?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    payload?: JsonNullValueInput | InputJsonValue
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    success?: BoolFieldUpdateOperationsInput | boolean
    error?: NullableStringFieldUpdateOperationsInput | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserCreateInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateManyInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type UserUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RoleCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    permissions?: RolePermissionCreateNestedManyWithoutRoleInput
    users?: UserRoleCreateNestedManyWithoutRoleInput
    aiToolGrants?: AIToolGrantCreateNestedManyWithoutRoleInput
    dataScopes?: RoleDataScopeCreateNestedManyWithoutRoleInput
  }

  export type RoleUncheckedCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    permissions?: RolePermissionUncheckedCreateNestedManyWithoutRoleInput
    users?: UserRoleUncheckedCreateNestedManyWithoutRoleInput
    aiToolGrants?: AIToolGrantUncheckedCreateNestedManyWithoutRoleInput
    dataScopes?: RoleDataScopeUncheckedCreateNestedManyWithoutRoleInput
  }

  export type RoleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permissions?: RolePermissionUpdateManyWithoutRoleNestedInput
    users?: UserRoleUpdateManyWithoutRoleNestedInput
    aiToolGrants?: AIToolGrantUpdateManyWithoutRoleNestedInput
    dataScopes?: RoleDataScopeUpdateManyWithoutRoleNestedInput
  }

  export type RoleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permissions?: RolePermissionUncheckedUpdateManyWithoutRoleNestedInput
    users?: UserRoleUncheckedUpdateManyWithoutRoleNestedInput
    aiToolGrants?: AIToolGrantUncheckedUpdateManyWithoutRoleNestedInput
    dataScopes?: RoleDataScopeUncheckedUpdateManyWithoutRoleNestedInput
  }

  export type RoleCreateManyInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RoleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PermissionCreateInput = {
    id?: string
    resource: string
    action: string
    description?: string | null
    module?: string | null
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    roles?: RolePermissionCreateNestedManyWithoutPermissionInput
  }

  export type PermissionUncheckedCreateInput = {
    id?: string
    resource: string
    action: string
    description?: string | null
    module?: string | null
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    roles?: RolePermissionUncheckedCreateNestedManyWithoutPermissionInput
  }

  export type PermissionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    module?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    roles?: RolePermissionUpdateManyWithoutPermissionNestedInput
  }

  export type PermissionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    module?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    roles?: RolePermissionUncheckedUpdateManyWithoutPermissionNestedInput
  }

  export type PermissionCreateManyInput = {
    id?: string
    resource: string
    action: string
    description?: string | null
    module?: string | null
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PermissionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    module?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PermissionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    module?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    ruleType: $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    userAssignments?: WorkflowRoleUserCreateNestedManyWithoutWorkflowRoleInput
  }

  export type WorkflowRoleUncheckedCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    ruleType: $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    userAssignments?: WorkflowRoleUserUncheckedCreateNestedManyWithoutWorkflowRoleInput
  }

  export type WorkflowRoleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: EnumWorkflowRuleTypeFieldUpdateOperationsInput | $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    userAssignments?: WorkflowRoleUserUpdateManyWithoutWorkflowRoleNestedInput
  }

  export type WorkflowRoleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: EnumWorkflowRuleTypeFieldUpdateOperationsInput | $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    userAssignments?: WorkflowRoleUserUncheckedUpdateManyWithoutWorkflowRoleNestedInput
  }

  export type WorkflowRoleCreateManyInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    ruleType: $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WorkflowRoleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: EnumWorkflowRuleTypeFieldUpdateOperationsInput | $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: EnumWorkflowRuleTypeFieldUpdateOperationsInput | $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleUserCreateInput = {
    id?: string
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutWorkflowRolesInput
    workflowRole: WorkflowRoleCreateNestedOneWithoutUserAssignmentsInput
  }

  export type WorkflowRoleUserUncheckedCreateInput = {
    id?: string
    workflowRoleId: string
    userId: string
    createdAt?: Date | string
  }

  export type WorkflowRoleUserUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutWorkflowRolesNestedInput
    workflowRole?: WorkflowRoleUpdateOneRequiredWithoutUserAssignmentsNestedInput
  }

  export type WorkflowRoleUserUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    workflowRoleId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleUserCreateManyInput = {
    id?: string
    workflowRoleId: string
    userId: string
    createdAt?: Date | string
  }

  export type WorkflowRoleUserUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleUserUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    workflowRoleId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserRoleCreateInput = {
    id?: string
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
    role: RoleCreateNestedOneWithoutUsersInput
    user: UserCreateNestedOneWithoutRolesInput
    organization?: OrganizationCreateNestedOneWithoutUserRolesInput
  }

  export type UserRoleUncheckedCreateInput = {
    id?: string
    userId: string
    roleId: string
    organizationId?: string | null
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
  }

  export type UserRoleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    role?: RoleUpdateOneRequiredWithoutUsersNestedInput
    user?: UserUpdateOneRequiredWithoutRolesNestedInput
    organization?: OrganizationUpdateOneWithoutUserRolesNestedInput
  }

  export type UserRoleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UserRoleCreateManyInput = {
    id?: string
    userId: string
    roleId: string
    organizationId?: string | null
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
  }

  export type UserRoleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UserRoleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type RolePermissionCreateInput = {
    id?: string
    createdAt?: Date | string
    permission: PermissionCreateNestedOneWithoutRolesInput
    role: RoleCreateNestedOneWithoutPermissionsInput
  }

  export type RolePermissionUncheckedCreateInput = {
    id?: string
    roleId: string
    permissionId: string
    createdAt?: Date | string
  }

  export type RolePermissionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permission?: PermissionUpdateOneRequiredWithoutRolesNestedInput
    role?: RoleUpdateOneRequiredWithoutPermissionsNestedInput
  }

  export type RolePermissionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    permissionId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RolePermissionCreateManyInput = {
    id?: string
    roleId: string
    permissionId: string
    createdAt?: Date | string
  }

  export type RolePermissionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RolePermissionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    permissionId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DataScopeCreateInput = {
    id?: string
    code: string
    name: string
    scopeType: $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    roleScopes?: RoleDataScopeCreateNestedManyWithoutDataScopeInput
  }

  export type DataScopeUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    scopeType: $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    roleScopes?: RoleDataScopeUncheckedCreateNestedManyWithoutDataScopeInput
  }

  export type DataScopeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    scopeType?: EnumDataScopeTypeFieldUpdateOperationsInput | $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    roleScopes?: RoleDataScopeUpdateManyWithoutDataScopeNestedInput
  }

  export type DataScopeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    scopeType?: EnumDataScopeTypeFieldUpdateOperationsInput | $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    roleScopes?: RoleDataScopeUncheckedUpdateManyWithoutDataScopeNestedInput
  }

  export type DataScopeCreateManyInput = {
    id?: string
    code: string
    name: string
    scopeType: $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DataScopeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    scopeType?: EnumDataScopeTypeFieldUpdateOperationsInput | $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DataScopeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    scopeType?: EnumDataScopeTypeFieldUpdateOperationsInput | $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleDataScopeCreateInput = {
    id?: string
    resource?: string
    createdAt?: Date | string
    role: RoleCreateNestedOneWithoutDataScopesInput
    dataScope: DataScopeCreateNestedOneWithoutRoleScopesInput
  }

  export type RoleDataScopeUncheckedCreateInput = {
    id?: string
    roleId: string
    dataScopeId: string
    resource?: string
    createdAt?: Date | string
  }

  export type RoleDataScopeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    role?: RoleUpdateOneRequiredWithoutDataScopesNestedInput
    dataScope?: DataScopeUpdateOneRequiredWithoutRoleScopesNestedInput
  }

  export type RoleDataScopeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    dataScopeId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleDataScopeCreateManyInput = {
    id?: string
    roleId: string
    dataScopeId: string
    resource?: string
    createdAt?: Date | string
  }

  export type RoleDataScopeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleDataScopeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    dataScopeId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIToolGrantCreateInput = {
    id?: string
    toolName: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
    role: RoleCreateNestedOneWithoutAiToolGrantsInput
  }

  export type AIToolGrantUncheckedCreateInput = {
    id?: string
    roleId: string
    toolName: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AIToolGrantUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    role?: RoleUpdateOneRequiredWithoutAiToolGrantsNestedInput
  }

  export type AIToolGrantUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantCreateManyInput = {
    id?: string
    roleId: string
    toolName: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AIToolGrantUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUserCreateInput = {
    id?: string
    toolName: string
    effect?: string
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
    user: UserCreateNestedOneWithoutAiToolGrantsDirectInput
  }

  export type AIToolGrantUserUncheckedCreateInput = {
    id?: string
    userId: string
    toolName: string
    effect?: string
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AIToolGrantUserUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    effect?: StringFieldUpdateOperationsInput | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    user?: UserUpdateOneRequiredWithoutAiToolGrantsDirectNestedInput
  }

  export type AIToolGrantUserUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    effect?: StringFieldUpdateOperationsInput | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUserCreateManyInput = {
    id?: string
    userId: string
    toolName: string
    effect?: string
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AIToolGrantUserUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    effect?: StringFieldUpdateOperationsInput | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUserUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    effect?: StringFieldUpdateOperationsInput | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PermissionDelegationCreateInput = {
    id?: string
    fromUserId: string
    toUserId: string
    resource?: string
    validFrom: Date | string
    validTo: Date | string
    reason: string
    organizationId?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    revokedAt?: Date | string | null
  }

  export type PermissionDelegationUncheckedCreateInput = {
    id?: string
    fromUserId: string
    toUserId: string
    resource?: string
    validFrom: Date | string
    validTo: Date | string
    reason: string
    organizationId?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    revokedAt?: Date | string | null
  }

  export type PermissionDelegationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromUserId?: StringFieldUpdateOperationsInput | string
    toUserId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    validFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    validTo?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PermissionDelegationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromUserId?: StringFieldUpdateOperationsInput | string
    toUserId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    validFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    validTo?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PermissionDelegationCreateManyInput = {
    id?: string
    fromUserId: string
    toUserId: string
    resource?: string
    validFrom: Date | string
    validTo: Date | string
    reason: string
    organizationId?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    revokedAt?: Date | string | null
  }

  export type PermissionDelegationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromUserId?: StringFieldUpdateOperationsInput | string
    toUserId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    validFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    validTo?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PermissionDelegationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    fromUserId?: StringFieldUpdateOperationsInput | string
    toUserId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    validFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    validTo?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FieldPermissionCreateInput = {
    id?: string
    roleId: string
    resource: string
    field: string
    access: $Enums.FieldAccess
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FieldPermissionUncheckedCreateInput = {
    id?: string
    roleId: string
    resource: string
    field: string
    access: $Enums.FieldAccess
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FieldPermissionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    field?: StringFieldUpdateOperationsInput | string
    access?: EnumFieldAccessFieldUpdateOperationsInput | $Enums.FieldAccess
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FieldPermissionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    field?: StringFieldUpdateOperationsInput | string
    access?: EnumFieldAccessFieldUpdateOperationsInput | $Enums.FieldAccess
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FieldPermissionCreateManyInput = {
    id?: string
    roleId: string
    resource: string
    field: string
    access: $Enums.FieldAccess
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FieldPermissionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    field?: StringFieldUpdateOperationsInput | string
    access?: EnumFieldAccessFieldUpdateOperationsInput | $Enums.FieldAccess
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FieldPermissionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    field?: StringFieldUpdateOperationsInput | string
    access?: EnumFieldAccessFieldUpdateOperationsInput | $Enums.FieldAccess
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type IamAuditLogCreateInput = {
    id?: string
    actor: string
    action: string
    resource: string
    targetId?: string | null
    before?: NullableJsonNullValueInput | InputJsonValue
    after?: NullableJsonNullValueInput | InputJsonValue
    ip?: string | null
    userAgent?: string | null
    timestamp?: Date | string
  }

  export type IamAuditLogUncheckedCreateInput = {
    id?: string
    actor: string
    action: string
    resource: string
    targetId?: string | null
    before?: NullableJsonNullValueInput | InputJsonValue
    after?: NullableJsonNullValueInput | InputJsonValue
    ip?: string | null
    userAgent?: string | null
    timestamp?: Date | string
  }

  export type IamAuditLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    actor?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    targetId?: NullableStringFieldUpdateOperationsInput | string | null
    before?: NullableJsonNullValueInput | InputJsonValue
    after?: NullableJsonNullValueInput | InputJsonValue
    ip?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type IamAuditLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    actor?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    targetId?: NullableStringFieldUpdateOperationsInput | string | null
    before?: NullableJsonNullValueInput | InputJsonValue
    after?: NullableJsonNullValueInput | InputJsonValue
    ip?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type IamAuditLogCreateManyInput = {
    id?: string
    actor: string
    action: string
    resource: string
    targetId?: string | null
    before?: NullableJsonNullValueInput | InputJsonValue
    after?: NullableJsonNullValueInput | InputJsonValue
    ip?: string | null
    userAgent?: string | null
    timestamp?: Date | string
  }

  export type IamAuditLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    actor?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    targetId?: NullableStringFieldUpdateOperationsInput | string | null
    before?: NullableJsonNullValueInput | InputJsonValue
    after?: NullableJsonNullValueInput | InputJsonValue
    ip?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type IamAuditLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    actor?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    targetId?: NullableStringFieldUpdateOperationsInput | string | null
    before?: NullableJsonNullValueInput | InputJsonValue
    after?: NullableJsonNullValueInput | InputJsonValue
    ip?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeSlugBindingCreateInput = {
    id?: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutInternalAppSlugBindingInput
    apps?: InternalAppCreateNestedManyWithoutOwnerBindingInput
    tokens?: InternalAppEmployeeTokenCreateNestedManyWithoutBindingInput
  }

  export type EmployeeSlugBindingUncheckedCreateInput = {
    id?: string
    userId: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    apps?: InternalAppUncheckedCreateNestedManyWithoutOwnerBindingInput
    tokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutBindingInput
  }

  export type EmployeeSlugBindingUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutInternalAppSlugBindingNestedInput
    apps?: InternalAppUpdateManyWithoutOwnerBindingNestedInput
    tokens?: InternalAppEmployeeTokenUpdateManyWithoutBindingNestedInput
  }

  export type EmployeeSlugBindingUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    apps?: InternalAppUncheckedUpdateManyWithoutOwnerBindingNestedInput
    tokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type EmployeeSlugBindingCreateManyInput = {
    id?: string
    userId: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type EmployeeSlugBindingUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type EmployeeSlugBindingUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppCreateInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    ownerBinding: EmployeeSlugBindingCreateNestedOneWithoutAppsInput
    creator: UserCreateNestedOneWithoutInternalAppsCreatedInput
    forceDisabler?: UserCreateNestedOneWithoutInternalAppsForceDisabledInput
    deployments?: InternalAppDeploymentCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarCreateNestedManyWithoutAppInput
    events?: InternalAppEventCreateNestedManyWithoutAppInput
  }

  export type InternalAppUncheckedCreateInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deployments?: InternalAppDeploymentUncheckedCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarUncheckedCreateNestedManyWithoutAppInput
    events?: InternalAppEventUncheckedCreateNestedManyWithoutAppInput
  }

  export type InternalAppUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ownerBinding?: EmployeeSlugBindingUpdateOneRequiredWithoutAppsNestedInput
    creator?: UserUpdateOneRequiredWithoutInternalAppsCreatedNestedInput
    forceDisabler?: UserUpdateOneWithoutInternalAppsForceDisabledNestedInput
    deployments?: InternalAppDeploymentUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deployments?: InternalAppDeploymentUncheckedUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUncheckedUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUncheckedUpdateManyWithoutAppNestedInput
  }

  export type InternalAppCreateManyInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppDeploymentCreateInput = {
    id?: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    app: InternalAppCreateNestedOneWithoutDeploymentsInput
    creator: UserCreateNestedOneWithoutInternalAppDeploymentsTriggeredInput
  }

  export type InternalAppDeploymentUncheckedCreateInput = {
    id?: string
    appId: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppDeploymentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    app?: InternalAppUpdateOneRequiredWithoutDeploymentsNestedInput
    creator?: UserUpdateOneRequiredWithoutInternalAppDeploymentsTriggeredNestedInput
  }

  export type InternalAppDeploymentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppDeploymentCreateManyInput = {
    id?: string
    appId: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppDeploymentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppDeploymentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEnvVarCreateInput = {
    id?: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    app: InternalAppCreateNestedOneWithoutEnvVarsInput
    creator: UserCreateNestedOneWithoutInternalAppEnvVarsManagedInput
  }

  export type InternalAppEnvVarUncheckedCreateInput = {
    id?: string
    appId: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEnvVarUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    app?: InternalAppUpdateOneRequiredWithoutEnvVarsNestedInput
    creator?: UserUpdateOneRequiredWithoutInternalAppEnvVarsManagedNestedInput
  }

  export type InternalAppEnvVarUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEnvVarCreateManyInput = {
    id?: string
    appId: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEnvVarUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEnvVarUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEmployeeTokenCreateInput = {
    id?: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    binding: EmployeeSlugBindingCreateNestedOneWithoutTokensInput
    creator: UserCreateNestedOneWithoutInternalAppTokensInput
  }

  export type InternalAppEmployeeTokenUncheckedCreateInput = {
    id?: string
    employeeSlug: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEmployeeTokenUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: EmployeeSlugBindingUpdateOneRequiredWithoutTokensNestedInput
    creator?: UserUpdateOneRequiredWithoutInternalAppTokensNestedInput
  }

  export type InternalAppEmployeeTokenUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEmployeeTokenCreateManyInput = {
    id?: string
    employeeSlug: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEmployeeTokenUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEmployeeTokenUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEventCreateInput = {
    id?: string
    employeeSlug?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
    app?: InternalAppCreateNestedOneWithoutEventsInput
    actor?: UserCreateNestedOneWithoutInternalAppEventsInput
  }

  export type InternalAppEventUncheckedCreateInput = {
    id?: string
    appId?: string | null
    employeeSlug?: string | null
    actorId?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
  }

  export type InternalAppEventUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    app?: InternalAppUpdateOneWithoutEventsNestedInput
    actor?: UserUpdateOneWithoutInternalAppEventsNestedInput
  }

  export type InternalAppEventUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: NullableStringFieldUpdateOperationsInput | string | null
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEventCreateManyInput = {
    id?: string
    appId?: string | null
    employeeSlug?: string | null
    actorId?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
  }

  export type InternalAppEventUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEventUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: NullableStringFieldUpdateOperationsInput | string | null
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type KnowledgeArticleCreateInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    createdBy: UserCreateNestedOneWithoutKnowledgeArticlesInput
    views?: DocumentViewCreateNestedManyWithoutArticleInput
    likes?: DocumentLikeCreateNestedManyWithoutArticleInput
    comments?: DocumentCommentCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleUncheckedCreateInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    views?: DocumentViewUncheckedCreateNestedManyWithoutArticleInput
    likes?: DocumentLikeUncheckedCreateNestedManyWithoutArticleInput
    comments?: DocumentCommentUncheckedCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: UserUpdateOneRequiredWithoutKnowledgeArticlesNestedInput
    views?: DocumentViewUpdateManyWithoutArticleNestedInput
    likes?: DocumentLikeUpdateManyWithoutArticleNestedInput
    comments?: DocumentCommentUpdateManyWithoutArticleNestedInput
  }

  export type KnowledgeArticleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    views?: DocumentViewUncheckedUpdateManyWithoutArticleNestedInput
    likes?: DocumentLikeUncheckedUpdateManyWithoutArticleNestedInput
    comments?: DocumentCommentUncheckedUpdateManyWithoutArticleNestedInput
  }

  export type KnowledgeArticleCreateManyInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KnowledgeArticleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KnowledgeArticleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SPDocumentIndexCreateInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    views?: DocumentViewCreateNestedManyWithoutSpDocumentInput
    likes?: DocumentLikeCreateNestedManyWithoutSpDocumentInput
    comments?: DocumentCommentCreateNestedManyWithoutSpDocumentInput
  }

  export type SPDocumentIndexUncheckedCreateInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    views?: DocumentViewUncheckedCreateNestedManyWithoutSpDocumentInput
    likes?: DocumentLikeUncheckedCreateNestedManyWithoutSpDocumentInput
    comments?: DocumentCommentUncheckedCreateNestedManyWithoutSpDocumentInput
  }

  export type SPDocumentIndexUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    views?: DocumentViewUpdateManyWithoutSpDocumentNestedInput
    likes?: DocumentLikeUpdateManyWithoutSpDocumentNestedInput
    comments?: DocumentCommentUpdateManyWithoutSpDocumentNestedInput
  }

  export type SPDocumentIndexUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    views?: DocumentViewUncheckedUpdateManyWithoutSpDocumentNestedInput
    likes?: DocumentLikeUncheckedUpdateManyWithoutSpDocumentNestedInput
    comments?: DocumentCommentUncheckedUpdateManyWithoutSpDocumentNestedInput
  }

  export type SPDocumentIndexCreateManyInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SPDocumentIndexUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SPDocumentIndexUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SPFolderIndexCreateInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    folderPath: string
    webUrl: string
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SPFolderIndexUncheckedCreateInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    folderPath: string
    webUrl: string
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SPFolderIndexUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    folderPath?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SPFolderIndexUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    folderPath?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SPFolderIndexCreateManyInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    folderPath: string
    webUrl: string
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SPFolderIndexUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    folderPath?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SPFolderIndexUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    folderPath?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RagflowDocumentCreateInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    ragflowDocumentId: string
    datasetId: string
    contentHash: string
    status?: $Enums.SyncStatus
    syncError?: string | null
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RagflowDocumentUncheckedCreateInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    ragflowDocumentId: string
    datasetId: string
    contentHash: string
    status?: $Enums.SyncStatus
    syncError?: string | null
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RagflowDocumentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    ragflowDocumentId?: StringFieldUpdateOperationsInput | string
    datasetId?: StringFieldUpdateOperationsInput | string
    contentHash?: StringFieldUpdateOperationsInput | string
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    syncError?: NullableStringFieldUpdateOperationsInput | string | null
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RagflowDocumentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    ragflowDocumentId?: StringFieldUpdateOperationsInput | string
    datasetId?: StringFieldUpdateOperationsInput | string
    contentHash?: StringFieldUpdateOperationsInput | string
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    syncError?: NullableStringFieldUpdateOperationsInput | string | null
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RagflowDocumentCreateManyInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    ragflowDocumentId: string
    datasetId: string
    contentHash: string
    status?: $Enums.SyncStatus
    syncError?: string | null
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RagflowDocumentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    ragflowDocumentId?: StringFieldUpdateOperationsInput | string
    datasetId?: StringFieldUpdateOperationsInput | string
    contentHash?: StringFieldUpdateOperationsInput | string
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    syncError?: NullableStringFieldUpdateOperationsInput | string | null
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RagflowDocumentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    ragflowDocumentId?: StringFieldUpdateOperationsInput | string
    datasetId?: StringFieldUpdateOperationsInput | string
    contentHash?: StringFieldUpdateOperationsInput | string
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    syncError?: NullableStringFieldUpdateOperationsInput | string | null
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIQALogCreateInput = {
    id?: string
    question: string
    answer: string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: number | null
    modelUsed?: string | null
    tokensUsed?: number | null
    cost?: number | null
    responseTimeMs?: number | null
    feedback?: $Enums.QAFeedback | null
    feedbackComment?: string | null
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutAiQALogsInput
  }

  export type AIQALogUncheckedCreateInput = {
    id?: string
    userId: string
    question: string
    answer: string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: number | null
    modelUsed?: string | null
    tokensUsed?: number | null
    cost?: number | null
    responseTimeMs?: number | null
    feedback?: $Enums.QAFeedback | null
    feedbackComment?: string | null
    createdAt?: Date | string
  }

  export type AIQALogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    question?: StringFieldUpdateOperationsInput | string
    answer?: StringFieldUpdateOperationsInput | string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: NullableFloatFieldUpdateOperationsInput | number | null
    modelUsed?: NullableStringFieldUpdateOperationsInput | string | null
    tokensUsed?: NullableIntFieldUpdateOperationsInput | number | null
    cost?: NullableFloatFieldUpdateOperationsInput | number | null
    responseTimeMs?: NullableIntFieldUpdateOperationsInput | number | null
    feedback?: NullableEnumQAFeedbackFieldUpdateOperationsInput | $Enums.QAFeedback | null
    feedbackComment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiQALogsNestedInput
  }

  export type AIQALogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    question?: StringFieldUpdateOperationsInput | string
    answer?: StringFieldUpdateOperationsInput | string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: NullableFloatFieldUpdateOperationsInput | number | null
    modelUsed?: NullableStringFieldUpdateOperationsInput | string | null
    tokensUsed?: NullableIntFieldUpdateOperationsInput | number | null
    cost?: NullableFloatFieldUpdateOperationsInput | number | null
    responseTimeMs?: NullableIntFieldUpdateOperationsInput | number | null
    feedback?: NullableEnumQAFeedbackFieldUpdateOperationsInput | $Enums.QAFeedback | null
    feedbackComment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIQALogCreateManyInput = {
    id?: string
    userId: string
    question: string
    answer: string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: number | null
    modelUsed?: string | null
    tokensUsed?: number | null
    cost?: number | null
    responseTimeMs?: number | null
    feedback?: $Enums.QAFeedback | null
    feedbackComment?: string | null
    createdAt?: Date | string
  }

  export type AIQALogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    question?: StringFieldUpdateOperationsInput | string
    answer?: StringFieldUpdateOperationsInput | string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: NullableFloatFieldUpdateOperationsInput | number | null
    modelUsed?: NullableStringFieldUpdateOperationsInput | string | null
    tokensUsed?: NullableIntFieldUpdateOperationsInput | number | null
    cost?: NullableFloatFieldUpdateOperationsInput | number | null
    responseTimeMs?: NullableIntFieldUpdateOperationsInput | number | null
    feedback?: NullableEnumQAFeedbackFieldUpdateOperationsInput | $Enums.QAFeedback | null
    feedbackComment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIQALogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    question?: StringFieldUpdateOperationsInput | string
    answer?: StringFieldUpdateOperationsInput | string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: NullableFloatFieldUpdateOperationsInput | number | null
    modelUsed?: NullableStringFieldUpdateOperationsInput | string | null
    tokensUsed?: NullableIntFieldUpdateOperationsInput | number | null
    cost?: NullableFloatFieldUpdateOperationsInput | number | null
    responseTimeMs?: NullableIntFieldUpdateOperationsInput | number | null
    feedback?: NullableEnumQAFeedbackFieldUpdateOperationsInput | $Enums.QAFeedback | null
    feedbackComment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SearchLogCreateInput = {
    id?: string
    userIdHash: string
    query: string
    resultCount: number
    responseTimeMs: number
    searchType: $Enums.SearchType
    filters?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type SearchLogUncheckedCreateInput = {
    id?: string
    userIdHash: string
    query: string
    resultCount: number
    responseTimeMs: number
    searchType: $Enums.SearchType
    filters?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type SearchLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userIdHash?: StringFieldUpdateOperationsInput | string
    query?: StringFieldUpdateOperationsInput | string
    resultCount?: IntFieldUpdateOperationsInput | number
    responseTimeMs?: IntFieldUpdateOperationsInput | number
    searchType?: EnumSearchTypeFieldUpdateOperationsInput | $Enums.SearchType
    filters?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SearchLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userIdHash?: StringFieldUpdateOperationsInput | string
    query?: StringFieldUpdateOperationsInput | string
    resultCount?: IntFieldUpdateOperationsInput | number
    responseTimeMs?: IntFieldUpdateOperationsInput | number
    searchType?: EnumSearchTypeFieldUpdateOperationsInput | $Enums.SearchType
    filters?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SearchLogCreateManyInput = {
    id?: string
    userIdHash: string
    query: string
    resultCount: number
    responseTimeMs: number
    searchType: $Enums.SearchType
    filters?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type SearchLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userIdHash?: StringFieldUpdateOperationsInput | string
    query?: StringFieldUpdateOperationsInput | string
    resultCount?: IntFieldUpdateOperationsInput | number
    responseTimeMs?: IntFieldUpdateOperationsInput | number
    searchType?: EnumSearchTypeFieldUpdateOperationsInput | $Enums.SearchType
    filters?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SearchLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userIdHash?: StringFieldUpdateOperationsInput | string
    query?: StringFieldUpdateOperationsInput | string
    resultCount?: IntFieldUpdateOperationsInput | number
    responseTimeMs?: IntFieldUpdateOperationsInput | number
    searchType?: EnumSearchTypeFieldUpdateOperationsInput | $Enums.SearchType
    filters?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentViewCreateInput = {
    id?: string
    viewedAt?: Date | string
    viewDate: Date | string
    spDocument?: SPDocumentIndexCreateNestedOneWithoutViewsInput
    article?: KnowledgeArticleCreateNestedOneWithoutViewsInput
    user: UserCreateNestedOneWithoutDocumentViewsInput
  }

  export type DocumentViewUncheckedCreateInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    viewedAt?: Date | string
    viewDate: Date | string
  }

  export type DocumentViewUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
    spDocument?: SPDocumentIndexUpdateOneWithoutViewsNestedInput
    article?: KnowledgeArticleUpdateOneWithoutViewsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentViewsNestedInput
  }

  export type DocumentViewUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentViewCreateManyInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    viewedAt?: Date | string
    viewDate: Date | string
  }

  export type DocumentViewUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentViewUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeCreateInput = {
    id?: string
    type: $Enums.LikeType
    createdAt?: Date | string
    spDocument?: SPDocumentIndexCreateNestedOneWithoutLikesInput
    article?: KnowledgeArticleCreateNestedOneWithoutLikesInput
    user: UserCreateNestedOneWithoutDocumentLikesInput
  }

  export type DocumentLikeUncheckedCreateInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    type: $Enums.LikeType
    createdAt?: Date | string
  }

  export type DocumentLikeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    spDocument?: SPDocumentIndexUpdateOneWithoutLikesNestedInput
    article?: KnowledgeArticleUpdateOneWithoutLikesNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentLikesNestedInput
  }

  export type DocumentLikeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeCreateManyInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    type: $Enums.LikeType
    createdAt?: Date | string
  }

  export type DocumentLikeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentCommentCreateInput = {
    id?: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    spDocument?: SPDocumentIndexCreateNestedOneWithoutCommentsInput
    article?: KnowledgeArticleCreateNestedOneWithoutCommentsInput
    user: UserCreateNestedOneWithoutDocumentCommentsInput
    parent?: DocumentCommentCreateNestedOneWithoutRepliesInput
    replies?: DocumentCommentCreateNestedManyWithoutParentInput
    mentions?: UserMentionCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentUncheckedCreateInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    replies?: DocumentCommentUncheckedCreateNestedManyWithoutParentInput
    mentions?: UserMentionUncheckedCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spDocument?: SPDocumentIndexUpdateOneWithoutCommentsNestedInput
    article?: KnowledgeArticleUpdateOneWithoutCommentsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentCommentsNestedInput
    parent?: DocumentCommentUpdateOneWithoutRepliesNestedInput
    replies?: DocumentCommentUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    replies?: DocumentCommentUncheckedUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUncheckedUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentCreateManyInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DocumentCommentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DocumentCommentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserMentionCreateInput = {
    id?: string
    readAt?: Date | string | null
    createdAt?: Date | string
    comment: DocumentCommentCreateNestedOneWithoutMentionsInput
    mentionedUser: UserCreateNestedOneWithoutMentionedInInput
  }

  export type UserMentionUncheckedCreateInput = {
    id?: string
    commentId: string
    mentionedUserId: string
    readAt?: Date | string | null
    createdAt?: Date | string
  }

  export type UserMentionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    comment?: DocumentCommentUpdateOneRequiredWithoutMentionsNestedInput
    mentionedUser?: UserUpdateOneRequiredWithoutMentionedInNestedInput
  }

  export type UserMentionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    commentId?: StringFieldUpdateOperationsInput | string
    mentionedUserId?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserMentionCreateManyInput = {
    id?: string
    commentId: string
    mentionedUserId: string
    readAt?: Date | string | null
    createdAt?: Date | string
  }

  export type UserMentionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserMentionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    commentId?: StringFieldUpdateOperationsInput | string
    mentionedUserId?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskCreateInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
    skippedDetails?: SyncTaskSkippedItemCreateNestedManyWithoutTaskInput
    processedDetails?: SyncTaskProcessedItemCreateNestedManyWithoutTaskInput
    failedDetails?: SyncTaskFailedItemCreateNestedManyWithoutTaskInput
  }

  export type SyncTaskUncheckedCreateInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
    skippedDetails?: SyncTaskSkippedItemUncheckedCreateNestedManyWithoutTaskInput
    processedDetails?: SyncTaskProcessedItemUncheckedCreateNestedManyWithoutTaskInput
    failedDetails?: SyncTaskFailedItemUncheckedCreateNestedManyWithoutTaskInput
  }

  export type SyncTaskUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    skippedDetails?: SyncTaskSkippedItemUpdateManyWithoutTaskNestedInput
    processedDetails?: SyncTaskProcessedItemUpdateManyWithoutTaskNestedInput
    failedDetails?: SyncTaskFailedItemUpdateManyWithoutTaskNestedInput
  }

  export type SyncTaskUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    skippedDetails?: SyncTaskSkippedItemUncheckedUpdateManyWithoutTaskNestedInput
    processedDetails?: SyncTaskProcessedItemUncheckedUpdateManyWithoutTaskNestedInput
    failedDetails?: SyncTaskFailedItemUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type SyncTaskCreateManyInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
  }

  export type SyncTaskUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskSkippedItemCreateInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    reason: string
    createdAt?: Date | string
    task: SyncTaskCreateNestedOneWithoutSkippedDetailsInput
  }

  export type SyncTaskSkippedItemUncheckedCreateInput = {
    id?: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    reason: string
    createdAt?: Date | string
  }

  export type SyncTaskSkippedItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: SyncTaskUpdateOneRequiredWithoutSkippedDetailsNestedInput
  }

  export type SyncTaskSkippedItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskSkippedItemCreateManyInput = {
    id?: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    reason: string
    createdAt?: Date | string
  }

  export type SyncTaskSkippedItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskSkippedItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskProcessedItemCreateInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    ragflowDocumentId?: string | null
    tokenCount?: number | null
    chunkCount?: number | null
    sourceSizeBytes?: bigint | number | null
    status?: $Enums.SyncItemStatus
    createdAt?: Date | string
    task: SyncTaskCreateNestedOneWithoutProcessedDetailsInput
  }

  export type SyncTaskProcessedItemUncheckedCreateInput = {
    id?: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    ragflowDocumentId?: string | null
    tokenCount?: number | null
    chunkCount?: number | null
    sourceSizeBytes?: bigint | number | null
    status?: $Enums.SyncItemStatus
    createdAt?: Date | string
  }

  export type SyncTaskProcessedItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    ragflowDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    tokenCount?: NullableIntFieldUpdateOperationsInput | number | null
    chunkCount?: NullableIntFieldUpdateOperationsInput | number | null
    sourceSizeBytes?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    status?: EnumSyncItemStatusFieldUpdateOperationsInput | $Enums.SyncItemStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: SyncTaskUpdateOneRequiredWithoutProcessedDetailsNestedInput
  }

  export type SyncTaskProcessedItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    ragflowDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    tokenCount?: NullableIntFieldUpdateOperationsInput | number | null
    chunkCount?: NullableIntFieldUpdateOperationsInput | number | null
    sourceSizeBytes?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    status?: EnumSyncItemStatusFieldUpdateOperationsInput | $Enums.SyncItemStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskProcessedItemCreateManyInput = {
    id?: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    ragflowDocumentId?: string | null
    tokenCount?: number | null
    chunkCount?: number | null
    sourceSizeBytes?: bigint | number | null
    status?: $Enums.SyncItemStatus
    createdAt?: Date | string
  }

  export type SyncTaskProcessedItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    ragflowDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    tokenCount?: NullableIntFieldUpdateOperationsInput | number | null
    chunkCount?: NullableIntFieldUpdateOperationsInput | number | null
    sourceSizeBytes?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    status?: EnumSyncItemStatusFieldUpdateOperationsInput | $Enums.SyncItemStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskProcessedItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    ragflowDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    tokenCount?: NullableIntFieldUpdateOperationsInput | number | null
    chunkCount?: NullableIntFieldUpdateOperationsInput | number | null
    sourceSizeBytes?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    status?: EnumSyncItemStatusFieldUpdateOperationsInput | $Enums.SyncItemStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskFailedItemCreateInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    error: string
    createdAt?: Date | string
    task: SyncTaskCreateNestedOneWithoutFailedDetailsInput
  }

  export type SyncTaskFailedItemUncheckedCreateInput = {
    id?: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    error: string
    createdAt?: Date | string
  }

  export type SyncTaskFailedItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    error?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: SyncTaskUpdateOneRequiredWithoutFailedDetailsNestedInput
  }

  export type SyncTaskFailedItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    error?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskFailedItemCreateManyInput = {
    id?: string
    taskId: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    error: string
    createdAt?: Date | string
  }

  export type SyncTaskFailedItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    error?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskFailedItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    error?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharePointSyncCursorCreateInput = {
    id?: string
    driveId: string
    scopePath: string
    deltaLink: string
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharePointSyncCursorUncheckedCreateInput = {
    id?: string
    driveId: string
    scopePath: string
    deltaLink: string
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharePointSyncCursorUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    driveId?: StringFieldUpdateOperationsInput | string
    scopePath?: StringFieldUpdateOperationsInput | string
    deltaLink?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharePointSyncCursorUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    driveId?: StringFieldUpdateOperationsInput | string
    scopePath?: StringFieldUpdateOperationsInput | string
    deltaLink?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharePointSyncCursorCreateManyInput = {
    id?: string
    driveId: string
    scopePath: string
    deltaLink: string
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharePointSyncCursorUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    driveId?: StringFieldUpdateOperationsInput | string
    scopePath?: StringFieldUpdateOperationsInput | string
    deltaLink?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharePointSyncCursorUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    driveId?: StringFieldUpdateOperationsInput | string
    scopePath?: StringFieldUpdateOperationsInput | string
    deltaLink?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WebhookSubscriptionCreateInput = {
    id?: string
    subscriptionId: string
    driveId: string
    resource: string
    expirationDateTime: Date | string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WebhookSubscriptionUncheckedCreateInput = {
    id?: string
    subscriptionId: string
    driveId: string
    resource: string
    expirationDateTime: Date | string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WebhookSubscriptionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    subscriptionId?: StringFieldUpdateOperationsInput | string
    driveId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    expirationDateTime?: DateTimeFieldUpdateOperationsInput | Date | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WebhookSubscriptionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    subscriptionId?: StringFieldUpdateOperationsInput | string
    driveId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    expirationDateTime?: DateTimeFieldUpdateOperationsInput | Date | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WebhookSubscriptionCreateManyInput = {
    id?: string
    subscriptionId: string
    driveId: string
    resource: string
    expirationDateTime: Date | string
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WebhookSubscriptionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    subscriptionId?: StringFieldUpdateOperationsInput | string
    driveId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    expirationDateTime?: DateTimeFieldUpdateOperationsInput | Date | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WebhookSubscriptionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    subscriptionId?: StringFieldUpdateOperationsInput | string
    driveId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    expirationDateTime?: DateTimeFieldUpdateOperationsInput | Date | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SystemLogCreateInput = {
    id?: string
    traceId: string
    spanId?: string | null
    parentSpanId?: string | null
    requestId: string
    level?: $Enums.LogLevel
    message?: string | null
    method?: string | null
    url?: string | null
    statusCode?: number | null
    durationMs?: number | null
    userId?: string | null
    userName?: string | null
    clientIp?: string | null
    userAgent?: string | null
    service?: string
    region?: string
    instance?: string | null
    errorType?: string | null
    errorMessage?: string | null
    errorCode?: string | null
    errorStack?: string | null
    requestBody?: NullableJsonNullValueInput | InputJsonValue
    responseBody?: NullableJsonNullValueInput | InputJsonValue
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type SystemLogUncheckedCreateInput = {
    id?: string
    traceId: string
    spanId?: string | null
    parentSpanId?: string | null
    requestId: string
    level?: $Enums.LogLevel
    message?: string | null
    method?: string | null
    url?: string | null
    statusCode?: number | null
    durationMs?: number | null
    userId?: string | null
    userName?: string | null
    clientIp?: string | null
    userAgent?: string | null
    service?: string
    region?: string
    instance?: string | null
    errorType?: string | null
    errorMessage?: string | null
    errorCode?: string | null
    errorStack?: string | null
    requestBody?: NullableJsonNullValueInput | InputJsonValue
    responseBody?: NullableJsonNullValueInput | InputJsonValue
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type SystemLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    spanId?: NullableStringFieldUpdateOperationsInput | string | null
    parentSpanId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: StringFieldUpdateOperationsInput | string
    level?: EnumLogLevelFieldUpdateOperationsInput | $Enums.LogLevel
    message?: NullableStringFieldUpdateOperationsInput | string | null
    method?: NullableStringFieldUpdateOperationsInput | string | null
    url?: NullableStringFieldUpdateOperationsInput | string | null
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    userName?: NullableStringFieldUpdateOperationsInput | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    service?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    instance?: NullableStringFieldUpdateOperationsInput | string | null
    errorType?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    errorStack?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableJsonNullValueInput | InputJsonValue
    responseBody?: NullableJsonNullValueInput | InputJsonValue
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SystemLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    spanId?: NullableStringFieldUpdateOperationsInput | string | null
    parentSpanId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: StringFieldUpdateOperationsInput | string
    level?: EnumLogLevelFieldUpdateOperationsInput | $Enums.LogLevel
    message?: NullableStringFieldUpdateOperationsInput | string | null
    method?: NullableStringFieldUpdateOperationsInput | string | null
    url?: NullableStringFieldUpdateOperationsInput | string | null
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    userName?: NullableStringFieldUpdateOperationsInput | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    service?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    instance?: NullableStringFieldUpdateOperationsInput | string | null
    errorType?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    errorStack?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableJsonNullValueInput | InputJsonValue
    responseBody?: NullableJsonNullValueInput | InputJsonValue
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SystemLogCreateManyInput = {
    id?: string
    traceId: string
    spanId?: string | null
    parentSpanId?: string | null
    requestId: string
    level?: $Enums.LogLevel
    message?: string | null
    method?: string | null
    url?: string | null
    statusCode?: number | null
    durationMs?: number | null
    userId?: string | null
    userName?: string | null
    clientIp?: string | null
    userAgent?: string | null
    service?: string
    region?: string
    instance?: string | null
    errorType?: string | null
    errorMessage?: string | null
    errorCode?: string | null
    errorStack?: string | null
    requestBody?: NullableJsonNullValueInput | InputJsonValue
    responseBody?: NullableJsonNullValueInput | InputJsonValue
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type SystemLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    spanId?: NullableStringFieldUpdateOperationsInput | string | null
    parentSpanId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: StringFieldUpdateOperationsInput | string
    level?: EnumLogLevelFieldUpdateOperationsInput | $Enums.LogLevel
    message?: NullableStringFieldUpdateOperationsInput | string | null
    method?: NullableStringFieldUpdateOperationsInput | string | null
    url?: NullableStringFieldUpdateOperationsInput | string | null
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    userName?: NullableStringFieldUpdateOperationsInput | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    service?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    instance?: NullableStringFieldUpdateOperationsInput | string | null
    errorType?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    errorStack?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableJsonNullValueInput | InputJsonValue
    responseBody?: NullableJsonNullValueInput | InputJsonValue
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SystemLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    spanId?: NullableStringFieldUpdateOperationsInput | string | null
    parentSpanId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: StringFieldUpdateOperationsInput | string
    level?: EnumLogLevelFieldUpdateOperationsInput | $Enums.LogLevel
    message?: NullableStringFieldUpdateOperationsInput | string | null
    method?: NullableStringFieldUpdateOperationsInput | string | null
    url?: NullableStringFieldUpdateOperationsInput | string | null
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    userName?: NullableStringFieldUpdateOperationsInput | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    service?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    instance?: NullableStringFieldUpdateOperationsInput | string | null
    errorType?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    errorStack?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableJsonNullValueInput | InputJsonValue
    responseBody?: NullableJsonNullValueInput | InputJsonValue
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogConfigCreateInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    updatedAt?: Date | string
    updatedBy?: string | null
  }

  export type LogConfigUncheckedCreateInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    updatedAt?: Date | string
    updatedBy?: string | null
  }

  export type LogConfigUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type LogConfigUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type LogConfigCreateManyInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    updatedAt?: Date | string
    updatedBy?: string | null
  }

  export type LogConfigUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type LogConfigUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type LogAlertCreateInput = {
    id?: string
    type: $Enums.LogAlertType
    severity?: $Enums.LogAlertSeverity
    message: string
    context?: NullableJsonNullValueInput | InputJsonValue
    channels?: LogAlertCreatechannelsInput | string[]
    status?: $Enums.LogAlertStatus
    errorMessage?: string | null
    traceId?: string | null
    logId?: string | null
    acknowledgedAt?: Date | string | null
    acknowledgedBy?: string | null
    createdAt?: Date | string
  }

  export type LogAlertUncheckedCreateInput = {
    id?: string
    type: $Enums.LogAlertType
    severity?: $Enums.LogAlertSeverity
    message: string
    context?: NullableJsonNullValueInput | InputJsonValue
    channels?: LogAlertCreatechannelsInput | string[]
    status?: $Enums.LogAlertStatus
    errorMessage?: string | null
    traceId?: string | null
    logId?: string | null
    acknowledgedAt?: Date | string | null
    acknowledgedBy?: string | null
    createdAt?: Date | string
  }

  export type LogAlertUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLogAlertTypeFieldUpdateOperationsInput | $Enums.LogAlertType
    severity?: EnumLogAlertSeverityFieldUpdateOperationsInput | $Enums.LogAlertSeverity
    message?: StringFieldUpdateOperationsInput | string
    context?: NullableJsonNullValueInput | InputJsonValue
    channels?: LogAlertUpdatechannelsInput | string[]
    status?: EnumLogAlertStatusFieldUpdateOperationsInput | $Enums.LogAlertStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    logId?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogAlertUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLogAlertTypeFieldUpdateOperationsInput | $Enums.LogAlertType
    severity?: EnumLogAlertSeverityFieldUpdateOperationsInput | $Enums.LogAlertSeverity
    message?: StringFieldUpdateOperationsInput | string
    context?: NullableJsonNullValueInput | InputJsonValue
    channels?: LogAlertUpdatechannelsInput | string[]
    status?: EnumLogAlertStatusFieldUpdateOperationsInput | $Enums.LogAlertStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    logId?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogAlertCreateManyInput = {
    id?: string
    type: $Enums.LogAlertType
    severity?: $Enums.LogAlertSeverity
    message: string
    context?: NullableJsonNullValueInput | InputJsonValue
    channels?: LogAlertCreatechannelsInput | string[]
    status?: $Enums.LogAlertStatus
    errorMessage?: string | null
    traceId?: string | null
    logId?: string | null
    acknowledgedAt?: Date | string | null
    acknowledgedBy?: string | null
    createdAt?: Date | string
  }

  export type LogAlertUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLogAlertTypeFieldUpdateOperationsInput | $Enums.LogAlertType
    severity?: EnumLogAlertSeverityFieldUpdateOperationsInput | $Enums.LogAlertSeverity
    message?: StringFieldUpdateOperationsInput | string
    context?: NullableJsonNullValueInput | InputJsonValue
    channels?: LogAlertUpdatechannelsInput | string[]
    status?: EnumLogAlertStatusFieldUpdateOperationsInput | $Enums.LogAlertStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    logId?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogAlertUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLogAlertTypeFieldUpdateOperationsInput | $Enums.LogAlertType
    severity?: EnumLogAlertSeverityFieldUpdateOperationsInput | $Enums.LogAlertSeverity
    message?: StringFieldUpdateOperationsInput | string
    context?: NullableJsonNullValueInput | InputJsonValue
    channels?: LogAlertUpdatechannelsInput | string[]
    status?: EnumLogAlertStatusFieldUpdateOperationsInput | $Enums.LogAlertStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    logId?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LogCleanupRecordCreateInput = {
    id?: string
    type: string
    olderThanDays: number
    dryRun?: boolean
    deletedCount?: number
    freedBytes?: bigint | number
    status?: string
    errorMessage?: string | null
    startedAt?: Date | string
    completedAt?: Date | string | null
  }

  export type LogCleanupRecordUncheckedCreateInput = {
    id?: string
    type: string
    olderThanDays: number
    dryRun?: boolean
    deletedCount?: number
    freedBytes?: bigint | number
    status?: string
    errorMessage?: string | null
    startedAt?: Date | string
    completedAt?: Date | string | null
  }

  export type LogCleanupRecordUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    olderThanDays?: IntFieldUpdateOperationsInput | number
    dryRun?: BoolFieldUpdateOperationsInput | boolean
    deletedCount?: IntFieldUpdateOperationsInput | number
    freedBytes?: BigIntFieldUpdateOperationsInput | bigint | number
    status?: StringFieldUpdateOperationsInput | string
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type LogCleanupRecordUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    olderThanDays?: IntFieldUpdateOperationsInput | number
    dryRun?: BoolFieldUpdateOperationsInput | boolean
    deletedCount?: IntFieldUpdateOperationsInput | number
    freedBytes?: BigIntFieldUpdateOperationsInput | bigint | number
    status?: StringFieldUpdateOperationsInput | string
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type LogCleanupRecordCreateManyInput = {
    id?: string
    type: string
    olderThanDays: number
    dryRun?: boolean
    deletedCount?: number
    freedBytes?: bigint | number
    status?: string
    errorMessage?: string | null
    startedAt?: Date | string
    completedAt?: Date | string | null
  }

  export type LogCleanupRecordUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    olderThanDays?: IntFieldUpdateOperationsInput | number
    dryRun?: BoolFieldUpdateOperationsInput | boolean
    deletedCount?: IntFieldUpdateOperationsInput | number
    freedBytes?: BigIntFieldUpdateOperationsInput | bigint | number
    status?: StringFieldUpdateOperationsInput | string
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type LogCleanupRecordUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    olderThanDays?: IntFieldUpdateOperationsInput | number
    dryRun?: BoolFieldUpdateOperationsInput | boolean
    deletedCount?: IntFieldUpdateOperationsInput | number
    freedBytes?: BigIntFieldUpdateOperationsInput | bigint | number
    status?: StringFieldUpdateOperationsInput | string
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type CustomerCreateInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: CustomerContactCreateNestedManyWithoutCustomerInput
    addresses?: CustomerAddressCreateNestedManyWithoutCustomerInput
    locations?: LocationCreateNestedManyWithoutCustomerInput
  }

  export type CustomerUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: CustomerContactUncheckedCreateNestedManyWithoutCustomerInput
    addresses?: CustomerAddressUncheckedCreateNestedManyWithoutCustomerInput
    locations?: LocationUncheckedCreateNestedManyWithoutCustomerInput
  }

  export type CustomerUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: CustomerContactUpdateManyWithoutCustomerNestedInput
    addresses?: CustomerAddressUpdateManyWithoutCustomerNestedInput
    locations?: LocationUpdateManyWithoutCustomerNestedInput
  }

  export type CustomerUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: CustomerContactUncheckedUpdateManyWithoutCustomerNestedInput
    addresses?: CustomerAddressUncheckedUpdateManyWithoutCustomerNestedInput
    locations?: LocationUncheckedUpdateManyWithoutCustomerNestedInput
  }

  export type CustomerCreateManyInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type CustomerUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type CustomerUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type CustomerContactCreateInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    customer: CustomerCreateNestedOneWithoutContactsInput
  }

  export type CustomerContactUncheckedCreateInput = {
    id?: string
    customerId: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerContactUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    customer?: CustomerUpdateOneRequiredWithoutContactsNestedInput
  }

  export type CustomerContactUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerContactCreateManyInput = {
    id?: string
    customerId: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerContactUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerContactUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerAddressCreateInput = {
    id?: string
    addressType: string
    line1: string
    line2?: string | null
    city?: string | null
    state?: string | null
    postalCode?: string | null
    countryCode?: string | null
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    customer: CustomerCreateNestedOneWithoutAddressesInput
  }

  export type CustomerAddressUncheckedCreateInput = {
    id?: string
    customerId: string
    addressType: string
    line1: string
    line2?: string | null
    city?: string | null
    state?: string | null
    postalCode?: string | null
    countryCode?: string | null
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerAddressUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    addressType?: StringFieldUpdateOperationsInput | string
    line1?: StringFieldUpdateOperationsInput | string
    line2?: NullableStringFieldUpdateOperationsInput | string | null
    city?: NullableStringFieldUpdateOperationsInput | string | null
    state?: NullableStringFieldUpdateOperationsInput | string | null
    postalCode?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    customer?: CustomerUpdateOneRequiredWithoutAddressesNestedInput
  }

  export type CustomerAddressUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    addressType?: StringFieldUpdateOperationsInput | string
    line1?: StringFieldUpdateOperationsInput | string
    line2?: NullableStringFieldUpdateOperationsInput | string | null
    city?: NullableStringFieldUpdateOperationsInput | string | null
    state?: NullableStringFieldUpdateOperationsInput | string | null
    postalCode?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerAddressCreateManyInput = {
    id?: string
    customerId: string
    addressType: string
    line1: string
    line2?: string | null
    city?: string | null
    state?: string | null
    postalCode?: string | null
    countryCode?: string | null
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerAddressUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    addressType?: StringFieldUpdateOperationsInput | string
    line1?: StringFieldUpdateOperationsInput | string
    line2?: NullableStringFieldUpdateOperationsInput | string | null
    city?: NullableStringFieldUpdateOperationsInput | string | null
    state?: NullableStringFieldUpdateOperationsInput | string | null
    postalCode?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerAddressUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    addressType?: StringFieldUpdateOperationsInput | string
    line1?: StringFieldUpdateOperationsInput | string
    line2?: NullableStringFieldUpdateOperationsInput | string | null
    city?: NullableStringFieldUpdateOperationsInput | string | null
    state?: NullableStringFieldUpdateOperationsInput | string | null
    postalCode?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplierCreateInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.SupplierType
    countryCode?: string | null
    currencyCode?: string | null
    paymentTerms?: string | null
    leadTimeDays?: number | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: SupplierContactCreateNestedManyWithoutSupplierInput
  }

  export type SupplierUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.SupplierType
    countryCode?: string | null
    currencyCode?: string | null
    paymentTerms?: string | null
    leadTimeDays?: number | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: SupplierContactUncheckedCreateNestedManyWithoutSupplierInput
  }

  export type SupplierUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumSupplierTypeFieldUpdateOperationsInput | $Enums.SupplierType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    paymentTerms?: NullableStringFieldUpdateOperationsInput | string | null
    leadTimeDays?: NullableIntFieldUpdateOperationsInput | number | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: SupplierContactUpdateManyWithoutSupplierNestedInput
  }

  export type SupplierUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumSupplierTypeFieldUpdateOperationsInput | $Enums.SupplierType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    paymentTerms?: NullableStringFieldUpdateOperationsInput | string | null
    leadTimeDays?: NullableIntFieldUpdateOperationsInput | number | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: SupplierContactUncheckedUpdateManyWithoutSupplierNestedInput
  }

  export type SupplierCreateManyInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.SupplierType
    countryCode?: string | null
    currencyCode?: string | null
    paymentTerms?: string | null
    leadTimeDays?: number | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type SupplierUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumSupplierTypeFieldUpdateOperationsInput | $Enums.SupplierType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    paymentTerms?: NullableStringFieldUpdateOperationsInput | string | null
    leadTimeDays?: NullableIntFieldUpdateOperationsInput | number | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SupplierUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumSupplierTypeFieldUpdateOperationsInput | $Enums.SupplierType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    paymentTerms?: NullableStringFieldUpdateOperationsInput | string | null
    leadTimeDays?: NullableIntFieldUpdateOperationsInput | number | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SupplierContactCreateInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    supplier: SupplierCreateNestedOneWithoutContactsInput
  }

  export type SupplierContactUncheckedCreateInput = {
    id?: string
    supplierId: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplierContactUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    supplier?: SupplierUpdateOneRequiredWithoutContactsNestedInput
  }

  export type SupplierContactUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    supplierId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplierContactCreateManyInput = {
    id?: string
    supplierId: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplierContactUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplierContactUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    supplierId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartnerCreateInput = {
    id?: string
    code: string
    name: string
    role: $Enums.PartnerRole
    countryCode?: string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: PartnerContactCreateNestedManyWithoutPartnerInput
  }

  export type PartnerUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    role: $Enums.PartnerRole
    countryCode?: string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: PartnerContactUncheckedCreateNestedManyWithoutPartnerInput
  }

  export type PartnerUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: EnumPartnerRoleFieldUpdateOperationsInput | $Enums.PartnerRole
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: PartnerContactUpdateManyWithoutPartnerNestedInput
  }

  export type PartnerUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: EnumPartnerRoleFieldUpdateOperationsInput | $Enums.PartnerRole
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: PartnerContactUncheckedUpdateManyWithoutPartnerNestedInput
  }

  export type PartnerCreateManyInput = {
    id?: string
    code: string
    name: string
    role: $Enums.PartnerRole
    countryCode?: string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type PartnerUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: EnumPartnerRoleFieldUpdateOperationsInput | $Enums.PartnerRole
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartnerUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: EnumPartnerRoleFieldUpdateOperationsInput | $Enums.PartnerRole
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartnerContactCreateInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    partner: PartnerCreateNestedOneWithoutContactsInput
  }

  export type PartnerContactUncheckedCreateInput = {
    id?: string
    partnerId: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartnerContactUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    partner?: PartnerUpdateOneRequiredWithoutContactsNestedInput
  }

  export type PartnerContactUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartnerContactCreateManyInput = {
    id?: string
    partnerId: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartnerContactUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartnerContactUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    partnerId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LocationCreateInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    parent?: LocationCreateNestedOneWithoutChildrenInput
    children?: LocationCreateNestedManyWithoutParentInput
    customer?: CustomerCreateNestedOneWithoutLocationsInput
  }

  export type LocationUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    parentLocationId?: string | null
    customerId?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    children?: LocationUncheckedCreateNestedManyWithoutParentInput
  }

  export type LocationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: LocationUpdateOneWithoutChildrenNestedInput
    children?: LocationUpdateManyWithoutParentNestedInput
    customer?: CustomerUpdateOneWithoutLocationsNestedInput
  }

  export type LocationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: LocationUncheckedUpdateManyWithoutParentNestedInput
  }

  export type LocationCreateManyInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    parentLocationId?: string | null
    customerId?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type LocationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type LocationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AttachmentCreateInput = {
    id?: string
    ownerType: string
    ownerId: string
    category?: string | null
    filename: string
    mimeType: string
    size: number
    storagePath: string
    organizationId: string
    uploadedById: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type AttachmentUncheckedCreateInput = {
    id?: string
    ownerType: string
    ownerId: string
    category?: string | null
    filename: string
    mimeType: string
    size: number
    storagePath: string
    organizationId: string
    uploadedById: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type AttachmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ownerType?: StringFieldUpdateOperationsInput | string
    ownerId?: StringFieldUpdateOperationsInput | string
    category?: NullableStringFieldUpdateOperationsInput | string | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: IntFieldUpdateOperationsInput | number
    storagePath?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AttachmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ownerType?: StringFieldUpdateOperationsInput | string
    ownerId?: StringFieldUpdateOperationsInput | string
    category?: NullableStringFieldUpdateOperationsInput | string | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: IntFieldUpdateOperationsInput | number
    storagePath?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AttachmentCreateManyInput = {
    id?: string
    ownerType: string
    ownerId: string
    category?: string | null
    filename: string
    mimeType: string
    size: number
    storagePath: string
    organizationId: string
    uploadedById: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type AttachmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    ownerType?: StringFieldUpdateOperationsInput | string
    ownerId?: StringFieldUpdateOperationsInput | string
    category?: NullableStringFieldUpdateOperationsInput | string | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: IntFieldUpdateOperationsInput | number
    storagePath?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AttachmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    ownerType?: StringFieldUpdateOperationsInput | string
    ownerId?: StringFieldUpdateOperationsInput | string
    category?: NullableStringFieldUpdateOperationsInput | string | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: IntFieldUpdateOperationsInput | number
    storagePath?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type CurrencyCreateInput = {
    id?: string
    code: string
    name: string
    symbol?: string | null
    decimals?: number
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type CurrencyUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    symbol?: string | null
    decimals?: number
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type CurrencyUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    symbol?: NullableStringFieldUpdateOperationsInput | string | null
    decimals?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CurrencyUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    symbol?: NullableStringFieldUpdateOperationsInput | string | null
    decimals?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CurrencyCreateManyInput = {
    id?: string
    code: string
    name: string
    symbol?: string | null
    decimals?: number
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type CurrencyUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    symbol?: NullableStringFieldUpdateOperationsInput | string | null
    decimals?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CurrencyUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    symbol?: NullableStringFieldUpdateOperationsInput | string | null
    decimals?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CountryCreateInput = {
    id?: string
    code: string
    iso3: string
    name: string
    region?: string | null
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type CountryUncheckedCreateInput = {
    id?: string
    code: string
    iso3: string
    name: string
    region?: string | null
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type CountryUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    iso3?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    region?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CountryUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    iso3?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    region?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CountryCreateManyInput = {
    id?: string
    code: string
    iso3: string
    name: string
    region?: string | null
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type CountryUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    iso3?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    region?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type CountryUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    iso3?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    region?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GeoRegionCreateInput = {
    id?: string
    code: string
    name: string
    countries?: GeoRegionCreatecountriesInput | string[]
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type GeoRegionUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    countries?: GeoRegionCreatecountriesInput | string[]
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type GeoRegionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    countries?: GeoRegionUpdatecountriesInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GeoRegionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    countries?: GeoRegionUpdatecountriesInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GeoRegionCreateManyInput = {
    id?: string
    code: string
    name: string
    countries?: GeoRegionCreatecountriesInput | string[]
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type GeoRegionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    countries?: GeoRegionUpdatecountriesInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GeoRegionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    countries?: GeoRegionUpdatecountriesInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UnitOfMeasureCreateInput = {
    id?: string
    code: string
    name: string
    category?: string | null
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type UnitOfMeasureUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    category?: string | null
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type UnitOfMeasureUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UnitOfMeasureUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UnitOfMeasureCreateManyInput = {
    id?: string
    code: string
    name: string
    category?: string | null
    enabled?: boolean
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type UnitOfMeasureUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UnitOfMeasureUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type DictionaryCreateInput = {
    id?: string
    category: string
    code: string
    labelEn: string
    labelZh?: string | null
    sortOrder?: number
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type DictionaryUncheckedCreateInput = {
    id?: string
    category: string
    code: string
    labelEn: string
    labelZh?: string | null
    sortOrder?: number
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type DictionaryUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    labelEn?: StringFieldUpdateOperationsInput | string
    labelZh?: NullableStringFieldUpdateOperationsInput | string | null
    sortOrder?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type DictionaryUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    labelEn?: StringFieldUpdateOperationsInput | string
    labelZh?: NullableStringFieldUpdateOperationsInput | string | null
    sortOrder?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type DictionaryCreateManyInput = {
    id?: string
    category: string
    code: string
    labelEn: string
    labelZh?: string | null
    sortOrder?: number
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type DictionaryUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    labelEn?: StringFieldUpdateOperationsInput | string
    labelZh?: NullableStringFieldUpdateOperationsInput | string | null
    sortOrder?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type DictionaryUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    labelEn?: StringFieldUpdateOperationsInput | string
    labelZh?: NullableStringFieldUpdateOperationsInput | string | null
    sortOrder?: IntFieldUpdateOperationsInput | number
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type MeetingCreateInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput
    series?: MeetingSeriesCreateNestedOneWithoutMeetingsInput
    creator: UserCreateNestedOneWithoutMeetingsCreatedInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput
    series?: MeetingSeriesUpdateOneWithoutMeetingsNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingCreateManyInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesCreateInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutMeetingSeriesCreatedInput
    meetings?: MeetingCreateNestedManyWithoutSeriesInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesUncheckedCreateInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    meetings?: MeetingUncheckedCreateNestedManyWithoutSeriesInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutMeetingSeriesCreatedNestedInput
    meetings?: MeetingUpdateManyWithoutSeriesNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutSeriesNestedInput
  }

  export type MeetingSeriesUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meetings?: MeetingUncheckedUpdateManyWithoutSeriesNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutSeriesNestedInput
  }

  export type MeetingSeriesCreateManyInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceCreateInput = {
    id?: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting: MeetingCreateNestedOneWithoutAttendancesInput
    user: UserCreateNestedOneWithoutMeetingAttendancesInput
  }

  export type MeetingAttendanceUncheckedCreateInput = {
    id?: string
    userId: string
    meetingId: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneRequiredWithoutAttendancesNestedInput
    user?: UserUpdateOneRequiredWithoutMeetingAttendancesNestedInput
  }

  export type MeetingAttendanceUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceCreateManyInput = {
    id?: string
    userId: string
    meetingId: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingRequiredAttendeeCreateInput = {
    id?: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutMeetingRequiredAttendeesInput
    meeting: MeetingCreateNestedOneWithoutRequiredAttendeesInput
  }

  export type MeetingRequiredAttendeeUncheckedCreateInput = {
    id?: string
    meetingId: string
    userId: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
  }

  export type MeetingRequiredAttendeeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutMeetingRequiredAttendeesNestedInput
    meeting?: MeetingUpdateOneRequiredWithoutRequiredAttendeesNestedInput
  }

  export type MeetingRequiredAttendeeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingRequiredAttendeeCreateManyInput = {
    id?: string
    meetingId: string
    userId: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
  }

  export type MeetingRequiredAttendeeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingRequiredAttendeeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeePreferenceCreateInput = {
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    series: MeetingSeriesCreateNestedOneWithoutAttendeePreferencesInput
    user: UserCreateNestedOneWithoutMeetingSeriesAttendeePreferencesInput
  }

  export type MeetingSeriesAttendeePreferenceUncheckedCreateInput = {
    seriesId: string
    userId: string
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesAttendeePreferenceUpdateInput = {
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    series?: MeetingSeriesUpdateOneRequiredWithoutAttendeePreferencesNestedInput
    user?: UserUpdateOneRequiredWithoutMeetingSeriesAttendeePreferencesNestedInput
  }

  export type MeetingSeriesAttendeePreferenceUncheckedUpdateInput = {
    seriesId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeePreferenceCreateManyInput = {
    seriesId: string
    userId: string
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesAttendeePreferenceUpdateManyMutationInput = {
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeePreferenceUncheckedUpdateManyInput = {
    seriesId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeeExceptionCreateInput = {
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
    series: MeetingSeriesCreateNestedOneWithoutAttendeeExceptionsInput
    user: UserCreateNestedOneWithoutMeetingSeriesAttendeeExceptionsInput
  }

  export type MeetingSeriesAttendeeExceptionUncheckedCreateInput = {
    seriesId: string
    userId: string
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
  }

  export type MeetingSeriesAttendeeExceptionUpdateInput = {
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    series?: MeetingSeriesUpdateOneRequiredWithoutAttendeeExceptionsNestedInput
    user?: UserUpdateOneRequiredWithoutMeetingSeriesAttendeeExceptionsNestedInput
  }

  export type MeetingSeriesAttendeeExceptionUncheckedUpdateInput = {
    seriesId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type MeetingSeriesAttendeeExceptionCreateManyInput = {
    seriesId: string
    userId: string
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
  }

  export type MeetingSeriesAttendeeExceptionUpdateManyMutationInput = {
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type MeetingSeriesAttendeeExceptionUncheckedUpdateManyInput = {
    seriesId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type MeetingExternalAttendeeCreateInput = {
    id?: string
    email: string
    displayName?: string | null
    attendeeType?: string | null
    response?: string | null
    sourceRole?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting: MeetingCreateNestedOneWithoutExternalAttendeesInput
  }

  export type MeetingExternalAttendeeUncheckedCreateInput = {
    id?: string
    meetingId: string
    email: string
    displayName?: string | null
    attendeeType?: string | null
    response?: string | null
    sourceRole?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingExternalAttendeeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    attendeeType?: NullableStringFieldUpdateOperationsInput | string | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    sourceRole?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneRequiredWithoutExternalAttendeesNestedInput
  }

  export type MeetingExternalAttendeeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    attendeeType?: NullableStringFieldUpdateOperationsInput | string | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    sourceRole?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingExternalAttendeeCreateManyInput = {
    id?: string
    meetingId: string
    email: string
    displayName?: string | null
    attendeeType?: string | null
    response?: string | null
    sourceRole?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingExternalAttendeeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    attendeeType?: NullableStringFieldUpdateOperationsInput | string | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    sourceRole?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingExternalAttendeeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    attendeeType?: NullableStringFieldUpdateOperationsInput | string | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    sourceRole?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateCreateInput = {
    id?: string
    name: string
    title: string
    description?: string | null
    duration: number
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isPublic?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    templateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutTemplateInput
    creator: UserCreateNestedOneWithoutMeetingTemplatesCreatedInput
  }

  export type MeetingTemplateUncheckedCreateInput = {
    id?: string
    name: string
    title: string
    description?: string | null
    duration: number
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isPublic?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    templateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutTemplateInput
  }

  export type MeetingTemplateUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    templateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutTemplateNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingTemplatesCreatedNestedInput
  }

  export type MeetingTemplateUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    templateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutTemplateNestedInput
  }

  export type MeetingTemplateCreateManyInput = {
    id?: string
    name: string
    title: string
    description?: string | null
    duration: number
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isPublic?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingTemplateUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateAttendeeCreateInput = {
    id?: string
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutMeetingTemplateAttendeesInput
    template: MeetingTemplateCreateNestedOneWithoutTemplateAttendeesInput
  }

  export type MeetingTemplateAttendeeUncheckedCreateInput = {
    id?: string
    templateId: string
    userId: string
    createdAt?: Date | string
  }

  export type MeetingTemplateAttendeeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutMeetingTemplateAttendeesNestedInput
    template?: MeetingTemplateUpdateOneRequiredWithoutTemplateAttendeesNestedInput
  }

  export type MeetingTemplateAttendeeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    templateId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateAttendeeCreateManyInput = {
    id?: string
    templateId: string
    userId: string
    createdAt?: Date | string
  }

  export type MeetingTemplateAttendeeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateAttendeeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    templateId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceLeaveRecordCreateInput = {
    id?: string
    type: $Enums.LeaveType
    startDate: Date | string
    endDate: Date | string
    reason?: string | null
    status?: $Enums.LeaveStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutMeetingAttendanceLeaveLogsInput
  }

  export type MeetingAttendanceLeaveRecordUncheckedCreateInput = {
    id?: string
    userId: string
    type: $Enums.LeaveType
    startDate: Date | string
    endDate: Date | string
    reason?: string | null
    status?: $Enums.LeaveStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceLeaveRecordUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLeaveTypeFieldUpdateOperationsInput | $Enums.LeaveType
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLeaveStatusFieldUpdateOperationsInput | $Enums.LeaveStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutMeetingAttendanceLeaveLogsNestedInput
  }

  export type MeetingAttendanceLeaveRecordUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumLeaveTypeFieldUpdateOperationsInput | $Enums.LeaveType
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLeaveStatusFieldUpdateOperationsInput | $Enums.LeaveStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceLeaveRecordCreateManyInput = {
    id?: string
    userId: string
    type: $Enums.LeaveType
    startDate: Date | string
    endDate: Date | string
    reason?: string | null
    status?: $Enums.LeaveStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceLeaveRecordUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLeaveTypeFieldUpdateOperationsInput | $Enums.LeaveType
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLeaveStatusFieldUpdateOperationsInput | $Enums.LeaveStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceLeaveRecordUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumLeaveTypeFieldUpdateOperationsInput | $Enums.LeaveType
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLeaveStatusFieldUpdateOperationsInput | $Enums.LeaveStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditLogCreateInput = {
    id?: string
    userEmail: string
    userName: string
    userRole: string
    action: string
    resource: string
    resourceId?: string | null
    method: string
    endpoint: string
    statusCode: number
    source?: string
    deviceId?: string | null
    sessionId?: string | null
    requestId?: string | null
    traceId?: string | null
    geoLocation?: string | null
    ipAddress?: string | null
    userAgent?: string | null
    fieldDiffs?: string | null
    requestBody?: string | null
    changes?: string | null
    reasonCode?: string | null
    reasonText?: string | null
    errorMessage?: string | null
    prevHash?: string | null
    hash?: string | null
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: Date | string | null
    duration?: number | null
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutMeetingAttendanceAuditLogsInput
  }

  export type MeetingAttendanceAuditLogUncheckedCreateInput = {
    id?: string
    userId: string
    userEmail: string
    userName: string
    userRole: string
    action: string
    resource: string
    resourceId?: string | null
    method: string
    endpoint: string
    statusCode: number
    source?: string
    deviceId?: string | null
    sessionId?: string | null
    requestId?: string | null
    traceId?: string | null
    geoLocation?: string | null
    ipAddress?: string | null
    userAgent?: string | null
    fieldDiffs?: string | null
    requestBody?: string | null
    changes?: string | null
    reasonCode?: string | null
    reasonText?: string | null
    errorMessage?: string | null
    prevHash?: string | null
    hash?: string | null
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: Date | string | null
    duration?: number | null
    createdAt?: Date | string
  }

  export type MeetingAttendanceAuditLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userEmail?: StringFieldUpdateOperationsInput | string
    userName?: StringFieldUpdateOperationsInput | string
    userRole?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    resourceId?: NullableStringFieldUpdateOperationsInput | string | null
    method?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    source?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    fieldDiffs?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableStringFieldUpdateOperationsInput | string | null
    changes?: NullableStringFieldUpdateOperationsInput | string | null
    reasonCode?: NullableStringFieldUpdateOperationsInput | string | null
    reasonText?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    prevHash?: NullableStringFieldUpdateOperationsInput | string | null
    hash?: NullableStringFieldUpdateOperationsInput | string | null
    isRedacted?: BoolFieldUpdateOperationsInput | boolean
    isTombstoned?: BoolFieldUpdateOperationsInput | boolean
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutMeetingAttendanceAuditLogsNestedInput
  }

  export type MeetingAttendanceAuditLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    userEmail?: StringFieldUpdateOperationsInput | string
    userName?: StringFieldUpdateOperationsInput | string
    userRole?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    resourceId?: NullableStringFieldUpdateOperationsInput | string | null
    method?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    source?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    fieldDiffs?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableStringFieldUpdateOperationsInput | string | null
    changes?: NullableStringFieldUpdateOperationsInput | string | null
    reasonCode?: NullableStringFieldUpdateOperationsInput | string | null
    reasonText?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    prevHash?: NullableStringFieldUpdateOperationsInput | string | null
    hash?: NullableStringFieldUpdateOperationsInput | string | null
    isRedacted?: BoolFieldUpdateOperationsInput | boolean
    isTombstoned?: BoolFieldUpdateOperationsInput | boolean
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditLogCreateManyInput = {
    id?: string
    userId: string
    userEmail: string
    userName: string
    userRole: string
    action: string
    resource: string
    resourceId?: string | null
    method: string
    endpoint: string
    statusCode: number
    source?: string
    deviceId?: string | null
    sessionId?: string | null
    requestId?: string | null
    traceId?: string | null
    geoLocation?: string | null
    ipAddress?: string | null
    userAgent?: string | null
    fieldDiffs?: string | null
    requestBody?: string | null
    changes?: string | null
    reasonCode?: string | null
    reasonText?: string | null
    errorMessage?: string | null
    prevHash?: string | null
    hash?: string | null
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: Date | string | null
    duration?: number | null
    createdAt?: Date | string
  }

  export type MeetingAttendanceAuditLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userEmail?: StringFieldUpdateOperationsInput | string
    userName?: StringFieldUpdateOperationsInput | string
    userRole?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    resourceId?: NullableStringFieldUpdateOperationsInput | string | null
    method?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    source?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    fieldDiffs?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableStringFieldUpdateOperationsInput | string | null
    changes?: NullableStringFieldUpdateOperationsInput | string | null
    reasonCode?: NullableStringFieldUpdateOperationsInput | string | null
    reasonText?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    prevHash?: NullableStringFieldUpdateOperationsInput | string | null
    hash?: NullableStringFieldUpdateOperationsInput | string | null
    isRedacted?: BoolFieldUpdateOperationsInput | boolean
    isTombstoned?: BoolFieldUpdateOperationsInput | boolean
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    userEmail?: StringFieldUpdateOperationsInput | string
    userName?: StringFieldUpdateOperationsInput | string
    userRole?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    resourceId?: NullableStringFieldUpdateOperationsInput | string | null
    method?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    source?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    fieldDiffs?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableStringFieldUpdateOperationsInput | string | null
    changes?: NullableStringFieldUpdateOperationsInput | string | null
    reasonCode?: NullableStringFieldUpdateOperationsInput | string | null
    reasonText?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    prevHash?: NullableStringFieldUpdateOperationsInput | string | null
    hash?: NullableStringFieldUpdateOperationsInput | string | null
    isRedacted?: BoolFieldUpdateOperationsInput | boolean
    isTombstoned?: BoolFieldUpdateOperationsInput | boolean
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceDataAccessLogCreateInput = {
    id?: string
    actorId?: string | null
    actorEmail: string
    actorName: string
    actorRole: string
    accessType: string
    entityType: string
    entityIds?: string | null
    resultCount: number
    hasSensitiveData?: boolean
    sensitiveFields?: string | null
    endpoint: string
    method: string
    statusCode: number
    ipAddress?: string | null
    sessionId?: string | null
    requestId?: string | null
    deviceId?: string | null
    createdAt?: Date | string
  }

  export type MeetingAttendanceDataAccessLogUncheckedCreateInput = {
    id?: string
    actorId?: string | null
    actorEmail: string
    actorName: string
    actorRole: string
    accessType: string
    entityType: string
    entityIds?: string | null
    resultCount: number
    hasSensitiveData?: boolean
    sensitiveFields?: string | null
    endpoint: string
    method: string
    statusCode: number
    ipAddress?: string | null
    sessionId?: string | null
    requestId?: string | null
    deviceId?: string | null
    createdAt?: Date | string
  }

  export type MeetingAttendanceDataAccessLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    actorEmail?: StringFieldUpdateOperationsInput | string
    actorName?: StringFieldUpdateOperationsInput | string
    actorRole?: StringFieldUpdateOperationsInput | string
    accessType?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    entityIds?: NullableStringFieldUpdateOperationsInput | string | null
    resultCount?: IntFieldUpdateOperationsInput | number
    hasSensitiveData?: BoolFieldUpdateOperationsInput | boolean
    sensitiveFields?: NullableStringFieldUpdateOperationsInput | string | null
    endpoint?: StringFieldUpdateOperationsInput | string
    method?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceDataAccessLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    actorEmail?: StringFieldUpdateOperationsInput | string
    actorName?: StringFieldUpdateOperationsInput | string
    actorRole?: StringFieldUpdateOperationsInput | string
    accessType?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    entityIds?: NullableStringFieldUpdateOperationsInput | string | null
    resultCount?: IntFieldUpdateOperationsInput | number
    hasSensitiveData?: BoolFieldUpdateOperationsInput | boolean
    sensitiveFields?: NullableStringFieldUpdateOperationsInput | string | null
    endpoint?: StringFieldUpdateOperationsInput | string
    method?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceDataAccessLogCreateManyInput = {
    id?: string
    actorId?: string | null
    actorEmail: string
    actorName: string
    actorRole: string
    accessType: string
    entityType: string
    entityIds?: string | null
    resultCount: number
    hasSensitiveData?: boolean
    sensitiveFields?: string | null
    endpoint: string
    method: string
    statusCode: number
    ipAddress?: string | null
    sessionId?: string | null
    requestId?: string | null
    deviceId?: string | null
    createdAt?: Date | string
  }

  export type MeetingAttendanceDataAccessLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    actorEmail?: StringFieldUpdateOperationsInput | string
    actorName?: StringFieldUpdateOperationsInput | string
    actorRole?: StringFieldUpdateOperationsInput | string
    accessType?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    entityIds?: NullableStringFieldUpdateOperationsInput | string | null
    resultCount?: IntFieldUpdateOperationsInput | number
    hasSensitiveData?: BoolFieldUpdateOperationsInput | boolean
    sensitiveFields?: NullableStringFieldUpdateOperationsInput | string | null
    endpoint?: StringFieldUpdateOperationsInput | string
    method?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceDataAccessLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    actorEmail?: StringFieldUpdateOperationsInput | string
    actorName?: StringFieldUpdateOperationsInput | string
    actorRole?: StringFieldUpdateOperationsInput | string
    accessType?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    entityIds?: NullableStringFieldUpdateOperationsInput | string | null
    resultCount?: IntFieldUpdateOperationsInput | number
    hasSensitiveData?: BoolFieldUpdateOperationsInput | boolean
    sensitiveFields?: NullableStringFieldUpdateOperationsInput | string | null
    endpoint?: StringFieldUpdateOperationsInput | string
    method?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertRuleCreateInput = {
    id?: string
    name: string
    description?: string | null
    ruleType: string
    conditions: string
    threshold?: number | null
    timeWindow?: number | null
    severity: string
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: string | null
    suppressionWindow?: number | null
    lastTriggered?: Date | string | null
    triggerCount?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    alerts?: MeetingAttendanceAuditAlertCreateNestedManyWithoutRuleInput
  }

  export type MeetingAttendanceAuditAlertRuleUncheckedCreateInput = {
    id?: string
    name: string
    description?: string | null
    ruleType: string
    conditions: string
    threshold?: number | null
    timeWindow?: number | null
    severity: string
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: string | null
    suppressionWindow?: number | null
    lastTriggered?: Date | string | null
    triggerCount?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    alerts?: MeetingAttendanceAuditAlertUncheckedCreateNestedManyWithoutRuleInput
  }

  export type MeetingAttendanceAuditAlertRuleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: StringFieldUpdateOperationsInput | string
    conditions?: StringFieldUpdateOperationsInput | string
    threshold?: NullableIntFieldUpdateOperationsInput | number | null
    timeWindow?: NullableIntFieldUpdateOperationsInput | number | null
    severity?: StringFieldUpdateOperationsInput | string
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    notifyEmail?: BoolFieldUpdateOperationsInput | boolean
    notifyInApp?: BoolFieldUpdateOperationsInput | boolean
    notifyWebhook?: BoolFieldUpdateOperationsInput | boolean
    webhookUrl?: NullableStringFieldUpdateOperationsInput | string | null
    suppressionWindow?: NullableIntFieldUpdateOperationsInput | number | null
    lastTriggered?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    triggerCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    alerts?: MeetingAttendanceAuditAlertUpdateManyWithoutRuleNestedInput
  }

  export type MeetingAttendanceAuditAlertRuleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: StringFieldUpdateOperationsInput | string
    conditions?: StringFieldUpdateOperationsInput | string
    threshold?: NullableIntFieldUpdateOperationsInput | number | null
    timeWindow?: NullableIntFieldUpdateOperationsInput | number | null
    severity?: StringFieldUpdateOperationsInput | string
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    notifyEmail?: BoolFieldUpdateOperationsInput | boolean
    notifyInApp?: BoolFieldUpdateOperationsInput | boolean
    notifyWebhook?: BoolFieldUpdateOperationsInput | boolean
    webhookUrl?: NullableStringFieldUpdateOperationsInput | string | null
    suppressionWindow?: NullableIntFieldUpdateOperationsInput | number | null
    lastTriggered?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    triggerCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    alerts?: MeetingAttendanceAuditAlertUncheckedUpdateManyWithoutRuleNestedInput
  }

  export type MeetingAttendanceAuditAlertRuleCreateManyInput = {
    id?: string
    name: string
    description?: string | null
    ruleType: string
    conditions: string
    threshold?: number | null
    timeWindow?: number | null
    severity: string
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: string | null
    suppressionWindow?: number | null
    lastTriggered?: Date | string | null
    triggerCount?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditAlertRuleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: StringFieldUpdateOperationsInput | string
    conditions?: StringFieldUpdateOperationsInput | string
    threshold?: NullableIntFieldUpdateOperationsInput | number | null
    timeWindow?: NullableIntFieldUpdateOperationsInput | number | null
    severity?: StringFieldUpdateOperationsInput | string
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    notifyEmail?: BoolFieldUpdateOperationsInput | boolean
    notifyInApp?: BoolFieldUpdateOperationsInput | boolean
    notifyWebhook?: BoolFieldUpdateOperationsInput | boolean
    webhookUrl?: NullableStringFieldUpdateOperationsInput | string | null
    suppressionWindow?: NullableIntFieldUpdateOperationsInput | number | null
    lastTriggered?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    triggerCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertRuleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: StringFieldUpdateOperationsInput | string
    conditions?: StringFieldUpdateOperationsInput | string
    threshold?: NullableIntFieldUpdateOperationsInput | number | null
    timeWindow?: NullableIntFieldUpdateOperationsInput | number | null
    severity?: StringFieldUpdateOperationsInput | string
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    notifyEmail?: BoolFieldUpdateOperationsInput | boolean
    notifyInApp?: BoolFieldUpdateOperationsInput | boolean
    notifyWebhook?: BoolFieldUpdateOperationsInput | boolean
    webhookUrl?: NullableStringFieldUpdateOperationsInput | string | null
    suppressionWindow?: NullableIntFieldUpdateOperationsInput | number | null
    lastTriggered?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    triggerCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertCreateInput = {
    id?: string
    severity: string
    title: string
    description: string
    triggerData: string
    matchedLogs: string
    affectedEntities?: string | null
    status?: string
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    rule: MeetingAttendanceAuditAlertRuleCreateNestedOneWithoutAlertsInput
  }

  export type MeetingAttendanceAuditAlertUncheckedCreateInput = {
    id?: string
    ruleId: string
    severity: string
    title: string
    description: string
    triggerData: string
    matchedLogs: string
    affectedEntities?: string | null
    status?: string
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditAlertUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    severity?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    triggerData?: StringFieldUpdateOperationsInput | string
    matchedLogs?: StringFieldUpdateOperationsInput | string
    affectedEntities?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    rule?: MeetingAttendanceAuditAlertRuleUpdateOneRequiredWithoutAlertsNestedInput
  }

  export type MeetingAttendanceAuditAlertUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ruleId?: StringFieldUpdateOperationsInput | string
    severity?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    triggerData?: StringFieldUpdateOperationsInput | string
    matchedLogs?: StringFieldUpdateOperationsInput | string
    affectedEntities?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertCreateManyInput = {
    id?: string
    ruleId: string
    severity: string
    title: string
    description: string
    triggerData: string
    matchedLogs: string
    affectedEntities?: string | null
    status?: string
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditAlertUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    severity?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    triggerData?: StringFieldUpdateOperationsInput | string
    matchedLogs?: StringFieldUpdateOperationsInput | string
    affectedEntities?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    ruleId?: StringFieldUpdateOperationsInput | string
    severity?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    triggerData?: StringFieldUpdateOperationsInput | string
    matchedLogs?: StringFieldUpdateOperationsInput | string
    affectedEntities?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceRetentionPolicyCreateInput = {
    id?: string
    entityType: string
    hotDays?: number
    warmDays?: number
    coldDays?: number
    autoArchive?: boolean
    autoDelete?: boolean
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceRetentionPolicyUncheckedCreateInput = {
    id?: string
    entityType: string
    hotDays?: number
    warmDays?: number
    coldDays?: number
    autoArchive?: boolean
    autoDelete?: boolean
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceRetentionPolicyUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    hotDays?: IntFieldUpdateOperationsInput | number
    warmDays?: IntFieldUpdateOperationsInput | number
    coldDays?: IntFieldUpdateOperationsInput | number
    autoArchive?: BoolFieldUpdateOperationsInput | boolean
    autoDelete?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceRetentionPolicyUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    hotDays?: IntFieldUpdateOperationsInput | number
    warmDays?: IntFieldUpdateOperationsInput | number
    coldDays?: IntFieldUpdateOperationsInput | number
    autoArchive?: BoolFieldUpdateOperationsInput | boolean
    autoDelete?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceRetentionPolicyCreateManyInput = {
    id?: string
    entityType: string
    hotDays?: number
    warmDays?: number
    coldDays?: number
    autoArchive?: boolean
    autoDelete?: boolean
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceRetentionPolicyUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    hotDays?: IntFieldUpdateOperationsInput | number
    warmDays?: IntFieldUpdateOperationsInput | number
    coldDays?: IntFieldUpdateOperationsInput | number
    autoArchive?: BoolFieldUpdateOperationsInput | boolean
    autoDelete?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceRetentionPolicyUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    hotDays?: IntFieldUpdateOperationsInput | number
    warmDays?: IntFieldUpdateOperationsInput | number
    coldDays?: IntFieldUpdateOperationsInput | number
    autoArchive?: BoolFieldUpdateOperationsInput | boolean
    autoDelete?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncMailboxCreateInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxUncheckedCreateInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionUncheckedCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotUncheckedCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorUncheckedCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUncheckedUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUncheckedUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxCreateManyInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncMailboxUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncMailboxUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSubscriptionCreateInput = {
    id?: string
    graphSubscriptionId: string
    resource: string
    status?: $Enums.OutlookSubscriptionStatus
    expirationAt: Date | string
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutSubscriptionsInput
  }

  export type OutlookSubscriptionUncheckedCreateInput = {
    id?: string
    mailboxId: string
    graphSubscriptionId: string
    resource: string
    status?: $Enums.OutlookSubscriptionStatus
    expirationAt: Date | string
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSubscriptionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphSubscriptionId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    status?: EnumOutlookSubscriptionStatusFieldUpdateOperationsInput | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutSubscriptionsNestedInput
  }

  export type OutlookSubscriptionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphSubscriptionId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    status?: EnumOutlookSubscriptionStatusFieldUpdateOperationsInput | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSubscriptionCreateManyInput = {
    id?: string
    mailboxId: string
    graphSubscriptionId: string
    resource: string
    status?: $Enums.OutlookSubscriptionStatus
    expirationAt: Date | string
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSubscriptionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphSubscriptionId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    status?: EnumOutlookSubscriptionStatusFieldUpdateOperationsInput | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSubscriptionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphSubscriptionId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    status?: EnumOutlookSubscriptionStatusFieldUpdateOperationsInput | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookMeetingBindingCreateInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting?: MeetingCreateNestedOneWithoutOutlookBindingsInput
    meetingSeries?: MeetingSeriesCreateNestedOneWithoutOutlookBindingsInput
    primaryMailbox: OutlookSyncMailboxCreateNestedOneWithoutPrimaryBindingsInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUncheckedCreateInput = {
    id?: string
    meetingId?: string | null
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneWithoutOutlookBindingsNestedInput
    meetingSeries?: MeetingSeriesUpdateOneWithoutOutlookBindingsNestedInput
    primaryMailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutPrimaryBindingsNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingCreateManyInput = {
    id?: string
    meetingId?: string | null
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookMeetingBindingUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookMeetingBindingUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSeriesOccurrenceExclusionCreateInput = {
    id?: string
    occurrenceGraphEventId: string
    iCalUId?: string | null
    reason?: string | null
    createdByEmail?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutOccurrenceExclusionsInput
  }

  export type OutlookSeriesOccurrenceExclusionUncheckedCreateInput = {
    id?: string
    bindingId: string
    occurrenceGraphEventId: string
    iCalUId?: string | null
    reason?: string | null
    createdByEmail?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSeriesOccurrenceExclusionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    occurrenceGraphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutOccurrenceExclusionsNestedInput
  }

  export type OutlookSeriesOccurrenceExclusionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    occurrenceGraphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSeriesOccurrenceExclusionCreateManyInput = {
    id?: string
    bindingId: string
    occurrenceGraphEventId: string
    iCalUId?: string | null
    reason?: string | null
    createdByEmail?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSeriesOccurrenceExclusionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    occurrenceGraphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSeriesOccurrenceExclusionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    occurrenceGraphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncEventLogCreateInput = {
    id?: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSyncEventLogsInput
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutSyncEventLogsInput
  }

  export type OutlookSyncEventLogUncheckedCreateInput = {
    id?: string
    bindingId: string
    mailboxId: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookSyncEventLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSyncEventLogsNestedInput
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutSyncEventLogsNestedInput
  }

  export type OutlookSyncEventLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncEventLogCreateManyInput = {
    id?: string
    bindingId: string
    mailboxId: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookSyncEventLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncEventLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSourceVersionCreateInput = {
    id?: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSourceVersionsInput
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutSourceVersionsInput
    diffsAsCurrent?: OutlookEventSyncDiffCreateNestedManyWithoutSourceVersionInput
    diffsAsPrevious?: OutlookEventSyncDiffCreateNestedManyWithoutPreviousSourceVersionInput
  }

  export type OutlookEventSourceVersionUncheckedCreateInput = {
    id?: string
    bindingId: string
    mailboxId: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    diffsAsCurrent?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutSourceVersionInput
    diffsAsPrevious?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutPreviousSourceVersionInput
  }

  export type OutlookEventSourceVersionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSourceVersionsNestedInput
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutSourceVersionsNestedInput
    diffsAsCurrent?: OutlookEventSyncDiffUpdateManyWithoutSourceVersionNestedInput
    diffsAsPrevious?: OutlookEventSyncDiffUpdateManyWithoutPreviousSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffsAsCurrent?: OutlookEventSyncDiffUncheckedUpdateManyWithoutSourceVersionNestedInput
    diffsAsPrevious?: OutlookEventSyncDiffUncheckedUpdateManyWithoutPreviousSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionCreateManyInput = {
    id?: string
    bindingId: string
    mailboxId: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookEventSourceVersionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSourceVersionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffCreateInput = {
    id?: string
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSyncDiffsInput
    sourceVersion: OutlookEventSourceVersionCreateNestedOneWithoutDiffsAsCurrentInput
    previousSourceVersion?: OutlookEventSourceVersionCreateNestedOneWithoutDiffsAsPreviousInput
  }

  export type OutlookEventSyncDiffUncheckedCreateInput = {
    id?: string
    bindingId: string
    sourceVersionId: string
    previousSourceVersionId?: string | null
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
  }

  export type OutlookEventSyncDiffUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSyncDiffsNestedInput
    sourceVersion?: OutlookEventSourceVersionUpdateOneRequiredWithoutDiffsAsCurrentNestedInput
    previousSourceVersion?: OutlookEventSourceVersionUpdateOneWithoutDiffsAsPreviousNestedInput
  }

  export type OutlookEventSyncDiffUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    sourceVersionId?: StringFieldUpdateOperationsInput | string
    previousSourceVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffCreateManyInput = {
    id?: string
    bindingId: string
    sourceVersionId: string
    previousSourceVersionId?: string | null
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
  }

  export type OutlookEventSyncDiffUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    sourceVersionId?: StringFieldUpdateOperationsInput | string
    previousSourceVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncCursorCreateInput = {
    id?: string
    deltaToken: string
    lastSyncedAt?: Date | string | null
    lastReconciledAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutCursorInput
  }

  export type OutlookSyncCursorUncheckedCreateInput = {
    id?: string
    mailboxId: string
    deltaToken: string
    lastSyncedAt?: Date | string | null
    lastReconciledAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncCursorUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deltaToken?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReconciledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutCursorNestedInput
  }

  export type OutlookSyncCursorUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    deltaToken?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReconciledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncCursorCreateManyInput = {
    id?: string
    mailboxId: string
    deltaToken: string
    lastSyncedAt?: Date | string | null
    lastReconciledAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncCursorUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deltaToken?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReconciledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncCursorUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    deltaToken?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReconciledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSnapshotCreateInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    title: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    timezone: string
    eventType: string
    isCancelled?: boolean
    seriesMasterId?: string | null
    organizerEmail?: string | null
    lastModifiedAt?: Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutEventSnapshotsInput
  }

  export type OutlookEventSnapshotUncheckedCreateInput = {
    id?: string
    mailboxId: string
    graphEventId: string
    iCalUId: string
    title: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    timezone: string
    eventType: string
    isCancelled?: boolean
    seriesMasterId?: string | null
    organizerEmail?: string | null
    lastModifiedAt?: Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookEventSnapshotUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    seriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutEventSnapshotsNestedInput
  }

  export type OutlookEventSnapshotUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    seriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSnapshotCreateManyInput = {
    id?: string
    mailboxId: string
    graphEventId: string
    iCalUId: string
    title: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    timezone: string
    eventType: string
    isCancelled?: boolean
    seriesMasterId?: string | null
    organizerEmail?: string | null
    lastModifiedAt?: Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookEventSnapshotUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    seriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSnapshotUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    seriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncSettingCreateInput = {
    id?: string
    reconcileCron?: string
    deltaBatchSize?: number
    lookaheadDays?: number
    lookbackDays?: number
    renewBeforeMinutes?: number
    includeOrganizerAsAttendee?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncSettingUncheckedCreateInput = {
    id?: string
    reconcileCron?: string
    deltaBatchSize?: number
    lookaheadDays?: number
    lookbackDays?: number
    renewBeforeMinutes?: number
    includeOrganizerAsAttendee?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncSettingUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    reconcileCron?: StringFieldUpdateOperationsInput | string
    deltaBatchSize?: IntFieldUpdateOperationsInput | number
    lookaheadDays?: IntFieldUpdateOperationsInput | number
    lookbackDays?: IntFieldUpdateOperationsInput | number
    renewBeforeMinutes?: IntFieldUpdateOperationsInput | number
    includeOrganizerAsAttendee?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncSettingUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    reconcileCron?: StringFieldUpdateOperationsInput | string
    deltaBatchSize?: IntFieldUpdateOperationsInput | number
    lookaheadDays?: IntFieldUpdateOperationsInput | number
    lookbackDays?: IntFieldUpdateOperationsInput | number
    renewBeforeMinutes?: IntFieldUpdateOperationsInput | number
    includeOrganizerAsAttendee?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncSettingCreateManyInput = {
    id?: string
    reconcileCron?: string
    deltaBatchSize?: number
    lookaheadDays?: number
    lookbackDays?: number
    renewBeforeMinutes?: number
    includeOrganizerAsAttendee?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncSettingUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    reconcileCron?: StringFieldUpdateOperationsInput | string
    deltaBatchSize?: IntFieldUpdateOperationsInput | number
    lookaheadDays?: IntFieldUpdateOperationsInput | number
    lookbackDays?: IntFieldUpdateOperationsInput | number
    renewBeforeMinutes?: IntFieldUpdateOperationsInput | number
    includeOrganizerAsAttendee?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncSettingUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    reconcileCron?: StringFieldUpdateOperationsInput | string
    deltaBatchSize?: IntFieldUpdateOperationsInput | number
    lookaheadDays?: IntFieldUpdateOperationsInput | number
    lookbackDays?: IntFieldUpdateOperationsInput | number
    renewBeforeMinutes?: IntFieldUpdateOperationsInput | number
    includeOrganizerAsAttendee?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAgendaSectionCreateInput = {
    id?: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    meeting: MeetingCreateNestedOneWithoutAgendaSectionsInput
    createdBy: UserCreateNestedOneWithoutAgendaSectionsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaSectionsInput
    items?: MeetingAgendaItemCreateNestedManyWithoutSectionInput
  }

  export type MeetingAgendaSectionUncheckedCreateInput = {
    id?: string
    meetingId: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: MeetingAgendaItemUncheckedCreateNestedManyWithoutSectionInput
  }

  export type MeetingAgendaSectionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    meeting?: MeetingUpdateOneRequiredWithoutAgendaSectionsNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaSectionsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaSectionsNestedInput
    items?: MeetingAgendaItemUpdateManyWithoutSectionNestedInput
  }

  export type MeetingAgendaSectionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: MeetingAgendaItemUncheckedUpdateManyWithoutSectionNestedInput
  }

  export type MeetingAgendaSectionCreateManyInput = {
    id?: string
    meetingId: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaSectionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaSectionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemCreateInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    section: MeetingAgendaSectionCreateNestedOneWithoutItemsInput
    presenter?: UserCreateNestedOneWithoutAgendaItemsPresentedInput
    createdBy: UserCreateNestedOneWithoutAgendaItemsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemsInput
    uploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemUncheckedCreateInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    section?: MeetingAgendaSectionUpdateOneRequiredWithoutItemsNestedInput
    presenter?: UserUpdateOneWithoutAgendaItemsPresentedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaItemsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemsNestedInput
    uploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemCreateManyInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateInput = {
    id?: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutUploadTasksInput
    assignee: UserCreateNestedOneWithoutUploadTasksAssignedInput
    assignedBy: UserCreateNestedOneWithoutUploadTasksAssignedByInput
    createdBy: UserCreateNestedOneWithoutUploadTasksCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemUploadTasksInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateInput = {
    id?: string
    agendaItemId: string
    assigneeUserId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutUploadTasksNestedInput
    assignee?: UserUpdateOneRequiredWithoutUploadTasksAssignedNestedInput
    assignedBy?: UserUpdateOneRequiredWithoutUploadTasksAssignedByNestedInput
    createdBy?: UserUpdateOneRequiredWithoutUploadTasksCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemUploadTasksNestedInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateManyInput = {
    id?: string
    agendaItemId: string
    assigneeUserId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateInput = {
    id?: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutAttachmentsInput
    uploadedBy: UserCreateNestedOneWithoutAgendaAttachmentsUploadedInput
    createdBy: UserCreateNestedOneWithoutAgendaAttachmentsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemAttachmentsInput
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateInput = {
    id?: string
    agendaItemId: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutAttachmentsNestedInput
    uploadedBy?: UserUpdateOneRequiredWithoutAgendaAttachmentsUploadedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaAttachmentsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemAttachmentsNestedInput
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateManyInput = {
    id?: string
    agendaItemId: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentCreateInput = {
    id?: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    meeting: MeetingCreateNestedOneWithoutAttachmentsInput
    uploadedBy: UserCreateNestedOneWithoutMeetingAttachmentsUploadedInput
    createdBy: UserCreateNestedOneWithoutMeetingAttachmentsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAttachmentsInput
  }

  export type MeetingAttachmentUncheckedCreateInput = {
    id?: string
    meetingId: string
    uploadedById: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    meeting?: MeetingUpdateOneRequiredWithoutAttachmentsNestedInput
    uploadedBy?: UserUpdateOneRequiredWithoutMeetingAttachmentsUploadedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutMeetingAttachmentsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAttachmentsNestedInput
  }

  export type MeetingAttachmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentCreateManyInput = {
    id?: string
    meetingId: string
    uploadedById: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type NotificationMessageCreateInput = {
    id?: string
    type: $Enums.NotificationType
    title: string
    content: string
    link?: string | null
    status?: $Enums.NotificationStatus
    createdAt?: Date | string
    readAt?: Date | string | null
    user: UserCreateNestedOneWithoutNotificationsInput
  }

  export type NotificationMessageUncheckedCreateInput = {
    id?: string
    userId: string
    type: $Enums.NotificationType
    title: string
    content: string
    link?: string | null
    status?: $Enums.NotificationStatus
    createdAt?: Date | string
    readAt?: Date | string | null
  }

  export type NotificationMessageUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumNotificationTypeFieldUpdateOperationsInput | $Enums.NotificationType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    link?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumNotificationStatusFieldUpdateOperationsInput | $Enums.NotificationStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    user?: UserUpdateOneRequiredWithoutNotificationsNestedInput
  }

  export type NotificationMessageUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumNotificationTypeFieldUpdateOperationsInput | $Enums.NotificationType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    link?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumNotificationStatusFieldUpdateOperationsInput | $Enums.NotificationStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type NotificationMessageCreateManyInput = {
    id?: string
    userId: string
    type: $Enums.NotificationType
    title: string
    content: string
    link?: string | null
    status?: $Enums.NotificationStatus
    createdAt?: Date | string
    readAt?: Date | string | null
  }

  export type NotificationMessageUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumNotificationTypeFieldUpdateOperationsInput | $Enums.NotificationType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    link?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumNotificationStatusFieldUpdateOperationsInput | $Enums.NotificationStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type NotificationMessageUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumNotificationTypeFieldUpdateOperationsInput | $Enums.NotificationType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    link?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumNotificationStatusFieldUpdateOperationsInput | $Enums.NotificationStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type NotificationPreferenceCreateInput = {
    id?: string
    userId: string
    email?: boolean
    webpush?: boolean
    websocket?: boolean
    quietHours?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationPreferenceUncheckedCreateInput = {
    id?: string
    userId: string
    email?: boolean
    webpush?: boolean
    websocket?: boolean
    quietHours?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationPreferenceUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    email?: BoolFieldUpdateOperationsInput | boolean
    webpush?: BoolFieldUpdateOperationsInput | boolean
    websocket?: BoolFieldUpdateOperationsInput | boolean
    quietHours?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationPreferenceUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    email?: BoolFieldUpdateOperationsInput | boolean
    webpush?: BoolFieldUpdateOperationsInput | boolean
    websocket?: BoolFieldUpdateOperationsInput | boolean
    quietHours?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationPreferenceCreateManyInput = {
    id?: string
    userId: string
    email?: boolean
    webpush?: boolean
    websocket?: boolean
    quietHours?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationPreferenceUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    email?: BoolFieldUpdateOperationsInput | boolean
    webpush?: BoolFieldUpdateOperationsInput | boolean
    websocket?: BoolFieldUpdateOperationsInput | boolean
    quietHours?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationPreferenceUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    email?: BoolFieldUpdateOperationsInput | boolean
    webpush?: BoolFieldUpdateOperationsInput | boolean
    websocket?: BoolFieldUpdateOperationsInput | boolean
    quietHours?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationTemplateCreateInput = {
    id?: string
    code: string
    name: string
    description?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    template: string
    variables?: NotificationTemplateCreatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: $Enums.NotificationPriority
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    logs?: NotificationLogCreateNestedManyWithoutTemplateInput
  }

  export type NotificationTemplateUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    description?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    template: string
    variables?: NotificationTemplateCreatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: $Enums.NotificationPriority
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    logs?: NotificationLogUncheckedCreateNestedManyWithoutTemplateInput
  }

  export type NotificationTemplateUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    template?: StringFieldUpdateOperationsInput | string
    variables?: NotificationTemplateUpdatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    logs?: NotificationLogUpdateManyWithoutTemplateNestedInput
  }

  export type NotificationTemplateUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    template?: StringFieldUpdateOperationsInput | string
    variables?: NotificationTemplateUpdatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    logs?: NotificationLogUncheckedUpdateManyWithoutTemplateNestedInput
  }

  export type NotificationTemplateCreateManyInput = {
    id?: string
    code: string
    name: string
    description?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    template: string
    variables?: NotificationTemplateCreatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: $Enums.NotificationPriority
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationTemplateUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    template?: StringFieldUpdateOperationsInput | string
    variables?: NotificationTemplateUpdatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationTemplateUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    template?: StringFieldUpdateOperationsInput | string
    variables?: NotificationTemplateUpdatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationLogCreateInput = {
    id?: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    recipient: UserCreateNestedOneWithoutNotificationLogsInput
    template?: NotificationTemplateCreateNestedOneWithoutLogsInput
  }

  export type NotificationLogUncheckedCreateInput = {
    id?: string
    recipientId: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    templateId?: string | null
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    recipient?: UserUpdateOneRequiredWithoutNotificationLogsNestedInput
    template?: NotificationTemplateUpdateOneWithoutLogsNestedInput
  }

  export type NotificationLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientId?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationLogCreateManyInput = {
    id?: string
    recipientId: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    templateId?: string | null
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientId?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type M365UserCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    graphUserId: string
    userPrincipalName: string
    displayName?: string | null
    mail?: string | null
    department?: string | null
    jobTitle?: string | null
    accountEnabled: boolean
    hasLicense: boolean
    accountCreatedAt?: Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: Date | string | null
    lastNonInteractiveSignInDateTime?: Date | string | null
    lastEmailActivity?: Date | string | null
    lastOneDriveActivity?: Date | string | null
    lastTeamsActivity?: Date | string | null
    lastSharePointActivity?: Date | string | null
    lastAnyActivity?: Date | string | null
    daysInactive?: number | null
    firstSeenInExecutionId: string
    lastSeenInExecutionId: string
    changes?: M365UserActivityChangeCreateNestedManyWithoutUserInput
  }

  export type M365UserUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    graphUserId: string
    userPrincipalName: string
    displayName?: string | null
    mail?: string | null
    department?: string | null
    jobTitle?: string | null
    accountEnabled: boolean
    hasLicense: boolean
    accountCreatedAt?: Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: Date | string | null
    lastNonInteractiveSignInDateTime?: Date | string | null
    lastEmailActivity?: Date | string | null
    lastOneDriveActivity?: Date | string | null
    lastTeamsActivity?: Date | string | null
    lastSharePointActivity?: Date | string | null
    lastAnyActivity?: Date | string | null
    daysInactive?: number | null
    firstSeenInExecutionId: string
    lastSeenInExecutionId: string
    changes?: M365UserActivityChangeUncheckedCreateNestedManyWithoutUserInput
  }

  export type M365UserUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    graphUserId?: StringFieldUpdateOperationsInput | string
    userPrincipalName?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    mail?: NullableStringFieldUpdateOperationsInput | string | null
    department?: NullableStringFieldUpdateOperationsInput | string | null
    jobTitle?: NullableStringFieldUpdateOperationsInput | string | null
    accountEnabled?: BoolFieldUpdateOperationsInput | boolean
    hasLicense?: BoolFieldUpdateOperationsInput | boolean
    accountCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastNonInteractiveSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastEmailActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastOneDriveActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastTeamsActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastSharePointActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastAnyActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    daysInactive?: NullableIntFieldUpdateOperationsInput | number | null
    firstSeenInExecutionId?: StringFieldUpdateOperationsInput | string
    lastSeenInExecutionId?: StringFieldUpdateOperationsInput | string
    changes?: M365UserActivityChangeUpdateManyWithoutUserNestedInput
  }

  export type M365UserUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    graphUserId?: StringFieldUpdateOperationsInput | string
    userPrincipalName?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    mail?: NullableStringFieldUpdateOperationsInput | string | null
    department?: NullableStringFieldUpdateOperationsInput | string | null
    jobTitle?: NullableStringFieldUpdateOperationsInput | string | null
    accountEnabled?: BoolFieldUpdateOperationsInput | boolean
    hasLicense?: BoolFieldUpdateOperationsInput | boolean
    accountCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastNonInteractiveSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastEmailActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastOneDriveActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastTeamsActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastSharePointActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastAnyActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    daysInactive?: NullableIntFieldUpdateOperationsInput | number | null
    firstSeenInExecutionId?: StringFieldUpdateOperationsInput | string
    lastSeenInExecutionId?: StringFieldUpdateOperationsInput | string
    changes?: M365UserActivityChangeUncheckedUpdateManyWithoutUserNestedInput
  }

  export type M365UserCreateManyInput = {
    id?: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    graphUserId: string
    userPrincipalName: string
    displayName?: string | null
    mail?: string | null
    department?: string | null
    jobTitle?: string | null
    accountEnabled: boolean
    hasLicense: boolean
    accountCreatedAt?: Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: Date | string | null
    lastNonInteractiveSignInDateTime?: Date | string | null
    lastEmailActivity?: Date | string | null
    lastOneDriveActivity?: Date | string | null
    lastTeamsActivity?: Date | string | null
    lastSharePointActivity?: Date | string | null
    lastAnyActivity?: Date | string | null
    daysInactive?: number | null
    firstSeenInExecutionId: string
    lastSeenInExecutionId: string
  }

  export type M365UserUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    graphUserId?: StringFieldUpdateOperationsInput | string
    userPrincipalName?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    mail?: NullableStringFieldUpdateOperationsInput | string | null
    department?: NullableStringFieldUpdateOperationsInput | string | null
    jobTitle?: NullableStringFieldUpdateOperationsInput | string | null
    accountEnabled?: BoolFieldUpdateOperationsInput | boolean
    hasLicense?: BoolFieldUpdateOperationsInput | boolean
    accountCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastNonInteractiveSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastEmailActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastOneDriveActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastTeamsActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastSharePointActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastAnyActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    daysInactive?: NullableIntFieldUpdateOperationsInput | number | null
    firstSeenInExecutionId?: StringFieldUpdateOperationsInput | string
    lastSeenInExecutionId?: StringFieldUpdateOperationsInput | string
  }

  export type M365UserUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    graphUserId?: StringFieldUpdateOperationsInput | string
    userPrincipalName?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    mail?: NullableStringFieldUpdateOperationsInput | string | null
    department?: NullableStringFieldUpdateOperationsInput | string | null
    jobTitle?: NullableStringFieldUpdateOperationsInput | string | null
    accountEnabled?: BoolFieldUpdateOperationsInput | boolean
    hasLicense?: BoolFieldUpdateOperationsInput | boolean
    accountCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastNonInteractiveSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastEmailActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastOneDriveActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastTeamsActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastSharePointActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastAnyActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    daysInactive?: NullableIntFieldUpdateOperationsInput | number | null
    firstSeenInExecutionId?: StringFieldUpdateOperationsInput | string
    lastSeenInExecutionId?: StringFieldUpdateOperationsInput | string
  }

  export type M365UserActivityChangeCreateInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    executionId: string
    field: $Enums.M365UserActivityChangeField
    previousValue?: string | null
    currentValue?: string | null
    user: M365UserCreateNestedOneWithoutChangesInput
  }

  export type M365UserActivityChangeUncheckedCreateInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    userId: string
    executionId: string
    field: $Enums.M365UserActivityChangeField
    previousValue?: string | null
    currentValue?: string | null
  }

  export type M365UserActivityChangeUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executionId?: StringFieldUpdateOperationsInput | string
    field?: EnumM365UserActivityChangeFieldFieldUpdateOperationsInput | $Enums.M365UserActivityChangeField
    previousValue?: NullableStringFieldUpdateOperationsInput | string | null
    currentValue?: NullableStringFieldUpdateOperationsInput | string | null
    user?: M365UserUpdateOneRequiredWithoutChangesNestedInput
  }

  export type M365UserActivityChangeUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    userId?: StringFieldUpdateOperationsInput | string
    executionId?: StringFieldUpdateOperationsInput | string
    field?: EnumM365UserActivityChangeFieldFieldUpdateOperationsInput | $Enums.M365UserActivityChangeField
    previousValue?: NullableStringFieldUpdateOperationsInput | string | null
    currentValue?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type M365UserActivityChangeCreateManyInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    userId: string
    executionId: string
    field: $Enums.M365UserActivityChangeField
    previousValue?: string | null
    currentValue?: string | null
  }

  export type M365UserActivityChangeUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executionId?: StringFieldUpdateOperationsInput | string
    field?: EnumM365UserActivityChangeFieldFieldUpdateOperationsInput | $Enums.M365UserActivityChangeField
    previousValue?: NullableStringFieldUpdateOperationsInput | string | null
    currentValue?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type M365UserActivityChangeUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    userId?: StringFieldUpdateOperationsInput | string
    executionId?: StringFieldUpdateOperationsInput | string
    field?: EnumM365UserActivityChangeFieldFieldUpdateOperationsInput | $Enums.M365UserActivityChangeField
    previousValue?: NullableStringFieldUpdateOperationsInput | string | null
    currentValue?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GradeConfigCreateInput = {
    id?: string
    name: string
    description?: string | null
    grades: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization?: OrganizationCreateNestedOneWithoutGradeConfigsInput
    cycles?: PerformanceCycleCreateNestedManyWithoutGradeConfigInput
  }

  export type GradeConfigUncheckedCreateInput = {
    id?: string
    name: string
    description?: string | null
    grades: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId?: string | null
    cycles?: PerformanceCycleUncheckedCreateNestedManyWithoutGradeConfigInput
  }

  export type GradeConfigUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneWithoutGradeConfigsNestedInput
    cycles?: PerformanceCycleUpdateManyWithoutGradeConfigNestedInput
  }

  export type GradeConfigUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    cycles?: PerformanceCycleUncheckedUpdateManyWithoutGradeConfigNestedInput
  }

  export type GradeConfigCreateManyInput = {
    id?: string
    name: string
    description?: string | null
    grades: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId?: string | null
  }

  export type GradeConfigUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GradeConfigUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PerformanceCycleCreateInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleCreateManyInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
  }

  export type PerformanceCycleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PerformanceCycleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type PerformanceResultCreateInput = {
    id?: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutResultsInput
    organization: OrganizationCreateNestedOneWithoutPerformanceResultsInput
    adjustmentLogs?: GradeAdjustmentLogCreateNestedManyWithoutResultInput
  }

  export type PerformanceResultUncheckedCreateInput = {
    id?: string
    cycleId: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    adjustmentLogs?: GradeAdjustmentLogUncheckedCreateNestedManyWithoutResultInput
  }

  export type PerformanceResultUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutResultsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceResultsNestedInput
    adjustmentLogs?: GradeAdjustmentLogUpdateManyWithoutResultNestedInput
  }

  export type PerformanceResultUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    adjustmentLogs?: GradeAdjustmentLogUncheckedUpdateManyWithoutResultNestedInput
  }

  export type PerformanceResultCreateManyInput = {
    id?: string
    cycleId: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
  }

  export type PerformanceResultUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PerformanceResultUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type KpiAssignmentCreateInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutKpiAssignmentsInput
    parent?: KpiAssignmentCreateNestedOneWithoutChildrenInput
    children?: KpiAssignmentCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentUncheckedCreateInput = {
    id?: string
    cycleId: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    parentId?: string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: KpiAssignmentUncheckedCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentUncheckedCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutKpiAssignmentsNestedInput
    parent?: KpiAssignmentUpdateOneWithoutChildrenNestedInput
    children?: KpiAssignmentUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: KpiAssignmentUncheckedUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUncheckedUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentCreateManyInput = {
    id?: string
    cycleId: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    parentId?: string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KpiAssignmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiAssignmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiDependencyCreateInput = {
    id?: string
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    sourceAssignment: KpiAssignmentCreateNestedOneWithoutOutgoingDependenciesInput
    targetAssignment?: KpiAssignmentCreateNestedOneWithoutIncomingDependenciesInput
  }

  export type KpiDependencyUncheckedCreateInput = {
    id?: string
    sourceAssignmentId: string
    targetAssignmentId?: string | null
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KpiDependencyUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    sourceAssignment?: KpiAssignmentUpdateOneRequiredWithoutOutgoingDependenciesNestedInput
    targetAssignment?: KpiAssignmentUpdateOneWithoutIncomingDependenciesNestedInput
  }

  export type KpiDependencyUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceAssignmentId?: StringFieldUpdateOperationsInput | string
    targetAssignmentId?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiDependencyCreateManyInput = {
    id?: string
    sourceAssignmentId: string
    targetAssignmentId?: string | null
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KpiDependencyUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiDependencyUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceAssignmentId?: StringFieldUpdateOperationsInput | string
    targetAssignmentId?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiAssessmentCreateInput = {
    id?: string
    status?: $Enums.KpiAssessmentStatus
    selfScore?: Decimal | DecimalJsLike | number | string | null
    completionNote?: string | null
    selfComment?: string | null
    selfEvaluatedAt?: Date | string | null
    managerScore?: Decimal | DecimalJsLike | number | string | null
    managerComment?: string | null
    managerId?: string | null
    managerEvaluatedAt?: Date | string | null
    finalScore?: Decimal | DecimalJsLike | number | string | null
    deletedAt?: Date | string | null
    assignment: KpiAssignmentCreateNestedOneWithoutAssessmentInput
  }

  export type KpiAssessmentUncheckedCreateInput = {
    id?: string
    assignmentId: string
    status?: $Enums.KpiAssessmentStatus
    selfScore?: Decimal | DecimalJsLike | number | string | null
    completionNote?: string | null
    selfComment?: string | null
    selfEvaluatedAt?: Date | string | null
    managerScore?: Decimal | DecimalJsLike | number | string | null
    managerComment?: string | null
    managerId?: string | null
    managerEvaluatedAt?: Date | string | null
    finalScore?: Decimal | DecimalJsLike | number | string | null
    deletedAt?: Date | string | null
  }

  export type KpiAssessmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumKpiAssessmentStatusFieldUpdateOperationsInput | $Enums.KpiAssessmentStatus
    selfScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    completionNote?: NullableStringFieldUpdateOperationsInput | string | null
    selfComment?: NullableStringFieldUpdateOperationsInput | string | null
    selfEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managerScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    managerComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    managerEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignment?: KpiAssignmentUpdateOneRequiredWithoutAssessmentNestedInput
  }

  export type KpiAssessmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    assignmentId?: StringFieldUpdateOperationsInput | string
    status?: EnumKpiAssessmentStatusFieldUpdateOperationsInput | $Enums.KpiAssessmentStatus
    selfScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    completionNote?: NullableStringFieldUpdateOperationsInput | string | null
    selfComment?: NullableStringFieldUpdateOperationsInput | string | null
    selfEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managerScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    managerComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    managerEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiAssessmentCreateManyInput = {
    id?: string
    assignmentId: string
    status?: $Enums.KpiAssessmentStatus
    selfScore?: Decimal | DecimalJsLike | number | string | null
    completionNote?: string | null
    selfComment?: string | null
    selfEvaluatedAt?: Date | string | null
    managerScore?: Decimal | DecimalJsLike | number | string | null
    managerComment?: string | null
    managerId?: string | null
    managerEvaluatedAt?: Date | string | null
    finalScore?: Decimal | DecimalJsLike | number | string | null
    deletedAt?: Date | string | null
  }

  export type KpiAssessmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumKpiAssessmentStatusFieldUpdateOperationsInput | $Enums.KpiAssessmentStatus
    selfScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    completionNote?: NullableStringFieldUpdateOperationsInput | string | null
    selfComment?: NullableStringFieldUpdateOperationsInput | string | null
    selfEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managerScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    managerComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    managerEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiAssessmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    assignmentId?: StringFieldUpdateOperationsInput | string
    status?: EnumKpiAssessmentStatusFieldUpdateOperationsInput | $Enums.KpiAssessmentStatus
    selfScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    completionNote?: NullableStringFieldUpdateOperationsInput | string | null
    selfComment?: NullableStringFieldUpdateOperationsInput | string | null
    selfEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managerScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    managerComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    managerEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type Evaluation360CreateInput = {
    id?: string
    targetId: string
    status?: $Enums.Evaluation360Status
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutEvaluationsInput
    template?: Evaluation360TemplateCreateNestedOneWithoutEvaluationsInput
    tasks?: EvaluationTaskCreateNestedManyWithoutEvaluationInput
  }

  export type Evaluation360UncheckedCreateInput = {
    id?: string
    cycleId: string
    targetId: string
    status?: $Enums.Evaluation360Status
    templateId?: string | null
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    tasks?: EvaluationTaskUncheckedCreateNestedManyWithoutEvaluationInput
  }

  export type Evaluation360UpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutEvaluationsNestedInput
    template?: Evaluation360TemplateUpdateOneWithoutEvaluationsNestedInput
    tasks?: EvaluationTaskUpdateManyWithoutEvaluationNestedInput
  }

  export type Evaluation360UncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tasks?: EvaluationTaskUncheckedUpdateManyWithoutEvaluationNestedInput
  }

  export type Evaluation360CreateManyInput = {
    id?: string
    cycleId: string
    targetId: string
    status?: $Enums.Evaluation360Status
    templateId?: string | null
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type Evaluation360UpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type Evaluation360UncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationTaskCreateInput = {
    id?: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status?: $Enums.EvaluationTaskStatus
    isAnonymous?: boolean
    submittedAt?: Date | string | null
    createdAt?: Date | string
    deletedAt?: Date | string | null
    evaluation: Evaluation360CreateNestedOneWithoutTasksInput
    responses?: EvaluationResponseCreateNestedManyWithoutTaskInput
  }

  export type EvaluationTaskUncheckedCreateInput = {
    id?: string
    evaluationId: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status?: $Enums.EvaluationTaskStatus
    isAnonymous?: boolean
    submittedAt?: Date | string | null
    createdAt?: Date | string
    deletedAt?: Date | string | null
    responses?: EvaluationResponseUncheckedCreateNestedManyWithoutTaskInput
  }

  export type EvaluationTaskUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    evaluation?: Evaluation360UpdateOneRequiredWithoutTasksNestedInput
    responses?: EvaluationResponseUpdateManyWithoutTaskNestedInput
  }

  export type EvaluationTaskUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluationId?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    responses?: EvaluationResponseUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type EvaluationTaskCreateManyInput = {
    id?: string
    evaluationId: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status?: $Enums.EvaluationTaskStatus
    isAnonymous?: boolean
    submittedAt?: Date | string | null
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type EvaluationTaskUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationTaskUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluationId?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationResponseCreateInput = {
    id?: string
    dimension: string
    score: Decimal | DecimalJsLike | number | string
    comment?: string | null
    deletedAt?: Date | string | null
    task: EvaluationTaskCreateNestedOneWithoutResponsesInput
  }

  export type EvaluationResponseUncheckedCreateInput = {
    id?: string
    taskId: string
    dimension: string
    score: Decimal | DecimalJsLike | number | string
    comment?: string | null
    deletedAt?: Date | string | null
  }

  export type EvaluationResponseUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    dimension?: StringFieldUpdateOperationsInput | string
    score?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    task?: EvaluationTaskUpdateOneRequiredWithoutResponsesNestedInput
  }

  export type EvaluationResponseUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    dimension?: StringFieldUpdateOperationsInput | string
    score?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationResponseCreateManyInput = {
    id?: string
    taskId: string
    dimension: string
    score: Decimal | DecimalJsLike | number | string
    comment?: string | null
    deletedAt?: Date | string | null
  }

  export type EvaluationResponseUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    dimension?: StringFieldUpdateOperationsInput | string
    score?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationResponseUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    dimension?: StringFieldUpdateOperationsInput | string
    score?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GradeAdjustmentLogCreateInput = {
    id?: string
    previousGradeCode: string
    newGradeCode: string
    reason: string
    adjustedBy: string
    adjustedAt?: Date | string
    deletedAt?: Date | string | null
    result: PerformanceResultCreateNestedOneWithoutAdjustmentLogsInput
  }

  export type GradeAdjustmentLogUncheckedCreateInput = {
    id?: string
    resultId: string
    previousGradeCode: string
    newGradeCode: string
    reason: string
    adjustedBy: string
    adjustedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type GradeAdjustmentLogUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    previousGradeCode?: StringFieldUpdateOperationsInput | string
    newGradeCode?: StringFieldUpdateOperationsInput | string
    reason?: StringFieldUpdateOperationsInput | string
    adjustedBy?: StringFieldUpdateOperationsInput | string
    adjustedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    result?: PerformanceResultUpdateOneRequiredWithoutAdjustmentLogsNestedInput
  }

  export type GradeAdjustmentLogUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    resultId?: StringFieldUpdateOperationsInput | string
    previousGradeCode?: StringFieldUpdateOperationsInput | string
    newGradeCode?: StringFieldUpdateOperationsInput | string
    reason?: StringFieldUpdateOperationsInput | string
    adjustedBy?: StringFieldUpdateOperationsInput | string
    adjustedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GradeAdjustmentLogCreateManyInput = {
    id?: string
    resultId: string
    previousGradeCode: string
    newGradeCode: string
    reason: string
    adjustedBy: string
    adjustedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type GradeAdjustmentLogUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    previousGradeCode?: StringFieldUpdateOperationsInput | string
    newGradeCode?: StringFieldUpdateOperationsInput | string
    reason?: StringFieldUpdateOperationsInput | string
    adjustedBy?: StringFieldUpdateOperationsInput | string
    adjustedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GradeAdjustmentLogUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    resultId?: StringFieldUpdateOperationsInput | string
    previousGradeCode?: StringFieldUpdateOperationsInput | string
    newGradeCode?: StringFieldUpdateOperationsInput | string
    reason?: StringFieldUpdateOperationsInput | string
    adjustedBy?: StringFieldUpdateOperationsInput | string
    adjustedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StrategicObjectiveCreateInput = {
    id?: string
    seq?: number
    name: string
    description?: string | null
    departmentId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutStrategicObjectivesInput
    assignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutObjectiveInput
  }

  export type StrategicObjectiveUncheckedCreateInput = {
    id?: string
    cycleId: string
    seq?: number
    name: string
    description?: string | null
    departmentId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    assignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutObjectiveInput
  }

  export type StrategicObjectiveUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutStrategicObjectivesNestedInput
    assignments?: StrategicObjectiveAssignmentUpdateManyWithoutObjectiveNestedInput
  }

  export type StrategicObjectiveUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutObjectiveNestedInput
  }

  export type StrategicObjectiveCreateManyInput = {
    id?: string
    cycleId: string
    seq?: number
    name: string
    description?: string | null
    departmentId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StrategicObjectiveUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StrategicObjectiveUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StrategicObjectiveAssignmentCreateInput = {
    id?: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
    objective: StrategicObjectiveCreateNestedOneWithoutAssignmentsInput
    assignee: UserCreateNestedOneWithoutStrategicObjectiveAssignmentsInput
  }

  export type StrategicObjectiveAssignmentUncheckedCreateInput = {
    id?: string
    objectiveId: string
    assigneeId: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StrategicObjectiveAssignmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    objective?: StrategicObjectiveUpdateOneRequiredWithoutAssignmentsNestedInput
    assignee?: UserUpdateOneRequiredWithoutStrategicObjectiveAssignmentsNestedInput
  }

  export type StrategicObjectiveAssignmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    objectiveId?: StringFieldUpdateOperationsInput | string
    assigneeId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StrategicObjectiveAssignmentCreateManyInput = {
    id?: string
    objectiveId: string
    assigneeId: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StrategicObjectiveAssignmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StrategicObjectiveAssignmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    objectiveId?: StringFieldUpdateOperationsInput | string
    assigneeId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type Evaluation360TemplateCreateInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    cycle?: PerformanceCycleCreateNestedOneWithoutE360TemplatesInput
    organization?: OrganizationCreateNestedOneWithoutEvaluation360TemplatesInput
    evaluations?: Evaluation360CreateNestedManyWithoutTemplateInput
  }

  export type Evaluation360TemplateUncheckedCreateInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycleId?: string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: string | null
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutTemplateInput
  }

  export type Evaluation360TemplateUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    cycle?: PerformanceCycleUpdateOneWithoutE360TemplatesNestedInput
    organization?: OrganizationUpdateOneWithoutEvaluation360TemplatesNestedInput
    evaluations?: Evaluation360UpdateManyWithoutTemplateNestedInput
  }

  export type Evaluation360TemplateUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycleId?: NullableStringFieldUpdateOperationsInput | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    evaluations?: Evaluation360UncheckedUpdateManyWithoutTemplateNestedInput
  }

  export type Evaluation360TemplateCreateManyInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycleId?: string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: string | null
  }

  export type Evaluation360TemplateUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
  }

  export type Evaluation360TemplateUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycleId?: NullableStringFieldUpdateOperationsInput | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type SiteCheckpointCreateInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutSiteCheckpointsCreatedInput
    events?: SiteAttendanceEventCreateNestedManyWithoutCheckpointInput
    dailySummaries?: SiteDailySummaryCreateNestedManyWithoutCheckpointInput
    sharedPartners?: SharedCheckinPartnerCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointUncheckedCreateInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: SiteAttendanceEventUncheckedCreateNestedManyWithoutCheckpointInput
    dailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutCheckpointInput
    sharedPartners?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutSiteCheckpointsCreatedNestedInput
    events?: SiteAttendanceEventUpdateManyWithoutCheckpointNestedInput
    dailySummaries?: SiteDailySummaryUpdateManyWithoutCheckpointNestedInput
    sharedPartners?: SharedCheckinPartnerUpdateManyWithoutCheckpointNestedInput
  }

  export type SiteCheckpointUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: SiteAttendanceEventUncheckedUpdateManyWithoutCheckpointNestedInput
    dailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutCheckpointNestedInput
    sharedPartners?: SharedCheckinPartnerUncheckedUpdateManyWithoutCheckpointNestedInput
  }

  export type SiteCheckpointCreateManyInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SiteCheckpointUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteCheckpointUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerCreateInput = {
    id?: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    checkpoint: SiteCheckpointCreateNestedOneWithoutSharedPartnersInput
    creator: UserCreateNestedOneWithoutSharedCheckinPartnersCreatedInput
    updater: UserCreateNestedOneWithoutSharedCheckinPartnersUpdatedInput
  }

  export type SharedCheckinPartnerUncheckedCreateInput = {
    id?: string
    checkpointId: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdBy: string
    updatedBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharedCheckinPartnerUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    checkpoint?: SiteCheckpointUpdateOneRequiredWithoutSharedPartnersNestedInput
    creator?: UserUpdateOneRequiredWithoutSharedCheckinPartnersCreatedNestedInput
    updater?: UserUpdateOneRequiredWithoutSharedCheckinPartnersUpdatedNestedInput
  }

  export type SharedCheckinPartnerUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerCreateManyInput = {
    id?: string
    checkpointId: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdBy: string
    updatedBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharedCheckinPartnerUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinTicketUsageCreateInput = {
    nonce: string
    usedAt?: Date | string
    expiresAt: Date | string
  }

  export type SharedCheckinTicketUsageUncheckedCreateInput = {
    nonce: string
    usedAt?: Date | string
    expiresAt: Date | string
  }

  export type SharedCheckinTicketUsageUpdateInput = {
    nonce?: StringFieldUpdateOperationsInput | string
    usedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinTicketUsageUncheckedUpdateInput = {
    nonce?: StringFieldUpdateOperationsInput | string
    usedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinTicketUsageCreateManyInput = {
    nonce: string
    usedAt?: Date | string
    expiresAt: Date | string
  }

  export type SharedCheckinTicketUsageUpdateManyMutationInput = {
    nonce?: StringFieldUpdateOperationsInput | string
    usedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinTicketUsageUncheckedUpdateManyInput = {
    nonce?: StringFieldUpdateOperationsInput | string
    usedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteAttendanceEventCreateInput = {
    id?: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
    checkpoint: SiteCheckpointCreateNestedOneWithoutEventsInput
    user: UserCreateNestedOneWithoutSiteAttendanceEventsInput
  }

  export type SiteAttendanceEventUncheckedCreateInput = {
    id?: string
    checkpointId: string
    userId: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
  }

  export type SiteAttendanceEventUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    checkpoint?: SiteCheckpointUpdateOneRequiredWithoutEventsNestedInput
    user?: UserUpdateOneRequiredWithoutSiteAttendanceEventsNestedInput
  }

  export type SiteAttendanceEventUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteAttendanceEventCreateManyInput = {
    id?: string
    checkpointId: string
    userId: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
  }

  export type SiteAttendanceEventUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteAttendanceEventUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteDailySummaryCreateInput = {
    id?: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
    checkpoint: SiteCheckpointCreateNestedOneWithoutDailySummariesInput
    user: UserCreateNestedOneWithoutSiteDailySummariesInput
  }

  export type SiteDailySummaryUncheckedCreateInput = {
    id?: string
    checkpointId: string
    userId: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
  }

  export type SiteDailySummaryUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    checkpoint?: SiteCheckpointUpdateOneRequiredWithoutDailySummariesNestedInput
    user?: UserUpdateOneRequiredWithoutSiteDailySummariesNestedInput
  }

  export type SiteDailySummaryUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteDailySummaryCreateManyInput = {
    id?: string
    checkpointId: string
    userId: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
  }

  export type SiteDailySummaryUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteDailySummaryUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketCreateInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    category: TicketCategoryCreateNestedOneWithoutTicketsInput
    assigneeGroup?: AssignmentGroupCreateNestedOneWithoutTicketsInput
    sla?: TicketSLACreateNestedOneWithoutTicketsInput
    parentTicket?: TicketCreateNestedOneWithoutChildTicketsInput
    childTickets?: TicketCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentCreateNestedManyWithoutTicketInput
    activities?: TicketActivityCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    childTickets?: TicketUncheckedCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentUncheckedCreateNestedManyWithoutTicketInput
    activities?: TicketActivityUncheckedCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    category?: TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput
    assigneeGroup?: AssignmentGroupUpdateOneWithoutTicketsNestedInput
    sla?: TicketSLAUpdateOneWithoutTicketsNestedInput
    parentTicket?: TicketUpdateOneWithoutChildTicketsNestedInput
    childTickets?: TicketUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childTickets?: TicketUncheckedUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUncheckedUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUncheckedUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketCreateManyInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
  }

  export type TicketUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketCategoryCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    defaultPriority?: $Enums.TicketPriority
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    parent?: TicketCategoryCreateNestedOneWithoutChildrenInput
    children?: TicketCategoryCreateNestedManyWithoutParentInput
    defaultAssigneeGroup?: AssignmentGroupCreateNestedOneWithoutCategoriesInput
    sla?: TicketSLACreateNestedOneWithoutCategoriesInput
    tickets?: TicketCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryUncheckedCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    parentId?: string | null
    defaultPriority?: $Enums.TicketPriority
    defaultAssigneeGroupId?: string | null
    slaId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    children?: TicketCategoryUncheckedCreateNestedManyWithoutParentInput
    tickets?: TicketUncheckedCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    parent?: TicketCategoryUpdateOneWithoutChildrenNestedInput
    children?: TicketCategoryUpdateManyWithoutParentNestedInput
    defaultAssigneeGroup?: AssignmentGroupUpdateOneWithoutCategoriesNestedInput
    sla?: TicketSLAUpdateOneWithoutCategoriesNestedInput
    tickets?: TicketUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    defaultAssigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    children?: TicketCategoryUncheckedUpdateManyWithoutParentNestedInput
    tickets?: TicketUncheckedUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryCreateManyInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    parentId?: string | null
    defaultPriority?: $Enums.TicketPriority
    defaultAssigneeGroupId?: string | null
    slaId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type TicketCategoryUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketCategoryUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    defaultAssigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketCommentCreateInput = {
    id?: string
    content: string
    type?: $Enums.CommentType
    isInternal?: boolean
    visibilityScope?: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds?: TicketCommentCreatementionedUserIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    ticket: TicketCreateNestedOneWithoutCommentsInput
    attachments?: TicketAttachmentCreateNestedManyWithoutCommentInput
  }

  export type TicketCommentUncheckedCreateInput = {
    id?: string
    ticketId: string
    content: string
    type?: $Enums.CommentType
    isInternal?: boolean
    visibilityScope?: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds?: TicketCommentCreatementionedUserIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutCommentInput
  }

  export type TicketCommentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ticket?: TicketUpdateOneRequiredWithoutCommentsNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutCommentNestedInput
  }

  export type TicketCommentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutCommentNestedInput
  }

  export type TicketCommentCreateManyInput = {
    id?: string
    ticketId: string
    content: string
    type?: $Enums.CommentType
    isInternal?: boolean
    visibilityScope?: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds?: TicketCommentCreatementionedUserIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type TicketCommentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketCommentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketAttachmentCreateInput = {
    id?: string
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
    ticket: TicketCreateNestedOneWithoutAttachmentsInput
    comment?: TicketCommentCreateNestedOneWithoutAttachmentsInput
  }

  export type TicketAttachmentUncheckedCreateInput = {
    id?: string
    ticketId: string
    commentId?: string | null
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
  }

  export type TicketAttachmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ticket?: TicketUpdateOneRequiredWithoutAttachmentsNestedInput
    comment?: TicketCommentUpdateOneWithoutAttachmentsNestedInput
  }

  export type TicketAttachmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    commentId?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketAttachmentCreateManyInput = {
    id?: string
    ticketId: string
    commentId?: string | null
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
  }

  export type TicketAttachmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketAttachmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    commentId?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketActivityCreateInput = {
    id?: string
    type: $Enums.ActivityType
    content: JsonNullValueInput | InputJsonValue
    operatorId?: string | null
    createdAt?: Date | string
    ticket: TicketCreateNestedOneWithoutActivitiesInput
  }

  export type TicketActivityUncheckedCreateInput = {
    id?: string
    ticketId: string
    type: $Enums.ActivityType
    content: JsonNullValueInput | InputJsonValue
    operatorId?: string | null
    createdAt?: Date | string
  }

  export type TicketActivityUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumActivityTypeFieldUpdateOperationsInput | $Enums.ActivityType
    content?: JsonNullValueInput | InputJsonValue
    operatorId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ticket?: TicketUpdateOneRequiredWithoutActivitiesNestedInput
  }

  export type TicketActivityUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    type?: EnumActivityTypeFieldUpdateOperationsInput | $Enums.ActivityType
    content?: JsonNullValueInput | InputJsonValue
    operatorId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketActivityCreateManyInput = {
    id?: string
    ticketId: string
    type: $Enums.ActivityType
    content: JsonNullValueInput | InputJsonValue
    operatorId?: string | null
    createdAt?: Date | string
  }

  export type TicketActivityUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumActivityTypeFieldUpdateOperationsInput | $Enums.ActivityType
    content?: JsonNullValueInput | InputJsonValue
    operatorId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketActivityUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    type?: EnumActivityTypeFieldUpdateOperationsInput | $Enums.ActivityType
    content?: JsonNullValueInput | InputJsonValue
    operatorId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketSLACreateInput = {
    id?: string
    name: string
    description?: string | null
    firstResponseTime: JsonNullValueInput | InputJsonValue
    resolutionTime: JsonNullValueInput | InputJsonValue
    businessHours: JsonNullValueInput | InputJsonValue
    excludeHolidays?: boolean
    holidayCalendarId?: string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: boolean
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    categories?: TicketCategoryCreateNestedManyWithoutSlaInput
    tickets?: TicketCreateNestedManyWithoutSlaInput
  }

  export type TicketSLAUncheckedCreateInput = {
    id?: string
    name: string
    description?: string | null
    firstResponseTime: JsonNullValueInput | InputJsonValue
    resolutionTime: JsonNullValueInput | InputJsonValue
    businessHours: JsonNullValueInput | InputJsonValue
    excludeHolidays?: boolean
    holidayCalendarId?: string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: boolean
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    categories?: TicketCategoryUncheckedCreateNestedManyWithoutSlaInput
    tickets?: TicketUncheckedCreateNestedManyWithoutSlaInput
  }

  export type TicketSLAUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    firstResponseTime?: JsonNullValueInput | InputJsonValue
    resolutionTime?: JsonNullValueInput | InputJsonValue
    businessHours?: JsonNullValueInput | InputJsonValue
    excludeHolidays?: BoolFieldUpdateOperationsInput | boolean
    holidayCalendarId?: NullableStringFieldUpdateOperationsInput | string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: BoolFieldUpdateOperationsInput | boolean
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    categories?: TicketCategoryUpdateManyWithoutSlaNestedInput
    tickets?: TicketUpdateManyWithoutSlaNestedInput
  }

  export type TicketSLAUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    firstResponseTime?: JsonNullValueInput | InputJsonValue
    resolutionTime?: JsonNullValueInput | InputJsonValue
    businessHours?: JsonNullValueInput | InputJsonValue
    excludeHolidays?: BoolFieldUpdateOperationsInput | boolean
    holidayCalendarId?: NullableStringFieldUpdateOperationsInput | string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: BoolFieldUpdateOperationsInput | boolean
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    categories?: TicketCategoryUncheckedUpdateManyWithoutSlaNestedInput
    tickets?: TicketUncheckedUpdateManyWithoutSlaNestedInput
  }

  export type TicketSLACreateManyInput = {
    id?: string
    name: string
    description?: string | null
    firstResponseTime: JsonNullValueInput | InputJsonValue
    resolutionTime: JsonNullValueInput | InputJsonValue
    businessHours: JsonNullValueInput | InputJsonValue
    excludeHolidays?: boolean
    holidayCalendarId?: string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: boolean
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type TicketSLAUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    firstResponseTime?: JsonNullValueInput | InputJsonValue
    resolutionTime?: JsonNullValueInput | InputJsonValue
    businessHours?: JsonNullValueInput | InputJsonValue
    excludeHolidays?: BoolFieldUpdateOperationsInput | boolean
    holidayCalendarId?: NullableStringFieldUpdateOperationsInput | string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: BoolFieldUpdateOperationsInput | boolean
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketSLAUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    firstResponseTime?: JsonNullValueInput | InputJsonValue
    resolutionTime?: JsonNullValueInput | InputJsonValue
    businessHours?: JsonNullValueInput | InputJsonValue
    excludeHolidays?: BoolFieldUpdateOperationsInput | boolean
    holidayCalendarId?: NullableStringFieldUpdateOperationsInput | string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: BoolFieldUpdateOperationsInput | boolean
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AssignmentGroupCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    memberIds?: AssignmentGroupCreatememberIdsInput | string[]
    managerId?: string | null
    skills?: AssignmentGroupCreateskillsInput | string[]
    assignmentStrategy?: $Enums.AssignmentStrategy
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    categories?: TicketCategoryCreateNestedManyWithoutDefaultAssigneeGroupInput
    tickets?: TicketCreateNestedManyWithoutAssigneeGroupInput
  }

  export type AssignmentGroupUncheckedCreateInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    memberIds?: AssignmentGroupCreatememberIdsInput | string[]
    managerId?: string | null
    skills?: AssignmentGroupCreateskillsInput | string[]
    assignmentStrategy?: $Enums.AssignmentStrategy
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    categories?: TicketCategoryUncheckedCreateNestedManyWithoutDefaultAssigneeGroupInput
    tickets?: TicketUncheckedCreateNestedManyWithoutAssigneeGroupInput
  }

  export type AssignmentGroupUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    memberIds?: AssignmentGroupUpdatememberIdsInput | string[]
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    skills?: AssignmentGroupUpdateskillsInput | string[]
    assignmentStrategy?: EnumAssignmentStrategyFieldUpdateOperationsInput | $Enums.AssignmentStrategy
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    categories?: TicketCategoryUpdateManyWithoutDefaultAssigneeGroupNestedInput
    tickets?: TicketUpdateManyWithoutAssigneeGroupNestedInput
  }

  export type AssignmentGroupUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    memberIds?: AssignmentGroupUpdatememberIdsInput | string[]
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    skills?: AssignmentGroupUpdateskillsInput | string[]
    assignmentStrategy?: EnumAssignmentStrategyFieldUpdateOperationsInput | $Enums.AssignmentStrategy
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    categories?: TicketCategoryUncheckedUpdateManyWithoutDefaultAssigneeGroupNestedInput
    tickets?: TicketUncheckedUpdateManyWithoutAssigneeGroupNestedInput
  }

  export type AssignmentGroupCreateManyInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    memberIds?: AssignmentGroupCreatememberIdsInput | string[]
    managerId?: string | null
    skills?: AssignmentGroupCreateskillsInput | string[]
    assignmentStrategy?: $Enums.AssignmentStrategy
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AssignmentGroupUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    memberIds?: AssignmentGroupUpdatememberIdsInput | string[]
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    skills?: AssignmentGroupUpdateskillsInput | string[]
    assignmentStrategy?: EnumAssignmentStrategyFieldUpdateOperationsInput | $Enums.AssignmentStrategy
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AssignmentGroupUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    memberIds?: AssignmentGroupUpdatememberIdsInput | string[]
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    skills?: AssignmentGroupUpdateskillsInput | string[]
    assignmentStrategy?: EnumAssignmentStrategyFieldUpdateOperationsInput | $Enums.AssignmentStrategy
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RobotModelCreateInput = {
    id?: string
    code: string
    name: string
    brand?: string | null
    description?: string | null
    imageUrl?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    skus?: RobotSkuCreateNestedManyWithoutModelInput
    robotUnits?: RobotUnitCreateNestedManyWithoutModelInput
  }

  export type RobotModelUncheckedCreateInput = {
    id?: string
    code: string
    name: string
    brand?: string | null
    description?: string | null
    imageUrl?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    skus?: RobotSkuUncheckedCreateNestedManyWithoutModelInput
    robotUnits?: RobotUnitUncheckedCreateNestedManyWithoutModelInput
  }

  export type RobotModelUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    skus?: RobotSkuUpdateManyWithoutModelNestedInput
    robotUnits?: RobotUnitUpdateManyWithoutModelNestedInput
  }

  export type RobotModelUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    skus?: RobotSkuUncheckedUpdateManyWithoutModelNestedInput
    robotUnits?: RobotUnitUncheckedUpdateManyWithoutModelNestedInput
  }

  export type RobotModelCreateManyInput = {
    id?: string
    code: string
    name: string
    brand?: string | null
    description?: string | null
    imageUrl?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotModelUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotModelUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotSkuCreateInput = {
    id?: string
    code: string
    name: string
    variant?: string | null
    defaultPrice?: Decimal | DecimalJsLike | number | string | null
    defaultCost?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    description?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutSkusInput
    robotUnits?: RobotUnitCreateNestedManyWithoutSkuInput
  }

  export type RobotSkuUncheckedCreateInput = {
    id?: string
    modelId: string
    code: string
    name: string
    variant?: string | null
    defaultPrice?: Decimal | DecimalJsLike | number | string | null
    defaultCost?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    description?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnits?: RobotUnitUncheckedCreateNestedManyWithoutSkuInput
  }

  export type RobotSkuUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutSkusNestedInput
    robotUnits?: RobotUnitUpdateManyWithoutSkuNestedInput
  }

  export type RobotSkuUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    modelId?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnits?: RobotUnitUncheckedUpdateManyWithoutSkuNestedInput
  }

  export type RobotSkuCreateManyInput = {
    id?: string
    modelId: string
    code: string
    name: string
    variant?: string | null
    defaultPrice?: Decimal | DecimalJsLike | number | string | null
    defaultCost?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    description?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotSkuUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotSkuUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    modelId?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotSystemConfigCreateInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type RobotSystemConfigUncheckedCreateInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type RobotSystemConfigUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type RobotSystemConfigUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type RobotSystemConfigCreateManyInput = {
    id?: string
    key: string
    value: JsonNullValueInput | InputJsonValue
    description?: string | null
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById?: string | null
  }

  export type RobotSystemConfigUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type RobotSystemConfigUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    value?: JsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type RobotUnitCreateInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitCreateManyInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotUnitUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitSnapshotCreateInput = {
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
    robotUnit: RobotUnitCreateNestedOneWithoutSnapshotInput
    lastEvent?: RobotLifecycleEventCreateNestedOneWithoutSnapshotsAsLastEventInput
    salesOrder?: SalesOrderCreateNestedOneWithoutSnapshotRefsInput
    deliveryRequest?: DeliveryRequestCreateNestedOneWithoutSnapshotRefsInput
  }

  export type RobotUnitSnapshotUncheckedCreateInput = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSalesOrderId?: string | null
    currentDeliveryRequestId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventId?: string | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type RobotUnitSnapshotUpdateInput = {
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
    robotUnit?: RobotUnitUpdateOneRequiredWithoutSnapshotNestedInput
    lastEvent?: RobotLifecycleEventUpdateOneWithoutSnapshotsAsLastEventNestedInput
    salesOrder?: SalesOrderUpdateOneWithoutSnapshotRefsNestedInput
    deliveryRequest?: DeliveryRequestUpdateOneWithoutSnapshotRefsNestedInput
  }

  export type RobotUnitSnapshotUncheckedUpdateInput = {
    robotUnitId?: StringFieldUpdateOperationsInput | string
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSalesOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    currentDeliveryRequestId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type RobotUnitSnapshotCreateManyInput = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSalesOrderId?: string | null
    currentDeliveryRequestId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventId?: string | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type RobotUnitSnapshotUpdateManyMutationInput = {
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type RobotUnitSnapshotUncheckedUpdateManyInput = {
    robotUnitId?: StringFieldUpdateOperationsInput | string
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSalesOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    currentDeliveryRequestId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type RobotLifecycleEventCreateInput = {
    id?: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage?: $Enums.RobotLifecycleStage | null
    toStage?: $Enums.RobotLifecycleStage | null
    fromLocationId?: string | null
    toLocationId?: string | null
    actorUserId?: string | null
    partnerId?: string | null
    customerId?: string | null
    relatedType?: $Enums.RobotEventRelatedType | null
    relatedId?: string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: string | null
    occurredAt: Date | string
    organizationId: string
    createdAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit: RobotUnitCreateNestedOneWithoutEventsInput
    snapshotsAsLastEvent?: RobotUnitSnapshotCreateNestedManyWithoutLastEventInput
  }

  export type RobotLifecycleEventUncheckedCreateInput = {
    id?: string
    robotUnitId: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage?: $Enums.RobotLifecycleStage | null
    toStage?: $Enums.RobotLifecycleStage | null
    fromLocationId?: string | null
    toLocationId?: string | null
    actorUserId?: string | null
    partnerId?: string | null
    customerId?: string | null
    relatedType?: $Enums.RobotEventRelatedType | null
    relatedId?: string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: string | null
    occurredAt: Date | string
    organizationId: string
    createdAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshotsAsLastEvent?: RobotUnitSnapshotUncheckedCreateNestedManyWithoutLastEventInput
  }

  export type RobotLifecycleEventUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneRequiredWithoutEventsNestedInput
    snapshotsAsLastEvent?: RobotUnitSnapshotUpdateManyWithoutLastEventNestedInput
  }

  export type RobotLifecycleEventUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshotsAsLastEvent?: RobotUnitSnapshotUncheckedUpdateManyWithoutLastEventNestedInput
  }

  export type RobotLifecycleEventCreateManyInput = {
    id?: string
    robotUnitId: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage?: $Enums.RobotLifecycleStage | null
    toStage?: $Enums.RobotLifecycleStage | null
    fromLocationId?: string | null
    toLocationId?: string | null
    actorUserId?: string | null
    partnerId?: string | null
    customerId?: string | null
    relatedType?: $Enums.RobotEventRelatedType | null
    relatedId?: string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: string | null
    occurredAt: Date | string
    organizationId: string
    createdAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotLifecycleEventUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotLifecycleEventUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PurchaseOrderCreateInput = {
    id?: string
    poNo: string
    sapPoNo?: string | null
    supplierId: string
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    status?: $Enums.PurchaseOrderStatus
    orderedAt: Date | string
    expectedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: PurchaseOrderLineCreateNestedManyWithoutPurchaseOrderInput
    robotUnits?: RobotUnitCreateNestedManyWithoutPurchaseOrderInput
  }

  export type PurchaseOrderUncheckedCreateInput = {
    id?: string
    poNo: string
    sapPoNo?: string | null
    supplierId: string
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    status?: $Enums.PurchaseOrderStatus
    orderedAt: Date | string
    expectedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: PurchaseOrderLineUncheckedCreateNestedManyWithoutPurchaseOrderInput
    robotUnits?: RobotUnitUncheckedCreateNestedManyWithoutPurchaseOrderInput
  }

  export type PurchaseOrderUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    poNo?: StringFieldUpdateOperationsInput | string
    sapPoNo?: NullableStringFieldUpdateOperationsInput | string | null
    supplierId?: StringFieldUpdateOperationsInput | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFieldUpdateOperationsInput | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: PurchaseOrderLineUpdateManyWithoutPurchaseOrderNestedInput
    robotUnits?: RobotUnitUpdateManyWithoutPurchaseOrderNestedInput
  }

  export type PurchaseOrderUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    poNo?: StringFieldUpdateOperationsInput | string
    sapPoNo?: NullableStringFieldUpdateOperationsInput | string | null
    supplierId?: StringFieldUpdateOperationsInput | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFieldUpdateOperationsInput | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: PurchaseOrderLineUncheckedUpdateManyWithoutPurchaseOrderNestedInput
    robotUnits?: RobotUnitUncheckedUpdateManyWithoutPurchaseOrderNestedInput
  }

  export type PurchaseOrderCreateManyInput = {
    id?: string
    poNo: string
    sapPoNo?: string | null
    supplierId: string
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    status?: $Enums.PurchaseOrderStatus
    orderedAt: Date | string
    expectedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type PurchaseOrderUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    poNo?: StringFieldUpdateOperationsInput | string
    sapPoNo?: NullableStringFieldUpdateOperationsInput | string | null
    supplierId?: StringFieldUpdateOperationsInput | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFieldUpdateOperationsInput | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PurchaseOrderUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    poNo?: StringFieldUpdateOperationsInput | string
    sapPoNo?: NullableStringFieldUpdateOperationsInput | string | null
    supplierId?: StringFieldUpdateOperationsInput | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFieldUpdateOperationsInput | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PurchaseOrderLineCreateInput = {
    id?: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    currencyCode: string
    defaultUsageType?: $Enums.RobotUsageType | null
    placeholderPattern?: string | null
    expectedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    purchaseOrder: PurchaseOrderCreateNestedOneWithoutLinesInput
    robotUnits?: RobotUnitCreateNestedManyWithoutPurchaseOrderLineInput
  }

  export type PurchaseOrderLineUncheckedCreateInput = {
    id?: string
    purchaseOrderId: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    currencyCode: string
    defaultUsageType?: $Enums.RobotUsageType | null
    placeholderPattern?: string | null
    expectedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    robotUnits?: RobotUnitUncheckedCreateNestedManyWithoutPurchaseOrderLineInput
  }

  export type PurchaseOrderLineUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    purchaseOrder?: PurchaseOrderUpdateOneRequiredWithoutLinesNestedInput
    robotUnits?: RobotUnitUpdateManyWithoutPurchaseOrderLineNestedInput
  }

  export type PurchaseOrderLineUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    purchaseOrderId?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    robotUnits?: RobotUnitUncheckedUpdateManyWithoutPurchaseOrderLineNestedInput
  }

  export type PurchaseOrderLineCreateManyInput = {
    id?: string
    purchaseOrderId: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    currencyCode: string
    defaultUsageType?: $Enums.RobotUsageType | null
    placeholderPattern?: string | null
    expectedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PurchaseOrderLineUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PurchaseOrderLineUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    purchaseOrderId?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SalesOrderCreateInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: SalesOrderLineCreateNestedManyWithoutSalesOrderInput
    deliveryRequests?: DeliveryRequestCreateNestedManyWithoutSalesOrderInput
    snapshotRefs?: RobotUnitSnapshotCreateNestedManyWithoutSalesOrderInput
  }

  export type SalesOrderUncheckedCreateInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: SalesOrderLineUncheckedCreateNestedManyWithoutSalesOrderInput
    deliveryRequests?: DeliveryRequestUncheckedCreateNestedManyWithoutSalesOrderInput
    snapshotRefs?: RobotUnitSnapshotUncheckedCreateNestedManyWithoutSalesOrderInput
  }

  export type SalesOrderUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: SalesOrderLineUpdateManyWithoutSalesOrderNestedInput
    deliveryRequests?: DeliveryRequestUpdateManyWithoutSalesOrderNestedInput
    snapshotRefs?: RobotUnitSnapshotUpdateManyWithoutSalesOrderNestedInput
  }

  export type SalesOrderUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: SalesOrderLineUncheckedUpdateManyWithoutSalesOrderNestedInput
    deliveryRequests?: DeliveryRequestUncheckedUpdateManyWithoutSalesOrderNestedInput
    snapshotRefs?: RobotUnitSnapshotUncheckedUpdateManyWithoutSalesOrderNestedInput
  }

  export type SalesOrderCreateManyInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type SalesOrderUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SalesOrderUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SalesOrderLineCreateInput = {
    id?: string
    lineNo: number
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    salesOrder: SalesOrderCreateNestedOneWithoutLinesInput
    robotUnit?: RobotUnitCreateNestedOneWithoutSalesOrderLinesInput
  }

  export type SalesOrderLineUncheckedCreateInput = {
    id?: string
    salesOrderId: string
    lineNo: number
    robotUnitId?: string | null
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SalesOrderLineUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    salesOrder?: SalesOrderUpdateOneRequiredWithoutLinesNestedInput
    robotUnit?: RobotUnitUpdateOneWithoutSalesOrderLinesNestedInput
  }

  export type SalesOrderLineUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    salesOrderId?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    robotUnitId?: NullableStringFieldUpdateOperationsInput | string | null
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SalesOrderLineCreateManyInput = {
    id?: string
    salesOrderId: string
    lineNo: number
    robotUnitId?: string | null
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SalesOrderLineUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SalesOrderLineUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    salesOrderId?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    robotUnitId?: NullableStringFieldUpdateOperationsInput | string | null
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DeliveryRequestCreateInput = {
    id?: string
    deliveryNo: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    salesOrder: SalesOrderCreateNestedOneWithoutDeliveryRequestsInput
    fulfillments?: DeliveryFulfillmentCreateNestedManyWithoutDeliveryRequestInput
    snapshotRefs?: RobotUnitSnapshotCreateNestedManyWithoutDeliveryRequestInput
  }

  export type DeliveryRequestUncheckedCreateInput = {
    id?: string
    deliveryNo: string
    salesOrderId: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    fulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutDeliveryRequestInput
    snapshotRefs?: RobotUnitSnapshotUncheckedCreateNestedManyWithoutDeliveryRequestInput
  }

  export type DeliveryRequestUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    salesOrder?: SalesOrderUpdateOneRequiredWithoutDeliveryRequestsNestedInput
    fulfillments?: DeliveryFulfillmentUpdateManyWithoutDeliveryRequestNestedInput
    snapshotRefs?: RobotUnitSnapshotUpdateManyWithoutDeliveryRequestNestedInput
  }

  export type DeliveryRequestUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    salesOrderId?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutDeliveryRequestNestedInput
    snapshotRefs?: RobotUnitSnapshotUncheckedUpdateManyWithoutDeliveryRequestNestedInput
  }

  export type DeliveryRequestCreateManyInput = {
    id?: string
    deliveryNo: string
    salesOrderId: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type DeliveryRequestUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DeliveryRequestUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    salesOrderId?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DeliveryFulfillmentCreateInput = {
    id?: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    deliveryRequest: DeliveryRequestCreateNestedOneWithoutFulfillmentsInput
    robotUnit: RobotUnitCreateNestedOneWithoutDeliveryFulfillmentsInput
  }

  export type DeliveryFulfillmentUncheckedCreateInput = {
    id?: string
    deliveryRequestId: string
    robotUnitId: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type DeliveryFulfillmentUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deliveryRequest?: DeliveryRequestUpdateOneRequiredWithoutFulfillmentsNestedInput
    robotUnit?: RobotUnitUpdateOneRequiredWithoutDeliveryFulfillmentsNestedInput
  }

  export type DeliveryFulfillmentUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryRequestId?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DeliveryFulfillmentCreateManyInput = {
    id?: string
    deliveryRequestId: string
    robotUnitId: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type DeliveryFulfillmentUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DeliveryFulfillmentUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryRequestId?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PaymentRecordCreateInput = {
    id?: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    direction: $Enums.PaymentDirection
    sapClearingDocNo?: string | null
    paymentMethod?: $Enums.PaymentMethod | null
    paymentStatus?: $Enums.PaymentStatus | null
    preDelContractStatus?: $Enums.PreDelContractStatus | null
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    depositTransferFormAttachmentId?: string | null
    depositTransferContractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit?: RobotUnitCreateNestedOneWithoutPaymentRecordsInput
    rentalScheduleEntries?: RentalPaymentScheduleCreateNestedManyWithoutPaidPaymentRecordInput
  }

  export type PaymentRecordUncheckedCreateInput = {
    id?: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    robotUnitId?: string | null
    direction: $Enums.PaymentDirection
    sapClearingDocNo?: string | null
    paymentMethod?: $Enums.PaymentMethod | null
    paymentStatus?: $Enums.PaymentStatus | null
    preDelContractStatus?: $Enums.PreDelContractStatus | null
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    depositTransferFormAttachmentId?: string | null
    depositTransferContractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    rentalScheduleEntries?: RentalPaymentScheduleUncheckedCreateNestedManyWithoutPaidPaymentRecordInput
  }

  export type PaymentRecordUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneWithoutPaymentRecordsNestedInput
    rentalScheduleEntries?: RentalPaymentScheduleUpdateManyWithoutPaidPaymentRecordNestedInput
  }

  export type PaymentRecordUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    robotUnitId?: NullableStringFieldUpdateOperationsInput | string | null
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rentalScheduleEntries?: RentalPaymentScheduleUncheckedUpdateManyWithoutPaidPaymentRecordNestedInput
  }

  export type PaymentRecordCreateManyInput = {
    id?: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    robotUnitId?: string | null
    direction: $Enums.PaymentDirection
    sapClearingDocNo?: string | null
    paymentMethod?: $Enums.PaymentMethod | null
    paymentStatus?: $Enums.PaymentStatus | null
    preDelContractStatus?: $Enums.PreDelContractStatus | null
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    depositTransferFormAttachmentId?: string | null
    depositTransferContractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type PaymentRecordUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PaymentRecordUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    robotUnitId?: NullableStringFieldUpdateOperationsInput | string | null
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type QualityLabelRecordCreateInput = {
    id?: string
    labelTypeCode: string
    status?: $Enums.QualityLabelStatus
    appliedAt?: Date | string | null
    verifiedAt?: Date | string | null
    appliedById?: string | null
    verifiedById?: string | null
    photoAttachmentId?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    robotUnit: RobotUnitCreateNestedOneWithoutQualityLabelsInput
  }

  export type QualityLabelRecordUncheckedCreateInput = {
    id?: string
    robotUnitId: string
    labelTypeCode: string
    status?: $Enums.QualityLabelStatus
    appliedAt?: Date | string | null
    verifiedAt?: Date | string | null
    appliedById?: string | null
    verifiedById?: string | null
    photoAttachmentId?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type QualityLabelRecordUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelTypeCode?: StringFieldUpdateOperationsInput | string
    status?: EnumQualityLabelStatusFieldUpdateOperationsInput | $Enums.QualityLabelStatus
    appliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    verifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    appliedById?: NullableStringFieldUpdateOperationsInput | string | null
    verifiedById?: NullableStringFieldUpdateOperationsInput | string | null
    photoAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    robotUnit?: RobotUnitUpdateOneRequiredWithoutQualityLabelsNestedInput
  }

  export type QualityLabelRecordUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    labelTypeCode?: StringFieldUpdateOperationsInput | string
    status?: EnumQualityLabelStatusFieldUpdateOperationsInput | $Enums.QualityLabelStatus
    appliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    verifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    appliedById?: NullableStringFieldUpdateOperationsInput | string | null
    verifiedById?: NullableStringFieldUpdateOperationsInput | string | null
    photoAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type QualityLabelRecordCreateManyInput = {
    id?: string
    robotUnitId: string
    labelTypeCode: string
    status?: $Enums.QualityLabelStatus
    appliedAt?: Date | string | null
    verifiedAt?: Date | string | null
    appliedById?: string | null
    verifiedById?: string | null
    photoAttachmentId?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type QualityLabelRecordUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelTypeCode?: StringFieldUpdateOperationsInput | string
    status?: EnumQualityLabelStatusFieldUpdateOperationsInput | $Enums.QualityLabelStatus
    appliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    verifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    appliedById?: NullableStringFieldUpdateOperationsInput | string | null
    verifiedById?: NullableStringFieldUpdateOperationsInput | string | null
    photoAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type QualityLabelRecordUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    labelTypeCode?: StringFieldUpdateOperationsInput | string
    status?: EnumQualityLabelStatusFieldUpdateOperationsInput | $Enums.QualityLabelStatus
    appliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    verifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    appliedById?: NullableStringFieldUpdateOperationsInput | string | null
    verifiedById?: NullableStringFieldUpdateOperationsInput | string | null
    photoAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type RobotPackageReadinessCreateInput = {
    id?: string
    specialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    readyAt?: Date | string | null
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    robotUnit: RobotUnitCreateNestedOneWithoutPackageReadinessInput
  }

  export type RobotPackageReadinessUncheckedCreateInput = {
    id?: string
    robotUnitId: string
    specialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    readyAt?: Date | string | null
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type RobotPackageReadinessUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    specialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    readyAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    hasRobot?: BoolFieldUpdateOperationsInput | boolean
    hasBattery?: BoolFieldUpdateOperationsInput | boolean
    hasRemote?: BoolFieldUpdateOperationsInput | boolean
    hasUsaPowerCable?: BoolFieldUpdateOperationsInput | boolean
    hasCnCableWithAdapter?: BoolFieldUpdateOperationsInput | boolean
    hasPowerSupply?: BoolFieldUpdateOperationsInput | boolean
    hasChargingDock?: BoolFieldUpdateOperationsInput | boolean
    hasFootPads?: BoolFieldUpdateOperationsInput | boolean
    hasToolsKit?: BoolFieldUpdateOperationsInput | boolean
    hasPaperwork?: BoolFieldUpdateOperationsInput | boolean
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    robotUnit?: RobotUnitUpdateOneRequiredWithoutPackageReadinessNestedInput
  }

  export type RobotPackageReadinessUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    specialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    readyAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    hasRobot?: BoolFieldUpdateOperationsInput | boolean
    hasBattery?: BoolFieldUpdateOperationsInput | boolean
    hasRemote?: BoolFieldUpdateOperationsInput | boolean
    hasUsaPowerCable?: BoolFieldUpdateOperationsInput | boolean
    hasCnCableWithAdapter?: BoolFieldUpdateOperationsInput | boolean
    hasPowerSupply?: BoolFieldUpdateOperationsInput | boolean
    hasChargingDock?: BoolFieldUpdateOperationsInput | boolean
    hasFootPads?: BoolFieldUpdateOperationsInput | boolean
    hasToolsKit?: BoolFieldUpdateOperationsInput | boolean
    hasPaperwork?: BoolFieldUpdateOperationsInput | boolean
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type RobotPackageReadinessCreateManyInput = {
    id?: string
    robotUnitId: string
    specialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    readyAt?: Date | string | null
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type RobotPackageReadinessUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    specialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    readyAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    hasRobot?: BoolFieldUpdateOperationsInput | boolean
    hasBattery?: BoolFieldUpdateOperationsInput | boolean
    hasRemote?: BoolFieldUpdateOperationsInput | boolean
    hasUsaPowerCable?: BoolFieldUpdateOperationsInput | boolean
    hasCnCableWithAdapter?: BoolFieldUpdateOperationsInput | boolean
    hasPowerSupply?: BoolFieldUpdateOperationsInput | boolean
    hasChargingDock?: BoolFieldUpdateOperationsInput | boolean
    hasFootPads?: BoolFieldUpdateOperationsInput | boolean
    hasToolsKit?: BoolFieldUpdateOperationsInput | boolean
    hasPaperwork?: BoolFieldUpdateOperationsInput | boolean
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type RobotPackageReadinessUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    specialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    readyAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    hasRobot?: BoolFieldUpdateOperationsInput | boolean
    hasBattery?: BoolFieldUpdateOperationsInput | boolean
    hasRemote?: BoolFieldUpdateOperationsInput | boolean
    hasUsaPowerCable?: BoolFieldUpdateOperationsInput | boolean
    hasCnCableWithAdapter?: BoolFieldUpdateOperationsInput | boolean
    hasPowerSupply?: BoolFieldUpdateOperationsInput | boolean
    hasChargingDock?: BoolFieldUpdateOperationsInput | boolean
    hasFootPads?: BoolFieldUpdateOperationsInput | boolean
    hasToolsKit?: BoolFieldUpdateOperationsInput | boolean
    hasPaperwork?: BoolFieldUpdateOperationsInput | boolean
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type InspectionRecordCreateInput = {
    id?: string
    inspectionNo: number
    inspectedAt: Date | string
    inspectorId?: string | null
    issue?: string | null
    issueTagCode?: string | null
    resolvedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    robotUnit: RobotUnitCreateNestedOneWithoutInspectionsInput
  }

  export type InspectionRecordUncheckedCreateInput = {
    id?: string
    robotUnitId: string
    inspectionNo: number
    inspectedAt: Date | string
    inspectorId?: string | null
    issue?: string | null
    issueTagCode?: string | null
    resolvedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type InspectionRecordUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    inspectionNo?: IntFieldUpdateOperationsInput | number
    inspectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inspectorId?: NullableStringFieldUpdateOperationsInput | string | null
    issue?: NullableStringFieldUpdateOperationsInput | string | null
    issueTagCode?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    robotUnit?: RobotUnitUpdateOneRequiredWithoutInspectionsNestedInput
  }

  export type InspectionRecordUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    inspectionNo?: IntFieldUpdateOperationsInput | number
    inspectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inspectorId?: NullableStringFieldUpdateOperationsInput | string | null
    issue?: NullableStringFieldUpdateOperationsInput | string | null
    issueTagCode?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type InspectionRecordCreateManyInput = {
    id?: string
    robotUnitId: string
    inspectionNo: number
    inspectedAt: Date | string
    inspectorId?: string | null
    issue?: string | null
    issueTagCode?: string | null
    resolvedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type InspectionRecordUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    inspectionNo?: IntFieldUpdateOperationsInput | number
    inspectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inspectorId?: NullableStringFieldUpdateOperationsInput | string | null
    issue?: NullableStringFieldUpdateOperationsInput | string | null
    issueTagCode?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type InspectionRecordUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    inspectionNo?: IntFieldUpdateOperationsInput | number
    inspectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inspectorId?: NullableStringFieldUpdateOperationsInput | string | null
    issue?: NullableStringFieldUpdateOperationsInput | string | null
    issueTagCode?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type LogisticsLegCreateInput = {
    id?: string
    legNo: number
    fromLocationId?: string | null
    toLocationId?: string | null
    departedAt?: Date | string | null
    arrivedAt?: Date | string | null
    logisticsStatus: $Enums.LogisticsStatus
    importDeclarationTypeCode?: string | null
    tariffTypeCode?: string | null
    shippingReceiptAttachmentId?: string | null
    additionalNotes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    robotUnit: RobotUnitCreateNestedOneWithoutLogisticsLegsInput
  }

  export type LogisticsLegUncheckedCreateInput = {
    id?: string
    robotUnitId: string
    legNo: number
    fromLocationId?: string | null
    toLocationId?: string | null
    departedAt?: Date | string | null
    arrivedAt?: Date | string | null
    logisticsStatus: $Enums.LogisticsStatus
    importDeclarationTypeCode?: string | null
    tariffTypeCode?: string | null
    shippingReceiptAttachmentId?: string | null
    additionalNotes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type LogisticsLegUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    legNo?: IntFieldUpdateOperationsInput | number
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    departedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    arrivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFieldUpdateOperationsInput | $Enums.LogisticsStatus
    importDeclarationTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    tariffTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    shippingReceiptAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    additionalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    robotUnit?: RobotUnitUpdateOneRequiredWithoutLogisticsLegsNestedInput
  }

  export type LogisticsLegUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    legNo?: IntFieldUpdateOperationsInput | number
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    departedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    arrivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFieldUpdateOperationsInput | $Enums.LogisticsStatus
    importDeclarationTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    tariffTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    shippingReceiptAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    additionalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type LogisticsLegCreateManyInput = {
    id?: string
    robotUnitId: string
    legNo: number
    fromLocationId?: string | null
    toLocationId?: string | null
    departedAt?: Date | string | null
    arrivedAt?: Date | string | null
    logisticsStatus: $Enums.LogisticsStatus
    importDeclarationTypeCode?: string | null
    tariffTypeCode?: string | null
    shippingReceiptAttachmentId?: string | null
    additionalNotes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type LogisticsLegUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    legNo?: IntFieldUpdateOperationsInput | number
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    departedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    arrivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFieldUpdateOperationsInput | $Enums.LogisticsStatus
    importDeclarationTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    tariffTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    shippingReceiptAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    additionalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type LogisticsLegUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    legNo?: IntFieldUpdateOperationsInput | number
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    departedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    arrivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFieldUpdateOperationsInput | $Enums.LogisticsStatus
    importDeclarationTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    tariffTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    shippingReceiptAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    additionalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type ComplianceCheckCreateInput = {
    id?: string
    dateReady?: Date | string | null
    stickerStatus?: $Enums.StickerStatus | null
    fccStatus?: $Enums.FccStatus | null
    complianceNotes?: string | null
    lastUpdatedAt?: Date | string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    robotUnit: RobotUnitCreateNestedOneWithoutComplianceCheckInput
  }

  export type ComplianceCheckUncheckedCreateInput = {
    id?: string
    robotUnitId: string
    dateReady?: Date | string | null
    stickerStatus?: $Enums.StickerStatus | null
    fccStatus?: $Enums.FccStatus | null
    complianceNotes?: string | null
    lastUpdatedAt?: Date | string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type ComplianceCheckUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    dateReady?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    stickerStatus?: NullableEnumStickerStatusFieldUpdateOperationsInput | $Enums.StickerStatus | null
    fccStatus?: NullableEnumFccStatusFieldUpdateOperationsInput | $Enums.FccStatus | null
    complianceNotes?: NullableStringFieldUpdateOperationsInput | string | null
    lastUpdatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    robotUnit?: RobotUnitUpdateOneRequiredWithoutComplianceCheckNestedInput
  }

  export type ComplianceCheckUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    dateReady?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    stickerStatus?: NullableEnumStickerStatusFieldUpdateOperationsInput | $Enums.StickerStatus | null
    fccStatus?: NullableEnumFccStatusFieldUpdateOperationsInput | $Enums.FccStatus | null
    complianceNotes?: NullableStringFieldUpdateOperationsInput | string | null
    lastUpdatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type ComplianceCheckCreateManyInput = {
    id?: string
    robotUnitId: string
    dateReady?: Date | string | null
    stickerStatus?: $Enums.StickerStatus | null
    fccStatus?: $Enums.FccStatus | null
    complianceNotes?: string | null
    lastUpdatedAt?: Date | string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type ComplianceCheckUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    dateReady?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    stickerStatus?: NullableEnumStickerStatusFieldUpdateOperationsInput | $Enums.StickerStatus | null
    fccStatus?: NullableEnumFccStatusFieldUpdateOperationsInput | $Enums.FccStatus | null
    complianceNotes?: NullableStringFieldUpdateOperationsInput | string | null
    lastUpdatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type ComplianceCheckUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    dateReady?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    stickerStatus?: NullableEnumStickerStatusFieldUpdateOperationsInput | $Enums.StickerStatus | null
    fccStatus?: NullableEnumFccStatusFieldUpdateOperationsInput | $Enums.FccStatus | null
    complianceNotes?: NullableStringFieldUpdateOperationsInput | string | null
    lastUpdatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type RentalAgreementCreateInput = {
    id?: string
    customerId: string
    startAt: Date | string
    endAt: Date | string
    periodMonths: number
    monthlyRate: Decimal | DecimalJsLike | number | string
    currencyCode: string
    status?: $Enums.RentalAgreementStatus
    contractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit: RobotUnitCreateNestedOneWithoutRentalAgreementsInput
    schedules?: RentalPaymentScheduleCreateNestedManyWithoutRentalAgreementInput
  }

  export type RentalAgreementUncheckedCreateInput = {
    id?: string
    robotUnitId: string
    customerId: string
    startAt: Date | string
    endAt: Date | string
    periodMonths: number
    monthlyRate: Decimal | DecimalJsLike | number | string
    currencyCode: string
    status?: $Enums.RentalAgreementStatus
    contractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    schedules?: RentalPaymentScheduleUncheckedCreateNestedManyWithoutRentalAgreementInput
  }

  export type RentalAgreementUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneRequiredWithoutRentalAgreementsNestedInput
    schedules?: RentalPaymentScheduleUpdateManyWithoutRentalAgreementNestedInput
  }

  export type RentalAgreementUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    schedules?: RentalPaymentScheduleUncheckedUpdateManyWithoutRentalAgreementNestedInput
  }

  export type RentalAgreementCreateManyInput = {
    id?: string
    robotUnitId: string
    customerId: string
    startAt: Date | string
    endAt: Date | string
    periodMonths: number
    monthlyRate: Decimal | DecimalJsLike | number | string
    currencyCode: string
    status?: $Enums.RentalAgreementStatus
    contractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RentalAgreementUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RentalAgreementUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RentalPaymentScheduleCreateInput = {
    id?: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    rentalAgreement: RentalAgreementCreateNestedOneWithoutSchedulesInput
    paidPaymentRecord?: PaymentRecordCreateNestedOneWithoutRentalScheduleEntriesInput
  }

  export type RentalPaymentScheduleUncheckedCreateInput = {
    id?: string
    rentalAgreementId: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidPaymentRecordId?: string | null
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RentalPaymentScheduleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    rentalAgreement?: RentalAgreementUpdateOneRequiredWithoutSchedulesNestedInput
    paidPaymentRecord?: PaymentRecordUpdateOneWithoutRentalScheduleEntriesNestedInput
  }

  export type RentalPaymentScheduleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    rentalAgreementId?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidPaymentRecordId?: NullableStringFieldUpdateOperationsInput | string | null
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RentalPaymentScheduleCreateManyInput = {
    id?: string
    rentalAgreementId: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidPaymentRecordId?: string | null
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RentalPaymentScheduleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RentalPaymentScheduleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    rentalAgreementId?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidPaymentRecordId?: NullableStringFieldUpdateOperationsInput | string | null
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceTicketCreateInput = {
    id?: string
    ticketNo: string
    customerId?: string | null
    issueTypeCode: string
    severity?: $Enums.TicketSeverity
    status?: $Enums.ServiceTicketStatus
    serviceRecord?: string | null
    customerFeedback?: string | null
    openedAt: Date | string
    openedById: string
    closedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit: RobotUnitCreateNestedOneWithoutServiceTicketsInput
    activities?: ServiceTicketActivityCreateNestedManyWithoutTicketInput
  }

  export type ServiceTicketUncheckedCreateInput = {
    id?: string
    ticketNo: string
    robotUnitId: string
    customerId?: string | null
    issueTypeCode: string
    severity?: $Enums.TicketSeverity
    status?: $Enums.ServiceTicketStatus
    serviceRecord?: string | null
    customerFeedback?: string | null
    openedAt: Date | string
    openedById: string
    closedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    activities?: ServiceTicketActivityUncheckedCreateNestedManyWithoutTicketInput
  }

  export type ServiceTicketUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneRequiredWithoutServiceTicketsNestedInput
    activities?: ServiceTicketActivityUpdateManyWithoutTicketNestedInput
  }

  export type ServiceTicketUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    activities?: ServiceTicketActivityUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type ServiceTicketCreateManyInput = {
    id?: string
    ticketNo: string
    robotUnitId: string
    customerId?: string | null
    issueTypeCode: string
    severity?: $Enums.TicketSeverity
    status?: $Enums.ServiceTicketStatus
    serviceRecord?: string | null
    customerFeedback?: string | null
    openedAt: Date | string
    openedById: string
    closedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type ServiceTicketUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ServiceTicketUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ServiceTicketActivityCreateInput = {
    id?: string
    activityType: $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById: string
    occurredAt: Date | string
    createdAt?: Date | string
    ticket: ServiceTicketCreateNestedOneWithoutActivitiesInput
  }

  export type ServiceTicketActivityUncheckedCreateInput = {
    id?: string
    ticketId: string
    activityType: $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById: string
    occurredAt: Date | string
    createdAt?: Date | string
  }

  export type ServiceTicketActivityUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    activityType?: EnumServiceTicketActivityTypeFieldUpdateOperationsInput | $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ticket?: ServiceTicketUpdateOneRequiredWithoutActivitiesNestedInput
  }

  export type ServiceTicketActivityUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    activityType?: EnumServiceTicketActivityTypeFieldUpdateOperationsInput | $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceTicketActivityCreateManyInput = {
    id?: string
    ticketId: string
    activityType: $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById: string
    occurredAt: Date | string
    createdAt?: Date | string
  }

  export type ServiceTicketActivityUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    activityType?: EnumServiceTicketActivityTypeFieldUpdateOperationsInput | $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceTicketActivityUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    activityType?: EnumServiceTicketActivityTypeFieldUpdateOperationsInput | $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RobotImportAuditCreateInput = {
    id?: string
    sources?: RobotImportAuditCreatesourcesInput | string[]
    conflictCount?: number
    recordStatus: $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt: Date | string
    importBatch?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit: RobotUnitCreateNestedOneWithoutImportAuditInput
  }

  export type RobotImportAuditUncheckedCreateInput = {
    id?: string
    robotUnitId: string
    sources?: RobotImportAuditCreatesourcesInput | string[]
    conflictCount?: number
    recordStatus: $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt: Date | string
    importBatch?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotImportAuditUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    sources?: RobotImportAuditUpdatesourcesInput | string[]
    conflictCount?: IntFieldUpdateOperationsInput | number
    recordStatus?: EnumImportRecordStatusFieldUpdateOperationsInput | $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    importBatch?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneRequiredWithoutImportAuditNestedInput
  }

  export type RobotImportAuditUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    sources?: RobotImportAuditUpdatesourcesInput | string[]
    conflictCount?: IntFieldUpdateOperationsInput | number
    recordStatus?: EnumImportRecordStatusFieldUpdateOperationsInput | $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    importBatch?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotImportAuditCreateManyInput = {
    id?: string
    robotUnitId: string
    sources?: RobotImportAuditCreatesourcesInput | string[]
    conflictCount?: number
    recordStatus: $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt: Date | string
    importBatch?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotImportAuditUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    sources?: RobotImportAuditUpdatesourcesInput | string[]
    conflictCount?: IntFieldUpdateOperationsInput | number
    recordStatus?: EnumImportRecordStatusFieldUpdateOperationsInput | $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    importBatch?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotImportAuditUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    sources?: RobotImportAuditUpdatesourcesInput | string[]
    conflictCount?: IntFieldUpdateOperationsInput | number
    recordStatus?: EnumImportRecordStatusFieldUpdateOperationsInput | $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    importBatch?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ImportBatchCreateInput = {
    id?: string
    type: $Enums.ImportBatchType
    status?: $Enums.ImportBatchStatus
    fileName: string
    fileHash: string
    templateSchemaHash: string
    totalRows?: number
    successRows?: number
    errorRows?: number
    warningRows?: number
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    confirmedById?: string | null
    confirmedAt?: Date | string | null
    clientIp?: string | null
    userAgent?: string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    entries?: ImportBatchEntryCreateNestedManyWithoutBatchInput
  }

  export type ImportBatchUncheckedCreateInput = {
    id?: string
    type: $Enums.ImportBatchType
    status?: $Enums.ImportBatchStatus
    fileName: string
    fileHash: string
    templateSchemaHash: string
    totalRows?: number
    successRows?: number
    errorRows?: number
    warningRows?: number
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    confirmedById?: string | null
    confirmedAt?: Date | string | null
    clientIp?: string | null
    userAgent?: string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    entries?: ImportBatchEntryUncheckedCreateNestedManyWithoutBatchInput
  }

  export type ImportBatchUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumImportBatchTypeFieldUpdateOperationsInput | $Enums.ImportBatchType
    status?: EnumImportBatchStatusFieldUpdateOperationsInput | $Enums.ImportBatchStatus
    fileName?: StringFieldUpdateOperationsInput | string
    fileHash?: StringFieldUpdateOperationsInput | string
    templateSchemaHash?: StringFieldUpdateOperationsInput | string
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    errorRows?: IntFieldUpdateOperationsInput | number
    warningRows?: IntFieldUpdateOperationsInput | number
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmedById?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    entries?: ImportBatchEntryUpdateManyWithoutBatchNestedInput
  }

  export type ImportBatchUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumImportBatchTypeFieldUpdateOperationsInput | $Enums.ImportBatchType
    status?: EnumImportBatchStatusFieldUpdateOperationsInput | $Enums.ImportBatchStatus
    fileName?: StringFieldUpdateOperationsInput | string
    fileHash?: StringFieldUpdateOperationsInput | string
    templateSchemaHash?: StringFieldUpdateOperationsInput | string
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    errorRows?: IntFieldUpdateOperationsInput | number
    warningRows?: IntFieldUpdateOperationsInput | number
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmedById?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    entries?: ImportBatchEntryUncheckedUpdateManyWithoutBatchNestedInput
  }

  export type ImportBatchCreateManyInput = {
    id?: string
    type: $Enums.ImportBatchType
    status?: $Enums.ImportBatchStatus
    fileName: string
    fileHash: string
    templateSchemaHash: string
    totalRows?: number
    successRows?: number
    errorRows?: number
    warningRows?: number
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    confirmedById?: string | null
    confirmedAt?: Date | string | null
    clientIp?: string | null
    userAgent?: string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type ImportBatchUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumImportBatchTypeFieldUpdateOperationsInput | $Enums.ImportBatchType
    status?: EnumImportBatchStatusFieldUpdateOperationsInput | $Enums.ImportBatchStatus
    fileName?: StringFieldUpdateOperationsInput | string
    fileHash?: StringFieldUpdateOperationsInput | string
    templateSchemaHash?: StringFieldUpdateOperationsInput | string
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    errorRows?: IntFieldUpdateOperationsInput | number
    warningRows?: IntFieldUpdateOperationsInput | number
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmedById?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ImportBatchUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumImportBatchTypeFieldUpdateOperationsInput | $Enums.ImportBatchType
    status?: EnumImportBatchStatusFieldUpdateOperationsInput | $Enums.ImportBatchStatus
    fileName?: StringFieldUpdateOperationsInput | string
    fileHash?: StringFieldUpdateOperationsInput | string
    templateSchemaHash?: StringFieldUpdateOperationsInput | string
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    errorRows?: IntFieldUpdateOperationsInput | number
    warningRows?: IntFieldUpdateOperationsInput | number
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmedById?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ImportBatchEntryCreateInput = {
    id?: string
    rowNo: number
    status: $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryCreateentityIdsInput | string[]
    payload: JsonNullValueInput | InputJsonValue
    payloadHash: string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    deletedAt?: Date | string | null
    batch: ImportBatchCreateNestedOneWithoutEntriesInput
  }

  export type ImportBatchEntryUncheckedCreateInput = {
    id?: string
    batchId: string
    rowNo: number
    status: $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryCreateentityIdsInput | string[]
    payload: JsonNullValueInput | InputJsonValue
    payloadHash: string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ImportBatchEntryUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    rowNo?: IntFieldUpdateOperationsInput | number
    status?: EnumImportEntryStatusFieldUpdateOperationsInput | $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryUpdateentityIdsInput | string[]
    payload?: JsonNullValueInput | InputJsonValue
    payloadHash?: StringFieldUpdateOperationsInput | string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    batch?: ImportBatchUpdateOneRequiredWithoutEntriesNestedInput
  }

  export type ImportBatchEntryUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    batchId?: StringFieldUpdateOperationsInput | string
    rowNo?: IntFieldUpdateOperationsInput | number
    status?: EnumImportEntryStatusFieldUpdateOperationsInput | $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryUpdateentityIdsInput | string[]
    payload?: JsonNullValueInput | InputJsonValue
    payloadHash?: StringFieldUpdateOperationsInput | string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ImportBatchEntryCreateManyInput = {
    id?: string
    batchId: string
    rowNo: number
    status: $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryCreateentityIdsInput | string[]
    payload: JsonNullValueInput | InputJsonValue
    payloadHash: string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ImportBatchEntryUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    rowNo?: IntFieldUpdateOperationsInput | number
    status?: EnumImportEntryStatusFieldUpdateOperationsInput | $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryUpdateentityIdsInput | string[]
    payload?: JsonNullValueInput | InputJsonValue
    payloadHash?: StringFieldUpdateOperationsInput | string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ImportBatchEntryUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    batchId?: StringFieldUpdateOperationsInput | string
    rowNo?: IntFieldUpdateOperationsInput | number
    status?: EnumImportEntryStatusFieldUpdateOperationsInput | $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryUpdateentityIdsInput | string[]
    payload?: JsonNullValueInput | InputJsonValue
    payloadHash?: StringFieldUpdateOperationsInput | string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UuidFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedUuidFilter<$PrismaModel> | string
  }

  export type StringFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringFilter<$PrismaModel> | string
  }

  export type StringNullableFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringNullableFilter<$PrismaModel> | string | null
  }

  export type IntFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntFilter<$PrismaModel> | number
  }

  export type UuidNullableFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedUuidNullableFilter<$PrismaModel> | string | null
  }

  export type EnumProcessStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ProcessStatus | EnumProcessStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ProcessStatus[] | ListEnumProcessStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ProcessStatus[] | ListEnumProcessStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumProcessStatusFilter<$PrismaModel> | $Enums.ProcessStatus
  }

  export type DateTimeFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeFilter<$PrismaModel> | Date | string
  }

  export type OrganizationNullableScalarRelationFilter = {
    is?: OrganizationWhereInput | null
    isNot?: OrganizationWhereInput | null
  }

  export type ApprovalVersionListRelationFilter = {
    every?: ApprovalVersionWhereInput
    some?: ApprovalVersionWhereInput
    none?: ApprovalVersionWhereInput
  }

  export type SortOrderInput = {
    sort: SortOrder
    nulls?: NullsOrder
  }

  export type ApprovalVersionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ApprovalDefinitionCountOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrder
    latestVersion?: SortOrder
    organizationId?: SortOrder
    status?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalDefinitionAvgOrderByAggregateInput = {
    latestVersion?: SortOrder
  }

  export type ApprovalDefinitionMaxOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrder
    latestVersion?: SortOrder
    organizationId?: SortOrder
    status?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalDefinitionMinOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrder
    latestVersion?: SortOrder
    organizationId?: SortOrder
    status?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalDefinitionSumOrderByAggregateInput = {
    latestVersion?: SortOrder
  }

  export type UuidWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedUuidWithAggregatesFilter<$PrismaModel> | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedStringFilter<$PrismaModel>
    _max?: NestedStringFilter<$PrismaModel>
  }

  export type StringWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringWithAggregatesFilter<$PrismaModel> | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedStringFilter<$PrismaModel>
    _max?: NestedStringFilter<$PrismaModel>
  }

  export type StringNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedStringNullableFilter<$PrismaModel>
    _max?: NestedStringNullableFilter<$PrismaModel>
  }

  export type IntWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedIntFilter<$PrismaModel>
    _min?: NestedIntFilter<$PrismaModel>
    _max?: NestedIntFilter<$PrismaModel>
  }

  export type UuidNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedUuidNullableWithAggregatesFilter<$PrismaModel> | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedStringNullableFilter<$PrismaModel>
    _max?: NestedStringNullableFilter<$PrismaModel>
  }

  export type EnumProcessStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ProcessStatus | EnumProcessStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ProcessStatus[] | ListEnumProcessStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ProcessStatus[] | ListEnumProcessStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumProcessStatusWithAggregatesFilter<$PrismaModel> | $Enums.ProcessStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumProcessStatusFilter<$PrismaModel>
    _max?: NestedEnumProcessStatusFilter<$PrismaModel>
  }

  export type DateTimeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedDateTimeFilter<$PrismaModel>
    _max?: NestedDateTimeFilter<$PrismaModel>
  }

  export type BoolFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolFilter<$PrismaModel> | boolean
  }
  export type JsonFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonFilterBase<$PrismaModel>>, 'path'>>

  export type JsonFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }
  export type JsonNullableFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonNullableFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>

  export type JsonNullableFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type EnumVersionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.VersionStatus | EnumVersionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.VersionStatus[] | ListEnumVersionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.VersionStatus[] | ListEnumVersionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumVersionStatusFilter<$PrismaModel> | $Enums.VersionStatus
  }

  export type DateTimeNullableFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null
  }

  export type ApprovalInstanceListRelationFilter = {
    every?: ApprovalInstanceWhereInput
    some?: ApprovalInstanceWhereInput
    none?: ApprovalInstanceWhereInput
  }

  export type ApprovalDefinitionScalarRelationFilter = {
    is?: ApprovalDefinitionWhereInput
    isNot?: ApprovalDefinitionWhereInput
  }

  export type ApprovalInstanceOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ApprovalVersionDefinitionIdVersionCompoundUniqueInput = {
    definitionId: string
    version: number
  }

  export type ApprovalVersionCountOrderByAggregateInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    name?: SortOrder
    isDefault?: SortOrder
    processModel?: SortOrder
    settings?: SortOrder
    formSchema?: SortOrder
    ruleConfig?: SortOrder
    status?: SortOrder
    deployedAt?: SortOrder
    deployedBy?: SortOrder
    changeLog?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalVersionAvgOrderByAggregateInput = {
    version?: SortOrder
  }

  export type ApprovalVersionMaxOrderByAggregateInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    name?: SortOrder
    isDefault?: SortOrder
    status?: SortOrder
    deployedAt?: SortOrder
    deployedBy?: SortOrder
    changeLog?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalVersionMinOrderByAggregateInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    name?: SortOrder
    isDefault?: SortOrder
    status?: SortOrder
    deployedAt?: SortOrder
    deployedBy?: SortOrder
    changeLog?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalVersionSumOrderByAggregateInput = {
    version?: SortOrder
  }

  export type BoolWithAggregatesFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedBoolFilter<$PrismaModel>
    _max?: NestedBoolFilter<$PrismaModel>
  }
  export type JsonWithAggregatesFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonWithAggregatesFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonWithAggregatesFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonWithAggregatesFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonWithAggregatesFilterBase<$PrismaModel>>, 'path'>>

  export type JsonWithAggregatesFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedJsonFilter<$PrismaModel>
    _max?: NestedJsonFilter<$PrismaModel>
  }
  export type JsonNullableWithAggregatesFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>

  export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedJsonNullableFilter<$PrismaModel>
    _max?: NestedJsonNullableFilter<$PrismaModel>
  }

  export type EnumVersionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.VersionStatus | EnumVersionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.VersionStatus[] | ListEnumVersionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.VersionStatus[] | ListEnumVersionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumVersionStatusWithAggregatesFilter<$PrismaModel> | $Enums.VersionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumVersionStatusFilter<$PrismaModel>
    _max?: NestedEnumVersionStatusFilter<$PrismaModel>
  }

  export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedDateTimeNullableFilter<$PrismaModel>
    _max?: NestedDateTimeNullableFilter<$PrismaModel>
  }

  export type EnumInstanceStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.InstanceStatus | EnumInstanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InstanceStatus[] | ListEnumInstanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InstanceStatus[] | ListEnumInstanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInstanceStatusFilter<$PrismaModel> | $Enums.InstanceStatus
  }

  export type UserScalarRelationFilter = {
    is?: UserWhereInput
    isNot?: UserWhereInput
  }

  export type ApprovalVersionScalarRelationFilter = {
    is?: ApprovalVersionWhereInput
    isNot?: ApprovalVersionWhereInput
  }

  export type ApprovalNodeInstanceListRelationFilter = {
    every?: ApprovalNodeInstanceWhereInput
    some?: ApprovalNodeInstanceWhereInput
    none?: ApprovalNodeInstanceWhereInput
  }

  export type ApprovalTaskListRelationFilter = {
    every?: ApprovalTaskWhereInput
    some?: ApprovalTaskWhereInput
    none?: ApprovalTaskWhereInput
  }

  export type CallbackRetryQueueListRelationFilter = {
    every?: CallbackRetryQueueWhereInput
    some?: CallbackRetryQueueWhereInput
    none?: CallbackRetryQueueWhereInput
  }

  export type ReminderQueueListRelationFilter = {
    every?: ReminderQueueWhereInput
    some?: ReminderQueueWhereInput
    none?: ReminderQueueWhereInput
  }

  export type ApprovalNodeInstanceOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ApprovalTaskOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type CallbackRetryQueueOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ReminderQueueOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ApprovalInstanceBusinessTypeBusinessIdCompoundUniqueInput = {
    businessType: string
    businessId: string
  }

  export type ApprovalInstanceCountOrderByAggregateInput = {
    id?: SortOrder
    versionId?: SortOrder
    businessType?: SortOrder
    businessId?: SortOrder
    businessKey?: SortOrder
    title?: SortOrder
    workflowId?: SortOrder
    workflowRunId?: SortOrder
    initiatorId?: SortOrder
    regionId?: SortOrder
    status?: SortOrder
    currentNodeId?: SortOrder
    currentNode?: SortOrder
    variables?: SortOrder
    totalNodeExecutions?: SortOrder
    endReason?: SortOrder
    endComment?: SortOrder
    priority?: SortOrder
    dueDate?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalInstanceAvgOrderByAggregateInput = {
    totalNodeExecutions?: SortOrder
    priority?: SortOrder
  }

  export type ApprovalInstanceMaxOrderByAggregateInput = {
    id?: SortOrder
    versionId?: SortOrder
    businessType?: SortOrder
    businessId?: SortOrder
    businessKey?: SortOrder
    title?: SortOrder
    workflowId?: SortOrder
    workflowRunId?: SortOrder
    initiatorId?: SortOrder
    regionId?: SortOrder
    status?: SortOrder
    currentNodeId?: SortOrder
    currentNode?: SortOrder
    totalNodeExecutions?: SortOrder
    endReason?: SortOrder
    endComment?: SortOrder
    priority?: SortOrder
    dueDate?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalInstanceMinOrderByAggregateInput = {
    id?: SortOrder
    versionId?: SortOrder
    businessType?: SortOrder
    businessId?: SortOrder
    businessKey?: SortOrder
    title?: SortOrder
    workflowId?: SortOrder
    workflowRunId?: SortOrder
    initiatorId?: SortOrder
    regionId?: SortOrder
    status?: SortOrder
    currentNodeId?: SortOrder
    currentNode?: SortOrder
    totalNodeExecutions?: SortOrder
    endReason?: SortOrder
    endComment?: SortOrder
    priority?: SortOrder
    dueDate?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalInstanceSumOrderByAggregateInput = {
    totalNodeExecutions?: SortOrder
    priority?: SortOrder
  }

  export type EnumInstanceStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InstanceStatus | EnumInstanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InstanceStatus[] | ListEnumInstanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InstanceStatus[] | ListEnumInstanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInstanceStatusWithAggregatesFilter<$PrismaModel> | $Enums.InstanceStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInstanceStatusFilter<$PrismaModel>
    _max?: NestedEnumInstanceStatusFilter<$PrismaModel>
  }

  export type EnumNodeStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.NodeStatus | EnumNodeStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NodeStatus[] | ListEnumNodeStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NodeStatus[] | ListEnumNodeStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNodeStatusFilter<$PrismaModel> | $Enums.NodeStatus
  }

  export type StringNullableListFilter<$PrismaModel = never> = {
    equals?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    has?: string | StringFieldRefInput<$PrismaModel> | null
    hasEvery?: string[] | ListStringFieldRefInput<$PrismaModel>
    hasSome?: string[] | ListStringFieldRefInput<$PrismaModel>
    isEmpty?: boolean
  }

  export type ApprovalInstanceScalarRelationFilter = {
    is?: ApprovalInstanceWhereInput
    isNot?: ApprovalInstanceWhereInput
  }

  export type ApprovalNodeInstanceCountOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeId?: SortOrder
    nodeName?: SortOrder
    nodeType?: SortOrder
    status?: SortOrder
    assignees?: SortOrder
    approvalMode?: SortOrder
    executionCount?: SortOrder
    result?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalNodeInstanceAvgOrderByAggregateInput = {
    executionCount?: SortOrder
  }

  export type ApprovalNodeInstanceMaxOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeId?: SortOrder
    nodeName?: SortOrder
    nodeType?: SortOrder
    status?: SortOrder
    approvalMode?: SortOrder
    executionCount?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalNodeInstanceMinOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeId?: SortOrder
    nodeName?: SortOrder
    nodeType?: SortOrder
    status?: SortOrder
    approvalMode?: SortOrder
    executionCount?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalNodeInstanceSumOrderByAggregateInput = {
    executionCount?: SortOrder
  }

  export type EnumNodeStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NodeStatus | EnumNodeStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NodeStatus[] | ListEnumNodeStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NodeStatus[] | ListEnumNodeStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNodeStatusWithAggregatesFilter<$PrismaModel> | $Enums.NodeStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNodeStatusFilter<$PrismaModel>
    _max?: NestedEnumNodeStatusFilter<$PrismaModel>
  }

  export type EnumApprovalTaskTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskType | EnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskType[] | ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskType[] | ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskTypeFilter<$PrismaModel> | $Enums.ApprovalTaskType
  }

  export type EnumApprovalTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskStatus | EnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskStatus[] | ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskStatus[] | ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskStatusFilter<$PrismaModel> | $Enums.ApprovalTaskStatus
  }

  export type EnumDelegationTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.DelegationType | EnumDelegationTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.DelegationType[] | ListEnumDelegationTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DelegationType[] | ListEnumDelegationTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDelegationTypeNullableFilter<$PrismaModel> | $Enums.DelegationType | null
  }

  export type ApprovalTaskLogListRelationFilter = {
    every?: ApprovalTaskLogWhereInput
    some?: ApprovalTaskLogWhereInput
    none?: ApprovalTaskLogWhereInput
  }

  export type ApprovalNodeInstanceScalarRelationFilter = {
    is?: ApprovalNodeInstanceWhereInput
    isNot?: ApprovalNodeInstanceWhereInput
  }

  export type ApprovalTaskLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ApprovalTaskCountOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeInstanceId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    type?: SortOrder
    assignee?: SortOrder
    candidateUsers?: SortOrder
    candidateGroups?: SortOrder
    owner?: SortOrder
    status?: SortOrder
    version?: SortOrder
    formData?: SortOrder
    priority?: SortOrder
    dueDate?: SortOrder
    reminderCount?: SortOrder
    lastReminderAt?: SortOrder
    autoApproved?: SortOrder
    autoApproveReason?: SortOrder
    isDelegated?: SortOrder
    delegatedFrom?: SortOrder
    delegatedAt?: SortOrder
    delegationReason?: SortOrder
    delegationType?: SortOrder
    delegationState?: SortOrder
    createTime?: SortOrder
    claimTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalTaskAvgOrderByAggregateInput = {
    version?: SortOrder
    priority?: SortOrder
    reminderCount?: SortOrder
  }

  export type ApprovalTaskMaxOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeInstanceId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    type?: SortOrder
    assignee?: SortOrder
    owner?: SortOrder
    status?: SortOrder
    version?: SortOrder
    priority?: SortOrder
    dueDate?: SortOrder
    reminderCount?: SortOrder
    lastReminderAt?: SortOrder
    autoApproved?: SortOrder
    autoApproveReason?: SortOrder
    isDelegated?: SortOrder
    delegatedFrom?: SortOrder
    delegatedAt?: SortOrder
    delegationReason?: SortOrder
    delegationType?: SortOrder
    delegationState?: SortOrder
    createTime?: SortOrder
    claimTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalTaskMinOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    nodeInstanceId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    type?: SortOrder
    assignee?: SortOrder
    owner?: SortOrder
    status?: SortOrder
    version?: SortOrder
    priority?: SortOrder
    dueDate?: SortOrder
    reminderCount?: SortOrder
    lastReminderAt?: SortOrder
    autoApproved?: SortOrder
    autoApproveReason?: SortOrder
    isDelegated?: SortOrder
    delegatedFrom?: SortOrder
    delegatedAt?: SortOrder
    delegationReason?: SortOrder
    delegationType?: SortOrder
    delegationState?: SortOrder
    createTime?: SortOrder
    claimTime?: SortOrder
    endTime?: SortOrder
  }

  export type ApprovalTaskSumOrderByAggregateInput = {
    version?: SortOrder
    priority?: SortOrder
    reminderCount?: SortOrder
  }

  export type EnumApprovalTaskTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskType | EnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskType[] | ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskType[] | ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskTypeWithAggregatesFilter<$PrismaModel> | $Enums.ApprovalTaskType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumApprovalTaskTypeFilter<$PrismaModel>
    _max?: NestedEnumApprovalTaskTypeFilter<$PrismaModel>
  }

  export type EnumApprovalTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskStatus | EnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskStatus[] | ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskStatus[] | ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.ApprovalTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumApprovalTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumApprovalTaskStatusFilter<$PrismaModel>
  }

  export type EnumDelegationTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DelegationType | EnumDelegationTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.DelegationType[] | ListEnumDelegationTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DelegationType[] | ListEnumDelegationTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDelegationTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.DelegationType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumDelegationTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumDelegationTypeNullableFilter<$PrismaModel>
  }

  export type EnumApprovalTaskActionFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskAction | EnumApprovalTaskActionFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskAction[] | ListEnumApprovalTaskActionFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskAction[] | ListEnumApprovalTaskActionFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskActionFilter<$PrismaModel> | $Enums.ApprovalTaskAction
  }

  export type EnumRiskLevelNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RiskLevel | EnumRiskLevelFieldRefInput<$PrismaModel> | null
    in?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRiskLevelNullableFilter<$PrismaModel> | $Enums.RiskLevel | null
  }

  export type UserNullableScalarRelationFilter = {
    is?: UserWhereInput | null
    isNot?: UserWhereInput | null
  }

  export type ApprovalTaskScalarRelationFilter = {
    is?: ApprovalTaskWhereInput
    isNot?: ApprovalTaskWhereInput
  }

  export type ApprovalTaskLogCountOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    action?: SortOrder
    operatorId?: SortOrder
    comment?: SortOrder
    targetUserId?: SortOrder
    targetNodeId?: SortOrder
    addSignUsers?: SortOrder
    formDataChanges?: SortOrder
    attachments?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    requestId?: SortOrder
    riskLevel?: SortOrder
    adminReason?: SortOrder
    metadata?: SortOrder
    actionTime?: SortOrder
  }

  export type ApprovalTaskLogMaxOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    action?: SortOrder
    operatorId?: SortOrder
    comment?: SortOrder
    targetUserId?: SortOrder
    targetNodeId?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    requestId?: SortOrder
    riskLevel?: SortOrder
    adminReason?: SortOrder
    actionTime?: SortOrder
  }

  export type ApprovalTaskLogMinOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    action?: SortOrder
    operatorId?: SortOrder
    comment?: SortOrder
    targetUserId?: SortOrder
    targetNodeId?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    requestId?: SortOrder
    riskLevel?: SortOrder
    adminReason?: SortOrder
    actionTime?: SortOrder
  }

  export type EnumApprovalTaskActionWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskAction | EnumApprovalTaskActionFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskAction[] | ListEnumApprovalTaskActionFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskAction[] | ListEnumApprovalTaskActionFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskActionWithAggregatesFilter<$PrismaModel> | $Enums.ApprovalTaskAction
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumApprovalTaskActionFilter<$PrismaModel>
    _max?: NestedEnumApprovalTaskActionFilter<$PrismaModel>
  }

  export type EnumRiskLevelNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RiskLevel | EnumRiskLevelFieldRefInput<$PrismaModel> | null
    in?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRiskLevelNullableWithAggregatesFilter<$PrismaModel> | $Enums.RiskLevel | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRiskLevelNullableFilter<$PrismaModel>
    _max?: NestedEnumRiskLevelNullableFilter<$PrismaModel>
  }

  export type EnumCallbackStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.CallbackStatus | EnumCallbackStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CallbackStatus[] | ListEnumCallbackStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CallbackStatus[] | ListEnumCallbackStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCallbackStatusFilter<$PrismaModel> | $Enums.CallbackStatus
  }

  export type CallbackRetryQueueCountOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    callbackType?: SortOrder
    callbackUrl?: SortOrder
    payload?: SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrder
    lastError?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CallbackRetryQueueAvgOrderByAggregateInput = {
    retryCount?: SortOrder
    maxRetries?: SortOrder
  }

  export type CallbackRetryQueueMaxOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    callbackType?: SortOrder
    callbackUrl?: SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrder
    lastError?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CallbackRetryQueueMinOrderByAggregateInput = {
    id?: SortOrder
    instanceId?: SortOrder
    callbackType?: SortOrder
    callbackUrl?: SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrder
    lastError?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CallbackRetryQueueSumOrderByAggregateInput = {
    retryCount?: SortOrder
    maxRetries?: SortOrder
  }

  export type EnumCallbackStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CallbackStatus | EnumCallbackStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CallbackStatus[] | ListEnumCallbackStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CallbackStatus[] | ListEnumCallbackStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCallbackStatusWithAggregatesFilter<$PrismaModel> | $Enums.CallbackStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCallbackStatusFilter<$PrismaModel>
    _max?: NestedEnumCallbackStatusFilter<$PrismaModel>
  }

  export type EnumReminderTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ReminderType | EnumReminderTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ReminderType[] | ListEnumReminderTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReminderType[] | ListEnumReminderTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumReminderTypeFilter<$PrismaModel> | $Enums.ReminderType
  }

  export type EnumReminderStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ReminderStatus | EnumReminderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ReminderStatus[] | ListEnumReminderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReminderStatus[] | ListEnumReminderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumReminderStatusFilter<$PrismaModel> | $Enums.ReminderStatus
  }

  export type ReminderQueueCountOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    reminderType?: SortOrder
    channels?: SortOrder
    scheduledAt?: SortOrder
    executedAt?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
  }

  export type ReminderQueueMaxOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    reminderType?: SortOrder
    scheduledAt?: SortOrder
    executedAt?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
  }

  export type ReminderQueueMinOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    instanceId?: SortOrder
    reminderType?: SortOrder
    scheduledAt?: SortOrder
    executedAt?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumReminderTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ReminderType | EnumReminderTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ReminderType[] | ListEnumReminderTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReminderType[] | ListEnumReminderTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumReminderTypeWithAggregatesFilter<$PrismaModel> | $Enums.ReminderType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumReminderTypeFilter<$PrismaModel>
    _max?: NestedEnumReminderTypeFilter<$PrismaModel>
  }

  export type EnumReminderStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ReminderStatus | EnumReminderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ReminderStatus[] | ListEnumReminderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReminderStatus[] | ListEnumReminderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumReminderStatusWithAggregatesFilter<$PrismaModel> | $Enums.ReminderStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumReminderStatusFilter<$PrismaModel>
    _max?: NestedEnumReminderStatusFilter<$PrismaModel>
  }

  export type EnumDelegationScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.DelegationScope | EnumDelegationScopeFieldRefInput<$PrismaModel>
    in?: $Enums.DelegationScope[] | ListEnumDelegationScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DelegationScope[] | ListEnumDelegationScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumDelegationScopeFilter<$PrismaModel> | $Enums.DelegationScope
  }

  export type UserDelegationSettingCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    enabled?: SortOrder
    delegateUserId?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    scope?: SortOrder
    processKeys?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type UserDelegationSettingMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    enabled?: SortOrder
    delegateUserId?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    scope?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type UserDelegationSettingMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    enabled?: SortOrder
    delegateUserId?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    scope?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumDelegationScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DelegationScope | EnumDelegationScopeFieldRefInput<$PrismaModel>
    in?: $Enums.DelegationScope[] | ListEnumDelegationScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DelegationScope[] | ListEnumDelegationScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumDelegationScopeWithAggregatesFilter<$PrismaModel> | $Enums.DelegationScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDelegationScopeFilter<$PrismaModel>
    _max?: NestedEnumDelegationScopeFilter<$PrismaModel>
  }

  export type ApprovalAdminConfigCountOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalAdminConfigMaxOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    description?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalAdminConfigMinOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    description?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumApprovalAdminExportStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalAdminExportStatus | EnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalAdminExportStatus[] | ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalAdminExportStatus[] | ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalAdminExportStatusFilter<$PrismaModel> | $Enums.ApprovalAdminExportStatus
  }

  export type BigIntNullableFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel> | null
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntNullableFilter<$PrismaModel> | bigint | number | null
  }

  export type IntNullableFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableFilter<$PrismaModel> | number | null
  }

  export type ApprovalAdminExportCountOrderByAggregateInput = {
    id?: SortOrder
    status?: SortOrder
    format?: SortOrder
    requestedBy?: SortOrder
    filters?: SortOrder
    fileKey?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    contentType?: SortOrder
    totalRows?: SortOrder
    errorMessage?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    expiresAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalAdminExportAvgOrderByAggregateInput = {
    fileSize?: SortOrder
    totalRows?: SortOrder
  }

  export type ApprovalAdminExportMaxOrderByAggregateInput = {
    id?: SortOrder
    status?: SortOrder
    format?: SortOrder
    requestedBy?: SortOrder
    fileKey?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    contentType?: SortOrder
    totalRows?: SortOrder
    errorMessage?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    expiresAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalAdminExportMinOrderByAggregateInput = {
    id?: SortOrder
    status?: SortOrder
    format?: SortOrder
    requestedBy?: SortOrder
    fileKey?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    contentType?: SortOrder
    totalRows?: SortOrder
    errorMessage?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    expiresAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ApprovalAdminExportSumOrderByAggregateInput = {
    fileSize?: SortOrder
    totalRows?: SortOrder
  }

  export type EnumApprovalAdminExportStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalAdminExportStatus | EnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalAdminExportStatus[] | ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalAdminExportStatus[] | ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalAdminExportStatusWithAggregatesFilter<$PrismaModel> | $Enums.ApprovalAdminExportStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumApprovalAdminExportStatusFilter<$PrismaModel>
    _max?: NestedEnumApprovalAdminExportStatusFilter<$PrismaModel>
  }

  export type BigIntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel> | null
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntNullableWithAggregatesFilter<$PrismaModel> | bigint | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedBigIntNullableFilter<$PrismaModel>
    _min?: NestedBigIntNullableFilter<$PrismaModel>
    _max?: NestedBigIntNullableFilter<$PrismaModel>
  }

  export type IntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedIntNullableFilter<$PrismaModel>
    _max?: NestedIntNullableFilter<$PrismaModel>
  }

  export type RegionNullableScalarRelationFilter = {
    is?: RegionWhereInput | null
    isNot?: RegionWhereInput | null
  }

  export type DepartmentListRelationFilter = {
    every?: DepartmentWhereInput
    some?: DepartmentWhereInput
    none?: DepartmentWhereInput
  }

  export type UserDepartmentListRelationFilter = {
    every?: UserDepartmentWhereInput
    some?: UserDepartmentWhereInput
    none?: UserDepartmentWhereInput
  }

  export type OrganizationRegionListRelationFilter = {
    every?: OrganizationRegionWhereInput
    some?: OrganizationRegionWhereInput
    none?: OrganizationRegionWhereInput
  }

  export type FormDefinitionListRelationFilter = {
    every?: FormDefinitionWhereInput
    some?: FormDefinitionWhereInput
    none?: FormDefinitionWhereInput
  }

  export type FormWebhookListRelationFilter = {
    every?: FormWebhookWhereInput
    some?: FormWebhookWhereInput
    none?: FormWebhookWhereInput
  }

  export type ApprovalDefinitionListRelationFilter = {
    every?: ApprovalDefinitionWhereInput
    some?: ApprovalDefinitionWhereInput
    none?: ApprovalDefinitionWhereInput
  }

  export type UserRoleListRelationFilter = {
    every?: UserRoleWhereInput
    some?: UserRoleWhereInput
    none?: UserRoleWhereInput
  }

  export type PerformanceCycleListRelationFilter = {
    every?: PerformanceCycleWhereInput
    some?: PerformanceCycleWhereInput
    none?: PerformanceCycleWhereInput
  }

  export type GradeConfigListRelationFilter = {
    every?: GradeConfigWhereInput
    some?: GradeConfigWhereInput
    none?: GradeConfigWhereInput
  }

  export type PerformanceResultListRelationFilter = {
    every?: PerformanceResultWhereInput
    some?: PerformanceResultWhereInput
    none?: PerformanceResultWhereInput
  }

  export type Evaluation360TemplateListRelationFilter = {
    every?: Evaluation360TemplateWhereInput
    some?: Evaluation360TemplateWhereInput
    none?: Evaluation360TemplateWhereInput
  }

  export type AiUsageTokenListRelationFilter = {
    every?: AiUsageTokenWhereInput
    some?: AiUsageTokenWhereInput
    none?: AiUsageTokenWhereInput
  }

  export type AiUsageDeviceListRelationFilter = {
    every?: AiUsageDeviceWhereInput
    some?: AiUsageDeviceWhereInput
    none?: AiUsageDeviceWhereInput
  }

  export type AiUsageEventListRelationFilter = {
    every?: AiUsageEventWhereInput
    some?: AiUsageEventWhereInput
    none?: AiUsageEventWhereInput
  }

  export type AiUsageDailyRollupListRelationFilter = {
    every?: AiUsageDailyRollupWhereInput
    some?: AiUsageDailyRollupWhereInput
    none?: AiUsageDailyRollupWhereInput
  }

  export type MeetingAgendaSectionListRelationFilter = {
    every?: MeetingAgendaSectionWhereInput
    some?: MeetingAgendaSectionWhereInput
    none?: MeetingAgendaSectionWhereInput
  }

  export type MeetingAgendaItemListRelationFilter = {
    every?: MeetingAgendaItemWhereInput
    some?: MeetingAgendaItemWhereInput
    none?: MeetingAgendaItemWhereInput
  }

  export type MeetingAgendaItemUploadTaskListRelationFilter = {
    every?: MeetingAgendaItemUploadTaskWhereInput
    some?: MeetingAgendaItemUploadTaskWhereInput
    none?: MeetingAgendaItemUploadTaskWhereInput
  }

  export type MeetingAgendaItemAttachmentListRelationFilter = {
    every?: MeetingAgendaItemAttachmentWhereInput
    some?: MeetingAgendaItemAttachmentWhereInput
    none?: MeetingAgendaItemAttachmentWhereInput
  }

  export type MeetingAttachmentListRelationFilter = {
    every?: MeetingAttachmentWhereInput
    some?: MeetingAttachmentWhereInput
    none?: MeetingAttachmentWhereInput
  }

  export type DepartmentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type UserDepartmentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OrganizationRegionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FormDefinitionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FormWebhookOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ApprovalDefinitionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type UserRoleOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PerformanceCycleOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type GradeConfigOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PerformanceResultOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type Evaluation360TemplateOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AiUsageTokenOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AiUsageDeviceOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AiUsageEventOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AiUsageDailyRollupOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAgendaSectionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAgendaItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAgendaItemUploadTaskOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAgendaItemAttachmentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAttachmentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OrganizationCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    displayName?: SortOrder
    nameEn?: SortOrder
    nameZh?: SortOrder
    legalName?: SortOrder
    legalRepresentative?: SortOrder
    registrationNumber?: SortOrder
    taxId?: SortOrder
    address?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    website?: SortOrder
    primaryRegionId?: SortOrder
    settings?: SortOrder
    financialConfig?: SortOrder
    complianceConfig?: SortOrder
    status?: SortOrder
    isActive?: SortOrder
    order?: SortOrder
    metadata?: SortOrder
    establishedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type OrganizationAvgOrderByAggregateInput = {
    order?: SortOrder
  }

  export type OrganizationMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    displayName?: SortOrder
    nameEn?: SortOrder
    nameZh?: SortOrder
    legalName?: SortOrder
    legalRepresentative?: SortOrder
    registrationNumber?: SortOrder
    taxId?: SortOrder
    address?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    website?: SortOrder
    primaryRegionId?: SortOrder
    status?: SortOrder
    isActive?: SortOrder
    order?: SortOrder
    establishedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type OrganizationMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    displayName?: SortOrder
    nameEn?: SortOrder
    nameZh?: SortOrder
    legalName?: SortOrder
    legalRepresentative?: SortOrder
    registrationNumber?: SortOrder
    taxId?: SortOrder
    address?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    website?: SortOrder
    primaryRegionId?: SortOrder
    status?: SortOrder
    isActive?: SortOrder
    order?: SortOrder
    establishedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type OrganizationSumOrderByAggregateInput = {
    order?: SortOrder
  }

  export type OrganizationScalarRelationFilter = {
    is?: OrganizationWhereInput
    isNot?: OrganizationWhereInput
  }

  export type RegionScalarRelationFilter = {
    is?: RegionWhereInput
    isNot?: RegionWhereInput
  }

  export type OrganizationRegionOrganizationIdRegionIdCompoundUniqueInput = {
    organizationId: string
    regionId: string
  }

  export type OrganizationRegionCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    regionId?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
  }

  export type OrganizationRegionMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    regionId?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
  }

  export type OrganizationRegionMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    regionId?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
  }

  export type OrganizationListRelationFilter = {
    every?: OrganizationWhereInput
    some?: OrganizationWhereInput
    none?: OrganizationWhereInput
  }

  export type OrganizationOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type RegionCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    nameEn?: SortOrder
    nameZh?: SortOrder
    timezone?: SortOrder
    currency?: SortOrder
    locale?: SortOrder
    isActive?: SortOrder
    order?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type RegionAvgOrderByAggregateInput = {
    order?: SortOrder
  }

  export type RegionMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    nameEn?: SortOrder
    nameZh?: SortOrder
    timezone?: SortOrder
    currency?: SortOrder
    locale?: SortOrder
    isActive?: SortOrder
    order?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type RegionMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    nameEn?: SortOrder
    nameZh?: SortOrder
    timezone?: SortOrder
    currency?: SortOrder
    locale?: SortOrder
    isActive?: SortOrder
    order?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type RegionSumOrderByAggregateInput = {
    order?: SortOrder
  }

  export type DepartmentNullableScalarRelationFilter = {
    is?: DepartmentWhereInput | null
    isNot?: DepartmentWhereInput | null
  }

  export type DepartmentOrganizationIdCodeCompoundUniqueInput = {
    organizationId: string
    code: string
  }

  export type DepartmentCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    name?: SortOrder
    code?: SortOrder
    parentId?: SortOrder
    headId?: SortOrder
    description?: SortOrder
    order?: SortOrder
    tenantId?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type DepartmentAvgOrderByAggregateInput = {
    order?: SortOrder
  }

  export type DepartmentMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    name?: SortOrder
    code?: SortOrder
    parentId?: SortOrder
    headId?: SortOrder
    description?: SortOrder
    order?: SortOrder
    tenantId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type DepartmentMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    name?: SortOrder
    code?: SortOrder
    parentId?: SortOrder
    headId?: SortOrder
    description?: SortOrder
    order?: SortOrder
    tenantId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type DepartmentSumOrderByAggregateInput = {
    order?: SortOrder
  }

  export type PositionCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    level?: SortOrder
    description?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PositionAvgOrderByAggregateInput = {
    level?: SortOrder
  }

  export type PositionMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    level?: SortOrder
    description?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PositionMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    level?: SortOrder
    description?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PositionSumOrderByAggregateInput = {
    level?: SortOrder
  }

  export type DepartmentScalarRelationFilter = {
    is?: DepartmentWhereInput
    isNot?: DepartmentWhereInput
  }

  export type PositionNullableScalarRelationFilter = {
    is?: PositionWhereInput | null
    isNot?: PositionWhereInput | null
  }

  export type UserDepartmentUserIdDepartmentIdCompoundUniqueInput = {
    userId: string
    departmentId: string
  }

  export type UserDepartmentCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    organizationId?: SortOrder
    departmentId?: SortOrder
    positionId?: SortOrder
    managerId?: SortOrder
    isPrimary?: SortOrder
    title?: SortOrder
    joinedAt?: SortOrder
    leftAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type UserDepartmentMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    organizationId?: SortOrder
    departmentId?: SortOrder
    positionId?: SortOrder
    managerId?: SortOrder
    isPrimary?: SortOrder
    title?: SortOrder
    joinedAt?: SortOrder
    leftAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type UserDepartmentMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    organizationId?: SortOrder
    departmentId?: SortOrder
    positionId?: SortOrder
    managerId?: SortOrder
    isPrimary?: SortOrder
    title?: SortOrder
    joinedAt?: SortOrder
    leftAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DecimalFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string
  }

  export type EnumExpenseCategoryFilter<$PrismaModel = never> = {
    equals?: $Enums.ExpenseCategory | EnumExpenseCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.ExpenseCategory[] | ListEnumExpenseCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.ExpenseCategory[] | ListEnumExpenseCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumExpenseCategoryFilter<$PrismaModel> | $Enums.ExpenseCategory
  }

  export type EnumExpenseStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ExpenseStatus | EnumExpenseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ExpenseStatus[] | ListEnumExpenseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ExpenseStatus[] | ListEnumExpenseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumExpenseStatusFilter<$PrismaModel> | $Enums.ExpenseStatus
  }

  export type ExpenseItemListRelationFilter = {
    every?: ExpenseItemWhereInput
    some?: ExpenseItemWhereInput
    none?: ExpenseItemWhereInput
  }

  export type ExpenseItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ExpenseRequestCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    category?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    attachments?: SortOrder
    expenseDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ExpenseRequestAvgOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type ExpenseRequestMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    category?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    expenseDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ExpenseRequestMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    category?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    expenseDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ExpenseRequestSumOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type DecimalWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalWithAggregatesFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedDecimalFilter<$PrismaModel>
    _sum?: NestedDecimalFilter<$PrismaModel>
    _min?: NestedDecimalFilter<$PrismaModel>
    _max?: NestedDecimalFilter<$PrismaModel>
  }

  export type EnumExpenseCategoryWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ExpenseCategory | EnumExpenseCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.ExpenseCategory[] | ListEnumExpenseCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.ExpenseCategory[] | ListEnumExpenseCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumExpenseCategoryWithAggregatesFilter<$PrismaModel> | $Enums.ExpenseCategory
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumExpenseCategoryFilter<$PrismaModel>
    _max?: NestedEnumExpenseCategoryFilter<$PrismaModel>
  }

  export type EnumExpenseStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ExpenseStatus | EnumExpenseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ExpenseStatus[] | ListEnumExpenseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ExpenseStatus[] | ListEnumExpenseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumExpenseStatusWithAggregatesFilter<$PrismaModel> | $Enums.ExpenseStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumExpenseStatusFilter<$PrismaModel>
    _max?: NestedEnumExpenseStatusFilter<$PrismaModel>
  }

  export type ExpenseRequestScalarRelationFilter = {
    is?: ExpenseRequestWhereInput
    isNot?: ExpenseRequestWhereInput
  }

  export type ExpenseItemCountOrderByAggregateInput = {
    id?: SortOrder
    expenseId?: SortOrder
    description?: SortOrder
    amount?: SortOrder
    date?: SortOrder
  }

  export type ExpenseItemAvgOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type ExpenseItemMaxOrderByAggregateInput = {
    id?: SortOrder
    expenseId?: SortOrder
    description?: SortOrder
    amount?: SortOrder
    date?: SortOrder
  }

  export type ExpenseItemMinOrderByAggregateInput = {
    id?: SortOrder
    expenseId?: SortOrder
    description?: SortOrder
    amount?: SortOrder
    date?: SortOrder
  }

  export type ExpenseItemSumOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type EnumPurchaseStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.PurchaseStatus | EnumPurchaseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PurchaseStatus[] | ListEnumPurchaseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PurchaseStatus[] | ListEnumPurchaseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPurchaseStatusFilter<$PrismaModel> | $Enums.PurchaseStatus
  }

  export type PurchaseItemListRelationFilter = {
    every?: PurchaseItemWhereInput
    some?: PurchaseItemWhereInput
    none?: PurchaseItemWhereInput
  }

  export type PurchaseItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PurchaseRequestCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    totalAmount?: SortOrder
    currency?: SortOrder
    vendorName?: SortOrder
    vendorContact?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    attachments?: SortOrder
    expectedDeliveryDate?: SortOrder
    actualDeliveryDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PurchaseRequestAvgOrderByAggregateInput = {
    totalAmount?: SortOrder
  }

  export type PurchaseRequestMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    totalAmount?: SortOrder
    currency?: SortOrder
    vendorName?: SortOrder
    vendorContact?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    expectedDeliveryDate?: SortOrder
    actualDeliveryDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PurchaseRequestMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    totalAmount?: SortOrder
    currency?: SortOrder
    vendorName?: SortOrder
    vendorContact?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    expectedDeliveryDate?: SortOrder
    actualDeliveryDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PurchaseRequestSumOrderByAggregateInput = {
    totalAmount?: SortOrder
  }

  export type EnumPurchaseStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PurchaseStatus | EnumPurchaseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PurchaseStatus[] | ListEnumPurchaseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PurchaseStatus[] | ListEnumPurchaseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPurchaseStatusWithAggregatesFilter<$PrismaModel> | $Enums.PurchaseStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPurchaseStatusFilter<$PrismaModel>
    _max?: NestedEnumPurchaseStatusFilter<$PrismaModel>
  }

  export type PurchaseRequestScalarRelationFilter = {
    is?: PurchaseRequestWhereInput
    isNot?: PurchaseRequestWhereInput
  }

  export type PurchaseItemCountOrderByAggregateInput = {
    id?: SortOrder
    purchaseId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    amount?: SortOrder
  }

  export type PurchaseItemAvgOrderByAggregateInput = {
    quantity?: SortOrder
    unitPrice?: SortOrder
    amount?: SortOrder
  }

  export type PurchaseItemMaxOrderByAggregateInput = {
    id?: SortOrder
    purchaseId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    amount?: SortOrder
  }

  export type PurchaseItemMinOrderByAggregateInput = {
    id?: SortOrder
    purchaseId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    amount?: SortOrder
  }

  export type PurchaseItemSumOrderByAggregateInput = {
    quantity?: SortOrder
    unitPrice?: SortOrder
    amount?: SortOrder
  }

  export type EnumContractTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ContractType | EnumContractTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ContractType[] | ListEnumContractTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ContractType[] | ListEnumContractTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumContractTypeFilter<$PrismaModel> | $Enums.ContractType
  }

  export type EnumContractStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ContractStatus | EnumContractStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ContractStatus[] | ListEnumContractStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ContractStatus[] | ListEnumContractStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumContractStatusFilter<$PrismaModel> | $Enums.ContractStatus
  }

  export type ContractRequestCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    contractType?: SortOrder
    partnerName?: SortOrder
    partnerContact?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    sealRequired?: SortOrder
    sealAppliedAt?: SortOrder
    attachments?: SortOrder
    signDate?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ContractRequestAvgOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type ContractRequestMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    contractType?: SortOrder
    partnerName?: SortOrder
    partnerContact?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    sealRequired?: SortOrder
    sealAppliedAt?: SortOrder
    signDate?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ContractRequestMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    creatorId?: SortOrder
    contractType?: SortOrder
    partnerName?: SortOrder
    partnerContact?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    workflowInstanceId?: SortOrder
    status?: SortOrder
    sealRequired?: SortOrder
    sealAppliedAt?: SortOrder
    signDate?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ContractRequestSumOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type EnumContractTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ContractType | EnumContractTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ContractType[] | ListEnumContractTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ContractType[] | ListEnumContractTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumContractTypeWithAggregatesFilter<$PrismaModel> | $Enums.ContractType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumContractTypeFilter<$PrismaModel>
    _max?: NestedEnumContractTypeFilter<$PrismaModel>
  }

  export type EnumContractStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ContractStatus | EnumContractStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ContractStatus[] | ListEnumContractStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ContractStatus[] | ListEnumContractStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumContractStatusWithAggregatesFilter<$PrismaModel> | $Enums.ContractStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumContractStatusFilter<$PrismaModel>
    _max?: NestedEnumContractStatusFilter<$PrismaModel>
  }

  export type EnumPartStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.PartStatus | EnumPartStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PartStatus[] | ListEnumPartStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PartStatus[] | ListEnumPartStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPartStatusFilter<$PrismaModel> | $Enums.PartStatus
  }

  export type InventoryLogListRelationFilter = {
    every?: InventoryLogWhereInput
    some?: InventoryLogWhereInput
    none?: InventoryLogWhereInput
  }

  export type PartGroupRelationListRelationFilter = {
    every?: PartGroupRelationWhereInput
    some?: PartGroupRelationWhereInput
    none?: PartGroupRelationWhereInput
  }

  export type PartLabelListRelationFilter = {
    every?: PartLabelWhereInput
    some?: PartLabelWhereInput
    none?: PartLabelWhereInput
  }

  export type StockAlertListRelationFilter = {
    every?: StockAlertWhereInput
    some?: StockAlertWhereInput
    none?: StockAlertWhereInput
  }

  export type WarehouseNullableScalarRelationFilter = {
    is?: WarehouseWhereInput | null
    isNot?: WarehouseWhereInput | null
  }

  export type StorageLocationNullableScalarRelationFilter = {
    is?: StorageLocationWhereInput | null
    isNot?: StorageLocationWhereInput | null
  }

  export type StationNullableScalarRelationFilter = {
    is?: StationWhereInput | null
    isNot?: StationWhereInput | null
  }

  export type InventoryLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PartGroupRelationOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PartLabelOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type StockAlertOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PartCountOrderByAggregateInput = {
    id?: SortOrder
    partNumber?: SortOrder
    partNameEn?: SortOrder
    partNameCn?: SortOrder
    unit?: SortOrder
    source?: SortOrder
    specifications?: SortOrder
    remark?: SortOrder
    status?: SortOrder
    currentStock?: SortOrder
    minStock?: SortOrder
    maxStock?: SortOrder
    station?: SortOrder
    stationId?: SortOrder
    warehouseLocation?: SortOrder
    warehouseId?: SortOrder
    storageLocationId?: SortOrder
    imageUrl?: SortOrder
    customFields?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PartAvgOrderByAggregateInput = {
    currentStock?: SortOrder
    minStock?: SortOrder
    maxStock?: SortOrder
  }

  export type PartMaxOrderByAggregateInput = {
    id?: SortOrder
    partNumber?: SortOrder
    partNameEn?: SortOrder
    partNameCn?: SortOrder
    unit?: SortOrder
    source?: SortOrder
    specifications?: SortOrder
    remark?: SortOrder
    status?: SortOrder
    currentStock?: SortOrder
    minStock?: SortOrder
    maxStock?: SortOrder
    station?: SortOrder
    stationId?: SortOrder
    warehouseLocation?: SortOrder
    warehouseId?: SortOrder
    storageLocationId?: SortOrder
    imageUrl?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PartMinOrderByAggregateInput = {
    id?: SortOrder
    partNumber?: SortOrder
    partNameEn?: SortOrder
    partNameCn?: SortOrder
    unit?: SortOrder
    source?: SortOrder
    specifications?: SortOrder
    remark?: SortOrder
    status?: SortOrder
    currentStock?: SortOrder
    minStock?: SortOrder
    maxStock?: SortOrder
    station?: SortOrder
    stationId?: SortOrder
    warehouseLocation?: SortOrder
    warehouseId?: SortOrder
    storageLocationId?: SortOrder
    imageUrl?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PartSumOrderByAggregateInput = {
    currentStock?: SortOrder
    minStock?: SortOrder
    maxStock?: SortOrder
  }

  export type EnumPartStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PartStatus | EnumPartStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PartStatus[] | ListEnumPartStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PartStatus[] | ListEnumPartStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPartStatusWithAggregatesFilter<$PrismaModel> | $Enums.PartStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPartStatusFilter<$PrismaModel>
    _max?: NestedEnumPartStatusFilter<$PrismaModel>
  }

  export type EnumStationStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.StationStatus | EnumStationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.StationStatus[] | ListEnumStationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.StationStatus[] | ListEnumStationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumStationStatusFilter<$PrismaModel> | $Enums.StationStatus
  }

  export type PartListRelationFilter = {
    every?: PartWhereInput
    some?: PartWhereInput
    none?: PartWhereInput
  }

  export type PartOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type StationCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    area?: SortOrder
    line?: SortOrder
    type?: SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StationAvgOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type StationMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    area?: SortOrder
    line?: SortOrder
    type?: SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StationMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    area?: SortOrder
    line?: SortOrder
    type?: SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StationSumOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type EnumStationStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StationStatus | EnumStationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.StationStatus[] | ListEnumStationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.StationStatus[] | ListEnumStationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumStationStatusWithAggregatesFilter<$PrismaModel> | $Enums.StationStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStationStatusFilter<$PrismaModel>
    _max?: NestedEnumStationStatusFilter<$PrismaModel>
  }

  export type EnumWarehouseStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.WarehouseStatus | EnumWarehouseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.WarehouseStatus[] | ListEnumWarehouseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.WarehouseStatus[] | ListEnumWarehouseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumWarehouseStatusFilter<$PrismaModel> | $Enums.WarehouseStatus
  }

  export type StorageLocationListRelationFilter = {
    every?: StorageLocationWhereInput
    some?: StorageLocationWhereInput
    none?: StorageLocationWhereInput
  }

  export type StorageLocationOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type WarehouseCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    address?: SortOrder
    contactPerson?: SortOrder
    contactPhone?: SortOrder
    status?: SortOrder
    isDefault?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type WarehouseAvgOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type WarehouseMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    address?: SortOrder
    contactPerson?: SortOrder
    contactPhone?: SortOrder
    status?: SortOrder
    isDefault?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type WarehouseMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    address?: SortOrder
    contactPerson?: SortOrder
    contactPhone?: SortOrder
    status?: SortOrder
    isDefault?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type WarehouseSumOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type EnumWarehouseStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.WarehouseStatus | EnumWarehouseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.WarehouseStatus[] | ListEnumWarehouseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.WarehouseStatus[] | ListEnumWarehouseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumWarehouseStatusWithAggregatesFilter<$PrismaModel> | $Enums.WarehouseStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumWarehouseStatusFilter<$PrismaModel>
    _max?: NestedEnumWarehouseStatusFilter<$PrismaModel>
  }

  export type EnumStorageLocationStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageLocationStatus | EnumStorageLocationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.StorageLocationStatus[] | ListEnumStorageLocationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageLocationStatus[] | ListEnumStorageLocationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageLocationStatusFilter<$PrismaModel> | $Enums.StorageLocationStatus
  }

  export type WarehouseScalarRelationFilter = {
    is?: WarehouseWhereInput
    isNot?: WarehouseWhereInput
  }

  export type StorageLocationWarehouseIdCodeCompoundUniqueInput = {
    warehouseId: string
    code: string
  }

  export type StorageLocationCountOrderByAggregateInput = {
    id?: SortOrder
    warehouseId?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    zone?: SortOrder
    aisle?: SortOrder
    rack?: SortOrder
    level?: SortOrder
    position?: SortOrder
    capacity?: SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StorageLocationAvgOrderByAggregateInput = {
    capacity?: SortOrder
    sortOrder?: SortOrder
  }

  export type StorageLocationMaxOrderByAggregateInput = {
    id?: SortOrder
    warehouseId?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    zone?: SortOrder
    aisle?: SortOrder
    rack?: SortOrder
    level?: SortOrder
    position?: SortOrder
    capacity?: SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StorageLocationMinOrderByAggregateInput = {
    id?: SortOrder
    warehouseId?: SortOrder
    code?: SortOrder
    nameEn?: SortOrder
    nameCn?: SortOrder
    description?: SortOrder
    zone?: SortOrder
    aisle?: SortOrder
    rack?: SortOrder
    level?: SortOrder
    position?: SortOrder
    capacity?: SortOrder
    status?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StorageLocationSumOrderByAggregateInput = {
    capacity?: SortOrder
    sortOrder?: SortOrder
  }

  export type EnumStorageLocationStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageLocationStatus | EnumStorageLocationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.StorageLocationStatus[] | ListEnumStorageLocationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageLocationStatus[] | ListEnumStorageLocationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageLocationStatusWithAggregatesFilter<$PrismaModel> | $Enums.StorageLocationStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStorageLocationStatusFilter<$PrismaModel>
    _max?: NestedEnumStorageLocationStatusFilter<$PrismaModel>
  }

  export type EnumLabelStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.LabelStatus | EnumLabelStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LabelStatus[] | ListEnumLabelStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LabelStatus[] | ListEnumLabelStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLabelStatusFilter<$PrismaModel> | $Enums.LabelStatus
  }

  export type PartScalarRelationFilter = {
    is?: PartWhereInput
    isNot?: PartWhereInput
  }

  export type PartLabelCountOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    labelCode?: SortOrder
    qrCodeData?: SortOrder
    template?: SortOrder
    size?: SortOrder
    printCount?: SortOrder
    lastPrintedAt?: SortOrder
    printedBy?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PartLabelAvgOrderByAggregateInput = {
    printCount?: SortOrder
  }

  export type PartLabelMaxOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    labelCode?: SortOrder
    qrCodeData?: SortOrder
    template?: SortOrder
    size?: SortOrder
    printCount?: SortOrder
    lastPrintedAt?: SortOrder
    printedBy?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PartLabelMinOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    labelCode?: SortOrder
    qrCodeData?: SortOrder
    template?: SortOrder
    size?: SortOrder
    printCount?: SortOrder
    lastPrintedAt?: SortOrder
    printedBy?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PartLabelSumOrderByAggregateInput = {
    printCount?: SortOrder
  }

  export type EnumLabelStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LabelStatus | EnumLabelStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LabelStatus[] | ListEnumLabelStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LabelStatus[] | ListEnumLabelStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLabelStatusWithAggregatesFilter<$PrismaModel> | $Enums.LabelStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLabelStatusFilter<$PrismaModel>
    _max?: NestedEnumLabelStatusFilter<$PrismaModel>
  }

  export type EnumInventoryOperationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.InventoryOperationType | EnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.InventoryOperationType[] | ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InventoryOperationType[] | ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumInventoryOperationTypeFilter<$PrismaModel> | $Enums.InventoryOperationType
  }

  export type InventoryLogCountOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    operationType?: SortOrder
    quantity?: SortOrder
    previousStock?: SortOrder
    newStock?: SortOrder
    station?: SortOrder
    warehouseLocation?: SortOrder
    reason?: SortOrder
    referenceType?: SortOrder
    referenceId?: SortOrder
    operatorId?: SortOrder
    operatorName?: SortOrder
    scannedCode?: SortOrder
    deviceInfo?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
  }

  export type InventoryLogAvgOrderByAggregateInput = {
    quantity?: SortOrder
    previousStock?: SortOrder
    newStock?: SortOrder
  }

  export type InventoryLogMaxOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    operationType?: SortOrder
    quantity?: SortOrder
    previousStock?: SortOrder
    newStock?: SortOrder
    station?: SortOrder
    warehouseLocation?: SortOrder
    reason?: SortOrder
    referenceType?: SortOrder
    referenceId?: SortOrder
    operatorId?: SortOrder
    operatorName?: SortOrder
    scannedCode?: SortOrder
    createdAt?: SortOrder
  }

  export type InventoryLogMinOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    operationType?: SortOrder
    quantity?: SortOrder
    previousStock?: SortOrder
    newStock?: SortOrder
    station?: SortOrder
    warehouseLocation?: SortOrder
    reason?: SortOrder
    referenceType?: SortOrder
    referenceId?: SortOrder
    operatorId?: SortOrder
    operatorName?: SortOrder
    scannedCode?: SortOrder
    createdAt?: SortOrder
  }

  export type InventoryLogSumOrderByAggregateInput = {
    quantity?: SortOrder
    previousStock?: SortOrder
    newStock?: SortOrder
  }

  export type EnumInventoryOperationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InventoryOperationType | EnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.InventoryOperationType[] | ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InventoryOperationType[] | ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumInventoryOperationTypeWithAggregatesFilter<$PrismaModel> | $Enums.InventoryOperationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInventoryOperationTypeFilter<$PrismaModel>
    _max?: NestedEnumInventoryOperationTypeFilter<$PrismaModel>
  }

  export type EnumStockAlertTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.StockAlertType | EnumStockAlertTypeFieldRefInput<$PrismaModel>
    in?: $Enums.StockAlertType[] | ListEnumStockAlertTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.StockAlertType[] | ListEnumStockAlertTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumStockAlertTypeFilter<$PrismaModel> | $Enums.StockAlertType
  }

  export type EnumAlertSeverityFilter<$PrismaModel = never> = {
    equals?: $Enums.AlertSeverity | EnumAlertSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.AlertSeverity[] | ListEnumAlertSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.AlertSeverity[] | ListEnumAlertSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumAlertSeverityFilter<$PrismaModel> | $Enums.AlertSeverity
  }

  export type EnumAlertStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AlertStatus | EnumAlertStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AlertStatus[] | ListEnumAlertStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AlertStatus[] | ListEnumAlertStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAlertStatusFilter<$PrismaModel> | $Enums.AlertStatus
  }

  export type StockAlertCountOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    alertType?: SortOrder
    severity?: SortOrder
    currentStock?: SortOrder
    threshold?: SortOrder
    message?: SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrder
    acknowledgedAt?: SortOrder
    resolvedBy?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type StockAlertAvgOrderByAggregateInput = {
    currentStock?: SortOrder
    threshold?: SortOrder
  }

  export type StockAlertMaxOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    alertType?: SortOrder
    severity?: SortOrder
    currentStock?: SortOrder
    threshold?: SortOrder
    message?: SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrder
    acknowledgedAt?: SortOrder
    resolvedBy?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type StockAlertMinOrderByAggregateInput = {
    id?: SortOrder
    partId?: SortOrder
    alertType?: SortOrder
    severity?: SortOrder
    currentStock?: SortOrder
    threshold?: SortOrder
    message?: SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrder
    acknowledgedAt?: SortOrder
    resolvedBy?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type StockAlertSumOrderByAggregateInput = {
    currentStock?: SortOrder
    threshold?: SortOrder
  }

  export type EnumStockAlertTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StockAlertType | EnumStockAlertTypeFieldRefInput<$PrismaModel>
    in?: $Enums.StockAlertType[] | ListEnumStockAlertTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.StockAlertType[] | ListEnumStockAlertTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumStockAlertTypeWithAggregatesFilter<$PrismaModel> | $Enums.StockAlertType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStockAlertTypeFilter<$PrismaModel>
    _max?: NestedEnumStockAlertTypeFilter<$PrismaModel>
  }

  export type EnumAlertSeverityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AlertSeverity | EnumAlertSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.AlertSeverity[] | ListEnumAlertSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.AlertSeverity[] | ListEnumAlertSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumAlertSeverityWithAggregatesFilter<$PrismaModel> | $Enums.AlertSeverity
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAlertSeverityFilter<$PrismaModel>
    _max?: NestedEnumAlertSeverityFilter<$PrismaModel>
  }

  export type EnumAlertStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AlertStatus | EnumAlertStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AlertStatus[] | ListEnumAlertStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AlertStatus[] | ListEnumAlertStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAlertStatusWithAggregatesFilter<$PrismaModel> | $Enums.AlertStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAlertStatusFilter<$PrismaModel>
    _max?: NestedEnumAlertStatusFilter<$PrismaModel>
  }

  export type EnumImportStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportStatus | EnumImportStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportStatus[] | ListEnumImportStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportStatus[] | ListEnumImportStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportStatusFilter<$PrismaModel> | $Enums.ImportStatus
  }

  export type InventoryImportLogCountOrderByAggregateInput = {
    id?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    fileHash?: SortOrder
    status?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    failedRows?: SortOrder
    skippedRows?: SortOrder
    errors?: SortOrder
    summary?: SortOrder
    importedBy?: SortOrder
    importedAt?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    metadata?: SortOrder
  }

  export type InventoryImportLogAvgOrderByAggregateInput = {
    fileSize?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    failedRows?: SortOrder
    skippedRows?: SortOrder
  }

  export type InventoryImportLogMaxOrderByAggregateInput = {
    id?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    fileHash?: SortOrder
    status?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    failedRows?: SortOrder
    skippedRows?: SortOrder
    importedBy?: SortOrder
    importedAt?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
  }

  export type InventoryImportLogMinOrderByAggregateInput = {
    id?: SortOrder
    fileName?: SortOrder
    fileSize?: SortOrder
    fileHash?: SortOrder
    status?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    failedRows?: SortOrder
    skippedRows?: SortOrder
    importedBy?: SortOrder
    importedAt?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
  }

  export type InventoryImportLogSumOrderByAggregateInput = {
    fileSize?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    failedRows?: SortOrder
    skippedRows?: SortOrder
  }

  export type EnumImportStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportStatus | EnumImportStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportStatus[] | ListEnumImportStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportStatus[] | ListEnumImportStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportStatusWithAggregatesFilter<$PrismaModel> | $Enums.ImportStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportStatusFilter<$PrismaModel>
    _max?: NestedEnumImportStatusFilter<$PrismaModel>
  }

  export type PartColumnConfigCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    isDefault?: SortOrder
    isTemplate?: SortOrder
    columns?: SortOrder
    isPublic?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PartColumnConfigMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    isDefault?: SortOrder
    isTemplate?: SortOrder
    isPublic?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PartColumnConfigMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    isDefault?: SortOrder
    isTemplate?: SortOrder
    isPublic?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type GroupCustomFieldListRelationFilter = {
    every?: GroupCustomFieldWhereInput
    some?: GroupCustomFieldWhereInput
    none?: GroupCustomFieldWhereInput
  }

  export type GroupCustomFieldOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PartGroupCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    displayOrder?: SortOrder
    isActive?: SortOrder
    partsCount?: SortOrder
    fieldsCount?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PartGroupAvgOrderByAggregateInput = {
    displayOrder?: SortOrder
    partsCount?: SortOrder
    fieldsCount?: SortOrder
  }

  export type PartGroupMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    displayOrder?: SortOrder
    isActive?: SortOrder
    partsCount?: SortOrder
    fieldsCount?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PartGroupMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    displayOrder?: SortOrder
    isActive?: SortOrder
    partsCount?: SortOrder
    fieldsCount?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type PartGroupSumOrderByAggregateInput = {
    displayOrder?: SortOrder
    partsCount?: SortOrder
    fieldsCount?: SortOrder
  }

  export type EnumGroupFieldTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.GroupFieldType | EnumGroupFieldTypeFieldRefInput<$PrismaModel>
    in?: $Enums.GroupFieldType[] | ListEnumGroupFieldTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.GroupFieldType[] | ListEnumGroupFieldTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumGroupFieldTypeFilter<$PrismaModel> | $Enums.GroupFieldType
  }

  export type PartGroupScalarRelationFilter = {
    is?: PartGroupWhereInput
    isNot?: PartGroupWhereInput
  }

  export type GroupCustomFieldGroupIdKeyCompoundUniqueInput = {
    groupId: string
    key: string
  }

  export type GroupCustomFieldCountOrderByAggregateInput = {
    id?: SortOrder
    groupId?: SortOrder
    key?: SortOrder
    nameEn?: SortOrder
    type?: SortOrder
    required?: SortOrder
    visible?: SortOrder
    editable?: SortOrder
    searchable?: SortOrder
    options?: SortOrder
    validation?: SortOrder
    description?: SortOrder
    placeholder?: SortOrder
    helpText?: SortOrder
    displayOrder?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    nameCn?: SortOrder
  }

  export type GroupCustomFieldAvgOrderByAggregateInput = {
    displayOrder?: SortOrder
  }

  export type GroupCustomFieldMaxOrderByAggregateInput = {
    id?: SortOrder
    groupId?: SortOrder
    key?: SortOrder
    nameEn?: SortOrder
    type?: SortOrder
    required?: SortOrder
    visible?: SortOrder
    editable?: SortOrder
    searchable?: SortOrder
    description?: SortOrder
    placeholder?: SortOrder
    helpText?: SortOrder
    displayOrder?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    nameCn?: SortOrder
  }

  export type GroupCustomFieldMinOrderByAggregateInput = {
    id?: SortOrder
    groupId?: SortOrder
    key?: SortOrder
    nameEn?: SortOrder
    type?: SortOrder
    required?: SortOrder
    visible?: SortOrder
    editable?: SortOrder
    searchable?: SortOrder
    description?: SortOrder
    placeholder?: SortOrder
    helpText?: SortOrder
    displayOrder?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedBy?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    nameCn?: SortOrder
  }

  export type GroupCustomFieldSumOrderByAggregateInput = {
    displayOrder?: SortOrder
  }

  export type EnumGroupFieldTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.GroupFieldType | EnumGroupFieldTypeFieldRefInput<$PrismaModel>
    in?: $Enums.GroupFieldType[] | ListEnumGroupFieldTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.GroupFieldType[] | ListEnumGroupFieldTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumGroupFieldTypeWithAggregatesFilter<$PrismaModel> | $Enums.GroupFieldType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumGroupFieldTypeFilter<$PrismaModel>
    _max?: NestedEnumGroupFieldTypeFilter<$PrismaModel>
  }

  export type PartGroupRelationPartIdGroupIdCompoundUniqueInput = {
    partId: string
    groupId: string
  }

  export type PartGroupRelationCountOrderByAggregateInput = {
    partId?: SortOrder
    groupId?: SortOrder
    createdAt?: SortOrder
    createdBy?: SortOrder
  }

  export type PartGroupRelationMaxOrderByAggregateInput = {
    partId?: SortOrder
    groupId?: SortOrder
    createdAt?: SortOrder
    createdBy?: SortOrder
  }

  export type PartGroupRelationMinOrderByAggregateInput = {
    partId?: SortOrder
    groupId?: SortOrder
    createdAt?: SortOrder
    createdBy?: SortOrder
  }

  export type EnumAIConversationStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AIConversationStatus | EnumAIConversationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AIConversationStatus[] | ListEnumAIConversationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIConversationStatus[] | ListEnumAIConversationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAIConversationStatusFilter<$PrismaModel> | $Enums.AIConversationStatus
  }

  export type EnumAIConversationCategoryFilter<$PrismaModel = never> = {
    equals?: $Enums.AIConversationCategory | EnumAIConversationCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.AIConversationCategory[] | ListEnumAIConversationCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIConversationCategory[] | ListEnumAIConversationCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumAIConversationCategoryFilter<$PrismaModel> | $Enums.AIConversationCategory
  }

  export type AIMessageListRelationFilter = {
    every?: AIMessageWhereInput
    some?: AIMessageWhereInput
    none?: AIMessageWhereInput
  }

  export type AIAssistantTicketListRelationFilter = {
    every?: AIAssistantTicketWhereInput
    some?: AIAssistantTicketWhereInput
    none?: AIAssistantTicketWhereInput
  }

  export type AIMessageOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AIAssistantTicketOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AIConversationCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    title?: SortOrder
    status?: SortOrder
    category?: SortOrder
    tags?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIConversationMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    title?: SortOrder
    status?: SortOrder
    category?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIConversationMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    title?: SortOrder
    status?: SortOrder
    category?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAIConversationStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIConversationStatus | EnumAIConversationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AIConversationStatus[] | ListEnumAIConversationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIConversationStatus[] | ListEnumAIConversationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAIConversationStatusWithAggregatesFilter<$PrismaModel> | $Enums.AIConversationStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIConversationStatusFilter<$PrismaModel>
    _max?: NestedEnumAIConversationStatusFilter<$PrismaModel>
  }

  export type EnumAIConversationCategoryWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIConversationCategory | EnumAIConversationCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.AIConversationCategory[] | ListEnumAIConversationCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIConversationCategory[] | ListEnumAIConversationCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumAIConversationCategoryWithAggregatesFilter<$PrismaModel> | $Enums.AIConversationCategory
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIConversationCategoryFilter<$PrismaModel>
    _max?: NestedEnumAIConversationCategoryFilter<$PrismaModel>
  }

  export type EnumAIMessageRoleFilter<$PrismaModel = never> = {
    equals?: $Enums.AIMessageRole | EnumAIMessageRoleFieldRefInput<$PrismaModel>
    in?: $Enums.AIMessageRole[] | ListEnumAIMessageRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIMessageRole[] | ListEnumAIMessageRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumAIMessageRoleFilter<$PrismaModel> | $Enums.AIMessageRole
  }

  export type EnumAIMessageSourceFilter<$PrismaModel = never> = {
    equals?: $Enums.AIMessageSource | EnumAIMessageSourceFieldRefInput<$PrismaModel>
    in?: $Enums.AIMessageSource[] | ListEnumAIMessageSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIMessageSource[] | ListEnumAIMessageSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumAIMessageSourceFilter<$PrismaModel> | $Enums.AIMessageSource
  }

  export type AIConversationScalarRelationFilter = {
    is?: AIConversationWhereInput
    isNot?: AIConversationWhereInput
  }

  export type AIMessageFeedbackNullableScalarRelationFilter = {
    is?: AIMessageFeedbackWhereInput | null
    isNot?: AIMessageFeedbackWhereInput | null
  }

  export type AIKnowledgeFixNullableScalarRelationFilter = {
    is?: AIKnowledgeFixWhereInput | null
    isNot?: AIKnowledgeFixWhereInput | null
  }

  export type AIMessageCountOrderByAggregateInput = {
    id?: SortOrder
    conversationId?: SortOrder
    role?: SortOrder
    source?: SortOrder
    content?: SortOrder
    tokens?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
  }

  export type AIMessageAvgOrderByAggregateInput = {
    tokens?: SortOrder
  }

  export type AIMessageMaxOrderByAggregateInput = {
    id?: SortOrder
    conversationId?: SortOrder
    role?: SortOrder
    source?: SortOrder
    content?: SortOrder
    tokens?: SortOrder
    createdAt?: SortOrder
  }

  export type AIMessageMinOrderByAggregateInput = {
    id?: SortOrder
    conversationId?: SortOrder
    role?: SortOrder
    source?: SortOrder
    content?: SortOrder
    tokens?: SortOrder
    createdAt?: SortOrder
  }

  export type AIMessageSumOrderByAggregateInput = {
    tokens?: SortOrder
  }

  export type EnumAIMessageRoleWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIMessageRole | EnumAIMessageRoleFieldRefInput<$PrismaModel>
    in?: $Enums.AIMessageRole[] | ListEnumAIMessageRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIMessageRole[] | ListEnumAIMessageRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumAIMessageRoleWithAggregatesFilter<$PrismaModel> | $Enums.AIMessageRole
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIMessageRoleFilter<$PrismaModel>
    _max?: NestedEnumAIMessageRoleFilter<$PrismaModel>
  }

  export type EnumAIMessageSourceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIMessageSource | EnumAIMessageSourceFieldRefInput<$PrismaModel>
    in?: $Enums.AIMessageSource[] | ListEnumAIMessageSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIMessageSource[] | ListEnumAIMessageSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumAIMessageSourceWithAggregatesFilter<$PrismaModel> | $Enums.AIMessageSource
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIMessageSourceFilter<$PrismaModel>
    _max?: NestedEnumAIMessageSourceFilter<$PrismaModel>
  }

  export type EnumAIFeedbackTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AIFeedbackType | EnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AIFeedbackType[] | ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIFeedbackType[] | ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAIFeedbackTypeFilter<$PrismaModel> | $Enums.AIFeedbackType
  }

  export type AIMessageScalarRelationFilter = {
    is?: AIMessageWhereInput
    isNot?: AIMessageWhereInput
  }

  export type AIMessageFeedbackCountOrderByAggregateInput = {
    id?: SortOrder
    messageId?: SortOrder
    type?: SortOrder
    comment?: SortOrder
    createdAt?: SortOrder
  }

  export type AIMessageFeedbackMaxOrderByAggregateInput = {
    id?: SortOrder
    messageId?: SortOrder
    type?: SortOrder
    comment?: SortOrder
    createdAt?: SortOrder
  }

  export type AIMessageFeedbackMinOrderByAggregateInput = {
    id?: SortOrder
    messageId?: SortOrder
    type?: SortOrder
    comment?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumAIFeedbackTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIFeedbackType | EnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AIFeedbackType[] | ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIFeedbackType[] | ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAIFeedbackTypeWithAggregatesFilter<$PrismaModel> | $Enums.AIFeedbackType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIFeedbackTypeFilter<$PrismaModel>
    _max?: NestedEnumAIFeedbackTypeFilter<$PrismaModel>
  }

  export type EnumAITicketCategoryFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketCategory | EnumAITicketCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketCategory[] | ListEnumAITicketCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketCategory[] | ListEnumAITicketCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketCategoryFilter<$PrismaModel> | $Enums.AITicketCategory
  }

  export type EnumAITicketPriorityFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketPriority | EnumAITicketPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketPriority[] | ListEnumAITicketPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketPriority[] | ListEnumAITicketPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketPriorityFilter<$PrismaModel> | $Enums.AITicketPriority
  }

  export type EnumAITicketStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketStatus | EnumAITicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketStatus[] | ListEnumAITicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketStatus[] | ListEnumAITicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketStatusFilter<$PrismaModel> | $Enums.AITicketStatus
  }

  export type EnumAIAssigneeTeamNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.AIAssigneeTeam | EnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    in?: $Enums.AIAssigneeTeam[] | ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AIAssigneeTeam[] | ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAIAssigneeTeamNullableFilter<$PrismaModel> | $Enums.AIAssigneeTeam | null
  }

  export type AIAssistantTicketCountOrderByAggregateInput = {
    id?: SortOrder
    conversationId?: SortOrder
    category?: SortOrder
    priority?: SortOrder
    status?: SortOrder
    title?: SortOrder
    description?: SortOrder
    assigneeId?: SortOrder
    assigneeTeam?: SortOrder
    assignedAt?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    externalTicketId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIAssistantTicketMaxOrderByAggregateInput = {
    id?: SortOrder
    conversationId?: SortOrder
    category?: SortOrder
    priority?: SortOrder
    status?: SortOrder
    title?: SortOrder
    description?: SortOrder
    assigneeId?: SortOrder
    assigneeTeam?: SortOrder
    assignedAt?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    externalTicketId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIAssistantTicketMinOrderByAggregateInput = {
    id?: SortOrder
    conversationId?: SortOrder
    category?: SortOrder
    priority?: SortOrder
    status?: SortOrder
    title?: SortOrder
    description?: SortOrder
    assigneeId?: SortOrder
    assigneeTeam?: SortOrder
    assignedAt?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    externalTicketId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAITicketCategoryWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketCategory | EnumAITicketCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketCategory[] | ListEnumAITicketCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketCategory[] | ListEnumAITicketCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketCategoryWithAggregatesFilter<$PrismaModel> | $Enums.AITicketCategory
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAITicketCategoryFilter<$PrismaModel>
    _max?: NestedEnumAITicketCategoryFilter<$PrismaModel>
  }

  export type EnumAITicketPriorityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketPriority | EnumAITicketPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketPriority[] | ListEnumAITicketPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketPriority[] | ListEnumAITicketPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketPriorityWithAggregatesFilter<$PrismaModel> | $Enums.AITicketPriority
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAITicketPriorityFilter<$PrismaModel>
    _max?: NestedEnumAITicketPriorityFilter<$PrismaModel>
  }

  export type EnumAITicketStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketStatus | EnumAITicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketStatus[] | ListEnumAITicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketStatus[] | ListEnumAITicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketStatusWithAggregatesFilter<$PrismaModel> | $Enums.AITicketStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAITicketStatusFilter<$PrismaModel>
    _max?: NestedEnumAITicketStatusFilter<$PrismaModel>
  }

  export type EnumAIAssigneeTeamNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIAssigneeTeam | EnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    in?: $Enums.AIAssigneeTeam[] | ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AIAssigneeTeam[] | ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAIAssigneeTeamNullableWithAggregatesFilter<$PrismaModel> | $Enums.AIAssigneeTeam | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumAIAssigneeTeamNullableFilter<$PrismaModel>
    _max?: NestedEnumAIAssigneeTeamNullableFilter<$PrismaModel>
  }

  export type EnumAIKnowledgeFixStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AIKnowledgeFixStatus | EnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AIKnowledgeFixStatus[] | ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIKnowledgeFixStatus[] | ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAIKnowledgeFixStatusFilter<$PrismaModel> | $Enums.AIKnowledgeFixStatus
  }

  export type AIKnowledgeFixCountOrderByAggregateInput = {
    id?: SortOrder
    messageId?: SortOrder
    correctAnswer?: SortOrder
    contributorId?: SortOrder
    status?: SortOrder
    reviewerId?: SortOrder
    reviewNote?: SortOrder
    createdAt?: SortOrder
    reviewedAt?: SortOrder
  }

  export type AIKnowledgeFixMaxOrderByAggregateInput = {
    id?: SortOrder
    messageId?: SortOrder
    correctAnswer?: SortOrder
    contributorId?: SortOrder
    status?: SortOrder
    reviewerId?: SortOrder
    reviewNote?: SortOrder
    createdAt?: SortOrder
    reviewedAt?: SortOrder
  }

  export type AIKnowledgeFixMinOrderByAggregateInput = {
    id?: SortOrder
    messageId?: SortOrder
    correctAnswer?: SortOrder
    contributorId?: SortOrder
    status?: SortOrder
    reviewerId?: SortOrder
    reviewNote?: SortOrder
    createdAt?: SortOrder
    reviewedAt?: SortOrder
  }

  export type EnumAIKnowledgeFixStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIKnowledgeFixStatus | EnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AIKnowledgeFixStatus[] | ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIKnowledgeFixStatus[] | ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAIKnowledgeFixStatusWithAggregatesFilter<$PrismaModel> | $Enums.AIKnowledgeFixStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIKnowledgeFixStatusFilter<$PrismaModel>
    _max?: NestedEnumAIKnowledgeFixStatusFilter<$PrismaModel>
  }

  export type AIPromptTemplateCategoryVersionCompoundUniqueInput = {
    category: $Enums.AIConversationCategory
    version: number
  }

  export type AIPromptTemplateCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    category?: SortOrder
    content?: SortOrder
    version?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIPromptTemplateAvgOrderByAggregateInput = {
    version?: SortOrder
  }

  export type AIPromptTemplateMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    category?: SortOrder
    content?: SortOrder
    version?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIPromptTemplateMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    category?: SortOrder
    content?: SortOrder
    version?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIPromptTemplateSumOrderByAggregateInput = {
    version?: SortOrder
  }

  export type AIConfigurationKeyCategoryCompoundUniqueInput = {
    key: string
    category: string
  }

  export type AIConfigurationCountOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    category?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIConfigurationMaxOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    category?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIConfigurationMinOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    category?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FloatFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatFilter<$PrismaModel> | number
  }

  export type AIUsageStatsDateCategoryCompoundUniqueInput = {
    date: Date | string
    category: $Enums.AIConversationCategory
  }

  export type AIUsageStatsCountOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    category?: SortOrder
    totalCalls?: SortOrder
    successCalls?: SortOrder
    failedCalls?: SortOrder
    totalTokens?: SortOrder
    avgTokensPerCall?: SortOrder
    avgResponseTime?: SortOrder
    likesCount?: SortOrder
    dislikesCount?: SortOrder
    escalationCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIUsageStatsAvgOrderByAggregateInput = {
    totalCalls?: SortOrder
    successCalls?: SortOrder
    failedCalls?: SortOrder
    totalTokens?: SortOrder
    avgTokensPerCall?: SortOrder
    avgResponseTime?: SortOrder
    likesCount?: SortOrder
    dislikesCount?: SortOrder
    escalationCount?: SortOrder
  }

  export type AIUsageStatsMaxOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    category?: SortOrder
    totalCalls?: SortOrder
    successCalls?: SortOrder
    failedCalls?: SortOrder
    totalTokens?: SortOrder
    avgTokensPerCall?: SortOrder
    avgResponseTime?: SortOrder
    likesCount?: SortOrder
    dislikesCount?: SortOrder
    escalationCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIUsageStatsMinOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    category?: SortOrder
    totalCalls?: SortOrder
    successCalls?: SortOrder
    failedCalls?: SortOrder
    totalTokens?: SortOrder
    avgTokensPerCall?: SortOrder
    avgResponseTime?: SortOrder
    likesCount?: SortOrder
    dislikesCount?: SortOrder
    escalationCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AIUsageStatsSumOrderByAggregateInput = {
    totalCalls?: SortOrder
    successCalls?: SortOrder
    failedCalls?: SortOrder
    totalTokens?: SortOrder
    avgTokensPerCall?: SortOrder
    avgResponseTime?: SortOrder
    likesCount?: SortOrder
    dislikesCount?: SortOrder
    escalationCount?: SortOrder
  }

  export type FloatWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedFloatFilter<$PrismaModel>
    _min?: NestedFloatFilter<$PrismaModel>
    _max?: NestedFloatFilter<$PrismaModel>
  }

  export type EnumAgentSurfaceFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentSurface | EnumAgentSurfaceFieldRefInput<$PrismaModel>
    in?: $Enums.AgentSurface[] | ListEnumAgentSurfaceFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentSurface[] | ListEnumAgentSurfaceFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentSurfaceFilter<$PrismaModel> | $Enums.AgentSurface
  }

  export type EnumAgentSessionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentSessionStatus | EnumAgentSessionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentSessionStatus[] | ListEnumAgentSessionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentSessionStatus[] | ListEnumAgentSessionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentSessionStatusFilter<$PrismaModel> | $Enums.AgentSessionStatus
  }

  export type EnumAgentPlanModeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentPlanMode | EnumAgentPlanModeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentPlanMode[] | ListEnumAgentPlanModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentPlanMode[] | ListEnumAgentPlanModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentPlanModeFilter<$PrismaModel> | $Enums.AgentPlanMode
  }

  export type EnumAgentPermissionModeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentPermissionMode | EnumAgentPermissionModeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentPermissionMode[] | ListEnumAgentPermissionModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentPermissionMode[] | ListEnumAgentPermissionModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentPermissionModeFilter<$PrismaModel> | $Enums.AgentPermissionMode
  }

  export type AgentMessageListRelationFilter = {
    every?: AgentMessageWhereInput
    some?: AgentMessageWhereInput
    none?: AgentMessageWhereInput
  }

  export type AgentSessionNullableScalarRelationFilter = {
    is?: AgentSessionWhereInput | null
    isNot?: AgentSessionWhereInput | null
  }

  export type AgentSessionListRelationFilter = {
    every?: AgentSessionWhereInput
    some?: AgentSessionWhereInput
    none?: AgentSessionWhereInput
  }

  export type AgentCronListRelationFilter = {
    every?: AgentCronWhereInput
    some?: AgentCronWhereInput
    none?: AgentCronWhereInput
  }

  export type AgentPersonaNullableScalarRelationFilter = {
    is?: AgentPersonaWhereInput | null
    isNot?: AgentPersonaWhereInput | null
  }

  export type AgentMessageOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AgentSessionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AgentCronOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AgentSessionCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    title?: SortOrder
    surface?: SortOrder
    status?: SortOrder
    projectId?: SortOrder
    personaId?: SortOrder
    planMode?: SortOrder
    permissionMode?: SortOrder
    parentSessionId?: SortOrder
    closedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentSessionMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    title?: SortOrder
    surface?: SortOrder
    status?: SortOrder
    projectId?: SortOrder
    personaId?: SortOrder
    planMode?: SortOrder
    permissionMode?: SortOrder
    parentSessionId?: SortOrder
    closedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentSessionMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    title?: SortOrder
    surface?: SortOrder
    status?: SortOrder
    projectId?: SortOrder
    personaId?: SortOrder
    planMode?: SortOrder
    permissionMode?: SortOrder
    parentSessionId?: SortOrder
    closedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAgentSurfaceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentSurface | EnumAgentSurfaceFieldRefInput<$PrismaModel>
    in?: $Enums.AgentSurface[] | ListEnumAgentSurfaceFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentSurface[] | ListEnumAgentSurfaceFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentSurfaceWithAggregatesFilter<$PrismaModel> | $Enums.AgentSurface
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentSurfaceFilter<$PrismaModel>
    _max?: NestedEnumAgentSurfaceFilter<$PrismaModel>
  }

  export type EnumAgentSessionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentSessionStatus | EnumAgentSessionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentSessionStatus[] | ListEnumAgentSessionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentSessionStatus[] | ListEnumAgentSessionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentSessionStatusWithAggregatesFilter<$PrismaModel> | $Enums.AgentSessionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentSessionStatusFilter<$PrismaModel>
    _max?: NestedEnumAgentSessionStatusFilter<$PrismaModel>
  }

  export type EnumAgentPlanModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentPlanMode | EnumAgentPlanModeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentPlanMode[] | ListEnumAgentPlanModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentPlanMode[] | ListEnumAgentPlanModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentPlanModeWithAggregatesFilter<$PrismaModel> | $Enums.AgentPlanMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentPlanModeFilter<$PrismaModel>
    _max?: NestedEnumAgentPlanModeFilter<$PrismaModel>
  }

  export type EnumAgentPermissionModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentPermissionMode | EnumAgentPermissionModeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentPermissionMode[] | ListEnumAgentPermissionModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentPermissionMode[] | ListEnumAgentPermissionModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentPermissionModeWithAggregatesFilter<$PrismaModel> | $Enums.AgentPermissionMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentPermissionModeFilter<$PrismaModel>
    _max?: NestedEnumAgentPermissionModeFilter<$PrismaModel>
  }

  export type EnumAgentMessageTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentMessageType | EnumAgentMessageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentMessageType[] | ListEnumAgentMessageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentMessageType[] | ListEnumAgentMessageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentMessageTypeFilter<$PrismaModel> | $Enums.AgentMessageType
  }

  export type AgentSessionScalarRelationFilter = {
    is?: AgentSessionWhereInput
    isNot?: AgentSessionWhereInput
  }

  export type AgentMessageCountOrderByAggregateInput = {
    id?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    type?: SortOrder
    content?: SortOrder
    payload?: SortOrder
    model?: SortOrder
    sequence?: SortOrder
    createdAt?: SortOrder
  }

  export type AgentMessageAvgOrderByAggregateInput = {
    sequence?: SortOrder
  }

  export type AgentMessageMaxOrderByAggregateInput = {
    id?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    type?: SortOrder
    content?: SortOrder
    model?: SortOrder
    sequence?: SortOrder
    createdAt?: SortOrder
  }

  export type AgentMessageMinOrderByAggregateInput = {
    id?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    type?: SortOrder
    content?: SortOrder
    model?: SortOrder
    sequence?: SortOrder
    createdAt?: SortOrder
  }

  export type AgentMessageSumOrderByAggregateInput = {
    sequence?: SortOrder
  }

  export type EnumAgentMessageTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentMessageType | EnumAgentMessageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentMessageType[] | ListEnumAgentMessageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentMessageType[] | ListEnumAgentMessageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentMessageTypeWithAggregatesFilter<$PrismaModel> | $Enums.AgentMessageType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentMessageTypeFilter<$PrismaModel>
    _max?: NestedEnumAgentMessageTypeFilter<$PrismaModel>
  }

  export type EnumModelRoutingScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.ModelRoutingScope | EnumModelRoutingScopeFieldRefInput<$PrismaModel>
    in?: $Enums.ModelRoutingScope[] | ListEnumModelRoutingScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ModelRoutingScope[] | ListEnumModelRoutingScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumModelRoutingScopeFilter<$PrismaModel> | $Enums.ModelRoutingScope
  }

  export type ModelRoutingRuleCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    name?: SortOrder
    priority?: SortOrder
    enabled?: SortOrder
    pattern?: SortOrder
    primary?: SortOrder
    fallbacks?: SortOrder
    reasoning?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ModelRoutingRuleAvgOrderByAggregateInput = {
    priority?: SortOrder
  }

  export type ModelRoutingRuleMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    name?: SortOrder
    priority?: SortOrder
    enabled?: SortOrder
    reasoning?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ModelRoutingRuleMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    name?: SortOrder
    priority?: SortOrder
    enabled?: SortOrder
    reasoning?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ModelRoutingRuleSumOrderByAggregateInput = {
    priority?: SortOrder
  }

  export type EnumModelRoutingScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ModelRoutingScope | EnumModelRoutingScopeFieldRefInput<$PrismaModel>
    in?: $Enums.ModelRoutingScope[] | ListEnumModelRoutingScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ModelRoutingScope[] | ListEnumModelRoutingScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumModelRoutingScopeWithAggregatesFilter<$PrismaModel> | $Enums.ModelRoutingScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumModelRoutingScopeFilter<$PrismaModel>
    _max?: NestedEnumModelRoutingScopeFilter<$PrismaModel>
  }

  export type EnumModelRoutingMatchSourceFilter<$PrismaModel = never> = {
    equals?: $Enums.ModelRoutingMatchSource | EnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    in?: $Enums.ModelRoutingMatchSource[] | ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.ModelRoutingMatchSource[] | ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumModelRoutingMatchSourceFilter<$PrismaModel> | $Enums.ModelRoutingMatchSource
  }

  export type FloatNullableFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableFilter<$PrismaModel> | number | null
  }

  export type ModelRoutingDecisionCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    request?: SortOrder
    decision?: SortOrder
    matchSource?: SortOrder
    matchedRuleId?: SortOrder
    primaryProvider?: SortOrder
    primaryModel?: SortOrder
    estimatedCostUsd?: SortOrder
    actualCostUsd?: SortOrder
    actualLatencyMs?: SortOrder
    createdAt?: SortOrder
  }

  export type ModelRoutingDecisionAvgOrderByAggregateInput = {
    estimatedCostUsd?: SortOrder
    actualCostUsd?: SortOrder
    actualLatencyMs?: SortOrder
  }

  export type ModelRoutingDecisionMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    matchSource?: SortOrder
    matchedRuleId?: SortOrder
    primaryProvider?: SortOrder
    primaryModel?: SortOrder
    estimatedCostUsd?: SortOrder
    actualCostUsd?: SortOrder
    actualLatencyMs?: SortOrder
    createdAt?: SortOrder
  }

  export type ModelRoutingDecisionMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    matchSource?: SortOrder
    matchedRuleId?: SortOrder
    primaryProvider?: SortOrder
    primaryModel?: SortOrder
    estimatedCostUsd?: SortOrder
    actualCostUsd?: SortOrder
    actualLatencyMs?: SortOrder
    createdAt?: SortOrder
  }

  export type ModelRoutingDecisionSumOrderByAggregateInput = {
    estimatedCostUsd?: SortOrder
    actualCostUsd?: SortOrder
    actualLatencyMs?: SortOrder
  }

  export type EnumModelRoutingMatchSourceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ModelRoutingMatchSource | EnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    in?: $Enums.ModelRoutingMatchSource[] | ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.ModelRoutingMatchSource[] | ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumModelRoutingMatchSourceWithAggregatesFilter<$PrismaModel> | $Enums.ModelRoutingMatchSource
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumModelRoutingMatchSourceFilter<$PrismaModel>
    _max?: NestedEnumModelRoutingMatchSourceFilter<$PrismaModel>
  }

  export type FloatNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedFloatNullableFilter<$PrismaModel>
    _min?: NestedFloatNullableFilter<$PrismaModel>
    _max?: NestedFloatNullableFilter<$PrismaModel>
  }

  export type EnumAgentTrajectoryEventTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentTrajectoryEventType | EnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentTrajectoryEventType[] | ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentTrajectoryEventType[] | ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentTrajectoryEventTypeFilter<$PrismaModel> | $Enums.AgentTrajectoryEventType
  }

  export type AgentTrajectoryEventSessionIdSequenceInSessionCompoundUniqueInput = {
    sessionId: string
    sequenceInSession: number
  }

  export type AgentTrajectoryEventCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    eventType?: SortOrder
    payload?: SortOrder
    sequenceInSession?: SortOrder
    prevEventHash?: SortOrder
    eventHash?: SortOrder
    createdAt?: SortOrder
  }

  export type AgentTrajectoryEventAvgOrderByAggregateInput = {
    sequenceInSession?: SortOrder
  }

  export type AgentTrajectoryEventMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    eventType?: SortOrder
    sequenceInSession?: SortOrder
    prevEventHash?: SortOrder
    eventHash?: SortOrder
    createdAt?: SortOrder
  }

  export type AgentTrajectoryEventMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    eventType?: SortOrder
    sequenceInSession?: SortOrder
    prevEventHash?: SortOrder
    eventHash?: SortOrder
    createdAt?: SortOrder
  }

  export type AgentTrajectoryEventSumOrderByAggregateInput = {
    sequenceInSession?: SortOrder
  }

  export type EnumAgentTrajectoryEventTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentTrajectoryEventType | EnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentTrajectoryEventType[] | ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentTrajectoryEventType[] | ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentTrajectoryEventTypeWithAggregatesFilter<$PrismaModel> | $Enums.AgentTrajectoryEventType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentTrajectoryEventTypeFilter<$PrismaModel>
    _max?: NestedEnumAgentTrajectoryEventTypeFilter<$PrismaModel>
  }

  export type EnumAgentQuotaScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentQuotaScope | EnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentQuotaScope[] | ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentQuotaScope[] | ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentQuotaScopeFilter<$PrismaModel> | $Enums.AgentQuotaScope
  }

  export type AgentQuotaScopeScopeRefIdCompoundUniqueInput = {
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
  }

  export type AgentQuotaCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    monthlyTokens?: SortOrder
    monthlyCostUsd?: SortOrder
    softLimitRatio?: SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentQuotaAvgOrderByAggregateInput = {
    monthlyTokens?: SortOrder
    monthlyCostUsd?: SortOrder
    softLimitRatio?: SortOrder
  }

  export type AgentQuotaMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    monthlyTokens?: SortOrder
    monthlyCostUsd?: SortOrder
    softLimitRatio?: SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentQuotaMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    monthlyTokens?: SortOrder
    monthlyCostUsd?: SortOrder
    softLimitRatio?: SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentQuotaSumOrderByAggregateInput = {
    monthlyTokens?: SortOrder
    monthlyCostUsd?: SortOrder
    softLimitRatio?: SortOrder
  }

  export type EnumAgentQuotaScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentQuotaScope | EnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentQuotaScope[] | ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentQuotaScope[] | ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentQuotaScopeWithAggregatesFilter<$PrismaModel> | $Enums.AgentQuotaScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentQuotaScopeFilter<$PrismaModel>
    _max?: NestedEnumAgentQuotaScopeFilter<$PrismaModel>
  }

  export type AgentQuotaUsageScopeScopeRefIdPeriodStartCompoundUniqueInput = {
    scope: $Enums.AgentQuotaScope
    scopeRefId: string
    periodStart: Date | string
  }

  export type AgentQuotaUsageCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    periodStart?: SortOrder
    tokensUsed?: SortOrder
    costUsdUsed?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentQuotaUsageAvgOrderByAggregateInput = {
    tokensUsed?: SortOrder
    costUsdUsed?: SortOrder
  }

  export type AgentQuotaUsageMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    periodStart?: SortOrder
    tokensUsed?: SortOrder
    costUsdUsed?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentQuotaUsageMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    periodStart?: SortOrder
    tokensUsed?: SortOrder
    costUsdUsed?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentQuotaUsageSumOrderByAggregateInput = {
    tokensUsed?: SortOrder
    costUsdUsed?: SortOrder
  }

  export type OrganizationAgentSettingsCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    defaultPlanMode?: SortOrder
    defaultPermissionMode?: SortOrder
    disabledCapabilities?: SortOrder
    allowedCliTools?: SortOrder
    allowedPermissionModes?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OrganizationAgentSettingsMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    defaultPlanMode?: SortOrder
    defaultPermissionMode?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OrganizationAgentSettingsMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    defaultPlanMode?: SortOrder
    defaultPermissionMode?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAgentArtifactTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentArtifactType | EnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentArtifactType[] | ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentArtifactType[] | ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentArtifactTypeFilter<$PrismaModel> | $Enums.AgentArtifactType
  }

  export type AgentArtifactCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    createdById?: SortOrder
    type?: SortOrder
    title?: SortOrder
    data?: SortOrder
    previewUrl?: SortOrder
    mimeType?: SortOrder
    sizeBytes?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentArtifactAvgOrderByAggregateInput = {
    sizeBytes?: SortOrder
  }

  export type AgentArtifactMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    createdById?: SortOrder
    type?: SortOrder
    title?: SortOrder
    previewUrl?: SortOrder
    mimeType?: SortOrder
    sizeBytes?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentArtifactMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    turnId?: SortOrder
    createdById?: SortOrder
    type?: SortOrder
    title?: SortOrder
    previewUrl?: SortOrder
    mimeType?: SortOrder
    sizeBytes?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentArtifactSumOrderByAggregateInput = {
    sizeBytes?: SortOrder
  }

  export type EnumAgentArtifactTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentArtifactType | EnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentArtifactType[] | ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentArtifactType[] | ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentArtifactTypeWithAggregatesFilter<$PrismaModel> | $Enums.AgentArtifactType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentArtifactTypeFilter<$PrismaModel>
    _max?: NestedEnumAgentArtifactTypeFilter<$PrismaModel>
  }

  export type EnumAgentTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentTaskStatus | EnumAgentTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentTaskStatus[] | ListEnumAgentTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentTaskStatus[] | ListEnumAgentTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentTaskStatusFilter<$PrismaModel> | $Enums.AgentTaskStatus
  }

  export type AgentTaskTrackerCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    parentTaskId?: SortOrder
    title?: SortOrder
    description?: SortOrder
    status?: SortOrder
    progress?: SortOrder
    metadata?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentTaskTrackerAvgOrderByAggregateInput = {
    progress?: SortOrder
  }

  export type AgentTaskTrackerMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    parentTaskId?: SortOrder
    title?: SortOrder
    description?: SortOrder
    status?: SortOrder
    progress?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentTaskTrackerMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    parentTaskId?: SortOrder
    title?: SortOrder
    description?: SortOrder
    status?: SortOrder
    progress?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentTaskTrackerSumOrderByAggregateInput = {
    progress?: SortOrder
  }

  export type EnumAgentTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentTaskStatus | EnumAgentTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentTaskStatus[] | ListEnumAgentTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentTaskStatus[] | ListEnumAgentTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.AgentTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumAgentTaskStatusFilter<$PrismaModel>
  }

  export type AgentScratchpadSessionIdKeyCompoundUniqueInput = {
    sessionId: string
    key: string
  }

  export type AgentScratchpadCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    key?: SortOrder
    value?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentScratchpadMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    key?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentScratchpadMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    sessionId?: SortOrder
    key?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumStorageBindingScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageBindingScope | EnumStorageBindingScopeFieldRefInput<$PrismaModel>
    in?: $Enums.StorageBindingScope[] | ListEnumStorageBindingScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageBindingScope[] | ListEnumStorageBindingScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageBindingScopeFilter<$PrismaModel> | $Enums.StorageBindingScope
  }

  export type EnumStorageBackendKindFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageBackendKind | EnumStorageBackendKindFieldRefInput<$PrismaModel>
    in?: $Enums.StorageBackendKind[] | ListEnumStorageBackendKindFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageBackendKind[] | ListEnumStorageBackendKindFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageBackendKindFilter<$PrismaModel> | $Enums.StorageBackendKind
  }

  export type StorageFileListRelationFilter = {
    every?: StorageFileWhereInput
    some?: StorageFileWhereInput
    none?: StorageFileWhereInput
  }

  export type StorageFileOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type StorageBindingCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    kind?: SortOrder
    displayName?: SortOrder
    config?: SortOrder
    encryptedSecret?: SortOrder
    keyId?: SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type StorageBindingMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    kind?: SortOrder
    displayName?: SortOrder
    encryptedSecret?: SortOrder
    keyId?: SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type StorageBindingMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    scope?: SortOrder
    scopeRefId?: SortOrder
    kind?: SortOrder
    displayName?: SortOrder
    encryptedSecret?: SortOrder
    keyId?: SortOrder
    enabled?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumStorageBindingScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageBindingScope | EnumStorageBindingScopeFieldRefInput<$PrismaModel>
    in?: $Enums.StorageBindingScope[] | ListEnumStorageBindingScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageBindingScope[] | ListEnumStorageBindingScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageBindingScopeWithAggregatesFilter<$PrismaModel> | $Enums.StorageBindingScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStorageBindingScopeFilter<$PrismaModel>
    _max?: NestedEnumStorageBindingScopeFilter<$PrismaModel>
  }

  export type EnumStorageBackendKindWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageBackendKind | EnumStorageBackendKindFieldRefInput<$PrismaModel>
    in?: $Enums.StorageBackendKind[] | ListEnumStorageBackendKindFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageBackendKind[] | ListEnumStorageBackendKindFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageBackendKindWithAggregatesFilter<$PrismaModel> | $Enums.StorageBackendKind
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStorageBackendKindFilter<$PrismaModel>
    _max?: NestedEnumStorageBackendKindFilter<$PrismaModel>
  }

  export type StorageBindingScalarRelationFilter = {
    is?: StorageBindingWhereInput
    isNot?: StorageBindingWhereInput
  }

  export type StorageFileCountOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    organizationId?: SortOrder
    path?: SortOrder
    externalId?: SortOrder
    sizeBytes?: SortOrder
    mimeType?: SortOrder
    sha256?: SortOrder
    encrypted?: SortOrder
    uploadedById?: SortOrder
    createdAt?: SortOrder
  }

  export type StorageFileAvgOrderByAggregateInput = {
    sizeBytes?: SortOrder
  }

  export type StorageFileMaxOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    organizationId?: SortOrder
    path?: SortOrder
    externalId?: SortOrder
    sizeBytes?: SortOrder
    mimeType?: SortOrder
    sha256?: SortOrder
    encrypted?: SortOrder
    uploadedById?: SortOrder
    createdAt?: SortOrder
  }

  export type StorageFileMinOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    organizationId?: SortOrder
    path?: SortOrder
    externalId?: SortOrder
    sizeBytes?: SortOrder
    mimeType?: SortOrder
    sha256?: SortOrder
    encrypted?: SortOrder
    uploadedById?: SortOrder
    createdAt?: SortOrder
  }

  export type StorageFileSumOrderByAggregateInput = {
    sizeBytes?: SortOrder
  }

  export type AgentMemoryListRelationFilter = {
    every?: AgentMemoryWhereInput
    some?: AgentMemoryWhereInput
    none?: AgentMemoryWhereInput
  }

  export type AgentMemoryOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AgentProjectCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    instructions?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentProjectMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    instructions?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentProjectMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    instructions?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumMemoryOwnerScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryOwnerScope | EnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryOwnerScope[] | ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryOwnerScope[] | ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryOwnerScopeFilter<$PrismaModel> | $Enums.MemoryOwnerScope
  }

  export type EnumMemoryScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryScope | EnumMemoryScopeFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryScope[] | ListEnumMemoryScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryScope[] | ListEnumMemoryScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryScopeFilter<$PrismaModel> | $Enums.MemoryScope
  }

  export type EnumMemoryCategoryFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryCategory | EnumMemoryCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryCategory[] | ListEnumMemoryCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryCategory[] | ListEnumMemoryCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryCategoryFilter<$PrismaModel> | $Enums.MemoryCategory
  }

  export type AgentProjectNullableScalarRelationFilter = {
    is?: AgentProjectWhereInput | null
    isNot?: AgentProjectWhereInput | null
  }

  export type AgentMemoryCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    ownerScope?: SortOrder
    content?: SortOrder
    scope?: SortOrder
    category?: SortOrder
    projectId?: SortOrder
    personaId?: SortOrder
    source?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentMemoryMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    ownerScope?: SortOrder
    content?: SortOrder
    scope?: SortOrder
    category?: SortOrder
    projectId?: SortOrder
    personaId?: SortOrder
    source?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentMemoryMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    ownerScope?: SortOrder
    content?: SortOrder
    scope?: SortOrder
    category?: SortOrder
    projectId?: SortOrder
    personaId?: SortOrder
    source?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumMemoryOwnerScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryOwnerScope | EnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryOwnerScope[] | ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryOwnerScope[] | ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryOwnerScopeWithAggregatesFilter<$PrismaModel> | $Enums.MemoryOwnerScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMemoryOwnerScopeFilter<$PrismaModel>
    _max?: NestedEnumMemoryOwnerScopeFilter<$PrismaModel>
  }

  export type EnumMemoryScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryScope | EnumMemoryScopeFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryScope[] | ListEnumMemoryScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryScope[] | ListEnumMemoryScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryScopeWithAggregatesFilter<$PrismaModel> | $Enums.MemoryScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMemoryScopeFilter<$PrismaModel>
    _max?: NestedEnumMemoryScopeFilter<$PrismaModel>
  }

  export type EnumMemoryCategoryWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryCategory | EnumMemoryCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryCategory[] | ListEnumMemoryCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryCategory[] | ListEnumMemoryCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryCategoryWithAggregatesFilter<$PrismaModel> | $Enums.MemoryCategory
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMemoryCategoryFilter<$PrismaModel>
    _max?: NestedEnumMemoryCategoryFilter<$PrismaModel>
  }

  export type AgentPersonaOrganizationIdSystemKeyCompoundUniqueInput = {
    organizationId: string
    systemKey: string
  }

  export type AgentPersonaCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    systemKey?: SortOrder
    name?: SortOrder
    icon?: SortOrder
    description?: SortOrder
    instructions?: SortOrder
    allowedTools?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentPersonaMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    systemKey?: SortOrder
    name?: SortOrder
    icon?: SortOrder
    description?: SortOrder
    instructions?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentPersonaMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    systemKey?: SortOrder
    name?: SortOrder
    icon?: SortOrder
    description?: SortOrder
    instructions?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentCronCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    sessionId?: SortOrder
    name?: SortOrder
    cronExpr?: SortOrder
    prompt?: SortOrder
    enabled?: SortOrder
    lastRunAt?: SortOrder
    nextRunAt?: SortOrder
    runCount?: SortOrder
    failCount?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentCronAvgOrderByAggregateInput = {
    runCount?: SortOrder
    failCount?: SortOrder
  }

  export type AgentCronMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    sessionId?: SortOrder
    name?: SortOrder
    cronExpr?: SortOrder
    prompt?: SortOrder
    enabled?: SortOrder
    lastRunAt?: SortOrder
    nextRunAt?: SortOrder
    runCount?: SortOrder
    failCount?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentCronMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    sessionId?: SortOrder
    name?: SortOrder
    cronExpr?: SortOrder
    prompt?: SortOrder
    enabled?: SortOrder
    lastRunAt?: SortOrder
    nextRunAt?: SortOrder
    runCount?: SortOrder
    failCount?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentCronSumOrderByAggregateInput = {
    runCount?: SortOrder
    failCount?: SortOrder
  }

  export type AgentMcpServerCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    transport?: SortOrder
    endpoint?: SortOrder
    args?: SortOrder
    env?: SortOrder
    enabled?: SortOrder
    lastConnectedAt?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentMcpServerMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    transport?: SortOrder
    endpoint?: SortOrder
    args?: SortOrder
    env?: SortOrder
    enabled?: SortOrder
    lastConnectedAt?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AgentMcpServerMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    name?: SortOrder
    transport?: SortOrder
    endpoint?: SortOrder
    args?: SortOrder
    env?: SortOrder
    enabled?: SortOrder
    lastConnectedAt?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageTokenCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    prefix?: SortOrder
    tokenHash?: SortOrder
    lastUsedAt?: SortOrder
    lastUsedIp?: SortOrder
    revokedAt?: SortOrder
    revokedById?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageTokenMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    prefix?: SortOrder
    tokenHash?: SortOrder
    lastUsedAt?: SortOrder
    lastUsedIp?: SortOrder
    revokedAt?: SortOrder
    revokedById?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageTokenMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    prefix?: SortOrder
    tokenHash?: SortOrder
    lastUsedAt?: SortOrder
    lastUsedIp?: SortOrder
    revokedAt?: SortOrder
    revokedById?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAiUsageOsPlatformFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageOsPlatform | EnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageOsPlatform[] | ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageOsPlatform[] | ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageOsPlatformFilter<$PrismaModel> | $Enums.AiUsageOsPlatform
  }

  export type AiUsageDeviceCountOrderByAggregateInput = {
    id?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    hostname?: SortOrder
    osUser?: SortOrder
    osPlatform?: SortOrder
    agentVersion?: SortOrder
    firstSeenAt?: SortOrder
    firstSeenIp?: SortOrder
    lastSeenAt?: SortOrder
    blockedAt?: SortOrder
    blockedById?: SortOrder
    blockedReason?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageDeviceMaxOrderByAggregateInput = {
    id?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    hostname?: SortOrder
    osUser?: SortOrder
    osPlatform?: SortOrder
    agentVersion?: SortOrder
    firstSeenAt?: SortOrder
    firstSeenIp?: SortOrder
    lastSeenAt?: SortOrder
    blockedAt?: SortOrder
    blockedById?: SortOrder
    blockedReason?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageDeviceMinOrderByAggregateInput = {
    id?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    hostname?: SortOrder
    osUser?: SortOrder
    osPlatform?: SortOrder
    agentVersion?: SortOrder
    firstSeenAt?: SortOrder
    firstSeenIp?: SortOrder
    lastSeenAt?: SortOrder
    blockedAt?: SortOrder
    blockedById?: SortOrder
    blockedReason?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAiUsageOsPlatformWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageOsPlatform | EnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageOsPlatform[] | ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageOsPlatform[] | ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageOsPlatformWithAggregatesFilter<$PrismaModel> | $Enums.AiUsageOsPlatform
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAiUsageOsPlatformFilter<$PrismaModel>
    _max?: NestedEnumAiUsageOsPlatformFilter<$PrismaModel>
  }

  export type EnumAiUsageToolFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageTool | EnumAiUsageToolFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageTool[] | ListEnumAiUsageToolFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageTool[] | ListEnumAiUsageToolFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageToolFilter<$PrismaModel> | $Enums.AiUsageTool
  }

  export type AiUsageDeviceScalarRelationFilter = {
    is?: AiUsageDeviceWhereInput
    isNot?: AiUsageDeviceWhereInput
  }

  export type AiUsageEventCountOrderByAggregateInput = {
    id?: SortOrder
    rawMessageId?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    tool?: SortOrder
    sessionId?: SortOrder
    projectPath?: SortOrder
    projectBasename?: SortOrder
    model?: SortOrder
    ts?: SortOrder
    receivedAt?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalTokens?: SortOrder
    estimatedCostUsd?: SortOrder
    gitBranch?: SortOrder
    agentVersionEvent?: SortOrder
    worktreeLabel?: SortOrder
    cwdBasename?: SortOrder
    turnIndex?: SortOrder
    toolUseCount?: SortOrder
    toolNames?: SortOrder
    stopReason?: SortOrder
    serviceTier?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageEventAvgOrderByAggregateInput = {
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalTokens?: SortOrder
    estimatedCostUsd?: SortOrder
    turnIndex?: SortOrder
    toolUseCount?: SortOrder
  }

  export type AiUsageEventMaxOrderByAggregateInput = {
    id?: SortOrder
    rawMessageId?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    tool?: SortOrder
    sessionId?: SortOrder
    projectPath?: SortOrder
    projectBasename?: SortOrder
    model?: SortOrder
    ts?: SortOrder
    receivedAt?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalTokens?: SortOrder
    estimatedCostUsd?: SortOrder
    gitBranch?: SortOrder
    agentVersionEvent?: SortOrder
    worktreeLabel?: SortOrder
    cwdBasename?: SortOrder
    turnIndex?: SortOrder
    toolUseCount?: SortOrder
    stopReason?: SortOrder
    serviceTier?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageEventMinOrderByAggregateInput = {
    id?: SortOrder
    rawMessageId?: SortOrder
    deviceId?: SortOrder
    userId?: SortOrder
    tool?: SortOrder
    sessionId?: SortOrder
    projectPath?: SortOrder
    projectBasename?: SortOrder
    model?: SortOrder
    ts?: SortOrder
    receivedAt?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalTokens?: SortOrder
    estimatedCostUsd?: SortOrder
    gitBranch?: SortOrder
    agentVersionEvent?: SortOrder
    worktreeLabel?: SortOrder
    cwdBasename?: SortOrder
    turnIndex?: SortOrder
    toolUseCount?: SortOrder
    stopReason?: SortOrder
    serviceTier?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageEventSumOrderByAggregateInput = {
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalTokens?: SortOrder
    estimatedCostUsd?: SortOrder
    turnIndex?: SortOrder
    toolUseCount?: SortOrder
  }

  export type EnumAiUsageToolWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageTool | EnumAiUsageToolFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageTool[] | ListEnumAiUsageToolFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageTool[] | ListEnumAiUsageToolFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageToolWithAggregatesFilter<$PrismaModel> | $Enums.AiUsageTool
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAiUsageToolFilter<$PrismaModel>
    _max?: NestedEnumAiUsageToolFilter<$PrismaModel>
  }

  export type EnumAiUsageDlqReasonFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageDlqReason | EnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageDlqReason[] | ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageDlqReason[] | ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageDlqReasonFilter<$PrismaModel> | $Enums.AiUsageDlqReason
  }

  export type AiUsageEventDlqCountOrderByAggregateInput = {
    id?: SortOrder
    deviceId?: SortOrder
    reason?: SortOrder
    rawPayload?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageEventDlqMaxOrderByAggregateInput = {
    id?: SortOrder
    deviceId?: SortOrder
    reason?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageEventDlqMinOrderByAggregateInput = {
    id?: SortOrder
    deviceId?: SortOrder
    reason?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAiUsageDlqReasonWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageDlqReason | EnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageDlqReason[] | ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageDlqReason[] | ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageDlqReasonWithAggregatesFilter<$PrismaModel> | $Enums.AiUsageDlqReason
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAiUsageDlqReasonFilter<$PrismaModel>
    _max?: NestedEnumAiUsageDlqReasonFilter<$PrismaModel>
  }

  export type BigIntFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel>
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel>
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntFilter<$PrismaModel> | bigint | number
  }

  export type AiUsageDailyRollupUniq_rollup_dimCompoundUniqueInput = {
    date: Date | string
    userId: string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
  }

  export type AiUsageDailyRollupCountOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    userId?: SortOrder
    projectBasename?: SortOrder
    tool?: SortOrder
    model?: SortOrder
    totalTokens?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalCostUsd?: SortOrder
    eventCount?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageDailyRollupAvgOrderByAggregateInput = {
    totalTokens?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalCostUsd?: SortOrder
    eventCount?: SortOrder
  }

  export type AiUsageDailyRollupMaxOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    userId?: SortOrder
    projectBasename?: SortOrder
    tool?: SortOrder
    model?: SortOrder
    totalTokens?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalCostUsd?: SortOrder
    eventCount?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageDailyRollupMinOrderByAggregateInput = {
    id?: SortOrder
    date?: SortOrder
    userId?: SortOrder
    projectBasename?: SortOrder
    tool?: SortOrder
    model?: SortOrder
    totalTokens?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalCostUsd?: SortOrder
    eventCount?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AiUsageDailyRollupSumOrderByAggregateInput = {
    totalTokens?: SortOrder
    inputTokens?: SortOrder
    outputTokens?: SortOrder
    cacheCreationTokens?: SortOrder
    cacheReadTokens?: SortOrder
    totalCostUsd?: SortOrder
    eventCount?: SortOrder
  }

  export type BigIntWithAggregatesFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel>
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel>
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntWithAggregatesFilter<$PrismaModel> | bigint | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedBigIntFilter<$PrismaModel>
    _min?: NestedBigIntFilter<$PrismaModel>
    _max?: NestedBigIntFilter<$PrismaModel>
  }

  export type EnumAuditActionFilter<$PrismaModel = never> = {
    equals?: $Enums.AuditAction | EnumAuditActionFieldRefInput<$PrismaModel>
    in?: $Enums.AuditAction[] | ListEnumAuditActionFieldRefInput<$PrismaModel>
    notIn?: $Enums.AuditAction[] | ListEnumAuditActionFieldRefInput<$PrismaModel>
    not?: NestedEnumAuditActionFilter<$PrismaModel> | $Enums.AuditAction
  }

  export type EnumAuditStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AuditStatus | EnumAuditStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AuditStatus[] | ListEnumAuditStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AuditStatus[] | ListEnumAuditStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAuditStatusFilter<$PrismaModel> | $Enums.AuditStatus
  }

  export type EnumRiskLevelFilter<$PrismaModel = never> = {
    equals?: $Enums.RiskLevel | EnumRiskLevelFieldRefInput<$PrismaModel>
    in?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumRiskLevelFilter<$PrismaModel> | $Enums.RiskLevel
  }

  export type EnumComplianceLevelFilter<$PrismaModel = never> = {
    equals?: $Enums.ComplianceLevel | EnumComplianceLevelFieldRefInput<$PrismaModel>
    in?: $Enums.ComplianceLevel[] | ListEnumComplianceLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.ComplianceLevel[] | ListEnumComplianceLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumComplianceLevelFilter<$PrismaModel> | $Enums.ComplianceLevel
  }

  export type AuditDatabaseChangeLogListRelationFilter = {
    every?: AuditDatabaseChangeLogWhereInput
    some?: AuditDatabaseChangeLogWhereInput
    none?: AuditDatabaseChangeLogWhereInput
  }

  export type AuditSensitiveOperationLogListRelationFilter = {
    every?: AuditSensitiveOperationLogWhereInput
    some?: AuditSensitiveOperationLogWhereInput
    none?: AuditSensitiveOperationLogWhereInput
  }

  export type AuditDatabaseChangeLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AuditSensitiveOperationLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AuditLogCountOrderByAggregateInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    who?: SortOrder
    what?: SortOrder
    when?: SortOrder
    where?: SortOrder
    why?: SortOrder
    how?: SortOrder
    module?: SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    oldValue?: SortOrder
    newValue?: SortOrder
    changes?: SortOrder
    userId?: SortOrder
    sessionId?: SortOrder
    traceId?: SortOrder
    requestId?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    deviceId?: SortOrder
    geoLocation?: SortOrder
    businessType?: SortOrder
    businessKey?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    duration?: SortOrder
    isFinancial?: SortOrder
    isSensitive?: SortOrder
    riskLevel?: SortOrder
    complianceLevel?: SortOrder
    retentionYears?: SortOrder
    previousHash?: SortOrder
    currentHash?: SortOrder
    signature?: SortOrder
    createdAt?: SortOrder
    archivedAt?: SortOrder
  }

  export type AuditLogAvgOrderByAggregateInput = {
    duration?: SortOrder
    retentionYears?: SortOrder
  }

  export type AuditLogMaxOrderByAggregateInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    who?: SortOrder
    what?: SortOrder
    when?: SortOrder
    where?: SortOrder
    why?: SortOrder
    how?: SortOrder
    module?: SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    userId?: SortOrder
    sessionId?: SortOrder
    traceId?: SortOrder
    requestId?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    deviceId?: SortOrder
    geoLocation?: SortOrder
    businessType?: SortOrder
    businessKey?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    duration?: SortOrder
    isFinancial?: SortOrder
    isSensitive?: SortOrder
    riskLevel?: SortOrder
    complianceLevel?: SortOrder
    retentionYears?: SortOrder
    previousHash?: SortOrder
    currentHash?: SortOrder
    signature?: SortOrder
    createdAt?: SortOrder
    archivedAt?: SortOrder
  }

  export type AuditLogMinOrderByAggregateInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    who?: SortOrder
    what?: SortOrder
    when?: SortOrder
    where?: SortOrder
    why?: SortOrder
    how?: SortOrder
    module?: SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    userId?: SortOrder
    sessionId?: SortOrder
    traceId?: SortOrder
    requestId?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    deviceId?: SortOrder
    geoLocation?: SortOrder
    businessType?: SortOrder
    businessKey?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    duration?: SortOrder
    isFinancial?: SortOrder
    isSensitive?: SortOrder
    riskLevel?: SortOrder
    complianceLevel?: SortOrder
    retentionYears?: SortOrder
    previousHash?: SortOrder
    currentHash?: SortOrder
    signature?: SortOrder
    createdAt?: SortOrder
    archivedAt?: SortOrder
  }

  export type AuditLogSumOrderByAggregateInput = {
    duration?: SortOrder
    retentionYears?: SortOrder
  }

  export type EnumAuditActionWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AuditAction | EnumAuditActionFieldRefInput<$PrismaModel>
    in?: $Enums.AuditAction[] | ListEnumAuditActionFieldRefInput<$PrismaModel>
    notIn?: $Enums.AuditAction[] | ListEnumAuditActionFieldRefInput<$PrismaModel>
    not?: NestedEnumAuditActionWithAggregatesFilter<$PrismaModel> | $Enums.AuditAction
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAuditActionFilter<$PrismaModel>
    _max?: NestedEnumAuditActionFilter<$PrismaModel>
  }

  export type EnumAuditStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AuditStatus | EnumAuditStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AuditStatus[] | ListEnumAuditStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AuditStatus[] | ListEnumAuditStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAuditStatusWithAggregatesFilter<$PrismaModel> | $Enums.AuditStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAuditStatusFilter<$PrismaModel>
    _max?: NestedEnumAuditStatusFilter<$PrismaModel>
  }

  export type EnumRiskLevelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RiskLevel | EnumRiskLevelFieldRefInput<$PrismaModel>
    in?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumRiskLevelWithAggregatesFilter<$PrismaModel> | $Enums.RiskLevel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRiskLevelFilter<$PrismaModel>
    _max?: NestedEnumRiskLevelFilter<$PrismaModel>
  }

  export type EnumComplianceLevelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ComplianceLevel | EnumComplianceLevelFieldRefInput<$PrismaModel>
    in?: $Enums.ComplianceLevel[] | ListEnumComplianceLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.ComplianceLevel[] | ListEnumComplianceLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumComplianceLevelWithAggregatesFilter<$PrismaModel> | $Enums.ComplianceLevel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumComplianceLevelFilter<$PrismaModel>
    _max?: NestedEnumComplianceLevelFilter<$PrismaModel>
  }

  export type EnumDbOperationFilter<$PrismaModel = never> = {
    equals?: $Enums.DbOperation | EnumDbOperationFieldRefInput<$PrismaModel>
    in?: $Enums.DbOperation[] | ListEnumDbOperationFieldRefInput<$PrismaModel>
    notIn?: $Enums.DbOperation[] | ListEnumDbOperationFieldRefInput<$PrismaModel>
    not?: NestedEnumDbOperationFilter<$PrismaModel> | $Enums.DbOperation
  }

  export type AuditLogScalarRelationFilter = {
    is?: AuditLogWhereInput
    isNot?: AuditLogWhereInput
  }

  export type AuditDatabaseChangeLogCountOrderByAggregateInput = {
    id?: SortOrder
    tableName?: SortOrder
    operation?: SortOrder
    recordId?: SortOrder
    oldData?: SortOrder
    newData?: SortOrder
    changedFields?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditDatabaseChangeLogMaxOrderByAggregateInput = {
    id?: SortOrder
    tableName?: SortOrder
    operation?: SortOrder
    recordId?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditDatabaseChangeLogMinOrderByAggregateInput = {
    id?: SortOrder
    tableName?: SortOrder
    operation?: SortOrder
    recordId?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumDbOperationWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DbOperation | EnumDbOperationFieldRefInput<$PrismaModel>
    in?: $Enums.DbOperation[] | ListEnumDbOperationFieldRefInput<$PrismaModel>
    notIn?: $Enums.DbOperation[] | ListEnumDbOperationFieldRefInput<$PrismaModel>
    not?: NestedEnumDbOperationWithAggregatesFilter<$PrismaModel> | $Enums.DbOperation
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDbOperationFilter<$PrismaModel>
    _max?: NestedEnumDbOperationFilter<$PrismaModel>
  }

  export type AuditSensitiveOperationLogCountOrderByAggregateInput = {
    id?: SortOrder
    operationType?: SortOrder
    description?: SortOrder
    requiresApproval?: SortOrder
    approvedBy?: SortOrder
    approvalTime?: SortOrder
    riskLevel?: SortOrder
    mfaVerified?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditSensitiveOperationLogMaxOrderByAggregateInput = {
    id?: SortOrder
    operationType?: SortOrder
    description?: SortOrder
    requiresApproval?: SortOrder
    approvedBy?: SortOrder
    approvalTime?: SortOrder
    riskLevel?: SortOrder
    mfaVerified?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditSensitiveOperationLogMinOrderByAggregateInput = {
    id?: SortOrder
    operationType?: SortOrder
    description?: SortOrder
    requiresApproval?: SortOrder
    approvedBy?: SortOrder
    approvalTime?: SortOrder
    riskLevel?: SortOrder
    mfaVerified?: SortOrder
    userId?: SortOrder
    auditLogId?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumIntegrityCheckTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.IntegrityCheckType | EnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    in?: $Enums.IntegrityCheckType[] | ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.IntegrityCheckType[] | ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumIntegrityCheckTypeFilter<$PrismaModel> | $Enums.IntegrityCheckType
  }

  export type EnumCheckStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.CheckStatus | EnumCheckStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CheckStatus[] | ListEnumCheckStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CheckStatus[] | ListEnumCheckStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCheckStatusFilter<$PrismaModel> | $Enums.CheckStatus
  }

  export type AuditIntegrityCheckLogCountOrderByAggregateInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    checkType?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    recordCount?: SortOrder
    passCount?: SortOrder
    failCount?: SortOrder
    failures?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditIntegrityCheckLogAvgOrderByAggregateInput = {
    recordCount?: SortOrder
    passCount?: SortOrder
    failCount?: SortOrder
  }

  export type AuditIntegrityCheckLogMaxOrderByAggregateInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    checkType?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    recordCount?: SortOrder
    passCount?: SortOrder
    failCount?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditIntegrityCheckLogMinOrderByAggregateInput = {
    id?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    checkType?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    recordCount?: SortOrder
    passCount?: SortOrder
    failCount?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditIntegrityCheckLogSumOrderByAggregateInput = {
    recordCount?: SortOrder
    passCount?: SortOrder
    failCount?: SortOrder
  }

  export type EnumIntegrityCheckTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.IntegrityCheckType | EnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    in?: $Enums.IntegrityCheckType[] | ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.IntegrityCheckType[] | ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumIntegrityCheckTypeWithAggregatesFilter<$PrismaModel> | $Enums.IntegrityCheckType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumIntegrityCheckTypeFilter<$PrismaModel>
    _max?: NestedEnumIntegrityCheckTypeFilter<$PrismaModel>
  }

  export type EnumCheckStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CheckStatus | EnumCheckStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CheckStatus[] | ListEnumCheckStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CheckStatus[] | ListEnumCheckStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCheckStatusWithAggregatesFilter<$PrismaModel> | $Enums.CheckStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCheckStatusFilter<$PrismaModel>
    _max?: NestedEnumCheckStatusFilter<$PrismaModel>
  }

  export type EnumAutomationTaskTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationTaskType | EnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationTaskType[] | ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationTaskType[] | ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationTaskTypeFilter<$PrismaModel> | $Enums.AutomationTaskType
  }

  export type EnumAutomationTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationTaskStatus | EnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationTaskStatus[] | ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationTaskStatus[] | ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationTaskStatusFilter<$PrismaModel> | $Enums.AutomationTaskStatus
  }

  export type EnumAutomationExecutionStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationExecutionStatus | EnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAutomationExecutionStatusNullableFilter<$PrismaModel> | $Enums.AutomationExecutionStatus | null
  }

  export type AutomationExecutionListRelationFilter = {
    every?: AutomationExecutionWhereInput
    some?: AutomationExecutionWhereInput
    none?: AutomationExecutionWhereInput
  }

  export type AutomationExecutionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AutomationTaskCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    type?: SortOrder
    status?: SortOrder
    scheduleType?: SortOrder
    scheduleConfig?: SortOrder
    config?: SortOrder
    timeout?: SortOrder
    retryCount?: SortOrder
    lastRunAt?: SortOrder
    lastStatus?: SortOrder
    nextRunAt?: SortOrder
    totalRuns?: SortOrder
    successRuns?: SortOrder
    failedRuns?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AutomationTaskAvgOrderByAggregateInput = {
    timeout?: SortOrder
    retryCount?: SortOrder
    totalRuns?: SortOrder
    successRuns?: SortOrder
    failedRuns?: SortOrder
  }

  export type AutomationTaskMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    type?: SortOrder
    status?: SortOrder
    scheduleType?: SortOrder
    timeout?: SortOrder
    retryCount?: SortOrder
    lastRunAt?: SortOrder
    lastStatus?: SortOrder
    nextRunAt?: SortOrder
    totalRuns?: SortOrder
    successRuns?: SortOrder
    failedRuns?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AutomationTaskMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    type?: SortOrder
    status?: SortOrder
    scheduleType?: SortOrder
    timeout?: SortOrder
    retryCount?: SortOrder
    lastRunAt?: SortOrder
    lastStatus?: SortOrder
    nextRunAt?: SortOrder
    totalRuns?: SortOrder
    successRuns?: SortOrder
    failedRuns?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AutomationTaskSumOrderByAggregateInput = {
    timeout?: SortOrder
    retryCount?: SortOrder
    totalRuns?: SortOrder
    successRuns?: SortOrder
    failedRuns?: SortOrder
  }

  export type EnumAutomationTaskTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationTaskType | EnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationTaskType[] | ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationTaskType[] | ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationTaskTypeWithAggregatesFilter<$PrismaModel> | $Enums.AutomationTaskType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAutomationTaskTypeFilter<$PrismaModel>
    _max?: NestedEnumAutomationTaskTypeFilter<$PrismaModel>
  }

  export type EnumAutomationTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationTaskStatus | EnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationTaskStatus[] | ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationTaskStatus[] | ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.AutomationTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAutomationTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumAutomationTaskStatusFilter<$PrismaModel>
  }

  export type EnumAutomationExecutionStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationExecutionStatus | EnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAutomationExecutionStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.AutomationExecutionStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumAutomationExecutionStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumAutomationExecutionStatusNullableFilter<$PrismaModel>
  }

  export type EnumAutomationExecutionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationExecutionStatus | EnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationExecutionStatusFilter<$PrismaModel> | $Enums.AutomationExecutionStatus
  }

  export type AutomationTaskScalarRelationFilter = {
    is?: AutomationTaskWhereInput
    isNot?: AutomationTaskWhereInput
  }

  export type AutomationExecutionCountOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    status?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    duration?: SortOrder
    result?: SortOrder
    error?: SortOrder
    logs?: SortOrder
    triggerType?: SortOrder
    triggeredBy?: SortOrder
    createdAt?: SortOrder
  }

  export type AutomationExecutionAvgOrderByAggregateInput = {
    duration?: SortOrder
  }

  export type AutomationExecutionMaxOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    status?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    duration?: SortOrder
    error?: SortOrder
    logs?: SortOrder
    triggerType?: SortOrder
    triggeredBy?: SortOrder
    createdAt?: SortOrder
  }

  export type AutomationExecutionMinOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    status?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    duration?: SortOrder
    error?: SortOrder
    logs?: SortOrder
    triggerType?: SortOrder
    triggeredBy?: SortOrder
    createdAt?: SortOrder
  }

  export type AutomationExecutionSumOrderByAggregateInput = {
    duration?: SortOrder
  }

  export type EnumAutomationExecutionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationExecutionStatus | EnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationExecutionStatusWithAggregatesFilter<$PrismaModel> | $Enums.AutomationExecutionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAutomationExecutionStatusFilter<$PrismaModel>
    _max?: NestedEnumAutomationExecutionStatusFilter<$PrismaModel>
  }

  export type DingtalkSyncConfigCountOrderByAggregateInput = {
    id?: SortOrder
    taskCode?: SortOrder
    formUuid?: SortOrder
    appType?: SortOrder
    fieldMapping?: SortOrder
    syncDirection?: SortOrder
    searchCondition?: SortOrder
    lookbackMinutes?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkSyncConfigAvgOrderByAggregateInput = {
    lookbackMinutes?: SortOrder
  }

  export type DingtalkSyncConfigMaxOrderByAggregateInput = {
    id?: SortOrder
    taskCode?: SortOrder
    formUuid?: SortOrder
    appType?: SortOrder
    syncDirection?: SortOrder
    lookbackMinutes?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkSyncConfigMinOrderByAggregateInput = {
    id?: SortOrder
    taskCode?: SortOrder
    formUuid?: SortOrder
    appType?: SortOrder
    syncDirection?: SortOrder
    lookbackMinutes?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkSyncConfigSumOrderByAggregateInput = {
    lookbackMinutes?: SortOrder
  }

  export type DingtalkLeaveCodeCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    year?: SortOrder
    category?: SortOrder
    isActive?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkLeaveCodeAvgOrderByAggregateInput = {
    year?: SortOrder
  }

  export type DingtalkLeaveCodeMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    year?: SortOrder
    category?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkLeaveCodeMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    year?: SortOrder
    category?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkLeaveCodeSumOrderByAggregateInput = {
    year?: SortOrder
  }

  export type DingtalkLeaveQuotaSnapshotUserIdLeaveCodeQuotaCycleStartDateEndDateCompoundUniqueInput = {
    userId: string
    leaveCode: string
    quotaCycle: string
    startDate: Date | string
    endDate: Date | string
  }

  export type DingtalkLeaveQuotaSnapshotCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    leaveCode?: SortOrder
    leaveType?: SortOrder
    quotaCycle?: SortOrder
    totalDays?: SortOrder
    usedDays?: SortOrder
    remainingDays?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    usageRecords?: SortOrder
    releaseRecords?: SortOrder
    snapshotAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkLeaveQuotaSnapshotAvgOrderByAggregateInput = {
    totalDays?: SortOrder
    usedDays?: SortOrder
    remainingDays?: SortOrder
  }

  export type DingtalkLeaveQuotaSnapshotMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    leaveCode?: SortOrder
    leaveType?: SortOrder
    quotaCycle?: SortOrder
    totalDays?: SortOrder
    usedDays?: SortOrder
    remainingDays?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    snapshotAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkLeaveQuotaSnapshotMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    leaveCode?: SortOrder
    leaveType?: SortOrder
    quotaCycle?: SortOrder
    totalDays?: SortOrder
    usedDays?: SortOrder
    remainingDays?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    snapshotAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkLeaveQuotaSnapshotSumOrderByAggregateInput = {
    totalDays?: SortOrder
    usedDays?: SortOrder
    remainingDays?: SortOrder
  }

  export type SapPurchaseSyncRecordCountOrderByAggregateInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    applicantName?: SortOrder
    budgetAmount?: SortOrder
    sapPrNumber?: SortOrder
    sapStatus?: SortOrder
    sapMessages?: SortOrder
    sapRawResponse?: SortOrder
    approverChain?: SortOrder
    syncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseSyncRecordAvgOrderByAggregateInput = {
    budgetAmount?: SortOrder
  }

  export type SapPurchaseSyncRecordMaxOrderByAggregateInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    applicantName?: SortOrder
    budgetAmount?: SortOrder
    sapPrNumber?: SortOrder
    sapStatus?: SortOrder
    approverChain?: SortOrder
    syncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseSyncRecordMinOrderByAggregateInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    applicantName?: SortOrder
    budgetAmount?: SortOrder
    sapPrNumber?: SortOrder
    sapStatus?: SortOrder
    approverChain?: SortOrder
    syncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseSyncRecordSumOrderByAggregateInput = {
    budgetAmount?: SortOrder
  }

  export type DingtalkEmployeeCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    employeeNumber?: SortOrder
    department?: SortOrder
    position?: SortOrder
    rank?: SortOrder
    phone?: SortOrder
    country?: SortOrder
    workPlace?: SortOrder
    contractCompany?: SortOrder
    bank?: SortOrder
    bankCardLast4?: SortOrder
    monthlyStandardHours?: SortOrder
    workHourLimit?: SortOrder
    joinDate?: SortOrder
    workStartDate?: SortOrder
    tenureDays?: SortOrder
    status?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeAvgOrderByAggregateInput = {
    tenureDays?: SortOrder
  }

  export type DingtalkEmployeeMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    employeeNumber?: SortOrder
    department?: SortOrder
    position?: SortOrder
    rank?: SortOrder
    phone?: SortOrder
    country?: SortOrder
    workPlace?: SortOrder
    contractCompany?: SortOrder
    bank?: SortOrder
    bankCardLast4?: SortOrder
    monthlyStandardHours?: SortOrder
    workHourLimit?: SortOrder
    joinDate?: SortOrder
    workStartDate?: SortOrder
    tenureDays?: SortOrder
    status?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    name?: SortOrder
    employeeNumber?: SortOrder
    department?: SortOrder
    position?: SortOrder
    rank?: SortOrder
    phone?: SortOrder
    country?: SortOrder
    workPlace?: SortOrder
    contractCompany?: SortOrder
    bank?: SortOrder
    bankCardLast4?: SortOrder
    monthlyStandardHours?: SortOrder
    workHourLimit?: SortOrder
    joinDate?: SortOrder
    workStartDate?: SortOrder
    tenureDays?: SortOrder
    status?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeSumOrderByAggregateInput = {
    tenureDays?: SortOrder
  }

  export type DingtalkEmployeeEmploymentPeriodUserIdPeriodIndexCompoundUniqueInput = {
    userId: string
    periodIndex: number
  }

  export type DingtalkEmployeeEmploymentPeriodCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    periodIndex?: SortOrder
    joinDate?: SortOrder
    leaveDate?: SortOrder
    countInTenure?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeEmploymentPeriodAvgOrderByAggregateInput = {
    periodIndex?: SortOrder
  }

  export type DingtalkEmployeeEmploymentPeriodMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    periodIndex?: SortOrder
    joinDate?: SortOrder
    leaveDate?: SortOrder
    countInTenure?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeEmploymentPeriodMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    periodIndex?: SortOrder
    joinDate?: SortOrder
    leaveDate?: SortOrder
    countInTenure?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeEmploymentPeriodSumOrderByAggregateInput = {
    periodIndex?: SortOrder
  }

  export type DingtalkEmployeeSuspensionPeriodCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    reason?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeSuspensionPeriodMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    reason?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkEmployeeSuspensionPeriodMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    reason?: SortOrder
    note?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseCacheCountOrderByAggregateInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    sapEnv?: SortOrder
    applicantName?: SortOrder
    applicantDept?: SortOrder
    budgetNumber?: SortOrder
    budgetAmount?: SortOrder
    purchaseProjectDescription?: SortOrder
    applicationDate?: SortOrder
    demandCategory?: SortOrder
    purchasingCompanyName?: SortOrder
    materialGroup?: SortOrder
    formData?: SortOrder
    yidaModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseCacheAvgOrderByAggregateInput = {
    budgetAmount?: SortOrder
  }

  export type SapPurchaseCacheMaxOrderByAggregateInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    sapEnv?: SortOrder
    applicantName?: SortOrder
    applicantDept?: SortOrder
    budgetNumber?: SortOrder
    budgetAmount?: SortOrder
    purchaseProjectDescription?: SortOrder
    applicationDate?: SortOrder
    demandCategory?: SortOrder
    purchasingCompanyName?: SortOrder
    materialGroup?: SortOrder
    yidaModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseCacheMinOrderByAggregateInput = {
    id?: SortOrder
    serialNumber?: SortOrder
    formInstanceId?: SortOrder
    sapEnv?: SortOrder
    applicantName?: SortOrder
    applicantDept?: SortOrder
    budgetNumber?: SortOrder
    budgetAmount?: SortOrder
    purchaseProjectDescription?: SortOrder
    applicationDate?: SortOrder
    demandCategory?: SortOrder
    purchasingCompanyName?: SortOrder
    materialGroup?: SortOrder
    yidaModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SapPurchaseCacheSumOrderByAggregateInput = {
    budgetAmount?: SortOrder
  }

  export type AdpPtoScheduleUserIdAdpEntryIdCompoundUniqueInput = {
    userId: string
    adpEntryId: string
  }

  export type AdpPtoScheduleCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    adpAoid?: SortOrder
    leaveDate?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    adpEntryId?: SortOrder
    syncedAt?: SortOrder
  }

  export type AdpPtoScheduleMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    adpAoid?: SortOrder
    leaveDate?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    adpEntryId?: SortOrder
    syncedAt?: SortOrder
  }

  export type AdpPtoScheduleMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    adpAoid?: SortOrder
    leaveDate?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    adpEntryId?: SortOrder
    syncedAt?: SortOrder
  }

  export type DingtalkAnnualLeaveReleasePlanUserIdYearCompoundUniqueInput = {
    userId: string
    year: number
  }

  export type DingtalkAnnualLeaveReleasePlanCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    year?: SortOrder
    status?: SortOrder
    joinDate?: SortOrder
    workStartDate?: SortOrder
    adjustmentDays?: SortOrder
    notCountDays?: SortOrder
    totalDays?: SortOrder
    releaseSchedule?: SortOrder
    lastCalculatedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkAnnualLeaveReleasePlanAvgOrderByAggregateInput = {
    year?: SortOrder
    adjustmentDays?: SortOrder
    notCountDays?: SortOrder
    totalDays?: SortOrder
  }

  export type DingtalkAnnualLeaveReleasePlanMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    year?: SortOrder
    status?: SortOrder
    joinDate?: SortOrder
    workStartDate?: SortOrder
    adjustmentDays?: SortOrder
    notCountDays?: SortOrder
    totalDays?: SortOrder
    lastCalculatedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkAnnualLeaveReleasePlanMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeName?: SortOrder
    employeeNumber?: SortOrder
    year?: SortOrder
    status?: SortOrder
    joinDate?: SortOrder
    workStartDate?: SortOrder
    adjustmentDays?: SortOrder
    notCountDays?: SortOrder
    totalDays?: SortOrder
    lastCalculatedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DingtalkAnnualLeaveReleasePlanSumOrderByAggregateInput = {
    year?: SortOrder
    adjustmentDays?: SortOrder
    notCountDays?: SortOrder
    totalDays?: SortOrder
  }

  export type EnumDevItemTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemType | EnumDevItemTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemType[] | ListEnumDevItemTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemType[] | ListEnumDevItemTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemTypeFilter<$PrismaModel> | $Enums.DevItemType
  }

  export type EnumDevItemStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemStatus | EnumDevItemStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemStatus[] | ListEnumDevItemStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemStatus[] | ListEnumDevItemStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemStatusFilter<$PrismaModel> | $Enums.DevItemStatus
  }

  export type EnumDevItemPriorityFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemPriority | EnumDevItemPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemPriority[] | ListEnumDevItemPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemPriority[] | ListEnumDevItemPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemPriorityFilter<$PrismaModel> | $Enums.DevItemPriority
  }

  export type EnumDevItemSeverityNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemSeverity | EnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    in?: $Enums.DevItemSeverity[] | ListEnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DevItemSeverity[] | ListEnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDevItemSeverityNullableFilter<$PrismaModel> | $Enums.DevItemSeverity | null
  }

  export type DevItemNullableScalarRelationFilter = {
    is?: DevItemWhereInput | null
    isNot?: DevItemWhereInput | null
  }

  export type DevItemListRelationFilter = {
    every?: DevItemWhereInput
    some?: DevItemWhereInput
    none?: DevItemWhereInput
  }

  export type DevItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type DevItemCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    itemType?: SortOrder
    status?: SortOrder
    priority?: SortOrder
    severity?: SortOrder
    moduleKey?: SortOrder
    parentId?: SortOrder
    ownerId?: SortOrder
    reporterId?: SortOrder
    reviewerId?: SortOrder
    reviewedAt?: SortOrder
    startAt?: SortOrder
    devEtaAt?: SortOrder
    testEtaAt?: SortOrder
    etaAt?: SortOrder
    devCompletedAt?: SortOrder
    testCompletedAt?: SortOrder
    completedAt?: SortOrder
    content?: SortOrder
    labels?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type DevItemMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    itemType?: SortOrder
    status?: SortOrder
    priority?: SortOrder
    severity?: SortOrder
    moduleKey?: SortOrder
    parentId?: SortOrder
    ownerId?: SortOrder
    reporterId?: SortOrder
    reviewerId?: SortOrder
    reviewedAt?: SortOrder
    startAt?: SortOrder
    devEtaAt?: SortOrder
    testEtaAt?: SortOrder
    etaAt?: SortOrder
    devCompletedAt?: SortOrder
    testCompletedAt?: SortOrder
    completedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type DevItemMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    title?: SortOrder
    description?: SortOrder
    itemType?: SortOrder
    status?: SortOrder
    priority?: SortOrder
    severity?: SortOrder
    moduleKey?: SortOrder
    parentId?: SortOrder
    ownerId?: SortOrder
    reporterId?: SortOrder
    reviewerId?: SortOrder
    reviewedAt?: SortOrder
    startAt?: SortOrder
    devEtaAt?: SortOrder
    testEtaAt?: SortOrder
    etaAt?: SortOrder
    devCompletedAt?: SortOrder
    testCompletedAt?: SortOrder
    completedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumDevItemTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemType | EnumDevItemTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemType[] | ListEnumDevItemTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemType[] | ListEnumDevItemTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemTypeWithAggregatesFilter<$PrismaModel> | $Enums.DevItemType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDevItemTypeFilter<$PrismaModel>
    _max?: NestedEnumDevItemTypeFilter<$PrismaModel>
  }

  export type EnumDevItemStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemStatus | EnumDevItemStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemStatus[] | ListEnumDevItemStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemStatus[] | ListEnumDevItemStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemStatusWithAggregatesFilter<$PrismaModel> | $Enums.DevItemStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDevItemStatusFilter<$PrismaModel>
    _max?: NestedEnumDevItemStatusFilter<$PrismaModel>
  }

  export type EnumDevItemPriorityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemPriority | EnumDevItemPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemPriority[] | ListEnumDevItemPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemPriority[] | ListEnumDevItemPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemPriorityWithAggregatesFilter<$PrismaModel> | $Enums.DevItemPriority
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDevItemPriorityFilter<$PrismaModel>
    _max?: NestedEnumDevItemPriorityFilter<$PrismaModel>
  }

  export type EnumDevItemSeverityNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemSeverity | EnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    in?: $Enums.DevItemSeverity[] | ListEnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DevItemSeverity[] | ListEnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDevItemSeverityNullableWithAggregatesFilter<$PrismaModel> | $Enums.DevItemSeverity | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumDevItemSeverityNullableFilter<$PrismaModel>
    _max?: NestedEnumDevItemSeverityNullableFilter<$PrismaModel>
  }

  export type DevItemSequenceCountOrderByAggregateInput = {
    prefix?: SortOrder
    current?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DevItemSequenceAvgOrderByAggregateInput = {
    current?: SortOrder
  }

  export type DevItemSequenceMaxOrderByAggregateInput = {
    prefix?: SortOrder
    current?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DevItemSequenceMinOrderByAggregateInput = {
    prefix?: SortOrder
    current?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DevItemSequenceSumOrderByAggregateInput = {
    current?: SortOrder
  }

  export type ReleaseNoteCountOrderByAggregateInput = {
    id?: SortOrder
    version?: SortOrder
    title?: SortOrder
    content?: SortOrder
    releasedAt?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ReleaseNoteMaxOrderByAggregateInput = {
    id?: SortOrder
    version?: SortOrder
    title?: SortOrder
    releasedAt?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ReleaseNoteMinOrderByAggregateInput = {
    id?: SortOrder
    version?: SortOrder
    title?: SortOrder
    releasedAt?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumFeedbackTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackType | EnumFeedbackTypeFieldRefInput<$PrismaModel>
    in?: $Enums.FeedbackType[] | ListEnumFeedbackTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.FeedbackType[] | ListEnumFeedbackTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumFeedbackTypeFilter<$PrismaModel> | $Enums.FeedbackType
  }

  export type EnumFeedbackStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackStatus | EnumFeedbackStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FeedbackStatus[] | ListEnumFeedbackStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FeedbackStatus[] | ListEnumFeedbackStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFeedbackStatusFilter<$PrismaModel> | $Enums.FeedbackStatus
  }

  export type EnumFeedbackPriorityNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackPriority | EnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    in?: $Enums.FeedbackPriority[] | ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.FeedbackPriority[] | ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    not?: NestedEnumFeedbackPriorityNullableFilter<$PrismaModel> | $Enums.FeedbackPriority | null
  }

  export type FeedbackCountOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    attachments?: SortOrder
    pageUrl?: SortOrder
    userAgent?: SortOrder
    status?: SortOrder
    priority?: SortOrder
    adminNote?: SortOrder
    adminReply?: SortOrder
    assigneeId?: SortOrder
    resolvedAt?: SortOrder
    userId?: SortOrder
    region?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type FeedbackMaxOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    pageUrl?: SortOrder
    userAgent?: SortOrder
    status?: SortOrder
    priority?: SortOrder
    adminNote?: SortOrder
    adminReply?: SortOrder
    assigneeId?: SortOrder
    resolvedAt?: SortOrder
    userId?: SortOrder
    region?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type FeedbackMinOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    pageUrl?: SortOrder
    userAgent?: SortOrder
    status?: SortOrder
    priority?: SortOrder
    adminNote?: SortOrder
    adminReply?: SortOrder
    assigneeId?: SortOrder
    resolvedAt?: SortOrder
    userId?: SortOrder
    region?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumFeedbackTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackType | EnumFeedbackTypeFieldRefInput<$PrismaModel>
    in?: $Enums.FeedbackType[] | ListEnumFeedbackTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.FeedbackType[] | ListEnumFeedbackTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumFeedbackTypeWithAggregatesFilter<$PrismaModel> | $Enums.FeedbackType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFeedbackTypeFilter<$PrismaModel>
    _max?: NestedEnumFeedbackTypeFilter<$PrismaModel>
  }

  export type EnumFeedbackStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackStatus | EnumFeedbackStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FeedbackStatus[] | ListEnumFeedbackStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FeedbackStatus[] | ListEnumFeedbackStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFeedbackStatusWithAggregatesFilter<$PrismaModel> | $Enums.FeedbackStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFeedbackStatusFilter<$PrismaModel>
    _max?: NestedEnumFeedbackStatusFilter<$PrismaModel>
  }

  export type EnumFeedbackPriorityNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackPriority | EnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    in?: $Enums.FeedbackPriority[] | ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.FeedbackPriority[] | ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    not?: NestedEnumFeedbackPriorityNullableWithAggregatesFilter<$PrismaModel> | $Enums.FeedbackPriority | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumFeedbackPriorityNullableFilter<$PrismaModel>
    _max?: NestedEnumFeedbackPriorityNullableFilter<$PrismaModel>
  }

  export type EnumFormStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.FormStatus | EnumFormStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormStatus[] | ListEnumFormStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormStatus[] | ListEnumFormStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormStatusFilter<$PrismaModel> | $Enums.FormStatus
  }

  export type FormInstanceListRelationFilter = {
    every?: FormInstanceWhereInput
    some?: FormInstanceWhereInput
    none?: FormInstanceWhereInput
  }

  export type FormVersionListRelationFilter = {
    every?: FormVersionWhereInput
    some?: FormVersionWhereInput
    none?: FormVersionWhereInput
  }

  export type FormInstanceOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FormVersionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FormDefinitionCountOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    slug?: SortOrder
    slugHistory?: SortOrder
    aliases?: SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    defaultLocale?: SortOrder
    supportedLocales?: SortOrder
    latestVersion?: SortOrder
    status?: SortOrder
    requiresApproval?: SortOrder
    approvalProcessKey?: SortOrder
    organizationId?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormDefinitionAvgOrderByAggregateInput = {
    latestVersion?: SortOrder
  }

  export type FormDefinitionMaxOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    slug?: SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    defaultLocale?: SortOrder
    latestVersion?: SortOrder
    status?: SortOrder
    requiresApproval?: SortOrder
    approvalProcessKey?: SortOrder
    organizationId?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormDefinitionMinOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    slug?: SortOrder
    name?: SortOrder
    category?: SortOrder
    description?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    defaultLocale?: SortOrder
    latestVersion?: SortOrder
    status?: SortOrder
    requiresApproval?: SortOrder
    approvalProcessKey?: SortOrder
    organizationId?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormDefinitionSumOrderByAggregateInput = {
    latestVersion?: SortOrder
  }

  export type EnumFormStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FormStatus | EnumFormStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormStatus[] | ListEnumFormStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormStatus[] | ListEnumFormStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormStatusWithAggregatesFilter<$PrismaModel> | $Enums.FormStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFormStatusFilter<$PrismaModel>
    _max?: NestedEnumFormStatusFilter<$PrismaModel>
  }

  export type EnumFormVersionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.FormVersionStatus | EnumFormVersionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormVersionStatus[] | ListEnumFormVersionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormVersionStatus[] | ListEnumFormVersionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormVersionStatusFilter<$PrismaModel> | $Enums.FormVersionStatus
  }

  export type FormTranslationListRelationFilter = {
    every?: FormTranslationWhereInput
    some?: FormTranslationWhereInput
    none?: FormTranslationWhereInput
  }

  export type FormDefinitionScalarRelationFilter = {
    is?: FormDefinitionWhereInput
    isNot?: FormDefinitionWhereInput
  }

  export type FormTranslationOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FormVersionDefinitionIdVersionCompoundUniqueInput = {
    definitionId: string
    version: number
  }

  export type FormVersionCountOrderByAggregateInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    schema?: SortOrder
    uiSchema?: SortOrder
    viewSchema?: SortOrder
    validation?: SortOrder
    changelog?: SortOrder
    nameI18n?: SortOrder
    descriptionI18n?: SortOrder
    isDefault?: SortOrder
    status?: SortOrder
    reviewedBy?: SortOrder
    reviewedAt?: SortOrder
    reviewComment?: SortOrder
    publishedAt?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
  }

  export type FormVersionAvgOrderByAggregateInput = {
    version?: SortOrder
  }

  export type FormVersionMaxOrderByAggregateInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    changelog?: SortOrder
    isDefault?: SortOrder
    status?: SortOrder
    reviewedBy?: SortOrder
    reviewedAt?: SortOrder
    reviewComment?: SortOrder
    publishedAt?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
  }

  export type FormVersionMinOrderByAggregateInput = {
    id?: SortOrder
    definitionId?: SortOrder
    version?: SortOrder
    changelog?: SortOrder
    isDefault?: SortOrder
    status?: SortOrder
    reviewedBy?: SortOrder
    reviewedAt?: SortOrder
    reviewComment?: SortOrder
    publishedAt?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
  }

  export type FormVersionSumOrderByAggregateInput = {
    version?: SortOrder
  }

  export type EnumFormVersionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FormVersionStatus | EnumFormVersionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormVersionStatus[] | ListEnumFormVersionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormVersionStatus[] | ListEnumFormVersionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormVersionStatusWithAggregatesFilter<$PrismaModel> | $Enums.FormVersionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFormVersionStatusFilter<$PrismaModel>
    _max?: NestedEnumFormVersionStatusFilter<$PrismaModel>
  }

  export type EnumFormInstanceStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.FormInstanceStatus | EnumFormInstanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormInstanceStatus[] | ListEnumFormInstanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormInstanceStatus[] | ListEnumFormInstanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormInstanceStatusFilter<$PrismaModel> | $Enums.FormInstanceStatus
  }

  export type FormVersionScalarRelationFilter = {
    is?: FormVersionWhereInput
    isNot?: FormVersionWhereInput
  }

  export type ReleaseSnapshotNullableScalarRelationFilter = {
    is?: ReleaseSnapshotWhereInput | null
    isNot?: ReleaseSnapshotWhereInput | null
  }

  export type FormInstanceCountOrderByAggregateInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    formKey?: SortOrder
    formVersion?: SortOrder
    snapshotId?: SortOrder
    businessKey?: SortOrder
    regionId?: SortOrder
    data?: SortOrder
    status?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    submittedBy?: SortOrder
    submittedAt?: SortOrder
    approvalInstanceId?: SortOrder
    approvalStatus?: SortOrder
    approvalStartTime?: SortOrder
    approvalEndTime?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type FormInstanceAvgOrderByAggregateInput = {
    formVersion?: SortOrder
  }

  export type FormInstanceMaxOrderByAggregateInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    formKey?: SortOrder
    formVersion?: SortOrder
    snapshotId?: SortOrder
    businessKey?: SortOrder
    regionId?: SortOrder
    status?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    submittedBy?: SortOrder
    submittedAt?: SortOrder
    approvalInstanceId?: SortOrder
    approvalStatus?: SortOrder
    approvalStartTime?: SortOrder
    approvalEndTime?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type FormInstanceMinOrderByAggregateInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    formKey?: SortOrder
    formVersion?: SortOrder
    snapshotId?: SortOrder
    businessKey?: SortOrder
    regionId?: SortOrder
    status?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    submittedBy?: SortOrder
    submittedAt?: SortOrder
    approvalInstanceId?: SortOrder
    approvalStatus?: SortOrder
    approvalStartTime?: SortOrder
    approvalEndTime?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type FormInstanceSumOrderByAggregateInput = {
    formVersion?: SortOrder
  }

  export type EnumFormInstanceStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FormInstanceStatus | EnumFormInstanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormInstanceStatus[] | ListEnumFormInstanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormInstanceStatus[] | ListEnumFormInstanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormInstanceStatusWithAggregatesFilter<$PrismaModel> | $Enums.FormInstanceStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFormInstanceStatusFilter<$PrismaModel>
    _max?: NestedEnumFormInstanceStatusFilter<$PrismaModel>
  }

  export type FormTranslationVersionIdLocaleCompoundUniqueInput = {
    versionId: string
    locale: string
  }

  export type FormTranslationCountOrderByAggregateInput = {
    id?: SortOrder
    versionId?: SortOrder
    locale?: SortOrder
    translations?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormTranslationMaxOrderByAggregateInput = {
    id?: SortOrder
    versionId?: SortOrder
    locale?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormTranslationMinOrderByAggregateInput = {
    id?: SortOrder
    versionId?: SortOrder
    locale?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormTemplateCountOrderByAggregateInput = {
    id?: SortOrder
    nameI18n?: SortOrder
    descriptionI18n?: SortOrder
    category?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    template?: SortOrder
    isBuiltin?: SortOrder
    isPublic?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormTemplateMaxOrderByAggregateInput = {
    id?: SortOrder
    category?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    isBuiltin?: SortOrder
    isPublic?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormTemplateMinOrderByAggregateInput = {
    id?: SortOrder
    category?: SortOrder
    icon?: SortOrder
    color?: SortOrder
    isBuiltin?: SortOrder
    isPublic?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumReleaseSnapshotStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ReleaseSnapshotStatus | EnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ReleaseSnapshotStatus[] | ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReleaseSnapshotStatus[] | ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumReleaseSnapshotStatusFilter<$PrismaModel> | $Enums.ReleaseSnapshotStatus
  }

  export type ReleaseSnapshotFormDefinitionIdStatusCompoundUniqueInput = {
    formDefinitionId: string
    status: $Enums.ReleaseSnapshotStatus
  }

  export type ReleaseSnapshotCountOrderByAggregateInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    processDefinitionId?: SortOrder
    processVersionId?: SortOrder
    status?: SortOrder
    versionName?: SortOrder
    releaseNote?: SortOrder
    submittedBy?: SortOrder
    submittedAt?: SortOrder
    submitComment?: SortOrder
    reviewedBy?: SortOrder
    reviewedAt?: SortOrder
    reviewComment?: SortOrder
    publishedBy?: SortOrder
    publishedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ReleaseSnapshotMaxOrderByAggregateInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    processDefinitionId?: SortOrder
    processVersionId?: SortOrder
    status?: SortOrder
    versionName?: SortOrder
    releaseNote?: SortOrder
    submittedBy?: SortOrder
    submittedAt?: SortOrder
    submitComment?: SortOrder
    reviewedBy?: SortOrder
    reviewedAt?: SortOrder
    reviewComment?: SortOrder
    publishedBy?: SortOrder
    publishedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type ReleaseSnapshotMinOrderByAggregateInput = {
    id?: SortOrder
    formDefinitionId?: SortOrder
    formVersionId?: SortOrder
    processDefinitionId?: SortOrder
    processVersionId?: SortOrder
    status?: SortOrder
    versionName?: SortOrder
    releaseNote?: SortOrder
    submittedBy?: SortOrder
    submittedAt?: SortOrder
    submitComment?: SortOrder
    reviewedBy?: SortOrder
    reviewedAt?: SortOrder
    reviewComment?: SortOrder
    publishedBy?: SortOrder
    publishedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumReleaseSnapshotStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ReleaseSnapshotStatus | EnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ReleaseSnapshotStatus[] | ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReleaseSnapshotStatus[] | ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumReleaseSnapshotStatusWithAggregatesFilter<$PrismaModel> | $Enums.ReleaseSnapshotStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumReleaseSnapshotStatusFilter<$PrismaModel>
    _max?: NestedEnumReleaseSnapshotStatusFilter<$PrismaModel>
  }

  export type FormWebhookLogListRelationFilter = {
    every?: FormWebhookLogWhereInput
    some?: FormWebhookLogWhereInput
    none?: FormWebhookLogWhereInput
  }

  export type FormWebhookLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FormWebhookCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    url?: SortOrder
    secret?: SortOrder
    events?: SortOrder
    enabled?: SortOrder
    maxRetries?: SortOrder
    timeoutMs?: SortOrder
    headers?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormWebhookAvgOrderByAggregateInput = {
    maxRetries?: SortOrder
    timeoutMs?: SortOrder
  }

  export type FormWebhookMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    url?: SortOrder
    secret?: SortOrder
    enabled?: SortOrder
    maxRetries?: SortOrder
    timeoutMs?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormWebhookMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    url?: SortOrder
    secret?: SortOrder
    enabled?: SortOrder
    maxRetries?: SortOrder
    timeoutMs?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FormWebhookSumOrderByAggregateInput = {
    maxRetries?: SortOrder
    timeoutMs?: SortOrder
  }

  export type FormWebhookScalarRelationFilter = {
    is?: FormWebhookWhereInput
    isNot?: FormWebhookWhereInput
  }

  export type FormWebhookLogCountOrderByAggregateInput = {
    id?: SortOrder
    webhookId?: SortOrder
    eventType?: SortOrder
    payload?: SortOrder
    statusCode?: SortOrder
    response?: SortOrder
    success?: SortOrder
    error?: SortOrder
    retryCount?: SortOrder
    duration?: SortOrder
    createdAt?: SortOrder
  }

  export type FormWebhookLogAvgOrderByAggregateInput = {
    statusCode?: SortOrder
    retryCount?: SortOrder
    duration?: SortOrder
  }

  export type FormWebhookLogMaxOrderByAggregateInput = {
    id?: SortOrder
    webhookId?: SortOrder
    eventType?: SortOrder
    statusCode?: SortOrder
    response?: SortOrder
    success?: SortOrder
    error?: SortOrder
    retryCount?: SortOrder
    duration?: SortOrder
    createdAt?: SortOrder
  }

  export type FormWebhookLogMinOrderByAggregateInput = {
    id?: SortOrder
    webhookId?: SortOrder
    eventType?: SortOrder
    statusCode?: SortOrder
    response?: SortOrder
    success?: SortOrder
    error?: SortOrder
    retryCount?: SortOrder
    duration?: SortOrder
    createdAt?: SortOrder
  }

  export type FormWebhookLogSumOrderByAggregateInput = {
    statusCode?: SortOrder
    retryCount?: SortOrder
    duration?: SortOrder
  }

  export type EnumUserStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.UserStatus | EnumUserStatusFieldRefInput<$PrismaModel>
    in?: $Enums.UserStatus[] | ListEnumUserStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.UserStatus[] | ListEnumUserStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumUserStatusFilter<$PrismaModel> | $Enums.UserStatus
  }

  export type EnumUserSourceFilter<$PrismaModel = never> = {
    equals?: $Enums.UserSource | EnumUserSourceFieldRefInput<$PrismaModel>
    in?: $Enums.UserSource[] | ListEnumUserSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.UserSource[] | ListEnumUserSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumUserSourceFilter<$PrismaModel> | $Enums.UserSource
  }

  export type ApprovalAdminExportListRelationFilter = {
    every?: ApprovalAdminExportWhereInput
    some?: ApprovalAdminExportWhereInput
    none?: ApprovalAdminExportWhereInput
  }

  export type ContractRequestListRelationFilter = {
    every?: ContractRequestWhereInput
    some?: ContractRequestWhereInput
    none?: ContractRequestWhereInput
  }

  export type ExpenseRequestListRelationFilter = {
    every?: ExpenseRequestWhereInput
    some?: ExpenseRequestWhereInput
    none?: ExpenseRequestWhereInput
  }

  export type PurchaseRequestListRelationFilter = {
    every?: PurchaseRequestWhereInput
    some?: PurchaseRequestWhereInput
    none?: PurchaseRequestWhereInput
  }

  export type AuditLogListRelationFilter = {
    every?: AuditLogWhereInput
    some?: AuditLogWhereInput
    none?: AuditLogWhereInput
  }

  export type AutomationTaskListRelationFilter = {
    every?: AutomationTaskWhereInput
    some?: AutomationTaskWhereInput
    none?: AutomationTaskWhereInput
  }

  export type FormTemplateListRelationFilter = {
    every?: FormTemplateWhereInput
    some?: FormTemplateWhereInput
    none?: FormTemplateWhereInput
  }

  export type WorkflowRoleUserListRelationFilter = {
    every?: WorkflowRoleUserWhereInput
    some?: WorkflowRoleUserWhereInput
    none?: WorkflowRoleUserWhereInput
  }

  export type NotificationLogListRelationFilter = {
    every?: NotificationLogWhereInput
    some?: NotificationLogWhereInput
    none?: NotificationLogWhereInput
  }

  export type NotificationMessageListRelationFilter = {
    every?: NotificationMessageWhereInput
    some?: NotificationMessageWhereInput
    none?: NotificationMessageWhereInput
  }

  export type UserDelegationSettingListRelationFilter = {
    every?: UserDelegationSettingWhereInput
    some?: UserDelegationSettingWhereInput
    none?: UserDelegationSettingWhereInput
  }

  export type KnowledgeArticleListRelationFilter = {
    every?: KnowledgeArticleWhereInput
    some?: KnowledgeArticleWhereInput
    none?: KnowledgeArticleWhereInput
  }

  export type AIQALogListRelationFilter = {
    every?: AIQALogWhereInput
    some?: AIQALogWhereInput
    none?: AIQALogWhereInput
  }

  export type DocumentViewListRelationFilter = {
    every?: DocumentViewWhereInput
    some?: DocumentViewWhereInput
    none?: DocumentViewWhereInput
  }

  export type DocumentLikeListRelationFilter = {
    every?: DocumentLikeWhereInput
    some?: DocumentLikeWhereInput
    none?: DocumentLikeWhereInput
  }

  export type DocumentCommentListRelationFilter = {
    every?: DocumentCommentWhereInput
    some?: DocumentCommentWhereInput
    none?: DocumentCommentWhereInput
  }

  export type UserMentionListRelationFilter = {
    every?: UserMentionWhereInput
    some?: UserMentionWhereInput
    none?: UserMentionWhereInput
  }

  export type StrategicObjectiveAssignmentListRelationFilter = {
    every?: StrategicObjectiveAssignmentWhereInput
    some?: StrategicObjectiveAssignmentWhereInput
    none?: StrategicObjectiveAssignmentWhereInput
  }

  export type FeedbackListRelationFilter = {
    every?: FeedbackWhereInput
    some?: FeedbackWhereInput
    none?: FeedbackWhereInput
  }

  export type ReleaseNoteListRelationFilter = {
    every?: ReleaseNoteWhereInput
    some?: ReleaseNoteWhereInput
    none?: ReleaseNoteWhereInput
  }

  export type SiteCheckpointListRelationFilter = {
    every?: SiteCheckpointWhereInput
    some?: SiteCheckpointWhereInput
    none?: SiteCheckpointWhereInput
  }

  export type SiteAttendanceEventListRelationFilter = {
    every?: SiteAttendanceEventWhereInput
    some?: SiteAttendanceEventWhereInput
    none?: SiteAttendanceEventWhereInput
  }

  export type SiteDailySummaryListRelationFilter = {
    every?: SiteDailySummaryWhereInput
    some?: SiteDailySummaryWhereInput
    none?: SiteDailySummaryWhereInput
  }

  export type SharedCheckinPartnerListRelationFilter = {
    every?: SharedCheckinPartnerWhereInput
    some?: SharedCheckinPartnerWhereInput
    none?: SharedCheckinPartnerWhereInput
  }

  export type MeetingAttendanceListRelationFilter = {
    every?: MeetingAttendanceWhereInput
    some?: MeetingAttendanceWhereInput
    none?: MeetingAttendanceWhereInput
  }

  export type MeetingRequiredAttendeeListRelationFilter = {
    every?: MeetingRequiredAttendeeWhereInput
    some?: MeetingRequiredAttendeeWhereInput
    none?: MeetingRequiredAttendeeWhereInput
  }

  export type MeetingTemplateListRelationFilter = {
    every?: MeetingTemplateWhereInput
    some?: MeetingTemplateWhereInput
    none?: MeetingTemplateWhereInput
  }

  export type MeetingTemplateAttendeeListRelationFilter = {
    every?: MeetingTemplateAttendeeWhereInput
    some?: MeetingTemplateAttendeeWhereInput
    none?: MeetingTemplateAttendeeWhereInput
  }

  export type MeetingAttendanceLeaveRecordListRelationFilter = {
    every?: MeetingAttendanceLeaveRecordWhereInput
    some?: MeetingAttendanceLeaveRecordWhereInput
    none?: MeetingAttendanceLeaveRecordWhereInput
  }

  export type MeetingAttendanceAuditLogListRelationFilter = {
    every?: MeetingAttendanceAuditLogWhereInput
    some?: MeetingAttendanceAuditLogWhereInput
    none?: MeetingAttendanceAuditLogWhereInput
  }

  export type MeetingListRelationFilter = {
    every?: MeetingWhereInput
    some?: MeetingWhereInput
    none?: MeetingWhereInput
  }

  export type MeetingSeriesListRelationFilter = {
    every?: MeetingSeriesWhereInput
    some?: MeetingSeriesWhereInput
    none?: MeetingSeriesWhereInput
  }

  export type MeetingSeriesAttendeePreferenceListRelationFilter = {
    every?: MeetingSeriesAttendeePreferenceWhereInput
    some?: MeetingSeriesAttendeePreferenceWhereInput
    none?: MeetingSeriesAttendeePreferenceWhereInput
  }

  export type MeetingSeriesAttendeeExceptionListRelationFilter = {
    every?: MeetingSeriesAttendeeExceptionWhereInput
    some?: MeetingSeriesAttendeeExceptionWhereInput
    none?: MeetingSeriesAttendeeExceptionWhereInput
  }

  export type AIToolGrantUserListRelationFilter = {
    every?: AIToolGrantUserWhereInput
    some?: AIToolGrantUserWhereInput
    none?: AIToolGrantUserWhereInput
  }

  export type AdpPtoScheduleListRelationFilter = {
    every?: AdpPtoScheduleWhereInput
    some?: AdpPtoScheduleWhereInput
    none?: AdpPtoScheduleWhereInput
  }

  export type EmployeeSlugBindingNullableScalarRelationFilter = {
    is?: EmployeeSlugBindingWhereInput | null
    isNot?: EmployeeSlugBindingWhereInput | null
  }

  export type InternalAppListRelationFilter = {
    every?: InternalAppWhereInput
    some?: InternalAppWhereInput
    none?: InternalAppWhereInput
  }

  export type InternalAppDeploymentListRelationFilter = {
    every?: InternalAppDeploymentWhereInput
    some?: InternalAppDeploymentWhereInput
    none?: InternalAppDeploymentWhereInput
  }

  export type InternalAppEnvVarListRelationFilter = {
    every?: InternalAppEnvVarWhereInput
    some?: InternalAppEnvVarWhereInput
    none?: InternalAppEnvVarWhereInput
  }

  export type InternalAppEmployeeTokenListRelationFilter = {
    every?: InternalAppEmployeeTokenWhereInput
    some?: InternalAppEmployeeTokenWhereInput
    none?: InternalAppEmployeeTokenWhereInput
  }

  export type InternalAppEventListRelationFilter = {
    every?: InternalAppEventWhereInput
    some?: InternalAppEventWhereInput
    none?: InternalAppEventWhereInput
  }

  export type ApprovalAdminExportOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ContractRequestOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ExpenseRequestOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PurchaseRequestOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AuditLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AutomationTaskOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FormTemplateOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type WorkflowRoleUserOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type NotificationLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type NotificationMessageOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type UserDelegationSettingOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type KnowledgeArticleOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AIQALogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type DocumentViewOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type DocumentLikeOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type DocumentCommentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type UserMentionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type StrategicObjectiveAssignmentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type FeedbackOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ReleaseNoteOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SiteCheckpointOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SiteAttendanceEventOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SiteDailySummaryOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SharedCheckinPartnerOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAttendanceOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingRequiredAttendeeOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingTemplateOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingTemplateAttendeeOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAttendanceLeaveRecordOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAttendanceAuditLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingSeriesOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingSeriesAttendeePreferenceOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingSeriesAttendeeExceptionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AIToolGrantUserOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AdpPtoScheduleOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type InternalAppOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type InternalAppDeploymentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type InternalAppEnvVarOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type InternalAppEmployeeTokenOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type InternalAppEventOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type UserCountOrderByAggregateInput = {
    id?: SortOrder
    username?: SortOrder
    email?: SortOrder
    passwordHash?: SortOrder
    displayName?: SortOrder
    avatar?: SortOrder
    phone?: SortOrder
    status?: SortOrder
    source?: SortOrder
    ldapDn?: SortOrder
    employeeId?: SortOrder
    ldapSyncedAt?: SortOrder
    externalId?: SortOrder
    externalSource?: SortOrder
    adpAoid?: SortOrder
    adpLinkedAt?: SortOrder
    tenantId?: SortOrder
    defaultRegion?: SortOrder
    workCity?: SortOrder
    hiredAt?: SortOrder
    terminatedAt?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type UserMaxOrderByAggregateInput = {
    id?: SortOrder
    username?: SortOrder
    email?: SortOrder
    passwordHash?: SortOrder
    displayName?: SortOrder
    avatar?: SortOrder
    phone?: SortOrder
    status?: SortOrder
    source?: SortOrder
    ldapDn?: SortOrder
    employeeId?: SortOrder
    ldapSyncedAt?: SortOrder
    externalId?: SortOrder
    externalSource?: SortOrder
    adpAoid?: SortOrder
    adpLinkedAt?: SortOrder
    tenantId?: SortOrder
    defaultRegion?: SortOrder
    workCity?: SortOrder
    hiredAt?: SortOrder
    terminatedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type UserMinOrderByAggregateInput = {
    id?: SortOrder
    username?: SortOrder
    email?: SortOrder
    passwordHash?: SortOrder
    displayName?: SortOrder
    avatar?: SortOrder
    phone?: SortOrder
    status?: SortOrder
    source?: SortOrder
    ldapDn?: SortOrder
    employeeId?: SortOrder
    ldapSyncedAt?: SortOrder
    externalId?: SortOrder
    externalSource?: SortOrder
    adpAoid?: SortOrder
    adpLinkedAt?: SortOrder
    tenantId?: SortOrder
    defaultRegion?: SortOrder
    workCity?: SortOrder
    hiredAt?: SortOrder
    terminatedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumUserStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.UserStatus | EnumUserStatusFieldRefInput<$PrismaModel>
    in?: $Enums.UserStatus[] | ListEnumUserStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.UserStatus[] | ListEnumUserStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumUserStatusWithAggregatesFilter<$PrismaModel> | $Enums.UserStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumUserStatusFilter<$PrismaModel>
    _max?: NestedEnumUserStatusFilter<$PrismaModel>
  }

  export type EnumUserSourceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.UserSource | EnumUserSourceFieldRefInput<$PrismaModel>
    in?: $Enums.UserSource[] | ListEnumUserSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.UserSource[] | ListEnumUserSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumUserSourceWithAggregatesFilter<$PrismaModel> | $Enums.UserSource
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumUserSourceFilter<$PrismaModel>
    _max?: NestedEnumUserSourceFilter<$PrismaModel>
  }

  export type RolePermissionListRelationFilter = {
    every?: RolePermissionWhereInput
    some?: RolePermissionWhereInput
    none?: RolePermissionWhereInput
  }

  export type AIToolGrantListRelationFilter = {
    every?: AIToolGrantWhereInput
    some?: AIToolGrantWhereInput
    none?: AIToolGrantWhereInput
  }

  export type RoleDataScopeListRelationFilter = {
    every?: RoleDataScopeWhereInput
    some?: RoleDataScopeWhereInput
    none?: RoleDataScopeWhereInput
  }

  export type RolePermissionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AIToolGrantOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type RoleDataScopeOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type RoleCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    isBuiltIn?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type RoleMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    isBuiltIn?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type RoleMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    isBuiltIn?: SortOrder
    enabled?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PermissionResourceActionCompoundUniqueInput = {
    resource: string
    action: string
  }

  export type PermissionCountOrderByAggregateInput = {
    id?: SortOrder
    resource?: SortOrder
    action?: SortOrder
    description?: SortOrder
    module?: SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PermissionMaxOrderByAggregateInput = {
    id?: SortOrder
    resource?: SortOrder
    action?: SortOrder
    description?: SortOrder
    module?: SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PermissionMinOrderByAggregateInput = {
    id?: SortOrder
    resource?: SortOrder
    action?: SortOrder
    description?: SortOrder
    module?: SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumWorkflowRuleTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.WorkflowRuleType | EnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    in?: $Enums.WorkflowRuleType[] | ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.WorkflowRuleType[] | ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumWorkflowRuleTypeFilter<$PrismaModel> | $Enums.WorkflowRuleType
  }

  export type WorkflowRoleCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    ruleType?: SortOrder
    ruleConfig?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WorkflowRoleMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    ruleType?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WorkflowRoleMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    ruleType?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumWorkflowRuleTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.WorkflowRuleType | EnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    in?: $Enums.WorkflowRuleType[] | ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.WorkflowRuleType[] | ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumWorkflowRuleTypeWithAggregatesFilter<$PrismaModel> | $Enums.WorkflowRuleType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumWorkflowRuleTypeFilter<$PrismaModel>
    _max?: NestedEnumWorkflowRuleTypeFilter<$PrismaModel>
  }

  export type WorkflowRoleScalarRelationFilter = {
    is?: WorkflowRoleWhereInput
    isNot?: WorkflowRoleWhereInput
  }

  export type WorkflowRoleUserWorkflowRoleIdUserIdCompoundUniqueInput = {
    workflowRoleId: string
    userId: string
  }

  export type WorkflowRoleUserCountOrderByAggregateInput = {
    id?: SortOrder
    workflowRoleId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
  }

  export type WorkflowRoleUserMaxOrderByAggregateInput = {
    id?: SortOrder
    workflowRoleId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
  }

  export type WorkflowRoleUserMinOrderByAggregateInput = {
    id?: SortOrder
    workflowRoleId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
  }

  export type RoleScalarRelationFilter = {
    is?: RoleWhereInput
    isNot?: RoleWhereInput
  }

  export type UserRoleUserIdRoleIdOrganizationIdCompoundUniqueInput = {
    userId: string
    roleId: string
    organizationId: string
  }

  export type UserRoleCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    roleId?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    lastReviewedAt?: SortOrder
    lastReviewedBy?: SortOrder
    reviewComment?: SortOrder
  }

  export type UserRoleMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    roleId?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    lastReviewedAt?: SortOrder
    lastReviewedBy?: SortOrder
    reviewComment?: SortOrder
  }

  export type UserRoleMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    roleId?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    lastReviewedAt?: SortOrder
    lastReviewedBy?: SortOrder
    reviewComment?: SortOrder
  }

  export type PermissionScalarRelationFilter = {
    is?: PermissionWhereInput
    isNot?: PermissionWhereInput
  }

  export type RolePermissionRoleIdPermissionIdCompoundUniqueInput = {
    roleId: string
    permissionId: string
  }

  export type RolePermissionCountOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    permissionId?: SortOrder
    createdAt?: SortOrder
  }

  export type RolePermissionMaxOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    permissionId?: SortOrder
    createdAt?: SortOrder
  }

  export type RolePermissionMinOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    permissionId?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumDataScopeTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.DataScopeType | EnumDataScopeTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DataScopeType[] | ListEnumDataScopeTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DataScopeType[] | ListEnumDataScopeTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDataScopeTypeFilter<$PrismaModel> | $Enums.DataScopeType
  }

  export type DataScopeCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    scopeType?: SortOrder
    rules?: SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DataScopeMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    scopeType?: SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type DataScopeMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    scopeType?: SortOrder
    isBuiltIn?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumDataScopeTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DataScopeType | EnumDataScopeTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DataScopeType[] | ListEnumDataScopeTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DataScopeType[] | ListEnumDataScopeTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDataScopeTypeWithAggregatesFilter<$PrismaModel> | $Enums.DataScopeType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDataScopeTypeFilter<$PrismaModel>
    _max?: NestedEnumDataScopeTypeFilter<$PrismaModel>
  }

  export type DataScopeScalarRelationFilter = {
    is?: DataScopeWhereInput
    isNot?: DataScopeWhereInput
  }

  export type RoleDataScopeRoleIdDataScopeIdResourceCompoundUniqueInput = {
    roleId: string
    dataScopeId: string
    resource: string
  }

  export type RoleDataScopeCountOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    dataScopeId?: SortOrder
    resource?: SortOrder
    createdAt?: SortOrder
  }

  export type RoleDataScopeMaxOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    dataScopeId?: SortOrder
    resource?: SortOrder
    createdAt?: SortOrder
  }

  export type RoleDataScopeMinOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    dataScopeId?: SortOrder
    resource?: SortOrder
    createdAt?: SortOrder
  }

  export type AIToolGrantRoleIdToolNameCompoundUniqueInput = {
    roleId: string
    toolName: string
  }

  export type AIToolGrantCountOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    toolName?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrder
  }

  export type AIToolGrantMaxOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    toolName?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrder
  }

  export type AIToolGrantMinOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    toolName?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrder
  }

  export type AIToolGrantUserUserIdToolNameCompoundUniqueInput = {
    userId: string
    toolName: string
  }

  export type AIToolGrantUserCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    toolName?: SortOrder
    effect?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrder
  }

  export type AIToolGrantUserMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    toolName?: SortOrder
    effect?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrder
  }

  export type AIToolGrantUserMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    toolName?: SortOrder
    effect?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdBy?: SortOrder
  }

  export type PermissionDelegationCountOrderByAggregateInput = {
    id?: SortOrder
    fromUserId?: SortOrder
    toUserId?: SortOrder
    resource?: SortOrder
    validFrom?: SortOrder
    validTo?: SortOrder
    reason?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    revokedAt?: SortOrder
  }

  export type PermissionDelegationMaxOrderByAggregateInput = {
    id?: SortOrder
    fromUserId?: SortOrder
    toUserId?: SortOrder
    resource?: SortOrder
    validFrom?: SortOrder
    validTo?: SortOrder
    reason?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    revokedAt?: SortOrder
  }

  export type PermissionDelegationMinOrderByAggregateInput = {
    id?: SortOrder
    fromUserId?: SortOrder
    toUserId?: SortOrder
    resource?: SortOrder
    validFrom?: SortOrder
    validTo?: SortOrder
    reason?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    revokedAt?: SortOrder
  }

  export type EnumFieldAccessFilter<$PrismaModel = never> = {
    equals?: $Enums.FieldAccess | EnumFieldAccessFieldRefInput<$PrismaModel>
    in?: $Enums.FieldAccess[] | ListEnumFieldAccessFieldRefInput<$PrismaModel>
    notIn?: $Enums.FieldAccess[] | ListEnumFieldAccessFieldRefInput<$PrismaModel>
    not?: NestedEnumFieldAccessFilter<$PrismaModel> | $Enums.FieldAccess
  }

  export type FieldPermissionRoleIdResourceFieldCompoundUniqueInput = {
    roleId: string
    resource: string
    field: string
  }

  export type FieldPermissionCountOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    resource?: SortOrder
    field?: SortOrder
    access?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FieldPermissionMaxOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    resource?: SortOrder
    field?: SortOrder
    access?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type FieldPermissionMinOrderByAggregateInput = {
    id?: SortOrder
    roleId?: SortOrder
    resource?: SortOrder
    field?: SortOrder
    access?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumFieldAccessWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FieldAccess | EnumFieldAccessFieldRefInput<$PrismaModel>
    in?: $Enums.FieldAccess[] | ListEnumFieldAccessFieldRefInput<$PrismaModel>
    notIn?: $Enums.FieldAccess[] | ListEnumFieldAccessFieldRefInput<$PrismaModel>
    not?: NestedEnumFieldAccessWithAggregatesFilter<$PrismaModel> | $Enums.FieldAccess
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFieldAccessFilter<$PrismaModel>
    _max?: NestedEnumFieldAccessFilter<$PrismaModel>
  }

  export type IamAuditLogCountOrderByAggregateInput = {
    id?: SortOrder
    actor?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    targetId?: SortOrder
    before?: SortOrder
    after?: SortOrder
    ip?: SortOrder
    userAgent?: SortOrder
    timestamp?: SortOrder
  }

  export type IamAuditLogMaxOrderByAggregateInput = {
    id?: SortOrder
    actor?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    targetId?: SortOrder
    ip?: SortOrder
    userAgent?: SortOrder
    timestamp?: SortOrder
  }

  export type IamAuditLogMinOrderByAggregateInput = {
    id?: SortOrder
    actor?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    targetId?: SortOrder
    ip?: SortOrder
    userAgent?: SortOrder
    timestamp?: SortOrder
  }

  export type EmployeeSlugBindingCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeSlug?: SortOrder
    sourceMailNickname?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EmployeeSlugBindingMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeSlug?: SortOrder
    sourceMailNickname?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EmployeeSlugBindingMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    employeeSlug?: SortOrder
    sourceMailNickname?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumInternalAppRuntimeFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppRuntime | EnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppRuntime[] | ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppRuntime[] | ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppRuntimeFilter<$PrismaModel> | $Enums.InternalAppRuntime
  }

  export type EnumInternalAppStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppStatus | EnumInternalAppStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppStatus[] | ListEnumInternalAppStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppStatus[] | ListEnumInternalAppStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppStatusFilter<$PrismaModel> | $Enums.InternalAppStatus
  }

  export type EmployeeSlugBindingScalarRelationFilter = {
    is?: EmployeeSlugBindingWhereInput
    isNot?: EmployeeSlugBindingWhereInput
  }

  export type InternalAppUq_app_per_employeeCompoundUniqueInput = {
    employeeSlug: string
    appSlug: string
  }

  export type InternalAppCountOrderByAggregateInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    appSlug?: SortOrder
    displayName?: SortOrder
    runtime?: SortOrder
    status?: SortOrder
    url?: SortOrder
    giteaRepoFullName?: SortOrder
    lastDeployedAt?: SortOrder
    currentDeploymentId?: SortOrder
    destroyedAt?: SortOrder
    retentionUntil?: SortOrder
    forceDisabledAt?: SortOrder
    forceDisabledReason?: SortOrder
    forceDisabledById?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppMaxOrderByAggregateInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    appSlug?: SortOrder
    displayName?: SortOrder
    runtime?: SortOrder
    status?: SortOrder
    url?: SortOrder
    giteaRepoFullName?: SortOrder
    lastDeployedAt?: SortOrder
    currentDeploymentId?: SortOrder
    destroyedAt?: SortOrder
    retentionUntil?: SortOrder
    forceDisabledAt?: SortOrder
    forceDisabledReason?: SortOrder
    forceDisabledById?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppMinOrderByAggregateInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    appSlug?: SortOrder
    displayName?: SortOrder
    runtime?: SortOrder
    status?: SortOrder
    url?: SortOrder
    giteaRepoFullName?: SortOrder
    lastDeployedAt?: SortOrder
    currentDeploymentId?: SortOrder
    destroyedAt?: SortOrder
    retentionUntil?: SortOrder
    forceDisabledAt?: SortOrder
    forceDisabledReason?: SortOrder
    forceDisabledById?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumInternalAppRuntimeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppRuntime | EnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppRuntime[] | ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppRuntime[] | ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppRuntimeWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppRuntime
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppRuntimeFilter<$PrismaModel>
    _max?: NestedEnumInternalAppRuntimeFilter<$PrismaModel>
  }

  export type EnumInternalAppStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppStatus | EnumInternalAppStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppStatus[] | ListEnumInternalAppStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppStatus[] | ListEnumInternalAppStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppStatusWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppStatusFilter<$PrismaModel>
    _max?: NestedEnumInternalAppStatusFilter<$PrismaModel>
  }

  export type EnumInternalAppDeploymentStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppDeploymentStatus | EnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppDeploymentStatus[] | ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppDeploymentStatus[] | ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppDeploymentStatusFilter<$PrismaModel> | $Enums.InternalAppDeploymentStatus
  }

  export type EnumInternalAppDeploymentTriggerFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppDeploymentTrigger | EnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppDeploymentTrigger[] | ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppDeploymentTrigger[] | ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppDeploymentTriggerFilter<$PrismaModel> | $Enums.InternalAppDeploymentTrigger
  }

  export type InternalAppScalarRelationFilter = {
    is?: InternalAppWhereInput
    isNot?: InternalAppWhereInput
  }

  export type InternalAppDeploymentCountOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    commitSha?: SortOrder
    status?: SortOrder
    buildLogSummary?: SortOrder
    healthCheckLog?: SortOrder
    startedAt?: SortOrder
    finishedAt?: SortOrder
    trigger?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppDeploymentMaxOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    commitSha?: SortOrder
    status?: SortOrder
    buildLogSummary?: SortOrder
    startedAt?: SortOrder
    finishedAt?: SortOrder
    trigger?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppDeploymentMinOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    commitSha?: SortOrder
    status?: SortOrder
    buildLogSummary?: SortOrder
    startedAt?: SortOrder
    finishedAt?: SortOrder
    trigger?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumInternalAppDeploymentStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppDeploymentStatus | EnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppDeploymentStatus[] | ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppDeploymentStatus[] | ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppDeploymentStatusWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppDeploymentStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppDeploymentStatusFilter<$PrismaModel>
    _max?: NestedEnumInternalAppDeploymentStatusFilter<$PrismaModel>
  }

  export type EnumInternalAppDeploymentTriggerWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppDeploymentTrigger | EnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppDeploymentTrigger[] | ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppDeploymentTrigger[] | ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppDeploymentTriggerWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppDeploymentTrigger
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppDeploymentTriggerFilter<$PrismaModel>
    _max?: NestedEnumInternalAppDeploymentTriggerFilter<$PrismaModel>
  }

  export type BytesFilter<$PrismaModel = never> = {
    equals?: Bytes | BytesFieldRefInput<$PrismaModel>
    in?: Bytes[] | ListBytesFieldRefInput<$PrismaModel>
    notIn?: Bytes[] | ListBytesFieldRefInput<$PrismaModel>
    not?: NestedBytesFilter<$PrismaModel> | Bytes
  }

  export type InternalAppEnvVarUq_env_per_appCompoundUniqueInput = {
    appId: string
    key: string
  }

  export type InternalAppEnvVarCountOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    key?: SortOrder
    valueEncrypted?: SortOrder
    valueIv?: SortOrder
    kmsKeyVersion?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppEnvVarAvgOrderByAggregateInput = {
    kmsKeyVersion?: SortOrder
  }

  export type InternalAppEnvVarMaxOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    key?: SortOrder
    valueEncrypted?: SortOrder
    valueIv?: SortOrder
    kmsKeyVersion?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppEnvVarMinOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    key?: SortOrder
    valueEncrypted?: SortOrder
    valueIv?: SortOrder
    kmsKeyVersion?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppEnvVarSumOrderByAggregateInput = {
    kmsKeyVersion?: SortOrder
  }

  export type BytesWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Bytes | BytesFieldRefInput<$PrismaModel>
    in?: Bytes[] | ListBytesFieldRefInput<$PrismaModel>
    notIn?: Bytes[] | ListBytesFieldRefInput<$PrismaModel>
    not?: NestedBytesWithAggregatesFilter<$PrismaModel> | Bytes
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedBytesFilter<$PrismaModel>
    _max?: NestedBytesFilter<$PrismaModel>
  }

  export type EnumInternalAppTokenStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppTokenStatus | EnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppTokenStatus[] | ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppTokenStatus[] | ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppTokenStatusFilter<$PrismaModel> | $Enums.InternalAppTokenStatus
  }

  export type EnumInternalAppTokenRevokeReasonNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppTokenRevokeReason | EnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    in?: $Enums.InternalAppTokenRevokeReason[] | ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.InternalAppTokenRevokeReason[] | ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    not?: NestedEnumInternalAppTokenRevokeReasonNullableFilter<$PrismaModel> | $Enums.InternalAppTokenRevokeReason | null
  }

  export type InternalAppEmployeeTokenCountOrderByAggregateInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    tokenHash?: SortOrder
    prefix?: SortOrder
    status?: SortOrder
    issuedAt?: SortOrder
    expiresAt?: SortOrder
    revokedAt?: SortOrder
    revokedReason?: SortOrder
    lastUsedAt?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppEmployeeTokenMaxOrderByAggregateInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    tokenHash?: SortOrder
    prefix?: SortOrder
    status?: SortOrder
    issuedAt?: SortOrder
    expiresAt?: SortOrder
    revokedAt?: SortOrder
    revokedReason?: SortOrder
    lastUsedAt?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type InternalAppEmployeeTokenMinOrderByAggregateInput = {
    id?: SortOrder
    employeeSlug?: SortOrder
    tokenHash?: SortOrder
    prefix?: SortOrder
    status?: SortOrder
    issuedAt?: SortOrder
    expiresAt?: SortOrder
    revokedAt?: SortOrder
    revokedReason?: SortOrder
    lastUsedAt?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumInternalAppTokenStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppTokenStatus | EnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppTokenStatus[] | ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppTokenStatus[] | ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppTokenStatusWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppTokenStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppTokenStatusFilter<$PrismaModel>
    _max?: NestedEnumInternalAppTokenStatusFilter<$PrismaModel>
  }

  export type EnumInternalAppTokenRevokeReasonNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppTokenRevokeReason | EnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    in?: $Enums.InternalAppTokenRevokeReason[] | ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.InternalAppTokenRevokeReason[] | ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    not?: NestedEnumInternalAppTokenRevokeReasonNullableWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppTokenRevokeReason | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumInternalAppTokenRevokeReasonNullableFilter<$PrismaModel>
    _max?: NestedEnumInternalAppTokenRevokeReasonNullableFilter<$PrismaModel>
  }

  export type EnumInternalAppActorRoleFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppActorRole | EnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppActorRole[] | ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppActorRole[] | ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppActorRoleFilter<$PrismaModel> | $Enums.InternalAppActorRole
  }

  export type EnumInternalAppEventOutcomeFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppEventOutcome | EnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppEventOutcome[] | ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppEventOutcome[] | ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppEventOutcomeFilter<$PrismaModel> | $Enums.InternalAppEventOutcome
  }

  export type InternalAppNullableScalarRelationFilter = {
    is?: InternalAppWhereInput | null
    isNot?: InternalAppWhereInput | null
  }

  export type InternalAppEventCountOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    employeeSlug?: SortOrder
    actorId?: SortOrder
    actorRole?: SortOrder
    eventType?: SortOrder
    outcome?: SortOrder
    errorCode?: SortOrder
    durationMs?: SortOrder
    payload?: SortOrder
    requestId?: SortOrder
    ipAddr?: SortOrder
    userAgent?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
  }

  export type InternalAppEventAvgOrderByAggregateInput = {
    durationMs?: SortOrder
  }

  export type InternalAppEventMaxOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    employeeSlug?: SortOrder
    actorId?: SortOrder
    actorRole?: SortOrder
    eventType?: SortOrder
    outcome?: SortOrder
    errorCode?: SortOrder
    durationMs?: SortOrder
    requestId?: SortOrder
    ipAddr?: SortOrder
    userAgent?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
  }

  export type InternalAppEventMinOrderByAggregateInput = {
    id?: SortOrder
    appId?: SortOrder
    employeeSlug?: SortOrder
    actorId?: SortOrder
    actorRole?: SortOrder
    eventType?: SortOrder
    outcome?: SortOrder
    errorCode?: SortOrder
    durationMs?: SortOrder
    requestId?: SortOrder
    ipAddr?: SortOrder
    userAgent?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
  }

  export type InternalAppEventSumOrderByAggregateInput = {
    durationMs?: SortOrder
  }

  export type EnumInternalAppActorRoleWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppActorRole | EnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppActorRole[] | ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppActorRole[] | ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppActorRoleWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppActorRole
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppActorRoleFilter<$PrismaModel>
    _max?: NestedEnumInternalAppActorRoleFilter<$PrismaModel>
  }

  export type EnumInternalAppEventOutcomeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppEventOutcome | EnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppEventOutcome[] | ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppEventOutcome[] | ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppEventOutcomeWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppEventOutcome
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppEventOutcomeFilter<$PrismaModel>
    _max?: NestedEnumInternalAppEventOutcomeFilter<$PrismaModel>
  }

  export type EnumKnowledgeArticleStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.KnowledgeArticleStatus | EnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KnowledgeArticleStatus[] | ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KnowledgeArticleStatus[] | ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKnowledgeArticleStatusFilter<$PrismaModel> | $Enums.KnowledgeArticleStatus
  }

  export type KnowledgeArticleCountOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    content?: SortOrder
    status?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type KnowledgeArticleMaxOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    content?: SortOrder
    status?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type KnowledgeArticleMinOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    content?: SortOrder
    status?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumKnowledgeArticleStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.KnowledgeArticleStatus | EnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KnowledgeArticleStatus[] | ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KnowledgeArticleStatus[] | ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKnowledgeArticleStatusWithAggregatesFilter<$PrismaModel> | $Enums.KnowledgeArticleStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumKnowledgeArticleStatusFilter<$PrismaModel>
    _max?: NestedEnumKnowledgeArticleStatusFilter<$PrismaModel>
  }

  export type EnumDocAuthorityLevelFilter<$PrismaModel = never> = {
    equals?: $Enums.DocAuthorityLevel | EnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    in?: $Enums.DocAuthorityLevel[] | ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocAuthorityLevel[] | ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumDocAuthorityLevelFilter<$PrismaModel> | $Enums.DocAuthorityLevel
  }

  export type EnumDocLifecycleStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.DocLifecycleStatus | EnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DocLifecycleStatus[] | ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocLifecycleStatus[] | ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDocLifecycleStatusFilter<$PrismaModel> | $Enums.DocLifecycleStatus
  }

  export type EnumDocTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.DocType | EnumDocTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DocType[] | ListEnumDocTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocType[] | ListEnumDocTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDocTypeFilter<$PrismaModel> | $Enums.DocType
  }

  export type SPDocumentIndexSpItemIdSpDriveIdCompoundUniqueInput = {
    spItemId: string
    spDriveId: string
  }

  export type SPDocumentIndexCountOrderByAggregateInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    webUrl?: SortOrder
    fileType?: SortOrder
    fileExtension?: SortOrder
    size?: SortOrder
    spEtag?: SortOrder
    docAuthorityLevel?: SortOrder
    docLifecycleStatus?: SortOrder
    docType?: SortOrder
    createdBy?: SortOrder
    lastModifiedBy?: SortOrder
    spCreatedAt?: SortOrder
    spModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SPDocumentIndexAvgOrderByAggregateInput = {
    size?: SortOrder
  }

  export type SPDocumentIndexMaxOrderByAggregateInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    webUrl?: SortOrder
    fileType?: SortOrder
    fileExtension?: SortOrder
    size?: SortOrder
    spEtag?: SortOrder
    docAuthorityLevel?: SortOrder
    docLifecycleStatus?: SortOrder
    docType?: SortOrder
    createdBy?: SortOrder
    lastModifiedBy?: SortOrder
    spCreatedAt?: SortOrder
    spModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SPDocumentIndexMinOrderByAggregateInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    webUrl?: SortOrder
    fileType?: SortOrder
    fileExtension?: SortOrder
    size?: SortOrder
    spEtag?: SortOrder
    docAuthorityLevel?: SortOrder
    docLifecycleStatus?: SortOrder
    docType?: SortOrder
    createdBy?: SortOrder
    lastModifiedBy?: SortOrder
    spCreatedAt?: SortOrder
    spModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SPDocumentIndexSumOrderByAggregateInput = {
    size?: SortOrder
  }

  export type EnumDocAuthorityLevelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DocAuthorityLevel | EnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    in?: $Enums.DocAuthorityLevel[] | ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocAuthorityLevel[] | ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumDocAuthorityLevelWithAggregatesFilter<$PrismaModel> | $Enums.DocAuthorityLevel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDocAuthorityLevelFilter<$PrismaModel>
    _max?: NestedEnumDocAuthorityLevelFilter<$PrismaModel>
  }

  export type EnumDocLifecycleStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DocLifecycleStatus | EnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DocLifecycleStatus[] | ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocLifecycleStatus[] | ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDocLifecycleStatusWithAggregatesFilter<$PrismaModel> | $Enums.DocLifecycleStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDocLifecycleStatusFilter<$PrismaModel>
    _max?: NestedEnumDocLifecycleStatusFilter<$PrismaModel>
  }

  export type EnumDocTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DocType | EnumDocTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DocType[] | ListEnumDocTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocType[] | ListEnumDocTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDocTypeWithAggregatesFilter<$PrismaModel> | $Enums.DocType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDocTypeFilter<$PrismaModel>
    _max?: NestedEnumDocTypeFilter<$PrismaModel>
  }

  export type SPFolderIndexSpItemIdSpDriveIdCompoundUniqueInput = {
    spItemId: string
    spDriveId: string
  }

  export type SPFolderIndexCountOrderByAggregateInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    folderPath?: SortOrder
    webUrl?: SortOrder
    createdBy?: SortOrder
    lastModifiedBy?: SortOrder
    spCreatedAt?: SortOrder
    spModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SPFolderIndexMaxOrderByAggregateInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    folderPath?: SortOrder
    webUrl?: SortOrder
    createdBy?: SortOrder
    lastModifiedBy?: SortOrder
    spCreatedAt?: SortOrder
    spModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SPFolderIndexMinOrderByAggregateInput = {
    id?: SortOrder
    spItemId?: SortOrder
    spDriveId?: SortOrder
    spSiteId?: SortOrder
    title?: SortOrder
    folderPath?: SortOrder
    webUrl?: SortOrder
    createdBy?: SortOrder
    lastModifiedBy?: SortOrder
    spCreatedAt?: SortOrder
    spModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumRagflowSourceTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.RagflowSourceType | EnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RagflowSourceType[] | ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RagflowSourceType[] | ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRagflowSourceTypeFilter<$PrismaModel> | $Enums.RagflowSourceType
  }

  export type EnumSyncStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SyncStatus | EnumSyncStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SyncStatus[] | ListEnumSyncStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SyncStatus[] | ListEnumSyncStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSyncStatusFilter<$PrismaModel> | $Enums.SyncStatus
  }

  export type RagflowDocumentSourceTypeSourceIdCompoundUniqueInput = {
    sourceType: $Enums.RagflowSourceType
    sourceId: string
  }

  export type RagflowDocumentCountOrderByAggregateInput = {
    id?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    ragflowDocumentId?: SortOrder
    datasetId?: SortOrder
    contentHash?: SortOrder
    status?: SortOrder
    syncError?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type RagflowDocumentMaxOrderByAggregateInput = {
    id?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    ragflowDocumentId?: SortOrder
    datasetId?: SortOrder
    contentHash?: SortOrder
    status?: SortOrder
    syncError?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type RagflowDocumentMinOrderByAggregateInput = {
    id?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    ragflowDocumentId?: SortOrder
    datasetId?: SortOrder
    contentHash?: SortOrder
    status?: SortOrder
    syncError?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumRagflowSourceTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RagflowSourceType | EnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RagflowSourceType[] | ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RagflowSourceType[] | ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRagflowSourceTypeWithAggregatesFilter<$PrismaModel> | $Enums.RagflowSourceType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRagflowSourceTypeFilter<$PrismaModel>
    _max?: NestedEnumRagflowSourceTypeFilter<$PrismaModel>
  }

  export type EnumSyncStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SyncStatus | EnumSyncStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SyncStatus[] | ListEnumSyncStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SyncStatus[] | ListEnumSyncStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSyncStatusWithAggregatesFilter<$PrismaModel> | $Enums.SyncStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSyncStatusFilter<$PrismaModel>
    _max?: NestedEnumSyncStatusFilter<$PrismaModel>
  }

  export type EnumQAFeedbackNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.QAFeedback | EnumQAFeedbackFieldRefInput<$PrismaModel> | null
    in?: $Enums.QAFeedback[] | ListEnumQAFeedbackFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.QAFeedback[] | ListEnumQAFeedbackFieldRefInput<$PrismaModel> | null
    not?: NestedEnumQAFeedbackNullableFilter<$PrismaModel> | $Enums.QAFeedback | null
  }

  export type AIQALogCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    question?: SortOrder
    answer?: SortOrder
    sourceDocuments?: SortOrder
    confidence?: SortOrder
    modelUsed?: SortOrder
    tokensUsed?: SortOrder
    cost?: SortOrder
    responseTimeMs?: SortOrder
    feedback?: SortOrder
    feedbackComment?: SortOrder
    createdAt?: SortOrder
  }

  export type AIQALogAvgOrderByAggregateInput = {
    confidence?: SortOrder
    tokensUsed?: SortOrder
    cost?: SortOrder
    responseTimeMs?: SortOrder
  }

  export type AIQALogMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    question?: SortOrder
    answer?: SortOrder
    confidence?: SortOrder
    modelUsed?: SortOrder
    tokensUsed?: SortOrder
    cost?: SortOrder
    responseTimeMs?: SortOrder
    feedback?: SortOrder
    feedbackComment?: SortOrder
    createdAt?: SortOrder
  }

  export type AIQALogMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    question?: SortOrder
    answer?: SortOrder
    confidence?: SortOrder
    modelUsed?: SortOrder
    tokensUsed?: SortOrder
    cost?: SortOrder
    responseTimeMs?: SortOrder
    feedback?: SortOrder
    feedbackComment?: SortOrder
    createdAt?: SortOrder
  }

  export type AIQALogSumOrderByAggregateInput = {
    confidence?: SortOrder
    tokensUsed?: SortOrder
    cost?: SortOrder
    responseTimeMs?: SortOrder
  }

  export type EnumQAFeedbackNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.QAFeedback | EnumQAFeedbackFieldRefInput<$PrismaModel> | null
    in?: $Enums.QAFeedback[] | ListEnumQAFeedbackFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.QAFeedback[] | ListEnumQAFeedbackFieldRefInput<$PrismaModel> | null
    not?: NestedEnumQAFeedbackNullableWithAggregatesFilter<$PrismaModel> | $Enums.QAFeedback | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumQAFeedbackNullableFilter<$PrismaModel>
    _max?: NestedEnumQAFeedbackNullableFilter<$PrismaModel>
  }

  export type EnumSearchTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.SearchType | EnumSearchTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SearchType[] | ListEnumSearchTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SearchType[] | ListEnumSearchTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSearchTypeFilter<$PrismaModel> | $Enums.SearchType
  }

  export type SearchLogCountOrderByAggregateInput = {
    id?: SortOrder
    userIdHash?: SortOrder
    query?: SortOrder
    resultCount?: SortOrder
    responseTimeMs?: SortOrder
    searchType?: SortOrder
    filters?: SortOrder
    createdAt?: SortOrder
  }

  export type SearchLogAvgOrderByAggregateInput = {
    resultCount?: SortOrder
    responseTimeMs?: SortOrder
  }

  export type SearchLogMaxOrderByAggregateInput = {
    id?: SortOrder
    userIdHash?: SortOrder
    query?: SortOrder
    resultCount?: SortOrder
    responseTimeMs?: SortOrder
    searchType?: SortOrder
    createdAt?: SortOrder
  }

  export type SearchLogMinOrderByAggregateInput = {
    id?: SortOrder
    userIdHash?: SortOrder
    query?: SortOrder
    resultCount?: SortOrder
    responseTimeMs?: SortOrder
    searchType?: SortOrder
    createdAt?: SortOrder
  }

  export type SearchLogSumOrderByAggregateInput = {
    resultCount?: SortOrder
    responseTimeMs?: SortOrder
  }

  export type EnumSearchTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SearchType | EnumSearchTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SearchType[] | ListEnumSearchTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SearchType[] | ListEnumSearchTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSearchTypeWithAggregatesFilter<$PrismaModel> | $Enums.SearchType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSearchTypeFilter<$PrismaModel>
    _max?: NestedEnumSearchTypeFilter<$PrismaModel>
  }

  export type SPDocumentIndexNullableScalarRelationFilter = {
    is?: SPDocumentIndexWhereInput | null
    isNot?: SPDocumentIndexWhereInput | null
  }

  export type KnowledgeArticleNullableScalarRelationFilter = {
    is?: KnowledgeArticleWhereInput | null
    isNot?: KnowledgeArticleWhereInput | null
  }

  export type DocumentViewSpDocumentIdUserIdViewDateCompoundUniqueInput = {
    spDocumentId: string
    userId: string
    viewDate: Date | string
  }

  export type DocumentViewArticleIdUserIdViewDateCompoundUniqueInput = {
    articleId: string
    userId: string
    viewDate: Date | string
  }

  export type DocumentViewCountOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    viewedAt?: SortOrder
    viewDate?: SortOrder
  }

  export type DocumentViewMaxOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    viewedAt?: SortOrder
    viewDate?: SortOrder
  }

  export type DocumentViewMinOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    viewedAt?: SortOrder
    viewDate?: SortOrder
  }

  export type EnumLikeTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.LikeType | EnumLikeTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LikeType[] | ListEnumLikeTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LikeType[] | ListEnumLikeTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLikeTypeFilter<$PrismaModel> | $Enums.LikeType
  }

  export type DocumentLikeSpDocumentIdUserIdCompoundUniqueInput = {
    spDocumentId: string
    userId: string
  }

  export type DocumentLikeArticleIdUserIdCompoundUniqueInput = {
    articleId: string
    userId: string
  }

  export type DocumentLikeCountOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    createdAt?: SortOrder
  }

  export type DocumentLikeMaxOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    createdAt?: SortOrder
  }

  export type DocumentLikeMinOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumLikeTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LikeType | EnumLikeTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LikeType[] | ListEnumLikeTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LikeType[] | ListEnumLikeTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLikeTypeWithAggregatesFilter<$PrismaModel> | $Enums.LikeType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLikeTypeFilter<$PrismaModel>
    _max?: NestedEnumLikeTypeFilter<$PrismaModel>
  }

  export type DocumentCommentNullableScalarRelationFilter = {
    is?: DocumentCommentWhereInput | null
    isNot?: DocumentCommentWhereInput | null
  }

  export type DocumentCommentCountOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    content?: SortOrder
    parentId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type DocumentCommentMaxOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    content?: SortOrder
    parentId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type DocumentCommentMinOrderByAggregateInput = {
    id?: SortOrder
    spDocumentId?: SortOrder
    articleId?: SortOrder
    userId?: SortOrder
    content?: SortOrder
    parentId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type DocumentCommentScalarRelationFilter = {
    is?: DocumentCommentWhereInput
    isNot?: DocumentCommentWhereInput
  }

  export type UserMentionCommentIdMentionedUserIdCompoundUniqueInput = {
    commentId: string
    mentionedUserId: string
  }

  export type UserMentionCountOrderByAggregateInput = {
    id?: SortOrder
    commentId?: SortOrder
    mentionedUserId?: SortOrder
    readAt?: SortOrder
    createdAt?: SortOrder
  }

  export type UserMentionMaxOrderByAggregateInput = {
    id?: SortOrder
    commentId?: SortOrder
    mentionedUserId?: SortOrder
    readAt?: SortOrder
    createdAt?: SortOrder
  }

  export type UserMentionMinOrderByAggregateInput = {
    id?: SortOrder
    commentId?: SortOrder
    mentionedUserId?: SortOrder
    readAt?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskSkippedItemListRelationFilter = {
    every?: SyncTaskSkippedItemWhereInput
    some?: SyncTaskSkippedItemWhereInput
    none?: SyncTaskSkippedItemWhereInput
  }

  export type SyncTaskProcessedItemListRelationFilter = {
    every?: SyncTaskProcessedItemWhereInput
    some?: SyncTaskProcessedItemWhereInput
    none?: SyncTaskProcessedItemWhereInput
  }

  export type SyncTaskFailedItemListRelationFilter = {
    every?: SyncTaskFailedItemWhereInput
    some?: SyncTaskFailedItemWhereInput
    none?: SyncTaskFailedItemWhereInput
  }

  export type SyncTaskSkippedItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SyncTaskProcessedItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SyncTaskFailedItemOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SyncTaskCountOrderByAggregateInput = {
    id?: SortOrder
    taskType?: SortOrder
    triggerSource?: SortOrder
    status?: SortOrder
    totalItems?: SortOrder
    processedItems?: SortOrder
    processingItems?: SortOrder
    failedItems?: SortOrder
    skippedItems?: SortOrder
    processedTokens?: SortOrder
    processedChunks?: SortOrder
    error?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    lastProgressAt?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskAvgOrderByAggregateInput = {
    totalItems?: SortOrder
    processedItems?: SortOrder
    processingItems?: SortOrder
    failedItems?: SortOrder
    skippedItems?: SortOrder
    processedTokens?: SortOrder
    processedChunks?: SortOrder
  }

  export type SyncTaskMaxOrderByAggregateInput = {
    id?: SortOrder
    taskType?: SortOrder
    triggerSource?: SortOrder
    status?: SortOrder
    totalItems?: SortOrder
    processedItems?: SortOrder
    processingItems?: SortOrder
    failedItems?: SortOrder
    skippedItems?: SortOrder
    processedTokens?: SortOrder
    processedChunks?: SortOrder
    error?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    lastProgressAt?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskMinOrderByAggregateInput = {
    id?: SortOrder
    taskType?: SortOrder
    triggerSource?: SortOrder
    status?: SortOrder
    totalItems?: SortOrder
    processedItems?: SortOrder
    processingItems?: SortOrder
    failedItems?: SortOrder
    skippedItems?: SortOrder
    processedTokens?: SortOrder
    processedChunks?: SortOrder
    error?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    lastProgressAt?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskSumOrderByAggregateInput = {
    totalItems?: SortOrder
    processedItems?: SortOrder
    processingItems?: SortOrder
    failedItems?: SortOrder
    skippedItems?: SortOrder
    processedTokens?: SortOrder
    processedChunks?: SortOrder
  }

  export type SyncTaskScalarRelationFilter = {
    is?: SyncTaskWhereInput
    isNot?: SyncTaskWhereInput
  }

  export type SyncTaskSkippedItemCountOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskSkippedItemMaxOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskSkippedItemMinOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumSyncItemStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SyncItemStatus | EnumSyncItemStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SyncItemStatus[] | ListEnumSyncItemStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SyncItemStatus[] | ListEnumSyncItemStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSyncItemStatusFilter<$PrismaModel> | $Enums.SyncItemStatus
  }

  export type SyncTaskProcessedItemCountOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    ragflowDocumentId?: SortOrder
    tokenCount?: SortOrder
    chunkCount?: SortOrder
    sourceSizeBytes?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskProcessedItemAvgOrderByAggregateInput = {
    tokenCount?: SortOrder
    chunkCount?: SortOrder
    sourceSizeBytes?: SortOrder
  }

  export type SyncTaskProcessedItemMaxOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    ragflowDocumentId?: SortOrder
    tokenCount?: SortOrder
    chunkCount?: SortOrder
    sourceSizeBytes?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskProcessedItemMinOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    ragflowDocumentId?: SortOrder
    tokenCount?: SortOrder
    chunkCount?: SortOrder
    sourceSizeBytes?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskProcessedItemSumOrderByAggregateInput = {
    tokenCount?: SortOrder
    chunkCount?: SortOrder
    sourceSizeBytes?: SortOrder
  }

  export type EnumSyncItemStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SyncItemStatus | EnumSyncItemStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SyncItemStatus[] | ListEnumSyncItemStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SyncItemStatus[] | ListEnumSyncItemStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSyncItemStatusWithAggregatesFilter<$PrismaModel> | $Enums.SyncItemStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSyncItemStatusFilter<$PrismaModel>
    _max?: NestedEnumSyncItemStatusFilter<$PrismaModel>
  }

  export type SyncTaskFailedItemCountOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    error?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskFailedItemMaxOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    error?: SortOrder
    createdAt?: SortOrder
  }

  export type SyncTaskFailedItemMinOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    sourceType?: SortOrder
    sourceId?: SortOrder
    filename?: SortOrder
    fileExtension?: SortOrder
    mimeType?: SortOrder
    error?: SortOrder
    createdAt?: SortOrder
  }

  export type SharePointSyncCursorDriveIdScopePathCompoundUniqueInput = {
    driveId: string
    scopePath: string
  }

  export type SharePointSyncCursorCountOrderByAggregateInput = {
    id?: SortOrder
    driveId?: SortOrder
    scopePath?: SortOrder
    deltaLink?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SharePointSyncCursorMaxOrderByAggregateInput = {
    id?: SortOrder
    driveId?: SortOrder
    scopePath?: SortOrder
    deltaLink?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SharePointSyncCursorMinOrderByAggregateInput = {
    id?: SortOrder
    driveId?: SortOrder
    scopePath?: SortOrder
    deltaLink?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WebhookSubscriptionCountOrderByAggregateInput = {
    id?: SortOrder
    subscriptionId?: SortOrder
    driveId?: SortOrder
    resource?: SortOrder
    expirationDateTime?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WebhookSubscriptionMaxOrderByAggregateInput = {
    id?: SortOrder
    subscriptionId?: SortOrder
    driveId?: SortOrder
    resource?: SortOrder
    expirationDateTime?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type WebhookSubscriptionMinOrderByAggregateInput = {
    id?: SortOrder
    subscriptionId?: SortOrder
    driveId?: SortOrder
    resource?: SortOrder
    expirationDateTime?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumLogLevelFilter<$PrismaModel = never> = {
    equals?: $Enums.LogLevel | EnumLogLevelFieldRefInput<$PrismaModel>
    in?: $Enums.LogLevel[] | ListEnumLogLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogLevel[] | ListEnumLogLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumLogLevelFilter<$PrismaModel> | $Enums.LogLevel
  }

  export type SystemLogCountOrderByAggregateInput = {
    id?: SortOrder
    traceId?: SortOrder
    spanId?: SortOrder
    parentSpanId?: SortOrder
    requestId?: SortOrder
    level?: SortOrder
    message?: SortOrder
    method?: SortOrder
    url?: SortOrder
    statusCode?: SortOrder
    durationMs?: SortOrder
    userId?: SortOrder
    userName?: SortOrder
    clientIp?: SortOrder
    userAgent?: SortOrder
    service?: SortOrder
    region?: SortOrder
    instance?: SortOrder
    errorType?: SortOrder
    errorMessage?: SortOrder
    errorCode?: SortOrder
    errorStack?: SortOrder
    requestBody?: SortOrder
    responseBody?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
  }

  export type SystemLogAvgOrderByAggregateInput = {
    statusCode?: SortOrder
    durationMs?: SortOrder
  }

  export type SystemLogMaxOrderByAggregateInput = {
    id?: SortOrder
    traceId?: SortOrder
    spanId?: SortOrder
    parentSpanId?: SortOrder
    requestId?: SortOrder
    level?: SortOrder
    message?: SortOrder
    method?: SortOrder
    url?: SortOrder
    statusCode?: SortOrder
    durationMs?: SortOrder
    userId?: SortOrder
    userName?: SortOrder
    clientIp?: SortOrder
    userAgent?: SortOrder
    service?: SortOrder
    region?: SortOrder
    instance?: SortOrder
    errorType?: SortOrder
    errorMessage?: SortOrder
    errorCode?: SortOrder
    errorStack?: SortOrder
    createdAt?: SortOrder
  }

  export type SystemLogMinOrderByAggregateInput = {
    id?: SortOrder
    traceId?: SortOrder
    spanId?: SortOrder
    parentSpanId?: SortOrder
    requestId?: SortOrder
    level?: SortOrder
    message?: SortOrder
    method?: SortOrder
    url?: SortOrder
    statusCode?: SortOrder
    durationMs?: SortOrder
    userId?: SortOrder
    userName?: SortOrder
    clientIp?: SortOrder
    userAgent?: SortOrder
    service?: SortOrder
    region?: SortOrder
    instance?: SortOrder
    errorType?: SortOrder
    errorMessage?: SortOrder
    errorCode?: SortOrder
    errorStack?: SortOrder
    createdAt?: SortOrder
  }

  export type SystemLogSumOrderByAggregateInput = {
    statusCode?: SortOrder
    durationMs?: SortOrder
  }

  export type EnumLogLevelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogLevel | EnumLogLevelFieldRefInput<$PrismaModel>
    in?: $Enums.LogLevel[] | ListEnumLogLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogLevel[] | ListEnumLogLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumLogLevelWithAggregatesFilter<$PrismaModel> | $Enums.LogLevel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogLevelFilter<$PrismaModel>
    _max?: NestedEnumLogLevelFilter<$PrismaModel>
  }

  export type LogConfigCountOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrder
    updatedAt?: SortOrder
    updatedBy?: SortOrder
  }

  export type LogConfigMaxOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    description?: SortOrder
    updatedAt?: SortOrder
    updatedBy?: SortOrder
  }

  export type LogConfigMinOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    description?: SortOrder
    updatedAt?: SortOrder
    updatedBy?: SortOrder
  }

  export type EnumLogAlertTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertType | EnumLogAlertTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertType[] | ListEnumLogAlertTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertType[] | ListEnumLogAlertTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertTypeFilter<$PrismaModel> | $Enums.LogAlertType
  }

  export type EnumLogAlertSeverityFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertSeverity | EnumLogAlertSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertSeverity[] | ListEnumLogAlertSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertSeverity[] | ListEnumLogAlertSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertSeverityFilter<$PrismaModel> | $Enums.LogAlertSeverity
  }

  export type EnumLogAlertStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertStatus | EnumLogAlertStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertStatus[] | ListEnumLogAlertStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertStatus[] | ListEnumLogAlertStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertStatusFilter<$PrismaModel> | $Enums.LogAlertStatus
  }

  export type LogAlertCountOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    severity?: SortOrder
    message?: SortOrder
    context?: SortOrder
    channels?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    traceId?: SortOrder
    logId?: SortOrder
    acknowledgedAt?: SortOrder
    acknowledgedBy?: SortOrder
    createdAt?: SortOrder
  }

  export type LogAlertMaxOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    severity?: SortOrder
    message?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    traceId?: SortOrder
    logId?: SortOrder
    acknowledgedAt?: SortOrder
    acknowledgedBy?: SortOrder
    createdAt?: SortOrder
  }

  export type LogAlertMinOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    severity?: SortOrder
    message?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    traceId?: SortOrder
    logId?: SortOrder
    acknowledgedAt?: SortOrder
    acknowledgedBy?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumLogAlertTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertType | EnumLogAlertTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertType[] | ListEnumLogAlertTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertType[] | ListEnumLogAlertTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertTypeWithAggregatesFilter<$PrismaModel> | $Enums.LogAlertType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogAlertTypeFilter<$PrismaModel>
    _max?: NestedEnumLogAlertTypeFilter<$PrismaModel>
  }

  export type EnumLogAlertSeverityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertSeverity | EnumLogAlertSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertSeverity[] | ListEnumLogAlertSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertSeverity[] | ListEnumLogAlertSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertSeverityWithAggregatesFilter<$PrismaModel> | $Enums.LogAlertSeverity
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogAlertSeverityFilter<$PrismaModel>
    _max?: NestedEnumLogAlertSeverityFilter<$PrismaModel>
  }

  export type EnumLogAlertStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertStatus | EnumLogAlertStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertStatus[] | ListEnumLogAlertStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertStatus[] | ListEnumLogAlertStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertStatusWithAggregatesFilter<$PrismaModel> | $Enums.LogAlertStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogAlertStatusFilter<$PrismaModel>
    _max?: NestedEnumLogAlertStatusFilter<$PrismaModel>
  }

  export type LogCleanupRecordCountOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    olderThanDays?: SortOrder
    dryRun?: SortOrder
    deletedCount?: SortOrder
    freedBytes?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
  }

  export type LogCleanupRecordAvgOrderByAggregateInput = {
    olderThanDays?: SortOrder
    deletedCount?: SortOrder
    freedBytes?: SortOrder
  }

  export type LogCleanupRecordMaxOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    olderThanDays?: SortOrder
    dryRun?: SortOrder
    deletedCount?: SortOrder
    freedBytes?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
  }

  export type LogCleanupRecordMinOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    olderThanDays?: SortOrder
    dryRun?: SortOrder
    deletedCount?: SortOrder
    freedBytes?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
  }

  export type LogCleanupRecordSumOrderByAggregateInput = {
    olderThanDays?: SortOrder
    deletedCount?: SortOrder
    freedBytes?: SortOrder
  }

  export type EnumCustomerTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.CustomerType | EnumCustomerTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CustomerType[] | ListEnumCustomerTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CustomerType[] | ListEnumCustomerTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType
  }

  export type DecimalNullableFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel> | null
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalNullableFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string | null
  }

  export type CustomerContactListRelationFilter = {
    every?: CustomerContactWhereInput
    some?: CustomerContactWhereInput
    none?: CustomerContactWhereInput
  }

  export type CustomerAddressListRelationFilter = {
    every?: CustomerAddressWhereInput
    some?: CustomerAddressWhereInput
    none?: CustomerAddressWhereInput
  }

  export type LocationListRelationFilter = {
    every?: LocationWhereInput
    some?: LocationWhereInput
    none?: LocationWhereInput
  }

  export type CustomerContactOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type CustomerAddressOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type LocationOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type CustomerCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    industry?: SortOrder
    countryCode?: SortOrder
    taxId?: SortOrder
    creditLimit?: SortOrder
    currencyCode?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type CustomerAvgOrderByAggregateInput = {
    creditLimit?: SortOrder
  }

  export type CustomerMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    industry?: SortOrder
    countryCode?: SortOrder
    taxId?: SortOrder
    creditLimit?: SortOrder
    currencyCode?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type CustomerMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    industry?: SortOrder
    countryCode?: SortOrder
    taxId?: SortOrder
    creditLimit?: SortOrder
    currencyCode?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type CustomerSumOrderByAggregateInput = {
    creditLimit?: SortOrder
  }

  export type EnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CustomerType | EnumCustomerTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CustomerType[] | ListEnumCustomerTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CustomerType[] | ListEnumCustomerTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCustomerTypeFilter<$PrismaModel>
    _max?: NestedEnumCustomerTypeFilter<$PrismaModel>
  }

  export type DecimalNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel> | null
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalNullableWithAggregatesFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedDecimalNullableFilter<$PrismaModel>
    _sum?: NestedDecimalNullableFilter<$PrismaModel>
    _min?: NestedDecimalNullableFilter<$PrismaModel>
    _max?: NestedDecimalNullableFilter<$PrismaModel>
  }

  export type CustomerScalarRelationFilter = {
    is?: CustomerWhereInput
    isNot?: CustomerWhereInput
  }

  export type CustomerContactCountOrderByAggregateInput = {
    id?: SortOrder
    customerId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CustomerContactMaxOrderByAggregateInput = {
    id?: SortOrder
    customerId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CustomerContactMinOrderByAggregateInput = {
    id?: SortOrder
    customerId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CustomerAddressCountOrderByAggregateInput = {
    id?: SortOrder
    customerId?: SortOrder
    addressType?: SortOrder
    line1?: SortOrder
    line2?: SortOrder
    city?: SortOrder
    state?: SortOrder
    postalCode?: SortOrder
    countryCode?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CustomerAddressMaxOrderByAggregateInput = {
    id?: SortOrder
    customerId?: SortOrder
    addressType?: SortOrder
    line1?: SortOrder
    line2?: SortOrder
    city?: SortOrder
    state?: SortOrder
    postalCode?: SortOrder
    countryCode?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type CustomerAddressMinOrderByAggregateInput = {
    id?: SortOrder
    customerId?: SortOrder
    addressType?: SortOrder
    line1?: SortOrder
    line2?: SortOrder
    city?: SortOrder
    state?: SortOrder
    postalCode?: SortOrder
    countryCode?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumSupplierTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.SupplierType | EnumSupplierTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SupplierType[] | ListEnumSupplierTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SupplierType[] | ListEnumSupplierTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSupplierTypeFilter<$PrismaModel> | $Enums.SupplierType
  }

  export type SupplierContactListRelationFilter = {
    every?: SupplierContactWhereInput
    some?: SupplierContactWhereInput
    none?: SupplierContactWhereInput
  }

  export type SupplierContactOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SupplierCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrder
    currencyCode?: SortOrder
    paymentTerms?: SortOrder
    leadTimeDays?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type SupplierAvgOrderByAggregateInput = {
    leadTimeDays?: SortOrder
  }

  export type SupplierMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrder
    currencyCode?: SortOrder
    paymentTerms?: SortOrder
    leadTimeDays?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type SupplierMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrder
    currencyCode?: SortOrder
    paymentTerms?: SortOrder
    leadTimeDays?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type SupplierSumOrderByAggregateInput = {
    leadTimeDays?: SortOrder
  }

  export type EnumSupplierTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SupplierType | EnumSupplierTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SupplierType[] | ListEnumSupplierTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SupplierType[] | ListEnumSupplierTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSupplierTypeWithAggregatesFilter<$PrismaModel> | $Enums.SupplierType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSupplierTypeFilter<$PrismaModel>
    _max?: NestedEnumSupplierTypeFilter<$PrismaModel>
  }

  export type SupplierScalarRelationFilter = {
    is?: SupplierWhereInput
    isNot?: SupplierWhereInput
  }

  export type SupplierContactCountOrderByAggregateInput = {
    id?: SortOrder
    supplierId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SupplierContactMaxOrderByAggregateInput = {
    id?: SortOrder
    supplierId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SupplierContactMinOrderByAggregateInput = {
    id?: SortOrder
    supplierId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumPartnerRoleFilter<$PrismaModel = never> = {
    equals?: $Enums.PartnerRole | EnumPartnerRoleFieldRefInput<$PrismaModel>
    in?: $Enums.PartnerRole[] | ListEnumPartnerRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.PartnerRole[] | ListEnumPartnerRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumPartnerRoleFilter<$PrismaModel> | $Enums.PartnerRole
  }

  export type PartnerContactListRelationFilter = {
    every?: PartnerContactWhereInput
    some?: PartnerContactWhereInput
    none?: PartnerContactWhereInput
  }

  export type PartnerContactOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PartnerCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    role?: SortOrder
    countryCode?: SortOrder
    currencyCode?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type PartnerMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    role?: SortOrder
    countryCode?: SortOrder
    currencyCode?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type PartnerMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    role?: SortOrder
    countryCode?: SortOrder
    currencyCode?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumPartnerRoleWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PartnerRole | EnumPartnerRoleFieldRefInput<$PrismaModel>
    in?: $Enums.PartnerRole[] | ListEnumPartnerRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.PartnerRole[] | ListEnumPartnerRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumPartnerRoleWithAggregatesFilter<$PrismaModel> | $Enums.PartnerRole
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPartnerRoleFilter<$PrismaModel>
    _max?: NestedEnumPartnerRoleFilter<$PrismaModel>
  }

  export type PartnerScalarRelationFilter = {
    is?: PartnerWhereInput
    isNot?: PartnerWhereInput
  }

  export type PartnerContactCountOrderByAggregateInput = {
    id?: SortOrder
    partnerId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PartnerContactMaxOrderByAggregateInput = {
    id?: SortOrder
    partnerId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PartnerContactMinOrderByAggregateInput = {
    id?: SortOrder
    partnerId?: SortOrder
    name?: SortOrder
    role?: SortOrder
    phone?: SortOrder
    email?: SortOrder
    isPrimary?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumLocationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.LocationType | EnumLocationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LocationType[] | ListEnumLocationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LocationType[] | ListEnumLocationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLocationTypeFilter<$PrismaModel> | $Enums.LocationType
  }

  export type LocationNullableScalarRelationFilter = {
    is?: LocationWhereInput | null
    isNot?: LocationWhereInput | null
  }

  export type CustomerNullableScalarRelationFilter = {
    is?: CustomerWhereInput | null
    isNot?: CustomerWhereInput | null
  }

  export type LocationCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrder
    address?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    parentLocationId?: SortOrder
    customerId?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type LocationAvgOrderByAggregateInput = {
    latitude?: SortOrder
    longitude?: SortOrder
  }

  export type LocationMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrder
    address?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    parentLocationId?: SortOrder
    customerId?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type LocationMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    type?: SortOrder
    countryCode?: SortOrder
    address?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    parentLocationId?: SortOrder
    customerId?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type LocationSumOrderByAggregateInput = {
    latitude?: SortOrder
    longitude?: SortOrder
  }

  export type EnumLocationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LocationType | EnumLocationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LocationType[] | ListEnumLocationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LocationType[] | ListEnumLocationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLocationTypeWithAggregatesFilter<$PrismaModel> | $Enums.LocationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLocationTypeFilter<$PrismaModel>
    _max?: NestedEnumLocationTypeFilter<$PrismaModel>
  }

  export type AttachmentCountOrderByAggregateInput = {
    id?: SortOrder
    ownerType?: SortOrder
    ownerId?: SortOrder
    category?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    organizationId?: SortOrder
    uploadedById?: SortOrder
    uploadedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type AttachmentAvgOrderByAggregateInput = {
    size?: SortOrder
  }

  export type AttachmentMaxOrderByAggregateInput = {
    id?: SortOrder
    ownerType?: SortOrder
    ownerId?: SortOrder
    category?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    organizationId?: SortOrder
    uploadedById?: SortOrder
    uploadedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type AttachmentMinOrderByAggregateInput = {
    id?: SortOrder
    ownerType?: SortOrder
    ownerId?: SortOrder
    category?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    organizationId?: SortOrder
    uploadedById?: SortOrder
    uploadedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type AttachmentSumOrderByAggregateInput = {
    size?: SortOrder
  }

  export type CurrencyCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    symbol?: SortOrder
    decimals?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type CurrencyAvgOrderByAggregateInput = {
    decimals?: SortOrder
  }

  export type CurrencyMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    symbol?: SortOrder
    decimals?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type CurrencyMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    symbol?: SortOrder
    decimals?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type CurrencySumOrderByAggregateInput = {
    decimals?: SortOrder
  }

  export type CountryCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    iso3?: SortOrder
    name?: SortOrder
    region?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type CountryMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    iso3?: SortOrder
    name?: SortOrder
    region?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type CountryMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    iso3?: SortOrder
    name?: SortOrder
    region?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type GeoRegionCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    countries?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type GeoRegionMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type GeoRegionMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type UnitOfMeasureCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    category?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type UnitOfMeasureMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    category?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type UnitOfMeasureMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    category?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type DictionaryCategoryCodeCompoundUniqueInput = {
    category: string
    code: string
  }

  export type DictionaryCountOrderByAggregateInput = {
    id?: SortOrder
    category?: SortOrder
    code?: SortOrder
    labelEn?: SortOrder
    labelZh?: SortOrder
    sortOrder?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type DictionaryAvgOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type DictionaryMaxOrderByAggregateInput = {
    id?: SortOrder
    category?: SortOrder
    code?: SortOrder
    labelEn?: SortOrder
    labelZh?: SortOrder
    sortOrder?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type DictionaryMinOrderByAggregateInput = {
    id?: SortOrder
    category?: SortOrder
    code?: SortOrder
    labelEn?: SortOrder
    labelZh?: SortOrder
    sortOrder?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type DictionarySumOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type EnumMeetingTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingType | EnumMeetingTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MeetingType[] | ListEnumMeetingTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MeetingType[] | ListEnumMeetingTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMeetingTypeFilter<$PrismaModel> | $Enums.MeetingType
  }

  export type EnumMeetingStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingStatus | EnumMeetingStatusFieldRefInput<$PrismaModel>
    in?: $Enums.MeetingStatus[] | ListEnumMeetingStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.MeetingStatus[] | ListEnumMeetingStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumMeetingStatusFilter<$PrismaModel> | $Enums.MeetingStatus
  }

  export type MeetingExternalAttendeeListRelationFilter = {
    every?: MeetingExternalAttendeeWhereInput
    some?: MeetingExternalAttendeeWhereInput
    none?: MeetingExternalAttendeeWhereInput
  }

  export type MeetingSeriesNullableScalarRelationFilter = {
    is?: MeetingSeriesWhereInput | null
    isNot?: MeetingSeriesWhereInput | null
  }

  export type OutlookMeetingBindingListRelationFilter = {
    every?: OutlookMeetingBindingWhereInput
    some?: OutlookMeetingBindingWhereInput
    none?: OutlookMeetingBindingWhereInput
  }

  export type MeetingExternalAttendeeOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OutlookMeetingBindingOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingCountOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    status?: SortOrder
    qrCodeOnline?: SortOrder
    qrCodeOffline?: SortOrder
    creatorId?: SortOrder
    seriesId?: SortOrder
    instanceNumber?: SortOrder
    isSeriesMaster?: SortOrder
    hasCustomAttendees?: SortOrder
    city?: SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAvgOrderByAggregateInput = {
    instanceNumber?: SortOrder
  }

  export type MeetingMaxOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    status?: SortOrder
    qrCodeOnline?: SortOrder
    qrCodeOffline?: SortOrder
    creatorId?: SortOrder
    seriesId?: SortOrder
    instanceNumber?: SortOrder
    isSeriesMaster?: SortOrder
    hasCustomAttendees?: SortOrder
    city?: SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingMinOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    status?: SortOrder
    qrCodeOnline?: SortOrder
    qrCodeOffline?: SortOrder
    creatorId?: SortOrder
    seriesId?: SortOrder
    instanceNumber?: SortOrder
    isSeriesMaster?: SortOrder
    hasCustomAttendees?: SortOrder
    city?: SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingSumOrderByAggregateInput = {
    instanceNumber?: SortOrder
  }

  export type EnumMeetingTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingType | EnumMeetingTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MeetingType[] | ListEnumMeetingTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MeetingType[] | ListEnumMeetingTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMeetingTypeWithAggregatesFilter<$PrismaModel> | $Enums.MeetingType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMeetingTypeFilter<$PrismaModel>
    _max?: NestedEnumMeetingTypeFilter<$PrismaModel>
  }

  export type EnumMeetingStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingStatus | EnumMeetingStatusFieldRefInput<$PrismaModel>
    in?: $Enums.MeetingStatus[] | ListEnumMeetingStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.MeetingStatus[] | ListEnumMeetingStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumMeetingStatusWithAggregatesFilter<$PrismaModel> | $Enums.MeetingStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMeetingStatusFilter<$PrismaModel>
    _max?: NestedEnumMeetingStatusFilter<$PrismaModel>
  }

  export type EnumRecurrencePatternFilter<$PrismaModel = never> = {
    equals?: $Enums.RecurrencePattern | EnumRecurrencePatternFieldRefInput<$PrismaModel>
    in?: $Enums.RecurrencePattern[] | ListEnumRecurrencePatternFieldRefInput<$PrismaModel>
    notIn?: $Enums.RecurrencePattern[] | ListEnumRecurrencePatternFieldRefInput<$PrismaModel>
    not?: NestedEnumRecurrencePatternFilter<$PrismaModel> | $Enums.RecurrencePattern
  }

  export type MeetingSeriesCountOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    pattern?: SortOrder
    frequency?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    maxOccurrences?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isActive?: SortOrder
    city?: SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingSeriesAvgOrderByAggregateInput = {
    frequency?: SortOrder
    maxOccurrences?: SortOrder
  }

  export type MeetingSeriesMaxOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    pattern?: SortOrder
    frequency?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    maxOccurrences?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isActive?: SortOrder
    city?: SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingSeriesMinOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    pattern?: SortOrder
    frequency?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    maxOccurrences?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isActive?: SortOrder
    city?: SortOrder
    enforceCheckinMode?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingSeriesSumOrderByAggregateInput = {
    frequency?: SortOrder
    maxOccurrences?: SortOrder
  }

  export type EnumRecurrencePatternWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RecurrencePattern | EnumRecurrencePatternFieldRefInput<$PrismaModel>
    in?: $Enums.RecurrencePattern[] | ListEnumRecurrencePatternFieldRefInput<$PrismaModel>
    notIn?: $Enums.RecurrencePattern[] | ListEnumRecurrencePatternFieldRefInput<$PrismaModel>
    not?: NestedEnumRecurrencePatternWithAggregatesFilter<$PrismaModel> | $Enums.RecurrencePattern
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRecurrencePatternFilter<$PrismaModel>
    _max?: NestedEnumRecurrencePatternFilter<$PrismaModel>
  }

  export type EnumAttendanceStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceStatus | EnumAttendanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AttendanceStatus[] | ListEnumAttendanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendanceStatus[] | ListEnumAttendanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendanceStatusFilter<$PrismaModel> | $Enums.AttendanceStatus
  }

  export type EnumCheckinTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.CheckinType | EnumCheckinTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.CheckinType[] | ListEnumCheckinTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.CheckinType[] | ListEnumCheckinTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumCheckinTypeNullableFilter<$PrismaModel> | $Enums.CheckinType | null
  }

  export type MeetingScalarRelationFilter = {
    is?: MeetingWhereInput
    isNot?: MeetingWhereInput
  }

  export type MeetingAttendanceUserIdMeetingIdCompoundUniqueInput = {
    userId: string
    meetingId: string
  }

  export type MeetingAttendanceCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    meetingId?: SortOrder
    status?: SortOrder
    checkinTime?: SortOrder
    checkoutTime?: SortOrder
    isLate?: SortOrder
    isEarlyLeave?: SortOrder
    notes?: SortOrder
    checkinType?: SortOrder
    deviceId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    meetingId?: SortOrder
    status?: SortOrder
    checkinTime?: SortOrder
    checkoutTime?: SortOrder
    isLate?: SortOrder
    isEarlyLeave?: SortOrder
    notes?: SortOrder
    checkinType?: SortOrder
    deviceId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    meetingId?: SortOrder
    status?: SortOrder
    checkinTime?: SortOrder
    checkoutTime?: SortOrder
    isLate?: SortOrder
    isEarlyLeave?: SortOrder
    notes?: SortOrder
    checkinType?: SortOrder
    deviceId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAttendanceStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceStatus | EnumAttendanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AttendanceStatus[] | ListEnumAttendanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendanceStatus[] | ListEnumAttendanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendanceStatusWithAggregatesFilter<$PrismaModel> | $Enums.AttendanceStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAttendanceStatusFilter<$PrismaModel>
    _max?: NestedEnumAttendanceStatusFilter<$PrismaModel>
  }

  export type EnumCheckinTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CheckinType | EnumCheckinTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.CheckinType[] | ListEnumCheckinTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.CheckinType[] | ListEnumCheckinTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumCheckinTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.CheckinType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumCheckinTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumCheckinTypeNullableFilter<$PrismaModel>
  }

  export type EnumAttendeeRoleFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendeeRole | EnumAttendeeRoleFieldRefInput<$PrismaModel>
    in?: $Enums.AttendeeRole[] | ListEnumAttendeeRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendeeRole[] | ListEnumAttendeeRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendeeRoleFilter<$PrismaModel> | $Enums.AttendeeRole
  }

  export type EnumAttendanceModeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceMode | EnumAttendanceModeFieldRefInput<$PrismaModel> | null
    in?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAttendanceModeNullableFilter<$PrismaModel> | $Enums.AttendanceMode | null
  }

  export type MeetingRequiredAttendeeMeetingIdUserIdCompoundUniqueInput = {
    meetingId: string
    userId: string
  }

  export type MeetingRequiredAttendeeCountOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    userId?: SortOrder
    role?: SortOrder
    checkinMode?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingRequiredAttendeeMaxOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    userId?: SortOrder
    role?: SortOrder
    checkinMode?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingRequiredAttendeeMinOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    userId?: SortOrder
    role?: SortOrder
    checkinMode?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumAttendeeRoleWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendeeRole | EnumAttendeeRoleFieldRefInput<$PrismaModel>
    in?: $Enums.AttendeeRole[] | ListEnumAttendeeRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendeeRole[] | ListEnumAttendeeRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendeeRoleWithAggregatesFilter<$PrismaModel> | $Enums.AttendeeRole
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAttendeeRoleFilter<$PrismaModel>
    _max?: NestedEnumAttendeeRoleFilter<$PrismaModel>
  }

  export type EnumAttendanceModeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceMode | EnumAttendanceModeFieldRefInput<$PrismaModel> | null
    in?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAttendanceModeNullableWithAggregatesFilter<$PrismaModel> | $Enums.AttendanceMode | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumAttendanceModeNullableFilter<$PrismaModel>
    _max?: NestedEnumAttendanceModeNullableFilter<$PrismaModel>
  }

  export type EnumAttendanceModeFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceMode | EnumAttendanceModeFieldRefInput<$PrismaModel>
    in?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendanceModeFilter<$PrismaModel> | $Enums.AttendanceMode
  }

  export type MeetingSeriesScalarRelationFilter = {
    is?: MeetingSeriesWhereInput
    isNot?: MeetingSeriesWhereInput
  }

  export type MeetingSeriesAttendeePreferenceSeriesIdUserIdCompoundUniqueInput = {
    seriesId: string
    userId: string
  }

  export type MeetingSeriesAttendeePreferenceCountOrderByAggregateInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    defaultCheckinMode?: SortOrder
    updatedByUserId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingSeriesAttendeePreferenceMaxOrderByAggregateInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    defaultCheckinMode?: SortOrder
    updatedByUserId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingSeriesAttendeePreferenceMinOrderByAggregateInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    defaultCheckinMode?: SortOrder
    updatedByUserId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAttendanceModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceMode | EnumAttendanceModeFieldRefInput<$PrismaModel>
    in?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendanceModeWithAggregatesFilter<$PrismaModel> | $Enums.AttendanceMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAttendanceModeFilter<$PrismaModel>
    _max?: NestedEnumAttendanceModeFilter<$PrismaModel>
  }

  export type MeetingSeriesAttendeeExceptionSeriesIdUserIdCompoundUniqueInput = {
    seriesId: string
    userId: string
  }

  export type MeetingSeriesAttendeeExceptionCountOrderByAggregateInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    excludedBy?: SortOrder
    excludedAt?: SortOrder
    reason?: SortOrder
  }

  export type MeetingSeriesAttendeeExceptionMaxOrderByAggregateInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    excludedBy?: SortOrder
    excludedAt?: SortOrder
    reason?: SortOrder
  }

  export type MeetingSeriesAttendeeExceptionMinOrderByAggregateInput = {
    seriesId?: SortOrder
    userId?: SortOrder
    excludedBy?: SortOrder
    excludedAt?: SortOrder
    reason?: SortOrder
  }

  export type MeetingExternalAttendeeMeetingIdEmailSourceRoleCompoundUniqueInput = {
    meetingId: string
    email: string
    sourceRole: string
  }

  export type MeetingExternalAttendeeCountOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    email?: SortOrder
    displayName?: SortOrder
    attendeeType?: SortOrder
    response?: SortOrder
    sourceRole?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingExternalAttendeeMaxOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    email?: SortOrder
    displayName?: SortOrder
    attendeeType?: SortOrder
    response?: SortOrder
    sourceRole?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingExternalAttendeeMinOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    email?: SortOrder
    displayName?: SortOrder
    attendeeType?: SortOrder
    response?: SortOrder
    sourceRole?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingTemplateCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    title?: SortOrder
    description?: SortOrder
    duration?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isPublic?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingTemplateAvgOrderByAggregateInput = {
    duration?: SortOrder
  }

  export type MeetingTemplateMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    title?: SortOrder
    description?: SortOrder
    duration?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isPublic?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingTemplateMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    title?: SortOrder
    description?: SortOrder
    duration?: SortOrder
    timezone?: SortOrder
    location?: SortOrder
    type?: SortOrder
    creatorId?: SortOrder
    isPublic?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingTemplateSumOrderByAggregateInput = {
    duration?: SortOrder
  }

  export type MeetingTemplateScalarRelationFilter = {
    is?: MeetingTemplateWhereInput
    isNot?: MeetingTemplateWhereInput
  }

  export type MeetingTemplateAttendeeTemplateIdUserIdCompoundUniqueInput = {
    templateId: string
    userId: string
  }

  export type MeetingTemplateAttendeeCountOrderByAggregateInput = {
    id?: SortOrder
    templateId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingTemplateAttendeeMaxOrderByAggregateInput = {
    id?: SortOrder
    templateId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingTemplateAttendeeMinOrderByAggregateInput = {
    id?: SortOrder
    templateId?: SortOrder
    userId?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumLeaveTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.LeaveType | EnumLeaveTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LeaveType[] | ListEnumLeaveTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LeaveType[] | ListEnumLeaveTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLeaveTypeFilter<$PrismaModel> | $Enums.LeaveType
  }

  export type EnumLeaveStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.LeaveStatus | EnumLeaveStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LeaveStatus[] | ListEnumLeaveStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LeaveStatus[] | ListEnumLeaveStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLeaveStatusFilter<$PrismaModel> | $Enums.LeaveStatus
  }

  export type MeetingAttendanceLeaveRecordCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    reason?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceLeaveRecordMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    reason?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceLeaveRecordMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    reason?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumLeaveTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LeaveType | EnumLeaveTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LeaveType[] | ListEnumLeaveTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LeaveType[] | ListEnumLeaveTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLeaveTypeWithAggregatesFilter<$PrismaModel> | $Enums.LeaveType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLeaveTypeFilter<$PrismaModel>
    _max?: NestedEnumLeaveTypeFilter<$PrismaModel>
  }

  export type EnumLeaveStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LeaveStatus | EnumLeaveStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LeaveStatus[] | ListEnumLeaveStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LeaveStatus[] | ListEnumLeaveStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLeaveStatusWithAggregatesFilter<$PrismaModel> | $Enums.LeaveStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLeaveStatusFilter<$PrismaModel>
    _max?: NestedEnumLeaveStatusFilter<$PrismaModel>
  }

  export type MeetingAttendanceAuditLogCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    userEmail?: SortOrder
    userName?: SortOrder
    userRole?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    resourceId?: SortOrder
    method?: SortOrder
    endpoint?: SortOrder
    statusCode?: SortOrder
    source?: SortOrder
    deviceId?: SortOrder
    sessionId?: SortOrder
    requestId?: SortOrder
    traceId?: SortOrder
    geoLocation?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    fieldDiffs?: SortOrder
    requestBody?: SortOrder
    changes?: SortOrder
    reasonCode?: SortOrder
    reasonText?: SortOrder
    errorMessage?: SortOrder
    prevHash?: SortOrder
    hash?: SortOrder
    isRedacted?: SortOrder
    isTombstoned?: SortOrder
    retentionUntil?: SortOrder
    duration?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingAttendanceAuditLogAvgOrderByAggregateInput = {
    statusCode?: SortOrder
    duration?: SortOrder
  }

  export type MeetingAttendanceAuditLogMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    userEmail?: SortOrder
    userName?: SortOrder
    userRole?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    resourceId?: SortOrder
    method?: SortOrder
    endpoint?: SortOrder
    statusCode?: SortOrder
    source?: SortOrder
    deviceId?: SortOrder
    sessionId?: SortOrder
    requestId?: SortOrder
    traceId?: SortOrder
    geoLocation?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    fieldDiffs?: SortOrder
    requestBody?: SortOrder
    changes?: SortOrder
    reasonCode?: SortOrder
    reasonText?: SortOrder
    errorMessage?: SortOrder
    prevHash?: SortOrder
    hash?: SortOrder
    isRedacted?: SortOrder
    isTombstoned?: SortOrder
    retentionUntil?: SortOrder
    duration?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingAttendanceAuditLogMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    userEmail?: SortOrder
    userName?: SortOrder
    userRole?: SortOrder
    action?: SortOrder
    resource?: SortOrder
    resourceId?: SortOrder
    method?: SortOrder
    endpoint?: SortOrder
    statusCode?: SortOrder
    source?: SortOrder
    deviceId?: SortOrder
    sessionId?: SortOrder
    requestId?: SortOrder
    traceId?: SortOrder
    geoLocation?: SortOrder
    ipAddress?: SortOrder
    userAgent?: SortOrder
    fieldDiffs?: SortOrder
    requestBody?: SortOrder
    changes?: SortOrder
    reasonCode?: SortOrder
    reasonText?: SortOrder
    errorMessage?: SortOrder
    prevHash?: SortOrder
    hash?: SortOrder
    isRedacted?: SortOrder
    isTombstoned?: SortOrder
    retentionUntil?: SortOrder
    duration?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingAttendanceAuditLogSumOrderByAggregateInput = {
    statusCode?: SortOrder
    duration?: SortOrder
  }

  export type MeetingAttendanceDataAccessLogCountOrderByAggregateInput = {
    id?: SortOrder
    actorId?: SortOrder
    actorEmail?: SortOrder
    actorName?: SortOrder
    actorRole?: SortOrder
    accessType?: SortOrder
    entityType?: SortOrder
    entityIds?: SortOrder
    resultCount?: SortOrder
    hasSensitiveData?: SortOrder
    sensitiveFields?: SortOrder
    endpoint?: SortOrder
    method?: SortOrder
    statusCode?: SortOrder
    ipAddress?: SortOrder
    sessionId?: SortOrder
    requestId?: SortOrder
    deviceId?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingAttendanceDataAccessLogAvgOrderByAggregateInput = {
    resultCount?: SortOrder
    statusCode?: SortOrder
  }

  export type MeetingAttendanceDataAccessLogMaxOrderByAggregateInput = {
    id?: SortOrder
    actorId?: SortOrder
    actorEmail?: SortOrder
    actorName?: SortOrder
    actorRole?: SortOrder
    accessType?: SortOrder
    entityType?: SortOrder
    entityIds?: SortOrder
    resultCount?: SortOrder
    hasSensitiveData?: SortOrder
    sensitiveFields?: SortOrder
    endpoint?: SortOrder
    method?: SortOrder
    statusCode?: SortOrder
    ipAddress?: SortOrder
    sessionId?: SortOrder
    requestId?: SortOrder
    deviceId?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingAttendanceDataAccessLogMinOrderByAggregateInput = {
    id?: SortOrder
    actorId?: SortOrder
    actorEmail?: SortOrder
    actorName?: SortOrder
    actorRole?: SortOrder
    accessType?: SortOrder
    entityType?: SortOrder
    entityIds?: SortOrder
    resultCount?: SortOrder
    hasSensitiveData?: SortOrder
    sensitiveFields?: SortOrder
    endpoint?: SortOrder
    method?: SortOrder
    statusCode?: SortOrder
    ipAddress?: SortOrder
    sessionId?: SortOrder
    requestId?: SortOrder
    deviceId?: SortOrder
    createdAt?: SortOrder
  }

  export type MeetingAttendanceDataAccessLogSumOrderByAggregateInput = {
    resultCount?: SortOrder
    statusCode?: SortOrder
  }

  export type MeetingAttendanceAuditAlertListRelationFilter = {
    every?: MeetingAttendanceAuditAlertWhereInput
    some?: MeetingAttendanceAuditAlertWhereInput
    none?: MeetingAttendanceAuditAlertWhereInput
  }

  export type MeetingAttendanceAuditAlertOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type MeetingAttendanceAuditAlertRuleCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    ruleType?: SortOrder
    conditions?: SortOrder
    threshold?: SortOrder
    timeWindow?: SortOrder
    severity?: SortOrder
    isEnabled?: SortOrder
    notifyEmail?: SortOrder
    notifyInApp?: SortOrder
    notifyWebhook?: SortOrder
    webhookUrl?: SortOrder
    suppressionWindow?: SortOrder
    lastTriggered?: SortOrder
    triggerCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceAuditAlertRuleAvgOrderByAggregateInput = {
    threshold?: SortOrder
    timeWindow?: SortOrder
    suppressionWindow?: SortOrder
    triggerCount?: SortOrder
  }

  export type MeetingAttendanceAuditAlertRuleMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    ruleType?: SortOrder
    conditions?: SortOrder
    threshold?: SortOrder
    timeWindow?: SortOrder
    severity?: SortOrder
    isEnabled?: SortOrder
    notifyEmail?: SortOrder
    notifyInApp?: SortOrder
    notifyWebhook?: SortOrder
    webhookUrl?: SortOrder
    suppressionWindow?: SortOrder
    lastTriggered?: SortOrder
    triggerCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceAuditAlertRuleMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    ruleType?: SortOrder
    conditions?: SortOrder
    threshold?: SortOrder
    timeWindow?: SortOrder
    severity?: SortOrder
    isEnabled?: SortOrder
    notifyEmail?: SortOrder
    notifyInApp?: SortOrder
    notifyWebhook?: SortOrder
    webhookUrl?: SortOrder
    suppressionWindow?: SortOrder
    lastTriggered?: SortOrder
    triggerCount?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceAuditAlertRuleSumOrderByAggregateInput = {
    threshold?: SortOrder
    timeWindow?: SortOrder
    suppressionWindow?: SortOrder
    triggerCount?: SortOrder
  }

  export type MeetingAttendanceAuditAlertRuleScalarRelationFilter = {
    is?: MeetingAttendanceAuditAlertRuleWhereInput
    isNot?: MeetingAttendanceAuditAlertRuleWhereInput
  }

  export type MeetingAttendanceAuditAlertCountOrderByAggregateInput = {
    id?: SortOrder
    ruleId?: SortOrder
    severity?: SortOrder
    title?: SortOrder
    description?: SortOrder
    triggerData?: SortOrder
    matchedLogs?: SortOrder
    affectedEntities?: SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrder
    acknowledgedAt?: SortOrder
    resolvedBy?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceAuditAlertMaxOrderByAggregateInput = {
    id?: SortOrder
    ruleId?: SortOrder
    severity?: SortOrder
    title?: SortOrder
    description?: SortOrder
    triggerData?: SortOrder
    matchedLogs?: SortOrder
    affectedEntities?: SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrder
    acknowledgedAt?: SortOrder
    resolvedBy?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceAuditAlertMinOrderByAggregateInput = {
    id?: SortOrder
    ruleId?: SortOrder
    severity?: SortOrder
    title?: SortOrder
    description?: SortOrder
    triggerData?: SortOrder
    matchedLogs?: SortOrder
    affectedEntities?: SortOrder
    status?: SortOrder
    acknowledgedBy?: SortOrder
    acknowledgedAt?: SortOrder
    resolvedBy?: SortOrder
    resolvedAt?: SortOrder
    resolution?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceRetentionPolicyCountOrderByAggregateInput = {
    id?: SortOrder
    entityType?: SortOrder
    hotDays?: SortOrder
    warmDays?: SortOrder
    coldDays?: SortOrder
    autoArchive?: SortOrder
    autoDelete?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceRetentionPolicyAvgOrderByAggregateInput = {
    hotDays?: SortOrder
    warmDays?: SortOrder
    coldDays?: SortOrder
  }

  export type MeetingAttendanceRetentionPolicyMaxOrderByAggregateInput = {
    id?: SortOrder
    entityType?: SortOrder
    hotDays?: SortOrder
    warmDays?: SortOrder
    coldDays?: SortOrder
    autoArchive?: SortOrder
    autoDelete?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceRetentionPolicyMinOrderByAggregateInput = {
    id?: SortOrder
    entityType?: SortOrder
    hotDays?: SortOrder
    warmDays?: SortOrder
    coldDays?: SortOrder
    autoArchive?: SortOrder
    autoDelete?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type MeetingAttendanceRetentionPolicySumOrderByAggregateInput = {
    hotDays?: SortOrder
    warmDays?: SortOrder
    coldDays?: SortOrder
  }

  export type EnumOutlookMailboxTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookMailboxType | EnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookMailboxType[] | ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookMailboxType[] | ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookMailboxTypeFilter<$PrismaModel> | $Enums.OutlookMailboxType
  }

  export type OutlookSubscriptionListRelationFilter = {
    every?: OutlookSubscriptionWhereInput
    some?: OutlookSubscriptionWhereInput
    none?: OutlookSubscriptionWhereInput
  }

  export type OutlookEventSnapshotListRelationFilter = {
    every?: OutlookEventSnapshotWhereInput
    some?: OutlookEventSnapshotWhereInput
    none?: OutlookEventSnapshotWhereInput
  }

  export type OutlookSyncEventLogListRelationFilter = {
    every?: OutlookSyncEventLogWhereInput
    some?: OutlookSyncEventLogWhereInput
    none?: OutlookSyncEventLogWhereInput
  }

  export type OutlookEventSourceVersionListRelationFilter = {
    every?: OutlookEventSourceVersionWhereInput
    some?: OutlookEventSourceVersionWhereInput
    none?: OutlookEventSourceVersionWhereInput
  }

  export type OutlookSyncCursorNullableScalarRelationFilter = {
    is?: OutlookSyncCursorWhereInput | null
    isNot?: OutlookSyncCursorWhereInput | null
  }

  export type OutlookSubscriptionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OutlookEventSnapshotOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OutlookSyncEventLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OutlookEventSourceVersionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OutlookSyncMailboxCountOrderByAggregateInput = {
    id?: SortOrder
    mailboxEmail?: SortOrder
    mailboxType?: SortOrder
    isEnabled?: SortOrder
    isPrimaryDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncMailboxMaxOrderByAggregateInput = {
    id?: SortOrder
    mailboxEmail?: SortOrder
    mailboxType?: SortOrder
    isEnabled?: SortOrder
    isPrimaryDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncMailboxMinOrderByAggregateInput = {
    id?: SortOrder
    mailboxEmail?: SortOrder
    mailboxType?: SortOrder
    isEnabled?: SortOrder
    isPrimaryDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumOutlookMailboxTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookMailboxType | EnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookMailboxType[] | ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookMailboxType[] | ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookMailboxTypeWithAggregatesFilter<$PrismaModel> | $Enums.OutlookMailboxType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOutlookMailboxTypeFilter<$PrismaModel>
    _max?: NestedEnumOutlookMailboxTypeFilter<$PrismaModel>
  }

  export type EnumOutlookSubscriptionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookSubscriptionStatus | EnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookSubscriptionStatus[] | ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookSubscriptionStatus[] | ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookSubscriptionStatusFilter<$PrismaModel> | $Enums.OutlookSubscriptionStatus
  }

  export type OutlookSyncMailboxScalarRelationFilter = {
    is?: OutlookSyncMailboxWhereInput
    isNot?: OutlookSyncMailboxWhereInput
  }

  export type OutlookSubscriptionCountOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphSubscriptionId?: SortOrder
    resource?: SortOrder
    status?: SortOrder
    expirationAt?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSubscriptionMaxOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphSubscriptionId?: SortOrder
    resource?: SortOrder
    status?: SortOrder
    expirationAt?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSubscriptionMinOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphSubscriptionId?: SortOrder
    resource?: SortOrder
    status?: SortOrder
    expirationAt?: SortOrder
    lastError?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumOutlookSubscriptionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookSubscriptionStatus | EnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookSubscriptionStatus[] | ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookSubscriptionStatus[] | ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookSubscriptionStatusWithAggregatesFilter<$PrismaModel> | $Enums.OutlookSubscriptionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOutlookSubscriptionStatusFilter<$PrismaModel>
    _max?: NestedEnumOutlookSubscriptionStatusFilter<$PrismaModel>
  }

  export type EnumOutlookManageStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookManageStatus | EnumOutlookManageStatusFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookManageStatus[] | ListEnumOutlookManageStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookManageStatus[] | ListEnumOutlookManageStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookManageStatusFilter<$PrismaModel> | $Enums.OutlookManageStatus
  }

  export type EnumOutlookBootstrapStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookBootstrapStatus | EnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.OutlookBootstrapStatus[] | ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.OutlookBootstrapStatus[] | ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumOutlookBootstrapStatusNullableFilter<$PrismaModel> | $Enums.OutlookBootstrapStatus | null
  }

  export type EnumOutlookCancellationSourceNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookCancellationSource | EnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    in?: $Enums.OutlookCancellationSource[] | ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.OutlookCancellationSource[] | ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    not?: NestedEnumOutlookCancellationSourceNullableFilter<$PrismaModel> | $Enums.OutlookCancellationSource | null
  }

  export type EnumOutlookBindingSyncModeFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookBindingSyncMode | EnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookBindingSyncMode[] | ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookBindingSyncMode[] | ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookBindingSyncModeFilter<$PrismaModel> | $Enums.OutlookBindingSyncMode
  }

  export type MeetingNullableScalarRelationFilter = {
    is?: MeetingWhereInput | null
    isNot?: MeetingWhereInput | null
  }

  export type OutlookSeriesOccurrenceExclusionListRelationFilter = {
    every?: OutlookSeriesOccurrenceExclusionWhereInput
    some?: OutlookSeriesOccurrenceExclusionWhereInput
    none?: OutlookSeriesOccurrenceExclusionWhereInput
  }

  export type OutlookEventSyncDiffListRelationFilter = {
    every?: OutlookEventSyncDiffWhereInput
    some?: OutlookEventSyncDiffWhereInput
    none?: OutlookEventSyncDiffWhereInput
  }

  export type OutlookSeriesOccurrenceExclusionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OutlookEventSyncDiffOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type OutlookMeetingBindingCountOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    meetingSeriesId?: SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    graphSeriesMasterId?: SortOrder
    graphEventType?: SortOrder
    manageStatus?: SortOrder
    bootstrapStatus?: SortOrder
    bootstrapError?: SortOrder
    bootstrapUpdatedAt?: SortOrder
    ownerUserId?: SortOrder
    ownerEmail?: SortOrder
    primaryMailboxId?: SortOrder
    syncFrom?: SortOrder
    cancellationSource?: SortOrder
    syncMode?: SortOrder
    localOverrideAt?: SortOrder
    localOverrideByUserId?: SortOrder
    localOverrideByEmail?: SortOrder
    localOverrideReason?: SortOrder
    localOverrideFields?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookMeetingBindingMaxOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    meetingSeriesId?: SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    graphSeriesMasterId?: SortOrder
    graphEventType?: SortOrder
    manageStatus?: SortOrder
    bootstrapStatus?: SortOrder
    bootstrapError?: SortOrder
    bootstrapUpdatedAt?: SortOrder
    ownerUserId?: SortOrder
    ownerEmail?: SortOrder
    primaryMailboxId?: SortOrder
    syncFrom?: SortOrder
    cancellationSource?: SortOrder
    syncMode?: SortOrder
    localOverrideAt?: SortOrder
    localOverrideByUserId?: SortOrder
    localOverrideByEmail?: SortOrder
    localOverrideReason?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookMeetingBindingMinOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    meetingSeriesId?: SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    graphSeriesMasterId?: SortOrder
    graphEventType?: SortOrder
    manageStatus?: SortOrder
    bootstrapStatus?: SortOrder
    bootstrapError?: SortOrder
    bootstrapUpdatedAt?: SortOrder
    ownerUserId?: SortOrder
    ownerEmail?: SortOrder
    primaryMailboxId?: SortOrder
    syncFrom?: SortOrder
    cancellationSource?: SortOrder
    syncMode?: SortOrder
    localOverrideAt?: SortOrder
    localOverrideByUserId?: SortOrder
    localOverrideByEmail?: SortOrder
    localOverrideReason?: SortOrder
    lastSyncedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumOutlookManageStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookManageStatus | EnumOutlookManageStatusFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookManageStatus[] | ListEnumOutlookManageStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookManageStatus[] | ListEnumOutlookManageStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookManageStatusWithAggregatesFilter<$PrismaModel> | $Enums.OutlookManageStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOutlookManageStatusFilter<$PrismaModel>
    _max?: NestedEnumOutlookManageStatusFilter<$PrismaModel>
  }

  export type EnumOutlookBootstrapStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookBootstrapStatus | EnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.OutlookBootstrapStatus[] | ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.OutlookBootstrapStatus[] | ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumOutlookBootstrapStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.OutlookBootstrapStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumOutlookBootstrapStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumOutlookBootstrapStatusNullableFilter<$PrismaModel>
  }

  export type EnumOutlookCancellationSourceNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookCancellationSource | EnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    in?: $Enums.OutlookCancellationSource[] | ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.OutlookCancellationSource[] | ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    not?: NestedEnumOutlookCancellationSourceNullableWithAggregatesFilter<$PrismaModel> | $Enums.OutlookCancellationSource | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumOutlookCancellationSourceNullableFilter<$PrismaModel>
    _max?: NestedEnumOutlookCancellationSourceNullableFilter<$PrismaModel>
  }

  export type EnumOutlookBindingSyncModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookBindingSyncMode | EnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookBindingSyncMode[] | ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookBindingSyncMode[] | ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookBindingSyncModeWithAggregatesFilter<$PrismaModel> | $Enums.OutlookBindingSyncMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOutlookBindingSyncModeFilter<$PrismaModel>
    _max?: NestedEnumOutlookBindingSyncModeFilter<$PrismaModel>
  }

  export type OutlookMeetingBindingScalarRelationFilter = {
    is?: OutlookMeetingBindingWhereInput
    isNot?: OutlookMeetingBindingWhereInput
  }

  export type OutlookSeriesOccurrenceExclusionBindingIdOccurrenceGraphEventIdCompoundUniqueInput = {
    bindingId: string
    occurrenceGraphEventId: string
  }

  export type OutlookSeriesOccurrenceExclusionCountOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    occurrenceGraphEventId?: SortOrder
    iCalUId?: SortOrder
    reason?: SortOrder
    createdByEmail?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSeriesOccurrenceExclusionMaxOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    occurrenceGraphEventId?: SortOrder
    iCalUId?: SortOrder
    reason?: SortOrder
    createdByEmail?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSeriesOccurrenceExclusionMinOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    occurrenceGraphEventId?: SortOrder
    iCalUId?: SortOrder
    reason?: SortOrder
    createdByEmail?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncEventLogCountOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    eventType?: SortOrder
    resultStatus?: SortOrder
    message?: SortOrder
    payload?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookSyncEventLogMaxOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    eventType?: SortOrder
    resultStatus?: SortOrder
    message?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookSyncEventLogMinOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    eventType?: SortOrder
    resultStatus?: SortOrder
    message?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookEventSourceVersionBindingIdPayloadHashCompoundUniqueInput = {
    bindingId: string
    payloadHash: string
  }

  export type OutlookEventSourceVersionCountOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    graphSeriesMasterId?: SortOrder
    graphEventType?: SortOrder
    versionSource?: SortOrder
    graphLastModifiedAt?: SortOrder
    fetchedAt?: SortOrder
    etag?: SortOrder
    payloadHash?: SortOrder
    attendeesCount?: SortOrder
    attendeesRequiredCount?: SortOrder
    attendeesOptionalCount?: SortOrder
    attendeesResourceCount?: SortOrder
    organizerEmail?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    isCancelled?: SortOrder
    rawPayload?: SortOrder
    normalizedPayload?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookEventSourceVersionAvgOrderByAggregateInput = {
    attendeesCount?: SortOrder
    attendeesRequiredCount?: SortOrder
    attendeesOptionalCount?: SortOrder
    attendeesResourceCount?: SortOrder
  }

  export type OutlookEventSourceVersionMaxOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    graphSeriesMasterId?: SortOrder
    graphEventType?: SortOrder
    versionSource?: SortOrder
    graphLastModifiedAt?: SortOrder
    fetchedAt?: SortOrder
    etag?: SortOrder
    payloadHash?: SortOrder
    attendeesCount?: SortOrder
    attendeesRequiredCount?: SortOrder
    attendeesOptionalCount?: SortOrder
    attendeesResourceCount?: SortOrder
    organizerEmail?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    isCancelled?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookEventSourceVersionMinOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    graphSeriesMasterId?: SortOrder
    graphEventType?: SortOrder
    versionSource?: SortOrder
    graphLastModifiedAt?: SortOrder
    fetchedAt?: SortOrder
    etag?: SortOrder
    payloadHash?: SortOrder
    attendeesCount?: SortOrder
    attendeesRequiredCount?: SortOrder
    attendeesOptionalCount?: SortOrder
    attendeesResourceCount?: SortOrder
    organizerEmail?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    isCancelled?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookEventSourceVersionSumOrderByAggregateInput = {
    attendeesCount?: SortOrder
    attendeesRequiredCount?: SortOrder
    attendeesOptionalCount?: SortOrder
    attendeesResourceCount?: SortOrder
  }

  export type OutlookEventSourceVersionScalarRelationFilter = {
    is?: OutlookEventSourceVersionWhereInput
    isNot?: OutlookEventSourceVersionWhereInput
  }

  export type OutlookEventSourceVersionNullableScalarRelationFilter = {
    is?: OutlookEventSourceVersionWhereInput | null
    isNot?: OutlookEventSourceVersionWhereInput | null
  }

  export type OutlookEventSyncDiffCountOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    sourceVersionId?: SortOrder
    previousSourceVersionId?: SortOrder
    detectedAt?: SortOrder
    diffType?: SortOrder
    changedFields?: SortOrder
    summaryJson?: SortOrder
    attendeesAdded?: SortOrder
    attendeesRemoved?: SortOrder
    attendeesResponseChanged?: SortOrder
    graphAttendeesCountBefore?: SortOrder
    graphAttendeesCountAfter?: SortOrder
    internalMatchedCountBefore?: SortOrder
    internalMatchedCountAfter?: SortOrder
    meetingRequiredCountBefore?: SortOrder
    meetingRequiredCountAfter?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookEventSyncDiffAvgOrderByAggregateInput = {
    graphAttendeesCountBefore?: SortOrder
    graphAttendeesCountAfter?: SortOrder
    internalMatchedCountBefore?: SortOrder
    internalMatchedCountAfter?: SortOrder
    meetingRequiredCountBefore?: SortOrder
    meetingRequiredCountAfter?: SortOrder
  }

  export type OutlookEventSyncDiffMaxOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    sourceVersionId?: SortOrder
    previousSourceVersionId?: SortOrder
    detectedAt?: SortOrder
    diffType?: SortOrder
    graphAttendeesCountBefore?: SortOrder
    graphAttendeesCountAfter?: SortOrder
    internalMatchedCountBefore?: SortOrder
    internalMatchedCountAfter?: SortOrder
    meetingRequiredCountBefore?: SortOrder
    meetingRequiredCountAfter?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookEventSyncDiffMinOrderByAggregateInput = {
    id?: SortOrder
    bindingId?: SortOrder
    sourceVersionId?: SortOrder
    previousSourceVersionId?: SortOrder
    detectedAt?: SortOrder
    diffType?: SortOrder
    graphAttendeesCountBefore?: SortOrder
    graphAttendeesCountAfter?: SortOrder
    internalMatchedCountBefore?: SortOrder
    internalMatchedCountAfter?: SortOrder
    meetingRequiredCountBefore?: SortOrder
    meetingRequiredCountAfter?: SortOrder
    createdAt?: SortOrder
  }

  export type OutlookEventSyncDiffSumOrderByAggregateInput = {
    graphAttendeesCountBefore?: SortOrder
    graphAttendeesCountAfter?: SortOrder
    internalMatchedCountBefore?: SortOrder
    internalMatchedCountAfter?: SortOrder
    meetingRequiredCountBefore?: SortOrder
    meetingRequiredCountAfter?: SortOrder
  }

  export type OutlookSyncCursorCountOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    deltaToken?: SortOrder
    lastSyncedAt?: SortOrder
    lastReconciledAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncCursorMaxOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    deltaToken?: SortOrder
    lastSyncedAt?: SortOrder
    lastReconciledAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncCursorMinOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    deltaToken?: SortOrder
    lastSyncedAt?: SortOrder
    lastReconciledAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookEventSnapshotMailboxIdGraphEventIdCompoundUniqueInput = {
    mailboxId: string
    graphEventId: string
  }

  export type OutlookEventSnapshotCountOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    title?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    timezone?: SortOrder
    eventType?: SortOrder
    isCancelled?: SortOrder
    seriesMasterId?: SortOrder
    organizerEmail?: SortOrder
    lastModifiedAt?: SortOrder
    rawPayload?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookEventSnapshotMaxOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    title?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    timezone?: SortOrder
    eventType?: SortOrder
    isCancelled?: SortOrder
    seriesMasterId?: SortOrder
    organizerEmail?: SortOrder
    lastModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookEventSnapshotMinOrderByAggregateInput = {
    id?: SortOrder
    mailboxId?: SortOrder
    graphEventId?: SortOrder
    iCalUId?: SortOrder
    title?: SortOrder
    startTime?: SortOrder
    endTime?: SortOrder
    timezone?: SortOrder
    eventType?: SortOrder
    isCancelled?: SortOrder
    seriesMasterId?: SortOrder
    organizerEmail?: SortOrder
    lastModifiedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncSettingCountOrderByAggregateInput = {
    id?: SortOrder
    reconcileCron?: SortOrder
    deltaBatchSize?: SortOrder
    lookaheadDays?: SortOrder
    lookbackDays?: SortOrder
    renewBeforeMinutes?: SortOrder
    includeOrganizerAsAttendee?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncSettingAvgOrderByAggregateInput = {
    deltaBatchSize?: SortOrder
    lookaheadDays?: SortOrder
    lookbackDays?: SortOrder
    renewBeforeMinutes?: SortOrder
  }

  export type OutlookSyncSettingMaxOrderByAggregateInput = {
    id?: SortOrder
    reconcileCron?: SortOrder
    deltaBatchSize?: SortOrder
    lookaheadDays?: SortOrder
    lookbackDays?: SortOrder
    renewBeforeMinutes?: SortOrder
    includeOrganizerAsAttendee?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncSettingMinOrderByAggregateInput = {
    id?: SortOrder
    reconcileCron?: SortOrder
    deltaBatchSize?: SortOrder
    lookaheadDays?: SortOrder
    lookbackDays?: SortOrder
    renewBeforeMinutes?: SortOrder
    includeOrganizerAsAttendee?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type OutlookSyncSettingSumOrderByAggregateInput = {
    deltaBatchSize?: SortOrder
    lookaheadDays?: SortOrder
    lookbackDays?: SortOrder
    renewBeforeMinutes?: SortOrder
  }

  export type MeetingAgendaSectionCountOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    columnLabels?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaSectionAvgOrderByAggregateInput = {
    order?: SortOrder
  }

  export type MeetingAgendaSectionMaxOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaSectionMinOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaSectionSumOrderByAggregateInput = {
    order?: SortOrder
  }

  export type MeetingAgendaSectionScalarRelationFilter = {
    is?: MeetingAgendaSectionWhereInput
    isNot?: MeetingAgendaSectionWhereInput
  }

  export type MeetingAgendaItemCountOrderByAggregateInput = {
    id?: SortOrder
    sectionId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    description?: SortOrder
    columnDescriptions?: SortOrder
    code?: SortOrder
    timeMinutes?: SortOrder
    presenterUserId?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaItemAvgOrderByAggregateInput = {
    order?: SortOrder
    timeMinutes?: SortOrder
  }

  export type MeetingAgendaItemMaxOrderByAggregateInput = {
    id?: SortOrder
    sectionId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    description?: SortOrder
    code?: SortOrder
    timeMinutes?: SortOrder
    presenterUserId?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaItemMinOrderByAggregateInput = {
    id?: SortOrder
    sectionId?: SortOrder
    order?: SortOrder
    title?: SortOrder
    description?: SortOrder
    code?: SortOrder
    timeMinutes?: SortOrder
    presenterUserId?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaItemSumOrderByAggregateInput = {
    order?: SortOrder
    timeMinutes?: SortOrder
  }

  export type EnumUploadTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.UploadTaskStatus | EnumUploadTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.UploadTaskStatus[] | ListEnumUploadTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.UploadTaskStatus[] | ListEnumUploadTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumUploadTaskStatusFilter<$PrismaModel> | $Enums.UploadTaskStatus
  }

  export type MeetingAgendaItemScalarRelationFilter = {
    is?: MeetingAgendaItemWhereInput
    isNot?: MeetingAgendaItemWhereInput
  }

  export type MeetingAgendaItemUploadTaskCountOrderByAggregateInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    assigneeUserId?: SortOrder
    assignedById?: SortOrder
    status?: SortOrder
    dueAt?: SortOrder
    assignedAt?: SortOrder
    completedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaItemUploadTaskMaxOrderByAggregateInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    assigneeUserId?: SortOrder
    assignedById?: SortOrder
    status?: SortOrder
    dueAt?: SortOrder
    assignedAt?: SortOrder
    completedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaItemUploadTaskMinOrderByAggregateInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    assigneeUserId?: SortOrder
    assignedById?: SortOrder
    status?: SortOrder
    dueAt?: SortOrder
    assignedAt?: SortOrder
    completedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumUploadTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.UploadTaskStatus | EnumUploadTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.UploadTaskStatus[] | ListEnumUploadTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.UploadTaskStatus[] | ListEnumUploadTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumUploadTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.UploadTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumUploadTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumUploadTaskStatusFilter<$PrismaModel>
  }

  export type MeetingAgendaItemAttachmentCountOrderByAggregateInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    uploadedById?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaItemAttachmentAvgOrderByAggregateInput = {
    size?: SortOrder
  }

  export type MeetingAgendaItemAttachmentMaxOrderByAggregateInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    uploadedById?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaItemAttachmentMinOrderByAggregateInput = {
    id?: SortOrder
    agendaItemId?: SortOrder
    uploadedById?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAgendaItemAttachmentSumOrderByAggregateInput = {
    size?: SortOrder
  }

  export type EnumMeetingAttachmentCategoryNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingAttachmentCategory | EnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    in?: $Enums.MeetingAttachmentCategory[] | ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.MeetingAttachmentCategory[] | ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    not?: NestedEnumMeetingAttachmentCategoryNullableFilter<$PrismaModel> | $Enums.MeetingAttachmentCategory | null
  }

  export type MeetingAttachmentCountOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    uploadedById?: SortOrder
    category?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAttachmentAvgOrderByAggregateInput = {
    size?: SortOrder
  }

  export type MeetingAttachmentMaxOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    uploadedById?: SortOrder
    category?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAttachmentMinOrderByAggregateInput = {
    id?: SortOrder
    meetingId?: SortOrder
    uploadedById?: SortOrder
    category?: SortOrder
    filename?: SortOrder
    mimeType?: SortOrder
    size?: SortOrder
    storagePath?: SortOrder
    uploadedAt?: SortOrder
    createdById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type MeetingAttachmentSumOrderByAggregateInput = {
    size?: SortOrder
  }

  export type EnumMeetingAttachmentCategoryNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingAttachmentCategory | EnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    in?: $Enums.MeetingAttachmentCategory[] | ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.MeetingAttachmentCategory[] | ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    not?: NestedEnumMeetingAttachmentCategoryNullableWithAggregatesFilter<$PrismaModel> | $Enums.MeetingAttachmentCategory | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumMeetingAttachmentCategoryNullableFilter<$PrismaModel>
    _max?: NestedEnumMeetingAttachmentCategoryNullableFilter<$PrismaModel>
  }

  export type EnumNotificationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationType | EnumNotificationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationType[] | ListEnumNotificationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationType[] | ListEnumNotificationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationTypeFilter<$PrismaModel> | $Enums.NotificationType
  }

  export type EnumNotificationStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationStatus | EnumNotificationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationStatus[] | ListEnumNotificationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationStatus[] | ListEnumNotificationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationStatusFilter<$PrismaModel> | $Enums.NotificationStatus
  }

  export type NotificationMessageCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    link?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    readAt?: SortOrder
  }

  export type NotificationMessageMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    link?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    readAt?: SortOrder
  }

  export type NotificationMessageMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    type?: SortOrder
    title?: SortOrder
    content?: SortOrder
    link?: SortOrder
    status?: SortOrder
    createdAt?: SortOrder
    readAt?: SortOrder
  }

  export type EnumNotificationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationType | EnumNotificationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationType[] | ListEnumNotificationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationType[] | ListEnumNotificationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationTypeWithAggregatesFilter<$PrismaModel> | $Enums.NotificationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationTypeFilter<$PrismaModel>
    _max?: NestedEnumNotificationTypeFilter<$PrismaModel>
  }

  export type EnumNotificationStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationStatus | EnumNotificationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationStatus[] | ListEnumNotificationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationStatus[] | ListEnumNotificationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationStatusWithAggregatesFilter<$PrismaModel> | $Enums.NotificationStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationStatusFilter<$PrismaModel>
    _max?: NestedEnumNotificationStatusFilter<$PrismaModel>
  }

  export type NotificationPreferenceCountOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    email?: SortOrder
    webpush?: SortOrder
    websocket?: SortOrder
    quietHours?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type NotificationPreferenceMaxOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    email?: SortOrder
    webpush?: SortOrder
    websocket?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type NotificationPreferenceMinOrderByAggregateInput = {
    id?: SortOrder
    userId?: SortOrder
    email?: SortOrder
    webpush?: SortOrder
    websocket?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumNotificationChannelFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationChannel | EnumNotificationChannelFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationChannel[] | ListEnumNotificationChannelFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationChannel[] | ListEnumNotificationChannelFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationChannelFilter<$PrismaModel> | $Enums.NotificationChannel
  }

  export type EnumNotificationPriorityFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationPriority | EnumNotificationPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationPriority[] | ListEnumNotificationPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationPriority[] | ListEnumNotificationPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationPriorityFilter<$PrismaModel> | $Enums.NotificationPriority
  }

  export type NotificationTemplateCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrder
    channel?: SortOrder
    subject?: SortOrder
    template?: SortOrder
    variables?: SortOrder
    example?: SortOrder
    priority?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type NotificationTemplateMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrder
    channel?: SortOrder
    subject?: SortOrder
    template?: SortOrder
    priority?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type NotificationTemplateMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrder
    channel?: SortOrder
    subject?: SortOrder
    template?: SortOrder
    priority?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumNotificationChannelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationChannel | EnumNotificationChannelFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationChannel[] | ListEnumNotificationChannelFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationChannel[] | ListEnumNotificationChannelFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationChannelWithAggregatesFilter<$PrismaModel> | $Enums.NotificationChannel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationChannelFilter<$PrismaModel>
    _max?: NestedEnumNotificationChannelFilter<$PrismaModel>
  }

  export type EnumNotificationPriorityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationPriority | EnumNotificationPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationPriority[] | ListEnumNotificationPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationPriority[] | ListEnumNotificationPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationPriorityWithAggregatesFilter<$PrismaModel> | $Enums.NotificationPriority
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationPriorityFilter<$PrismaModel>
    _max?: NestedEnumNotificationPriorityFilter<$PrismaModel>
  }

  export type EnumNotificationSendStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationSendStatus | EnumNotificationSendStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationSendStatus[] | ListEnumNotificationSendStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationSendStatus[] | ListEnumNotificationSendStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationSendStatusFilter<$PrismaModel> | $Enums.NotificationSendStatus
  }

  export type NotificationTemplateNullableScalarRelationFilter = {
    is?: NotificationTemplateWhereInput | null
    isNot?: NotificationTemplateWhereInput | null
  }

  export type NotificationLogCountOrderByAggregateInput = {
    id?: SortOrder
    recipientId?: SortOrder
    recipientEmail?: SortOrder
    channel?: SortOrder
    templateId?: SortOrder
    subject?: SortOrder
    content?: SortOrder
    variables?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    sentAt?: SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrder
    priority?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type NotificationLogAvgOrderByAggregateInput = {
    retryCount?: SortOrder
    maxRetries?: SortOrder
  }

  export type NotificationLogMaxOrderByAggregateInput = {
    id?: SortOrder
    recipientId?: SortOrder
    recipientEmail?: SortOrder
    channel?: SortOrder
    templateId?: SortOrder
    subject?: SortOrder
    content?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    sentAt?: SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrder
    priority?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type NotificationLogMinOrderByAggregateInput = {
    id?: SortOrder
    recipientId?: SortOrder
    recipientEmail?: SortOrder
    channel?: SortOrder
    templateId?: SortOrder
    subject?: SortOrder
    content?: SortOrder
    status?: SortOrder
    errorMessage?: SortOrder
    sentAt?: SortOrder
    retryCount?: SortOrder
    maxRetries?: SortOrder
    nextRetryAt?: SortOrder
    priority?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type NotificationLogSumOrderByAggregateInput = {
    retryCount?: SortOrder
    maxRetries?: SortOrder
  }

  export type EnumNotificationSendStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationSendStatus | EnumNotificationSendStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationSendStatus[] | ListEnumNotificationSendStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationSendStatus[] | ListEnumNotificationSendStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationSendStatusWithAggregatesFilter<$PrismaModel> | $Enums.NotificationSendStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationSendStatusFilter<$PrismaModel>
    _max?: NestedEnumNotificationSendStatusFilter<$PrismaModel>
  }

  export type M365UserActivityChangeListRelationFilter = {
    every?: M365UserActivityChangeWhereInput
    some?: M365UserActivityChangeWhereInput
    none?: M365UserActivityChangeWhereInput
  }

  export type M365UserActivityChangeOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type M365UserOrganizationIdGraphUserIdCompoundUniqueInput = {
    organizationId: string
    graphUserId: string
  }

  export type M365UserCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    graphUserId?: SortOrder
    userPrincipalName?: SortOrder
    displayName?: SortOrder
    mail?: SortOrder
    department?: SortOrder
    jobTitle?: SortOrder
    accountEnabled?: SortOrder
    hasLicense?: SortOrder
    accountCreatedAt?: SortOrder
    licenses?: SortOrder
    lastSignInDateTime?: SortOrder
    lastNonInteractiveSignInDateTime?: SortOrder
    lastEmailActivity?: SortOrder
    lastOneDriveActivity?: SortOrder
    lastTeamsActivity?: SortOrder
    lastSharePointActivity?: SortOrder
    lastAnyActivity?: SortOrder
    daysInactive?: SortOrder
    firstSeenInExecutionId?: SortOrder
    lastSeenInExecutionId?: SortOrder
  }

  export type M365UserAvgOrderByAggregateInput = {
    daysInactive?: SortOrder
  }

  export type M365UserMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    graphUserId?: SortOrder
    userPrincipalName?: SortOrder
    displayName?: SortOrder
    mail?: SortOrder
    department?: SortOrder
    jobTitle?: SortOrder
    accountEnabled?: SortOrder
    hasLicense?: SortOrder
    accountCreatedAt?: SortOrder
    lastSignInDateTime?: SortOrder
    lastNonInteractiveSignInDateTime?: SortOrder
    lastEmailActivity?: SortOrder
    lastOneDriveActivity?: SortOrder
    lastTeamsActivity?: SortOrder
    lastSharePointActivity?: SortOrder
    lastAnyActivity?: SortOrder
    daysInactive?: SortOrder
    firstSeenInExecutionId?: SortOrder
    lastSeenInExecutionId?: SortOrder
  }

  export type M365UserMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdById?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    graphUserId?: SortOrder
    userPrincipalName?: SortOrder
    displayName?: SortOrder
    mail?: SortOrder
    department?: SortOrder
    jobTitle?: SortOrder
    accountEnabled?: SortOrder
    hasLicense?: SortOrder
    accountCreatedAt?: SortOrder
    lastSignInDateTime?: SortOrder
    lastNonInteractiveSignInDateTime?: SortOrder
    lastEmailActivity?: SortOrder
    lastOneDriveActivity?: SortOrder
    lastTeamsActivity?: SortOrder
    lastSharePointActivity?: SortOrder
    lastAnyActivity?: SortOrder
    daysInactive?: SortOrder
    firstSeenInExecutionId?: SortOrder
    lastSeenInExecutionId?: SortOrder
  }

  export type M365UserSumOrderByAggregateInput = {
    daysInactive?: SortOrder
  }

  export type EnumM365UserActivityChangeFieldFilter<$PrismaModel = never> = {
    equals?: $Enums.M365UserActivityChangeField | EnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    in?: $Enums.M365UserActivityChangeField[] | ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    notIn?: $Enums.M365UserActivityChangeField[] | ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    not?: NestedEnumM365UserActivityChangeFieldFilter<$PrismaModel> | $Enums.M365UserActivityChangeField
  }

  export type M365UserScalarRelationFilter = {
    is?: M365UserWhereInput
    isNot?: M365UserWhereInput
  }

  export type M365UserActivityChangeCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrder
    executionId?: SortOrder
    field?: SortOrder
    previousValue?: SortOrder
    currentValue?: SortOrder
  }

  export type M365UserActivityChangeMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrder
    executionId?: SortOrder
    field?: SortOrder
    previousValue?: SortOrder
    currentValue?: SortOrder
  }

  export type M365UserActivityChangeMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    userId?: SortOrder
    executionId?: SortOrder
    field?: SortOrder
    previousValue?: SortOrder
    currentValue?: SortOrder
  }

  export type EnumM365UserActivityChangeFieldWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.M365UserActivityChangeField | EnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    in?: $Enums.M365UserActivityChangeField[] | ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    notIn?: $Enums.M365UserActivityChangeField[] | ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    not?: NestedEnumM365UserActivityChangeFieldWithAggregatesFilter<$PrismaModel> | $Enums.M365UserActivityChangeField
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumM365UserActivityChangeFieldFilter<$PrismaModel>
    _max?: NestedEnumM365UserActivityChangeFieldFilter<$PrismaModel>
  }

  export type GradeConfigCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    grades?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type GradeConfigMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type GradeConfigMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type EnumCycleTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.CycleType | EnumCycleTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CycleType[] | ListEnumCycleTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CycleType[] | ListEnumCycleTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCycleTypeFilter<$PrismaModel> | $Enums.CycleType
  }

  export type EnumCycleStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.CycleStatus | EnumCycleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CycleStatus[] | ListEnumCycleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CycleStatus[] | ListEnumCycleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCycleStatusFilter<$PrismaModel> | $Enums.CycleStatus
  }

  export type GradeConfigNullableScalarRelationFilter = {
    is?: GradeConfigWhereInput | null
    isNot?: GradeConfigWhereInput | null
  }

  export type PerformanceCycleNullableScalarRelationFilter = {
    is?: PerformanceCycleWhereInput | null
    isNot?: PerformanceCycleWhereInput | null
  }

  export type KpiAssignmentListRelationFilter = {
    every?: KpiAssignmentWhereInput
    some?: KpiAssignmentWhereInput
    none?: KpiAssignmentWhereInput
  }

  export type Evaluation360ListRelationFilter = {
    every?: Evaluation360WhereInput
    some?: Evaluation360WhereInput
    none?: Evaluation360WhereInput
  }

  export type StrategicObjectiveListRelationFilter = {
    every?: StrategicObjectiveWhereInput
    some?: StrategicObjectiveWhereInput
    none?: StrategicObjectiveWhereInput
  }

  export type KpiAssignmentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type Evaluation360OrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type StrategicObjectiveOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PerformanceCycleCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    type?: SortOrder
    status?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    gradeConfigId?: SortOrder
    parentCycleId?: SortOrder
    resultsPublishedAt?: SortOrder
    resultsPublishedBy?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type PerformanceCycleMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    type?: SortOrder
    status?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    gradeConfigId?: SortOrder
    parentCycleId?: SortOrder
    resultsPublishedAt?: SortOrder
    resultsPublishedBy?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type PerformanceCycleMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    type?: SortOrder
    status?: SortOrder
    startDate?: SortOrder
    endDate?: SortOrder
    gradeConfigId?: SortOrder
    parentCycleId?: SortOrder
    resultsPublishedAt?: SortOrder
    resultsPublishedBy?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type EnumCycleTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CycleType | EnumCycleTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CycleType[] | ListEnumCycleTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CycleType[] | ListEnumCycleTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCycleTypeWithAggregatesFilter<$PrismaModel> | $Enums.CycleType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCycleTypeFilter<$PrismaModel>
    _max?: NestedEnumCycleTypeFilter<$PrismaModel>
  }

  export type EnumCycleStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CycleStatus | EnumCycleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CycleStatus[] | ListEnumCycleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CycleStatus[] | ListEnumCycleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCycleStatusWithAggregatesFilter<$PrismaModel> | $Enums.CycleStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCycleStatusFilter<$PrismaModel>
    _max?: NestedEnumCycleStatusFilter<$PrismaModel>
  }

  export type EnumResultConfirmStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ResultConfirmStatus | EnumResultConfirmStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ResultConfirmStatus[] | ListEnumResultConfirmStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ResultConfirmStatus[] | ListEnumResultConfirmStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumResultConfirmStatusFilter<$PrismaModel> | $Enums.ResultConfirmStatus
  }

  export type PerformanceCycleScalarRelationFilter = {
    is?: PerformanceCycleWhereInput
    isNot?: PerformanceCycleWhereInput
  }

  export type GradeAdjustmentLogListRelationFilter = {
    every?: GradeAdjustmentLogWhereInput
    some?: GradeAdjustmentLogWhereInput
    none?: GradeAdjustmentLogWhereInput
  }

  export type GradeAdjustmentLogOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PerformanceResultCycleIdEmployeeIdCompoundUniqueInput = {
    cycleId: string
    employeeId: string
  }

  export type PerformanceResultCountOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    kpiScore?: SortOrder
    kpiWeight?: SortOrder
    e360Score?: SortOrder
    e360Weight?: SortOrder
    totalScore?: SortOrder
    proposedGradeCode?: SortOrder
    proposedGradeName?: SortOrder
    gradeCode?: SortOrder
    gradeName?: SortOrder
    isPublished?: SortOrder
    publishedAt?: SortOrder
    viewedByEmployee?: SortOrder
    viewedAt?: SortOrder
    confirmStatus?: SortOrder
    appealReason?: SortOrder
    appealResponse?: SortOrder
    appealResolvedAt?: SortOrder
    selfOverallComment?: SortOrder
    managerOverallComment?: SortOrder
    remarks?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type PerformanceResultAvgOrderByAggregateInput = {
    kpiScore?: SortOrder
    kpiWeight?: SortOrder
    e360Score?: SortOrder
    e360Weight?: SortOrder
    totalScore?: SortOrder
  }

  export type PerformanceResultMaxOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    kpiScore?: SortOrder
    kpiWeight?: SortOrder
    e360Score?: SortOrder
    e360Weight?: SortOrder
    totalScore?: SortOrder
    proposedGradeCode?: SortOrder
    proposedGradeName?: SortOrder
    gradeCode?: SortOrder
    gradeName?: SortOrder
    isPublished?: SortOrder
    publishedAt?: SortOrder
    viewedByEmployee?: SortOrder
    viewedAt?: SortOrder
    confirmStatus?: SortOrder
    appealReason?: SortOrder
    appealResponse?: SortOrder
    appealResolvedAt?: SortOrder
    selfOverallComment?: SortOrder
    managerOverallComment?: SortOrder
    remarks?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type PerformanceResultMinOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    kpiScore?: SortOrder
    kpiWeight?: SortOrder
    e360Score?: SortOrder
    e360Weight?: SortOrder
    totalScore?: SortOrder
    proposedGradeCode?: SortOrder
    proposedGradeName?: SortOrder
    gradeCode?: SortOrder
    gradeName?: SortOrder
    isPublished?: SortOrder
    publishedAt?: SortOrder
    viewedByEmployee?: SortOrder
    viewedAt?: SortOrder
    confirmStatus?: SortOrder
    appealReason?: SortOrder
    appealResponse?: SortOrder
    appealResolvedAt?: SortOrder
    selfOverallComment?: SortOrder
    managerOverallComment?: SortOrder
    remarks?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    organizationId?: SortOrder
  }

  export type PerformanceResultSumOrderByAggregateInput = {
    kpiScore?: SortOrder
    kpiWeight?: SortOrder
    e360Score?: SortOrder
    e360Weight?: SortOrder
    totalScore?: SortOrder
  }

  export type EnumResultConfirmStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ResultConfirmStatus | EnumResultConfirmStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ResultConfirmStatus[] | ListEnumResultConfirmStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ResultConfirmStatus[] | ListEnumResultConfirmStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumResultConfirmStatusWithAggregatesFilter<$PrismaModel> | $Enums.ResultConfirmStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumResultConfirmStatusFilter<$PrismaModel>
    _max?: NestedEnumResultConfirmStatusFilter<$PrismaModel>
  }

  export type EnumKpiAssignmentStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiAssignmentStatus | EnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiAssignmentStatus[] | ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiAssignmentStatus[] | ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiAssignmentStatusFilter<$PrismaModel> | $Enums.KpiAssignmentStatus
  }

  export type KpiAssignmentNullableScalarRelationFilter = {
    is?: KpiAssignmentWhereInput | null
    isNot?: KpiAssignmentWhereInput | null
  }

  export type KpiAssessmentNullableScalarRelationFilter = {
    is?: KpiAssessmentWhereInput | null
    isNot?: KpiAssessmentWhereInput | null
  }

  export type KpiDependencyListRelationFilter = {
    every?: KpiDependencyWhereInput
    some?: KpiDependencyWhereInput
    none?: KpiDependencyWhereInput
  }

  export type KpiDependencyOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type KpiAssignmentCycleIdEmployeeIdNameCompoundUniqueInput = {
    cycleId: string
    employeeId: string
    name: string
  }

  export type KpiAssignmentCountOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    weight?: SortOrder
    unit?: SortOrder
    baseTarget?: SortOrder
    stretchTarget?: SortOrder
    targetValue?: SortOrder
    parentId?: SortOrder
    seq?: SortOrder
    status?: SortOrder
    maturityScore?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type KpiAssignmentAvgOrderByAggregateInput = {
    weight?: SortOrder
    targetValue?: SortOrder
    seq?: SortOrder
    maturityScore?: SortOrder
  }

  export type KpiAssignmentMaxOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    weight?: SortOrder
    unit?: SortOrder
    baseTarget?: SortOrder
    stretchTarget?: SortOrder
    targetValue?: SortOrder
    parentId?: SortOrder
    seq?: SortOrder
    status?: SortOrder
    maturityScore?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type KpiAssignmentMinOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    employeeId?: SortOrder
    name?: SortOrder
    description?: SortOrder
    weight?: SortOrder
    unit?: SortOrder
    baseTarget?: SortOrder
    stretchTarget?: SortOrder
    targetValue?: SortOrder
    parentId?: SortOrder
    seq?: SortOrder
    status?: SortOrder
    maturityScore?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type KpiAssignmentSumOrderByAggregateInput = {
    weight?: SortOrder
    targetValue?: SortOrder
    seq?: SortOrder
    maturityScore?: SortOrder
  }

  export type EnumKpiAssignmentStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiAssignmentStatus | EnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiAssignmentStatus[] | ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiAssignmentStatus[] | ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiAssignmentStatusWithAggregatesFilter<$PrismaModel> | $Enums.KpiAssignmentStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumKpiAssignmentStatusFilter<$PrismaModel>
    _max?: NestedEnumKpiAssignmentStatusFilter<$PrismaModel>
  }

  export type EnumKpiDependencyStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiDependencyStatus | EnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiDependencyStatus[] | ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiDependencyStatus[] | ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiDependencyStatusFilter<$PrismaModel> | $Enums.KpiDependencyStatus
  }

  export type KpiAssignmentScalarRelationFilter = {
    is?: KpiAssignmentWhereInput
    isNot?: KpiAssignmentWhereInput
  }

  export type KpiDependencySourceAssignmentIdTargetUserIdCompoundUniqueInput = {
    sourceAssignmentId: string
    targetUserId: string
  }

  export type KpiDependencyCountOrderByAggregateInput = {
    id?: SortOrder
    sourceAssignmentId?: SortOrder
    targetAssignmentId?: SortOrder
    targetUserId?: SortOrder
    description?: SortOrder
    status?: SortOrder
    rejectionReason?: SortOrder
    confirmedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type KpiDependencyMaxOrderByAggregateInput = {
    id?: SortOrder
    sourceAssignmentId?: SortOrder
    targetAssignmentId?: SortOrder
    targetUserId?: SortOrder
    description?: SortOrder
    status?: SortOrder
    rejectionReason?: SortOrder
    confirmedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type KpiDependencyMinOrderByAggregateInput = {
    id?: SortOrder
    sourceAssignmentId?: SortOrder
    targetAssignmentId?: SortOrder
    targetUserId?: SortOrder
    description?: SortOrder
    status?: SortOrder
    rejectionReason?: SortOrder
    confirmedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumKpiDependencyStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiDependencyStatus | EnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiDependencyStatus[] | ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiDependencyStatus[] | ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiDependencyStatusWithAggregatesFilter<$PrismaModel> | $Enums.KpiDependencyStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumKpiDependencyStatusFilter<$PrismaModel>
    _max?: NestedEnumKpiDependencyStatusFilter<$PrismaModel>
  }

  export type EnumKpiAssessmentStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiAssessmentStatus | EnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiAssessmentStatus[] | ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiAssessmentStatus[] | ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiAssessmentStatusFilter<$PrismaModel> | $Enums.KpiAssessmentStatus
  }

  export type KpiAssessmentCountOrderByAggregateInput = {
    id?: SortOrder
    assignmentId?: SortOrder
    status?: SortOrder
    selfScore?: SortOrder
    completionNote?: SortOrder
    selfComment?: SortOrder
    selfEvaluatedAt?: SortOrder
    managerScore?: SortOrder
    managerComment?: SortOrder
    managerId?: SortOrder
    managerEvaluatedAt?: SortOrder
    finalScore?: SortOrder
    deletedAt?: SortOrder
  }

  export type KpiAssessmentAvgOrderByAggregateInput = {
    selfScore?: SortOrder
    managerScore?: SortOrder
    finalScore?: SortOrder
  }

  export type KpiAssessmentMaxOrderByAggregateInput = {
    id?: SortOrder
    assignmentId?: SortOrder
    status?: SortOrder
    selfScore?: SortOrder
    completionNote?: SortOrder
    selfComment?: SortOrder
    selfEvaluatedAt?: SortOrder
    managerScore?: SortOrder
    managerComment?: SortOrder
    managerId?: SortOrder
    managerEvaluatedAt?: SortOrder
    finalScore?: SortOrder
    deletedAt?: SortOrder
  }

  export type KpiAssessmentMinOrderByAggregateInput = {
    id?: SortOrder
    assignmentId?: SortOrder
    status?: SortOrder
    selfScore?: SortOrder
    completionNote?: SortOrder
    selfComment?: SortOrder
    selfEvaluatedAt?: SortOrder
    managerScore?: SortOrder
    managerComment?: SortOrder
    managerId?: SortOrder
    managerEvaluatedAt?: SortOrder
    finalScore?: SortOrder
    deletedAt?: SortOrder
  }

  export type KpiAssessmentSumOrderByAggregateInput = {
    selfScore?: SortOrder
    managerScore?: SortOrder
    finalScore?: SortOrder
  }

  export type EnumKpiAssessmentStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiAssessmentStatus | EnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiAssessmentStatus[] | ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiAssessmentStatus[] | ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiAssessmentStatusWithAggregatesFilter<$PrismaModel> | $Enums.KpiAssessmentStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumKpiAssessmentStatusFilter<$PrismaModel>
    _max?: NestedEnumKpiAssessmentStatusFilter<$PrismaModel>
  }

  export type EnumEvaluation360StatusFilter<$PrismaModel = never> = {
    equals?: $Enums.Evaluation360Status | EnumEvaluation360StatusFieldRefInput<$PrismaModel>
    in?: $Enums.Evaluation360Status[] | ListEnumEvaluation360StatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.Evaluation360Status[] | ListEnumEvaluation360StatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEvaluation360StatusFilter<$PrismaModel> | $Enums.Evaluation360Status
  }

  export type Evaluation360TemplateNullableScalarRelationFilter = {
    is?: Evaluation360TemplateWhereInput | null
    isNot?: Evaluation360TemplateWhereInput | null
  }

  export type EvaluationTaskListRelationFilter = {
    every?: EvaluationTaskWhereInput
    some?: EvaluationTaskWhereInput
    none?: EvaluationTaskWhereInput
  }

  export type EvaluationTaskOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type Evaluation360CountOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    targetId?: SortOrder
    status?: SortOrder
    templateId?: SortOrder
    deadline?: SortOrder
    minEvaluators?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type Evaluation360AvgOrderByAggregateInput = {
    minEvaluators?: SortOrder
  }

  export type Evaluation360MaxOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    targetId?: SortOrder
    status?: SortOrder
    templateId?: SortOrder
    deadline?: SortOrder
    minEvaluators?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type Evaluation360MinOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    targetId?: SortOrder
    status?: SortOrder
    templateId?: SortOrder
    deadline?: SortOrder
    minEvaluators?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type Evaluation360SumOrderByAggregateInput = {
    minEvaluators?: SortOrder
  }

  export type EnumEvaluation360StatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.Evaluation360Status | EnumEvaluation360StatusFieldRefInput<$PrismaModel>
    in?: $Enums.Evaluation360Status[] | ListEnumEvaluation360StatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.Evaluation360Status[] | ListEnumEvaluation360StatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEvaluation360StatusWithAggregatesFilter<$PrismaModel> | $Enums.Evaluation360Status
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumEvaluation360StatusFilter<$PrismaModel>
    _max?: NestedEnumEvaluation360StatusFilter<$PrismaModel>
  }

  export type EnumRelationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.RelationType | EnumRelationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RelationType[] | ListEnumRelationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RelationType[] | ListEnumRelationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRelationTypeFilter<$PrismaModel> | $Enums.RelationType
  }

  export type EnumEvaluationTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.EvaluationTaskStatus | EnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.EvaluationTaskStatus[] | ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.EvaluationTaskStatus[] | ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEvaluationTaskStatusFilter<$PrismaModel> | $Enums.EvaluationTaskStatus
  }

  export type Evaluation360ScalarRelationFilter = {
    is?: Evaluation360WhereInput
    isNot?: Evaluation360WhereInput
  }

  export type EvaluationResponseListRelationFilter = {
    every?: EvaluationResponseWhereInput
    some?: EvaluationResponseWhereInput
    none?: EvaluationResponseWhereInput
  }

  export type EvaluationResponseOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type EvaluationTaskEvaluationIdEvaluatorIdCompoundUniqueInput = {
    evaluationId: string
    evaluatorId: string
  }

  export type EvaluationTaskCountOrderByAggregateInput = {
    id?: SortOrder
    evaluationId?: SortOrder
    evaluatorId?: SortOrder
    relationType?: SortOrder
    status?: SortOrder
    isAnonymous?: SortOrder
    submittedAt?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EvaluationTaskMaxOrderByAggregateInput = {
    id?: SortOrder
    evaluationId?: SortOrder
    evaluatorId?: SortOrder
    relationType?: SortOrder
    status?: SortOrder
    isAnonymous?: SortOrder
    submittedAt?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EvaluationTaskMinOrderByAggregateInput = {
    id?: SortOrder
    evaluationId?: SortOrder
    evaluatorId?: SortOrder
    relationType?: SortOrder
    status?: SortOrder
    isAnonymous?: SortOrder
    submittedAt?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumRelationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RelationType | EnumRelationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RelationType[] | ListEnumRelationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RelationType[] | ListEnumRelationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRelationTypeWithAggregatesFilter<$PrismaModel> | $Enums.RelationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRelationTypeFilter<$PrismaModel>
    _max?: NestedEnumRelationTypeFilter<$PrismaModel>
  }

  export type EnumEvaluationTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.EvaluationTaskStatus | EnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.EvaluationTaskStatus[] | ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.EvaluationTaskStatus[] | ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEvaluationTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.EvaluationTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumEvaluationTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumEvaluationTaskStatusFilter<$PrismaModel>
  }

  export type EvaluationTaskScalarRelationFilter = {
    is?: EvaluationTaskWhereInput
    isNot?: EvaluationTaskWhereInput
  }

  export type EvaluationResponseCountOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    dimension?: SortOrder
    score?: SortOrder
    comment?: SortOrder
    deletedAt?: SortOrder
  }

  export type EvaluationResponseAvgOrderByAggregateInput = {
    score?: SortOrder
  }

  export type EvaluationResponseMaxOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    dimension?: SortOrder
    score?: SortOrder
    comment?: SortOrder
    deletedAt?: SortOrder
  }

  export type EvaluationResponseMinOrderByAggregateInput = {
    id?: SortOrder
    taskId?: SortOrder
    dimension?: SortOrder
    score?: SortOrder
    comment?: SortOrder
    deletedAt?: SortOrder
  }

  export type EvaluationResponseSumOrderByAggregateInput = {
    score?: SortOrder
  }

  export type PerformanceResultScalarRelationFilter = {
    is?: PerformanceResultWhereInput
    isNot?: PerformanceResultWhereInput
  }

  export type GradeAdjustmentLogCountOrderByAggregateInput = {
    id?: SortOrder
    resultId?: SortOrder
    previousGradeCode?: SortOrder
    newGradeCode?: SortOrder
    reason?: SortOrder
    adjustedBy?: SortOrder
    adjustedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type GradeAdjustmentLogMaxOrderByAggregateInput = {
    id?: SortOrder
    resultId?: SortOrder
    previousGradeCode?: SortOrder
    newGradeCode?: SortOrder
    reason?: SortOrder
    adjustedBy?: SortOrder
    adjustedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type GradeAdjustmentLogMinOrderByAggregateInput = {
    id?: SortOrder
    resultId?: SortOrder
    previousGradeCode?: SortOrder
    newGradeCode?: SortOrder
    reason?: SortOrder
    adjustedBy?: SortOrder
    adjustedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StrategicObjectiveCountOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    seq?: SortOrder
    name?: SortOrder
    description?: SortOrder
    departmentId?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StrategicObjectiveAvgOrderByAggregateInput = {
    seq?: SortOrder
  }

  export type StrategicObjectiveMaxOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    seq?: SortOrder
    name?: SortOrder
    description?: SortOrder
    departmentId?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StrategicObjectiveMinOrderByAggregateInput = {
    id?: SortOrder
    cycleId?: SortOrder
    seq?: SortOrder
    name?: SortOrder
    description?: SortOrder
    departmentId?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StrategicObjectiveSumOrderByAggregateInput = {
    seq?: SortOrder
  }

  export type StrategicObjectiveScalarRelationFilter = {
    is?: StrategicObjectiveWhereInput
    isNot?: StrategicObjectiveWhereInput
  }

  export type StrategicObjectiveAssignmentObjectiveIdAssigneeIdCompoundUniqueInput = {
    objectiveId: string
    assigneeId: string
  }

  export type StrategicObjectiveAssignmentCountOrderByAggregateInput = {
    id?: SortOrder
    objectiveId?: SortOrder
    assigneeId?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StrategicObjectiveAssignmentMaxOrderByAggregateInput = {
    id?: SortOrder
    objectiveId?: SortOrder
    assigneeId?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type StrategicObjectiveAssignmentMinOrderByAggregateInput = {
    id?: SortOrder
    objectiveId?: SortOrder
    assigneeId?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type Evaluation360TemplateCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    dimensions?: SortOrder
    relationshipTypes?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    cycleId?: SortOrder
    scope?: SortOrder
    organizationId?: SortOrder
  }

  export type Evaluation360TemplateMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    cycleId?: SortOrder
    organizationId?: SortOrder
  }

  export type Evaluation360TemplateMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    isDefault?: SortOrder
    isActive?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
    cycleId?: SortOrder
    organizationId?: SortOrder
  }

  export type EnumSiteGeoPolicyFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteGeoPolicy | EnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    in?: $Enums.SiteGeoPolicy[] | ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteGeoPolicy[] | ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteGeoPolicyFilter<$PrismaModel> | $Enums.SiteGeoPolicy
  }

  export type EnumSiteCheckpointAccessModeFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteCheckpointAccessMode | EnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    in?: $Enums.SiteCheckpointAccessMode[] | ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteCheckpointAccessMode[] | ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteCheckpointAccessModeFilter<$PrismaModel> | $Enums.SiteCheckpointAccessMode
  }

  export type SiteCheckpointCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrder
    address?: SortOrder
    timezone?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    geoPolicy?: SortOrder
    geoRadius?: SortOrder
    geoAccuracyThreshold?: SortOrder
    allowUnauthenticatedCheckin?: SortOrder
    isActive?: SortOrder
    accessMode?: SortOrder
    qrRotationSeconds?: SortOrder
    qrGraceSeconds?: SortOrder
    sharedCheckinEnabled?: SortOrder
    sharedCompanyId?: SortOrder
    sharedCompanyLabel?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SiteCheckpointAvgOrderByAggregateInput = {
    latitude?: SortOrder
    longitude?: SortOrder
    geoRadius?: SortOrder
    geoAccuracyThreshold?: SortOrder
    qrRotationSeconds?: SortOrder
    qrGraceSeconds?: SortOrder
  }

  export type SiteCheckpointMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrder
    address?: SortOrder
    timezone?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    geoPolicy?: SortOrder
    geoRadius?: SortOrder
    geoAccuracyThreshold?: SortOrder
    allowUnauthenticatedCheckin?: SortOrder
    isActive?: SortOrder
    accessMode?: SortOrder
    qrRotationSeconds?: SortOrder
    qrGraceSeconds?: SortOrder
    sharedCheckinEnabled?: SortOrder
    sharedCompanyId?: SortOrder
    sharedCompanyLabel?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SiteCheckpointMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    description?: SortOrder
    address?: SortOrder
    timezone?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    geoPolicy?: SortOrder
    geoRadius?: SortOrder
    geoAccuracyThreshold?: SortOrder
    allowUnauthenticatedCheckin?: SortOrder
    isActive?: SortOrder
    accessMode?: SortOrder
    qrRotationSeconds?: SortOrder
    qrGraceSeconds?: SortOrder
    sharedCheckinEnabled?: SortOrder
    sharedCompanyId?: SortOrder
    sharedCompanyLabel?: SortOrder
    createdBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SiteCheckpointSumOrderByAggregateInput = {
    latitude?: SortOrder
    longitude?: SortOrder
    geoRadius?: SortOrder
    geoAccuracyThreshold?: SortOrder
    qrRotationSeconds?: SortOrder
    qrGraceSeconds?: SortOrder
  }

  export type EnumSiteGeoPolicyWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteGeoPolicy | EnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    in?: $Enums.SiteGeoPolicy[] | ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteGeoPolicy[] | ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteGeoPolicyWithAggregatesFilter<$PrismaModel> | $Enums.SiteGeoPolicy
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteGeoPolicyFilter<$PrismaModel>
    _max?: NestedEnumSiteGeoPolicyFilter<$PrismaModel>
  }

  export type EnumSiteCheckpointAccessModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteCheckpointAccessMode | EnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    in?: $Enums.SiteCheckpointAccessMode[] | ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteCheckpointAccessMode[] | ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteCheckpointAccessModeWithAggregatesFilter<$PrismaModel> | $Enums.SiteCheckpointAccessMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteCheckpointAccessModeFilter<$PrismaModel>
    _max?: NestedEnumSiteCheckpointAccessModeFilter<$PrismaModel>
  }

  export type SiteCheckpointScalarRelationFilter = {
    is?: SiteCheckpointWhereInput
    isNot?: SiteCheckpointWhereInput
  }

  export type SharedCheckinPartnerCountOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    companyId?: SortOrder
    companyLabel?: SortOrder
    displayLabel?: SortOrder
    targetUrl?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SharedCheckinPartnerAvgOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type SharedCheckinPartnerMaxOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    companyId?: SortOrder
    companyLabel?: SortOrder
    displayLabel?: SortOrder
    targetUrl?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SharedCheckinPartnerMinOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    companyId?: SortOrder
    companyLabel?: SortOrder
    displayLabel?: SortOrder
    targetUrl?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdBy?: SortOrder
    updatedBy?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SharedCheckinPartnerSumOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type SharedCheckinTicketUsageCountOrderByAggregateInput = {
    nonce?: SortOrder
    usedAt?: SortOrder
    expiresAt?: SortOrder
  }

  export type SharedCheckinTicketUsageMaxOrderByAggregateInput = {
    nonce?: SortOrder
    usedAt?: SortOrder
    expiresAt?: SortOrder
  }

  export type SharedCheckinTicketUsageMinOrderByAggregateInput = {
    nonce?: SortOrder
    usedAt?: SortOrder
    expiresAt?: SortOrder
  }

  export type EnumSiteEventTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteEventType | EnumSiteEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SiteEventType[] | ListEnumSiteEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteEventType[] | ListEnumSiteEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteEventTypeFilter<$PrismaModel> | $Enums.SiteEventType
  }

  export type EnumSiteAuthMethodFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteAuthMethod | EnumSiteAuthMethodFieldRefInput<$PrismaModel>
    in?: $Enums.SiteAuthMethod[] | ListEnumSiteAuthMethodFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteAuthMethod[] | ListEnumSiteAuthMethodFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteAuthMethodFilter<$PrismaModel> | $Enums.SiteAuthMethod
  }

  export type EnumSiteGeoStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteGeoStatus | EnumSiteGeoStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SiteGeoStatus[] | ListEnumSiteGeoStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteGeoStatus[] | ListEnumSiteGeoStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteGeoStatusFilter<$PrismaModel> | $Enums.SiteGeoStatus
  }

  export type SiteAttendanceEventCountOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    eventType?: SortOrder
    timestamp?: SortOrder
    localDate?: SortOrder
    authMethod?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    accuracy?: SortOrder
    geoStatus?: SortOrder
    distanceToCheckpoint?: SortOrder
    deviceId?: SortOrder
    userAgent?: SortOrder
    ipAddress?: SortOrder
    createdAt?: SortOrder
  }

  export type SiteAttendanceEventAvgOrderByAggregateInput = {
    latitude?: SortOrder
    longitude?: SortOrder
    accuracy?: SortOrder
    distanceToCheckpoint?: SortOrder
  }

  export type SiteAttendanceEventMaxOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    eventType?: SortOrder
    timestamp?: SortOrder
    localDate?: SortOrder
    authMethod?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    accuracy?: SortOrder
    geoStatus?: SortOrder
    distanceToCheckpoint?: SortOrder
    deviceId?: SortOrder
    userAgent?: SortOrder
    ipAddress?: SortOrder
    createdAt?: SortOrder
  }

  export type SiteAttendanceEventMinOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    eventType?: SortOrder
    timestamp?: SortOrder
    localDate?: SortOrder
    authMethod?: SortOrder
    latitude?: SortOrder
    longitude?: SortOrder
    accuracy?: SortOrder
    geoStatus?: SortOrder
    distanceToCheckpoint?: SortOrder
    deviceId?: SortOrder
    userAgent?: SortOrder
    ipAddress?: SortOrder
    createdAt?: SortOrder
  }

  export type SiteAttendanceEventSumOrderByAggregateInput = {
    latitude?: SortOrder
    longitude?: SortOrder
    accuracy?: SortOrder
    distanceToCheckpoint?: SortOrder
  }

  export type EnumSiteEventTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteEventType | EnumSiteEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SiteEventType[] | ListEnumSiteEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteEventType[] | ListEnumSiteEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteEventTypeWithAggregatesFilter<$PrismaModel> | $Enums.SiteEventType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteEventTypeFilter<$PrismaModel>
    _max?: NestedEnumSiteEventTypeFilter<$PrismaModel>
  }

  export type EnumSiteAuthMethodWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteAuthMethod | EnumSiteAuthMethodFieldRefInput<$PrismaModel>
    in?: $Enums.SiteAuthMethod[] | ListEnumSiteAuthMethodFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteAuthMethod[] | ListEnumSiteAuthMethodFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteAuthMethodWithAggregatesFilter<$PrismaModel> | $Enums.SiteAuthMethod
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteAuthMethodFilter<$PrismaModel>
    _max?: NestedEnumSiteAuthMethodFilter<$PrismaModel>
  }

  export type EnumSiteGeoStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteGeoStatus | EnumSiteGeoStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SiteGeoStatus[] | ListEnumSiteGeoStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteGeoStatus[] | ListEnumSiteGeoStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteGeoStatusWithAggregatesFilter<$PrismaModel> | $Enums.SiteGeoStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteGeoStatusFilter<$PrismaModel>
    _max?: NestedEnumSiteGeoStatusFilter<$PrismaModel>
  }

  export type SiteDailySummaryCheckpointIdUserIdLocalDateCompoundUniqueInput = {
    checkpointId: string
    userId: string
    localDate: string
  }

  export type SiteDailySummaryCountOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    localDate?: SortOrder
    firstCheckInAt?: SortOrder
    lastCheckOutAt?: SortOrder
    checkInCount?: SortOrder
    checkOutCount?: SortOrder
    hasGeoAnomaly?: SortOrder
    lastEventId?: SortOrder
    updatedAt?: SortOrder
  }

  export type SiteDailySummaryAvgOrderByAggregateInput = {
    checkInCount?: SortOrder
    checkOutCount?: SortOrder
  }

  export type SiteDailySummaryMaxOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    localDate?: SortOrder
    firstCheckInAt?: SortOrder
    lastCheckOutAt?: SortOrder
    checkInCount?: SortOrder
    checkOutCount?: SortOrder
    hasGeoAnomaly?: SortOrder
    lastEventId?: SortOrder
    updatedAt?: SortOrder
  }

  export type SiteDailySummaryMinOrderByAggregateInput = {
    id?: SortOrder
    checkpointId?: SortOrder
    userId?: SortOrder
    localDate?: SortOrder
    firstCheckInAt?: SortOrder
    lastCheckOutAt?: SortOrder
    checkInCount?: SortOrder
    checkOutCount?: SortOrder
    hasGeoAnomaly?: SortOrder
    lastEventId?: SortOrder
    updatedAt?: SortOrder
  }

  export type SiteDailySummarySumOrderByAggregateInput = {
    checkInCount?: SortOrder
    checkOutCount?: SortOrder
  }

  export type EnumTicketPriorityFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketPriority | EnumTicketPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.TicketPriority[] | ListEnumTicketPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketPriority[] | ListEnumTicketPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketPriorityFilter<$PrismaModel> | $Enums.TicketPriority
  }

  export type EnumTicketStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketStatus | EnumTicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.TicketStatus[] | ListEnumTicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketStatus[] | ListEnumTicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketStatusFilter<$PrismaModel> | $Enums.TicketStatus
  }

  export type EnumTicketSourceFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketSource | EnumTicketSourceFieldRefInput<$PrismaModel>
    in?: $Enums.TicketSource[] | ListEnumTicketSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketSource[] | ListEnumTicketSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketSourceFilter<$PrismaModel> | $Enums.TicketSource
  }

  export type TicketCategoryScalarRelationFilter = {
    is?: TicketCategoryWhereInput
    isNot?: TicketCategoryWhereInput
  }

  export type AssignmentGroupNullableScalarRelationFilter = {
    is?: AssignmentGroupWhereInput | null
    isNot?: AssignmentGroupWhereInput | null
  }

  export type TicketSLANullableScalarRelationFilter = {
    is?: TicketSLAWhereInput | null
    isNot?: TicketSLAWhereInput | null
  }

  export type TicketNullableScalarRelationFilter = {
    is?: TicketWhereInput | null
    isNot?: TicketWhereInput | null
  }

  export type TicketListRelationFilter = {
    every?: TicketWhereInput
    some?: TicketWhereInput
    none?: TicketWhereInput
  }

  export type TicketCommentListRelationFilter = {
    every?: TicketCommentWhereInput
    some?: TicketCommentWhereInput
    none?: TicketCommentWhereInput
  }

  export type TicketActivityListRelationFilter = {
    every?: TicketActivityWhereInput
    some?: TicketActivityWhereInput
    none?: TicketActivityWhereInput
  }

  export type TicketAttachmentListRelationFilter = {
    every?: TicketAttachmentWhereInput
    some?: TicketAttachmentWhereInput
    none?: TicketAttachmentWhereInput
  }

  export type TicketOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type TicketCommentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type TicketActivityOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type TicketAttachmentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type TicketCountOrderByAggregateInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    title?: SortOrder
    description?: SortOrder
    categoryId?: SortOrder
    priority?: SortOrder
    tags?: SortOrder
    status?: SortOrder
    creatorId?: SortOrder
    assigneeId?: SortOrder
    assigneeGroupId?: SortOrder
    watcherIds?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    firstResponseAt?: SortOrder
    resolvedAt?: SortOrder
    closedAt?: SortOrder
    dueAt?: SortOrder
    slaId?: SortOrder
    slaBreached?: SortOrder
    slaPausedAt?: SortOrder
    slaPausedDuration?: SortOrder
    satisfactionRating?: SortOrder
    satisfactionComment?: SortOrder
    satisfactionRatedAt?: SortOrder
    source?: SortOrder
    externalId?: SortOrder
    channelMetadata?: SortOrder
    resolution?: SortOrder
    rootCause?: SortOrder
    relatedTicketIds?: SortOrder
    parentTicketId?: SortOrder
    approvalInstanceId?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    language?: SortOrder
    complianceFlag?: SortOrder
    deletedAt?: SortOrder
  }

  export type TicketAvgOrderByAggregateInput = {
    slaPausedDuration?: SortOrder
    satisfactionRating?: SortOrder
  }

  export type TicketMaxOrderByAggregateInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    title?: SortOrder
    description?: SortOrder
    categoryId?: SortOrder
    priority?: SortOrder
    status?: SortOrder
    creatorId?: SortOrder
    assigneeId?: SortOrder
    assigneeGroupId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    firstResponseAt?: SortOrder
    resolvedAt?: SortOrder
    closedAt?: SortOrder
    dueAt?: SortOrder
    slaId?: SortOrder
    slaBreached?: SortOrder
    slaPausedAt?: SortOrder
    slaPausedDuration?: SortOrder
    satisfactionRating?: SortOrder
    satisfactionComment?: SortOrder
    satisfactionRatedAt?: SortOrder
    source?: SortOrder
    externalId?: SortOrder
    resolution?: SortOrder
    rootCause?: SortOrder
    parentTicketId?: SortOrder
    approvalInstanceId?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    language?: SortOrder
    complianceFlag?: SortOrder
    deletedAt?: SortOrder
  }

  export type TicketMinOrderByAggregateInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    title?: SortOrder
    description?: SortOrder
    categoryId?: SortOrder
    priority?: SortOrder
    status?: SortOrder
    creatorId?: SortOrder
    assigneeId?: SortOrder
    assigneeGroupId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    firstResponseAt?: SortOrder
    resolvedAt?: SortOrder
    closedAt?: SortOrder
    dueAt?: SortOrder
    slaId?: SortOrder
    slaBreached?: SortOrder
    slaPausedAt?: SortOrder
    slaPausedDuration?: SortOrder
    satisfactionRating?: SortOrder
    satisfactionComment?: SortOrder
    satisfactionRatedAt?: SortOrder
    source?: SortOrder
    externalId?: SortOrder
    resolution?: SortOrder
    rootCause?: SortOrder
    parentTicketId?: SortOrder
    approvalInstanceId?: SortOrder
    region?: SortOrder
    tenantId?: SortOrder
    language?: SortOrder
    complianceFlag?: SortOrder
    deletedAt?: SortOrder
  }

  export type TicketSumOrderByAggregateInput = {
    slaPausedDuration?: SortOrder
    satisfactionRating?: SortOrder
  }

  export type EnumTicketPriorityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketPriority | EnumTicketPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.TicketPriority[] | ListEnumTicketPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketPriority[] | ListEnumTicketPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketPriorityWithAggregatesFilter<$PrismaModel> | $Enums.TicketPriority
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumTicketPriorityFilter<$PrismaModel>
    _max?: NestedEnumTicketPriorityFilter<$PrismaModel>
  }

  export type EnumTicketStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketStatus | EnumTicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.TicketStatus[] | ListEnumTicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketStatus[] | ListEnumTicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketStatusWithAggregatesFilter<$PrismaModel> | $Enums.TicketStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumTicketStatusFilter<$PrismaModel>
    _max?: NestedEnumTicketStatusFilter<$PrismaModel>
  }

  export type EnumTicketSourceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketSource | EnumTicketSourceFieldRefInput<$PrismaModel>
    in?: $Enums.TicketSource[] | ListEnumTicketSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketSource[] | ListEnumTicketSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketSourceWithAggregatesFilter<$PrismaModel> | $Enums.TicketSource
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumTicketSourceFilter<$PrismaModel>
    _max?: NestedEnumTicketSourceFilter<$PrismaModel>
  }

  export type TicketCategoryNullableScalarRelationFilter = {
    is?: TicketCategoryWhereInput | null
    isNot?: TicketCategoryWhereInput | null
  }

  export type TicketCategoryListRelationFilter = {
    every?: TicketCategoryWhereInput
    some?: TicketCategoryWhereInput
    none?: TicketCategoryWhereInput
  }

  export type TicketCategoryOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type TicketCategoryCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    icon?: SortOrder
    parentId?: SortOrder
    defaultPriority?: SortOrder
    defaultAssigneeGroupId?: SortOrder
    slaId?: SortOrder
    formTemplateId?: SortOrder
    allowedDepartmentIds?: SortOrder
    allowedRoleIds?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type TicketCategoryAvgOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type TicketCategoryMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    icon?: SortOrder
    parentId?: SortOrder
    defaultPriority?: SortOrder
    defaultAssigneeGroupId?: SortOrder
    slaId?: SortOrder
    formTemplateId?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type TicketCategoryMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    icon?: SortOrder
    parentId?: SortOrder
    defaultPriority?: SortOrder
    defaultAssigneeGroupId?: SortOrder
    slaId?: SortOrder
    formTemplateId?: SortOrder
    isActive?: SortOrder
    sortOrder?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type TicketCategorySumOrderByAggregateInput = {
    sortOrder?: SortOrder
  }

  export type EnumCommentTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.CommentType | EnumCommentTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CommentType[] | ListEnumCommentTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CommentType[] | ListEnumCommentTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCommentTypeFilter<$PrismaModel> | $Enums.CommentType
  }

  export type EnumVisibilityScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.VisibilityScope | EnumVisibilityScopeFieldRefInput<$PrismaModel>
    in?: $Enums.VisibilityScope[] | ListEnumVisibilityScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.VisibilityScope[] | ListEnumVisibilityScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumVisibilityScopeFilter<$PrismaModel> | $Enums.VisibilityScope
  }

  export type TicketScalarRelationFilter = {
    is?: TicketWhereInput
    isNot?: TicketWhereInput
  }

  export type TicketCommentCountOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    content?: SortOrder
    type?: SortOrder
    isInternal?: SortOrder
    visibilityScope?: SortOrder
    authorId?: SortOrder
    mentionedUserIds?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type TicketCommentMaxOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    content?: SortOrder
    type?: SortOrder
    isInternal?: SortOrder
    visibilityScope?: SortOrder
    authorId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type TicketCommentMinOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    content?: SortOrder
    type?: SortOrder
    isInternal?: SortOrder
    visibilityScope?: SortOrder
    authorId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumCommentTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CommentType | EnumCommentTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CommentType[] | ListEnumCommentTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CommentType[] | ListEnumCommentTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCommentTypeWithAggregatesFilter<$PrismaModel> | $Enums.CommentType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCommentTypeFilter<$PrismaModel>
    _max?: NestedEnumCommentTypeFilter<$PrismaModel>
  }

  export type EnumVisibilityScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.VisibilityScope | EnumVisibilityScopeFieldRefInput<$PrismaModel>
    in?: $Enums.VisibilityScope[] | ListEnumVisibilityScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.VisibilityScope[] | ListEnumVisibilityScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumVisibilityScopeWithAggregatesFilter<$PrismaModel> | $Enums.VisibilityScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumVisibilityScopeFilter<$PrismaModel>
    _max?: NestedEnumVisibilityScopeFilter<$PrismaModel>
  }

  export type TicketCommentNullableScalarRelationFilter = {
    is?: TicketCommentWhereInput | null
    isNot?: TicketCommentWhereInput | null
  }

  export type TicketAttachmentCountOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    commentId?: SortOrder
    fileName?: SortOrder
    fileUrl?: SortOrder
    fileSize?: SortOrder
    mimeType?: SortOrder
    uploadedBy?: SortOrder
    createdAt?: SortOrder
  }

  export type TicketAttachmentAvgOrderByAggregateInput = {
    fileSize?: SortOrder
  }

  export type TicketAttachmentMaxOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    commentId?: SortOrder
    fileName?: SortOrder
    fileUrl?: SortOrder
    fileSize?: SortOrder
    mimeType?: SortOrder
    uploadedBy?: SortOrder
    createdAt?: SortOrder
  }

  export type TicketAttachmentMinOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    commentId?: SortOrder
    fileName?: SortOrder
    fileUrl?: SortOrder
    fileSize?: SortOrder
    mimeType?: SortOrder
    uploadedBy?: SortOrder
    createdAt?: SortOrder
  }

  export type TicketAttachmentSumOrderByAggregateInput = {
    fileSize?: SortOrder
  }

  export type EnumActivityTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ActivityType | EnumActivityTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ActivityType[] | ListEnumActivityTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ActivityType[] | ListEnumActivityTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumActivityTypeFilter<$PrismaModel> | $Enums.ActivityType
  }

  export type TicketActivityCountOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    type?: SortOrder
    content?: SortOrder
    operatorId?: SortOrder
    createdAt?: SortOrder
  }

  export type TicketActivityMaxOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    type?: SortOrder
    operatorId?: SortOrder
    createdAt?: SortOrder
  }

  export type TicketActivityMinOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    type?: SortOrder
    operatorId?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumActivityTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ActivityType | EnumActivityTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ActivityType[] | ListEnumActivityTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ActivityType[] | ListEnumActivityTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumActivityTypeWithAggregatesFilter<$PrismaModel> | $Enums.ActivityType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumActivityTypeFilter<$PrismaModel>
    _max?: NestedEnumActivityTypeFilter<$PrismaModel>
  }

  export type TicketSLACountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    firstResponseTime?: SortOrder
    resolutionTime?: SortOrder
    businessHours?: SortOrder
    excludeHolidays?: SortOrder
    holidayCalendarId?: SortOrder
    escalationRules?: SortOrder
    isActive?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type TicketSLAMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    excludeHolidays?: SortOrder
    holidayCalendarId?: SortOrder
    isActive?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type TicketSLAMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    description?: SortOrder
    excludeHolidays?: SortOrder
    holidayCalendarId?: SortOrder
    isActive?: SortOrder
    isDefault?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAssignmentStrategyFilter<$PrismaModel = never> = {
    equals?: $Enums.AssignmentStrategy | EnumAssignmentStrategyFieldRefInput<$PrismaModel>
    in?: $Enums.AssignmentStrategy[] | ListEnumAssignmentStrategyFieldRefInput<$PrismaModel>
    notIn?: $Enums.AssignmentStrategy[] | ListEnumAssignmentStrategyFieldRefInput<$PrismaModel>
    not?: NestedEnumAssignmentStrategyFilter<$PrismaModel> | $Enums.AssignmentStrategy
  }

  export type AssignmentGroupCountOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    memberIds?: SortOrder
    managerId?: SortOrder
    skills?: SortOrder
    assignmentStrategy?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AssignmentGroupMaxOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    managerId?: SortOrder
    assignmentStrategy?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type AssignmentGroupMinOrderByAggregateInput = {
    id?: SortOrder
    name?: SortOrder
    code?: SortOrder
    description?: SortOrder
    managerId?: SortOrder
    assignmentStrategy?: SortOrder
    isActive?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type EnumAssignmentStrategyWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AssignmentStrategy | EnumAssignmentStrategyFieldRefInput<$PrismaModel>
    in?: $Enums.AssignmentStrategy[] | ListEnumAssignmentStrategyFieldRefInput<$PrismaModel>
    notIn?: $Enums.AssignmentStrategy[] | ListEnumAssignmentStrategyFieldRefInput<$PrismaModel>
    not?: NestedEnumAssignmentStrategyWithAggregatesFilter<$PrismaModel> | $Enums.AssignmentStrategy
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAssignmentStrategyFilter<$PrismaModel>
    _max?: NestedEnumAssignmentStrategyFilter<$PrismaModel>
  }

  export type RobotSkuListRelationFilter = {
    every?: RobotSkuWhereInput
    some?: RobotSkuWhereInput
    none?: RobotSkuWhereInput
  }

  export type RobotUnitListRelationFilter = {
    every?: RobotUnitWhereInput
    some?: RobotUnitWhereInput
    none?: RobotUnitWhereInput
  }

  export type RobotSkuOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type RobotUnitOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type RobotModelCountOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    brand?: SortOrder
    description?: SortOrder
    imageUrl?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotModelMaxOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    brand?: SortOrder
    description?: SortOrder
    imageUrl?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotModelMinOrderByAggregateInput = {
    id?: SortOrder
    code?: SortOrder
    name?: SortOrder
    brand?: SortOrder
    description?: SortOrder
    imageUrl?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotModelScalarRelationFilter = {
    is?: RobotModelWhereInput
    isNot?: RobotModelWhereInput
  }

  export type RobotSkuCountOrderByAggregateInput = {
    id?: SortOrder
    modelId?: SortOrder
    code?: SortOrder
    name?: SortOrder
    variant?: SortOrder
    defaultPrice?: SortOrder
    defaultCost?: SortOrder
    currencyCode?: SortOrder
    description?: SortOrder
    enabled?: SortOrder
    metadata?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotSkuAvgOrderByAggregateInput = {
    defaultPrice?: SortOrder
    defaultCost?: SortOrder
  }

  export type RobotSkuMaxOrderByAggregateInput = {
    id?: SortOrder
    modelId?: SortOrder
    code?: SortOrder
    name?: SortOrder
    variant?: SortOrder
    defaultPrice?: SortOrder
    defaultCost?: SortOrder
    currencyCode?: SortOrder
    description?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotSkuMinOrderByAggregateInput = {
    id?: SortOrder
    modelId?: SortOrder
    code?: SortOrder
    name?: SortOrder
    variant?: SortOrder
    defaultPrice?: SortOrder
    defaultCost?: SortOrder
    currencyCode?: SortOrder
    description?: SortOrder
    enabled?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotSkuSumOrderByAggregateInput = {
    defaultPrice?: SortOrder
    defaultCost?: SortOrder
  }

  export type RobotSystemConfigCountOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    value?: SortOrder
    description?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type RobotSystemConfigMaxOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    description?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type RobotSystemConfigMinOrderByAggregateInput = {
    id?: SortOrder
    key?: SortOrder
    description?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type EnumRobotUsageTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotUsageType | EnumRobotUsageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotUsageTypeFilter<$PrismaModel> | $Enums.RobotUsageType
  }

  export type EnumRobotDisposalTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotDisposalType | EnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotDisposalType[] | ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotDisposalType[] | ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotDisposalTypeNullableFilter<$PrismaModel> | $Enums.RobotDisposalType | null
  }

  export type RobotSkuScalarRelationFilter = {
    is?: RobotSkuWhereInput
    isNot?: RobotSkuWhereInput
  }

  export type PurchaseOrderNullableScalarRelationFilter = {
    is?: PurchaseOrderWhereInput | null
    isNot?: PurchaseOrderWhereInput | null
  }

  export type PurchaseOrderLineNullableScalarRelationFilter = {
    is?: PurchaseOrderLineWhereInput | null
    isNot?: PurchaseOrderLineWhereInput | null
  }

  export type RobotUnitSnapshotNullableScalarRelationFilter = {
    is?: RobotUnitSnapshotWhereInput | null
    isNot?: RobotUnitSnapshotWhereInput | null
  }

  export type RobotLifecycleEventListRelationFilter = {
    every?: RobotLifecycleEventWhereInput
    some?: RobotLifecycleEventWhereInput
    none?: RobotLifecycleEventWhereInput
  }

  export type QualityLabelRecordListRelationFilter = {
    every?: QualityLabelRecordWhereInput
    some?: QualityLabelRecordWhereInput
    none?: QualityLabelRecordWhereInput
  }

  export type RobotPackageReadinessNullableScalarRelationFilter = {
    is?: RobotPackageReadinessWhereInput | null
    isNot?: RobotPackageReadinessWhereInput | null
  }

  export type InspectionRecordListRelationFilter = {
    every?: InspectionRecordWhereInput
    some?: InspectionRecordWhereInput
    none?: InspectionRecordWhereInput
  }

  export type LogisticsLegListRelationFilter = {
    every?: LogisticsLegWhereInput
    some?: LogisticsLegWhereInput
    none?: LogisticsLegWhereInput
  }

  export type ComplianceCheckNullableScalarRelationFilter = {
    is?: ComplianceCheckWhereInput | null
    isNot?: ComplianceCheckWhereInput | null
  }

  export type RentalAgreementListRelationFilter = {
    every?: RentalAgreementWhereInput
    some?: RentalAgreementWhereInput
    none?: RentalAgreementWhereInput
  }

  export type ServiceTicketListRelationFilter = {
    every?: ServiceTicketWhereInput
    some?: ServiceTicketWhereInput
    none?: ServiceTicketWhereInput
  }

  export type DeliveryFulfillmentListRelationFilter = {
    every?: DeliveryFulfillmentWhereInput
    some?: DeliveryFulfillmentWhereInput
    none?: DeliveryFulfillmentWhereInput
  }

  export type SalesOrderLineListRelationFilter = {
    every?: SalesOrderLineWhereInput
    some?: SalesOrderLineWhereInput
    none?: SalesOrderLineWhereInput
  }

  export type RobotImportAuditNullableScalarRelationFilter = {
    is?: RobotImportAuditWhereInput | null
    isNot?: RobotImportAuditWhereInput | null
  }

  export type PaymentRecordListRelationFilter = {
    every?: PaymentRecordWhereInput
    some?: PaymentRecordWhereInput
    none?: PaymentRecordWhereInput
  }

  export type RobotLifecycleEventOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type QualityLabelRecordOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type InspectionRecordOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type LogisticsLegOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type RentalAgreementOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ServiceTicketOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type DeliveryFulfillmentOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SalesOrderLineOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PaymentRecordOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type RobotUnitOrganizationIdFfsnCompoundUniqueInput = {
    organizationId: string
    ffsn: string
  }

  export type RobotUnitCountOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    version?: SortOrder
    ffsn?: SortOrder
    ffsnDisplay?: SortOrder
    placeholderSnOrig?: SortOrder
    supplierSn?: SortOrder
    modelId?: SortOrder
    skuId?: SortOrder
    usageType?: SortOrder
    purchaseOrderId?: SortOrder
    purchaseOrderLineId?: SortOrder
    originalSupplierId?: SortOrder
    manufactureDate?: SortOrder
    retiredAt?: SortOrder
    disposalType?: SortOrder
    disposalNotes?: SortOrder
    sapMaterialNo?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotUnitAvgOrderByAggregateInput = {
    version?: SortOrder
  }

  export type RobotUnitMaxOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    version?: SortOrder
    ffsn?: SortOrder
    ffsnDisplay?: SortOrder
    placeholderSnOrig?: SortOrder
    supplierSn?: SortOrder
    modelId?: SortOrder
    skuId?: SortOrder
    usageType?: SortOrder
    purchaseOrderId?: SortOrder
    purchaseOrderLineId?: SortOrder
    originalSupplierId?: SortOrder
    manufactureDate?: SortOrder
    retiredAt?: SortOrder
    disposalType?: SortOrder
    disposalNotes?: SortOrder
    sapMaterialNo?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotUnitMinOrderByAggregateInput = {
    id?: SortOrder
    organizationId?: SortOrder
    version?: SortOrder
    ffsn?: SortOrder
    ffsnDisplay?: SortOrder
    placeholderSnOrig?: SortOrder
    supplierSn?: SortOrder
    modelId?: SortOrder
    skuId?: SortOrder
    usageType?: SortOrder
    purchaseOrderId?: SortOrder
    purchaseOrderLineId?: SortOrder
    originalSupplierId?: SortOrder
    manufactureDate?: SortOrder
    retiredAt?: SortOrder
    disposalType?: SortOrder
    disposalNotes?: SortOrder
    sapMaterialNo?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotUnitSumOrderByAggregateInput = {
    version?: SortOrder
  }

  export type EnumRobotUsageTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotUsageType | EnumRobotUsageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotUsageTypeWithAggregatesFilter<$PrismaModel> | $Enums.RobotUsageType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRobotUsageTypeFilter<$PrismaModel>
    _max?: NestedEnumRobotUsageTypeFilter<$PrismaModel>
  }

  export type EnumRobotDisposalTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotDisposalType | EnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotDisposalType[] | ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotDisposalType[] | ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotDisposalTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotDisposalType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotDisposalTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotDisposalTypeNullableFilter<$PrismaModel>
  }

  export type EnumRobotLifecycleStageFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleStage | EnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    in?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotLifecycleStageFilter<$PrismaModel> | $Enums.RobotLifecycleStage
  }

  export type EnumRobotPhysicalStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotPhysicalStatus | EnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotPhysicalStatus[] | ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotPhysicalStatus[] | ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotPhysicalStatusNullableFilter<$PrismaModel> | $Enums.RobotPhysicalStatus | null
  }

  export type EnumRobotWarrantyStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotWarrantyStatus | EnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotWarrantyStatus[] | ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotWarrantyStatus[] | ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotWarrantyStatusNullableFilter<$PrismaModel> | $Enums.RobotWarrantyStatus | null
  }

  export type RobotUnitScalarRelationFilter = {
    is?: RobotUnitWhereInput
    isNot?: RobotUnitWhereInput
  }

  export type RobotLifecycleEventNullableScalarRelationFilter = {
    is?: RobotLifecycleEventWhereInput | null
    isNot?: RobotLifecycleEventWhereInput | null
  }

  export type SalesOrderNullableScalarRelationFilter = {
    is?: SalesOrderWhereInput | null
    isNot?: SalesOrderWhereInput | null
  }

  export type DeliveryRequestNullableScalarRelationFilter = {
    is?: DeliveryRequestWhereInput | null
    isNot?: DeliveryRequestWhereInput | null
  }

  export type RobotUnitSnapshotCountOrderByAggregateInput = {
    robotUnitId?: SortOrder
    currentStage?: SortOrder
    isHeld?: SortOrder
    holdReason?: SortOrder
    currentLocationId?: SortOrder
    currentCustomerId?: SortOrder
    currentSalesOrderId?: SortOrder
    currentDeliveryRequestId?: SortOrder
    currentSpecialistId?: SortOrder
    physicalProductStatus?: SortOrder
    daysReadyForDelivery?: SortOrder
    warrantyStatus?: SortOrder
    lastEventId?: SortOrder
    lastEventAt?: SortOrder
    derivedAt?: SortOrder
    version?: SortOrder
  }

  export type RobotUnitSnapshotAvgOrderByAggregateInput = {
    daysReadyForDelivery?: SortOrder
    version?: SortOrder
  }

  export type RobotUnitSnapshotMaxOrderByAggregateInput = {
    robotUnitId?: SortOrder
    currentStage?: SortOrder
    isHeld?: SortOrder
    holdReason?: SortOrder
    currentLocationId?: SortOrder
    currentCustomerId?: SortOrder
    currentSalesOrderId?: SortOrder
    currentDeliveryRequestId?: SortOrder
    currentSpecialistId?: SortOrder
    physicalProductStatus?: SortOrder
    daysReadyForDelivery?: SortOrder
    warrantyStatus?: SortOrder
    lastEventId?: SortOrder
    lastEventAt?: SortOrder
    derivedAt?: SortOrder
    version?: SortOrder
  }

  export type RobotUnitSnapshotMinOrderByAggregateInput = {
    robotUnitId?: SortOrder
    currentStage?: SortOrder
    isHeld?: SortOrder
    holdReason?: SortOrder
    currentLocationId?: SortOrder
    currentCustomerId?: SortOrder
    currentSalesOrderId?: SortOrder
    currentDeliveryRequestId?: SortOrder
    currentSpecialistId?: SortOrder
    physicalProductStatus?: SortOrder
    daysReadyForDelivery?: SortOrder
    warrantyStatus?: SortOrder
    lastEventId?: SortOrder
    lastEventAt?: SortOrder
    derivedAt?: SortOrder
    version?: SortOrder
  }

  export type RobotUnitSnapshotSumOrderByAggregateInput = {
    daysReadyForDelivery?: SortOrder
    version?: SortOrder
  }

  export type EnumRobotLifecycleStageWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleStage | EnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    in?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotLifecycleStageWithAggregatesFilter<$PrismaModel> | $Enums.RobotLifecycleStage
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRobotLifecycleStageFilter<$PrismaModel>
    _max?: NestedEnumRobotLifecycleStageFilter<$PrismaModel>
  }

  export type EnumRobotPhysicalStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotPhysicalStatus | EnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotPhysicalStatus[] | ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotPhysicalStatus[] | ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotPhysicalStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotPhysicalStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotPhysicalStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotPhysicalStatusNullableFilter<$PrismaModel>
  }

  export type EnumRobotWarrantyStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotWarrantyStatus | EnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotWarrantyStatus[] | ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotWarrantyStatus[] | ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotWarrantyStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotWarrantyStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotWarrantyStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotWarrantyStatusNullableFilter<$PrismaModel>
  }

  export type EnumRobotLifecycleEventTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleEventType | EnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RobotLifecycleEventType[] | ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotLifecycleEventType[] | ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotLifecycleEventTypeFilter<$PrismaModel> | $Enums.RobotLifecycleEventType
  }

  export type EnumRobotLifecycleStageNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleStage | EnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotLifecycleStageNullableFilter<$PrismaModel> | $Enums.RobotLifecycleStage | null
  }

  export type EnumRobotEventRelatedTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotEventRelatedType | EnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotEventRelatedType[] | ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotEventRelatedType[] | ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotEventRelatedTypeNullableFilter<$PrismaModel> | $Enums.RobotEventRelatedType | null
  }

  export type RobotUnitSnapshotListRelationFilter = {
    every?: RobotUnitSnapshotWhereInput
    some?: RobotUnitSnapshotWhereInput
    none?: RobotUnitSnapshotWhereInput
  }

  export type RobotUnitSnapshotOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type RobotLifecycleEventCountOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    eventType?: SortOrder
    fromStage?: SortOrder
    toStage?: SortOrder
    fromLocationId?: SortOrder
    toLocationId?: SortOrder
    actorUserId?: SortOrder
    partnerId?: SortOrder
    customerId?: SortOrder
    relatedType?: SortOrder
    relatedId?: SortOrder
    payload?: SortOrder
    notes?: SortOrder
    occurredAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotLifecycleEventMaxOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    eventType?: SortOrder
    fromStage?: SortOrder
    toStage?: SortOrder
    fromLocationId?: SortOrder
    toLocationId?: SortOrder
    actorUserId?: SortOrder
    partnerId?: SortOrder
    customerId?: SortOrder
    relatedType?: SortOrder
    relatedId?: SortOrder
    notes?: SortOrder
    occurredAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotLifecycleEventMinOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    eventType?: SortOrder
    fromStage?: SortOrder
    toStage?: SortOrder
    fromLocationId?: SortOrder
    toLocationId?: SortOrder
    actorUserId?: SortOrder
    partnerId?: SortOrder
    customerId?: SortOrder
    relatedType?: SortOrder
    relatedId?: SortOrder
    notes?: SortOrder
    occurredAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumRobotLifecycleEventTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleEventType | EnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RobotLifecycleEventType[] | ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotLifecycleEventType[] | ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotLifecycleEventTypeWithAggregatesFilter<$PrismaModel> | $Enums.RobotLifecycleEventType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRobotLifecycleEventTypeFilter<$PrismaModel>
    _max?: NestedEnumRobotLifecycleEventTypeFilter<$PrismaModel>
  }

  export type EnumRobotLifecycleStageNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleStage | EnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotLifecycleStageNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotLifecycleStage | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotLifecycleStageNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotLifecycleStageNullableFilter<$PrismaModel>
  }

  export type EnumRobotEventRelatedTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotEventRelatedType | EnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotEventRelatedType[] | ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotEventRelatedType[] | ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotEventRelatedTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotEventRelatedType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotEventRelatedTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotEventRelatedTypeNullableFilter<$PrismaModel>
  }

  export type EnumPurchaseOrderStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.PurchaseOrderStatus | EnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PurchaseOrderStatus[] | ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PurchaseOrderStatus[] | ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPurchaseOrderStatusFilter<$PrismaModel> | $Enums.PurchaseOrderStatus
  }

  export type PurchaseOrderLineListRelationFilter = {
    every?: PurchaseOrderLineWhereInput
    some?: PurchaseOrderLineWhereInput
    none?: PurchaseOrderLineWhereInput
  }

  export type PurchaseOrderLineOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PurchaseOrderCountOrderByAggregateInput = {
    id?: SortOrder
    poNo?: SortOrder
    sapPoNo?: SortOrder
    supplierId?: SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    status?: SortOrder
    orderedAt?: SortOrder
    expectedAt?: SortOrder
    closedAt?: SortOrder
    notes?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type PurchaseOrderAvgOrderByAggregateInput = {
    totalAmount?: SortOrder
    version?: SortOrder
  }

  export type PurchaseOrderMaxOrderByAggregateInput = {
    id?: SortOrder
    poNo?: SortOrder
    sapPoNo?: SortOrder
    supplierId?: SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    status?: SortOrder
    orderedAt?: SortOrder
    expectedAt?: SortOrder
    closedAt?: SortOrder
    notes?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type PurchaseOrderMinOrderByAggregateInput = {
    id?: SortOrder
    poNo?: SortOrder
    sapPoNo?: SortOrder
    supplierId?: SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    status?: SortOrder
    orderedAt?: SortOrder
    expectedAt?: SortOrder
    closedAt?: SortOrder
    notes?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type PurchaseOrderSumOrderByAggregateInput = {
    totalAmount?: SortOrder
    version?: SortOrder
  }

  export type EnumPurchaseOrderStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PurchaseOrderStatus | EnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PurchaseOrderStatus[] | ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PurchaseOrderStatus[] | ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPurchaseOrderStatusWithAggregatesFilter<$PrismaModel> | $Enums.PurchaseOrderStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPurchaseOrderStatusFilter<$PrismaModel>
    _max?: NestedEnumPurchaseOrderStatusFilter<$PrismaModel>
  }

  export type EnumRobotUsageTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotUsageType | EnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotUsageTypeNullableFilter<$PrismaModel> | $Enums.RobotUsageType | null
  }

  export type PurchaseOrderScalarRelationFilter = {
    is?: PurchaseOrderWhereInput
    isNot?: PurchaseOrderWhereInput
  }

  export type PurchaseOrderLinePurchaseOrderIdLineNoCompoundUniqueInput = {
    purchaseOrderId: string
    lineNo: number
  }

  export type PurchaseOrderLineCountOrderByAggregateInput = {
    id?: SortOrder
    purchaseOrderId?: SortOrder
    lineNo?: SortOrder
    skuId?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    totalPrice?: SortOrder
    currencyCode?: SortOrder
    defaultUsageType?: SortOrder
    placeholderPattern?: SortOrder
    expectedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PurchaseOrderLineAvgOrderByAggregateInput = {
    lineNo?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    totalPrice?: SortOrder
  }

  export type PurchaseOrderLineMaxOrderByAggregateInput = {
    id?: SortOrder
    purchaseOrderId?: SortOrder
    lineNo?: SortOrder
    skuId?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    totalPrice?: SortOrder
    currencyCode?: SortOrder
    defaultUsageType?: SortOrder
    placeholderPattern?: SortOrder
    expectedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PurchaseOrderLineMinOrderByAggregateInput = {
    id?: SortOrder
    purchaseOrderId?: SortOrder
    lineNo?: SortOrder
    skuId?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    totalPrice?: SortOrder
    currencyCode?: SortOrder
    defaultUsageType?: SortOrder
    placeholderPattern?: SortOrder
    expectedAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type PurchaseOrderLineSumOrderByAggregateInput = {
    lineNo?: SortOrder
    quantity?: SortOrder
    unitPrice?: SortOrder
    totalPrice?: SortOrder
  }

  export type EnumRobotUsageTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotUsageType | EnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotUsageTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotUsageType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotUsageTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotUsageTypeNullableFilter<$PrismaModel>
  }

  export type EnumSalesContractStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesContractStatus | EnumSalesContractStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SalesContractStatus[] | ListEnumSalesContractStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesContractStatus[] | ListEnumSalesContractStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesContractStatusFilter<$PrismaModel> | $Enums.SalesContractStatus
  }

  export type EnumSalesOrderStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesOrderStatus | EnumSalesOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SalesOrderStatus[] | ListEnumSalesOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesOrderStatus[] | ListEnumSalesOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesOrderStatusFilter<$PrismaModel> | $Enums.SalesOrderStatus
  }

  export type DeliveryRequestListRelationFilter = {
    every?: DeliveryRequestWhereInput
    some?: DeliveryRequestWhereInput
    none?: DeliveryRequestWhereInput
  }

  export type DeliveryRequestOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SalesOrderCountOrderByAggregateInput = {
    id?: SortOrder
    soNo?: SortOrder
    d365SoId?: SortOrder
    customerId?: SortOrder
    salesPersonId?: SortOrder
    mentorId?: SortOrder
    menteeId?: SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    contractStatus?: SortOrder
    status?: SortOrder
    signedAt?: SortOrder
    closedAt?: SortOrder
    notes?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type SalesOrderAvgOrderByAggregateInput = {
    totalAmount?: SortOrder
    version?: SortOrder
  }

  export type SalesOrderMaxOrderByAggregateInput = {
    id?: SortOrder
    soNo?: SortOrder
    d365SoId?: SortOrder
    customerId?: SortOrder
    salesPersonId?: SortOrder
    mentorId?: SortOrder
    menteeId?: SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    contractStatus?: SortOrder
    status?: SortOrder
    signedAt?: SortOrder
    closedAt?: SortOrder
    notes?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type SalesOrderMinOrderByAggregateInput = {
    id?: SortOrder
    soNo?: SortOrder
    d365SoId?: SortOrder
    customerId?: SortOrder
    salesPersonId?: SortOrder
    mentorId?: SortOrder
    menteeId?: SortOrder
    currencyCode?: SortOrder
    totalAmount?: SortOrder
    contractStatus?: SortOrder
    status?: SortOrder
    signedAt?: SortOrder
    closedAt?: SortOrder
    notes?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type SalesOrderSumOrderByAggregateInput = {
    totalAmount?: SortOrder
    version?: SortOrder
  }

  export type EnumSalesContractStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesContractStatus | EnumSalesContractStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SalesContractStatus[] | ListEnumSalesContractStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesContractStatus[] | ListEnumSalesContractStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesContractStatusWithAggregatesFilter<$PrismaModel> | $Enums.SalesContractStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSalesContractStatusFilter<$PrismaModel>
    _max?: NestedEnumSalesContractStatusFilter<$PrismaModel>
  }

  export type EnumSalesOrderStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesOrderStatus | EnumSalesOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SalesOrderStatus[] | ListEnumSalesOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesOrderStatus[] | ListEnumSalesOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesOrderStatusWithAggregatesFilter<$PrismaModel> | $Enums.SalesOrderStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSalesOrderStatusFilter<$PrismaModel>
    _max?: NestedEnumSalesOrderStatusFilter<$PrismaModel>
  }

  export type EnumSalesLineTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesLineType | EnumSalesLineTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SalesLineType[] | ListEnumSalesLineTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesLineType[] | ListEnumSalesLineTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesLineTypeFilter<$PrismaModel> | $Enums.SalesLineType
  }

  export type SalesOrderScalarRelationFilter = {
    is?: SalesOrderWhereInput
    isNot?: SalesOrderWhereInput
  }

  export type RobotUnitNullableScalarRelationFilter = {
    is?: RobotUnitWhereInput | null
    isNot?: RobotUnitWhereInput | null
  }

  export type SalesOrderLineSalesOrderIdLineNoCompoundUniqueInput = {
    salesOrderId: string
    lineNo: number
  }

  export type SalesOrderLineCountOrderByAggregateInput = {
    id?: SortOrder
    salesOrderId?: SortOrder
    lineNo?: SortOrder
    robotUnitId?: SortOrder
    lineType?: SortOrder
    unitPrice?: SortOrder
    discount?: SortOrder
    netAmount?: SortOrder
    currencyCode?: SortOrder
    expectedDeliveryDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SalesOrderLineAvgOrderByAggregateInput = {
    lineNo?: SortOrder
    unitPrice?: SortOrder
    discount?: SortOrder
    netAmount?: SortOrder
  }

  export type SalesOrderLineMaxOrderByAggregateInput = {
    id?: SortOrder
    salesOrderId?: SortOrder
    lineNo?: SortOrder
    robotUnitId?: SortOrder
    lineType?: SortOrder
    unitPrice?: SortOrder
    discount?: SortOrder
    netAmount?: SortOrder
    currencyCode?: SortOrder
    expectedDeliveryDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SalesOrderLineMinOrderByAggregateInput = {
    id?: SortOrder
    salesOrderId?: SortOrder
    lineNo?: SortOrder
    robotUnitId?: SortOrder
    lineType?: SortOrder
    unitPrice?: SortOrder
    discount?: SortOrder
    netAmount?: SortOrder
    currencyCode?: SortOrder
    expectedDeliveryDate?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type SalesOrderLineSumOrderByAggregateInput = {
    lineNo?: SortOrder
    unitPrice?: SortOrder
    discount?: SortOrder
    netAmount?: SortOrder
  }

  export type EnumSalesLineTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesLineType | EnumSalesLineTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SalesLineType[] | ListEnumSalesLineTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesLineType[] | ListEnumSalesLineTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesLineTypeWithAggregatesFilter<$PrismaModel> | $Enums.SalesLineType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSalesLineTypeFilter<$PrismaModel>
    _max?: NestedEnumSalesLineTypeFilter<$PrismaModel>
  }

  export type EnumDeliveryRequestTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryRequestType | EnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DeliveryRequestType[] | ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DeliveryRequestType[] | ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDeliveryRequestTypeFilter<$PrismaModel> | $Enums.DeliveryRequestType
  }

  export type EnumDeliveryRequestStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryRequestStatus | EnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DeliveryRequestStatus[] | ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DeliveryRequestStatus[] | ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDeliveryRequestStatusFilter<$PrismaModel> | $Enums.DeliveryRequestStatus
  }

  export type DeliveryRequestCountOrderByAggregateInput = {
    id?: SortOrder
    deliveryNo?: SortOrder
    salesOrderId?: SortOrder
    customerId?: SortOrder
    requestType?: SortOrder
    expectedDate?: SortOrder
    status?: SortOrder
    notes?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type DeliveryRequestMaxOrderByAggregateInput = {
    id?: SortOrder
    deliveryNo?: SortOrder
    salesOrderId?: SortOrder
    customerId?: SortOrder
    requestType?: SortOrder
    expectedDate?: SortOrder
    status?: SortOrder
    notes?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type DeliveryRequestMinOrderByAggregateInput = {
    id?: SortOrder
    deliveryNo?: SortOrder
    salesOrderId?: SortOrder
    customerId?: SortOrder
    requestType?: SortOrder
    expectedDate?: SortOrder
    status?: SortOrder
    notes?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumDeliveryRequestTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryRequestType | EnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DeliveryRequestType[] | ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DeliveryRequestType[] | ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDeliveryRequestTypeWithAggregatesFilter<$PrismaModel> | $Enums.DeliveryRequestType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDeliveryRequestTypeFilter<$PrismaModel>
    _max?: NestedEnumDeliveryRequestTypeFilter<$PrismaModel>
  }

  export type EnumDeliveryRequestStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryRequestStatus | EnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DeliveryRequestStatus[] | ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DeliveryRequestStatus[] | ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDeliveryRequestStatusWithAggregatesFilter<$PrismaModel> | $Enums.DeliveryRequestStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDeliveryRequestStatusFilter<$PrismaModel>
    _max?: NestedEnumDeliveryRequestStatusFilter<$PrismaModel>
  }

  export type EnumDeliveryFormStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryFormStatus | EnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.DeliveryFormStatus[] | ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DeliveryFormStatus[] | ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDeliveryFormStatusNullableFilter<$PrismaModel> | $Enums.DeliveryFormStatus | null
  }

  export type EnumRevenueRecognitionStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RevenueRecognitionStatus | EnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RevenueRecognitionStatus[] | ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RevenueRecognitionStatus[] | ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRevenueRecognitionStatusNullableFilter<$PrismaModel> | $Enums.RevenueRecognitionStatus | null
  }

  export type EnumInvoiceStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.InvoiceStatus | EnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.InvoiceStatus[] | ListEnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.InvoiceStatus[] | ListEnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumInvoiceStatusNullableFilter<$PrismaModel> | $Enums.InvoiceStatus | null
  }

  export type DeliveryRequestScalarRelationFilter = {
    is?: DeliveryRequestWhereInput
    isNot?: DeliveryRequestWhereInput
  }

  export type DeliveryFulfillmentCountOrderByAggregateInput = {
    id?: SortOrder
    deliveryRequestId?: SortOrder
    robotUnitId?: SortOrder
    sapPgiDocNo?: SortOrder
    deliveredAt?: SortOrder
    signedAt?: SortOrder
    signedFormStatus?: SortOrder
    acceptanceFormStatus?: SortOrder
    acceptanceFormPreDel?: SortOrder
    acceptanceFormAttachmentId?: SortOrder
    notePreDel?: SortOrder
    additionalShippingNotes?: SortOrder
    cost?: SortOrder
    grossMargin?: SortOrder
    revenueRecognition?: SortOrder
    invoiceStatus?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type DeliveryFulfillmentAvgOrderByAggregateInput = {
    cost?: SortOrder
    grossMargin?: SortOrder
    version?: SortOrder
  }

  export type DeliveryFulfillmentMaxOrderByAggregateInput = {
    id?: SortOrder
    deliveryRequestId?: SortOrder
    robotUnitId?: SortOrder
    sapPgiDocNo?: SortOrder
    deliveredAt?: SortOrder
    signedAt?: SortOrder
    signedFormStatus?: SortOrder
    acceptanceFormStatus?: SortOrder
    acceptanceFormPreDel?: SortOrder
    acceptanceFormAttachmentId?: SortOrder
    notePreDel?: SortOrder
    additionalShippingNotes?: SortOrder
    cost?: SortOrder
    grossMargin?: SortOrder
    revenueRecognition?: SortOrder
    invoiceStatus?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type DeliveryFulfillmentMinOrderByAggregateInput = {
    id?: SortOrder
    deliveryRequestId?: SortOrder
    robotUnitId?: SortOrder
    sapPgiDocNo?: SortOrder
    deliveredAt?: SortOrder
    signedAt?: SortOrder
    signedFormStatus?: SortOrder
    acceptanceFormStatus?: SortOrder
    acceptanceFormPreDel?: SortOrder
    acceptanceFormAttachmentId?: SortOrder
    notePreDel?: SortOrder
    additionalShippingNotes?: SortOrder
    cost?: SortOrder
    grossMargin?: SortOrder
    revenueRecognition?: SortOrder
    invoiceStatus?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type DeliveryFulfillmentSumOrderByAggregateInput = {
    cost?: SortOrder
    grossMargin?: SortOrder
    version?: SortOrder
  }

  export type EnumDeliveryFormStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryFormStatus | EnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.DeliveryFormStatus[] | ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DeliveryFormStatus[] | ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDeliveryFormStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.DeliveryFormStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumDeliveryFormStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumDeliveryFormStatusNullableFilter<$PrismaModel>
  }

  export type EnumRevenueRecognitionStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RevenueRecognitionStatus | EnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RevenueRecognitionStatus[] | ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RevenueRecognitionStatus[] | ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRevenueRecognitionStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.RevenueRecognitionStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRevenueRecognitionStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumRevenueRecognitionStatusNullableFilter<$PrismaModel>
  }

  export type EnumInvoiceStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InvoiceStatus | EnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.InvoiceStatus[] | ListEnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.InvoiceStatus[] | ListEnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumInvoiceStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.InvoiceStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumInvoiceStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumInvoiceStatusNullableFilter<$PrismaModel>
  }

  export type EnumPaymentRelatedTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentRelatedType | EnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    in?: $Enums.PaymentRelatedType[] | ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.PaymentRelatedType[] | ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumPaymentRelatedTypeFilter<$PrismaModel> | $Enums.PaymentRelatedType
  }

  export type EnumPaymentDirectionFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentDirection | EnumPaymentDirectionFieldRefInput<$PrismaModel>
    in?: $Enums.PaymentDirection[] | ListEnumPaymentDirectionFieldRefInput<$PrismaModel>
    notIn?: $Enums.PaymentDirection[] | ListEnumPaymentDirectionFieldRefInput<$PrismaModel>
    not?: NestedEnumPaymentDirectionFilter<$PrismaModel> | $Enums.PaymentDirection
  }

  export type EnumPaymentMethodNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentMethod | EnumPaymentMethodFieldRefInput<$PrismaModel> | null
    in?: $Enums.PaymentMethod[] | ListEnumPaymentMethodFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PaymentMethod[] | ListEnumPaymentMethodFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPaymentMethodNullableFilter<$PrismaModel> | $Enums.PaymentMethod | null
  }

  export type EnumPaymentStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentStatus | EnumPaymentStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.PaymentStatus[] | ListEnumPaymentStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PaymentStatus[] | ListEnumPaymentStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPaymentStatusNullableFilter<$PrismaModel> | $Enums.PaymentStatus | null
  }

  export type EnumPreDelContractStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.PreDelContractStatus | EnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.PreDelContractStatus[] | ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PreDelContractStatus[] | ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPreDelContractStatusNullableFilter<$PrismaModel> | $Enums.PreDelContractStatus | null
  }

  export type RentalPaymentScheduleListRelationFilter = {
    every?: RentalPaymentScheduleWhereInput
    some?: RentalPaymentScheduleWhereInput
    none?: RentalPaymentScheduleWhereInput
  }

  export type RentalPaymentScheduleOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type PaymentRecordCountOrderByAggregateInput = {
    id?: SortOrder
    paymentNo?: SortOrder
    relatedType?: SortOrder
    relatedId?: SortOrder
    robotUnitId?: SortOrder
    direction?: SortOrder
    sapClearingDocNo?: SortOrder
    paymentMethod?: SortOrder
    paymentStatus?: SortOrder
    preDelContractStatus?: SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidAt?: SortOrder
    depositTransferFormAttachmentId?: SortOrder
    depositTransferContractAttachmentId?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type PaymentRecordAvgOrderByAggregateInput = {
    amount?: SortOrder
    version?: SortOrder
  }

  export type PaymentRecordMaxOrderByAggregateInput = {
    id?: SortOrder
    paymentNo?: SortOrder
    relatedType?: SortOrder
    relatedId?: SortOrder
    robotUnitId?: SortOrder
    direction?: SortOrder
    sapClearingDocNo?: SortOrder
    paymentMethod?: SortOrder
    paymentStatus?: SortOrder
    preDelContractStatus?: SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidAt?: SortOrder
    depositTransferFormAttachmentId?: SortOrder
    depositTransferContractAttachmentId?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type PaymentRecordMinOrderByAggregateInput = {
    id?: SortOrder
    paymentNo?: SortOrder
    relatedType?: SortOrder
    relatedId?: SortOrder
    robotUnitId?: SortOrder
    direction?: SortOrder
    sapClearingDocNo?: SortOrder
    paymentMethod?: SortOrder
    paymentStatus?: SortOrder
    preDelContractStatus?: SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidAt?: SortOrder
    depositTransferFormAttachmentId?: SortOrder
    depositTransferContractAttachmentId?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type PaymentRecordSumOrderByAggregateInput = {
    amount?: SortOrder
    version?: SortOrder
  }

  export type EnumPaymentRelatedTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentRelatedType | EnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    in?: $Enums.PaymentRelatedType[] | ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.PaymentRelatedType[] | ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumPaymentRelatedTypeWithAggregatesFilter<$PrismaModel> | $Enums.PaymentRelatedType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPaymentRelatedTypeFilter<$PrismaModel>
    _max?: NestedEnumPaymentRelatedTypeFilter<$PrismaModel>
  }

  export type EnumPaymentDirectionWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentDirection | EnumPaymentDirectionFieldRefInput<$PrismaModel>
    in?: $Enums.PaymentDirection[] | ListEnumPaymentDirectionFieldRefInput<$PrismaModel>
    notIn?: $Enums.PaymentDirection[] | ListEnumPaymentDirectionFieldRefInput<$PrismaModel>
    not?: NestedEnumPaymentDirectionWithAggregatesFilter<$PrismaModel> | $Enums.PaymentDirection
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPaymentDirectionFilter<$PrismaModel>
    _max?: NestedEnumPaymentDirectionFilter<$PrismaModel>
  }

  export type EnumPaymentMethodNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentMethod | EnumPaymentMethodFieldRefInput<$PrismaModel> | null
    in?: $Enums.PaymentMethod[] | ListEnumPaymentMethodFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PaymentMethod[] | ListEnumPaymentMethodFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPaymentMethodNullableWithAggregatesFilter<$PrismaModel> | $Enums.PaymentMethod | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumPaymentMethodNullableFilter<$PrismaModel>
    _max?: NestedEnumPaymentMethodNullableFilter<$PrismaModel>
  }

  export type EnumPaymentStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentStatus | EnumPaymentStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.PaymentStatus[] | ListEnumPaymentStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PaymentStatus[] | ListEnumPaymentStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPaymentStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.PaymentStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumPaymentStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumPaymentStatusNullableFilter<$PrismaModel>
  }

  export type EnumPreDelContractStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PreDelContractStatus | EnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.PreDelContractStatus[] | ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PreDelContractStatus[] | ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPreDelContractStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.PreDelContractStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumPreDelContractStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumPreDelContractStatusNullableFilter<$PrismaModel>
  }

  export type EnumQualityLabelStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.QualityLabelStatus | EnumQualityLabelStatusFieldRefInput<$PrismaModel>
    in?: $Enums.QualityLabelStatus[] | ListEnumQualityLabelStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.QualityLabelStatus[] | ListEnumQualityLabelStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumQualityLabelStatusFilter<$PrismaModel> | $Enums.QualityLabelStatus
  }

  export type QualityLabelRecordRobotUnitIdLabelTypeCodeCompoundUniqueInput = {
    robotUnitId: string
    labelTypeCode: string
  }

  export type QualityLabelRecordCountOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    labelTypeCode?: SortOrder
    status?: SortOrder
    appliedAt?: SortOrder
    verifiedAt?: SortOrder
    appliedById?: SortOrder
    verifiedById?: SortOrder
    photoAttachmentId?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type QualityLabelRecordMaxOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    labelTypeCode?: SortOrder
    status?: SortOrder
    appliedAt?: SortOrder
    verifiedAt?: SortOrder
    appliedById?: SortOrder
    verifiedById?: SortOrder
    photoAttachmentId?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type QualityLabelRecordMinOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    labelTypeCode?: SortOrder
    status?: SortOrder
    appliedAt?: SortOrder
    verifiedAt?: SortOrder
    appliedById?: SortOrder
    verifiedById?: SortOrder
    photoAttachmentId?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type EnumQualityLabelStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.QualityLabelStatus | EnumQualityLabelStatusFieldRefInput<$PrismaModel>
    in?: $Enums.QualityLabelStatus[] | ListEnumQualityLabelStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.QualityLabelStatus[] | ListEnumQualityLabelStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumQualityLabelStatusWithAggregatesFilter<$PrismaModel> | $Enums.QualityLabelStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumQualityLabelStatusFilter<$PrismaModel>
    _max?: NestedEnumQualityLabelStatusFilter<$PrismaModel>
  }

  export type RobotPackageReadinessCountOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    specialistId?: SortOrder
    physicalProductStatus?: SortOrder
    readyAt?: SortOrder
    hasRobot?: SortOrder
    hasBattery?: SortOrder
    hasRemote?: SortOrder
    hasUsaPowerCable?: SortOrder
    hasCnCableWithAdapter?: SortOrder
    hasPowerSupply?: SortOrder
    hasChargingDock?: SortOrder
    hasFootPads?: SortOrder
    hasToolsKit?: SortOrder
    hasPaperwork?: SortOrder
    completedAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type RobotPackageReadinessMaxOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    specialistId?: SortOrder
    physicalProductStatus?: SortOrder
    readyAt?: SortOrder
    hasRobot?: SortOrder
    hasBattery?: SortOrder
    hasRemote?: SortOrder
    hasUsaPowerCable?: SortOrder
    hasCnCableWithAdapter?: SortOrder
    hasPowerSupply?: SortOrder
    hasChargingDock?: SortOrder
    hasFootPads?: SortOrder
    hasToolsKit?: SortOrder
    hasPaperwork?: SortOrder
    completedAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type RobotPackageReadinessMinOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    specialistId?: SortOrder
    physicalProductStatus?: SortOrder
    readyAt?: SortOrder
    hasRobot?: SortOrder
    hasBattery?: SortOrder
    hasRemote?: SortOrder
    hasUsaPowerCable?: SortOrder
    hasCnCableWithAdapter?: SortOrder
    hasPowerSupply?: SortOrder
    hasChargingDock?: SortOrder
    hasFootPads?: SortOrder
    hasToolsKit?: SortOrder
    hasPaperwork?: SortOrder
    completedAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type InspectionRecordRobotUnitIdInspectionNoCompoundUniqueInput = {
    robotUnitId: string
    inspectionNo: number
  }

  export type InspectionRecordCountOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    inspectionNo?: SortOrder
    inspectedAt?: SortOrder
    inspectorId?: SortOrder
    issue?: SortOrder
    issueTagCode?: SortOrder
    resolvedAt?: SortOrder
    resolvedById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type InspectionRecordAvgOrderByAggregateInput = {
    inspectionNo?: SortOrder
  }

  export type InspectionRecordMaxOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    inspectionNo?: SortOrder
    inspectedAt?: SortOrder
    inspectorId?: SortOrder
    issue?: SortOrder
    issueTagCode?: SortOrder
    resolvedAt?: SortOrder
    resolvedById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type InspectionRecordMinOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    inspectionNo?: SortOrder
    inspectedAt?: SortOrder
    inspectorId?: SortOrder
    issue?: SortOrder
    issueTagCode?: SortOrder
    resolvedAt?: SortOrder
    resolvedById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type InspectionRecordSumOrderByAggregateInput = {
    inspectionNo?: SortOrder
  }

  export type EnumLogisticsStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.LogisticsStatus | EnumLogisticsStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LogisticsStatus[] | ListEnumLogisticsStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogisticsStatus[] | ListEnumLogisticsStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLogisticsStatusFilter<$PrismaModel> | $Enums.LogisticsStatus
  }

  export type LogisticsLegRobotUnitIdLegNoCompoundUniqueInput = {
    robotUnitId: string
    legNo: number
  }

  export type LogisticsLegCountOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    legNo?: SortOrder
    fromLocationId?: SortOrder
    toLocationId?: SortOrder
    departedAt?: SortOrder
    arrivedAt?: SortOrder
    logisticsStatus?: SortOrder
    importDeclarationTypeCode?: SortOrder
    tariffTypeCode?: SortOrder
    shippingReceiptAttachmentId?: SortOrder
    additionalNotes?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type LogisticsLegAvgOrderByAggregateInput = {
    legNo?: SortOrder
  }

  export type LogisticsLegMaxOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    legNo?: SortOrder
    fromLocationId?: SortOrder
    toLocationId?: SortOrder
    departedAt?: SortOrder
    arrivedAt?: SortOrder
    logisticsStatus?: SortOrder
    importDeclarationTypeCode?: SortOrder
    tariffTypeCode?: SortOrder
    shippingReceiptAttachmentId?: SortOrder
    additionalNotes?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type LogisticsLegMinOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    legNo?: SortOrder
    fromLocationId?: SortOrder
    toLocationId?: SortOrder
    departedAt?: SortOrder
    arrivedAt?: SortOrder
    logisticsStatus?: SortOrder
    importDeclarationTypeCode?: SortOrder
    tariffTypeCode?: SortOrder
    shippingReceiptAttachmentId?: SortOrder
    additionalNotes?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type LogisticsLegSumOrderByAggregateInput = {
    legNo?: SortOrder
  }

  export type EnumLogisticsStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogisticsStatus | EnumLogisticsStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LogisticsStatus[] | ListEnumLogisticsStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogisticsStatus[] | ListEnumLogisticsStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLogisticsStatusWithAggregatesFilter<$PrismaModel> | $Enums.LogisticsStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogisticsStatusFilter<$PrismaModel>
    _max?: NestedEnumLogisticsStatusFilter<$PrismaModel>
  }

  export type EnumStickerStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.StickerStatus | EnumStickerStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.StickerStatus[] | ListEnumStickerStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.StickerStatus[] | ListEnumStickerStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumStickerStatusNullableFilter<$PrismaModel> | $Enums.StickerStatus | null
  }

  export type EnumFccStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.FccStatus | EnumFccStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.FccStatus[] | ListEnumFccStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.FccStatus[] | ListEnumFccStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumFccStatusNullableFilter<$PrismaModel> | $Enums.FccStatus | null
  }

  export type ComplianceCheckCountOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    dateReady?: SortOrder
    stickerStatus?: SortOrder
    fccStatus?: SortOrder
    complianceNotes?: SortOrder
    lastUpdatedAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type ComplianceCheckMaxOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    dateReady?: SortOrder
    stickerStatus?: SortOrder
    fccStatus?: SortOrder
    complianceNotes?: SortOrder
    lastUpdatedAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type ComplianceCheckMinOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    dateReady?: SortOrder
    stickerStatus?: SortOrder
    fccStatus?: SortOrder
    complianceNotes?: SortOrder
    lastUpdatedAt?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
  }

  export type EnumStickerStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StickerStatus | EnumStickerStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.StickerStatus[] | ListEnumStickerStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.StickerStatus[] | ListEnumStickerStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumStickerStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.StickerStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumStickerStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumStickerStatusNullableFilter<$PrismaModel>
  }

  export type EnumFccStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FccStatus | EnumFccStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.FccStatus[] | ListEnumFccStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.FccStatus[] | ListEnumFccStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumFccStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.FccStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumFccStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumFccStatusNullableFilter<$PrismaModel>
  }

  export type EnumRentalAgreementStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.RentalAgreementStatus | EnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    in?: $Enums.RentalAgreementStatus[] | ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.RentalAgreementStatus[] | ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumRentalAgreementStatusFilter<$PrismaModel> | $Enums.RentalAgreementStatus
  }

  export type RentalAgreementCountOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrder
    startAt?: SortOrder
    endAt?: SortOrder
    periodMonths?: SortOrder
    monthlyRate?: SortOrder
    currencyCode?: SortOrder
    status?: SortOrder
    contractAttachmentId?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RentalAgreementAvgOrderByAggregateInput = {
    periodMonths?: SortOrder
    monthlyRate?: SortOrder
    version?: SortOrder
  }

  export type RentalAgreementMaxOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrder
    startAt?: SortOrder
    endAt?: SortOrder
    periodMonths?: SortOrder
    monthlyRate?: SortOrder
    currencyCode?: SortOrder
    status?: SortOrder
    contractAttachmentId?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RentalAgreementMinOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrder
    startAt?: SortOrder
    endAt?: SortOrder
    periodMonths?: SortOrder
    monthlyRate?: SortOrder
    currencyCode?: SortOrder
    status?: SortOrder
    contractAttachmentId?: SortOrder
    version?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RentalAgreementSumOrderByAggregateInput = {
    periodMonths?: SortOrder
    monthlyRate?: SortOrder
    version?: SortOrder
  }

  export type EnumRentalAgreementStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RentalAgreementStatus | EnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    in?: $Enums.RentalAgreementStatus[] | ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.RentalAgreementStatus[] | ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumRentalAgreementStatusWithAggregatesFilter<$PrismaModel> | $Enums.RentalAgreementStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRentalAgreementStatusFilter<$PrismaModel>
    _max?: NestedEnumRentalAgreementStatusFilter<$PrismaModel>
  }

  export type RentalAgreementScalarRelationFilter = {
    is?: RentalAgreementWhereInput
    isNot?: RentalAgreementWhereInput
  }

  export type PaymentRecordNullableScalarRelationFilter = {
    is?: PaymentRecordWhereInput | null
    isNot?: PaymentRecordWhereInput | null
  }

  export type RentalPaymentScheduleCountOrderByAggregateInput = {
    id?: SortOrder
    rentalAgreementId?: SortOrder
    dueDate?: SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidPaymentRecordId?: SortOrder
    paidAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type RentalPaymentScheduleAvgOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type RentalPaymentScheduleMaxOrderByAggregateInput = {
    id?: SortOrder
    rentalAgreementId?: SortOrder
    dueDate?: SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidPaymentRecordId?: SortOrder
    paidAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type RentalPaymentScheduleMinOrderByAggregateInput = {
    id?: SortOrder
    rentalAgreementId?: SortOrder
    dueDate?: SortOrder
    amount?: SortOrder
    currencyCode?: SortOrder
    paidPaymentRecordId?: SortOrder
    paidAt?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
  }

  export type RentalPaymentScheduleSumOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type EnumTicketSeverityFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketSeverity | EnumTicketSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.TicketSeverity[] | ListEnumTicketSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketSeverity[] | ListEnumTicketSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketSeverityFilter<$PrismaModel> | $Enums.TicketSeverity
  }

  export type EnumServiceTicketStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ServiceTicketStatus | EnumServiceTicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ServiceTicketStatus[] | ListEnumServiceTicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ServiceTicketStatus[] | ListEnumServiceTicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumServiceTicketStatusFilter<$PrismaModel> | $Enums.ServiceTicketStatus
  }

  export type ServiceTicketActivityListRelationFilter = {
    every?: ServiceTicketActivityWhereInput
    some?: ServiceTicketActivityWhereInput
    none?: ServiceTicketActivityWhereInput
  }

  export type ServiceTicketActivityOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ServiceTicketCountOrderByAggregateInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrder
    issueTypeCode?: SortOrder
    severity?: SortOrder
    status?: SortOrder
    serviceRecord?: SortOrder
    customerFeedback?: SortOrder
    openedAt?: SortOrder
    openedById?: SortOrder
    closedAt?: SortOrder
    resolvedById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type ServiceTicketMaxOrderByAggregateInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrder
    issueTypeCode?: SortOrder
    severity?: SortOrder
    status?: SortOrder
    serviceRecord?: SortOrder
    customerFeedback?: SortOrder
    openedAt?: SortOrder
    openedById?: SortOrder
    closedAt?: SortOrder
    resolvedById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type ServiceTicketMinOrderByAggregateInput = {
    id?: SortOrder
    ticketNo?: SortOrder
    robotUnitId?: SortOrder
    customerId?: SortOrder
    issueTypeCode?: SortOrder
    severity?: SortOrder
    status?: SortOrder
    serviceRecord?: SortOrder
    customerFeedback?: SortOrder
    openedAt?: SortOrder
    openedById?: SortOrder
    closedAt?: SortOrder
    resolvedById?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type EnumTicketSeverityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketSeverity | EnumTicketSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.TicketSeverity[] | ListEnumTicketSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketSeverity[] | ListEnumTicketSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketSeverityWithAggregatesFilter<$PrismaModel> | $Enums.TicketSeverity
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumTicketSeverityFilter<$PrismaModel>
    _max?: NestedEnumTicketSeverityFilter<$PrismaModel>
  }

  export type EnumServiceTicketStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ServiceTicketStatus | EnumServiceTicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ServiceTicketStatus[] | ListEnumServiceTicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ServiceTicketStatus[] | ListEnumServiceTicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumServiceTicketStatusWithAggregatesFilter<$PrismaModel> | $Enums.ServiceTicketStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumServiceTicketStatusFilter<$PrismaModel>
    _max?: NestedEnumServiceTicketStatusFilter<$PrismaModel>
  }

  export type EnumServiceTicketActivityTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ServiceTicketActivityType | EnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ServiceTicketActivityType[] | ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ServiceTicketActivityType[] | ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumServiceTicketActivityTypeFilter<$PrismaModel> | $Enums.ServiceTicketActivityType
  }

  export type ServiceTicketScalarRelationFilter = {
    is?: ServiceTicketWhereInput
    isNot?: ServiceTicketWhereInput
  }

  export type ServiceTicketActivityCountOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    activityType?: SortOrder
    payload?: SortOrder
    createdById?: SortOrder
    occurredAt?: SortOrder
    createdAt?: SortOrder
  }

  export type ServiceTicketActivityMaxOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    activityType?: SortOrder
    createdById?: SortOrder
    occurredAt?: SortOrder
    createdAt?: SortOrder
  }

  export type ServiceTicketActivityMinOrderByAggregateInput = {
    id?: SortOrder
    ticketId?: SortOrder
    activityType?: SortOrder
    createdById?: SortOrder
    occurredAt?: SortOrder
    createdAt?: SortOrder
  }

  export type EnumServiceTicketActivityTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ServiceTicketActivityType | EnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ServiceTicketActivityType[] | ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ServiceTicketActivityType[] | ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumServiceTicketActivityTypeWithAggregatesFilter<$PrismaModel> | $Enums.ServiceTicketActivityType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumServiceTicketActivityTypeFilter<$PrismaModel>
    _max?: NestedEnumServiceTicketActivityTypeFilter<$PrismaModel>
  }

  export type EnumImportRecordStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportRecordStatus | EnumImportRecordStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportRecordStatus[] | ListEnumImportRecordStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportRecordStatus[] | ListEnumImportRecordStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportRecordStatusFilter<$PrismaModel> | $Enums.ImportRecordStatus
  }

  export type RobotImportAuditCountOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    sources?: SortOrder
    conflictCount?: SortOrder
    recordStatus?: SortOrder
    conflictDetail?: SortOrder
    importedAt?: SortOrder
    importBatch?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotImportAuditAvgOrderByAggregateInput = {
    conflictCount?: SortOrder
  }

  export type RobotImportAuditMaxOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    conflictCount?: SortOrder
    recordStatus?: SortOrder
    importedAt?: SortOrder
    importBatch?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotImportAuditMinOrderByAggregateInput = {
    id?: SortOrder
    robotUnitId?: SortOrder
    conflictCount?: SortOrder
    recordStatus?: SortOrder
    importedAt?: SortOrder
    importBatch?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type RobotImportAuditSumOrderByAggregateInput = {
    conflictCount?: SortOrder
  }

  export type EnumImportRecordStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportRecordStatus | EnumImportRecordStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportRecordStatus[] | ListEnumImportRecordStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportRecordStatus[] | ListEnumImportRecordStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportRecordStatusWithAggregatesFilter<$PrismaModel> | $Enums.ImportRecordStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportRecordStatusFilter<$PrismaModel>
    _max?: NestedEnumImportRecordStatusFilter<$PrismaModel>
  }

  export type EnumImportBatchTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportBatchType | EnumImportBatchTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ImportBatchType[] | ListEnumImportBatchTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportBatchType[] | ListEnumImportBatchTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumImportBatchTypeFilter<$PrismaModel> | $Enums.ImportBatchType
  }

  export type EnumImportBatchStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportBatchStatus | EnumImportBatchStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportBatchStatus[] | ListEnumImportBatchStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportBatchStatus[] | ListEnumImportBatchStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportBatchStatusFilter<$PrismaModel> | $Enums.ImportBatchStatus
  }

  export type ImportBatchEntryListRelationFilter = {
    every?: ImportBatchEntryWhereInput
    some?: ImportBatchEntryWhereInput
    none?: ImportBatchEntryWhereInput
  }

  export type ImportBatchEntryOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ImportBatchCountOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    status?: SortOrder
    fileName?: SortOrder
    fileHash?: SortOrder
    templateSchemaHash?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    errorRows?: SortOrder
    warningRows?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    confirmedById?: SortOrder
    confirmedAt?: SortOrder
    clientIp?: SortOrder
    userAgent?: SortOrder
    errorSummary?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type ImportBatchAvgOrderByAggregateInput = {
    totalRows?: SortOrder
    successRows?: SortOrder
    errorRows?: SortOrder
    warningRows?: SortOrder
  }

  export type ImportBatchMaxOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    status?: SortOrder
    fileName?: SortOrder
    fileHash?: SortOrder
    templateSchemaHash?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    errorRows?: SortOrder
    warningRows?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    confirmedById?: SortOrder
    confirmedAt?: SortOrder
    clientIp?: SortOrder
    userAgent?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type ImportBatchMinOrderByAggregateInput = {
    id?: SortOrder
    type?: SortOrder
    status?: SortOrder
    fileName?: SortOrder
    fileHash?: SortOrder
    templateSchemaHash?: SortOrder
    totalRows?: SortOrder
    successRows?: SortOrder
    errorRows?: SortOrder
    warningRows?: SortOrder
    startedAt?: SortOrder
    completedAt?: SortOrder
    confirmedById?: SortOrder
    confirmedAt?: SortOrder
    clientIp?: SortOrder
    userAgent?: SortOrder
    organizationId?: SortOrder
    createdAt?: SortOrder
    updatedAt?: SortOrder
    createdById?: SortOrder
    deletedAt?: SortOrder
  }

  export type ImportBatchSumOrderByAggregateInput = {
    totalRows?: SortOrder
    successRows?: SortOrder
    errorRows?: SortOrder
    warningRows?: SortOrder
  }

  export type EnumImportBatchTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportBatchType | EnumImportBatchTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ImportBatchType[] | ListEnumImportBatchTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportBatchType[] | ListEnumImportBatchTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumImportBatchTypeWithAggregatesFilter<$PrismaModel> | $Enums.ImportBatchType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportBatchTypeFilter<$PrismaModel>
    _max?: NestedEnumImportBatchTypeFilter<$PrismaModel>
  }

  export type EnumImportBatchStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportBatchStatus | EnumImportBatchStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportBatchStatus[] | ListEnumImportBatchStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportBatchStatus[] | ListEnumImportBatchStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportBatchStatusWithAggregatesFilter<$PrismaModel> | $Enums.ImportBatchStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportBatchStatusFilter<$PrismaModel>
    _max?: NestedEnumImportBatchStatusFilter<$PrismaModel>
  }

  export type EnumImportEntryStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportEntryStatus | EnumImportEntryStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportEntryStatus[] | ListEnumImportEntryStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportEntryStatus[] | ListEnumImportEntryStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportEntryStatusFilter<$PrismaModel> | $Enums.ImportEntryStatus
  }

  export type ImportBatchScalarRelationFilter = {
    is?: ImportBatchWhereInput
    isNot?: ImportBatchWhereInput
  }

  export type ImportBatchEntryCountOrderByAggregateInput = {
    id?: SortOrder
    batchId?: SortOrder
    rowNo?: SortOrder
    status?: SortOrder
    entityIds?: SortOrder
    payload?: SortOrder
    payloadHash?: SortOrder
    errorDetail?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ImportBatchEntryAvgOrderByAggregateInput = {
    rowNo?: SortOrder
  }

  export type ImportBatchEntryMaxOrderByAggregateInput = {
    id?: SortOrder
    batchId?: SortOrder
    rowNo?: SortOrder
    status?: SortOrder
    payloadHash?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ImportBatchEntryMinOrderByAggregateInput = {
    id?: SortOrder
    batchId?: SortOrder
    rowNo?: SortOrder
    status?: SortOrder
    payloadHash?: SortOrder
    createdAt?: SortOrder
    deletedAt?: SortOrder
  }

  export type ImportBatchEntrySumOrderByAggregateInput = {
    rowNo?: SortOrder
  }

  export type EnumImportEntryStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportEntryStatus | EnumImportEntryStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportEntryStatus[] | ListEnumImportEntryStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportEntryStatus[] | ListEnumImportEntryStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportEntryStatusWithAggregatesFilter<$PrismaModel> | $Enums.ImportEntryStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportEntryStatusFilter<$PrismaModel>
    _max?: NestedEnumImportEntryStatusFilter<$PrismaModel>
  }

  export type OrganizationCreateNestedOneWithoutApprovalDefinitionsInput = {
    create?: XOR<OrganizationCreateWithoutApprovalDefinitionsInput, OrganizationUncheckedCreateWithoutApprovalDefinitionsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutApprovalDefinitionsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type ApprovalVersionCreateNestedManyWithoutDefinitionInput = {
    create?: XOR<ApprovalVersionCreateWithoutDefinitionInput, ApprovalVersionUncheckedCreateWithoutDefinitionInput> | ApprovalVersionCreateWithoutDefinitionInput[] | ApprovalVersionUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: ApprovalVersionCreateOrConnectWithoutDefinitionInput | ApprovalVersionCreateOrConnectWithoutDefinitionInput[]
    createMany?: ApprovalVersionCreateManyDefinitionInputEnvelope
    connect?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
  }

  export type ApprovalVersionUncheckedCreateNestedManyWithoutDefinitionInput = {
    create?: XOR<ApprovalVersionCreateWithoutDefinitionInput, ApprovalVersionUncheckedCreateWithoutDefinitionInput> | ApprovalVersionCreateWithoutDefinitionInput[] | ApprovalVersionUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: ApprovalVersionCreateOrConnectWithoutDefinitionInput | ApprovalVersionCreateOrConnectWithoutDefinitionInput[]
    createMany?: ApprovalVersionCreateManyDefinitionInputEnvelope
    connect?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
  }

  export type StringFieldUpdateOperationsInput = {
    set?: string
  }

  export type NullableStringFieldUpdateOperationsInput = {
    set?: string | null
  }

  export type IntFieldUpdateOperationsInput = {
    set?: number
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type EnumProcessStatusFieldUpdateOperationsInput = {
    set?: $Enums.ProcessStatus
  }

  export type DateTimeFieldUpdateOperationsInput = {
    set?: Date | string
  }

  export type OrganizationUpdateOneWithoutApprovalDefinitionsNestedInput = {
    create?: XOR<OrganizationCreateWithoutApprovalDefinitionsInput, OrganizationUncheckedCreateWithoutApprovalDefinitionsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutApprovalDefinitionsInput
    upsert?: OrganizationUpsertWithoutApprovalDefinitionsInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutApprovalDefinitionsInput, OrganizationUpdateWithoutApprovalDefinitionsInput>, OrganizationUncheckedUpdateWithoutApprovalDefinitionsInput>
  }

  export type ApprovalVersionUpdateManyWithoutDefinitionNestedInput = {
    create?: XOR<ApprovalVersionCreateWithoutDefinitionInput, ApprovalVersionUncheckedCreateWithoutDefinitionInput> | ApprovalVersionCreateWithoutDefinitionInput[] | ApprovalVersionUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: ApprovalVersionCreateOrConnectWithoutDefinitionInput | ApprovalVersionCreateOrConnectWithoutDefinitionInput[]
    upsert?: ApprovalVersionUpsertWithWhereUniqueWithoutDefinitionInput | ApprovalVersionUpsertWithWhereUniqueWithoutDefinitionInput[]
    createMany?: ApprovalVersionCreateManyDefinitionInputEnvelope
    set?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
    disconnect?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
    delete?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
    connect?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
    update?: ApprovalVersionUpdateWithWhereUniqueWithoutDefinitionInput | ApprovalVersionUpdateWithWhereUniqueWithoutDefinitionInput[]
    updateMany?: ApprovalVersionUpdateManyWithWhereWithoutDefinitionInput | ApprovalVersionUpdateManyWithWhereWithoutDefinitionInput[]
    deleteMany?: ApprovalVersionScalarWhereInput | ApprovalVersionScalarWhereInput[]
  }

  export type ApprovalVersionUncheckedUpdateManyWithoutDefinitionNestedInput = {
    create?: XOR<ApprovalVersionCreateWithoutDefinitionInput, ApprovalVersionUncheckedCreateWithoutDefinitionInput> | ApprovalVersionCreateWithoutDefinitionInput[] | ApprovalVersionUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: ApprovalVersionCreateOrConnectWithoutDefinitionInput | ApprovalVersionCreateOrConnectWithoutDefinitionInput[]
    upsert?: ApprovalVersionUpsertWithWhereUniqueWithoutDefinitionInput | ApprovalVersionUpsertWithWhereUniqueWithoutDefinitionInput[]
    createMany?: ApprovalVersionCreateManyDefinitionInputEnvelope
    set?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
    disconnect?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
    delete?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
    connect?: ApprovalVersionWhereUniqueInput | ApprovalVersionWhereUniqueInput[]
    update?: ApprovalVersionUpdateWithWhereUniqueWithoutDefinitionInput | ApprovalVersionUpdateWithWhereUniqueWithoutDefinitionInput[]
    updateMany?: ApprovalVersionUpdateManyWithWhereWithoutDefinitionInput | ApprovalVersionUpdateManyWithWhereWithoutDefinitionInput[]
    deleteMany?: ApprovalVersionScalarWhereInput | ApprovalVersionScalarWhereInput[]
  }

  export type ApprovalInstanceCreateNestedManyWithoutVersionInput = {
    create?: XOR<ApprovalInstanceCreateWithoutVersionInput, ApprovalInstanceUncheckedCreateWithoutVersionInput> | ApprovalInstanceCreateWithoutVersionInput[] | ApprovalInstanceUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutVersionInput | ApprovalInstanceCreateOrConnectWithoutVersionInput[]
    createMany?: ApprovalInstanceCreateManyVersionInputEnvelope
    connect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
  }

  export type ApprovalDefinitionCreateNestedOneWithoutVersionsInput = {
    create?: XOR<ApprovalDefinitionCreateWithoutVersionsInput, ApprovalDefinitionUncheckedCreateWithoutVersionsInput>
    connectOrCreate?: ApprovalDefinitionCreateOrConnectWithoutVersionsInput
    connect?: ApprovalDefinitionWhereUniqueInput
  }

  export type ApprovalInstanceUncheckedCreateNestedManyWithoutVersionInput = {
    create?: XOR<ApprovalInstanceCreateWithoutVersionInput, ApprovalInstanceUncheckedCreateWithoutVersionInput> | ApprovalInstanceCreateWithoutVersionInput[] | ApprovalInstanceUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutVersionInput | ApprovalInstanceCreateOrConnectWithoutVersionInput[]
    createMany?: ApprovalInstanceCreateManyVersionInputEnvelope
    connect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
  }

  export type BoolFieldUpdateOperationsInput = {
    set?: boolean
  }

  export type EnumVersionStatusFieldUpdateOperationsInput = {
    set?: $Enums.VersionStatus
  }

  export type NullableDateTimeFieldUpdateOperationsInput = {
    set?: Date | string | null
  }

  export type ApprovalInstanceUpdateManyWithoutVersionNestedInput = {
    create?: XOR<ApprovalInstanceCreateWithoutVersionInput, ApprovalInstanceUncheckedCreateWithoutVersionInput> | ApprovalInstanceCreateWithoutVersionInput[] | ApprovalInstanceUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutVersionInput | ApprovalInstanceCreateOrConnectWithoutVersionInput[]
    upsert?: ApprovalInstanceUpsertWithWhereUniqueWithoutVersionInput | ApprovalInstanceUpsertWithWhereUniqueWithoutVersionInput[]
    createMany?: ApprovalInstanceCreateManyVersionInputEnvelope
    set?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    disconnect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    delete?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    connect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    update?: ApprovalInstanceUpdateWithWhereUniqueWithoutVersionInput | ApprovalInstanceUpdateWithWhereUniqueWithoutVersionInput[]
    updateMany?: ApprovalInstanceUpdateManyWithWhereWithoutVersionInput | ApprovalInstanceUpdateManyWithWhereWithoutVersionInput[]
    deleteMany?: ApprovalInstanceScalarWhereInput | ApprovalInstanceScalarWhereInput[]
  }

  export type ApprovalDefinitionUpdateOneRequiredWithoutVersionsNestedInput = {
    create?: XOR<ApprovalDefinitionCreateWithoutVersionsInput, ApprovalDefinitionUncheckedCreateWithoutVersionsInput>
    connectOrCreate?: ApprovalDefinitionCreateOrConnectWithoutVersionsInput
    upsert?: ApprovalDefinitionUpsertWithoutVersionsInput
    connect?: ApprovalDefinitionWhereUniqueInput
    update?: XOR<XOR<ApprovalDefinitionUpdateToOneWithWhereWithoutVersionsInput, ApprovalDefinitionUpdateWithoutVersionsInput>, ApprovalDefinitionUncheckedUpdateWithoutVersionsInput>
  }

  export type ApprovalInstanceUncheckedUpdateManyWithoutVersionNestedInput = {
    create?: XOR<ApprovalInstanceCreateWithoutVersionInput, ApprovalInstanceUncheckedCreateWithoutVersionInput> | ApprovalInstanceCreateWithoutVersionInput[] | ApprovalInstanceUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutVersionInput | ApprovalInstanceCreateOrConnectWithoutVersionInput[]
    upsert?: ApprovalInstanceUpsertWithWhereUniqueWithoutVersionInput | ApprovalInstanceUpsertWithWhereUniqueWithoutVersionInput[]
    createMany?: ApprovalInstanceCreateManyVersionInputEnvelope
    set?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    disconnect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    delete?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    connect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    update?: ApprovalInstanceUpdateWithWhereUniqueWithoutVersionInput | ApprovalInstanceUpdateWithWhereUniqueWithoutVersionInput[]
    updateMany?: ApprovalInstanceUpdateManyWithWhereWithoutVersionInput | ApprovalInstanceUpdateManyWithWhereWithoutVersionInput[]
    deleteMany?: ApprovalInstanceScalarWhereInput | ApprovalInstanceScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutInitiatedProcessesInput = {
    create?: XOR<UserCreateWithoutInitiatedProcessesInput, UserUncheckedCreateWithoutInitiatedProcessesInput>
    connectOrCreate?: UserCreateOrConnectWithoutInitiatedProcessesInput
    connect?: UserWhereUniqueInput
  }

  export type ApprovalVersionCreateNestedOneWithoutInstancesInput = {
    create?: XOR<ApprovalVersionCreateWithoutInstancesInput, ApprovalVersionUncheckedCreateWithoutInstancesInput>
    connectOrCreate?: ApprovalVersionCreateOrConnectWithoutInstancesInput
    connect?: ApprovalVersionWhereUniqueInput
  }

  export type ApprovalNodeInstanceCreateNestedManyWithoutInstanceInput = {
    create?: XOR<ApprovalNodeInstanceCreateWithoutInstanceInput, ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput> | ApprovalNodeInstanceCreateWithoutInstanceInput[] | ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput | ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput[]
    createMany?: ApprovalNodeInstanceCreateManyInstanceInputEnvelope
    connect?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
  }

  export type ApprovalTaskCreateNestedManyWithoutInstanceInput = {
    create?: XOR<ApprovalTaskCreateWithoutInstanceInput, ApprovalTaskUncheckedCreateWithoutInstanceInput> | ApprovalTaskCreateWithoutInstanceInput[] | ApprovalTaskUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutInstanceInput | ApprovalTaskCreateOrConnectWithoutInstanceInput[]
    createMany?: ApprovalTaskCreateManyInstanceInputEnvelope
    connect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
  }

  export type CallbackRetryQueueCreateNestedManyWithoutInstanceInput = {
    create?: XOR<CallbackRetryQueueCreateWithoutInstanceInput, CallbackRetryQueueUncheckedCreateWithoutInstanceInput> | CallbackRetryQueueCreateWithoutInstanceInput[] | CallbackRetryQueueUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: CallbackRetryQueueCreateOrConnectWithoutInstanceInput | CallbackRetryQueueCreateOrConnectWithoutInstanceInput[]
    createMany?: CallbackRetryQueueCreateManyInstanceInputEnvelope
    connect?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
  }

  export type ReminderQueueCreateNestedManyWithoutInstanceInput = {
    create?: XOR<ReminderQueueCreateWithoutInstanceInput, ReminderQueueUncheckedCreateWithoutInstanceInput> | ReminderQueueCreateWithoutInstanceInput[] | ReminderQueueUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ReminderQueueCreateOrConnectWithoutInstanceInput | ReminderQueueCreateOrConnectWithoutInstanceInput[]
    createMany?: ReminderQueueCreateManyInstanceInputEnvelope
    connect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
  }

  export type ApprovalNodeInstanceUncheckedCreateNestedManyWithoutInstanceInput = {
    create?: XOR<ApprovalNodeInstanceCreateWithoutInstanceInput, ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput> | ApprovalNodeInstanceCreateWithoutInstanceInput[] | ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput | ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput[]
    createMany?: ApprovalNodeInstanceCreateManyInstanceInputEnvelope
    connect?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
  }

  export type ApprovalTaskUncheckedCreateNestedManyWithoutInstanceInput = {
    create?: XOR<ApprovalTaskCreateWithoutInstanceInput, ApprovalTaskUncheckedCreateWithoutInstanceInput> | ApprovalTaskCreateWithoutInstanceInput[] | ApprovalTaskUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutInstanceInput | ApprovalTaskCreateOrConnectWithoutInstanceInput[]
    createMany?: ApprovalTaskCreateManyInstanceInputEnvelope
    connect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
  }

  export type CallbackRetryQueueUncheckedCreateNestedManyWithoutInstanceInput = {
    create?: XOR<CallbackRetryQueueCreateWithoutInstanceInput, CallbackRetryQueueUncheckedCreateWithoutInstanceInput> | CallbackRetryQueueCreateWithoutInstanceInput[] | CallbackRetryQueueUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: CallbackRetryQueueCreateOrConnectWithoutInstanceInput | CallbackRetryQueueCreateOrConnectWithoutInstanceInput[]
    createMany?: CallbackRetryQueueCreateManyInstanceInputEnvelope
    connect?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
  }

  export type ReminderQueueUncheckedCreateNestedManyWithoutInstanceInput = {
    create?: XOR<ReminderQueueCreateWithoutInstanceInput, ReminderQueueUncheckedCreateWithoutInstanceInput> | ReminderQueueCreateWithoutInstanceInput[] | ReminderQueueUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ReminderQueueCreateOrConnectWithoutInstanceInput | ReminderQueueCreateOrConnectWithoutInstanceInput[]
    createMany?: ReminderQueueCreateManyInstanceInputEnvelope
    connect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
  }

  export type EnumInstanceStatusFieldUpdateOperationsInput = {
    set?: $Enums.InstanceStatus
  }

  export type UserUpdateOneRequiredWithoutInitiatedProcessesNestedInput = {
    create?: XOR<UserCreateWithoutInitiatedProcessesInput, UserUncheckedCreateWithoutInitiatedProcessesInput>
    connectOrCreate?: UserCreateOrConnectWithoutInitiatedProcessesInput
    upsert?: UserUpsertWithoutInitiatedProcessesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutInitiatedProcessesInput, UserUpdateWithoutInitiatedProcessesInput>, UserUncheckedUpdateWithoutInitiatedProcessesInput>
  }

  export type ApprovalVersionUpdateOneRequiredWithoutInstancesNestedInput = {
    create?: XOR<ApprovalVersionCreateWithoutInstancesInput, ApprovalVersionUncheckedCreateWithoutInstancesInput>
    connectOrCreate?: ApprovalVersionCreateOrConnectWithoutInstancesInput
    upsert?: ApprovalVersionUpsertWithoutInstancesInput
    connect?: ApprovalVersionWhereUniqueInput
    update?: XOR<XOR<ApprovalVersionUpdateToOneWithWhereWithoutInstancesInput, ApprovalVersionUpdateWithoutInstancesInput>, ApprovalVersionUncheckedUpdateWithoutInstancesInput>
  }

  export type ApprovalNodeInstanceUpdateManyWithoutInstanceNestedInput = {
    create?: XOR<ApprovalNodeInstanceCreateWithoutInstanceInput, ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput> | ApprovalNodeInstanceCreateWithoutInstanceInput[] | ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput | ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput[]
    upsert?: ApprovalNodeInstanceUpsertWithWhereUniqueWithoutInstanceInput | ApprovalNodeInstanceUpsertWithWhereUniqueWithoutInstanceInput[]
    createMany?: ApprovalNodeInstanceCreateManyInstanceInputEnvelope
    set?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
    disconnect?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
    delete?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
    connect?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
    update?: ApprovalNodeInstanceUpdateWithWhereUniqueWithoutInstanceInput | ApprovalNodeInstanceUpdateWithWhereUniqueWithoutInstanceInput[]
    updateMany?: ApprovalNodeInstanceUpdateManyWithWhereWithoutInstanceInput | ApprovalNodeInstanceUpdateManyWithWhereWithoutInstanceInput[]
    deleteMany?: ApprovalNodeInstanceScalarWhereInput | ApprovalNodeInstanceScalarWhereInput[]
  }

  export type ApprovalTaskUpdateManyWithoutInstanceNestedInput = {
    create?: XOR<ApprovalTaskCreateWithoutInstanceInput, ApprovalTaskUncheckedCreateWithoutInstanceInput> | ApprovalTaskCreateWithoutInstanceInput[] | ApprovalTaskUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutInstanceInput | ApprovalTaskCreateOrConnectWithoutInstanceInput[]
    upsert?: ApprovalTaskUpsertWithWhereUniqueWithoutInstanceInput | ApprovalTaskUpsertWithWhereUniqueWithoutInstanceInput[]
    createMany?: ApprovalTaskCreateManyInstanceInputEnvelope
    set?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    disconnect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    delete?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    connect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    update?: ApprovalTaskUpdateWithWhereUniqueWithoutInstanceInput | ApprovalTaskUpdateWithWhereUniqueWithoutInstanceInput[]
    updateMany?: ApprovalTaskUpdateManyWithWhereWithoutInstanceInput | ApprovalTaskUpdateManyWithWhereWithoutInstanceInput[]
    deleteMany?: ApprovalTaskScalarWhereInput | ApprovalTaskScalarWhereInput[]
  }

  export type CallbackRetryQueueUpdateManyWithoutInstanceNestedInput = {
    create?: XOR<CallbackRetryQueueCreateWithoutInstanceInput, CallbackRetryQueueUncheckedCreateWithoutInstanceInput> | CallbackRetryQueueCreateWithoutInstanceInput[] | CallbackRetryQueueUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: CallbackRetryQueueCreateOrConnectWithoutInstanceInput | CallbackRetryQueueCreateOrConnectWithoutInstanceInput[]
    upsert?: CallbackRetryQueueUpsertWithWhereUniqueWithoutInstanceInput | CallbackRetryQueueUpsertWithWhereUniqueWithoutInstanceInput[]
    createMany?: CallbackRetryQueueCreateManyInstanceInputEnvelope
    set?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
    disconnect?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
    delete?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
    connect?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
    update?: CallbackRetryQueueUpdateWithWhereUniqueWithoutInstanceInput | CallbackRetryQueueUpdateWithWhereUniqueWithoutInstanceInput[]
    updateMany?: CallbackRetryQueueUpdateManyWithWhereWithoutInstanceInput | CallbackRetryQueueUpdateManyWithWhereWithoutInstanceInput[]
    deleteMany?: CallbackRetryQueueScalarWhereInput | CallbackRetryQueueScalarWhereInput[]
  }

  export type ReminderQueueUpdateManyWithoutInstanceNestedInput = {
    create?: XOR<ReminderQueueCreateWithoutInstanceInput, ReminderQueueUncheckedCreateWithoutInstanceInput> | ReminderQueueCreateWithoutInstanceInput[] | ReminderQueueUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ReminderQueueCreateOrConnectWithoutInstanceInput | ReminderQueueCreateOrConnectWithoutInstanceInput[]
    upsert?: ReminderQueueUpsertWithWhereUniqueWithoutInstanceInput | ReminderQueueUpsertWithWhereUniqueWithoutInstanceInput[]
    createMany?: ReminderQueueCreateManyInstanceInputEnvelope
    set?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    disconnect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    delete?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    connect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    update?: ReminderQueueUpdateWithWhereUniqueWithoutInstanceInput | ReminderQueueUpdateWithWhereUniqueWithoutInstanceInput[]
    updateMany?: ReminderQueueUpdateManyWithWhereWithoutInstanceInput | ReminderQueueUpdateManyWithWhereWithoutInstanceInput[]
    deleteMany?: ReminderQueueScalarWhereInput | ReminderQueueScalarWhereInput[]
  }

  export type ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceNestedInput = {
    create?: XOR<ApprovalNodeInstanceCreateWithoutInstanceInput, ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput> | ApprovalNodeInstanceCreateWithoutInstanceInput[] | ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput | ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput[]
    upsert?: ApprovalNodeInstanceUpsertWithWhereUniqueWithoutInstanceInput | ApprovalNodeInstanceUpsertWithWhereUniqueWithoutInstanceInput[]
    createMany?: ApprovalNodeInstanceCreateManyInstanceInputEnvelope
    set?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
    disconnect?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
    delete?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
    connect?: ApprovalNodeInstanceWhereUniqueInput | ApprovalNodeInstanceWhereUniqueInput[]
    update?: ApprovalNodeInstanceUpdateWithWhereUniqueWithoutInstanceInput | ApprovalNodeInstanceUpdateWithWhereUniqueWithoutInstanceInput[]
    updateMany?: ApprovalNodeInstanceUpdateManyWithWhereWithoutInstanceInput | ApprovalNodeInstanceUpdateManyWithWhereWithoutInstanceInput[]
    deleteMany?: ApprovalNodeInstanceScalarWhereInput | ApprovalNodeInstanceScalarWhereInput[]
  }

  export type ApprovalTaskUncheckedUpdateManyWithoutInstanceNestedInput = {
    create?: XOR<ApprovalTaskCreateWithoutInstanceInput, ApprovalTaskUncheckedCreateWithoutInstanceInput> | ApprovalTaskCreateWithoutInstanceInput[] | ApprovalTaskUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutInstanceInput | ApprovalTaskCreateOrConnectWithoutInstanceInput[]
    upsert?: ApprovalTaskUpsertWithWhereUniqueWithoutInstanceInput | ApprovalTaskUpsertWithWhereUniqueWithoutInstanceInput[]
    createMany?: ApprovalTaskCreateManyInstanceInputEnvelope
    set?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    disconnect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    delete?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    connect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    update?: ApprovalTaskUpdateWithWhereUniqueWithoutInstanceInput | ApprovalTaskUpdateWithWhereUniqueWithoutInstanceInput[]
    updateMany?: ApprovalTaskUpdateManyWithWhereWithoutInstanceInput | ApprovalTaskUpdateManyWithWhereWithoutInstanceInput[]
    deleteMany?: ApprovalTaskScalarWhereInput | ApprovalTaskScalarWhereInput[]
  }

  export type CallbackRetryQueueUncheckedUpdateManyWithoutInstanceNestedInput = {
    create?: XOR<CallbackRetryQueueCreateWithoutInstanceInput, CallbackRetryQueueUncheckedCreateWithoutInstanceInput> | CallbackRetryQueueCreateWithoutInstanceInput[] | CallbackRetryQueueUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: CallbackRetryQueueCreateOrConnectWithoutInstanceInput | CallbackRetryQueueCreateOrConnectWithoutInstanceInput[]
    upsert?: CallbackRetryQueueUpsertWithWhereUniqueWithoutInstanceInput | CallbackRetryQueueUpsertWithWhereUniqueWithoutInstanceInput[]
    createMany?: CallbackRetryQueueCreateManyInstanceInputEnvelope
    set?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
    disconnect?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
    delete?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
    connect?: CallbackRetryQueueWhereUniqueInput | CallbackRetryQueueWhereUniqueInput[]
    update?: CallbackRetryQueueUpdateWithWhereUniqueWithoutInstanceInput | CallbackRetryQueueUpdateWithWhereUniqueWithoutInstanceInput[]
    updateMany?: CallbackRetryQueueUpdateManyWithWhereWithoutInstanceInput | CallbackRetryQueueUpdateManyWithWhereWithoutInstanceInput[]
    deleteMany?: CallbackRetryQueueScalarWhereInput | CallbackRetryQueueScalarWhereInput[]
  }

  export type ReminderQueueUncheckedUpdateManyWithoutInstanceNestedInput = {
    create?: XOR<ReminderQueueCreateWithoutInstanceInput, ReminderQueueUncheckedCreateWithoutInstanceInput> | ReminderQueueCreateWithoutInstanceInput[] | ReminderQueueUncheckedCreateWithoutInstanceInput[]
    connectOrCreate?: ReminderQueueCreateOrConnectWithoutInstanceInput | ReminderQueueCreateOrConnectWithoutInstanceInput[]
    upsert?: ReminderQueueUpsertWithWhereUniqueWithoutInstanceInput | ReminderQueueUpsertWithWhereUniqueWithoutInstanceInput[]
    createMany?: ReminderQueueCreateManyInstanceInputEnvelope
    set?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    disconnect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    delete?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    connect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    update?: ReminderQueueUpdateWithWhereUniqueWithoutInstanceInput | ReminderQueueUpdateWithWhereUniqueWithoutInstanceInput[]
    updateMany?: ReminderQueueUpdateManyWithWhereWithoutInstanceInput | ReminderQueueUpdateManyWithWhereWithoutInstanceInput[]
    deleteMany?: ReminderQueueScalarWhereInput | ReminderQueueScalarWhereInput[]
  }

  export type ApprovalNodeInstanceCreateassigneesInput = {
    set: string[]
  }

  export type ApprovalInstanceCreateNestedOneWithoutNodeInstancesInput = {
    create?: XOR<ApprovalInstanceCreateWithoutNodeInstancesInput, ApprovalInstanceUncheckedCreateWithoutNodeInstancesInput>
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutNodeInstancesInput
    connect?: ApprovalInstanceWhereUniqueInput
  }

  export type ApprovalTaskCreateNestedManyWithoutNodeInstanceInput = {
    create?: XOR<ApprovalTaskCreateWithoutNodeInstanceInput, ApprovalTaskUncheckedCreateWithoutNodeInstanceInput> | ApprovalTaskCreateWithoutNodeInstanceInput[] | ApprovalTaskUncheckedCreateWithoutNodeInstanceInput[]
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutNodeInstanceInput | ApprovalTaskCreateOrConnectWithoutNodeInstanceInput[]
    createMany?: ApprovalTaskCreateManyNodeInstanceInputEnvelope
    connect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
  }

  export type ApprovalTaskUncheckedCreateNestedManyWithoutNodeInstanceInput = {
    create?: XOR<ApprovalTaskCreateWithoutNodeInstanceInput, ApprovalTaskUncheckedCreateWithoutNodeInstanceInput> | ApprovalTaskCreateWithoutNodeInstanceInput[] | ApprovalTaskUncheckedCreateWithoutNodeInstanceInput[]
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutNodeInstanceInput | ApprovalTaskCreateOrConnectWithoutNodeInstanceInput[]
    createMany?: ApprovalTaskCreateManyNodeInstanceInputEnvelope
    connect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
  }

  export type EnumNodeStatusFieldUpdateOperationsInput = {
    set?: $Enums.NodeStatus
  }

  export type ApprovalNodeInstanceUpdateassigneesInput = {
    set?: string[]
    push?: string | string[]
  }

  export type ApprovalInstanceUpdateOneRequiredWithoutNodeInstancesNestedInput = {
    create?: XOR<ApprovalInstanceCreateWithoutNodeInstancesInput, ApprovalInstanceUncheckedCreateWithoutNodeInstancesInput>
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutNodeInstancesInput
    upsert?: ApprovalInstanceUpsertWithoutNodeInstancesInput
    connect?: ApprovalInstanceWhereUniqueInput
    update?: XOR<XOR<ApprovalInstanceUpdateToOneWithWhereWithoutNodeInstancesInput, ApprovalInstanceUpdateWithoutNodeInstancesInput>, ApprovalInstanceUncheckedUpdateWithoutNodeInstancesInput>
  }

  export type ApprovalTaskUpdateManyWithoutNodeInstanceNestedInput = {
    create?: XOR<ApprovalTaskCreateWithoutNodeInstanceInput, ApprovalTaskUncheckedCreateWithoutNodeInstanceInput> | ApprovalTaskCreateWithoutNodeInstanceInput[] | ApprovalTaskUncheckedCreateWithoutNodeInstanceInput[]
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutNodeInstanceInput | ApprovalTaskCreateOrConnectWithoutNodeInstanceInput[]
    upsert?: ApprovalTaskUpsertWithWhereUniqueWithoutNodeInstanceInput | ApprovalTaskUpsertWithWhereUniqueWithoutNodeInstanceInput[]
    createMany?: ApprovalTaskCreateManyNodeInstanceInputEnvelope
    set?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    disconnect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    delete?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    connect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    update?: ApprovalTaskUpdateWithWhereUniqueWithoutNodeInstanceInput | ApprovalTaskUpdateWithWhereUniqueWithoutNodeInstanceInput[]
    updateMany?: ApprovalTaskUpdateManyWithWhereWithoutNodeInstanceInput | ApprovalTaskUpdateManyWithWhereWithoutNodeInstanceInput[]
    deleteMany?: ApprovalTaskScalarWhereInput | ApprovalTaskScalarWhereInput[]
  }

  export type ApprovalTaskUncheckedUpdateManyWithoutNodeInstanceNestedInput = {
    create?: XOR<ApprovalTaskCreateWithoutNodeInstanceInput, ApprovalTaskUncheckedCreateWithoutNodeInstanceInput> | ApprovalTaskCreateWithoutNodeInstanceInput[] | ApprovalTaskUncheckedCreateWithoutNodeInstanceInput[]
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutNodeInstanceInput | ApprovalTaskCreateOrConnectWithoutNodeInstanceInput[]
    upsert?: ApprovalTaskUpsertWithWhereUniqueWithoutNodeInstanceInput | ApprovalTaskUpsertWithWhereUniqueWithoutNodeInstanceInput[]
    createMany?: ApprovalTaskCreateManyNodeInstanceInputEnvelope
    set?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    disconnect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    delete?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    connect?: ApprovalTaskWhereUniqueInput | ApprovalTaskWhereUniqueInput[]
    update?: ApprovalTaskUpdateWithWhereUniqueWithoutNodeInstanceInput | ApprovalTaskUpdateWithWhereUniqueWithoutNodeInstanceInput[]
    updateMany?: ApprovalTaskUpdateManyWithWhereWithoutNodeInstanceInput | ApprovalTaskUpdateManyWithWhereWithoutNodeInstanceInput[]
    deleteMany?: ApprovalTaskScalarWhereInput | ApprovalTaskScalarWhereInput[]
  }

  export type ApprovalTaskCreatecandidateUsersInput = {
    set: string[]
  }

  export type ApprovalTaskCreatecandidateGroupsInput = {
    set: string[]
  }

  export type ApprovalTaskLogCreateNestedManyWithoutTaskInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutTaskInput, ApprovalTaskLogUncheckedCreateWithoutTaskInput> | ApprovalTaskLogCreateWithoutTaskInput[] | ApprovalTaskLogUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutTaskInput | ApprovalTaskLogCreateOrConnectWithoutTaskInput[]
    createMany?: ApprovalTaskLogCreateManyTaskInputEnvelope
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
  }

  export type ApprovalInstanceCreateNestedOneWithoutApprovalTasksInput = {
    create?: XOR<ApprovalInstanceCreateWithoutApprovalTasksInput, ApprovalInstanceUncheckedCreateWithoutApprovalTasksInput>
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutApprovalTasksInput
    connect?: ApprovalInstanceWhereUniqueInput
  }

  export type ApprovalNodeInstanceCreateNestedOneWithoutApprovalTasksInput = {
    create?: XOR<ApprovalNodeInstanceCreateWithoutApprovalTasksInput, ApprovalNodeInstanceUncheckedCreateWithoutApprovalTasksInput>
    connectOrCreate?: ApprovalNodeInstanceCreateOrConnectWithoutApprovalTasksInput
    connect?: ApprovalNodeInstanceWhereUniqueInput
  }

  export type ReminderQueueCreateNestedManyWithoutTaskInput = {
    create?: XOR<ReminderQueueCreateWithoutTaskInput, ReminderQueueUncheckedCreateWithoutTaskInput> | ReminderQueueCreateWithoutTaskInput[] | ReminderQueueUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ReminderQueueCreateOrConnectWithoutTaskInput | ReminderQueueCreateOrConnectWithoutTaskInput[]
    createMany?: ReminderQueueCreateManyTaskInputEnvelope
    connect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
  }

  export type ApprovalTaskLogUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutTaskInput, ApprovalTaskLogUncheckedCreateWithoutTaskInput> | ApprovalTaskLogCreateWithoutTaskInput[] | ApprovalTaskLogUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutTaskInput | ApprovalTaskLogCreateOrConnectWithoutTaskInput[]
    createMany?: ApprovalTaskLogCreateManyTaskInputEnvelope
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
  }

  export type ReminderQueueUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<ReminderQueueCreateWithoutTaskInput, ReminderQueueUncheckedCreateWithoutTaskInput> | ReminderQueueCreateWithoutTaskInput[] | ReminderQueueUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ReminderQueueCreateOrConnectWithoutTaskInput | ReminderQueueCreateOrConnectWithoutTaskInput[]
    createMany?: ReminderQueueCreateManyTaskInputEnvelope
    connect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
  }

  export type EnumApprovalTaskTypeFieldUpdateOperationsInput = {
    set?: $Enums.ApprovalTaskType
  }

  export type ApprovalTaskUpdatecandidateUsersInput = {
    set?: string[]
    push?: string | string[]
  }

  export type ApprovalTaskUpdatecandidateGroupsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumApprovalTaskStatusFieldUpdateOperationsInput = {
    set?: $Enums.ApprovalTaskStatus
  }

  export type NullableEnumDelegationTypeFieldUpdateOperationsInput = {
    set?: $Enums.DelegationType | null
  }

  export type ApprovalTaskLogUpdateManyWithoutTaskNestedInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutTaskInput, ApprovalTaskLogUncheckedCreateWithoutTaskInput> | ApprovalTaskLogCreateWithoutTaskInput[] | ApprovalTaskLogUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutTaskInput | ApprovalTaskLogCreateOrConnectWithoutTaskInput[]
    upsert?: ApprovalTaskLogUpsertWithWhereUniqueWithoutTaskInput | ApprovalTaskLogUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: ApprovalTaskLogCreateManyTaskInputEnvelope
    set?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    disconnect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    delete?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    update?: ApprovalTaskLogUpdateWithWhereUniqueWithoutTaskInput | ApprovalTaskLogUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: ApprovalTaskLogUpdateManyWithWhereWithoutTaskInput | ApprovalTaskLogUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: ApprovalTaskLogScalarWhereInput | ApprovalTaskLogScalarWhereInput[]
  }

  export type ApprovalInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput = {
    create?: XOR<ApprovalInstanceCreateWithoutApprovalTasksInput, ApprovalInstanceUncheckedCreateWithoutApprovalTasksInput>
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutApprovalTasksInput
    upsert?: ApprovalInstanceUpsertWithoutApprovalTasksInput
    connect?: ApprovalInstanceWhereUniqueInput
    update?: XOR<XOR<ApprovalInstanceUpdateToOneWithWhereWithoutApprovalTasksInput, ApprovalInstanceUpdateWithoutApprovalTasksInput>, ApprovalInstanceUncheckedUpdateWithoutApprovalTasksInput>
  }

  export type ApprovalNodeInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput = {
    create?: XOR<ApprovalNodeInstanceCreateWithoutApprovalTasksInput, ApprovalNodeInstanceUncheckedCreateWithoutApprovalTasksInput>
    connectOrCreate?: ApprovalNodeInstanceCreateOrConnectWithoutApprovalTasksInput
    upsert?: ApprovalNodeInstanceUpsertWithoutApprovalTasksInput
    connect?: ApprovalNodeInstanceWhereUniqueInput
    update?: XOR<XOR<ApprovalNodeInstanceUpdateToOneWithWhereWithoutApprovalTasksInput, ApprovalNodeInstanceUpdateWithoutApprovalTasksInput>, ApprovalNodeInstanceUncheckedUpdateWithoutApprovalTasksInput>
  }

  export type ReminderQueueUpdateManyWithoutTaskNestedInput = {
    create?: XOR<ReminderQueueCreateWithoutTaskInput, ReminderQueueUncheckedCreateWithoutTaskInput> | ReminderQueueCreateWithoutTaskInput[] | ReminderQueueUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ReminderQueueCreateOrConnectWithoutTaskInput | ReminderQueueCreateOrConnectWithoutTaskInput[]
    upsert?: ReminderQueueUpsertWithWhereUniqueWithoutTaskInput | ReminderQueueUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: ReminderQueueCreateManyTaskInputEnvelope
    set?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    disconnect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    delete?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    connect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    update?: ReminderQueueUpdateWithWhereUniqueWithoutTaskInput | ReminderQueueUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: ReminderQueueUpdateManyWithWhereWithoutTaskInput | ReminderQueueUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: ReminderQueueScalarWhereInput | ReminderQueueScalarWhereInput[]
  }

  export type ApprovalTaskLogUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutTaskInput, ApprovalTaskLogUncheckedCreateWithoutTaskInput> | ApprovalTaskLogCreateWithoutTaskInput[] | ApprovalTaskLogUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutTaskInput | ApprovalTaskLogCreateOrConnectWithoutTaskInput[]
    upsert?: ApprovalTaskLogUpsertWithWhereUniqueWithoutTaskInput | ApprovalTaskLogUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: ApprovalTaskLogCreateManyTaskInputEnvelope
    set?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    disconnect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    delete?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    update?: ApprovalTaskLogUpdateWithWhereUniqueWithoutTaskInput | ApprovalTaskLogUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: ApprovalTaskLogUpdateManyWithWhereWithoutTaskInput | ApprovalTaskLogUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: ApprovalTaskLogScalarWhereInput | ApprovalTaskLogScalarWhereInput[]
  }

  export type ReminderQueueUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<ReminderQueueCreateWithoutTaskInput, ReminderQueueUncheckedCreateWithoutTaskInput> | ReminderQueueCreateWithoutTaskInput[] | ReminderQueueUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ReminderQueueCreateOrConnectWithoutTaskInput | ReminderQueueCreateOrConnectWithoutTaskInput[]
    upsert?: ReminderQueueUpsertWithWhereUniqueWithoutTaskInput | ReminderQueueUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: ReminderQueueCreateManyTaskInputEnvelope
    set?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    disconnect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    delete?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    connect?: ReminderQueueWhereUniqueInput | ReminderQueueWhereUniqueInput[]
    update?: ReminderQueueUpdateWithWhereUniqueWithoutTaskInput | ReminderQueueUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: ReminderQueueUpdateManyWithWhereWithoutTaskInput | ReminderQueueUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: ReminderQueueScalarWhereInput | ReminderQueueScalarWhereInput[]
  }

  export type ApprovalTaskLogCreateaddSignUsersInput = {
    set: string[]
  }

  export type UserCreateNestedOneWithoutApprovalActionLogsInput = {
    create?: XOR<UserCreateWithoutApprovalActionLogsInput, UserUncheckedCreateWithoutApprovalActionLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutApprovalActionLogsInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutApprovalActionTargetsInput = {
    create?: XOR<UserCreateWithoutApprovalActionTargetsInput, UserUncheckedCreateWithoutApprovalActionTargetsInput>
    connectOrCreate?: UserCreateOrConnectWithoutApprovalActionTargetsInput
    connect?: UserWhereUniqueInput
  }

  export type ApprovalTaskCreateNestedOneWithoutActionLogsInput = {
    create?: XOR<ApprovalTaskCreateWithoutActionLogsInput, ApprovalTaskUncheckedCreateWithoutActionLogsInput>
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutActionLogsInput
    connect?: ApprovalTaskWhereUniqueInput
  }

  export type EnumApprovalTaskActionFieldUpdateOperationsInput = {
    set?: $Enums.ApprovalTaskAction
  }

  export type ApprovalTaskLogUpdateaddSignUsersInput = {
    set?: string[]
    push?: string | string[]
  }

  export type NullableEnumRiskLevelFieldUpdateOperationsInput = {
    set?: $Enums.RiskLevel | null
  }

  export type UserUpdateOneRequiredWithoutApprovalActionLogsNestedInput = {
    create?: XOR<UserCreateWithoutApprovalActionLogsInput, UserUncheckedCreateWithoutApprovalActionLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutApprovalActionLogsInput
    upsert?: UserUpsertWithoutApprovalActionLogsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutApprovalActionLogsInput, UserUpdateWithoutApprovalActionLogsInput>, UserUncheckedUpdateWithoutApprovalActionLogsInput>
  }

  export type UserUpdateOneWithoutApprovalActionTargetsNestedInput = {
    create?: XOR<UserCreateWithoutApprovalActionTargetsInput, UserUncheckedCreateWithoutApprovalActionTargetsInput>
    connectOrCreate?: UserCreateOrConnectWithoutApprovalActionTargetsInput
    upsert?: UserUpsertWithoutApprovalActionTargetsInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutApprovalActionTargetsInput, UserUpdateWithoutApprovalActionTargetsInput>, UserUncheckedUpdateWithoutApprovalActionTargetsInput>
  }

  export type ApprovalTaskUpdateOneRequiredWithoutActionLogsNestedInput = {
    create?: XOR<ApprovalTaskCreateWithoutActionLogsInput, ApprovalTaskUncheckedCreateWithoutActionLogsInput>
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutActionLogsInput
    upsert?: ApprovalTaskUpsertWithoutActionLogsInput
    connect?: ApprovalTaskWhereUniqueInput
    update?: XOR<XOR<ApprovalTaskUpdateToOneWithWhereWithoutActionLogsInput, ApprovalTaskUpdateWithoutActionLogsInput>, ApprovalTaskUncheckedUpdateWithoutActionLogsInput>
  }

  export type ApprovalInstanceCreateNestedOneWithoutCallbackRetriesInput = {
    create?: XOR<ApprovalInstanceCreateWithoutCallbackRetriesInput, ApprovalInstanceUncheckedCreateWithoutCallbackRetriesInput>
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutCallbackRetriesInput
    connect?: ApprovalInstanceWhereUniqueInput
  }

  export type EnumCallbackStatusFieldUpdateOperationsInput = {
    set?: $Enums.CallbackStatus
  }

  export type ApprovalInstanceUpdateOneRequiredWithoutCallbackRetriesNestedInput = {
    create?: XOR<ApprovalInstanceCreateWithoutCallbackRetriesInput, ApprovalInstanceUncheckedCreateWithoutCallbackRetriesInput>
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutCallbackRetriesInput
    upsert?: ApprovalInstanceUpsertWithoutCallbackRetriesInput
    connect?: ApprovalInstanceWhereUniqueInput
    update?: XOR<XOR<ApprovalInstanceUpdateToOneWithWhereWithoutCallbackRetriesInput, ApprovalInstanceUpdateWithoutCallbackRetriesInput>, ApprovalInstanceUncheckedUpdateWithoutCallbackRetriesInput>
  }

  export type ReminderQueueCreatechannelsInput = {
    set: string[]
  }

  export type ApprovalTaskCreateNestedOneWithoutReminderQueuesInput = {
    create?: XOR<ApprovalTaskCreateWithoutReminderQueuesInput, ApprovalTaskUncheckedCreateWithoutReminderQueuesInput>
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutReminderQueuesInput
    connect?: ApprovalTaskWhereUniqueInput
  }

  export type ApprovalInstanceCreateNestedOneWithoutReminderQueuesInput = {
    create?: XOR<ApprovalInstanceCreateWithoutReminderQueuesInput, ApprovalInstanceUncheckedCreateWithoutReminderQueuesInput>
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutReminderQueuesInput
    connect?: ApprovalInstanceWhereUniqueInput
  }

  export type EnumReminderTypeFieldUpdateOperationsInput = {
    set?: $Enums.ReminderType
  }

  export type ReminderQueueUpdatechannelsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumReminderStatusFieldUpdateOperationsInput = {
    set?: $Enums.ReminderStatus
  }

  export type ApprovalTaskUpdateOneRequiredWithoutReminderQueuesNestedInput = {
    create?: XOR<ApprovalTaskCreateWithoutReminderQueuesInput, ApprovalTaskUncheckedCreateWithoutReminderQueuesInput>
    connectOrCreate?: ApprovalTaskCreateOrConnectWithoutReminderQueuesInput
    upsert?: ApprovalTaskUpsertWithoutReminderQueuesInput
    connect?: ApprovalTaskWhereUniqueInput
    update?: XOR<XOR<ApprovalTaskUpdateToOneWithWhereWithoutReminderQueuesInput, ApprovalTaskUpdateWithoutReminderQueuesInput>, ApprovalTaskUncheckedUpdateWithoutReminderQueuesInput>
  }

  export type ApprovalInstanceUpdateOneRequiredWithoutReminderQueuesNestedInput = {
    create?: XOR<ApprovalInstanceCreateWithoutReminderQueuesInput, ApprovalInstanceUncheckedCreateWithoutReminderQueuesInput>
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutReminderQueuesInput
    upsert?: ApprovalInstanceUpsertWithoutReminderQueuesInput
    connect?: ApprovalInstanceWhereUniqueInput
    update?: XOR<XOR<ApprovalInstanceUpdateToOneWithWhereWithoutReminderQueuesInput, ApprovalInstanceUpdateWithoutReminderQueuesInput>, ApprovalInstanceUncheckedUpdateWithoutReminderQueuesInput>
  }

  export type UserDelegationSettingCreateprocessKeysInput = {
    set: string[]
  }

  export type UserCreateNestedOneWithoutDelegationSettingsInput = {
    create?: XOR<UserCreateWithoutDelegationSettingsInput, UserUncheckedCreateWithoutDelegationSettingsInput>
    connectOrCreate?: UserCreateOrConnectWithoutDelegationSettingsInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutDelegatedToMeInput = {
    create?: XOR<UserCreateWithoutDelegatedToMeInput, UserUncheckedCreateWithoutDelegatedToMeInput>
    connectOrCreate?: UserCreateOrConnectWithoutDelegatedToMeInput
    connect?: UserWhereUniqueInput
  }

  export type EnumDelegationScopeFieldUpdateOperationsInput = {
    set?: $Enums.DelegationScope
  }

  export type UserDelegationSettingUpdateprocessKeysInput = {
    set?: string[]
    push?: string | string[]
  }

  export type UserUpdateOneRequiredWithoutDelegationSettingsNestedInput = {
    create?: XOR<UserCreateWithoutDelegationSettingsInput, UserUncheckedCreateWithoutDelegationSettingsInput>
    connectOrCreate?: UserCreateOrConnectWithoutDelegationSettingsInput
    upsert?: UserUpsertWithoutDelegationSettingsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDelegationSettingsInput, UserUpdateWithoutDelegationSettingsInput>, UserUncheckedUpdateWithoutDelegationSettingsInput>
  }

  export type UserUpdateOneRequiredWithoutDelegatedToMeNestedInput = {
    create?: XOR<UserCreateWithoutDelegatedToMeInput, UserUncheckedCreateWithoutDelegatedToMeInput>
    connectOrCreate?: UserCreateOrConnectWithoutDelegatedToMeInput
    upsert?: UserUpsertWithoutDelegatedToMeInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDelegatedToMeInput, UserUpdateWithoutDelegatedToMeInput>, UserUncheckedUpdateWithoutDelegatedToMeInput>
  }

  export type UserCreateNestedOneWithoutApprovalAdminExportsInput = {
    create?: XOR<UserCreateWithoutApprovalAdminExportsInput, UserUncheckedCreateWithoutApprovalAdminExportsInput>
    connectOrCreate?: UserCreateOrConnectWithoutApprovalAdminExportsInput
    connect?: UserWhereUniqueInput
  }

  export type EnumApprovalAdminExportStatusFieldUpdateOperationsInput = {
    set?: $Enums.ApprovalAdminExportStatus
  }

  export type NullableBigIntFieldUpdateOperationsInput = {
    set?: bigint | number | null
    increment?: bigint | number
    decrement?: bigint | number
    multiply?: bigint | number
    divide?: bigint | number
  }

  export type NullableIntFieldUpdateOperationsInput = {
    set?: number | null
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type UserUpdateOneRequiredWithoutApprovalAdminExportsNestedInput = {
    create?: XOR<UserCreateWithoutApprovalAdminExportsInput, UserUncheckedCreateWithoutApprovalAdminExportsInput>
    connectOrCreate?: UserCreateOrConnectWithoutApprovalAdminExportsInput
    upsert?: UserUpsertWithoutApprovalAdminExportsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutApprovalAdminExportsInput, UserUpdateWithoutApprovalAdminExportsInput>, UserUncheckedUpdateWithoutApprovalAdminExportsInput>
  }

  export type RegionCreateNestedOneWithoutPrimaryOrganizationsInput = {
    create?: XOR<RegionCreateWithoutPrimaryOrganizationsInput, RegionUncheckedCreateWithoutPrimaryOrganizationsInput>
    connectOrCreate?: RegionCreateOrConnectWithoutPrimaryOrganizationsInput
    connect?: RegionWhereUniqueInput
  }

  export type DepartmentCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<DepartmentCreateWithoutOrganizationInput, DepartmentUncheckedCreateWithoutOrganizationInput> | DepartmentCreateWithoutOrganizationInput[] | DepartmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: DepartmentCreateOrConnectWithoutOrganizationInput | DepartmentCreateOrConnectWithoutOrganizationInput[]
    createMany?: DepartmentCreateManyOrganizationInputEnvelope
    connect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
  }

  export type UserDepartmentCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<UserDepartmentCreateWithoutOrganizationInput, UserDepartmentUncheckedCreateWithoutOrganizationInput> | UserDepartmentCreateWithoutOrganizationInput[] | UserDepartmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutOrganizationInput | UserDepartmentCreateOrConnectWithoutOrganizationInput[]
    createMany?: UserDepartmentCreateManyOrganizationInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type OrganizationRegionCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<OrganizationRegionCreateWithoutOrganizationInput, OrganizationRegionUncheckedCreateWithoutOrganizationInput> | OrganizationRegionCreateWithoutOrganizationInput[] | OrganizationRegionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: OrganizationRegionCreateOrConnectWithoutOrganizationInput | OrganizationRegionCreateOrConnectWithoutOrganizationInput[]
    createMany?: OrganizationRegionCreateManyOrganizationInputEnvelope
    connect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
  }

  export type FormDefinitionCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<FormDefinitionCreateWithoutOrganizationInput, FormDefinitionUncheckedCreateWithoutOrganizationInput> | FormDefinitionCreateWithoutOrganizationInput[] | FormDefinitionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutOrganizationInput | FormDefinitionCreateOrConnectWithoutOrganizationInput[]
    createMany?: FormDefinitionCreateManyOrganizationInputEnvelope
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
  }

  export type FormWebhookCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<FormWebhookCreateWithoutOrganizationInput, FormWebhookUncheckedCreateWithoutOrganizationInput> | FormWebhookCreateWithoutOrganizationInput[] | FormWebhookUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FormWebhookCreateOrConnectWithoutOrganizationInput | FormWebhookCreateOrConnectWithoutOrganizationInput[]
    createMany?: FormWebhookCreateManyOrganizationInputEnvelope
    connect?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
  }

  export type ApprovalDefinitionCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<ApprovalDefinitionCreateWithoutOrganizationInput, ApprovalDefinitionUncheckedCreateWithoutOrganizationInput> | ApprovalDefinitionCreateWithoutOrganizationInput[] | ApprovalDefinitionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ApprovalDefinitionCreateOrConnectWithoutOrganizationInput | ApprovalDefinitionCreateOrConnectWithoutOrganizationInput[]
    createMany?: ApprovalDefinitionCreateManyOrganizationInputEnvelope
    connect?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
  }

  export type UserRoleCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<UserRoleCreateWithoutOrganizationInput, UserRoleUncheckedCreateWithoutOrganizationInput> | UserRoleCreateWithoutOrganizationInput[] | UserRoleUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutOrganizationInput | UserRoleCreateOrConnectWithoutOrganizationInput[]
    createMany?: UserRoleCreateManyOrganizationInputEnvelope
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
  }

  export type PerformanceCycleCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<PerformanceCycleCreateWithoutOrganizationInput, PerformanceCycleUncheckedCreateWithoutOrganizationInput> | PerformanceCycleCreateWithoutOrganizationInput[] | PerformanceCycleUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutOrganizationInput | PerformanceCycleCreateOrConnectWithoutOrganizationInput[]
    createMany?: PerformanceCycleCreateManyOrganizationInputEnvelope
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
  }

  export type GradeConfigCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<GradeConfigCreateWithoutOrganizationInput, GradeConfigUncheckedCreateWithoutOrganizationInput> | GradeConfigCreateWithoutOrganizationInput[] | GradeConfigUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: GradeConfigCreateOrConnectWithoutOrganizationInput | GradeConfigCreateOrConnectWithoutOrganizationInput[]
    createMany?: GradeConfigCreateManyOrganizationInputEnvelope
    connect?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
  }

  export type PerformanceResultCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<PerformanceResultCreateWithoutOrganizationInput, PerformanceResultUncheckedCreateWithoutOrganizationInput> | PerformanceResultCreateWithoutOrganizationInput[] | PerformanceResultUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutOrganizationInput | PerformanceResultCreateOrConnectWithoutOrganizationInput[]
    createMany?: PerformanceResultCreateManyOrganizationInputEnvelope
    connect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
  }

  export type Evaluation360TemplateCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutOrganizationInput, Evaluation360TemplateUncheckedCreateWithoutOrganizationInput> | Evaluation360TemplateCreateWithoutOrganizationInput[] | Evaluation360TemplateUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutOrganizationInput | Evaluation360TemplateCreateOrConnectWithoutOrganizationInput[]
    createMany?: Evaluation360TemplateCreateManyOrganizationInputEnvelope
    connect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
  }

  export type AiUsageTokenCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<AiUsageTokenCreateWithoutOrganizationInput, AiUsageTokenUncheckedCreateWithoutOrganizationInput> | AiUsageTokenCreateWithoutOrganizationInput[] | AiUsageTokenUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutOrganizationInput | AiUsageTokenCreateOrConnectWithoutOrganizationInput[]
    createMany?: AiUsageTokenCreateManyOrganizationInputEnvelope
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
  }

  export type AiUsageDeviceCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<AiUsageDeviceCreateWithoutOrganizationInput, AiUsageDeviceUncheckedCreateWithoutOrganizationInput> | AiUsageDeviceCreateWithoutOrganizationInput[] | AiUsageDeviceUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutOrganizationInput | AiUsageDeviceCreateOrConnectWithoutOrganizationInput[]
    createMany?: AiUsageDeviceCreateManyOrganizationInputEnvelope
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
  }

  export type AiUsageEventCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<AiUsageEventCreateWithoutOrganizationInput, AiUsageEventUncheckedCreateWithoutOrganizationInput> | AiUsageEventCreateWithoutOrganizationInput[] | AiUsageEventUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutOrganizationInput | AiUsageEventCreateOrConnectWithoutOrganizationInput[]
    createMany?: AiUsageEventCreateManyOrganizationInputEnvelope
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
  }

  export type AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<AiUsageDailyRollupCreateWithoutOrganizationInput, AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput> | AiUsageDailyRollupCreateWithoutOrganizationInput[] | AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput | AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput[]
    createMany?: AiUsageDailyRollupCreateManyOrganizationInputEnvelope
    connect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
  }

  export type MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutOrganizationInput, MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput> | MeetingAgendaSectionCreateWithoutOrganizationInput[] | MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput | MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAgendaSectionCreateManyOrganizationInputEnvelope
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
  }

  export type MeetingAgendaItemCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutOrganizationInput, MeetingAgendaItemUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemCreateWithoutOrganizationInput[] | MeetingAgendaItemUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemCreateManyOrganizationInputEnvelope
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyOrganizationInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutOrganizationInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemAttachmentCreateWithoutOrganizationInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyOrganizationInputEnvelope
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
  }

  export type MeetingAttachmentCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAttachmentCreateWithoutOrganizationInput, MeetingAttachmentUncheckedCreateWithoutOrganizationInput> | MeetingAttachmentCreateWithoutOrganizationInput[] | MeetingAttachmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutOrganizationInput | MeetingAttachmentCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAttachmentCreateManyOrganizationInputEnvelope
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
  }

  export type DepartmentUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<DepartmentCreateWithoutOrganizationInput, DepartmentUncheckedCreateWithoutOrganizationInput> | DepartmentCreateWithoutOrganizationInput[] | DepartmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: DepartmentCreateOrConnectWithoutOrganizationInput | DepartmentCreateOrConnectWithoutOrganizationInput[]
    createMany?: DepartmentCreateManyOrganizationInputEnvelope
    connect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
  }

  export type UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<UserDepartmentCreateWithoutOrganizationInput, UserDepartmentUncheckedCreateWithoutOrganizationInput> | UserDepartmentCreateWithoutOrganizationInput[] | UserDepartmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutOrganizationInput | UserDepartmentCreateOrConnectWithoutOrganizationInput[]
    createMany?: UserDepartmentCreateManyOrganizationInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<OrganizationRegionCreateWithoutOrganizationInput, OrganizationRegionUncheckedCreateWithoutOrganizationInput> | OrganizationRegionCreateWithoutOrganizationInput[] | OrganizationRegionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: OrganizationRegionCreateOrConnectWithoutOrganizationInput | OrganizationRegionCreateOrConnectWithoutOrganizationInput[]
    createMany?: OrganizationRegionCreateManyOrganizationInputEnvelope
    connect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
  }

  export type FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<FormDefinitionCreateWithoutOrganizationInput, FormDefinitionUncheckedCreateWithoutOrganizationInput> | FormDefinitionCreateWithoutOrganizationInput[] | FormDefinitionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutOrganizationInput | FormDefinitionCreateOrConnectWithoutOrganizationInput[]
    createMany?: FormDefinitionCreateManyOrganizationInputEnvelope
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
  }

  export type FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<FormWebhookCreateWithoutOrganizationInput, FormWebhookUncheckedCreateWithoutOrganizationInput> | FormWebhookCreateWithoutOrganizationInput[] | FormWebhookUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FormWebhookCreateOrConnectWithoutOrganizationInput | FormWebhookCreateOrConnectWithoutOrganizationInput[]
    createMany?: FormWebhookCreateManyOrganizationInputEnvelope
    connect?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
  }

  export type ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<ApprovalDefinitionCreateWithoutOrganizationInput, ApprovalDefinitionUncheckedCreateWithoutOrganizationInput> | ApprovalDefinitionCreateWithoutOrganizationInput[] | ApprovalDefinitionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ApprovalDefinitionCreateOrConnectWithoutOrganizationInput | ApprovalDefinitionCreateOrConnectWithoutOrganizationInput[]
    createMany?: ApprovalDefinitionCreateManyOrganizationInputEnvelope
    connect?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
  }

  export type UserRoleUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<UserRoleCreateWithoutOrganizationInput, UserRoleUncheckedCreateWithoutOrganizationInput> | UserRoleCreateWithoutOrganizationInput[] | UserRoleUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutOrganizationInput | UserRoleCreateOrConnectWithoutOrganizationInput[]
    createMany?: UserRoleCreateManyOrganizationInputEnvelope
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
  }

  export type PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<PerformanceCycleCreateWithoutOrganizationInput, PerformanceCycleUncheckedCreateWithoutOrganizationInput> | PerformanceCycleCreateWithoutOrganizationInput[] | PerformanceCycleUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutOrganizationInput | PerformanceCycleCreateOrConnectWithoutOrganizationInput[]
    createMany?: PerformanceCycleCreateManyOrganizationInputEnvelope
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
  }

  export type GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<GradeConfigCreateWithoutOrganizationInput, GradeConfigUncheckedCreateWithoutOrganizationInput> | GradeConfigCreateWithoutOrganizationInput[] | GradeConfigUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: GradeConfigCreateOrConnectWithoutOrganizationInput | GradeConfigCreateOrConnectWithoutOrganizationInput[]
    createMany?: GradeConfigCreateManyOrganizationInputEnvelope
    connect?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
  }

  export type PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<PerformanceResultCreateWithoutOrganizationInput, PerformanceResultUncheckedCreateWithoutOrganizationInput> | PerformanceResultCreateWithoutOrganizationInput[] | PerformanceResultUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutOrganizationInput | PerformanceResultCreateOrConnectWithoutOrganizationInput[]
    createMany?: PerformanceResultCreateManyOrganizationInputEnvelope
    connect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
  }

  export type Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutOrganizationInput, Evaluation360TemplateUncheckedCreateWithoutOrganizationInput> | Evaluation360TemplateCreateWithoutOrganizationInput[] | Evaluation360TemplateUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutOrganizationInput | Evaluation360TemplateCreateOrConnectWithoutOrganizationInput[]
    createMany?: Evaluation360TemplateCreateManyOrganizationInputEnvelope
    connect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
  }

  export type AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<AiUsageTokenCreateWithoutOrganizationInput, AiUsageTokenUncheckedCreateWithoutOrganizationInput> | AiUsageTokenCreateWithoutOrganizationInput[] | AiUsageTokenUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutOrganizationInput | AiUsageTokenCreateOrConnectWithoutOrganizationInput[]
    createMany?: AiUsageTokenCreateManyOrganizationInputEnvelope
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
  }

  export type AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<AiUsageDeviceCreateWithoutOrganizationInput, AiUsageDeviceUncheckedCreateWithoutOrganizationInput> | AiUsageDeviceCreateWithoutOrganizationInput[] | AiUsageDeviceUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutOrganizationInput | AiUsageDeviceCreateOrConnectWithoutOrganizationInput[]
    createMany?: AiUsageDeviceCreateManyOrganizationInputEnvelope
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
  }

  export type AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<AiUsageEventCreateWithoutOrganizationInput, AiUsageEventUncheckedCreateWithoutOrganizationInput> | AiUsageEventCreateWithoutOrganizationInput[] | AiUsageEventUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutOrganizationInput | AiUsageEventCreateOrConnectWithoutOrganizationInput[]
    createMany?: AiUsageEventCreateManyOrganizationInputEnvelope
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
  }

  export type AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<AiUsageDailyRollupCreateWithoutOrganizationInput, AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput> | AiUsageDailyRollupCreateWithoutOrganizationInput[] | AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput | AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput[]
    createMany?: AiUsageDailyRollupCreateManyOrganizationInputEnvelope
    connect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
  }

  export type MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutOrganizationInput, MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput> | MeetingAgendaSectionCreateWithoutOrganizationInput[] | MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput | MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAgendaSectionCreateManyOrganizationInputEnvelope
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
  }

  export type MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutOrganizationInput, MeetingAgendaItemUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemCreateWithoutOrganizationInput[] | MeetingAgendaItemUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemCreateManyOrganizationInputEnvelope
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyOrganizationInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutOrganizationInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemAttachmentCreateWithoutOrganizationInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyOrganizationInputEnvelope
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
  }

  export type MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput = {
    create?: XOR<MeetingAttachmentCreateWithoutOrganizationInput, MeetingAttachmentUncheckedCreateWithoutOrganizationInput> | MeetingAttachmentCreateWithoutOrganizationInput[] | MeetingAttachmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutOrganizationInput | MeetingAttachmentCreateOrConnectWithoutOrganizationInput[]
    createMany?: MeetingAttachmentCreateManyOrganizationInputEnvelope
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
  }

  export type RegionUpdateOneWithoutPrimaryOrganizationsNestedInput = {
    create?: XOR<RegionCreateWithoutPrimaryOrganizationsInput, RegionUncheckedCreateWithoutPrimaryOrganizationsInput>
    connectOrCreate?: RegionCreateOrConnectWithoutPrimaryOrganizationsInput
    upsert?: RegionUpsertWithoutPrimaryOrganizationsInput
    disconnect?: RegionWhereInput | boolean
    delete?: RegionWhereInput | boolean
    connect?: RegionWhereUniqueInput
    update?: XOR<XOR<RegionUpdateToOneWithWhereWithoutPrimaryOrganizationsInput, RegionUpdateWithoutPrimaryOrganizationsInput>, RegionUncheckedUpdateWithoutPrimaryOrganizationsInput>
  }

  export type DepartmentUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<DepartmentCreateWithoutOrganizationInput, DepartmentUncheckedCreateWithoutOrganizationInput> | DepartmentCreateWithoutOrganizationInput[] | DepartmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: DepartmentCreateOrConnectWithoutOrganizationInput | DepartmentCreateOrConnectWithoutOrganizationInput[]
    upsert?: DepartmentUpsertWithWhereUniqueWithoutOrganizationInput | DepartmentUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: DepartmentCreateManyOrganizationInputEnvelope
    set?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    disconnect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    delete?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    connect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    update?: DepartmentUpdateWithWhereUniqueWithoutOrganizationInput | DepartmentUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: DepartmentUpdateManyWithWhereWithoutOrganizationInput | DepartmentUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: DepartmentScalarWhereInput | DepartmentScalarWhereInput[]
  }

  export type UserDepartmentUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutOrganizationInput, UserDepartmentUncheckedCreateWithoutOrganizationInput> | UserDepartmentCreateWithoutOrganizationInput[] | UserDepartmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutOrganizationInput | UserDepartmentCreateOrConnectWithoutOrganizationInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutOrganizationInput | UserDepartmentUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: UserDepartmentCreateManyOrganizationInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutOrganizationInput | UserDepartmentUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutOrganizationInput | UserDepartmentUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type OrganizationRegionUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<OrganizationRegionCreateWithoutOrganizationInput, OrganizationRegionUncheckedCreateWithoutOrganizationInput> | OrganizationRegionCreateWithoutOrganizationInput[] | OrganizationRegionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: OrganizationRegionCreateOrConnectWithoutOrganizationInput | OrganizationRegionCreateOrConnectWithoutOrganizationInput[]
    upsert?: OrganizationRegionUpsertWithWhereUniqueWithoutOrganizationInput | OrganizationRegionUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: OrganizationRegionCreateManyOrganizationInputEnvelope
    set?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    disconnect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    delete?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    connect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    update?: OrganizationRegionUpdateWithWhereUniqueWithoutOrganizationInput | OrganizationRegionUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: OrganizationRegionUpdateManyWithWhereWithoutOrganizationInput | OrganizationRegionUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: OrganizationRegionScalarWhereInput | OrganizationRegionScalarWhereInput[]
  }

  export type FormDefinitionUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<FormDefinitionCreateWithoutOrganizationInput, FormDefinitionUncheckedCreateWithoutOrganizationInput> | FormDefinitionCreateWithoutOrganizationInput[] | FormDefinitionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutOrganizationInput | FormDefinitionCreateOrConnectWithoutOrganizationInput[]
    upsert?: FormDefinitionUpsertWithWhereUniqueWithoutOrganizationInput | FormDefinitionUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: FormDefinitionCreateManyOrganizationInputEnvelope
    set?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    disconnect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    delete?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    update?: FormDefinitionUpdateWithWhereUniqueWithoutOrganizationInput | FormDefinitionUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: FormDefinitionUpdateManyWithWhereWithoutOrganizationInput | FormDefinitionUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: FormDefinitionScalarWhereInput | FormDefinitionScalarWhereInput[]
  }

  export type FormWebhookUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<FormWebhookCreateWithoutOrganizationInput, FormWebhookUncheckedCreateWithoutOrganizationInput> | FormWebhookCreateWithoutOrganizationInput[] | FormWebhookUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FormWebhookCreateOrConnectWithoutOrganizationInput | FormWebhookCreateOrConnectWithoutOrganizationInput[]
    upsert?: FormWebhookUpsertWithWhereUniqueWithoutOrganizationInput | FormWebhookUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: FormWebhookCreateManyOrganizationInputEnvelope
    set?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
    disconnect?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
    delete?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
    connect?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
    update?: FormWebhookUpdateWithWhereUniqueWithoutOrganizationInput | FormWebhookUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: FormWebhookUpdateManyWithWhereWithoutOrganizationInput | FormWebhookUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: FormWebhookScalarWhereInput | FormWebhookScalarWhereInput[]
  }

  export type ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<ApprovalDefinitionCreateWithoutOrganizationInput, ApprovalDefinitionUncheckedCreateWithoutOrganizationInput> | ApprovalDefinitionCreateWithoutOrganizationInput[] | ApprovalDefinitionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ApprovalDefinitionCreateOrConnectWithoutOrganizationInput | ApprovalDefinitionCreateOrConnectWithoutOrganizationInput[]
    upsert?: ApprovalDefinitionUpsertWithWhereUniqueWithoutOrganizationInput | ApprovalDefinitionUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: ApprovalDefinitionCreateManyOrganizationInputEnvelope
    set?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
    disconnect?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
    delete?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
    connect?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
    update?: ApprovalDefinitionUpdateWithWhereUniqueWithoutOrganizationInput | ApprovalDefinitionUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: ApprovalDefinitionUpdateManyWithWhereWithoutOrganizationInput | ApprovalDefinitionUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: ApprovalDefinitionScalarWhereInput | ApprovalDefinitionScalarWhereInput[]
  }

  export type UserRoleUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<UserRoleCreateWithoutOrganizationInput, UserRoleUncheckedCreateWithoutOrganizationInput> | UserRoleCreateWithoutOrganizationInput[] | UserRoleUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutOrganizationInput | UserRoleCreateOrConnectWithoutOrganizationInput[]
    upsert?: UserRoleUpsertWithWhereUniqueWithoutOrganizationInput | UserRoleUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: UserRoleCreateManyOrganizationInputEnvelope
    set?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    disconnect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    delete?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    update?: UserRoleUpdateWithWhereUniqueWithoutOrganizationInput | UserRoleUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: UserRoleUpdateManyWithWhereWithoutOrganizationInput | UserRoleUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: UserRoleScalarWhereInput | UserRoleScalarWhereInput[]
  }

  export type PerformanceCycleUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutOrganizationInput, PerformanceCycleUncheckedCreateWithoutOrganizationInput> | PerformanceCycleCreateWithoutOrganizationInput[] | PerformanceCycleUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutOrganizationInput | PerformanceCycleCreateOrConnectWithoutOrganizationInput[]
    upsert?: PerformanceCycleUpsertWithWhereUniqueWithoutOrganizationInput | PerformanceCycleUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: PerformanceCycleCreateManyOrganizationInputEnvelope
    set?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    disconnect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    delete?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    update?: PerformanceCycleUpdateWithWhereUniqueWithoutOrganizationInput | PerformanceCycleUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: PerformanceCycleUpdateManyWithWhereWithoutOrganizationInput | PerformanceCycleUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: PerformanceCycleScalarWhereInput | PerformanceCycleScalarWhereInput[]
  }

  export type GradeConfigUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<GradeConfigCreateWithoutOrganizationInput, GradeConfigUncheckedCreateWithoutOrganizationInput> | GradeConfigCreateWithoutOrganizationInput[] | GradeConfigUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: GradeConfigCreateOrConnectWithoutOrganizationInput | GradeConfigCreateOrConnectWithoutOrganizationInput[]
    upsert?: GradeConfigUpsertWithWhereUniqueWithoutOrganizationInput | GradeConfigUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: GradeConfigCreateManyOrganizationInputEnvelope
    set?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
    disconnect?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
    delete?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
    connect?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
    update?: GradeConfigUpdateWithWhereUniqueWithoutOrganizationInput | GradeConfigUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: GradeConfigUpdateManyWithWhereWithoutOrganizationInput | GradeConfigUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: GradeConfigScalarWhereInput | GradeConfigScalarWhereInput[]
  }

  export type PerformanceResultUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<PerformanceResultCreateWithoutOrganizationInput, PerformanceResultUncheckedCreateWithoutOrganizationInput> | PerformanceResultCreateWithoutOrganizationInput[] | PerformanceResultUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutOrganizationInput | PerformanceResultCreateOrConnectWithoutOrganizationInput[]
    upsert?: PerformanceResultUpsertWithWhereUniqueWithoutOrganizationInput | PerformanceResultUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: PerformanceResultCreateManyOrganizationInputEnvelope
    set?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    disconnect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    delete?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    connect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    update?: PerformanceResultUpdateWithWhereUniqueWithoutOrganizationInput | PerformanceResultUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: PerformanceResultUpdateManyWithWhereWithoutOrganizationInput | PerformanceResultUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: PerformanceResultScalarWhereInput | PerformanceResultScalarWhereInput[]
  }

  export type Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutOrganizationInput, Evaluation360TemplateUncheckedCreateWithoutOrganizationInput> | Evaluation360TemplateCreateWithoutOrganizationInput[] | Evaluation360TemplateUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutOrganizationInput | Evaluation360TemplateCreateOrConnectWithoutOrganizationInput[]
    upsert?: Evaluation360TemplateUpsertWithWhereUniqueWithoutOrganizationInput | Evaluation360TemplateUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: Evaluation360TemplateCreateManyOrganizationInputEnvelope
    set?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    disconnect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    delete?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    connect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    update?: Evaluation360TemplateUpdateWithWhereUniqueWithoutOrganizationInput | Evaluation360TemplateUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: Evaluation360TemplateUpdateManyWithWhereWithoutOrganizationInput | Evaluation360TemplateUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: Evaluation360TemplateScalarWhereInput | Evaluation360TemplateScalarWhereInput[]
  }

  export type AiUsageTokenUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<AiUsageTokenCreateWithoutOrganizationInput, AiUsageTokenUncheckedCreateWithoutOrganizationInput> | AiUsageTokenCreateWithoutOrganizationInput[] | AiUsageTokenUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutOrganizationInput | AiUsageTokenCreateOrConnectWithoutOrganizationInput[]
    upsert?: AiUsageTokenUpsertWithWhereUniqueWithoutOrganizationInput | AiUsageTokenUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: AiUsageTokenCreateManyOrganizationInputEnvelope
    set?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    disconnect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    delete?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    update?: AiUsageTokenUpdateWithWhereUniqueWithoutOrganizationInput | AiUsageTokenUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: AiUsageTokenUpdateManyWithWhereWithoutOrganizationInput | AiUsageTokenUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: AiUsageTokenScalarWhereInput | AiUsageTokenScalarWhereInput[]
  }

  export type AiUsageDeviceUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<AiUsageDeviceCreateWithoutOrganizationInput, AiUsageDeviceUncheckedCreateWithoutOrganizationInput> | AiUsageDeviceCreateWithoutOrganizationInput[] | AiUsageDeviceUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutOrganizationInput | AiUsageDeviceCreateOrConnectWithoutOrganizationInput[]
    upsert?: AiUsageDeviceUpsertWithWhereUniqueWithoutOrganizationInput | AiUsageDeviceUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: AiUsageDeviceCreateManyOrganizationInputEnvelope
    set?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    disconnect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    delete?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    update?: AiUsageDeviceUpdateWithWhereUniqueWithoutOrganizationInput | AiUsageDeviceUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: AiUsageDeviceUpdateManyWithWhereWithoutOrganizationInput | AiUsageDeviceUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: AiUsageDeviceScalarWhereInput | AiUsageDeviceScalarWhereInput[]
  }

  export type AiUsageEventUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<AiUsageEventCreateWithoutOrganizationInput, AiUsageEventUncheckedCreateWithoutOrganizationInput> | AiUsageEventCreateWithoutOrganizationInput[] | AiUsageEventUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutOrganizationInput | AiUsageEventCreateOrConnectWithoutOrganizationInput[]
    upsert?: AiUsageEventUpsertWithWhereUniqueWithoutOrganizationInput | AiUsageEventUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: AiUsageEventCreateManyOrganizationInputEnvelope
    set?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    disconnect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    delete?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    update?: AiUsageEventUpdateWithWhereUniqueWithoutOrganizationInput | AiUsageEventUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: AiUsageEventUpdateManyWithWhereWithoutOrganizationInput | AiUsageEventUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: AiUsageEventScalarWhereInput | AiUsageEventScalarWhereInput[]
  }

  export type AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<AiUsageDailyRollupCreateWithoutOrganizationInput, AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput> | AiUsageDailyRollupCreateWithoutOrganizationInput[] | AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput | AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput[]
    upsert?: AiUsageDailyRollupUpsertWithWhereUniqueWithoutOrganizationInput | AiUsageDailyRollupUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: AiUsageDailyRollupCreateManyOrganizationInputEnvelope
    set?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    disconnect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    delete?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    connect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    update?: AiUsageDailyRollupUpdateWithWhereUniqueWithoutOrganizationInput | AiUsageDailyRollupUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: AiUsageDailyRollupUpdateManyWithWhereWithoutOrganizationInput | AiUsageDailyRollupUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: AiUsageDailyRollupScalarWhereInput | AiUsageDailyRollupScalarWhereInput[]
  }

  export type MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutOrganizationInput, MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput> | MeetingAgendaSectionCreateWithoutOrganizationInput[] | MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput | MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAgendaSectionUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAgendaSectionUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAgendaSectionCreateManyOrganizationInputEnvelope
    set?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    disconnect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    delete?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    update?: MeetingAgendaSectionUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAgendaSectionUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAgendaSectionUpdateManyWithWhereWithoutOrganizationInput | MeetingAgendaSectionUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAgendaSectionScalarWhereInput | MeetingAgendaSectionScalarWhereInput[]
  }

  export type MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutOrganizationInput, MeetingAgendaItemUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemCreateWithoutOrganizationInput[] | MeetingAgendaItemUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAgendaItemUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemCreateManyOrganizationInputEnvelope
    set?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    disconnect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    delete?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    update?: MeetingAgendaItemUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAgendaItemUpdateManyWithWhereWithoutOrganizationInput | MeetingAgendaItemUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyOrganizationInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutOrganizationInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutOrganizationInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemAttachmentCreateWithoutOrganizationInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyOrganizationInputEnvelope
    set?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    disconnect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    delete?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    update?: MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutOrganizationInput | MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
  }

  export type MeetingAttachmentUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAttachmentCreateWithoutOrganizationInput, MeetingAttachmentUncheckedCreateWithoutOrganizationInput> | MeetingAttachmentCreateWithoutOrganizationInput[] | MeetingAttachmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutOrganizationInput | MeetingAttachmentCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAttachmentUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAttachmentUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAttachmentCreateManyOrganizationInputEnvelope
    set?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    disconnect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    delete?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    update?: MeetingAttachmentUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAttachmentUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAttachmentUpdateManyWithWhereWithoutOrganizationInput | MeetingAttachmentUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
  }

  export type DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<DepartmentCreateWithoutOrganizationInput, DepartmentUncheckedCreateWithoutOrganizationInput> | DepartmentCreateWithoutOrganizationInput[] | DepartmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: DepartmentCreateOrConnectWithoutOrganizationInput | DepartmentCreateOrConnectWithoutOrganizationInput[]
    upsert?: DepartmentUpsertWithWhereUniqueWithoutOrganizationInput | DepartmentUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: DepartmentCreateManyOrganizationInputEnvelope
    set?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    disconnect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    delete?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    connect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    update?: DepartmentUpdateWithWhereUniqueWithoutOrganizationInput | DepartmentUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: DepartmentUpdateManyWithWhereWithoutOrganizationInput | DepartmentUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: DepartmentScalarWhereInput | DepartmentScalarWhereInput[]
  }

  export type UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutOrganizationInput, UserDepartmentUncheckedCreateWithoutOrganizationInput> | UserDepartmentCreateWithoutOrganizationInput[] | UserDepartmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutOrganizationInput | UserDepartmentCreateOrConnectWithoutOrganizationInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutOrganizationInput | UserDepartmentUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: UserDepartmentCreateManyOrganizationInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutOrganizationInput | UserDepartmentUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutOrganizationInput | UserDepartmentUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<OrganizationRegionCreateWithoutOrganizationInput, OrganizationRegionUncheckedCreateWithoutOrganizationInput> | OrganizationRegionCreateWithoutOrganizationInput[] | OrganizationRegionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: OrganizationRegionCreateOrConnectWithoutOrganizationInput | OrganizationRegionCreateOrConnectWithoutOrganizationInput[]
    upsert?: OrganizationRegionUpsertWithWhereUniqueWithoutOrganizationInput | OrganizationRegionUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: OrganizationRegionCreateManyOrganizationInputEnvelope
    set?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    disconnect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    delete?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    connect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    update?: OrganizationRegionUpdateWithWhereUniqueWithoutOrganizationInput | OrganizationRegionUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: OrganizationRegionUpdateManyWithWhereWithoutOrganizationInput | OrganizationRegionUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: OrganizationRegionScalarWhereInput | OrganizationRegionScalarWhereInput[]
  }

  export type FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<FormDefinitionCreateWithoutOrganizationInput, FormDefinitionUncheckedCreateWithoutOrganizationInput> | FormDefinitionCreateWithoutOrganizationInput[] | FormDefinitionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutOrganizationInput | FormDefinitionCreateOrConnectWithoutOrganizationInput[]
    upsert?: FormDefinitionUpsertWithWhereUniqueWithoutOrganizationInput | FormDefinitionUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: FormDefinitionCreateManyOrganizationInputEnvelope
    set?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    disconnect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    delete?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    update?: FormDefinitionUpdateWithWhereUniqueWithoutOrganizationInput | FormDefinitionUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: FormDefinitionUpdateManyWithWhereWithoutOrganizationInput | FormDefinitionUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: FormDefinitionScalarWhereInput | FormDefinitionScalarWhereInput[]
  }

  export type FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<FormWebhookCreateWithoutOrganizationInput, FormWebhookUncheckedCreateWithoutOrganizationInput> | FormWebhookCreateWithoutOrganizationInput[] | FormWebhookUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: FormWebhookCreateOrConnectWithoutOrganizationInput | FormWebhookCreateOrConnectWithoutOrganizationInput[]
    upsert?: FormWebhookUpsertWithWhereUniqueWithoutOrganizationInput | FormWebhookUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: FormWebhookCreateManyOrganizationInputEnvelope
    set?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
    disconnect?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
    delete?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
    connect?: FormWebhookWhereUniqueInput | FormWebhookWhereUniqueInput[]
    update?: FormWebhookUpdateWithWhereUniqueWithoutOrganizationInput | FormWebhookUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: FormWebhookUpdateManyWithWhereWithoutOrganizationInput | FormWebhookUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: FormWebhookScalarWhereInput | FormWebhookScalarWhereInput[]
  }

  export type ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<ApprovalDefinitionCreateWithoutOrganizationInput, ApprovalDefinitionUncheckedCreateWithoutOrganizationInput> | ApprovalDefinitionCreateWithoutOrganizationInput[] | ApprovalDefinitionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: ApprovalDefinitionCreateOrConnectWithoutOrganizationInput | ApprovalDefinitionCreateOrConnectWithoutOrganizationInput[]
    upsert?: ApprovalDefinitionUpsertWithWhereUniqueWithoutOrganizationInput | ApprovalDefinitionUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: ApprovalDefinitionCreateManyOrganizationInputEnvelope
    set?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
    disconnect?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
    delete?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
    connect?: ApprovalDefinitionWhereUniqueInput | ApprovalDefinitionWhereUniqueInput[]
    update?: ApprovalDefinitionUpdateWithWhereUniqueWithoutOrganizationInput | ApprovalDefinitionUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: ApprovalDefinitionUpdateManyWithWhereWithoutOrganizationInput | ApprovalDefinitionUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: ApprovalDefinitionScalarWhereInput | ApprovalDefinitionScalarWhereInput[]
  }

  export type UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<UserRoleCreateWithoutOrganizationInput, UserRoleUncheckedCreateWithoutOrganizationInput> | UserRoleCreateWithoutOrganizationInput[] | UserRoleUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutOrganizationInput | UserRoleCreateOrConnectWithoutOrganizationInput[]
    upsert?: UserRoleUpsertWithWhereUniqueWithoutOrganizationInput | UserRoleUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: UserRoleCreateManyOrganizationInputEnvelope
    set?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    disconnect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    delete?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    update?: UserRoleUpdateWithWhereUniqueWithoutOrganizationInput | UserRoleUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: UserRoleUpdateManyWithWhereWithoutOrganizationInput | UserRoleUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: UserRoleScalarWhereInput | UserRoleScalarWhereInput[]
  }

  export type PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutOrganizationInput, PerformanceCycleUncheckedCreateWithoutOrganizationInput> | PerformanceCycleCreateWithoutOrganizationInput[] | PerformanceCycleUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutOrganizationInput | PerformanceCycleCreateOrConnectWithoutOrganizationInput[]
    upsert?: PerformanceCycleUpsertWithWhereUniqueWithoutOrganizationInput | PerformanceCycleUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: PerformanceCycleCreateManyOrganizationInputEnvelope
    set?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    disconnect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    delete?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    update?: PerformanceCycleUpdateWithWhereUniqueWithoutOrganizationInput | PerformanceCycleUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: PerformanceCycleUpdateManyWithWhereWithoutOrganizationInput | PerformanceCycleUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: PerformanceCycleScalarWhereInput | PerformanceCycleScalarWhereInput[]
  }

  export type GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<GradeConfigCreateWithoutOrganizationInput, GradeConfigUncheckedCreateWithoutOrganizationInput> | GradeConfigCreateWithoutOrganizationInput[] | GradeConfigUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: GradeConfigCreateOrConnectWithoutOrganizationInput | GradeConfigCreateOrConnectWithoutOrganizationInput[]
    upsert?: GradeConfigUpsertWithWhereUniqueWithoutOrganizationInput | GradeConfigUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: GradeConfigCreateManyOrganizationInputEnvelope
    set?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
    disconnect?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
    delete?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
    connect?: GradeConfigWhereUniqueInput | GradeConfigWhereUniqueInput[]
    update?: GradeConfigUpdateWithWhereUniqueWithoutOrganizationInput | GradeConfigUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: GradeConfigUpdateManyWithWhereWithoutOrganizationInput | GradeConfigUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: GradeConfigScalarWhereInput | GradeConfigScalarWhereInput[]
  }

  export type PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<PerformanceResultCreateWithoutOrganizationInput, PerformanceResultUncheckedCreateWithoutOrganizationInput> | PerformanceResultCreateWithoutOrganizationInput[] | PerformanceResultUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutOrganizationInput | PerformanceResultCreateOrConnectWithoutOrganizationInput[]
    upsert?: PerformanceResultUpsertWithWhereUniqueWithoutOrganizationInput | PerformanceResultUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: PerformanceResultCreateManyOrganizationInputEnvelope
    set?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    disconnect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    delete?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    connect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    update?: PerformanceResultUpdateWithWhereUniqueWithoutOrganizationInput | PerformanceResultUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: PerformanceResultUpdateManyWithWhereWithoutOrganizationInput | PerformanceResultUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: PerformanceResultScalarWhereInput | PerformanceResultScalarWhereInput[]
  }

  export type Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutOrganizationInput, Evaluation360TemplateUncheckedCreateWithoutOrganizationInput> | Evaluation360TemplateCreateWithoutOrganizationInput[] | Evaluation360TemplateUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutOrganizationInput | Evaluation360TemplateCreateOrConnectWithoutOrganizationInput[]
    upsert?: Evaluation360TemplateUpsertWithWhereUniqueWithoutOrganizationInput | Evaluation360TemplateUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: Evaluation360TemplateCreateManyOrganizationInputEnvelope
    set?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    disconnect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    delete?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    connect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    update?: Evaluation360TemplateUpdateWithWhereUniqueWithoutOrganizationInput | Evaluation360TemplateUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: Evaluation360TemplateUpdateManyWithWhereWithoutOrganizationInput | Evaluation360TemplateUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: Evaluation360TemplateScalarWhereInput | Evaluation360TemplateScalarWhereInput[]
  }

  export type AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<AiUsageTokenCreateWithoutOrganizationInput, AiUsageTokenUncheckedCreateWithoutOrganizationInput> | AiUsageTokenCreateWithoutOrganizationInput[] | AiUsageTokenUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutOrganizationInput | AiUsageTokenCreateOrConnectWithoutOrganizationInput[]
    upsert?: AiUsageTokenUpsertWithWhereUniqueWithoutOrganizationInput | AiUsageTokenUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: AiUsageTokenCreateManyOrganizationInputEnvelope
    set?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    disconnect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    delete?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    update?: AiUsageTokenUpdateWithWhereUniqueWithoutOrganizationInput | AiUsageTokenUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: AiUsageTokenUpdateManyWithWhereWithoutOrganizationInput | AiUsageTokenUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: AiUsageTokenScalarWhereInput | AiUsageTokenScalarWhereInput[]
  }

  export type AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<AiUsageDeviceCreateWithoutOrganizationInput, AiUsageDeviceUncheckedCreateWithoutOrganizationInput> | AiUsageDeviceCreateWithoutOrganizationInput[] | AiUsageDeviceUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutOrganizationInput | AiUsageDeviceCreateOrConnectWithoutOrganizationInput[]
    upsert?: AiUsageDeviceUpsertWithWhereUniqueWithoutOrganizationInput | AiUsageDeviceUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: AiUsageDeviceCreateManyOrganizationInputEnvelope
    set?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    disconnect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    delete?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    update?: AiUsageDeviceUpdateWithWhereUniqueWithoutOrganizationInput | AiUsageDeviceUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: AiUsageDeviceUpdateManyWithWhereWithoutOrganizationInput | AiUsageDeviceUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: AiUsageDeviceScalarWhereInput | AiUsageDeviceScalarWhereInput[]
  }

  export type AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<AiUsageEventCreateWithoutOrganizationInput, AiUsageEventUncheckedCreateWithoutOrganizationInput> | AiUsageEventCreateWithoutOrganizationInput[] | AiUsageEventUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutOrganizationInput | AiUsageEventCreateOrConnectWithoutOrganizationInput[]
    upsert?: AiUsageEventUpsertWithWhereUniqueWithoutOrganizationInput | AiUsageEventUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: AiUsageEventCreateManyOrganizationInputEnvelope
    set?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    disconnect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    delete?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    update?: AiUsageEventUpdateWithWhereUniqueWithoutOrganizationInput | AiUsageEventUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: AiUsageEventUpdateManyWithWhereWithoutOrganizationInput | AiUsageEventUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: AiUsageEventScalarWhereInput | AiUsageEventScalarWhereInput[]
  }

  export type AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<AiUsageDailyRollupCreateWithoutOrganizationInput, AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput> | AiUsageDailyRollupCreateWithoutOrganizationInput[] | AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput | AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput[]
    upsert?: AiUsageDailyRollupUpsertWithWhereUniqueWithoutOrganizationInput | AiUsageDailyRollupUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: AiUsageDailyRollupCreateManyOrganizationInputEnvelope
    set?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    disconnect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    delete?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    connect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    update?: AiUsageDailyRollupUpdateWithWhereUniqueWithoutOrganizationInput | AiUsageDailyRollupUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: AiUsageDailyRollupUpdateManyWithWhereWithoutOrganizationInput | AiUsageDailyRollupUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: AiUsageDailyRollupScalarWhereInput | AiUsageDailyRollupScalarWhereInput[]
  }

  export type MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutOrganizationInput, MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput> | MeetingAgendaSectionCreateWithoutOrganizationInput[] | MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput | MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAgendaSectionUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAgendaSectionUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAgendaSectionCreateManyOrganizationInputEnvelope
    set?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    disconnect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    delete?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    update?: MeetingAgendaSectionUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAgendaSectionUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAgendaSectionUpdateManyWithWhereWithoutOrganizationInput | MeetingAgendaSectionUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAgendaSectionScalarWhereInput | MeetingAgendaSectionScalarWhereInput[]
  }

  export type MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutOrganizationInput, MeetingAgendaItemUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemCreateWithoutOrganizationInput[] | MeetingAgendaItemUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAgendaItemUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemCreateManyOrganizationInputEnvelope
    set?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    disconnect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    delete?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    update?: MeetingAgendaItemUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAgendaItemUpdateManyWithWhereWithoutOrganizationInput | MeetingAgendaItemUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyOrganizationInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutOrganizationInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutOrganizationInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput> | MeetingAgendaItemAttachmentCreateWithoutOrganizationInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyOrganizationInputEnvelope
    set?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    disconnect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    delete?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    update?: MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutOrganizationInput | MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
  }

  export type MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput = {
    create?: XOR<MeetingAttachmentCreateWithoutOrganizationInput, MeetingAttachmentUncheckedCreateWithoutOrganizationInput> | MeetingAttachmentCreateWithoutOrganizationInput[] | MeetingAttachmentUncheckedCreateWithoutOrganizationInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutOrganizationInput | MeetingAttachmentCreateOrConnectWithoutOrganizationInput[]
    upsert?: MeetingAttachmentUpsertWithWhereUniqueWithoutOrganizationInput | MeetingAttachmentUpsertWithWhereUniqueWithoutOrganizationInput[]
    createMany?: MeetingAttachmentCreateManyOrganizationInputEnvelope
    set?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    disconnect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    delete?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    update?: MeetingAttachmentUpdateWithWhereUniqueWithoutOrganizationInput | MeetingAttachmentUpdateWithWhereUniqueWithoutOrganizationInput[]
    updateMany?: MeetingAttachmentUpdateManyWithWhereWithoutOrganizationInput | MeetingAttachmentUpdateManyWithWhereWithoutOrganizationInput[]
    deleteMany?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
  }

  export type OrganizationCreateNestedOneWithoutOrganizationRegionsInput = {
    create?: XOR<OrganizationCreateWithoutOrganizationRegionsInput, OrganizationUncheckedCreateWithoutOrganizationRegionsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutOrganizationRegionsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type RegionCreateNestedOneWithoutOrganizationRegionsInput = {
    create?: XOR<RegionCreateWithoutOrganizationRegionsInput, RegionUncheckedCreateWithoutOrganizationRegionsInput>
    connectOrCreate?: RegionCreateOrConnectWithoutOrganizationRegionsInput
    connect?: RegionWhereUniqueInput
  }

  export type OrganizationUpdateOneRequiredWithoutOrganizationRegionsNestedInput = {
    create?: XOR<OrganizationCreateWithoutOrganizationRegionsInput, OrganizationUncheckedCreateWithoutOrganizationRegionsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutOrganizationRegionsInput
    upsert?: OrganizationUpsertWithoutOrganizationRegionsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutOrganizationRegionsInput, OrganizationUpdateWithoutOrganizationRegionsInput>, OrganizationUncheckedUpdateWithoutOrganizationRegionsInput>
  }

  export type RegionUpdateOneRequiredWithoutOrganizationRegionsNestedInput = {
    create?: XOR<RegionCreateWithoutOrganizationRegionsInput, RegionUncheckedCreateWithoutOrganizationRegionsInput>
    connectOrCreate?: RegionCreateOrConnectWithoutOrganizationRegionsInput
    upsert?: RegionUpsertWithoutOrganizationRegionsInput
    connect?: RegionWhereUniqueInput
    update?: XOR<XOR<RegionUpdateToOneWithWhereWithoutOrganizationRegionsInput, RegionUpdateWithoutOrganizationRegionsInput>, RegionUncheckedUpdateWithoutOrganizationRegionsInput>
  }

  export type OrganizationCreateNestedManyWithoutPrimaryRegionInput = {
    create?: XOR<OrganizationCreateWithoutPrimaryRegionInput, OrganizationUncheckedCreateWithoutPrimaryRegionInput> | OrganizationCreateWithoutPrimaryRegionInput[] | OrganizationUncheckedCreateWithoutPrimaryRegionInput[]
    connectOrCreate?: OrganizationCreateOrConnectWithoutPrimaryRegionInput | OrganizationCreateOrConnectWithoutPrimaryRegionInput[]
    createMany?: OrganizationCreateManyPrimaryRegionInputEnvelope
    connect?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
  }

  export type OrganizationRegionCreateNestedManyWithoutRegionInput = {
    create?: XOR<OrganizationRegionCreateWithoutRegionInput, OrganizationRegionUncheckedCreateWithoutRegionInput> | OrganizationRegionCreateWithoutRegionInput[] | OrganizationRegionUncheckedCreateWithoutRegionInput[]
    connectOrCreate?: OrganizationRegionCreateOrConnectWithoutRegionInput | OrganizationRegionCreateOrConnectWithoutRegionInput[]
    createMany?: OrganizationRegionCreateManyRegionInputEnvelope
    connect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
  }

  export type OrganizationUncheckedCreateNestedManyWithoutPrimaryRegionInput = {
    create?: XOR<OrganizationCreateWithoutPrimaryRegionInput, OrganizationUncheckedCreateWithoutPrimaryRegionInput> | OrganizationCreateWithoutPrimaryRegionInput[] | OrganizationUncheckedCreateWithoutPrimaryRegionInput[]
    connectOrCreate?: OrganizationCreateOrConnectWithoutPrimaryRegionInput | OrganizationCreateOrConnectWithoutPrimaryRegionInput[]
    createMany?: OrganizationCreateManyPrimaryRegionInputEnvelope
    connect?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
  }

  export type OrganizationRegionUncheckedCreateNestedManyWithoutRegionInput = {
    create?: XOR<OrganizationRegionCreateWithoutRegionInput, OrganizationRegionUncheckedCreateWithoutRegionInput> | OrganizationRegionCreateWithoutRegionInput[] | OrganizationRegionUncheckedCreateWithoutRegionInput[]
    connectOrCreate?: OrganizationRegionCreateOrConnectWithoutRegionInput | OrganizationRegionCreateOrConnectWithoutRegionInput[]
    createMany?: OrganizationRegionCreateManyRegionInputEnvelope
    connect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
  }

  export type OrganizationUpdateManyWithoutPrimaryRegionNestedInput = {
    create?: XOR<OrganizationCreateWithoutPrimaryRegionInput, OrganizationUncheckedCreateWithoutPrimaryRegionInput> | OrganizationCreateWithoutPrimaryRegionInput[] | OrganizationUncheckedCreateWithoutPrimaryRegionInput[]
    connectOrCreate?: OrganizationCreateOrConnectWithoutPrimaryRegionInput | OrganizationCreateOrConnectWithoutPrimaryRegionInput[]
    upsert?: OrganizationUpsertWithWhereUniqueWithoutPrimaryRegionInput | OrganizationUpsertWithWhereUniqueWithoutPrimaryRegionInput[]
    createMany?: OrganizationCreateManyPrimaryRegionInputEnvelope
    set?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
    disconnect?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
    delete?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
    connect?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
    update?: OrganizationUpdateWithWhereUniqueWithoutPrimaryRegionInput | OrganizationUpdateWithWhereUniqueWithoutPrimaryRegionInput[]
    updateMany?: OrganizationUpdateManyWithWhereWithoutPrimaryRegionInput | OrganizationUpdateManyWithWhereWithoutPrimaryRegionInput[]
    deleteMany?: OrganizationScalarWhereInput | OrganizationScalarWhereInput[]
  }

  export type OrganizationRegionUpdateManyWithoutRegionNestedInput = {
    create?: XOR<OrganizationRegionCreateWithoutRegionInput, OrganizationRegionUncheckedCreateWithoutRegionInput> | OrganizationRegionCreateWithoutRegionInput[] | OrganizationRegionUncheckedCreateWithoutRegionInput[]
    connectOrCreate?: OrganizationRegionCreateOrConnectWithoutRegionInput | OrganizationRegionCreateOrConnectWithoutRegionInput[]
    upsert?: OrganizationRegionUpsertWithWhereUniqueWithoutRegionInput | OrganizationRegionUpsertWithWhereUniqueWithoutRegionInput[]
    createMany?: OrganizationRegionCreateManyRegionInputEnvelope
    set?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    disconnect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    delete?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    connect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    update?: OrganizationRegionUpdateWithWhereUniqueWithoutRegionInput | OrganizationRegionUpdateWithWhereUniqueWithoutRegionInput[]
    updateMany?: OrganizationRegionUpdateManyWithWhereWithoutRegionInput | OrganizationRegionUpdateManyWithWhereWithoutRegionInput[]
    deleteMany?: OrganizationRegionScalarWhereInput | OrganizationRegionScalarWhereInput[]
  }

  export type OrganizationUncheckedUpdateManyWithoutPrimaryRegionNestedInput = {
    create?: XOR<OrganizationCreateWithoutPrimaryRegionInput, OrganizationUncheckedCreateWithoutPrimaryRegionInput> | OrganizationCreateWithoutPrimaryRegionInput[] | OrganizationUncheckedCreateWithoutPrimaryRegionInput[]
    connectOrCreate?: OrganizationCreateOrConnectWithoutPrimaryRegionInput | OrganizationCreateOrConnectWithoutPrimaryRegionInput[]
    upsert?: OrganizationUpsertWithWhereUniqueWithoutPrimaryRegionInput | OrganizationUpsertWithWhereUniqueWithoutPrimaryRegionInput[]
    createMany?: OrganizationCreateManyPrimaryRegionInputEnvelope
    set?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
    disconnect?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
    delete?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
    connect?: OrganizationWhereUniqueInput | OrganizationWhereUniqueInput[]
    update?: OrganizationUpdateWithWhereUniqueWithoutPrimaryRegionInput | OrganizationUpdateWithWhereUniqueWithoutPrimaryRegionInput[]
    updateMany?: OrganizationUpdateManyWithWhereWithoutPrimaryRegionInput | OrganizationUpdateManyWithWhereWithoutPrimaryRegionInput[]
    deleteMany?: OrganizationScalarWhereInput | OrganizationScalarWhereInput[]
  }

  export type OrganizationRegionUncheckedUpdateManyWithoutRegionNestedInput = {
    create?: XOR<OrganizationRegionCreateWithoutRegionInput, OrganizationRegionUncheckedCreateWithoutRegionInput> | OrganizationRegionCreateWithoutRegionInput[] | OrganizationRegionUncheckedCreateWithoutRegionInput[]
    connectOrCreate?: OrganizationRegionCreateOrConnectWithoutRegionInput | OrganizationRegionCreateOrConnectWithoutRegionInput[]
    upsert?: OrganizationRegionUpsertWithWhereUniqueWithoutRegionInput | OrganizationRegionUpsertWithWhereUniqueWithoutRegionInput[]
    createMany?: OrganizationRegionCreateManyRegionInputEnvelope
    set?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    disconnect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    delete?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    connect?: OrganizationRegionWhereUniqueInput | OrganizationRegionWhereUniqueInput[]
    update?: OrganizationRegionUpdateWithWhereUniqueWithoutRegionInput | OrganizationRegionUpdateWithWhereUniqueWithoutRegionInput[]
    updateMany?: OrganizationRegionUpdateManyWithWhereWithoutRegionInput | OrganizationRegionUpdateManyWithWhereWithoutRegionInput[]
    deleteMany?: OrganizationRegionScalarWhereInput | OrganizationRegionScalarWhereInput[]
  }

  export type OrganizationCreateNestedOneWithoutDepartmentsInput = {
    create?: XOR<OrganizationCreateWithoutDepartmentsInput, OrganizationUncheckedCreateWithoutDepartmentsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutDepartmentsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type DepartmentCreateNestedOneWithoutChildrenInput = {
    create?: XOR<DepartmentCreateWithoutChildrenInput, DepartmentUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: DepartmentCreateOrConnectWithoutChildrenInput
    connect?: DepartmentWhereUniqueInput
  }

  export type DepartmentCreateNestedManyWithoutParentInput = {
    create?: XOR<DepartmentCreateWithoutParentInput, DepartmentUncheckedCreateWithoutParentInput> | DepartmentCreateWithoutParentInput[] | DepartmentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DepartmentCreateOrConnectWithoutParentInput | DepartmentCreateOrConnectWithoutParentInput[]
    createMany?: DepartmentCreateManyParentInputEnvelope
    connect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
  }

  export type UserDepartmentCreateNestedManyWithoutDepartmentInput = {
    create?: XOR<UserDepartmentCreateWithoutDepartmentInput, UserDepartmentUncheckedCreateWithoutDepartmentInput> | UserDepartmentCreateWithoutDepartmentInput[] | UserDepartmentUncheckedCreateWithoutDepartmentInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutDepartmentInput | UserDepartmentCreateOrConnectWithoutDepartmentInput[]
    createMany?: UserDepartmentCreateManyDepartmentInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type DepartmentUncheckedCreateNestedManyWithoutParentInput = {
    create?: XOR<DepartmentCreateWithoutParentInput, DepartmentUncheckedCreateWithoutParentInput> | DepartmentCreateWithoutParentInput[] | DepartmentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DepartmentCreateOrConnectWithoutParentInput | DepartmentCreateOrConnectWithoutParentInput[]
    createMany?: DepartmentCreateManyParentInputEnvelope
    connect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
  }

  export type UserDepartmentUncheckedCreateNestedManyWithoutDepartmentInput = {
    create?: XOR<UserDepartmentCreateWithoutDepartmentInput, UserDepartmentUncheckedCreateWithoutDepartmentInput> | UserDepartmentCreateWithoutDepartmentInput[] | UserDepartmentUncheckedCreateWithoutDepartmentInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutDepartmentInput | UserDepartmentCreateOrConnectWithoutDepartmentInput[]
    createMany?: UserDepartmentCreateManyDepartmentInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type OrganizationUpdateOneRequiredWithoutDepartmentsNestedInput = {
    create?: XOR<OrganizationCreateWithoutDepartmentsInput, OrganizationUncheckedCreateWithoutDepartmentsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutDepartmentsInput
    upsert?: OrganizationUpsertWithoutDepartmentsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutDepartmentsInput, OrganizationUpdateWithoutDepartmentsInput>, OrganizationUncheckedUpdateWithoutDepartmentsInput>
  }

  export type DepartmentUpdateOneWithoutChildrenNestedInput = {
    create?: XOR<DepartmentCreateWithoutChildrenInput, DepartmentUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: DepartmentCreateOrConnectWithoutChildrenInput
    upsert?: DepartmentUpsertWithoutChildrenInput
    disconnect?: DepartmentWhereInput | boolean
    delete?: DepartmentWhereInput | boolean
    connect?: DepartmentWhereUniqueInput
    update?: XOR<XOR<DepartmentUpdateToOneWithWhereWithoutChildrenInput, DepartmentUpdateWithoutChildrenInput>, DepartmentUncheckedUpdateWithoutChildrenInput>
  }

  export type DepartmentUpdateManyWithoutParentNestedInput = {
    create?: XOR<DepartmentCreateWithoutParentInput, DepartmentUncheckedCreateWithoutParentInput> | DepartmentCreateWithoutParentInput[] | DepartmentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DepartmentCreateOrConnectWithoutParentInput | DepartmentCreateOrConnectWithoutParentInput[]
    upsert?: DepartmentUpsertWithWhereUniqueWithoutParentInput | DepartmentUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: DepartmentCreateManyParentInputEnvelope
    set?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    disconnect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    delete?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    connect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    update?: DepartmentUpdateWithWhereUniqueWithoutParentInput | DepartmentUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: DepartmentUpdateManyWithWhereWithoutParentInput | DepartmentUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: DepartmentScalarWhereInput | DepartmentScalarWhereInput[]
  }

  export type UserDepartmentUpdateManyWithoutDepartmentNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutDepartmentInput, UserDepartmentUncheckedCreateWithoutDepartmentInput> | UserDepartmentCreateWithoutDepartmentInput[] | UserDepartmentUncheckedCreateWithoutDepartmentInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutDepartmentInput | UserDepartmentCreateOrConnectWithoutDepartmentInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutDepartmentInput | UserDepartmentUpsertWithWhereUniqueWithoutDepartmentInput[]
    createMany?: UserDepartmentCreateManyDepartmentInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutDepartmentInput | UserDepartmentUpdateWithWhereUniqueWithoutDepartmentInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutDepartmentInput | UserDepartmentUpdateManyWithWhereWithoutDepartmentInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type DepartmentUncheckedUpdateManyWithoutParentNestedInput = {
    create?: XOR<DepartmentCreateWithoutParentInput, DepartmentUncheckedCreateWithoutParentInput> | DepartmentCreateWithoutParentInput[] | DepartmentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DepartmentCreateOrConnectWithoutParentInput | DepartmentCreateOrConnectWithoutParentInput[]
    upsert?: DepartmentUpsertWithWhereUniqueWithoutParentInput | DepartmentUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: DepartmentCreateManyParentInputEnvelope
    set?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    disconnect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    delete?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    connect?: DepartmentWhereUniqueInput | DepartmentWhereUniqueInput[]
    update?: DepartmentUpdateWithWhereUniqueWithoutParentInput | DepartmentUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: DepartmentUpdateManyWithWhereWithoutParentInput | DepartmentUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: DepartmentScalarWhereInput | DepartmentScalarWhereInput[]
  }

  export type UserDepartmentUncheckedUpdateManyWithoutDepartmentNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutDepartmentInput, UserDepartmentUncheckedCreateWithoutDepartmentInput> | UserDepartmentCreateWithoutDepartmentInput[] | UserDepartmentUncheckedCreateWithoutDepartmentInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutDepartmentInput | UserDepartmentCreateOrConnectWithoutDepartmentInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutDepartmentInput | UserDepartmentUpsertWithWhereUniqueWithoutDepartmentInput[]
    createMany?: UserDepartmentCreateManyDepartmentInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutDepartmentInput | UserDepartmentUpdateWithWhereUniqueWithoutDepartmentInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutDepartmentInput | UserDepartmentUpdateManyWithWhereWithoutDepartmentInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type UserDepartmentCreateNestedManyWithoutPositionInput = {
    create?: XOR<UserDepartmentCreateWithoutPositionInput, UserDepartmentUncheckedCreateWithoutPositionInput> | UserDepartmentCreateWithoutPositionInput[] | UserDepartmentUncheckedCreateWithoutPositionInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutPositionInput | UserDepartmentCreateOrConnectWithoutPositionInput[]
    createMany?: UserDepartmentCreateManyPositionInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type UserDepartmentUncheckedCreateNestedManyWithoutPositionInput = {
    create?: XOR<UserDepartmentCreateWithoutPositionInput, UserDepartmentUncheckedCreateWithoutPositionInput> | UserDepartmentCreateWithoutPositionInput[] | UserDepartmentUncheckedCreateWithoutPositionInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutPositionInput | UserDepartmentCreateOrConnectWithoutPositionInput[]
    createMany?: UserDepartmentCreateManyPositionInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type UserDepartmentUpdateManyWithoutPositionNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutPositionInput, UserDepartmentUncheckedCreateWithoutPositionInput> | UserDepartmentCreateWithoutPositionInput[] | UserDepartmentUncheckedCreateWithoutPositionInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutPositionInput | UserDepartmentCreateOrConnectWithoutPositionInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutPositionInput | UserDepartmentUpsertWithWhereUniqueWithoutPositionInput[]
    createMany?: UserDepartmentCreateManyPositionInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutPositionInput | UserDepartmentUpdateWithWhereUniqueWithoutPositionInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutPositionInput | UserDepartmentUpdateManyWithWhereWithoutPositionInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type UserDepartmentUncheckedUpdateManyWithoutPositionNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutPositionInput, UserDepartmentUncheckedCreateWithoutPositionInput> | UserDepartmentCreateWithoutPositionInput[] | UserDepartmentUncheckedCreateWithoutPositionInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutPositionInput | UserDepartmentCreateOrConnectWithoutPositionInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutPositionInput | UserDepartmentUpsertWithWhereUniqueWithoutPositionInput[]
    createMany?: UserDepartmentCreateManyPositionInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutPositionInput | UserDepartmentUpdateWithWhereUniqueWithoutPositionInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutPositionInput | UserDepartmentUpdateManyWithWhereWithoutPositionInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutDepartmentMembershipsInput = {
    create?: XOR<UserCreateWithoutDepartmentMembershipsInput, UserUncheckedCreateWithoutDepartmentMembershipsInput>
    connectOrCreate?: UserCreateOrConnectWithoutDepartmentMembershipsInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutUserDepartmentsInput = {
    create?: XOR<OrganizationCreateWithoutUserDepartmentsInput, OrganizationUncheckedCreateWithoutUserDepartmentsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutUserDepartmentsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type DepartmentCreateNestedOneWithoutUserMembershipsInput = {
    create?: XOR<DepartmentCreateWithoutUserMembershipsInput, DepartmentUncheckedCreateWithoutUserMembershipsInput>
    connectOrCreate?: DepartmentCreateOrConnectWithoutUserMembershipsInput
    connect?: DepartmentWhereUniqueInput
  }

  export type PositionCreateNestedOneWithoutUserMembershipsInput = {
    create?: XOR<PositionCreateWithoutUserMembershipsInput, PositionUncheckedCreateWithoutUserMembershipsInput>
    connectOrCreate?: PositionCreateOrConnectWithoutUserMembershipsInput
    connect?: PositionWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutManagedUsersInput = {
    create?: XOR<UserCreateWithoutManagedUsersInput, UserUncheckedCreateWithoutManagedUsersInput>
    connectOrCreate?: UserCreateOrConnectWithoutManagedUsersInput
    connect?: UserWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutDepartmentMembershipsNestedInput = {
    create?: XOR<UserCreateWithoutDepartmentMembershipsInput, UserUncheckedCreateWithoutDepartmentMembershipsInput>
    connectOrCreate?: UserCreateOrConnectWithoutDepartmentMembershipsInput
    upsert?: UserUpsertWithoutDepartmentMembershipsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDepartmentMembershipsInput, UserUpdateWithoutDepartmentMembershipsInput>, UserUncheckedUpdateWithoutDepartmentMembershipsInput>
  }

  export type OrganizationUpdateOneRequiredWithoutUserDepartmentsNestedInput = {
    create?: XOR<OrganizationCreateWithoutUserDepartmentsInput, OrganizationUncheckedCreateWithoutUserDepartmentsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutUserDepartmentsInput
    upsert?: OrganizationUpsertWithoutUserDepartmentsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutUserDepartmentsInput, OrganizationUpdateWithoutUserDepartmentsInput>, OrganizationUncheckedUpdateWithoutUserDepartmentsInput>
  }

  export type DepartmentUpdateOneRequiredWithoutUserMembershipsNestedInput = {
    create?: XOR<DepartmentCreateWithoutUserMembershipsInput, DepartmentUncheckedCreateWithoutUserMembershipsInput>
    connectOrCreate?: DepartmentCreateOrConnectWithoutUserMembershipsInput
    upsert?: DepartmentUpsertWithoutUserMembershipsInput
    connect?: DepartmentWhereUniqueInput
    update?: XOR<XOR<DepartmentUpdateToOneWithWhereWithoutUserMembershipsInput, DepartmentUpdateWithoutUserMembershipsInput>, DepartmentUncheckedUpdateWithoutUserMembershipsInput>
  }

  export type PositionUpdateOneWithoutUserMembershipsNestedInput = {
    create?: XOR<PositionCreateWithoutUserMembershipsInput, PositionUncheckedCreateWithoutUserMembershipsInput>
    connectOrCreate?: PositionCreateOrConnectWithoutUserMembershipsInput
    upsert?: PositionUpsertWithoutUserMembershipsInput
    disconnect?: PositionWhereInput | boolean
    delete?: PositionWhereInput | boolean
    connect?: PositionWhereUniqueInput
    update?: XOR<XOR<PositionUpdateToOneWithWhereWithoutUserMembershipsInput, PositionUpdateWithoutUserMembershipsInput>, PositionUncheckedUpdateWithoutUserMembershipsInput>
  }

  export type UserUpdateOneWithoutManagedUsersNestedInput = {
    create?: XOR<UserCreateWithoutManagedUsersInput, UserUncheckedCreateWithoutManagedUsersInput>
    connectOrCreate?: UserCreateOrConnectWithoutManagedUsersInput
    upsert?: UserUpsertWithoutManagedUsersInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutManagedUsersInput, UserUpdateWithoutManagedUsersInput>, UserUncheckedUpdateWithoutManagedUsersInput>
  }

  export type ExpenseItemCreateNestedManyWithoutExpenseInput = {
    create?: XOR<ExpenseItemCreateWithoutExpenseInput, ExpenseItemUncheckedCreateWithoutExpenseInput> | ExpenseItemCreateWithoutExpenseInput[] | ExpenseItemUncheckedCreateWithoutExpenseInput[]
    connectOrCreate?: ExpenseItemCreateOrConnectWithoutExpenseInput | ExpenseItemCreateOrConnectWithoutExpenseInput[]
    createMany?: ExpenseItemCreateManyExpenseInputEnvelope
    connect?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
  }

  export type UserCreateNestedOneWithoutCreatedExpensesInput = {
    create?: XOR<UserCreateWithoutCreatedExpensesInput, UserUncheckedCreateWithoutCreatedExpensesInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedExpensesInput
    connect?: UserWhereUniqueInput
  }

  export type ExpenseItemUncheckedCreateNestedManyWithoutExpenseInput = {
    create?: XOR<ExpenseItemCreateWithoutExpenseInput, ExpenseItemUncheckedCreateWithoutExpenseInput> | ExpenseItemCreateWithoutExpenseInput[] | ExpenseItemUncheckedCreateWithoutExpenseInput[]
    connectOrCreate?: ExpenseItemCreateOrConnectWithoutExpenseInput | ExpenseItemCreateOrConnectWithoutExpenseInput[]
    createMany?: ExpenseItemCreateManyExpenseInputEnvelope
    connect?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
  }

  export type DecimalFieldUpdateOperationsInput = {
    set?: Decimal | DecimalJsLike | number | string
    increment?: Decimal | DecimalJsLike | number | string
    decrement?: Decimal | DecimalJsLike | number | string
    multiply?: Decimal | DecimalJsLike | number | string
    divide?: Decimal | DecimalJsLike | number | string
  }

  export type EnumExpenseCategoryFieldUpdateOperationsInput = {
    set?: $Enums.ExpenseCategory
  }

  export type EnumExpenseStatusFieldUpdateOperationsInput = {
    set?: $Enums.ExpenseStatus
  }

  export type ExpenseItemUpdateManyWithoutExpenseNestedInput = {
    create?: XOR<ExpenseItemCreateWithoutExpenseInput, ExpenseItemUncheckedCreateWithoutExpenseInput> | ExpenseItemCreateWithoutExpenseInput[] | ExpenseItemUncheckedCreateWithoutExpenseInput[]
    connectOrCreate?: ExpenseItemCreateOrConnectWithoutExpenseInput | ExpenseItemCreateOrConnectWithoutExpenseInput[]
    upsert?: ExpenseItemUpsertWithWhereUniqueWithoutExpenseInput | ExpenseItemUpsertWithWhereUniqueWithoutExpenseInput[]
    createMany?: ExpenseItemCreateManyExpenseInputEnvelope
    set?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
    disconnect?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
    delete?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
    connect?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
    update?: ExpenseItemUpdateWithWhereUniqueWithoutExpenseInput | ExpenseItemUpdateWithWhereUniqueWithoutExpenseInput[]
    updateMany?: ExpenseItemUpdateManyWithWhereWithoutExpenseInput | ExpenseItemUpdateManyWithWhereWithoutExpenseInput[]
    deleteMany?: ExpenseItemScalarWhereInput | ExpenseItemScalarWhereInput[]
  }

  export type UserUpdateOneRequiredWithoutCreatedExpensesNestedInput = {
    create?: XOR<UserCreateWithoutCreatedExpensesInput, UserUncheckedCreateWithoutCreatedExpensesInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedExpensesInput
    upsert?: UserUpsertWithoutCreatedExpensesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutCreatedExpensesInput, UserUpdateWithoutCreatedExpensesInput>, UserUncheckedUpdateWithoutCreatedExpensesInput>
  }

  export type ExpenseItemUncheckedUpdateManyWithoutExpenseNestedInput = {
    create?: XOR<ExpenseItemCreateWithoutExpenseInput, ExpenseItemUncheckedCreateWithoutExpenseInput> | ExpenseItemCreateWithoutExpenseInput[] | ExpenseItemUncheckedCreateWithoutExpenseInput[]
    connectOrCreate?: ExpenseItemCreateOrConnectWithoutExpenseInput | ExpenseItemCreateOrConnectWithoutExpenseInput[]
    upsert?: ExpenseItemUpsertWithWhereUniqueWithoutExpenseInput | ExpenseItemUpsertWithWhereUniqueWithoutExpenseInput[]
    createMany?: ExpenseItemCreateManyExpenseInputEnvelope
    set?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
    disconnect?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
    delete?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
    connect?: ExpenseItemWhereUniqueInput | ExpenseItemWhereUniqueInput[]
    update?: ExpenseItemUpdateWithWhereUniqueWithoutExpenseInput | ExpenseItemUpdateWithWhereUniqueWithoutExpenseInput[]
    updateMany?: ExpenseItemUpdateManyWithWhereWithoutExpenseInput | ExpenseItemUpdateManyWithWhereWithoutExpenseInput[]
    deleteMany?: ExpenseItemScalarWhereInput | ExpenseItemScalarWhereInput[]
  }

  export type ExpenseRequestCreateNestedOneWithoutItemsInput = {
    create?: XOR<ExpenseRequestCreateWithoutItemsInput, ExpenseRequestUncheckedCreateWithoutItemsInput>
    connectOrCreate?: ExpenseRequestCreateOrConnectWithoutItemsInput
    connect?: ExpenseRequestWhereUniqueInput
  }

  export type ExpenseRequestUpdateOneRequiredWithoutItemsNestedInput = {
    create?: XOR<ExpenseRequestCreateWithoutItemsInput, ExpenseRequestUncheckedCreateWithoutItemsInput>
    connectOrCreate?: ExpenseRequestCreateOrConnectWithoutItemsInput
    upsert?: ExpenseRequestUpsertWithoutItemsInput
    connect?: ExpenseRequestWhereUniqueInput
    update?: XOR<XOR<ExpenseRequestUpdateToOneWithWhereWithoutItemsInput, ExpenseRequestUpdateWithoutItemsInput>, ExpenseRequestUncheckedUpdateWithoutItemsInput>
  }

  export type PurchaseItemCreateNestedManyWithoutPurchaseInput = {
    create?: XOR<PurchaseItemCreateWithoutPurchaseInput, PurchaseItemUncheckedCreateWithoutPurchaseInput> | PurchaseItemCreateWithoutPurchaseInput[] | PurchaseItemUncheckedCreateWithoutPurchaseInput[]
    connectOrCreate?: PurchaseItemCreateOrConnectWithoutPurchaseInput | PurchaseItemCreateOrConnectWithoutPurchaseInput[]
    createMany?: PurchaseItemCreateManyPurchaseInputEnvelope
    connect?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
  }

  export type UserCreateNestedOneWithoutCreatedPurchasesInput = {
    create?: XOR<UserCreateWithoutCreatedPurchasesInput, UserUncheckedCreateWithoutCreatedPurchasesInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedPurchasesInput
    connect?: UserWhereUniqueInput
  }

  export type PurchaseItemUncheckedCreateNestedManyWithoutPurchaseInput = {
    create?: XOR<PurchaseItemCreateWithoutPurchaseInput, PurchaseItemUncheckedCreateWithoutPurchaseInput> | PurchaseItemCreateWithoutPurchaseInput[] | PurchaseItemUncheckedCreateWithoutPurchaseInput[]
    connectOrCreate?: PurchaseItemCreateOrConnectWithoutPurchaseInput | PurchaseItemCreateOrConnectWithoutPurchaseInput[]
    createMany?: PurchaseItemCreateManyPurchaseInputEnvelope
    connect?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
  }

  export type EnumPurchaseStatusFieldUpdateOperationsInput = {
    set?: $Enums.PurchaseStatus
  }

  export type PurchaseItemUpdateManyWithoutPurchaseNestedInput = {
    create?: XOR<PurchaseItemCreateWithoutPurchaseInput, PurchaseItemUncheckedCreateWithoutPurchaseInput> | PurchaseItemCreateWithoutPurchaseInput[] | PurchaseItemUncheckedCreateWithoutPurchaseInput[]
    connectOrCreate?: PurchaseItemCreateOrConnectWithoutPurchaseInput | PurchaseItemCreateOrConnectWithoutPurchaseInput[]
    upsert?: PurchaseItemUpsertWithWhereUniqueWithoutPurchaseInput | PurchaseItemUpsertWithWhereUniqueWithoutPurchaseInput[]
    createMany?: PurchaseItemCreateManyPurchaseInputEnvelope
    set?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
    disconnect?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
    delete?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
    connect?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
    update?: PurchaseItemUpdateWithWhereUniqueWithoutPurchaseInput | PurchaseItemUpdateWithWhereUniqueWithoutPurchaseInput[]
    updateMany?: PurchaseItemUpdateManyWithWhereWithoutPurchaseInput | PurchaseItemUpdateManyWithWhereWithoutPurchaseInput[]
    deleteMany?: PurchaseItemScalarWhereInput | PurchaseItemScalarWhereInput[]
  }

  export type UserUpdateOneRequiredWithoutCreatedPurchasesNestedInput = {
    create?: XOR<UserCreateWithoutCreatedPurchasesInput, UserUncheckedCreateWithoutCreatedPurchasesInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedPurchasesInput
    upsert?: UserUpsertWithoutCreatedPurchasesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutCreatedPurchasesInput, UserUpdateWithoutCreatedPurchasesInput>, UserUncheckedUpdateWithoutCreatedPurchasesInput>
  }

  export type PurchaseItemUncheckedUpdateManyWithoutPurchaseNestedInput = {
    create?: XOR<PurchaseItemCreateWithoutPurchaseInput, PurchaseItemUncheckedCreateWithoutPurchaseInput> | PurchaseItemCreateWithoutPurchaseInput[] | PurchaseItemUncheckedCreateWithoutPurchaseInput[]
    connectOrCreate?: PurchaseItemCreateOrConnectWithoutPurchaseInput | PurchaseItemCreateOrConnectWithoutPurchaseInput[]
    upsert?: PurchaseItemUpsertWithWhereUniqueWithoutPurchaseInput | PurchaseItemUpsertWithWhereUniqueWithoutPurchaseInput[]
    createMany?: PurchaseItemCreateManyPurchaseInputEnvelope
    set?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
    disconnect?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
    delete?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
    connect?: PurchaseItemWhereUniqueInput | PurchaseItemWhereUniqueInput[]
    update?: PurchaseItemUpdateWithWhereUniqueWithoutPurchaseInput | PurchaseItemUpdateWithWhereUniqueWithoutPurchaseInput[]
    updateMany?: PurchaseItemUpdateManyWithWhereWithoutPurchaseInput | PurchaseItemUpdateManyWithWhereWithoutPurchaseInput[]
    deleteMany?: PurchaseItemScalarWhereInput | PurchaseItemScalarWhereInput[]
  }

  export type PurchaseRequestCreateNestedOneWithoutItemsInput = {
    create?: XOR<PurchaseRequestCreateWithoutItemsInput, PurchaseRequestUncheckedCreateWithoutItemsInput>
    connectOrCreate?: PurchaseRequestCreateOrConnectWithoutItemsInput
    connect?: PurchaseRequestWhereUniqueInput
  }

  export type PurchaseRequestUpdateOneRequiredWithoutItemsNestedInput = {
    create?: XOR<PurchaseRequestCreateWithoutItemsInput, PurchaseRequestUncheckedCreateWithoutItemsInput>
    connectOrCreate?: PurchaseRequestCreateOrConnectWithoutItemsInput
    upsert?: PurchaseRequestUpsertWithoutItemsInput
    connect?: PurchaseRequestWhereUniqueInput
    update?: XOR<XOR<PurchaseRequestUpdateToOneWithWhereWithoutItemsInput, PurchaseRequestUpdateWithoutItemsInput>, PurchaseRequestUncheckedUpdateWithoutItemsInput>
  }

  export type UserCreateNestedOneWithoutCreatedContractsInput = {
    create?: XOR<UserCreateWithoutCreatedContractsInput, UserUncheckedCreateWithoutCreatedContractsInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedContractsInput
    connect?: UserWhereUniqueInput
  }

  export type EnumContractTypeFieldUpdateOperationsInput = {
    set?: $Enums.ContractType
  }

  export type EnumContractStatusFieldUpdateOperationsInput = {
    set?: $Enums.ContractStatus
  }

  export type UserUpdateOneRequiredWithoutCreatedContractsNestedInput = {
    create?: XOR<UserCreateWithoutCreatedContractsInput, UserUncheckedCreateWithoutCreatedContractsInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedContractsInput
    upsert?: UserUpsertWithoutCreatedContractsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutCreatedContractsInput, UserUpdateWithoutCreatedContractsInput>, UserUncheckedUpdateWithoutCreatedContractsInput>
  }

  export type InventoryLogCreateNestedManyWithoutPartInput = {
    create?: XOR<InventoryLogCreateWithoutPartInput, InventoryLogUncheckedCreateWithoutPartInput> | InventoryLogCreateWithoutPartInput[] | InventoryLogUncheckedCreateWithoutPartInput[]
    connectOrCreate?: InventoryLogCreateOrConnectWithoutPartInput | InventoryLogCreateOrConnectWithoutPartInput[]
    createMany?: InventoryLogCreateManyPartInputEnvelope
    connect?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
  }

  export type PartGroupRelationCreateNestedManyWithoutPartInput = {
    create?: XOR<PartGroupRelationCreateWithoutPartInput, PartGroupRelationUncheckedCreateWithoutPartInput> | PartGroupRelationCreateWithoutPartInput[] | PartGroupRelationUncheckedCreateWithoutPartInput[]
    connectOrCreate?: PartGroupRelationCreateOrConnectWithoutPartInput | PartGroupRelationCreateOrConnectWithoutPartInput[]
    createMany?: PartGroupRelationCreateManyPartInputEnvelope
    connect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
  }

  export type PartLabelCreateNestedManyWithoutPartInput = {
    create?: XOR<PartLabelCreateWithoutPartInput, PartLabelUncheckedCreateWithoutPartInput> | PartLabelCreateWithoutPartInput[] | PartLabelUncheckedCreateWithoutPartInput[]
    connectOrCreate?: PartLabelCreateOrConnectWithoutPartInput | PartLabelCreateOrConnectWithoutPartInput[]
    createMany?: PartLabelCreateManyPartInputEnvelope
    connect?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
  }

  export type StockAlertCreateNestedManyWithoutPartInput = {
    create?: XOR<StockAlertCreateWithoutPartInput, StockAlertUncheckedCreateWithoutPartInput> | StockAlertCreateWithoutPartInput[] | StockAlertUncheckedCreateWithoutPartInput[]
    connectOrCreate?: StockAlertCreateOrConnectWithoutPartInput | StockAlertCreateOrConnectWithoutPartInput[]
    createMany?: StockAlertCreateManyPartInputEnvelope
    connect?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
  }

  export type WarehouseCreateNestedOneWithoutPartsInput = {
    create?: XOR<WarehouseCreateWithoutPartsInput, WarehouseUncheckedCreateWithoutPartsInput>
    connectOrCreate?: WarehouseCreateOrConnectWithoutPartsInput
    connect?: WarehouseWhereUniqueInput
  }

  export type StorageLocationCreateNestedOneWithoutPartsInput = {
    create?: XOR<StorageLocationCreateWithoutPartsInput, StorageLocationUncheckedCreateWithoutPartsInput>
    connectOrCreate?: StorageLocationCreateOrConnectWithoutPartsInput
    connect?: StorageLocationWhereUniqueInput
  }

  export type StationCreateNestedOneWithoutPartsInput = {
    create?: XOR<StationCreateWithoutPartsInput, StationUncheckedCreateWithoutPartsInput>
    connectOrCreate?: StationCreateOrConnectWithoutPartsInput
    connect?: StationWhereUniqueInput
  }

  export type InventoryLogUncheckedCreateNestedManyWithoutPartInput = {
    create?: XOR<InventoryLogCreateWithoutPartInput, InventoryLogUncheckedCreateWithoutPartInput> | InventoryLogCreateWithoutPartInput[] | InventoryLogUncheckedCreateWithoutPartInput[]
    connectOrCreate?: InventoryLogCreateOrConnectWithoutPartInput | InventoryLogCreateOrConnectWithoutPartInput[]
    createMany?: InventoryLogCreateManyPartInputEnvelope
    connect?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
  }

  export type PartGroupRelationUncheckedCreateNestedManyWithoutPartInput = {
    create?: XOR<PartGroupRelationCreateWithoutPartInput, PartGroupRelationUncheckedCreateWithoutPartInput> | PartGroupRelationCreateWithoutPartInput[] | PartGroupRelationUncheckedCreateWithoutPartInput[]
    connectOrCreate?: PartGroupRelationCreateOrConnectWithoutPartInput | PartGroupRelationCreateOrConnectWithoutPartInput[]
    createMany?: PartGroupRelationCreateManyPartInputEnvelope
    connect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
  }

  export type PartLabelUncheckedCreateNestedManyWithoutPartInput = {
    create?: XOR<PartLabelCreateWithoutPartInput, PartLabelUncheckedCreateWithoutPartInput> | PartLabelCreateWithoutPartInput[] | PartLabelUncheckedCreateWithoutPartInput[]
    connectOrCreate?: PartLabelCreateOrConnectWithoutPartInput | PartLabelCreateOrConnectWithoutPartInput[]
    createMany?: PartLabelCreateManyPartInputEnvelope
    connect?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
  }

  export type StockAlertUncheckedCreateNestedManyWithoutPartInput = {
    create?: XOR<StockAlertCreateWithoutPartInput, StockAlertUncheckedCreateWithoutPartInput> | StockAlertCreateWithoutPartInput[] | StockAlertUncheckedCreateWithoutPartInput[]
    connectOrCreate?: StockAlertCreateOrConnectWithoutPartInput | StockAlertCreateOrConnectWithoutPartInput[]
    createMany?: StockAlertCreateManyPartInputEnvelope
    connect?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
  }

  export type EnumPartStatusFieldUpdateOperationsInput = {
    set?: $Enums.PartStatus
  }

  export type InventoryLogUpdateManyWithoutPartNestedInput = {
    create?: XOR<InventoryLogCreateWithoutPartInput, InventoryLogUncheckedCreateWithoutPartInput> | InventoryLogCreateWithoutPartInput[] | InventoryLogUncheckedCreateWithoutPartInput[]
    connectOrCreate?: InventoryLogCreateOrConnectWithoutPartInput | InventoryLogCreateOrConnectWithoutPartInput[]
    upsert?: InventoryLogUpsertWithWhereUniqueWithoutPartInput | InventoryLogUpsertWithWhereUniqueWithoutPartInput[]
    createMany?: InventoryLogCreateManyPartInputEnvelope
    set?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
    disconnect?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
    delete?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
    connect?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
    update?: InventoryLogUpdateWithWhereUniqueWithoutPartInput | InventoryLogUpdateWithWhereUniqueWithoutPartInput[]
    updateMany?: InventoryLogUpdateManyWithWhereWithoutPartInput | InventoryLogUpdateManyWithWhereWithoutPartInput[]
    deleteMany?: InventoryLogScalarWhereInput | InventoryLogScalarWhereInput[]
  }

  export type PartGroupRelationUpdateManyWithoutPartNestedInput = {
    create?: XOR<PartGroupRelationCreateWithoutPartInput, PartGroupRelationUncheckedCreateWithoutPartInput> | PartGroupRelationCreateWithoutPartInput[] | PartGroupRelationUncheckedCreateWithoutPartInput[]
    connectOrCreate?: PartGroupRelationCreateOrConnectWithoutPartInput | PartGroupRelationCreateOrConnectWithoutPartInput[]
    upsert?: PartGroupRelationUpsertWithWhereUniqueWithoutPartInput | PartGroupRelationUpsertWithWhereUniqueWithoutPartInput[]
    createMany?: PartGroupRelationCreateManyPartInputEnvelope
    set?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    disconnect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    delete?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    connect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    update?: PartGroupRelationUpdateWithWhereUniqueWithoutPartInput | PartGroupRelationUpdateWithWhereUniqueWithoutPartInput[]
    updateMany?: PartGroupRelationUpdateManyWithWhereWithoutPartInput | PartGroupRelationUpdateManyWithWhereWithoutPartInput[]
    deleteMany?: PartGroupRelationScalarWhereInput | PartGroupRelationScalarWhereInput[]
  }

  export type PartLabelUpdateManyWithoutPartNestedInput = {
    create?: XOR<PartLabelCreateWithoutPartInput, PartLabelUncheckedCreateWithoutPartInput> | PartLabelCreateWithoutPartInput[] | PartLabelUncheckedCreateWithoutPartInput[]
    connectOrCreate?: PartLabelCreateOrConnectWithoutPartInput | PartLabelCreateOrConnectWithoutPartInput[]
    upsert?: PartLabelUpsertWithWhereUniqueWithoutPartInput | PartLabelUpsertWithWhereUniqueWithoutPartInput[]
    createMany?: PartLabelCreateManyPartInputEnvelope
    set?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
    disconnect?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
    delete?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
    connect?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
    update?: PartLabelUpdateWithWhereUniqueWithoutPartInput | PartLabelUpdateWithWhereUniqueWithoutPartInput[]
    updateMany?: PartLabelUpdateManyWithWhereWithoutPartInput | PartLabelUpdateManyWithWhereWithoutPartInput[]
    deleteMany?: PartLabelScalarWhereInput | PartLabelScalarWhereInput[]
  }

  export type StockAlertUpdateManyWithoutPartNestedInput = {
    create?: XOR<StockAlertCreateWithoutPartInput, StockAlertUncheckedCreateWithoutPartInput> | StockAlertCreateWithoutPartInput[] | StockAlertUncheckedCreateWithoutPartInput[]
    connectOrCreate?: StockAlertCreateOrConnectWithoutPartInput | StockAlertCreateOrConnectWithoutPartInput[]
    upsert?: StockAlertUpsertWithWhereUniqueWithoutPartInput | StockAlertUpsertWithWhereUniqueWithoutPartInput[]
    createMany?: StockAlertCreateManyPartInputEnvelope
    set?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
    disconnect?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
    delete?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
    connect?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
    update?: StockAlertUpdateWithWhereUniqueWithoutPartInput | StockAlertUpdateWithWhereUniqueWithoutPartInput[]
    updateMany?: StockAlertUpdateManyWithWhereWithoutPartInput | StockAlertUpdateManyWithWhereWithoutPartInput[]
    deleteMany?: StockAlertScalarWhereInput | StockAlertScalarWhereInput[]
  }

  export type WarehouseUpdateOneWithoutPartsNestedInput = {
    create?: XOR<WarehouseCreateWithoutPartsInput, WarehouseUncheckedCreateWithoutPartsInput>
    connectOrCreate?: WarehouseCreateOrConnectWithoutPartsInput
    upsert?: WarehouseUpsertWithoutPartsInput
    disconnect?: WarehouseWhereInput | boolean
    delete?: WarehouseWhereInput | boolean
    connect?: WarehouseWhereUniqueInput
    update?: XOR<XOR<WarehouseUpdateToOneWithWhereWithoutPartsInput, WarehouseUpdateWithoutPartsInput>, WarehouseUncheckedUpdateWithoutPartsInput>
  }

  export type StorageLocationUpdateOneWithoutPartsNestedInput = {
    create?: XOR<StorageLocationCreateWithoutPartsInput, StorageLocationUncheckedCreateWithoutPartsInput>
    connectOrCreate?: StorageLocationCreateOrConnectWithoutPartsInput
    upsert?: StorageLocationUpsertWithoutPartsInput
    disconnect?: StorageLocationWhereInput | boolean
    delete?: StorageLocationWhereInput | boolean
    connect?: StorageLocationWhereUniqueInput
    update?: XOR<XOR<StorageLocationUpdateToOneWithWhereWithoutPartsInput, StorageLocationUpdateWithoutPartsInput>, StorageLocationUncheckedUpdateWithoutPartsInput>
  }

  export type StationUpdateOneWithoutPartsNestedInput = {
    create?: XOR<StationCreateWithoutPartsInput, StationUncheckedCreateWithoutPartsInput>
    connectOrCreate?: StationCreateOrConnectWithoutPartsInput
    upsert?: StationUpsertWithoutPartsInput
    disconnect?: StationWhereInput | boolean
    delete?: StationWhereInput | boolean
    connect?: StationWhereUniqueInput
    update?: XOR<XOR<StationUpdateToOneWithWhereWithoutPartsInput, StationUpdateWithoutPartsInput>, StationUncheckedUpdateWithoutPartsInput>
  }

  export type InventoryLogUncheckedUpdateManyWithoutPartNestedInput = {
    create?: XOR<InventoryLogCreateWithoutPartInput, InventoryLogUncheckedCreateWithoutPartInput> | InventoryLogCreateWithoutPartInput[] | InventoryLogUncheckedCreateWithoutPartInput[]
    connectOrCreate?: InventoryLogCreateOrConnectWithoutPartInput | InventoryLogCreateOrConnectWithoutPartInput[]
    upsert?: InventoryLogUpsertWithWhereUniqueWithoutPartInput | InventoryLogUpsertWithWhereUniqueWithoutPartInput[]
    createMany?: InventoryLogCreateManyPartInputEnvelope
    set?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
    disconnect?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
    delete?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
    connect?: InventoryLogWhereUniqueInput | InventoryLogWhereUniqueInput[]
    update?: InventoryLogUpdateWithWhereUniqueWithoutPartInput | InventoryLogUpdateWithWhereUniqueWithoutPartInput[]
    updateMany?: InventoryLogUpdateManyWithWhereWithoutPartInput | InventoryLogUpdateManyWithWhereWithoutPartInput[]
    deleteMany?: InventoryLogScalarWhereInput | InventoryLogScalarWhereInput[]
  }

  export type PartGroupRelationUncheckedUpdateManyWithoutPartNestedInput = {
    create?: XOR<PartGroupRelationCreateWithoutPartInput, PartGroupRelationUncheckedCreateWithoutPartInput> | PartGroupRelationCreateWithoutPartInput[] | PartGroupRelationUncheckedCreateWithoutPartInput[]
    connectOrCreate?: PartGroupRelationCreateOrConnectWithoutPartInput | PartGroupRelationCreateOrConnectWithoutPartInput[]
    upsert?: PartGroupRelationUpsertWithWhereUniqueWithoutPartInput | PartGroupRelationUpsertWithWhereUniqueWithoutPartInput[]
    createMany?: PartGroupRelationCreateManyPartInputEnvelope
    set?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    disconnect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    delete?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    connect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    update?: PartGroupRelationUpdateWithWhereUniqueWithoutPartInput | PartGroupRelationUpdateWithWhereUniqueWithoutPartInput[]
    updateMany?: PartGroupRelationUpdateManyWithWhereWithoutPartInput | PartGroupRelationUpdateManyWithWhereWithoutPartInput[]
    deleteMany?: PartGroupRelationScalarWhereInput | PartGroupRelationScalarWhereInput[]
  }

  export type PartLabelUncheckedUpdateManyWithoutPartNestedInput = {
    create?: XOR<PartLabelCreateWithoutPartInput, PartLabelUncheckedCreateWithoutPartInput> | PartLabelCreateWithoutPartInput[] | PartLabelUncheckedCreateWithoutPartInput[]
    connectOrCreate?: PartLabelCreateOrConnectWithoutPartInput | PartLabelCreateOrConnectWithoutPartInput[]
    upsert?: PartLabelUpsertWithWhereUniqueWithoutPartInput | PartLabelUpsertWithWhereUniqueWithoutPartInput[]
    createMany?: PartLabelCreateManyPartInputEnvelope
    set?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
    disconnect?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
    delete?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
    connect?: PartLabelWhereUniqueInput | PartLabelWhereUniqueInput[]
    update?: PartLabelUpdateWithWhereUniqueWithoutPartInput | PartLabelUpdateWithWhereUniqueWithoutPartInput[]
    updateMany?: PartLabelUpdateManyWithWhereWithoutPartInput | PartLabelUpdateManyWithWhereWithoutPartInput[]
    deleteMany?: PartLabelScalarWhereInput | PartLabelScalarWhereInput[]
  }

  export type StockAlertUncheckedUpdateManyWithoutPartNestedInput = {
    create?: XOR<StockAlertCreateWithoutPartInput, StockAlertUncheckedCreateWithoutPartInput> | StockAlertCreateWithoutPartInput[] | StockAlertUncheckedCreateWithoutPartInput[]
    connectOrCreate?: StockAlertCreateOrConnectWithoutPartInput | StockAlertCreateOrConnectWithoutPartInput[]
    upsert?: StockAlertUpsertWithWhereUniqueWithoutPartInput | StockAlertUpsertWithWhereUniqueWithoutPartInput[]
    createMany?: StockAlertCreateManyPartInputEnvelope
    set?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
    disconnect?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
    delete?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
    connect?: StockAlertWhereUniqueInput | StockAlertWhereUniqueInput[]
    update?: StockAlertUpdateWithWhereUniqueWithoutPartInput | StockAlertUpdateWithWhereUniqueWithoutPartInput[]
    updateMany?: StockAlertUpdateManyWithWhereWithoutPartInput | StockAlertUpdateManyWithWhereWithoutPartInput[]
    deleteMany?: StockAlertScalarWhereInput | StockAlertScalarWhereInput[]
  }

  export type PartCreateNestedManyWithoutStationRefInput = {
    create?: XOR<PartCreateWithoutStationRefInput, PartUncheckedCreateWithoutStationRefInput> | PartCreateWithoutStationRefInput[] | PartUncheckedCreateWithoutStationRefInput[]
    connectOrCreate?: PartCreateOrConnectWithoutStationRefInput | PartCreateOrConnectWithoutStationRefInput[]
    createMany?: PartCreateManyStationRefInputEnvelope
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
  }

  export type PartUncheckedCreateNestedManyWithoutStationRefInput = {
    create?: XOR<PartCreateWithoutStationRefInput, PartUncheckedCreateWithoutStationRefInput> | PartCreateWithoutStationRefInput[] | PartUncheckedCreateWithoutStationRefInput[]
    connectOrCreate?: PartCreateOrConnectWithoutStationRefInput | PartCreateOrConnectWithoutStationRefInput[]
    createMany?: PartCreateManyStationRefInputEnvelope
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
  }

  export type EnumStationStatusFieldUpdateOperationsInput = {
    set?: $Enums.StationStatus
  }

  export type PartUpdateManyWithoutStationRefNestedInput = {
    create?: XOR<PartCreateWithoutStationRefInput, PartUncheckedCreateWithoutStationRefInput> | PartCreateWithoutStationRefInput[] | PartUncheckedCreateWithoutStationRefInput[]
    connectOrCreate?: PartCreateOrConnectWithoutStationRefInput | PartCreateOrConnectWithoutStationRefInput[]
    upsert?: PartUpsertWithWhereUniqueWithoutStationRefInput | PartUpsertWithWhereUniqueWithoutStationRefInput[]
    createMany?: PartCreateManyStationRefInputEnvelope
    set?: PartWhereUniqueInput | PartWhereUniqueInput[]
    disconnect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    delete?: PartWhereUniqueInput | PartWhereUniqueInput[]
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    update?: PartUpdateWithWhereUniqueWithoutStationRefInput | PartUpdateWithWhereUniqueWithoutStationRefInput[]
    updateMany?: PartUpdateManyWithWhereWithoutStationRefInput | PartUpdateManyWithWhereWithoutStationRefInput[]
    deleteMany?: PartScalarWhereInput | PartScalarWhereInput[]
  }

  export type PartUncheckedUpdateManyWithoutStationRefNestedInput = {
    create?: XOR<PartCreateWithoutStationRefInput, PartUncheckedCreateWithoutStationRefInput> | PartCreateWithoutStationRefInput[] | PartUncheckedCreateWithoutStationRefInput[]
    connectOrCreate?: PartCreateOrConnectWithoutStationRefInput | PartCreateOrConnectWithoutStationRefInput[]
    upsert?: PartUpsertWithWhereUniqueWithoutStationRefInput | PartUpsertWithWhereUniqueWithoutStationRefInput[]
    createMany?: PartCreateManyStationRefInputEnvelope
    set?: PartWhereUniqueInput | PartWhereUniqueInput[]
    disconnect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    delete?: PartWhereUniqueInput | PartWhereUniqueInput[]
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    update?: PartUpdateWithWhereUniqueWithoutStationRefInput | PartUpdateWithWhereUniqueWithoutStationRefInput[]
    updateMany?: PartUpdateManyWithWhereWithoutStationRefInput | PartUpdateManyWithWhereWithoutStationRefInput[]
    deleteMany?: PartScalarWhereInput | PartScalarWhereInput[]
  }

  export type StorageLocationCreateNestedManyWithoutWarehouseInput = {
    create?: XOR<StorageLocationCreateWithoutWarehouseInput, StorageLocationUncheckedCreateWithoutWarehouseInput> | StorageLocationCreateWithoutWarehouseInput[] | StorageLocationUncheckedCreateWithoutWarehouseInput[]
    connectOrCreate?: StorageLocationCreateOrConnectWithoutWarehouseInput | StorageLocationCreateOrConnectWithoutWarehouseInput[]
    createMany?: StorageLocationCreateManyWarehouseInputEnvelope
    connect?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
  }

  export type PartCreateNestedManyWithoutWarehouseInput = {
    create?: XOR<PartCreateWithoutWarehouseInput, PartUncheckedCreateWithoutWarehouseInput> | PartCreateWithoutWarehouseInput[] | PartUncheckedCreateWithoutWarehouseInput[]
    connectOrCreate?: PartCreateOrConnectWithoutWarehouseInput | PartCreateOrConnectWithoutWarehouseInput[]
    createMany?: PartCreateManyWarehouseInputEnvelope
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
  }

  export type StorageLocationUncheckedCreateNestedManyWithoutWarehouseInput = {
    create?: XOR<StorageLocationCreateWithoutWarehouseInput, StorageLocationUncheckedCreateWithoutWarehouseInput> | StorageLocationCreateWithoutWarehouseInput[] | StorageLocationUncheckedCreateWithoutWarehouseInput[]
    connectOrCreate?: StorageLocationCreateOrConnectWithoutWarehouseInput | StorageLocationCreateOrConnectWithoutWarehouseInput[]
    createMany?: StorageLocationCreateManyWarehouseInputEnvelope
    connect?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
  }

  export type PartUncheckedCreateNestedManyWithoutWarehouseInput = {
    create?: XOR<PartCreateWithoutWarehouseInput, PartUncheckedCreateWithoutWarehouseInput> | PartCreateWithoutWarehouseInput[] | PartUncheckedCreateWithoutWarehouseInput[]
    connectOrCreate?: PartCreateOrConnectWithoutWarehouseInput | PartCreateOrConnectWithoutWarehouseInput[]
    createMany?: PartCreateManyWarehouseInputEnvelope
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
  }

  export type EnumWarehouseStatusFieldUpdateOperationsInput = {
    set?: $Enums.WarehouseStatus
  }

  export type StorageLocationUpdateManyWithoutWarehouseNestedInput = {
    create?: XOR<StorageLocationCreateWithoutWarehouseInput, StorageLocationUncheckedCreateWithoutWarehouseInput> | StorageLocationCreateWithoutWarehouseInput[] | StorageLocationUncheckedCreateWithoutWarehouseInput[]
    connectOrCreate?: StorageLocationCreateOrConnectWithoutWarehouseInput | StorageLocationCreateOrConnectWithoutWarehouseInput[]
    upsert?: StorageLocationUpsertWithWhereUniqueWithoutWarehouseInput | StorageLocationUpsertWithWhereUniqueWithoutWarehouseInput[]
    createMany?: StorageLocationCreateManyWarehouseInputEnvelope
    set?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
    disconnect?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
    delete?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
    connect?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
    update?: StorageLocationUpdateWithWhereUniqueWithoutWarehouseInput | StorageLocationUpdateWithWhereUniqueWithoutWarehouseInput[]
    updateMany?: StorageLocationUpdateManyWithWhereWithoutWarehouseInput | StorageLocationUpdateManyWithWhereWithoutWarehouseInput[]
    deleteMany?: StorageLocationScalarWhereInput | StorageLocationScalarWhereInput[]
  }

  export type PartUpdateManyWithoutWarehouseNestedInput = {
    create?: XOR<PartCreateWithoutWarehouseInput, PartUncheckedCreateWithoutWarehouseInput> | PartCreateWithoutWarehouseInput[] | PartUncheckedCreateWithoutWarehouseInput[]
    connectOrCreate?: PartCreateOrConnectWithoutWarehouseInput | PartCreateOrConnectWithoutWarehouseInput[]
    upsert?: PartUpsertWithWhereUniqueWithoutWarehouseInput | PartUpsertWithWhereUniqueWithoutWarehouseInput[]
    createMany?: PartCreateManyWarehouseInputEnvelope
    set?: PartWhereUniqueInput | PartWhereUniqueInput[]
    disconnect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    delete?: PartWhereUniqueInput | PartWhereUniqueInput[]
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    update?: PartUpdateWithWhereUniqueWithoutWarehouseInput | PartUpdateWithWhereUniqueWithoutWarehouseInput[]
    updateMany?: PartUpdateManyWithWhereWithoutWarehouseInput | PartUpdateManyWithWhereWithoutWarehouseInput[]
    deleteMany?: PartScalarWhereInput | PartScalarWhereInput[]
  }

  export type StorageLocationUncheckedUpdateManyWithoutWarehouseNestedInput = {
    create?: XOR<StorageLocationCreateWithoutWarehouseInput, StorageLocationUncheckedCreateWithoutWarehouseInput> | StorageLocationCreateWithoutWarehouseInput[] | StorageLocationUncheckedCreateWithoutWarehouseInput[]
    connectOrCreate?: StorageLocationCreateOrConnectWithoutWarehouseInput | StorageLocationCreateOrConnectWithoutWarehouseInput[]
    upsert?: StorageLocationUpsertWithWhereUniqueWithoutWarehouseInput | StorageLocationUpsertWithWhereUniqueWithoutWarehouseInput[]
    createMany?: StorageLocationCreateManyWarehouseInputEnvelope
    set?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
    disconnect?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
    delete?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
    connect?: StorageLocationWhereUniqueInput | StorageLocationWhereUniqueInput[]
    update?: StorageLocationUpdateWithWhereUniqueWithoutWarehouseInput | StorageLocationUpdateWithWhereUniqueWithoutWarehouseInput[]
    updateMany?: StorageLocationUpdateManyWithWhereWithoutWarehouseInput | StorageLocationUpdateManyWithWhereWithoutWarehouseInput[]
    deleteMany?: StorageLocationScalarWhereInput | StorageLocationScalarWhereInput[]
  }

  export type PartUncheckedUpdateManyWithoutWarehouseNestedInput = {
    create?: XOR<PartCreateWithoutWarehouseInput, PartUncheckedCreateWithoutWarehouseInput> | PartCreateWithoutWarehouseInput[] | PartUncheckedCreateWithoutWarehouseInput[]
    connectOrCreate?: PartCreateOrConnectWithoutWarehouseInput | PartCreateOrConnectWithoutWarehouseInput[]
    upsert?: PartUpsertWithWhereUniqueWithoutWarehouseInput | PartUpsertWithWhereUniqueWithoutWarehouseInput[]
    createMany?: PartCreateManyWarehouseInputEnvelope
    set?: PartWhereUniqueInput | PartWhereUniqueInput[]
    disconnect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    delete?: PartWhereUniqueInput | PartWhereUniqueInput[]
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    update?: PartUpdateWithWhereUniqueWithoutWarehouseInput | PartUpdateWithWhereUniqueWithoutWarehouseInput[]
    updateMany?: PartUpdateManyWithWhereWithoutWarehouseInput | PartUpdateManyWithWhereWithoutWarehouseInput[]
    deleteMany?: PartScalarWhereInput | PartScalarWhereInput[]
  }

  export type WarehouseCreateNestedOneWithoutStorageLocationsInput = {
    create?: XOR<WarehouseCreateWithoutStorageLocationsInput, WarehouseUncheckedCreateWithoutStorageLocationsInput>
    connectOrCreate?: WarehouseCreateOrConnectWithoutStorageLocationsInput
    connect?: WarehouseWhereUniqueInput
  }

  export type PartCreateNestedManyWithoutStorageLocationInput = {
    create?: XOR<PartCreateWithoutStorageLocationInput, PartUncheckedCreateWithoutStorageLocationInput> | PartCreateWithoutStorageLocationInput[] | PartUncheckedCreateWithoutStorageLocationInput[]
    connectOrCreate?: PartCreateOrConnectWithoutStorageLocationInput | PartCreateOrConnectWithoutStorageLocationInput[]
    createMany?: PartCreateManyStorageLocationInputEnvelope
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
  }

  export type PartUncheckedCreateNestedManyWithoutStorageLocationInput = {
    create?: XOR<PartCreateWithoutStorageLocationInput, PartUncheckedCreateWithoutStorageLocationInput> | PartCreateWithoutStorageLocationInput[] | PartUncheckedCreateWithoutStorageLocationInput[]
    connectOrCreate?: PartCreateOrConnectWithoutStorageLocationInput | PartCreateOrConnectWithoutStorageLocationInput[]
    createMany?: PartCreateManyStorageLocationInputEnvelope
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
  }

  export type EnumStorageLocationStatusFieldUpdateOperationsInput = {
    set?: $Enums.StorageLocationStatus
  }

  export type WarehouseUpdateOneRequiredWithoutStorageLocationsNestedInput = {
    create?: XOR<WarehouseCreateWithoutStorageLocationsInput, WarehouseUncheckedCreateWithoutStorageLocationsInput>
    connectOrCreate?: WarehouseCreateOrConnectWithoutStorageLocationsInput
    upsert?: WarehouseUpsertWithoutStorageLocationsInput
    connect?: WarehouseWhereUniqueInput
    update?: XOR<XOR<WarehouseUpdateToOneWithWhereWithoutStorageLocationsInput, WarehouseUpdateWithoutStorageLocationsInput>, WarehouseUncheckedUpdateWithoutStorageLocationsInput>
  }

  export type PartUpdateManyWithoutStorageLocationNestedInput = {
    create?: XOR<PartCreateWithoutStorageLocationInput, PartUncheckedCreateWithoutStorageLocationInput> | PartCreateWithoutStorageLocationInput[] | PartUncheckedCreateWithoutStorageLocationInput[]
    connectOrCreate?: PartCreateOrConnectWithoutStorageLocationInput | PartCreateOrConnectWithoutStorageLocationInput[]
    upsert?: PartUpsertWithWhereUniqueWithoutStorageLocationInput | PartUpsertWithWhereUniqueWithoutStorageLocationInput[]
    createMany?: PartCreateManyStorageLocationInputEnvelope
    set?: PartWhereUniqueInput | PartWhereUniqueInput[]
    disconnect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    delete?: PartWhereUniqueInput | PartWhereUniqueInput[]
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    update?: PartUpdateWithWhereUniqueWithoutStorageLocationInput | PartUpdateWithWhereUniqueWithoutStorageLocationInput[]
    updateMany?: PartUpdateManyWithWhereWithoutStorageLocationInput | PartUpdateManyWithWhereWithoutStorageLocationInput[]
    deleteMany?: PartScalarWhereInput | PartScalarWhereInput[]
  }

  export type PartUncheckedUpdateManyWithoutStorageLocationNestedInput = {
    create?: XOR<PartCreateWithoutStorageLocationInput, PartUncheckedCreateWithoutStorageLocationInput> | PartCreateWithoutStorageLocationInput[] | PartUncheckedCreateWithoutStorageLocationInput[]
    connectOrCreate?: PartCreateOrConnectWithoutStorageLocationInput | PartCreateOrConnectWithoutStorageLocationInput[]
    upsert?: PartUpsertWithWhereUniqueWithoutStorageLocationInput | PartUpsertWithWhereUniqueWithoutStorageLocationInput[]
    createMany?: PartCreateManyStorageLocationInputEnvelope
    set?: PartWhereUniqueInput | PartWhereUniqueInput[]
    disconnect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    delete?: PartWhereUniqueInput | PartWhereUniqueInput[]
    connect?: PartWhereUniqueInput | PartWhereUniqueInput[]
    update?: PartUpdateWithWhereUniqueWithoutStorageLocationInput | PartUpdateWithWhereUniqueWithoutStorageLocationInput[]
    updateMany?: PartUpdateManyWithWhereWithoutStorageLocationInput | PartUpdateManyWithWhereWithoutStorageLocationInput[]
    deleteMany?: PartScalarWhereInput | PartScalarWhereInput[]
  }

  export type PartCreateNestedOneWithoutLabelsInput = {
    create?: XOR<PartCreateWithoutLabelsInput, PartUncheckedCreateWithoutLabelsInput>
    connectOrCreate?: PartCreateOrConnectWithoutLabelsInput
    connect?: PartWhereUniqueInput
  }

  export type EnumLabelStatusFieldUpdateOperationsInput = {
    set?: $Enums.LabelStatus
  }

  export type PartUpdateOneRequiredWithoutLabelsNestedInput = {
    create?: XOR<PartCreateWithoutLabelsInput, PartUncheckedCreateWithoutLabelsInput>
    connectOrCreate?: PartCreateOrConnectWithoutLabelsInput
    upsert?: PartUpsertWithoutLabelsInput
    connect?: PartWhereUniqueInput
    update?: XOR<XOR<PartUpdateToOneWithWhereWithoutLabelsInput, PartUpdateWithoutLabelsInput>, PartUncheckedUpdateWithoutLabelsInput>
  }

  export type PartCreateNestedOneWithoutInventoryLogsInput = {
    create?: XOR<PartCreateWithoutInventoryLogsInput, PartUncheckedCreateWithoutInventoryLogsInput>
    connectOrCreate?: PartCreateOrConnectWithoutInventoryLogsInput
    connect?: PartWhereUniqueInput
  }

  export type EnumInventoryOperationTypeFieldUpdateOperationsInput = {
    set?: $Enums.InventoryOperationType
  }

  export type PartUpdateOneRequiredWithoutInventoryLogsNestedInput = {
    create?: XOR<PartCreateWithoutInventoryLogsInput, PartUncheckedCreateWithoutInventoryLogsInput>
    connectOrCreate?: PartCreateOrConnectWithoutInventoryLogsInput
    upsert?: PartUpsertWithoutInventoryLogsInput
    connect?: PartWhereUniqueInput
    update?: XOR<XOR<PartUpdateToOneWithWhereWithoutInventoryLogsInput, PartUpdateWithoutInventoryLogsInput>, PartUncheckedUpdateWithoutInventoryLogsInput>
  }

  export type PartCreateNestedOneWithoutStockAlertsInput = {
    create?: XOR<PartCreateWithoutStockAlertsInput, PartUncheckedCreateWithoutStockAlertsInput>
    connectOrCreate?: PartCreateOrConnectWithoutStockAlertsInput
    connect?: PartWhereUniqueInput
  }

  export type EnumStockAlertTypeFieldUpdateOperationsInput = {
    set?: $Enums.StockAlertType
  }

  export type EnumAlertSeverityFieldUpdateOperationsInput = {
    set?: $Enums.AlertSeverity
  }

  export type EnumAlertStatusFieldUpdateOperationsInput = {
    set?: $Enums.AlertStatus
  }

  export type PartUpdateOneRequiredWithoutStockAlertsNestedInput = {
    create?: XOR<PartCreateWithoutStockAlertsInput, PartUncheckedCreateWithoutStockAlertsInput>
    connectOrCreate?: PartCreateOrConnectWithoutStockAlertsInput
    upsert?: PartUpsertWithoutStockAlertsInput
    connect?: PartWhereUniqueInput
    update?: XOR<XOR<PartUpdateToOneWithWhereWithoutStockAlertsInput, PartUpdateWithoutStockAlertsInput>, PartUncheckedUpdateWithoutStockAlertsInput>
  }

  export type EnumImportStatusFieldUpdateOperationsInput = {
    set?: $Enums.ImportStatus
  }

  export type GroupCustomFieldCreateNestedManyWithoutGroupInput = {
    create?: XOR<GroupCustomFieldCreateWithoutGroupInput, GroupCustomFieldUncheckedCreateWithoutGroupInput> | GroupCustomFieldCreateWithoutGroupInput[] | GroupCustomFieldUncheckedCreateWithoutGroupInput[]
    connectOrCreate?: GroupCustomFieldCreateOrConnectWithoutGroupInput | GroupCustomFieldCreateOrConnectWithoutGroupInput[]
    createMany?: GroupCustomFieldCreateManyGroupInputEnvelope
    connect?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
  }

  export type PartGroupRelationCreateNestedManyWithoutGroupInput = {
    create?: XOR<PartGroupRelationCreateWithoutGroupInput, PartGroupRelationUncheckedCreateWithoutGroupInput> | PartGroupRelationCreateWithoutGroupInput[] | PartGroupRelationUncheckedCreateWithoutGroupInput[]
    connectOrCreate?: PartGroupRelationCreateOrConnectWithoutGroupInput | PartGroupRelationCreateOrConnectWithoutGroupInput[]
    createMany?: PartGroupRelationCreateManyGroupInputEnvelope
    connect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
  }

  export type GroupCustomFieldUncheckedCreateNestedManyWithoutGroupInput = {
    create?: XOR<GroupCustomFieldCreateWithoutGroupInput, GroupCustomFieldUncheckedCreateWithoutGroupInput> | GroupCustomFieldCreateWithoutGroupInput[] | GroupCustomFieldUncheckedCreateWithoutGroupInput[]
    connectOrCreate?: GroupCustomFieldCreateOrConnectWithoutGroupInput | GroupCustomFieldCreateOrConnectWithoutGroupInput[]
    createMany?: GroupCustomFieldCreateManyGroupInputEnvelope
    connect?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
  }

  export type PartGroupRelationUncheckedCreateNestedManyWithoutGroupInput = {
    create?: XOR<PartGroupRelationCreateWithoutGroupInput, PartGroupRelationUncheckedCreateWithoutGroupInput> | PartGroupRelationCreateWithoutGroupInput[] | PartGroupRelationUncheckedCreateWithoutGroupInput[]
    connectOrCreate?: PartGroupRelationCreateOrConnectWithoutGroupInput | PartGroupRelationCreateOrConnectWithoutGroupInput[]
    createMany?: PartGroupRelationCreateManyGroupInputEnvelope
    connect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
  }

  export type GroupCustomFieldUpdateManyWithoutGroupNestedInput = {
    create?: XOR<GroupCustomFieldCreateWithoutGroupInput, GroupCustomFieldUncheckedCreateWithoutGroupInput> | GroupCustomFieldCreateWithoutGroupInput[] | GroupCustomFieldUncheckedCreateWithoutGroupInput[]
    connectOrCreate?: GroupCustomFieldCreateOrConnectWithoutGroupInput | GroupCustomFieldCreateOrConnectWithoutGroupInput[]
    upsert?: GroupCustomFieldUpsertWithWhereUniqueWithoutGroupInput | GroupCustomFieldUpsertWithWhereUniqueWithoutGroupInput[]
    createMany?: GroupCustomFieldCreateManyGroupInputEnvelope
    set?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
    disconnect?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
    delete?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
    connect?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
    update?: GroupCustomFieldUpdateWithWhereUniqueWithoutGroupInput | GroupCustomFieldUpdateWithWhereUniqueWithoutGroupInput[]
    updateMany?: GroupCustomFieldUpdateManyWithWhereWithoutGroupInput | GroupCustomFieldUpdateManyWithWhereWithoutGroupInput[]
    deleteMany?: GroupCustomFieldScalarWhereInput | GroupCustomFieldScalarWhereInput[]
  }

  export type PartGroupRelationUpdateManyWithoutGroupNestedInput = {
    create?: XOR<PartGroupRelationCreateWithoutGroupInput, PartGroupRelationUncheckedCreateWithoutGroupInput> | PartGroupRelationCreateWithoutGroupInput[] | PartGroupRelationUncheckedCreateWithoutGroupInput[]
    connectOrCreate?: PartGroupRelationCreateOrConnectWithoutGroupInput | PartGroupRelationCreateOrConnectWithoutGroupInput[]
    upsert?: PartGroupRelationUpsertWithWhereUniqueWithoutGroupInput | PartGroupRelationUpsertWithWhereUniqueWithoutGroupInput[]
    createMany?: PartGroupRelationCreateManyGroupInputEnvelope
    set?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    disconnect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    delete?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    connect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    update?: PartGroupRelationUpdateWithWhereUniqueWithoutGroupInput | PartGroupRelationUpdateWithWhereUniqueWithoutGroupInput[]
    updateMany?: PartGroupRelationUpdateManyWithWhereWithoutGroupInput | PartGroupRelationUpdateManyWithWhereWithoutGroupInput[]
    deleteMany?: PartGroupRelationScalarWhereInput | PartGroupRelationScalarWhereInput[]
  }

  export type GroupCustomFieldUncheckedUpdateManyWithoutGroupNestedInput = {
    create?: XOR<GroupCustomFieldCreateWithoutGroupInput, GroupCustomFieldUncheckedCreateWithoutGroupInput> | GroupCustomFieldCreateWithoutGroupInput[] | GroupCustomFieldUncheckedCreateWithoutGroupInput[]
    connectOrCreate?: GroupCustomFieldCreateOrConnectWithoutGroupInput | GroupCustomFieldCreateOrConnectWithoutGroupInput[]
    upsert?: GroupCustomFieldUpsertWithWhereUniqueWithoutGroupInput | GroupCustomFieldUpsertWithWhereUniqueWithoutGroupInput[]
    createMany?: GroupCustomFieldCreateManyGroupInputEnvelope
    set?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
    disconnect?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
    delete?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
    connect?: GroupCustomFieldWhereUniqueInput | GroupCustomFieldWhereUniqueInput[]
    update?: GroupCustomFieldUpdateWithWhereUniqueWithoutGroupInput | GroupCustomFieldUpdateWithWhereUniqueWithoutGroupInput[]
    updateMany?: GroupCustomFieldUpdateManyWithWhereWithoutGroupInput | GroupCustomFieldUpdateManyWithWhereWithoutGroupInput[]
    deleteMany?: GroupCustomFieldScalarWhereInput | GroupCustomFieldScalarWhereInput[]
  }

  export type PartGroupRelationUncheckedUpdateManyWithoutGroupNestedInput = {
    create?: XOR<PartGroupRelationCreateWithoutGroupInput, PartGroupRelationUncheckedCreateWithoutGroupInput> | PartGroupRelationCreateWithoutGroupInput[] | PartGroupRelationUncheckedCreateWithoutGroupInput[]
    connectOrCreate?: PartGroupRelationCreateOrConnectWithoutGroupInput | PartGroupRelationCreateOrConnectWithoutGroupInput[]
    upsert?: PartGroupRelationUpsertWithWhereUniqueWithoutGroupInput | PartGroupRelationUpsertWithWhereUniqueWithoutGroupInput[]
    createMany?: PartGroupRelationCreateManyGroupInputEnvelope
    set?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    disconnect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    delete?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    connect?: PartGroupRelationWhereUniqueInput | PartGroupRelationWhereUniqueInput[]
    update?: PartGroupRelationUpdateWithWhereUniqueWithoutGroupInput | PartGroupRelationUpdateWithWhereUniqueWithoutGroupInput[]
    updateMany?: PartGroupRelationUpdateManyWithWhereWithoutGroupInput | PartGroupRelationUpdateManyWithWhereWithoutGroupInput[]
    deleteMany?: PartGroupRelationScalarWhereInput | PartGroupRelationScalarWhereInput[]
  }

  export type PartGroupCreateNestedOneWithoutCustomFieldsInput = {
    create?: XOR<PartGroupCreateWithoutCustomFieldsInput, PartGroupUncheckedCreateWithoutCustomFieldsInput>
    connectOrCreate?: PartGroupCreateOrConnectWithoutCustomFieldsInput
    connect?: PartGroupWhereUniqueInput
  }

  export type EnumGroupFieldTypeFieldUpdateOperationsInput = {
    set?: $Enums.GroupFieldType
  }

  export type PartGroupUpdateOneRequiredWithoutCustomFieldsNestedInput = {
    create?: XOR<PartGroupCreateWithoutCustomFieldsInput, PartGroupUncheckedCreateWithoutCustomFieldsInput>
    connectOrCreate?: PartGroupCreateOrConnectWithoutCustomFieldsInput
    upsert?: PartGroupUpsertWithoutCustomFieldsInput
    connect?: PartGroupWhereUniqueInput
    update?: XOR<XOR<PartGroupUpdateToOneWithWhereWithoutCustomFieldsInput, PartGroupUpdateWithoutCustomFieldsInput>, PartGroupUncheckedUpdateWithoutCustomFieldsInput>
  }

  export type PartGroupCreateNestedOneWithoutPartsInput = {
    create?: XOR<PartGroupCreateWithoutPartsInput, PartGroupUncheckedCreateWithoutPartsInput>
    connectOrCreate?: PartGroupCreateOrConnectWithoutPartsInput
    connect?: PartGroupWhereUniqueInput
  }

  export type PartCreateNestedOneWithoutGroupsInput = {
    create?: XOR<PartCreateWithoutGroupsInput, PartUncheckedCreateWithoutGroupsInput>
    connectOrCreate?: PartCreateOrConnectWithoutGroupsInput
    connect?: PartWhereUniqueInput
  }

  export type PartGroupUpdateOneRequiredWithoutPartsNestedInput = {
    create?: XOR<PartGroupCreateWithoutPartsInput, PartGroupUncheckedCreateWithoutPartsInput>
    connectOrCreate?: PartGroupCreateOrConnectWithoutPartsInput
    upsert?: PartGroupUpsertWithoutPartsInput
    connect?: PartGroupWhereUniqueInput
    update?: XOR<XOR<PartGroupUpdateToOneWithWhereWithoutPartsInput, PartGroupUpdateWithoutPartsInput>, PartGroupUncheckedUpdateWithoutPartsInput>
  }

  export type PartUpdateOneRequiredWithoutGroupsNestedInput = {
    create?: XOR<PartCreateWithoutGroupsInput, PartUncheckedCreateWithoutGroupsInput>
    connectOrCreate?: PartCreateOrConnectWithoutGroupsInput
    upsert?: PartUpsertWithoutGroupsInput
    connect?: PartWhereUniqueInput
    update?: XOR<XOR<PartUpdateToOneWithWhereWithoutGroupsInput, PartUpdateWithoutGroupsInput>, PartUncheckedUpdateWithoutGroupsInput>
  }

  export type AIConversationCreatetagsInput = {
    set: string[]
  }

  export type AIMessageCreateNestedManyWithoutConversationInput = {
    create?: XOR<AIMessageCreateWithoutConversationInput, AIMessageUncheckedCreateWithoutConversationInput> | AIMessageCreateWithoutConversationInput[] | AIMessageUncheckedCreateWithoutConversationInput[]
    connectOrCreate?: AIMessageCreateOrConnectWithoutConversationInput | AIMessageCreateOrConnectWithoutConversationInput[]
    createMany?: AIMessageCreateManyConversationInputEnvelope
    connect?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
  }

  export type AIAssistantTicketCreateNestedManyWithoutConversationInput = {
    create?: XOR<AIAssistantTicketCreateWithoutConversationInput, AIAssistantTicketUncheckedCreateWithoutConversationInput> | AIAssistantTicketCreateWithoutConversationInput[] | AIAssistantTicketUncheckedCreateWithoutConversationInput[]
    connectOrCreate?: AIAssistantTicketCreateOrConnectWithoutConversationInput | AIAssistantTicketCreateOrConnectWithoutConversationInput[]
    createMany?: AIAssistantTicketCreateManyConversationInputEnvelope
    connect?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
  }

  export type AIMessageUncheckedCreateNestedManyWithoutConversationInput = {
    create?: XOR<AIMessageCreateWithoutConversationInput, AIMessageUncheckedCreateWithoutConversationInput> | AIMessageCreateWithoutConversationInput[] | AIMessageUncheckedCreateWithoutConversationInput[]
    connectOrCreate?: AIMessageCreateOrConnectWithoutConversationInput | AIMessageCreateOrConnectWithoutConversationInput[]
    createMany?: AIMessageCreateManyConversationInputEnvelope
    connect?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
  }

  export type AIAssistantTicketUncheckedCreateNestedManyWithoutConversationInput = {
    create?: XOR<AIAssistantTicketCreateWithoutConversationInput, AIAssistantTicketUncheckedCreateWithoutConversationInput> | AIAssistantTicketCreateWithoutConversationInput[] | AIAssistantTicketUncheckedCreateWithoutConversationInput[]
    connectOrCreate?: AIAssistantTicketCreateOrConnectWithoutConversationInput | AIAssistantTicketCreateOrConnectWithoutConversationInput[]
    createMany?: AIAssistantTicketCreateManyConversationInputEnvelope
    connect?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
  }

  export type EnumAIConversationStatusFieldUpdateOperationsInput = {
    set?: $Enums.AIConversationStatus
  }

  export type EnumAIConversationCategoryFieldUpdateOperationsInput = {
    set?: $Enums.AIConversationCategory
  }

  export type AIConversationUpdatetagsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type AIMessageUpdateManyWithoutConversationNestedInput = {
    create?: XOR<AIMessageCreateWithoutConversationInput, AIMessageUncheckedCreateWithoutConversationInput> | AIMessageCreateWithoutConversationInput[] | AIMessageUncheckedCreateWithoutConversationInput[]
    connectOrCreate?: AIMessageCreateOrConnectWithoutConversationInput | AIMessageCreateOrConnectWithoutConversationInput[]
    upsert?: AIMessageUpsertWithWhereUniqueWithoutConversationInput | AIMessageUpsertWithWhereUniqueWithoutConversationInput[]
    createMany?: AIMessageCreateManyConversationInputEnvelope
    set?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
    disconnect?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
    delete?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
    connect?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
    update?: AIMessageUpdateWithWhereUniqueWithoutConversationInput | AIMessageUpdateWithWhereUniqueWithoutConversationInput[]
    updateMany?: AIMessageUpdateManyWithWhereWithoutConversationInput | AIMessageUpdateManyWithWhereWithoutConversationInput[]
    deleteMany?: AIMessageScalarWhereInput | AIMessageScalarWhereInput[]
  }

  export type AIAssistantTicketUpdateManyWithoutConversationNestedInput = {
    create?: XOR<AIAssistantTicketCreateWithoutConversationInput, AIAssistantTicketUncheckedCreateWithoutConversationInput> | AIAssistantTicketCreateWithoutConversationInput[] | AIAssistantTicketUncheckedCreateWithoutConversationInput[]
    connectOrCreate?: AIAssistantTicketCreateOrConnectWithoutConversationInput | AIAssistantTicketCreateOrConnectWithoutConversationInput[]
    upsert?: AIAssistantTicketUpsertWithWhereUniqueWithoutConversationInput | AIAssistantTicketUpsertWithWhereUniqueWithoutConversationInput[]
    createMany?: AIAssistantTicketCreateManyConversationInputEnvelope
    set?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
    disconnect?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
    delete?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
    connect?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
    update?: AIAssistantTicketUpdateWithWhereUniqueWithoutConversationInput | AIAssistantTicketUpdateWithWhereUniqueWithoutConversationInput[]
    updateMany?: AIAssistantTicketUpdateManyWithWhereWithoutConversationInput | AIAssistantTicketUpdateManyWithWhereWithoutConversationInput[]
    deleteMany?: AIAssistantTicketScalarWhereInput | AIAssistantTicketScalarWhereInput[]
  }

  export type AIMessageUncheckedUpdateManyWithoutConversationNestedInput = {
    create?: XOR<AIMessageCreateWithoutConversationInput, AIMessageUncheckedCreateWithoutConversationInput> | AIMessageCreateWithoutConversationInput[] | AIMessageUncheckedCreateWithoutConversationInput[]
    connectOrCreate?: AIMessageCreateOrConnectWithoutConversationInput | AIMessageCreateOrConnectWithoutConversationInput[]
    upsert?: AIMessageUpsertWithWhereUniqueWithoutConversationInput | AIMessageUpsertWithWhereUniqueWithoutConversationInput[]
    createMany?: AIMessageCreateManyConversationInputEnvelope
    set?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
    disconnect?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
    delete?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
    connect?: AIMessageWhereUniqueInput | AIMessageWhereUniqueInput[]
    update?: AIMessageUpdateWithWhereUniqueWithoutConversationInput | AIMessageUpdateWithWhereUniqueWithoutConversationInput[]
    updateMany?: AIMessageUpdateManyWithWhereWithoutConversationInput | AIMessageUpdateManyWithWhereWithoutConversationInput[]
    deleteMany?: AIMessageScalarWhereInput | AIMessageScalarWhereInput[]
  }

  export type AIAssistantTicketUncheckedUpdateManyWithoutConversationNestedInput = {
    create?: XOR<AIAssistantTicketCreateWithoutConversationInput, AIAssistantTicketUncheckedCreateWithoutConversationInput> | AIAssistantTicketCreateWithoutConversationInput[] | AIAssistantTicketUncheckedCreateWithoutConversationInput[]
    connectOrCreate?: AIAssistantTicketCreateOrConnectWithoutConversationInput | AIAssistantTicketCreateOrConnectWithoutConversationInput[]
    upsert?: AIAssistantTicketUpsertWithWhereUniqueWithoutConversationInput | AIAssistantTicketUpsertWithWhereUniqueWithoutConversationInput[]
    createMany?: AIAssistantTicketCreateManyConversationInputEnvelope
    set?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
    disconnect?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
    delete?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
    connect?: AIAssistantTicketWhereUniqueInput | AIAssistantTicketWhereUniqueInput[]
    update?: AIAssistantTicketUpdateWithWhereUniqueWithoutConversationInput | AIAssistantTicketUpdateWithWhereUniqueWithoutConversationInput[]
    updateMany?: AIAssistantTicketUpdateManyWithWhereWithoutConversationInput | AIAssistantTicketUpdateManyWithWhereWithoutConversationInput[]
    deleteMany?: AIAssistantTicketScalarWhereInput | AIAssistantTicketScalarWhereInput[]
  }

  export type AIConversationCreateNestedOneWithoutMessagesInput = {
    create?: XOR<AIConversationCreateWithoutMessagesInput, AIConversationUncheckedCreateWithoutMessagesInput>
    connectOrCreate?: AIConversationCreateOrConnectWithoutMessagesInput
    connect?: AIConversationWhereUniqueInput
  }

  export type AIMessageFeedbackCreateNestedOneWithoutMessageInput = {
    create?: XOR<AIMessageFeedbackCreateWithoutMessageInput, AIMessageFeedbackUncheckedCreateWithoutMessageInput>
    connectOrCreate?: AIMessageFeedbackCreateOrConnectWithoutMessageInput
    connect?: AIMessageFeedbackWhereUniqueInput
  }

  export type AIKnowledgeFixCreateNestedOneWithoutMessageInput = {
    create?: XOR<AIKnowledgeFixCreateWithoutMessageInput, AIKnowledgeFixUncheckedCreateWithoutMessageInput>
    connectOrCreate?: AIKnowledgeFixCreateOrConnectWithoutMessageInput
    connect?: AIKnowledgeFixWhereUniqueInput
  }

  export type AIMessageFeedbackUncheckedCreateNestedOneWithoutMessageInput = {
    create?: XOR<AIMessageFeedbackCreateWithoutMessageInput, AIMessageFeedbackUncheckedCreateWithoutMessageInput>
    connectOrCreate?: AIMessageFeedbackCreateOrConnectWithoutMessageInput
    connect?: AIMessageFeedbackWhereUniqueInput
  }

  export type AIKnowledgeFixUncheckedCreateNestedOneWithoutMessageInput = {
    create?: XOR<AIKnowledgeFixCreateWithoutMessageInput, AIKnowledgeFixUncheckedCreateWithoutMessageInput>
    connectOrCreate?: AIKnowledgeFixCreateOrConnectWithoutMessageInput
    connect?: AIKnowledgeFixWhereUniqueInput
  }

  export type EnumAIMessageRoleFieldUpdateOperationsInput = {
    set?: $Enums.AIMessageRole
  }

  export type EnumAIMessageSourceFieldUpdateOperationsInput = {
    set?: $Enums.AIMessageSource
  }

  export type AIConversationUpdateOneRequiredWithoutMessagesNestedInput = {
    create?: XOR<AIConversationCreateWithoutMessagesInput, AIConversationUncheckedCreateWithoutMessagesInput>
    connectOrCreate?: AIConversationCreateOrConnectWithoutMessagesInput
    upsert?: AIConversationUpsertWithoutMessagesInput
    connect?: AIConversationWhereUniqueInput
    update?: XOR<XOR<AIConversationUpdateToOneWithWhereWithoutMessagesInput, AIConversationUpdateWithoutMessagesInput>, AIConversationUncheckedUpdateWithoutMessagesInput>
  }

  export type AIMessageFeedbackUpdateOneWithoutMessageNestedInput = {
    create?: XOR<AIMessageFeedbackCreateWithoutMessageInput, AIMessageFeedbackUncheckedCreateWithoutMessageInput>
    connectOrCreate?: AIMessageFeedbackCreateOrConnectWithoutMessageInput
    upsert?: AIMessageFeedbackUpsertWithoutMessageInput
    disconnect?: AIMessageFeedbackWhereInput | boolean
    delete?: AIMessageFeedbackWhereInput | boolean
    connect?: AIMessageFeedbackWhereUniqueInput
    update?: XOR<XOR<AIMessageFeedbackUpdateToOneWithWhereWithoutMessageInput, AIMessageFeedbackUpdateWithoutMessageInput>, AIMessageFeedbackUncheckedUpdateWithoutMessageInput>
  }

  export type AIKnowledgeFixUpdateOneWithoutMessageNestedInput = {
    create?: XOR<AIKnowledgeFixCreateWithoutMessageInput, AIKnowledgeFixUncheckedCreateWithoutMessageInput>
    connectOrCreate?: AIKnowledgeFixCreateOrConnectWithoutMessageInput
    upsert?: AIKnowledgeFixUpsertWithoutMessageInput
    disconnect?: AIKnowledgeFixWhereInput | boolean
    delete?: AIKnowledgeFixWhereInput | boolean
    connect?: AIKnowledgeFixWhereUniqueInput
    update?: XOR<XOR<AIKnowledgeFixUpdateToOneWithWhereWithoutMessageInput, AIKnowledgeFixUpdateWithoutMessageInput>, AIKnowledgeFixUncheckedUpdateWithoutMessageInput>
  }

  export type AIMessageFeedbackUncheckedUpdateOneWithoutMessageNestedInput = {
    create?: XOR<AIMessageFeedbackCreateWithoutMessageInput, AIMessageFeedbackUncheckedCreateWithoutMessageInput>
    connectOrCreate?: AIMessageFeedbackCreateOrConnectWithoutMessageInput
    upsert?: AIMessageFeedbackUpsertWithoutMessageInput
    disconnect?: AIMessageFeedbackWhereInput | boolean
    delete?: AIMessageFeedbackWhereInput | boolean
    connect?: AIMessageFeedbackWhereUniqueInput
    update?: XOR<XOR<AIMessageFeedbackUpdateToOneWithWhereWithoutMessageInput, AIMessageFeedbackUpdateWithoutMessageInput>, AIMessageFeedbackUncheckedUpdateWithoutMessageInput>
  }

  export type AIKnowledgeFixUncheckedUpdateOneWithoutMessageNestedInput = {
    create?: XOR<AIKnowledgeFixCreateWithoutMessageInput, AIKnowledgeFixUncheckedCreateWithoutMessageInput>
    connectOrCreate?: AIKnowledgeFixCreateOrConnectWithoutMessageInput
    upsert?: AIKnowledgeFixUpsertWithoutMessageInput
    disconnect?: AIKnowledgeFixWhereInput | boolean
    delete?: AIKnowledgeFixWhereInput | boolean
    connect?: AIKnowledgeFixWhereUniqueInput
    update?: XOR<XOR<AIKnowledgeFixUpdateToOneWithWhereWithoutMessageInput, AIKnowledgeFixUpdateWithoutMessageInput>, AIKnowledgeFixUncheckedUpdateWithoutMessageInput>
  }

  export type AIMessageCreateNestedOneWithoutFeedbackInput = {
    create?: XOR<AIMessageCreateWithoutFeedbackInput, AIMessageUncheckedCreateWithoutFeedbackInput>
    connectOrCreate?: AIMessageCreateOrConnectWithoutFeedbackInput
    connect?: AIMessageWhereUniqueInput
  }

  export type EnumAIFeedbackTypeFieldUpdateOperationsInput = {
    set?: $Enums.AIFeedbackType
  }

  export type AIMessageUpdateOneRequiredWithoutFeedbackNestedInput = {
    create?: XOR<AIMessageCreateWithoutFeedbackInput, AIMessageUncheckedCreateWithoutFeedbackInput>
    connectOrCreate?: AIMessageCreateOrConnectWithoutFeedbackInput
    upsert?: AIMessageUpsertWithoutFeedbackInput
    connect?: AIMessageWhereUniqueInput
    update?: XOR<XOR<AIMessageUpdateToOneWithWhereWithoutFeedbackInput, AIMessageUpdateWithoutFeedbackInput>, AIMessageUncheckedUpdateWithoutFeedbackInput>
  }

  export type AIConversationCreateNestedOneWithoutTicketsInput = {
    create?: XOR<AIConversationCreateWithoutTicketsInput, AIConversationUncheckedCreateWithoutTicketsInput>
    connectOrCreate?: AIConversationCreateOrConnectWithoutTicketsInput
    connect?: AIConversationWhereUniqueInput
  }

  export type EnumAITicketCategoryFieldUpdateOperationsInput = {
    set?: $Enums.AITicketCategory
  }

  export type EnumAITicketPriorityFieldUpdateOperationsInput = {
    set?: $Enums.AITicketPriority
  }

  export type EnumAITicketStatusFieldUpdateOperationsInput = {
    set?: $Enums.AITicketStatus
  }

  export type NullableEnumAIAssigneeTeamFieldUpdateOperationsInput = {
    set?: $Enums.AIAssigneeTeam | null
  }

  export type AIConversationUpdateOneRequiredWithoutTicketsNestedInput = {
    create?: XOR<AIConversationCreateWithoutTicketsInput, AIConversationUncheckedCreateWithoutTicketsInput>
    connectOrCreate?: AIConversationCreateOrConnectWithoutTicketsInput
    upsert?: AIConversationUpsertWithoutTicketsInput
    connect?: AIConversationWhereUniqueInput
    update?: XOR<XOR<AIConversationUpdateToOneWithWhereWithoutTicketsInput, AIConversationUpdateWithoutTicketsInput>, AIConversationUncheckedUpdateWithoutTicketsInput>
  }

  export type AIMessageCreateNestedOneWithoutKnowledgeFixInput = {
    create?: XOR<AIMessageCreateWithoutKnowledgeFixInput, AIMessageUncheckedCreateWithoutKnowledgeFixInput>
    connectOrCreate?: AIMessageCreateOrConnectWithoutKnowledgeFixInput
    connect?: AIMessageWhereUniqueInput
  }

  export type EnumAIKnowledgeFixStatusFieldUpdateOperationsInput = {
    set?: $Enums.AIKnowledgeFixStatus
  }

  export type AIMessageUpdateOneRequiredWithoutKnowledgeFixNestedInput = {
    create?: XOR<AIMessageCreateWithoutKnowledgeFixInput, AIMessageUncheckedCreateWithoutKnowledgeFixInput>
    connectOrCreate?: AIMessageCreateOrConnectWithoutKnowledgeFixInput
    upsert?: AIMessageUpsertWithoutKnowledgeFixInput
    connect?: AIMessageWhereUniqueInput
    update?: XOR<XOR<AIMessageUpdateToOneWithWhereWithoutKnowledgeFixInput, AIMessageUpdateWithoutKnowledgeFixInput>, AIMessageUncheckedUpdateWithoutKnowledgeFixInput>
  }

  export type FloatFieldUpdateOperationsInput = {
    set?: number
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type AgentMessageCreateNestedManyWithoutSessionInput = {
    create?: XOR<AgentMessageCreateWithoutSessionInput, AgentMessageUncheckedCreateWithoutSessionInput> | AgentMessageCreateWithoutSessionInput[] | AgentMessageUncheckedCreateWithoutSessionInput[]
    connectOrCreate?: AgentMessageCreateOrConnectWithoutSessionInput | AgentMessageCreateOrConnectWithoutSessionInput[]
    createMany?: AgentMessageCreateManySessionInputEnvelope
    connect?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
  }

  export type AgentSessionCreateNestedOneWithoutChildrenInput = {
    create?: XOR<AgentSessionCreateWithoutChildrenInput, AgentSessionUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: AgentSessionCreateOrConnectWithoutChildrenInput
    connect?: AgentSessionWhereUniqueInput
  }

  export type AgentSessionCreateNestedManyWithoutParentInput = {
    create?: XOR<AgentSessionCreateWithoutParentInput, AgentSessionUncheckedCreateWithoutParentInput> | AgentSessionCreateWithoutParentInput[] | AgentSessionUncheckedCreateWithoutParentInput[]
    connectOrCreate?: AgentSessionCreateOrConnectWithoutParentInput | AgentSessionCreateOrConnectWithoutParentInput[]
    createMany?: AgentSessionCreateManyParentInputEnvelope
    connect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
  }

  export type AgentCronCreateNestedManyWithoutSessionInput = {
    create?: XOR<AgentCronCreateWithoutSessionInput, AgentCronUncheckedCreateWithoutSessionInput> | AgentCronCreateWithoutSessionInput[] | AgentCronUncheckedCreateWithoutSessionInput[]
    connectOrCreate?: AgentCronCreateOrConnectWithoutSessionInput | AgentCronCreateOrConnectWithoutSessionInput[]
    createMany?: AgentCronCreateManySessionInputEnvelope
    connect?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
  }

  export type AgentPersonaCreateNestedOneWithoutSessionsInput = {
    create?: XOR<AgentPersonaCreateWithoutSessionsInput, AgentPersonaUncheckedCreateWithoutSessionsInput>
    connectOrCreate?: AgentPersonaCreateOrConnectWithoutSessionsInput
    connect?: AgentPersonaWhereUniqueInput
  }

  export type AgentMessageUncheckedCreateNestedManyWithoutSessionInput = {
    create?: XOR<AgentMessageCreateWithoutSessionInput, AgentMessageUncheckedCreateWithoutSessionInput> | AgentMessageCreateWithoutSessionInput[] | AgentMessageUncheckedCreateWithoutSessionInput[]
    connectOrCreate?: AgentMessageCreateOrConnectWithoutSessionInput | AgentMessageCreateOrConnectWithoutSessionInput[]
    createMany?: AgentMessageCreateManySessionInputEnvelope
    connect?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
  }

  export type AgentSessionUncheckedCreateNestedManyWithoutParentInput = {
    create?: XOR<AgentSessionCreateWithoutParentInput, AgentSessionUncheckedCreateWithoutParentInput> | AgentSessionCreateWithoutParentInput[] | AgentSessionUncheckedCreateWithoutParentInput[]
    connectOrCreate?: AgentSessionCreateOrConnectWithoutParentInput | AgentSessionCreateOrConnectWithoutParentInput[]
    createMany?: AgentSessionCreateManyParentInputEnvelope
    connect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
  }

  export type AgentCronUncheckedCreateNestedManyWithoutSessionInput = {
    create?: XOR<AgentCronCreateWithoutSessionInput, AgentCronUncheckedCreateWithoutSessionInput> | AgentCronCreateWithoutSessionInput[] | AgentCronUncheckedCreateWithoutSessionInput[]
    connectOrCreate?: AgentCronCreateOrConnectWithoutSessionInput | AgentCronCreateOrConnectWithoutSessionInput[]
    createMany?: AgentCronCreateManySessionInputEnvelope
    connect?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
  }

  export type EnumAgentSurfaceFieldUpdateOperationsInput = {
    set?: $Enums.AgentSurface
  }

  export type EnumAgentSessionStatusFieldUpdateOperationsInput = {
    set?: $Enums.AgentSessionStatus
  }

  export type EnumAgentPlanModeFieldUpdateOperationsInput = {
    set?: $Enums.AgentPlanMode
  }

  export type EnumAgentPermissionModeFieldUpdateOperationsInput = {
    set?: $Enums.AgentPermissionMode
  }

  export type AgentMessageUpdateManyWithoutSessionNestedInput = {
    create?: XOR<AgentMessageCreateWithoutSessionInput, AgentMessageUncheckedCreateWithoutSessionInput> | AgentMessageCreateWithoutSessionInput[] | AgentMessageUncheckedCreateWithoutSessionInput[]
    connectOrCreate?: AgentMessageCreateOrConnectWithoutSessionInput | AgentMessageCreateOrConnectWithoutSessionInput[]
    upsert?: AgentMessageUpsertWithWhereUniqueWithoutSessionInput | AgentMessageUpsertWithWhereUniqueWithoutSessionInput[]
    createMany?: AgentMessageCreateManySessionInputEnvelope
    set?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
    disconnect?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
    delete?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
    connect?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
    update?: AgentMessageUpdateWithWhereUniqueWithoutSessionInput | AgentMessageUpdateWithWhereUniqueWithoutSessionInput[]
    updateMany?: AgentMessageUpdateManyWithWhereWithoutSessionInput | AgentMessageUpdateManyWithWhereWithoutSessionInput[]
    deleteMany?: AgentMessageScalarWhereInput | AgentMessageScalarWhereInput[]
  }

  export type AgentSessionUpdateOneWithoutChildrenNestedInput = {
    create?: XOR<AgentSessionCreateWithoutChildrenInput, AgentSessionUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: AgentSessionCreateOrConnectWithoutChildrenInput
    upsert?: AgentSessionUpsertWithoutChildrenInput
    disconnect?: AgentSessionWhereInput | boolean
    delete?: AgentSessionWhereInput | boolean
    connect?: AgentSessionWhereUniqueInput
    update?: XOR<XOR<AgentSessionUpdateToOneWithWhereWithoutChildrenInput, AgentSessionUpdateWithoutChildrenInput>, AgentSessionUncheckedUpdateWithoutChildrenInput>
  }

  export type AgentSessionUpdateManyWithoutParentNestedInput = {
    create?: XOR<AgentSessionCreateWithoutParentInput, AgentSessionUncheckedCreateWithoutParentInput> | AgentSessionCreateWithoutParentInput[] | AgentSessionUncheckedCreateWithoutParentInput[]
    connectOrCreate?: AgentSessionCreateOrConnectWithoutParentInput | AgentSessionCreateOrConnectWithoutParentInput[]
    upsert?: AgentSessionUpsertWithWhereUniqueWithoutParentInput | AgentSessionUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: AgentSessionCreateManyParentInputEnvelope
    set?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    disconnect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    delete?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    connect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    update?: AgentSessionUpdateWithWhereUniqueWithoutParentInput | AgentSessionUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: AgentSessionUpdateManyWithWhereWithoutParentInput | AgentSessionUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: AgentSessionScalarWhereInput | AgentSessionScalarWhereInput[]
  }

  export type AgentCronUpdateManyWithoutSessionNestedInput = {
    create?: XOR<AgentCronCreateWithoutSessionInput, AgentCronUncheckedCreateWithoutSessionInput> | AgentCronCreateWithoutSessionInput[] | AgentCronUncheckedCreateWithoutSessionInput[]
    connectOrCreate?: AgentCronCreateOrConnectWithoutSessionInput | AgentCronCreateOrConnectWithoutSessionInput[]
    upsert?: AgentCronUpsertWithWhereUniqueWithoutSessionInput | AgentCronUpsertWithWhereUniqueWithoutSessionInput[]
    createMany?: AgentCronCreateManySessionInputEnvelope
    set?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
    disconnect?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
    delete?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
    connect?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
    update?: AgentCronUpdateWithWhereUniqueWithoutSessionInput | AgentCronUpdateWithWhereUniqueWithoutSessionInput[]
    updateMany?: AgentCronUpdateManyWithWhereWithoutSessionInput | AgentCronUpdateManyWithWhereWithoutSessionInput[]
    deleteMany?: AgentCronScalarWhereInput | AgentCronScalarWhereInput[]
  }

  export type AgentPersonaUpdateOneWithoutSessionsNestedInput = {
    create?: XOR<AgentPersonaCreateWithoutSessionsInput, AgentPersonaUncheckedCreateWithoutSessionsInput>
    connectOrCreate?: AgentPersonaCreateOrConnectWithoutSessionsInput
    upsert?: AgentPersonaUpsertWithoutSessionsInput
    disconnect?: AgentPersonaWhereInput | boolean
    delete?: AgentPersonaWhereInput | boolean
    connect?: AgentPersonaWhereUniqueInput
    update?: XOR<XOR<AgentPersonaUpdateToOneWithWhereWithoutSessionsInput, AgentPersonaUpdateWithoutSessionsInput>, AgentPersonaUncheckedUpdateWithoutSessionsInput>
  }

  export type AgentMessageUncheckedUpdateManyWithoutSessionNestedInput = {
    create?: XOR<AgentMessageCreateWithoutSessionInput, AgentMessageUncheckedCreateWithoutSessionInput> | AgentMessageCreateWithoutSessionInput[] | AgentMessageUncheckedCreateWithoutSessionInput[]
    connectOrCreate?: AgentMessageCreateOrConnectWithoutSessionInput | AgentMessageCreateOrConnectWithoutSessionInput[]
    upsert?: AgentMessageUpsertWithWhereUniqueWithoutSessionInput | AgentMessageUpsertWithWhereUniqueWithoutSessionInput[]
    createMany?: AgentMessageCreateManySessionInputEnvelope
    set?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
    disconnect?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
    delete?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
    connect?: AgentMessageWhereUniqueInput | AgentMessageWhereUniqueInput[]
    update?: AgentMessageUpdateWithWhereUniqueWithoutSessionInput | AgentMessageUpdateWithWhereUniqueWithoutSessionInput[]
    updateMany?: AgentMessageUpdateManyWithWhereWithoutSessionInput | AgentMessageUpdateManyWithWhereWithoutSessionInput[]
    deleteMany?: AgentMessageScalarWhereInput | AgentMessageScalarWhereInput[]
  }

  export type AgentSessionUncheckedUpdateManyWithoutParentNestedInput = {
    create?: XOR<AgentSessionCreateWithoutParentInput, AgentSessionUncheckedCreateWithoutParentInput> | AgentSessionCreateWithoutParentInput[] | AgentSessionUncheckedCreateWithoutParentInput[]
    connectOrCreate?: AgentSessionCreateOrConnectWithoutParentInput | AgentSessionCreateOrConnectWithoutParentInput[]
    upsert?: AgentSessionUpsertWithWhereUniqueWithoutParentInput | AgentSessionUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: AgentSessionCreateManyParentInputEnvelope
    set?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    disconnect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    delete?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    connect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    update?: AgentSessionUpdateWithWhereUniqueWithoutParentInput | AgentSessionUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: AgentSessionUpdateManyWithWhereWithoutParentInput | AgentSessionUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: AgentSessionScalarWhereInput | AgentSessionScalarWhereInput[]
  }

  export type AgentCronUncheckedUpdateManyWithoutSessionNestedInput = {
    create?: XOR<AgentCronCreateWithoutSessionInput, AgentCronUncheckedCreateWithoutSessionInput> | AgentCronCreateWithoutSessionInput[] | AgentCronUncheckedCreateWithoutSessionInput[]
    connectOrCreate?: AgentCronCreateOrConnectWithoutSessionInput | AgentCronCreateOrConnectWithoutSessionInput[]
    upsert?: AgentCronUpsertWithWhereUniqueWithoutSessionInput | AgentCronUpsertWithWhereUniqueWithoutSessionInput[]
    createMany?: AgentCronCreateManySessionInputEnvelope
    set?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
    disconnect?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
    delete?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
    connect?: AgentCronWhereUniqueInput | AgentCronWhereUniqueInput[]
    update?: AgentCronUpdateWithWhereUniqueWithoutSessionInput | AgentCronUpdateWithWhereUniqueWithoutSessionInput[]
    updateMany?: AgentCronUpdateManyWithWhereWithoutSessionInput | AgentCronUpdateManyWithWhereWithoutSessionInput[]
    deleteMany?: AgentCronScalarWhereInput | AgentCronScalarWhereInput[]
  }

  export type AgentSessionCreateNestedOneWithoutMessagesInput = {
    create?: XOR<AgentSessionCreateWithoutMessagesInput, AgentSessionUncheckedCreateWithoutMessagesInput>
    connectOrCreate?: AgentSessionCreateOrConnectWithoutMessagesInput
    connect?: AgentSessionWhereUniqueInput
  }

  export type EnumAgentMessageTypeFieldUpdateOperationsInput = {
    set?: $Enums.AgentMessageType
  }

  export type AgentSessionUpdateOneRequiredWithoutMessagesNestedInput = {
    create?: XOR<AgentSessionCreateWithoutMessagesInput, AgentSessionUncheckedCreateWithoutMessagesInput>
    connectOrCreate?: AgentSessionCreateOrConnectWithoutMessagesInput
    upsert?: AgentSessionUpsertWithoutMessagesInput
    connect?: AgentSessionWhereUniqueInput
    update?: XOR<XOR<AgentSessionUpdateToOneWithWhereWithoutMessagesInput, AgentSessionUpdateWithoutMessagesInput>, AgentSessionUncheckedUpdateWithoutMessagesInput>
  }

  export type EnumModelRoutingScopeFieldUpdateOperationsInput = {
    set?: $Enums.ModelRoutingScope
  }

  export type EnumModelRoutingMatchSourceFieldUpdateOperationsInput = {
    set?: $Enums.ModelRoutingMatchSource
  }

  export type NullableFloatFieldUpdateOperationsInput = {
    set?: number | null
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type EnumAgentTrajectoryEventTypeFieldUpdateOperationsInput = {
    set?: $Enums.AgentTrajectoryEventType
  }

  export type EnumAgentQuotaScopeFieldUpdateOperationsInput = {
    set?: $Enums.AgentQuotaScope
  }

  export type OrganizationAgentSettingsCreatedisabledCapabilitiesInput = {
    set: string[]
  }

  export type OrganizationAgentSettingsCreateallowedCliToolsInput = {
    set: string[]
  }

  export type OrganizationAgentSettingsCreateallowedPermissionModesInput = {
    set: string[]
  }

  export type OrganizationAgentSettingsUpdatedisabledCapabilitiesInput = {
    set?: string[]
    push?: string | string[]
  }

  export type OrganizationAgentSettingsUpdateallowedCliToolsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type OrganizationAgentSettingsUpdateallowedPermissionModesInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumAgentArtifactTypeFieldUpdateOperationsInput = {
    set?: $Enums.AgentArtifactType
  }

  export type EnumAgentTaskStatusFieldUpdateOperationsInput = {
    set?: $Enums.AgentTaskStatus
  }

  export type StorageFileCreateNestedManyWithoutBindingInput = {
    create?: XOR<StorageFileCreateWithoutBindingInput, StorageFileUncheckedCreateWithoutBindingInput> | StorageFileCreateWithoutBindingInput[] | StorageFileUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: StorageFileCreateOrConnectWithoutBindingInput | StorageFileCreateOrConnectWithoutBindingInput[]
    createMany?: StorageFileCreateManyBindingInputEnvelope
    connect?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
  }

  export type StorageFileUncheckedCreateNestedManyWithoutBindingInput = {
    create?: XOR<StorageFileCreateWithoutBindingInput, StorageFileUncheckedCreateWithoutBindingInput> | StorageFileCreateWithoutBindingInput[] | StorageFileUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: StorageFileCreateOrConnectWithoutBindingInput | StorageFileCreateOrConnectWithoutBindingInput[]
    createMany?: StorageFileCreateManyBindingInputEnvelope
    connect?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
  }

  export type EnumStorageBindingScopeFieldUpdateOperationsInput = {
    set?: $Enums.StorageBindingScope
  }

  export type EnumStorageBackendKindFieldUpdateOperationsInput = {
    set?: $Enums.StorageBackendKind
  }

  export type StorageFileUpdateManyWithoutBindingNestedInput = {
    create?: XOR<StorageFileCreateWithoutBindingInput, StorageFileUncheckedCreateWithoutBindingInput> | StorageFileCreateWithoutBindingInput[] | StorageFileUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: StorageFileCreateOrConnectWithoutBindingInput | StorageFileCreateOrConnectWithoutBindingInput[]
    upsert?: StorageFileUpsertWithWhereUniqueWithoutBindingInput | StorageFileUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: StorageFileCreateManyBindingInputEnvelope
    set?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
    disconnect?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
    delete?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
    connect?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
    update?: StorageFileUpdateWithWhereUniqueWithoutBindingInput | StorageFileUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: StorageFileUpdateManyWithWhereWithoutBindingInput | StorageFileUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: StorageFileScalarWhereInput | StorageFileScalarWhereInput[]
  }

  export type StorageFileUncheckedUpdateManyWithoutBindingNestedInput = {
    create?: XOR<StorageFileCreateWithoutBindingInput, StorageFileUncheckedCreateWithoutBindingInput> | StorageFileCreateWithoutBindingInput[] | StorageFileUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: StorageFileCreateOrConnectWithoutBindingInput | StorageFileCreateOrConnectWithoutBindingInput[]
    upsert?: StorageFileUpsertWithWhereUniqueWithoutBindingInput | StorageFileUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: StorageFileCreateManyBindingInputEnvelope
    set?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
    disconnect?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
    delete?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
    connect?: StorageFileWhereUniqueInput | StorageFileWhereUniqueInput[]
    update?: StorageFileUpdateWithWhereUniqueWithoutBindingInput | StorageFileUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: StorageFileUpdateManyWithWhereWithoutBindingInput | StorageFileUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: StorageFileScalarWhereInput | StorageFileScalarWhereInput[]
  }

  export type StorageBindingCreateNestedOneWithoutFilesInput = {
    create?: XOR<StorageBindingCreateWithoutFilesInput, StorageBindingUncheckedCreateWithoutFilesInput>
    connectOrCreate?: StorageBindingCreateOrConnectWithoutFilesInput
    connect?: StorageBindingWhereUniqueInput
  }

  export type StorageBindingUpdateOneRequiredWithoutFilesNestedInput = {
    create?: XOR<StorageBindingCreateWithoutFilesInput, StorageBindingUncheckedCreateWithoutFilesInput>
    connectOrCreate?: StorageBindingCreateOrConnectWithoutFilesInput
    upsert?: StorageBindingUpsertWithoutFilesInput
    connect?: StorageBindingWhereUniqueInput
    update?: XOR<XOR<StorageBindingUpdateToOneWithWhereWithoutFilesInput, StorageBindingUpdateWithoutFilesInput>, StorageBindingUncheckedUpdateWithoutFilesInput>
  }

  export type AgentMemoryCreateNestedManyWithoutProjectInput = {
    create?: XOR<AgentMemoryCreateWithoutProjectInput, AgentMemoryUncheckedCreateWithoutProjectInput> | AgentMemoryCreateWithoutProjectInput[] | AgentMemoryUncheckedCreateWithoutProjectInput[]
    connectOrCreate?: AgentMemoryCreateOrConnectWithoutProjectInput | AgentMemoryCreateOrConnectWithoutProjectInput[]
    createMany?: AgentMemoryCreateManyProjectInputEnvelope
    connect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
  }

  export type AgentMemoryUncheckedCreateNestedManyWithoutProjectInput = {
    create?: XOR<AgentMemoryCreateWithoutProjectInput, AgentMemoryUncheckedCreateWithoutProjectInput> | AgentMemoryCreateWithoutProjectInput[] | AgentMemoryUncheckedCreateWithoutProjectInput[]
    connectOrCreate?: AgentMemoryCreateOrConnectWithoutProjectInput | AgentMemoryCreateOrConnectWithoutProjectInput[]
    createMany?: AgentMemoryCreateManyProjectInputEnvelope
    connect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
  }

  export type AgentMemoryUpdateManyWithoutProjectNestedInput = {
    create?: XOR<AgentMemoryCreateWithoutProjectInput, AgentMemoryUncheckedCreateWithoutProjectInput> | AgentMemoryCreateWithoutProjectInput[] | AgentMemoryUncheckedCreateWithoutProjectInput[]
    connectOrCreate?: AgentMemoryCreateOrConnectWithoutProjectInput | AgentMemoryCreateOrConnectWithoutProjectInput[]
    upsert?: AgentMemoryUpsertWithWhereUniqueWithoutProjectInput | AgentMemoryUpsertWithWhereUniqueWithoutProjectInput[]
    createMany?: AgentMemoryCreateManyProjectInputEnvelope
    set?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    disconnect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    delete?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    connect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    update?: AgentMemoryUpdateWithWhereUniqueWithoutProjectInput | AgentMemoryUpdateWithWhereUniqueWithoutProjectInput[]
    updateMany?: AgentMemoryUpdateManyWithWhereWithoutProjectInput | AgentMemoryUpdateManyWithWhereWithoutProjectInput[]
    deleteMany?: AgentMemoryScalarWhereInput | AgentMemoryScalarWhereInput[]
  }

  export type AgentMemoryUncheckedUpdateManyWithoutProjectNestedInput = {
    create?: XOR<AgentMemoryCreateWithoutProjectInput, AgentMemoryUncheckedCreateWithoutProjectInput> | AgentMemoryCreateWithoutProjectInput[] | AgentMemoryUncheckedCreateWithoutProjectInput[]
    connectOrCreate?: AgentMemoryCreateOrConnectWithoutProjectInput | AgentMemoryCreateOrConnectWithoutProjectInput[]
    upsert?: AgentMemoryUpsertWithWhereUniqueWithoutProjectInput | AgentMemoryUpsertWithWhereUniqueWithoutProjectInput[]
    createMany?: AgentMemoryCreateManyProjectInputEnvelope
    set?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    disconnect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    delete?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    connect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    update?: AgentMemoryUpdateWithWhereUniqueWithoutProjectInput | AgentMemoryUpdateWithWhereUniqueWithoutProjectInput[]
    updateMany?: AgentMemoryUpdateManyWithWhereWithoutProjectInput | AgentMemoryUpdateManyWithWhereWithoutProjectInput[]
    deleteMany?: AgentMemoryScalarWhereInput | AgentMemoryScalarWhereInput[]
  }

  export type AgentProjectCreateNestedOneWithoutMemoriesInput = {
    create?: XOR<AgentProjectCreateWithoutMemoriesInput, AgentProjectUncheckedCreateWithoutMemoriesInput>
    connectOrCreate?: AgentProjectCreateOrConnectWithoutMemoriesInput
    connect?: AgentProjectWhereUniqueInput
  }

  export type AgentPersonaCreateNestedOneWithoutMemoriesInput = {
    create?: XOR<AgentPersonaCreateWithoutMemoriesInput, AgentPersonaUncheckedCreateWithoutMemoriesInput>
    connectOrCreate?: AgentPersonaCreateOrConnectWithoutMemoriesInput
    connect?: AgentPersonaWhereUniqueInput
  }

  export type EnumMemoryOwnerScopeFieldUpdateOperationsInput = {
    set?: $Enums.MemoryOwnerScope
  }

  export type EnumMemoryScopeFieldUpdateOperationsInput = {
    set?: $Enums.MemoryScope
  }

  export type EnumMemoryCategoryFieldUpdateOperationsInput = {
    set?: $Enums.MemoryCategory
  }

  export type AgentProjectUpdateOneWithoutMemoriesNestedInput = {
    create?: XOR<AgentProjectCreateWithoutMemoriesInput, AgentProjectUncheckedCreateWithoutMemoriesInput>
    connectOrCreate?: AgentProjectCreateOrConnectWithoutMemoriesInput
    upsert?: AgentProjectUpsertWithoutMemoriesInput
    disconnect?: AgentProjectWhereInput | boolean
    delete?: AgentProjectWhereInput | boolean
    connect?: AgentProjectWhereUniqueInput
    update?: XOR<XOR<AgentProjectUpdateToOneWithWhereWithoutMemoriesInput, AgentProjectUpdateWithoutMemoriesInput>, AgentProjectUncheckedUpdateWithoutMemoriesInput>
  }

  export type AgentPersonaUpdateOneWithoutMemoriesNestedInput = {
    create?: XOR<AgentPersonaCreateWithoutMemoriesInput, AgentPersonaUncheckedCreateWithoutMemoriesInput>
    connectOrCreate?: AgentPersonaCreateOrConnectWithoutMemoriesInput
    upsert?: AgentPersonaUpsertWithoutMemoriesInput
    disconnect?: AgentPersonaWhereInput | boolean
    delete?: AgentPersonaWhereInput | boolean
    connect?: AgentPersonaWhereUniqueInput
    update?: XOR<XOR<AgentPersonaUpdateToOneWithWhereWithoutMemoriesInput, AgentPersonaUpdateWithoutMemoriesInput>, AgentPersonaUncheckedUpdateWithoutMemoriesInput>
  }

  export type AgentPersonaCreateallowedToolsInput = {
    set: string[]
  }

  export type AgentMemoryCreateNestedManyWithoutPersonaInput = {
    create?: XOR<AgentMemoryCreateWithoutPersonaInput, AgentMemoryUncheckedCreateWithoutPersonaInput> | AgentMemoryCreateWithoutPersonaInput[] | AgentMemoryUncheckedCreateWithoutPersonaInput[]
    connectOrCreate?: AgentMemoryCreateOrConnectWithoutPersonaInput | AgentMemoryCreateOrConnectWithoutPersonaInput[]
    createMany?: AgentMemoryCreateManyPersonaInputEnvelope
    connect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
  }

  export type AgentSessionCreateNestedManyWithoutPersonaInput = {
    create?: XOR<AgentSessionCreateWithoutPersonaInput, AgentSessionUncheckedCreateWithoutPersonaInput> | AgentSessionCreateWithoutPersonaInput[] | AgentSessionUncheckedCreateWithoutPersonaInput[]
    connectOrCreate?: AgentSessionCreateOrConnectWithoutPersonaInput | AgentSessionCreateOrConnectWithoutPersonaInput[]
    createMany?: AgentSessionCreateManyPersonaInputEnvelope
    connect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
  }

  export type AgentMemoryUncheckedCreateNestedManyWithoutPersonaInput = {
    create?: XOR<AgentMemoryCreateWithoutPersonaInput, AgentMemoryUncheckedCreateWithoutPersonaInput> | AgentMemoryCreateWithoutPersonaInput[] | AgentMemoryUncheckedCreateWithoutPersonaInput[]
    connectOrCreate?: AgentMemoryCreateOrConnectWithoutPersonaInput | AgentMemoryCreateOrConnectWithoutPersonaInput[]
    createMany?: AgentMemoryCreateManyPersonaInputEnvelope
    connect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
  }

  export type AgentSessionUncheckedCreateNestedManyWithoutPersonaInput = {
    create?: XOR<AgentSessionCreateWithoutPersonaInput, AgentSessionUncheckedCreateWithoutPersonaInput> | AgentSessionCreateWithoutPersonaInput[] | AgentSessionUncheckedCreateWithoutPersonaInput[]
    connectOrCreate?: AgentSessionCreateOrConnectWithoutPersonaInput | AgentSessionCreateOrConnectWithoutPersonaInput[]
    createMany?: AgentSessionCreateManyPersonaInputEnvelope
    connect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
  }

  export type AgentPersonaUpdateallowedToolsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type AgentMemoryUpdateManyWithoutPersonaNestedInput = {
    create?: XOR<AgentMemoryCreateWithoutPersonaInput, AgentMemoryUncheckedCreateWithoutPersonaInput> | AgentMemoryCreateWithoutPersonaInput[] | AgentMemoryUncheckedCreateWithoutPersonaInput[]
    connectOrCreate?: AgentMemoryCreateOrConnectWithoutPersonaInput | AgentMemoryCreateOrConnectWithoutPersonaInput[]
    upsert?: AgentMemoryUpsertWithWhereUniqueWithoutPersonaInput | AgentMemoryUpsertWithWhereUniqueWithoutPersonaInput[]
    createMany?: AgentMemoryCreateManyPersonaInputEnvelope
    set?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    disconnect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    delete?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    connect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    update?: AgentMemoryUpdateWithWhereUniqueWithoutPersonaInput | AgentMemoryUpdateWithWhereUniqueWithoutPersonaInput[]
    updateMany?: AgentMemoryUpdateManyWithWhereWithoutPersonaInput | AgentMemoryUpdateManyWithWhereWithoutPersonaInput[]
    deleteMany?: AgentMemoryScalarWhereInput | AgentMemoryScalarWhereInput[]
  }

  export type AgentSessionUpdateManyWithoutPersonaNestedInput = {
    create?: XOR<AgentSessionCreateWithoutPersonaInput, AgentSessionUncheckedCreateWithoutPersonaInput> | AgentSessionCreateWithoutPersonaInput[] | AgentSessionUncheckedCreateWithoutPersonaInput[]
    connectOrCreate?: AgentSessionCreateOrConnectWithoutPersonaInput | AgentSessionCreateOrConnectWithoutPersonaInput[]
    upsert?: AgentSessionUpsertWithWhereUniqueWithoutPersonaInput | AgentSessionUpsertWithWhereUniqueWithoutPersonaInput[]
    createMany?: AgentSessionCreateManyPersonaInputEnvelope
    set?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    disconnect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    delete?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    connect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    update?: AgentSessionUpdateWithWhereUniqueWithoutPersonaInput | AgentSessionUpdateWithWhereUniqueWithoutPersonaInput[]
    updateMany?: AgentSessionUpdateManyWithWhereWithoutPersonaInput | AgentSessionUpdateManyWithWhereWithoutPersonaInput[]
    deleteMany?: AgentSessionScalarWhereInput | AgentSessionScalarWhereInput[]
  }

  export type AgentMemoryUncheckedUpdateManyWithoutPersonaNestedInput = {
    create?: XOR<AgentMemoryCreateWithoutPersonaInput, AgentMemoryUncheckedCreateWithoutPersonaInput> | AgentMemoryCreateWithoutPersonaInput[] | AgentMemoryUncheckedCreateWithoutPersonaInput[]
    connectOrCreate?: AgentMemoryCreateOrConnectWithoutPersonaInput | AgentMemoryCreateOrConnectWithoutPersonaInput[]
    upsert?: AgentMemoryUpsertWithWhereUniqueWithoutPersonaInput | AgentMemoryUpsertWithWhereUniqueWithoutPersonaInput[]
    createMany?: AgentMemoryCreateManyPersonaInputEnvelope
    set?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    disconnect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    delete?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    connect?: AgentMemoryWhereUniqueInput | AgentMemoryWhereUniqueInput[]
    update?: AgentMemoryUpdateWithWhereUniqueWithoutPersonaInput | AgentMemoryUpdateWithWhereUniqueWithoutPersonaInput[]
    updateMany?: AgentMemoryUpdateManyWithWhereWithoutPersonaInput | AgentMemoryUpdateManyWithWhereWithoutPersonaInput[]
    deleteMany?: AgentMemoryScalarWhereInput | AgentMemoryScalarWhereInput[]
  }

  export type AgentSessionUncheckedUpdateManyWithoutPersonaNestedInput = {
    create?: XOR<AgentSessionCreateWithoutPersonaInput, AgentSessionUncheckedCreateWithoutPersonaInput> | AgentSessionCreateWithoutPersonaInput[] | AgentSessionUncheckedCreateWithoutPersonaInput[]
    connectOrCreate?: AgentSessionCreateOrConnectWithoutPersonaInput | AgentSessionCreateOrConnectWithoutPersonaInput[]
    upsert?: AgentSessionUpsertWithWhereUniqueWithoutPersonaInput | AgentSessionUpsertWithWhereUniqueWithoutPersonaInput[]
    createMany?: AgentSessionCreateManyPersonaInputEnvelope
    set?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    disconnect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    delete?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    connect?: AgentSessionWhereUniqueInput | AgentSessionWhereUniqueInput[]
    update?: AgentSessionUpdateWithWhereUniqueWithoutPersonaInput | AgentSessionUpdateWithWhereUniqueWithoutPersonaInput[]
    updateMany?: AgentSessionUpdateManyWithWhereWithoutPersonaInput | AgentSessionUpdateManyWithWhereWithoutPersonaInput[]
    deleteMany?: AgentSessionScalarWhereInput | AgentSessionScalarWhereInput[]
  }

  export type AgentSessionCreateNestedOneWithoutCronsInput = {
    create?: XOR<AgentSessionCreateWithoutCronsInput, AgentSessionUncheckedCreateWithoutCronsInput>
    connectOrCreate?: AgentSessionCreateOrConnectWithoutCronsInput
    connect?: AgentSessionWhereUniqueInput
  }

  export type AgentSessionUpdateOneRequiredWithoutCronsNestedInput = {
    create?: XOR<AgentSessionCreateWithoutCronsInput, AgentSessionUncheckedCreateWithoutCronsInput>
    connectOrCreate?: AgentSessionCreateOrConnectWithoutCronsInput
    upsert?: AgentSessionUpsertWithoutCronsInput
    connect?: AgentSessionWhereUniqueInput
    update?: XOR<XOR<AgentSessionUpdateToOneWithWhereWithoutCronsInput, AgentSessionUpdateWithoutCronsInput>, AgentSessionUncheckedUpdateWithoutCronsInput>
  }

  export type UserCreateNestedOneWithoutAiUsageTokensInput = {
    create?: XOR<UserCreateWithoutAiUsageTokensInput, UserUncheckedCreateWithoutAiUsageTokensInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageTokensInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAiUsageTokensRevokedInput = {
    create?: XOR<UserCreateWithoutAiUsageTokensRevokedInput, UserUncheckedCreateWithoutAiUsageTokensRevokedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageTokensRevokedInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutAiUsageTokensInput = {
    create?: XOR<OrganizationCreateWithoutAiUsageTokensInput, OrganizationUncheckedCreateWithoutAiUsageTokensInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutAiUsageTokensInput
    connect?: OrganizationWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutAiUsageTokensNestedInput = {
    create?: XOR<UserCreateWithoutAiUsageTokensInput, UserUncheckedCreateWithoutAiUsageTokensInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageTokensInput
    upsert?: UserUpsertWithoutAiUsageTokensInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAiUsageTokensInput, UserUpdateWithoutAiUsageTokensInput>, UserUncheckedUpdateWithoutAiUsageTokensInput>
  }

  export type UserUpdateOneWithoutAiUsageTokensRevokedNestedInput = {
    create?: XOR<UserCreateWithoutAiUsageTokensRevokedInput, UserUncheckedCreateWithoutAiUsageTokensRevokedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageTokensRevokedInput
    upsert?: UserUpsertWithoutAiUsageTokensRevokedInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAiUsageTokensRevokedInput, UserUpdateWithoutAiUsageTokensRevokedInput>, UserUncheckedUpdateWithoutAiUsageTokensRevokedInput>
  }

  export type OrganizationUpdateOneRequiredWithoutAiUsageTokensNestedInput = {
    create?: XOR<OrganizationCreateWithoutAiUsageTokensInput, OrganizationUncheckedCreateWithoutAiUsageTokensInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutAiUsageTokensInput
    upsert?: OrganizationUpsertWithoutAiUsageTokensInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutAiUsageTokensInput, OrganizationUpdateWithoutAiUsageTokensInput>, OrganizationUncheckedUpdateWithoutAiUsageTokensInput>
  }

  export type UserCreateNestedOneWithoutAiUsageDevicesInput = {
    create?: XOR<UserCreateWithoutAiUsageDevicesInput, UserUncheckedCreateWithoutAiUsageDevicesInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageDevicesInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAiUsageDevicesBlockedInput = {
    create?: XOR<UserCreateWithoutAiUsageDevicesBlockedInput, UserUncheckedCreateWithoutAiUsageDevicesBlockedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageDevicesBlockedInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutAiUsageDevicesInput = {
    create?: XOR<OrganizationCreateWithoutAiUsageDevicesInput, OrganizationUncheckedCreateWithoutAiUsageDevicesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutAiUsageDevicesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type AiUsageEventCreateNestedManyWithoutDeviceInput = {
    create?: XOR<AiUsageEventCreateWithoutDeviceInput, AiUsageEventUncheckedCreateWithoutDeviceInput> | AiUsageEventCreateWithoutDeviceInput[] | AiUsageEventUncheckedCreateWithoutDeviceInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutDeviceInput | AiUsageEventCreateOrConnectWithoutDeviceInput[]
    createMany?: AiUsageEventCreateManyDeviceInputEnvelope
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
  }

  export type AiUsageEventUncheckedCreateNestedManyWithoutDeviceInput = {
    create?: XOR<AiUsageEventCreateWithoutDeviceInput, AiUsageEventUncheckedCreateWithoutDeviceInput> | AiUsageEventCreateWithoutDeviceInput[] | AiUsageEventUncheckedCreateWithoutDeviceInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutDeviceInput | AiUsageEventCreateOrConnectWithoutDeviceInput[]
    createMany?: AiUsageEventCreateManyDeviceInputEnvelope
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
  }

  export type EnumAiUsageOsPlatformFieldUpdateOperationsInput = {
    set?: $Enums.AiUsageOsPlatform
  }

  export type UserUpdateOneRequiredWithoutAiUsageDevicesNestedInput = {
    create?: XOR<UserCreateWithoutAiUsageDevicesInput, UserUncheckedCreateWithoutAiUsageDevicesInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageDevicesInput
    upsert?: UserUpsertWithoutAiUsageDevicesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAiUsageDevicesInput, UserUpdateWithoutAiUsageDevicesInput>, UserUncheckedUpdateWithoutAiUsageDevicesInput>
  }

  export type UserUpdateOneWithoutAiUsageDevicesBlockedNestedInput = {
    create?: XOR<UserCreateWithoutAiUsageDevicesBlockedInput, UserUncheckedCreateWithoutAiUsageDevicesBlockedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageDevicesBlockedInput
    upsert?: UserUpsertWithoutAiUsageDevicesBlockedInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAiUsageDevicesBlockedInput, UserUpdateWithoutAiUsageDevicesBlockedInput>, UserUncheckedUpdateWithoutAiUsageDevicesBlockedInput>
  }

  export type OrganizationUpdateOneRequiredWithoutAiUsageDevicesNestedInput = {
    create?: XOR<OrganizationCreateWithoutAiUsageDevicesInput, OrganizationUncheckedCreateWithoutAiUsageDevicesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutAiUsageDevicesInput
    upsert?: OrganizationUpsertWithoutAiUsageDevicesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutAiUsageDevicesInput, OrganizationUpdateWithoutAiUsageDevicesInput>, OrganizationUncheckedUpdateWithoutAiUsageDevicesInput>
  }

  export type AiUsageEventUpdateManyWithoutDeviceNestedInput = {
    create?: XOR<AiUsageEventCreateWithoutDeviceInput, AiUsageEventUncheckedCreateWithoutDeviceInput> | AiUsageEventCreateWithoutDeviceInput[] | AiUsageEventUncheckedCreateWithoutDeviceInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutDeviceInput | AiUsageEventCreateOrConnectWithoutDeviceInput[]
    upsert?: AiUsageEventUpsertWithWhereUniqueWithoutDeviceInput | AiUsageEventUpsertWithWhereUniqueWithoutDeviceInput[]
    createMany?: AiUsageEventCreateManyDeviceInputEnvelope
    set?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    disconnect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    delete?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    update?: AiUsageEventUpdateWithWhereUniqueWithoutDeviceInput | AiUsageEventUpdateWithWhereUniqueWithoutDeviceInput[]
    updateMany?: AiUsageEventUpdateManyWithWhereWithoutDeviceInput | AiUsageEventUpdateManyWithWhereWithoutDeviceInput[]
    deleteMany?: AiUsageEventScalarWhereInput | AiUsageEventScalarWhereInput[]
  }

  export type AiUsageEventUncheckedUpdateManyWithoutDeviceNestedInput = {
    create?: XOR<AiUsageEventCreateWithoutDeviceInput, AiUsageEventUncheckedCreateWithoutDeviceInput> | AiUsageEventCreateWithoutDeviceInput[] | AiUsageEventUncheckedCreateWithoutDeviceInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutDeviceInput | AiUsageEventCreateOrConnectWithoutDeviceInput[]
    upsert?: AiUsageEventUpsertWithWhereUniqueWithoutDeviceInput | AiUsageEventUpsertWithWhereUniqueWithoutDeviceInput[]
    createMany?: AiUsageEventCreateManyDeviceInputEnvelope
    set?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    disconnect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    delete?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    update?: AiUsageEventUpdateWithWhereUniqueWithoutDeviceInput | AiUsageEventUpdateWithWhereUniqueWithoutDeviceInput[]
    updateMany?: AiUsageEventUpdateManyWithWhereWithoutDeviceInput | AiUsageEventUpdateManyWithWhereWithoutDeviceInput[]
    deleteMany?: AiUsageEventScalarWhereInput | AiUsageEventScalarWhereInput[]
  }

  export type AiUsageDeviceCreateNestedOneWithoutEventsInput = {
    create?: XOR<AiUsageDeviceCreateWithoutEventsInput, AiUsageDeviceUncheckedCreateWithoutEventsInput>
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutEventsInput
    connect?: AiUsageDeviceWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAiUsageEventsInput = {
    create?: XOR<UserCreateWithoutAiUsageEventsInput, UserUncheckedCreateWithoutAiUsageEventsInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageEventsInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutAiUsageEventsInput = {
    create?: XOR<OrganizationCreateWithoutAiUsageEventsInput, OrganizationUncheckedCreateWithoutAiUsageEventsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutAiUsageEventsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type EnumAiUsageToolFieldUpdateOperationsInput = {
    set?: $Enums.AiUsageTool
  }

  export type AiUsageDeviceUpdateOneRequiredWithoutEventsNestedInput = {
    create?: XOR<AiUsageDeviceCreateWithoutEventsInput, AiUsageDeviceUncheckedCreateWithoutEventsInput>
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutEventsInput
    upsert?: AiUsageDeviceUpsertWithoutEventsInput
    connect?: AiUsageDeviceWhereUniqueInput
    update?: XOR<XOR<AiUsageDeviceUpdateToOneWithWhereWithoutEventsInput, AiUsageDeviceUpdateWithoutEventsInput>, AiUsageDeviceUncheckedUpdateWithoutEventsInput>
  }

  export type UserUpdateOneRequiredWithoutAiUsageEventsNestedInput = {
    create?: XOR<UserCreateWithoutAiUsageEventsInput, UserUncheckedCreateWithoutAiUsageEventsInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageEventsInput
    upsert?: UserUpsertWithoutAiUsageEventsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAiUsageEventsInput, UserUpdateWithoutAiUsageEventsInput>, UserUncheckedUpdateWithoutAiUsageEventsInput>
  }

  export type OrganizationUpdateOneRequiredWithoutAiUsageEventsNestedInput = {
    create?: XOR<OrganizationCreateWithoutAiUsageEventsInput, OrganizationUncheckedCreateWithoutAiUsageEventsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutAiUsageEventsInput
    upsert?: OrganizationUpsertWithoutAiUsageEventsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutAiUsageEventsInput, OrganizationUpdateWithoutAiUsageEventsInput>, OrganizationUncheckedUpdateWithoutAiUsageEventsInput>
  }

  export type EnumAiUsageDlqReasonFieldUpdateOperationsInput = {
    set?: $Enums.AiUsageDlqReason
  }

  export type UserCreateNestedOneWithoutAiUsageRollupsInput = {
    create?: XOR<UserCreateWithoutAiUsageRollupsInput, UserUncheckedCreateWithoutAiUsageRollupsInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageRollupsInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutAiUsageRollupsInput = {
    create?: XOR<OrganizationCreateWithoutAiUsageRollupsInput, OrganizationUncheckedCreateWithoutAiUsageRollupsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutAiUsageRollupsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type BigIntFieldUpdateOperationsInput = {
    set?: bigint | number
    increment?: bigint | number
    decrement?: bigint | number
    multiply?: bigint | number
    divide?: bigint | number
  }

  export type UserUpdateOneRequiredWithoutAiUsageRollupsNestedInput = {
    create?: XOR<UserCreateWithoutAiUsageRollupsInput, UserUncheckedCreateWithoutAiUsageRollupsInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiUsageRollupsInput
    upsert?: UserUpsertWithoutAiUsageRollupsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAiUsageRollupsInput, UserUpdateWithoutAiUsageRollupsInput>, UserUncheckedUpdateWithoutAiUsageRollupsInput>
  }

  export type OrganizationUpdateOneRequiredWithoutAiUsageRollupsNestedInput = {
    create?: XOR<OrganizationCreateWithoutAiUsageRollupsInput, OrganizationUncheckedCreateWithoutAiUsageRollupsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutAiUsageRollupsInput
    upsert?: OrganizationUpsertWithoutAiUsageRollupsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutAiUsageRollupsInput, OrganizationUpdateWithoutAiUsageRollupsInput>, OrganizationUncheckedUpdateWithoutAiUsageRollupsInput>
  }

  export type AuditDatabaseChangeLogCreateNestedManyWithoutAuditLogInput = {
    create?: XOR<AuditDatabaseChangeLogCreateWithoutAuditLogInput, AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput> | AuditDatabaseChangeLogCreateWithoutAuditLogInput[] | AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput[]
    connectOrCreate?: AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput | AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput[]
    createMany?: AuditDatabaseChangeLogCreateManyAuditLogInputEnvelope
    connect?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
  }

  export type UserCreateNestedOneWithoutAuditLogsInput = {
    create?: XOR<UserCreateWithoutAuditLogsInput, UserUncheckedCreateWithoutAuditLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutAuditLogsInput
    connect?: UserWhereUniqueInput
  }

  export type AuditSensitiveOperationLogCreateNestedManyWithoutAuditLogInput = {
    create?: XOR<AuditSensitiveOperationLogCreateWithoutAuditLogInput, AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput> | AuditSensitiveOperationLogCreateWithoutAuditLogInput[] | AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput[]
    connectOrCreate?: AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput | AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput[]
    createMany?: AuditSensitiveOperationLogCreateManyAuditLogInputEnvelope
    connect?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
  }

  export type AuditDatabaseChangeLogUncheckedCreateNestedManyWithoutAuditLogInput = {
    create?: XOR<AuditDatabaseChangeLogCreateWithoutAuditLogInput, AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput> | AuditDatabaseChangeLogCreateWithoutAuditLogInput[] | AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput[]
    connectOrCreate?: AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput | AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput[]
    createMany?: AuditDatabaseChangeLogCreateManyAuditLogInputEnvelope
    connect?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
  }

  export type AuditSensitiveOperationLogUncheckedCreateNestedManyWithoutAuditLogInput = {
    create?: XOR<AuditSensitiveOperationLogCreateWithoutAuditLogInput, AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput> | AuditSensitiveOperationLogCreateWithoutAuditLogInput[] | AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput[]
    connectOrCreate?: AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput | AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput[]
    createMany?: AuditSensitiveOperationLogCreateManyAuditLogInputEnvelope
    connect?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
  }

  export type EnumAuditActionFieldUpdateOperationsInput = {
    set?: $Enums.AuditAction
  }

  export type EnumAuditStatusFieldUpdateOperationsInput = {
    set?: $Enums.AuditStatus
  }

  export type EnumRiskLevelFieldUpdateOperationsInput = {
    set?: $Enums.RiskLevel
  }

  export type EnumComplianceLevelFieldUpdateOperationsInput = {
    set?: $Enums.ComplianceLevel
  }

  export type AuditDatabaseChangeLogUpdateManyWithoutAuditLogNestedInput = {
    create?: XOR<AuditDatabaseChangeLogCreateWithoutAuditLogInput, AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput> | AuditDatabaseChangeLogCreateWithoutAuditLogInput[] | AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput[]
    connectOrCreate?: AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput | AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput[]
    upsert?: AuditDatabaseChangeLogUpsertWithWhereUniqueWithoutAuditLogInput | AuditDatabaseChangeLogUpsertWithWhereUniqueWithoutAuditLogInput[]
    createMany?: AuditDatabaseChangeLogCreateManyAuditLogInputEnvelope
    set?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
    disconnect?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
    delete?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
    connect?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
    update?: AuditDatabaseChangeLogUpdateWithWhereUniqueWithoutAuditLogInput | AuditDatabaseChangeLogUpdateWithWhereUniqueWithoutAuditLogInput[]
    updateMany?: AuditDatabaseChangeLogUpdateManyWithWhereWithoutAuditLogInput | AuditDatabaseChangeLogUpdateManyWithWhereWithoutAuditLogInput[]
    deleteMany?: AuditDatabaseChangeLogScalarWhereInput | AuditDatabaseChangeLogScalarWhereInput[]
  }

  export type UserUpdateOneWithoutAuditLogsNestedInput = {
    create?: XOR<UserCreateWithoutAuditLogsInput, UserUncheckedCreateWithoutAuditLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutAuditLogsInput
    upsert?: UserUpsertWithoutAuditLogsInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAuditLogsInput, UserUpdateWithoutAuditLogsInput>, UserUncheckedUpdateWithoutAuditLogsInput>
  }

  export type AuditSensitiveOperationLogUpdateManyWithoutAuditLogNestedInput = {
    create?: XOR<AuditSensitiveOperationLogCreateWithoutAuditLogInput, AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput> | AuditSensitiveOperationLogCreateWithoutAuditLogInput[] | AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput[]
    connectOrCreate?: AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput | AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput[]
    upsert?: AuditSensitiveOperationLogUpsertWithWhereUniqueWithoutAuditLogInput | AuditSensitiveOperationLogUpsertWithWhereUniqueWithoutAuditLogInput[]
    createMany?: AuditSensitiveOperationLogCreateManyAuditLogInputEnvelope
    set?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
    disconnect?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
    delete?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
    connect?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
    update?: AuditSensitiveOperationLogUpdateWithWhereUniqueWithoutAuditLogInput | AuditSensitiveOperationLogUpdateWithWhereUniqueWithoutAuditLogInput[]
    updateMany?: AuditSensitiveOperationLogUpdateManyWithWhereWithoutAuditLogInput | AuditSensitiveOperationLogUpdateManyWithWhereWithoutAuditLogInput[]
    deleteMany?: AuditSensitiveOperationLogScalarWhereInput | AuditSensitiveOperationLogScalarWhereInput[]
  }

  export type AuditDatabaseChangeLogUncheckedUpdateManyWithoutAuditLogNestedInput = {
    create?: XOR<AuditDatabaseChangeLogCreateWithoutAuditLogInput, AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput> | AuditDatabaseChangeLogCreateWithoutAuditLogInput[] | AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput[]
    connectOrCreate?: AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput | AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput[]
    upsert?: AuditDatabaseChangeLogUpsertWithWhereUniqueWithoutAuditLogInput | AuditDatabaseChangeLogUpsertWithWhereUniqueWithoutAuditLogInput[]
    createMany?: AuditDatabaseChangeLogCreateManyAuditLogInputEnvelope
    set?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
    disconnect?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
    delete?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
    connect?: AuditDatabaseChangeLogWhereUniqueInput | AuditDatabaseChangeLogWhereUniqueInput[]
    update?: AuditDatabaseChangeLogUpdateWithWhereUniqueWithoutAuditLogInput | AuditDatabaseChangeLogUpdateWithWhereUniqueWithoutAuditLogInput[]
    updateMany?: AuditDatabaseChangeLogUpdateManyWithWhereWithoutAuditLogInput | AuditDatabaseChangeLogUpdateManyWithWhereWithoutAuditLogInput[]
    deleteMany?: AuditDatabaseChangeLogScalarWhereInput | AuditDatabaseChangeLogScalarWhereInput[]
  }

  export type AuditSensitiveOperationLogUncheckedUpdateManyWithoutAuditLogNestedInput = {
    create?: XOR<AuditSensitiveOperationLogCreateWithoutAuditLogInput, AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput> | AuditSensitiveOperationLogCreateWithoutAuditLogInput[] | AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput[]
    connectOrCreate?: AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput | AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput[]
    upsert?: AuditSensitiveOperationLogUpsertWithWhereUniqueWithoutAuditLogInput | AuditSensitiveOperationLogUpsertWithWhereUniqueWithoutAuditLogInput[]
    createMany?: AuditSensitiveOperationLogCreateManyAuditLogInputEnvelope
    set?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
    disconnect?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
    delete?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
    connect?: AuditSensitiveOperationLogWhereUniqueInput | AuditSensitiveOperationLogWhereUniqueInput[]
    update?: AuditSensitiveOperationLogUpdateWithWhereUniqueWithoutAuditLogInput | AuditSensitiveOperationLogUpdateWithWhereUniqueWithoutAuditLogInput[]
    updateMany?: AuditSensitiveOperationLogUpdateManyWithWhereWithoutAuditLogInput | AuditSensitiveOperationLogUpdateManyWithWhereWithoutAuditLogInput[]
    deleteMany?: AuditSensitiveOperationLogScalarWhereInput | AuditSensitiveOperationLogScalarWhereInput[]
  }

  export type AuditDatabaseChangeLogCreatechangedFieldsInput = {
    set: string[]
  }

  export type AuditLogCreateNestedOneWithoutDatabaseChangesInput = {
    create?: XOR<AuditLogCreateWithoutDatabaseChangesInput, AuditLogUncheckedCreateWithoutDatabaseChangesInput>
    connectOrCreate?: AuditLogCreateOrConnectWithoutDatabaseChangesInput
    connect?: AuditLogWhereUniqueInput
  }

  export type EnumDbOperationFieldUpdateOperationsInput = {
    set?: $Enums.DbOperation
  }

  export type AuditDatabaseChangeLogUpdatechangedFieldsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type AuditLogUpdateOneRequiredWithoutDatabaseChangesNestedInput = {
    create?: XOR<AuditLogCreateWithoutDatabaseChangesInput, AuditLogUncheckedCreateWithoutDatabaseChangesInput>
    connectOrCreate?: AuditLogCreateOrConnectWithoutDatabaseChangesInput
    upsert?: AuditLogUpsertWithoutDatabaseChangesInput
    connect?: AuditLogWhereUniqueInput
    update?: XOR<XOR<AuditLogUpdateToOneWithWhereWithoutDatabaseChangesInput, AuditLogUpdateWithoutDatabaseChangesInput>, AuditLogUncheckedUpdateWithoutDatabaseChangesInput>
  }

  export type AuditLogCreateNestedOneWithoutSensitiveOpsInput = {
    create?: XOR<AuditLogCreateWithoutSensitiveOpsInput, AuditLogUncheckedCreateWithoutSensitiveOpsInput>
    connectOrCreate?: AuditLogCreateOrConnectWithoutSensitiveOpsInput
    connect?: AuditLogWhereUniqueInput
  }

  export type AuditLogUpdateOneRequiredWithoutSensitiveOpsNestedInput = {
    create?: XOR<AuditLogCreateWithoutSensitiveOpsInput, AuditLogUncheckedCreateWithoutSensitiveOpsInput>
    connectOrCreate?: AuditLogCreateOrConnectWithoutSensitiveOpsInput
    upsert?: AuditLogUpsertWithoutSensitiveOpsInput
    connect?: AuditLogWhereUniqueInput
    update?: XOR<XOR<AuditLogUpdateToOneWithWhereWithoutSensitiveOpsInput, AuditLogUpdateWithoutSensitiveOpsInput>, AuditLogUncheckedUpdateWithoutSensitiveOpsInput>
  }

  export type EnumIntegrityCheckTypeFieldUpdateOperationsInput = {
    set?: $Enums.IntegrityCheckType
  }

  export type EnumCheckStatusFieldUpdateOperationsInput = {
    set?: $Enums.CheckStatus
  }

  export type AutomationExecutionCreateNestedManyWithoutTaskInput = {
    create?: XOR<AutomationExecutionCreateWithoutTaskInput, AutomationExecutionUncheckedCreateWithoutTaskInput> | AutomationExecutionCreateWithoutTaskInput[] | AutomationExecutionUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: AutomationExecutionCreateOrConnectWithoutTaskInput | AutomationExecutionCreateOrConnectWithoutTaskInput[]
    createMany?: AutomationExecutionCreateManyTaskInputEnvelope
    connect?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
  }

  export type UserCreateNestedOneWithoutCreatedAutomationTasksInput = {
    create?: XOR<UserCreateWithoutCreatedAutomationTasksInput, UserUncheckedCreateWithoutCreatedAutomationTasksInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedAutomationTasksInput
    connect?: UserWhereUniqueInput
  }

  export type AutomationExecutionUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<AutomationExecutionCreateWithoutTaskInput, AutomationExecutionUncheckedCreateWithoutTaskInput> | AutomationExecutionCreateWithoutTaskInput[] | AutomationExecutionUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: AutomationExecutionCreateOrConnectWithoutTaskInput | AutomationExecutionCreateOrConnectWithoutTaskInput[]
    createMany?: AutomationExecutionCreateManyTaskInputEnvelope
    connect?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
  }

  export type EnumAutomationTaskTypeFieldUpdateOperationsInput = {
    set?: $Enums.AutomationTaskType
  }

  export type EnumAutomationTaskStatusFieldUpdateOperationsInput = {
    set?: $Enums.AutomationTaskStatus
  }

  export type NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput = {
    set?: $Enums.AutomationExecutionStatus | null
  }

  export type AutomationExecutionUpdateManyWithoutTaskNestedInput = {
    create?: XOR<AutomationExecutionCreateWithoutTaskInput, AutomationExecutionUncheckedCreateWithoutTaskInput> | AutomationExecutionCreateWithoutTaskInput[] | AutomationExecutionUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: AutomationExecutionCreateOrConnectWithoutTaskInput | AutomationExecutionCreateOrConnectWithoutTaskInput[]
    upsert?: AutomationExecutionUpsertWithWhereUniqueWithoutTaskInput | AutomationExecutionUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: AutomationExecutionCreateManyTaskInputEnvelope
    set?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
    disconnect?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
    delete?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
    connect?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
    update?: AutomationExecutionUpdateWithWhereUniqueWithoutTaskInput | AutomationExecutionUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: AutomationExecutionUpdateManyWithWhereWithoutTaskInput | AutomationExecutionUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: AutomationExecutionScalarWhereInput | AutomationExecutionScalarWhereInput[]
  }

  export type UserUpdateOneWithoutCreatedAutomationTasksNestedInput = {
    create?: XOR<UserCreateWithoutCreatedAutomationTasksInput, UserUncheckedCreateWithoutCreatedAutomationTasksInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedAutomationTasksInput
    upsert?: UserUpsertWithoutCreatedAutomationTasksInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutCreatedAutomationTasksInput, UserUpdateWithoutCreatedAutomationTasksInput>, UserUncheckedUpdateWithoutCreatedAutomationTasksInput>
  }

  export type AutomationExecutionUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<AutomationExecutionCreateWithoutTaskInput, AutomationExecutionUncheckedCreateWithoutTaskInput> | AutomationExecutionCreateWithoutTaskInput[] | AutomationExecutionUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: AutomationExecutionCreateOrConnectWithoutTaskInput | AutomationExecutionCreateOrConnectWithoutTaskInput[]
    upsert?: AutomationExecutionUpsertWithWhereUniqueWithoutTaskInput | AutomationExecutionUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: AutomationExecutionCreateManyTaskInputEnvelope
    set?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
    disconnect?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
    delete?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
    connect?: AutomationExecutionWhereUniqueInput | AutomationExecutionWhereUniqueInput[]
    update?: AutomationExecutionUpdateWithWhereUniqueWithoutTaskInput | AutomationExecutionUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: AutomationExecutionUpdateManyWithWhereWithoutTaskInput | AutomationExecutionUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: AutomationExecutionScalarWhereInput | AutomationExecutionScalarWhereInput[]
  }

  export type AutomationTaskCreateNestedOneWithoutExecutionsInput = {
    create?: XOR<AutomationTaskCreateWithoutExecutionsInput, AutomationTaskUncheckedCreateWithoutExecutionsInput>
    connectOrCreate?: AutomationTaskCreateOrConnectWithoutExecutionsInput
    connect?: AutomationTaskWhereUniqueInput
  }

  export type EnumAutomationExecutionStatusFieldUpdateOperationsInput = {
    set?: $Enums.AutomationExecutionStatus
  }

  export type AutomationTaskUpdateOneRequiredWithoutExecutionsNestedInput = {
    create?: XOR<AutomationTaskCreateWithoutExecutionsInput, AutomationTaskUncheckedCreateWithoutExecutionsInput>
    connectOrCreate?: AutomationTaskCreateOrConnectWithoutExecutionsInput
    upsert?: AutomationTaskUpsertWithoutExecutionsInput
    connect?: AutomationTaskWhereUniqueInput
    update?: XOR<XOR<AutomationTaskUpdateToOneWithWhereWithoutExecutionsInput, AutomationTaskUpdateWithoutExecutionsInput>, AutomationTaskUncheckedUpdateWithoutExecutionsInput>
  }

  export type UserCreateNestedOneWithoutAdpPtoSchedulesInput = {
    create?: XOR<UserCreateWithoutAdpPtoSchedulesInput, UserUncheckedCreateWithoutAdpPtoSchedulesInput>
    connectOrCreate?: UserCreateOrConnectWithoutAdpPtoSchedulesInput
    connect?: UserWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutAdpPtoSchedulesNestedInput = {
    create?: XOR<UserCreateWithoutAdpPtoSchedulesInput, UserUncheckedCreateWithoutAdpPtoSchedulesInput>
    connectOrCreate?: UserCreateOrConnectWithoutAdpPtoSchedulesInput
    upsert?: UserUpsertWithoutAdpPtoSchedulesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAdpPtoSchedulesInput, UserUpdateWithoutAdpPtoSchedulesInput>, UserUncheckedUpdateWithoutAdpPtoSchedulesInput>
  }

  export type DevItemCreateNestedOneWithoutChildrenInput = {
    create?: XOR<DevItemCreateWithoutChildrenInput, DevItemUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: DevItemCreateOrConnectWithoutChildrenInput
    connect?: DevItemWhereUniqueInput
  }

  export type DevItemCreateNestedManyWithoutParentInput = {
    create?: XOR<DevItemCreateWithoutParentInput, DevItemUncheckedCreateWithoutParentInput> | DevItemCreateWithoutParentInput[] | DevItemUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutParentInput | DevItemCreateOrConnectWithoutParentInput[]
    createMany?: DevItemCreateManyParentInputEnvelope
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
  }

  export type UserCreateNestedOneWithoutDevItemsOwnedInput = {
    create?: XOR<UserCreateWithoutDevItemsOwnedInput, UserUncheckedCreateWithoutDevItemsOwnedInput>
    connectOrCreate?: UserCreateOrConnectWithoutDevItemsOwnedInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutDevItemsReportedInput = {
    create?: XOR<UserCreateWithoutDevItemsReportedInput, UserUncheckedCreateWithoutDevItemsReportedInput>
    connectOrCreate?: UserCreateOrConnectWithoutDevItemsReportedInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutDevItemsReviewedInput = {
    create?: XOR<UserCreateWithoutDevItemsReviewedInput, UserUncheckedCreateWithoutDevItemsReviewedInput>
    connectOrCreate?: UserCreateOrConnectWithoutDevItemsReviewedInput
    connect?: UserWhereUniqueInput
  }

  export type DevItemUncheckedCreateNestedManyWithoutParentInput = {
    create?: XOR<DevItemCreateWithoutParentInput, DevItemUncheckedCreateWithoutParentInput> | DevItemCreateWithoutParentInput[] | DevItemUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutParentInput | DevItemCreateOrConnectWithoutParentInput[]
    createMany?: DevItemCreateManyParentInputEnvelope
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
  }

  export type EnumDevItemTypeFieldUpdateOperationsInput = {
    set?: $Enums.DevItemType
  }

  export type EnumDevItemStatusFieldUpdateOperationsInput = {
    set?: $Enums.DevItemStatus
  }

  export type EnumDevItemPriorityFieldUpdateOperationsInput = {
    set?: $Enums.DevItemPriority
  }

  export type NullableEnumDevItemSeverityFieldUpdateOperationsInput = {
    set?: $Enums.DevItemSeverity | null
  }

  export type DevItemUpdateOneWithoutChildrenNestedInput = {
    create?: XOR<DevItemCreateWithoutChildrenInput, DevItemUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: DevItemCreateOrConnectWithoutChildrenInput
    upsert?: DevItemUpsertWithoutChildrenInput
    disconnect?: DevItemWhereInput | boolean
    delete?: DevItemWhereInput | boolean
    connect?: DevItemWhereUniqueInput
    update?: XOR<XOR<DevItemUpdateToOneWithWhereWithoutChildrenInput, DevItemUpdateWithoutChildrenInput>, DevItemUncheckedUpdateWithoutChildrenInput>
  }

  export type DevItemUpdateManyWithoutParentNestedInput = {
    create?: XOR<DevItemCreateWithoutParentInput, DevItemUncheckedCreateWithoutParentInput> | DevItemCreateWithoutParentInput[] | DevItemUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutParentInput | DevItemCreateOrConnectWithoutParentInput[]
    upsert?: DevItemUpsertWithWhereUniqueWithoutParentInput | DevItemUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: DevItemCreateManyParentInputEnvelope
    set?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    disconnect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    delete?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    update?: DevItemUpdateWithWhereUniqueWithoutParentInput | DevItemUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: DevItemUpdateManyWithWhereWithoutParentInput | DevItemUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
  }

  export type UserUpdateOneRequiredWithoutDevItemsOwnedNestedInput = {
    create?: XOR<UserCreateWithoutDevItemsOwnedInput, UserUncheckedCreateWithoutDevItemsOwnedInput>
    connectOrCreate?: UserCreateOrConnectWithoutDevItemsOwnedInput
    upsert?: UserUpsertWithoutDevItemsOwnedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDevItemsOwnedInput, UserUpdateWithoutDevItemsOwnedInput>, UserUncheckedUpdateWithoutDevItemsOwnedInput>
  }

  export type UserUpdateOneRequiredWithoutDevItemsReportedNestedInput = {
    create?: XOR<UserCreateWithoutDevItemsReportedInput, UserUncheckedCreateWithoutDevItemsReportedInput>
    connectOrCreate?: UserCreateOrConnectWithoutDevItemsReportedInput
    upsert?: UserUpsertWithoutDevItemsReportedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDevItemsReportedInput, UserUpdateWithoutDevItemsReportedInput>, UserUncheckedUpdateWithoutDevItemsReportedInput>
  }

  export type UserUpdateOneWithoutDevItemsReviewedNestedInput = {
    create?: XOR<UserCreateWithoutDevItemsReviewedInput, UserUncheckedCreateWithoutDevItemsReviewedInput>
    connectOrCreate?: UserCreateOrConnectWithoutDevItemsReviewedInput
    upsert?: UserUpsertWithoutDevItemsReviewedInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDevItemsReviewedInput, UserUpdateWithoutDevItemsReviewedInput>, UserUncheckedUpdateWithoutDevItemsReviewedInput>
  }

  export type DevItemUncheckedUpdateManyWithoutParentNestedInput = {
    create?: XOR<DevItemCreateWithoutParentInput, DevItemUncheckedCreateWithoutParentInput> | DevItemCreateWithoutParentInput[] | DevItemUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutParentInput | DevItemCreateOrConnectWithoutParentInput[]
    upsert?: DevItemUpsertWithWhereUniqueWithoutParentInput | DevItemUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: DevItemCreateManyParentInputEnvelope
    set?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    disconnect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    delete?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    update?: DevItemUpdateWithWhereUniqueWithoutParentInput | DevItemUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: DevItemUpdateManyWithWhereWithoutParentInput | DevItemUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutReleaseNotesInput = {
    create?: XOR<UserCreateWithoutReleaseNotesInput, UserUncheckedCreateWithoutReleaseNotesInput>
    connectOrCreate?: UserCreateOrConnectWithoutReleaseNotesInput
    connect?: UserWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutReleaseNotesNestedInput = {
    create?: XOR<UserCreateWithoutReleaseNotesInput, UserUncheckedCreateWithoutReleaseNotesInput>
    connectOrCreate?: UserCreateOrConnectWithoutReleaseNotesInput
    upsert?: UserUpsertWithoutReleaseNotesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutReleaseNotesInput, UserUpdateWithoutReleaseNotesInput>, UserUncheckedUpdateWithoutReleaseNotesInput>
  }

  export type FeedbackCreateattachmentsInput = {
    set: string[]
  }

  export type UserCreateNestedOneWithoutFeedbacksInput = {
    create?: XOR<UserCreateWithoutFeedbacksInput, UserUncheckedCreateWithoutFeedbacksInput>
    connectOrCreate?: UserCreateOrConnectWithoutFeedbacksInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAssignedFeedbacksInput = {
    create?: XOR<UserCreateWithoutAssignedFeedbacksInput, UserUncheckedCreateWithoutAssignedFeedbacksInput>
    connectOrCreate?: UserCreateOrConnectWithoutAssignedFeedbacksInput
    connect?: UserWhereUniqueInput
  }

  export type EnumFeedbackTypeFieldUpdateOperationsInput = {
    set?: $Enums.FeedbackType
  }

  export type FeedbackUpdateattachmentsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumFeedbackStatusFieldUpdateOperationsInput = {
    set?: $Enums.FeedbackStatus
  }

  export type NullableEnumFeedbackPriorityFieldUpdateOperationsInput = {
    set?: $Enums.FeedbackPriority | null
  }

  export type UserUpdateOneRequiredWithoutFeedbacksNestedInput = {
    create?: XOR<UserCreateWithoutFeedbacksInput, UserUncheckedCreateWithoutFeedbacksInput>
    connectOrCreate?: UserCreateOrConnectWithoutFeedbacksInput
    upsert?: UserUpsertWithoutFeedbacksInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutFeedbacksInput, UserUpdateWithoutFeedbacksInput>, UserUncheckedUpdateWithoutFeedbacksInput>
  }

  export type UserUpdateOneWithoutAssignedFeedbacksNestedInput = {
    create?: XOR<UserCreateWithoutAssignedFeedbacksInput, UserUncheckedCreateWithoutAssignedFeedbacksInput>
    connectOrCreate?: UserCreateOrConnectWithoutAssignedFeedbacksInput
    upsert?: UserUpsertWithoutAssignedFeedbacksInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAssignedFeedbacksInput, UserUpdateWithoutAssignedFeedbacksInput>, UserUncheckedUpdateWithoutAssignedFeedbacksInput>
  }

  export type OrganizationCreateNestedOneWithoutFormDefinitionsInput = {
    create?: XOR<OrganizationCreateWithoutFormDefinitionsInput, OrganizationUncheckedCreateWithoutFormDefinitionsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutFormDefinitionsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutCreatedFormDefinitionsInput = {
    create?: XOR<UserCreateWithoutCreatedFormDefinitionsInput, UserUncheckedCreateWithoutCreatedFormDefinitionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedFormDefinitionsInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutUpdatedFormDefinitionsInput = {
    create?: XOR<UserCreateWithoutUpdatedFormDefinitionsInput, UserUncheckedCreateWithoutUpdatedFormDefinitionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutUpdatedFormDefinitionsInput
    connect?: UserWhereUniqueInput
  }

  export type FormInstanceCreateNestedManyWithoutDefinitionInput = {
    create?: XOR<FormInstanceCreateWithoutDefinitionInput, FormInstanceUncheckedCreateWithoutDefinitionInput> | FormInstanceCreateWithoutDefinitionInput[] | FormInstanceUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutDefinitionInput | FormInstanceCreateOrConnectWithoutDefinitionInput[]
    createMany?: FormInstanceCreateManyDefinitionInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormVersionCreateNestedManyWithoutDefinitionInput = {
    create?: XOR<FormVersionCreateWithoutDefinitionInput, FormVersionUncheckedCreateWithoutDefinitionInput> | FormVersionCreateWithoutDefinitionInput[] | FormVersionUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutDefinitionInput | FormVersionCreateOrConnectWithoutDefinitionInput[]
    createMany?: FormVersionCreateManyDefinitionInputEnvelope
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
  }

  export type FormInstanceUncheckedCreateNestedManyWithoutDefinitionInput = {
    create?: XOR<FormInstanceCreateWithoutDefinitionInput, FormInstanceUncheckedCreateWithoutDefinitionInput> | FormInstanceCreateWithoutDefinitionInput[] | FormInstanceUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutDefinitionInput | FormInstanceCreateOrConnectWithoutDefinitionInput[]
    createMany?: FormInstanceCreateManyDefinitionInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormVersionUncheckedCreateNestedManyWithoutDefinitionInput = {
    create?: XOR<FormVersionCreateWithoutDefinitionInput, FormVersionUncheckedCreateWithoutDefinitionInput> | FormVersionCreateWithoutDefinitionInput[] | FormVersionUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutDefinitionInput | FormVersionCreateOrConnectWithoutDefinitionInput[]
    createMany?: FormVersionCreateManyDefinitionInputEnvelope
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
  }

  export type EnumFormStatusFieldUpdateOperationsInput = {
    set?: $Enums.FormStatus
  }

  export type OrganizationUpdateOneWithoutFormDefinitionsNestedInput = {
    create?: XOR<OrganizationCreateWithoutFormDefinitionsInput, OrganizationUncheckedCreateWithoutFormDefinitionsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutFormDefinitionsInput
    upsert?: OrganizationUpsertWithoutFormDefinitionsInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutFormDefinitionsInput, OrganizationUpdateWithoutFormDefinitionsInput>, OrganizationUncheckedUpdateWithoutFormDefinitionsInput>
  }

  export type UserUpdateOneRequiredWithoutCreatedFormDefinitionsNestedInput = {
    create?: XOR<UserCreateWithoutCreatedFormDefinitionsInput, UserUncheckedCreateWithoutCreatedFormDefinitionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedFormDefinitionsInput
    upsert?: UserUpsertWithoutCreatedFormDefinitionsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutCreatedFormDefinitionsInput, UserUpdateWithoutCreatedFormDefinitionsInput>, UserUncheckedUpdateWithoutCreatedFormDefinitionsInput>
  }

  export type UserUpdateOneWithoutUpdatedFormDefinitionsNestedInput = {
    create?: XOR<UserCreateWithoutUpdatedFormDefinitionsInput, UserUncheckedCreateWithoutUpdatedFormDefinitionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutUpdatedFormDefinitionsInput
    upsert?: UserUpsertWithoutUpdatedFormDefinitionsInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutUpdatedFormDefinitionsInput, UserUpdateWithoutUpdatedFormDefinitionsInput>, UserUncheckedUpdateWithoutUpdatedFormDefinitionsInput>
  }

  export type FormInstanceUpdateManyWithoutDefinitionNestedInput = {
    create?: XOR<FormInstanceCreateWithoutDefinitionInput, FormInstanceUncheckedCreateWithoutDefinitionInput> | FormInstanceCreateWithoutDefinitionInput[] | FormInstanceUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutDefinitionInput | FormInstanceCreateOrConnectWithoutDefinitionInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutDefinitionInput | FormInstanceUpsertWithWhereUniqueWithoutDefinitionInput[]
    createMany?: FormInstanceCreateManyDefinitionInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutDefinitionInput | FormInstanceUpdateWithWhereUniqueWithoutDefinitionInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutDefinitionInput | FormInstanceUpdateManyWithWhereWithoutDefinitionInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormVersionUpdateManyWithoutDefinitionNestedInput = {
    create?: XOR<FormVersionCreateWithoutDefinitionInput, FormVersionUncheckedCreateWithoutDefinitionInput> | FormVersionCreateWithoutDefinitionInput[] | FormVersionUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutDefinitionInput | FormVersionCreateOrConnectWithoutDefinitionInput[]
    upsert?: FormVersionUpsertWithWhereUniqueWithoutDefinitionInput | FormVersionUpsertWithWhereUniqueWithoutDefinitionInput[]
    createMany?: FormVersionCreateManyDefinitionInputEnvelope
    set?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    disconnect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    delete?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    update?: FormVersionUpdateWithWhereUniqueWithoutDefinitionInput | FormVersionUpdateWithWhereUniqueWithoutDefinitionInput[]
    updateMany?: FormVersionUpdateManyWithWhereWithoutDefinitionInput | FormVersionUpdateManyWithWhereWithoutDefinitionInput[]
    deleteMany?: FormVersionScalarWhereInput | FormVersionScalarWhereInput[]
  }

  export type FormInstanceUncheckedUpdateManyWithoutDefinitionNestedInput = {
    create?: XOR<FormInstanceCreateWithoutDefinitionInput, FormInstanceUncheckedCreateWithoutDefinitionInput> | FormInstanceCreateWithoutDefinitionInput[] | FormInstanceUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutDefinitionInput | FormInstanceCreateOrConnectWithoutDefinitionInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutDefinitionInput | FormInstanceUpsertWithWhereUniqueWithoutDefinitionInput[]
    createMany?: FormInstanceCreateManyDefinitionInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutDefinitionInput | FormInstanceUpdateWithWhereUniqueWithoutDefinitionInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutDefinitionInput | FormInstanceUpdateManyWithWhereWithoutDefinitionInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormVersionUncheckedUpdateManyWithoutDefinitionNestedInput = {
    create?: XOR<FormVersionCreateWithoutDefinitionInput, FormVersionUncheckedCreateWithoutDefinitionInput> | FormVersionCreateWithoutDefinitionInput[] | FormVersionUncheckedCreateWithoutDefinitionInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutDefinitionInput | FormVersionCreateOrConnectWithoutDefinitionInput[]
    upsert?: FormVersionUpsertWithWhereUniqueWithoutDefinitionInput | FormVersionUpsertWithWhereUniqueWithoutDefinitionInput[]
    createMany?: FormVersionCreateManyDefinitionInputEnvelope
    set?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    disconnect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    delete?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    update?: FormVersionUpdateWithWhereUniqueWithoutDefinitionInput | FormVersionUpdateWithWhereUniqueWithoutDefinitionInput[]
    updateMany?: FormVersionUpdateManyWithWhereWithoutDefinitionInput | FormVersionUpdateManyWithWhereWithoutDefinitionInput[]
    deleteMany?: FormVersionScalarWhereInput | FormVersionScalarWhereInput[]
  }

  export type FormInstanceCreateNestedManyWithoutVersionInput = {
    create?: XOR<FormInstanceCreateWithoutVersionInput, FormInstanceUncheckedCreateWithoutVersionInput> | FormInstanceCreateWithoutVersionInput[] | FormInstanceUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutVersionInput | FormInstanceCreateOrConnectWithoutVersionInput[]
    createMany?: FormInstanceCreateManyVersionInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormTranslationCreateNestedManyWithoutVersionInput = {
    create?: XOR<FormTranslationCreateWithoutVersionInput, FormTranslationUncheckedCreateWithoutVersionInput> | FormTranslationCreateWithoutVersionInput[] | FormTranslationUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: FormTranslationCreateOrConnectWithoutVersionInput | FormTranslationCreateOrConnectWithoutVersionInput[]
    createMany?: FormTranslationCreateManyVersionInputEnvelope
    connect?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
  }

  export type UserCreateNestedOneWithoutCreatedFormVersionsInput = {
    create?: XOR<UserCreateWithoutCreatedFormVersionsInput, UserUncheckedCreateWithoutCreatedFormVersionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedFormVersionsInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutReviewedFormVersionsInput = {
    create?: XOR<UserCreateWithoutReviewedFormVersionsInput, UserUncheckedCreateWithoutReviewedFormVersionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutReviewedFormVersionsInput
    connect?: UserWhereUniqueInput
  }

  export type FormDefinitionCreateNestedOneWithoutVersionsInput = {
    create?: XOR<FormDefinitionCreateWithoutVersionsInput, FormDefinitionUncheckedCreateWithoutVersionsInput>
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutVersionsInput
    connect?: FormDefinitionWhereUniqueInput
  }

  export type FormInstanceUncheckedCreateNestedManyWithoutVersionInput = {
    create?: XOR<FormInstanceCreateWithoutVersionInput, FormInstanceUncheckedCreateWithoutVersionInput> | FormInstanceCreateWithoutVersionInput[] | FormInstanceUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutVersionInput | FormInstanceCreateOrConnectWithoutVersionInput[]
    createMany?: FormInstanceCreateManyVersionInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormTranslationUncheckedCreateNestedManyWithoutVersionInput = {
    create?: XOR<FormTranslationCreateWithoutVersionInput, FormTranslationUncheckedCreateWithoutVersionInput> | FormTranslationCreateWithoutVersionInput[] | FormTranslationUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: FormTranslationCreateOrConnectWithoutVersionInput | FormTranslationCreateOrConnectWithoutVersionInput[]
    createMany?: FormTranslationCreateManyVersionInputEnvelope
    connect?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
  }

  export type EnumFormVersionStatusFieldUpdateOperationsInput = {
    set?: $Enums.FormVersionStatus
  }

  export type FormInstanceUpdateManyWithoutVersionNestedInput = {
    create?: XOR<FormInstanceCreateWithoutVersionInput, FormInstanceUncheckedCreateWithoutVersionInput> | FormInstanceCreateWithoutVersionInput[] | FormInstanceUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutVersionInput | FormInstanceCreateOrConnectWithoutVersionInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutVersionInput | FormInstanceUpsertWithWhereUniqueWithoutVersionInput[]
    createMany?: FormInstanceCreateManyVersionInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutVersionInput | FormInstanceUpdateWithWhereUniqueWithoutVersionInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutVersionInput | FormInstanceUpdateManyWithWhereWithoutVersionInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormTranslationUpdateManyWithoutVersionNestedInput = {
    create?: XOR<FormTranslationCreateWithoutVersionInput, FormTranslationUncheckedCreateWithoutVersionInput> | FormTranslationCreateWithoutVersionInput[] | FormTranslationUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: FormTranslationCreateOrConnectWithoutVersionInput | FormTranslationCreateOrConnectWithoutVersionInput[]
    upsert?: FormTranslationUpsertWithWhereUniqueWithoutVersionInput | FormTranslationUpsertWithWhereUniqueWithoutVersionInput[]
    createMany?: FormTranslationCreateManyVersionInputEnvelope
    set?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
    disconnect?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
    delete?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
    connect?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
    update?: FormTranslationUpdateWithWhereUniqueWithoutVersionInput | FormTranslationUpdateWithWhereUniqueWithoutVersionInput[]
    updateMany?: FormTranslationUpdateManyWithWhereWithoutVersionInput | FormTranslationUpdateManyWithWhereWithoutVersionInput[]
    deleteMany?: FormTranslationScalarWhereInput | FormTranslationScalarWhereInput[]
  }

  export type UserUpdateOneRequiredWithoutCreatedFormVersionsNestedInput = {
    create?: XOR<UserCreateWithoutCreatedFormVersionsInput, UserUncheckedCreateWithoutCreatedFormVersionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedFormVersionsInput
    upsert?: UserUpsertWithoutCreatedFormVersionsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutCreatedFormVersionsInput, UserUpdateWithoutCreatedFormVersionsInput>, UserUncheckedUpdateWithoutCreatedFormVersionsInput>
  }

  export type UserUpdateOneWithoutReviewedFormVersionsNestedInput = {
    create?: XOR<UserCreateWithoutReviewedFormVersionsInput, UserUncheckedCreateWithoutReviewedFormVersionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutReviewedFormVersionsInput
    upsert?: UserUpsertWithoutReviewedFormVersionsInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutReviewedFormVersionsInput, UserUpdateWithoutReviewedFormVersionsInput>, UserUncheckedUpdateWithoutReviewedFormVersionsInput>
  }

  export type FormDefinitionUpdateOneRequiredWithoutVersionsNestedInput = {
    create?: XOR<FormDefinitionCreateWithoutVersionsInput, FormDefinitionUncheckedCreateWithoutVersionsInput>
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutVersionsInput
    upsert?: FormDefinitionUpsertWithoutVersionsInput
    connect?: FormDefinitionWhereUniqueInput
    update?: XOR<XOR<FormDefinitionUpdateToOneWithWhereWithoutVersionsInput, FormDefinitionUpdateWithoutVersionsInput>, FormDefinitionUncheckedUpdateWithoutVersionsInput>
  }

  export type FormInstanceUncheckedUpdateManyWithoutVersionNestedInput = {
    create?: XOR<FormInstanceCreateWithoutVersionInput, FormInstanceUncheckedCreateWithoutVersionInput> | FormInstanceCreateWithoutVersionInput[] | FormInstanceUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutVersionInput | FormInstanceCreateOrConnectWithoutVersionInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutVersionInput | FormInstanceUpsertWithWhereUniqueWithoutVersionInput[]
    createMany?: FormInstanceCreateManyVersionInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutVersionInput | FormInstanceUpdateWithWhereUniqueWithoutVersionInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutVersionInput | FormInstanceUpdateManyWithWhereWithoutVersionInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormTranslationUncheckedUpdateManyWithoutVersionNestedInput = {
    create?: XOR<FormTranslationCreateWithoutVersionInput, FormTranslationUncheckedCreateWithoutVersionInput> | FormTranslationCreateWithoutVersionInput[] | FormTranslationUncheckedCreateWithoutVersionInput[]
    connectOrCreate?: FormTranslationCreateOrConnectWithoutVersionInput | FormTranslationCreateOrConnectWithoutVersionInput[]
    upsert?: FormTranslationUpsertWithWhereUniqueWithoutVersionInput | FormTranslationUpsertWithWhereUniqueWithoutVersionInput[]
    createMany?: FormTranslationCreateManyVersionInputEnvelope
    set?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
    disconnect?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
    delete?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
    connect?: FormTranslationWhereUniqueInput | FormTranslationWhereUniqueInput[]
    update?: FormTranslationUpdateWithWhereUniqueWithoutVersionInput | FormTranslationUpdateWithWhereUniqueWithoutVersionInput[]
    updateMany?: FormTranslationUpdateManyWithWhereWithoutVersionInput | FormTranslationUpdateManyWithWhereWithoutVersionInput[]
    deleteMany?: FormTranslationScalarWhereInput | FormTranslationScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutCreatedFormInstancesInput = {
    create?: XOR<UserCreateWithoutCreatedFormInstancesInput, UserUncheckedCreateWithoutCreatedFormInstancesInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedFormInstancesInput
    connect?: UserWhereUniqueInput
  }

  export type FormDefinitionCreateNestedOneWithoutInstancesInput = {
    create?: XOR<FormDefinitionCreateWithoutInstancesInput, FormDefinitionUncheckedCreateWithoutInstancesInput>
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutInstancesInput
    connect?: FormDefinitionWhereUniqueInput
  }

  export type FormVersionCreateNestedOneWithoutInstancesInput = {
    create?: XOR<FormVersionCreateWithoutInstancesInput, FormVersionUncheckedCreateWithoutInstancesInput>
    connectOrCreate?: FormVersionCreateOrConnectWithoutInstancesInput
    connect?: FormVersionWhereUniqueInput
  }

  export type ReleaseSnapshotCreateNestedOneWithoutInstancesInput = {
    create?: XOR<ReleaseSnapshotCreateWithoutInstancesInput, ReleaseSnapshotUncheckedCreateWithoutInstancesInput>
    connectOrCreate?: ReleaseSnapshotCreateOrConnectWithoutInstancesInput
    connect?: ReleaseSnapshotWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutSubmittedFormInstancesInput = {
    create?: XOR<UserCreateWithoutSubmittedFormInstancesInput, UserUncheckedCreateWithoutSubmittedFormInstancesInput>
    connectOrCreate?: UserCreateOrConnectWithoutSubmittedFormInstancesInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutUpdatedFormInstancesInput = {
    create?: XOR<UserCreateWithoutUpdatedFormInstancesInput, UserUncheckedCreateWithoutUpdatedFormInstancesInput>
    connectOrCreate?: UserCreateOrConnectWithoutUpdatedFormInstancesInput
    connect?: UserWhereUniqueInput
  }

  export type EnumFormInstanceStatusFieldUpdateOperationsInput = {
    set?: $Enums.FormInstanceStatus
  }

  export type UserUpdateOneRequiredWithoutCreatedFormInstancesNestedInput = {
    create?: XOR<UserCreateWithoutCreatedFormInstancesInput, UserUncheckedCreateWithoutCreatedFormInstancesInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedFormInstancesInput
    upsert?: UserUpsertWithoutCreatedFormInstancesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutCreatedFormInstancesInput, UserUpdateWithoutCreatedFormInstancesInput>, UserUncheckedUpdateWithoutCreatedFormInstancesInput>
  }

  export type FormDefinitionUpdateOneRequiredWithoutInstancesNestedInput = {
    create?: XOR<FormDefinitionCreateWithoutInstancesInput, FormDefinitionUncheckedCreateWithoutInstancesInput>
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutInstancesInput
    upsert?: FormDefinitionUpsertWithoutInstancesInput
    connect?: FormDefinitionWhereUniqueInput
    update?: XOR<XOR<FormDefinitionUpdateToOneWithWhereWithoutInstancesInput, FormDefinitionUpdateWithoutInstancesInput>, FormDefinitionUncheckedUpdateWithoutInstancesInput>
  }

  export type FormVersionUpdateOneRequiredWithoutInstancesNestedInput = {
    create?: XOR<FormVersionCreateWithoutInstancesInput, FormVersionUncheckedCreateWithoutInstancesInput>
    connectOrCreate?: FormVersionCreateOrConnectWithoutInstancesInput
    upsert?: FormVersionUpsertWithoutInstancesInput
    connect?: FormVersionWhereUniqueInput
    update?: XOR<XOR<FormVersionUpdateToOneWithWhereWithoutInstancesInput, FormVersionUpdateWithoutInstancesInput>, FormVersionUncheckedUpdateWithoutInstancesInput>
  }

  export type ReleaseSnapshotUpdateOneWithoutInstancesNestedInput = {
    create?: XOR<ReleaseSnapshotCreateWithoutInstancesInput, ReleaseSnapshotUncheckedCreateWithoutInstancesInput>
    connectOrCreate?: ReleaseSnapshotCreateOrConnectWithoutInstancesInput
    upsert?: ReleaseSnapshotUpsertWithoutInstancesInput
    disconnect?: ReleaseSnapshotWhereInput | boolean
    delete?: ReleaseSnapshotWhereInput | boolean
    connect?: ReleaseSnapshotWhereUniqueInput
    update?: XOR<XOR<ReleaseSnapshotUpdateToOneWithWhereWithoutInstancesInput, ReleaseSnapshotUpdateWithoutInstancesInput>, ReleaseSnapshotUncheckedUpdateWithoutInstancesInput>
  }

  export type UserUpdateOneWithoutSubmittedFormInstancesNestedInput = {
    create?: XOR<UserCreateWithoutSubmittedFormInstancesInput, UserUncheckedCreateWithoutSubmittedFormInstancesInput>
    connectOrCreate?: UserCreateOrConnectWithoutSubmittedFormInstancesInput
    upsert?: UserUpsertWithoutSubmittedFormInstancesInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutSubmittedFormInstancesInput, UserUpdateWithoutSubmittedFormInstancesInput>, UserUncheckedUpdateWithoutSubmittedFormInstancesInput>
  }

  export type UserUpdateOneWithoutUpdatedFormInstancesNestedInput = {
    create?: XOR<UserCreateWithoutUpdatedFormInstancesInput, UserUncheckedCreateWithoutUpdatedFormInstancesInput>
    connectOrCreate?: UserCreateOrConnectWithoutUpdatedFormInstancesInput
    upsert?: UserUpsertWithoutUpdatedFormInstancesInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutUpdatedFormInstancesInput, UserUpdateWithoutUpdatedFormInstancesInput>, UserUncheckedUpdateWithoutUpdatedFormInstancesInput>
  }

  export type FormVersionCreateNestedOneWithoutTranslationsInput = {
    create?: XOR<FormVersionCreateWithoutTranslationsInput, FormVersionUncheckedCreateWithoutTranslationsInput>
    connectOrCreate?: FormVersionCreateOrConnectWithoutTranslationsInput
    connect?: FormVersionWhereUniqueInput
  }

  export type FormVersionUpdateOneRequiredWithoutTranslationsNestedInput = {
    create?: XOR<FormVersionCreateWithoutTranslationsInput, FormVersionUncheckedCreateWithoutTranslationsInput>
    connectOrCreate?: FormVersionCreateOrConnectWithoutTranslationsInput
    upsert?: FormVersionUpsertWithoutTranslationsInput
    connect?: FormVersionWhereUniqueInput
    update?: XOR<XOR<FormVersionUpdateToOneWithWhereWithoutTranslationsInput, FormVersionUpdateWithoutTranslationsInput>, FormVersionUncheckedUpdateWithoutTranslationsInput>
  }

  export type UserCreateNestedOneWithoutCreatedFormTemplatesInput = {
    create?: XOR<UserCreateWithoutCreatedFormTemplatesInput, UserUncheckedCreateWithoutCreatedFormTemplatesInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedFormTemplatesInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutUpdatedFormTemplatesInput = {
    create?: XOR<UserCreateWithoutUpdatedFormTemplatesInput, UserUncheckedCreateWithoutUpdatedFormTemplatesInput>
    connectOrCreate?: UserCreateOrConnectWithoutUpdatedFormTemplatesInput
    connect?: UserWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutCreatedFormTemplatesNestedInput = {
    create?: XOR<UserCreateWithoutCreatedFormTemplatesInput, UserUncheckedCreateWithoutCreatedFormTemplatesInput>
    connectOrCreate?: UserCreateOrConnectWithoutCreatedFormTemplatesInput
    upsert?: UserUpsertWithoutCreatedFormTemplatesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutCreatedFormTemplatesInput, UserUpdateWithoutCreatedFormTemplatesInput>, UserUncheckedUpdateWithoutCreatedFormTemplatesInput>
  }

  export type UserUpdateOneWithoutUpdatedFormTemplatesNestedInput = {
    create?: XOR<UserCreateWithoutUpdatedFormTemplatesInput, UserUncheckedCreateWithoutUpdatedFormTemplatesInput>
    connectOrCreate?: UserCreateOrConnectWithoutUpdatedFormTemplatesInput
    upsert?: UserUpsertWithoutUpdatedFormTemplatesInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutUpdatedFormTemplatesInput, UserUpdateWithoutUpdatedFormTemplatesInput>, UserUncheckedUpdateWithoutUpdatedFormTemplatesInput>
  }

  export type FormInstanceCreateNestedManyWithoutSnapshotInput = {
    create?: XOR<FormInstanceCreateWithoutSnapshotInput, FormInstanceUncheckedCreateWithoutSnapshotInput> | FormInstanceCreateWithoutSnapshotInput[] | FormInstanceUncheckedCreateWithoutSnapshotInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutSnapshotInput | FormInstanceCreateOrConnectWithoutSnapshotInput[]
    createMany?: FormInstanceCreateManySnapshotInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormInstanceUncheckedCreateNestedManyWithoutSnapshotInput = {
    create?: XOR<FormInstanceCreateWithoutSnapshotInput, FormInstanceUncheckedCreateWithoutSnapshotInput> | FormInstanceCreateWithoutSnapshotInput[] | FormInstanceUncheckedCreateWithoutSnapshotInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutSnapshotInput | FormInstanceCreateOrConnectWithoutSnapshotInput[]
    createMany?: FormInstanceCreateManySnapshotInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type EnumReleaseSnapshotStatusFieldUpdateOperationsInput = {
    set?: $Enums.ReleaseSnapshotStatus
  }

  export type FormInstanceUpdateManyWithoutSnapshotNestedInput = {
    create?: XOR<FormInstanceCreateWithoutSnapshotInput, FormInstanceUncheckedCreateWithoutSnapshotInput> | FormInstanceCreateWithoutSnapshotInput[] | FormInstanceUncheckedCreateWithoutSnapshotInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutSnapshotInput | FormInstanceCreateOrConnectWithoutSnapshotInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutSnapshotInput | FormInstanceUpsertWithWhereUniqueWithoutSnapshotInput[]
    createMany?: FormInstanceCreateManySnapshotInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutSnapshotInput | FormInstanceUpdateWithWhereUniqueWithoutSnapshotInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutSnapshotInput | FormInstanceUpdateManyWithWhereWithoutSnapshotInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormInstanceUncheckedUpdateManyWithoutSnapshotNestedInput = {
    create?: XOR<FormInstanceCreateWithoutSnapshotInput, FormInstanceUncheckedCreateWithoutSnapshotInput> | FormInstanceCreateWithoutSnapshotInput[] | FormInstanceUncheckedCreateWithoutSnapshotInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutSnapshotInput | FormInstanceCreateOrConnectWithoutSnapshotInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutSnapshotInput | FormInstanceUpsertWithWhereUniqueWithoutSnapshotInput[]
    createMany?: FormInstanceCreateManySnapshotInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutSnapshotInput | FormInstanceUpdateWithWhereUniqueWithoutSnapshotInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutSnapshotInput | FormInstanceUpdateManyWithWhereWithoutSnapshotInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type OrganizationCreateNestedOneWithoutFormWebhooksInput = {
    create?: XOR<OrganizationCreateWithoutFormWebhooksInput, OrganizationUncheckedCreateWithoutFormWebhooksInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutFormWebhooksInput
    connect?: OrganizationWhereUniqueInput
  }

  export type FormWebhookLogCreateNestedManyWithoutWebhookInput = {
    create?: XOR<FormWebhookLogCreateWithoutWebhookInput, FormWebhookLogUncheckedCreateWithoutWebhookInput> | FormWebhookLogCreateWithoutWebhookInput[] | FormWebhookLogUncheckedCreateWithoutWebhookInput[]
    connectOrCreate?: FormWebhookLogCreateOrConnectWithoutWebhookInput | FormWebhookLogCreateOrConnectWithoutWebhookInput[]
    createMany?: FormWebhookLogCreateManyWebhookInputEnvelope
    connect?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
  }

  export type FormWebhookLogUncheckedCreateNestedManyWithoutWebhookInput = {
    create?: XOR<FormWebhookLogCreateWithoutWebhookInput, FormWebhookLogUncheckedCreateWithoutWebhookInput> | FormWebhookLogCreateWithoutWebhookInput[] | FormWebhookLogUncheckedCreateWithoutWebhookInput[]
    connectOrCreate?: FormWebhookLogCreateOrConnectWithoutWebhookInput | FormWebhookLogCreateOrConnectWithoutWebhookInput[]
    createMany?: FormWebhookLogCreateManyWebhookInputEnvelope
    connect?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
  }

  export type OrganizationUpdateOneWithoutFormWebhooksNestedInput = {
    create?: XOR<OrganizationCreateWithoutFormWebhooksInput, OrganizationUncheckedCreateWithoutFormWebhooksInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutFormWebhooksInput
    upsert?: OrganizationUpsertWithoutFormWebhooksInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutFormWebhooksInput, OrganizationUpdateWithoutFormWebhooksInput>, OrganizationUncheckedUpdateWithoutFormWebhooksInput>
  }

  export type FormWebhookLogUpdateManyWithoutWebhookNestedInput = {
    create?: XOR<FormWebhookLogCreateWithoutWebhookInput, FormWebhookLogUncheckedCreateWithoutWebhookInput> | FormWebhookLogCreateWithoutWebhookInput[] | FormWebhookLogUncheckedCreateWithoutWebhookInput[]
    connectOrCreate?: FormWebhookLogCreateOrConnectWithoutWebhookInput | FormWebhookLogCreateOrConnectWithoutWebhookInput[]
    upsert?: FormWebhookLogUpsertWithWhereUniqueWithoutWebhookInput | FormWebhookLogUpsertWithWhereUniqueWithoutWebhookInput[]
    createMany?: FormWebhookLogCreateManyWebhookInputEnvelope
    set?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
    disconnect?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
    delete?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
    connect?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
    update?: FormWebhookLogUpdateWithWhereUniqueWithoutWebhookInput | FormWebhookLogUpdateWithWhereUniqueWithoutWebhookInput[]
    updateMany?: FormWebhookLogUpdateManyWithWhereWithoutWebhookInput | FormWebhookLogUpdateManyWithWhereWithoutWebhookInput[]
    deleteMany?: FormWebhookLogScalarWhereInput | FormWebhookLogScalarWhereInput[]
  }

  export type FormWebhookLogUncheckedUpdateManyWithoutWebhookNestedInput = {
    create?: XOR<FormWebhookLogCreateWithoutWebhookInput, FormWebhookLogUncheckedCreateWithoutWebhookInput> | FormWebhookLogCreateWithoutWebhookInput[] | FormWebhookLogUncheckedCreateWithoutWebhookInput[]
    connectOrCreate?: FormWebhookLogCreateOrConnectWithoutWebhookInput | FormWebhookLogCreateOrConnectWithoutWebhookInput[]
    upsert?: FormWebhookLogUpsertWithWhereUniqueWithoutWebhookInput | FormWebhookLogUpsertWithWhereUniqueWithoutWebhookInput[]
    createMany?: FormWebhookLogCreateManyWebhookInputEnvelope
    set?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
    disconnect?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
    delete?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
    connect?: FormWebhookLogWhereUniqueInput | FormWebhookLogWhereUniqueInput[]
    update?: FormWebhookLogUpdateWithWhereUniqueWithoutWebhookInput | FormWebhookLogUpdateWithWhereUniqueWithoutWebhookInput[]
    updateMany?: FormWebhookLogUpdateManyWithWhereWithoutWebhookInput | FormWebhookLogUpdateManyWithWhereWithoutWebhookInput[]
    deleteMany?: FormWebhookLogScalarWhereInput | FormWebhookLogScalarWhereInput[]
  }

  export type FormWebhookCreateNestedOneWithoutLogsInput = {
    create?: XOR<FormWebhookCreateWithoutLogsInput, FormWebhookUncheckedCreateWithoutLogsInput>
    connectOrCreate?: FormWebhookCreateOrConnectWithoutLogsInput
    connect?: FormWebhookWhereUniqueInput
  }

  export type FormWebhookUpdateOneRequiredWithoutLogsNestedInput = {
    create?: XOR<FormWebhookCreateWithoutLogsInput, FormWebhookUncheckedCreateWithoutLogsInput>
    connectOrCreate?: FormWebhookCreateOrConnectWithoutLogsInput
    upsert?: FormWebhookUpsertWithoutLogsInput
    connect?: FormWebhookWhereUniqueInput
    update?: XOR<XOR<FormWebhookUpdateToOneWithWhereWithoutLogsInput, FormWebhookUpdateWithoutLogsInput>, FormWebhookUncheckedUpdateWithoutLogsInput>
  }

  export type ApprovalInstanceCreateNestedManyWithoutInitiatorInput = {
    create?: XOR<ApprovalInstanceCreateWithoutInitiatorInput, ApprovalInstanceUncheckedCreateWithoutInitiatorInput> | ApprovalInstanceCreateWithoutInitiatorInput[] | ApprovalInstanceUncheckedCreateWithoutInitiatorInput[]
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutInitiatorInput | ApprovalInstanceCreateOrConnectWithoutInitiatorInput[]
    createMany?: ApprovalInstanceCreateManyInitiatorInputEnvelope
    connect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
  }

  export type ApprovalTaskLogCreateNestedManyWithoutOperatorInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutOperatorInput, ApprovalTaskLogUncheckedCreateWithoutOperatorInput> | ApprovalTaskLogCreateWithoutOperatorInput[] | ApprovalTaskLogUncheckedCreateWithoutOperatorInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutOperatorInput | ApprovalTaskLogCreateOrConnectWithoutOperatorInput[]
    createMany?: ApprovalTaskLogCreateManyOperatorInputEnvelope
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
  }

  export type ApprovalTaskLogCreateNestedManyWithoutTargetUserInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutTargetUserInput, ApprovalTaskLogUncheckedCreateWithoutTargetUserInput> | ApprovalTaskLogCreateWithoutTargetUserInput[] | ApprovalTaskLogUncheckedCreateWithoutTargetUserInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutTargetUserInput | ApprovalTaskLogCreateOrConnectWithoutTargetUserInput[]
    createMany?: ApprovalTaskLogCreateManyTargetUserInputEnvelope
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
  }

  export type ApprovalAdminExportCreateNestedManyWithoutRequesterInput = {
    create?: XOR<ApprovalAdminExportCreateWithoutRequesterInput, ApprovalAdminExportUncheckedCreateWithoutRequesterInput> | ApprovalAdminExportCreateWithoutRequesterInput[] | ApprovalAdminExportUncheckedCreateWithoutRequesterInput[]
    connectOrCreate?: ApprovalAdminExportCreateOrConnectWithoutRequesterInput | ApprovalAdminExportCreateOrConnectWithoutRequesterInput[]
    createMany?: ApprovalAdminExportCreateManyRequesterInputEnvelope
    connect?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
  }

  export type ContractRequestCreateNestedManyWithoutCreatorInput = {
    create?: XOR<ContractRequestCreateWithoutCreatorInput, ContractRequestUncheckedCreateWithoutCreatorInput> | ContractRequestCreateWithoutCreatorInput[] | ContractRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ContractRequestCreateOrConnectWithoutCreatorInput | ContractRequestCreateOrConnectWithoutCreatorInput[]
    createMany?: ContractRequestCreateManyCreatorInputEnvelope
    connect?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
  }

  export type ExpenseRequestCreateNestedManyWithoutCreatorInput = {
    create?: XOR<ExpenseRequestCreateWithoutCreatorInput, ExpenseRequestUncheckedCreateWithoutCreatorInput> | ExpenseRequestCreateWithoutCreatorInput[] | ExpenseRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ExpenseRequestCreateOrConnectWithoutCreatorInput | ExpenseRequestCreateOrConnectWithoutCreatorInput[]
    createMany?: ExpenseRequestCreateManyCreatorInputEnvelope
    connect?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
  }

  export type PurchaseRequestCreateNestedManyWithoutCreatorInput = {
    create?: XOR<PurchaseRequestCreateWithoutCreatorInput, PurchaseRequestUncheckedCreateWithoutCreatorInput> | PurchaseRequestCreateWithoutCreatorInput[] | PurchaseRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: PurchaseRequestCreateOrConnectWithoutCreatorInput | PurchaseRequestCreateOrConnectWithoutCreatorInput[]
    createMany?: PurchaseRequestCreateManyCreatorInputEnvelope
    connect?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
  }

  export type AuditLogCreateNestedManyWithoutUserInput = {
    create?: XOR<AuditLogCreateWithoutUserInput, AuditLogUncheckedCreateWithoutUserInput> | AuditLogCreateWithoutUserInput[] | AuditLogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AuditLogCreateOrConnectWithoutUserInput | AuditLogCreateOrConnectWithoutUserInput[]
    createMany?: AuditLogCreateManyUserInputEnvelope
    connect?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
  }

  export type AutomationTaskCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<AutomationTaskCreateWithoutCreatedByInput, AutomationTaskUncheckedCreateWithoutCreatedByInput> | AutomationTaskCreateWithoutCreatedByInput[] | AutomationTaskUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: AutomationTaskCreateOrConnectWithoutCreatedByInput | AutomationTaskCreateOrConnectWithoutCreatedByInput[]
    createMany?: AutomationTaskCreateManyCreatedByInputEnvelope
    connect?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
  }

  export type FormDefinitionCreateNestedManyWithoutCreatorInput = {
    create?: XOR<FormDefinitionCreateWithoutCreatorInput, FormDefinitionUncheckedCreateWithoutCreatorInput> | FormDefinitionCreateWithoutCreatorInput[] | FormDefinitionUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutCreatorInput | FormDefinitionCreateOrConnectWithoutCreatorInput[]
    createMany?: FormDefinitionCreateManyCreatorInputEnvelope
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
  }

  export type FormDefinitionCreateNestedManyWithoutUpdaterInput = {
    create?: XOR<FormDefinitionCreateWithoutUpdaterInput, FormDefinitionUncheckedCreateWithoutUpdaterInput> | FormDefinitionCreateWithoutUpdaterInput[] | FormDefinitionUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutUpdaterInput | FormDefinitionCreateOrConnectWithoutUpdaterInput[]
    createMany?: FormDefinitionCreateManyUpdaterInputEnvelope
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
  }

  export type FormInstanceCreateNestedManyWithoutCreatorInput = {
    create?: XOR<FormInstanceCreateWithoutCreatorInput, FormInstanceUncheckedCreateWithoutCreatorInput> | FormInstanceCreateWithoutCreatorInput[] | FormInstanceUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutCreatorInput | FormInstanceCreateOrConnectWithoutCreatorInput[]
    createMany?: FormInstanceCreateManyCreatorInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormInstanceCreateNestedManyWithoutSubmitterInput = {
    create?: XOR<FormInstanceCreateWithoutSubmitterInput, FormInstanceUncheckedCreateWithoutSubmitterInput> | FormInstanceCreateWithoutSubmitterInput[] | FormInstanceUncheckedCreateWithoutSubmitterInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutSubmitterInput | FormInstanceCreateOrConnectWithoutSubmitterInput[]
    createMany?: FormInstanceCreateManySubmitterInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormInstanceCreateNestedManyWithoutUpdaterInput = {
    create?: XOR<FormInstanceCreateWithoutUpdaterInput, FormInstanceUncheckedCreateWithoutUpdaterInput> | FormInstanceCreateWithoutUpdaterInput[] | FormInstanceUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutUpdaterInput | FormInstanceCreateOrConnectWithoutUpdaterInput[]
    createMany?: FormInstanceCreateManyUpdaterInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormTemplateCreateNestedManyWithoutCreatorInput = {
    create?: XOR<FormTemplateCreateWithoutCreatorInput, FormTemplateUncheckedCreateWithoutCreatorInput> | FormTemplateCreateWithoutCreatorInput[] | FormTemplateUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormTemplateCreateOrConnectWithoutCreatorInput | FormTemplateCreateOrConnectWithoutCreatorInput[]
    createMany?: FormTemplateCreateManyCreatorInputEnvelope
    connect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
  }

  export type FormTemplateCreateNestedManyWithoutUpdaterInput = {
    create?: XOR<FormTemplateCreateWithoutUpdaterInput, FormTemplateUncheckedCreateWithoutUpdaterInput> | FormTemplateCreateWithoutUpdaterInput[] | FormTemplateUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormTemplateCreateOrConnectWithoutUpdaterInput | FormTemplateCreateOrConnectWithoutUpdaterInput[]
    createMany?: FormTemplateCreateManyUpdaterInputEnvelope
    connect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
  }

  export type FormVersionCreateNestedManyWithoutCreatorInput = {
    create?: XOR<FormVersionCreateWithoutCreatorInput, FormVersionUncheckedCreateWithoutCreatorInput> | FormVersionCreateWithoutCreatorInput[] | FormVersionUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutCreatorInput | FormVersionCreateOrConnectWithoutCreatorInput[]
    createMany?: FormVersionCreateManyCreatorInputEnvelope
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
  }

  export type FormVersionCreateNestedManyWithoutReviewerInput = {
    create?: XOR<FormVersionCreateWithoutReviewerInput, FormVersionUncheckedCreateWithoutReviewerInput> | FormVersionCreateWithoutReviewerInput[] | FormVersionUncheckedCreateWithoutReviewerInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutReviewerInput | FormVersionCreateOrConnectWithoutReviewerInput[]
    createMany?: FormVersionCreateManyReviewerInputEnvelope
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
  }

  export type UserRoleCreateNestedManyWithoutUserInput = {
    create?: XOR<UserRoleCreateWithoutUserInput, UserRoleUncheckedCreateWithoutUserInput> | UserRoleCreateWithoutUserInput[] | UserRoleUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutUserInput | UserRoleCreateOrConnectWithoutUserInput[]
    createMany?: UserRoleCreateManyUserInputEnvelope
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
  }

  export type WorkflowRoleUserCreateNestedManyWithoutUserInput = {
    create?: XOR<WorkflowRoleUserCreateWithoutUserInput, WorkflowRoleUserUncheckedCreateWithoutUserInput> | WorkflowRoleUserCreateWithoutUserInput[] | WorkflowRoleUserUncheckedCreateWithoutUserInput[]
    connectOrCreate?: WorkflowRoleUserCreateOrConnectWithoutUserInput | WorkflowRoleUserCreateOrConnectWithoutUserInput[]
    createMany?: WorkflowRoleUserCreateManyUserInputEnvelope
    connect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
  }

  export type UserDepartmentCreateNestedManyWithoutUserInput = {
    create?: XOR<UserDepartmentCreateWithoutUserInput, UserDepartmentUncheckedCreateWithoutUserInput> | UserDepartmentCreateWithoutUserInput[] | UserDepartmentUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutUserInput | UserDepartmentCreateOrConnectWithoutUserInput[]
    createMany?: UserDepartmentCreateManyUserInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type UserDepartmentCreateNestedManyWithoutManagerInput = {
    create?: XOR<UserDepartmentCreateWithoutManagerInput, UserDepartmentUncheckedCreateWithoutManagerInput> | UserDepartmentCreateWithoutManagerInput[] | UserDepartmentUncheckedCreateWithoutManagerInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutManagerInput | UserDepartmentCreateOrConnectWithoutManagerInput[]
    createMany?: UserDepartmentCreateManyManagerInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type NotificationLogCreateNestedManyWithoutRecipientInput = {
    create?: XOR<NotificationLogCreateWithoutRecipientInput, NotificationLogUncheckedCreateWithoutRecipientInput> | NotificationLogCreateWithoutRecipientInput[] | NotificationLogUncheckedCreateWithoutRecipientInput[]
    connectOrCreate?: NotificationLogCreateOrConnectWithoutRecipientInput | NotificationLogCreateOrConnectWithoutRecipientInput[]
    createMany?: NotificationLogCreateManyRecipientInputEnvelope
    connect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
  }

  export type NotificationMessageCreateNestedManyWithoutUserInput = {
    create?: XOR<NotificationMessageCreateWithoutUserInput, NotificationMessageUncheckedCreateWithoutUserInput> | NotificationMessageCreateWithoutUserInput[] | NotificationMessageUncheckedCreateWithoutUserInput[]
    connectOrCreate?: NotificationMessageCreateOrConnectWithoutUserInput | NotificationMessageCreateOrConnectWithoutUserInput[]
    createMany?: NotificationMessageCreateManyUserInputEnvelope
    connect?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
  }

  export type UserDelegationSettingCreateNestedManyWithoutUserInput = {
    create?: XOR<UserDelegationSettingCreateWithoutUserInput, UserDelegationSettingUncheckedCreateWithoutUserInput> | UserDelegationSettingCreateWithoutUserInput[] | UserDelegationSettingUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserDelegationSettingCreateOrConnectWithoutUserInput | UserDelegationSettingCreateOrConnectWithoutUserInput[]
    createMany?: UserDelegationSettingCreateManyUserInputEnvelope
    connect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
  }

  export type UserDelegationSettingCreateNestedManyWithoutDelegateUserInput = {
    create?: XOR<UserDelegationSettingCreateWithoutDelegateUserInput, UserDelegationSettingUncheckedCreateWithoutDelegateUserInput> | UserDelegationSettingCreateWithoutDelegateUserInput[] | UserDelegationSettingUncheckedCreateWithoutDelegateUserInput[]
    connectOrCreate?: UserDelegationSettingCreateOrConnectWithoutDelegateUserInput | UserDelegationSettingCreateOrConnectWithoutDelegateUserInput[]
    createMany?: UserDelegationSettingCreateManyDelegateUserInputEnvelope
    connect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
  }

  export type KnowledgeArticleCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<KnowledgeArticleCreateWithoutCreatedByInput, KnowledgeArticleUncheckedCreateWithoutCreatedByInput> | KnowledgeArticleCreateWithoutCreatedByInput[] | KnowledgeArticleUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutCreatedByInput | KnowledgeArticleCreateOrConnectWithoutCreatedByInput[]
    createMany?: KnowledgeArticleCreateManyCreatedByInputEnvelope
    connect?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
  }

  export type AIQALogCreateNestedManyWithoutUserInput = {
    create?: XOR<AIQALogCreateWithoutUserInput, AIQALogUncheckedCreateWithoutUserInput> | AIQALogCreateWithoutUserInput[] | AIQALogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AIQALogCreateOrConnectWithoutUserInput | AIQALogCreateOrConnectWithoutUserInput[]
    createMany?: AIQALogCreateManyUserInputEnvelope
    connect?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
  }

  export type DocumentViewCreateNestedManyWithoutUserInput = {
    create?: XOR<DocumentViewCreateWithoutUserInput, DocumentViewUncheckedCreateWithoutUserInput> | DocumentViewCreateWithoutUserInput[] | DocumentViewUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutUserInput | DocumentViewCreateOrConnectWithoutUserInput[]
    createMany?: DocumentViewCreateManyUserInputEnvelope
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
  }

  export type DocumentLikeCreateNestedManyWithoutUserInput = {
    create?: XOR<DocumentLikeCreateWithoutUserInput, DocumentLikeUncheckedCreateWithoutUserInput> | DocumentLikeCreateWithoutUserInput[] | DocumentLikeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutUserInput | DocumentLikeCreateOrConnectWithoutUserInput[]
    createMany?: DocumentLikeCreateManyUserInputEnvelope
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
  }

  export type DocumentCommentCreateNestedManyWithoutUserInput = {
    create?: XOR<DocumentCommentCreateWithoutUserInput, DocumentCommentUncheckedCreateWithoutUserInput> | DocumentCommentCreateWithoutUserInput[] | DocumentCommentUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutUserInput | DocumentCommentCreateOrConnectWithoutUserInput[]
    createMany?: DocumentCommentCreateManyUserInputEnvelope
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
  }

  export type UserMentionCreateNestedManyWithoutMentionedUserInput = {
    create?: XOR<UserMentionCreateWithoutMentionedUserInput, UserMentionUncheckedCreateWithoutMentionedUserInput> | UserMentionCreateWithoutMentionedUserInput[] | UserMentionUncheckedCreateWithoutMentionedUserInput[]
    connectOrCreate?: UserMentionCreateOrConnectWithoutMentionedUserInput | UserMentionCreateOrConnectWithoutMentionedUserInput[]
    createMany?: UserMentionCreateManyMentionedUserInputEnvelope
    connect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
  }

  export type StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput = {
    create?: XOR<StrategicObjectiveAssignmentCreateWithoutAssigneeInput, StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput> | StrategicObjectiveAssignmentCreateWithoutAssigneeInput[] | StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput | StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput[]
    createMany?: StrategicObjectiveAssignmentCreateManyAssigneeInputEnvelope
    connect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
  }

  export type FeedbackCreateNestedManyWithoutUserInput = {
    create?: XOR<FeedbackCreateWithoutUserInput, FeedbackUncheckedCreateWithoutUserInput> | FeedbackCreateWithoutUserInput[] | FeedbackUncheckedCreateWithoutUserInput[]
    connectOrCreate?: FeedbackCreateOrConnectWithoutUserInput | FeedbackCreateOrConnectWithoutUserInput[]
    createMany?: FeedbackCreateManyUserInputEnvelope
    connect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
  }

  export type FeedbackCreateNestedManyWithoutAssigneeInput = {
    create?: XOR<FeedbackCreateWithoutAssigneeInput, FeedbackUncheckedCreateWithoutAssigneeInput> | FeedbackCreateWithoutAssigneeInput[] | FeedbackUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: FeedbackCreateOrConnectWithoutAssigneeInput | FeedbackCreateOrConnectWithoutAssigneeInput[]
    createMany?: FeedbackCreateManyAssigneeInputEnvelope
    connect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
  }

  export type DevItemCreateNestedManyWithoutOwnerInput = {
    create?: XOR<DevItemCreateWithoutOwnerInput, DevItemUncheckedCreateWithoutOwnerInput> | DevItemCreateWithoutOwnerInput[] | DevItemUncheckedCreateWithoutOwnerInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutOwnerInput | DevItemCreateOrConnectWithoutOwnerInput[]
    createMany?: DevItemCreateManyOwnerInputEnvelope
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
  }

  export type DevItemCreateNestedManyWithoutReporterInput = {
    create?: XOR<DevItemCreateWithoutReporterInput, DevItemUncheckedCreateWithoutReporterInput> | DevItemCreateWithoutReporterInput[] | DevItemUncheckedCreateWithoutReporterInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutReporterInput | DevItemCreateOrConnectWithoutReporterInput[]
    createMany?: DevItemCreateManyReporterInputEnvelope
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
  }

  export type DevItemCreateNestedManyWithoutReviewerInput = {
    create?: XOR<DevItemCreateWithoutReviewerInput, DevItemUncheckedCreateWithoutReviewerInput> | DevItemCreateWithoutReviewerInput[] | DevItemUncheckedCreateWithoutReviewerInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutReviewerInput | DevItemCreateOrConnectWithoutReviewerInput[]
    createMany?: DevItemCreateManyReviewerInputEnvelope
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
  }

  export type ReleaseNoteCreateNestedManyWithoutCreatorInput = {
    create?: XOR<ReleaseNoteCreateWithoutCreatorInput, ReleaseNoteUncheckedCreateWithoutCreatorInput> | ReleaseNoteCreateWithoutCreatorInput[] | ReleaseNoteUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ReleaseNoteCreateOrConnectWithoutCreatorInput | ReleaseNoteCreateOrConnectWithoutCreatorInput[]
    createMany?: ReleaseNoteCreateManyCreatorInputEnvelope
    connect?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
  }

  export type SiteCheckpointCreateNestedManyWithoutCreatorInput = {
    create?: XOR<SiteCheckpointCreateWithoutCreatorInput, SiteCheckpointUncheckedCreateWithoutCreatorInput> | SiteCheckpointCreateWithoutCreatorInput[] | SiteCheckpointUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutCreatorInput | SiteCheckpointCreateOrConnectWithoutCreatorInput[]
    createMany?: SiteCheckpointCreateManyCreatorInputEnvelope
    connect?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
  }

  export type SiteAttendanceEventCreateNestedManyWithoutUserInput = {
    create?: XOR<SiteAttendanceEventCreateWithoutUserInput, SiteAttendanceEventUncheckedCreateWithoutUserInput> | SiteAttendanceEventCreateWithoutUserInput[] | SiteAttendanceEventUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SiteAttendanceEventCreateOrConnectWithoutUserInput | SiteAttendanceEventCreateOrConnectWithoutUserInput[]
    createMany?: SiteAttendanceEventCreateManyUserInputEnvelope
    connect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
  }

  export type SiteDailySummaryCreateNestedManyWithoutUserInput = {
    create?: XOR<SiteDailySummaryCreateWithoutUserInput, SiteDailySummaryUncheckedCreateWithoutUserInput> | SiteDailySummaryCreateWithoutUserInput[] | SiteDailySummaryUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SiteDailySummaryCreateOrConnectWithoutUserInput | SiteDailySummaryCreateOrConnectWithoutUserInput[]
    createMany?: SiteDailySummaryCreateManyUserInputEnvelope
    connect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
  }

  export type SharedCheckinPartnerCreateNestedManyWithoutCreatorInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutCreatorInput, SharedCheckinPartnerUncheckedCreateWithoutCreatorInput> | SharedCheckinPartnerCreateWithoutCreatorInput[] | SharedCheckinPartnerUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutCreatorInput | SharedCheckinPartnerCreateOrConnectWithoutCreatorInput[]
    createMany?: SharedCheckinPartnerCreateManyCreatorInputEnvelope
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
  }

  export type SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutUpdaterInput, SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput> | SharedCheckinPartnerCreateWithoutUpdaterInput[] | SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput | SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput[]
    createMany?: SharedCheckinPartnerCreateManyUpdaterInputEnvelope
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
  }

  export type MeetingAttendanceCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingAttendanceCreateWithoutUserInput, MeetingAttendanceUncheckedCreateWithoutUserInput> | MeetingAttendanceCreateWithoutUserInput[] | MeetingAttendanceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceCreateOrConnectWithoutUserInput | MeetingAttendanceCreateOrConnectWithoutUserInput[]
    createMany?: MeetingAttendanceCreateManyUserInputEnvelope
    connect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
  }

  export type MeetingRequiredAttendeeCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingRequiredAttendeeCreateWithoutUserInput, MeetingRequiredAttendeeUncheckedCreateWithoutUserInput> | MeetingRequiredAttendeeCreateWithoutUserInput[] | MeetingRequiredAttendeeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingRequiredAttendeeCreateOrConnectWithoutUserInput | MeetingRequiredAttendeeCreateOrConnectWithoutUserInput[]
    createMany?: MeetingRequiredAttendeeCreateManyUserInputEnvelope
    connect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
  }

  export type MeetingTemplateCreateNestedManyWithoutCreatorInput = {
    create?: XOR<MeetingTemplateCreateWithoutCreatorInput, MeetingTemplateUncheckedCreateWithoutCreatorInput> | MeetingTemplateCreateWithoutCreatorInput[] | MeetingTemplateUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingTemplateCreateOrConnectWithoutCreatorInput | MeetingTemplateCreateOrConnectWithoutCreatorInput[]
    createMany?: MeetingTemplateCreateManyCreatorInputEnvelope
    connect?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
  }

  export type MeetingTemplateAttendeeCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingTemplateAttendeeCreateWithoutUserInput, MeetingTemplateAttendeeUncheckedCreateWithoutUserInput> | MeetingTemplateAttendeeCreateWithoutUserInput[] | MeetingTemplateAttendeeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingTemplateAttendeeCreateOrConnectWithoutUserInput | MeetingTemplateAttendeeCreateOrConnectWithoutUserInput[]
    createMany?: MeetingTemplateAttendeeCreateManyUserInputEnvelope
    connect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
  }

  export type MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingAttendanceLeaveRecordCreateWithoutUserInput, MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput> | MeetingAttendanceLeaveRecordCreateWithoutUserInput[] | MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput | MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput[]
    createMany?: MeetingAttendanceLeaveRecordCreateManyUserInputEnvelope
    connect?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
  }

  export type MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingAttendanceAuditLogCreateWithoutUserInput, MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput> | MeetingAttendanceAuditLogCreateWithoutUserInput[] | MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput | MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput[]
    createMany?: MeetingAttendanceAuditLogCreateManyUserInputEnvelope
    connect?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
  }

  export type MeetingCreateNestedManyWithoutCreatorInput = {
    create?: XOR<MeetingCreateWithoutCreatorInput, MeetingUncheckedCreateWithoutCreatorInput> | MeetingCreateWithoutCreatorInput[] | MeetingUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingCreateOrConnectWithoutCreatorInput | MeetingCreateOrConnectWithoutCreatorInput[]
    createMany?: MeetingCreateManyCreatorInputEnvelope
    connect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
  }

  export type MeetingSeriesCreateNestedManyWithoutCreatorInput = {
    create?: XOR<MeetingSeriesCreateWithoutCreatorInput, MeetingSeriesUncheckedCreateWithoutCreatorInput> | MeetingSeriesCreateWithoutCreatorInput[] | MeetingSeriesUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutCreatorInput | MeetingSeriesCreateOrConnectWithoutCreatorInput[]
    createMany?: MeetingSeriesCreateManyCreatorInputEnvelope
    connect?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
  }

  export type MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingSeriesAttendeePreferenceCreateWithoutUserInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput> | MeetingSeriesAttendeePreferenceCreateWithoutUserInput[] | MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput | MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput[]
    createMany?: MeetingSeriesAttendeePreferenceCreateManyUserInputEnvelope
    connect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
  }

  export type MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingSeriesAttendeeExceptionCreateWithoutUserInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput> | MeetingSeriesAttendeeExceptionCreateWithoutUserInput[] | MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput | MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput[]
    createMany?: MeetingSeriesAttendeeExceptionCreateManyUserInputEnvelope
    connect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
  }

  export type MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutCreatedByInput, MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput> | MeetingAgendaSectionCreateWithoutCreatedByInput[] | MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput | MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAgendaSectionCreateManyCreatedByInputEnvelope
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
  }

  export type MeetingAgendaItemCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutCreatedByInput, MeetingAgendaItemUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemCreateWithoutCreatedByInput[] | MeetingAgendaItemUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemCreateManyCreatedByInputEnvelope
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
  }

  export type MeetingAgendaItemCreateNestedManyWithoutPresenterInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutPresenterInput, MeetingAgendaItemUncheckedCreateWithoutPresenterInput> | MeetingAgendaItemCreateWithoutPresenterInput[] | MeetingAgendaItemUncheckedCreateWithoutPresenterInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutPresenterInput | MeetingAgendaItemCreateOrConnectWithoutPresenterInput[]
    createMany?: MeetingAgendaItemCreateManyPresenterInputEnvelope
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput> | MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAssigneeInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput> | MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAssignedByInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyCreatedByInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutUploadedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput> | MeetingAgendaItemAttachmentCreateWithoutUploadedByInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyUploadedByInputEnvelope
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
  }

  export type MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutCreatedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemAttachmentCreateWithoutCreatedByInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyCreatedByInputEnvelope
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
  }

  export type MeetingAttachmentCreateNestedManyWithoutUploadedByInput = {
    create?: XOR<MeetingAttachmentCreateWithoutUploadedByInput, MeetingAttachmentUncheckedCreateWithoutUploadedByInput> | MeetingAttachmentCreateWithoutUploadedByInput[] | MeetingAttachmentUncheckedCreateWithoutUploadedByInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutUploadedByInput | MeetingAttachmentCreateOrConnectWithoutUploadedByInput[]
    createMany?: MeetingAttachmentCreateManyUploadedByInputEnvelope
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
  }

  export type MeetingAttachmentCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAttachmentCreateWithoutCreatedByInput, MeetingAttachmentUncheckedCreateWithoutCreatedByInput> | MeetingAttachmentCreateWithoutCreatedByInput[] | MeetingAttachmentUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutCreatedByInput | MeetingAttachmentCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAttachmentCreateManyCreatedByInputEnvelope
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
  }

  export type AIToolGrantUserCreateNestedManyWithoutUserInput = {
    create?: XOR<AIToolGrantUserCreateWithoutUserInput, AIToolGrantUserUncheckedCreateWithoutUserInput> | AIToolGrantUserCreateWithoutUserInput[] | AIToolGrantUserUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AIToolGrantUserCreateOrConnectWithoutUserInput | AIToolGrantUserCreateOrConnectWithoutUserInput[]
    createMany?: AIToolGrantUserCreateManyUserInputEnvelope
    connect?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
  }

  export type AdpPtoScheduleCreateNestedManyWithoutUserInput = {
    create?: XOR<AdpPtoScheduleCreateWithoutUserInput, AdpPtoScheduleUncheckedCreateWithoutUserInput> | AdpPtoScheduleCreateWithoutUserInput[] | AdpPtoScheduleUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AdpPtoScheduleCreateOrConnectWithoutUserInput | AdpPtoScheduleCreateOrConnectWithoutUserInput[]
    createMany?: AdpPtoScheduleCreateManyUserInputEnvelope
    connect?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
  }

  export type EmployeeSlugBindingCreateNestedOneWithoutUserInput = {
    create?: XOR<EmployeeSlugBindingCreateWithoutUserInput, EmployeeSlugBindingUncheckedCreateWithoutUserInput>
    connectOrCreate?: EmployeeSlugBindingCreateOrConnectWithoutUserInput
    connect?: EmployeeSlugBindingWhereUniqueInput
  }

  export type InternalAppCreateNestedManyWithoutCreatorInput = {
    create?: XOR<InternalAppCreateWithoutCreatorInput, InternalAppUncheckedCreateWithoutCreatorInput> | InternalAppCreateWithoutCreatorInput[] | InternalAppUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutCreatorInput | InternalAppCreateOrConnectWithoutCreatorInput[]
    createMany?: InternalAppCreateManyCreatorInputEnvelope
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
  }

  export type InternalAppCreateNestedManyWithoutForceDisablerInput = {
    create?: XOR<InternalAppCreateWithoutForceDisablerInput, InternalAppUncheckedCreateWithoutForceDisablerInput> | InternalAppCreateWithoutForceDisablerInput[] | InternalAppUncheckedCreateWithoutForceDisablerInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutForceDisablerInput | InternalAppCreateOrConnectWithoutForceDisablerInput[]
    createMany?: InternalAppCreateManyForceDisablerInputEnvelope
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
  }

  export type InternalAppDeploymentCreateNestedManyWithoutCreatorInput = {
    create?: XOR<InternalAppDeploymentCreateWithoutCreatorInput, InternalAppDeploymentUncheckedCreateWithoutCreatorInput> | InternalAppDeploymentCreateWithoutCreatorInput[] | InternalAppDeploymentUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppDeploymentCreateOrConnectWithoutCreatorInput | InternalAppDeploymentCreateOrConnectWithoutCreatorInput[]
    createMany?: InternalAppDeploymentCreateManyCreatorInputEnvelope
    connect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
  }

  export type InternalAppEnvVarCreateNestedManyWithoutCreatorInput = {
    create?: XOR<InternalAppEnvVarCreateWithoutCreatorInput, InternalAppEnvVarUncheckedCreateWithoutCreatorInput> | InternalAppEnvVarCreateWithoutCreatorInput[] | InternalAppEnvVarUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppEnvVarCreateOrConnectWithoutCreatorInput | InternalAppEnvVarCreateOrConnectWithoutCreatorInput[]
    createMany?: InternalAppEnvVarCreateManyCreatorInputEnvelope
    connect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
  }

  export type InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput = {
    create?: XOR<InternalAppEmployeeTokenCreateWithoutCreatorInput, InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput> | InternalAppEmployeeTokenCreateWithoutCreatorInput[] | InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput | InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput[]
    createMany?: InternalAppEmployeeTokenCreateManyCreatorInputEnvelope
    connect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
  }

  export type InternalAppEventCreateNestedManyWithoutActorInput = {
    create?: XOR<InternalAppEventCreateWithoutActorInput, InternalAppEventUncheckedCreateWithoutActorInput> | InternalAppEventCreateWithoutActorInput[] | InternalAppEventUncheckedCreateWithoutActorInput[]
    connectOrCreate?: InternalAppEventCreateOrConnectWithoutActorInput | InternalAppEventCreateOrConnectWithoutActorInput[]
    createMany?: InternalAppEventCreateManyActorInputEnvelope
    connect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
  }

  export type AiUsageTokenCreateNestedManyWithoutUserInput = {
    create?: XOR<AiUsageTokenCreateWithoutUserInput, AiUsageTokenUncheckedCreateWithoutUserInput> | AiUsageTokenCreateWithoutUserInput[] | AiUsageTokenUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutUserInput | AiUsageTokenCreateOrConnectWithoutUserInput[]
    createMany?: AiUsageTokenCreateManyUserInputEnvelope
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
  }

  export type AiUsageTokenCreateNestedManyWithoutRevokedByInput = {
    create?: XOR<AiUsageTokenCreateWithoutRevokedByInput, AiUsageTokenUncheckedCreateWithoutRevokedByInput> | AiUsageTokenCreateWithoutRevokedByInput[] | AiUsageTokenUncheckedCreateWithoutRevokedByInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutRevokedByInput | AiUsageTokenCreateOrConnectWithoutRevokedByInput[]
    createMany?: AiUsageTokenCreateManyRevokedByInputEnvelope
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
  }

  export type AiUsageDeviceCreateNestedManyWithoutUserInput = {
    create?: XOR<AiUsageDeviceCreateWithoutUserInput, AiUsageDeviceUncheckedCreateWithoutUserInput> | AiUsageDeviceCreateWithoutUserInput[] | AiUsageDeviceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutUserInput | AiUsageDeviceCreateOrConnectWithoutUserInput[]
    createMany?: AiUsageDeviceCreateManyUserInputEnvelope
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
  }

  export type AiUsageDeviceCreateNestedManyWithoutBlockedByInput = {
    create?: XOR<AiUsageDeviceCreateWithoutBlockedByInput, AiUsageDeviceUncheckedCreateWithoutBlockedByInput> | AiUsageDeviceCreateWithoutBlockedByInput[] | AiUsageDeviceUncheckedCreateWithoutBlockedByInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutBlockedByInput | AiUsageDeviceCreateOrConnectWithoutBlockedByInput[]
    createMany?: AiUsageDeviceCreateManyBlockedByInputEnvelope
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
  }

  export type AiUsageEventCreateNestedManyWithoutUserInput = {
    create?: XOR<AiUsageEventCreateWithoutUserInput, AiUsageEventUncheckedCreateWithoutUserInput> | AiUsageEventCreateWithoutUserInput[] | AiUsageEventUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutUserInput | AiUsageEventCreateOrConnectWithoutUserInput[]
    createMany?: AiUsageEventCreateManyUserInputEnvelope
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
  }

  export type AiUsageDailyRollupCreateNestedManyWithoutUserInput = {
    create?: XOR<AiUsageDailyRollupCreateWithoutUserInput, AiUsageDailyRollupUncheckedCreateWithoutUserInput> | AiUsageDailyRollupCreateWithoutUserInput[] | AiUsageDailyRollupUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageDailyRollupCreateOrConnectWithoutUserInput | AiUsageDailyRollupCreateOrConnectWithoutUserInput[]
    createMany?: AiUsageDailyRollupCreateManyUserInputEnvelope
    connect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
  }

  export type ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput = {
    create?: XOR<ApprovalInstanceCreateWithoutInitiatorInput, ApprovalInstanceUncheckedCreateWithoutInitiatorInput> | ApprovalInstanceCreateWithoutInitiatorInput[] | ApprovalInstanceUncheckedCreateWithoutInitiatorInput[]
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutInitiatorInput | ApprovalInstanceCreateOrConnectWithoutInitiatorInput[]
    createMany?: ApprovalInstanceCreateManyInitiatorInputEnvelope
    connect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
  }

  export type ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutOperatorInput, ApprovalTaskLogUncheckedCreateWithoutOperatorInput> | ApprovalTaskLogCreateWithoutOperatorInput[] | ApprovalTaskLogUncheckedCreateWithoutOperatorInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutOperatorInput | ApprovalTaskLogCreateOrConnectWithoutOperatorInput[]
    createMany?: ApprovalTaskLogCreateManyOperatorInputEnvelope
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
  }

  export type ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutTargetUserInput, ApprovalTaskLogUncheckedCreateWithoutTargetUserInput> | ApprovalTaskLogCreateWithoutTargetUserInput[] | ApprovalTaskLogUncheckedCreateWithoutTargetUserInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutTargetUserInput | ApprovalTaskLogCreateOrConnectWithoutTargetUserInput[]
    createMany?: ApprovalTaskLogCreateManyTargetUserInputEnvelope
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
  }

  export type ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput = {
    create?: XOR<ApprovalAdminExportCreateWithoutRequesterInput, ApprovalAdminExportUncheckedCreateWithoutRequesterInput> | ApprovalAdminExportCreateWithoutRequesterInput[] | ApprovalAdminExportUncheckedCreateWithoutRequesterInput[]
    connectOrCreate?: ApprovalAdminExportCreateOrConnectWithoutRequesterInput | ApprovalAdminExportCreateOrConnectWithoutRequesterInput[]
    createMany?: ApprovalAdminExportCreateManyRequesterInputEnvelope
    connect?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
  }

  export type ContractRequestUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<ContractRequestCreateWithoutCreatorInput, ContractRequestUncheckedCreateWithoutCreatorInput> | ContractRequestCreateWithoutCreatorInput[] | ContractRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ContractRequestCreateOrConnectWithoutCreatorInput | ContractRequestCreateOrConnectWithoutCreatorInput[]
    createMany?: ContractRequestCreateManyCreatorInputEnvelope
    connect?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
  }

  export type ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<ExpenseRequestCreateWithoutCreatorInput, ExpenseRequestUncheckedCreateWithoutCreatorInput> | ExpenseRequestCreateWithoutCreatorInput[] | ExpenseRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ExpenseRequestCreateOrConnectWithoutCreatorInput | ExpenseRequestCreateOrConnectWithoutCreatorInput[]
    createMany?: ExpenseRequestCreateManyCreatorInputEnvelope
    connect?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
  }

  export type PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<PurchaseRequestCreateWithoutCreatorInput, PurchaseRequestUncheckedCreateWithoutCreatorInput> | PurchaseRequestCreateWithoutCreatorInput[] | PurchaseRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: PurchaseRequestCreateOrConnectWithoutCreatorInput | PurchaseRequestCreateOrConnectWithoutCreatorInput[]
    createMany?: PurchaseRequestCreateManyCreatorInputEnvelope
    connect?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
  }

  export type AuditLogUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<AuditLogCreateWithoutUserInput, AuditLogUncheckedCreateWithoutUserInput> | AuditLogCreateWithoutUserInput[] | AuditLogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AuditLogCreateOrConnectWithoutUserInput | AuditLogCreateOrConnectWithoutUserInput[]
    createMany?: AuditLogCreateManyUserInputEnvelope
    connect?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
  }

  export type AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<AutomationTaskCreateWithoutCreatedByInput, AutomationTaskUncheckedCreateWithoutCreatedByInput> | AutomationTaskCreateWithoutCreatedByInput[] | AutomationTaskUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: AutomationTaskCreateOrConnectWithoutCreatedByInput | AutomationTaskCreateOrConnectWithoutCreatedByInput[]
    createMany?: AutomationTaskCreateManyCreatedByInputEnvelope
    connect?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
  }

  export type FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<FormDefinitionCreateWithoutCreatorInput, FormDefinitionUncheckedCreateWithoutCreatorInput> | FormDefinitionCreateWithoutCreatorInput[] | FormDefinitionUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutCreatorInput | FormDefinitionCreateOrConnectWithoutCreatorInput[]
    createMany?: FormDefinitionCreateManyCreatorInputEnvelope
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
  }

  export type FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput = {
    create?: XOR<FormDefinitionCreateWithoutUpdaterInput, FormDefinitionUncheckedCreateWithoutUpdaterInput> | FormDefinitionCreateWithoutUpdaterInput[] | FormDefinitionUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutUpdaterInput | FormDefinitionCreateOrConnectWithoutUpdaterInput[]
    createMany?: FormDefinitionCreateManyUpdaterInputEnvelope
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
  }

  export type FormInstanceUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<FormInstanceCreateWithoutCreatorInput, FormInstanceUncheckedCreateWithoutCreatorInput> | FormInstanceCreateWithoutCreatorInput[] | FormInstanceUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutCreatorInput | FormInstanceCreateOrConnectWithoutCreatorInput[]
    createMany?: FormInstanceCreateManyCreatorInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput = {
    create?: XOR<FormInstanceCreateWithoutSubmitterInput, FormInstanceUncheckedCreateWithoutSubmitterInput> | FormInstanceCreateWithoutSubmitterInput[] | FormInstanceUncheckedCreateWithoutSubmitterInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutSubmitterInput | FormInstanceCreateOrConnectWithoutSubmitterInput[]
    createMany?: FormInstanceCreateManySubmitterInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput = {
    create?: XOR<FormInstanceCreateWithoutUpdaterInput, FormInstanceUncheckedCreateWithoutUpdaterInput> | FormInstanceCreateWithoutUpdaterInput[] | FormInstanceUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutUpdaterInput | FormInstanceCreateOrConnectWithoutUpdaterInput[]
    createMany?: FormInstanceCreateManyUpdaterInputEnvelope
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
  }

  export type FormTemplateUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<FormTemplateCreateWithoutCreatorInput, FormTemplateUncheckedCreateWithoutCreatorInput> | FormTemplateCreateWithoutCreatorInput[] | FormTemplateUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormTemplateCreateOrConnectWithoutCreatorInput | FormTemplateCreateOrConnectWithoutCreatorInput[]
    createMany?: FormTemplateCreateManyCreatorInputEnvelope
    connect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
  }

  export type FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput = {
    create?: XOR<FormTemplateCreateWithoutUpdaterInput, FormTemplateUncheckedCreateWithoutUpdaterInput> | FormTemplateCreateWithoutUpdaterInput[] | FormTemplateUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormTemplateCreateOrConnectWithoutUpdaterInput | FormTemplateCreateOrConnectWithoutUpdaterInput[]
    createMany?: FormTemplateCreateManyUpdaterInputEnvelope
    connect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
  }

  export type FormVersionUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<FormVersionCreateWithoutCreatorInput, FormVersionUncheckedCreateWithoutCreatorInput> | FormVersionCreateWithoutCreatorInput[] | FormVersionUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutCreatorInput | FormVersionCreateOrConnectWithoutCreatorInput[]
    createMany?: FormVersionCreateManyCreatorInputEnvelope
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
  }

  export type FormVersionUncheckedCreateNestedManyWithoutReviewerInput = {
    create?: XOR<FormVersionCreateWithoutReviewerInput, FormVersionUncheckedCreateWithoutReviewerInput> | FormVersionCreateWithoutReviewerInput[] | FormVersionUncheckedCreateWithoutReviewerInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutReviewerInput | FormVersionCreateOrConnectWithoutReviewerInput[]
    createMany?: FormVersionCreateManyReviewerInputEnvelope
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
  }

  export type UserRoleUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<UserRoleCreateWithoutUserInput, UserRoleUncheckedCreateWithoutUserInput> | UserRoleCreateWithoutUserInput[] | UserRoleUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutUserInput | UserRoleCreateOrConnectWithoutUserInput[]
    createMany?: UserRoleCreateManyUserInputEnvelope
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
  }

  export type WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<WorkflowRoleUserCreateWithoutUserInput, WorkflowRoleUserUncheckedCreateWithoutUserInput> | WorkflowRoleUserCreateWithoutUserInput[] | WorkflowRoleUserUncheckedCreateWithoutUserInput[]
    connectOrCreate?: WorkflowRoleUserCreateOrConnectWithoutUserInput | WorkflowRoleUserCreateOrConnectWithoutUserInput[]
    createMany?: WorkflowRoleUserCreateManyUserInputEnvelope
    connect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
  }

  export type UserDepartmentUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<UserDepartmentCreateWithoutUserInput, UserDepartmentUncheckedCreateWithoutUserInput> | UserDepartmentCreateWithoutUserInput[] | UserDepartmentUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutUserInput | UserDepartmentCreateOrConnectWithoutUserInput[]
    createMany?: UserDepartmentCreateManyUserInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type UserDepartmentUncheckedCreateNestedManyWithoutManagerInput = {
    create?: XOR<UserDepartmentCreateWithoutManagerInput, UserDepartmentUncheckedCreateWithoutManagerInput> | UserDepartmentCreateWithoutManagerInput[] | UserDepartmentUncheckedCreateWithoutManagerInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutManagerInput | UserDepartmentCreateOrConnectWithoutManagerInput[]
    createMany?: UserDepartmentCreateManyManagerInputEnvelope
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
  }

  export type NotificationLogUncheckedCreateNestedManyWithoutRecipientInput = {
    create?: XOR<NotificationLogCreateWithoutRecipientInput, NotificationLogUncheckedCreateWithoutRecipientInput> | NotificationLogCreateWithoutRecipientInput[] | NotificationLogUncheckedCreateWithoutRecipientInput[]
    connectOrCreate?: NotificationLogCreateOrConnectWithoutRecipientInput | NotificationLogCreateOrConnectWithoutRecipientInput[]
    createMany?: NotificationLogCreateManyRecipientInputEnvelope
    connect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
  }

  export type NotificationMessageUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<NotificationMessageCreateWithoutUserInput, NotificationMessageUncheckedCreateWithoutUserInput> | NotificationMessageCreateWithoutUserInput[] | NotificationMessageUncheckedCreateWithoutUserInput[]
    connectOrCreate?: NotificationMessageCreateOrConnectWithoutUserInput | NotificationMessageCreateOrConnectWithoutUserInput[]
    createMany?: NotificationMessageCreateManyUserInputEnvelope
    connect?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
  }

  export type UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<UserDelegationSettingCreateWithoutUserInput, UserDelegationSettingUncheckedCreateWithoutUserInput> | UserDelegationSettingCreateWithoutUserInput[] | UserDelegationSettingUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserDelegationSettingCreateOrConnectWithoutUserInput | UserDelegationSettingCreateOrConnectWithoutUserInput[]
    createMany?: UserDelegationSettingCreateManyUserInputEnvelope
    connect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
  }

  export type UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput = {
    create?: XOR<UserDelegationSettingCreateWithoutDelegateUserInput, UserDelegationSettingUncheckedCreateWithoutDelegateUserInput> | UserDelegationSettingCreateWithoutDelegateUserInput[] | UserDelegationSettingUncheckedCreateWithoutDelegateUserInput[]
    connectOrCreate?: UserDelegationSettingCreateOrConnectWithoutDelegateUserInput | UserDelegationSettingCreateOrConnectWithoutDelegateUserInput[]
    createMany?: UserDelegationSettingCreateManyDelegateUserInputEnvelope
    connect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
  }

  export type KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<KnowledgeArticleCreateWithoutCreatedByInput, KnowledgeArticleUncheckedCreateWithoutCreatedByInput> | KnowledgeArticleCreateWithoutCreatedByInput[] | KnowledgeArticleUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutCreatedByInput | KnowledgeArticleCreateOrConnectWithoutCreatedByInput[]
    createMany?: KnowledgeArticleCreateManyCreatedByInputEnvelope
    connect?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
  }

  export type AIQALogUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<AIQALogCreateWithoutUserInput, AIQALogUncheckedCreateWithoutUserInput> | AIQALogCreateWithoutUserInput[] | AIQALogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AIQALogCreateOrConnectWithoutUserInput | AIQALogCreateOrConnectWithoutUserInput[]
    createMany?: AIQALogCreateManyUserInputEnvelope
    connect?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
  }

  export type DocumentViewUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<DocumentViewCreateWithoutUserInput, DocumentViewUncheckedCreateWithoutUserInput> | DocumentViewCreateWithoutUserInput[] | DocumentViewUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutUserInput | DocumentViewCreateOrConnectWithoutUserInput[]
    createMany?: DocumentViewCreateManyUserInputEnvelope
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
  }

  export type DocumentLikeUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<DocumentLikeCreateWithoutUserInput, DocumentLikeUncheckedCreateWithoutUserInput> | DocumentLikeCreateWithoutUserInput[] | DocumentLikeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutUserInput | DocumentLikeCreateOrConnectWithoutUserInput[]
    createMany?: DocumentLikeCreateManyUserInputEnvelope
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
  }

  export type DocumentCommentUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<DocumentCommentCreateWithoutUserInput, DocumentCommentUncheckedCreateWithoutUserInput> | DocumentCommentCreateWithoutUserInput[] | DocumentCommentUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutUserInput | DocumentCommentCreateOrConnectWithoutUserInput[]
    createMany?: DocumentCommentCreateManyUserInputEnvelope
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
  }

  export type UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput = {
    create?: XOR<UserMentionCreateWithoutMentionedUserInput, UserMentionUncheckedCreateWithoutMentionedUserInput> | UserMentionCreateWithoutMentionedUserInput[] | UserMentionUncheckedCreateWithoutMentionedUserInput[]
    connectOrCreate?: UserMentionCreateOrConnectWithoutMentionedUserInput | UserMentionCreateOrConnectWithoutMentionedUserInput[]
    createMany?: UserMentionCreateManyMentionedUserInputEnvelope
    connect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
  }

  export type StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput = {
    create?: XOR<StrategicObjectiveAssignmentCreateWithoutAssigneeInput, StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput> | StrategicObjectiveAssignmentCreateWithoutAssigneeInput[] | StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput | StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput[]
    createMany?: StrategicObjectiveAssignmentCreateManyAssigneeInputEnvelope
    connect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
  }

  export type FeedbackUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<FeedbackCreateWithoutUserInput, FeedbackUncheckedCreateWithoutUserInput> | FeedbackCreateWithoutUserInput[] | FeedbackUncheckedCreateWithoutUserInput[]
    connectOrCreate?: FeedbackCreateOrConnectWithoutUserInput | FeedbackCreateOrConnectWithoutUserInput[]
    createMany?: FeedbackCreateManyUserInputEnvelope
    connect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
  }

  export type FeedbackUncheckedCreateNestedManyWithoutAssigneeInput = {
    create?: XOR<FeedbackCreateWithoutAssigneeInput, FeedbackUncheckedCreateWithoutAssigneeInput> | FeedbackCreateWithoutAssigneeInput[] | FeedbackUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: FeedbackCreateOrConnectWithoutAssigneeInput | FeedbackCreateOrConnectWithoutAssigneeInput[]
    createMany?: FeedbackCreateManyAssigneeInputEnvelope
    connect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
  }

  export type DevItemUncheckedCreateNestedManyWithoutOwnerInput = {
    create?: XOR<DevItemCreateWithoutOwnerInput, DevItemUncheckedCreateWithoutOwnerInput> | DevItemCreateWithoutOwnerInput[] | DevItemUncheckedCreateWithoutOwnerInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutOwnerInput | DevItemCreateOrConnectWithoutOwnerInput[]
    createMany?: DevItemCreateManyOwnerInputEnvelope
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
  }

  export type DevItemUncheckedCreateNestedManyWithoutReporterInput = {
    create?: XOR<DevItemCreateWithoutReporterInput, DevItemUncheckedCreateWithoutReporterInput> | DevItemCreateWithoutReporterInput[] | DevItemUncheckedCreateWithoutReporterInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutReporterInput | DevItemCreateOrConnectWithoutReporterInput[]
    createMany?: DevItemCreateManyReporterInputEnvelope
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
  }

  export type DevItemUncheckedCreateNestedManyWithoutReviewerInput = {
    create?: XOR<DevItemCreateWithoutReviewerInput, DevItemUncheckedCreateWithoutReviewerInput> | DevItemCreateWithoutReviewerInput[] | DevItemUncheckedCreateWithoutReviewerInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutReviewerInput | DevItemCreateOrConnectWithoutReviewerInput[]
    createMany?: DevItemCreateManyReviewerInputEnvelope
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
  }

  export type ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<ReleaseNoteCreateWithoutCreatorInput, ReleaseNoteUncheckedCreateWithoutCreatorInput> | ReleaseNoteCreateWithoutCreatorInput[] | ReleaseNoteUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ReleaseNoteCreateOrConnectWithoutCreatorInput | ReleaseNoteCreateOrConnectWithoutCreatorInput[]
    createMany?: ReleaseNoteCreateManyCreatorInputEnvelope
    connect?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
  }

  export type SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<SiteCheckpointCreateWithoutCreatorInput, SiteCheckpointUncheckedCreateWithoutCreatorInput> | SiteCheckpointCreateWithoutCreatorInput[] | SiteCheckpointUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutCreatorInput | SiteCheckpointCreateOrConnectWithoutCreatorInput[]
    createMany?: SiteCheckpointCreateManyCreatorInputEnvelope
    connect?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
  }

  export type SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<SiteAttendanceEventCreateWithoutUserInput, SiteAttendanceEventUncheckedCreateWithoutUserInput> | SiteAttendanceEventCreateWithoutUserInput[] | SiteAttendanceEventUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SiteAttendanceEventCreateOrConnectWithoutUserInput | SiteAttendanceEventCreateOrConnectWithoutUserInput[]
    createMany?: SiteAttendanceEventCreateManyUserInputEnvelope
    connect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
  }

  export type SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<SiteDailySummaryCreateWithoutUserInput, SiteDailySummaryUncheckedCreateWithoutUserInput> | SiteDailySummaryCreateWithoutUserInput[] | SiteDailySummaryUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SiteDailySummaryCreateOrConnectWithoutUserInput | SiteDailySummaryCreateOrConnectWithoutUserInput[]
    createMany?: SiteDailySummaryCreateManyUserInputEnvelope
    connect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
  }

  export type SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutCreatorInput, SharedCheckinPartnerUncheckedCreateWithoutCreatorInput> | SharedCheckinPartnerCreateWithoutCreatorInput[] | SharedCheckinPartnerUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutCreatorInput | SharedCheckinPartnerCreateOrConnectWithoutCreatorInput[]
    createMany?: SharedCheckinPartnerCreateManyCreatorInputEnvelope
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
  }

  export type SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutUpdaterInput, SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput> | SharedCheckinPartnerCreateWithoutUpdaterInput[] | SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput | SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput[]
    createMany?: SharedCheckinPartnerCreateManyUpdaterInputEnvelope
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
  }

  export type MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingAttendanceCreateWithoutUserInput, MeetingAttendanceUncheckedCreateWithoutUserInput> | MeetingAttendanceCreateWithoutUserInput[] | MeetingAttendanceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceCreateOrConnectWithoutUserInput | MeetingAttendanceCreateOrConnectWithoutUserInput[]
    createMany?: MeetingAttendanceCreateManyUserInputEnvelope
    connect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
  }

  export type MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingRequiredAttendeeCreateWithoutUserInput, MeetingRequiredAttendeeUncheckedCreateWithoutUserInput> | MeetingRequiredAttendeeCreateWithoutUserInput[] | MeetingRequiredAttendeeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingRequiredAttendeeCreateOrConnectWithoutUserInput | MeetingRequiredAttendeeCreateOrConnectWithoutUserInput[]
    createMany?: MeetingRequiredAttendeeCreateManyUserInputEnvelope
    connect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
  }

  export type MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<MeetingTemplateCreateWithoutCreatorInput, MeetingTemplateUncheckedCreateWithoutCreatorInput> | MeetingTemplateCreateWithoutCreatorInput[] | MeetingTemplateUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingTemplateCreateOrConnectWithoutCreatorInput | MeetingTemplateCreateOrConnectWithoutCreatorInput[]
    createMany?: MeetingTemplateCreateManyCreatorInputEnvelope
    connect?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
  }

  export type MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingTemplateAttendeeCreateWithoutUserInput, MeetingTemplateAttendeeUncheckedCreateWithoutUserInput> | MeetingTemplateAttendeeCreateWithoutUserInput[] | MeetingTemplateAttendeeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingTemplateAttendeeCreateOrConnectWithoutUserInput | MeetingTemplateAttendeeCreateOrConnectWithoutUserInput[]
    createMany?: MeetingTemplateAttendeeCreateManyUserInputEnvelope
    connect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
  }

  export type MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingAttendanceLeaveRecordCreateWithoutUserInput, MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput> | MeetingAttendanceLeaveRecordCreateWithoutUserInput[] | MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput | MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput[]
    createMany?: MeetingAttendanceLeaveRecordCreateManyUserInputEnvelope
    connect?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
  }

  export type MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingAttendanceAuditLogCreateWithoutUserInput, MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput> | MeetingAttendanceAuditLogCreateWithoutUserInput[] | MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput | MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput[]
    createMany?: MeetingAttendanceAuditLogCreateManyUserInputEnvelope
    connect?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
  }

  export type MeetingUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<MeetingCreateWithoutCreatorInput, MeetingUncheckedCreateWithoutCreatorInput> | MeetingCreateWithoutCreatorInput[] | MeetingUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingCreateOrConnectWithoutCreatorInput | MeetingCreateOrConnectWithoutCreatorInput[]
    createMany?: MeetingCreateManyCreatorInputEnvelope
    connect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
  }

  export type MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<MeetingSeriesCreateWithoutCreatorInput, MeetingSeriesUncheckedCreateWithoutCreatorInput> | MeetingSeriesCreateWithoutCreatorInput[] | MeetingSeriesUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutCreatorInput | MeetingSeriesCreateOrConnectWithoutCreatorInput[]
    createMany?: MeetingSeriesCreateManyCreatorInputEnvelope
    connect?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
  }

  export type MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingSeriesAttendeePreferenceCreateWithoutUserInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput> | MeetingSeriesAttendeePreferenceCreateWithoutUserInput[] | MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput | MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput[]
    createMany?: MeetingSeriesAttendeePreferenceCreateManyUserInputEnvelope
    connect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
  }

  export type MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<MeetingSeriesAttendeeExceptionCreateWithoutUserInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput> | MeetingSeriesAttendeeExceptionCreateWithoutUserInput[] | MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput | MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput[]
    createMany?: MeetingSeriesAttendeeExceptionCreateManyUserInputEnvelope
    connect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
  }

  export type MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutCreatedByInput, MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput> | MeetingAgendaSectionCreateWithoutCreatedByInput[] | MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput | MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAgendaSectionCreateManyCreatedByInputEnvelope
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
  }

  export type MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutCreatedByInput, MeetingAgendaItemUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemCreateWithoutCreatedByInput[] | MeetingAgendaItemUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemCreateManyCreatedByInputEnvelope
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
  }

  export type MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutPresenterInput, MeetingAgendaItemUncheckedCreateWithoutPresenterInput> | MeetingAgendaItemCreateWithoutPresenterInput[] | MeetingAgendaItemUncheckedCreateWithoutPresenterInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutPresenterInput | MeetingAgendaItemCreateOrConnectWithoutPresenterInput[]
    createMany?: MeetingAgendaItemCreateManyPresenterInputEnvelope
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput> | MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAssigneeInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput> | MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAssignedByInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyCreatedByInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutUploadedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput> | MeetingAgendaItemAttachmentCreateWithoutUploadedByInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyUploadedByInputEnvelope
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutCreatedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemAttachmentCreateWithoutCreatedByInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyCreatedByInputEnvelope
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
  }

  export type MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput = {
    create?: XOR<MeetingAttachmentCreateWithoutUploadedByInput, MeetingAttachmentUncheckedCreateWithoutUploadedByInput> | MeetingAttachmentCreateWithoutUploadedByInput[] | MeetingAttachmentUncheckedCreateWithoutUploadedByInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutUploadedByInput | MeetingAttachmentCreateOrConnectWithoutUploadedByInput[]
    createMany?: MeetingAttachmentCreateManyUploadedByInputEnvelope
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
  }

  export type MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput = {
    create?: XOR<MeetingAttachmentCreateWithoutCreatedByInput, MeetingAttachmentUncheckedCreateWithoutCreatedByInput> | MeetingAttachmentCreateWithoutCreatedByInput[] | MeetingAttachmentUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutCreatedByInput | MeetingAttachmentCreateOrConnectWithoutCreatedByInput[]
    createMany?: MeetingAttachmentCreateManyCreatedByInputEnvelope
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
  }

  export type AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<AIToolGrantUserCreateWithoutUserInput, AIToolGrantUserUncheckedCreateWithoutUserInput> | AIToolGrantUserCreateWithoutUserInput[] | AIToolGrantUserUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AIToolGrantUserCreateOrConnectWithoutUserInput | AIToolGrantUserCreateOrConnectWithoutUserInput[]
    createMany?: AIToolGrantUserCreateManyUserInputEnvelope
    connect?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
  }

  export type AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<AdpPtoScheduleCreateWithoutUserInput, AdpPtoScheduleUncheckedCreateWithoutUserInput> | AdpPtoScheduleCreateWithoutUserInput[] | AdpPtoScheduleUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AdpPtoScheduleCreateOrConnectWithoutUserInput | AdpPtoScheduleCreateOrConnectWithoutUserInput[]
    createMany?: AdpPtoScheduleCreateManyUserInputEnvelope
    connect?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
  }

  export type EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput = {
    create?: XOR<EmployeeSlugBindingCreateWithoutUserInput, EmployeeSlugBindingUncheckedCreateWithoutUserInput>
    connectOrCreate?: EmployeeSlugBindingCreateOrConnectWithoutUserInput
    connect?: EmployeeSlugBindingWhereUniqueInput
  }

  export type InternalAppUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<InternalAppCreateWithoutCreatorInput, InternalAppUncheckedCreateWithoutCreatorInput> | InternalAppCreateWithoutCreatorInput[] | InternalAppUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutCreatorInput | InternalAppCreateOrConnectWithoutCreatorInput[]
    createMany?: InternalAppCreateManyCreatorInputEnvelope
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
  }

  export type InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput = {
    create?: XOR<InternalAppCreateWithoutForceDisablerInput, InternalAppUncheckedCreateWithoutForceDisablerInput> | InternalAppCreateWithoutForceDisablerInput[] | InternalAppUncheckedCreateWithoutForceDisablerInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutForceDisablerInput | InternalAppCreateOrConnectWithoutForceDisablerInput[]
    createMany?: InternalAppCreateManyForceDisablerInputEnvelope
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
  }

  export type InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<InternalAppDeploymentCreateWithoutCreatorInput, InternalAppDeploymentUncheckedCreateWithoutCreatorInput> | InternalAppDeploymentCreateWithoutCreatorInput[] | InternalAppDeploymentUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppDeploymentCreateOrConnectWithoutCreatorInput | InternalAppDeploymentCreateOrConnectWithoutCreatorInput[]
    createMany?: InternalAppDeploymentCreateManyCreatorInputEnvelope
    connect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
  }

  export type InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<InternalAppEnvVarCreateWithoutCreatorInput, InternalAppEnvVarUncheckedCreateWithoutCreatorInput> | InternalAppEnvVarCreateWithoutCreatorInput[] | InternalAppEnvVarUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppEnvVarCreateOrConnectWithoutCreatorInput | InternalAppEnvVarCreateOrConnectWithoutCreatorInput[]
    createMany?: InternalAppEnvVarCreateManyCreatorInputEnvelope
    connect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
  }

  export type InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<InternalAppEmployeeTokenCreateWithoutCreatorInput, InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput> | InternalAppEmployeeTokenCreateWithoutCreatorInput[] | InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput | InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput[]
    createMany?: InternalAppEmployeeTokenCreateManyCreatorInputEnvelope
    connect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
  }

  export type InternalAppEventUncheckedCreateNestedManyWithoutActorInput = {
    create?: XOR<InternalAppEventCreateWithoutActorInput, InternalAppEventUncheckedCreateWithoutActorInput> | InternalAppEventCreateWithoutActorInput[] | InternalAppEventUncheckedCreateWithoutActorInput[]
    connectOrCreate?: InternalAppEventCreateOrConnectWithoutActorInput | InternalAppEventCreateOrConnectWithoutActorInput[]
    createMany?: InternalAppEventCreateManyActorInputEnvelope
    connect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
  }

  export type AiUsageTokenUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<AiUsageTokenCreateWithoutUserInput, AiUsageTokenUncheckedCreateWithoutUserInput> | AiUsageTokenCreateWithoutUserInput[] | AiUsageTokenUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutUserInput | AiUsageTokenCreateOrConnectWithoutUserInput[]
    createMany?: AiUsageTokenCreateManyUserInputEnvelope
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
  }

  export type AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput = {
    create?: XOR<AiUsageTokenCreateWithoutRevokedByInput, AiUsageTokenUncheckedCreateWithoutRevokedByInput> | AiUsageTokenCreateWithoutRevokedByInput[] | AiUsageTokenUncheckedCreateWithoutRevokedByInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutRevokedByInput | AiUsageTokenCreateOrConnectWithoutRevokedByInput[]
    createMany?: AiUsageTokenCreateManyRevokedByInputEnvelope
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
  }

  export type AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<AiUsageDeviceCreateWithoutUserInput, AiUsageDeviceUncheckedCreateWithoutUserInput> | AiUsageDeviceCreateWithoutUserInput[] | AiUsageDeviceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutUserInput | AiUsageDeviceCreateOrConnectWithoutUserInput[]
    createMany?: AiUsageDeviceCreateManyUserInputEnvelope
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
  }

  export type AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput = {
    create?: XOR<AiUsageDeviceCreateWithoutBlockedByInput, AiUsageDeviceUncheckedCreateWithoutBlockedByInput> | AiUsageDeviceCreateWithoutBlockedByInput[] | AiUsageDeviceUncheckedCreateWithoutBlockedByInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutBlockedByInput | AiUsageDeviceCreateOrConnectWithoutBlockedByInput[]
    createMany?: AiUsageDeviceCreateManyBlockedByInputEnvelope
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
  }

  export type AiUsageEventUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<AiUsageEventCreateWithoutUserInput, AiUsageEventUncheckedCreateWithoutUserInput> | AiUsageEventCreateWithoutUserInput[] | AiUsageEventUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutUserInput | AiUsageEventCreateOrConnectWithoutUserInput[]
    createMany?: AiUsageEventCreateManyUserInputEnvelope
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
  }

  export type AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<AiUsageDailyRollupCreateWithoutUserInput, AiUsageDailyRollupUncheckedCreateWithoutUserInput> | AiUsageDailyRollupCreateWithoutUserInput[] | AiUsageDailyRollupUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageDailyRollupCreateOrConnectWithoutUserInput | AiUsageDailyRollupCreateOrConnectWithoutUserInput[]
    createMany?: AiUsageDailyRollupCreateManyUserInputEnvelope
    connect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
  }

  export type EnumUserStatusFieldUpdateOperationsInput = {
    set?: $Enums.UserStatus
  }

  export type EnumUserSourceFieldUpdateOperationsInput = {
    set?: $Enums.UserSource
  }

  export type ApprovalInstanceUpdateManyWithoutInitiatorNestedInput = {
    create?: XOR<ApprovalInstanceCreateWithoutInitiatorInput, ApprovalInstanceUncheckedCreateWithoutInitiatorInput> | ApprovalInstanceCreateWithoutInitiatorInput[] | ApprovalInstanceUncheckedCreateWithoutInitiatorInput[]
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutInitiatorInput | ApprovalInstanceCreateOrConnectWithoutInitiatorInput[]
    upsert?: ApprovalInstanceUpsertWithWhereUniqueWithoutInitiatorInput | ApprovalInstanceUpsertWithWhereUniqueWithoutInitiatorInput[]
    createMany?: ApprovalInstanceCreateManyInitiatorInputEnvelope
    set?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    disconnect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    delete?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    connect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    update?: ApprovalInstanceUpdateWithWhereUniqueWithoutInitiatorInput | ApprovalInstanceUpdateWithWhereUniqueWithoutInitiatorInput[]
    updateMany?: ApprovalInstanceUpdateManyWithWhereWithoutInitiatorInput | ApprovalInstanceUpdateManyWithWhereWithoutInitiatorInput[]
    deleteMany?: ApprovalInstanceScalarWhereInput | ApprovalInstanceScalarWhereInput[]
  }

  export type ApprovalTaskLogUpdateManyWithoutOperatorNestedInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutOperatorInput, ApprovalTaskLogUncheckedCreateWithoutOperatorInput> | ApprovalTaskLogCreateWithoutOperatorInput[] | ApprovalTaskLogUncheckedCreateWithoutOperatorInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutOperatorInput | ApprovalTaskLogCreateOrConnectWithoutOperatorInput[]
    upsert?: ApprovalTaskLogUpsertWithWhereUniqueWithoutOperatorInput | ApprovalTaskLogUpsertWithWhereUniqueWithoutOperatorInput[]
    createMany?: ApprovalTaskLogCreateManyOperatorInputEnvelope
    set?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    disconnect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    delete?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    update?: ApprovalTaskLogUpdateWithWhereUniqueWithoutOperatorInput | ApprovalTaskLogUpdateWithWhereUniqueWithoutOperatorInput[]
    updateMany?: ApprovalTaskLogUpdateManyWithWhereWithoutOperatorInput | ApprovalTaskLogUpdateManyWithWhereWithoutOperatorInput[]
    deleteMany?: ApprovalTaskLogScalarWhereInput | ApprovalTaskLogScalarWhereInput[]
  }

  export type ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutTargetUserInput, ApprovalTaskLogUncheckedCreateWithoutTargetUserInput> | ApprovalTaskLogCreateWithoutTargetUserInput[] | ApprovalTaskLogUncheckedCreateWithoutTargetUserInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutTargetUserInput | ApprovalTaskLogCreateOrConnectWithoutTargetUserInput[]
    upsert?: ApprovalTaskLogUpsertWithWhereUniqueWithoutTargetUserInput | ApprovalTaskLogUpsertWithWhereUniqueWithoutTargetUserInput[]
    createMany?: ApprovalTaskLogCreateManyTargetUserInputEnvelope
    set?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    disconnect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    delete?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    update?: ApprovalTaskLogUpdateWithWhereUniqueWithoutTargetUserInput | ApprovalTaskLogUpdateWithWhereUniqueWithoutTargetUserInput[]
    updateMany?: ApprovalTaskLogUpdateManyWithWhereWithoutTargetUserInput | ApprovalTaskLogUpdateManyWithWhereWithoutTargetUserInput[]
    deleteMany?: ApprovalTaskLogScalarWhereInput | ApprovalTaskLogScalarWhereInput[]
  }

  export type ApprovalAdminExportUpdateManyWithoutRequesterNestedInput = {
    create?: XOR<ApprovalAdminExportCreateWithoutRequesterInput, ApprovalAdminExportUncheckedCreateWithoutRequesterInput> | ApprovalAdminExportCreateWithoutRequesterInput[] | ApprovalAdminExportUncheckedCreateWithoutRequesterInput[]
    connectOrCreate?: ApprovalAdminExportCreateOrConnectWithoutRequesterInput | ApprovalAdminExportCreateOrConnectWithoutRequesterInput[]
    upsert?: ApprovalAdminExportUpsertWithWhereUniqueWithoutRequesterInput | ApprovalAdminExportUpsertWithWhereUniqueWithoutRequesterInput[]
    createMany?: ApprovalAdminExportCreateManyRequesterInputEnvelope
    set?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
    disconnect?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
    delete?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
    connect?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
    update?: ApprovalAdminExportUpdateWithWhereUniqueWithoutRequesterInput | ApprovalAdminExportUpdateWithWhereUniqueWithoutRequesterInput[]
    updateMany?: ApprovalAdminExportUpdateManyWithWhereWithoutRequesterInput | ApprovalAdminExportUpdateManyWithWhereWithoutRequesterInput[]
    deleteMany?: ApprovalAdminExportScalarWhereInput | ApprovalAdminExportScalarWhereInput[]
  }

  export type ContractRequestUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<ContractRequestCreateWithoutCreatorInput, ContractRequestUncheckedCreateWithoutCreatorInput> | ContractRequestCreateWithoutCreatorInput[] | ContractRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ContractRequestCreateOrConnectWithoutCreatorInput | ContractRequestCreateOrConnectWithoutCreatorInput[]
    upsert?: ContractRequestUpsertWithWhereUniqueWithoutCreatorInput | ContractRequestUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: ContractRequestCreateManyCreatorInputEnvelope
    set?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
    disconnect?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
    delete?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
    connect?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
    update?: ContractRequestUpdateWithWhereUniqueWithoutCreatorInput | ContractRequestUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: ContractRequestUpdateManyWithWhereWithoutCreatorInput | ContractRequestUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: ContractRequestScalarWhereInput | ContractRequestScalarWhereInput[]
  }

  export type ExpenseRequestUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<ExpenseRequestCreateWithoutCreatorInput, ExpenseRequestUncheckedCreateWithoutCreatorInput> | ExpenseRequestCreateWithoutCreatorInput[] | ExpenseRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ExpenseRequestCreateOrConnectWithoutCreatorInput | ExpenseRequestCreateOrConnectWithoutCreatorInput[]
    upsert?: ExpenseRequestUpsertWithWhereUniqueWithoutCreatorInput | ExpenseRequestUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: ExpenseRequestCreateManyCreatorInputEnvelope
    set?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
    disconnect?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
    delete?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
    connect?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
    update?: ExpenseRequestUpdateWithWhereUniqueWithoutCreatorInput | ExpenseRequestUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: ExpenseRequestUpdateManyWithWhereWithoutCreatorInput | ExpenseRequestUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: ExpenseRequestScalarWhereInput | ExpenseRequestScalarWhereInput[]
  }

  export type PurchaseRequestUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<PurchaseRequestCreateWithoutCreatorInput, PurchaseRequestUncheckedCreateWithoutCreatorInput> | PurchaseRequestCreateWithoutCreatorInput[] | PurchaseRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: PurchaseRequestCreateOrConnectWithoutCreatorInput | PurchaseRequestCreateOrConnectWithoutCreatorInput[]
    upsert?: PurchaseRequestUpsertWithWhereUniqueWithoutCreatorInput | PurchaseRequestUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: PurchaseRequestCreateManyCreatorInputEnvelope
    set?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
    disconnect?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
    delete?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
    connect?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
    update?: PurchaseRequestUpdateWithWhereUniqueWithoutCreatorInput | PurchaseRequestUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: PurchaseRequestUpdateManyWithWhereWithoutCreatorInput | PurchaseRequestUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: PurchaseRequestScalarWhereInput | PurchaseRequestScalarWhereInput[]
  }

  export type AuditLogUpdateManyWithoutUserNestedInput = {
    create?: XOR<AuditLogCreateWithoutUserInput, AuditLogUncheckedCreateWithoutUserInput> | AuditLogCreateWithoutUserInput[] | AuditLogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AuditLogCreateOrConnectWithoutUserInput | AuditLogCreateOrConnectWithoutUserInput[]
    upsert?: AuditLogUpsertWithWhereUniqueWithoutUserInput | AuditLogUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AuditLogCreateManyUserInputEnvelope
    set?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
    disconnect?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
    delete?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
    connect?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
    update?: AuditLogUpdateWithWhereUniqueWithoutUserInput | AuditLogUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AuditLogUpdateManyWithWhereWithoutUserInput | AuditLogUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AuditLogScalarWhereInput | AuditLogScalarWhereInput[]
  }

  export type AutomationTaskUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<AutomationTaskCreateWithoutCreatedByInput, AutomationTaskUncheckedCreateWithoutCreatedByInput> | AutomationTaskCreateWithoutCreatedByInput[] | AutomationTaskUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: AutomationTaskCreateOrConnectWithoutCreatedByInput | AutomationTaskCreateOrConnectWithoutCreatedByInput[]
    upsert?: AutomationTaskUpsertWithWhereUniqueWithoutCreatedByInput | AutomationTaskUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: AutomationTaskCreateManyCreatedByInputEnvelope
    set?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
    disconnect?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
    delete?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
    connect?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
    update?: AutomationTaskUpdateWithWhereUniqueWithoutCreatedByInput | AutomationTaskUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: AutomationTaskUpdateManyWithWhereWithoutCreatedByInput | AutomationTaskUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: AutomationTaskScalarWhereInput | AutomationTaskScalarWhereInput[]
  }

  export type FormDefinitionUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<FormDefinitionCreateWithoutCreatorInput, FormDefinitionUncheckedCreateWithoutCreatorInput> | FormDefinitionCreateWithoutCreatorInput[] | FormDefinitionUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutCreatorInput | FormDefinitionCreateOrConnectWithoutCreatorInput[]
    upsert?: FormDefinitionUpsertWithWhereUniqueWithoutCreatorInput | FormDefinitionUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: FormDefinitionCreateManyCreatorInputEnvelope
    set?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    disconnect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    delete?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    update?: FormDefinitionUpdateWithWhereUniqueWithoutCreatorInput | FormDefinitionUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: FormDefinitionUpdateManyWithWhereWithoutCreatorInput | FormDefinitionUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: FormDefinitionScalarWhereInput | FormDefinitionScalarWhereInput[]
  }

  export type FormDefinitionUpdateManyWithoutUpdaterNestedInput = {
    create?: XOR<FormDefinitionCreateWithoutUpdaterInput, FormDefinitionUncheckedCreateWithoutUpdaterInput> | FormDefinitionCreateWithoutUpdaterInput[] | FormDefinitionUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutUpdaterInput | FormDefinitionCreateOrConnectWithoutUpdaterInput[]
    upsert?: FormDefinitionUpsertWithWhereUniqueWithoutUpdaterInput | FormDefinitionUpsertWithWhereUniqueWithoutUpdaterInput[]
    createMany?: FormDefinitionCreateManyUpdaterInputEnvelope
    set?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    disconnect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    delete?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    update?: FormDefinitionUpdateWithWhereUniqueWithoutUpdaterInput | FormDefinitionUpdateWithWhereUniqueWithoutUpdaterInput[]
    updateMany?: FormDefinitionUpdateManyWithWhereWithoutUpdaterInput | FormDefinitionUpdateManyWithWhereWithoutUpdaterInput[]
    deleteMany?: FormDefinitionScalarWhereInput | FormDefinitionScalarWhereInput[]
  }

  export type FormInstanceUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<FormInstanceCreateWithoutCreatorInput, FormInstanceUncheckedCreateWithoutCreatorInput> | FormInstanceCreateWithoutCreatorInput[] | FormInstanceUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutCreatorInput | FormInstanceCreateOrConnectWithoutCreatorInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutCreatorInput | FormInstanceUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: FormInstanceCreateManyCreatorInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutCreatorInput | FormInstanceUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutCreatorInput | FormInstanceUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormInstanceUpdateManyWithoutSubmitterNestedInput = {
    create?: XOR<FormInstanceCreateWithoutSubmitterInput, FormInstanceUncheckedCreateWithoutSubmitterInput> | FormInstanceCreateWithoutSubmitterInput[] | FormInstanceUncheckedCreateWithoutSubmitterInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutSubmitterInput | FormInstanceCreateOrConnectWithoutSubmitterInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutSubmitterInput | FormInstanceUpsertWithWhereUniqueWithoutSubmitterInput[]
    createMany?: FormInstanceCreateManySubmitterInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutSubmitterInput | FormInstanceUpdateWithWhereUniqueWithoutSubmitterInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutSubmitterInput | FormInstanceUpdateManyWithWhereWithoutSubmitterInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormInstanceUpdateManyWithoutUpdaterNestedInput = {
    create?: XOR<FormInstanceCreateWithoutUpdaterInput, FormInstanceUncheckedCreateWithoutUpdaterInput> | FormInstanceCreateWithoutUpdaterInput[] | FormInstanceUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutUpdaterInput | FormInstanceCreateOrConnectWithoutUpdaterInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutUpdaterInput | FormInstanceUpsertWithWhereUniqueWithoutUpdaterInput[]
    createMany?: FormInstanceCreateManyUpdaterInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutUpdaterInput | FormInstanceUpdateWithWhereUniqueWithoutUpdaterInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutUpdaterInput | FormInstanceUpdateManyWithWhereWithoutUpdaterInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormTemplateUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<FormTemplateCreateWithoutCreatorInput, FormTemplateUncheckedCreateWithoutCreatorInput> | FormTemplateCreateWithoutCreatorInput[] | FormTemplateUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormTemplateCreateOrConnectWithoutCreatorInput | FormTemplateCreateOrConnectWithoutCreatorInput[]
    upsert?: FormTemplateUpsertWithWhereUniqueWithoutCreatorInput | FormTemplateUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: FormTemplateCreateManyCreatorInputEnvelope
    set?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    disconnect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    delete?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    connect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    update?: FormTemplateUpdateWithWhereUniqueWithoutCreatorInput | FormTemplateUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: FormTemplateUpdateManyWithWhereWithoutCreatorInput | FormTemplateUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: FormTemplateScalarWhereInput | FormTemplateScalarWhereInput[]
  }

  export type FormTemplateUpdateManyWithoutUpdaterNestedInput = {
    create?: XOR<FormTemplateCreateWithoutUpdaterInput, FormTemplateUncheckedCreateWithoutUpdaterInput> | FormTemplateCreateWithoutUpdaterInput[] | FormTemplateUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormTemplateCreateOrConnectWithoutUpdaterInput | FormTemplateCreateOrConnectWithoutUpdaterInput[]
    upsert?: FormTemplateUpsertWithWhereUniqueWithoutUpdaterInput | FormTemplateUpsertWithWhereUniqueWithoutUpdaterInput[]
    createMany?: FormTemplateCreateManyUpdaterInputEnvelope
    set?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    disconnect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    delete?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    connect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    update?: FormTemplateUpdateWithWhereUniqueWithoutUpdaterInput | FormTemplateUpdateWithWhereUniqueWithoutUpdaterInput[]
    updateMany?: FormTemplateUpdateManyWithWhereWithoutUpdaterInput | FormTemplateUpdateManyWithWhereWithoutUpdaterInput[]
    deleteMany?: FormTemplateScalarWhereInput | FormTemplateScalarWhereInput[]
  }

  export type FormVersionUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<FormVersionCreateWithoutCreatorInput, FormVersionUncheckedCreateWithoutCreatorInput> | FormVersionCreateWithoutCreatorInput[] | FormVersionUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutCreatorInput | FormVersionCreateOrConnectWithoutCreatorInput[]
    upsert?: FormVersionUpsertWithWhereUniqueWithoutCreatorInput | FormVersionUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: FormVersionCreateManyCreatorInputEnvelope
    set?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    disconnect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    delete?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    update?: FormVersionUpdateWithWhereUniqueWithoutCreatorInput | FormVersionUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: FormVersionUpdateManyWithWhereWithoutCreatorInput | FormVersionUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: FormVersionScalarWhereInput | FormVersionScalarWhereInput[]
  }

  export type FormVersionUpdateManyWithoutReviewerNestedInput = {
    create?: XOR<FormVersionCreateWithoutReviewerInput, FormVersionUncheckedCreateWithoutReviewerInput> | FormVersionCreateWithoutReviewerInput[] | FormVersionUncheckedCreateWithoutReviewerInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutReviewerInput | FormVersionCreateOrConnectWithoutReviewerInput[]
    upsert?: FormVersionUpsertWithWhereUniqueWithoutReviewerInput | FormVersionUpsertWithWhereUniqueWithoutReviewerInput[]
    createMany?: FormVersionCreateManyReviewerInputEnvelope
    set?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    disconnect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    delete?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    update?: FormVersionUpdateWithWhereUniqueWithoutReviewerInput | FormVersionUpdateWithWhereUniqueWithoutReviewerInput[]
    updateMany?: FormVersionUpdateManyWithWhereWithoutReviewerInput | FormVersionUpdateManyWithWhereWithoutReviewerInput[]
    deleteMany?: FormVersionScalarWhereInput | FormVersionScalarWhereInput[]
  }

  export type UserRoleUpdateManyWithoutUserNestedInput = {
    create?: XOR<UserRoleCreateWithoutUserInput, UserRoleUncheckedCreateWithoutUserInput> | UserRoleCreateWithoutUserInput[] | UserRoleUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutUserInput | UserRoleCreateOrConnectWithoutUserInput[]
    upsert?: UserRoleUpsertWithWhereUniqueWithoutUserInput | UserRoleUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: UserRoleCreateManyUserInputEnvelope
    set?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    disconnect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    delete?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    update?: UserRoleUpdateWithWhereUniqueWithoutUserInput | UserRoleUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: UserRoleUpdateManyWithWhereWithoutUserInput | UserRoleUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: UserRoleScalarWhereInput | UserRoleScalarWhereInput[]
  }

  export type WorkflowRoleUserUpdateManyWithoutUserNestedInput = {
    create?: XOR<WorkflowRoleUserCreateWithoutUserInput, WorkflowRoleUserUncheckedCreateWithoutUserInput> | WorkflowRoleUserCreateWithoutUserInput[] | WorkflowRoleUserUncheckedCreateWithoutUserInput[]
    connectOrCreate?: WorkflowRoleUserCreateOrConnectWithoutUserInput | WorkflowRoleUserCreateOrConnectWithoutUserInput[]
    upsert?: WorkflowRoleUserUpsertWithWhereUniqueWithoutUserInput | WorkflowRoleUserUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: WorkflowRoleUserCreateManyUserInputEnvelope
    set?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    disconnect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    delete?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    connect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    update?: WorkflowRoleUserUpdateWithWhereUniqueWithoutUserInput | WorkflowRoleUserUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: WorkflowRoleUserUpdateManyWithWhereWithoutUserInput | WorkflowRoleUserUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: WorkflowRoleUserScalarWhereInput | WorkflowRoleUserScalarWhereInput[]
  }

  export type UserDepartmentUpdateManyWithoutUserNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutUserInput, UserDepartmentUncheckedCreateWithoutUserInput> | UserDepartmentCreateWithoutUserInput[] | UserDepartmentUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutUserInput | UserDepartmentCreateOrConnectWithoutUserInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutUserInput | UserDepartmentUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: UserDepartmentCreateManyUserInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutUserInput | UserDepartmentUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutUserInput | UserDepartmentUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type UserDepartmentUpdateManyWithoutManagerNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutManagerInput, UserDepartmentUncheckedCreateWithoutManagerInput> | UserDepartmentCreateWithoutManagerInput[] | UserDepartmentUncheckedCreateWithoutManagerInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutManagerInput | UserDepartmentCreateOrConnectWithoutManagerInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutManagerInput | UserDepartmentUpsertWithWhereUniqueWithoutManagerInput[]
    createMany?: UserDepartmentCreateManyManagerInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutManagerInput | UserDepartmentUpdateWithWhereUniqueWithoutManagerInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutManagerInput | UserDepartmentUpdateManyWithWhereWithoutManagerInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type NotificationLogUpdateManyWithoutRecipientNestedInput = {
    create?: XOR<NotificationLogCreateWithoutRecipientInput, NotificationLogUncheckedCreateWithoutRecipientInput> | NotificationLogCreateWithoutRecipientInput[] | NotificationLogUncheckedCreateWithoutRecipientInput[]
    connectOrCreate?: NotificationLogCreateOrConnectWithoutRecipientInput | NotificationLogCreateOrConnectWithoutRecipientInput[]
    upsert?: NotificationLogUpsertWithWhereUniqueWithoutRecipientInput | NotificationLogUpsertWithWhereUniqueWithoutRecipientInput[]
    createMany?: NotificationLogCreateManyRecipientInputEnvelope
    set?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    disconnect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    delete?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    connect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    update?: NotificationLogUpdateWithWhereUniqueWithoutRecipientInput | NotificationLogUpdateWithWhereUniqueWithoutRecipientInput[]
    updateMany?: NotificationLogUpdateManyWithWhereWithoutRecipientInput | NotificationLogUpdateManyWithWhereWithoutRecipientInput[]
    deleteMany?: NotificationLogScalarWhereInput | NotificationLogScalarWhereInput[]
  }

  export type NotificationMessageUpdateManyWithoutUserNestedInput = {
    create?: XOR<NotificationMessageCreateWithoutUserInput, NotificationMessageUncheckedCreateWithoutUserInput> | NotificationMessageCreateWithoutUserInput[] | NotificationMessageUncheckedCreateWithoutUserInput[]
    connectOrCreate?: NotificationMessageCreateOrConnectWithoutUserInput | NotificationMessageCreateOrConnectWithoutUserInput[]
    upsert?: NotificationMessageUpsertWithWhereUniqueWithoutUserInput | NotificationMessageUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: NotificationMessageCreateManyUserInputEnvelope
    set?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
    disconnect?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
    delete?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
    connect?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
    update?: NotificationMessageUpdateWithWhereUniqueWithoutUserInput | NotificationMessageUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: NotificationMessageUpdateManyWithWhereWithoutUserInput | NotificationMessageUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: NotificationMessageScalarWhereInput | NotificationMessageScalarWhereInput[]
  }

  export type UserDelegationSettingUpdateManyWithoutUserNestedInput = {
    create?: XOR<UserDelegationSettingCreateWithoutUserInput, UserDelegationSettingUncheckedCreateWithoutUserInput> | UserDelegationSettingCreateWithoutUserInput[] | UserDelegationSettingUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserDelegationSettingCreateOrConnectWithoutUserInput | UserDelegationSettingCreateOrConnectWithoutUserInput[]
    upsert?: UserDelegationSettingUpsertWithWhereUniqueWithoutUserInput | UserDelegationSettingUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: UserDelegationSettingCreateManyUserInputEnvelope
    set?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    disconnect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    delete?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    connect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    update?: UserDelegationSettingUpdateWithWhereUniqueWithoutUserInput | UserDelegationSettingUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: UserDelegationSettingUpdateManyWithWhereWithoutUserInput | UserDelegationSettingUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: UserDelegationSettingScalarWhereInput | UserDelegationSettingScalarWhereInput[]
  }

  export type UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput = {
    create?: XOR<UserDelegationSettingCreateWithoutDelegateUserInput, UserDelegationSettingUncheckedCreateWithoutDelegateUserInput> | UserDelegationSettingCreateWithoutDelegateUserInput[] | UserDelegationSettingUncheckedCreateWithoutDelegateUserInput[]
    connectOrCreate?: UserDelegationSettingCreateOrConnectWithoutDelegateUserInput | UserDelegationSettingCreateOrConnectWithoutDelegateUserInput[]
    upsert?: UserDelegationSettingUpsertWithWhereUniqueWithoutDelegateUserInput | UserDelegationSettingUpsertWithWhereUniqueWithoutDelegateUserInput[]
    createMany?: UserDelegationSettingCreateManyDelegateUserInputEnvelope
    set?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    disconnect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    delete?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    connect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    update?: UserDelegationSettingUpdateWithWhereUniqueWithoutDelegateUserInput | UserDelegationSettingUpdateWithWhereUniqueWithoutDelegateUserInput[]
    updateMany?: UserDelegationSettingUpdateManyWithWhereWithoutDelegateUserInput | UserDelegationSettingUpdateManyWithWhereWithoutDelegateUserInput[]
    deleteMany?: UserDelegationSettingScalarWhereInput | UserDelegationSettingScalarWhereInput[]
  }

  export type KnowledgeArticleUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<KnowledgeArticleCreateWithoutCreatedByInput, KnowledgeArticleUncheckedCreateWithoutCreatedByInput> | KnowledgeArticleCreateWithoutCreatedByInput[] | KnowledgeArticleUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutCreatedByInput | KnowledgeArticleCreateOrConnectWithoutCreatedByInput[]
    upsert?: KnowledgeArticleUpsertWithWhereUniqueWithoutCreatedByInput | KnowledgeArticleUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: KnowledgeArticleCreateManyCreatedByInputEnvelope
    set?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
    disconnect?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
    delete?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
    connect?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
    update?: KnowledgeArticleUpdateWithWhereUniqueWithoutCreatedByInput | KnowledgeArticleUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: KnowledgeArticleUpdateManyWithWhereWithoutCreatedByInput | KnowledgeArticleUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: KnowledgeArticleScalarWhereInput | KnowledgeArticleScalarWhereInput[]
  }

  export type AIQALogUpdateManyWithoutUserNestedInput = {
    create?: XOR<AIQALogCreateWithoutUserInput, AIQALogUncheckedCreateWithoutUserInput> | AIQALogCreateWithoutUserInput[] | AIQALogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AIQALogCreateOrConnectWithoutUserInput | AIQALogCreateOrConnectWithoutUserInput[]
    upsert?: AIQALogUpsertWithWhereUniqueWithoutUserInput | AIQALogUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AIQALogCreateManyUserInputEnvelope
    set?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
    disconnect?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
    delete?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
    connect?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
    update?: AIQALogUpdateWithWhereUniqueWithoutUserInput | AIQALogUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AIQALogUpdateManyWithWhereWithoutUserInput | AIQALogUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AIQALogScalarWhereInput | AIQALogScalarWhereInput[]
  }

  export type DocumentViewUpdateManyWithoutUserNestedInput = {
    create?: XOR<DocumentViewCreateWithoutUserInput, DocumentViewUncheckedCreateWithoutUserInput> | DocumentViewCreateWithoutUserInput[] | DocumentViewUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutUserInput | DocumentViewCreateOrConnectWithoutUserInput[]
    upsert?: DocumentViewUpsertWithWhereUniqueWithoutUserInput | DocumentViewUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: DocumentViewCreateManyUserInputEnvelope
    set?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    disconnect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    delete?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    update?: DocumentViewUpdateWithWhereUniqueWithoutUserInput | DocumentViewUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: DocumentViewUpdateManyWithWhereWithoutUserInput | DocumentViewUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: DocumentViewScalarWhereInput | DocumentViewScalarWhereInput[]
  }

  export type DocumentLikeUpdateManyWithoutUserNestedInput = {
    create?: XOR<DocumentLikeCreateWithoutUserInput, DocumentLikeUncheckedCreateWithoutUserInput> | DocumentLikeCreateWithoutUserInput[] | DocumentLikeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutUserInput | DocumentLikeCreateOrConnectWithoutUserInput[]
    upsert?: DocumentLikeUpsertWithWhereUniqueWithoutUserInput | DocumentLikeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: DocumentLikeCreateManyUserInputEnvelope
    set?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    disconnect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    delete?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    update?: DocumentLikeUpdateWithWhereUniqueWithoutUserInput | DocumentLikeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: DocumentLikeUpdateManyWithWhereWithoutUserInput | DocumentLikeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: DocumentLikeScalarWhereInput | DocumentLikeScalarWhereInput[]
  }

  export type DocumentCommentUpdateManyWithoutUserNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutUserInput, DocumentCommentUncheckedCreateWithoutUserInput> | DocumentCommentCreateWithoutUserInput[] | DocumentCommentUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutUserInput | DocumentCommentCreateOrConnectWithoutUserInput[]
    upsert?: DocumentCommentUpsertWithWhereUniqueWithoutUserInput | DocumentCommentUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: DocumentCommentCreateManyUserInputEnvelope
    set?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    disconnect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    delete?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    update?: DocumentCommentUpdateWithWhereUniqueWithoutUserInput | DocumentCommentUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: DocumentCommentUpdateManyWithWhereWithoutUserInput | DocumentCommentUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
  }

  export type UserMentionUpdateManyWithoutMentionedUserNestedInput = {
    create?: XOR<UserMentionCreateWithoutMentionedUserInput, UserMentionUncheckedCreateWithoutMentionedUserInput> | UserMentionCreateWithoutMentionedUserInput[] | UserMentionUncheckedCreateWithoutMentionedUserInput[]
    connectOrCreate?: UserMentionCreateOrConnectWithoutMentionedUserInput | UserMentionCreateOrConnectWithoutMentionedUserInput[]
    upsert?: UserMentionUpsertWithWhereUniqueWithoutMentionedUserInput | UserMentionUpsertWithWhereUniqueWithoutMentionedUserInput[]
    createMany?: UserMentionCreateManyMentionedUserInputEnvelope
    set?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    disconnect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    delete?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    connect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    update?: UserMentionUpdateWithWhereUniqueWithoutMentionedUserInput | UserMentionUpdateWithWhereUniqueWithoutMentionedUserInput[]
    updateMany?: UserMentionUpdateManyWithWhereWithoutMentionedUserInput | UserMentionUpdateManyWithWhereWithoutMentionedUserInput[]
    deleteMany?: UserMentionScalarWhereInput | UserMentionScalarWhereInput[]
  }

  export type StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput = {
    create?: XOR<StrategicObjectiveAssignmentCreateWithoutAssigneeInput, StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput> | StrategicObjectiveAssignmentCreateWithoutAssigneeInput[] | StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput | StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput[]
    upsert?: StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutAssigneeInput | StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutAssigneeInput[]
    createMany?: StrategicObjectiveAssignmentCreateManyAssigneeInputEnvelope
    set?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    disconnect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    delete?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    connect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    update?: StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutAssigneeInput | StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutAssigneeInput[]
    updateMany?: StrategicObjectiveAssignmentUpdateManyWithWhereWithoutAssigneeInput | StrategicObjectiveAssignmentUpdateManyWithWhereWithoutAssigneeInput[]
    deleteMany?: StrategicObjectiveAssignmentScalarWhereInput | StrategicObjectiveAssignmentScalarWhereInput[]
  }

  export type FeedbackUpdateManyWithoutUserNestedInput = {
    create?: XOR<FeedbackCreateWithoutUserInput, FeedbackUncheckedCreateWithoutUserInput> | FeedbackCreateWithoutUserInput[] | FeedbackUncheckedCreateWithoutUserInput[]
    connectOrCreate?: FeedbackCreateOrConnectWithoutUserInput | FeedbackCreateOrConnectWithoutUserInput[]
    upsert?: FeedbackUpsertWithWhereUniqueWithoutUserInput | FeedbackUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: FeedbackCreateManyUserInputEnvelope
    set?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    disconnect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    delete?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    connect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    update?: FeedbackUpdateWithWhereUniqueWithoutUserInput | FeedbackUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: FeedbackUpdateManyWithWhereWithoutUserInput | FeedbackUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: FeedbackScalarWhereInput | FeedbackScalarWhereInput[]
  }

  export type FeedbackUpdateManyWithoutAssigneeNestedInput = {
    create?: XOR<FeedbackCreateWithoutAssigneeInput, FeedbackUncheckedCreateWithoutAssigneeInput> | FeedbackCreateWithoutAssigneeInput[] | FeedbackUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: FeedbackCreateOrConnectWithoutAssigneeInput | FeedbackCreateOrConnectWithoutAssigneeInput[]
    upsert?: FeedbackUpsertWithWhereUniqueWithoutAssigneeInput | FeedbackUpsertWithWhereUniqueWithoutAssigneeInput[]
    createMany?: FeedbackCreateManyAssigneeInputEnvelope
    set?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    disconnect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    delete?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    connect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    update?: FeedbackUpdateWithWhereUniqueWithoutAssigneeInput | FeedbackUpdateWithWhereUniqueWithoutAssigneeInput[]
    updateMany?: FeedbackUpdateManyWithWhereWithoutAssigneeInput | FeedbackUpdateManyWithWhereWithoutAssigneeInput[]
    deleteMany?: FeedbackScalarWhereInput | FeedbackScalarWhereInput[]
  }

  export type DevItemUpdateManyWithoutOwnerNestedInput = {
    create?: XOR<DevItemCreateWithoutOwnerInput, DevItemUncheckedCreateWithoutOwnerInput> | DevItemCreateWithoutOwnerInput[] | DevItemUncheckedCreateWithoutOwnerInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutOwnerInput | DevItemCreateOrConnectWithoutOwnerInput[]
    upsert?: DevItemUpsertWithWhereUniqueWithoutOwnerInput | DevItemUpsertWithWhereUniqueWithoutOwnerInput[]
    createMany?: DevItemCreateManyOwnerInputEnvelope
    set?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    disconnect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    delete?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    update?: DevItemUpdateWithWhereUniqueWithoutOwnerInput | DevItemUpdateWithWhereUniqueWithoutOwnerInput[]
    updateMany?: DevItemUpdateManyWithWhereWithoutOwnerInput | DevItemUpdateManyWithWhereWithoutOwnerInput[]
    deleteMany?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
  }

  export type DevItemUpdateManyWithoutReporterNestedInput = {
    create?: XOR<DevItemCreateWithoutReporterInput, DevItemUncheckedCreateWithoutReporterInput> | DevItemCreateWithoutReporterInput[] | DevItemUncheckedCreateWithoutReporterInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutReporterInput | DevItemCreateOrConnectWithoutReporterInput[]
    upsert?: DevItemUpsertWithWhereUniqueWithoutReporterInput | DevItemUpsertWithWhereUniqueWithoutReporterInput[]
    createMany?: DevItemCreateManyReporterInputEnvelope
    set?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    disconnect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    delete?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    update?: DevItemUpdateWithWhereUniqueWithoutReporterInput | DevItemUpdateWithWhereUniqueWithoutReporterInput[]
    updateMany?: DevItemUpdateManyWithWhereWithoutReporterInput | DevItemUpdateManyWithWhereWithoutReporterInput[]
    deleteMany?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
  }

  export type DevItemUpdateManyWithoutReviewerNestedInput = {
    create?: XOR<DevItemCreateWithoutReviewerInput, DevItemUncheckedCreateWithoutReviewerInput> | DevItemCreateWithoutReviewerInput[] | DevItemUncheckedCreateWithoutReviewerInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutReviewerInput | DevItemCreateOrConnectWithoutReviewerInput[]
    upsert?: DevItemUpsertWithWhereUniqueWithoutReviewerInput | DevItemUpsertWithWhereUniqueWithoutReviewerInput[]
    createMany?: DevItemCreateManyReviewerInputEnvelope
    set?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    disconnect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    delete?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    update?: DevItemUpdateWithWhereUniqueWithoutReviewerInput | DevItemUpdateWithWhereUniqueWithoutReviewerInput[]
    updateMany?: DevItemUpdateManyWithWhereWithoutReviewerInput | DevItemUpdateManyWithWhereWithoutReviewerInput[]
    deleteMany?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
  }

  export type ReleaseNoteUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<ReleaseNoteCreateWithoutCreatorInput, ReleaseNoteUncheckedCreateWithoutCreatorInput> | ReleaseNoteCreateWithoutCreatorInput[] | ReleaseNoteUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ReleaseNoteCreateOrConnectWithoutCreatorInput | ReleaseNoteCreateOrConnectWithoutCreatorInput[]
    upsert?: ReleaseNoteUpsertWithWhereUniqueWithoutCreatorInput | ReleaseNoteUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: ReleaseNoteCreateManyCreatorInputEnvelope
    set?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
    disconnect?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
    delete?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
    connect?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
    update?: ReleaseNoteUpdateWithWhereUniqueWithoutCreatorInput | ReleaseNoteUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: ReleaseNoteUpdateManyWithWhereWithoutCreatorInput | ReleaseNoteUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: ReleaseNoteScalarWhereInput | ReleaseNoteScalarWhereInput[]
  }

  export type SiteCheckpointUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<SiteCheckpointCreateWithoutCreatorInput, SiteCheckpointUncheckedCreateWithoutCreatorInput> | SiteCheckpointCreateWithoutCreatorInput[] | SiteCheckpointUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutCreatorInput | SiteCheckpointCreateOrConnectWithoutCreatorInput[]
    upsert?: SiteCheckpointUpsertWithWhereUniqueWithoutCreatorInput | SiteCheckpointUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: SiteCheckpointCreateManyCreatorInputEnvelope
    set?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
    disconnect?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
    delete?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
    connect?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
    update?: SiteCheckpointUpdateWithWhereUniqueWithoutCreatorInput | SiteCheckpointUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: SiteCheckpointUpdateManyWithWhereWithoutCreatorInput | SiteCheckpointUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: SiteCheckpointScalarWhereInput | SiteCheckpointScalarWhereInput[]
  }

  export type SiteAttendanceEventUpdateManyWithoutUserNestedInput = {
    create?: XOR<SiteAttendanceEventCreateWithoutUserInput, SiteAttendanceEventUncheckedCreateWithoutUserInput> | SiteAttendanceEventCreateWithoutUserInput[] | SiteAttendanceEventUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SiteAttendanceEventCreateOrConnectWithoutUserInput | SiteAttendanceEventCreateOrConnectWithoutUserInput[]
    upsert?: SiteAttendanceEventUpsertWithWhereUniqueWithoutUserInput | SiteAttendanceEventUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: SiteAttendanceEventCreateManyUserInputEnvelope
    set?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    disconnect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    delete?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    connect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    update?: SiteAttendanceEventUpdateWithWhereUniqueWithoutUserInput | SiteAttendanceEventUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: SiteAttendanceEventUpdateManyWithWhereWithoutUserInput | SiteAttendanceEventUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: SiteAttendanceEventScalarWhereInput | SiteAttendanceEventScalarWhereInput[]
  }

  export type SiteDailySummaryUpdateManyWithoutUserNestedInput = {
    create?: XOR<SiteDailySummaryCreateWithoutUserInput, SiteDailySummaryUncheckedCreateWithoutUserInput> | SiteDailySummaryCreateWithoutUserInput[] | SiteDailySummaryUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SiteDailySummaryCreateOrConnectWithoutUserInput | SiteDailySummaryCreateOrConnectWithoutUserInput[]
    upsert?: SiteDailySummaryUpsertWithWhereUniqueWithoutUserInput | SiteDailySummaryUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: SiteDailySummaryCreateManyUserInputEnvelope
    set?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    disconnect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    delete?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    connect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    update?: SiteDailySummaryUpdateWithWhereUniqueWithoutUserInput | SiteDailySummaryUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: SiteDailySummaryUpdateManyWithWhereWithoutUserInput | SiteDailySummaryUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: SiteDailySummaryScalarWhereInput | SiteDailySummaryScalarWhereInput[]
  }

  export type SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutCreatorInput, SharedCheckinPartnerUncheckedCreateWithoutCreatorInput> | SharedCheckinPartnerCreateWithoutCreatorInput[] | SharedCheckinPartnerUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutCreatorInput | SharedCheckinPartnerCreateOrConnectWithoutCreatorInput[]
    upsert?: SharedCheckinPartnerUpsertWithWhereUniqueWithoutCreatorInput | SharedCheckinPartnerUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: SharedCheckinPartnerCreateManyCreatorInputEnvelope
    set?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    disconnect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    delete?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    update?: SharedCheckinPartnerUpdateWithWhereUniqueWithoutCreatorInput | SharedCheckinPartnerUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: SharedCheckinPartnerUpdateManyWithWhereWithoutCreatorInput | SharedCheckinPartnerUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: SharedCheckinPartnerScalarWhereInput | SharedCheckinPartnerScalarWhereInput[]
  }

  export type SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutUpdaterInput, SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput> | SharedCheckinPartnerCreateWithoutUpdaterInput[] | SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput | SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput[]
    upsert?: SharedCheckinPartnerUpsertWithWhereUniqueWithoutUpdaterInput | SharedCheckinPartnerUpsertWithWhereUniqueWithoutUpdaterInput[]
    createMany?: SharedCheckinPartnerCreateManyUpdaterInputEnvelope
    set?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    disconnect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    delete?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    update?: SharedCheckinPartnerUpdateWithWhereUniqueWithoutUpdaterInput | SharedCheckinPartnerUpdateWithWhereUniqueWithoutUpdaterInput[]
    updateMany?: SharedCheckinPartnerUpdateManyWithWhereWithoutUpdaterInput | SharedCheckinPartnerUpdateManyWithWhereWithoutUpdaterInput[]
    deleteMany?: SharedCheckinPartnerScalarWhereInput | SharedCheckinPartnerScalarWhereInput[]
  }

  export type MeetingAttendanceUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingAttendanceCreateWithoutUserInput, MeetingAttendanceUncheckedCreateWithoutUserInput> | MeetingAttendanceCreateWithoutUserInput[] | MeetingAttendanceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceCreateOrConnectWithoutUserInput | MeetingAttendanceCreateOrConnectWithoutUserInput[]
    upsert?: MeetingAttendanceUpsertWithWhereUniqueWithoutUserInput | MeetingAttendanceUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingAttendanceCreateManyUserInputEnvelope
    set?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    disconnect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    delete?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    connect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    update?: MeetingAttendanceUpdateWithWhereUniqueWithoutUserInput | MeetingAttendanceUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingAttendanceUpdateManyWithWhereWithoutUserInput | MeetingAttendanceUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingAttendanceScalarWhereInput | MeetingAttendanceScalarWhereInput[]
  }

  export type MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingRequiredAttendeeCreateWithoutUserInput, MeetingRequiredAttendeeUncheckedCreateWithoutUserInput> | MeetingRequiredAttendeeCreateWithoutUserInput[] | MeetingRequiredAttendeeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingRequiredAttendeeCreateOrConnectWithoutUserInput | MeetingRequiredAttendeeCreateOrConnectWithoutUserInput[]
    upsert?: MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutUserInput | MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingRequiredAttendeeCreateManyUserInputEnvelope
    set?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    disconnect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    delete?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    connect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    update?: MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutUserInput | MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingRequiredAttendeeUpdateManyWithWhereWithoutUserInput | MeetingRequiredAttendeeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingRequiredAttendeeScalarWhereInput | MeetingRequiredAttendeeScalarWhereInput[]
  }

  export type MeetingTemplateUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<MeetingTemplateCreateWithoutCreatorInput, MeetingTemplateUncheckedCreateWithoutCreatorInput> | MeetingTemplateCreateWithoutCreatorInput[] | MeetingTemplateUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingTemplateCreateOrConnectWithoutCreatorInput | MeetingTemplateCreateOrConnectWithoutCreatorInput[]
    upsert?: MeetingTemplateUpsertWithWhereUniqueWithoutCreatorInput | MeetingTemplateUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: MeetingTemplateCreateManyCreatorInputEnvelope
    set?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
    disconnect?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
    delete?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
    connect?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
    update?: MeetingTemplateUpdateWithWhereUniqueWithoutCreatorInput | MeetingTemplateUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: MeetingTemplateUpdateManyWithWhereWithoutCreatorInput | MeetingTemplateUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: MeetingTemplateScalarWhereInput | MeetingTemplateScalarWhereInput[]
  }

  export type MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingTemplateAttendeeCreateWithoutUserInput, MeetingTemplateAttendeeUncheckedCreateWithoutUserInput> | MeetingTemplateAttendeeCreateWithoutUserInput[] | MeetingTemplateAttendeeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingTemplateAttendeeCreateOrConnectWithoutUserInput | MeetingTemplateAttendeeCreateOrConnectWithoutUserInput[]
    upsert?: MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutUserInput | MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingTemplateAttendeeCreateManyUserInputEnvelope
    set?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    disconnect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    delete?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    connect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    update?: MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutUserInput | MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingTemplateAttendeeUpdateManyWithWhereWithoutUserInput | MeetingTemplateAttendeeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingTemplateAttendeeScalarWhereInput | MeetingTemplateAttendeeScalarWhereInput[]
  }

  export type MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingAttendanceLeaveRecordCreateWithoutUserInput, MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput> | MeetingAttendanceLeaveRecordCreateWithoutUserInput[] | MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput | MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput[]
    upsert?: MeetingAttendanceLeaveRecordUpsertWithWhereUniqueWithoutUserInput | MeetingAttendanceLeaveRecordUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingAttendanceLeaveRecordCreateManyUserInputEnvelope
    set?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
    disconnect?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
    delete?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
    connect?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
    update?: MeetingAttendanceLeaveRecordUpdateWithWhereUniqueWithoutUserInput | MeetingAttendanceLeaveRecordUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingAttendanceLeaveRecordUpdateManyWithWhereWithoutUserInput | MeetingAttendanceLeaveRecordUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingAttendanceLeaveRecordScalarWhereInput | MeetingAttendanceLeaveRecordScalarWhereInput[]
  }

  export type MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingAttendanceAuditLogCreateWithoutUserInput, MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput> | MeetingAttendanceAuditLogCreateWithoutUserInput[] | MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput | MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput[]
    upsert?: MeetingAttendanceAuditLogUpsertWithWhereUniqueWithoutUserInput | MeetingAttendanceAuditLogUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingAttendanceAuditLogCreateManyUserInputEnvelope
    set?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
    disconnect?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
    delete?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
    connect?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
    update?: MeetingAttendanceAuditLogUpdateWithWhereUniqueWithoutUserInput | MeetingAttendanceAuditLogUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingAttendanceAuditLogUpdateManyWithWhereWithoutUserInput | MeetingAttendanceAuditLogUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingAttendanceAuditLogScalarWhereInput | MeetingAttendanceAuditLogScalarWhereInput[]
  }

  export type MeetingUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<MeetingCreateWithoutCreatorInput, MeetingUncheckedCreateWithoutCreatorInput> | MeetingCreateWithoutCreatorInput[] | MeetingUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingCreateOrConnectWithoutCreatorInput | MeetingCreateOrConnectWithoutCreatorInput[]
    upsert?: MeetingUpsertWithWhereUniqueWithoutCreatorInput | MeetingUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: MeetingCreateManyCreatorInputEnvelope
    set?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    disconnect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    delete?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    connect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    update?: MeetingUpdateWithWhereUniqueWithoutCreatorInput | MeetingUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: MeetingUpdateManyWithWhereWithoutCreatorInput | MeetingUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: MeetingScalarWhereInput | MeetingScalarWhereInput[]
  }

  export type MeetingSeriesUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<MeetingSeriesCreateWithoutCreatorInput, MeetingSeriesUncheckedCreateWithoutCreatorInput> | MeetingSeriesCreateWithoutCreatorInput[] | MeetingSeriesUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutCreatorInput | MeetingSeriesCreateOrConnectWithoutCreatorInput[]
    upsert?: MeetingSeriesUpsertWithWhereUniqueWithoutCreatorInput | MeetingSeriesUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: MeetingSeriesCreateManyCreatorInputEnvelope
    set?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
    disconnect?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
    delete?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
    connect?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
    update?: MeetingSeriesUpdateWithWhereUniqueWithoutCreatorInput | MeetingSeriesUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: MeetingSeriesUpdateManyWithWhereWithoutCreatorInput | MeetingSeriesUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: MeetingSeriesScalarWhereInput | MeetingSeriesScalarWhereInput[]
  }

  export type MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingSeriesAttendeePreferenceCreateWithoutUserInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput> | MeetingSeriesAttendeePreferenceCreateWithoutUserInput[] | MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput | MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput[]
    upsert?: MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutUserInput | MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingSeriesAttendeePreferenceCreateManyUserInputEnvelope
    set?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    disconnect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    delete?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    connect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    update?: MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutUserInput | MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutUserInput | MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingSeriesAttendeePreferenceScalarWhereInput | MeetingSeriesAttendeePreferenceScalarWhereInput[]
  }

  export type MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingSeriesAttendeeExceptionCreateWithoutUserInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput> | MeetingSeriesAttendeeExceptionCreateWithoutUserInput[] | MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput | MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput[]
    upsert?: MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutUserInput | MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingSeriesAttendeeExceptionCreateManyUserInputEnvelope
    set?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    disconnect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    delete?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    connect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    update?: MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutUserInput | MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutUserInput | MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingSeriesAttendeeExceptionScalarWhereInput | MeetingSeriesAttendeeExceptionScalarWhereInput[]
  }

  export type MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutCreatedByInput, MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput> | MeetingAgendaSectionCreateWithoutCreatedByInput[] | MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput | MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAgendaSectionUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAgendaSectionUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAgendaSectionCreateManyCreatedByInputEnvelope
    set?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    disconnect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    delete?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    update?: MeetingAgendaSectionUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAgendaSectionUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAgendaSectionUpdateManyWithWhereWithoutCreatedByInput | MeetingAgendaSectionUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAgendaSectionScalarWhereInput | MeetingAgendaSectionScalarWhereInput[]
  }

  export type MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutCreatedByInput, MeetingAgendaItemUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemCreateWithoutCreatedByInput[] | MeetingAgendaItemUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAgendaItemUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemCreateManyCreatedByInputEnvelope
    set?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    disconnect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    delete?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    update?: MeetingAgendaItemUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAgendaItemUpdateManyWithWhereWithoutCreatedByInput | MeetingAgendaItemUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
  }

  export type MeetingAgendaItemUpdateManyWithoutPresenterNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutPresenterInput, MeetingAgendaItemUncheckedCreateWithoutPresenterInput> | MeetingAgendaItemCreateWithoutPresenterInput[] | MeetingAgendaItemUncheckedCreateWithoutPresenterInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutPresenterInput | MeetingAgendaItemCreateOrConnectWithoutPresenterInput[]
    upsert?: MeetingAgendaItemUpsertWithWhereUniqueWithoutPresenterInput | MeetingAgendaItemUpsertWithWhereUniqueWithoutPresenterInput[]
    createMany?: MeetingAgendaItemCreateManyPresenterInputEnvelope
    set?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    disconnect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    delete?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    update?: MeetingAgendaItemUpdateWithWhereUniqueWithoutPresenterInput | MeetingAgendaItemUpdateWithWhereUniqueWithoutPresenterInput[]
    updateMany?: MeetingAgendaItemUpdateManyWithWhereWithoutPresenterInput | MeetingAgendaItemUpdateManyWithWhereWithoutPresenterInput[]
    deleteMany?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput> | MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssigneeInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssigneeInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAssigneeInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssigneeInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssigneeInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssigneeInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssigneeInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput> | MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssignedByInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssignedByInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAssignedByInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssignedByInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssignedByInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssignedByInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssignedByInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyCreatedByInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutCreatedByInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutUploadedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput> | MeetingAgendaItemAttachmentCreateWithoutUploadedByInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput[]
    upsert?: MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutUploadedByInput | MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutUploadedByInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyUploadedByInputEnvelope
    set?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    disconnect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    delete?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    update?: MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutUploadedByInput | MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutUploadedByInput[]
    updateMany?: MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutUploadedByInput | MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutUploadedByInput[]
    deleteMany?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
  }

  export type MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutCreatedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemAttachmentCreateWithoutCreatedByInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyCreatedByInputEnvelope
    set?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    disconnect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    delete?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    update?: MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutCreatedByInput | MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
  }

  export type MeetingAttachmentUpdateManyWithoutUploadedByNestedInput = {
    create?: XOR<MeetingAttachmentCreateWithoutUploadedByInput, MeetingAttachmentUncheckedCreateWithoutUploadedByInput> | MeetingAttachmentCreateWithoutUploadedByInput[] | MeetingAttachmentUncheckedCreateWithoutUploadedByInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutUploadedByInput | MeetingAttachmentCreateOrConnectWithoutUploadedByInput[]
    upsert?: MeetingAttachmentUpsertWithWhereUniqueWithoutUploadedByInput | MeetingAttachmentUpsertWithWhereUniqueWithoutUploadedByInput[]
    createMany?: MeetingAttachmentCreateManyUploadedByInputEnvelope
    set?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    disconnect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    delete?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    update?: MeetingAttachmentUpdateWithWhereUniqueWithoutUploadedByInput | MeetingAttachmentUpdateWithWhereUniqueWithoutUploadedByInput[]
    updateMany?: MeetingAttachmentUpdateManyWithWhereWithoutUploadedByInput | MeetingAttachmentUpdateManyWithWhereWithoutUploadedByInput[]
    deleteMany?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
  }

  export type MeetingAttachmentUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAttachmentCreateWithoutCreatedByInput, MeetingAttachmentUncheckedCreateWithoutCreatedByInput> | MeetingAttachmentCreateWithoutCreatedByInput[] | MeetingAttachmentUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutCreatedByInput | MeetingAttachmentCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAttachmentUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAttachmentUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAttachmentCreateManyCreatedByInputEnvelope
    set?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    disconnect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    delete?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    update?: MeetingAttachmentUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAttachmentUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAttachmentUpdateManyWithWhereWithoutCreatedByInput | MeetingAttachmentUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
  }

  export type AIToolGrantUserUpdateManyWithoutUserNestedInput = {
    create?: XOR<AIToolGrantUserCreateWithoutUserInput, AIToolGrantUserUncheckedCreateWithoutUserInput> | AIToolGrantUserCreateWithoutUserInput[] | AIToolGrantUserUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AIToolGrantUserCreateOrConnectWithoutUserInput | AIToolGrantUserCreateOrConnectWithoutUserInput[]
    upsert?: AIToolGrantUserUpsertWithWhereUniqueWithoutUserInput | AIToolGrantUserUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AIToolGrantUserCreateManyUserInputEnvelope
    set?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
    disconnect?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
    delete?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
    connect?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
    update?: AIToolGrantUserUpdateWithWhereUniqueWithoutUserInput | AIToolGrantUserUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AIToolGrantUserUpdateManyWithWhereWithoutUserInput | AIToolGrantUserUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AIToolGrantUserScalarWhereInput | AIToolGrantUserScalarWhereInput[]
  }

  export type AdpPtoScheduleUpdateManyWithoutUserNestedInput = {
    create?: XOR<AdpPtoScheduleCreateWithoutUserInput, AdpPtoScheduleUncheckedCreateWithoutUserInput> | AdpPtoScheduleCreateWithoutUserInput[] | AdpPtoScheduleUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AdpPtoScheduleCreateOrConnectWithoutUserInput | AdpPtoScheduleCreateOrConnectWithoutUserInput[]
    upsert?: AdpPtoScheduleUpsertWithWhereUniqueWithoutUserInput | AdpPtoScheduleUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AdpPtoScheduleCreateManyUserInputEnvelope
    set?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
    disconnect?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
    delete?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
    connect?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
    update?: AdpPtoScheduleUpdateWithWhereUniqueWithoutUserInput | AdpPtoScheduleUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AdpPtoScheduleUpdateManyWithWhereWithoutUserInput | AdpPtoScheduleUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AdpPtoScheduleScalarWhereInput | AdpPtoScheduleScalarWhereInput[]
  }

  export type EmployeeSlugBindingUpdateOneWithoutUserNestedInput = {
    create?: XOR<EmployeeSlugBindingCreateWithoutUserInput, EmployeeSlugBindingUncheckedCreateWithoutUserInput>
    connectOrCreate?: EmployeeSlugBindingCreateOrConnectWithoutUserInput
    upsert?: EmployeeSlugBindingUpsertWithoutUserInput
    disconnect?: EmployeeSlugBindingWhereInput | boolean
    delete?: EmployeeSlugBindingWhereInput | boolean
    connect?: EmployeeSlugBindingWhereUniqueInput
    update?: XOR<XOR<EmployeeSlugBindingUpdateToOneWithWhereWithoutUserInput, EmployeeSlugBindingUpdateWithoutUserInput>, EmployeeSlugBindingUncheckedUpdateWithoutUserInput>
  }

  export type InternalAppUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<InternalAppCreateWithoutCreatorInput, InternalAppUncheckedCreateWithoutCreatorInput> | InternalAppCreateWithoutCreatorInput[] | InternalAppUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutCreatorInput | InternalAppCreateOrConnectWithoutCreatorInput[]
    upsert?: InternalAppUpsertWithWhereUniqueWithoutCreatorInput | InternalAppUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: InternalAppCreateManyCreatorInputEnvelope
    set?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    disconnect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    delete?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    update?: InternalAppUpdateWithWhereUniqueWithoutCreatorInput | InternalAppUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: InternalAppUpdateManyWithWhereWithoutCreatorInput | InternalAppUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: InternalAppScalarWhereInput | InternalAppScalarWhereInput[]
  }

  export type InternalAppUpdateManyWithoutForceDisablerNestedInput = {
    create?: XOR<InternalAppCreateWithoutForceDisablerInput, InternalAppUncheckedCreateWithoutForceDisablerInput> | InternalAppCreateWithoutForceDisablerInput[] | InternalAppUncheckedCreateWithoutForceDisablerInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutForceDisablerInput | InternalAppCreateOrConnectWithoutForceDisablerInput[]
    upsert?: InternalAppUpsertWithWhereUniqueWithoutForceDisablerInput | InternalAppUpsertWithWhereUniqueWithoutForceDisablerInput[]
    createMany?: InternalAppCreateManyForceDisablerInputEnvelope
    set?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    disconnect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    delete?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    update?: InternalAppUpdateWithWhereUniqueWithoutForceDisablerInput | InternalAppUpdateWithWhereUniqueWithoutForceDisablerInput[]
    updateMany?: InternalAppUpdateManyWithWhereWithoutForceDisablerInput | InternalAppUpdateManyWithWhereWithoutForceDisablerInput[]
    deleteMany?: InternalAppScalarWhereInput | InternalAppScalarWhereInput[]
  }

  export type InternalAppDeploymentUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<InternalAppDeploymentCreateWithoutCreatorInput, InternalAppDeploymentUncheckedCreateWithoutCreatorInput> | InternalAppDeploymentCreateWithoutCreatorInput[] | InternalAppDeploymentUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppDeploymentCreateOrConnectWithoutCreatorInput | InternalAppDeploymentCreateOrConnectWithoutCreatorInput[]
    upsert?: InternalAppDeploymentUpsertWithWhereUniqueWithoutCreatorInput | InternalAppDeploymentUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: InternalAppDeploymentCreateManyCreatorInputEnvelope
    set?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    disconnect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    delete?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    connect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    update?: InternalAppDeploymentUpdateWithWhereUniqueWithoutCreatorInput | InternalAppDeploymentUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: InternalAppDeploymentUpdateManyWithWhereWithoutCreatorInput | InternalAppDeploymentUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: InternalAppDeploymentScalarWhereInput | InternalAppDeploymentScalarWhereInput[]
  }

  export type InternalAppEnvVarUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<InternalAppEnvVarCreateWithoutCreatorInput, InternalAppEnvVarUncheckedCreateWithoutCreatorInput> | InternalAppEnvVarCreateWithoutCreatorInput[] | InternalAppEnvVarUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppEnvVarCreateOrConnectWithoutCreatorInput | InternalAppEnvVarCreateOrConnectWithoutCreatorInput[]
    upsert?: InternalAppEnvVarUpsertWithWhereUniqueWithoutCreatorInput | InternalAppEnvVarUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: InternalAppEnvVarCreateManyCreatorInputEnvelope
    set?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    disconnect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    delete?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    connect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    update?: InternalAppEnvVarUpdateWithWhereUniqueWithoutCreatorInput | InternalAppEnvVarUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: InternalAppEnvVarUpdateManyWithWhereWithoutCreatorInput | InternalAppEnvVarUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: InternalAppEnvVarScalarWhereInput | InternalAppEnvVarScalarWhereInput[]
  }

  export type InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<InternalAppEmployeeTokenCreateWithoutCreatorInput, InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput> | InternalAppEmployeeTokenCreateWithoutCreatorInput[] | InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput | InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput[]
    upsert?: InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutCreatorInput | InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: InternalAppEmployeeTokenCreateManyCreatorInputEnvelope
    set?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    disconnect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    delete?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    connect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    update?: InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutCreatorInput | InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: InternalAppEmployeeTokenUpdateManyWithWhereWithoutCreatorInput | InternalAppEmployeeTokenUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: InternalAppEmployeeTokenScalarWhereInput | InternalAppEmployeeTokenScalarWhereInput[]
  }

  export type InternalAppEventUpdateManyWithoutActorNestedInput = {
    create?: XOR<InternalAppEventCreateWithoutActorInput, InternalAppEventUncheckedCreateWithoutActorInput> | InternalAppEventCreateWithoutActorInput[] | InternalAppEventUncheckedCreateWithoutActorInput[]
    connectOrCreate?: InternalAppEventCreateOrConnectWithoutActorInput | InternalAppEventCreateOrConnectWithoutActorInput[]
    upsert?: InternalAppEventUpsertWithWhereUniqueWithoutActorInput | InternalAppEventUpsertWithWhereUniqueWithoutActorInput[]
    createMany?: InternalAppEventCreateManyActorInputEnvelope
    set?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    disconnect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    delete?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    connect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    update?: InternalAppEventUpdateWithWhereUniqueWithoutActorInput | InternalAppEventUpdateWithWhereUniqueWithoutActorInput[]
    updateMany?: InternalAppEventUpdateManyWithWhereWithoutActorInput | InternalAppEventUpdateManyWithWhereWithoutActorInput[]
    deleteMany?: InternalAppEventScalarWhereInput | InternalAppEventScalarWhereInput[]
  }

  export type AiUsageTokenUpdateManyWithoutUserNestedInput = {
    create?: XOR<AiUsageTokenCreateWithoutUserInput, AiUsageTokenUncheckedCreateWithoutUserInput> | AiUsageTokenCreateWithoutUserInput[] | AiUsageTokenUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutUserInput | AiUsageTokenCreateOrConnectWithoutUserInput[]
    upsert?: AiUsageTokenUpsertWithWhereUniqueWithoutUserInput | AiUsageTokenUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AiUsageTokenCreateManyUserInputEnvelope
    set?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    disconnect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    delete?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    update?: AiUsageTokenUpdateWithWhereUniqueWithoutUserInput | AiUsageTokenUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AiUsageTokenUpdateManyWithWhereWithoutUserInput | AiUsageTokenUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AiUsageTokenScalarWhereInput | AiUsageTokenScalarWhereInput[]
  }

  export type AiUsageTokenUpdateManyWithoutRevokedByNestedInput = {
    create?: XOR<AiUsageTokenCreateWithoutRevokedByInput, AiUsageTokenUncheckedCreateWithoutRevokedByInput> | AiUsageTokenCreateWithoutRevokedByInput[] | AiUsageTokenUncheckedCreateWithoutRevokedByInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutRevokedByInput | AiUsageTokenCreateOrConnectWithoutRevokedByInput[]
    upsert?: AiUsageTokenUpsertWithWhereUniqueWithoutRevokedByInput | AiUsageTokenUpsertWithWhereUniqueWithoutRevokedByInput[]
    createMany?: AiUsageTokenCreateManyRevokedByInputEnvelope
    set?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    disconnect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    delete?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    update?: AiUsageTokenUpdateWithWhereUniqueWithoutRevokedByInput | AiUsageTokenUpdateWithWhereUniqueWithoutRevokedByInput[]
    updateMany?: AiUsageTokenUpdateManyWithWhereWithoutRevokedByInput | AiUsageTokenUpdateManyWithWhereWithoutRevokedByInput[]
    deleteMany?: AiUsageTokenScalarWhereInput | AiUsageTokenScalarWhereInput[]
  }

  export type AiUsageDeviceUpdateManyWithoutUserNestedInput = {
    create?: XOR<AiUsageDeviceCreateWithoutUserInput, AiUsageDeviceUncheckedCreateWithoutUserInput> | AiUsageDeviceCreateWithoutUserInput[] | AiUsageDeviceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutUserInput | AiUsageDeviceCreateOrConnectWithoutUserInput[]
    upsert?: AiUsageDeviceUpsertWithWhereUniqueWithoutUserInput | AiUsageDeviceUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AiUsageDeviceCreateManyUserInputEnvelope
    set?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    disconnect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    delete?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    update?: AiUsageDeviceUpdateWithWhereUniqueWithoutUserInput | AiUsageDeviceUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AiUsageDeviceUpdateManyWithWhereWithoutUserInput | AiUsageDeviceUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AiUsageDeviceScalarWhereInput | AiUsageDeviceScalarWhereInput[]
  }

  export type AiUsageDeviceUpdateManyWithoutBlockedByNestedInput = {
    create?: XOR<AiUsageDeviceCreateWithoutBlockedByInput, AiUsageDeviceUncheckedCreateWithoutBlockedByInput> | AiUsageDeviceCreateWithoutBlockedByInput[] | AiUsageDeviceUncheckedCreateWithoutBlockedByInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutBlockedByInput | AiUsageDeviceCreateOrConnectWithoutBlockedByInput[]
    upsert?: AiUsageDeviceUpsertWithWhereUniqueWithoutBlockedByInput | AiUsageDeviceUpsertWithWhereUniqueWithoutBlockedByInput[]
    createMany?: AiUsageDeviceCreateManyBlockedByInputEnvelope
    set?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    disconnect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    delete?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    update?: AiUsageDeviceUpdateWithWhereUniqueWithoutBlockedByInput | AiUsageDeviceUpdateWithWhereUniqueWithoutBlockedByInput[]
    updateMany?: AiUsageDeviceUpdateManyWithWhereWithoutBlockedByInput | AiUsageDeviceUpdateManyWithWhereWithoutBlockedByInput[]
    deleteMany?: AiUsageDeviceScalarWhereInput | AiUsageDeviceScalarWhereInput[]
  }

  export type AiUsageEventUpdateManyWithoutUserNestedInput = {
    create?: XOR<AiUsageEventCreateWithoutUserInput, AiUsageEventUncheckedCreateWithoutUserInput> | AiUsageEventCreateWithoutUserInput[] | AiUsageEventUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutUserInput | AiUsageEventCreateOrConnectWithoutUserInput[]
    upsert?: AiUsageEventUpsertWithWhereUniqueWithoutUserInput | AiUsageEventUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AiUsageEventCreateManyUserInputEnvelope
    set?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    disconnect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    delete?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    update?: AiUsageEventUpdateWithWhereUniqueWithoutUserInput | AiUsageEventUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AiUsageEventUpdateManyWithWhereWithoutUserInput | AiUsageEventUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AiUsageEventScalarWhereInput | AiUsageEventScalarWhereInput[]
  }

  export type AiUsageDailyRollupUpdateManyWithoutUserNestedInput = {
    create?: XOR<AiUsageDailyRollupCreateWithoutUserInput, AiUsageDailyRollupUncheckedCreateWithoutUserInput> | AiUsageDailyRollupCreateWithoutUserInput[] | AiUsageDailyRollupUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageDailyRollupCreateOrConnectWithoutUserInput | AiUsageDailyRollupCreateOrConnectWithoutUserInput[]
    upsert?: AiUsageDailyRollupUpsertWithWhereUniqueWithoutUserInput | AiUsageDailyRollupUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AiUsageDailyRollupCreateManyUserInputEnvelope
    set?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    disconnect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    delete?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    connect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    update?: AiUsageDailyRollupUpdateWithWhereUniqueWithoutUserInput | AiUsageDailyRollupUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AiUsageDailyRollupUpdateManyWithWhereWithoutUserInput | AiUsageDailyRollupUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AiUsageDailyRollupScalarWhereInput | AiUsageDailyRollupScalarWhereInput[]
  }

  export type ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput = {
    create?: XOR<ApprovalInstanceCreateWithoutInitiatorInput, ApprovalInstanceUncheckedCreateWithoutInitiatorInput> | ApprovalInstanceCreateWithoutInitiatorInput[] | ApprovalInstanceUncheckedCreateWithoutInitiatorInput[]
    connectOrCreate?: ApprovalInstanceCreateOrConnectWithoutInitiatorInput | ApprovalInstanceCreateOrConnectWithoutInitiatorInput[]
    upsert?: ApprovalInstanceUpsertWithWhereUniqueWithoutInitiatorInput | ApprovalInstanceUpsertWithWhereUniqueWithoutInitiatorInput[]
    createMany?: ApprovalInstanceCreateManyInitiatorInputEnvelope
    set?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    disconnect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    delete?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    connect?: ApprovalInstanceWhereUniqueInput | ApprovalInstanceWhereUniqueInput[]
    update?: ApprovalInstanceUpdateWithWhereUniqueWithoutInitiatorInput | ApprovalInstanceUpdateWithWhereUniqueWithoutInitiatorInput[]
    updateMany?: ApprovalInstanceUpdateManyWithWhereWithoutInitiatorInput | ApprovalInstanceUpdateManyWithWhereWithoutInitiatorInput[]
    deleteMany?: ApprovalInstanceScalarWhereInput | ApprovalInstanceScalarWhereInput[]
  }

  export type ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutOperatorInput, ApprovalTaskLogUncheckedCreateWithoutOperatorInput> | ApprovalTaskLogCreateWithoutOperatorInput[] | ApprovalTaskLogUncheckedCreateWithoutOperatorInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutOperatorInput | ApprovalTaskLogCreateOrConnectWithoutOperatorInput[]
    upsert?: ApprovalTaskLogUpsertWithWhereUniqueWithoutOperatorInput | ApprovalTaskLogUpsertWithWhereUniqueWithoutOperatorInput[]
    createMany?: ApprovalTaskLogCreateManyOperatorInputEnvelope
    set?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    disconnect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    delete?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    update?: ApprovalTaskLogUpdateWithWhereUniqueWithoutOperatorInput | ApprovalTaskLogUpdateWithWhereUniqueWithoutOperatorInput[]
    updateMany?: ApprovalTaskLogUpdateManyWithWhereWithoutOperatorInput | ApprovalTaskLogUpdateManyWithWhereWithoutOperatorInput[]
    deleteMany?: ApprovalTaskLogScalarWhereInput | ApprovalTaskLogScalarWhereInput[]
  }

  export type ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput = {
    create?: XOR<ApprovalTaskLogCreateWithoutTargetUserInput, ApprovalTaskLogUncheckedCreateWithoutTargetUserInput> | ApprovalTaskLogCreateWithoutTargetUserInput[] | ApprovalTaskLogUncheckedCreateWithoutTargetUserInput[]
    connectOrCreate?: ApprovalTaskLogCreateOrConnectWithoutTargetUserInput | ApprovalTaskLogCreateOrConnectWithoutTargetUserInput[]
    upsert?: ApprovalTaskLogUpsertWithWhereUniqueWithoutTargetUserInput | ApprovalTaskLogUpsertWithWhereUniqueWithoutTargetUserInput[]
    createMany?: ApprovalTaskLogCreateManyTargetUserInputEnvelope
    set?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    disconnect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    delete?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    connect?: ApprovalTaskLogWhereUniqueInput | ApprovalTaskLogWhereUniqueInput[]
    update?: ApprovalTaskLogUpdateWithWhereUniqueWithoutTargetUserInput | ApprovalTaskLogUpdateWithWhereUniqueWithoutTargetUserInput[]
    updateMany?: ApprovalTaskLogUpdateManyWithWhereWithoutTargetUserInput | ApprovalTaskLogUpdateManyWithWhereWithoutTargetUserInput[]
    deleteMany?: ApprovalTaskLogScalarWhereInput | ApprovalTaskLogScalarWhereInput[]
  }

  export type ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput = {
    create?: XOR<ApprovalAdminExportCreateWithoutRequesterInput, ApprovalAdminExportUncheckedCreateWithoutRequesterInput> | ApprovalAdminExportCreateWithoutRequesterInput[] | ApprovalAdminExportUncheckedCreateWithoutRequesterInput[]
    connectOrCreate?: ApprovalAdminExportCreateOrConnectWithoutRequesterInput | ApprovalAdminExportCreateOrConnectWithoutRequesterInput[]
    upsert?: ApprovalAdminExportUpsertWithWhereUniqueWithoutRequesterInput | ApprovalAdminExportUpsertWithWhereUniqueWithoutRequesterInput[]
    createMany?: ApprovalAdminExportCreateManyRequesterInputEnvelope
    set?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
    disconnect?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
    delete?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
    connect?: ApprovalAdminExportWhereUniqueInput | ApprovalAdminExportWhereUniqueInput[]
    update?: ApprovalAdminExportUpdateWithWhereUniqueWithoutRequesterInput | ApprovalAdminExportUpdateWithWhereUniqueWithoutRequesterInput[]
    updateMany?: ApprovalAdminExportUpdateManyWithWhereWithoutRequesterInput | ApprovalAdminExportUpdateManyWithWhereWithoutRequesterInput[]
    deleteMany?: ApprovalAdminExportScalarWhereInput | ApprovalAdminExportScalarWhereInput[]
  }

  export type ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<ContractRequestCreateWithoutCreatorInput, ContractRequestUncheckedCreateWithoutCreatorInput> | ContractRequestCreateWithoutCreatorInput[] | ContractRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ContractRequestCreateOrConnectWithoutCreatorInput | ContractRequestCreateOrConnectWithoutCreatorInput[]
    upsert?: ContractRequestUpsertWithWhereUniqueWithoutCreatorInput | ContractRequestUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: ContractRequestCreateManyCreatorInputEnvelope
    set?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
    disconnect?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
    delete?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
    connect?: ContractRequestWhereUniqueInput | ContractRequestWhereUniqueInput[]
    update?: ContractRequestUpdateWithWhereUniqueWithoutCreatorInput | ContractRequestUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: ContractRequestUpdateManyWithWhereWithoutCreatorInput | ContractRequestUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: ContractRequestScalarWhereInput | ContractRequestScalarWhereInput[]
  }

  export type ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<ExpenseRequestCreateWithoutCreatorInput, ExpenseRequestUncheckedCreateWithoutCreatorInput> | ExpenseRequestCreateWithoutCreatorInput[] | ExpenseRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ExpenseRequestCreateOrConnectWithoutCreatorInput | ExpenseRequestCreateOrConnectWithoutCreatorInput[]
    upsert?: ExpenseRequestUpsertWithWhereUniqueWithoutCreatorInput | ExpenseRequestUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: ExpenseRequestCreateManyCreatorInputEnvelope
    set?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
    disconnect?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
    delete?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
    connect?: ExpenseRequestWhereUniqueInput | ExpenseRequestWhereUniqueInput[]
    update?: ExpenseRequestUpdateWithWhereUniqueWithoutCreatorInput | ExpenseRequestUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: ExpenseRequestUpdateManyWithWhereWithoutCreatorInput | ExpenseRequestUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: ExpenseRequestScalarWhereInput | ExpenseRequestScalarWhereInput[]
  }

  export type PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<PurchaseRequestCreateWithoutCreatorInput, PurchaseRequestUncheckedCreateWithoutCreatorInput> | PurchaseRequestCreateWithoutCreatorInput[] | PurchaseRequestUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: PurchaseRequestCreateOrConnectWithoutCreatorInput | PurchaseRequestCreateOrConnectWithoutCreatorInput[]
    upsert?: PurchaseRequestUpsertWithWhereUniqueWithoutCreatorInput | PurchaseRequestUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: PurchaseRequestCreateManyCreatorInputEnvelope
    set?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
    disconnect?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
    delete?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
    connect?: PurchaseRequestWhereUniqueInput | PurchaseRequestWhereUniqueInput[]
    update?: PurchaseRequestUpdateWithWhereUniqueWithoutCreatorInput | PurchaseRequestUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: PurchaseRequestUpdateManyWithWhereWithoutCreatorInput | PurchaseRequestUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: PurchaseRequestScalarWhereInput | PurchaseRequestScalarWhereInput[]
  }

  export type AuditLogUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<AuditLogCreateWithoutUserInput, AuditLogUncheckedCreateWithoutUserInput> | AuditLogCreateWithoutUserInput[] | AuditLogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AuditLogCreateOrConnectWithoutUserInput | AuditLogCreateOrConnectWithoutUserInput[]
    upsert?: AuditLogUpsertWithWhereUniqueWithoutUserInput | AuditLogUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AuditLogCreateManyUserInputEnvelope
    set?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
    disconnect?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
    delete?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
    connect?: AuditLogWhereUniqueInput | AuditLogWhereUniqueInput[]
    update?: AuditLogUpdateWithWhereUniqueWithoutUserInput | AuditLogUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AuditLogUpdateManyWithWhereWithoutUserInput | AuditLogUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AuditLogScalarWhereInput | AuditLogScalarWhereInput[]
  }

  export type AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<AutomationTaskCreateWithoutCreatedByInput, AutomationTaskUncheckedCreateWithoutCreatedByInput> | AutomationTaskCreateWithoutCreatedByInput[] | AutomationTaskUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: AutomationTaskCreateOrConnectWithoutCreatedByInput | AutomationTaskCreateOrConnectWithoutCreatedByInput[]
    upsert?: AutomationTaskUpsertWithWhereUniqueWithoutCreatedByInput | AutomationTaskUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: AutomationTaskCreateManyCreatedByInputEnvelope
    set?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
    disconnect?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
    delete?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
    connect?: AutomationTaskWhereUniqueInput | AutomationTaskWhereUniqueInput[]
    update?: AutomationTaskUpdateWithWhereUniqueWithoutCreatedByInput | AutomationTaskUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: AutomationTaskUpdateManyWithWhereWithoutCreatedByInput | AutomationTaskUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: AutomationTaskScalarWhereInput | AutomationTaskScalarWhereInput[]
  }

  export type FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<FormDefinitionCreateWithoutCreatorInput, FormDefinitionUncheckedCreateWithoutCreatorInput> | FormDefinitionCreateWithoutCreatorInput[] | FormDefinitionUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutCreatorInput | FormDefinitionCreateOrConnectWithoutCreatorInput[]
    upsert?: FormDefinitionUpsertWithWhereUniqueWithoutCreatorInput | FormDefinitionUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: FormDefinitionCreateManyCreatorInputEnvelope
    set?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    disconnect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    delete?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    update?: FormDefinitionUpdateWithWhereUniqueWithoutCreatorInput | FormDefinitionUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: FormDefinitionUpdateManyWithWhereWithoutCreatorInput | FormDefinitionUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: FormDefinitionScalarWhereInput | FormDefinitionScalarWhereInput[]
  }

  export type FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput = {
    create?: XOR<FormDefinitionCreateWithoutUpdaterInput, FormDefinitionUncheckedCreateWithoutUpdaterInput> | FormDefinitionCreateWithoutUpdaterInput[] | FormDefinitionUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormDefinitionCreateOrConnectWithoutUpdaterInput | FormDefinitionCreateOrConnectWithoutUpdaterInput[]
    upsert?: FormDefinitionUpsertWithWhereUniqueWithoutUpdaterInput | FormDefinitionUpsertWithWhereUniqueWithoutUpdaterInput[]
    createMany?: FormDefinitionCreateManyUpdaterInputEnvelope
    set?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    disconnect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    delete?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    connect?: FormDefinitionWhereUniqueInput | FormDefinitionWhereUniqueInput[]
    update?: FormDefinitionUpdateWithWhereUniqueWithoutUpdaterInput | FormDefinitionUpdateWithWhereUniqueWithoutUpdaterInput[]
    updateMany?: FormDefinitionUpdateManyWithWhereWithoutUpdaterInput | FormDefinitionUpdateManyWithWhereWithoutUpdaterInput[]
    deleteMany?: FormDefinitionScalarWhereInput | FormDefinitionScalarWhereInput[]
  }

  export type FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<FormInstanceCreateWithoutCreatorInput, FormInstanceUncheckedCreateWithoutCreatorInput> | FormInstanceCreateWithoutCreatorInput[] | FormInstanceUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutCreatorInput | FormInstanceCreateOrConnectWithoutCreatorInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutCreatorInput | FormInstanceUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: FormInstanceCreateManyCreatorInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutCreatorInput | FormInstanceUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutCreatorInput | FormInstanceUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput = {
    create?: XOR<FormInstanceCreateWithoutSubmitterInput, FormInstanceUncheckedCreateWithoutSubmitterInput> | FormInstanceCreateWithoutSubmitterInput[] | FormInstanceUncheckedCreateWithoutSubmitterInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutSubmitterInput | FormInstanceCreateOrConnectWithoutSubmitterInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutSubmitterInput | FormInstanceUpsertWithWhereUniqueWithoutSubmitterInput[]
    createMany?: FormInstanceCreateManySubmitterInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutSubmitterInput | FormInstanceUpdateWithWhereUniqueWithoutSubmitterInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutSubmitterInput | FormInstanceUpdateManyWithWhereWithoutSubmitterInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput = {
    create?: XOR<FormInstanceCreateWithoutUpdaterInput, FormInstanceUncheckedCreateWithoutUpdaterInput> | FormInstanceCreateWithoutUpdaterInput[] | FormInstanceUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormInstanceCreateOrConnectWithoutUpdaterInput | FormInstanceCreateOrConnectWithoutUpdaterInput[]
    upsert?: FormInstanceUpsertWithWhereUniqueWithoutUpdaterInput | FormInstanceUpsertWithWhereUniqueWithoutUpdaterInput[]
    createMany?: FormInstanceCreateManyUpdaterInputEnvelope
    set?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    disconnect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    delete?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    connect?: FormInstanceWhereUniqueInput | FormInstanceWhereUniqueInput[]
    update?: FormInstanceUpdateWithWhereUniqueWithoutUpdaterInput | FormInstanceUpdateWithWhereUniqueWithoutUpdaterInput[]
    updateMany?: FormInstanceUpdateManyWithWhereWithoutUpdaterInput | FormInstanceUpdateManyWithWhereWithoutUpdaterInput[]
    deleteMany?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
  }

  export type FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<FormTemplateCreateWithoutCreatorInput, FormTemplateUncheckedCreateWithoutCreatorInput> | FormTemplateCreateWithoutCreatorInput[] | FormTemplateUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormTemplateCreateOrConnectWithoutCreatorInput | FormTemplateCreateOrConnectWithoutCreatorInput[]
    upsert?: FormTemplateUpsertWithWhereUniqueWithoutCreatorInput | FormTemplateUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: FormTemplateCreateManyCreatorInputEnvelope
    set?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    disconnect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    delete?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    connect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    update?: FormTemplateUpdateWithWhereUniqueWithoutCreatorInput | FormTemplateUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: FormTemplateUpdateManyWithWhereWithoutCreatorInput | FormTemplateUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: FormTemplateScalarWhereInput | FormTemplateScalarWhereInput[]
  }

  export type FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput = {
    create?: XOR<FormTemplateCreateWithoutUpdaterInput, FormTemplateUncheckedCreateWithoutUpdaterInput> | FormTemplateCreateWithoutUpdaterInput[] | FormTemplateUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: FormTemplateCreateOrConnectWithoutUpdaterInput | FormTemplateCreateOrConnectWithoutUpdaterInput[]
    upsert?: FormTemplateUpsertWithWhereUniqueWithoutUpdaterInput | FormTemplateUpsertWithWhereUniqueWithoutUpdaterInput[]
    createMany?: FormTemplateCreateManyUpdaterInputEnvelope
    set?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    disconnect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    delete?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    connect?: FormTemplateWhereUniqueInput | FormTemplateWhereUniqueInput[]
    update?: FormTemplateUpdateWithWhereUniqueWithoutUpdaterInput | FormTemplateUpdateWithWhereUniqueWithoutUpdaterInput[]
    updateMany?: FormTemplateUpdateManyWithWhereWithoutUpdaterInput | FormTemplateUpdateManyWithWhereWithoutUpdaterInput[]
    deleteMany?: FormTemplateScalarWhereInput | FormTemplateScalarWhereInput[]
  }

  export type FormVersionUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<FormVersionCreateWithoutCreatorInput, FormVersionUncheckedCreateWithoutCreatorInput> | FormVersionCreateWithoutCreatorInput[] | FormVersionUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutCreatorInput | FormVersionCreateOrConnectWithoutCreatorInput[]
    upsert?: FormVersionUpsertWithWhereUniqueWithoutCreatorInput | FormVersionUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: FormVersionCreateManyCreatorInputEnvelope
    set?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    disconnect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    delete?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    update?: FormVersionUpdateWithWhereUniqueWithoutCreatorInput | FormVersionUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: FormVersionUpdateManyWithWhereWithoutCreatorInput | FormVersionUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: FormVersionScalarWhereInput | FormVersionScalarWhereInput[]
  }

  export type FormVersionUncheckedUpdateManyWithoutReviewerNestedInput = {
    create?: XOR<FormVersionCreateWithoutReviewerInput, FormVersionUncheckedCreateWithoutReviewerInput> | FormVersionCreateWithoutReviewerInput[] | FormVersionUncheckedCreateWithoutReviewerInput[]
    connectOrCreate?: FormVersionCreateOrConnectWithoutReviewerInput | FormVersionCreateOrConnectWithoutReviewerInput[]
    upsert?: FormVersionUpsertWithWhereUniqueWithoutReviewerInput | FormVersionUpsertWithWhereUniqueWithoutReviewerInput[]
    createMany?: FormVersionCreateManyReviewerInputEnvelope
    set?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    disconnect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    delete?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    connect?: FormVersionWhereUniqueInput | FormVersionWhereUniqueInput[]
    update?: FormVersionUpdateWithWhereUniqueWithoutReviewerInput | FormVersionUpdateWithWhereUniqueWithoutReviewerInput[]
    updateMany?: FormVersionUpdateManyWithWhereWithoutReviewerInput | FormVersionUpdateManyWithWhereWithoutReviewerInput[]
    deleteMany?: FormVersionScalarWhereInput | FormVersionScalarWhereInput[]
  }

  export type UserRoleUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<UserRoleCreateWithoutUserInput, UserRoleUncheckedCreateWithoutUserInput> | UserRoleCreateWithoutUserInput[] | UserRoleUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutUserInput | UserRoleCreateOrConnectWithoutUserInput[]
    upsert?: UserRoleUpsertWithWhereUniqueWithoutUserInput | UserRoleUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: UserRoleCreateManyUserInputEnvelope
    set?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    disconnect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    delete?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    update?: UserRoleUpdateWithWhereUniqueWithoutUserInput | UserRoleUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: UserRoleUpdateManyWithWhereWithoutUserInput | UserRoleUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: UserRoleScalarWhereInput | UserRoleScalarWhereInput[]
  }

  export type WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<WorkflowRoleUserCreateWithoutUserInput, WorkflowRoleUserUncheckedCreateWithoutUserInput> | WorkflowRoleUserCreateWithoutUserInput[] | WorkflowRoleUserUncheckedCreateWithoutUserInput[]
    connectOrCreate?: WorkflowRoleUserCreateOrConnectWithoutUserInput | WorkflowRoleUserCreateOrConnectWithoutUserInput[]
    upsert?: WorkflowRoleUserUpsertWithWhereUniqueWithoutUserInput | WorkflowRoleUserUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: WorkflowRoleUserCreateManyUserInputEnvelope
    set?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    disconnect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    delete?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    connect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    update?: WorkflowRoleUserUpdateWithWhereUniqueWithoutUserInput | WorkflowRoleUserUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: WorkflowRoleUserUpdateManyWithWhereWithoutUserInput | WorkflowRoleUserUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: WorkflowRoleUserScalarWhereInput | WorkflowRoleUserScalarWhereInput[]
  }

  export type UserDepartmentUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutUserInput, UserDepartmentUncheckedCreateWithoutUserInput> | UserDepartmentCreateWithoutUserInput[] | UserDepartmentUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutUserInput | UserDepartmentCreateOrConnectWithoutUserInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutUserInput | UserDepartmentUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: UserDepartmentCreateManyUserInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutUserInput | UserDepartmentUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutUserInput | UserDepartmentUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput = {
    create?: XOR<UserDepartmentCreateWithoutManagerInput, UserDepartmentUncheckedCreateWithoutManagerInput> | UserDepartmentCreateWithoutManagerInput[] | UserDepartmentUncheckedCreateWithoutManagerInput[]
    connectOrCreate?: UserDepartmentCreateOrConnectWithoutManagerInput | UserDepartmentCreateOrConnectWithoutManagerInput[]
    upsert?: UserDepartmentUpsertWithWhereUniqueWithoutManagerInput | UserDepartmentUpsertWithWhereUniqueWithoutManagerInput[]
    createMany?: UserDepartmentCreateManyManagerInputEnvelope
    set?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    disconnect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    delete?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    connect?: UserDepartmentWhereUniqueInput | UserDepartmentWhereUniqueInput[]
    update?: UserDepartmentUpdateWithWhereUniqueWithoutManagerInput | UserDepartmentUpdateWithWhereUniqueWithoutManagerInput[]
    updateMany?: UserDepartmentUpdateManyWithWhereWithoutManagerInput | UserDepartmentUpdateManyWithWhereWithoutManagerInput[]
    deleteMany?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
  }

  export type NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput = {
    create?: XOR<NotificationLogCreateWithoutRecipientInput, NotificationLogUncheckedCreateWithoutRecipientInput> | NotificationLogCreateWithoutRecipientInput[] | NotificationLogUncheckedCreateWithoutRecipientInput[]
    connectOrCreate?: NotificationLogCreateOrConnectWithoutRecipientInput | NotificationLogCreateOrConnectWithoutRecipientInput[]
    upsert?: NotificationLogUpsertWithWhereUniqueWithoutRecipientInput | NotificationLogUpsertWithWhereUniqueWithoutRecipientInput[]
    createMany?: NotificationLogCreateManyRecipientInputEnvelope
    set?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    disconnect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    delete?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    connect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    update?: NotificationLogUpdateWithWhereUniqueWithoutRecipientInput | NotificationLogUpdateWithWhereUniqueWithoutRecipientInput[]
    updateMany?: NotificationLogUpdateManyWithWhereWithoutRecipientInput | NotificationLogUpdateManyWithWhereWithoutRecipientInput[]
    deleteMany?: NotificationLogScalarWhereInput | NotificationLogScalarWhereInput[]
  }

  export type NotificationMessageUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<NotificationMessageCreateWithoutUserInput, NotificationMessageUncheckedCreateWithoutUserInput> | NotificationMessageCreateWithoutUserInput[] | NotificationMessageUncheckedCreateWithoutUserInput[]
    connectOrCreate?: NotificationMessageCreateOrConnectWithoutUserInput | NotificationMessageCreateOrConnectWithoutUserInput[]
    upsert?: NotificationMessageUpsertWithWhereUniqueWithoutUserInput | NotificationMessageUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: NotificationMessageCreateManyUserInputEnvelope
    set?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
    disconnect?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
    delete?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
    connect?: NotificationMessageWhereUniqueInput | NotificationMessageWhereUniqueInput[]
    update?: NotificationMessageUpdateWithWhereUniqueWithoutUserInput | NotificationMessageUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: NotificationMessageUpdateManyWithWhereWithoutUserInput | NotificationMessageUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: NotificationMessageScalarWhereInput | NotificationMessageScalarWhereInput[]
  }

  export type UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<UserDelegationSettingCreateWithoutUserInput, UserDelegationSettingUncheckedCreateWithoutUserInput> | UserDelegationSettingCreateWithoutUserInput[] | UserDelegationSettingUncheckedCreateWithoutUserInput[]
    connectOrCreate?: UserDelegationSettingCreateOrConnectWithoutUserInput | UserDelegationSettingCreateOrConnectWithoutUserInput[]
    upsert?: UserDelegationSettingUpsertWithWhereUniqueWithoutUserInput | UserDelegationSettingUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: UserDelegationSettingCreateManyUserInputEnvelope
    set?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    disconnect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    delete?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    connect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    update?: UserDelegationSettingUpdateWithWhereUniqueWithoutUserInput | UserDelegationSettingUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: UserDelegationSettingUpdateManyWithWhereWithoutUserInput | UserDelegationSettingUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: UserDelegationSettingScalarWhereInput | UserDelegationSettingScalarWhereInput[]
  }

  export type UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput = {
    create?: XOR<UserDelegationSettingCreateWithoutDelegateUserInput, UserDelegationSettingUncheckedCreateWithoutDelegateUserInput> | UserDelegationSettingCreateWithoutDelegateUserInput[] | UserDelegationSettingUncheckedCreateWithoutDelegateUserInput[]
    connectOrCreate?: UserDelegationSettingCreateOrConnectWithoutDelegateUserInput | UserDelegationSettingCreateOrConnectWithoutDelegateUserInput[]
    upsert?: UserDelegationSettingUpsertWithWhereUniqueWithoutDelegateUserInput | UserDelegationSettingUpsertWithWhereUniqueWithoutDelegateUserInput[]
    createMany?: UserDelegationSettingCreateManyDelegateUserInputEnvelope
    set?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    disconnect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    delete?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    connect?: UserDelegationSettingWhereUniqueInput | UserDelegationSettingWhereUniqueInput[]
    update?: UserDelegationSettingUpdateWithWhereUniqueWithoutDelegateUserInput | UserDelegationSettingUpdateWithWhereUniqueWithoutDelegateUserInput[]
    updateMany?: UserDelegationSettingUpdateManyWithWhereWithoutDelegateUserInput | UserDelegationSettingUpdateManyWithWhereWithoutDelegateUserInput[]
    deleteMany?: UserDelegationSettingScalarWhereInput | UserDelegationSettingScalarWhereInput[]
  }

  export type KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<KnowledgeArticleCreateWithoutCreatedByInput, KnowledgeArticleUncheckedCreateWithoutCreatedByInput> | KnowledgeArticleCreateWithoutCreatedByInput[] | KnowledgeArticleUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutCreatedByInput | KnowledgeArticleCreateOrConnectWithoutCreatedByInput[]
    upsert?: KnowledgeArticleUpsertWithWhereUniqueWithoutCreatedByInput | KnowledgeArticleUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: KnowledgeArticleCreateManyCreatedByInputEnvelope
    set?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
    disconnect?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
    delete?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
    connect?: KnowledgeArticleWhereUniqueInput | KnowledgeArticleWhereUniqueInput[]
    update?: KnowledgeArticleUpdateWithWhereUniqueWithoutCreatedByInput | KnowledgeArticleUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: KnowledgeArticleUpdateManyWithWhereWithoutCreatedByInput | KnowledgeArticleUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: KnowledgeArticleScalarWhereInput | KnowledgeArticleScalarWhereInput[]
  }

  export type AIQALogUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<AIQALogCreateWithoutUserInput, AIQALogUncheckedCreateWithoutUserInput> | AIQALogCreateWithoutUserInput[] | AIQALogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AIQALogCreateOrConnectWithoutUserInput | AIQALogCreateOrConnectWithoutUserInput[]
    upsert?: AIQALogUpsertWithWhereUniqueWithoutUserInput | AIQALogUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AIQALogCreateManyUserInputEnvelope
    set?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
    disconnect?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
    delete?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
    connect?: AIQALogWhereUniqueInput | AIQALogWhereUniqueInput[]
    update?: AIQALogUpdateWithWhereUniqueWithoutUserInput | AIQALogUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AIQALogUpdateManyWithWhereWithoutUserInput | AIQALogUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AIQALogScalarWhereInput | AIQALogScalarWhereInput[]
  }

  export type DocumentViewUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<DocumentViewCreateWithoutUserInput, DocumentViewUncheckedCreateWithoutUserInput> | DocumentViewCreateWithoutUserInput[] | DocumentViewUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutUserInput | DocumentViewCreateOrConnectWithoutUserInput[]
    upsert?: DocumentViewUpsertWithWhereUniqueWithoutUserInput | DocumentViewUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: DocumentViewCreateManyUserInputEnvelope
    set?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    disconnect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    delete?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    update?: DocumentViewUpdateWithWhereUniqueWithoutUserInput | DocumentViewUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: DocumentViewUpdateManyWithWhereWithoutUserInput | DocumentViewUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: DocumentViewScalarWhereInput | DocumentViewScalarWhereInput[]
  }

  export type DocumentLikeUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<DocumentLikeCreateWithoutUserInput, DocumentLikeUncheckedCreateWithoutUserInput> | DocumentLikeCreateWithoutUserInput[] | DocumentLikeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutUserInput | DocumentLikeCreateOrConnectWithoutUserInput[]
    upsert?: DocumentLikeUpsertWithWhereUniqueWithoutUserInput | DocumentLikeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: DocumentLikeCreateManyUserInputEnvelope
    set?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    disconnect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    delete?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    update?: DocumentLikeUpdateWithWhereUniqueWithoutUserInput | DocumentLikeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: DocumentLikeUpdateManyWithWhereWithoutUserInput | DocumentLikeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: DocumentLikeScalarWhereInput | DocumentLikeScalarWhereInput[]
  }

  export type DocumentCommentUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutUserInput, DocumentCommentUncheckedCreateWithoutUserInput> | DocumentCommentCreateWithoutUserInput[] | DocumentCommentUncheckedCreateWithoutUserInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutUserInput | DocumentCommentCreateOrConnectWithoutUserInput[]
    upsert?: DocumentCommentUpsertWithWhereUniqueWithoutUserInput | DocumentCommentUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: DocumentCommentCreateManyUserInputEnvelope
    set?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    disconnect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    delete?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    update?: DocumentCommentUpdateWithWhereUniqueWithoutUserInput | DocumentCommentUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: DocumentCommentUpdateManyWithWhereWithoutUserInput | DocumentCommentUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
  }

  export type UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput = {
    create?: XOR<UserMentionCreateWithoutMentionedUserInput, UserMentionUncheckedCreateWithoutMentionedUserInput> | UserMentionCreateWithoutMentionedUserInput[] | UserMentionUncheckedCreateWithoutMentionedUserInput[]
    connectOrCreate?: UserMentionCreateOrConnectWithoutMentionedUserInput | UserMentionCreateOrConnectWithoutMentionedUserInput[]
    upsert?: UserMentionUpsertWithWhereUniqueWithoutMentionedUserInput | UserMentionUpsertWithWhereUniqueWithoutMentionedUserInput[]
    createMany?: UserMentionCreateManyMentionedUserInputEnvelope
    set?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    disconnect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    delete?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    connect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    update?: UserMentionUpdateWithWhereUniqueWithoutMentionedUserInput | UserMentionUpdateWithWhereUniqueWithoutMentionedUserInput[]
    updateMany?: UserMentionUpdateManyWithWhereWithoutMentionedUserInput | UserMentionUpdateManyWithWhereWithoutMentionedUserInput[]
    deleteMany?: UserMentionScalarWhereInput | UserMentionScalarWhereInput[]
  }

  export type StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput = {
    create?: XOR<StrategicObjectiveAssignmentCreateWithoutAssigneeInput, StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput> | StrategicObjectiveAssignmentCreateWithoutAssigneeInput[] | StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput | StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput[]
    upsert?: StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutAssigneeInput | StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutAssigneeInput[]
    createMany?: StrategicObjectiveAssignmentCreateManyAssigneeInputEnvelope
    set?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    disconnect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    delete?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    connect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    update?: StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutAssigneeInput | StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutAssigneeInput[]
    updateMany?: StrategicObjectiveAssignmentUpdateManyWithWhereWithoutAssigneeInput | StrategicObjectiveAssignmentUpdateManyWithWhereWithoutAssigneeInput[]
    deleteMany?: StrategicObjectiveAssignmentScalarWhereInput | StrategicObjectiveAssignmentScalarWhereInput[]
  }

  export type FeedbackUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<FeedbackCreateWithoutUserInput, FeedbackUncheckedCreateWithoutUserInput> | FeedbackCreateWithoutUserInput[] | FeedbackUncheckedCreateWithoutUserInput[]
    connectOrCreate?: FeedbackCreateOrConnectWithoutUserInput | FeedbackCreateOrConnectWithoutUserInput[]
    upsert?: FeedbackUpsertWithWhereUniqueWithoutUserInput | FeedbackUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: FeedbackCreateManyUserInputEnvelope
    set?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    disconnect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    delete?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    connect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    update?: FeedbackUpdateWithWhereUniqueWithoutUserInput | FeedbackUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: FeedbackUpdateManyWithWhereWithoutUserInput | FeedbackUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: FeedbackScalarWhereInput | FeedbackScalarWhereInput[]
  }

  export type FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput = {
    create?: XOR<FeedbackCreateWithoutAssigneeInput, FeedbackUncheckedCreateWithoutAssigneeInput> | FeedbackCreateWithoutAssigneeInput[] | FeedbackUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: FeedbackCreateOrConnectWithoutAssigneeInput | FeedbackCreateOrConnectWithoutAssigneeInput[]
    upsert?: FeedbackUpsertWithWhereUniqueWithoutAssigneeInput | FeedbackUpsertWithWhereUniqueWithoutAssigneeInput[]
    createMany?: FeedbackCreateManyAssigneeInputEnvelope
    set?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    disconnect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    delete?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    connect?: FeedbackWhereUniqueInput | FeedbackWhereUniqueInput[]
    update?: FeedbackUpdateWithWhereUniqueWithoutAssigneeInput | FeedbackUpdateWithWhereUniqueWithoutAssigneeInput[]
    updateMany?: FeedbackUpdateManyWithWhereWithoutAssigneeInput | FeedbackUpdateManyWithWhereWithoutAssigneeInput[]
    deleteMany?: FeedbackScalarWhereInput | FeedbackScalarWhereInput[]
  }

  export type DevItemUncheckedUpdateManyWithoutOwnerNestedInput = {
    create?: XOR<DevItemCreateWithoutOwnerInput, DevItemUncheckedCreateWithoutOwnerInput> | DevItemCreateWithoutOwnerInput[] | DevItemUncheckedCreateWithoutOwnerInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutOwnerInput | DevItemCreateOrConnectWithoutOwnerInput[]
    upsert?: DevItemUpsertWithWhereUniqueWithoutOwnerInput | DevItemUpsertWithWhereUniqueWithoutOwnerInput[]
    createMany?: DevItemCreateManyOwnerInputEnvelope
    set?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    disconnect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    delete?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    update?: DevItemUpdateWithWhereUniqueWithoutOwnerInput | DevItemUpdateWithWhereUniqueWithoutOwnerInput[]
    updateMany?: DevItemUpdateManyWithWhereWithoutOwnerInput | DevItemUpdateManyWithWhereWithoutOwnerInput[]
    deleteMany?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
  }

  export type DevItemUncheckedUpdateManyWithoutReporterNestedInput = {
    create?: XOR<DevItemCreateWithoutReporterInput, DevItemUncheckedCreateWithoutReporterInput> | DevItemCreateWithoutReporterInput[] | DevItemUncheckedCreateWithoutReporterInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutReporterInput | DevItemCreateOrConnectWithoutReporterInput[]
    upsert?: DevItemUpsertWithWhereUniqueWithoutReporterInput | DevItemUpsertWithWhereUniqueWithoutReporterInput[]
    createMany?: DevItemCreateManyReporterInputEnvelope
    set?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    disconnect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    delete?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    update?: DevItemUpdateWithWhereUniqueWithoutReporterInput | DevItemUpdateWithWhereUniqueWithoutReporterInput[]
    updateMany?: DevItemUpdateManyWithWhereWithoutReporterInput | DevItemUpdateManyWithWhereWithoutReporterInput[]
    deleteMany?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
  }

  export type DevItemUncheckedUpdateManyWithoutReviewerNestedInput = {
    create?: XOR<DevItemCreateWithoutReviewerInput, DevItemUncheckedCreateWithoutReviewerInput> | DevItemCreateWithoutReviewerInput[] | DevItemUncheckedCreateWithoutReviewerInput[]
    connectOrCreate?: DevItemCreateOrConnectWithoutReviewerInput | DevItemCreateOrConnectWithoutReviewerInput[]
    upsert?: DevItemUpsertWithWhereUniqueWithoutReviewerInput | DevItemUpsertWithWhereUniqueWithoutReviewerInput[]
    createMany?: DevItemCreateManyReviewerInputEnvelope
    set?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    disconnect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    delete?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    connect?: DevItemWhereUniqueInput | DevItemWhereUniqueInput[]
    update?: DevItemUpdateWithWhereUniqueWithoutReviewerInput | DevItemUpdateWithWhereUniqueWithoutReviewerInput[]
    updateMany?: DevItemUpdateManyWithWhereWithoutReviewerInput | DevItemUpdateManyWithWhereWithoutReviewerInput[]
    deleteMany?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
  }

  export type ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<ReleaseNoteCreateWithoutCreatorInput, ReleaseNoteUncheckedCreateWithoutCreatorInput> | ReleaseNoteCreateWithoutCreatorInput[] | ReleaseNoteUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: ReleaseNoteCreateOrConnectWithoutCreatorInput | ReleaseNoteCreateOrConnectWithoutCreatorInput[]
    upsert?: ReleaseNoteUpsertWithWhereUniqueWithoutCreatorInput | ReleaseNoteUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: ReleaseNoteCreateManyCreatorInputEnvelope
    set?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
    disconnect?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
    delete?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
    connect?: ReleaseNoteWhereUniqueInput | ReleaseNoteWhereUniqueInput[]
    update?: ReleaseNoteUpdateWithWhereUniqueWithoutCreatorInput | ReleaseNoteUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: ReleaseNoteUpdateManyWithWhereWithoutCreatorInput | ReleaseNoteUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: ReleaseNoteScalarWhereInput | ReleaseNoteScalarWhereInput[]
  }

  export type SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<SiteCheckpointCreateWithoutCreatorInput, SiteCheckpointUncheckedCreateWithoutCreatorInput> | SiteCheckpointCreateWithoutCreatorInput[] | SiteCheckpointUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutCreatorInput | SiteCheckpointCreateOrConnectWithoutCreatorInput[]
    upsert?: SiteCheckpointUpsertWithWhereUniqueWithoutCreatorInput | SiteCheckpointUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: SiteCheckpointCreateManyCreatorInputEnvelope
    set?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
    disconnect?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
    delete?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
    connect?: SiteCheckpointWhereUniqueInput | SiteCheckpointWhereUniqueInput[]
    update?: SiteCheckpointUpdateWithWhereUniqueWithoutCreatorInput | SiteCheckpointUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: SiteCheckpointUpdateManyWithWhereWithoutCreatorInput | SiteCheckpointUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: SiteCheckpointScalarWhereInput | SiteCheckpointScalarWhereInput[]
  }

  export type SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<SiteAttendanceEventCreateWithoutUserInput, SiteAttendanceEventUncheckedCreateWithoutUserInput> | SiteAttendanceEventCreateWithoutUserInput[] | SiteAttendanceEventUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SiteAttendanceEventCreateOrConnectWithoutUserInput | SiteAttendanceEventCreateOrConnectWithoutUserInput[]
    upsert?: SiteAttendanceEventUpsertWithWhereUniqueWithoutUserInput | SiteAttendanceEventUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: SiteAttendanceEventCreateManyUserInputEnvelope
    set?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    disconnect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    delete?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    connect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    update?: SiteAttendanceEventUpdateWithWhereUniqueWithoutUserInput | SiteAttendanceEventUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: SiteAttendanceEventUpdateManyWithWhereWithoutUserInput | SiteAttendanceEventUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: SiteAttendanceEventScalarWhereInput | SiteAttendanceEventScalarWhereInput[]
  }

  export type SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<SiteDailySummaryCreateWithoutUserInput, SiteDailySummaryUncheckedCreateWithoutUserInput> | SiteDailySummaryCreateWithoutUserInput[] | SiteDailySummaryUncheckedCreateWithoutUserInput[]
    connectOrCreate?: SiteDailySummaryCreateOrConnectWithoutUserInput | SiteDailySummaryCreateOrConnectWithoutUserInput[]
    upsert?: SiteDailySummaryUpsertWithWhereUniqueWithoutUserInput | SiteDailySummaryUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: SiteDailySummaryCreateManyUserInputEnvelope
    set?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    disconnect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    delete?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    connect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    update?: SiteDailySummaryUpdateWithWhereUniqueWithoutUserInput | SiteDailySummaryUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: SiteDailySummaryUpdateManyWithWhereWithoutUserInput | SiteDailySummaryUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: SiteDailySummaryScalarWhereInput | SiteDailySummaryScalarWhereInput[]
  }

  export type SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutCreatorInput, SharedCheckinPartnerUncheckedCreateWithoutCreatorInput> | SharedCheckinPartnerCreateWithoutCreatorInput[] | SharedCheckinPartnerUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutCreatorInput | SharedCheckinPartnerCreateOrConnectWithoutCreatorInput[]
    upsert?: SharedCheckinPartnerUpsertWithWhereUniqueWithoutCreatorInput | SharedCheckinPartnerUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: SharedCheckinPartnerCreateManyCreatorInputEnvelope
    set?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    disconnect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    delete?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    update?: SharedCheckinPartnerUpdateWithWhereUniqueWithoutCreatorInput | SharedCheckinPartnerUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: SharedCheckinPartnerUpdateManyWithWhereWithoutCreatorInput | SharedCheckinPartnerUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: SharedCheckinPartnerScalarWhereInput | SharedCheckinPartnerScalarWhereInput[]
  }

  export type SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutUpdaterInput, SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput> | SharedCheckinPartnerCreateWithoutUpdaterInput[] | SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput | SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput[]
    upsert?: SharedCheckinPartnerUpsertWithWhereUniqueWithoutUpdaterInput | SharedCheckinPartnerUpsertWithWhereUniqueWithoutUpdaterInput[]
    createMany?: SharedCheckinPartnerCreateManyUpdaterInputEnvelope
    set?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    disconnect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    delete?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    update?: SharedCheckinPartnerUpdateWithWhereUniqueWithoutUpdaterInput | SharedCheckinPartnerUpdateWithWhereUniqueWithoutUpdaterInput[]
    updateMany?: SharedCheckinPartnerUpdateManyWithWhereWithoutUpdaterInput | SharedCheckinPartnerUpdateManyWithWhereWithoutUpdaterInput[]
    deleteMany?: SharedCheckinPartnerScalarWhereInput | SharedCheckinPartnerScalarWhereInput[]
  }

  export type MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingAttendanceCreateWithoutUserInput, MeetingAttendanceUncheckedCreateWithoutUserInput> | MeetingAttendanceCreateWithoutUserInput[] | MeetingAttendanceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceCreateOrConnectWithoutUserInput | MeetingAttendanceCreateOrConnectWithoutUserInput[]
    upsert?: MeetingAttendanceUpsertWithWhereUniqueWithoutUserInput | MeetingAttendanceUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingAttendanceCreateManyUserInputEnvelope
    set?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    disconnect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    delete?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    connect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    update?: MeetingAttendanceUpdateWithWhereUniqueWithoutUserInput | MeetingAttendanceUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingAttendanceUpdateManyWithWhereWithoutUserInput | MeetingAttendanceUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingAttendanceScalarWhereInput | MeetingAttendanceScalarWhereInput[]
  }

  export type MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingRequiredAttendeeCreateWithoutUserInput, MeetingRequiredAttendeeUncheckedCreateWithoutUserInput> | MeetingRequiredAttendeeCreateWithoutUserInput[] | MeetingRequiredAttendeeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingRequiredAttendeeCreateOrConnectWithoutUserInput | MeetingRequiredAttendeeCreateOrConnectWithoutUserInput[]
    upsert?: MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutUserInput | MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingRequiredAttendeeCreateManyUserInputEnvelope
    set?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    disconnect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    delete?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    connect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    update?: MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutUserInput | MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingRequiredAttendeeUpdateManyWithWhereWithoutUserInput | MeetingRequiredAttendeeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingRequiredAttendeeScalarWhereInput | MeetingRequiredAttendeeScalarWhereInput[]
  }

  export type MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<MeetingTemplateCreateWithoutCreatorInput, MeetingTemplateUncheckedCreateWithoutCreatorInput> | MeetingTemplateCreateWithoutCreatorInput[] | MeetingTemplateUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingTemplateCreateOrConnectWithoutCreatorInput | MeetingTemplateCreateOrConnectWithoutCreatorInput[]
    upsert?: MeetingTemplateUpsertWithWhereUniqueWithoutCreatorInput | MeetingTemplateUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: MeetingTemplateCreateManyCreatorInputEnvelope
    set?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
    disconnect?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
    delete?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
    connect?: MeetingTemplateWhereUniqueInput | MeetingTemplateWhereUniqueInput[]
    update?: MeetingTemplateUpdateWithWhereUniqueWithoutCreatorInput | MeetingTemplateUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: MeetingTemplateUpdateManyWithWhereWithoutCreatorInput | MeetingTemplateUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: MeetingTemplateScalarWhereInput | MeetingTemplateScalarWhereInput[]
  }

  export type MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingTemplateAttendeeCreateWithoutUserInput, MeetingTemplateAttendeeUncheckedCreateWithoutUserInput> | MeetingTemplateAttendeeCreateWithoutUserInput[] | MeetingTemplateAttendeeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingTemplateAttendeeCreateOrConnectWithoutUserInput | MeetingTemplateAttendeeCreateOrConnectWithoutUserInput[]
    upsert?: MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutUserInput | MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingTemplateAttendeeCreateManyUserInputEnvelope
    set?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    disconnect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    delete?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    connect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    update?: MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutUserInput | MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingTemplateAttendeeUpdateManyWithWhereWithoutUserInput | MeetingTemplateAttendeeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingTemplateAttendeeScalarWhereInput | MeetingTemplateAttendeeScalarWhereInput[]
  }

  export type MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingAttendanceLeaveRecordCreateWithoutUserInput, MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput> | MeetingAttendanceLeaveRecordCreateWithoutUserInput[] | MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput | MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput[]
    upsert?: MeetingAttendanceLeaveRecordUpsertWithWhereUniqueWithoutUserInput | MeetingAttendanceLeaveRecordUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingAttendanceLeaveRecordCreateManyUserInputEnvelope
    set?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
    disconnect?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
    delete?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
    connect?: MeetingAttendanceLeaveRecordWhereUniqueInput | MeetingAttendanceLeaveRecordWhereUniqueInput[]
    update?: MeetingAttendanceLeaveRecordUpdateWithWhereUniqueWithoutUserInput | MeetingAttendanceLeaveRecordUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingAttendanceLeaveRecordUpdateManyWithWhereWithoutUserInput | MeetingAttendanceLeaveRecordUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingAttendanceLeaveRecordScalarWhereInput | MeetingAttendanceLeaveRecordScalarWhereInput[]
  }

  export type MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingAttendanceAuditLogCreateWithoutUserInput, MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput> | MeetingAttendanceAuditLogCreateWithoutUserInput[] | MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput | MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput[]
    upsert?: MeetingAttendanceAuditLogUpsertWithWhereUniqueWithoutUserInput | MeetingAttendanceAuditLogUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingAttendanceAuditLogCreateManyUserInputEnvelope
    set?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
    disconnect?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
    delete?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
    connect?: MeetingAttendanceAuditLogWhereUniqueInput | MeetingAttendanceAuditLogWhereUniqueInput[]
    update?: MeetingAttendanceAuditLogUpdateWithWhereUniqueWithoutUserInput | MeetingAttendanceAuditLogUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingAttendanceAuditLogUpdateManyWithWhereWithoutUserInput | MeetingAttendanceAuditLogUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingAttendanceAuditLogScalarWhereInput | MeetingAttendanceAuditLogScalarWhereInput[]
  }

  export type MeetingUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<MeetingCreateWithoutCreatorInput, MeetingUncheckedCreateWithoutCreatorInput> | MeetingCreateWithoutCreatorInput[] | MeetingUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingCreateOrConnectWithoutCreatorInput | MeetingCreateOrConnectWithoutCreatorInput[]
    upsert?: MeetingUpsertWithWhereUniqueWithoutCreatorInput | MeetingUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: MeetingCreateManyCreatorInputEnvelope
    set?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    disconnect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    delete?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    connect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    update?: MeetingUpdateWithWhereUniqueWithoutCreatorInput | MeetingUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: MeetingUpdateManyWithWhereWithoutCreatorInput | MeetingUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: MeetingScalarWhereInput | MeetingScalarWhereInput[]
  }

  export type MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<MeetingSeriesCreateWithoutCreatorInput, MeetingSeriesUncheckedCreateWithoutCreatorInput> | MeetingSeriesCreateWithoutCreatorInput[] | MeetingSeriesUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutCreatorInput | MeetingSeriesCreateOrConnectWithoutCreatorInput[]
    upsert?: MeetingSeriesUpsertWithWhereUniqueWithoutCreatorInput | MeetingSeriesUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: MeetingSeriesCreateManyCreatorInputEnvelope
    set?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
    disconnect?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
    delete?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
    connect?: MeetingSeriesWhereUniqueInput | MeetingSeriesWhereUniqueInput[]
    update?: MeetingSeriesUpdateWithWhereUniqueWithoutCreatorInput | MeetingSeriesUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: MeetingSeriesUpdateManyWithWhereWithoutCreatorInput | MeetingSeriesUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: MeetingSeriesScalarWhereInput | MeetingSeriesScalarWhereInput[]
  }

  export type MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingSeriesAttendeePreferenceCreateWithoutUserInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput> | MeetingSeriesAttendeePreferenceCreateWithoutUserInput[] | MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput | MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput[]
    upsert?: MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutUserInput | MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingSeriesAttendeePreferenceCreateManyUserInputEnvelope
    set?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    disconnect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    delete?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    connect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    update?: MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutUserInput | MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutUserInput | MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingSeriesAttendeePreferenceScalarWhereInput | MeetingSeriesAttendeePreferenceScalarWhereInput[]
  }

  export type MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<MeetingSeriesAttendeeExceptionCreateWithoutUserInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput> | MeetingSeriesAttendeeExceptionCreateWithoutUserInput[] | MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput[]
    connectOrCreate?: MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput | MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput[]
    upsert?: MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutUserInput | MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: MeetingSeriesAttendeeExceptionCreateManyUserInputEnvelope
    set?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    disconnect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    delete?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    connect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    update?: MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutUserInput | MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutUserInput | MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: MeetingSeriesAttendeeExceptionScalarWhereInput | MeetingSeriesAttendeeExceptionScalarWhereInput[]
  }

  export type MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutCreatedByInput, MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput> | MeetingAgendaSectionCreateWithoutCreatedByInput[] | MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput | MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAgendaSectionUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAgendaSectionUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAgendaSectionCreateManyCreatedByInputEnvelope
    set?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    disconnect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    delete?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    update?: MeetingAgendaSectionUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAgendaSectionUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAgendaSectionUpdateManyWithWhereWithoutCreatedByInput | MeetingAgendaSectionUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAgendaSectionScalarWhereInput | MeetingAgendaSectionScalarWhereInput[]
  }

  export type MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutCreatedByInput, MeetingAgendaItemUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemCreateWithoutCreatedByInput[] | MeetingAgendaItemUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAgendaItemUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemCreateManyCreatedByInputEnvelope
    set?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    disconnect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    delete?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    update?: MeetingAgendaItemUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAgendaItemUpdateManyWithWhereWithoutCreatedByInput | MeetingAgendaItemUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
  }

  export type MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutPresenterInput, MeetingAgendaItemUncheckedCreateWithoutPresenterInput> | MeetingAgendaItemCreateWithoutPresenterInput[] | MeetingAgendaItemUncheckedCreateWithoutPresenterInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutPresenterInput | MeetingAgendaItemCreateOrConnectWithoutPresenterInput[]
    upsert?: MeetingAgendaItemUpsertWithWhereUniqueWithoutPresenterInput | MeetingAgendaItemUpsertWithWhereUniqueWithoutPresenterInput[]
    createMany?: MeetingAgendaItemCreateManyPresenterInputEnvelope
    set?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    disconnect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    delete?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    update?: MeetingAgendaItemUpdateWithWhereUniqueWithoutPresenterInput | MeetingAgendaItemUpdateWithWhereUniqueWithoutPresenterInput[]
    updateMany?: MeetingAgendaItemUpdateManyWithWhereWithoutPresenterInput | MeetingAgendaItemUpdateManyWithWhereWithoutPresenterInput[]
    deleteMany?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput> | MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssigneeInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssigneeInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAssigneeInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssigneeInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssigneeInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssigneeInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssigneeInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput> | MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssignedByInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssignedByInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAssignedByInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssignedByInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssignedByInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssignedByInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssignedByInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyCreatedByInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutCreatedByInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutUploadedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput> | MeetingAgendaItemAttachmentCreateWithoutUploadedByInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput[]
    upsert?: MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutUploadedByInput | MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutUploadedByInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyUploadedByInputEnvelope
    set?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    disconnect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    delete?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    update?: MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutUploadedByInput | MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutUploadedByInput[]
    updateMany?: MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutUploadedByInput | MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutUploadedByInput[]
    deleteMany?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutCreatedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput> | MeetingAgendaItemAttachmentCreateWithoutCreatedByInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyCreatedByInputEnvelope
    set?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    disconnect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    delete?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    update?: MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutCreatedByInput | MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
  }

  export type MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput = {
    create?: XOR<MeetingAttachmentCreateWithoutUploadedByInput, MeetingAttachmentUncheckedCreateWithoutUploadedByInput> | MeetingAttachmentCreateWithoutUploadedByInput[] | MeetingAttachmentUncheckedCreateWithoutUploadedByInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutUploadedByInput | MeetingAttachmentCreateOrConnectWithoutUploadedByInput[]
    upsert?: MeetingAttachmentUpsertWithWhereUniqueWithoutUploadedByInput | MeetingAttachmentUpsertWithWhereUniqueWithoutUploadedByInput[]
    createMany?: MeetingAttachmentCreateManyUploadedByInputEnvelope
    set?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    disconnect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    delete?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    update?: MeetingAttachmentUpdateWithWhereUniqueWithoutUploadedByInput | MeetingAttachmentUpdateWithWhereUniqueWithoutUploadedByInput[]
    updateMany?: MeetingAttachmentUpdateManyWithWhereWithoutUploadedByInput | MeetingAttachmentUpdateManyWithWhereWithoutUploadedByInput[]
    deleteMany?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
  }

  export type MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput = {
    create?: XOR<MeetingAttachmentCreateWithoutCreatedByInput, MeetingAttachmentUncheckedCreateWithoutCreatedByInput> | MeetingAttachmentCreateWithoutCreatedByInput[] | MeetingAttachmentUncheckedCreateWithoutCreatedByInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutCreatedByInput | MeetingAttachmentCreateOrConnectWithoutCreatedByInput[]
    upsert?: MeetingAttachmentUpsertWithWhereUniqueWithoutCreatedByInput | MeetingAttachmentUpsertWithWhereUniqueWithoutCreatedByInput[]
    createMany?: MeetingAttachmentCreateManyCreatedByInputEnvelope
    set?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    disconnect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    delete?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    update?: MeetingAttachmentUpdateWithWhereUniqueWithoutCreatedByInput | MeetingAttachmentUpdateWithWhereUniqueWithoutCreatedByInput[]
    updateMany?: MeetingAttachmentUpdateManyWithWhereWithoutCreatedByInput | MeetingAttachmentUpdateManyWithWhereWithoutCreatedByInput[]
    deleteMany?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
  }

  export type AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<AIToolGrantUserCreateWithoutUserInput, AIToolGrantUserUncheckedCreateWithoutUserInput> | AIToolGrantUserCreateWithoutUserInput[] | AIToolGrantUserUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AIToolGrantUserCreateOrConnectWithoutUserInput | AIToolGrantUserCreateOrConnectWithoutUserInput[]
    upsert?: AIToolGrantUserUpsertWithWhereUniqueWithoutUserInput | AIToolGrantUserUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AIToolGrantUserCreateManyUserInputEnvelope
    set?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
    disconnect?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
    delete?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
    connect?: AIToolGrantUserWhereUniqueInput | AIToolGrantUserWhereUniqueInput[]
    update?: AIToolGrantUserUpdateWithWhereUniqueWithoutUserInput | AIToolGrantUserUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AIToolGrantUserUpdateManyWithWhereWithoutUserInput | AIToolGrantUserUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AIToolGrantUserScalarWhereInput | AIToolGrantUserScalarWhereInput[]
  }

  export type AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<AdpPtoScheduleCreateWithoutUserInput, AdpPtoScheduleUncheckedCreateWithoutUserInput> | AdpPtoScheduleCreateWithoutUserInput[] | AdpPtoScheduleUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AdpPtoScheduleCreateOrConnectWithoutUserInput | AdpPtoScheduleCreateOrConnectWithoutUserInput[]
    upsert?: AdpPtoScheduleUpsertWithWhereUniqueWithoutUserInput | AdpPtoScheduleUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AdpPtoScheduleCreateManyUserInputEnvelope
    set?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
    disconnect?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
    delete?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
    connect?: AdpPtoScheduleWhereUniqueInput | AdpPtoScheduleWhereUniqueInput[]
    update?: AdpPtoScheduleUpdateWithWhereUniqueWithoutUserInput | AdpPtoScheduleUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AdpPtoScheduleUpdateManyWithWhereWithoutUserInput | AdpPtoScheduleUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AdpPtoScheduleScalarWhereInput | AdpPtoScheduleScalarWhereInput[]
  }

  export type EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput = {
    create?: XOR<EmployeeSlugBindingCreateWithoutUserInput, EmployeeSlugBindingUncheckedCreateWithoutUserInput>
    connectOrCreate?: EmployeeSlugBindingCreateOrConnectWithoutUserInput
    upsert?: EmployeeSlugBindingUpsertWithoutUserInput
    disconnect?: EmployeeSlugBindingWhereInput | boolean
    delete?: EmployeeSlugBindingWhereInput | boolean
    connect?: EmployeeSlugBindingWhereUniqueInput
    update?: XOR<XOR<EmployeeSlugBindingUpdateToOneWithWhereWithoutUserInput, EmployeeSlugBindingUpdateWithoutUserInput>, EmployeeSlugBindingUncheckedUpdateWithoutUserInput>
  }

  export type InternalAppUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<InternalAppCreateWithoutCreatorInput, InternalAppUncheckedCreateWithoutCreatorInput> | InternalAppCreateWithoutCreatorInput[] | InternalAppUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutCreatorInput | InternalAppCreateOrConnectWithoutCreatorInput[]
    upsert?: InternalAppUpsertWithWhereUniqueWithoutCreatorInput | InternalAppUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: InternalAppCreateManyCreatorInputEnvelope
    set?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    disconnect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    delete?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    update?: InternalAppUpdateWithWhereUniqueWithoutCreatorInput | InternalAppUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: InternalAppUpdateManyWithWhereWithoutCreatorInput | InternalAppUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: InternalAppScalarWhereInput | InternalAppScalarWhereInput[]
  }

  export type InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput = {
    create?: XOR<InternalAppCreateWithoutForceDisablerInput, InternalAppUncheckedCreateWithoutForceDisablerInput> | InternalAppCreateWithoutForceDisablerInput[] | InternalAppUncheckedCreateWithoutForceDisablerInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutForceDisablerInput | InternalAppCreateOrConnectWithoutForceDisablerInput[]
    upsert?: InternalAppUpsertWithWhereUniqueWithoutForceDisablerInput | InternalAppUpsertWithWhereUniqueWithoutForceDisablerInput[]
    createMany?: InternalAppCreateManyForceDisablerInputEnvelope
    set?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    disconnect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    delete?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    update?: InternalAppUpdateWithWhereUniqueWithoutForceDisablerInput | InternalAppUpdateWithWhereUniqueWithoutForceDisablerInput[]
    updateMany?: InternalAppUpdateManyWithWhereWithoutForceDisablerInput | InternalAppUpdateManyWithWhereWithoutForceDisablerInput[]
    deleteMany?: InternalAppScalarWhereInput | InternalAppScalarWhereInput[]
  }

  export type InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<InternalAppDeploymentCreateWithoutCreatorInput, InternalAppDeploymentUncheckedCreateWithoutCreatorInput> | InternalAppDeploymentCreateWithoutCreatorInput[] | InternalAppDeploymentUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppDeploymentCreateOrConnectWithoutCreatorInput | InternalAppDeploymentCreateOrConnectWithoutCreatorInput[]
    upsert?: InternalAppDeploymentUpsertWithWhereUniqueWithoutCreatorInput | InternalAppDeploymentUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: InternalAppDeploymentCreateManyCreatorInputEnvelope
    set?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    disconnect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    delete?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    connect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    update?: InternalAppDeploymentUpdateWithWhereUniqueWithoutCreatorInput | InternalAppDeploymentUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: InternalAppDeploymentUpdateManyWithWhereWithoutCreatorInput | InternalAppDeploymentUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: InternalAppDeploymentScalarWhereInput | InternalAppDeploymentScalarWhereInput[]
  }

  export type InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<InternalAppEnvVarCreateWithoutCreatorInput, InternalAppEnvVarUncheckedCreateWithoutCreatorInput> | InternalAppEnvVarCreateWithoutCreatorInput[] | InternalAppEnvVarUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppEnvVarCreateOrConnectWithoutCreatorInput | InternalAppEnvVarCreateOrConnectWithoutCreatorInput[]
    upsert?: InternalAppEnvVarUpsertWithWhereUniqueWithoutCreatorInput | InternalAppEnvVarUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: InternalAppEnvVarCreateManyCreatorInputEnvelope
    set?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    disconnect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    delete?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    connect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    update?: InternalAppEnvVarUpdateWithWhereUniqueWithoutCreatorInput | InternalAppEnvVarUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: InternalAppEnvVarUpdateManyWithWhereWithoutCreatorInput | InternalAppEnvVarUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: InternalAppEnvVarScalarWhereInput | InternalAppEnvVarScalarWhereInput[]
  }

  export type InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<InternalAppEmployeeTokenCreateWithoutCreatorInput, InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput> | InternalAppEmployeeTokenCreateWithoutCreatorInput[] | InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput | InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput[]
    upsert?: InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutCreatorInput | InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: InternalAppEmployeeTokenCreateManyCreatorInputEnvelope
    set?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    disconnect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    delete?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    connect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    update?: InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutCreatorInput | InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: InternalAppEmployeeTokenUpdateManyWithWhereWithoutCreatorInput | InternalAppEmployeeTokenUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: InternalAppEmployeeTokenScalarWhereInput | InternalAppEmployeeTokenScalarWhereInput[]
  }

  export type InternalAppEventUncheckedUpdateManyWithoutActorNestedInput = {
    create?: XOR<InternalAppEventCreateWithoutActorInput, InternalAppEventUncheckedCreateWithoutActorInput> | InternalAppEventCreateWithoutActorInput[] | InternalAppEventUncheckedCreateWithoutActorInput[]
    connectOrCreate?: InternalAppEventCreateOrConnectWithoutActorInput | InternalAppEventCreateOrConnectWithoutActorInput[]
    upsert?: InternalAppEventUpsertWithWhereUniqueWithoutActorInput | InternalAppEventUpsertWithWhereUniqueWithoutActorInput[]
    createMany?: InternalAppEventCreateManyActorInputEnvelope
    set?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    disconnect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    delete?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    connect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    update?: InternalAppEventUpdateWithWhereUniqueWithoutActorInput | InternalAppEventUpdateWithWhereUniqueWithoutActorInput[]
    updateMany?: InternalAppEventUpdateManyWithWhereWithoutActorInput | InternalAppEventUpdateManyWithWhereWithoutActorInput[]
    deleteMany?: InternalAppEventScalarWhereInput | InternalAppEventScalarWhereInput[]
  }

  export type AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<AiUsageTokenCreateWithoutUserInput, AiUsageTokenUncheckedCreateWithoutUserInput> | AiUsageTokenCreateWithoutUserInput[] | AiUsageTokenUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutUserInput | AiUsageTokenCreateOrConnectWithoutUserInput[]
    upsert?: AiUsageTokenUpsertWithWhereUniqueWithoutUserInput | AiUsageTokenUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AiUsageTokenCreateManyUserInputEnvelope
    set?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    disconnect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    delete?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    update?: AiUsageTokenUpdateWithWhereUniqueWithoutUserInput | AiUsageTokenUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AiUsageTokenUpdateManyWithWhereWithoutUserInput | AiUsageTokenUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AiUsageTokenScalarWhereInput | AiUsageTokenScalarWhereInput[]
  }

  export type AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput = {
    create?: XOR<AiUsageTokenCreateWithoutRevokedByInput, AiUsageTokenUncheckedCreateWithoutRevokedByInput> | AiUsageTokenCreateWithoutRevokedByInput[] | AiUsageTokenUncheckedCreateWithoutRevokedByInput[]
    connectOrCreate?: AiUsageTokenCreateOrConnectWithoutRevokedByInput | AiUsageTokenCreateOrConnectWithoutRevokedByInput[]
    upsert?: AiUsageTokenUpsertWithWhereUniqueWithoutRevokedByInput | AiUsageTokenUpsertWithWhereUniqueWithoutRevokedByInput[]
    createMany?: AiUsageTokenCreateManyRevokedByInputEnvelope
    set?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    disconnect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    delete?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    connect?: AiUsageTokenWhereUniqueInput | AiUsageTokenWhereUniqueInput[]
    update?: AiUsageTokenUpdateWithWhereUniqueWithoutRevokedByInput | AiUsageTokenUpdateWithWhereUniqueWithoutRevokedByInput[]
    updateMany?: AiUsageTokenUpdateManyWithWhereWithoutRevokedByInput | AiUsageTokenUpdateManyWithWhereWithoutRevokedByInput[]
    deleteMany?: AiUsageTokenScalarWhereInput | AiUsageTokenScalarWhereInput[]
  }

  export type AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<AiUsageDeviceCreateWithoutUserInput, AiUsageDeviceUncheckedCreateWithoutUserInput> | AiUsageDeviceCreateWithoutUserInput[] | AiUsageDeviceUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutUserInput | AiUsageDeviceCreateOrConnectWithoutUserInput[]
    upsert?: AiUsageDeviceUpsertWithWhereUniqueWithoutUserInput | AiUsageDeviceUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AiUsageDeviceCreateManyUserInputEnvelope
    set?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    disconnect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    delete?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    update?: AiUsageDeviceUpdateWithWhereUniqueWithoutUserInput | AiUsageDeviceUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AiUsageDeviceUpdateManyWithWhereWithoutUserInput | AiUsageDeviceUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AiUsageDeviceScalarWhereInput | AiUsageDeviceScalarWhereInput[]
  }

  export type AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput = {
    create?: XOR<AiUsageDeviceCreateWithoutBlockedByInput, AiUsageDeviceUncheckedCreateWithoutBlockedByInput> | AiUsageDeviceCreateWithoutBlockedByInput[] | AiUsageDeviceUncheckedCreateWithoutBlockedByInput[]
    connectOrCreate?: AiUsageDeviceCreateOrConnectWithoutBlockedByInput | AiUsageDeviceCreateOrConnectWithoutBlockedByInput[]
    upsert?: AiUsageDeviceUpsertWithWhereUniqueWithoutBlockedByInput | AiUsageDeviceUpsertWithWhereUniqueWithoutBlockedByInput[]
    createMany?: AiUsageDeviceCreateManyBlockedByInputEnvelope
    set?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    disconnect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    delete?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    connect?: AiUsageDeviceWhereUniqueInput | AiUsageDeviceWhereUniqueInput[]
    update?: AiUsageDeviceUpdateWithWhereUniqueWithoutBlockedByInput | AiUsageDeviceUpdateWithWhereUniqueWithoutBlockedByInput[]
    updateMany?: AiUsageDeviceUpdateManyWithWhereWithoutBlockedByInput | AiUsageDeviceUpdateManyWithWhereWithoutBlockedByInput[]
    deleteMany?: AiUsageDeviceScalarWhereInput | AiUsageDeviceScalarWhereInput[]
  }

  export type AiUsageEventUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<AiUsageEventCreateWithoutUserInput, AiUsageEventUncheckedCreateWithoutUserInput> | AiUsageEventCreateWithoutUserInput[] | AiUsageEventUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageEventCreateOrConnectWithoutUserInput | AiUsageEventCreateOrConnectWithoutUserInput[]
    upsert?: AiUsageEventUpsertWithWhereUniqueWithoutUserInput | AiUsageEventUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AiUsageEventCreateManyUserInputEnvelope
    set?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    disconnect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    delete?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    connect?: AiUsageEventWhereUniqueInput | AiUsageEventWhereUniqueInput[]
    update?: AiUsageEventUpdateWithWhereUniqueWithoutUserInput | AiUsageEventUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AiUsageEventUpdateManyWithWhereWithoutUserInput | AiUsageEventUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AiUsageEventScalarWhereInput | AiUsageEventScalarWhereInput[]
  }

  export type AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<AiUsageDailyRollupCreateWithoutUserInput, AiUsageDailyRollupUncheckedCreateWithoutUserInput> | AiUsageDailyRollupCreateWithoutUserInput[] | AiUsageDailyRollupUncheckedCreateWithoutUserInput[]
    connectOrCreate?: AiUsageDailyRollupCreateOrConnectWithoutUserInput | AiUsageDailyRollupCreateOrConnectWithoutUserInput[]
    upsert?: AiUsageDailyRollupUpsertWithWhereUniqueWithoutUserInput | AiUsageDailyRollupUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: AiUsageDailyRollupCreateManyUserInputEnvelope
    set?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    disconnect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    delete?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    connect?: AiUsageDailyRollupWhereUniqueInput | AiUsageDailyRollupWhereUniqueInput[]
    update?: AiUsageDailyRollupUpdateWithWhereUniqueWithoutUserInput | AiUsageDailyRollupUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: AiUsageDailyRollupUpdateManyWithWhereWithoutUserInput | AiUsageDailyRollupUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: AiUsageDailyRollupScalarWhereInput | AiUsageDailyRollupScalarWhereInput[]
  }

  export type RolePermissionCreateNestedManyWithoutRoleInput = {
    create?: XOR<RolePermissionCreateWithoutRoleInput, RolePermissionUncheckedCreateWithoutRoleInput> | RolePermissionCreateWithoutRoleInput[] | RolePermissionUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: RolePermissionCreateOrConnectWithoutRoleInput | RolePermissionCreateOrConnectWithoutRoleInput[]
    createMany?: RolePermissionCreateManyRoleInputEnvelope
    connect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
  }

  export type UserRoleCreateNestedManyWithoutRoleInput = {
    create?: XOR<UserRoleCreateWithoutRoleInput, UserRoleUncheckedCreateWithoutRoleInput> | UserRoleCreateWithoutRoleInput[] | UserRoleUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutRoleInput | UserRoleCreateOrConnectWithoutRoleInput[]
    createMany?: UserRoleCreateManyRoleInputEnvelope
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
  }

  export type AIToolGrantCreateNestedManyWithoutRoleInput = {
    create?: XOR<AIToolGrantCreateWithoutRoleInput, AIToolGrantUncheckedCreateWithoutRoleInput> | AIToolGrantCreateWithoutRoleInput[] | AIToolGrantUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: AIToolGrantCreateOrConnectWithoutRoleInput | AIToolGrantCreateOrConnectWithoutRoleInput[]
    createMany?: AIToolGrantCreateManyRoleInputEnvelope
    connect?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
  }

  export type RoleDataScopeCreateNestedManyWithoutRoleInput = {
    create?: XOR<RoleDataScopeCreateWithoutRoleInput, RoleDataScopeUncheckedCreateWithoutRoleInput> | RoleDataScopeCreateWithoutRoleInput[] | RoleDataScopeUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: RoleDataScopeCreateOrConnectWithoutRoleInput | RoleDataScopeCreateOrConnectWithoutRoleInput[]
    createMany?: RoleDataScopeCreateManyRoleInputEnvelope
    connect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
  }

  export type RolePermissionUncheckedCreateNestedManyWithoutRoleInput = {
    create?: XOR<RolePermissionCreateWithoutRoleInput, RolePermissionUncheckedCreateWithoutRoleInput> | RolePermissionCreateWithoutRoleInput[] | RolePermissionUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: RolePermissionCreateOrConnectWithoutRoleInput | RolePermissionCreateOrConnectWithoutRoleInput[]
    createMany?: RolePermissionCreateManyRoleInputEnvelope
    connect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
  }

  export type UserRoleUncheckedCreateNestedManyWithoutRoleInput = {
    create?: XOR<UserRoleCreateWithoutRoleInput, UserRoleUncheckedCreateWithoutRoleInput> | UserRoleCreateWithoutRoleInput[] | UserRoleUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutRoleInput | UserRoleCreateOrConnectWithoutRoleInput[]
    createMany?: UserRoleCreateManyRoleInputEnvelope
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
  }

  export type AIToolGrantUncheckedCreateNestedManyWithoutRoleInput = {
    create?: XOR<AIToolGrantCreateWithoutRoleInput, AIToolGrantUncheckedCreateWithoutRoleInput> | AIToolGrantCreateWithoutRoleInput[] | AIToolGrantUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: AIToolGrantCreateOrConnectWithoutRoleInput | AIToolGrantCreateOrConnectWithoutRoleInput[]
    createMany?: AIToolGrantCreateManyRoleInputEnvelope
    connect?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
  }

  export type RoleDataScopeUncheckedCreateNestedManyWithoutRoleInput = {
    create?: XOR<RoleDataScopeCreateWithoutRoleInput, RoleDataScopeUncheckedCreateWithoutRoleInput> | RoleDataScopeCreateWithoutRoleInput[] | RoleDataScopeUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: RoleDataScopeCreateOrConnectWithoutRoleInput | RoleDataScopeCreateOrConnectWithoutRoleInput[]
    createMany?: RoleDataScopeCreateManyRoleInputEnvelope
    connect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
  }

  export type RolePermissionUpdateManyWithoutRoleNestedInput = {
    create?: XOR<RolePermissionCreateWithoutRoleInput, RolePermissionUncheckedCreateWithoutRoleInput> | RolePermissionCreateWithoutRoleInput[] | RolePermissionUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: RolePermissionCreateOrConnectWithoutRoleInput | RolePermissionCreateOrConnectWithoutRoleInput[]
    upsert?: RolePermissionUpsertWithWhereUniqueWithoutRoleInput | RolePermissionUpsertWithWhereUniqueWithoutRoleInput[]
    createMany?: RolePermissionCreateManyRoleInputEnvelope
    set?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    disconnect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    delete?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    connect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    update?: RolePermissionUpdateWithWhereUniqueWithoutRoleInput | RolePermissionUpdateWithWhereUniqueWithoutRoleInput[]
    updateMany?: RolePermissionUpdateManyWithWhereWithoutRoleInput | RolePermissionUpdateManyWithWhereWithoutRoleInput[]
    deleteMany?: RolePermissionScalarWhereInput | RolePermissionScalarWhereInput[]
  }

  export type UserRoleUpdateManyWithoutRoleNestedInput = {
    create?: XOR<UserRoleCreateWithoutRoleInput, UserRoleUncheckedCreateWithoutRoleInput> | UserRoleCreateWithoutRoleInput[] | UserRoleUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutRoleInput | UserRoleCreateOrConnectWithoutRoleInput[]
    upsert?: UserRoleUpsertWithWhereUniqueWithoutRoleInput | UserRoleUpsertWithWhereUniqueWithoutRoleInput[]
    createMany?: UserRoleCreateManyRoleInputEnvelope
    set?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    disconnect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    delete?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    update?: UserRoleUpdateWithWhereUniqueWithoutRoleInput | UserRoleUpdateWithWhereUniqueWithoutRoleInput[]
    updateMany?: UserRoleUpdateManyWithWhereWithoutRoleInput | UserRoleUpdateManyWithWhereWithoutRoleInput[]
    deleteMany?: UserRoleScalarWhereInput | UserRoleScalarWhereInput[]
  }

  export type AIToolGrantUpdateManyWithoutRoleNestedInput = {
    create?: XOR<AIToolGrantCreateWithoutRoleInput, AIToolGrantUncheckedCreateWithoutRoleInput> | AIToolGrantCreateWithoutRoleInput[] | AIToolGrantUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: AIToolGrantCreateOrConnectWithoutRoleInput | AIToolGrantCreateOrConnectWithoutRoleInput[]
    upsert?: AIToolGrantUpsertWithWhereUniqueWithoutRoleInput | AIToolGrantUpsertWithWhereUniqueWithoutRoleInput[]
    createMany?: AIToolGrantCreateManyRoleInputEnvelope
    set?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
    disconnect?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
    delete?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
    connect?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
    update?: AIToolGrantUpdateWithWhereUniqueWithoutRoleInput | AIToolGrantUpdateWithWhereUniqueWithoutRoleInput[]
    updateMany?: AIToolGrantUpdateManyWithWhereWithoutRoleInput | AIToolGrantUpdateManyWithWhereWithoutRoleInput[]
    deleteMany?: AIToolGrantScalarWhereInput | AIToolGrantScalarWhereInput[]
  }

  export type RoleDataScopeUpdateManyWithoutRoleNestedInput = {
    create?: XOR<RoleDataScopeCreateWithoutRoleInput, RoleDataScopeUncheckedCreateWithoutRoleInput> | RoleDataScopeCreateWithoutRoleInput[] | RoleDataScopeUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: RoleDataScopeCreateOrConnectWithoutRoleInput | RoleDataScopeCreateOrConnectWithoutRoleInput[]
    upsert?: RoleDataScopeUpsertWithWhereUniqueWithoutRoleInput | RoleDataScopeUpsertWithWhereUniqueWithoutRoleInput[]
    createMany?: RoleDataScopeCreateManyRoleInputEnvelope
    set?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    disconnect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    delete?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    connect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    update?: RoleDataScopeUpdateWithWhereUniqueWithoutRoleInput | RoleDataScopeUpdateWithWhereUniqueWithoutRoleInput[]
    updateMany?: RoleDataScopeUpdateManyWithWhereWithoutRoleInput | RoleDataScopeUpdateManyWithWhereWithoutRoleInput[]
    deleteMany?: RoleDataScopeScalarWhereInput | RoleDataScopeScalarWhereInput[]
  }

  export type RolePermissionUncheckedUpdateManyWithoutRoleNestedInput = {
    create?: XOR<RolePermissionCreateWithoutRoleInput, RolePermissionUncheckedCreateWithoutRoleInput> | RolePermissionCreateWithoutRoleInput[] | RolePermissionUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: RolePermissionCreateOrConnectWithoutRoleInput | RolePermissionCreateOrConnectWithoutRoleInput[]
    upsert?: RolePermissionUpsertWithWhereUniqueWithoutRoleInput | RolePermissionUpsertWithWhereUniqueWithoutRoleInput[]
    createMany?: RolePermissionCreateManyRoleInputEnvelope
    set?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    disconnect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    delete?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    connect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    update?: RolePermissionUpdateWithWhereUniqueWithoutRoleInput | RolePermissionUpdateWithWhereUniqueWithoutRoleInput[]
    updateMany?: RolePermissionUpdateManyWithWhereWithoutRoleInput | RolePermissionUpdateManyWithWhereWithoutRoleInput[]
    deleteMany?: RolePermissionScalarWhereInput | RolePermissionScalarWhereInput[]
  }

  export type UserRoleUncheckedUpdateManyWithoutRoleNestedInput = {
    create?: XOR<UserRoleCreateWithoutRoleInput, UserRoleUncheckedCreateWithoutRoleInput> | UserRoleCreateWithoutRoleInput[] | UserRoleUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: UserRoleCreateOrConnectWithoutRoleInput | UserRoleCreateOrConnectWithoutRoleInput[]
    upsert?: UserRoleUpsertWithWhereUniqueWithoutRoleInput | UserRoleUpsertWithWhereUniqueWithoutRoleInput[]
    createMany?: UserRoleCreateManyRoleInputEnvelope
    set?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    disconnect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    delete?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    connect?: UserRoleWhereUniqueInput | UserRoleWhereUniqueInput[]
    update?: UserRoleUpdateWithWhereUniqueWithoutRoleInput | UserRoleUpdateWithWhereUniqueWithoutRoleInput[]
    updateMany?: UserRoleUpdateManyWithWhereWithoutRoleInput | UserRoleUpdateManyWithWhereWithoutRoleInput[]
    deleteMany?: UserRoleScalarWhereInput | UserRoleScalarWhereInput[]
  }

  export type AIToolGrantUncheckedUpdateManyWithoutRoleNestedInput = {
    create?: XOR<AIToolGrantCreateWithoutRoleInput, AIToolGrantUncheckedCreateWithoutRoleInput> | AIToolGrantCreateWithoutRoleInput[] | AIToolGrantUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: AIToolGrantCreateOrConnectWithoutRoleInput | AIToolGrantCreateOrConnectWithoutRoleInput[]
    upsert?: AIToolGrantUpsertWithWhereUniqueWithoutRoleInput | AIToolGrantUpsertWithWhereUniqueWithoutRoleInput[]
    createMany?: AIToolGrantCreateManyRoleInputEnvelope
    set?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
    disconnect?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
    delete?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
    connect?: AIToolGrantWhereUniqueInput | AIToolGrantWhereUniqueInput[]
    update?: AIToolGrantUpdateWithWhereUniqueWithoutRoleInput | AIToolGrantUpdateWithWhereUniqueWithoutRoleInput[]
    updateMany?: AIToolGrantUpdateManyWithWhereWithoutRoleInput | AIToolGrantUpdateManyWithWhereWithoutRoleInput[]
    deleteMany?: AIToolGrantScalarWhereInput | AIToolGrantScalarWhereInput[]
  }

  export type RoleDataScopeUncheckedUpdateManyWithoutRoleNestedInput = {
    create?: XOR<RoleDataScopeCreateWithoutRoleInput, RoleDataScopeUncheckedCreateWithoutRoleInput> | RoleDataScopeCreateWithoutRoleInput[] | RoleDataScopeUncheckedCreateWithoutRoleInput[]
    connectOrCreate?: RoleDataScopeCreateOrConnectWithoutRoleInput | RoleDataScopeCreateOrConnectWithoutRoleInput[]
    upsert?: RoleDataScopeUpsertWithWhereUniqueWithoutRoleInput | RoleDataScopeUpsertWithWhereUniqueWithoutRoleInput[]
    createMany?: RoleDataScopeCreateManyRoleInputEnvelope
    set?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    disconnect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    delete?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    connect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    update?: RoleDataScopeUpdateWithWhereUniqueWithoutRoleInput | RoleDataScopeUpdateWithWhereUniqueWithoutRoleInput[]
    updateMany?: RoleDataScopeUpdateManyWithWhereWithoutRoleInput | RoleDataScopeUpdateManyWithWhereWithoutRoleInput[]
    deleteMany?: RoleDataScopeScalarWhereInput | RoleDataScopeScalarWhereInput[]
  }

  export type RolePermissionCreateNestedManyWithoutPermissionInput = {
    create?: XOR<RolePermissionCreateWithoutPermissionInput, RolePermissionUncheckedCreateWithoutPermissionInput> | RolePermissionCreateWithoutPermissionInput[] | RolePermissionUncheckedCreateWithoutPermissionInput[]
    connectOrCreate?: RolePermissionCreateOrConnectWithoutPermissionInput | RolePermissionCreateOrConnectWithoutPermissionInput[]
    createMany?: RolePermissionCreateManyPermissionInputEnvelope
    connect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
  }

  export type RolePermissionUncheckedCreateNestedManyWithoutPermissionInput = {
    create?: XOR<RolePermissionCreateWithoutPermissionInput, RolePermissionUncheckedCreateWithoutPermissionInput> | RolePermissionCreateWithoutPermissionInput[] | RolePermissionUncheckedCreateWithoutPermissionInput[]
    connectOrCreate?: RolePermissionCreateOrConnectWithoutPermissionInput | RolePermissionCreateOrConnectWithoutPermissionInput[]
    createMany?: RolePermissionCreateManyPermissionInputEnvelope
    connect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
  }

  export type RolePermissionUpdateManyWithoutPermissionNestedInput = {
    create?: XOR<RolePermissionCreateWithoutPermissionInput, RolePermissionUncheckedCreateWithoutPermissionInput> | RolePermissionCreateWithoutPermissionInput[] | RolePermissionUncheckedCreateWithoutPermissionInput[]
    connectOrCreate?: RolePermissionCreateOrConnectWithoutPermissionInput | RolePermissionCreateOrConnectWithoutPermissionInput[]
    upsert?: RolePermissionUpsertWithWhereUniqueWithoutPermissionInput | RolePermissionUpsertWithWhereUniqueWithoutPermissionInput[]
    createMany?: RolePermissionCreateManyPermissionInputEnvelope
    set?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    disconnect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    delete?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    connect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    update?: RolePermissionUpdateWithWhereUniqueWithoutPermissionInput | RolePermissionUpdateWithWhereUniqueWithoutPermissionInput[]
    updateMany?: RolePermissionUpdateManyWithWhereWithoutPermissionInput | RolePermissionUpdateManyWithWhereWithoutPermissionInput[]
    deleteMany?: RolePermissionScalarWhereInput | RolePermissionScalarWhereInput[]
  }

  export type RolePermissionUncheckedUpdateManyWithoutPermissionNestedInput = {
    create?: XOR<RolePermissionCreateWithoutPermissionInput, RolePermissionUncheckedCreateWithoutPermissionInput> | RolePermissionCreateWithoutPermissionInput[] | RolePermissionUncheckedCreateWithoutPermissionInput[]
    connectOrCreate?: RolePermissionCreateOrConnectWithoutPermissionInput | RolePermissionCreateOrConnectWithoutPermissionInput[]
    upsert?: RolePermissionUpsertWithWhereUniqueWithoutPermissionInput | RolePermissionUpsertWithWhereUniqueWithoutPermissionInput[]
    createMany?: RolePermissionCreateManyPermissionInputEnvelope
    set?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    disconnect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    delete?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    connect?: RolePermissionWhereUniqueInput | RolePermissionWhereUniqueInput[]
    update?: RolePermissionUpdateWithWhereUniqueWithoutPermissionInput | RolePermissionUpdateWithWhereUniqueWithoutPermissionInput[]
    updateMany?: RolePermissionUpdateManyWithWhereWithoutPermissionInput | RolePermissionUpdateManyWithWhereWithoutPermissionInput[]
    deleteMany?: RolePermissionScalarWhereInput | RolePermissionScalarWhereInput[]
  }

  export type WorkflowRoleUserCreateNestedManyWithoutWorkflowRoleInput = {
    create?: XOR<WorkflowRoleUserCreateWithoutWorkflowRoleInput, WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput> | WorkflowRoleUserCreateWithoutWorkflowRoleInput[] | WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput[]
    connectOrCreate?: WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput | WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput[]
    createMany?: WorkflowRoleUserCreateManyWorkflowRoleInputEnvelope
    connect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
  }

  export type WorkflowRoleUserUncheckedCreateNestedManyWithoutWorkflowRoleInput = {
    create?: XOR<WorkflowRoleUserCreateWithoutWorkflowRoleInput, WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput> | WorkflowRoleUserCreateWithoutWorkflowRoleInput[] | WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput[]
    connectOrCreate?: WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput | WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput[]
    createMany?: WorkflowRoleUserCreateManyWorkflowRoleInputEnvelope
    connect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
  }

  export type EnumWorkflowRuleTypeFieldUpdateOperationsInput = {
    set?: $Enums.WorkflowRuleType
  }

  export type WorkflowRoleUserUpdateManyWithoutWorkflowRoleNestedInput = {
    create?: XOR<WorkflowRoleUserCreateWithoutWorkflowRoleInput, WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput> | WorkflowRoleUserCreateWithoutWorkflowRoleInput[] | WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput[]
    connectOrCreate?: WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput | WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput[]
    upsert?: WorkflowRoleUserUpsertWithWhereUniqueWithoutWorkflowRoleInput | WorkflowRoleUserUpsertWithWhereUniqueWithoutWorkflowRoleInput[]
    createMany?: WorkflowRoleUserCreateManyWorkflowRoleInputEnvelope
    set?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    disconnect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    delete?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    connect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    update?: WorkflowRoleUserUpdateWithWhereUniqueWithoutWorkflowRoleInput | WorkflowRoleUserUpdateWithWhereUniqueWithoutWorkflowRoleInput[]
    updateMany?: WorkflowRoleUserUpdateManyWithWhereWithoutWorkflowRoleInput | WorkflowRoleUserUpdateManyWithWhereWithoutWorkflowRoleInput[]
    deleteMany?: WorkflowRoleUserScalarWhereInput | WorkflowRoleUserScalarWhereInput[]
  }

  export type WorkflowRoleUserUncheckedUpdateManyWithoutWorkflowRoleNestedInput = {
    create?: XOR<WorkflowRoleUserCreateWithoutWorkflowRoleInput, WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput> | WorkflowRoleUserCreateWithoutWorkflowRoleInput[] | WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput[]
    connectOrCreate?: WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput | WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput[]
    upsert?: WorkflowRoleUserUpsertWithWhereUniqueWithoutWorkflowRoleInput | WorkflowRoleUserUpsertWithWhereUniqueWithoutWorkflowRoleInput[]
    createMany?: WorkflowRoleUserCreateManyWorkflowRoleInputEnvelope
    set?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    disconnect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    delete?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    connect?: WorkflowRoleUserWhereUniqueInput | WorkflowRoleUserWhereUniqueInput[]
    update?: WorkflowRoleUserUpdateWithWhereUniqueWithoutWorkflowRoleInput | WorkflowRoleUserUpdateWithWhereUniqueWithoutWorkflowRoleInput[]
    updateMany?: WorkflowRoleUserUpdateManyWithWhereWithoutWorkflowRoleInput | WorkflowRoleUserUpdateManyWithWhereWithoutWorkflowRoleInput[]
    deleteMany?: WorkflowRoleUserScalarWhereInput | WorkflowRoleUserScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutWorkflowRolesInput = {
    create?: XOR<UserCreateWithoutWorkflowRolesInput, UserUncheckedCreateWithoutWorkflowRolesInput>
    connectOrCreate?: UserCreateOrConnectWithoutWorkflowRolesInput
    connect?: UserWhereUniqueInput
  }

  export type WorkflowRoleCreateNestedOneWithoutUserAssignmentsInput = {
    create?: XOR<WorkflowRoleCreateWithoutUserAssignmentsInput, WorkflowRoleUncheckedCreateWithoutUserAssignmentsInput>
    connectOrCreate?: WorkflowRoleCreateOrConnectWithoutUserAssignmentsInput
    connect?: WorkflowRoleWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutWorkflowRolesNestedInput = {
    create?: XOR<UserCreateWithoutWorkflowRolesInput, UserUncheckedCreateWithoutWorkflowRolesInput>
    connectOrCreate?: UserCreateOrConnectWithoutWorkflowRolesInput
    upsert?: UserUpsertWithoutWorkflowRolesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutWorkflowRolesInput, UserUpdateWithoutWorkflowRolesInput>, UserUncheckedUpdateWithoutWorkflowRolesInput>
  }

  export type WorkflowRoleUpdateOneRequiredWithoutUserAssignmentsNestedInput = {
    create?: XOR<WorkflowRoleCreateWithoutUserAssignmentsInput, WorkflowRoleUncheckedCreateWithoutUserAssignmentsInput>
    connectOrCreate?: WorkflowRoleCreateOrConnectWithoutUserAssignmentsInput
    upsert?: WorkflowRoleUpsertWithoutUserAssignmentsInput
    connect?: WorkflowRoleWhereUniqueInput
    update?: XOR<XOR<WorkflowRoleUpdateToOneWithWhereWithoutUserAssignmentsInput, WorkflowRoleUpdateWithoutUserAssignmentsInput>, WorkflowRoleUncheckedUpdateWithoutUserAssignmentsInput>
  }

  export type RoleCreateNestedOneWithoutUsersInput = {
    create?: XOR<RoleCreateWithoutUsersInput, RoleUncheckedCreateWithoutUsersInput>
    connectOrCreate?: RoleCreateOrConnectWithoutUsersInput
    connect?: RoleWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutRolesInput = {
    create?: XOR<UserCreateWithoutRolesInput, UserUncheckedCreateWithoutRolesInput>
    connectOrCreate?: UserCreateOrConnectWithoutRolesInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutUserRolesInput = {
    create?: XOR<OrganizationCreateWithoutUserRolesInput, OrganizationUncheckedCreateWithoutUserRolesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutUserRolesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type RoleUpdateOneRequiredWithoutUsersNestedInput = {
    create?: XOR<RoleCreateWithoutUsersInput, RoleUncheckedCreateWithoutUsersInput>
    connectOrCreate?: RoleCreateOrConnectWithoutUsersInput
    upsert?: RoleUpsertWithoutUsersInput
    connect?: RoleWhereUniqueInput
    update?: XOR<XOR<RoleUpdateToOneWithWhereWithoutUsersInput, RoleUpdateWithoutUsersInput>, RoleUncheckedUpdateWithoutUsersInput>
  }

  export type UserUpdateOneRequiredWithoutRolesNestedInput = {
    create?: XOR<UserCreateWithoutRolesInput, UserUncheckedCreateWithoutRolesInput>
    connectOrCreate?: UserCreateOrConnectWithoutRolesInput
    upsert?: UserUpsertWithoutRolesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutRolesInput, UserUpdateWithoutRolesInput>, UserUncheckedUpdateWithoutRolesInput>
  }

  export type OrganizationUpdateOneWithoutUserRolesNestedInput = {
    create?: XOR<OrganizationCreateWithoutUserRolesInput, OrganizationUncheckedCreateWithoutUserRolesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutUserRolesInput
    upsert?: OrganizationUpsertWithoutUserRolesInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutUserRolesInput, OrganizationUpdateWithoutUserRolesInput>, OrganizationUncheckedUpdateWithoutUserRolesInput>
  }

  export type PermissionCreateNestedOneWithoutRolesInput = {
    create?: XOR<PermissionCreateWithoutRolesInput, PermissionUncheckedCreateWithoutRolesInput>
    connectOrCreate?: PermissionCreateOrConnectWithoutRolesInput
    connect?: PermissionWhereUniqueInput
  }

  export type RoleCreateNestedOneWithoutPermissionsInput = {
    create?: XOR<RoleCreateWithoutPermissionsInput, RoleUncheckedCreateWithoutPermissionsInput>
    connectOrCreate?: RoleCreateOrConnectWithoutPermissionsInput
    connect?: RoleWhereUniqueInput
  }

  export type PermissionUpdateOneRequiredWithoutRolesNestedInput = {
    create?: XOR<PermissionCreateWithoutRolesInput, PermissionUncheckedCreateWithoutRolesInput>
    connectOrCreate?: PermissionCreateOrConnectWithoutRolesInput
    upsert?: PermissionUpsertWithoutRolesInput
    connect?: PermissionWhereUniqueInput
    update?: XOR<XOR<PermissionUpdateToOneWithWhereWithoutRolesInput, PermissionUpdateWithoutRolesInput>, PermissionUncheckedUpdateWithoutRolesInput>
  }

  export type RoleUpdateOneRequiredWithoutPermissionsNestedInput = {
    create?: XOR<RoleCreateWithoutPermissionsInput, RoleUncheckedCreateWithoutPermissionsInput>
    connectOrCreate?: RoleCreateOrConnectWithoutPermissionsInput
    upsert?: RoleUpsertWithoutPermissionsInput
    connect?: RoleWhereUniqueInput
    update?: XOR<XOR<RoleUpdateToOneWithWhereWithoutPermissionsInput, RoleUpdateWithoutPermissionsInput>, RoleUncheckedUpdateWithoutPermissionsInput>
  }

  export type RoleDataScopeCreateNestedManyWithoutDataScopeInput = {
    create?: XOR<RoleDataScopeCreateWithoutDataScopeInput, RoleDataScopeUncheckedCreateWithoutDataScopeInput> | RoleDataScopeCreateWithoutDataScopeInput[] | RoleDataScopeUncheckedCreateWithoutDataScopeInput[]
    connectOrCreate?: RoleDataScopeCreateOrConnectWithoutDataScopeInput | RoleDataScopeCreateOrConnectWithoutDataScopeInput[]
    createMany?: RoleDataScopeCreateManyDataScopeInputEnvelope
    connect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
  }

  export type RoleDataScopeUncheckedCreateNestedManyWithoutDataScopeInput = {
    create?: XOR<RoleDataScopeCreateWithoutDataScopeInput, RoleDataScopeUncheckedCreateWithoutDataScopeInput> | RoleDataScopeCreateWithoutDataScopeInput[] | RoleDataScopeUncheckedCreateWithoutDataScopeInput[]
    connectOrCreate?: RoleDataScopeCreateOrConnectWithoutDataScopeInput | RoleDataScopeCreateOrConnectWithoutDataScopeInput[]
    createMany?: RoleDataScopeCreateManyDataScopeInputEnvelope
    connect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
  }

  export type EnumDataScopeTypeFieldUpdateOperationsInput = {
    set?: $Enums.DataScopeType
  }

  export type RoleDataScopeUpdateManyWithoutDataScopeNestedInput = {
    create?: XOR<RoleDataScopeCreateWithoutDataScopeInput, RoleDataScopeUncheckedCreateWithoutDataScopeInput> | RoleDataScopeCreateWithoutDataScopeInput[] | RoleDataScopeUncheckedCreateWithoutDataScopeInput[]
    connectOrCreate?: RoleDataScopeCreateOrConnectWithoutDataScopeInput | RoleDataScopeCreateOrConnectWithoutDataScopeInput[]
    upsert?: RoleDataScopeUpsertWithWhereUniqueWithoutDataScopeInput | RoleDataScopeUpsertWithWhereUniqueWithoutDataScopeInput[]
    createMany?: RoleDataScopeCreateManyDataScopeInputEnvelope
    set?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    disconnect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    delete?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    connect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    update?: RoleDataScopeUpdateWithWhereUniqueWithoutDataScopeInput | RoleDataScopeUpdateWithWhereUniqueWithoutDataScopeInput[]
    updateMany?: RoleDataScopeUpdateManyWithWhereWithoutDataScopeInput | RoleDataScopeUpdateManyWithWhereWithoutDataScopeInput[]
    deleteMany?: RoleDataScopeScalarWhereInput | RoleDataScopeScalarWhereInput[]
  }

  export type RoleDataScopeUncheckedUpdateManyWithoutDataScopeNestedInput = {
    create?: XOR<RoleDataScopeCreateWithoutDataScopeInput, RoleDataScopeUncheckedCreateWithoutDataScopeInput> | RoleDataScopeCreateWithoutDataScopeInput[] | RoleDataScopeUncheckedCreateWithoutDataScopeInput[]
    connectOrCreate?: RoleDataScopeCreateOrConnectWithoutDataScopeInput | RoleDataScopeCreateOrConnectWithoutDataScopeInput[]
    upsert?: RoleDataScopeUpsertWithWhereUniqueWithoutDataScopeInput | RoleDataScopeUpsertWithWhereUniqueWithoutDataScopeInput[]
    createMany?: RoleDataScopeCreateManyDataScopeInputEnvelope
    set?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    disconnect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    delete?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    connect?: RoleDataScopeWhereUniqueInput | RoleDataScopeWhereUniqueInput[]
    update?: RoleDataScopeUpdateWithWhereUniqueWithoutDataScopeInput | RoleDataScopeUpdateWithWhereUniqueWithoutDataScopeInput[]
    updateMany?: RoleDataScopeUpdateManyWithWhereWithoutDataScopeInput | RoleDataScopeUpdateManyWithWhereWithoutDataScopeInput[]
    deleteMany?: RoleDataScopeScalarWhereInput | RoleDataScopeScalarWhereInput[]
  }

  export type RoleCreateNestedOneWithoutDataScopesInput = {
    create?: XOR<RoleCreateWithoutDataScopesInput, RoleUncheckedCreateWithoutDataScopesInput>
    connectOrCreate?: RoleCreateOrConnectWithoutDataScopesInput
    connect?: RoleWhereUniqueInput
  }

  export type DataScopeCreateNestedOneWithoutRoleScopesInput = {
    create?: XOR<DataScopeCreateWithoutRoleScopesInput, DataScopeUncheckedCreateWithoutRoleScopesInput>
    connectOrCreate?: DataScopeCreateOrConnectWithoutRoleScopesInput
    connect?: DataScopeWhereUniqueInput
  }

  export type RoleUpdateOneRequiredWithoutDataScopesNestedInput = {
    create?: XOR<RoleCreateWithoutDataScopesInput, RoleUncheckedCreateWithoutDataScopesInput>
    connectOrCreate?: RoleCreateOrConnectWithoutDataScopesInput
    upsert?: RoleUpsertWithoutDataScopesInput
    connect?: RoleWhereUniqueInput
    update?: XOR<XOR<RoleUpdateToOneWithWhereWithoutDataScopesInput, RoleUpdateWithoutDataScopesInput>, RoleUncheckedUpdateWithoutDataScopesInput>
  }

  export type DataScopeUpdateOneRequiredWithoutRoleScopesNestedInput = {
    create?: XOR<DataScopeCreateWithoutRoleScopesInput, DataScopeUncheckedCreateWithoutRoleScopesInput>
    connectOrCreate?: DataScopeCreateOrConnectWithoutRoleScopesInput
    upsert?: DataScopeUpsertWithoutRoleScopesInput
    connect?: DataScopeWhereUniqueInput
    update?: XOR<XOR<DataScopeUpdateToOneWithWhereWithoutRoleScopesInput, DataScopeUpdateWithoutRoleScopesInput>, DataScopeUncheckedUpdateWithoutRoleScopesInput>
  }

  export type RoleCreateNestedOneWithoutAiToolGrantsInput = {
    create?: XOR<RoleCreateWithoutAiToolGrantsInput, RoleUncheckedCreateWithoutAiToolGrantsInput>
    connectOrCreate?: RoleCreateOrConnectWithoutAiToolGrantsInput
    connect?: RoleWhereUniqueInput
  }

  export type RoleUpdateOneRequiredWithoutAiToolGrantsNestedInput = {
    create?: XOR<RoleCreateWithoutAiToolGrantsInput, RoleUncheckedCreateWithoutAiToolGrantsInput>
    connectOrCreate?: RoleCreateOrConnectWithoutAiToolGrantsInput
    upsert?: RoleUpsertWithoutAiToolGrantsInput
    connect?: RoleWhereUniqueInput
    update?: XOR<XOR<RoleUpdateToOneWithWhereWithoutAiToolGrantsInput, RoleUpdateWithoutAiToolGrantsInput>, RoleUncheckedUpdateWithoutAiToolGrantsInput>
  }

  export type UserCreateNestedOneWithoutAiToolGrantsDirectInput = {
    create?: XOR<UserCreateWithoutAiToolGrantsDirectInput, UserUncheckedCreateWithoutAiToolGrantsDirectInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiToolGrantsDirectInput
    connect?: UserWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutAiToolGrantsDirectNestedInput = {
    create?: XOR<UserCreateWithoutAiToolGrantsDirectInput, UserUncheckedCreateWithoutAiToolGrantsDirectInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiToolGrantsDirectInput
    upsert?: UserUpsertWithoutAiToolGrantsDirectInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAiToolGrantsDirectInput, UserUpdateWithoutAiToolGrantsDirectInput>, UserUncheckedUpdateWithoutAiToolGrantsDirectInput>
  }

  export type EnumFieldAccessFieldUpdateOperationsInput = {
    set?: $Enums.FieldAccess
  }

  export type UserCreateNestedOneWithoutInternalAppSlugBindingInput = {
    create?: XOR<UserCreateWithoutInternalAppSlugBindingInput, UserUncheckedCreateWithoutInternalAppSlugBindingInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppSlugBindingInput
    connect?: UserWhereUniqueInput
  }

  export type InternalAppCreateNestedManyWithoutOwnerBindingInput = {
    create?: XOR<InternalAppCreateWithoutOwnerBindingInput, InternalAppUncheckedCreateWithoutOwnerBindingInput> | InternalAppCreateWithoutOwnerBindingInput[] | InternalAppUncheckedCreateWithoutOwnerBindingInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutOwnerBindingInput | InternalAppCreateOrConnectWithoutOwnerBindingInput[]
    createMany?: InternalAppCreateManyOwnerBindingInputEnvelope
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
  }

  export type InternalAppEmployeeTokenCreateNestedManyWithoutBindingInput = {
    create?: XOR<InternalAppEmployeeTokenCreateWithoutBindingInput, InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput> | InternalAppEmployeeTokenCreateWithoutBindingInput[] | InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput | InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput[]
    createMany?: InternalAppEmployeeTokenCreateManyBindingInputEnvelope
    connect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
  }

  export type InternalAppUncheckedCreateNestedManyWithoutOwnerBindingInput = {
    create?: XOR<InternalAppCreateWithoutOwnerBindingInput, InternalAppUncheckedCreateWithoutOwnerBindingInput> | InternalAppCreateWithoutOwnerBindingInput[] | InternalAppUncheckedCreateWithoutOwnerBindingInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutOwnerBindingInput | InternalAppCreateOrConnectWithoutOwnerBindingInput[]
    createMany?: InternalAppCreateManyOwnerBindingInputEnvelope
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
  }

  export type InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutBindingInput = {
    create?: XOR<InternalAppEmployeeTokenCreateWithoutBindingInput, InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput> | InternalAppEmployeeTokenCreateWithoutBindingInput[] | InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput | InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput[]
    createMany?: InternalAppEmployeeTokenCreateManyBindingInputEnvelope
    connect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
  }

  export type UserUpdateOneRequiredWithoutInternalAppSlugBindingNestedInput = {
    create?: XOR<UserCreateWithoutInternalAppSlugBindingInput, UserUncheckedCreateWithoutInternalAppSlugBindingInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppSlugBindingInput
    upsert?: UserUpsertWithoutInternalAppSlugBindingInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutInternalAppSlugBindingInput, UserUpdateWithoutInternalAppSlugBindingInput>, UserUncheckedUpdateWithoutInternalAppSlugBindingInput>
  }

  export type InternalAppUpdateManyWithoutOwnerBindingNestedInput = {
    create?: XOR<InternalAppCreateWithoutOwnerBindingInput, InternalAppUncheckedCreateWithoutOwnerBindingInput> | InternalAppCreateWithoutOwnerBindingInput[] | InternalAppUncheckedCreateWithoutOwnerBindingInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutOwnerBindingInput | InternalAppCreateOrConnectWithoutOwnerBindingInput[]
    upsert?: InternalAppUpsertWithWhereUniqueWithoutOwnerBindingInput | InternalAppUpsertWithWhereUniqueWithoutOwnerBindingInput[]
    createMany?: InternalAppCreateManyOwnerBindingInputEnvelope
    set?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    disconnect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    delete?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    update?: InternalAppUpdateWithWhereUniqueWithoutOwnerBindingInput | InternalAppUpdateWithWhereUniqueWithoutOwnerBindingInput[]
    updateMany?: InternalAppUpdateManyWithWhereWithoutOwnerBindingInput | InternalAppUpdateManyWithWhereWithoutOwnerBindingInput[]
    deleteMany?: InternalAppScalarWhereInput | InternalAppScalarWhereInput[]
  }

  export type InternalAppEmployeeTokenUpdateManyWithoutBindingNestedInput = {
    create?: XOR<InternalAppEmployeeTokenCreateWithoutBindingInput, InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput> | InternalAppEmployeeTokenCreateWithoutBindingInput[] | InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput | InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput[]
    upsert?: InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutBindingInput | InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: InternalAppEmployeeTokenCreateManyBindingInputEnvelope
    set?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    disconnect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    delete?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    connect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    update?: InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutBindingInput | InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: InternalAppEmployeeTokenUpdateManyWithWhereWithoutBindingInput | InternalAppEmployeeTokenUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: InternalAppEmployeeTokenScalarWhereInput | InternalAppEmployeeTokenScalarWhereInput[]
  }

  export type InternalAppUncheckedUpdateManyWithoutOwnerBindingNestedInput = {
    create?: XOR<InternalAppCreateWithoutOwnerBindingInput, InternalAppUncheckedCreateWithoutOwnerBindingInput> | InternalAppCreateWithoutOwnerBindingInput[] | InternalAppUncheckedCreateWithoutOwnerBindingInput[]
    connectOrCreate?: InternalAppCreateOrConnectWithoutOwnerBindingInput | InternalAppCreateOrConnectWithoutOwnerBindingInput[]
    upsert?: InternalAppUpsertWithWhereUniqueWithoutOwnerBindingInput | InternalAppUpsertWithWhereUniqueWithoutOwnerBindingInput[]
    createMany?: InternalAppCreateManyOwnerBindingInputEnvelope
    set?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    disconnect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    delete?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    connect?: InternalAppWhereUniqueInput | InternalAppWhereUniqueInput[]
    update?: InternalAppUpdateWithWhereUniqueWithoutOwnerBindingInput | InternalAppUpdateWithWhereUniqueWithoutOwnerBindingInput[]
    updateMany?: InternalAppUpdateManyWithWhereWithoutOwnerBindingInput | InternalAppUpdateManyWithWhereWithoutOwnerBindingInput[]
    deleteMany?: InternalAppScalarWhereInput | InternalAppScalarWhereInput[]
  }

  export type InternalAppEmployeeTokenUncheckedUpdateManyWithoutBindingNestedInput = {
    create?: XOR<InternalAppEmployeeTokenCreateWithoutBindingInput, InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput> | InternalAppEmployeeTokenCreateWithoutBindingInput[] | InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput | InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput[]
    upsert?: InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutBindingInput | InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: InternalAppEmployeeTokenCreateManyBindingInputEnvelope
    set?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    disconnect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    delete?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    connect?: InternalAppEmployeeTokenWhereUniqueInput | InternalAppEmployeeTokenWhereUniqueInput[]
    update?: InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutBindingInput | InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: InternalAppEmployeeTokenUpdateManyWithWhereWithoutBindingInput | InternalAppEmployeeTokenUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: InternalAppEmployeeTokenScalarWhereInput | InternalAppEmployeeTokenScalarWhereInput[]
  }

  export type EmployeeSlugBindingCreateNestedOneWithoutAppsInput = {
    create?: XOR<EmployeeSlugBindingCreateWithoutAppsInput, EmployeeSlugBindingUncheckedCreateWithoutAppsInput>
    connectOrCreate?: EmployeeSlugBindingCreateOrConnectWithoutAppsInput
    connect?: EmployeeSlugBindingWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutInternalAppsCreatedInput = {
    create?: XOR<UserCreateWithoutInternalAppsCreatedInput, UserUncheckedCreateWithoutInternalAppsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppsCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutInternalAppsForceDisabledInput = {
    create?: XOR<UserCreateWithoutInternalAppsForceDisabledInput, UserUncheckedCreateWithoutInternalAppsForceDisabledInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppsForceDisabledInput
    connect?: UserWhereUniqueInput
  }

  export type InternalAppDeploymentCreateNestedManyWithoutAppInput = {
    create?: XOR<InternalAppDeploymentCreateWithoutAppInput, InternalAppDeploymentUncheckedCreateWithoutAppInput> | InternalAppDeploymentCreateWithoutAppInput[] | InternalAppDeploymentUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppDeploymentCreateOrConnectWithoutAppInput | InternalAppDeploymentCreateOrConnectWithoutAppInput[]
    createMany?: InternalAppDeploymentCreateManyAppInputEnvelope
    connect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
  }

  export type InternalAppEnvVarCreateNestedManyWithoutAppInput = {
    create?: XOR<InternalAppEnvVarCreateWithoutAppInput, InternalAppEnvVarUncheckedCreateWithoutAppInput> | InternalAppEnvVarCreateWithoutAppInput[] | InternalAppEnvVarUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppEnvVarCreateOrConnectWithoutAppInput | InternalAppEnvVarCreateOrConnectWithoutAppInput[]
    createMany?: InternalAppEnvVarCreateManyAppInputEnvelope
    connect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
  }

  export type InternalAppEventCreateNestedManyWithoutAppInput = {
    create?: XOR<InternalAppEventCreateWithoutAppInput, InternalAppEventUncheckedCreateWithoutAppInput> | InternalAppEventCreateWithoutAppInput[] | InternalAppEventUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppEventCreateOrConnectWithoutAppInput | InternalAppEventCreateOrConnectWithoutAppInput[]
    createMany?: InternalAppEventCreateManyAppInputEnvelope
    connect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
  }

  export type InternalAppDeploymentUncheckedCreateNestedManyWithoutAppInput = {
    create?: XOR<InternalAppDeploymentCreateWithoutAppInput, InternalAppDeploymentUncheckedCreateWithoutAppInput> | InternalAppDeploymentCreateWithoutAppInput[] | InternalAppDeploymentUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppDeploymentCreateOrConnectWithoutAppInput | InternalAppDeploymentCreateOrConnectWithoutAppInput[]
    createMany?: InternalAppDeploymentCreateManyAppInputEnvelope
    connect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
  }

  export type InternalAppEnvVarUncheckedCreateNestedManyWithoutAppInput = {
    create?: XOR<InternalAppEnvVarCreateWithoutAppInput, InternalAppEnvVarUncheckedCreateWithoutAppInput> | InternalAppEnvVarCreateWithoutAppInput[] | InternalAppEnvVarUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppEnvVarCreateOrConnectWithoutAppInput | InternalAppEnvVarCreateOrConnectWithoutAppInput[]
    createMany?: InternalAppEnvVarCreateManyAppInputEnvelope
    connect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
  }

  export type InternalAppEventUncheckedCreateNestedManyWithoutAppInput = {
    create?: XOR<InternalAppEventCreateWithoutAppInput, InternalAppEventUncheckedCreateWithoutAppInput> | InternalAppEventCreateWithoutAppInput[] | InternalAppEventUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppEventCreateOrConnectWithoutAppInput | InternalAppEventCreateOrConnectWithoutAppInput[]
    createMany?: InternalAppEventCreateManyAppInputEnvelope
    connect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
  }

  export type EnumInternalAppRuntimeFieldUpdateOperationsInput = {
    set?: $Enums.InternalAppRuntime
  }

  export type EnumInternalAppStatusFieldUpdateOperationsInput = {
    set?: $Enums.InternalAppStatus
  }

  export type EmployeeSlugBindingUpdateOneRequiredWithoutAppsNestedInput = {
    create?: XOR<EmployeeSlugBindingCreateWithoutAppsInput, EmployeeSlugBindingUncheckedCreateWithoutAppsInput>
    connectOrCreate?: EmployeeSlugBindingCreateOrConnectWithoutAppsInput
    upsert?: EmployeeSlugBindingUpsertWithoutAppsInput
    connect?: EmployeeSlugBindingWhereUniqueInput
    update?: XOR<XOR<EmployeeSlugBindingUpdateToOneWithWhereWithoutAppsInput, EmployeeSlugBindingUpdateWithoutAppsInput>, EmployeeSlugBindingUncheckedUpdateWithoutAppsInput>
  }

  export type UserUpdateOneRequiredWithoutInternalAppsCreatedNestedInput = {
    create?: XOR<UserCreateWithoutInternalAppsCreatedInput, UserUncheckedCreateWithoutInternalAppsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppsCreatedInput
    upsert?: UserUpsertWithoutInternalAppsCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutInternalAppsCreatedInput, UserUpdateWithoutInternalAppsCreatedInput>, UserUncheckedUpdateWithoutInternalAppsCreatedInput>
  }

  export type UserUpdateOneWithoutInternalAppsForceDisabledNestedInput = {
    create?: XOR<UserCreateWithoutInternalAppsForceDisabledInput, UserUncheckedCreateWithoutInternalAppsForceDisabledInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppsForceDisabledInput
    upsert?: UserUpsertWithoutInternalAppsForceDisabledInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutInternalAppsForceDisabledInput, UserUpdateWithoutInternalAppsForceDisabledInput>, UserUncheckedUpdateWithoutInternalAppsForceDisabledInput>
  }

  export type InternalAppDeploymentUpdateManyWithoutAppNestedInput = {
    create?: XOR<InternalAppDeploymentCreateWithoutAppInput, InternalAppDeploymentUncheckedCreateWithoutAppInput> | InternalAppDeploymentCreateWithoutAppInput[] | InternalAppDeploymentUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppDeploymentCreateOrConnectWithoutAppInput | InternalAppDeploymentCreateOrConnectWithoutAppInput[]
    upsert?: InternalAppDeploymentUpsertWithWhereUniqueWithoutAppInput | InternalAppDeploymentUpsertWithWhereUniqueWithoutAppInput[]
    createMany?: InternalAppDeploymentCreateManyAppInputEnvelope
    set?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    disconnect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    delete?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    connect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    update?: InternalAppDeploymentUpdateWithWhereUniqueWithoutAppInput | InternalAppDeploymentUpdateWithWhereUniqueWithoutAppInput[]
    updateMany?: InternalAppDeploymentUpdateManyWithWhereWithoutAppInput | InternalAppDeploymentUpdateManyWithWhereWithoutAppInput[]
    deleteMany?: InternalAppDeploymentScalarWhereInput | InternalAppDeploymentScalarWhereInput[]
  }

  export type InternalAppEnvVarUpdateManyWithoutAppNestedInput = {
    create?: XOR<InternalAppEnvVarCreateWithoutAppInput, InternalAppEnvVarUncheckedCreateWithoutAppInput> | InternalAppEnvVarCreateWithoutAppInput[] | InternalAppEnvVarUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppEnvVarCreateOrConnectWithoutAppInput | InternalAppEnvVarCreateOrConnectWithoutAppInput[]
    upsert?: InternalAppEnvVarUpsertWithWhereUniqueWithoutAppInput | InternalAppEnvVarUpsertWithWhereUniqueWithoutAppInput[]
    createMany?: InternalAppEnvVarCreateManyAppInputEnvelope
    set?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    disconnect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    delete?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    connect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    update?: InternalAppEnvVarUpdateWithWhereUniqueWithoutAppInput | InternalAppEnvVarUpdateWithWhereUniqueWithoutAppInput[]
    updateMany?: InternalAppEnvVarUpdateManyWithWhereWithoutAppInput | InternalAppEnvVarUpdateManyWithWhereWithoutAppInput[]
    deleteMany?: InternalAppEnvVarScalarWhereInput | InternalAppEnvVarScalarWhereInput[]
  }

  export type InternalAppEventUpdateManyWithoutAppNestedInput = {
    create?: XOR<InternalAppEventCreateWithoutAppInput, InternalAppEventUncheckedCreateWithoutAppInput> | InternalAppEventCreateWithoutAppInput[] | InternalAppEventUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppEventCreateOrConnectWithoutAppInput | InternalAppEventCreateOrConnectWithoutAppInput[]
    upsert?: InternalAppEventUpsertWithWhereUniqueWithoutAppInput | InternalAppEventUpsertWithWhereUniqueWithoutAppInput[]
    createMany?: InternalAppEventCreateManyAppInputEnvelope
    set?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    disconnect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    delete?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    connect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    update?: InternalAppEventUpdateWithWhereUniqueWithoutAppInput | InternalAppEventUpdateWithWhereUniqueWithoutAppInput[]
    updateMany?: InternalAppEventUpdateManyWithWhereWithoutAppInput | InternalAppEventUpdateManyWithWhereWithoutAppInput[]
    deleteMany?: InternalAppEventScalarWhereInput | InternalAppEventScalarWhereInput[]
  }

  export type InternalAppDeploymentUncheckedUpdateManyWithoutAppNestedInput = {
    create?: XOR<InternalAppDeploymentCreateWithoutAppInput, InternalAppDeploymentUncheckedCreateWithoutAppInput> | InternalAppDeploymentCreateWithoutAppInput[] | InternalAppDeploymentUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppDeploymentCreateOrConnectWithoutAppInput | InternalAppDeploymentCreateOrConnectWithoutAppInput[]
    upsert?: InternalAppDeploymentUpsertWithWhereUniqueWithoutAppInput | InternalAppDeploymentUpsertWithWhereUniqueWithoutAppInput[]
    createMany?: InternalAppDeploymentCreateManyAppInputEnvelope
    set?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    disconnect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    delete?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    connect?: InternalAppDeploymentWhereUniqueInput | InternalAppDeploymentWhereUniqueInput[]
    update?: InternalAppDeploymentUpdateWithWhereUniqueWithoutAppInput | InternalAppDeploymentUpdateWithWhereUniqueWithoutAppInput[]
    updateMany?: InternalAppDeploymentUpdateManyWithWhereWithoutAppInput | InternalAppDeploymentUpdateManyWithWhereWithoutAppInput[]
    deleteMany?: InternalAppDeploymentScalarWhereInput | InternalAppDeploymentScalarWhereInput[]
  }

  export type InternalAppEnvVarUncheckedUpdateManyWithoutAppNestedInput = {
    create?: XOR<InternalAppEnvVarCreateWithoutAppInput, InternalAppEnvVarUncheckedCreateWithoutAppInput> | InternalAppEnvVarCreateWithoutAppInput[] | InternalAppEnvVarUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppEnvVarCreateOrConnectWithoutAppInput | InternalAppEnvVarCreateOrConnectWithoutAppInput[]
    upsert?: InternalAppEnvVarUpsertWithWhereUniqueWithoutAppInput | InternalAppEnvVarUpsertWithWhereUniqueWithoutAppInput[]
    createMany?: InternalAppEnvVarCreateManyAppInputEnvelope
    set?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    disconnect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    delete?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    connect?: InternalAppEnvVarWhereUniqueInput | InternalAppEnvVarWhereUniqueInput[]
    update?: InternalAppEnvVarUpdateWithWhereUniqueWithoutAppInput | InternalAppEnvVarUpdateWithWhereUniqueWithoutAppInput[]
    updateMany?: InternalAppEnvVarUpdateManyWithWhereWithoutAppInput | InternalAppEnvVarUpdateManyWithWhereWithoutAppInput[]
    deleteMany?: InternalAppEnvVarScalarWhereInput | InternalAppEnvVarScalarWhereInput[]
  }

  export type InternalAppEventUncheckedUpdateManyWithoutAppNestedInput = {
    create?: XOR<InternalAppEventCreateWithoutAppInput, InternalAppEventUncheckedCreateWithoutAppInput> | InternalAppEventCreateWithoutAppInput[] | InternalAppEventUncheckedCreateWithoutAppInput[]
    connectOrCreate?: InternalAppEventCreateOrConnectWithoutAppInput | InternalAppEventCreateOrConnectWithoutAppInput[]
    upsert?: InternalAppEventUpsertWithWhereUniqueWithoutAppInput | InternalAppEventUpsertWithWhereUniqueWithoutAppInput[]
    createMany?: InternalAppEventCreateManyAppInputEnvelope
    set?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    disconnect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    delete?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    connect?: InternalAppEventWhereUniqueInput | InternalAppEventWhereUniqueInput[]
    update?: InternalAppEventUpdateWithWhereUniqueWithoutAppInput | InternalAppEventUpdateWithWhereUniqueWithoutAppInput[]
    updateMany?: InternalAppEventUpdateManyWithWhereWithoutAppInput | InternalAppEventUpdateManyWithWhereWithoutAppInput[]
    deleteMany?: InternalAppEventScalarWhereInput | InternalAppEventScalarWhereInput[]
  }

  export type InternalAppCreateNestedOneWithoutDeploymentsInput = {
    create?: XOR<InternalAppCreateWithoutDeploymentsInput, InternalAppUncheckedCreateWithoutDeploymentsInput>
    connectOrCreate?: InternalAppCreateOrConnectWithoutDeploymentsInput
    connect?: InternalAppWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutInternalAppDeploymentsTriggeredInput = {
    create?: XOR<UserCreateWithoutInternalAppDeploymentsTriggeredInput, UserUncheckedCreateWithoutInternalAppDeploymentsTriggeredInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppDeploymentsTriggeredInput
    connect?: UserWhereUniqueInput
  }

  export type EnumInternalAppDeploymentStatusFieldUpdateOperationsInput = {
    set?: $Enums.InternalAppDeploymentStatus
  }

  export type EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput = {
    set?: $Enums.InternalAppDeploymentTrigger
  }

  export type InternalAppUpdateOneRequiredWithoutDeploymentsNestedInput = {
    create?: XOR<InternalAppCreateWithoutDeploymentsInput, InternalAppUncheckedCreateWithoutDeploymentsInput>
    connectOrCreate?: InternalAppCreateOrConnectWithoutDeploymentsInput
    upsert?: InternalAppUpsertWithoutDeploymentsInput
    connect?: InternalAppWhereUniqueInput
    update?: XOR<XOR<InternalAppUpdateToOneWithWhereWithoutDeploymentsInput, InternalAppUpdateWithoutDeploymentsInput>, InternalAppUncheckedUpdateWithoutDeploymentsInput>
  }

  export type UserUpdateOneRequiredWithoutInternalAppDeploymentsTriggeredNestedInput = {
    create?: XOR<UserCreateWithoutInternalAppDeploymentsTriggeredInput, UserUncheckedCreateWithoutInternalAppDeploymentsTriggeredInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppDeploymentsTriggeredInput
    upsert?: UserUpsertWithoutInternalAppDeploymentsTriggeredInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutInternalAppDeploymentsTriggeredInput, UserUpdateWithoutInternalAppDeploymentsTriggeredInput>, UserUncheckedUpdateWithoutInternalAppDeploymentsTriggeredInput>
  }

  export type InternalAppCreateNestedOneWithoutEnvVarsInput = {
    create?: XOR<InternalAppCreateWithoutEnvVarsInput, InternalAppUncheckedCreateWithoutEnvVarsInput>
    connectOrCreate?: InternalAppCreateOrConnectWithoutEnvVarsInput
    connect?: InternalAppWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutInternalAppEnvVarsManagedInput = {
    create?: XOR<UserCreateWithoutInternalAppEnvVarsManagedInput, UserUncheckedCreateWithoutInternalAppEnvVarsManagedInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppEnvVarsManagedInput
    connect?: UserWhereUniqueInput
  }

  export type BytesFieldUpdateOperationsInput = {
    set?: Bytes
  }

  export type InternalAppUpdateOneRequiredWithoutEnvVarsNestedInput = {
    create?: XOR<InternalAppCreateWithoutEnvVarsInput, InternalAppUncheckedCreateWithoutEnvVarsInput>
    connectOrCreate?: InternalAppCreateOrConnectWithoutEnvVarsInput
    upsert?: InternalAppUpsertWithoutEnvVarsInput
    connect?: InternalAppWhereUniqueInput
    update?: XOR<XOR<InternalAppUpdateToOneWithWhereWithoutEnvVarsInput, InternalAppUpdateWithoutEnvVarsInput>, InternalAppUncheckedUpdateWithoutEnvVarsInput>
  }

  export type UserUpdateOneRequiredWithoutInternalAppEnvVarsManagedNestedInput = {
    create?: XOR<UserCreateWithoutInternalAppEnvVarsManagedInput, UserUncheckedCreateWithoutInternalAppEnvVarsManagedInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppEnvVarsManagedInput
    upsert?: UserUpsertWithoutInternalAppEnvVarsManagedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutInternalAppEnvVarsManagedInput, UserUpdateWithoutInternalAppEnvVarsManagedInput>, UserUncheckedUpdateWithoutInternalAppEnvVarsManagedInput>
  }

  export type EmployeeSlugBindingCreateNestedOneWithoutTokensInput = {
    create?: XOR<EmployeeSlugBindingCreateWithoutTokensInput, EmployeeSlugBindingUncheckedCreateWithoutTokensInput>
    connectOrCreate?: EmployeeSlugBindingCreateOrConnectWithoutTokensInput
    connect?: EmployeeSlugBindingWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutInternalAppTokensInput = {
    create?: XOR<UserCreateWithoutInternalAppTokensInput, UserUncheckedCreateWithoutInternalAppTokensInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppTokensInput
    connect?: UserWhereUniqueInput
  }

  export type EnumInternalAppTokenStatusFieldUpdateOperationsInput = {
    set?: $Enums.InternalAppTokenStatus
  }

  export type NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput = {
    set?: $Enums.InternalAppTokenRevokeReason | null
  }

  export type EmployeeSlugBindingUpdateOneRequiredWithoutTokensNestedInput = {
    create?: XOR<EmployeeSlugBindingCreateWithoutTokensInput, EmployeeSlugBindingUncheckedCreateWithoutTokensInput>
    connectOrCreate?: EmployeeSlugBindingCreateOrConnectWithoutTokensInput
    upsert?: EmployeeSlugBindingUpsertWithoutTokensInput
    connect?: EmployeeSlugBindingWhereUniqueInput
    update?: XOR<XOR<EmployeeSlugBindingUpdateToOneWithWhereWithoutTokensInput, EmployeeSlugBindingUpdateWithoutTokensInput>, EmployeeSlugBindingUncheckedUpdateWithoutTokensInput>
  }

  export type UserUpdateOneRequiredWithoutInternalAppTokensNestedInput = {
    create?: XOR<UserCreateWithoutInternalAppTokensInput, UserUncheckedCreateWithoutInternalAppTokensInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppTokensInput
    upsert?: UserUpsertWithoutInternalAppTokensInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutInternalAppTokensInput, UserUpdateWithoutInternalAppTokensInput>, UserUncheckedUpdateWithoutInternalAppTokensInput>
  }

  export type InternalAppCreateNestedOneWithoutEventsInput = {
    create?: XOR<InternalAppCreateWithoutEventsInput, InternalAppUncheckedCreateWithoutEventsInput>
    connectOrCreate?: InternalAppCreateOrConnectWithoutEventsInput
    connect?: InternalAppWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutInternalAppEventsInput = {
    create?: XOR<UserCreateWithoutInternalAppEventsInput, UserUncheckedCreateWithoutInternalAppEventsInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppEventsInput
    connect?: UserWhereUniqueInput
  }

  export type EnumInternalAppActorRoleFieldUpdateOperationsInput = {
    set?: $Enums.InternalAppActorRole
  }

  export type EnumInternalAppEventOutcomeFieldUpdateOperationsInput = {
    set?: $Enums.InternalAppEventOutcome
  }

  export type InternalAppUpdateOneWithoutEventsNestedInput = {
    create?: XOR<InternalAppCreateWithoutEventsInput, InternalAppUncheckedCreateWithoutEventsInput>
    connectOrCreate?: InternalAppCreateOrConnectWithoutEventsInput
    upsert?: InternalAppUpsertWithoutEventsInput
    disconnect?: InternalAppWhereInput | boolean
    delete?: InternalAppWhereInput | boolean
    connect?: InternalAppWhereUniqueInput
    update?: XOR<XOR<InternalAppUpdateToOneWithWhereWithoutEventsInput, InternalAppUpdateWithoutEventsInput>, InternalAppUncheckedUpdateWithoutEventsInput>
  }

  export type UserUpdateOneWithoutInternalAppEventsNestedInput = {
    create?: XOR<UserCreateWithoutInternalAppEventsInput, UserUncheckedCreateWithoutInternalAppEventsInput>
    connectOrCreate?: UserCreateOrConnectWithoutInternalAppEventsInput
    upsert?: UserUpsertWithoutInternalAppEventsInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutInternalAppEventsInput, UserUpdateWithoutInternalAppEventsInput>, UserUncheckedUpdateWithoutInternalAppEventsInput>
  }

  export type UserCreateNestedOneWithoutKnowledgeArticlesInput = {
    create?: XOR<UserCreateWithoutKnowledgeArticlesInput, UserUncheckedCreateWithoutKnowledgeArticlesInput>
    connectOrCreate?: UserCreateOrConnectWithoutKnowledgeArticlesInput
    connect?: UserWhereUniqueInput
  }

  export type DocumentViewCreateNestedManyWithoutArticleInput = {
    create?: XOR<DocumentViewCreateWithoutArticleInput, DocumentViewUncheckedCreateWithoutArticleInput> | DocumentViewCreateWithoutArticleInput[] | DocumentViewUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutArticleInput | DocumentViewCreateOrConnectWithoutArticleInput[]
    createMany?: DocumentViewCreateManyArticleInputEnvelope
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
  }

  export type DocumentLikeCreateNestedManyWithoutArticleInput = {
    create?: XOR<DocumentLikeCreateWithoutArticleInput, DocumentLikeUncheckedCreateWithoutArticleInput> | DocumentLikeCreateWithoutArticleInput[] | DocumentLikeUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutArticleInput | DocumentLikeCreateOrConnectWithoutArticleInput[]
    createMany?: DocumentLikeCreateManyArticleInputEnvelope
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
  }

  export type DocumentCommentCreateNestedManyWithoutArticleInput = {
    create?: XOR<DocumentCommentCreateWithoutArticleInput, DocumentCommentUncheckedCreateWithoutArticleInput> | DocumentCommentCreateWithoutArticleInput[] | DocumentCommentUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutArticleInput | DocumentCommentCreateOrConnectWithoutArticleInput[]
    createMany?: DocumentCommentCreateManyArticleInputEnvelope
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
  }

  export type DocumentViewUncheckedCreateNestedManyWithoutArticleInput = {
    create?: XOR<DocumentViewCreateWithoutArticleInput, DocumentViewUncheckedCreateWithoutArticleInput> | DocumentViewCreateWithoutArticleInput[] | DocumentViewUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutArticleInput | DocumentViewCreateOrConnectWithoutArticleInput[]
    createMany?: DocumentViewCreateManyArticleInputEnvelope
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
  }

  export type DocumentLikeUncheckedCreateNestedManyWithoutArticleInput = {
    create?: XOR<DocumentLikeCreateWithoutArticleInput, DocumentLikeUncheckedCreateWithoutArticleInput> | DocumentLikeCreateWithoutArticleInput[] | DocumentLikeUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutArticleInput | DocumentLikeCreateOrConnectWithoutArticleInput[]
    createMany?: DocumentLikeCreateManyArticleInputEnvelope
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
  }

  export type DocumentCommentUncheckedCreateNestedManyWithoutArticleInput = {
    create?: XOR<DocumentCommentCreateWithoutArticleInput, DocumentCommentUncheckedCreateWithoutArticleInput> | DocumentCommentCreateWithoutArticleInput[] | DocumentCommentUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutArticleInput | DocumentCommentCreateOrConnectWithoutArticleInput[]
    createMany?: DocumentCommentCreateManyArticleInputEnvelope
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
  }

  export type EnumKnowledgeArticleStatusFieldUpdateOperationsInput = {
    set?: $Enums.KnowledgeArticleStatus
  }

  export type UserUpdateOneRequiredWithoutKnowledgeArticlesNestedInput = {
    create?: XOR<UserCreateWithoutKnowledgeArticlesInput, UserUncheckedCreateWithoutKnowledgeArticlesInput>
    connectOrCreate?: UserCreateOrConnectWithoutKnowledgeArticlesInput
    upsert?: UserUpsertWithoutKnowledgeArticlesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutKnowledgeArticlesInput, UserUpdateWithoutKnowledgeArticlesInput>, UserUncheckedUpdateWithoutKnowledgeArticlesInput>
  }

  export type DocumentViewUpdateManyWithoutArticleNestedInput = {
    create?: XOR<DocumentViewCreateWithoutArticleInput, DocumentViewUncheckedCreateWithoutArticleInput> | DocumentViewCreateWithoutArticleInput[] | DocumentViewUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutArticleInput | DocumentViewCreateOrConnectWithoutArticleInput[]
    upsert?: DocumentViewUpsertWithWhereUniqueWithoutArticleInput | DocumentViewUpsertWithWhereUniqueWithoutArticleInput[]
    createMany?: DocumentViewCreateManyArticleInputEnvelope
    set?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    disconnect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    delete?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    update?: DocumentViewUpdateWithWhereUniqueWithoutArticleInput | DocumentViewUpdateWithWhereUniqueWithoutArticleInput[]
    updateMany?: DocumentViewUpdateManyWithWhereWithoutArticleInput | DocumentViewUpdateManyWithWhereWithoutArticleInput[]
    deleteMany?: DocumentViewScalarWhereInput | DocumentViewScalarWhereInput[]
  }

  export type DocumentLikeUpdateManyWithoutArticleNestedInput = {
    create?: XOR<DocumentLikeCreateWithoutArticleInput, DocumentLikeUncheckedCreateWithoutArticleInput> | DocumentLikeCreateWithoutArticleInput[] | DocumentLikeUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutArticleInput | DocumentLikeCreateOrConnectWithoutArticleInput[]
    upsert?: DocumentLikeUpsertWithWhereUniqueWithoutArticleInput | DocumentLikeUpsertWithWhereUniqueWithoutArticleInput[]
    createMany?: DocumentLikeCreateManyArticleInputEnvelope
    set?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    disconnect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    delete?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    update?: DocumentLikeUpdateWithWhereUniqueWithoutArticleInput | DocumentLikeUpdateWithWhereUniqueWithoutArticleInput[]
    updateMany?: DocumentLikeUpdateManyWithWhereWithoutArticleInput | DocumentLikeUpdateManyWithWhereWithoutArticleInput[]
    deleteMany?: DocumentLikeScalarWhereInput | DocumentLikeScalarWhereInput[]
  }

  export type DocumentCommentUpdateManyWithoutArticleNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutArticleInput, DocumentCommentUncheckedCreateWithoutArticleInput> | DocumentCommentCreateWithoutArticleInput[] | DocumentCommentUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutArticleInput | DocumentCommentCreateOrConnectWithoutArticleInput[]
    upsert?: DocumentCommentUpsertWithWhereUniqueWithoutArticleInput | DocumentCommentUpsertWithWhereUniqueWithoutArticleInput[]
    createMany?: DocumentCommentCreateManyArticleInputEnvelope
    set?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    disconnect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    delete?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    update?: DocumentCommentUpdateWithWhereUniqueWithoutArticleInput | DocumentCommentUpdateWithWhereUniqueWithoutArticleInput[]
    updateMany?: DocumentCommentUpdateManyWithWhereWithoutArticleInput | DocumentCommentUpdateManyWithWhereWithoutArticleInput[]
    deleteMany?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
  }

  export type DocumentViewUncheckedUpdateManyWithoutArticleNestedInput = {
    create?: XOR<DocumentViewCreateWithoutArticleInput, DocumentViewUncheckedCreateWithoutArticleInput> | DocumentViewCreateWithoutArticleInput[] | DocumentViewUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutArticleInput | DocumentViewCreateOrConnectWithoutArticleInput[]
    upsert?: DocumentViewUpsertWithWhereUniqueWithoutArticleInput | DocumentViewUpsertWithWhereUniqueWithoutArticleInput[]
    createMany?: DocumentViewCreateManyArticleInputEnvelope
    set?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    disconnect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    delete?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    update?: DocumentViewUpdateWithWhereUniqueWithoutArticleInput | DocumentViewUpdateWithWhereUniqueWithoutArticleInput[]
    updateMany?: DocumentViewUpdateManyWithWhereWithoutArticleInput | DocumentViewUpdateManyWithWhereWithoutArticleInput[]
    deleteMany?: DocumentViewScalarWhereInput | DocumentViewScalarWhereInput[]
  }

  export type DocumentLikeUncheckedUpdateManyWithoutArticleNestedInput = {
    create?: XOR<DocumentLikeCreateWithoutArticleInput, DocumentLikeUncheckedCreateWithoutArticleInput> | DocumentLikeCreateWithoutArticleInput[] | DocumentLikeUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutArticleInput | DocumentLikeCreateOrConnectWithoutArticleInput[]
    upsert?: DocumentLikeUpsertWithWhereUniqueWithoutArticleInput | DocumentLikeUpsertWithWhereUniqueWithoutArticleInput[]
    createMany?: DocumentLikeCreateManyArticleInputEnvelope
    set?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    disconnect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    delete?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    update?: DocumentLikeUpdateWithWhereUniqueWithoutArticleInput | DocumentLikeUpdateWithWhereUniqueWithoutArticleInput[]
    updateMany?: DocumentLikeUpdateManyWithWhereWithoutArticleInput | DocumentLikeUpdateManyWithWhereWithoutArticleInput[]
    deleteMany?: DocumentLikeScalarWhereInput | DocumentLikeScalarWhereInput[]
  }

  export type DocumentCommentUncheckedUpdateManyWithoutArticleNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutArticleInput, DocumentCommentUncheckedCreateWithoutArticleInput> | DocumentCommentCreateWithoutArticleInput[] | DocumentCommentUncheckedCreateWithoutArticleInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutArticleInput | DocumentCommentCreateOrConnectWithoutArticleInput[]
    upsert?: DocumentCommentUpsertWithWhereUniqueWithoutArticleInput | DocumentCommentUpsertWithWhereUniqueWithoutArticleInput[]
    createMany?: DocumentCommentCreateManyArticleInputEnvelope
    set?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    disconnect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    delete?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    update?: DocumentCommentUpdateWithWhereUniqueWithoutArticleInput | DocumentCommentUpdateWithWhereUniqueWithoutArticleInput[]
    updateMany?: DocumentCommentUpdateManyWithWhereWithoutArticleInput | DocumentCommentUpdateManyWithWhereWithoutArticleInput[]
    deleteMany?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
  }

  export type DocumentViewCreateNestedManyWithoutSpDocumentInput = {
    create?: XOR<DocumentViewCreateWithoutSpDocumentInput, DocumentViewUncheckedCreateWithoutSpDocumentInput> | DocumentViewCreateWithoutSpDocumentInput[] | DocumentViewUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutSpDocumentInput | DocumentViewCreateOrConnectWithoutSpDocumentInput[]
    createMany?: DocumentViewCreateManySpDocumentInputEnvelope
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
  }

  export type DocumentLikeCreateNestedManyWithoutSpDocumentInput = {
    create?: XOR<DocumentLikeCreateWithoutSpDocumentInput, DocumentLikeUncheckedCreateWithoutSpDocumentInput> | DocumentLikeCreateWithoutSpDocumentInput[] | DocumentLikeUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutSpDocumentInput | DocumentLikeCreateOrConnectWithoutSpDocumentInput[]
    createMany?: DocumentLikeCreateManySpDocumentInputEnvelope
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
  }

  export type DocumentCommentCreateNestedManyWithoutSpDocumentInput = {
    create?: XOR<DocumentCommentCreateWithoutSpDocumentInput, DocumentCommentUncheckedCreateWithoutSpDocumentInput> | DocumentCommentCreateWithoutSpDocumentInput[] | DocumentCommentUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutSpDocumentInput | DocumentCommentCreateOrConnectWithoutSpDocumentInput[]
    createMany?: DocumentCommentCreateManySpDocumentInputEnvelope
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
  }

  export type DocumentViewUncheckedCreateNestedManyWithoutSpDocumentInput = {
    create?: XOR<DocumentViewCreateWithoutSpDocumentInput, DocumentViewUncheckedCreateWithoutSpDocumentInput> | DocumentViewCreateWithoutSpDocumentInput[] | DocumentViewUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutSpDocumentInput | DocumentViewCreateOrConnectWithoutSpDocumentInput[]
    createMany?: DocumentViewCreateManySpDocumentInputEnvelope
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
  }

  export type DocumentLikeUncheckedCreateNestedManyWithoutSpDocumentInput = {
    create?: XOR<DocumentLikeCreateWithoutSpDocumentInput, DocumentLikeUncheckedCreateWithoutSpDocumentInput> | DocumentLikeCreateWithoutSpDocumentInput[] | DocumentLikeUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutSpDocumentInput | DocumentLikeCreateOrConnectWithoutSpDocumentInput[]
    createMany?: DocumentLikeCreateManySpDocumentInputEnvelope
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
  }

  export type DocumentCommentUncheckedCreateNestedManyWithoutSpDocumentInput = {
    create?: XOR<DocumentCommentCreateWithoutSpDocumentInput, DocumentCommentUncheckedCreateWithoutSpDocumentInput> | DocumentCommentCreateWithoutSpDocumentInput[] | DocumentCommentUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutSpDocumentInput | DocumentCommentCreateOrConnectWithoutSpDocumentInput[]
    createMany?: DocumentCommentCreateManySpDocumentInputEnvelope
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
  }

  export type EnumDocAuthorityLevelFieldUpdateOperationsInput = {
    set?: $Enums.DocAuthorityLevel
  }

  export type EnumDocLifecycleStatusFieldUpdateOperationsInput = {
    set?: $Enums.DocLifecycleStatus
  }

  export type EnumDocTypeFieldUpdateOperationsInput = {
    set?: $Enums.DocType
  }

  export type DocumentViewUpdateManyWithoutSpDocumentNestedInput = {
    create?: XOR<DocumentViewCreateWithoutSpDocumentInput, DocumentViewUncheckedCreateWithoutSpDocumentInput> | DocumentViewCreateWithoutSpDocumentInput[] | DocumentViewUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutSpDocumentInput | DocumentViewCreateOrConnectWithoutSpDocumentInput[]
    upsert?: DocumentViewUpsertWithWhereUniqueWithoutSpDocumentInput | DocumentViewUpsertWithWhereUniqueWithoutSpDocumentInput[]
    createMany?: DocumentViewCreateManySpDocumentInputEnvelope
    set?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    disconnect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    delete?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    update?: DocumentViewUpdateWithWhereUniqueWithoutSpDocumentInput | DocumentViewUpdateWithWhereUniqueWithoutSpDocumentInput[]
    updateMany?: DocumentViewUpdateManyWithWhereWithoutSpDocumentInput | DocumentViewUpdateManyWithWhereWithoutSpDocumentInput[]
    deleteMany?: DocumentViewScalarWhereInput | DocumentViewScalarWhereInput[]
  }

  export type DocumentLikeUpdateManyWithoutSpDocumentNestedInput = {
    create?: XOR<DocumentLikeCreateWithoutSpDocumentInput, DocumentLikeUncheckedCreateWithoutSpDocumentInput> | DocumentLikeCreateWithoutSpDocumentInput[] | DocumentLikeUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutSpDocumentInput | DocumentLikeCreateOrConnectWithoutSpDocumentInput[]
    upsert?: DocumentLikeUpsertWithWhereUniqueWithoutSpDocumentInput | DocumentLikeUpsertWithWhereUniqueWithoutSpDocumentInput[]
    createMany?: DocumentLikeCreateManySpDocumentInputEnvelope
    set?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    disconnect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    delete?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    update?: DocumentLikeUpdateWithWhereUniqueWithoutSpDocumentInput | DocumentLikeUpdateWithWhereUniqueWithoutSpDocumentInput[]
    updateMany?: DocumentLikeUpdateManyWithWhereWithoutSpDocumentInput | DocumentLikeUpdateManyWithWhereWithoutSpDocumentInput[]
    deleteMany?: DocumentLikeScalarWhereInput | DocumentLikeScalarWhereInput[]
  }

  export type DocumentCommentUpdateManyWithoutSpDocumentNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutSpDocumentInput, DocumentCommentUncheckedCreateWithoutSpDocumentInput> | DocumentCommentCreateWithoutSpDocumentInput[] | DocumentCommentUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutSpDocumentInput | DocumentCommentCreateOrConnectWithoutSpDocumentInput[]
    upsert?: DocumentCommentUpsertWithWhereUniqueWithoutSpDocumentInput | DocumentCommentUpsertWithWhereUniqueWithoutSpDocumentInput[]
    createMany?: DocumentCommentCreateManySpDocumentInputEnvelope
    set?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    disconnect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    delete?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    update?: DocumentCommentUpdateWithWhereUniqueWithoutSpDocumentInput | DocumentCommentUpdateWithWhereUniqueWithoutSpDocumentInput[]
    updateMany?: DocumentCommentUpdateManyWithWhereWithoutSpDocumentInput | DocumentCommentUpdateManyWithWhereWithoutSpDocumentInput[]
    deleteMany?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
  }

  export type DocumentViewUncheckedUpdateManyWithoutSpDocumentNestedInput = {
    create?: XOR<DocumentViewCreateWithoutSpDocumentInput, DocumentViewUncheckedCreateWithoutSpDocumentInput> | DocumentViewCreateWithoutSpDocumentInput[] | DocumentViewUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentViewCreateOrConnectWithoutSpDocumentInput | DocumentViewCreateOrConnectWithoutSpDocumentInput[]
    upsert?: DocumentViewUpsertWithWhereUniqueWithoutSpDocumentInput | DocumentViewUpsertWithWhereUniqueWithoutSpDocumentInput[]
    createMany?: DocumentViewCreateManySpDocumentInputEnvelope
    set?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    disconnect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    delete?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    connect?: DocumentViewWhereUniqueInput | DocumentViewWhereUniqueInput[]
    update?: DocumentViewUpdateWithWhereUniqueWithoutSpDocumentInput | DocumentViewUpdateWithWhereUniqueWithoutSpDocumentInput[]
    updateMany?: DocumentViewUpdateManyWithWhereWithoutSpDocumentInput | DocumentViewUpdateManyWithWhereWithoutSpDocumentInput[]
    deleteMany?: DocumentViewScalarWhereInput | DocumentViewScalarWhereInput[]
  }

  export type DocumentLikeUncheckedUpdateManyWithoutSpDocumentNestedInput = {
    create?: XOR<DocumentLikeCreateWithoutSpDocumentInput, DocumentLikeUncheckedCreateWithoutSpDocumentInput> | DocumentLikeCreateWithoutSpDocumentInput[] | DocumentLikeUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentLikeCreateOrConnectWithoutSpDocumentInput | DocumentLikeCreateOrConnectWithoutSpDocumentInput[]
    upsert?: DocumentLikeUpsertWithWhereUniqueWithoutSpDocumentInput | DocumentLikeUpsertWithWhereUniqueWithoutSpDocumentInput[]
    createMany?: DocumentLikeCreateManySpDocumentInputEnvelope
    set?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    disconnect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    delete?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    connect?: DocumentLikeWhereUniqueInput | DocumentLikeWhereUniqueInput[]
    update?: DocumentLikeUpdateWithWhereUniqueWithoutSpDocumentInput | DocumentLikeUpdateWithWhereUniqueWithoutSpDocumentInput[]
    updateMany?: DocumentLikeUpdateManyWithWhereWithoutSpDocumentInput | DocumentLikeUpdateManyWithWhereWithoutSpDocumentInput[]
    deleteMany?: DocumentLikeScalarWhereInput | DocumentLikeScalarWhereInput[]
  }

  export type DocumentCommentUncheckedUpdateManyWithoutSpDocumentNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutSpDocumentInput, DocumentCommentUncheckedCreateWithoutSpDocumentInput> | DocumentCommentCreateWithoutSpDocumentInput[] | DocumentCommentUncheckedCreateWithoutSpDocumentInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutSpDocumentInput | DocumentCommentCreateOrConnectWithoutSpDocumentInput[]
    upsert?: DocumentCommentUpsertWithWhereUniqueWithoutSpDocumentInput | DocumentCommentUpsertWithWhereUniqueWithoutSpDocumentInput[]
    createMany?: DocumentCommentCreateManySpDocumentInputEnvelope
    set?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    disconnect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    delete?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    update?: DocumentCommentUpdateWithWhereUniqueWithoutSpDocumentInput | DocumentCommentUpdateWithWhereUniqueWithoutSpDocumentInput[]
    updateMany?: DocumentCommentUpdateManyWithWhereWithoutSpDocumentInput | DocumentCommentUpdateManyWithWhereWithoutSpDocumentInput[]
    deleteMany?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
  }

  export type EnumRagflowSourceTypeFieldUpdateOperationsInput = {
    set?: $Enums.RagflowSourceType
  }

  export type EnumSyncStatusFieldUpdateOperationsInput = {
    set?: $Enums.SyncStatus
  }

  export type UserCreateNestedOneWithoutAiQALogsInput = {
    create?: XOR<UserCreateWithoutAiQALogsInput, UserUncheckedCreateWithoutAiQALogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiQALogsInput
    connect?: UserWhereUniqueInput
  }

  export type NullableEnumQAFeedbackFieldUpdateOperationsInput = {
    set?: $Enums.QAFeedback | null
  }

  export type UserUpdateOneRequiredWithoutAiQALogsNestedInput = {
    create?: XOR<UserCreateWithoutAiQALogsInput, UserUncheckedCreateWithoutAiQALogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutAiQALogsInput
    upsert?: UserUpsertWithoutAiQALogsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAiQALogsInput, UserUpdateWithoutAiQALogsInput>, UserUncheckedUpdateWithoutAiQALogsInput>
  }

  export type EnumSearchTypeFieldUpdateOperationsInput = {
    set?: $Enums.SearchType
  }

  export type SPDocumentIndexCreateNestedOneWithoutViewsInput = {
    create?: XOR<SPDocumentIndexCreateWithoutViewsInput, SPDocumentIndexUncheckedCreateWithoutViewsInput>
    connectOrCreate?: SPDocumentIndexCreateOrConnectWithoutViewsInput
    connect?: SPDocumentIndexWhereUniqueInput
  }

  export type KnowledgeArticleCreateNestedOneWithoutViewsInput = {
    create?: XOR<KnowledgeArticleCreateWithoutViewsInput, KnowledgeArticleUncheckedCreateWithoutViewsInput>
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutViewsInput
    connect?: KnowledgeArticleWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutDocumentViewsInput = {
    create?: XOR<UserCreateWithoutDocumentViewsInput, UserUncheckedCreateWithoutDocumentViewsInput>
    connectOrCreate?: UserCreateOrConnectWithoutDocumentViewsInput
    connect?: UserWhereUniqueInput
  }

  export type SPDocumentIndexUpdateOneWithoutViewsNestedInput = {
    create?: XOR<SPDocumentIndexCreateWithoutViewsInput, SPDocumentIndexUncheckedCreateWithoutViewsInput>
    connectOrCreate?: SPDocumentIndexCreateOrConnectWithoutViewsInput
    upsert?: SPDocumentIndexUpsertWithoutViewsInput
    disconnect?: SPDocumentIndexWhereInput | boolean
    delete?: SPDocumentIndexWhereInput | boolean
    connect?: SPDocumentIndexWhereUniqueInput
    update?: XOR<XOR<SPDocumentIndexUpdateToOneWithWhereWithoutViewsInput, SPDocumentIndexUpdateWithoutViewsInput>, SPDocumentIndexUncheckedUpdateWithoutViewsInput>
  }

  export type KnowledgeArticleUpdateOneWithoutViewsNestedInput = {
    create?: XOR<KnowledgeArticleCreateWithoutViewsInput, KnowledgeArticleUncheckedCreateWithoutViewsInput>
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutViewsInput
    upsert?: KnowledgeArticleUpsertWithoutViewsInput
    disconnect?: KnowledgeArticleWhereInput | boolean
    delete?: KnowledgeArticleWhereInput | boolean
    connect?: KnowledgeArticleWhereUniqueInput
    update?: XOR<XOR<KnowledgeArticleUpdateToOneWithWhereWithoutViewsInput, KnowledgeArticleUpdateWithoutViewsInput>, KnowledgeArticleUncheckedUpdateWithoutViewsInput>
  }

  export type UserUpdateOneRequiredWithoutDocumentViewsNestedInput = {
    create?: XOR<UserCreateWithoutDocumentViewsInput, UserUncheckedCreateWithoutDocumentViewsInput>
    connectOrCreate?: UserCreateOrConnectWithoutDocumentViewsInput
    upsert?: UserUpsertWithoutDocumentViewsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDocumentViewsInput, UserUpdateWithoutDocumentViewsInput>, UserUncheckedUpdateWithoutDocumentViewsInput>
  }

  export type SPDocumentIndexCreateNestedOneWithoutLikesInput = {
    create?: XOR<SPDocumentIndexCreateWithoutLikesInput, SPDocumentIndexUncheckedCreateWithoutLikesInput>
    connectOrCreate?: SPDocumentIndexCreateOrConnectWithoutLikesInput
    connect?: SPDocumentIndexWhereUniqueInput
  }

  export type KnowledgeArticleCreateNestedOneWithoutLikesInput = {
    create?: XOR<KnowledgeArticleCreateWithoutLikesInput, KnowledgeArticleUncheckedCreateWithoutLikesInput>
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutLikesInput
    connect?: KnowledgeArticleWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutDocumentLikesInput = {
    create?: XOR<UserCreateWithoutDocumentLikesInput, UserUncheckedCreateWithoutDocumentLikesInput>
    connectOrCreate?: UserCreateOrConnectWithoutDocumentLikesInput
    connect?: UserWhereUniqueInput
  }

  export type EnumLikeTypeFieldUpdateOperationsInput = {
    set?: $Enums.LikeType
  }

  export type SPDocumentIndexUpdateOneWithoutLikesNestedInput = {
    create?: XOR<SPDocumentIndexCreateWithoutLikesInput, SPDocumentIndexUncheckedCreateWithoutLikesInput>
    connectOrCreate?: SPDocumentIndexCreateOrConnectWithoutLikesInput
    upsert?: SPDocumentIndexUpsertWithoutLikesInput
    disconnect?: SPDocumentIndexWhereInput | boolean
    delete?: SPDocumentIndexWhereInput | boolean
    connect?: SPDocumentIndexWhereUniqueInput
    update?: XOR<XOR<SPDocumentIndexUpdateToOneWithWhereWithoutLikesInput, SPDocumentIndexUpdateWithoutLikesInput>, SPDocumentIndexUncheckedUpdateWithoutLikesInput>
  }

  export type KnowledgeArticleUpdateOneWithoutLikesNestedInput = {
    create?: XOR<KnowledgeArticleCreateWithoutLikesInput, KnowledgeArticleUncheckedCreateWithoutLikesInput>
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutLikesInput
    upsert?: KnowledgeArticleUpsertWithoutLikesInput
    disconnect?: KnowledgeArticleWhereInput | boolean
    delete?: KnowledgeArticleWhereInput | boolean
    connect?: KnowledgeArticleWhereUniqueInput
    update?: XOR<XOR<KnowledgeArticleUpdateToOneWithWhereWithoutLikesInput, KnowledgeArticleUpdateWithoutLikesInput>, KnowledgeArticleUncheckedUpdateWithoutLikesInput>
  }

  export type UserUpdateOneRequiredWithoutDocumentLikesNestedInput = {
    create?: XOR<UserCreateWithoutDocumentLikesInput, UserUncheckedCreateWithoutDocumentLikesInput>
    connectOrCreate?: UserCreateOrConnectWithoutDocumentLikesInput
    upsert?: UserUpsertWithoutDocumentLikesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDocumentLikesInput, UserUpdateWithoutDocumentLikesInput>, UserUncheckedUpdateWithoutDocumentLikesInput>
  }

  export type SPDocumentIndexCreateNestedOneWithoutCommentsInput = {
    create?: XOR<SPDocumentIndexCreateWithoutCommentsInput, SPDocumentIndexUncheckedCreateWithoutCommentsInput>
    connectOrCreate?: SPDocumentIndexCreateOrConnectWithoutCommentsInput
    connect?: SPDocumentIndexWhereUniqueInput
  }

  export type KnowledgeArticleCreateNestedOneWithoutCommentsInput = {
    create?: XOR<KnowledgeArticleCreateWithoutCommentsInput, KnowledgeArticleUncheckedCreateWithoutCommentsInput>
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutCommentsInput
    connect?: KnowledgeArticleWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutDocumentCommentsInput = {
    create?: XOR<UserCreateWithoutDocumentCommentsInput, UserUncheckedCreateWithoutDocumentCommentsInput>
    connectOrCreate?: UserCreateOrConnectWithoutDocumentCommentsInput
    connect?: UserWhereUniqueInput
  }

  export type DocumentCommentCreateNestedOneWithoutRepliesInput = {
    create?: XOR<DocumentCommentCreateWithoutRepliesInput, DocumentCommentUncheckedCreateWithoutRepliesInput>
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutRepliesInput
    connect?: DocumentCommentWhereUniqueInput
  }

  export type DocumentCommentCreateNestedManyWithoutParentInput = {
    create?: XOR<DocumentCommentCreateWithoutParentInput, DocumentCommentUncheckedCreateWithoutParentInput> | DocumentCommentCreateWithoutParentInput[] | DocumentCommentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutParentInput | DocumentCommentCreateOrConnectWithoutParentInput[]
    createMany?: DocumentCommentCreateManyParentInputEnvelope
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
  }

  export type UserMentionCreateNestedManyWithoutCommentInput = {
    create?: XOR<UserMentionCreateWithoutCommentInput, UserMentionUncheckedCreateWithoutCommentInput> | UserMentionCreateWithoutCommentInput[] | UserMentionUncheckedCreateWithoutCommentInput[]
    connectOrCreate?: UserMentionCreateOrConnectWithoutCommentInput | UserMentionCreateOrConnectWithoutCommentInput[]
    createMany?: UserMentionCreateManyCommentInputEnvelope
    connect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
  }

  export type DocumentCommentUncheckedCreateNestedManyWithoutParentInput = {
    create?: XOR<DocumentCommentCreateWithoutParentInput, DocumentCommentUncheckedCreateWithoutParentInput> | DocumentCommentCreateWithoutParentInput[] | DocumentCommentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutParentInput | DocumentCommentCreateOrConnectWithoutParentInput[]
    createMany?: DocumentCommentCreateManyParentInputEnvelope
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
  }

  export type UserMentionUncheckedCreateNestedManyWithoutCommentInput = {
    create?: XOR<UserMentionCreateWithoutCommentInput, UserMentionUncheckedCreateWithoutCommentInput> | UserMentionCreateWithoutCommentInput[] | UserMentionUncheckedCreateWithoutCommentInput[]
    connectOrCreate?: UserMentionCreateOrConnectWithoutCommentInput | UserMentionCreateOrConnectWithoutCommentInput[]
    createMany?: UserMentionCreateManyCommentInputEnvelope
    connect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
  }

  export type SPDocumentIndexUpdateOneWithoutCommentsNestedInput = {
    create?: XOR<SPDocumentIndexCreateWithoutCommentsInput, SPDocumentIndexUncheckedCreateWithoutCommentsInput>
    connectOrCreate?: SPDocumentIndexCreateOrConnectWithoutCommentsInput
    upsert?: SPDocumentIndexUpsertWithoutCommentsInput
    disconnect?: SPDocumentIndexWhereInput | boolean
    delete?: SPDocumentIndexWhereInput | boolean
    connect?: SPDocumentIndexWhereUniqueInput
    update?: XOR<XOR<SPDocumentIndexUpdateToOneWithWhereWithoutCommentsInput, SPDocumentIndexUpdateWithoutCommentsInput>, SPDocumentIndexUncheckedUpdateWithoutCommentsInput>
  }

  export type KnowledgeArticleUpdateOneWithoutCommentsNestedInput = {
    create?: XOR<KnowledgeArticleCreateWithoutCommentsInput, KnowledgeArticleUncheckedCreateWithoutCommentsInput>
    connectOrCreate?: KnowledgeArticleCreateOrConnectWithoutCommentsInput
    upsert?: KnowledgeArticleUpsertWithoutCommentsInput
    disconnect?: KnowledgeArticleWhereInput | boolean
    delete?: KnowledgeArticleWhereInput | boolean
    connect?: KnowledgeArticleWhereUniqueInput
    update?: XOR<XOR<KnowledgeArticleUpdateToOneWithWhereWithoutCommentsInput, KnowledgeArticleUpdateWithoutCommentsInput>, KnowledgeArticleUncheckedUpdateWithoutCommentsInput>
  }

  export type UserUpdateOneRequiredWithoutDocumentCommentsNestedInput = {
    create?: XOR<UserCreateWithoutDocumentCommentsInput, UserUncheckedCreateWithoutDocumentCommentsInput>
    connectOrCreate?: UserCreateOrConnectWithoutDocumentCommentsInput
    upsert?: UserUpsertWithoutDocumentCommentsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutDocumentCommentsInput, UserUpdateWithoutDocumentCommentsInput>, UserUncheckedUpdateWithoutDocumentCommentsInput>
  }

  export type DocumentCommentUpdateOneWithoutRepliesNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutRepliesInput, DocumentCommentUncheckedCreateWithoutRepliesInput>
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutRepliesInput
    upsert?: DocumentCommentUpsertWithoutRepliesInput
    disconnect?: DocumentCommentWhereInput | boolean
    delete?: DocumentCommentWhereInput | boolean
    connect?: DocumentCommentWhereUniqueInput
    update?: XOR<XOR<DocumentCommentUpdateToOneWithWhereWithoutRepliesInput, DocumentCommentUpdateWithoutRepliesInput>, DocumentCommentUncheckedUpdateWithoutRepliesInput>
  }

  export type DocumentCommentUpdateManyWithoutParentNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutParentInput, DocumentCommentUncheckedCreateWithoutParentInput> | DocumentCommentCreateWithoutParentInput[] | DocumentCommentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutParentInput | DocumentCommentCreateOrConnectWithoutParentInput[]
    upsert?: DocumentCommentUpsertWithWhereUniqueWithoutParentInput | DocumentCommentUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: DocumentCommentCreateManyParentInputEnvelope
    set?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    disconnect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    delete?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    update?: DocumentCommentUpdateWithWhereUniqueWithoutParentInput | DocumentCommentUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: DocumentCommentUpdateManyWithWhereWithoutParentInput | DocumentCommentUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
  }

  export type UserMentionUpdateManyWithoutCommentNestedInput = {
    create?: XOR<UserMentionCreateWithoutCommentInput, UserMentionUncheckedCreateWithoutCommentInput> | UserMentionCreateWithoutCommentInput[] | UserMentionUncheckedCreateWithoutCommentInput[]
    connectOrCreate?: UserMentionCreateOrConnectWithoutCommentInput | UserMentionCreateOrConnectWithoutCommentInput[]
    upsert?: UserMentionUpsertWithWhereUniqueWithoutCommentInput | UserMentionUpsertWithWhereUniqueWithoutCommentInput[]
    createMany?: UserMentionCreateManyCommentInputEnvelope
    set?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    disconnect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    delete?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    connect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    update?: UserMentionUpdateWithWhereUniqueWithoutCommentInput | UserMentionUpdateWithWhereUniqueWithoutCommentInput[]
    updateMany?: UserMentionUpdateManyWithWhereWithoutCommentInput | UserMentionUpdateManyWithWhereWithoutCommentInput[]
    deleteMany?: UserMentionScalarWhereInput | UserMentionScalarWhereInput[]
  }

  export type DocumentCommentUncheckedUpdateManyWithoutParentNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutParentInput, DocumentCommentUncheckedCreateWithoutParentInput> | DocumentCommentCreateWithoutParentInput[] | DocumentCommentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutParentInput | DocumentCommentCreateOrConnectWithoutParentInput[]
    upsert?: DocumentCommentUpsertWithWhereUniqueWithoutParentInput | DocumentCommentUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: DocumentCommentCreateManyParentInputEnvelope
    set?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    disconnect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    delete?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    connect?: DocumentCommentWhereUniqueInput | DocumentCommentWhereUniqueInput[]
    update?: DocumentCommentUpdateWithWhereUniqueWithoutParentInput | DocumentCommentUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: DocumentCommentUpdateManyWithWhereWithoutParentInput | DocumentCommentUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
  }

  export type UserMentionUncheckedUpdateManyWithoutCommentNestedInput = {
    create?: XOR<UserMentionCreateWithoutCommentInput, UserMentionUncheckedCreateWithoutCommentInput> | UserMentionCreateWithoutCommentInput[] | UserMentionUncheckedCreateWithoutCommentInput[]
    connectOrCreate?: UserMentionCreateOrConnectWithoutCommentInput | UserMentionCreateOrConnectWithoutCommentInput[]
    upsert?: UserMentionUpsertWithWhereUniqueWithoutCommentInput | UserMentionUpsertWithWhereUniqueWithoutCommentInput[]
    createMany?: UserMentionCreateManyCommentInputEnvelope
    set?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    disconnect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    delete?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    connect?: UserMentionWhereUniqueInput | UserMentionWhereUniqueInput[]
    update?: UserMentionUpdateWithWhereUniqueWithoutCommentInput | UserMentionUpdateWithWhereUniqueWithoutCommentInput[]
    updateMany?: UserMentionUpdateManyWithWhereWithoutCommentInput | UserMentionUpdateManyWithWhereWithoutCommentInput[]
    deleteMany?: UserMentionScalarWhereInput | UserMentionScalarWhereInput[]
  }

  export type DocumentCommentCreateNestedOneWithoutMentionsInput = {
    create?: XOR<DocumentCommentCreateWithoutMentionsInput, DocumentCommentUncheckedCreateWithoutMentionsInput>
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutMentionsInput
    connect?: DocumentCommentWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutMentionedInInput = {
    create?: XOR<UserCreateWithoutMentionedInInput, UserUncheckedCreateWithoutMentionedInInput>
    connectOrCreate?: UserCreateOrConnectWithoutMentionedInInput
    connect?: UserWhereUniqueInput
  }

  export type DocumentCommentUpdateOneRequiredWithoutMentionsNestedInput = {
    create?: XOR<DocumentCommentCreateWithoutMentionsInput, DocumentCommentUncheckedCreateWithoutMentionsInput>
    connectOrCreate?: DocumentCommentCreateOrConnectWithoutMentionsInput
    upsert?: DocumentCommentUpsertWithoutMentionsInput
    connect?: DocumentCommentWhereUniqueInput
    update?: XOR<XOR<DocumentCommentUpdateToOneWithWhereWithoutMentionsInput, DocumentCommentUpdateWithoutMentionsInput>, DocumentCommentUncheckedUpdateWithoutMentionsInput>
  }

  export type UserUpdateOneRequiredWithoutMentionedInNestedInput = {
    create?: XOR<UserCreateWithoutMentionedInInput, UserUncheckedCreateWithoutMentionedInInput>
    connectOrCreate?: UserCreateOrConnectWithoutMentionedInInput
    upsert?: UserUpsertWithoutMentionedInInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMentionedInInput, UserUpdateWithoutMentionedInInput>, UserUncheckedUpdateWithoutMentionedInInput>
  }

  export type SyncTaskSkippedItemCreateNestedManyWithoutTaskInput = {
    create?: XOR<SyncTaskSkippedItemCreateWithoutTaskInput, SyncTaskSkippedItemUncheckedCreateWithoutTaskInput> | SyncTaskSkippedItemCreateWithoutTaskInput[] | SyncTaskSkippedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskSkippedItemCreateOrConnectWithoutTaskInput | SyncTaskSkippedItemCreateOrConnectWithoutTaskInput[]
    createMany?: SyncTaskSkippedItemCreateManyTaskInputEnvelope
    connect?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
  }

  export type SyncTaskProcessedItemCreateNestedManyWithoutTaskInput = {
    create?: XOR<SyncTaskProcessedItemCreateWithoutTaskInput, SyncTaskProcessedItemUncheckedCreateWithoutTaskInput> | SyncTaskProcessedItemCreateWithoutTaskInput[] | SyncTaskProcessedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskProcessedItemCreateOrConnectWithoutTaskInput | SyncTaskProcessedItemCreateOrConnectWithoutTaskInput[]
    createMany?: SyncTaskProcessedItemCreateManyTaskInputEnvelope
    connect?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
  }

  export type SyncTaskFailedItemCreateNestedManyWithoutTaskInput = {
    create?: XOR<SyncTaskFailedItemCreateWithoutTaskInput, SyncTaskFailedItemUncheckedCreateWithoutTaskInput> | SyncTaskFailedItemCreateWithoutTaskInput[] | SyncTaskFailedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskFailedItemCreateOrConnectWithoutTaskInput | SyncTaskFailedItemCreateOrConnectWithoutTaskInput[]
    createMany?: SyncTaskFailedItemCreateManyTaskInputEnvelope
    connect?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
  }

  export type SyncTaskSkippedItemUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<SyncTaskSkippedItemCreateWithoutTaskInput, SyncTaskSkippedItemUncheckedCreateWithoutTaskInput> | SyncTaskSkippedItemCreateWithoutTaskInput[] | SyncTaskSkippedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskSkippedItemCreateOrConnectWithoutTaskInput | SyncTaskSkippedItemCreateOrConnectWithoutTaskInput[]
    createMany?: SyncTaskSkippedItemCreateManyTaskInputEnvelope
    connect?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
  }

  export type SyncTaskProcessedItemUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<SyncTaskProcessedItemCreateWithoutTaskInput, SyncTaskProcessedItemUncheckedCreateWithoutTaskInput> | SyncTaskProcessedItemCreateWithoutTaskInput[] | SyncTaskProcessedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskProcessedItemCreateOrConnectWithoutTaskInput | SyncTaskProcessedItemCreateOrConnectWithoutTaskInput[]
    createMany?: SyncTaskProcessedItemCreateManyTaskInputEnvelope
    connect?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
  }

  export type SyncTaskFailedItemUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<SyncTaskFailedItemCreateWithoutTaskInput, SyncTaskFailedItemUncheckedCreateWithoutTaskInput> | SyncTaskFailedItemCreateWithoutTaskInput[] | SyncTaskFailedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskFailedItemCreateOrConnectWithoutTaskInput | SyncTaskFailedItemCreateOrConnectWithoutTaskInput[]
    createMany?: SyncTaskFailedItemCreateManyTaskInputEnvelope
    connect?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
  }

  export type SyncTaskSkippedItemUpdateManyWithoutTaskNestedInput = {
    create?: XOR<SyncTaskSkippedItemCreateWithoutTaskInput, SyncTaskSkippedItemUncheckedCreateWithoutTaskInput> | SyncTaskSkippedItemCreateWithoutTaskInput[] | SyncTaskSkippedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskSkippedItemCreateOrConnectWithoutTaskInput | SyncTaskSkippedItemCreateOrConnectWithoutTaskInput[]
    upsert?: SyncTaskSkippedItemUpsertWithWhereUniqueWithoutTaskInput | SyncTaskSkippedItemUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: SyncTaskSkippedItemCreateManyTaskInputEnvelope
    set?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
    disconnect?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
    delete?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
    connect?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
    update?: SyncTaskSkippedItemUpdateWithWhereUniqueWithoutTaskInput | SyncTaskSkippedItemUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: SyncTaskSkippedItemUpdateManyWithWhereWithoutTaskInput | SyncTaskSkippedItemUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: SyncTaskSkippedItemScalarWhereInput | SyncTaskSkippedItemScalarWhereInput[]
  }

  export type SyncTaskProcessedItemUpdateManyWithoutTaskNestedInput = {
    create?: XOR<SyncTaskProcessedItemCreateWithoutTaskInput, SyncTaskProcessedItemUncheckedCreateWithoutTaskInput> | SyncTaskProcessedItemCreateWithoutTaskInput[] | SyncTaskProcessedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskProcessedItemCreateOrConnectWithoutTaskInput | SyncTaskProcessedItemCreateOrConnectWithoutTaskInput[]
    upsert?: SyncTaskProcessedItemUpsertWithWhereUniqueWithoutTaskInput | SyncTaskProcessedItemUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: SyncTaskProcessedItemCreateManyTaskInputEnvelope
    set?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
    disconnect?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
    delete?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
    connect?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
    update?: SyncTaskProcessedItemUpdateWithWhereUniqueWithoutTaskInput | SyncTaskProcessedItemUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: SyncTaskProcessedItemUpdateManyWithWhereWithoutTaskInput | SyncTaskProcessedItemUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: SyncTaskProcessedItemScalarWhereInput | SyncTaskProcessedItemScalarWhereInput[]
  }

  export type SyncTaskFailedItemUpdateManyWithoutTaskNestedInput = {
    create?: XOR<SyncTaskFailedItemCreateWithoutTaskInput, SyncTaskFailedItemUncheckedCreateWithoutTaskInput> | SyncTaskFailedItemCreateWithoutTaskInput[] | SyncTaskFailedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskFailedItemCreateOrConnectWithoutTaskInput | SyncTaskFailedItemCreateOrConnectWithoutTaskInput[]
    upsert?: SyncTaskFailedItemUpsertWithWhereUniqueWithoutTaskInput | SyncTaskFailedItemUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: SyncTaskFailedItemCreateManyTaskInputEnvelope
    set?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
    disconnect?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
    delete?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
    connect?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
    update?: SyncTaskFailedItemUpdateWithWhereUniqueWithoutTaskInput | SyncTaskFailedItemUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: SyncTaskFailedItemUpdateManyWithWhereWithoutTaskInput | SyncTaskFailedItemUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: SyncTaskFailedItemScalarWhereInput | SyncTaskFailedItemScalarWhereInput[]
  }

  export type SyncTaskSkippedItemUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<SyncTaskSkippedItemCreateWithoutTaskInput, SyncTaskSkippedItemUncheckedCreateWithoutTaskInput> | SyncTaskSkippedItemCreateWithoutTaskInput[] | SyncTaskSkippedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskSkippedItemCreateOrConnectWithoutTaskInput | SyncTaskSkippedItemCreateOrConnectWithoutTaskInput[]
    upsert?: SyncTaskSkippedItemUpsertWithWhereUniqueWithoutTaskInput | SyncTaskSkippedItemUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: SyncTaskSkippedItemCreateManyTaskInputEnvelope
    set?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
    disconnect?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
    delete?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
    connect?: SyncTaskSkippedItemWhereUniqueInput | SyncTaskSkippedItemWhereUniqueInput[]
    update?: SyncTaskSkippedItemUpdateWithWhereUniqueWithoutTaskInput | SyncTaskSkippedItemUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: SyncTaskSkippedItemUpdateManyWithWhereWithoutTaskInput | SyncTaskSkippedItemUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: SyncTaskSkippedItemScalarWhereInput | SyncTaskSkippedItemScalarWhereInput[]
  }

  export type SyncTaskProcessedItemUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<SyncTaskProcessedItemCreateWithoutTaskInput, SyncTaskProcessedItemUncheckedCreateWithoutTaskInput> | SyncTaskProcessedItemCreateWithoutTaskInput[] | SyncTaskProcessedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskProcessedItemCreateOrConnectWithoutTaskInput | SyncTaskProcessedItemCreateOrConnectWithoutTaskInput[]
    upsert?: SyncTaskProcessedItemUpsertWithWhereUniqueWithoutTaskInput | SyncTaskProcessedItemUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: SyncTaskProcessedItemCreateManyTaskInputEnvelope
    set?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
    disconnect?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
    delete?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
    connect?: SyncTaskProcessedItemWhereUniqueInput | SyncTaskProcessedItemWhereUniqueInput[]
    update?: SyncTaskProcessedItemUpdateWithWhereUniqueWithoutTaskInput | SyncTaskProcessedItemUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: SyncTaskProcessedItemUpdateManyWithWhereWithoutTaskInput | SyncTaskProcessedItemUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: SyncTaskProcessedItemScalarWhereInput | SyncTaskProcessedItemScalarWhereInput[]
  }

  export type SyncTaskFailedItemUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<SyncTaskFailedItemCreateWithoutTaskInput, SyncTaskFailedItemUncheckedCreateWithoutTaskInput> | SyncTaskFailedItemCreateWithoutTaskInput[] | SyncTaskFailedItemUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SyncTaskFailedItemCreateOrConnectWithoutTaskInput | SyncTaskFailedItemCreateOrConnectWithoutTaskInput[]
    upsert?: SyncTaskFailedItemUpsertWithWhereUniqueWithoutTaskInput | SyncTaskFailedItemUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: SyncTaskFailedItemCreateManyTaskInputEnvelope
    set?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
    disconnect?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
    delete?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
    connect?: SyncTaskFailedItemWhereUniqueInput | SyncTaskFailedItemWhereUniqueInput[]
    update?: SyncTaskFailedItemUpdateWithWhereUniqueWithoutTaskInput | SyncTaskFailedItemUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: SyncTaskFailedItemUpdateManyWithWhereWithoutTaskInput | SyncTaskFailedItemUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: SyncTaskFailedItemScalarWhereInput | SyncTaskFailedItemScalarWhereInput[]
  }

  export type SyncTaskCreateNestedOneWithoutSkippedDetailsInput = {
    create?: XOR<SyncTaskCreateWithoutSkippedDetailsInput, SyncTaskUncheckedCreateWithoutSkippedDetailsInput>
    connectOrCreate?: SyncTaskCreateOrConnectWithoutSkippedDetailsInput
    connect?: SyncTaskWhereUniqueInput
  }

  export type SyncTaskUpdateOneRequiredWithoutSkippedDetailsNestedInput = {
    create?: XOR<SyncTaskCreateWithoutSkippedDetailsInput, SyncTaskUncheckedCreateWithoutSkippedDetailsInput>
    connectOrCreate?: SyncTaskCreateOrConnectWithoutSkippedDetailsInput
    upsert?: SyncTaskUpsertWithoutSkippedDetailsInput
    connect?: SyncTaskWhereUniqueInput
    update?: XOR<XOR<SyncTaskUpdateToOneWithWhereWithoutSkippedDetailsInput, SyncTaskUpdateWithoutSkippedDetailsInput>, SyncTaskUncheckedUpdateWithoutSkippedDetailsInput>
  }

  export type SyncTaskCreateNestedOneWithoutProcessedDetailsInput = {
    create?: XOR<SyncTaskCreateWithoutProcessedDetailsInput, SyncTaskUncheckedCreateWithoutProcessedDetailsInput>
    connectOrCreate?: SyncTaskCreateOrConnectWithoutProcessedDetailsInput
    connect?: SyncTaskWhereUniqueInput
  }

  export type EnumSyncItemStatusFieldUpdateOperationsInput = {
    set?: $Enums.SyncItemStatus
  }

  export type SyncTaskUpdateOneRequiredWithoutProcessedDetailsNestedInput = {
    create?: XOR<SyncTaskCreateWithoutProcessedDetailsInput, SyncTaskUncheckedCreateWithoutProcessedDetailsInput>
    connectOrCreate?: SyncTaskCreateOrConnectWithoutProcessedDetailsInput
    upsert?: SyncTaskUpsertWithoutProcessedDetailsInput
    connect?: SyncTaskWhereUniqueInput
    update?: XOR<XOR<SyncTaskUpdateToOneWithWhereWithoutProcessedDetailsInput, SyncTaskUpdateWithoutProcessedDetailsInput>, SyncTaskUncheckedUpdateWithoutProcessedDetailsInput>
  }

  export type SyncTaskCreateNestedOneWithoutFailedDetailsInput = {
    create?: XOR<SyncTaskCreateWithoutFailedDetailsInput, SyncTaskUncheckedCreateWithoutFailedDetailsInput>
    connectOrCreate?: SyncTaskCreateOrConnectWithoutFailedDetailsInput
    connect?: SyncTaskWhereUniqueInput
  }

  export type SyncTaskUpdateOneRequiredWithoutFailedDetailsNestedInput = {
    create?: XOR<SyncTaskCreateWithoutFailedDetailsInput, SyncTaskUncheckedCreateWithoutFailedDetailsInput>
    connectOrCreate?: SyncTaskCreateOrConnectWithoutFailedDetailsInput
    upsert?: SyncTaskUpsertWithoutFailedDetailsInput
    connect?: SyncTaskWhereUniqueInput
    update?: XOR<XOR<SyncTaskUpdateToOneWithWhereWithoutFailedDetailsInput, SyncTaskUpdateWithoutFailedDetailsInput>, SyncTaskUncheckedUpdateWithoutFailedDetailsInput>
  }

  export type EnumLogLevelFieldUpdateOperationsInput = {
    set?: $Enums.LogLevel
  }

  export type LogAlertCreatechannelsInput = {
    set: string[]
  }

  export type EnumLogAlertTypeFieldUpdateOperationsInput = {
    set?: $Enums.LogAlertType
  }

  export type EnumLogAlertSeverityFieldUpdateOperationsInput = {
    set?: $Enums.LogAlertSeverity
  }

  export type LogAlertUpdatechannelsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumLogAlertStatusFieldUpdateOperationsInput = {
    set?: $Enums.LogAlertStatus
  }

  export type CustomerContactCreateNestedManyWithoutCustomerInput = {
    create?: XOR<CustomerContactCreateWithoutCustomerInput, CustomerContactUncheckedCreateWithoutCustomerInput> | CustomerContactCreateWithoutCustomerInput[] | CustomerContactUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: CustomerContactCreateOrConnectWithoutCustomerInput | CustomerContactCreateOrConnectWithoutCustomerInput[]
    createMany?: CustomerContactCreateManyCustomerInputEnvelope
    connect?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
  }

  export type CustomerAddressCreateNestedManyWithoutCustomerInput = {
    create?: XOR<CustomerAddressCreateWithoutCustomerInput, CustomerAddressUncheckedCreateWithoutCustomerInput> | CustomerAddressCreateWithoutCustomerInput[] | CustomerAddressUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: CustomerAddressCreateOrConnectWithoutCustomerInput | CustomerAddressCreateOrConnectWithoutCustomerInput[]
    createMany?: CustomerAddressCreateManyCustomerInputEnvelope
    connect?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
  }

  export type LocationCreateNestedManyWithoutCustomerInput = {
    create?: XOR<LocationCreateWithoutCustomerInput, LocationUncheckedCreateWithoutCustomerInput> | LocationCreateWithoutCustomerInput[] | LocationUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: LocationCreateOrConnectWithoutCustomerInput | LocationCreateOrConnectWithoutCustomerInput[]
    createMany?: LocationCreateManyCustomerInputEnvelope
    connect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
  }

  export type CustomerContactUncheckedCreateNestedManyWithoutCustomerInput = {
    create?: XOR<CustomerContactCreateWithoutCustomerInput, CustomerContactUncheckedCreateWithoutCustomerInput> | CustomerContactCreateWithoutCustomerInput[] | CustomerContactUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: CustomerContactCreateOrConnectWithoutCustomerInput | CustomerContactCreateOrConnectWithoutCustomerInput[]
    createMany?: CustomerContactCreateManyCustomerInputEnvelope
    connect?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
  }

  export type CustomerAddressUncheckedCreateNestedManyWithoutCustomerInput = {
    create?: XOR<CustomerAddressCreateWithoutCustomerInput, CustomerAddressUncheckedCreateWithoutCustomerInput> | CustomerAddressCreateWithoutCustomerInput[] | CustomerAddressUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: CustomerAddressCreateOrConnectWithoutCustomerInput | CustomerAddressCreateOrConnectWithoutCustomerInput[]
    createMany?: CustomerAddressCreateManyCustomerInputEnvelope
    connect?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
  }

  export type LocationUncheckedCreateNestedManyWithoutCustomerInput = {
    create?: XOR<LocationCreateWithoutCustomerInput, LocationUncheckedCreateWithoutCustomerInput> | LocationCreateWithoutCustomerInput[] | LocationUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: LocationCreateOrConnectWithoutCustomerInput | LocationCreateOrConnectWithoutCustomerInput[]
    createMany?: LocationCreateManyCustomerInputEnvelope
    connect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
  }

  export type EnumCustomerTypeFieldUpdateOperationsInput = {
    set?: $Enums.CustomerType
  }

  export type NullableDecimalFieldUpdateOperationsInput = {
    set?: Decimal | DecimalJsLike | number | string | null
    increment?: Decimal | DecimalJsLike | number | string
    decrement?: Decimal | DecimalJsLike | number | string
    multiply?: Decimal | DecimalJsLike | number | string
    divide?: Decimal | DecimalJsLike | number | string
  }

  export type CustomerContactUpdateManyWithoutCustomerNestedInput = {
    create?: XOR<CustomerContactCreateWithoutCustomerInput, CustomerContactUncheckedCreateWithoutCustomerInput> | CustomerContactCreateWithoutCustomerInput[] | CustomerContactUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: CustomerContactCreateOrConnectWithoutCustomerInput | CustomerContactCreateOrConnectWithoutCustomerInput[]
    upsert?: CustomerContactUpsertWithWhereUniqueWithoutCustomerInput | CustomerContactUpsertWithWhereUniqueWithoutCustomerInput[]
    createMany?: CustomerContactCreateManyCustomerInputEnvelope
    set?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
    disconnect?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
    delete?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
    connect?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
    update?: CustomerContactUpdateWithWhereUniqueWithoutCustomerInput | CustomerContactUpdateWithWhereUniqueWithoutCustomerInput[]
    updateMany?: CustomerContactUpdateManyWithWhereWithoutCustomerInput | CustomerContactUpdateManyWithWhereWithoutCustomerInput[]
    deleteMany?: CustomerContactScalarWhereInput | CustomerContactScalarWhereInput[]
  }

  export type CustomerAddressUpdateManyWithoutCustomerNestedInput = {
    create?: XOR<CustomerAddressCreateWithoutCustomerInput, CustomerAddressUncheckedCreateWithoutCustomerInput> | CustomerAddressCreateWithoutCustomerInput[] | CustomerAddressUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: CustomerAddressCreateOrConnectWithoutCustomerInput | CustomerAddressCreateOrConnectWithoutCustomerInput[]
    upsert?: CustomerAddressUpsertWithWhereUniqueWithoutCustomerInput | CustomerAddressUpsertWithWhereUniqueWithoutCustomerInput[]
    createMany?: CustomerAddressCreateManyCustomerInputEnvelope
    set?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
    disconnect?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
    delete?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
    connect?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
    update?: CustomerAddressUpdateWithWhereUniqueWithoutCustomerInput | CustomerAddressUpdateWithWhereUniqueWithoutCustomerInput[]
    updateMany?: CustomerAddressUpdateManyWithWhereWithoutCustomerInput | CustomerAddressUpdateManyWithWhereWithoutCustomerInput[]
    deleteMany?: CustomerAddressScalarWhereInput | CustomerAddressScalarWhereInput[]
  }

  export type LocationUpdateManyWithoutCustomerNestedInput = {
    create?: XOR<LocationCreateWithoutCustomerInput, LocationUncheckedCreateWithoutCustomerInput> | LocationCreateWithoutCustomerInput[] | LocationUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: LocationCreateOrConnectWithoutCustomerInput | LocationCreateOrConnectWithoutCustomerInput[]
    upsert?: LocationUpsertWithWhereUniqueWithoutCustomerInput | LocationUpsertWithWhereUniqueWithoutCustomerInput[]
    createMany?: LocationCreateManyCustomerInputEnvelope
    set?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    disconnect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    delete?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    connect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    update?: LocationUpdateWithWhereUniqueWithoutCustomerInput | LocationUpdateWithWhereUniqueWithoutCustomerInput[]
    updateMany?: LocationUpdateManyWithWhereWithoutCustomerInput | LocationUpdateManyWithWhereWithoutCustomerInput[]
    deleteMany?: LocationScalarWhereInput | LocationScalarWhereInput[]
  }

  export type CustomerContactUncheckedUpdateManyWithoutCustomerNestedInput = {
    create?: XOR<CustomerContactCreateWithoutCustomerInput, CustomerContactUncheckedCreateWithoutCustomerInput> | CustomerContactCreateWithoutCustomerInput[] | CustomerContactUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: CustomerContactCreateOrConnectWithoutCustomerInput | CustomerContactCreateOrConnectWithoutCustomerInput[]
    upsert?: CustomerContactUpsertWithWhereUniqueWithoutCustomerInput | CustomerContactUpsertWithWhereUniqueWithoutCustomerInput[]
    createMany?: CustomerContactCreateManyCustomerInputEnvelope
    set?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
    disconnect?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
    delete?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
    connect?: CustomerContactWhereUniqueInput | CustomerContactWhereUniqueInput[]
    update?: CustomerContactUpdateWithWhereUniqueWithoutCustomerInput | CustomerContactUpdateWithWhereUniqueWithoutCustomerInput[]
    updateMany?: CustomerContactUpdateManyWithWhereWithoutCustomerInput | CustomerContactUpdateManyWithWhereWithoutCustomerInput[]
    deleteMany?: CustomerContactScalarWhereInput | CustomerContactScalarWhereInput[]
  }

  export type CustomerAddressUncheckedUpdateManyWithoutCustomerNestedInput = {
    create?: XOR<CustomerAddressCreateWithoutCustomerInput, CustomerAddressUncheckedCreateWithoutCustomerInput> | CustomerAddressCreateWithoutCustomerInput[] | CustomerAddressUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: CustomerAddressCreateOrConnectWithoutCustomerInput | CustomerAddressCreateOrConnectWithoutCustomerInput[]
    upsert?: CustomerAddressUpsertWithWhereUniqueWithoutCustomerInput | CustomerAddressUpsertWithWhereUniqueWithoutCustomerInput[]
    createMany?: CustomerAddressCreateManyCustomerInputEnvelope
    set?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
    disconnect?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
    delete?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
    connect?: CustomerAddressWhereUniqueInput | CustomerAddressWhereUniqueInput[]
    update?: CustomerAddressUpdateWithWhereUniqueWithoutCustomerInput | CustomerAddressUpdateWithWhereUniqueWithoutCustomerInput[]
    updateMany?: CustomerAddressUpdateManyWithWhereWithoutCustomerInput | CustomerAddressUpdateManyWithWhereWithoutCustomerInput[]
    deleteMany?: CustomerAddressScalarWhereInput | CustomerAddressScalarWhereInput[]
  }

  export type LocationUncheckedUpdateManyWithoutCustomerNestedInput = {
    create?: XOR<LocationCreateWithoutCustomerInput, LocationUncheckedCreateWithoutCustomerInput> | LocationCreateWithoutCustomerInput[] | LocationUncheckedCreateWithoutCustomerInput[]
    connectOrCreate?: LocationCreateOrConnectWithoutCustomerInput | LocationCreateOrConnectWithoutCustomerInput[]
    upsert?: LocationUpsertWithWhereUniqueWithoutCustomerInput | LocationUpsertWithWhereUniqueWithoutCustomerInput[]
    createMany?: LocationCreateManyCustomerInputEnvelope
    set?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    disconnect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    delete?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    connect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    update?: LocationUpdateWithWhereUniqueWithoutCustomerInput | LocationUpdateWithWhereUniqueWithoutCustomerInput[]
    updateMany?: LocationUpdateManyWithWhereWithoutCustomerInput | LocationUpdateManyWithWhereWithoutCustomerInput[]
    deleteMany?: LocationScalarWhereInput | LocationScalarWhereInput[]
  }

  export type CustomerCreateNestedOneWithoutContactsInput = {
    create?: XOR<CustomerCreateWithoutContactsInput, CustomerUncheckedCreateWithoutContactsInput>
    connectOrCreate?: CustomerCreateOrConnectWithoutContactsInput
    connect?: CustomerWhereUniqueInput
  }

  export type CustomerUpdateOneRequiredWithoutContactsNestedInput = {
    create?: XOR<CustomerCreateWithoutContactsInput, CustomerUncheckedCreateWithoutContactsInput>
    connectOrCreate?: CustomerCreateOrConnectWithoutContactsInput
    upsert?: CustomerUpsertWithoutContactsInput
    connect?: CustomerWhereUniqueInput
    update?: XOR<XOR<CustomerUpdateToOneWithWhereWithoutContactsInput, CustomerUpdateWithoutContactsInput>, CustomerUncheckedUpdateWithoutContactsInput>
  }

  export type CustomerCreateNestedOneWithoutAddressesInput = {
    create?: XOR<CustomerCreateWithoutAddressesInput, CustomerUncheckedCreateWithoutAddressesInput>
    connectOrCreate?: CustomerCreateOrConnectWithoutAddressesInput
    connect?: CustomerWhereUniqueInput
  }

  export type CustomerUpdateOneRequiredWithoutAddressesNestedInput = {
    create?: XOR<CustomerCreateWithoutAddressesInput, CustomerUncheckedCreateWithoutAddressesInput>
    connectOrCreate?: CustomerCreateOrConnectWithoutAddressesInput
    upsert?: CustomerUpsertWithoutAddressesInput
    connect?: CustomerWhereUniqueInput
    update?: XOR<XOR<CustomerUpdateToOneWithWhereWithoutAddressesInput, CustomerUpdateWithoutAddressesInput>, CustomerUncheckedUpdateWithoutAddressesInput>
  }

  export type SupplierContactCreateNestedManyWithoutSupplierInput = {
    create?: XOR<SupplierContactCreateWithoutSupplierInput, SupplierContactUncheckedCreateWithoutSupplierInput> | SupplierContactCreateWithoutSupplierInput[] | SupplierContactUncheckedCreateWithoutSupplierInput[]
    connectOrCreate?: SupplierContactCreateOrConnectWithoutSupplierInput | SupplierContactCreateOrConnectWithoutSupplierInput[]
    createMany?: SupplierContactCreateManySupplierInputEnvelope
    connect?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
  }

  export type SupplierContactUncheckedCreateNestedManyWithoutSupplierInput = {
    create?: XOR<SupplierContactCreateWithoutSupplierInput, SupplierContactUncheckedCreateWithoutSupplierInput> | SupplierContactCreateWithoutSupplierInput[] | SupplierContactUncheckedCreateWithoutSupplierInput[]
    connectOrCreate?: SupplierContactCreateOrConnectWithoutSupplierInput | SupplierContactCreateOrConnectWithoutSupplierInput[]
    createMany?: SupplierContactCreateManySupplierInputEnvelope
    connect?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
  }

  export type EnumSupplierTypeFieldUpdateOperationsInput = {
    set?: $Enums.SupplierType
  }

  export type SupplierContactUpdateManyWithoutSupplierNestedInput = {
    create?: XOR<SupplierContactCreateWithoutSupplierInput, SupplierContactUncheckedCreateWithoutSupplierInput> | SupplierContactCreateWithoutSupplierInput[] | SupplierContactUncheckedCreateWithoutSupplierInput[]
    connectOrCreate?: SupplierContactCreateOrConnectWithoutSupplierInput | SupplierContactCreateOrConnectWithoutSupplierInput[]
    upsert?: SupplierContactUpsertWithWhereUniqueWithoutSupplierInput | SupplierContactUpsertWithWhereUniqueWithoutSupplierInput[]
    createMany?: SupplierContactCreateManySupplierInputEnvelope
    set?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
    disconnect?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
    delete?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
    connect?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
    update?: SupplierContactUpdateWithWhereUniqueWithoutSupplierInput | SupplierContactUpdateWithWhereUniqueWithoutSupplierInput[]
    updateMany?: SupplierContactUpdateManyWithWhereWithoutSupplierInput | SupplierContactUpdateManyWithWhereWithoutSupplierInput[]
    deleteMany?: SupplierContactScalarWhereInput | SupplierContactScalarWhereInput[]
  }

  export type SupplierContactUncheckedUpdateManyWithoutSupplierNestedInput = {
    create?: XOR<SupplierContactCreateWithoutSupplierInput, SupplierContactUncheckedCreateWithoutSupplierInput> | SupplierContactCreateWithoutSupplierInput[] | SupplierContactUncheckedCreateWithoutSupplierInput[]
    connectOrCreate?: SupplierContactCreateOrConnectWithoutSupplierInput | SupplierContactCreateOrConnectWithoutSupplierInput[]
    upsert?: SupplierContactUpsertWithWhereUniqueWithoutSupplierInput | SupplierContactUpsertWithWhereUniqueWithoutSupplierInput[]
    createMany?: SupplierContactCreateManySupplierInputEnvelope
    set?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
    disconnect?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
    delete?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
    connect?: SupplierContactWhereUniqueInput | SupplierContactWhereUniqueInput[]
    update?: SupplierContactUpdateWithWhereUniqueWithoutSupplierInput | SupplierContactUpdateWithWhereUniqueWithoutSupplierInput[]
    updateMany?: SupplierContactUpdateManyWithWhereWithoutSupplierInput | SupplierContactUpdateManyWithWhereWithoutSupplierInput[]
    deleteMany?: SupplierContactScalarWhereInput | SupplierContactScalarWhereInput[]
  }

  export type SupplierCreateNestedOneWithoutContactsInput = {
    create?: XOR<SupplierCreateWithoutContactsInput, SupplierUncheckedCreateWithoutContactsInput>
    connectOrCreate?: SupplierCreateOrConnectWithoutContactsInput
    connect?: SupplierWhereUniqueInput
  }

  export type SupplierUpdateOneRequiredWithoutContactsNestedInput = {
    create?: XOR<SupplierCreateWithoutContactsInput, SupplierUncheckedCreateWithoutContactsInput>
    connectOrCreate?: SupplierCreateOrConnectWithoutContactsInput
    upsert?: SupplierUpsertWithoutContactsInput
    connect?: SupplierWhereUniqueInput
    update?: XOR<XOR<SupplierUpdateToOneWithWhereWithoutContactsInput, SupplierUpdateWithoutContactsInput>, SupplierUncheckedUpdateWithoutContactsInput>
  }

  export type PartnerContactCreateNestedManyWithoutPartnerInput = {
    create?: XOR<PartnerContactCreateWithoutPartnerInput, PartnerContactUncheckedCreateWithoutPartnerInput> | PartnerContactCreateWithoutPartnerInput[] | PartnerContactUncheckedCreateWithoutPartnerInput[]
    connectOrCreate?: PartnerContactCreateOrConnectWithoutPartnerInput | PartnerContactCreateOrConnectWithoutPartnerInput[]
    createMany?: PartnerContactCreateManyPartnerInputEnvelope
    connect?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
  }

  export type PartnerContactUncheckedCreateNestedManyWithoutPartnerInput = {
    create?: XOR<PartnerContactCreateWithoutPartnerInput, PartnerContactUncheckedCreateWithoutPartnerInput> | PartnerContactCreateWithoutPartnerInput[] | PartnerContactUncheckedCreateWithoutPartnerInput[]
    connectOrCreate?: PartnerContactCreateOrConnectWithoutPartnerInput | PartnerContactCreateOrConnectWithoutPartnerInput[]
    createMany?: PartnerContactCreateManyPartnerInputEnvelope
    connect?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
  }

  export type EnumPartnerRoleFieldUpdateOperationsInput = {
    set?: $Enums.PartnerRole
  }

  export type PartnerContactUpdateManyWithoutPartnerNestedInput = {
    create?: XOR<PartnerContactCreateWithoutPartnerInput, PartnerContactUncheckedCreateWithoutPartnerInput> | PartnerContactCreateWithoutPartnerInput[] | PartnerContactUncheckedCreateWithoutPartnerInput[]
    connectOrCreate?: PartnerContactCreateOrConnectWithoutPartnerInput | PartnerContactCreateOrConnectWithoutPartnerInput[]
    upsert?: PartnerContactUpsertWithWhereUniqueWithoutPartnerInput | PartnerContactUpsertWithWhereUniqueWithoutPartnerInput[]
    createMany?: PartnerContactCreateManyPartnerInputEnvelope
    set?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
    disconnect?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
    delete?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
    connect?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
    update?: PartnerContactUpdateWithWhereUniqueWithoutPartnerInput | PartnerContactUpdateWithWhereUniqueWithoutPartnerInput[]
    updateMany?: PartnerContactUpdateManyWithWhereWithoutPartnerInput | PartnerContactUpdateManyWithWhereWithoutPartnerInput[]
    deleteMany?: PartnerContactScalarWhereInput | PartnerContactScalarWhereInput[]
  }

  export type PartnerContactUncheckedUpdateManyWithoutPartnerNestedInput = {
    create?: XOR<PartnerContactCreateWithoutPartnerInput, PartnerContactUncheckedCreateWithoutPartnerInput> | PartnerContactCreateWithoutPartnerInput[] | PartnerContactUncheckedCreateWithoutPartnerInput[]
    connectOrCreate?: PartnerContactCreateOrConnectWithoutPartnerInput | PartnerContactCreateOrConnectWithoutPartnerInput[]
    upsert?: PartnerContactUpsertWithWhereUniqueWithoutPartnerInput | PartnerContactUpsertWithWhereUniqueWithoutPartnerInput[]
    createMany?: PartnerContactCreateManyPartnerInputEnvelope
    set?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
    disconnect?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
    delete?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
    connect?: PartnerContactWhereUniqueInput | PartnerContactWhereUniqueInput[]
    update?: PartnerContactUpdateWithWhereUniqueWithoutPartnerInput | PartnerContactUpdateWithWhereUniqueWithoutPartnerInput[]
    updateMany?: PartnerContactUpdateManyWithWhereWithoutPartnerInput | PartnerContactUpdateManyWithWhereWithoutPartnerInput[]
    deleteMany?: PartnerContactScalarWhereInput | PartnerContactScalarWhereInput[]
  }

  export type PartnerCreateNestedOneWithoutContactsInput = {
    create?: XOR<PartnerCreateWithoutContactsInput, PartnerUncheckedCreateWithoutContactsInput>
    connectOrCreate?: PartnerCreateOrConnectWithoutContactsInput
    connect?: PartnerWhereUniqueInput
  }

  export type PartnerUpdateOneRequiredWithoutContactsNestedInput = {
    create?: XOR<PartnerCreateWithoutContactsInput, PartnerUncheckedCreateWithoutContactsInput>
    connectOrCreate?: PartnerCreateOrConnectWithoutContactsInput
    upsert?: PartnerUpsertWithoutContactsInput
    connect?: PartnerWhereUniqueInput
    update?: XOR<XOR<PartnerUpdateToOneWithWhereWithoutContactsInput, PartnerUpdateWithoutContactsInput>, PartnerUncheckedUpdateWithoutContactsInput>
  }

  export type LocationCreateNestedOneWithoutChildrenInput = {
    create?: XOR<LocationCreateWithoutChildrenInput, LocationUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: LocationCreateOrConnectWithoutChildrenInput
    connect?: LocationWhereUniqueInput
  }

  export type LocationCreateNestedManyWithoutParentInput = {
    create?: XOR<LocationCreateWithoutParentInput, LocationUncheckedCreateWithoutParentInput> | LocationCreateWithoutParentInput[] | LocationUncheckedCreateWithoutParentInput[]
    connectOrCreate?: LocationCreateOrConnectWithoutParentInput | LocationCreateOrConnectWithoutParentInput[]
    createMany?: LocationCreateManyParentInputEnvelope
    connect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
  }

  export type CustomerCreateNestedOneWithoutLocationsInput = {
    create?: XOR<CustomerCreateWithoutLocationsInput, CustomerUncheckedCreateWithoutLocationsInput>
    connectOrCreate?: CustomerCreateOrConnectWithoutLocationsInput
    connect?: CustomerWhereUniqueInput
  }

  export type LocationUncheckedCreateNestedManyWithoutParentInput = {
    create?: XOR<LocationCreateWithoutParentInput, LocationUncheckedCreateWithoutParentInput> | LocationCreateWithoutParentInput[] | LocationUncheckedCreateWithoutParentInput[]
    connectOrCreate?: LocationCreateOrConnectWithoutParentInput | LocationCreateOrConnectWithoutParentInput[]
    createMany?: LocationCreateManyParentInputEnvelope
    connect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
  }

  export type EnumLocationTypeFieldUpdateOperationsInput = {
    set?: $Enums.LocationType
  }

  export type LocationUpdateOneWithoutChildrenNestedInput = {
    create?: XOR<LocationCreateWithoutChildrenInput, LocationUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: LocationCreateOrConnectWithoutChildrenInput
    upsert?: LocationUpsertWithoutChildrenInput
    disconnect?: LocationWhereInput | boolean
    delete?: LocationWhereInput | boolean
    connect?: LocationWhereUniqueInput
    update?: XOR<XOR<LocationUpdateToOneWithWhereWithoutChildrenInput, LocationUpdateWithoutChildrenInput>, LocationUncheckedUpdateWithoutChildrenInput>
  }

  export type LocationUpdateManyWithoutParentNestedInput = {
    create?: XOR<LocationCreateWithoutParentInput, LocationUncheckedCreateWithoutParentInput> | LocationCreateWithoutParentInput[] | LocationUncheckedCreateWithoutParentInput[]
    connectOrCreate?: LocationCreateOrConnectWithoutParentInput | LocationCreateOrConnectWithoutParentInput[]
    upsert?: LocationUpsertWithWhereUniqueWithoutParentInput | LocationUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: LocationCreateManyParentInputEnvelope
    set?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    disconnect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    delete?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    connect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    update?: LocationUpdateWithWhereUniqueWithoutParentInput | LocationUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: LocationUpdateManyWithWhereWithoutParentInput | LocationUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: LocationScalarWhereInput | LocationScalarWhereInput[]
  }

  export type CustomerUpdateOneWithoutLocationsNestedInput = {
    create?: XOR<CustomerCreateWithoutLocationsInput, CustomerUncheckedCreateWithoutLocationsInput>
    connectOrCreate?: CustomerCreateOrConnectWithoutLocationsInput
    upsert?: CustomerUpsertWithoutLocationsInput
    disconnect?: CustomerWhereInput | boolean
    delete?: CustomerWhereInput | boolean
    connect?: CustomerWhereUniqueInput
    update?: XOR<XOR<CustomerUpdateToOneWithWhereWithoutLocationsInput, CustomerUpdateWithoutLocationsInput>, CustomerUncheckedUpdateWithoutLocationsInput>
  }

  export type LocationUncheckedUpdateManyWithoutParentNestedInput = {
    create?: XOR<LocationCreateWithoutParentInput, LocationUncheckedCreateWithoutParentInput> | LocationCreateWithoutParentInput[] | LocationUncheckedCreateWithoutParentInput[]
    connectOrCreate?: LocationCreateOrConnectWithoutParentInput | LocationCreateOrConnectWithoutParentInput[]
    upsert?: LocationUpsertWithWhereUniqueWithoutParentInput | LocationUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: LocationCreateManyParentInputEnvelope
    set?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    disconnect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    delete?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    connect?: LocationWhereUniqueInput | LocationWhereUniqueInput[]
    update?: LocationUpdateWithWhereUniqueWithoutParentInput | LocationUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: LocationUpdateManyWithWhereWithoutParentInput | LocationUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: LocationScalarWhereInput | LocationScalarWhereInput[]
  }

  export type GeoRegionCreatecountriesInput = {
    set: string[]
  }

  export type GeoRegionUpdatecountriesInput = {
    set?: string[]
    push?: string | string[]
  }

  export type MeetingAttendanceCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingAttendanceCreateWithoutMeetingInput, MeetingAttendanceUncheckedCreateWithoutMeetingInput> | MeetingAttendanceCreateWithoutMeetingInput[] | MeetingAttendanceUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAttendanceCreateOrConnectWithoutMeetingInput | MeetingAttendanceCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingAttendanceCreateManyMeetingInputEnvelope
    connect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
  }

  export type MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingRequiredAttendeeCreateWithoutMeetingInput, MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput> | MeetingRequiredAttendeeCreateWithoutMeetingInput[] | MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput | MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingRequiredAttendeeCreateManyMeetingInputEnvelope
    connect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
  }

  export type MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingExternalAttendeeCreateWithoutMeetingInput, MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput> | MeetingExternalAttendeeCreateWithoutMeetingInput[] | MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput | MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingExternalAttendeeCreateManyMeetingInputEnvelope
    connect?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
  }

  export type MeetingSeriesCreateNestedOneWithoutMeetingsInput = {
    create?: XOR<MeetingSeriesCreateWithoutMeetingsInput, MeetingSeriesUncheckedCreateWithoutMeetingsInput>
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutMeetingsInput
    connect?: MeetingSeriesWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutMeetingsCreatedInput = {
    create?: XOR<UserCreateWithoutMeetingsCreatedInput, UserUncheckedCreateWithoutMeetingsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingsCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type OutlookMeetingBindingCreateNestedManyWithoutMeetingInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutMeetingInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingInput> | OutlookMeetingBindingCreateWithoutMeetingInput[] | OutlookMeetingBindingUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutMeetingInput | OutlookMeetingBindingCreateOrConnectWithoutMeetingInput[]
    createMany?: OutlookMeetingBindingCreateManyMeetingInputEnvelope
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
  }

  export type MeetingAgendaSectionCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutMeetingInput, MeetingAgendaSectionUncheckedCreateWithoutMeetingInput> | MeetingAgendaSectionCreateWithoutMeetingInput[] | MeetingAgendaSectionUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutMeetingInput | MeetingAgendaSectionCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingAgendaSectionCreateManyMeetingInputEnvelope
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
  }

  export type MeetingAttachmentCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingAttachmentCreateWithoutMeetingInput, MeetingAttachmentUncheckedCreateWithoutMeetingInput> | MeetingAttachmentCreateWithoutMeetingInput[] | MeetingAttachmentUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutMeetingInput | MeetingAttachmentCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingAttachmentCreateManyMeetingInputEnvelope
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
  }

  export type MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingAttendanceCreateWithoutMeetingInput, MeetingAttendanceUncheckedCreateWithoutMeetingInput> | MeetingAttendanceCreateWithoutMeetingInput[] | MeetingAttendanceUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAttendanceCreateOrConnectWithoutMeetingInput | MeetingAttendanceCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingAttendanceCreateManyMeetingInputEnvelope
    connect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
  }

  export type MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingRequiredAttendeeCreateWithoutMeetingInput, MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput> | MeetingRequiredAttendeeCreateWithoutMeetingInput[] | MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput | MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingRequiredAttendeeCreateManyMeetingInputEnvelope
    connect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
  }

  export type MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingExternalAttendeeCreateWithoutMeetingInput, MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput> | MeetingExternalAttendeeCreateWithoutMeetingInput[] | MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput | MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingExternalAttendeeCreateManyMeetingInputEnvelope
    connect?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
  }

  export type OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutMeetingInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingInput> | OutlookMeetingBindingCreateWithoutMeetingInput[] | OutlookMeetingBindingUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutMeetingInput | OutlookMeetingBindingCreateOrConnectWithoutMeetingInput[]
    createMany?: OutlookMeetingBindingCreateManyMeetingInputEnvelope
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
  }

  export type MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutMeetingInput, MeetingAgendaSectionUncheckedCreateWithoutMeetingInput> | MeetingAgendaSectionCreateWithoutMeetingInput[] | MeetingAgendaSectionUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutMeetingInput | MeetingAgendaSectionCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingAgendaSectionCreateManyMeetingInputEnvelope
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
  }

  export type MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput = {
    create?: XOR<MeetingAttachmentCreateWithoutMeetingInput, MeetingAttachmentUncheckedCreateWithoutMeetingInput> | MeetingAttachmentCreateWithoutMeetingInput[] | MeetingAttachmentUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutMeetingInput | MeetingAttachmentCreateOrConnectWithoutMeetingInput[]
    createMany?: MeetingAttachmentCreateManyMeetingInputEnvelope
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
  }

  export type EnumMeetingTypeFieldUpdateOperationsInput = {
    set?: $Enums.MeetingType
  }

  export type EnumMeetingStatusFieldUpdateOperationsInput = {
    set?: $Enums.MeetingStatus
  }

  export type MeetingAttendanceUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingAttendanceCreateWithoutMeetingInput, MeetingAttendanceUncheckedCreateWithoutMeetingInput> | MeetingAttendanceCreateWithoutMeetingInput[] | MeetingAttendanceUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAttendanceCreateOrConnectWithoutMeetingInput | MeetingAttendanceCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingAttendanceUpsertWithWhereUniqueWithoutMeetingInput | MeetingAttendanceUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingAttendanceCreateManyMeetingInputEnvelope
    set?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    disconnect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    delete?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    connect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    update?: MeetingAttendanceUpdateWithWhereUniqueWithoutMeetingInput | MeetingAttendanceUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingAttendanceUpdateManyWithWhereWithoutMeetingInput | MeetingAttendanceUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingAttendanceScalarWhereInput | MeetingAttendanceScalarWhereInput[]
  }

  export type MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingRequiredAttendeeCreateWithoutMeetingInput, MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput> | MeetingRequiredAttendeeCreateWithoutMeetingInput[] | MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput | MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutMeetingInput | MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingRequiredAttendeeCreateManyMeetingInputEnvelope
    set?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    disconnect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    delete?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    connect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    update?: MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutMeetingInput | MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingRequiredAttendeeUpdateManyWithWhereWithoutMeetingInput | MeetingRequiredAttendeeUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingRequiredAttendeeScalarWhereInput | MeetingRequiredAttendeeScalarWhereInput[]
  }

  export type MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingExternalAttendeeCreateWithoutMeetingInput, MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput> | MeetingExternalAttendeeCreateWithoutMeetingInput[] | MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput | MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingExternalAttendeeUpsertWithWhereUniqueWithoutMeetingInput | MeetingExternalAttendeeUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingExternalAttendeeCreateManyMeetingInputEnvelope
    set?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
    disconnect?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
    delete?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
    connect?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
    update?: MeetingExternalAttendeeUpdateWithWhereUniqueWithoutMeetingInput | MeetingExternalAttendeeUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingExternalAttendeeUpdateManyWithWhereWithoutMeetingInput | MeetingExternalAttendeeUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingExternalAttendeeScalarWhereInput | MeetingExternalAttendeeScalarWhereInput[]
  }

  export type MeetingSeriesUpdateOneWithoutMeetingsNestedInput = {
    create?: XOR<MeetingSeriesCreateWithoutMeetingsInput, MeetingSeriesUncheckedCreateWithoutMeetingsInput>
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutMeetingsInput
    upsert?: MeetingSeriesUpsertWithoutMeetingsInput
    disconnect?: MeetingSeriesWhereInput | boolean
    delete?: MeetingSeriesWhereInput | boolean
    connect?: MeetingSeriesWhereUniqueInput
    update?: XOR<XOR<MeetingSeriesUpdateToOneWithWhereWithoutMeetingsInput, MeetingSeriesUpdateWithoutMeetingsInput>, MeetingSeriesUncheckedUpdateWithoutMeetingsInput>
  }

  export type UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput = {
    create?: XOR<UserCreateWithoutMeetingsCreatedInput, UserUncheckedCreateWithoutMeetingsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingsCreatedInput
    upsert?: UserUpsertWithoutMeetingsCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingsCreatedInput, UserUpdateWithoutMeetingsCreatedInput>, UserUncheckedUpdateWithoutMeetingsCreatedInput>
  }

  export type OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutMeetingInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingInput> | OutlookMeetingBindingCreateWithoutMeetingInput[] | OutlookMeetingBindingUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutMeetingInput | OutlookMeetingBindingCreateOrConnectWithoutMeetingInput[]
    upsert?: OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingInput | OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: OutlookMeetingBindingCreateManyMeetingInputEnvelope
    set?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    disconnect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    delete?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    update?: OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingInput | OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingInput | OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: OutlookMeetingBindingScalarWhereInput | OutlookMeetingBindingScalarWhereInput[]
  }

  export type MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutMeetingInput, MeetingAgendaSectionUncheckedCreateWithoutMeetingInput> | MeetingAgendaSectionCreateWithoutMeetingInput[] | MeetingAgendaSectionUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutMeetingInput | MeetingAgendaSectionCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingAgendaSectionUpsertWithWhereUniqueWithoutMeetingInput | MeetingAgendaSectionUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingAgendaSectionCreateManyMeetingInputEnvelope
    set?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    disconnect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    delete?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    update?: MeetingAgendaSectionUpdateWithWhereUniqueWithoutMeetingInput | MeetingAgendaSectionUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingAgendaSectionUpdateManyWithWhereWithoutMeetingInput | MeetingAgendaSectionUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingAgendaSectionScalarWhereInput | MeetingAgendaSectionScalarWhereInput[]
  }

  export type MeetingAttachmentUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingAttachmentCreateWithoutMeetingInput, MeetingAttachmentUncheckedCreateWithoutMeetingInput> | MeetingAttachmentCreateWithoutMeetingInput[] | MeetingAttachmentUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutMeetingInput | MeetingAttachmentCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingAttachmentUpsertWithWhereUniqueWithoutMeetingInput | MeetingAttachmentUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingAttachmentCreateManyMeetingInputEnvelope
    set?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    disconnect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    delete?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    update?: MeetingAttachmentUpdateWithWhereUniqueWithoutMeetingInput | MeetingAttachmentUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingAttachmentUpdateManyWithWhereWithoutMeetingInput | MeetingAttachmentUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
  }

  export type MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingAttendanceCreateWithoutMeetingInput, MeetingAttendanceUncheckedCreateWithoutMeetingInput> | MeetingAttendanceCreateWithoutMeetingInput[] | MeetingAttendanceUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAttendanceCreateOrConnectWithoutMeetingInput | MeetingAttendanceCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingAttendanceUpsertWithWhereUniqueWithoutMeetingInput | MeetingAttendanceUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingAttendanceCreateManyMeetingInputEnvelope
    set?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    disconnect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    delete?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    connect?: MeetingAttendanceWhereUniqueInput | MeetingAttendanceWhereUniqueInput[]
    update?: MeetingAttendanceUpdateWithWhereUniqueWithoutMeetingInput | MeetingAttendanceUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingAttendanceUpdateManyWithWhereWithoutMeetingInput | MeetingAttendanceUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingAttendanceScalarWhereInput | MeetingAttendanceScalarWhereInput[]
  }

  export type MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingRequiredAttendeeCreateWithoutMeetingInput, MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput> | MeetingRequiredAttendeeCreateWithoutMeetingInput[] | MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput | MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutMeetingInput | MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingRequiredAttendeeCreateManyMeetingInputEnvelope
    set?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    disconnect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    delete?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    connect?: MeetingRequiredAttendeeWhereUniqueInput | MeetingRequiredAttendeeWhereUniqueInput[]
    update?: MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutMeetingInput | MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingRequiredAttendeeUpdateManyWithWhereWithoutMeetingInput | MeetingRequiredAttendeeUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingRequiredAttendeeScalarWhereInput | MeetingRequiredAttendeeScalarWhereInput[]
  }

  export type MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingExternalAttendeeCreateWithoutMeetingInput, MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput> | MeetingExternalAttendeeCreateWithoutMeetingInput[] | MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput | MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingExternalAttendeeUpsertWithWhereUniqueWithoutMeetingInput | MeetingExternalAttendeeUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingExternalAttendeeCreateManyMeetingInputEnvelope
    set?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
    disconnect?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
    delete?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
    connect?: MeetingExternalAttendeeWhereUniqueInput | MeetingExternalAttendeeWhereUniqueInput[]
    update?: MeetingExternalAttendeeUpdateWithWhereUniqueWithoutMeetingInput | MeetingExternalAttendeeUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingExternalAttendeeUpdateManyWithWhereWithoutMeetingInput | MeetingExternalAttendeeUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingExternalAttendeeScalarWhereInput | MeetingExternalAttendeeScalarWhereInput[]
  }

  export type OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutMeetingInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingInput> | OutlookMeetingBindingCreateWithoutMeetingInput[] | OutlookMeetingBindingUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutMeetingInput | OutlookMeetingBindingCreateOrConnectWithoutMeetingInput[]
    upsert?: OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingInput | OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: OutlookMeetingBindingCreateManyMeetingInputEnvelope
    set?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    disconnect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    delete?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    update?: OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingInput | OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingInput | OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: OutlookMeetingBindingScalarWhereInput | OutlookMeetingBindingScalarWhereInput[]
  }

  export type MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutMeetingInput, MeetingAgendaSectionUncheckedCreateWithoutMeetingInput> | MeetingAgendaSectionCreateWithoutMeetingInput[] | MeetingAgendaSectionUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutMeetingInput | MeetingAgendaSectionCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingAgendaSectionUpsertWithWhereUniqueWithoutMeetingInput | MeetingAgendaSectionUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingAgendaSectionCreateManyMeetingInputEnvelope
    set?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    disconnect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    delete?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    connect?: MeetingAgendaSectionWhereUniqueInput | MeetingAgendaSectionWhereUniqueInput[]
    update?: MeetingAgendaSectionUpdateWithWhereUniqueWithoutMeetingInput | MeetingAgendaSectionUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingAgendaSectionUpdateManyWithWhereWithoutMeetingInput | MeetingAgendaSectionUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingAgendaSectionScalarWhereInput | MeetingAgendaSectionScalarWhereInput[]
  }

  export type MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput = {
    create?: XOR<MeetingAttachmentCreateWithoutMeetingInput, MeetingAttachmentUncheckedCreateWithoutMeetingInput> | MeetingAttachmentCreateWithoutMeetingInput[] | MeetingAttachmentUncheckedCreateWithoutMeetingInput[]
    connectOrCreate?: MeetingAttachmentCreateOrConnectWithoutMeetingInput | MeetingAttachmentCreateOrConnectWithoutMeetingInput[]
    upsert?: MeetingAttachmentUpsertWithWhereUniqueWithoutMeetingInput | MeetingAttachmentUpsertWithWhereUniqueWithoutMeetingInput[]
    createMany?: MeetingAttachmentCreateManyMeetingInputEnvelope
    set?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    disconnect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    delete?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    connect?: MeetingAttachmentWhereUniqueInput | MeetingAttachmentWhereUniqueInput[]
    update?: MeetingAttachmentUpdateWithWhereUniqueWithoutMeetingInput | MeetingAttachmentUpdateWithWhereUniqueWithoutMeetingInput[]
    updateMany?: MeetingAttachmentUpdateManyWithWhereWithoutMeetingInput | MeetingAttachmentUpdateManyWithWhereWithoutMeetingInput[]
    deleteMany?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutMeetingSeriesCreatedInput = {
    create?: XOR<UserCreateWithoutMeetingSeriesCreatedInput, UserUncheckedCreateWithoutMeetingSeriesCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingSeriesCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type MeetingCreateNestedManyWithoutSeriesInput = {
    create?: XOR<MeetingCreateWithoutSeriesInput, MeetingUncheckedCreateWithoutSeriesInput> | MeetingCreateWithoutSeriesInput[] | MeetingUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingCreateOrConnectWithoutSeriesInput | MeetingCreateOrConnectWithoutSeriesInput[]
    createMany?: MeetingCreateManySeriesInputEnvelope
    connect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
  }

  export type OutlookMeetingBindingCreateNestedManyWithoutMeetingSeriesInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutMeetingSeriesInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput> | OutlookMeetingBindingCreateWithoutMeetingSeriesInput[] | OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput | OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput[]
    createMany?: OutlookMeetingBindingCreateManyMeetingSeriesInputEnvelope
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
  }

  export type MeetingSeriesAttendeePreferenceCreateNestedManyWithoutSeriesInput = {
    create?: XOR<MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput> | MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput[] | MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput | MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput[]
    createMany?: MeetingSeriesAttendeePreferenceCreateManySeriesInputEnvelope
    connect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
  }

  export type MeetingSeriesAttendeeExceptionCreateNestedManyWithoutSeriesInput = {
    create?: XOR<MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput> | MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput[] | MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput | MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput[]
    createMany?: MeetingSeriesAttendeeExceptionCreateManySeriesInputEnvelope
    connect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
  }

  export type MeetingUncheckedCreateNestedManyWithoutSeriesInput = {
    create?: XOR<MeetingCreateWithoutSeriesInput, MeetingUncheckedCreateWithoutSeriesInput> | MeetingCreateWithoutSeriesInput[] | MeetingUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingCreateOrConnectWithoutSeriesInput | MeetingCreateOrConnectWithoutSeriesInput[]
    createMany?: MeetingCreateManySeriesInputEnvelope
    connect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
  }

  export type OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingSeriesInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutMeetingSeriesInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput> | OutlookMeetingBindingCreateWithoutMeetingSeriesInput[] | OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput | OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput[]
    createMany?: OutlookMeetingBindingCreateManyMeetingSeriesInputEnvelope
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
  }

  export type MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutSeriesInput = {
    create?: XOR<MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput> | MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput[] | MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput | MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput[]
    createMany?: MeetingSeriesAttendeePreferenceCreateManySeriesInputEnvelope
    connect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
  }

  export type MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutSeriesInput = {
    create?: XOR<MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput> | MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput[] | MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput | MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput[]
    createMany?: MeetingSeriesAttendeeExceptionCreateManySeriesInputEnvelope
    connect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
  }

  export type EnumRecurrencePatternFieldUpdateOperationsInput = {
    set?: $Enums.RecurrencePattern
  }

  export type UserUpdateOneRequiredWithoutMeetingSeriesCreatedNestedInput = {
    create?: XOR<UserCreateWithoutMeetingSeriesCreatedInput, UserUncheckedCreateWithoutMeetingSeriesCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingSeriesCreatedInput
    upsert?: UserUpsertWithoutMeetingSeriesCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingSeriesCreatedInput, UserUpdateWithoutMeetingSeriesCreatedInput>, UserUncheckedUpdateWithoutMeetingSeriesCreatedInput>
  }

  export type MeetingUpdateManyWithoutSeriesNestedInput = {
    create?: XOR<MeetingCreateWithoutSeriesInput, MeetingUncheckedCreateWithoutSeriesInput> | MeetingCreateWithoutSeriesInput[] | MeetingUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingCreateOrConnectWithoutSeriesInput | MeetingCreateOrConnectWithoutSeriesInput[]
    upsert?: MeetingUpsertWithWhereUniqueWithoutSeriesInput | MeetingUpsertWithWhereUniqueWithoutSeriesInput[]
    createMany?: MeetingCreateManySeriesInputEnvelope
    set?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    disconnect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    delete?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    connect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    update?: MeetingUpdateWithWhereUniqueWithoutSeriesInput | MeetingUpdateWithWhereUniqueWithoutSeriesInput[]
    updateMany?: MeetingUpdateManyWithWhereWithoutSeriesInput | MeetingUpdateManyWithWhereWithoutSeriesInput[]
    deleteMany?: MeetingScalarWhereInput | MeetingScalarWhereInput[]
  }

  export type OutlookMeetingBindingUpdateManyWithoutMeetingSeriesNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutMeetingSeriesInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput> | OutlookMeetingBindingCreateWithoutMeetingSeriesInput[] | OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput | OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput[]
    upsert?: OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingSeriesInput | OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingSeriesInput[]
    createMany?: OutlookMeetingBindingCreateManyMeetingSeriesInputEnvelope
    set?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    disconnect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    delete?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    update?: OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingSeriesInput | OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingSeriesInput[]
    updateMany?: OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingSeriesInput | OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingSeriesInput[]
    deleteMany?: OutlookMeetingBindingScalarWhereInput | OutlookMeetingBindingScalarWhereInput[]
  }

  export type MeetingSeriesAttendeePreferenceUpdateManyWithoutSeriesNestedInput = {
    create?: XOR<MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput> | MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput[] | MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput | MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput[]
    upsert?: MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutSeriesInput | MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutSeriesInput[]
    createMany?: MeetingSeriesAttendeePreferenceCreateManySeriesInputEnvelope
    set?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    disconnect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    delete?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    connect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    update?: MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutSeriesInput | MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutSeriesInput[]
    updateMany?: MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutSeriesInput | MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutSeriesInput[]
    deleteMany?: MeetingSeriesAttendeePreferenceScalarWhereInput | MeetingSeriesAttendeePreferenceScalarWhereInput[]
  }

  export type MeetingSeriesAttendeeExceptionUpdateManyWithoutSeriesNestedInput = {
    create?: XOR<MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput> | MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput[] | MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput | MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput[]
    upsert?: MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutSeriesInput | MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutSeriesInput[]
    createMany?: MeetingSeriesAttendeeExceptionCreateManySeriesInputEnvelope
    set?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    disconnect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    delete?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    connect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    update?: MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutSeriesInput | MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutSeriesInput[]
    updateMany?: MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutSeriesInput | MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutSeriesInput[]
    deleteMany?: MeetingSeriesAttendeeExceptionScalarWhereInput | MeetingSeriesAttendeeExceptionScalarWhereInput[]
  }

  export type MeetingUncheckedUpdateManyWithoutSeriesNestedInput = {
    create?: XOR<MeetingCreateWithoutSeriesInput, MeetingUncheckedCreateWithoutSeriesInput> | MeetingCreateWithoutSeriesInput[] | MeetingUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingCreateOrConnectWithoutSeriesInput | MeetingCreateOrConnectWithoutSeriesInput[]
    upsert?: MeetingUpsertWithWhereUniqueWithoutSeriesInput | MeetingUpsertWithWhereUniqueWithoutSeriesInput[]
    createMany?: MeetingCreateManySeriesInputEnvelope
    set?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    disconnect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    delete?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    connect?: MeetingWhereUniqueInput | MeetingWhereUniqueInput[]
    update?: MeetingUpdateWithWhereUniqueWithoutSeriesInput | MeetingUpdateWithWhereUniqueWithoutSeriesInput[]
    updateMany?: MeetingUpdateManyWithWhereWithoutSeriesInput | MeetingUpdateManyWithWhereWithoutSeriesInput[]
    deleteMany?: MeetingScalarWhereInput | MeetingScalarWhereInput[]
  }

  export type OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingSeriesNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutMeetingSeriesInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput> | OutlookMeetingBindingCreateWithoutMeetingSeriesInput[] | OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput | OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput[]
    upsert?: OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingSeriesInput | OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingSeriesInput[]
    createMany?: OutlookMeetingBindingCreateManyMeetingSeriesInputEnvelope
    set?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    disconnect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    delete?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    update?: OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingSeriesInput | OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingSeriesInput[]
    updateMany?: OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingSeriesInput | OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingSeriesInput[]
    deleteMany?: OutlookMeetingBindingScalarWhereInput | OutlookMeetingBindingScalarWhereInput[]
  }

  export type MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutSeriesNestedInput = {
    create?: XOR<MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput> | MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput[] | MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput | MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput[]
    upsert?: MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutSeriesInput | MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutSeriesInput[]
    createMany?: MeetingSeriesAttendeePreferenceCreateManySeriesInputEnvelope
    set?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    disconnect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    delete?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    connect?: MeetingSeriesAttendeePreferenceWhereUniqueInput | MeetingSeriesAttendeePreferenceWhereUniqueInput[]
    update?: MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutSeriesInput | MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutSeriesInput[]
    updateMany?: MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutSeriesInput | MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutSeriesInput[]
    deleteMany?: MeetingSeriesAttendeePreferenceScalarWhereInput | MeetingSeriesAttendeePreferenceScalarWhereInput[]
  }

  export type MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutSeriesNestedInput = {
    create?: XOR<MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput> | MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput[] | MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput[]
    connectOrCreate?: MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput | MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput[]
    upsert?: MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutSeriesInput | MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutSeriesInput[]
    createMany?: MeetingSeriesAttendeeExceptionCreateManySeriesInputEnvelope
    set?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    disconnect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    delete?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    connect?: MeetingSeriesAttendeeExceptionWhereUniqueInput | MeetingSeriesAttendeeExceptionWhereUniqueInput[]
    update?: MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutSeriesInput | MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutSeriesInput[]
    updateMany?: MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutSeriesInput | MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutSeriesInput[]
    deleteMany?: MeetingSeriesAttendeeExceptionScalarWhereInput | MeetingSeriesAttendeeExceptionScalarWhereInput[]
  }

  export type MeetingCreateNestedOneWithoutAttendancesInput = {
    create?: XOR<MeetingCreateWithoutAttendancesInput, MeetingUncheckedCreateWithoutAttendancesInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutAttendancesInput
    connect?: MeetingWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutMeetingAttendancesInput = {
    create?: XOR<UserCreateWithoutMeetingAttendancesInput, UserUncheckedCreateWithoutMeetingAttendancesInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttendancesInput
    connect?: UserWhereUniqueInput
  }

  export type EnumAttendanceStatusFieldUpdateOperationsInput = {
    set?: $Enums.AttendanceStatus
  }

  export type NullableEnumCheckinTypeFieldUpdateOperationsInput = {
    set?: $Enums.CheckinType | null
  }

  export type MeetingUpdateOneRequiredWithoutAttendancesNestedInput = {
    create?: XOR<MeetingCreateWithoutAttendancesInput, MeetingUncheckedCreateWithoutAttendancesInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutAttendancesInput
    upsert?: MeetingUpsertWithoutAttendancesInput
    connect?: MeetingWhereUniqueInput
    update?: XOR<XOR<MeetingUpdateToOneWithWhereWithoutAttendancesInput, MeetingUpdateWithoutAttendancesInput>, MeetingUncheckedUpdateWithoutAttendancesInput>
  }

  export type UserUpdateOneRequiredWithoutMeetingAttendancesNestedInput = {
    create?: XOR<UserCreateWithoutMeetingAttendancesInput, UserUncheckedCreateWithoutMeetingAttendancesInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttendancesInput
    upsert?: UserUpsertWithoutMeetingAttendancesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingAttendancesInput, UserUpdateWithoutMeetingAttendancesInput>, UserUncheckedUpdateWithoutMeetingAttendancesInput>
  }

  export type UserCreateNestedOneWithoutMeetingRequiredAttendeesInput = {
    create?: XOR<UserCreateWithoutMeetingRequiredAttendeesInput, UserUncheckedCreateWithoutMeetingRequiredAttendeesInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingRequiredAttendeesInput
    connect?: UserWhereUniqueInput
  }

  export type MeetingCreateNestedOneWithoutRequiredAttendeesInput = {
    create?: XOR<MeetingCreateWithoutRequiredAttendeesInput, MeetingUncheckedCreateWithoutRequiredAttendeesInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutRequiredAttendeesInput
    connect?: MeetingWhereUniqueInput
  }

  export type EnumAttendeeRoleFieldUpdateOperationsInput = {
    set?: $Enums.AttendeeRole
  }

  export type NullableEnumAttendanceModeFieldUpdateOperationsInput = {
    set?: $Enums.AttendanceMode | null
  }

  export type UserUpdateOneRequiredWithoutMeetingRequiredAttendeesNestedInput = {
    create?: XOR<UserCreateWithoutMeetingRequiredAttendeesInput, UserUncheckedCreateWithoutMeetingRequiredAttendeesInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingRequiredAttendeesInput
    upsert?: UserUpsertWithoutMeetingRequiredAttendeesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingRequiredAttendeesInput, UserUpdateWithoutMeetingRequiredAttendeesInput>, UserUncheckedUpdateWithoutMeetingRequiredAttendeesInput>
  }

  export type MeetingUpdateOneRequiredWithoutRequiredAttendeesNestedInput = {
    create?: XOR<MeetingCreateWithoutRequiredAttendeesInput, MeetingUncheckedCreateWithoutRequiredAttendeesInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutRequiredAttendeesInput
    upsert?: MeetingUpsertWithoutRequiredAttendeesInput
    connect?: MeetingWhereUniqueInput
    update?: XOR<XOR<MeetingUpdateToOneWithWhereWithoutRequiredAttendeesInput, MeetingUpdateWithoutRequiredAttendeesInput>, MeetingUncheckedUpdateWithoutRequiredAttendeesInput>
  }

  export type MeetingSeriesCreateNestedOneWithoutAttendeePreferencesInput = {
    create?: XOR<MeetingSeriesCreateWithoutAttendeePreferencesInput, MeetingSeriesUncheckedCreateWithoutAttendeePreferencesInput>
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutAttendeePreferencesInput
    connect?: MeetingSeriesWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutMeetingSeriesAttendeePreferencesInput = {
    create?: XOR<UserCreateWithoutMeetingSeriesAttendeePreferencesInput, UserUncheckedCreateWithoutMeetingSeriesAttendeePreferencesInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingSeriesAttendeePreferencesInput
    connect?: UserWhereUniqueInput
  }

  export type EnumAttendanceModeFieldUpdateOperationsInput = {
    set?: $Enums.AttendanceMode
  }

  export type MeetingSeriesUpdateOneRequiredWithoutAttendeePreferencesNestedInput = {
    create?: XOR<MeetingSeriesCreateWithoutAttendeePreferencesInput, MeetingSeriesUncheckedCreateWithoutAttendeePreferencesInput>
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutAttendeePreferencesInput
    upsert?: MeetingSeriesUpsertWithoutAttendeePreferencesInput
    connect?: MeetingSeriesWhereUniqueInput
    update?: XOR<XOR<MeetingSeriesUpdateToOneWithWhereWithoutAttendeePreferencesInput, MeetingSeriesUpdateWithoutAttendeePreferencesInput>, MeetingSeriesUncheckedUpdateWithoutAttendeePreferencesInput>
  }

  export type UserUpdateOneRequiredWithoutMeetingSeriesAttendeePreferencesNestedInput = {
    create?: XOR<UserCreateWithoutMeetingSeriesAttendeePreferencesInput, UserUncheckedCreateWithoutMeetingSeriesAttendeePreferencesInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingSeriesAttendeePreferencesInput
    upsert?: UserUpsertWithoutMeetingSeriesAttendeePreferencesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingSeriesAttendeePreferencesInput, UserUpdateWithoutMeetingSeriesAttendeePreferencesInput>, UserUncheckedUpdateWithoutMeetingSeriesAttendeePreferencesInput>
  }

  export type MeetingSeriesCreateNestedOneWithoutAttendeeExceptionsInput = {
    create?: XOR<MeetingSeriesCreateWithoutAttendeeExceptionsInput, MeetingSeriesUncheckedCreateWithoutAttendeeExceptionsInput>
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutAttendeeExceptionsInput
    connect?: MeetingSeriesWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutMeetingSeriesAttendeeExceptionsInput = {
    create?: XOR<UserCreateWithoutMeetingSeriesAttendeeExceptionsInput, UserUncheckedCreateWithoutMeetingSeriesAttendeeExceptionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingSeriesAttendeeExceptionsInput
    connect?: UserWhereUniqueInput
  }

  export type MeetingSeriesUpdateOneRequiredWithoutAttendeeExceptionsNestedInput = {
    create?: XOR<MeetingSeriesCreateWithoutAttendeeExceptionsInput, MeetingSeriesUncheckedCreateWithoutAttendeeExceptionsInput>
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutAttendeeExceptionsInput
    upsert?: MeetingSeriesUpsertWithoutAttendeeExceptionsInput
    connect?: MeetingSeriesWhereUniqueInput
    update?: XOR<XOR<MeetingSeriesUpdateToOneWithWhereWithoutAttendeeExceptionsInput, MeetingSeriesUpdateWithoutAttendeeExceptionsInput>, MeetingSeriesUncheckedUpdateWithoutAttendeeExceptionsInput>
  }

  export type UserUpdateOneRequiredWithoutMeetingSeriesAttendeeExceptionsNestedInput = {
    create?: XOR<UserCreateWithoutMeetingSeriesAttendeeExceptionsInput, UserUncheckedCreateWithoutMeetingSeriesAttendeeExceptionsInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingSeriesAttendeeExceptionsInput
    upsert?: UserUpsertWithoutMeetingSeriesAttendeeExceptionsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingSeriesAttendeeExceptionsInput, UserUpdateWithoutMeetingSeriesAttendeeExceptionsInput>, UserUncheckedUpdateWithoutMeetingSeriesAttendeeExceptionsInput>
  }

  export type MeetingCreateNestedOneWithoutExternalAttendeesInput = {
    create?: XOR<MeetingCreateWithoutExternalAttendeesInput, MeetingUncheckedCreateWithoutExternalAttendeesInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutExternalAttendeesInput
    connect?: MeetingWhereUniqueInput
  }

  export type MeetingUpdateOneRequiredWithoutExternalAttendeesNestedInput = {
    create?: XOR<MeetingCreateWithoutExternalAttendeesInput, MeetingUncheckedCreateWithoutExternalAttendeesInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutExternalAttendeesInput
    upsert?: MeetingUpsertWithoutExternalAttendeesInput
    connect?: MeetingWhereUniqueInput
    update?: XOR<XOR<MeetingUpdateToOneWithWhereWithoutExternalAttendeesInput, MeetingUpdateWithoutExternalAttendeesInput>, MeetingUncheckedUpdateWithoutExternalAttendeesInput>
  }

  export type MeetingTemplateAttendeeCreateNestedManyWithoutTemplateInput = {
    create?: XOR<MeetingTemplateAttendeeCreateWithoutTemplateInput, MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput> | MeetingTemplateAttendeeCreateWithoutTemplateInput[] | MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput | MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput[]
    createMany?: MeetingTemplateAttendeeCreateManyTemplateInputEnvelope
    connect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
  }

  export type UserCreateNestedOneWithoutMeetingTemplatesCreatedInput = {
    create?: XOR<UserCreateWithoutMeetingTemplatesCreatedInput, UserUncheckedCreateWithoutMeetingTemplatesCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingTemplatesCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutTemplateInput = {
    create?: XOR<MeetingTemplateAttendeeCreateWithoutTemplateInput, MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput> | MeetingTemplateAttendeeCreateWithoutTemplateInput[] | MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput | MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput[]
    createMany?: MeetingTemplateAttendeeCreateManyTemplateInputEnvelope
    connect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
  }

  export type MeetingTemplateAttendeeUpdateManyWithoutTemplateNestedInput = {
    create?: XOR<MeetingTemplateAttendeeCreateWithoutTemplateInput, MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput> | MeetingTemplateAttendeeCreateWithoutTemplateInput[] | MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput | MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput[]
    upsert?: MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutTemplateInput | MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutTemplateInput[]
    createMany?: MeetingTemplateAttendeeCreateManyTemplateInputEnvelope
    set?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    disconnect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    delete?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    connect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    update?: MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutTemplateInput | MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutTemplateInput[]
    updateMany?: MeetingTemplateAttendeeUpdateManyWithWhereWithoutTemplateInput | MeetingTemplateAttendeeUpdateManyWithWhereWithoutTemplateInput[]
    deleteMany?: MeetingTemplateAttendeeScalarWhereInput | MeetingTemplateAttendeeScalarWhereInput[]
  }

  export type UserUpdateOneRequiredWithoutMeetingTemplatesCreatedNestedInput = {
    create?: XOR<UserCreateWithoutMeetingTemplatesCreatedInput, UserUncheckedCreateWithoutMeetingTemplatesCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingTemplatesCreatedInput
    upsert?: UserUpsertWithoutMeetingTemplatesCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingTemplatesCreatedInput, UserUpdateWithoutMeetingTemplatesCreatedInput>, UserUncheckedUpdateWithoutMeetingTemplatesCreatedInput>
  }

  export type MeetingTemplateAttendeeUncheckedUpdateManyWithoutTemplateNestedInput = {
    create?: XOR<MeetingTemplateAttendeeCreateWithoutTemplateInput, MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput> | MeetingTemplateAttendeeCreateWithoutTemplateInput[] | MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput | MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput[]
    upsert?: MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutTemplateInput | MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutTemplateInput[]
    createMany?: MeetingTemplateAttendeeCreateManyTemplateInputEnvelope
    set?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    disconnect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    delete?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    connect?: MeetingTemplateAttendeeWhereUniqueInput | MeetingTemplateAttendeeWhereUniqueInput[]
    update?: MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutTemplateInput | MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutTemplateInput[]
    updateMany?: MeetingTemplateAttendeeUpdateManyWithWhereWithoutTemplateInput | MeetingTemplateAttendeeUpdateManyWithWhereWithoutTemplateInput[]
    deleteMany?: MeetingTemplateAttendeeScalarWhereInput | MeetingTemplateAttendeeScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutMeetingTemplateAttendeesInput = {
    create?: XOR<UserCreateWithoutMeetingTemplateAttendeesInput, UserUncheckedCreateWithoutMeetingTemplateAttendeesInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingTemplateAttendeesInput
    connect?: UserWhereUniqueInput
  }

  export type MeetingTemplateCreateNestedOneWithoutTemplateAttendeesInput = {
    create?: XOR<MeetingTemplateCreateWithoutTemplateAttendeesInput, MeetingTemplateUncheckedCreateWithoutTemplateAttendeesInput>
    connectOrCreate?: MeetingTemplateCreateOrConnectWithoutTemplateAttendeesInput
    connect?: MeetingTemplateWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutMeetingTemplateAttendeesNestedInput = {
    create?: XOR<UserCreateWithoutMeetingTemplateAttendeesInput, UserUncheckedCreateWithoutMeetingTemplateAttendeesInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingTemplateAttendeesInput
    upsert?: UserUpsertWithoutMeetingTemplateAttendeesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingTemplateAttendeesInput, UserUpdateWithoutMeetingTemplateAttendeesInput>, UserUncheckedUpdateWithoutMeetingTemplateAttendeesInput>
  }

  export type MeetingTemplateUpdateOneRequiredWithoutTemplateAttendeesNestedInput = {
    create?: XOR<MeetingTemplateCreateWithoutTemplateAttendeesInput, MeetingTemplateUncheckedCreateWithoutTemplateAttendeesInput>
    connectOrCreate?: MeetingTemplateCreateOrConnectWithoutTemplateAttendeesInput
    upsert?: MeetingTemplateUpsertWithoutTemplateAttendeesInput
    connect?: MeetingTemplateWhereUniqueInput
    update?: XOR<XOR<MeetingTemplateUpdateToOneWithWhereWithoutTemplateAttendeesInput, MeetingTemplateUpdateWithoutTemplateAttendeesInput>, MeetingTemplateUncheckedUpdateWithoutTemplateAttendeesInput>
  }

  export type UserCreateNestedOneWithoutMeetingAttendanceLeaveLogsInput = {
    create?: XOR<UserCreateWithoutMeetingAttendanceLeaveLogsInput, UserUncheckedCreateWithoutMeetingAttendanceLeaveLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttendanceLeaveLogsInput
    connect?: UserWhereUniqueInput
  }

  export type EnumLeaveTypeFieldUpdateOperationsInput = {
    set?: $Enums.LeaveType
  }

  export type EnumLeaveStatusFieldUpdateOperationsInput = {
    set?: $Enums.LeaveStatus
  }

  export type UserUpdateOneRequiredWithoutMeetingAttendanceLeaveLogsNestedInput = {
    create?: XOR<UserCreateWithoutMeetingAttendanceLeaveLogsInput, UserUncheckedCreateWithoutMeetingAttendanceLeaveLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttendanceLeaveLogsInput
    upsert?: UserUpsertWithoutMeetingAttendanceLeaveLogsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingAttendanceLeaveLogsInput, UserUpdateWithoutMeetingAttendanceLeaveLogsInput>, UserUncheckedUpdateWithoutMeetingAttendanceLeaveLogsInput>
  }

  export type UserCreateNestedOneWithoutMeetingAttendanceAuditLogsInput = {
    create?: XOR<UserCreateWithoutMeetingAttendanceAuditLogsInput, UserUncheckedCreateWithoutMeetingAttendanceAuditLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttendanceAuditLogsInput
    connect?: UserWhereUniqueInput
  }

  export type UserUpdateOneRequiredWithoutMeetingAttendanceAuditLogsNestedInput = {
    create?: XOR<UserCreateWithoutMeetingAttendanceAuditLogsInput, UserUncheckedCreateWithoutMeetingAttendanceAuditLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttendanceAuditLogsInput
    upsert?: UserUpsertWithoutMeetingAttendanceAuditLogsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingAttendanceAuditLogsInput, UserUpdateWithoutMeetingAttendanceAuditLogsInput>, UserUncheckedUpdateWithoutMeetingAttendanceAuditLogsInput>
  }

  export type MeetingAttendanceAuditAlertCreateNestedManyWithoutRuleInput = {
    create?: XOR<MeetingAttendanceAuditAlertCreateWithoutRuleInput, MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput> | MeetingAttendanceAuditAlertCreateWithoutRuleInput[] | MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput[]
    connectOrCreate?: MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput | MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput[]
    createMany?: MeetingAttendanceAuditAlertCreateManyRuleInputEnvelope
    connect?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
  }

  export type MeetingAttendanceAuditAlertUncheckedCreateNestedManyWithoutRuleInput = {
    create?: XOR<MeetingAttendanceAuditAlertCreateWithoutRuleInput, MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput> | MeetingAttendanceAuditAlertCreateWithoutRuleInput[] | MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput[]
    connectOrCreate?: MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput | MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput[]
    createMany?: MeetingAttendanceAuditAlertCreateManyRuleInputEnvelope
    connect?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
  }

  export type MeetingAttendanceAuditAlertUpdateManyWithoutRuleNestedInput = {
    create?: XOR<MeetingAttendanceAuditAlertCreateWithoutRuleInput, MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput> | MeetingAttendanceAuditAlertCreateWithoutRuleInput[] | MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput[]
    connectOrCreate?: MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput | MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput[]
    upsert?: MeetingAttendanceAuditAlertUpsertWithWhereUniqueWithoutRuleInput | MeetingAttendanceAuditAlertUpsertWithWhereUniqueWithoutRuleInput[]
    createMany?: MeetingAttendanceAuditAlertCreateManyRuleInputEnvelope
    set?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
    disconnect?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
    delete?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
    connect?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
    update?: MeetingAttendanceAuditAlertUpdateWithWhereUniqueWithoutRuleInput | MeetingAttendanceAuditAlertUpdateWithWhereUniqueWithoutRuleInput[]
    updateMany?: MeetingAttendanceAuditAlertUpdateManyWithWhereWithoutRuleInput | MeetingAttendanceAuditAlertUpdateManyWithWhereWithoutRuleInput[]
    deleteMany?: MeetingAttendanceAuditAlertScalarWhereInput | MeetingAttendanceAuditAlertScalarWhereInput[]
  }

  export type MeetingAttendanceAuditAlertUncheckedUpdateManyWithoutRuleNestedInput = {
    create?: XOR<MeetingAttendanceAuditAlertCreateWithoutRuleInput, MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput> | MeetingAttendanceAuditAlertCreateWithoutRuleInput[] | MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput[]
    connectOrCreate?: MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput | MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput[]
    upsert?: MeetingAttendanceAuditAlertUpsertWithWhereUniqueWithoutRuleInput | MeetingAttendanceAuditAlertUpsertWithWhereUniqueWithoutRuleInput[]
    createMany?: MeetingAttendanceAuditAlertCreateManyRuleInputEnvelope
    set?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
    disconnect?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
    delete?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
    connect?: MeetingAttendanceAuditAlertWhereUniqueInput | MeetingAttendanceAuditAlertWhereUniqueInput[]
    update?: MeetingAttendanceAuditAlertUpdateWithWhereUniqueWithoutRuleInput | MeetingAttendanceAuditAlertUpdateWithWhereUniqueWithoutRuleInput[]
    updateMany?: MeetingAttendanceAuditAlertUpdateManyWithWhereWithoutRuleInput | MeetingAttendanceAuditAlertUpdateManyWithWhereWithoutRuleInput[]
    deleteMany?: MeetingAttendanceAuditAlertScalarWhereInput | MeetingAttendanceAuditAlertScalarWhereInput[]
  }

  export type MeetingAttendanceAuditAlertRuleCreateNestedOneWithoutAlertsInput = {
    create?: XOR<MeetingAttendanceAuditAlertRuleCreateWithoutAlertsInput, MeetingAttendanceAuditAlertRuleUncheckedCreateWithoutAlertsInput>
    connectOrCreate?: MeetingAttendanceAuditAlertRuleCreateOrConnectWithoutAlertsInput
    connect?: MeetingAttendanceAuditAlertRuleWhereUniqueInput
  }

  export type MeetingAttendanceAuditAlertRuleUpdateOneRequiredWithoutAlertsNestedInput = {
    create?: XOR<MeetingAttendanceAuditAlertRuleCreateWithoutAlertsInput, MeetingAttendanceAuditAlertRuleUncheckedCreateWithoutAlertsInput>
    connectOrCreate?: MeetingAttendanceAuditAlertRuleCreateOrConnectWithoutAlertsInput
    upsert?: MeetingAttendanceAuditAlertRuleUpsertWithoutAlertsInput
    connect?: MeetingAttendanceAuditAlertRuleWhereUniqueInput
    update?: XOR<XOR<MeetingAttendanceAuditAlertRuleUpdateToOneWithWhereWithoutAlertsInput, MeetingAttendanceAuditAlertRuleUpdateWithoutAlertsInput>, MeetingAttendanceAuditAlertRuleUncheckedUpdateWithoutAlertsInput>
  }

  export type OutlookSubscriptionCreateNestedManyWithoutMailboxInput = {
    create?: XOR<OutlookSubscriptionCreateWithoutMailboxInput, OutlookSubscriptionUncheckedCreateWithoutMailboxInput> | OutlookSubscriptionCreateWithoutMailboxInput[] | OutlookSubscriptionUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookSubscriptionCreateOrConnectWithoutMailboxInput | OutlookSubscriptionCreateOrConnectWithoutMailboxInput[]
    createMany?: OutlookSubscriptionCreateManyMailboxInputEnvelope
    connect?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
  }

  export type OutlookMeetingBindingCreateNestedManyWithoutPrimaryMailboxInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutPrimaryMailboxInput, OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput> | OutlookMeetingBindingCreateWithoutPrimaryMailboxInput[] | OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput | OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput[]
    createMany?: OutlookMeetingBindingCreateManyPrimaryMailboxInputEnvelope
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
  }

  export type OutlookEventSnapshotCreateNestedManyWithoutMailboxInput = {
    create?: XOR<OutlookEventSnapshotCreateWithoutMailboxInput, OutlookEventSnapshotUncheckedCreateWithoutMailboxInput> | OutlookEventSnapshotCreateWithoutMailboxInput[] | OutlookEventSnapshotUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookEventSnapshotCreateOrConnectWithoutMailboxInput | OutlookEventSnapshotCreateOrConnectWithoutMailboxInput[]
    createMany?: OutlookEventSnapshotCreateManyMailboxInputEnvelope
    connect?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
  }

  export type OutlookSyncEventLogCreateNestedManyWithoutMailboxInput = {
    create?: XOR<OutlookSyncEventLogCreateWithoutMailboxInput, OutlookSyncEventLogUncheckedCreateWithoutMailboxInput> | OutlookSyncEventLogCreateWithoutMailboxInput[] | OutlookSyncEventLogUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookSyncEventLogCreateOrConnectWithoutMailboxInput | OutlookSyncEventLogCreateOrConnectWithoutMailboxInput[]
    createMany?: OutlookSyncEventLogCreateManyMailboxInputEnvelope
    connect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
  }

  export type OutlookEventSourceVersionCreateNestedManyWithoutMailboxInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutMailboxInput, OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput> | OutlookEventSourceVersionCreateWithoutMailboxInput[] | OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput | OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput[]
    createMany?: OutlookEventSourceVersionCreateManyMailboxInputEnvelope
    connect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
  }

  export type OutlookSyncCursorCreateNestedOneWithoutMailboxInput = {
    create?: XOR<OutlookSyncCursorCreateWithoutMailboxInput, OutlookSyncCursorUncheckedCreateWithoutMailboxInput>
    connectOrCreate?: OutlookSyncCursorCreateOrConnectWithoutMailboxInput
    connect?: OutlookSyncCursorWhereUniqueInput
  }

  export type OutlookSubscriptionUncheckedCreateNestedManyWithoutMailboxInput = {
    create?: XOR<OutlookSubscriptionCreateWithoutMailboxInput, OutlookSubscriptionUncheckedCreateWithoutMailboxInput> | OutlookSubscriptionCreateWithoutMailboxInput[] | OutlookSubscriptionUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookSubscriptionCreateOrConnectWithoutMailboxInput | OutlookSubscriptionCreateOrConnectWithoutMailboxInput[]
    createMany?: OutlookSubscriptionCreateManyMailboxInputEnvelope
    connect?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
  }

  export type OutlookMeetingBindingUncheckedCreateNestedManyWithoutPrimaryMailboxInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutPrimaryMailboxInput, OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput> | OutlookMeetingBindingCreateWithoutPrimaryMailboxInput[] | OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput | OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput[]
    createMany?: OutlookMeetingBindingCreateManyPrimaryMailboxInputEnvelope
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
  }

  export type OutlookEventSnapshotUncheckedCreateNestedManyWithoutMailboxInput = {
    create?: XOR<OutlookEventSnapshotCreateWithoutMailboxInput, OutlookEventSnapshotUncheckedCreateWithoutMailboxInput> | OutlookEventSnapshotCreateWithoutMailboxInput[] | OutlookEventSnapshotUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookEventSnapshotCreateOrConnectWithoutMailboxInput | OutlookEventSnapshotCreateOrConnectWithoutMailboxInput[]
    createMany?: OutlookEventSnapshotCreateManyMailboxInputEnvelope
    connect?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
  }

  export type OutlookSyncEventLogUncheckedCreateNestedManyWithoutMailboxInput = {
    create?: XOR<OutlookSyncEventLogCreateWithoutMailboxInput, OutlookSyncEventLogUncheckedCreateWithoutMailboxInput> | OutlookSyncEventLogCreateWithoutMailboxInput[] | OutlookSyncEventLogUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookSyncEventLogCreateOrConnectWithoutMailboxInput | OutlookSyncEventLogCreateOrConnectWithoutMailboxInput[]
    createMany?: OutlookSyncEventLogCreateManyMailboxInputEnvelope
    connect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
  }

  export type OutlookEventSourceVersionUncheckedCreateNestedManyWithoutMailboxInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutMailboxInput, OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput> | OutlookEventSourceVersionCreateWithoutMailboxInput[] | OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput | OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput[]
    createMany?: OutlookEventSourceVersionCreateManyMailboxInputEnvelope
    connect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
  }

  export type OutlookSyncCursorUncheckedCreateNestedOneWithoutMailboxInput = {
    create?: XOR<OutlookSyncCursorCreateWithoutMailboxInput, OutlookSyncCursorUncheckedCreateWithoutMailboxInput>
    connectOrCreate?: OutlookSyncCursorCreateOrConnectWithoutMailboxInput
    connect?: OutlookSyncCursorWhereUniqueInput
  }

  export type EnumOutlookMailboxTypeFieldUpdateOperationsInput = {
    set?: $Enums.OutlookMailboxType
  }

  export type OutlookSubscriptionUpdateManyWithoutMailboxNestedInput = {
    create?: XOR<OutlookSubscriptionCreateWithoutMailboxInput, OutlookSubscriptionUncheckedCreateWithoutMailboxInput> | OutlookSubscriptionCreateWithoutMailboxInput[] | OutlookSubscriptionUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookSubscriptionCreateOrConnectWithoutMailboxInput | OutlookSubscriptionCreateOrConnectWithoutMailboxInput[]
    upsert?: OutlookSubscriptionUpsertWithWhereUniqueWithoutMailboxInput | OutlookSubscriptionUpsertWithWhereUniqueWithoutMailboxInput[]
    createMany?: OutlookSubscriptionCreateManyMailboxInputEnvelope
    set?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
    disconnect?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
    delete?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
    connect?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
    update?: OutlookSubscriptionUpdateWithWhereUniqueWithoutMailboxInput | OutlookSubscriptionUpdateWithWhereUniqueWithoutMailboxInput[]
    updateMany?: OutlookSubscriptionUpdateManyWithWhereWithoutMailboxInput | OutlookSubscriptionUpdateManyWithWhereWithoutMailboxInput[]
    deleteMany?: OutlookSubscriptionScalarWhereInput | OutlookSubscriptionScalarWhereInput[]
  }

  export type OutlookMeetingBindingUpdateManyWithoutPrimaryMailboxNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutPrimaryMailboxInput, OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput> | OutlookMeetingBindingCreateWithoutPrimaryMailboxInput[] | OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput | OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput[]
    upsert?: OutlookMeetingBindingUpsertWithWhereUniqueWithoutPrimaryMailboxInput | OutlookMeetingBindingUpsertWithWhereUniqueWithoutPrimaryMailboxInput[]
    createMany?: OutlookMeetingBindingCreateManyPrimaryMailboxInputEnvelope
    set?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    disconnect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    delete?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    update?: OutlookMeetingBindingUpdateWithWhereUniqueWithoutPrimaryMailboxInput | OutlookMeetingBindingUpdateWithWhereUniqueWithoutPrimaryMailboxInput[]
    updateMany?: OutlookMeetingBindingUpdateManyWithWhereWithoutPrimaryMailboxInput | OutlookMeetingBindingUpdateManyWithWhereWithoutPrimaryMailboxInput[]
    deleteMany?: OutlookMeetingBindingScalarWhereInput | OutlookMeetingBindingScalarWhereInput[]
  }

  export type OutlookEventSnapshotUpdateManyWithoutMailboxNestedInput = {
    create?: XOR<OutlookEventSnapshotCreateWithoutMailboxInput, OutlookEventSnapshotUncheckedCreateWithoutMailboxInput> | OutlookEventSnapshotCreateWithoutMailboxInput[] | OutlookEventSnapshotUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookEventSnapshotCreateOrConnectWithoutMailboxInput | OutlookEventSnapshotCreateOrConnectWithoutMailboxInput[]
    upsert?: OutlookEventSnapshotUpsertWithWhereUniqueWithoutMailboxInput | OutlookEventSnapshotUpsertWithWhereUniqueWithoutMailboxInput[]
    createMany?: OutlookEventSnapshotCreateManyMailboxInputEnvelope
    set?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
    disconnect?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
    delete?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
    connect?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
    update?: OutlookEventSnapshotUpdateWithWhereUniqueWithoutMailboxInput | OutlookEventSnapshotUpdateWithWhereUniqueWithoutMailboxInput[]
    updateMany?: OutlookEventSnapshotUpdateManyWithWhereWithoutMailboxInput | OutlookEventSnapshotUpdateManyWithWhereWithoutMailboxInput[]
    deleteMany?: OutlookEventSnapshotScalarWhereInput | OutlookEventSnapshotScalarWhereInput[]
  }

  export type OutlookSyncEventLogUpdateManyWithoutMailboxNestedInput = {
    create?: XOR<OutlookSyncEventLogCreateWithoutMailboxInput, OutlookSyncEventLogUncheckedCreateWithoutMailboxInput> | OutlookSyncEventLogCreateWithoutMailboxInput[] | OutlookSyncEventLogUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookSyncEventLogCreateOrConnectWithoutMailboxInput | OutlookSyncEventLogCreateOrConnectWithoutMailboxInput[]
    upsert?: OutlookSyncEventLogUpsertWithWhereUniqueWithoutMailboxInput | OutlookSyncEventLogUpsertWithWhereUniqueWithoutMailboxInput[]
    createMany?: OutlookSyncEventLogCreateManyMailboxInputEnvelope
    set?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    disconnect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    delete?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    connect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    update?: OutlookSyncEventLogUpdateWithWhereUniqueWithoutMailboxInput | OutlookSyncEventLogUpdateWithWhereUniqueWithoutMailboxInput[]
    updateMany?: OutlookSyncEventLogUpdateManyWithWhereWithoutMailboxInput | OutlookSyncEventLogUpdateManyWithWhereWithoutMailboxInput[]
    deleteMany?: OutlookSyncEventLogScalarWhereInput | OutlookSyncEventLogScalarWhereInput[]
  }

  export type OutlookEventSourceVersionUpdateManyWithoutMailboxNestedInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutMailboxInput, OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput> | OutlookEventSourceVersionCreateWithoutMailboxInput[] | OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput | OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput[]
    upsert?: OutlookEventSourceVersionUpsertWithWhereUniqueWithoutMailboxInput | OutlookEventSourceVersionUpsertWithWhereUniqueWithoutMailboxInput[]
    createMany?: OutlookEventSourceVersionCreateManyMailboxInputEnvelope
    set?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    disconnect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    delete?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    connect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    update?: OutlookEventSourceVersionUpdateWithWhereUniqueWithoutMailboxInput | OutlookEventSourceVersionUpdateWithWhereUniqueWithoutMailboxInput[]
    updateMany?: OutlookEventSourceVersionUpdateManyWithWhereWithoutMailboxInput | OutlookEventSourceVersionUpdateManyWithWhereWithoutMailboxInput[]
    deleteMany?: OutlookEventSourceVersionScalarWhereInput | OutlookEventSourceVersionScalarWhereInput[]
  }

  export type OutlookSyncCursorUpdateOneWithoutMailboxNestedInput = {
    create?: XOR<OutlookSyncCursorCreateWithoutMailboxInput, OutlookSyncCursorUncheckedCreateWithoutMailboxInput>
    connectOrCreate?: OutlookSyncCursorCreateOrConnectWithoutMailboxInput
    upsert?: OutlookSyncCursorUpsertWithoutMailboxInput
    disconnect?: OutlookSyncCursorWhereInput | boolean
    delete?: OutlookSyncCursorWhereInput | boolean
    connect?: OutlookSyncCursorWhereUniqueInput
    update?: XOR<XOR<OutlookSyncCursorUpdateToOneWithWhereWithoutMailboxInput, OutlookSyncCursorUpdateWithoutMailboxInput>, OutlookSyncCursorUncheckedUpdateWithoutMailboxInput>
  }

  export type OutlookSubscriptionUncheckedUpdateManyWithoutMailboxNestedInput = {
    create?: XOR<OutlookSubscriptionCreateWithoutMailboxInput, OutlookSubscriptionUncheckedCreateWithoutMailboxInput> | OutlookSubscriptionCreateWithoutMailboxInput[] | OutlookSubscriptionUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookSubscriptionCreateOrConnectWithoutMailboxInput | OutlookSubscriptionCreateOrConnectWithoutMailboxInput[]
    upsert?: OutlookSubscriptionUpsertWithWhereUniqueWithoutMailboxInput | OutlookSubscriptionUpsertWithWhereUniqueWithoutMailboxInput[]
    createMany?: OutlookSubscriptionCreateManyMailboxInputEnvelope
    set?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
    disconnect?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
    delete?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
    connect?: OutlookSubscriptionWhereUniqueInput | OutlookSubscriptionWhereUniqueInput[]
    update?: OutlookSubscriptionUpdateWithWhereUniqueWithoutMailboxInput | OutlookSubscriptionUpdateWithWhereUniqueWithoutMailboxInput[]
    updateMany?: OutlookSubscriptionUpdateManyWithWhereWithoutMailboxInput | OutlookSubscriptionUpdateManyWithWhereWithoutMailboxInput[]
    deleteMany?: OutlookSubscriptionScalarWhereInput | OutlookSubscriptionScalarWhereInput[]
  }

  export type OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutPrimaryMailboxInput, OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput> | OutlookMeetingBindingCreateWithoutPrimaryMailboxInput[] | OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput[]
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput | OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput[]
    upsert?: OutlookMeetingBindingUpsertWithWhereUniqueWithoutPrimaryMailboxInput | OutlookMeetingBindingUpsertWithWhereUniqueWithoutPrimaryMailboxInput[]
    createMany?: OutlookMeetingBindingCreateManyPrimaryMailboxInputEnvelope
    set?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    disconnect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    delete?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    connect?: OutlookMeetingBindingWhereUniqueInput | OutlookMeetingBindingWhereUniqueInput[]
    update?: OutlookMeetingBindingUpdateWithWhereUniqueWithoutPrimaryMailboxInput | OutlookMeetingBindingUpdateWithWhereUniqueWithoutPrimaryMailboxInput[]
    updateMany?: OutlookMeetingBindingUpdateManyWithWhereWithoutPrimaryMailboxInput | OutlookMeetingBindingUpdateManyWithWhereWithoutPrimaryMailboxInput[]
    deleteMany?: OutlookMeetingBindingScalarWhereInput | OutlookMeetingBindingScalarWhereInput[]
  }

  export type OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxNestedInput = {
    create?: XOR<OutlookEventSnapshotCreateWithoutMailboxInput, OutlookEventSnapshotUncheckedCreateWithoutMailboxInput> | OutlookEventSnapshotCreateWithoutMailboxInput[] | OutlookEventSnapshotUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookEventSnapshotCreateOrConnectWithoutMailboxInput | OutlookEventSnapshotCreateOrConnectWithoutMailboxInput[]
    upsert?: OutlookEventSnapshotUpsertWithWhereUniqueWithoutMailboxInput | OutlookEventSnapshotUpsertWithWhereUniqueWithoutMailboxInput[]
    createMany?: OutlookEventSnapshotCreateManyMailboxInputEnvelope
    set?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
    disconnect?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
    delete?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
    connect?: OutlookEventSnapshotWhereUniqueInput | OutlookEventSnapshotWhereUniqueInput[]
    update?: OutlookEventSnapshotUpdateWithWhereUniqueWithoutMailboxInput | OutlookEventSnapshotUpdateWithWhereUniqueWithoutMailboxInput[]
    updateMany?: OutlookEventSnapshotUpdateManyWithWhereWithoutMailboxInput | OutlookEventSnapshotUpdateManyWithWhereWithoutMailboxInput[]
    deleteMany?: OutlookEventSnapshotScalarWhereInput | OutlookEventSnapshotScalarWhereInput[]
  }

  export type OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxNestedInput = {
    create?: XOR<OutlookSyncEventLogCreateWithoutMailboxInput, OutlookSyncEventLogUncheckedCreateWithoutMailboxInput> | OutlookSyncEventLogCreateWithoutMailboxInput[] | OutlookSyncEventLogUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookSyncEventLogCreateOrConnectWithoutMailboxInput | OutlookSyncEventLogCreateOrConnectWithoutMailboxInput[]
    upsert?: OutlookSyncEventLogUpsertWithWhereUniqueWithoutMailboxInput | OutlookSyncEventLogUpsertWithWhereUniqueWithoutMailboxInput[]
    createMany?: OutlookSyncEventLogCreateManyMailboxInputEnvelope
    set?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    disconnect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    delete?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    connect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    update?: OutlookSyncEventLogUpdateWithWhereUniqueWithoutMailboxInput | OutlookSyncEventLogUpdateWithWhereUniqueWithoutMailboxInput[]
    updateMany?: OutlookSyncEventLogUpdateManyWithWhereWithoutMailboxInput | OutlookSyncEventLogUpdateManyWithWhereWithoutMailboxInput[]
    deleteMany?: OutlookSyncEventLogScalarWhereInput | OutlookSyncEventLogScalarWhereInput[]
  }

  export type OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxNestedInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutMailboxInput, OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput> | OutlookEventSourceVersionCreateWithoutMailboxInput[] | OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput[]
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput | OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput[]
    upsert?: OutlookEventSourceVersionUpsertWithWhereUniqueWithoutMailboxInput | OutlookEventSourceVersionUpsertWithWhereUniqueWithoutMailboxInput[]
    createMany?: OutlookEventSourceVersionCreateManyMailboxInputEnvelope
    set?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    disconnect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    delete?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    connect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    update?: OutlookEventSourceVersionUpdateWithWhereUniqueWithoutMailboxInput | OutlookEventSourceVersionUpdateWithWhereUniqueWithoutMailboxInput[]
    updateMany?: OutlookEventSourceVersionUpdateManyWithWhereWithoutMailboxInput | OutlookEventSourceVersionUpdateManyWithWhereWithoutMailboxInput[]
    deleteMany?: OutlookEventSourceVersionScalarWhereInput | OutlookEventSourceVersionScalarWhereInput[]
  }

  export type OutlookSyncCursorUncheckedUpdateOneWithoutMailboxNestedInput = {
    create?: XOR<OutlookSyncCursorCreateWithoutMailboxInput, OutlookSyncCursorUncheckedCreateWithoutMailboxInput>
    connectOrCreate?: OutlookSyncCursorCreateOrConnectWithoutMailboxInput
    upsert?: OutlookSyncCursorUpsertWithoutMailboxInput
    disconnect?: OutlookSyncCursorWhereInput | boolean
    delete?: OutlookSyncCursorWhereInput | boolean
    connect?: OutlookSyncCursorWhereUniqueInput
    update?: XOR<XOR<OutlookSyncCursorUpdateToOneWithWhereWithoutMailboxInput, OutlookSyncCursorUpdateWithoutMailboxInput>, OutlookSyncCursorUncheckedUpdateWithoutMailboxInput>
  }

  export type OutlookSyncMailboxCreateNestedOneWithoutSubscriptionsInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutSubscriptionsInput, OutlookSyncMailboxUncheckedCreateWithoutSubscriptionsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutSubscriptionsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
  }

  export type EnumOutlookSubscriptionStatusFieldUpdateOperationsInput = {
    set?: $Enums.OutlookSubscriptionStatus
  }

  export type OutlookSyncMailboxUpdateOneRequiredWithoutSubscriptionsNestedInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutSubscriptionsInput, OutlookSyncMailboxUncheckedCreateWithoutSubscriptionsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutSubscriptionsInput
    upsert?: OutlookSyncMailboxUpsertWithoutSubscriptionsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
    update?: XOR<XOR<OutlookSyncMailboxUpdateToOneWithWhereWithoutSubscriptionsInput, OutlookSyncMailboxUpdateWithoutSubscriptionsInput>, OutlookSyncMailboxUncheckedUpdateWithoutSubscriptionsInput>
  }

  export type MeetingCreateNestedOneWithoutOutlookBindingsInput = {
    create?: XOR<MeetingCreateWithoutOutlookBindingsInput, MeetingUncheckedCreateWithoutOutlookBindingsInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutOutlookBindingsInput
    connect?: MeetingWhereUniqueInput
  }

  export type MeetingSeriesCreateNestedOneWithoutOutlookBindingsInput = {
    create?: XOR<MeetingSeriesCreateWithoutOutlookBindingsInput, MeetingSeriesUncheckedCreateWithoutOutlookBindingsInput>
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutOutlookBindingsInput
    connect?: MeetingSeriesWhereUniqueInput
  }

  export type OutlookSyncMailboxCreateNestedOneWithoutPrimaryBindingsInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutPrimaryBindingsInput, OutlookSyncMailboxUncheckedCreateWithoutPrimaryBindingsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutPrimaryBindingsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
  }

  export type OutlookSyncEventLogCreateNestedManyWithoutBindingInput = {
    create?: XOR<OutlookSyncEventLogCreateWithoutBindingInput, OutlookSyncEventLogUncheckedCreateWithoutBindingInput> | OutlookSyncEventLogCreateWithoutBindingInput[] | OutlookSyncEventLogUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookSyncEventLogCreateOrConnectWithoutBindingInput | OutlookSyncEventLogCreateOrConnectWithoutBindingInput[]
    createMany?: OutlookSyncEventLogCreateManyBindingInputEnvelope
    connect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
  }

  export type OutlookSeriesOccurrenceExclusionCreateNestedManyWithoutBindingInput = {
    create?: XOR<OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput, OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput> | OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput[] | OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput | OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput[]
    createMany?: OutlookSeriesOccurrenceExclusionCreateManyBindingInputEnvelope
    connect?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
  }

  export type OutlookEventSourceVersionCreateNestedManyWithoutBindingInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutBindingInput, OutlookEventSourceVersionUncheckedCreateWithoutBindingInput> | OutlookEventSourceVersionCreateWithoutBindingInput[] | OutlookEventSourceVersionUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutBindingInput | OutlookEventSourceVersionCreateOrConnectWithoutBindingInput[]
    createMany?: OutlookEventSourceVersionCreateManyBindingInputEnvelope
    connect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
  }

  export type OutlookEventSyncDiffCreateNestedManyWithoutBindingInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutBindingInput, OutlookEventSyncDiffUncheckedCreateWithoutBindingInput> | OutlookEventSyncDiffCreateWithoutBindingInput[] | OutlookEventSyncDiffUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutBindingInput | OutlookEventSyncDiffCreateOrConnectWithoutBindingInput[]
    createMany?: OutlookEventSyncDiffCreateManyBindingInputEnvelope
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
  }

  export type OutlookSyncEventLogUncheckedCreateNestedManyWithoutBindingInput = {
    create?: XOR<OutlookSyncEventLogCreateWithoutBindingInput, OutlookSyncEventLogUncheckedCreateWithoutBindingInput> | OutlookSyncEventLogCreateWithoutBindingInput[] | OutlookSyncEventLogUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookSyncEventLogCreateOrConnectWithoutBindingInput | OutlookSyncEventLogCreateOrConnectWithoutBindingInput[]
    createMany?: OutlookSyncEventLogCreateManyBindingInputEnvelope
    connect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
  }

  export type OutlookSeriesOccurrenceExclusionUncheckedCreateNestedManyWithoutBindingInput = {
    create?: XOR<OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput, OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput> | OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput[] | OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput | OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput[]
    createMany?: OutlookSeriesOccurrenceExclusionCreateManyBindingInputEnvelope
    connect?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
  }

  export type OutlookEventSourceVersionUncheckedCreateNestedManyWithoutBindingInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutBindingInput, OutlookEventSourceVersionUncheckedCreateWithoutBindingInput> | OutlookEventSourceVersionCreateWithoutBindingInput[] | OutlookEventSourceVersionUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutBindingInput | OutlookEventSourceVersionCreateOrConnectWithoutBindingInput[]
    createMany?: OutlookEventSourceVersionCreateManyBindingInputEnvelope
    connect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
  }

  export type OutlookEventSyncDiffUncheckedCreateNestedManyWithoutBindingInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutBindingInput, OutlookEventSyncDiffUncheckedCreateWithoutBindingInput> | OutlookEventSyncDiffCreateWithoutBindingInput[] | OutlookEventSyncDiffUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutBindingInput | OutlookEventSyncDiffCreateOrConnectWithoutBindingInput[]
    createMany?: OutlookEventSyncDiffCreateManyBindingInputEnvelope
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
  }

  export type EnumOutlookManageStatusFieldUpdateOperationsInput = {
    set?: $Enums.OutlookManageStatus
  }

  export type NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput = {
    set?: $Enums.OutlookBootstrapStatus | null
  }

  export type NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput = {
    set?: $Enums.OutlookCancellationSource | null
  }

  export type EnumOutlookBindingSyncModeFieldUpdateOperationsInput = {
    set?: $Enums.OutlookBindingSyncMode
  }

  export type MeetingUpdateOneWithoutOutlookBindingsNestedInput = {
    create?: XOR<MeetingCreateWithoutOutlookBindingsInput, MeetingUncheckedCreateWithoutOutlookBindingsInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutOutlookBindingsInput
    upsert?: MeetingUpsertWithoutOutlookBindingsInput
    disconnect?: MeetingWhereInput | boolean
    delete?: MeetingWhereInput | boolean
    connect?: MeetingWhereUniqueInput
    update?: XOR<XOR<MeetingUpdateToOneWithWhereWithoutOutlookBindingsInput, MeetingUpdateWithoutOutlookBindingsInput>, MeetingUncheckedUpdateWithoutOutlookBindingsInput>
  }

  export type MeetingSeriesUpdateOneWithoutOutlookBindingsNestedInput = {
    create?: XOR<MeetingSeriesCreateWithoutOutlookBindingsInput, MeetingSeriesUncheckedCreateWithoutOutlookBindingsInput>
    connectOrCreate?: MeetingSeriesCreateOrConnectWithoutOutlookBindingsInput
    upsert?: MeetingSeriesUpsertWithoutOutlookBindingsInput
    disconnect?: MeetingSeriesWhereInput | boolean
    delete?: MeetingSeriesWhereInput | boolean
    connect?: MeetingSeriesWhereUniqueInput
    update?: XOR<XOR<MeetingSeriesUpdateToOneWithWhereWithoutOutlookBindingsInput, MeetingSeriesUpdateWithoutOutlookBindingsInput>, MeetingSeriesUncheckedUpdateWithoutOutlookBindingsInput>
  }

  export type OutlookSyncMailboxUpdateOneRequiredWithoutPrimaryBindingsNestedInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutPrimaryBindingsInput, OutlookSyncMailboxUncheckedCreateWithoutPrimaryBindingsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutPrimaryBindingsInput
    upsert?: OutlookSyncMailboxUpsertWithoutPrimaryBindingsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
    update?: XOR<XOR<OutlookSyncMailboxUpdateToOneWithWhereWithoutPrimaryBindingsInput, OutlookSyncMailboxUpdateWithoutPrimaryBindingsInput>, OutlookSyncMailboxUncheckedUpdateWithoutPrimaryBindingsInput>
  }

  export type OutlookSyncEventLogUpdateManyWithoutBindingNestedInput = {
    create?: XOR<OutlookSyncEventLogCreateWithoutBindingInput, OutlookSyncEventLogUncheckedCreateWithoutBindingInput> | OutlookSyncEventLogCreateWithoutBindingInput[] | OutlookSyncEventLogUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookSyncEventLogCreateOrConnectWithoutBindingInput | OutlookSyncEventLogCreateOrConnectWithoutBindingInput[]
    upsert?: OutlookSyncEventLogUpsertWithWhereUniqueWithoutBindingInput | OutlookSyncEventLogUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: OutlookSyncEventLogCreateManyBindingInputEnvelope
    set?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    disconnect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    delete?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    connect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    update?: OutlookSyncEventLogUpdateWithWhereUniqueWithoutBindingInput | OutlookSyncEventLogUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: OutlookSyncEventLogUpdateManyWithWhereWithoutBindingInput | OutlookSyncEventLogUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: OutlookSyncEventLogScalarWhereInput | OutlookSyncEventLogScalarWhereInput[]
  }

  export type OutlookSeriesOccurrenceExclusionUpdateManyWithoutBindingNestedInput = {
    create?: XOR<OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput, OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput> | OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput[] | OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput | OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput[]
    upsert?: OutlookSeriesOccurrenceExclusionUpsertWithWhereUniqueWithoutBindingInput | OutlookSeriesOccurrenceExclusionUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: OutlookSeriesOccurrenceExclusionCreateManyBindingInputEnvelope
    set?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
    disconnect?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
    delete?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
    connect?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
    update?: OutlookSeriesOccurrenceExclusionUpdateWithWhereUniqueWithoutBindingInput | OutlookSeriesOccurrenceExclusionUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: OutlookSeriesOccurrenceExclusionUpdateManyWithWhereWithoutBindingInput | OutlookSeriesOccurrenceExclusionUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: OutlookSeriesOccurrenceExclusionScalarWhereInput | OutlookSeriesOccurrenceExclusionScalarWhereInput[]
  }

  export type OutlookEventSourceVersionUpdateManyWithoutBindingNestedInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutBindingInput, OutlookEventSourceVersionUncheckedCreateWithoutBindingInput> | OutlookEventSourceVersionCreateWithoutBindingInput[] | OutlookEventSourceVersionUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutBindingInput | OutlookEventSourceVersionCreateOrConnectWithoutBindingInput[]
    upsert?: OutlookEventSourceVersionUpsertWithWhereUniqueWithoutBindingInput | OutlookEventSourceVersionUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: OutlookEventSourceVersionCreateManyBindingInputEnvelope
    set?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    disconnect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    delete?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    connect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    update?: OutlookEventSourceVersionUpdateWithWhereUniqueWithoutBindingInput | OutlookEventSourceVersionUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: OutlookEventSourceVersionUpdateManyWithWhereWithoutBindingInput | OutlookEventSourceVersionUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: OutlookEventSourceVersionScalarWhereInput | OutlookEventSourceVersionScalarWhereInput[]
  }

  export type OutlookEventSyncDiffUpdateManyWithoutBindingNestedInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutBindingInput, OutlookEventSyncDiffUncheckedCreateWithoutBindingInput> | OutlookEventSyncDiffCreateWithoutBindingInput[] | OutlookEventSyncDiffUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutBindingInput | OutlookEventSyncDiffCreateOrConnectWithoutBindingInput[]
    upsert?: OutlookEventSyncDiffUpsertWithWhereUniqueWithoutBindingInput | OutlookEventSyncDiffUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: OutlookEventSyncDiffCreateManyBindingInputEnvelope
    set?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    disconnect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    delete?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    update?: OutlookEventSyncDiffUpdateWithWhereUniqueWithoutBindingInput | OutlookEventSyncDiffUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: OutlookEventSyncDiffUpdateManyWithWhereWithoutBindingInput | OutlookEventSyncDiffUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: OutlookEventSyncDiffScalarWhereInput | OutlookEventSyncDiffScalarWhereInput[]
  }

  export type OutlookSyncEventLogUncheckedUpdateManyWithoutBindingNestedInput = {
    create?: XOR<OutlookSyncEventLogCreateWithoutBindingInput, OutlookSyncEventLogUncheckedCreateWithoutBindingInput> | OutlookSyncEventLogCreateWithoutBindingInput[] | OutlookSyncEventLogUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookSyncEventLogCreateOrConnectWithoutBindingInput | OutlookSyncEventLogCreateOrConnectWithoutBindingInput[]
    upsert?: OutlookSyncEventLogUpsertWithWhereUniqueWithoutBindingInput | OutlookSyncEventLogUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: OutlookSyncEventLogCreateManyBindingInputEnvelope
    set?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    disconnect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    delete?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    connect?: OutlookSyncEventLogWhereUniqueInput | OutlookSyncEventLogWhereUniqueInput[]
    update?: OutlookSyncEventLogUpdateWithWhereUniqueWithoutBindingInput | OutlookSyncEventLogUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: OutlookSyncEventLogUpdateManyWithWhereWithoutBindingInput | OutlookSyncEventLogUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: OutlookSyncEventLogScalarWhereInput | OutlookSyncEventLogScalarWhereInput[]
  }

  export type OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingNestedInput = {
    create?: XOR<OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput, OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput> | OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput[] | OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput | OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput[]
    upsert?: OutlookSeriesOccurrenceExclusionUpsertWithWhereUniqueWithoutBindingInput | OutlookSeriesOccurrenceExclusionUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: OutlookSeriesOccurrenceExclusionCreateManyBindingInputEnvelope
    set?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
    disconnect?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
    delete?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
    connect?: OutlookSeriesOccurrenceExclusionWhereUniqueInput | OutlookSeriesOccurrenceExclusionWhereUniqueInput[]
    update?: OutlookSeriesOccurrenceExclusionUpdateWithWhereUniqueWithoutBindingInput | OutlookSeriesOccurrenceExclusionUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: OutlookSeriesOccurrenceExclusionUpdateManyWithWhereWithoutBindingInput | OutlookSeriesOccurrenceExclusionUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: OutlookSeriesOccurrenceExclusionScalarWhereInput | OutlookSeriesOccurrenceExclusionScalarWhereInput[]
  }

  export type OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingNestedInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutBindingInput, OutlookEventSourceVersionUncheckedCreateWithoutBindingInput> | OutlookEventSourceVersionCreateWithoutBindingInput[] | OutlookEventSourceVersionUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutBindingInput | OutlookEventSourceVersionCreateOrConnectWithoutBindingInput[]
    upsert?: OutlookEventSourceVersionUpsertWithWhereUniqueWithoutBindingInput | OutlookEventSourceVersionUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: OutlookEventSourceVersionCreateManyBindingInputEnvelope
    set?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    disconnect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    delete?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    connect?: OutlookEventSourceVersionWhereUniqueInput | OutlookEventSourceVersionWhereUniqueInput[]
    update?: OutlookEventSourceVersionUpdateWithWhereUniqueWithoutBindingInput | OutlookEventSourceVersionUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: OutlookEventSourceVersionUpdateManyWithWhereWithoutBindingInput | OutlookEventSourceVersionUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: OutlookEventSourceVersionScalarWhereInput | OutlookEventSourceVersionScalarWhereInput[]
  }

  export type OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingNestedInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutBindingInput, OutlookEventSyncDiffUncheckedCreateWithoutBindingInput> | OutlookEventSyncDiffCreateWithoutBindingInput[] | OutlookEventSyncDiffUncheckedCreateWithoutBindingInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutBindingInput | OutlookEventSyncDiffCreateOrConnectWithoutBindingInput[]
    upsert?: OutlookEventSyncDiffUpsertWithWhereUniqueWithoutBindingInput | OutlookEventSyncDiffUpsertWithWhereUniqueWithoutBindingInput[]
    createMany?: OutlookEventSyncDiffCreateManyBindingInputEnvelope
    set?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    disconnect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    delete?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    update?: OutlookEventSyncDiffUpdateWithWhereUniqueWithoutBindingInput | OutlookEventSyncDiffUpdateWithWhereUniqueWithoutBindingInput[]
    updateMany?: OutlookEventSyncDiffUpdateManyWithWhereWithoutBindingInput | OutlookEventSyncDiffUpdateManyWithWhereWithoutBindingInput[]
    deleteMany?: OutlookEventSyncDiffScalarWhereInput | OutlookEventSyncDiffScalarWhereInput[]
  }

  export type OutlookMeetingBindingCreateNestedOneWithoutOccurrenceExclusionsInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutOccurrenceExclusionsInput, OutlookMeetingBindingUncheckedCreateWithoutOccurrenceExclusionsInput>
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutOccurrenceExclusionsInput
    connect?: OutlookMeetingBindingWhereUniqueInput
  }

  export type OutlookMeetingBindingUpdateOneRequiredWithoutOccurrenceExclusionsNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutOccurrenceExclusionsInput, OutlookMeetingBindingUncheckedCreateWithoutOccurrenceExclusionsInput>
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutOccurrenceExclusionsInput
    upsert?: OutlookMeetingBindingUpsertWithoutOccurrenceExclusionsInput
    connect?: OutlookMeetingBindingWhereUniqueInput
    update?: XOR<XOR<OutlookMeetingBindingUpdateToOneWithWhereWithoutOccurrenceExclusionsInput, OutlookMeetingBindingUpdateWithoutOccurrenceExclusionsInput>, OutlookMeetingBindingUncheckedUpdateWithoutOccurrenceExclusionsInput>
  }

  export type OutlookMeetingBindingCreateNestedOneWithoutSyncEventLogsInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutSyncEventLogsInput, OutlookMeetingBindingUncheckedCreateWithoutSyncEventLogsInput>
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutSyncEventLogsInput
    connect?: OutlookMeetingBindingWhereUniqueInput
  }

  export type OutlookSyncMailboxCreateNestedOneWithoutSyncEventLogsInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutSyncEventLogsInput, OutlookSyncMailboxUncheckedCreateWithoutSyncEventLogsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutSyncEventLogsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
  }

  export type OutlookMeetingBindingUpdateOneRequiredWithoutSyncEventLogsNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutSyncEventLogsInput, OutlookMeetingBindingUncheckedCreateWithoutSyncEventLogsInput>
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutSyncEventLogsInput
    upsert?: OutlookMeetingBindingUpsertWithoutSyncEventLogsInput
    connect?: OutlookMeetingBindingWhereUniqueInput
    update?: XOR<XOR<OutlookMeetingBindingUpdateToOneWithWhereWithoutSyncEventLogsInput, OutlookMeetingBindingUpdateWithoutSyncEventLogsInput>, OutlookMeetingBindingUncheckedUpdateWithoutSyncEventLogsInput>
  }

  export type OutlookSyncMailboxUpdateOneRequiredWithoutSyncEventLogsNestedInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutSyncEventLogsInput, OutlookSyncMailboxUncheckedCreateWithoutSyncEventLogsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutSyncEventLogsInput
    upsert?: OutlookSyncMailboxUpsertWithoutSyncEventLogsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
    update?: XOR<XOR<OutlookSyncMailboxUpdateToOneWithWhereWithoutSyncEventLogsInput, OutlookSyncMailboxUpdateWithoutSyncEventLogsInput>, OutlookSyncMailboxUncheckedUpdateWithoutSyncEventLogsInput>
  }

  export type OutlookMeetingBindingCreateNestedOneWithoutSourceVersionsInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutSourceVersionsInput, OutlookMeetingBindingUncheckedCreateWithoutSourceVersionsInput>
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutSourceVersionsInput
    connect?: OutlookMeetingBindingWhereUniqueInput
  }

  export type OutlookSyncMailboxCreateNestedOneWithoutSourceVersionsInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutSourceVersionsInput, OutlookSyncMailboxUncheckedCreateWithoutSourceVersionsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutSourceVersionsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
  }

  export type OutlookEventSyncDiffCreateNestedManyWithoutSourceVersionInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput> | OutlookEventSyncDiffCreateWithoutSourceVersionInput[] | OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput | OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput[]
    createMany?: OutlookEventSyncDiffCreateManySourceVersionInputEnvelope
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
  }

  export type OutlookEventSyncDiffCreateNestedManyWithoutPreviousSourceVersionInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput> | OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput[] | OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput | OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput[]
    createMany?: OutlookEventSyncDiffCreateManyPreviousSourceVersionInputEnvelope
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
  }

  export type OutlookEventSyncDiffUncheckedCreateNestedManyWithoutSourceVersionInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput> | OutlookEventSyncDiffCreateWithoutSourceVersionInput[] | OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput | OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput[]
    createMany?: OutlookEventSyncDiffCreateManySourceVersionInputEnvelope
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
  }

  export type OutlookEventSyncDiffUncheckedCreateNestedManyWithoutPreviousSourceVersionInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput> | OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput[] | OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput | OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput[]
    createMany?: OutlookEventSyncDiffCreateManyPreviousSourceVersionInputEnvelope
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
  }

  export type OutlookMeetingBindingUpdateOneRequiredWithoutSourceVersionsNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutSourceVersionsInput, OutlookMeetingBindingUncheckedCreateWithoutSourceVersionsInput>
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutSourceVersionsInput
    upsert?: OutlookMeetingBindingUpsertWithoutSourceVersionsInput
    connect?: OutlookMeetingBindingWhereUniqueInput
    update?: XOR<XOR<OutlookMeetingBindingUpdateToOneWithWhereWithoutSourceVersionsInput, OutlookMeetingBindingUpdateWithoutSourceVersionsInput>, OutlookMeetingBindingUncheckedUpdateWithoutSourceVersionsInput>
  }

  export type OutlookSyncMailboxUpdateOneRequiredWithoutSourceVersionsNestedInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutSourceVersionsInput, OutlookSyncMailboxUncheckedCreateWithoutSourceVersionsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutSourceVersionsInput
    upsert?: OutlookSyncMailboxUpsertWithoutSourceVersionsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
    update?: XOR<XOR<OutlookSyncMailboxUpdateToOneWithWhereWithoutSourceVersionsInput, OutlookSyncMailboxUpdateWithoutSourceVersionsInput>, OutlookSyncMailboxUncheckedUpdateWithoutSourceVersionsInput>
  }

  export type OutlookEventSyncDiffUpdateManyWithoutSourceVersionNestedInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput> | OutlookEventSyncDiffCreateWithoutSourceVersionInput[] | OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput | OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput[]
    upsert?: OutlookEventSyncDiffUpsertWithWhereUniqueWithoutSourceVersionInput | OutlookEventSyncDiffUpsertWithWhereUniqueWithoutSourceVersionInput[]
    createMany?: OutlookEventSyncDiffCreateManySourceVersionInputEnvelope
    set?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    disconnect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    delete?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    update?: OutlookEventSyncDiffUpdateWithWhereUniqueWithoutSourceVersionInput | OutlookEventSyncDiffUpdateWithWhereUniqueWithoutSourceVersionInput[]
    updateMany?: OutlookEventSyncDiffUpdateManyWithWhereWithoutSourceVersionInput | OutlookEventSyncDiffUpdateManyWithWhereWithoutSourceVersionInput[]
    deleteMany?: OutlookEventSyncDiffScalarWhereInput | OutlookEventSyncDiffScalarWhereInput[]
  }

  export type OutlookEventSyncDiffUpdateManyWithoutPreviousSourceVersionNestedInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput> | OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput[] | OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput | OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput[]
    upsert?: OutlookEventSyncDiffUpsertWithWhereUniqueWithoutPreviousSourceVersionInput | OutlookEventSyncDiffUpsertWithWhereUniqueWithoutPreviousSourceVersionInput[]
    createMany?: OutlookEventSyncDiffCreateManyPreviousSourceVersionInputEnvelope
    set?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    disconnect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    delete?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    update?: OutlookEventSyncDiffUpdateWithWhereUniqueWithoutPreviousSourceVersionInput | OutlookEventSyncDiffUpdateWithWhereUniqueWithoutPreviousSourceVersionInput[]
    updateMany?: OutlookEventSyncDiffUpdateManyWithWhereWithoutPreviousSourceVersionInput | OutlookEventSyncDiffUpdateManyWithWhereWithoutPreviousSourceVersionInput[]
    deleteMany?: OutlookEventSyncDiffScalarWhereInput | OutlookEventSyncDiffScalarWhereInput[]
  }

  export type OutlookEventSyncDiffUncheckedUpdateManyWithoutSourceVersionNestedInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput> | OutlookEventSyncDiffCreateWithoutSourceVersionInput[] | OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput | OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput[]
    upsert?: OutlookEventSyncDiffUpsertWithWhereUniqueWithoutSourceVersionInput | OutlookEventSyncDiffUpsertWithWhereUniqueWithoutSourceVersionInput[]
    createMany?: OutlookEventSyncDiffCreateManySourceVersionInputEnvelope
    set?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    disconnect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    delete?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    update?: OutlookEventSyncDiffUpdateWithWhereUniqueWithoutSourceVersionInput | OutlookEventSyncDiffUpdateWithWhereUniqueWithoutSourceVersionInput[]
    updateMany?: OutlookEventSyncDiffUpdateManyWithWhereWithoutSourceVersionInput | OutlookEventSyncDiffUpdateManyWithWhereWithoutSourceVersionInput[]
    deleteMany?: OutlookEventSyncDiffScalarWhereInput | OutlookEventSyncDiffScalarWhereInput[]
  }

  export type OutlookEventSyncDiffUncheckedUpdateManyWithoutPreviousSourceVersionNestedInput = {
    create?: XOR<OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput> | OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput[] | OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput[]
    connectOrCreate?: OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput | OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput[]
    upsert?: OutlookEventSyncDiffUpsertWithWhereUniqueWithoutPreviousSourceVersionInput | OutlookEventSyncDiffUpsertWithWhereUniqueWithoutPreviousSourceVersionInput[]
    createMany?: OutlookEventSyncDiffCreateManyPreviousSourceVersionInputEnvelope
    set?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    disconnect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    delete?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    connect?: OutlookEventSyncDiffWhereUniqueInput | OutlookEventSyncDiffWhereUniqueInput[]
    update?: OutlookEventSyncDiffUpdateWithWhereUniqueWithoutPreviousSourceVersionInput | OutlookEventSyncDiffUpdateWithWhereUniqueWithoutPreviousSourceVersionInput[]
    updateMany?: OutlookEventSyncDiffUpdateManyWithWhereWithoutPreviousSourceVersionInput | OutlookEventSyncDiffUpdateManyWithWhereWithoutPreviousSourceVersionInput[]
    deleteMany?: OutlookEventSyncDiffScalarWhereInput | OutlookEventSyncDiffScalarWhereInput[]
  }

  export type OutlookMeetingBindingCreateNestedOneWithoutSyncDiffsInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutSyncDiffsInput, OutlookMeetingBindingUncheckedCreateWithoutSyncDiffsInput>
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutSyncDiffsInput
    connect?: OutlookMeetingBindingWhereUniqueInput
  }

  export type OutlookEventSourceVersionCreateNestedOneWithoutDiffsAsCurrentInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutDiffsAsCurrentInput, OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsCurrentInput>
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutDiffsAsCurrentInput
    connect?: OutlookEventSourceVersionWhereUniqueInput
  }

  export type OutlookEventSourceVersionCreateNestedOneWithoutDiffsAsPreviousInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutDiffsAsPreviousInput, OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsPreviousInput>
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutDiffsAsPreviousInput
    connect?: OutlookEventSourceVersionWhereUniqueInput
  }

  export type OutlookMeetingBindingUpdateOneRequiredWithoutSyncDiffsNestedInput = {
    create?: XOR<OutlookMeetingBindingCreateWithoutSyncDiffsInput, OutlookMeetingBindingUncheckedCreateWithoutSyncDiffsInput>
    connectOrCreate?: OutlookMeetingBindingCreateOrConnectWithoutSyncDiffsInput
    upsert?: OutlookMeetingBindingUpsertWithoutSyncDiffsInput
    connect?: OutlookMeetingBindingWhereUniqueInput
    update?: XOR<XOR<OutlookMeetingBindingUpdateToOneWithWhereWithoutSyncDiffsInput, OutlookMeetingBindingUpdateWithoutSyncDiffsInput>, OutlookMeetingBindingUncheckedUpdateWithoutSyncDiffsInput>
  }

  export type OutlookEventSourceVersionUpdateOneRequiredWithoutDiffsAsCurrentNestedInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutDiffsAsCurrentInput, OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsCurrentInput>
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutDiffsAsCurrentInput
    upsert?: OutlookEventSourceVersionUpsertWithoutDiffsAsCurrentInput
    connect?: OutlookEventSourceVersionWhereUniqueInput
    update?: XOR<XOR<OutlookEventSourceVersionUpdateToOneWithWhereWithoutDiffsAsCurrentInput, OutlookEventSourceVersionUpdateWithoutDiffsAsCurrentInput>, OutlookEventSourceVersionUncheckedUpdateWithoutDiffsAsCurrentInput>
  }

  export type OutlookEventSourceVersionUpdateOneWithoutDiffsAsPreviousNestedInput = {
    create?: XOR<OutlookEventSourceVersionCreateWithoutDiffsAsPreviousInput, OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsPreviousInput>
    connectOrCreate?: OutlookEventSourceVersionCreateOrConnectWithoutDiffsAsPreviousInput
    upsert?: OutlookEventSourceVersionUpsertWithoutDiffsAsPreviousInput
    disconnect?: OutlookEventSourceVersionWhereInput | boolean
    delete?: OutlookEventSourceVersionWhereInput | boolean
    connect?: OutlookEventSourceVersionWhereUniqueInput
    update?: XOR<XOR<OutlookEventSourceVersionUpdateToOneWithWhereWithoutDiffsAsPreviousInput, OutlookEventSourceVersionUpdateWithoutDiffsAsPreviousInput>, OutlookEventSourceVersionUncheckedUpdateWithoutDiffsAsPreviousInput>
  }

  export type OutlookSyncMailboxCreateNestedOneWithoutCursorInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutCursorInput, OutlookSyncMailboxUncheckedCreateWithoutCursorInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutCursorInput
    connect?: OutlookSyncMailboxWhereUniqueInput
  }

  export type OutlookSyncMailboxUpdateOneRequiredWithoutCursorNestedInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutCursorInput, OutlookSyncMailboxUncheckedCreateWithoutCursorInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutCursorInput
    upsert?: OutlookSyncMailboxUpsertWithoutCursorInput
    connect?: OutlookSyncMailboxWhereUniqueInput
    update?: XOR<XOR<OutlookSyncMailboxUpdateToOneWithWhereWithoutCursorInput, OutlookSyncMailboxUpdateWithoutCursorInput>, OutlookSyncMailboxUncheckedUpdateWithoutCursorInput>
  }

  export type OutlookSyncMailboxCreateNestedOneWithoutEventSnapshotsInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutEventSnapshotsInput, OutlookSyncMailboxUncheckedCreateWithoutEventSnapshotsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutEventSnapshotsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
  }

  export type OutlookSyncMailboxUpdateOneRequiredWithoutEventSnapshotsNestedInput = {
    create?: XOR<OutlookSyncMailboxCreateWithoutEventSnapshotsInput, OutlookSyncMailboxUncheckedCreateWithoutEventSnapshotsInput>
    connectOrCreate?: OutlookSyncMailboxCreateOrConnectWithoutEventSnapshotsInput
    upsert?: OutlookSyncMailboxUpsertWithoutEventSnapshotsInput
    connect?: OutlookSyncMailboxWhereUniqueInput
    update?: XOR<XOR<OutlookSyncMailboxUpdateToOneWithWhereWithoutEventSnapshotsInput, OutlookSyncMailboxUpdateWithoutEventSnapshotsInput>, OutlookSyncMailboxUncheckedUpdateWithoutEventSnapshotsInput>
  }

  export type MeetingAgendaSectionCreatecolumnLabelsInput = {
    set: string[]
  }

  export type MeetingCreateNestedOneWithoutAgendaSectionsInput = {
    create?: XOR<MeetingCreateWithoutAgendaSectionsInput, MeetingUncheckedCreateWithoutAgendaSectionsInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutAgendaSectionsInput
    connect?: MeetingWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAgendaSectionsCreatedInput = {
    create?: XOR<UserCreateWithoutAgendaSectionsCreatedInput, UserUncheckedCreateWithoutAgendaSectionsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaSectionsCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutMeetingAgendaSectionsInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAgendaSectionsInput, OrganizationUncheckedCreateWithoutMeetingAgendaSectionsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAgendaSectionsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type MeetingAgendaItemCreateNestedManyWithoutSectionInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutSectionInput, MeetingAgendaItemUncheckedCreateWithoutSectionInput> | MeetingAgendaItemCreateWithoutSectionInput[] | MeetingAgendaItemUncheckedCreateWithoutSectionInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutSectionInput | MeetingAgendaItemCreateOrConnectWithoutSectionInput[]
    createMany?: MeetingAgendaItemCreateManySectionInputEnvelope
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
  }

  export type MeetingAgendaItemUncheckedCreateNestedManyWithoutSectionInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutSectionInput, MeetingAgendaItemUncheckedCreateWithoutSectionInput> | MeetingAgendaItemCreateWithoutSectionInput[] | MeetingAgendaItemUncheckedCreateWithoutSectionInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutSectionInput | MeetingAgendaItemCreateOrConnectWithoutSectionInput[]
    createMany?: MeetingAgendaItemCreateManySectionInputEnvelope
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
  }

  export type MeetingAgendaSectionUpdatecolumnLabelsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type MeetingUpdateOneRequiredWithoutAgendaSectionsNestedInput = {
    create?: XOR<MeetingCreateWithoutAgendaSectionsInput, MeetingUncheckedCreateWithoutAgendaSectionsInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutAgendaSectionsInput
    upsert?: MeetingUpsertWithoutAgendaSectionsInput
    connect?: MeetingWhereUniqueInput
    update?: XOR<XOR<MeetingUpdateToOneWithWhereWithoutAgendaSectionsInput, MeetingUpdateWithoutAgendaSectionsInput>, MeetingUncheckedUpdateWithoutAgendaSectionsInput>
  }

  export type UserUpdateOneRequiredWithoutAgendaSectionsCreatedNestedInput = {
    create?: XOR<UserCreateWithoutAgendaSectionsCreatedInput, UserUncheckedCreateWithoutAgendaSectionsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaSectionsCreatedInput
    upsert?: UserUpsertWithoutAgendaSectionsCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAgendaSectionsCreatedInput, UserUpdateWithoutAgendaSectionsCreatedInput>, UserUncheckedUpdateWithoutAgendaSectionsCreatedInput>
  }

  export type OrganizationUpdateOneWithoutMeetingAgendaSectionsNestedInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAgendaSectionsInput, OrganizationUncheckedCreateWithoutMeetingAgendaSectionsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAgendaSectionsInput
    upsert?: OrganizationUpsertWithoutMeetingAgendaSectionsInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutMeetingAgendaSectionsInput, OrganizationUpdateWithoutMeetingAgendaSectionsInput>, OrganizationUncheckedUpdateWithoutMeetingAgendaSectionsInput>
  }

  export type MeetingAgendaItemUpdateManyWithoutSectionNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutSectionInput, MeetingAgendaItemUncheckedCreateWithoutSectionInput> | MeetingAgendaItemCreateWithoutSectionInput[] | MeetingAgendaItemUncheckedCreateWithoutSectionInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutSectionInput | MeetingAgendaItemCreateOrConnectWithoutSectionInput[]
    upsert?: MeetingAgendaItemUpsertWithWhereUniqueWithoutSectionInput | MeetingAgendaItemUpsertWithWhereUniqueWithoutSectionInput[]
    createMany?: MeetingAgendaItemCreateManySectionInputEnvelope
    set?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    disconnect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    delete?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    update?: MeetingAgendaItemUpdateWithWhereUniqueWithoutSectionInput | MeetingAgendaItemUpdateWithWhereUniqueWithoutSectionInput[]
    updateMany?: MeetingAgendaItemUpdateManyWithWhereWithoutSectionInput | MeetingAgendaItemUpdateManyWithWhereWithoutSectionInput[]
    deleteMany?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
  }

  export type MeetingAgendaItemUncheckedUpdateManyWithoutSectionNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutSectionInput, MeetingAgendaItemUncheckedCreateWithoutSectionInput> | MeetingAgendaItemCreateWithoutSectionInput[] | MeetingAgendaItemUncheckedCreateWithoutSectionInput[]
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutSectionInput | MeetingAgendaItemCreateOrConnectWithoutSectionInput[]
    upsert?: MeetingAgendaItemUpsertWithWhereUniqueWithoutSectionInput | MeetingAgendaItemUpsertWithWhereUniqueWithoutSectionInput[]
    createMany?: MeetingAgendaItemCreateManySectionInputEnvelope
    set?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    disconnect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    delete?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    connect?: MeetingAgendaItemWhereUniqueInput | MeetingAgendaItemWhereUniqueInput[]
    update?: MeetingAgendaItemUpdateWithWhereUniqueWithoutSectionInput | MeetingAgendaItemUpdateWithWhereUniqueWithoutSectionInput[]
    updateMany?: MeetingAgendaItemUpdateManyWithWhereWithoutSectionInput | MeetingAgendaItemUpdateManyWithWhereWithoutSectionInput[]
    deleteMany?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
  }

  export type MeetingAgendaItemCreatecolumnDescriptionsInput = {
    set: string[]
  }

  export type MeetingAgendaSectionCreateNestedOneWithoutItemsInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutItemsInput, MeetingAgendaSectionUncheckedCreateWithoutItemsInput>
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutItemsInput
    connect?: MeetingAgendaSectionWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAgendaItemsPresentedInput = {
    create?: XOR<UserCreateWithoutAgendaItemsPresentedInput, UserUncheckedCreateWithoutAgendaItemsPresentedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaItemsPresentedInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAgendaItemsCreatedInput = {
    create?: XOR<UserCreateWithoutAgendaItemsCreatedInput, UserUncheckedCreateWithoutAgendaItemsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaItemsCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutMeetingAgendaItemsInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAgendaItemsInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAgendaItemsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type MeetingAgendaItemUploadTaskCreateNestedManyWithoutAgendaItemInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput> | MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAgendaItemInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemAttachmentCreateNestedManyWithoutAgendaItemInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput> | MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyAgendaItemInputEnvelope
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAgendaItemInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput> | MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAgendaItemInputEnvelope
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutAgendaItemInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput> | MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyAgendaItemInputEnvelope
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
  }

  export type MeetingAgendaItemUpdatecolumnDescriptionsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type MeetingAgendaSectionUpdateOneRequiredWithoutItemsNestedInput = {
    create?: XOR<MeetingAgendaSectionCreateWithoutItemsInput, MeetingAgendaSectionUncheckedCreateWithoutItemsInput>
    connectOrCreate?: MeetingAgendaSectionCreateOrConnectWithoutItemsInput
    upsert?: MeetingAgendaSectionUpsertWithoutItemsInput
    connect?: MeetingAgendaSectionWhereUniqueInput
    update?: XOR<XOR<MeetingAgendaSectionUpdateToOneWithWhereWithoutItemsInput, MeetingAgendaSectionUpdateWithoutItemsInput>, MeetingAgendaSectionUncheckedUpdateWithoutItemsInput>
  }

  export type UserUpdateOneWithoutAgendaItemsPresentedNestedInput = {
    create?: XOR<UserCreateWithoutAgendaItemsPresentedInput, UserUncheckedCreateWithoutAgendaItemsPresentedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaItemsPresentedInput
    upsert?: UserUpsertWithoutAgendaItemsPresentedInput
    disconnect?: UserWhereInput | boolean
    delete?: UserWhereInput | boolean
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAgendaItemsPresentedInput, UserUpdateWithoutAgendaItemsPresentedInput>, UserUncheckedUpdateWithoutAgendaItemsPresentedInput>
  }

  export type UserUpdateOneRequiredWithoutAgendaItemsCreatedNestedInput = {
    create?: XOR<UserCreateWithoutAgendaItemsCreatedInput, UserUncheckedCreateWithoutAgendaItemsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaItemsCreatedInput
    upsert?: UserUpsertWithoutAgendaItemsCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAgendaItemsCreatedInput, UserUpdateWithoutAgendaItemsCreatedInput>, UserUncheckedUpdateWithoutAgendaItemsCreatedInput>
  }

  export type OrganizationUpdateOneWithoutMeetingAgendaItemsNestedInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAgendaItemsInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAgendaItemsInput
    upsert?: OrganizationUpsertWithoutMeetingAgendaItemsInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutMeetingAgendaItemsInput, OrganizationUpdateWithoutMeetingAgendaItemsInput>, OrganizationUncheckedUpdateWithoutMeetingAgendaItemsInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithoutAgendaItemNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput> | MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAgendaItemInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAgendaItemInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAgendaItemInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAgendaItemInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAgendaItemInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAgendaItemInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAgendaItemInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemAttachmentUpdateManyWithoutAgendaItemNestedInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput> | MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput[]
    upsert?: MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutAgendaItemInput | MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutAgendaItemInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyAgendaItemInputEnvelope
    set?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    disconnect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    delete?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    update?: MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutAgendaItemInput | MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutAgendaItemInput[]
    updateMany?: MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutAgendaItemInput | MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutAgendaItemInput[]
    deleteMany?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemNestedInput = {
    create?: XOR<MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput> | MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput[] | MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput[]
    connectOrCreate?: MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput | MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput[]
    upsert?: MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAgendaItemInput | MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAgendaItemInput[]
    createMany?: MeetingAgendaItemUploadTaskCreateManyAgendaItemInputEnvelope
    set?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    disconnect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    delete?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    connect?: MeetingAgendaItemUploadTaskWhereUniqueInput | MeetingAgendaItemUploadTaskWhereUniqueInput[]
    update?: MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAgendaItemInput | MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAgendaItemInput[]
    updateMany?: MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAgendaItemInput | MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAgendaItemInput[]
    deleteMany?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemNestedInput = {
    create?: XOR<MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput> | MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput[] | MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput[]
    connectOrCreate?: MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput | MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput[]
    upsert?: MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutAgendaItemInput | MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutAgendaItemInput[]
    createMany?: MeetingAgendaItemAttachmentCreateManyAgendaItemInputEnvelope
    set?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    disconnect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    delete?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    connect?: MeetingAgendaItemAttachmentWhereUniqueInput | MeetingAgendaItemAttachmentWhereUniqueInput[]
    update?: MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutAgendaItemInput | MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutAgendaItemInput[]
    updateMany?: MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutAgendaItemInput | MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutAgendaItemInput[]
    deleteMany?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
  }

  export type MeetingAgendaItemCreateNestedOneWithoutUploadTasksInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutUploadTasksInput, MeetingAgendaItemUncheckedCreateWithoutUploadTasksInput>
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutUploadTasksInput
    connect?: MeetingAgendaItemWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutUploadTasksAssignedInput = {
    create?: XOR<UserCreateWithoutUploadTasksAssignedInput, UserUncheckedCreateWithoutUploadTasksAssignedInput>
    connectOrCreate?: UserCreateOrConnectWithoutUploadTasksAssignedInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutUploadTasksAssignedByInput = {
    create?: XOR<UserCreateWithoutUploadTasksAssignedByInput, UserUncheckedCreateWithoutUploadTasksAssignedByInput>
    connectOrCreate?: UserCreateOrConnectWithoutUploadTasksAssignedByInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutUploadTasksCreatedInput = {
    create?: XOR<UserCreateWithoutUploadTasksCreatedInput, UserUncheckedCreateWithoutUploadTasksCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutUploadTasksCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutMeetingAgendaItemUploadTasksInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAgendaItemUploadTasksInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemUploadTasksInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAgendaItemUploadTasksInput
    connect?: OrganizationWhereUniqueInput
  }

  export type EnumUploadTaskStatusFieldUpdateOperationsInput = {
    set?: $Enums.UploadTaskStatus
  }

  export type MeetingAgendaItemUpdateOneRequiredWithoutUploadTasksNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutUploadTasksInput, MeetingAgendaItemUncheckedCreateWithoutUploadTasksInput>
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutUploadTasksInput
    upsert?: MeetingAgendaItemUpsertWithoutUploadTasksInput
    connect?: MeetingAgendaItemWhereUniqueInput
    update?: XOR<XOR<MeetingAgendaItemUpdateToOneWithWhereWithoutUploadTasksInput, MeetingAgendaItemUpdateWithoutUploadTasksInput>, MeetingAgendaItemUncheckedUpdateWithoutUploadTasksInput>
  }

  export type UserUpdateOneRequiredWithoutUploadTasksAssignedNestedInput = {
    create?: XOR<UserCreateWithoutUploadTasksAssignedInput, UserUncheckedCreateWithoutUploadTasksAssignedInput>
    connectOrCreate?: UserCreateOrConnectWithoutUploadTasksAssignedInput
    upsert?: UserUpsertWithoutUploadTasksAssignedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutUploadTasksAssignedInput, UserUpdateWithoutUploadTasksAssignedInput>, UserUncheckedUpdateWithoutUploadTasksAssignedInput>
  }

  export type UserUpdateOneRequiredWithoutUploadTasksAssignedByNestedInput = {
    create?: XOR<UserCreateWithoutUploadTasksAssignedByInput, UserUncheckedCreateWithoutUploadTasksAssignedByInput>
    connectOrCreate?: UserCreateOrConnectWithoutUploadTasksAssignedByInput
    upsert?: UserUpsertWithoutUploadTasksAssignedByInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutUploadTasksAssignedByInput, UserUpdateWithoutUploadTasksAssignedByInput>, UserUncheckedUpdateWithoutUploadTasksAssignedByInput>
  }

  export type UserUpdateOneRequiredWithoutUploadTasksCreatedNestedInput = {
    create?: XOR<UserCreateWithoutUploadTasksCreatedInput, UserUncheckedCreateWithoutUploadTasksCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutUploadTasksCreatedInput
    upsert?: UserUpsertWithoutUploadTasksCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutUploadTasksCreatedInput, UserUpdateWithoutUploadTasksCreatedInput>, UserUncheckedUpdateWithoutUploadTasksCreatedInput>
  }

  export type OrganizationUpdateOneWithoutMeetingAgendaItemUploadTasksNestedInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAgendaItemUploadTasksInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemUploadTasksInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAgendaItemUploadTasksInput
    upsert?: OrganizationUpsertWithoutMeetingAgendaItemUploadTasksInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutMeetingAgendaItemUploadTasksInput, OrganizationUpdateWithoutMeetingAgendaItemUploadTasksInput>, OrganizationUncheckedUpdateWithoutMeetingAgendaItemUploadTasksInput>
  }

  export type MeetingAgendaItemCreateNestedOneWithoutAttachmentsInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutAttachmentsInput, MeetingAgendaItemUncheckedCreateWithoutAttachmentsInput>
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutAttachmentsInput
    connect?: MeetingAgendaItemWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAgendaAttachmentsUploadedInput = {
    create?: XOR<UserCreateWithoutAgendaAttachmentsUploadedInput, UserUncheckedCreateWithoutAgendaAttachmentsUploadedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaAttachmentsUploadedInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutAgendaAttachmentsCreatedInput = {
    create?: XOR<UserCreateWithoutAgendaAttachmentsCreatedInput, UserUncheckedCreateWithoutAgendaAttachmentsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaAttachmentsCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutMeetingAgendaItemAttachmentsInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAgendaItemAttachmentsInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemAttachmentsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAgendaItemAttachmentsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type MeetingAgendaItemUpdateOneRequiredWithoutAttachmentsNestedInput = {
    create?: XOR<MeetingAgendaItemCreateWithoutAttachmentsInput, MeetingAgendaItemUncheckedCreateWithoutAttachmentsInput>
    connectOrCreate?: MeetingAgendaItemCreateOrConnectWithoutAttachmentsInput
    upsert?: MeetingAgendaItemUpsertWithoutAttachmentsInput
    connect?: MeetingAgendaItemWhereUniqueInput
    update?: XOR<XOR<MeetingAgendaItemUpdateToOneWithWhereWithoutAttachmentsInput, MeetingAgendaItemUpdateWithoutAttachmentsInput>, MeetingAgendaItemUncheckedUpdateWithoutAttachmentsInput>
  }

  export type UserUpdateOneRequiredWithoutAgendaAttachmentsUploadedNestedInput = {
    create?: XOR<UserCreateWithoutAgendaAttachmentsUploadedInput, UserUncheckedCreateWithoutAgendaAttachmentsUploadedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaAttachmentsUploadedInput
    upsert?: UserUpsertWithoutAgendaAttachmentsUploadedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAgendaAttachmentsUploadedInput, UserUpdateWithoutAgendaAttachmentsUploadedInput>, UserUncheckedUpdateWithoutAgendaAttachmentsUploadedInput>
  }

  export type UserUpdateOneRequiredWithoutAgendaAttachmentsCreatedNestedInput = {
    create?: XOR<UserCreateWithoutAgendaAttachmentsCreatedInput, UserUncheckedCreateWithoutAgendaAttachmentsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutAgendaAttachmentsCreatedInput
    upsert?: UserUpsertWithoutAgendaAttachmentsCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutAgendaAttachmentsCreatedInput, UserUpdateWithoutAgendaAttachmentsCreatedInput>, UserUncheckedUpdateWithoutAgendaAttachmentsCreatedInput>
  }

  export type OrganizationUpdateOneWithoutMeetingAgendaItemAttachmentsNestedInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAgendaItemAttachmentsInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemAttachmentsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAgendaItemAttachmentsInput
    upsert?: OrganizationUpsertWithoutMeetingAgendaItemAttachmentsInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutMeetingAgendaItemAttachmentsInput, OrganizationUpdateWithoutMeetingAgendaItemAttachmentsInput>, OrganizationUncheckedUpdateWithoutMeetingAgendaItemAttachmentsInput>
  }

  export type MeetingCreateNestedOneWithoutAttachmentsInput = {
    create?: XOR<MeetingCreateWithoutAttachmentsInput, MeetingUncheckedCreateWithoutAttachmentsInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutAttachmentsInput
    connect?: MeetingWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutMeetingAttachmentsUploadedInput = {
    create?: XOR<UserCreateWithoutMeetingAttachmentsUploadedInput, UserUncheckedCreateWithoutMeetingAttachmentsUploadedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttachmentsUploadedInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutMeetingAttachmentsCreatedInput = {
    create?: XOR<UserCreateWithoutMeetingAttachmentsCreatedInput, UserUncheckedCreateWithoutMeetingAttachmentsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttachmentsCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutMeetingAttachmentsInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAttachmentsInput, OrganizationUncheckedCreateWithoutMeetingAttachmentsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAttachmentsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput = {
    set?: $Enums.MeetingAttachmentCategory | null
  }

  export type MeetingUpdateOneRequiredWithoutAttachmentsNestedInput = {
    create?: XOR<MeetingCreateWithoutAttachmentsInput, MeetingUncheckedCreateWithoutAttachmentsInput>
    connectOrCreate?: MeetingCreateOrConnectWithoutAttachmentsInput
    upsert?: MeetingUpsertWithoutAttachmentsInput
    connect?: MeetingWhereUniqueInput
    update?: XOR<XOR<MeetingUpdateToOneWithWhereWithoutAttachmentsInput, MeetingUpdateWithoutAttachmentsInput>, MeetingUncheckedUpdateWithoutAttachmentsInput>
  }

  export type UserUpdateOneRequiredWithoutMeetingAttachmentsUploadedNestedInput = {
    create?: XOR<UserCreateWithoutMeetingAttachmentsUploadedInput, UserUncheckedCreateWithoutMeetingAttachmentsUploadedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttachmentsUploadedInput
    upsert?: UserUpsertWithoutMeetingAttachmentsUploadedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingAttachmentsUploadedInput, UserUpdateWithoutMeetingAttachmentsUploadedInput>, UserUncheckedUpdateWithoutMeetingAttachmentsUploadedInput>
  }

  export type UserUpdateOneRequiredWithoutMeetingAttachmentsCreatedNestedInput = {
    create?: XOR<UserCreateWithoutMeetingAttachmentsCreatedInput, UserUncheckedCreateWithoutMeetingAttachmentsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutMeetingAttachmentsCreatedInput
    upsert?: UserUpsertWithoutMeetingAttachmentsCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutMeetingAttachmentsCreatedInput, UserUpdateWithoutMeetingAttachmentsCreatedInput>, UserUncheckedUpdateWithoutMeetingAttachmentsCreatedInput>
  }

  export type OrganizationUpdateOneWithoutMeetingAttachmentsNestedInput = {
    create?: XOR<OrganizationCreateWithoutMeetingAttachmentsInput, OrganizationUncheckedCreateWithoutMeetingAttachmentsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutMeetingAttachmentsInput
    upsert?: OrganizationUpsertWithoutMeetingAttachmentsInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutMeetingAttachmentsInput, OrganizationUpdateWithoutMeetingAttachmentsInput>, OrganizationUncheckedUpdateWithoutMeetingAttachmentsInput>
  }

  export type UserCreateNestedOneWithoutNotificationsInput = {
    create?: XOR<UserCreateWithoutNotificationsInput, UserUncheckedCreateWithoutNotificationsInput>
    connectOrCreate?: UserCreateOrConnectWithoutNotificationsInput
    connect?: UserWhereUniqueInput
  }

  export type EnumNotificationTypeFieldUpdateOperationsInput = {
    set?: $Enums.NotificationType
  }

  export type EnumNotificationStatusFieldUpdateOperationsInput = {
    set?: $Enums.NotificationStatus
  }

  export type UserUpdateOneRequiredWithoutNotificationsNestedInput = {
    create?: XOR<UserCreateWithoutNotificationsInput, UserUncheckedCreateWithoutNotificationsInput>
    connectOrCreate?: UserCreateOrConnectWithoutNotificationsInput
    upsert?: UserUpsertWithoutNotificationsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutNotificationsInput, UserUpdateWithoutNotificationsInput>, UserUncheckedUpdateWithoutNotificationsInput>
  }

  export type NotificationTemplateCreatevariablesInput = {
    set: string[]
  }

  export type NotificationLogCreateNestedManyWithoutTemplateInput = {
    create?: XOR<NotificationLogCreateWithoutTemplateInput, NotificationLogUncheckedCreateWithoutTemplateInput> | NotificationLogCreateWithoutTemplateInput[] | NotificationLogUncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: NotificationLogCreateOrConnectWithoutTemplateInput | NotificationLogCreateOrConnectWithoutTemplateInput[]
    createMany?: NotificationLogCreateManyTemplateInputEnvelope
    connect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
  }

  export type NotificationLogUncheckedCreateNestedManyWithoutTemplateInput = {
    create?: XOR<NotificationLogCreateWithoutTemplateInput, NotificationLogUncheckedCreateWithoutTemplateInput> | NotificationLogCreateWithoutTemplateInput[] | NotificationLogUncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: NotificationLogCreateOrConnectWithoutTemplateInput | NotificationLogCreateOrConnectWithoutTemplateInput[]
    createMany?: NotificationLogCreateManyTemplateInputEnvelope
    connect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
  }

  export type EnumNotificationChannelFieldUpdateOperationsInput = {
    set?: $Enums.NotificationChannel
  }

  export type NotificationTemplateUpdatevariablesInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumNotificationPriorityFieldUpdateOperationsInput = {
    set?: $Enums.NotificationPriority
  }

  export type NotificationLogUpdateManyWithoutTemplateNestedInput = {
    create?: XOR<NotificationLogCreateWithoutTemplateInput, NotificationLogUncheckedCreateWithoutTemplateInput> | NotificationLogCreateWithoutTemplateInput[] | NotificationLogUncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: NotificationLogCreateOrConnectWithoutTemplateInput | NotificationLogCreateOrConnectWithoutTemplateInput[]
    upsert?: NotificationLogUpsertWithWhereUniqueWithoutTemplateInput | NotificationLogUpsertWithWhereUniqueWithoutTemplateInput[]
    createMany?: NotificationLogCreateManyTemplateInputEnvelope
    set?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    disconnect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    delete?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    connect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    update?: NotificationLogUpdateWithWhereUniqueWithoutTemplateInput | NotificationLogUpdateWithWhereUniqueWithoutTemplateInput[]
    updateMany?: NotificationLogUpdateManyWithWhereWithoutTemplateInput | NotificationLogUpdateManyWithWhereWithoutTemplateInput[]
    deleteMany?: NotificationLogScalarWhereInput | NotificationLogScalarWhereInput[]
  }

  export type NotificationLogUncheckedUpdateManyWithoutTemplateNestedInput = {
    create?: XOR<NotificationLogCreateWithoutTemplateInput, NotificationLogUncheckedCreateWithoutTemplateInput> | NotificationLogCreateWithoutTemplateInput[] | NotificationLogUncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: NotificationLogCreateOrConnectWithoutTemplateInput | NotificationLogCreateOrConnectWithoutTemplateInput[]
    upsert?: NotificationLogUpsertWithWhereUniqueWithoutTemplateInput | NotificationLogUpsertWithWhereUniqueWithoutTemplateInput[]
    createMany?: NotificationLogCreateManyTemplateInputEnvelope
    set?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    disconnect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    delete?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    connect?: NotificationLogWhereUniqueInput | NotificationLogWhereUniqueInput[]
    update?: NotificationLogUpdateWithWhereUniqueWithoutTemplateInput | NotificationLogUpdateWithWhereUniqueWithoutTemplateInput[]
    updateMany?: NotificationLogUpdateManyWithWhereWithoutTemplateInput | NotificationLogUpdateManyWithWhereWithoutTemplateInput[]
    deleteMany?: NotificationLogScalarWhereInput | NotificationLogScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutNotificationLogsInput = {
    create?: XOR<UserCreateWithoutNotificationLogsInput, UserUncheckedCreateWithoutNotificationLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutNotificationLogsInput
    connect?: UserWhereUniqueInput
  }

  export type NotificationTemplateCreateNestedOneWithoutLogsInput = {
    create?: XOR<NotificationTemplateCreateWithoutLogsInput, NotificationTemplateUncheckedCreateWithoutLogsInput>
    connectOrCreate?: NotificationTemplateCreateOrConnectWithoutLogsInput
    connect?: NotificationTemplateWhereUniqueInput
  }

  export type EnumNotificationSendStatusFieldUpdateOperationsInput = {
    set?: $Enums.NotificationSendStatus
  }

  export type UserUpdateOneRequiredWithoutNotificationLogsNestedInput = {
    create?: XOR<UserCreateWithoutNotificationLogsInput, UserUncheckedCreateWithoutNotificationLogsInput>
    connectOrCreate?: UserCreateOrConnectWithoutNotificationLogsInput
    upsert?: UserUpsertWithoutNotificationLogsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutNotificationLogsInput, UserUpdateWithoutNotificationLogsInput>, UserUncheckedUpdateWithoutNotificationLogsInput>
  }

  export type NotificationTemplateUpdateOneWithoutLogsNestedInput = {
    create?: XOR<NotificationTemplateCreateWithoutLogsInput, NotificationTemplateUncheckedCreateWithoutLogsInput>
    connectOrCreate?: NotificationTemplateCreateOrConnectWithoutLogsInput
    upsert?: NotificationTemplateUpsertWithoutLogsInput
    disconnect?: NotificationTemplateWhereInput | boolean
    delete?: NotificationTemplateWhereInput | boolean
    connect?: NotificationTemplateWhereUniqueInput
    update?: XOR<XOR<NotificationTemplateUpdateToOneWithWhereWithoutLogsInput, NotificationTemplateUpdateWithoutLogsInput>, NotificationTemplateUncheckedUpdateWithoutLogsInput>
  }

  export type M365UserActivityChangeCreateNestedManyWithoutUserInput = {
    create?: XOR<M365UserActivityChangeCreateWithoutUserInput, M365UserActivityChangeUncheckedCreateWithoutUserInput> | M365UserActivityChangeCreateWithoutUserInput[] | M365UserActivityChangeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: M365UserActivityChangeCreateOrConnectWithoutUserInput | M365UserActivityChangeCreateOrConnectWithoutUserInput[]
    createMany?: M365UserActivityChangeCreateManyUserInputEnvelope
    connect?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
  }

  export type M365UserActivityChangeUncheckedCreateNestedManyWithoutUserInput = {
    create?: XOR<M365UserActivityChangeCreateWithoutUserInput, M365UserActivityChangeUncheckedCreateWithoutUserInput> | M365UserActivityChangeCreateWithoutUserInput[] | M365UserActivityChangeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: M365UserActivityChangeCreateOrConnectWithoutUserInput | M365UserActivityChangeCreateOrConnectWithoutUserInput[]
    createMany?: M365UserActivityChangeCreateManyUserInputEnvelope
    connect?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
  }

  export type M365UserActivityChangeUpdateManyWithoutUserNestedInput = {
    create?: XOR<M365UserActivityChangeCreateWithoutUserInput, M365UserActivityChangeUncheckedCreateWithoutUserInput> | M365UserActivityChangeCreateWithoutUserInput[] | M365UserActivityChangeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: M365UserActivityChangeCreateOrConnectWithoutUserInput | M365UserActivityChangeCreateOrConnectWithoutUserInput[]
    upsert?: M365UserActivityChangeUpsertWithWhereUniqueWithoutUserInput | M365UserActivityChangeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: M365UserActivityChangeCreateManyUserInputEnvelope
    set?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
    disconnect?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
    delete?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
    connect?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
    update?: M365UserActivityChangeUpdateWithWhereUniqueWithoutUserInput | M365UserActivityChangeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: M365UserActivityChangeUpdateManyWithWhereWithoutUserInput | M365UserActivityChangeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: M365UserActivityChangeScalarWhereInput | M365UserActivityChangeScalarWhereInput[]
  }

  export type M365UserActivityChangeUncheckedUpdateManyWithoutUserNestedInput = {
    create?: XOR<M365UserActivityChangeCreateWithoutUserInput, M365UserActivityChangeUncheckedCreateWithoutUserInput> | M365UserActivityChangeCreateWithoutUserInput[] | M365UserActivityChangeUncheckedCreateWithoutUserInput[]
    connectOrCreate?: M365UserActivityChangeCreateOrConnectWithoutUserInput | M365UserActivityChangeCreateOrConnectWithoutUserInput[]
    upsert?: M365UserActivityChangeUpsertWithWhereUniqueWithoutUserInput | M365UserActivityChangeUpsertWithWhereUniqueWithoutUserInput[]
    createMany?: M365UserActivityChangeCreateManyUserInputEnvelope
    set?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
    disconnect?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
    delete?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
    connect?: M365UserActivityChangeWhereUniqueInput | M365UserActivityChangeWhereUniqueInput[]
    update?: M365UserActivityChangeUpdateWithWhereUniqueWithoutUserInput | M365UserActivityChangeUpdateWithWhereUniqueWithoutUserInput[]
    updateMany?: M365UserActivityChangeUpdateManyWithWhereWithoutUserInput | M365UserActivityChangeUpdateManyWithWhereWithoutUserInput[]
    deleteMany?: M365UserActivityChangeScalarWhereInput | M365UserActivityChangeScalarWhereInput[]
  }

  export type M365UserCreateNestedOneWithoutChangesInput = {
    create?: XOR<M365UserCreateWithoutChangesInput, M365UserUncheckedCreateWithoutChangesInput>
    connectOrCreate?: M365UserCreateOrConnectWithoutChangesInput
    connect?: M365UserWhereUniqueInput
  }

  export type EnumM365UserActivityChangeFieldFieldUpdateOperationsInput = {
    set?: $Enums.M365UserActivityChangeField
  }

  export type M365UserUpdateOneRequiredWithoutChangesNestedInput = {
    create?: XOR<M365UserCreateWithoutChangesInput, M365UserUncheckedCreateWithoutChangesInput>
    connectOrCreate?: M365UserCreateOrConnectWithoutChangesInput
    upsert?: M365UserUpsertWithoutChangesInput
    connect?: M365UserWhereUniqueInput
    update?: XOR<XOR<M365UserUpdateToOneWithWhereWithoutChangesInput, M365UserUpdateWithoutChangesInput>, M365UserUncheckedUpdateWithoutChangesInput>
  }

  export type OrganizationCreateNestedOneWithoutGradeConfigsInput = {
    create?: XOR<OrganizationCreateWithoutGradeConfigsInput, OrganizationUncheckedCreateWithoutGradeConfigsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutGradeConfigsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type PerformanceCycleCreateNestedManyWithoutGradeConfigInput = {
    create?: XOR<PerformanceCycleCreateWithoutGradeConfigInput, PerformanceCycleUncheckedCreateWithoutGradeConfigInput> | PerformanceCycleCreateWithoutGradeConfigInput[] | PerformanceCycleUncheckedCreateWithoutGradeConfigInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutGradeConfigInput | PerformanceCycleCreateOrConnectWithoutGradeConfigInput[]
    createMany?: PerformanceCycleCreateManyGradeConfigInputEnvelope
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
  }

  export type PerformanceCycleUncheckedCreateNestedManyWithoutGradeConfigInput = {
    create?: XOR<PerformanceCycleCreateWithoutGradeConfigInput, PerformanceCycleUncheckedCreateWithoutGradeConfigInput> | PerformanceCycleCreateWithoutGradeConfigInput[] | PerformanceCycleUncheckedCreateWithoutGradeConfigInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutGradeConfigInput | PerformanceCycleCreateOrConnectWithoutGradeConfigInput[]
    createMany?: PerformanceCycleCreateManyGradeConfigInputEnvelope
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
  }

  export type OrganizationUpdateOneWithoutGradeConfigsNestedInput = {
    create?: XOR<OrganizationCreateWithoutGradeConfigsInput, OrganizationUncheckedCreateWithoutGradeConfigsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutGradeConfigsInput
    upsert?: OrganizationUpsertWithoutGradeConfigsInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutGradeConfigsInput, OrganizationUpdateWithoutGradeConfigsInput>, OrganizationUncheckedUpdateWithoutGradeConfigsInput>
  }

  export type PerformanceCycleUpdateManyWithoutGradeConfigNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutGradeConfigInput, PerformanceCycleUncheckedCreateWithoutGradeConfigInput> | PerformanceCycleCreateWithoutGradeConfigInput[] | PerformanceCycleUncheckedCreateWithoutGradeConfigInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutGradeConfigInput | PerformanceCycleCreateOrConnectWithoutGradeConfigInput[]
    upsert?: PerformanceCycleUpsertWithWhereUniqueWithoutGradeConfigInput | PerformanceCycleUpsertWithWhereUniqueWithoutGradeConfigInput[]
    createMany?: PerformanceCycleCreateManyGradeConfigInputEnvelope
    set?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    disconnect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    delete?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    update?: PerformanceCycleUpdateWithWhereUniqueWithoutGradeConfigInput | PerformanceCycleUpdateWithWhereUniqueWithoutGradeConfigInput[]
    updateMany?: PerformanceCycleUpdateManyWithWhereWithoutGradeConfigInput | PerformanceCycleUpdateManyWithWhereWithoutGradeConfigInput[]
    deleteMany?: PerformanceCycleScalarWhereInput | PerformanceCycleScalarWhereInput[]
  }

  export type PerformanceCycleUncheckedUpdateManyWithoutGradeConfigNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutGradeConfigInput, PerformanceCycleUncheckedCreateWithoutGradeConfigInput> | PerformanceCycleCreateWithoutGradeConfigInput[] | PerformanceCycleUncheckedCreateWithoutGradeConfigInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutGradeConfigInput | PerformanceCycleCreateOrConnectWithoutGradeConfigInput[]
    upsert?: PerformanceCycleUpsertWithWhereUniqueWithoutGradeConfigInput | PerformanceCycleUpsertWithWhereUniqueWithoutGradeConfigInput[]
    createMany?: PerformanceCycleCreateManyGradeConfigInputEnvelope
    set?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    disconnect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    delete?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    update?: PerformanceCycleUpdateWithWhereUniqueWithoutGradeConfigInput | PerformanceCycleUpdateWithWhereUniqueWithoutGradeConfigInput[]
    updateMany?: PerformanceCycleUpdateManyWithWhereWithoutGradeConfigInput | PerformanceCycleUpdateManyWithWhereWithoutGradeConfigInput[]
    deleteMany?: PerformanceCycleScalarWhereInput | PerformanceCycleScalarWhereInput[]
  }

  export type OrganizationCreateNestedOneWithoutPerformanceCyclesInput = {
    create?: XOR<OrganizationCreateWithoutPerformanceCyclesInput, OrganizationUncheckedCreateWithoutPerformanceCyclesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutPerformanceCyclesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type GradeConfigCreateNestedOneWithoutCyclesInput = {
    create?: XOR<GradeConfigCreateWithoutCyclesInput, GradeConfigUncheckedCreateWithoutCyclesInput>
    connectOrCreate?: GradeConfigCreateOrConnectWithoutCyclesInput
    connect?: GradeConfigWhereUniqueInput
  }

  export type PerformanceCycleCreateNestedOneWithoutChildCyclesInput = {
    create?: XOR<PerformanceCycleCreateWithoutChildCyclesInput, PerformanceCycleUncheckedCreateWithoutChildCyclesInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutChildCyclesInput
    connect?: PerformanceCycleWhereUniqueInput
  }

  export type PerformanceCycleCreateNestedManyWithoutParentCycleInput = {
    create?: XOR<PerformanceCycleCreateWithoutParentCycleInput, PerformanceCycleUncheckedCreateWithoutParentCycleInput> | PerformanceCycleCreateWithoutParentCycleInput[] | PerformanceCycleUncheckedCreateWithoutParentCycleInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutParentCycleInput | PerformanceCycleCreateOrConnectWithoutParentCycleInput[]
    createMany?: PerformanceCycleCreateManyParentCycleInputEnvelope
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
  }

  export type KpiAssignmentCreateNestedManyWithoutCycleInput = {
    create?: XOR<KpiAssignmentCreateWithoutCycleInput, KpiAssignmentUncheckedCreateWithoutCycleInput> | KpiAssignmentCreateWithoutCycleInput[] | KpiAssignmentUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutCycleInput | KpiAssignmentCreateOrConnectWithoutCycleInput[]
    createMany?: KpiAssignmentCreateManyCycleInputEnvelope
    connect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
  }

  export type Evaluation360CreateNestedManyWithoutCycleInput = {
    create?: XOR<Evaluation360CreateWithoutCycleInput, Evaluation360UncheckedCreateWithoutCycleInput> | Evaluation360CreateWithoutCycleInput[] | Evaluation360UncheckedCreateWithoutCycleInput[]
    connectOrCreate?: Evaluation360CreateOrConnectWithoutCycleInput | Evaluation360CreateOrConnectWithoutCycleInput[]
    createMany?: Evaluation360CreateManyCycleInputEnvelope
    connect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
  }

  export type PerformanceResultCreateNestedManyWithoutCycleInput = {
    create?: XOR<PerformanceResultCreateWithoutCycleInput, PerformanceResultUncheckedCreateWithoutCycleInput> | PerformanceResultCreateWithoutCycleInput[] | PerformanceResultUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutCycleInput | PerformanceResultCreateOrConnectWithoutCycleInput[]
    createMany?: PerformanceResultCreateManyCycleInputEnvelope
    connect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
  }

  export type StrategicObjectiveCreateNestedManyWithoutCycleInput = {
    create?: XOR<StrategicObjectiveCreateWithoutCycleInput, StrategicObjectiveUncheckedCreateWithoutCycleInput> | StrategicObjectiveCreateWithoutCycleInput[] | StrategicObjectiveUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: StrategicObjectiveCreateOrConnectWithoutCycleInput | StrategicObjectiveCreateOrConnectWithoutCycleInput[]
    createMany?: StrategicObjectiveCreateManyCycleInputEnvelope
    connect?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
  }

  export type Evaluation360TemplateCreateNestedManyWithoutCycleInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutCycleInput, Evaluation360TemplateUncheckedCreateWithoutCycleInput> | Evaluation360TemplateCreateWithoutCycleInput[] | Evaluation360TemplateUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutCycleInput | Evaluation360TemplateCreateOrConnectWithoutCycleInput[]
    createMany?: Evaluation360TemplateCreateManyCycleInputEnvelope
    connect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
  }

  export type PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput = {
    create?: XOR<PerformanceCycleCreateWithoutParentCycleInput, PerformanceCycleUncheckedCreateWithoutParentCycleInput> | PerformanceCycleCreateWithoutParentCycleInput[] | PerformanceCycleUncheckedCreateWithoutParentCycleInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutParentCycleInput | PerformanceCycleCreateOrConnectWithoutParentCycleInput[]
    createMany?: PerformanceCycleCreateManyParentCycleInputEnvelope
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
  }

  export type KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput = {
    create?: XOR<KpiAssignmentCreateWithoutCycleInput, KpiAssignmentUncheckedCreateWithoutCycleInput> | KpiAssignmentCreateWithoutCycleInput[] | KpiAssignmentUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutCycleInput | KpiAssignmentCreateOrConnectWithoutCycleInput[]
    createMany?: KpiAssignmentCreateManyCycleInputEnvelope
    connect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
  }

  export type Evaluation360UncheckedCreateNestedManyWithoutCycleInput = {
    create?: XOR<Evaluation360CreateWithoutCycleInput, Evaluation360UncheckedCreateWithoutCycleInput> | Evaluation360CreateWithoutCycleInput[] | Evaluation360UncheckedCreateWithoutCycleInput[]
    connectOrCreate?: Evaluation360CreateOrConnectWithoutCycleInput | Evaluation360CreateOrConnectWithoutCycleInput[]
    createMany?: Evaluation360CreateManyCycleInputEnvelope
    connect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
  }

  export type PerformanceResultUncheckedCreateNestedManyWithoutCycleInput = {
    create?: XOR<PerformanceResultCreateWithoutCycleInput, PerformanceResultUncheckedCreateWithoutCycleInput> | PerformanceResultCreateWithoutCycleInput[] | PerformanceResultUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutCycleInput | PerformanceResultCreateOrConnectWithoutCycleInput[]
    createMany?: PerformanceResultCreateManyCycleInputEnvelope
    connect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
  }

  export type StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput = {
    create?: XOR<StrategicObjectiveCreateWithoutCycleInput, StrategicObjectiveUncheckedCreateWithoutCycleInput> | StrategicObjectiveCreateWithoutCycleInput[] | StrategicObjectiveUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: StrategicObjectiveCreateOrConnectWithoutCycleInput | StrategicObjectiveCreateOrConnectWithoutCycleInput[]
    createMany?: StrategicObjectiveCreateManyCycleInputEnvelope
    connect?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
  }

  export type Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutCycleInput, Evaluation360TemplateUncheckedCreateWithoutCycleInput> | Evaluation360TemplateCreateWithoutCycleInput[] | Evaluation360TemplateUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutCycleInput | Evaluation360TemplateCreateOrConnectWithoutCycleInput[]
    createMany?: Evaluation360TemplateCreateManyCycleInputEnvelope
    connect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
  }

  export type EnumCycleTypeFieldUpdateOperationsInput = {
    set?: $Enums.CycleType
  }

  export type EnumCycleStatusFieldUpdateOperationsInput = {
    set?: $Enums.CycleStatus
  }

  export type OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput = {
    create?: XOR<OrganizationCreateWithoutPerformanceCyclesInput, OrganizationUncheckedCreateWithoutPerformanceCyclesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutPerformanceCyclesInput
    upsert?: OrganizationUpsertWithoutPerformanceCyclesInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutPerformanceCyclesInput, OrganizationUpdateWithoutPerformanceCyclesInput>, OrganizationUncheckedUpdateWithoutPerformanceCyclesInput>
  }

  export type GradeConfigUpdateOneWithoutCyclesNestedInput = {
    create?: XOR<GradeConfigCreateWithoutCyclesInput, GradeConfigUncheckedCreateWithoutCyclesInput>
    connectOrCreate?: GradeConfigCreateOrConnectWithoutCyclesInput
    upsert?: GradeConfigUpsertWithoutCyclesInput
    disconnect?: GradeConfigWhereInput | boolean
    delete?: GradeConfigWhereInput | boolean
    connect?: GradeConfigWhereUniqueInput
    update?: XOR<XOR<GradeConfigUpdateToOneWithWhereWithoutCyclesInput, GradeConfigUpdateWithoutCyclesInput>, GradeConfigUncheckedUpdateWithoutCyclesInput>
  }

  export type PerformanceCycleUpdateOneWithoutChildCyclesNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutChildCyclesInput, PerformanceCycleUncheckedCreateWithoutChildCyclesInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutChildCyclesInput
    upsert?: PerformanceCycleUpsertWithoutChildCyclesInput
    disconnect?: PerformanceCycleWhereInput | boolean
    delete?: PerformanceCycleWhereInput | boolean
    connect?: PerformanceCycleWhereUniqueInput
    update?: XOR<XOR<PerformanceCycleUpdateToOneWithWhereWithoutChildCyclesInput, PerformanceCycleUpdateWithoutChildCyclesInput>, PerformanceCycleUncheckedUpdateWithoutChildCyclesInput>
  }

  export type PerformanceCycleUpdateManyWithoutParentCycleNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutParentCycleInput, PerformanceCycleUncheckedCreateWithoutParentCycleInput> | PerformanceCycleCreateWithoutParentCycleInput[] | PerformanceCycleUncheckedCreateWithoutParentCycleInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutParentCycleInput | PerformanceCycleCreateOrConnectWithoutParentCycleInput[]
    upsert?: PerformanceCycleUpsertWithWhereUniqueWithoutParentCycleInput | PerformanceCycleUpsertWithWhereUniqueWithoutParentCycleInput[]
    createMany?: PerformanceCycleCreateManyParentCycleInputEnvelope
    set?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    disconnect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    delete?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    update?: PerformanceCycleUpdateWithWhereUniqueWithoutParentCycleInput | PerformanceCycleUpdateWithWhereUniqueWithoutParentCycleInput[]
    updateMany?: PerformanceCycleUpdateManyWithWhereWithoutParentCycleInput | PerformanceCycleUpdateManyWithWhereWithoutParentCycleInput[]
    deleteMany?: PerformanceCycleScalarWhereInput | PerformanceCycleScalarWhereInput[]
  }

  export type KpiAssignmentUpdateManyWithoutCycleNestedInput = {
    create?: XOR<KpiAssignmentCreateWithoutCycleInput, KpiAssignmentUncheckedCreateWithoutCycleInput> | KpiAssignmentCreateWithoutCycleInput[] | KpiAssignmentUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutCycleInput | KpiAssignmentCreateOrConnectWithoutCycleInput[]
    upsert?: KpiAssignmentUpsertWithWhereUniqueWithoutCycleInput | KpiAssignmentUpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: KpiAssignmentCreateManyCycleInputEnvelope
    set?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    disconnect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    delete?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    connect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    update?: KpiAssignmentUpdateWithWhereUniqueWithoutCycleInput | KpiAssignmentUpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: KpiAssignmentUpdateManyWithWhereWithoutCycleInput | KpiAssignmentUpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: KpiAssignmentScalarWhereInput | KpiAssignmentScalarWhereInput[]
  }

  export type Evaluation360UpdateManyWithoutCycleNestedInput = {
    create?: XOR<Evaluation360CreateWithoutCycleInput, Evaluation360UncheckedCreateWithoutCycleInput> | Evaluation360CreateWithoutCycleInput[] | Evaluation360UncheckedCreateWithoutCycleInput[]
    connectOrCreate?: Evaluation360CreateOrConnectWithoutCycleInput | Evaluation360CreateOrConnectWithoutCycleInput[]
    upsert?: Evaluation360UpsertWithWhereUniqueWithoutCycleInput | Evaluation360UpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: Evaluation360CreateManyCycleInputEnvelope
    set?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    disconnect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    delete?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    connect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    update?: Evaluation360UpdateWithWhereUniqueWithoutCycleInput | Evaluation360UpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: Evaluation360UpdateManyWithWhereWithoutCycleInput | Evaluation360UpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: Evaluation360ScalarWhereInput | Evaluation360ScalarWhereInput[]
  }

  export type PerformanceResultUpdateManyWithoutCycleNestedInput = {
    create?: XOR<PerformanceResultCreateWithoutCycleInput, PerformanceResultUncheckedCreateWithoutCycleInput> | PerformanceResultCreateWithoutCycleInput[] | PerformanceResultUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutCycleInput | PerformanceResultCreateOrConnectWithoutCycleInput[]
    upsert?: PerformanceResultUpsertWithWhereUniqueWithoutCycleInput | PerformanceResultUpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: PerformanceResultCreateManyCycleInputEnvelope
    set?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    disconnect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    delete?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    connect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    update?: PerformanceResultUpdateWithWhereUniqueWithoutCycleInput | PerformanceResultUpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: PerformanceResultUpdateManyWithWhereWithoutCycleInput | PerformanceResultUpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: PerformanceResultScalarWhereInput | PerformanceResultScalarWhereInput[]
  }

  export type StrategicObjectiveUpdateManyWithoutCycleNestedInput = {
    create?: XOR<StrategicObjectiveCreateWithoutCycleInput, StrategicObjectiveUncheckedCreateWithoutCycleInput> | StrategicObjectiveCreateWithoutCycleInput[] | StrategicObjectiveUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: StrategicObjectiveCreateOrConnectWithoutCycleInput | StrategicObjectiveCreateOrConnectWithoutCycleInput[]
    upsert?: StrategicObjectiveUpsertWithWhereUniqueWithoutCycleInput | StrategicObjectiveUpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: StrategicObjectiveCreateManyCycleInputEnvelope
    set?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
    disconnect?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
    delete?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
    connect?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
    update?: StrategicObjectiveUpdateWithWhereUniqueWithoutCycleInput | StrategicObjectiveUpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: StrategicObjectiveUpdateManyWithWhereWithoutCycleInput | StrategicObjectiveUpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: StrategicObjectiveScalarWhereInput | StrategicObjectiveScalarWhereInput[]
  }

  export type Evaluation360TemplateUpdateManyWithoutCycleNestedInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutCycleInput, Evaluation360TemplateUncheckedCreateWithoutCycleInput> | Evaluation360TemplateCreateWithoutCycleInput[] | Evaluation360TemplateUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutCycleInput | Evaluation360TemplateCreateOrConnectWithoutCycleInput[]
    upsert?: Evaluation360TemplateUpsertWithWhereUniqueWithoutCycleInput | Evaluation360TemplateUpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: Evaluation360TemplateCreateManyCycleInputEnvelope
    set?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    disconnect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    delete?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    connect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    update?: Evaluation360TemplateUpdateWithWhereUniqueWithoutCycleInput | Evaluation360TemplateUpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: Evaluation360TemplateUpdateManyWithWhereWithoutCycleInput | Evaluation360TemplateUpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: Evaluation360TemplateScalarWhereInput | Evaluation360TemplateScalarWhereInput[]
  }

  export type PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutParentCycleInput, PerformanceCycleUncheckedCreateWithoutParentCycleInput> | PerformanceCycleCreateWithoutParentCycleInput[] | PerformanceCycleUncheckedCreateWithoutParentCycleInput[]
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutParentCycleInput | PerformanceCycleCreateOrConnectWithoutParentCycleInput[]
    upsert?: PerformanceCycleUpsertWithWhereUniqueWithoutParentCycleInput | PerformanceCycleUpsertWithWhereUniqueWithoutParentCycleInput[]
    createMany?: PerformanceCycleCreateManyParentCycleInputEnvelope
    set?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    disconnect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    delete?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    connect?: PerformanceCycleWhereUniqueInput | PerformanceCycleWhereUniqueInput[]
    update?: PerformanceCycleUpdateWithWhereUniqueWithoutParentCycleInput | PerformanceCycleUpdateWithWhereUniqueWithoutParentCycleInput[]
    updateMany?: PerformanceCycleUpdateManyWithWhereWithoutParentCycleInput | PerformanceCycleUpdateManyWithWhereWithoutParentCycleInput[]
    deleteMany?: PerformanceCycleScalarWhereInput | PerformanceCycleScalarWhereInput[]
  }

  export type KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput = {
    create?: XOR<KpiAssignmentCreateWithoutCycleInput, KpiAssignmentUncheckedCreateWithoutCycleInput> | KpiAssignmentCreateWithoutCycleInput[] | KpiAssignmentUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutCycleInput | KpiAssignmentCreateOrConnectWithoutCycleInput[]
    upsert?: KpiAssignmentUpsertWithWhereUniqueWithoutCycleInput | KpiAssignmentUpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: KpiAssignmentCreateManyCycleInputEnvelope
    set?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    disconnect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    delete?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    connect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    update?: KpiAssignmentUpdateWithWhereUniqueWithoutCycleInput | KpiAssignmentUpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: KpiAssignmentUpdateManyWithWhereWithoutCycleInput | KpiAssignmentUpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: KpiAssignmentScalarWhereInput | KpiAssignmentScalarWhereInput[]
  }

  export type Evaluation360UncheckedUpdateManyWithoutCycleNestedInput = {
    create?: XOR<Evaluation360CreateWithoutCycleInput, Evaluation360UncheckedCreateWithoutCycleInput> | Evaluation360CreateWithoutCycleInput[] | Evaluation360UncheckedCreateWithoutCycleInput[]
    connectOrCreate?: Evaluation360CreateOrConnectWithoutCycleInput | Evaluation360CreateOrConnectWithoutCycleInput[]
    upsert?: Evaluation360UpsertWithWhereUniqueWithoutCycleInput | Evaluation360UpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: Evaluation360CreateManyCycleInputEnvelope
    set?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    disconnect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    delete?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    connect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    update?: Evaluation360UpdateWithWhereUniqueWithoutCycleInput | Evaluation360UpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: Evaluation360UpdateManyWithWhereWithoutCycleInput | Evaluation360UpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: Evaluation360ScalarWhereInput | Evaluation360ScalarWhereInput[]
  }

  export type PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput = {
    create?: XOR<PerformanceResultCreateWithoutCycleInput, PerformanceResultUncheckedCreateWithoutCycleInput> | PerformanceResultCreateWithoutCycleInput[] | PerformanceResultUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutCycleInput | PerformanceResultCreateOrConnectWithoutCycleInput[]
    upsert?: PerformanceResultUpsertWithWhereUniqueWithoutCycleInput | PerformanceResultUpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: PerformanceResultCreateManyCycleInputEnvelope
    set?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    disconnect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    delete?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    connect?: PerformanceResultWhereUniqueInput | PerformanceResultWhereUniqueInput[]
    update?: PerformanceResultUpdateWithWhereUniqueWithoutCycleInput | PerformanceResultUpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: PerformanceResultUpdateManyWithWhereWithoutCycleInput | PerformanceResultUpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: PerformanceResultScalarWhereInput | PerformanceResultScalarWhereInput[]
  }

  export type StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput = {
    create?: XOR<StrategicObjectiveCreateWithoutCycleInput, StrategicObjectiveUncheckedCreateWithoutCycleInput> | StrategicObjectiveCreateWithoutCycleInput[] | StrategicObjectiveUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: StrategicObjectiveCreateOrConnectWithoutCycleInput | StrategicObjectiveCreateOrConnectWithoutCycleInput[]
    upsert?: StrategicObjectiveUpsertWithWhereUniqueWithoutCycleInput | StrategicObjectiveUpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: StrategicObjectiveCreateManyCycleInputEnvelope
    set?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
    disconnect?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
    delete?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
    connect?: StrategicObjectiveWhereUniqueInput | StrategicObjectiveWhereUniqueInput[]
    update?: StrategicObjectiveUpdateWithWhereUniqueWithoutCycleInput | StrategicObjectiveUpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: StrategicObjectiveUpdateManyWithWhereWithoutCycleInput | StrategicObjectiveUpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: StrategicObjectiveScalarWhereInput | StrategicObjectiveScalarWhereInput[]
  }

  export type Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutCycleInput, Evaluation360TemplateUncheckedCreateWithoutCycleInput> | Evaluation360TemplateCreateWithoutCycleInput[] | Evaluation360TemplateUncheckedCreateWithoutCycleInput[]
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutCycleInput | Evaluation360TemplateCreateOrConnectWithoutCycleInput[]
    upsert?: Evaluation360TemplateUpsertWithWhereUniqueWithoutCycleInput | Evaluation360TemplateUpsertWithWhereUniqueWithoutCycleInput[]
    createMany?: Evaluation360TemplateCreateManyCycleInputEnvelope
    set?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    disconnect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    delete?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    connect?: Evaluation360TemplateWhereUniqueInput | Evaluation360TemplateWhereUniqueInput[]
    update?: Evaluation360TemplateUpdateWithWhereUniqueWithoutCycleInput | Evaluation360TemplateUpdateWithWhereUniqueWithoutCycleInput[]
    updateMany?: Evaluation360TemplateUpdateManyWithWhereWithoutCycleInput | Evaluation360TemplateUpdateManyWithWhereWithoutCycleInput[]
    deleteMany?: Evaluation360TemplateScalarWhereInput | Evaluation360TemplateScalarWhereInput[]
  }

  export type PerformanceCycleCreateNestedOneWithoutResultsInput = {
    create?: XOR<PerformanceCycleCreateWithoutResultsInput, PerformanceCycleUncheckedCreateWithoutResultsInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutResultsInput
    connect?: PerformanceCycleWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutPerformanceResultsInput = {
    create?: XOR<OrganizationCreateWithoutPerformanceResultsInput, OrganizationUncheckedCreateWithoutPerformanceResultsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutPerformanceResultsInput
    connect?: OrganizationWhereUniqueInput
  }

  export type GradeAdjustmentLogCreateNestedManyWithoutResultInput = {
    create?: XOR<GradeAdjustmentLogCreateWithoutResultInput, GradeAdjustmentLogUncheckedCreateWithoutResultInput> | GradeAdjustmentLogCreateWithoutResultInput[] | GradeAdjustmentLogUncheckedCreateWithoutResultInput[]
    connectOrCreate?: GradeAdjustmentLogCreateOrConnectWithoutResultInput | GradeAdjustmentLogCreateOrConnectWithoutResultInput[]
    createMany?: GradeAdjustmentLogCreateManyResultInputEnvelope
    connect?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
  }

  export type GradeAdjustmentLogUncheckedCreateNestedManyWithoutResultInput = {
    create?: XOR<GradeAdjustmentLogCreateWithoutResultInput, GradeAdjustmentLogUncheckedCreateWithoutResultInput> | GradeAdjustmentLogCreateWithoutResultInput[] | GradeAdjustmentLogUncheckedCreateWithoutResultInput[]
    connectOrCreate?: GradeAdjustmentLogCreateOrConnectWithoutResultInput | GradeAdjustmentLogCreateOrConnectWithoutResultInput[]
    createMany?: GradeAdjustmentLogCreateManyResultInputEnvelope
    connect?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
  }

  export type EnumResultConfirmStatusFieldUpdateOperationsInput = {
    set?: $Enums.ResultConfirmStatus
  }

  export type PerformanceCycleUpdateOneRequiredWithoutResultsNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutResultsInput, PerformanceCycleUncheckedCreateWithoutResultsInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutResultsInput
    upsert?: PerformanceCycleUpsertWithoutResultsInput
    connect?: PerformanceCycleWhereUniqueInput
    update?: XOR<XOR<PerformanceCycleUpdateToOneWithWhereWithoutResultsInput, PerformanceCycleUpdateWithoutResultsInput>, PerformanceCycleUncheckedUpdateWithoutResultsInput>
  }

  export type OrganizationUpdateOneRequiredWithoutPerformanceResultsNestedInput = {
    create?: XOR<OrganizationCreateWithoutPerformanceResultsInput, OrganizationUncheckedCreateWithoutPerformanceResultsInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutPerformanceResultsInput
    upsert?: OrganizationUpsertWithoutPerformanceResultsInput
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutPerformanceResultsInput, OrganizationUpdateWithoutPerformanceResultsInput>, OrganizationUncheckedUpdateWithoutPerformanceResultsInput>
  }

  export type GradeAdjustmentLogUpdateManyWithoutResultNestedInput = {
    create?: XOR<GradeAdjustmentLogCreateWithoutResultInput, GradeAdjustmentLogUncheckedCreateWithoutResultInput> | GradeAdjustmentLogCreateWithoutResultInput[] | GradeAdjustmentLogUncheckedCreateWithoutResultInput[]
    connectOrCreate?: GradeAdjustmentLogCreateOrConnectWithoutResultInput | GradeAdjustmentLogCreateOrConnectWithoutResultInput[]
    upsert?: GradeAdjustmentLogUpsertWithWhereUniqueWithoutResultInput | GradeAdjustmentLogUpsertWithWhereUniqueWithoutResultInput[]
    createMany?: GradeAdjustmentLogCreateManyResultInputEnvelope
    set?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
    disconnect?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
    delete?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
    connect?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
    update?: GradeAdjustmentLogUpdateWithWhereUniqueWithoutResultInput | GradeAdjustmentLogUpdateWithWhereUniqueWithoutResultInput[]
    updateMany?: GradeAdjustmentLogUpdateManyWithWhereWithoutResultInput | GradeAdjustmentLogUpdateManyWithWhereWithoutResultInput[]
    deleteMany?: GradeAdjustmentLogScalarWhereInput | GradeAdjustmentLogScalarWhereInput[]
  }

  export type GradeAdjustmentLogUncheckedUpdateManyWithoutResultNestedInput = {
    create?: XOR<GradeAdjustmentLogCreateWithoutResultInput, GradeAdjustmentLogUncheckedCreateWithoutResultInput> | GradeAdjustmentLogCreateWithoutResultInput[] | GradeAdjustmentLogUncheckedCreateWithoutResultInput[]
    connectOrCreate?: GradeAdjustmentLogCreateOrConnectWithoutResultInput | GradeAdjustmentLogCreateOrConnectWithoutResultInput[]
    upsert?: GradeAdjustmentLogUpsertWithWhereUniqueWithoutResultInput | GradeAdjustmentLogUpsertWithWhereUniqueWithoutResultInput[]
    createMany?: GradeAdjustmentLogCreateManyResultInputEnvelope
    set?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
    disconnect?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
    delete?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
    connect?: GradeAdjustmentLogWhereUniqueInput | GradeAdjustmentLogWhereUniqueInput[]
    update?: GradeAdjustmentLogUpdateWithWhereUniqueWithoutResultInput | GradeAdjustmentLogUpdateWithWhereUniqueWithoutResultInput[]
    updateMany?: GradeAdjustmentLogUpdateManyWithWhereWithoutResultInput | GradeAdjustmentLogUpdateManyWithWhereWithoutResultInput[]
    deleteMany?: GradeAdjustmentLogScalarWhereInput | GradeAdjustmentLogScalarWhereInput[]
  }

  export type PerformanceCycleCreateNestedOneWithoutKpiAssignmentsInput = {
    create?: XOR<PerformanceCycleCreateWithoutKpiAssignmentsInput, PerformanceCycleUncheckedCreateWithoutKpiAssignmentsInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutKpiAssignmentsInput
    connect?: PerformanceCycleWhereUniqueInput
  }

  export type KpiAssignmentCreateNestedOneWithoutChildrenInput = {
    create?: XOR<KpiAssignmentCreateWithoutChildrenInput, KpiAssignmentUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutChildrenInput
    connect?: KpiAssignmentWhereUniqueInput
  }

  export type KpiAssignmentCreateNestedManyWithoutParentInput = {
    create?: XOR<KpiAssignmentCreateWithoutParentInput, KpiAssignmentUncheckedCreateWithoutParentInput> | KpiAssignmentCreateWithoutParentInput[] | KpiAssignmentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutParentInput | KpiAssignmentCreateOrConnectWithoutParentInput[]
    createMany?: KpiAssignmentCreateManyParentInputEnvelope
    connect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
  }

  export type KpiAssessmentCreateNestedOneWithoutAssignmentInput = {
    create?: XOR<KpiAssessmentCreateWithoutAssignmentInput, KpiAssessmentUncheckedCreateWithoutAssignmentInput>
    connectOrCreate?: KpiAssessmentCreateOrConnectWithoutAssignmentInput
    connect?: KpiAssessmentWhereUniqueInput
  }

  export type KpiDependencyCreateNestedManyWithoutSourceAssignmentInput = {
    create?: XOR<KpiDependencyCreateWithoutSourceAssignmentInput, KpiDependencyUncheckedCreateWithoutSourceAssignmentInput> | KpiDependencyCreateWithoutSourceAssignmentInput[] | KpiDependencyUncheckedCreateWithoutSourceAssignmentInput[]
    connectOrCreate?: KpiDependencyCreateOrConnectWithoutSourceAssignmentInput | KpiDependencyCreateOrConnectWithoutSourceAssignmentInput[]
    createMany?: KpiDependencyCreateManySourceAssignmentInputEnvelope
    connect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
  }

  export type KpiDependencyCreateNestedManyWithoutTargetAssignmentInput = {
    create?: XOR<KpiDependencyCreateWithoutTargetAssignmentInput, KpiDependencyUncheckedCreateWithoutTargetAssignmentInput> | KpiDependencyCreateWithoutTargetAssignmentInput[] | KpiDependencyUncheckedCreateWithoutTargetAssignmentInput[]
    connectOrCreate?: KpiDependencyCreateOrConnectWithoutTargetAssignmentInput | KpiDependencyCreateOrConnectWithoutTargetAssignmentInput[]
    createMany?: KpiDependencyCreateManyTargetAssignmentInputEnvelope
    connect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
  }

  export type KpiAssignmentUncheckedCreateNestedManyWithoutParentInput = {
    create?: XOR<KpiAssignmentCreateWithoutParentInput, KpiAssignmentUncheckedCreateWithoutParentInput> | KpiAssignmentCreateWithoutParentInput[] | KpiAssignmentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutParentInput | KpiAssignmentCreateOrConnectWithoutParentInput[]
    createMany?: KpiAssignmentCreateManyParentInputEnvelope
    connect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
  }

  export type KpiAssessmentUncheckedCreateNestedOneWithoutAssignmentInput = {
    create?: XOR<KpiAssessmentCreateWithoutAssignmentInput, KpiAssessmentUncheckedCreateWithoutAssignmentInput>
    connectOrCreate?: KpiAssessmentCreateOrConnectWithoutAssignmentInput
    connect?: KpiAssessmentWhereUniqueInput
  }

  export type KpiDependencyUncheckedCreateNestedManyWithoutSourceAssignmentInput = {
    create?: XOR<KpiDependencyCreateWithoutSourceAssignmentInput, KpiDependencyUncheckedCreateWithoutSourceAssignmentInput> | KpiDependencyCreateWithoutSourceAssignmentInput[] | KpiDependencyUncheckedCreateWithoutSourceAssignmentInput[]
    connectOrCreate?: KpiDependencyCreateOrConnectWithoutSourceAssignmentInput | KpiDependencyCreateOrConnectWithoutSourceAssignmentInput[]
    createMany?: KpiDependencyCreateManySourceAssignmentInputEnvelope
    connect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
  }

  export type KpiDependencyUncheckedCreateNestedManyWithoutTargetAssignmentInput = {
    create?: XOR<KpiDependencyCreateWithoutTargetAssignmentInput, KpiDependencyUncheckedCreateWithoutTargetAssignmentInput> | KpiDependencyCreateWithoutTargetAssignmentInput[] | KpiDependencyUncheckedCreateWithoutTargetAssignmentInput[]
    connectOrCreate?: KpiDependencyCreateOrConnectWithoutTargetAssignmentInput | KpiDependencyCreateOrConnectWithoutTargetAssignmentInput[]
    createMany?: KpiDependencyCreateManyTargetAssignmentInputEnvelope
    connect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
  }

  export type EnumKpiAssignmentStatusFieldUpdateOperationsInput = {
    set?: $Enums.KpiAssignmentStatus
  }

  export type PerformanceCycleUpdateOneRequiredWithoutKpiAssignmentsNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutKpiAssignmentsInput, PerformanceCycleUncheckedCreateWithoutKpiAssignmentsInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutKpiAssignmentsInput
    upsert?: PerformanceCycleUpsertWithoutKpiAssignmentsInput
    connect?: PerformanceCycleWhereUniqueInput
    update?: XOR<XOR<PerformanceCycleUpdateToOneWithWhereWithoutKpiAssignmentsInput, PerformanceCycleUpdateWithoutKpiAssignmentsInput>, PerformanceCycleUncheckedUpdateWithoutKpiAssignmentsInput>
  }

  export type KpiAssignmentUpdateOneWithoutChildrenNestedInput = {
    create?: XOR<KpiAssignmentCreateWithoutChildrenInput, KpiAssignmentUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutChildrenInput
    upsert?: KpiAssignmentUpsertWithoutChildrenInput
    disconnect?: KpiAssignmentWhereInput | boolean
    delete?: KpiAssignmentWhereInput | boolean
    connect?: KpiAssignmentWhereUniqueInput
    update?: XOR<XOR<KpiAssignmentUpdateToOneWithWhereWithoutChildrenInput, KpiAssignmentUpdateWithoutChildrenInput>, KpiAssignmentUncheckedUpdateWithoutChildrenInput>
  }

  export type KpiAssignmentUpdateManyWithoutParentNestedInput = {
    create?: XOR<KpiAssignmentCreateWithoutParentInput, KpiAssignmentUncheckedCreateWithoutParentInput> | KpiAssignmentCreateWithoutParentInput[] | KpiAssignmentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutParentInput | KpiAssignmentCreateOrConnectWithoutParentInput[]
    upsert?: KpiAssignmentUpsertWithWhereUniqueWithoutParentInput | KpiAssignmentUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: KpiAssignmentCreateManyParentInputEnvelope
    set?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    disconnect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    delete?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    connect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    update?: KpiAssignmentUpdateWithWhereUniqueWithoutParentInput | KpiAssignmentUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: KpiAssignmentUpdateManyWithWhereWithoutParentInput | KpiAssignmentUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: KpiAssignmentScalarWhereInput | KpiAssignmentScalarWhereInput[]
  }

  export type KpiAssessmentUpdateOneWithoutAssignmentNestedInput = {
    create?: XOR<KpiAssessmentCreateWithoutAssignmentInput, KpiAssessmentUncheckedCreateWithoutAssignmentInput>
    connectOrCreate?: KpiAssessmentCreateOrConnectWithoutAssignmentInput
    upsert?: KpiAssessmentUpsertWithoutAssignmentInput
    disconnect?: KpiAssessmentWhereInput | boolean
    delete?: KpiAssessmentWhereInput | boolean
    connect?: KpiAssessmentWhereUniqueInput
    update?: XOR<XOR<KpiAssessmentUpdateToOneWithWhereWithoutAssignmentInput, KpiAssessmentUpdateWithoutAssignmentInput>, KpiAssessmentUncheckedUpdateWithoutAssignmentInput>
  }

  export type KpiDependencyUpdateManyWithoutSourceAssignmentNestedInput = {
    create?: XOR<KpiDependencyCreateWithoutSourceAssignmentInput, KpiDependencyUncheckedCreateWithoutSourceAssignmentInput> | KpiDependencyCreateWithoutSourceAssignmentInput[] | KpiDependencyUncheckedCreateWithoutSourceAssignmentInput[]
    connectOrCreate?: KpiDependencyCreateOrConnectWithoutSourceAssignmentInput | KpiDependencyCreateOrConnectWithoutSourceAssignmentInput[]
    upsert?: KpiDependencyUpsertWithWhereUniqueWithoutSourceAssignmentInput | KpiDependencyUpsertWithWhereUniqueWithoutSourceAssignmentInput[]
    createMany?: KpiDependencyCreateManySourceAssignmentInputEnvelope
    set?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    disconnect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    delete?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    connect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    update?: KpiDependencyUpdateWithWhereUniqueWithoutSourceAssignmentInput | KpiDependencyUpdateWithWhereUniqueWithoutSourceAssignmentInput[]
    updateMany?: KpiDependencyUpdateManyWithWhereWithoutSourceAssignmentInput | KpiDependencyUpdateManyWithWhereWithoutSourceAssignmentInput[]
    deleteMany?: KpiDependencyScalarWhereInput | KpiDependencyScalarWhereInput[]
  }

  export type KpiDependencyUpdateManyWithoutTargetAssignmentNestedInput = {
    create?: XOR<KpiDependencyCreateWithoutTargetAssignmentInput, KpiDependencyUncheckedCreateWithoutTargetAssignmentInput> | KpiDependencyCreateWithoutTargetAssignmentInput[] | KpiDependencyUncheckedCreateWithoutTargetAssignmentInput[]
    connectOrCreate?: KpiDependencyCreateOrConnectWithoutTargetAssignmentInput | KpiDependencyCreateOrConnectWithoutTargetAssignmentInput[]
    upsert?: KpiDependencyUpsertWithWhereUniqueWithoutTargetAssignmentInput | KpiDependencyUpsertWithWhereUniqueWithoutTargetAssignmentInput[]
    createMany?: KpiDependencyCreateManyTargetAssignmentInputEnvelope
    set?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    disconnect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    delete?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    connect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    update?: KpiDependencyUpdateWithWhereUniqueWithoutTargetAssignmentInput | KpiDependencyUpdateWithWhereUniqueWithoutTargetAssignmentInput[]
    updateMany?: KpiDependencyUpdateManyWithWhereWithoutTargetAssignmentInput | KpiDependencyUpdateManyWithWhereWithoutTargetAssignmentInput[]
    deleteMany?: KpiDependencyScalarWhereInput | KpiDependencyScalarWhereInput[]
  }

  export type KpiAssignmentUncheckedUpdateManyWithoutParentNestedInput = {
    create?: XOR<KpiAssignmentCreateWithoutParentInput, KpiAssignmentUncheckedCreateWithoutParentInput> | KpiAssignmentCreateWithoutParentInput[] | KpiAssignmentUncheckedCreateWithoutParentInput[]
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutParentInput | KpiAssignmentCreateOrConnectWithoutParentInput[]
    upsert?: KpiAssignmentUpsertWithWhereUniqueWithoutParentInput | KpiAssignmentUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: KpiAssignmentCreateManyParentInputEnvelope
    set?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    disconnect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    delete?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    connect?: KpiAssignmentWhereUniqueInput | KpiAssignmentWhereUniqueInput[]
    update?: KpiAssignmentUpdateWithWhereUniqueWithoutParentInput | KpiAssignmentUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: KpiAssignmentUpdateManyWithWhereWithoutParentInput | KpiAssignmentUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: KpiAssignmentScalarWhereInput | KpiAssignmentScalarWhereInput[]
  }

  export type KpiAssessmentUncheckedUpdateOneWithoutAssignmentNestedInput = {
    create?: XOR<KpiAssessmentCreateWithoutAssignmentInput, KpiAssessmentUncheckedCreateWithoutAssignmentInput>
    connectOrCreate?: KpiAssessmentCreateOrConnectWithoutAssignmentInput
    upsert?: KpiAssessmentUpsertWithoutAssignmentInput
    disconnect?: KpiAssessmentWhereInput | boolean
    delete?: KpiAssessmentWhereInput | boolean
    connect?: KpiAssessmentWhereUniqueInput
    update?: XOR<XOR<KpiAssessmentUpdateToOneWithWhereWithoutAssignmentInput, KpiAssessmentUpdateWithoutAssignmentInput>, KpiAssessmentUncheckedUpdateWithoutAssignmentInput>
  }

  export type KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentNestedInput = {
    create?: XOR<KpiDependencyCreateWithoutSourceAssignmentInput, KpiDependencyUncheckedCreateWithoutSourceAssignmentInput> | KpiDependencyCreateWithoutSourceAssignmentInput[] | KpiDependencyUncheckedCreateWithoutSourceAssignmentInput[]
    connectOrCreate?: KpiDependencyCreateOrConnectWithoutSourceAssignmentInput | KpiDependencyCreateOrConnectWithoutSourceAssignmentInput[]
    upsert?: KpiDependencyUpsertWithWhereUniqueWithoutSourceAssignmentInput | KpiDependencyUpsertWithWhereUniqueWithoutSourceAssignmentInput[]
    createMany?: KpiDependencyCreateManySourceAssignmentInputEnvelope
    set?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    disconnect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    delete?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    connect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    update?: KpiDependencyUpdateWithWhereUniqueWithoutSourceAssignmentInput | KpiDependencyUpdateWithWhereUniqueWithoutSourceAssignmentInput[]
    updateMany?: KpiDependencyUpdateManyWithWhereWithoutSourceAssignmentInput | KpiDependencyUpdateManyWithWhereWithoutSourceAssignmentInput[]
    deleteMany?: KpiDependencyScalarWhereInput | KpiDependencyScalarWhereInput[]
  }

  export type KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentNestedInput = {
    create?: XOR<KpiDependencyCreateWithoutTargetAssignmentInput, KpiDependencyUncheckedCreateWithoutTargetAssignmentInput> | KpiDependencyCreateWithoutTargetAssignmentInput[] | KpiDependencyUncheckedCreateWithoutTargetAssignmentInput[]
    connectOrCreate?: KpiDependencyCreateOrConnectWithoutTargetAssignmentInput | KpiDependencyCreateOrConnectWithoutTargetAssignmentInput[]
    upsert?: KpiDependencyUpsertWithWhereUniqueWithoutTargetAssignmentInput | KpiDependencyUpsertWithWhereUniqueWithoutTargetAssignmentInput[]
    createMany?: KpiDependencyCreateManyTargetAssignmentInputEnvelope
    set?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    disconnect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    delete?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    connect?: KpiDependencyWhereUniqueInput | KpiDependencyWhereUniqueInput[]
    update?: KpiDependencyUpdateWithWhereUniqueWithoutTargetAssignmentInput | KpiDependencyUpdateWithWhereUniqueWithoutTargetAssignmentInput[]
    updateMany?: KpiDependencyUpdateManyWithWhereWithoutTargetAssignmentInput | KpiDependencyUpdateManyWithWhereWithoutTargetAssignmentInput[]
    deleteMany?: KpiDependencyScalarWhereInput | KpiDependencyScalarWhereInput[]
  }

  export type KpiAssignmentCreateNestedOneWithoutOutgoingDependenciesInput = {
    create?: XOR<KpiAssignmentCreateWithoutOutgoingDependenciesInput, KpiAssignmentUncheckedCreateWithoutOutgoingDependenciesInput>
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutOutgoingDependenciesInput
    connect?: KpiAssignmentWhereUniqueInput
  }

  export type KpiAssignmentCreateNestedOneWithoutIncomingDependenciesInput = {
    create?: XOR<KpiAssignmentCreateWithoutIncomingDependenciesInput, KpiAssignmentUncheckedCreateWithoutIncomingDependenciesInput>
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutIncomingDependenciesInput
    connect?: KpiAssignmentWhereUniqueInput
  }

  export type EnumKpiDependencyStatusFieldUpdateOperationsInput = {
    set?: $Enums.KpiDependencyStatus
  }

  export type KpiAssignmentUpdateOneRequiredWithoutOutgoingDependenciesNestedInput = {
    create?: XOR<KpiAssignmentCreateWithoutOutgoingDependenciesInput, KpiAssignmentUncheckedCreateWithoutOutgoingDependenciesInput>
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutOutgoingDependenciesInput
    upsert?: KpiAssignmentUpsertWithoutOutgoingDependenciesInput
    connect?: KpiAssignmentWhereUniqueInput
    update?: XOR<XOR<KpiAssignmentUpdateToOneWithWhereWithoutOutgoingDependenciesInput, KpiAssignmentUpdateWithoutOutgoingDependenciesInput>, KpiAssignmentUncheckedUpdateWithoutOutgoingDependenciesInput>
  }

  export type KpiAssignmentUpdateOneWithoutIncomingDependenciesNestedInput = {
    create?: XOR<KpiAssignmentCreateWithoutIncomingDependenciesInput, KpiAssignmentUncheckedCreateWithoutIncomingDependenciesInput>
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutIncomingDependenciesInput
    upsert?: KpiAssignmentUpsertWithoutIncomingDependenciesInput
    disconnect?: KpiAssignmentWhereInput | boolean
    delete?: KpiAssignmentWhereInput | boolean
    connect?: KpiAssignmentWhereUniqueInput
    update?: XOR<XOR<KpiAssignmentUpdateToOneWithWhereWithoutIncomingDependenciesInput, KpiAssignmentUpdateWithoutIncomingDependenciesInput>, KpiAssignmentUncheckedUpdateWithoutIncomingDependenciesInput>
  }

  export type KpiAssignmentCreateNestedOneWithoutAssessmentInput = {
    create?: XOR<KpiAssignmentCreateWithoutAssessmentInput, KpiAssignmentUncheckedCreateWithoutAssessmentInput>
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutAssessmentInput
    connect?: KpiAssignmentWhereUniqueInput
  }

  export type EnumKpiAssessmentStatusFieldUpdateOperationsInput = {
    set?: $Enums.KpiAssessmentStatus
  }

  export type KpiAssignmentUpdateOneRequiredWithoutAssessmentNestedInput = {
    create?: XOR<KpiAssignmentCreateWithoutAssessmentInput, KpiAssignmentUncheckedCreateWithoutAssessmentInput>
    connectOrCreate?: KpiAssignmentCreateOrConnectWithoutAssessmentInput
    upsert?: KpiAssignmentUpsertWithoutAssessmentInput
    connect?: KpiAssignmentWhereUniqueInput
    update?: XOR<XOR<KpiAssignmentUpdateToOneWithWhereWithoutAssessmentInput, KpiAssignmentUpdateWithoutAssessmentInput>, KpiAssignmentUncheckedUpdateWithoutAssessmentInput>
  }

  export type PerformanceCycleCreateNestedOneWithoutEvaluationsInput = {
    create?: XOR<PerformanceCycleCreateWithoutEvaluationsInput, PerformanceCycleUncheckedCreateWithoutEvaluationsInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutEvaluationsInput
    connect?: PerformanceCycleWhereUniqueInput
  }

  export type Evaluation360TemplateCreateNestedOneWithoutEvaluationsInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutEvaluationsInput, Evaluation360TemplateUncheckedCreateWithoutEvaluationsInput>
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutEvaluationsInput
    connect?: Evaluation360TemplateWhereUniqueInput
  }

  export type EvaluationTaskCreateNestedManyWithoutEvaluationInput = {
    create?: XOR<EvaluationTaskCreateWithoutEvaluationInput, EvaluationTaskUncheckedCreateWithoutEvaluationInput> | EvaluationTaskCreateWithoutEvaluationInput[] | EvaluationTaskUncheckedCreateWithoutEvaluationInput[]
    connectOrCreate?: EvaluationTaskCreateOrConnectWithoutEvaluationInput | EvaluationTaskCreateOrConnectWithoutEvaluationInput[]
    createMany?: EvaluationTaskCreateManyEvaluationInputEnvelope
    connect?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
  }

  export type EvaluationTaskUncheckedCreateNestedManyWithoutEvaluationInput = {
    create?: XOR<EvaluationTaskCreateWithoutEvaluationInput, EvaluationTaskUncheckedCreateWithoutEvaluationInput> | EvaluationTaskCreateWithoutEvaluationInput[] | EvaluationTaskUncheckedCreateWithoutEvaluationInput[]
    connectOrCreate?: EvaluationTaskCreateOrConnectWithoutEvaluationInput | EvaluationTaskCreateOrConnectWithoutEvaluationInput[]
    createMany?: EvaluationTaskCreateManyEvaluationInputEnvelope
    connect?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
  }

  export type EnumEvaluation360StatusFieldUpdateOperationsInput = {
    set?: $Enums.Evaluation360Status
  }

  export type PerformanceCycleUpdateOneRequiredWithoutEvaluationsNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutEvaluationsInput, PerformanceCycleUncheckedCreateWithoutEvaluationsInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutEvaluationsInput
    upsert?: PerformanceCycleUpsertWithoutEvaluationsInput
    connect?: PerformanceCycleWhereUniqueInput
    update?: XOR<XOR<PerformanceCycleUpdateToOneWithWhereWithoutEvaluationsInput, PerformanceCycleUpdateWithoutEvaluationsInput>, PerformanceCycleUncheckedUpdateWithoutEvaluationsInput>
  }

  export type Evaluation360TemplateUpdateOneWithoutEvaluationsNestedInput = {
    create?: XOR<Evaluation360TemplateCreateWithoutEvaluationsInput, Evaluation360TemplateUncheckedCreateWithoutEvaluationsInput>
    connectOrCreate?: Evaluation360TemplateCreateOrConnectWithoutEvaluationsInput
    upsert?: Evaluation360TemplateUpsertWithoutEvaluationsInput
    disconnect?: Evaluation360TemplateWhereInput | boolean
    delete?: Evaluation360TemplateWhereInput | boolean
    connect?: Evaluation360TemplateWhereUniqueInput
    update?: XOR<XOR<Evaluation360TemplateUpdateToOneWithWhereWithoutEvaluationsInput, Evaluation360TemplateUpdateWithoutEvaluationsInput>, Evaluation360TemplateUncheckedUpdateWithoutEvaluationsInput>
  }

  export type EvaluationTaskUpdateManyWithoutEvaluationNestedInput = {
    create?: XOR<EvaluationTaskCreateWithoutEvaluationInput, EvaluationTaskUncheckedCreateWithoutEvaluationInput> | EvaluationTaskCreateWithoutEvaluationInput[] | EvaluationTaskUncheckedCreateWithoutEvaluationInput[]
    connectOrCreate?: EvaluationTaskCreateOrConnectWithoutEvaluationInput | EvaluationTaskCreateOrConnectWithoutEvaluationInput[]
    upsert?: EvaluationTaskUpsertWithWhereUniqueWithoutEvaluationInput | EvaluationTaskUpsertWithWhereUniqueWithoutEvaluationInput[]
    createMany?: EvaluationTaskCreateManyEvaluationInputEnvelope
    set?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
    disconnect?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
    delete?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
    connect?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
    update?: EvaluationTaskUpdateWithWhereUniqueWithoutEvaluationInput | EvaluationTaskUpdateWithWhereUniqueWithoutEvaluationInput[]
    updateMany?: EvaluationTaskUpdateManyWithWhereWithoutEvaluationInput | EvaluationTaskUpdateManyWithWhereWithoutEvaluationInput[]
    deleteMany?: EvaluationTaskScalarWhereInput | EvaluationTaskScalarWhereInput[]
  }

  export type EvaluationTaskUncheckedUpdateManyWithoutEvaluationNestedInput = {
    create?: XOR<EvaluationTaskCreateWithoutEvaluationInput, EvaluationTaskUncheckedCreateWithoutEvaluationInput> | EvaluationTaskCreateWithoutEvaluationInput[] | EvaluationTaskUncheckedCreateWithoutEvaluationInput[]
    connectOrCreate?: EvaluationTaskCreateOrConnectWithoutEvaluationInput | EvaluationTaskCreateOrConnectWithoutEvaluationInput[]
    upsert?: EvaluationTaskUpsertWithWhereUniqueWithoutEvaluationInput | EvaluationTaskUpsertWithWhereUniqueWithoutEvaluationInput[]
    createMany?: EvaluationTaskCreateManyEvaluationInputEnvelope
    set?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
    disconnect?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
    delete?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
    connect?: EvaluationTaskWhereUniqueInput | EvaluationTaskWhereUniqueInput[]
    update?: EvaluationTaskUpdateWithWhereUniqueWithoutEvaluationInput | EvaluationTaskUpdateWithWhereUniqueWithoutEvaluationInput[]
    updateMany?: EvaluationTaskUpdateManyWithWhereWithoutEvaluationInput | EvaluationTaskUpdateManyWithWhereWithoutEvaluationInput[]
    deleteMany?: EvaluationTaskScalarWhereInput | EvaluationTaskScalarWhereInput[]
  }

  export type Evaluation360CreateNestedOneWithoutTasksInput = {
    create?: XOR<Evaluation360CreateWithoutTasksInput, Evaluation360UncheckedCreateWithoutTasksInput>
    connectOrCreate?: Evaluation360CreateOrConnectWithoutTasksInput
    connect?: Evaluation360WhereUniqueInput
  }

  export type EvaluationResponseCreateNestedManyWithoutTaskInput = {
    create?: XOR<EvaluationResponseCreateWithoutTaskInput, EvaluationResponseUncheckedCreateWithoutTaskInput> | EvaluationResponseCreateWithoutTaskInput[] | EvaluationResponseUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: EvaluationResponseCreateOrConnectWithoutTaskInput | EvaluationResponseCreateOrConnectWithoutTaskInput[]
    createMany?: EvaluationResponseCreateManyTaskInputEnvelope
    connect?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
  }

  export type EvaluationResponseUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<EvaluationResponseCreateWithoutTaskInput, EvaluationResponseUncheckedCreateWithoutTaskInput> | EvaluationResponseCreateWithoutTaskInput[] | EvaluationResponseUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: EvaluationResponseCreateOrConnectWithoutTaskInput | EvaluationResponseCreateOrConnectWithoutTaskInput[]
    createMany?: EvaluationResponseCreateManyTaskInputEnvelope
    connect?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
  }

  export type EnumRelationTypeFieldUpdateOperationsInput = {
    set?: $Enums.RelationType
  }

  export type EnumEvaluationTaskStatusFieldUpdateOperationsInput = {
    set?: $Enums.EvaluationTaskStatus
  }

  export type Evaluation360UpdateOneRequiredWithoutTasksNestedInput = {
    create?: XOR<Evaluation360CreateWithoutTasksInput, Evaluation360UncheckedCreateWithoutTasksInput>
    connectOrCreate?: Evaluation360CreateOrConnectWithoutTasksInput
    upsert?: Evaluation360UpsertWithoutTasksInput
    connect?: Evaluation360WhereUniqueInput
    update?: XOR<XOR<Evaluation360UpdateToOneWithWhereWithoutTasksInput, Evaluation360UpdateWithoutTasksInput>, Evaluation360UncheckedUpdateWithoutTasksInput>
  }

  export type EvaluationResponseUpdateManyWithoutTaskNestedInput = {
    create?: XOR<EvaluationResponseCreateWithoutTaskInput, EvaluationResponseUncheckedCreateWithoutTaskInput> | EvaluationResponseCreateWithoutTaskInput[] | EvaluationResponseUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: EvaluationResponseCreateOrConnectWithoutTaskInput | EvaluationResponseCreateOrConnectWithoutTaskInput[]
    upsert?: EvaluationResponseUpsertWithWhereUniqueWithoutTaskInput | EvaluationResponseUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: EvaluationResponseCreateManyTaskInputEnvelope
    set?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
    disconnect?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
    delete?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
    connect?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
    update?: EvaluationResponseUpdateWithWhereUniqueWithoutTaskInput | EvaluationResponseUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: EvaluationResponseUpdateManyWithWhereWithoutTaskInput | EvaluationResponseUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: EvaluationResponseScalarWhereInput | EvaluationResponseScalarWhereInput[]
  }

  export type EvaluationResponseUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<EvaluationResponseCreateWithoutTaskInput, EvaluationResponseUncheckedCreateWithoutTaskInput> | EvaluationResponseCreateWithoutTaskInput[] | EvaluationResponseUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: EvaluationResponseCreateOrConnectWithoutTaskInput | EvaluationResponseCreateOrConnectWithoutTaskInput[]
    upsert?: EvaluationResponseUpsertWithWhereUniqueWithoutTaskInput | EvaluationResponseUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: EvaluationResponseCreateManyTaskInputEnvelope
    set?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
    disconnect?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
    delete?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
    connect?: EvaluationResponseWhereUniqueInput | EvaluationResponseWhereUniqueInput[]
    update?: EvaluationResponseUpdateWithWhereUniqueWithoutTaskInput | EvaluationResponseUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: EvaluationResponseUpdateManyWithWhereWithoutTaskInput | EvaluationResponseUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: EvaluationResponseScalarWhereInput | EvaluationResponseScalarWhereInput[]
  }

  export type EvaluationTaskCreateNestedOneWithoutResponsesInput = {
    create?: XOR<EvaluationTaskCreateWithoutResponsesInput, EvaluationTaskUncheckedCreateWithoutResponsesInput>
    connectOrCreate?: EvaluationTaskCreateOrConnectWithoutResponsesInput
    connect?: EvaluationTaskWhereUniqueInput
  }

  export type EvaluationTaskUpdateOneRequiredWithoutResponsesNestedInput = {
    create?: XOR<EvaluationTaskCreateWithoutResponsesInput, EvaluationTaskUncheckedCreateWithoutResponsesInput>
    connectOrCreate?: EvaluationTaskCreateOrConnectWithoutResponsesInput
    upsert?: EvaluationTaskUpsertWithoutResponsesInput
    connect?: EvaluationTaskWhereUniqueInput
    update?: XOR<XOR<EvaluationTaskUpdateToOneWithWhereWithoutResponsesInput, EvaluationTaskUpdateWithoutResponsesInput>, EvaluationTaskUncheckedUpdateWithoutResponsesInput>
  }

  export type PerformanceResultCreateNestedOneWithoutAdjustmentLogsInput = {
    create?: XOR<PerformanceResultCreateWithoutAdjustmentLogsInput, PerformanceResultUncheckedCreateWithoutAdjustmentLogsInput>
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutAdjustmentLogsInput
    connect?: PerformanceResultWhereUniqueInput
  }

  export type PerformanceResultUpdateOneRequiredWithoutAdjustmentLogsNestedInput = {
    create?: XOR<PerformanceResultCreateWithoutAdjustmentLogsInput, PerformanceResultUncheckedCreateWithoutAdjustmentLogsInput>
    connectOrCreate?: PerformanceResultCreateOrConnectWithoutAdjustmentLogsInput
    upsert?: PerformanceResultUpsertWithoutAdjustmentLogsInput
    connect?: PerformanceResultWhereUniqueInput
    update?: XOR<XOR<PerformanceResultUpdateToOneWithWhereWithoutAdjustmentLogsInput, PerformanceResultUpdateWithoutAdjustmentLogsInput>, PerformanceResultUncheckedUpdateWithoutAdjustmentLogsInput>
  }

  export type PerformanceCycleCreateNestedOneWithoutStrategicObjectivesInput = {
    create?: XOR<PerformanceCycleCreateWithoutStrategicObjectivesInput, PerformanceCycleUncheckedCreateWithoutStrategicObjectivesInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutStrategicObjectivesInput
    connect?: PerformanceCycleWhereUniqueInput
  }

  export type StrategicObjectiveAssignmentCreateNestedManyWithoutObjectiveInput = {
    create?: XOR<StrategicObjectiveAssignmentCreateWithoutObjectiveInput, StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput> | StrategicObjectiveAssignmentCreateWithoutObjectiveInput[] | StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput[]
    connectOrCreate?: StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput | StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput[]
    createMany?: StrategicObjectiveAssignmentCreateManyObjectiveInputEnvelope
    connect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
  }

  export type StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutObjectiveInput = {
    create?: XOR<StrategicObjectiveAssignmentCreateWithoutObjectiveInput, StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput> | StrategicObjectiveAssignmentCreateWithoutObjectiveInput[] | StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput[]
    connectOrCreate?: StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput | StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput[]
    createMany?: StrategicObjectiveAssignmentCreateManyObjectiveInputEnvelope
    connect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
  }

  export type PerformanceCycleUpdateOneRequiredWithoutStrategicObjectivesNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutStrategicObjectivesInput, PerformanceCycleUncheckedCreateWithoutStrategicObjectivesInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutStrategicObjectivesInput
    upsert?: PerformanceCycleUpsertWithoutStrategicObjectivesInput
    connect?: PerformanceCycleWhereUniqueInput
    update?: XOR<XOR<PerformanceCycleUpdateToOneWithWhereWithoutStrategicObjectivesInput, PerformanceCycleUpdateWithoutStrategicObjectivesInput>, PerformanceCycleUncheckedUpdateWithoutStrategicObjectivesInput>
  }

  export type StrategicObjectiveAssignmentUpdateManyWithoutObjectiveNestedInput = {
    create?: XOR<StrategicObjectiveAssignmentCreateWithoutObjectiveInput, StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput> | StrategicObjectiveAssignmentCreateWithoutObjectiveInput[] | StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput[]
    connectOrCreate?: StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput | StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput[]
    upsert?: StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutObjectiveInput | StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutObjectiveInput[]
    createMany?: StrategicObjectiveAssignmentCreateManyObjectiveInputEnvelope
    set?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    disconnect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    delete?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    connect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    update?: StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutObjectiveInput | StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutObjectiveInput[]
    updateMany?: StrategicObjectiveAssignmentUpdateManyWithWhereWithoutObjectiveInput | StrategicObjectiveAssignmentUpdateManyWithWhereWithoutObjectiveInput[]
    deleteMany?: StrategicObjectiveAssignmentScalarWhereInput | StrategicObjectiveAssignmentScalarWhereInput[]
  }

  export type StrategicObjectiveAssignmentUncheckedUpdateManyWithoutObjectiveNestedInput = {
    create?: XOR<StrategicObjectiveAssignmentCreateWithoutObjectiveInput, StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput> | StrategicObjectiveAssignmentCreateWithoutObjectiveInput[] | StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput[]
    connectOrCreate?: StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput | StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput[]
    upsert?: StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutObjectiveInput | StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutObjectiveInput[]
    createMany?: StrategicObjectiveAssignmentCreateManyObjectiveInputEnvelope
    set?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    disconnect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    delete?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    connect?: StrategicObjectiveAssignmentWhereUniqueInput | StrategicObjectiveAssignmentWhereUniqueInput[]
    update?: StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutObjectiveInput | StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutObjectiveInput[]
    updateMany?: StrategicObjectiveAssignmentUpdateManyWithWhereWithoutObjectiveInput | StrategicObjectiveAssignmentUpdateManyWithWhereWithoutObjectiveInput[]
    deleteMany?: StrategicObjectiveAssignmentScalarWhereInput | StrategicObjectiveAssignmentScalarWhereInput[]
  }

  export type StrategicObjectiveCreateNestedOneWithoutAssignmentsInput = {
    create?: XOR<StrategicObjectiveCreateWithoutAssignmentsInput, StrategicObjectiveUncheckedCreateWithoutAssignmentsInput>
    connectOrCreate?: StrategicObjectiveCreateOrConnectWithoutAssignmentsInput
    connect?: StrategicObjectiveWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutStrategicObjectiveAssignmentsInput = {
    create?: XOR<UserCreateWithoutStrategicObjectiveAssignmentsInput, UserUncheckedCreateWithoutStrategicObjectiveAssignmentsInput>
    connectOrCreate?: UserCreateOrConnectWithoutStrategicObjectiveAssignmentsInput
    connect?: UserWhereUniqueInput
  }

  export type StrategicObjectiveUpdateOneRequiredWithoutAssignmentsNestedInput = {
    create?: XOR<StrategicObjectiveCreateWithoutAssignmentsInput, StrategicObjectiveUncheckedCreateWithoutAssignmentsInput>
    connectOrCreate?: StrategicObjectiveCreateOrConnectWithoutAssignmentsInput
    upsert?: StrategicObjectiveUpsertWithoutAssignmentsInput
    connect?: StrategicObjectiveWhereUniqueInput
    update?: XOR<XOR<StrategicObjectiveUpdateToOneWithWhereWithoutAssignmentsInput, StrategicObjectiveUpdateWithoutAssignmentsInput>, StrategicObjectiveUncheckedUpdateWithoutAssignmentsInput>
  }

  export type UserUpdateOneRequiredWithoutStrategicObjectiveAssignmentsNestedInput = {
    create?: XOR<UserCreateWithoutStrategicObjectiveAssignmentsInput, UserUncheckedCreateWithoutStrategicObjectiveAssignmentsInput>
    connectOrCreate?: UserCreateOrConnectWithoutStrategicObjectiveAssignmentsInput
    upsert?: UserUpsertWithoutStrategicObjectiveAssignmentsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutStrategicObjectiveAssignmentsInput, UserUpdateWithoutStrategicObjectiveAssignmentsInput>, UserUncheckedUpdateWithoutStrategicObjectiveAssignmentsInput>
  }

  export type PerformanceCycleCreateNestedOneWithoutE360TemplatesInput = {
    create?: XOR<PerformanceCycleCreateWithoutE360TemplatesInput, PerformanceCycleUncheckedCreateWithoutE360TemplatesInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutE360TemplatesInput
    connect?: PerformanceCycleWhereUniqueInput
  }

  export type OrganizationCreateNestedOneWithoutEvaluation360TemplatesInput = {
    create?: XOR<OrganizationCreateWithoutEvaluation360TemplatesInput, OrganizationUncheckedCreateWithoutEvaluation360TemplatesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutEvaluation360TemplatesInput
    connect?: OrganizationWhereUniqueInput
  }

  export type Evaluation360CreateNestedManyWithoutTemplateInput = {
    create?: XOR<Evaluation360CreateWithoutTemplateInput, Evaluation360UncheckedCreateWithoutTemplateInput> | Evaluation360CreateWithoutTemplateInput[] | Evaluation360UncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: Evaluation360CreateOrConnectWithoutTemplateInput | Evaluation360CreateOrConnectWithoutTemplateInput[]
    createMany?: Evaluation360CreateManyTemplateInputEnvelope
    connect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
  }

  export type Evaluation360UncheckedCreateNestedManyWithoutTemplateInput = {
    create?: XOR<Evaluation360CreateWithoutTemplateInput, Evaluation360UncheckedCreateWithoutTemplateInput> | Evaluation360CreateWithoutTemplateInput[] | Evaluation360UncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: Evaluation360CreateOrConnectWithoutTemplateInput | Evaluation360CreateOrConnectWithoutTemplateInput[]
    createMany?: Evaluation360CreateManyTemplateInputEnvelope
    connect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
  }

  export type PerformanceCycleUpdateOneWithoutE360TemplatesNestedInput = {
    create?: XOR<PerformanceCycleCreateWithoutE360TemplatesInput, PerformanceCycleUncheckedCreateWithoutE360TemplatesInput>
    connectOrCreate?: PerformanceCycleCreateOrConnectWithoutE360TemplatesInput
    upsert?: PerformanceCycleUpsertWithoutE360TemplatesInput
    disconnect?: PerformanceCycleWhereInput | boolean
    delete?: PerformanceCycleWhereInput | boolean
    connect?: PerformanceCycleWhereUniqueInput
    update?: XOR<XOR<PerformanceCycleUpdateToOneWithWhereWithoutE360TemplatesInput, PerformanceCycleUpdateWithoutE360TemplatesInput>, PerformanceCycleUncheckedUpdateWithoutE360TemplatesInput>
  }

  export type OrganizationUpdateOneWithoutEvaluation360TemplatesNestedInput = {
    create?: XOR<OrganizationCreateWithoutEvaluation360TemplatesInput, OrganizationUncheckedCreateWithoutEvaluation360TemplatesInput>
    connectOrCreate?: OrganizationCreateOrConnectWithoutEvaluation360TemplatesInput
    upsert?: OrganizationUpsertWithoutEvaluation360TemplatesInput
    disconnect?: OrganizationWhereInput | boolean
    delete?: OrganizationWhereInput | boolean
    connect?: OrganizationWhereUniqueInput
    update?: XOR<XOR<OrganizationUpdateToOneWithWhereWithoutEvaluation360TemplatesInput, OrganizationUpdateWithoutEvaluation360TemplatesInput>, OrganizationUncheckedUpdateWithoutEvaluation360TemplatesInput>
  }

  export type Evaluation360UpdateManyWithoutTemplateNestedInput = {
    create?: XOR<Evaluation360CreateWithoutTemplateInput, Evaluation360UncheckedCreateWithoutTemplateInput> | Evaluation360CreateWithoutTemplateInput[] | Evaluation360UncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: Evaluation360CreateOrConnectWithoutTemplateInput | Evaluation360CreateOrConnectWithoutTemplateInput[]
    upsert?: Evaluation360UpsertWithWhereUniqueWithoutTemplateInput | Evaluation360UpsertWithWhereUniqueWithoutTemplateInput[]
    createMany?: Evaluation360CreateManyTemplateInputEnvelope
    set?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    disconnect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    delete?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    connect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    update?: Evaluation360UpdateWithWhereUniqueWithoutTemplateInput | Evaluation360UpdateWithWhereUniqueWithoutTemplateInput[]
    updateMany?: Evaluation360UpdateManyWithWhereWithoutTemplateInput | Evaluation360UpdateManyWithWhereWithoutTemplateInput[]
    deleteMany?: Evaluation360ScalarWhereInput | Evaluation360ScalarWhereInput[]
  }

  export type Evaluation360UncheckedUpdateManyWithoutTemplateNestedInput = {
    create?: XOR<Evaluation360CreateWithoutTemplateInput, Evaluation360UncheckedCreateWithoutTemplateInput> | Evaluation360CreateWithoutTemplateInput[] | Evaluation360UncheckedCreateWithoutTemplateInput[]
    connectOrCreate?: Evaluation360CreateOrConnectWithoutTemplateInput | Evaluation360CreateOrConnectWithoutTemplateInput[]
    upsert?: Evaluation360UpsertWithWhereUniqueWithoutTemplateInput | Evaluation360UpsertWithWhereUniqueWithoutTemplateInput[]
    createMany?: Evaluation360CreateManyTemplateInputEnvelope
    set?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    disconnect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    delete?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    connect?: Evaluation360WhereUniqueInput | Evaluation360WhereUniqueInput[]
    update?: Evaluation360UpdateWithWhereUniqueWithoutTemplateInput | Evaluation360UpdateWithWhereUniqueWithoutTemplateInput[]
    updateMany?: Evaluation360UpdateManyWithWhereWithoutTemplateInput | Evaluation360UpdateManyWithWhereWithoutTemplateInput[]
    deleteMany?: Evaluation360ScalarWhereInput | Evaluation360ScalarWhereInput[]
  }

  export type UserCreateNestedOneWithoutSiteCheckpointsCreatedInput = {
    create?: XOR<UserCreateWithoutSiteCheckpointsCreatedInput, UserUncheckedCreateWithoutSiteCheckpointsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutSiteCheckpointsCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type SiteAttendanceEventCreateNestedManyWithoutCheckpointInput = {
    create?: XOR<SiteAttendanceEventCreateWithoutCheckpointInput, SiteAttendanceEventUncheckedCreateWithoutCheckpointInput> | SiteAttendanceEventCreateWithoutCheckpointInput[] | SiteAttendanceEventUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SiteAttendanceEventCreateOrConnectWithoutCheckpointInput | SiteAttendanceEventCreateOrConnectWithoutCheckpointInput[]
    createMany?: SiteAttendanceEventCreateManyCheckpointInputEnvelope
    connect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
  }

  export type SiteDailySummaryCreateNestedManyWithoutCheckpointInput = {
    create?: XOR<SiteDailySummaryCreateWithoutCheckpointInput, SiteDailySummaryUncheckedCreateWithoutCheckpointInput> | SiteDailySummaryCreateWithoutCheckpointInput[] | SiteDailySummaryUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SiteDailySummaryCreateOrConnectWithoutCheckpointInput | SiteDailySummaryCreateOrConnectWithoutCheckpointInput[]
    createMany?: SiteDailySummaryCreateManyCheckpointInputEnvelope
    connect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
  }

  export type SharedCheckinPartnerCreateNestedManyWithoutCheckpointInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutCheckpointInput, SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput> | SharedCheckinPartnerCreateWithoutCheckpointInput[] | SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput | SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput[]
    createMany?: SharedCheckinPartnerCreateManyCheckpointInputEnvelope
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
  }

  export type SiteAttendanceEventUncheckedCreateNestedManyWithoutCheckpointInput = {
    create?: XOR<SiteAttendanceEventCreateWithoutCheckpointInput, SiteAttendanceEventUncheckedCreateWithoutCheckpointInput> | SiteAttendanceEventCreateWithoutCheckpointInput[] | SiteAttendanceEventUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SiteAttendanceEventCreateOrConnectWithoutCheckpointInput | SiteAttendanceEventCreateOrConnectWithoutCheckpointInput[]
    createMany?: SiteAttendanceEventCreateManyCheckpointInputEnvelope
    connect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
  }

  export type SiteDailySummaryUncheckedCreateNestedManyWithoutCheckpointInput = {
    create?: XOR<SiteDailySummaryCreateWithoutCheckpointInput, SiteDailySummaryUncheckedCreateWithoutCheckpointInput> | SiteDailySummaryCreateWithoutCheckpointInput[] | SiteDailySummaryUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SiteDailySummaryCreateOrConnectWithoutCheckpointInput | SiteDailySummaryCreateOrConnectWithoutCheckpointInput[]
    createMany?: SiteDailySummaryCreateManyCheckpointInputEnvelope
    connect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
  }

  export type SharedCheckinPartnerUncheckedCreateNestedManyWithoutCheckpointInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutCheckpointInput, SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput> | SharedCheckinPartnerCreateWithoutCheckpointInput[] | SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput | SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput[]
    createMany?: SharedCheckinPartnerCreateManyCheckpointInputEnvelope
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
  }

  export type EnumSiteGeoPolicyFieldUpdateOperationsInput = {
    set?: $Enums.SiteGeoPolicy
  }

  export type EnumSiteCheckpointAccessModeFieldUpdateOperationsInput = {
    set?: $Enums.SiteCheckpointAccessMode
  }

  export type UserUpdateOneRequiredWithoutSiteCheckpointsCreatedNestedInput = {
    create?: XOR<UserCreateWithoutSiteCheckpointsCreatedInput, UserUncheckedCreateWithoutSiteCheckpointsCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutSiteCheckpointsCreatedInput
    upsert?: UserUpsertWithoutSiteCheckpointsCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutSiteCheckpointsCreatedInput, UserUpdateWithoutSiteCheckpointsCreatedInput>, UserUncheckedUpdateWithoutSiteCheckpointsCreatedInput>
  }

  export type SiteAttendanceEventUpdateManyWithoutCheckpointNestedInput = {
    create?: XOR<SiteAttendanceEventCreateWithoutCheckpointInput, SiteAttendanceEventUncheckedCreateWithoutCheckpointInput> | SiteAttendanceEventCreateWithoutCheckpointInput[] | SiteAttendanceEventUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SiteAttendanceEventCreateOrConnectWithoutCheckpointInput | SiteAttendanceEventCreateOrConnectWithoutCheckpointInput[]
    upsert?: SiteAttendanceEventUpsertWithWhereUniqueWithoutCheckpointInput | SiteAttendanceEventUpsertWithWhereUniqueWithoutCheckpointInput[]
    createMany?: SiteAttendanceEventCreateManyCheckpointInputEnvelope
    set?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    disconnect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    delete?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    connect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    update?: SiteAttendanceEventUpdateWithWhereUniqueWithoutCheckpointInput | SiteAttendanceEventUpdateWithWhereUniqueWithoutCheckpointInput[]
    updateMany?: SiteAttendanceEventUpdateManyWithWhereWithoutCheckpointInput | SiteAttendanceEventUpdateManyWithWhereWithoutCheckpointInput[]
    deleteMany?: SiteAttendanceEventScalarWhereInput | SiteAttendanceEventScalarWhereInput[]
  }

  export type SiteDailySummaryUpdateManyWithoutCheckpointNestedInput = {
    create?: XOR<SiteDailySummaryCreateWithoutCheckpointInput, SiteDailySummaryUncheckedCreateWithoutCheckpointInput> | SiteDailySummaryCreateWithoutCheckpointInput[] | SiteDailySummaryUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SiteDailySummaryCreateOrConnectWithoutCheckpointInput | SiteDailySummaryCreateOrConnectWithoutCheckpointInput[]
    upsert?: SiteDailySummaryUpsertWithWhereUniqueWithoutCheckpointInput | SiteDailySummaryUpsertWithWhereUniqueWithoutCheckpointInput[]
    createMany?: SiteDailySummaryCreateManyCheckpointInputEnvelope
    set?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    disconnect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    delete?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    connect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    update?: SiteDailySummaryUpdateWithWhereUniqueWithoutCheckpointInput | SiteDailySummaryUpdateWithWhereUniqueWithoutCheckpointInput[]
    updateMany?: SiteDailySummaryUpdateManyWithWhereWithoutCheckpointInput | SiteDailySummaryUpdateManyWithWhereWithoutCheckpointInput[]
    deleteMany?: SiteDailySummaryScalarWhereInput | SiteDailySummaryScalarWhereInput[]
  }

  export type SharedCheckinPartnerUpdateManyWithoutCheckpointNestedInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutCheckpointInput, SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput> | SharedCheckinPartnerCreateWithoutCheckpointInput[] | SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput | SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput[]
    upsert?: SharedCheckinPartnerUpsertWithWhereUniqueWithoutCheckpointInput | SharedCheckinPartnerUpsertWithWhereUniqueWithoutCheckpointInput[]
    createMany?: SharedCheckinPartnerCreateManyCheckpointInputEnvelope
    set?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    disconnect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    delete?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    update?: SharedCheckinPartnerUpdateWithWhereUniqueWithoutCheckpointInput | SharedCheckinPartnerUpdateWithWhereUniqueWithoutCheckpointInput[]
    updateMany?: SharedCheckinPartnerUpdateManyWithWhereWithoutCheckpointInput | SharedCheckinPartnerUpdateManyWithWhereWithoutCheckpointInput[]
    deleteMany?: SharedCheckinPartnerScalarWhereInput | SharedCheckinPartnerScalarWhereInput[]
  }

  export type SiteAttendanceEventUncheckedUpdateManyWithoutCheckpointNestedInput = {
    create?: XOR<SiteAttendanceEventCreateWithoutCheckpointInput, SiteAttendanceEventUncheckedCreateWithoutCheckpointInput> | SiteAttendanceEventCreateWithoutCheckpointInput[] | SiteAttendanceEventUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SiteAttendanceEventCreateOrConnectWithoutCheckpointInput | SiteAttendanceEventCreateOrConnectWithoutCheckpointInput[]
    upsert?: SiteAttendanceEventUpsertWithWhereUniqueWithoutCheckpointInput | SiteAttendanceEventUpsertWithWhereUniqueWithoutCheckpointInput[]
    createMany?: SiteAttendanceEventCreateManyCheckpointInputEnvelope
    set?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    disconnect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    delete?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    connect?: SiteAttendanceEventWhereUniqueInput | SiteAttendanceEventWhereUniqueInput[]
    update?: SiteAttendanceEventUpdateWithWhereUniqueWithoutCheckpointInput | SiteAttendanceEventUpdateWithWhereUniqueWithoutCheckpointInput[]
    updateMany?: SiteAttendanceEventUpdateManyWithWhereWithoutCheckpointInput | SiteAttendanceEventUpdateManyWithWhereWithoutCheckpointInput[]
    deleteMany?: SiteAttendanceEventScalarWhereInput | SiteAttendanceEventScalarWhereInput[]
  }

  export type SiteDailySummaryUncheckedUpdateManyWithoutCheckpointNestedInput = {
    create?: XOR<SiteDailySummaryCreateWithoutCheckpointInput, SiteDailySummaryUncheckedCreateWithoutCheckpointInput> | SiteDailySummaryCreateWithoutCheckpointInput[] | SiteDailySummaryUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SiteDailySummaryCreateOrConnectWithoutCheckpointInput | SiteDailySummaryCreateOrConnectWithoutCheckpointInput[]
    upsert?: SiteDailySummaryUpsertWithWhereUniqueWithoutCheckpointInput | SiteDailySummaryUpsertWithWhereUniqueWithoutCheckpointInput[]
    createMany?: SiteDailySummaryCreateManyCheckpointInputEnvelope
    set?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    disconnect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    delete?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    connect?: SiteDailySummaryWhereUniqueInput | SiteDailySummaryWhereUniqueInput[]
    update?: SiteDailySummaryUpdateWithWhereUniqueWithoutCheckpointInput | SiteDailySummaryUpdateWithWhereUniqueWithoutCheckpointInput[]
    updateMany?: SiteDailySummaryUpdateManyWithWhereWithoutCheckpointInput | SiteDailySummaryUpdateManyWithWhereWithoutCheckpointInput[]
    deleteMany?: SiteDailySummaryScalarWhereInput | SiteDailySummaryScalarWhereInput[]
  }

  export type SharedCheckinPartnerUncheckedUpdateManyWithoutCheckpointNestedInput = {
    create?: XOR<SharedCheckinPartnerCreateWithoutCheckpointInput, SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput> | SharedCheckinPartnerCreateWithoutCheckpointInput[] | SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput[]
    connectOrCreate?: SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput | SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput[]
    upsert?: SharedCheckinPartnerUpsertWithWhereUniqueWithoutCheckpointInput | SharedCheckinPartnerUpsertWithWhereUniqueWithoutCheckpointInput[]
    createMany?: SharedCheckinPartnerCreateManyCheckpointInputEnvelope
    set?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    disconnect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    delete?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    connect?: SharedCheckinPartnerWhereUniqueInput | SharedCheckinPartnerWhereUniqueInput[]
    update?: SharedCheckinPartnerUpdateWithWhereUniqueWithoutCheckpointInput | SharedCheckinPartnerUpdateWithWhereUniqueWithoutCheckpointInput[]
    updateMany?: SharedCheckinPartnerUpdateManyWithWhereWithoutCheckpointInput | SharedCheckinPartnerUpdateManyWithWhereWithoutCheckpointInput[]
    deleteMany?: SharedCheckinPartnerScalarWhereInput | SharedCheckinPartnerScalarWhereInput[]
  }

  export type SiteCheckpointCreateNestedOneWithoutSharedPartnersInput = {
    create?: XOR<SiteCheckpointCreateWithoutSharedPartnersInput, SiteCheckpointUncheckedCreateWithoutSharedPartnersInput>
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutSharedPartnersInput
    connect?: SiteCheckpointWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutSharedCheckinPartnersCreatedInput = {
    create?: XOR<UserCreateWithoutSharedCheckinPartnersCreatedInput, UserUncheckedCreateWithoutSharedCheckinPartnersCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutSharedCheckinPartnersCreatedInput
    connect?: UserWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutSharedCheckinPartnersUpdatedInput = {
    create?: XOR<UserCreateWithoutSharedCheckinPartnersUpdatedInput, UserUncheckedCreateWithoutSharedCheckinPartnersUpdatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutSharedCheckinPartnersUpdatedInput
    connect?: UserWhereUniqueInput
  }

  export type SiteCheckpointUpdateOneRequiredWithoutSharedPartnersNestedInput = {
    create?: XOR<SiteCheckpointCreateWithoutSharedPartnersInput, SiteCheckpointUncheckedCreateWithoutSharedPartnersInput>
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutSharedPartnersInput
    upsert?: SiteCheckpointUpsertWithoutSharedPartnersInput
    connect?: SiteCheckpointWhereUniqueInput
    update?: XOR<XOR<SiteCheckpointUpdateToOneWithWhereWithoutSharedPartnersInput, SiteCheckpointUpdateWithoutSharedPartnersInput>, SiteCheckpointUncheckedUpdateWithoutSharedPartnersInput>
  }

  export type UserUpdateOneRequiredWithoutSharedCheckinPartnersCreatedNestedInput = {
    create?: XOR<UserCreateWithoutSharedCheckinPartnersCreatedInput, UserUncheckedCreateWithoutSharedCheckinPartnersCreatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutSharedCheckinPartnersCreatedInput
    upsert?: UserUpsertWithoutSharedCheckinPartnersCreatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutSharedCheckinPartnersCreatedInput, UserUpdateWithoutSharedCheckinPartnersCreatedInput>, UserUncheckedUpdateWithoutSharedCheckinPartnersCreatedInput>
  }

  export type UserUpdateOneRequiredWithoutSharedCheckinPartnersUpdatedNestedInput = {
    create?: XOR<UserCreateWithoutSharedCheckinPartnersUpdatedInput, UserUncheckedCreateWithoutSharedCheckinPartnersUpdatedInput>
    connectOrCreate?: UserCreateOrConnectWithoutSharedCheckinPartnersUpdatedInput
    upsert?: UserUpsertWithoutSharedCheckinPartnersUpdatedInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutSharedCheckinPartnersUpdatedInput, UserUpdateWithoutSharedCheckinPartnersUpdatedInput>, UserUncheckedUpdateWithoutSharedCheckinPartnersUpdatedInput>
  }

  export type SiteCheckpointCreateNestedOneWithoutEventsInput = {
    create?: XOR<SiteCheckpointCreateWithoutEventsInput, SiteCheckpointUncheckedCreateWithoutEventsInput>
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutEventsInput
    connect?: SiteCheckpointWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutSiteAttendanceEventsInput = {
    create?: XOR<UserCreateWithoutSiteAttendanceEventsInput, UserUncheckedCreateWithoutSiteAttendanceEventsInput>
    connectOrCreate?: UserCreateOrConnectWithoutSiteAttendanceEventsInput
    connect?: UserWhereUniqueInput
  }

  export type EnumSiteEventTypeFieldUpdateOperationsInput = {
    set?: $Enums.SiteEventType
  }

  export type EnumSiteAuthMethodFieldUpdateOperationsInput = {
    set?: $Enums.SiteAuthMethod
  }

  export type EnumSiteGeoStatusFieldUpdateOperationsInput = {
    set?: $Enums.SiteGeoStatus
  }

  export type SiteCheckpointUpdateOneRequiredWithoutEventsNestedInput = {
    create?: XOR<SiteCheckpointCreateWithoutEventsInput, SiteCheckpointUncheckedCreateWithoutEventsInput>
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutEventsInput
    upsert?: SiteCheckpointUpsertWithoutEventsInput
    connect?: SiteCheckpointWhereUniqueInput
    update?: XOR<XOR<SiteCheckpointUpdateToOneWithWhereWithoutEventsInput, SiteCheckpointUpdateWithoutEventsInput>, SiteCheckpointUncheckedUpdateWithoutEventsInput>
  }

  export type UserUpdateOneRequiredWithoutSiteAttendanceEventsNestedInput = {
    create?: XOR<UserCreateWithoutSiteAttendanceEventsInput, UserUncheckedCreateWithoutSiteAttendanceEventsInput>
    connectOrCreate?: UserCreateOrConnectWithoutSiteAttendanceEventsInput
    upsert?: UserUpsertWithoutSiteAttendanceEventsInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutSiteAttendanceEventsInput, UserUpdateWithoutSiteAttendanceEventsInput>, UserUncheckedUpdateWithoutSiteAttendanceEventsInput>
  }

  export type SiteCheckpointCreateNestedOneWithoutDailySummariesInput = {
    create?: XOR<SiteCheckpointCreateWithoutDailySummariesInput, SiteCheckpointUncheckedCreateWithoutDailySummariesInput>
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutDailySummariesInput
    connect?: SiteCheckpointWhereUniqueInput
  }

  export type UserCreateNestedOneWithoutSiteDailySummariesInput = {
    create?: XOR<UserCreateWithoutSiteDailySummariesInput, UserUncheckedCreateWithoutSiteDailySummariesInput>
    connectOrCreate?: UserCreateOrConnectWithoutSiteDailySummariesInput
    connect?: UserWhereUniqueInput
  }

  export type SiteCheckpointUpdateOneRequiredWithoutDailySummariesNestedInput = {
    create?: XOR<SiteCheckpointCreateWithoutDailySummariesInput, SiteCheckpointUncheckedCreateWithoutDailySummariesInput>
    connectOrCreate?: SiteCheckpointCreateOrConnectWithoutDailySummariesInput
    upsert?: SiteCheckpointUpsertWithoutDailySummariesInput
    connect?: SiteCheckpointWhereUniqueInput
    update?: XOR<XOR<SiteCheckpointUpdateToOneWithWhereWithoutDailySummariesInput, SiteCheckpointUpdateWithoutDailySummariesInput>, SiteCheckpointUncheckedUpdateWithoutDailySummariesInput>
  }

  export type UserUpdateOneRequiredWithoutSiteDailySummariesNestedInput = {
    create?: XOR<UserCreateWithoutSiteDailySummariesInput, UserUncheckedCreateWithoutSiteDailySummariesInput>
    connectOrCreate?: UserCreateOrConnectWithoutSiteDailySummariesInput
    upsert?: UserUpsertWithoutSiteDailySummariesInput
    connect?: UserWhereUniqueInput
    update?: XOR<XOR<UserUpdateToOneWithWhereWithoutSiteDailySummariesInput, UserUpdateWithoutSiteDailySummariesInput>, UserUncheckedUpdateWithoutSiteDailySummariesInput>
  }

  export type TicketCreatetagsInput = {
    set: string[]
  }

  export type TicketCreatewatcherIdsInput = {
    set: string[]
  }

  export type TicketCreaterelatedTicketIdsInput = {
    set: string[]
  }

  export type TicketCategoryCreateNestedOneWithoutTicketsInput = {
    create?: XOR<TicketCategoryCreateWithoutTicketsInput, TicketCategoryUncheckedCreateWithoutTicketsInput>
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutTicketsInput
    connect?: TicketCategoryWhereUniqueInput
  }

  export type AssignmentGroupCreateNestedOneWithoutTicketsInput = {
    create?: XOR<AssignmentGroupCreateWithoutTicketsInput, AssignmentGroupUncheckedCreateWithoutTicketsInput>
    connectOrCreate?: AssignmentGroupCreateOrConnectWithoutTicketsInput
    connect?: AssignmentGroupWhereUniqueInput
  }

  export type TicketSLACreateNestedOneWithoutTicketsInput = {
    create?: XOR<TicketSLACreateWithoutTicketsInput, TicketSLAUncheckedCreateWithoutTicketsInput>
    connectOrCreate?: TicketSLACreateOrConnectWithoutTicketsInput
    connect?: TicketSLAWhereUniqueInput
  }

  export type TicketCreateNestedOneWithoutChildTicketsInput = {
    create?: XOR<TicketCreateWithoutChildTicketsInput, TicketUncheckedCreateWithoutChildTicketsInput>
    connectOrCreate?: TicketCreateOrConnectWithoutChildTicketsInput
    connect?: TicketWhereUniqueInput
  }

  export type TicketCreateNestedManyWithoutParentTicketInput = {
    create?: XOR<TicketCreateWithoutParentTicketInput, TicketUncheckedCreateWithoutParentTicketInput> | TicketCreateWithoutParentTicketInput[] | TicketUncheckedCreateWithoutParentTicketInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutParentTicketInput | TicketCreateOrConnectWithoutParentTicketInput[]
    createMany?: TicketCreateManyParentTicketInputEnvelope
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
  }

  export type TicketCommentCreateNestedManyWithoutTicketInput = {
    create?: XOR<TicketCommentCreateWithoutTicketInput, TicketCommentUncheckedCreateWithoutTicketInput> | TicketCommentCreateWithoutTicketInput[] | TicketCommentUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketCommentCreateOrConnectWithoutTicketInput | TicketCommentCreateOrConnectWithoutTicketInput[]
    createMany?: TicketCommentCreateManyTicketInputEnvelope
    connect?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
  }

  export type TicketActivityCreateNestedManyWithoutTicketInput = {
    create?: XOR<TicketActivityCreateWithoutTicketInput, TicketActivityUncheckedCreateWithoutTicketInput> | TicketActivityCreateWithoutTicketInput[] | TicketActivityUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketActivityCreateOrConnectWithoutTicketInput | TicketActivityCreateOrConnectWithoutTicketInput[]
    createMany?: TicketActivityCreateManyTicketInputEnvelope
    connect?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
  }

  export type TicketAttachmentCreateNestedManyWithoutTicketInput = {
    create?: XOR<TicketAttachmentCreateWithoutTicketInput, TicketAttachmentUncheckedCreateWithoutTicketInput> | TicketAttachmentCreateWithoutTicketInput[] | TicketAttachmentUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketAttachmentCreateOrConnectWithoutTicketInput | TicketAttachmentCreateOrConnectWithoutTicketInput[]
    createMany?: TicketAttachmentCreateManyTicketInputEnvelope
    connect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
  }

  export type TicketUncheckedCreateNestedManyWithoutParentTicketInput = {
    create?: XOR<TicketCreateWithoutParentTicketInput, TicketUncheckedCreateWithoutParentTicketInput> | TicketCreateWithoutParentTicketInput[] | TicketUncheckedCreateWithoutParentTicketInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutParentTicketInput | TicketCreateOrConnectWithoutParentTicketInput[]
    createMany?: TicketCreateManyParentTicketInputEnvelope
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
  }

  export type TicketCommentUncheckedCreateNestedManyWithoutTicketInput = {
    create?: XOR<TicketCommentCreateWithoutTicketInput, TicketCommentUncheckedCreateWithoutTicketInput> | TicketCommentCreateWithoutTicketInput[] | TicketCommentUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketCommentCreateOrConnectWithoutTicketInput | TicketCommentCreateOrConnectWithoutTicketInput[]
    createMany?: TicketCommentCreateManyTicketInputEnvelope
    connect?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
  }

  export type TicketActivityUncheckedCreateNestedManyWithoutTicketInput = {
    create?: XOR<TicketActivityCreateWithoutTicketInput, TicketActivityUncheckedCreateWithoutTicketInput> | TicketActivityCreateWithoutTicketInput[] | TicketActivityUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketActivityCreateOrConnectWithoutTicketInput | TicketActivityCreateOrConnectWithoutTicketInput[]
    createMany?: TicketActivityCreateManyTicketInputEnvelope
    connect?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
  }

  export type TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput = {
    create?: XOR<TicketAttachmentCreateWithoutTicketInput, TicketAttachmentUncheckedCreateWithoutTicketInput> | TicketAttachmentCreateWithoutTicketInput[] | TicketAttachmentUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketAttachmentCreateOrConnectWithoutTicketInput | TicketAttachmentCreateOrConnectWithoutTicketInput[]
    createMany?: TicketAttachmentCreateManyTicketInputEnvelope
    connect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
  }

  export type EnumTicketPriorityFieldUpdateOperationsInput = {
    set?: $Enums.TicketPriority
  }

  export type TicketUpdatetagsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumTicketStatusFieldUpdateOperationsInput = {
    set?: $Enums.TicketStatus
  }

  export type TicketUpdatewatcherIdsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumTicketSourceFieldUpdateOperationsInput = {
    set?: $Enums.TicketSource
  }

  export type TicketUpdaterelatedTicketIdsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput = {
    create?: XOR<TicketCategoryCreateWithoutTicketsInput, TicketCategoryUncheckedCreateWithoutTicketsInput>
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutTicketsInput
    upsert?: TicketCategoryUpsertWithoutTicketsInput
    connect?: TicketCategoryWhereUniqueInput
    update?: XOR<XOR<TicketCategoryUpdateToOneWithWhereWithoutTicketsInput, TicketCategoryUpdateWithoutTicketsInput>, TicketCategoryUncheckedUpdateWithoutTicketsInput>
  }

  export type AssignmentGroupUpdateOneWithoutTicketsNestedInput = {
    create?: XOR<AssignmentGroupCreateWithoutTicketsInput, AssignmentGroupUncheckedCreateWithoutTicketsInput>
    connectOrCreate?: AssignmentGroupCreateOrConnectWithoutTicketsInput
    upsert?: AssignmentGroupUpsertWithoutTicketsInput
    disconnect?: AssignmentGroupWhereInput | boolean
    delete?: AssignmentGroupWhereInput | boolean
    connect?: AssignmentGroupWhereUniqueInput
    update?: XOR<XOR<AssignmentGroupUpdateToOneWithWhereWithoutTicketsInput, AssignmentGroupUpdateWithoutTicketsInput>, AssignmentGroupUncheckedUpdateWithoutTicketsInput>
  }

  export type TicketSLAUpdateOneWithoutTicketsNestedInput = {
    create?: XOR<TicketSLACreateWithoutTicketsInput, TicketSLAUncheckedCreateWithoutTicketsInput>
    connectOrCreate?: TicketSLACreateOrConnectWithoutTicketsInput
    upsert?: TicketSLAUpsertWithoutTicketsInput
    disconnect?: TicketSLAWhereInput | boolean
    delete?: TicketSLAWhereInput | boolean
    connect?: TicketSLAWhereUniqueInput
    update?: XOR<XOR<TicketSLAUpdateToOneWithWhereWithoutTicketsInput, TicketSLAUpdateWithoutTicketsInput>, TicketSLAUncheckedUpdateWithoutTicketsInput>
  }

  export type TicketUpdateOneWithoutChildTicketsNestedInput = {
    create?: XOR<TicketCreateWithoutChildTicketsInput, TicketUncheckedCreateWithoutChildTicketsInput>
    connectOrCreate?: TicketCreateOrConnectWithoutChildTicketsInput
    upsert?: TicketUpsertWithoutChildTicketsInput
    disconnect?: TicketWhereInput | boolean
    delete?: TicketWhereInput | boolean
    connect?: TicketWhereUniqueInput
    update?: XOR<XOR<TicketUpdateToOneWithWhereWithoutChildTicketsInput, TicketUpdateWithoutChildTicketsInput>, TicketUncheckedUpdateWithoutChildTicketsInput>
  }

  export type TicketUpdateManyWithoutParentTicketNestedInput = {
    create?: XOR<TicketCreateWithoutParentTicketInput, TicketUncheckedCreateWithoutParentTicketInput> | TicketCreateWithoutParentTicketInput[] | TicketUncheckedCreateWithoutParentTicketInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutParentTicketInput | TicketCreateOrConnectWithoutParentTicketInput[]
    upsert?: TicketUpsertWithWhereUniqueWithoutParentTicketInput | TicketUpsertWithWhereUniqueWithoutParentTicketInput[]
    createMany?: TicketCreateManyParentTicketInputEnvelope
    set?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    disconnect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    delete?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    update?: TicketUpdateWithWhereUniqueWithoutParentTicketInput | TicketUpdateWithWhereUniqueWithoutParentTicketInput[]
    updateMany?: TicketUpdateManyWithWhereWithoutParentTicketInput | TicketUpdateManyWithWhereWithoutParentTicketInput[]
    deleteMany?: TicketScalarWhereInput | TicketScalarWhereInput[]
  }

  export type TicketCommentUpdateManyWithoutTicketNestedInput = {
    create?: XOR<TicketCommentCreateWithoutTicketInput, TicketCommentUncheckedCreateWithoutTicketInput> | TicketCommentCreateWithoutTicketInput[] | TicketCommentUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketCommentCreateOrConnectWithoutTicketInput | TicketCommentCreateOrConnectWithoutTicketInput[]
    upsert?: TicketCommentUpsertWithWhereUniqueWithoutTicketInput | TicketCommentUpsertWithWhereUniqueWithoutTicketInput[]
    createMany?: TicketCommentCreateManyTicketInputEnvelope
    set?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
    disconnect?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
    delete?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
    connect?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
    update?: TicketCommentUpdateWithWhereUniqueWithoutTicketInput | TicketCommentUpdateWithWhereUniqueWithoutTicketInput[]
    updateMany?: TicketCommentUpdateManyWithWhereWithoutTicketInput | TicketCommentUpdateManyWithWhereWithoutTicketInput[]
    deleteMany?: TicketCommentScalarWhereInput | TicketCommentScalarWhereInput[]
  }

  export type TicketActivityUpdateManyWithoutTicketNestedInput = {
    create?: XOR<TicketActivityCreateWithoutTicketInput, TicketActivityUncheckedCreateWithoutTicketInput> | TicketActivityCreateWithoutTicketInput[] | TicketActivityUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketActivityCreateOrConnectWithoutTicketInput | TicketActivityCreateOrConnectWithoutTicketInput[]
    upsert?: TicketActivityUpsertWithWhereUniqueWithoutTicketInput | TicketActivityUpsertWithWhereUniqueWithoutTicketInput[]
    createMany?: TicketActivityCreateManyTicketInputEnvelope
    set?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
    disconnect?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
    delete?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
    connect?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
    update?: TicketActivityUpdateWithWhereUniqueWithoutTicketInput | TicketActivityUpdateWithWhereUniqueWithoutTicketInput[]
    updateMany?: TicketActivityUpdateManyWithWhereWithoutTicketInput | TicketActivityUpdateManyWithWhereWithoutTicketInput[]
    deleteMany?: TicketActivityScalarWhereInput | TicketActivityScalarWhereInput[]
  }

  export type TicketAttachmentUpdateManyWithoutTicketNestedInput = {
    create?: XOR<TicketAttachmentCreateWithoutTicketInput, TicketAttachmentUncheckedCreateWithoutTicketInput> | TicketAttachmentCreateWithoutTicketInput[] | TicketAttachmentUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketAttachmentCreateOrConnectWithoutTicketInput | TicketAttachmentCreateOrConnectWithoutTicketInput[]
    upsert?: TicketAttachmentUpsertWithWhereUniqueWithoutTicketInput | TicketAttachmentUpsertWithWhereUniqueWithoutTicketInput[]
    createMany?: TicketAttachmentCreateManyTicketInputEnvelope
    set?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    disconnect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    delete?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    connect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    update?: TicketAttachmentUpdateWithWhereUniqueWithoutTicketInput | TicketAttachmentUpdateWithWhereUniqueWithoutTicketInput[]
    updateMany?: TicketAttachmentUpdateManyWithWhereWithoutTicketInput | TicketAttachmentUpdateManyWithWhereWithoutTicketInput[]
    deleteMany?: TicketAttachmentScalarWhereInput | TicketAttachmentScalarWhereInput[]
  }

  export type TicketUncheckedUpdateManyWithoutParentTicketNestedInput = {
    create?: XOR<TicketCreateWithoutParentTicketInput, TicketUncheckedCreateWithoutParentTicketInput> | TicketCreateWithoutParentTicketInput[] | TicketUncheckedCreateWithoutParentTicketInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutParentTicketInput | TicketCreateOrConnectWithoutParentTicketInput[]
    upsert?: TicketUpsertWithWhereUniqueWithoutParentTicketInput | TicketUpsertWithWhereUniqueWithoutParentTicketInput[]
    createMany?: TicketCreateManyParentTicketInputEnvelope
    set?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    disconnect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    delete?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    update?: TicketUpdateWithWhereUniqueWithoutParentTicketInput | TicketUpdateWithWhereUniqueWithoutParentTicketInput[]
    updateMany?: TicketUpdateManyWithWhereWithoutParentTicketInput | TicketUpdateManyWithWhereWithoutParentTicketInput[]
    deleteMany?: TicketScalarWhereInput | TicketScalarWhereInput[]
  }

  export type TicketCommentUncheckedUpdateManyWithoutTicketNestedInput = {
    create?: XOR<TicketCommentCreateWithoutTicketInput, TicketCommentUncheckedCreateWithoutTicketInput> | TicketCommentCreateWithoutTicketInput[] | TicketCommentUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketCommentCreateOrConnectWithoutTicketInput | TicketCommentCreateOrConnectWithoutTicketInput[]
    upsert?: TicketCommentUpsertWithWhereUniqueWithoutTicketInput | TicketCommentUpsertWithWhereUniqueWithoutTicketInput[]
    createMany?: TicketCommentCreateManyTicketInputEnvelope
    set?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
    disconnect?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
    delete?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
    connect?: TicketCommentWhereUniqueInput | TicketCommentWhereUniqueInput[]
    update?: TicketCommentUpdateWithWhereUniqueWithoutTicketInput | TicketCommentUpdateWithWhereUniqueWithoutTicketInput[]
    updateMany?: TicketCommentUpdateManyWithWhereWithoutTicketInput | TicketCommentUpdateManyWithWhereWithoutTicketInput[]
    deleteMany?: TicketCommentScalarWhereInput | TicketCommentScalarWhereInput[]
  }

  export type TicketActivityUncheckedUpdateManyWithoutTicketNestedInput = {
    create?: XOR<TicketActivityCreateWithoutTicketInput, TicketActivityUncheckedCreateWithoutTicketInput> | TicketActivityCreateWithoutTicketInput[] | TicketActivityUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketActivityCreateOrConnectWithoutTicketInput | TicketActivityCreateOrConnectWithoutTicketInput[]
    upsert?: TicketActivityUpsertWithWhereUniqueWithoutTicketInput | TicketActivityUpsertWithWhereUniqueWithoutTicketInput[]
    createMany?: TicketActivityCreateManyTicketInputEnvelope
    set?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
    disconnect?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
    delete?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
    connect?: TicketActivityWhereUniqueInput | TicketActivityWhereUniqueInput[]
    update?: TicketActivityUpdateWithWhereUniqueWithoutTicketInput | TicketActivityUpdateWithWhereUniqueWithoutTicketInput[]
    updateMany?: TicketActivityUpdateManyWithWhereWithoutTicketInput | TicketActivityUpdateManyWithWhereWithoutTicketInput[]
    deleteMany?: TicketActivityScalarWhereInput | TicketActivityScalarWhereInput[]
  }

  export type TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput = {
    create?: XOR<TicketAttachmentCreateWithoutTicketInput, TicketAttachmentUncheckedCreateWithoutTicketInput> | TicketAttachmentCreateWithoutTicketInput[] | TicketAttachmentUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: TicketAttachmentCreateOrConnectWithoutTicketInput | TicketAttachmentCreateOrConnectWithoutTicketInput[]
    upsert?: TicketAttachmentUpsertWithWhereUniqueWithoutTicketInput | TicketAttachmentUpsertWithWhereUniqueWithoutTicketInput[]
    createMany?: TicketAttachmentCreateManyTicketInputEnvelope
    set?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    disconnect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    delete?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    connect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    update?: TicketAttachmentUpdateWithWhereUniqueWithoutTicketInput | TicketAttachmentUpdateWithWhereUniqueWithoutTicketInput[]
    updateMany?: TicketAttachmentUpdateManyWithWhereWithoutTicketInput | TicketAttachmentUpdateManyWithWhereWithoutTicketInput[]
    deleteMany?: TicketAttachmentScalarWhereInput | TicketAttachmentScalarWhereInput[]
  }

  export type TicketCategoryCreateallowedDepartmentIdsInput = {
    set: string[]
  }

  export type TicketCategoryCreateallowedRoleIdsInput = {
    set: string[]
  }

  export type TicketCategoryCreateNestedOneWithoutChildrenInput = {
    create?: XOR<TicketCategoryCreateWithoutChildrenInput, TicketCategoryUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutChildrenInput
    connect?: TicketCategoryWhereUniqueInput
  }

  export type TicketCategoryCreateNestedManyWithoutParentInput = {
    create?: XOR<TicketCategoryCreateWithoutParentInput, TicketCategoryUncheckedCreateWithoutParentInput> | TicketCategoryCreateWithoutParentInput[] | TicketCategoryUncheckedCreateWithoutParentInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutParentInput | TicketCategoryCreateOrConnectWithoutParentInput[]
    createMany?: TicketCategoryCreateManyParentInputEnvelope
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
  }

  export type AssignmentGroupCreateNestedOneWithoutCategoriesInput = {
    create?: XOR<AssignmentGroupCreateWithoutCategoriesInput, AssignmentGroupUncheckedCreateWithoutCategoriesInput>
    connectOrCreate?: AssignmentGroupCreateOrConnectWithoutCategoriesInput
    connect?: AssignmentGroupWhereUniqueInput
  }

  export type TicketSLACreateNestedOneWithoutCategoriesInput = {
    create?: XOR<TicketSLACreateWithoutCategoriesInput, TicketSLAUncheckedCreateWithoutCategoriesInput>
    connectOrCreate?: TicketSLACreateOrConnectWithoutCategoriesInput
    connect?: TicketSLAWhereUniqueInput
  }

  export type TicketCreateNestedManyWithoutCategoryInput = {
    create?: XOR<TicketCreateWithoutCategoryInput, TicketUncheckedCreateWithoutCategoryInput> | TicketCreateWithoutCategoryInput[] | TicketUncheckedCreateWithoutCategoryInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutCategoryInput | TicketCreateOrConnectWithoutCategoryInput[]
    createMany?: TicketCreateManyCategoryInputEnvelope
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
  }

  export type TicketCategoryUncheckedCreateNestedManyWithoutParentInput = {
    create?: XOR<TicketCategoryCreateWithoutParentInput, TicketCategoryUncheckedCreateWithoutParentInput> | TicketCategoryCreateWithoutParentInput[] | TicketCategoryUncheckedCreateWithoutParentInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutParentInput | TicketCategoryCreateOrConnectWithoutParentInput[]
    createMany?: TicketCategoryCreateManyParentInputEnvelope
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
  }

  export type TicketUncheckedCreateNestedManyWithoutCategoryInput = {
    create?: XOR<TicketCreateWithoutCategoryInput, TicketUncheckedCreateWithoutCategoryInput> | TicketCreateWithoutCategoryInput[] | TicketUncheckedCreateWithoutCategoryInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutCategoryInput | TicketCreateOrConnectWithoutCategoryInput[]
    createMany?: TicketCreateManyCategoryInputEnvelope
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
  }

  export type TicketCategoryUpdateallowedDepartmentIdsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type TicketCategoryUpdateallowedRoleIdsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type TicketCategoryUpdateOneWithoutChildrenNestedInput = {
    create?: XOR<TicketCategoryCreateWithoutChildrenInput, TicketCategoryUncheckedCreateWithoutChildrenInput>
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutChildrenInput
    upsert?: TicketCategoryUpsertWithoutChildrenInput
    disconnect?: TicketCategoryWhereInput | boolean
    delete?: TicketCategoryWhereInput | boolean
    connect?: TicketCategoryWhereUniqueInput
    update?: XOR<XOR<TicketCategoryUpdateToOneWithWhereWithoutChildrenInput, TicketCategoryUpdateWithoutChildrenInput>, TicketCategoryUncheckedUpdateWithoutChildrenInput>
  }

  export type TicketCategoryUpdateManyWithoutParentNestedInput = {
    create?: XOR<TicketCategoryCreateWithoutParentInput, TicketCategoryUncheckedCreateWithoutParentInput> | TicketCategoryCreateWithoutParentInput[] | TicketCategoryUncheckedCreateWithoutParentInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutParentInput | TicketCategoryCreateOrConnectWithoutParentInput[]
    upsert?: TicketCategoryUpsertWithWhereUniqueWithoutParentInput | TicketCategoryUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: TicketCategoryCreateManyParentInputEnvelope
    set?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    disconnect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    delete?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    update?: TicketCategoryUpdateWithWhereUniqueWithoutParentInput | TicketCategoryUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: TicketCategoryUpdateManyWithWhereWithoutParentInput | TicketCategoryUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: TicketCategoryScalarWhereInput | TicketCategoryScalarWhereInput[]
  }

  export type AssignmentGroupUpdateOneWithoutCategoriesNestedInput = {
    create?: XOR<AssignmentGroupCreateWithoutCategoriesInput, AssignmentGroupUncheckedCreateWithoutCategoriesInput>
    connectOrCreate?: AssignmentGroupCreateOrConnectWithoutCategoriesInput
    upsert?: AssignmentGroupUpsertWithoutCategoriesInput
    disconnect?: AssignmentGroupWhereInput | boolean
    delete?: AssignmentGroupWhereInput | boolean
    connect?: AssignmentGroupWhereUniqueInput
    update?: XOR<XOR<AssignmentGroupUpdateToOneWithWhereWithoutCategoriesInput, AssignmentGroupUpdateWithoutCategoriesInput>, AssignmentGroupUncheckedUpdateWithoutCategoriesInput>
  }

  export type TicketSLAUpdateOneWithoutCategoriesNestedInput = {
    create?: XOR<TicketSLACreateWithoutCategoriesInput, TicketSLAUncheckedCreateWithoutCategoriesInput>
    connectOrCreate?: TicketSLACreateOrConnectWithoutCategoriesInput
    upsert?: TicketSLAUpsertWithoutCategoriesInput
    disconnect?: TicketSLAWhereInput | boolean
    delete?: TicketSLAWhereInput | boolean
    connect?: TicketSLAWhereUniqueInput
    update?: XOR<XOR<TicketSLAUpdateToOneWithWhereWithoutCategoriesInput, TicketSLAUpdateWithoutCategoriesInput>, TicketSLAUncheckedUpdateWithoutCategoriesInput>
  }

  export type TicketUpdateManyWithoutCategoryNestedInput = {
    create?: XOR<TicketCreateWithoutCategoryInput, TicketUncheckedCreateWithoutCategoryInput> | TicketCreateWithoutCategoryInput[] | TicketUncheckedCreateWithoutCategoryInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutCategoryInput | TicketCreateOrConnectWithoutCategoryInput[]
    upsert?: TicketUpsertWithWhereUniqueWithoutCategoryInput | TicketUpsertWithWhereUniqueWithoutCategoryInput[]
    createMany?: TicketCreateManyCategoryInputEnvelope
    set?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    disconnect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    delete?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    update?: TicketUpdateWithWhereUniqueWithoutCategoryInput | TicketUpdateWithWhereUniqueWithoutCategoryInput[]
    updateMany?: TicketUpdateManyWithWhereWithoutCategoryInput | TicketUpdateManyWithWhereWithoutCategoryInput[]
    deleteMany?: TicketScalarWhereInput | TicketScalarWhereInput[]
  }

  export type TicketCategoryUncheckedUpdateManyWithoutParentNestedInput = {
    create?: XOR<TicketCategoryCreateWithoutParentInput, TicketCategoryUncheckedCreateWithoutParentInput> | TicketCategoryCreateWithoutParentInput[] | TicketCategoryUncheckedCreateWithoutParentInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutParentInput | TicketCategoryCreateOrConnectWithoutParentInput[]
    upsert?: TicketCategoryUpsertWithWhereUniqueWithoutParentInput | TicketCategoryUpsertWithWhereUniqueWithoutParentInput[]
    createMany?: TicketCategoryCreateManyParentInputEnvelope
    set?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    disconnect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    delete?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    update?: TicketCategoryUpdateWithWhereUniqueWithoutParentInput | TicketCategoryUpdateWithWhereUniqueWithoutParentInput[]
    updateMany?: TicketCategoryUpdateManyWithWhereWithoutParentInput | TicketCategoryUpdateManyWithWhereWithoutParentInput[]
    deleteMany?: TicketCategoryScalarWhereInput | TicketCategoryScalarWhereInput[]
  }

  export type TicketUncheckedUpdateManyWithoutCategoryNestedInput = {
    create?: XOR<TicketCreateWithoutCategoryInput, TicketUncheckedCreateWithoutCategoryInput> | TicketCreateWithoutCategoryInput[] | TicketUncheckedCreateWithoutCategoryInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutCategoryInput | TicketCreateOrConnectWithoutCategoryInput[]
    upsert?: TicketUpsertWithWhereUniqueWithoutCategoryInput | TicketUpsertWithWhereUniqueWithoutCategoryInput[]
    createMany?: TicketCreateManyCategoryInputEnvelope
    set?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    disconnect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    delete?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    update?: TicketUpdateWithWhereUniqueWithoutCategoryInput | TicketUpdateWithWhereUniqueWithoutCategoryInput[]
    updateMany?: TicketUpdateManyWithWhereWithoutCategoryInput | TicketUpdateManyWithWhereWithoutCategoryInput[]
    deleteMany?: TicketScalarWhereInput | TicketScalarWhereInput[]
  }

  export type TicketCommentCreatementionedUserIdsInput = {
    set: string[]
  }

  export type TicketCreateNestedOneWithoutCommentsInput = {
    create?: XOR<TicketCreateWithoutCommentsInput, TicketUncheckedCreateWithoutCommentsInput>
    connectOrCreate?: TicketCreateOrConnectWithoutCommentsInput
    connect?: TicketWhereUniqueInput
  }

  export type TicketAttachmentCreateNestedManyWithoutCommentInput = {
    create?: XOR<TicketAttachmentCreateWithoutCommentInput, TicketAttachmentUncheckedCreateWithoutCommentInput> | TicketAttachmentCreateWithoutCommentInput[] | TicketAttachmentUncheckedCreateWithoutCommentInput[]
    connectOrCreate?: TicketAttachmentCreateOrConnectWithoutCommentInput | TicketAttachmentCreateOrConnectWithoutCommentInput[]
    createMany?: TicketAttachmentCreateManyCommentInputEnvelope
    connect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
  }

  export type TicketAttachmentUncheckedCreateNestedManyWithoutCommentInput = {
    create?: XOR<TicketAttachmentCreateWithoutCommentInput, TicketAttachmentUncheckedCreateWithoutCommentInput> | TicketAttachmentCreateWithoutCommentInput[] | TicketAttachmentUncheckedCreateWithoutCommentInput[]
    connectOrCreate?: TicketAttachmentCreateOrConnectWithoutCommentInput | TicketAttachmentCreateOrConnectWithoutCommentInput[]
    createMany?: TicketAttachmentCreateManyCommentInputEnvelope
    connect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
  }

  export type EnumCommentTypeFieldUpdateOperationsInput = {
    set?: $Enums.CommentType
  }

  export type EnumVisibilityScopeFieldUpdateOperationsInput = {
    set?: $Enums.VisibilityScope
  }

  export type TicketCommentUpdatementionedUserIdsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type TicketUpdateOneRequiredWithoutCommentsNestedInput = {
    create?: XOR<TicketCreateWithoutCommentsInput, TicketUncheckedCreateWithoutCommentsInput>
    connectOrCreate?: TicketCreateOrConnectWithoutCommentsInput
    upsert?: TicketUpsertWithoutCommentsInput
    connect?: TicketWhereUniqueInput
    update?: XOR<XOR<TicketUpdateToOneWithWhereWithoutCommentsInput, TicketUpdateWithoutCommentsInput>, TicketUncheckedUpdateWithoutCommentsInput>
  }

  export type TicketAttachmentUpdateManyWithoutCommentNestedInput = {
    create?: XOR<TicketAttachmentCreateWithoutCommentInput, TicketAttachmentUncheckedCreateWithoutCommentInput> | TicketAttachmentCreateWithoutCommentInput[] | TicketAttachmentUncheckedCreateWithoutCommentInput[]
    connectOrCreate?: TicketAttachmentCreateOrConnectWithoutCommentInput | TicketAttachmentCreateOrConnectWithoutCommentInput[]
    upsert?: TicketAttachmentUpsertWithWhereUniqueWithoutCommentInput | TicketAttachmentUpsertWithWhereUniqueWithoutCommentInput[]
    createMany?: TicketAttachmentCreateManyCommentInputEnvelope
    set?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    disconnect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    delete?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    connect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    update?: TicketAttachmentUpdateWithWhereUniqueWithoutCommentInput | TicketAttachmentUpdateWithWhereUniqueWithoutCommentInput[]
    updateMany?: TicketAttachmentUpdateManyWithWhereWithoutCommentInput | TicketAttachmentUpdateManyWithWhereWithoutCommentInput[]
    deleteMany?: TicketAttachmentScalarWhereInput | TicketAttachmentScalarWhereInput[]
  }

  export type TicketAttachmentUncheckedUpdateManyWithoutCommentNestedInput = {
    create?: XOR<TicketAttachmentCreateWithoutCommentInput, TicketAttachmentUncheckedCreateWithoutCommentInput> | TicketAttachmentCreateWithoutCommentInput[] | TicketAttachmentUncheckedCreateWithoutCommentInput[]
    connectOrCreate?: TicketAttachmentCreateOrConnectWithoutCommentInput | TicketAttachmentCreateOrConnectWithoutCommentInput[]
    upsert?: TicketAttachmentUpsertWithWhereUniqueWithoutCommentInput | TicketAttachmentUpsertWithWhereUniqueWithoutCommentInput[]
    createMany?: TicketAttachmentCreateManyCommentInputEnvelope
    set?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    disconnect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    delete?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    connect?: TicketAttachmentWhereUniqueInput | TicketAttachmentWhereUniqueInput[]
    update?: TicketAttachmentUpdateWithWhereUniqueWithoutCommentInput | TicketAttachmentUpdateWithWhereUniqueWithoutCommentInput[]
    updateMany?: TicketAttachmentUpdateManyWithWhereWithoutCommentInput | TicketAttachmentUpdateManyWithWhereWithoutCommentInput[]
    deleteMany?: TicketAttachmentScalarWhereInput | TicketAttachmentScalarWhereInput[]
  }

  export type TicketCreateNestedOneWithoutAttachmentsInput = {
    create?: XOR<TicketCreateWithoutAttachmentsInput, TicketUncheckedCreateWithoutAttachmentsInput>
    connectOrCreate?: TicketCreateOrConnectWithoutAttachmentsInput
    connect?: TicketWhereUniqueInput
  }

  export type TicketCommentCreateNestedOneWithoutAttachmentsInput = {
    create?: XOR<TicketCommentCreateWithoutAttachmentsInput, TicketCommentUncheckedCreateWithoutAttachmentsInput>
    connectOrCreate?: TicketCommentCreateOrConnectWithoutAttachmentsInput
    connect?: TicketCommentWhereUniqueInput
  }

  export type TicketUpdateOneRequiredWithoutAttachmentsNestedInput = {
    create?: XOR<TicketCreateWithoutAttachmentsInput, TicketUncheckedCreateWithoutAttachmentsInput>
    connectOrCreate?: TicketCreateOrConnectWithoutAttachmentsInput
    upsert?: TicketUpsertWithoutAttachmentsInput
    connect?: TicketWhereUniqueInput
    update?: XOR<XOR<TicketUpdateToOneWithWhereWithoutAttachmentsInput, TicketUpdateWithoutAttachmentsInput>, TicketUncheckedUpdateWithoutAttachmentsInput>
  }

  export type TicketCommentUpdateOneWithoutAttachmentsNestedInput = {
    create?: XOR<TicketCommentCreateWithoutAttachmentsInput, TicketCommentUncheckedCreateWithoutAttachmentsInput>
    connectOrCreate?: TicketCommentCreateOrConnectWithoutAttachmentsInput
    upsert?: TicketCommentUpsertWithoutAttachmentsInput
    disconnect?: TicketCommentWhereInput | boolean
    delete?: TicketCommentWhereInput | boolean
    connect?: TicketCommentWhereUniqueInput
    update?: XOR<XOR<TicketCommentUpdateToOneWithWhereWithoutAttachmentsInput, TicketCommentUpdateWithoutAttachmentsInput>, TicketCommentUncheckedUpdateWithoutAttachmentsInput>
  }

  export type TicketCreateNestedOneWithoutActivitiesInput = {
    create?: XOR<TicketCreateWithoutActivitiesInput, TicketUncheckedCreateWithoutActivitiesInput>
    connectOrCreate?: TicketCreateOrConnectWithoutActivitiesInput
    connect?: TicketWhereUniqueInput
  }

  export type EnumActivityTypeFieldUpdateOperationsInput = {
    set?: $Enums.ActivityType
  }

  export type TicketUpdateOneRequiredWithoutActivitiesNestedInput = {
    create?: XOR<TicketCreateWithoutActivitiesInput, TicketUncheckedCreateWithoutActivitiesInput>
    connectOrCreate?: TicketCreateOrConnectWithoutActivitiesInput
    upsert?: TicketUpsertWithoutActivitiesInput
    connect?: TicketWhereUniqueInput
    update?: XOR<XOR<TicketUpdateToOneWithWhereWithoutActivitiesInput, TicketUpdateWithoutActivitiesInput>, TicketUncheckedUpdateWithoutActivitiesInput>
  }

  export type TicketCategoryCreateNestedManyWithoutSlaInput = {
    create?: XOR<TicketCategoryCreateWithoutSlaInput, TicketCategoryUncheckedCreateWithoutSlaInput> | TicketCategoryCreateWithoutSlaInput[] | TicketCategoryUncheckedCreateWithoutSlaInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutSlaInput | TicketCategoryCreateOrConnectWithoutSlaInput[]
    createMany?: TicketCategoryCreateManySlaInputEnvelope
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
  }

  export type TicketCreateNestedManyWithoutSlaInput = {
    create?: XOR<TicketCreateWithoutSlaInput, TicketUncheckedCreateWithoutSlaInput> | TicketCreateWithoutSlaInput[] | TicketUncheckedCreateWithoutSlaInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutSlaInput | TicketCreateOrConnectWithoutSlaInput[]
    createMany?: TicketCreateManySlaInputEnvelope
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
  }

  export type TicketCategoryUncheckedCreateNestedManyWithoutSlaInput = {
    create?: XOR<TicketCategoryCreateWithoutSlaInput, TicketCategoryUncheckedCreateWithoutSlaInput> | TicketCategoryCreateWithoutSlaInput[] | TicketCategoryUncheckedCreateWithoutSlaInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutSlaInput | TicketCategoryCreateOrConnectWithoutSlaInput[]
    createMany?: TicketCategoryCreateManySlaInputEnvelope
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
  }

  export type TicketUncheckedCreateNestedManyWithoutSlaInput = {
    create?: XOR<TicketCreateWithoutSlaInput, TicketUncheckedCreateWithoutSlaInput> | TicketCreateWithoutSlaInput[] | TicketUncheckedCreateWithoutSlaInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutSlaInput | TicketCreateOrConnectWithoutSlaInput[]
    createMany?: TicketCreateManySlaInputEnvelope
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
  }

  export type TicketCategoryUpdateManyWithoutSlaNestedInput = {
    create?: XOR<TicketCategoryCreateWithoutSlaInput, TicketCategoryUncheckedCreateWithoutSlaInput> | TicketCategoryCreateWithoutSlaInput[] | TicketCategoryUncheckedCreateWithoutSlaInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutSlaInput | TicketCategoryCreateOrConnectWithoutSlaInput[]
    upsert?: TicketCategoryUpsertWithWhereUniqueWithoutSlaInput | TicketCategoryUpsertWithWhereUniqueWithoutSlaInput[]
    createMany?: TicketCategoryCreateManySlaInputEnvelope
    set?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    disconnect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    delete?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    update?: TicketCategoryUpdateWithWhereUniqueWithoutSlaInput | TicketCategoryUpdateWithWhereUniqueWithoutSlaInput[]
    updateMany?: TicketCategoryUpdateManyWithWhereWithoutSlaInput | TicketCategoryUpdateManyWithWhereWithoutSlaInput[]
    deleteMany?: TicketCategoryScalarWhereInput | TicketCategoryScalarWhereInput[]
  }

  export type TicketUpdateManyWithoutSlaNestedInput = {
    create?: XOR<TicketCreateWithoutSlaInput, TicketUncheckedCreateWithoutSlaInput> | TicketCreateWithoutSlaInput[] | TicketUncheckedCreateWithoutSlaInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutSlaInput | TicketCreateOrConnectWithoutSlaInput[]
    upsert?: TicketUpsertWithWhereUniqueWithoutSlaInput | TicketUpsertWithWhereUniqueWithoutSlaInput[]
    createMany?: TicketCreateManySlaInputEnvelope
    set?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    disconnect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    delete?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    update?: TicketUpdateWithWhereUniqueWithoutSlaInput | TicketUpdateWithWhereUniqueWithoutSlaInput[]
    updateMany?: TicketUpdateManyWithWhereWithoutSlaInput | TicketUpdateManyWithWhereWithoutSlaInput[]
    deleteMany?: TicketScalarWhereInput | TicketScalarWhereInput[]
  }

  export type TicketCategoryUncheckedUpdateManyWithoutSlaNestedInput = {
    create?: XOR<TicketCategoryCreateWithoutSlaInput, TicketCategoryUncheckedCreateWithoutSlaInput> | TicketCategoryCreateWithoutSlaInput[] | TicketCategoryUncheckedCreateWithoutSlaInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutSlaInput | TicketCategoryCreateOrConnectWithoutSlaInput[]
    upsert?: TicketCategoryUpsertWithWhereUniqueWithoutSlaInput | TicketCategoryUpsertWithWhereUniqueWithoutSlaInput[]
    createMany?: TicketCategoryCreateManySlaInputEnvelope
    set?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    disconnect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    delete?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    update?: TicketCategoryUpdateWithWhereUniqueWithoutSlaInput | TicketCategoryUpdateWithWhereUniqueWithoutSlaInput[]
    updateMany?: TicketCategoryUpdateManyWithWhereWithoutSlaInput | TicketCategoryUpdateManyWithWhereWithoutSlaInput[]
    deleteMany?: TicketCategoryScalarWhereInput | TicketCategoryScalarWhereInput[]
  }

  export type TicketUncheckedUpdateManyWithoutSlaNestedInput = {
    create?: XOR<TicketCreateWithoutSlaInput, TicketUncheckedCreateWithoutSlaInput> | TicketCreateWithoutSlaInput[] | TicketUncheckedCreateWithoutSlaInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutSlaInput | TicketCreateOrConnectWithoutSlaInput[]
    upsert?: TicketUpsertWithWhereUniqueWithoutSlaInput | TicketUpsertWithWhereUniqueWithoutSlaInput[]
    createMany?: TicketCreateManySlaInputEnvelope
    set?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    disconnect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    delete?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    update?: TicketUpdateWithWhereUniqueWithoutSlaInput | TicketUpdateWithWhereUniqueWithoutSlaInput[]
    updateMany?: TicketUpdateManyWithWhereWithoutSlaInput | TicketUpdateManyWithWhereWithoutSlaInput[]
    deleteMany?: TicketScalarWhereInput | TicketScalarWhereInput[]
  }

  export type AssignmentGroupCreatememberIdsInput = {
    set: string[]
  }

  export type AssignmentGroupCreateskillsInput = {
    set: string[]
  }

  export type TicketCategoryCreateNestedManyWithoutDefaultAssigneeGroupInput = {
    create?: XOR<TicketCategoryCreateWithoutDefaultAssigneeGroupInput, TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput> | TicketCategoryCreateWithoutDefaultAssigneeGroupInput[] | TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput | TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput[]
    createMany?: TicketCategoryCreateManyDefaultAssigneeGroupInputEnvelope
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
  }

  export type TicketCreateNestedManyWithoutAssigneeGroupInput = {
    create?: XOR<TicketCreateWithoutAssigneeGroupInput, TicketUncheckedCreateWithoutAssigneeGroupInput> | TicketCreateWithoutAssigneeGroupInput[] | TicketUncheckedCreateWithoutAssigneeGroupInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutAssigneeGroupInput | TicketCreateOrConnectWithoutAssigneeGroupInput[]
    createMany?: TicketCreateManyAssigneeGroupInputEnvelope
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
  }

  export type TicketCategoryUncheckedCreateNestedManyWithoutDefaultAssigneeGroupInput = {
    create?: XOR<TicketCategoryCreateWithoutDefaultAssigneeGroupInput, TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput> | TicketCategoryCreateWithoutDefaultAssigneeGroupInput[] | TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput | TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput[]
    createMany?: TicketCategoryCreateManyDefaultAssigneeGroupInputEnvelope
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
  }

  export type TicketUncheckedCreateNestedManyWithoutAssigneeGroupInput = {
    create?: XOR<TicketCreateWithoutAssigneeGroupInput, TicketUncheckedCreateWithoutAssigneeGroupInput> | TicketCreateWithoutAssigneeGroupInput[] | TicketUncheckedCreateWithoutAssigneeGroupInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutAssigneeGroupInput | TicketCreateOrConnectWithoutAssigneeGroupInput[]
    createMany?: TicketCreateManyAssigneeGroupInputEnvelope
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
  }

  export type AssignmentGroupUpdatememberIdsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type AssignmentGroupUpdateskillsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumAssignmentStrategyFieldUpdateOperationsInput = {
    set?: $Enums.AssignmentStrategy
  }

  export type TicketCategoryUpdateManyWithoutDefaultAssigneeGroupNestedInput = {
    create?: XOR<TicketCategoryCreateWithoutDefaultAssigneeGroupInput, TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput> | TicketCategoryCreateWithoutDefaultAssigneeGroupInput[] | TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput | TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput[]
    upsert?: TicketCategoryUpsertWithWhereUniqueWithoutDefaultAssigneeGroupInput | TicketCategoryUpsertWithWhereUniqueWithoutDefaultAssigneeGroupInput[]
    createMany?: TicketCategoryCreateManyDefaultAssigneeGroupInputEnvelope
    set?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    disconnect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    delete?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    update?: TicketCategoryUpdateWithWhereUniqueWithoutDefaultAssigneeGroupInput | TicketCategoryUpdateWithWhereUniqueWithoutDefaultAssigneeGroupInput[]
    updateMany?: TicketCategoryUpdateManyWithWhereWithoutDefaultAssigneeGroupInput | TicketCategoryUpdateManyWithWhereWithoutDefaultAssigneeGroupInput[]
    deleteMany?: TicketCategoryScalarWhereInput | TicketCategoryScalarWhereInput[]
  }

  export type TicketUpdateManyWithoutAssigneeGroupNestedInput = {
    create?: XOR<TicketCreateWithoutAssigneeGroupInput, TicketUncheckedCreateWithoutAssigneeGroupInput> | TicketCreateWithoutAssigneeGroupInput[] | TicketUncheckedCreateWithoutAssigneeGroupInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutAssigneeGroupInput | TicketCreateOrConnectWithoutAssigneeGroupInput[]
    upsert?: TicketUpsertWithWhereUniqueWithoutAssigneeGroupInput | TicketUpsertWithWhereUniqueWithoutAssigneeGroupInput[]
    createMany?: TicketCreateManyAssigneeGroupInputEnvelope
    set?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    disconnect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    delete?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    update?: TicketUpdateWithWhereUniqueWithoutAssigneeGroupInput | TicketUpdateWithWhereUniqueWithoutAssigneeGroupInput[]
    updateMany?: TicketUpdateManyWithWhereWithoutAssigneeGroupInput | TicketUpdateManyWithWhereWithoutAssigneeGroupInput[]
    deleteMany?: TicketScalarWhereInput | TicketScalarWhereInput[]
  }

  export type TicketCategoryUncheckedUpdateManyWithoutDefaultAssigneeGroupNestedInput = {
    create?: XOR<TicketCategoryCreateWithoutDefaultAssigneeGroupInput, TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput> | TicketCategoryCreateWithoutDefaultAssigneeGroupInput[] | TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput[]
    connectOrCreate?: TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput | TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput[]
    upsert?: TicketCategoryUpsertWithWhereUniqueWithoutDefaultAssigneeGroupInput | TicketCategoryUpsertWithWhereUniqueWithoutDefaultAssigneeGroupInput[]
    createMany?: TicketCategoryCreateManyDefaultAssigneeGroupInputEnvelope
    set?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    disconnect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    delete?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    connect?: TicketCategoryWhereUniqueInput | TicketCategoryWhereUniqueInput[]
    update?: TicketCategoryUpdateWithWhereUniqueWithoutDefaultAssigneeGroupInput | TicketCategoryUpdateWithWhereUniqueWithoutDefaultAssigneeGroupInput[]
    updateMany?: TicketCategoryUpdateManyWithWhereWithoutDefaultAssigneeGroupInput | TicketCategoryUpdateManyWithWhereWithoutDefaultAssigneeGroupInput[]
    deleteMany?: TicketCategoryScalarWhereInput | TicketCategoryScalarWhereInput[]
  }

  export type TicketUncheckedUpdateManyWithoutAssigneeGroupNestedInput = {
    create?: XOR<TicketCreateWithoutAssigneeGroupInput, TicketUncheckedCreateWithoutAssigneeGroupInput> | TicketCreateWithoutAssigneeGroupInput[] | TicketUncheckedCreateWithoutAssigneeGroupInput[]
    connectOrCreate?: TicketCreateOrConnectWithoutAssigneeGroupInput | TicketCreateOrConnectWithoutAssigneeGroupInput[]
    upsert?: TicketUpsertWithWhereUniqueWithoutAssigneeGroupInput | TicketUpsertWithWhereUniqueWithoutAssigneeGroupInput[]
    createMany?: TicketCreateManyAssigneeGroupInputEnvelope
    set?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    disconnect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    delete?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    connect?: TicketWhereUniqueInput | TicketWhereUniqueInput[]
    update?: TicketUpdateWithWhereUniqueWithoutAssigneeGroupInput | TicketUpdateWithWhereUniqueWithoutAssigneeGroupInput[]
    updateMany?: TicketUpdateManyWithWhereWithoutAssigneeGroupInput | TicketUpdateManyWithWhereWithoutAssigneeGroupInput[]
    deleteMany?: TicketScalarWhereInput | TicketScalarWhereInput[]
  }

  export type RobotSkuCreateNestedManyWithoutModelInput = {
    create?: XOR<RobotSkuCreateWithoutModelInput, RobotSkuUncheckedCreateWithoutModelInput> | RobotSkuCreateWithoutModelInput[] | RobotSkuUncheckedCreateWithoutModelInput[]
    connectOrCreate?: RobotSkuCreateOrConnectWithoutModelInput | RobotSkuCreateOrConnectWithoutModelInput[]
    createMany?: RobotSkuCreateManyModelInputEnvelope
    connect?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
  }

  export type RobotUnitCreateNestedManyWithoutModelInput = {
    create?: XOR<RobotUnitCreateWithoutModelInput, RobotUnitUncheckedCreateWithoutModelInput> | RobotUnitCreateWithoutModelInput[] | RobotUnitUncheckedCreateWithoutModelInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutModelInput | RobotUnitCreateOrConnectWithoutModelInput[]
    createMany?: RobotUnitCreateManyModelInputEnvelope
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
  }

  export type RobotSkuUncheckedCreateNestedManyWithoutModelInput = {
    create?: XOR<RobotSkuCreateWithoutModelInput, RobotSkuUncheckedCreateWithoutModelInput> | RobotSkuCreateWithoutModelInput[] | RobotSkuUncheckedCreateWithoutModelInput[]
    connectOrCreate?: RobotSkuCreateOrConnectWithoutModelInput | RobotSkuCreateOrConnectWithoutModelInput[]
    createMany?: RobotSkuCreateManyModelInputEnvelope
    connect?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
  }

  export type RobotUnitUncheckedCreateNestedManyWithoutModelInput = {
    create?: XOR<RobotUnitCreateWithoutModelInput, RobotUnitUncheckedCreateWithoutModelInput> | RobotUnitCreateWithoutModelInput[] | RobotUnitUncheckedCreateWithoutModelInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutModelInput | RobotUnitCreateOrConnectWithoutModelInput[]
    createMany?: RobotUnitCreateManyModelInputEnvelope
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
  }

  export type RobotSkuUpdateManyWithoutModelNestedInput = {
    create?: XOR<RobotSkuCreateWithoutModelInput, RobotSkuUncheckedCreateWithoutModelInput> | RobotSkuCreateWithoutModelInput[] | RobotSkuUncheckedCreateWithoutModelInput[]
    connectOrCreate?: RobotSkuCreateOrConnectWithoutModelInput | RobotSkuCreateOrConnectWithoutModelInput[]
    upsert?: RobotSkuUpsertWithWhereUniqueWithoutModelInput | RobotSkuUpsertWithWhereUniqueWithoutModelInput[]
    createMany?: RobotSkuCreateManyModelInputEnvelope
    set?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
    disconnect?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
    delete?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
    connect?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
    update?: RobotSkuUpdateWithWhereUniqueWithoutModelInput | RobotSkuUpdateWithWhereUniqueWithoutModelInput[]
    updateMany?: RobotSkuUpdateManyWithWhereWithoutModelInput | RobotSkuUpdateManyWithWhereWithoutModelInput[]
    deleteMany?: RobotSkuScalarWhereInput | RobotSkuScalarWhereInput[]
  }

  export type RobotUnitUpdateManyWithoutModelNestedInput = {
    create?: XOR<RobotUnitCreateWithoutModelInput, RobotUnitUncheckedCreateWithoutModelInput> | RobotUnitCreateWithoutModelInput[] | RobotUnitUncheckedCreateWithoutModelInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutModelInput | RobotUnitCreateOrConnectWithoutModelInput[]
    upsert?: RobotUnitUpsertWithWhereUniqueWithoutModelInput | RobotUnitUpsertWithWhereUniqueWithoutModelInput[]
    createMany?: RobotUnitCreateManyModelInputEnvelope
    set?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    disconnect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    delete?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    update?: RobotUnitUpdateWithWhereUniqueWithoutModelInput | RobotUnitUpdateWithWhereUniqueWithoutModelInput[]
    updateMany?: RobotUnitUpdateManyWithWhereWithoutModelInput | RobotUnitUpdateManyWithWhereWithoutModelInput[]
    deleteMany?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
  }

  export type RobotSkuUncheckedUpdateManyWithoutModelNestedInput = {
    create?: XOR<RobotSkuCreateWithoutModelInput, RobotSkuUncheckedCreateWithoutModelInput> | RobotSkuCreateWithoutModelInput[] | RobotSkuUncheckedCreateWithoutModelInput[]
    connectOrCreate?: RobotSkuCreateOrConnectWithoutModelInput | RobotSkuCreateOrConnectWithoutModelInput[]
    upsert?: RobotSkuUpsertWithWhereUniqueWithoutModelInput | RobotSkuUpsertWithWhereUniqueWithoutModelInput[]
    createMany?: RobotSkuCreateManyModelInputEnvelope
    set?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
    disconnect?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
    delete?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
    connect?: RobotSkuWhereUniqueInput | RobotSkuWhereUniqueInput[]
    update?: RobotSkuUpdateWithWhereUniqueWithoutModelInput | RobotSkuUpdateWithWhereUniqueWithoutModelInput[]
    updateMany?: RobotSkuUpdateManyWithWhereWithoutModelInput | RobotSkuUpdateManyWithWhereWithoutModelInput[]
    deleteMany?: RobotSkuScalarWhereInput | RobotSkuScalarWhereInput[]
  }

  export type RobotUnitUncheckedUpdateManyWithoutModelNestedInput = {
    create?: XOR<RobotUnitCreateWithoutModelInput, RobotUnitUncheckedCreateWithoutModelInput> | RobotUnitCreateWithoutModelInput[] | RobotUnitUncheckedCreateWithoutModelInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutModelInput | RobotUnitCreateOrConnectWithoutModelInput[]
    upsert?: RobotUnitUpsertWithWhereUniqueWithoutModelInput | RobotUnitUpsertWithWhereUniqueWithoutModelInput[]
    createMany?: RobotUnitCreateManyModelInputEnvelope
    set?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    disconnect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    delete?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    update?: RobotUnitUpdateWithWhereUniqueWithoutModelInput | RobotUnitUpdateWithWhereUniqueWithoutModelInput[]
    updateMany?: RobotUnitUpdateManyWithWhereWithoutModelInput | RobotUnitUpdateManyWithWhereWithoutModelInput[]
    deleteMany?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
  }

  export type RobotModelCreateNestedOneWithoutSkusInput = {
    create?: XOR<RobotModelCreateWithoutSkusInput, RobotModelUncheckedCreateWithoutSkusInput>
    connectOrCreate?: RobotModelCreateOrConnectWithoutSkusInput
    connect?: RobotModelWhereUniqueInput
  }

  export type RobotUnitCreateNestedManyWithoutSkuInput = {
    create?: XOR<RobotUnitCreateWithoutSkuInput, RobotUnitUncheckedCreateWithoutSkuInput> | RobotUnitCreateWithoutSkuInput[] | RobotUnitUncheckedCreateWithoutSkuInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutSkuInput | RobotUnitCreateOrConnectWithoutSkuInput[]
    createMany?: RobotUnitCreateManySkuInputEnvelope
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
  }

  export type RobotUnitUncheckedCreateNestedManyWithoutSkuInput = {
    create?: XOR<RobotUnitCreateWithoutSkuInput, RobotUnitUncheckedCreateWithoutSkuInput> | RobotUnitCreateWithoutSkuInput[] | RobotUnitUncheckedCreateWithoutSkuInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutSkuInput | RobotUnitCreateOrConnectWithoutSkuInput[]
    createMany?: RobotUnitCreateManySkuInputEnvelope
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
  }

  export type RobotModelUpdateOneRequiredWithoutSkusNestedInput = {
    create?: XOR<RobotModelCreateWithoutSkusInput, RobotModelUncheckedCreateWithoutSkusInput>
    connectOrCreate?: RobotModelCreateOrConnectWithoutSkusInput
    upsert?: RobotModelUpsertWithoutSkusInput
    connect?: RobotModelWhereUniqueInput
    update?: XOR<XOR<RobotModelUpdateToOneWithWhereWithoutSkusInput, RobotModelUpdateWithoutSkusInput>, RobotModelUncheckedUpdateWithoutSkusInput>
  }

  export type RobotUnitUpdateManyWithoutSkuNestedInput = {
    create?: XOR<RobotUnitCreateWithoutSkuInput, RobotUnitUncheckedCreateWithoutSkuInput> | RobotUnitCreateWithoutSkuInput[] | RobotUnitUncheckedCreateWithoutSkuInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutSkuInput | RobotUnitCreateOrConnectWithoutSkuInput[]
    upsert?: RobotUnitUpsertWithWhereUniqueWithoutSkuInput | RobotUnitUpsertWithWhereUniqueWithoutSkuInput[]
    createMany?: RobotUnitCreateManySkuInputEnvelope
    set?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    disconnect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    delete?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    update?: RobotUnitUpdateWithWhereUniqueWithoutSkuInput | RobotUnitUpdateWithWhereUniqueWithoutSkuInput[]
    updateMany?: RobotUnitUpdateManyWithWhereWithoutSkuInput | RobotUnitUpdateManyWithWhereWithoutSkuInput[]
    deleteMany?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
  }

  export type RobotUnitUncheckedUpdateManyWithoutSkuNestedInput = {
    create?: XOR<RobotUnitCreateWithoutSkuInput, RobotUnitUncheckedCreateWithoutSkuInput> | RobotUnitCreateWithoutSkuInput[] | RobotUnitUncheckedCreateWithoutSkuInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutSkuInput | RobotUnitCreateOrConnectWithoutSkuInput[]
    upsert?: RobotUnitUpsertWithWhereUniqueWithoutSkuInput | RobotUnitUpsertWithWhereUniqueWithoutSkuInput[]
    createMany?: RobotUnitCreateManySkuInputEnvelope
    set?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    disconnect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    delete?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    update?: RobotUnitUpdateWithWhereUniqueWithoutSkuInput | RobotUnitUpdateWithWhereUniqueWithoutSkuInput[]
    updateMany?: RobotUnitUpdateManyWithWhereWithoutSkuInput | RobotUnitUpdateManyWithWhereWithoutSkuInput[]
    deleteMany?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
  }

  export type RobotModelCreateNestedOneWithoutRobotUnitsInput = {
    create?: XOR<RobotModelCreateWithoutRobotUnitsInput, RobotModelUncheckedCreateWithoutRobotUnitsInput>
    connectOrCreate?: RobotModelCreateOrConnectWithoutRobotUnitsInput
    connect?: RobotModelWhereUniqueInput
  }

  export type RobotSkuCreateNestedOneWithoutRobotUnitsInput = {
    create?: XOR<RobotSkuCreateWithoutRobotUnitsInput, RobotSkuUncheckedCreateWithoutRobotUnitsInput>
    connectOrCreate?: RobotSkuCreateOrConnectWithoutRobotUnitsInput
    connect?: RobotSkuWhereUniqueInput
  }

  export type PurchaseOrderCreateNestedOneWithoutRobotUnitsInput = {
    create?: XOR<PurchaseOrderCreateWithoutRobotUnitsInput, PurchaseOrderUncheckedCreateWithoutRobotUnitsInput>
    connectOrCreate?: PurchaseOrderCreateOrConnectWithoutRobotUnitsInput
    connect?: PurchaseOrderWhereUniqueInput
  }

  export type PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput = {
    create?: XOR<PurchaseOrderLineCreateWithoutRobotUnitsInput, PurchaseOrderLineUncheckedCreateWithoutRobotUnitsInput>
    connectOrCreate?: PurchaseOrderLineCreateOrConnectWithoutRobotUnitsInput
    connect?: PurchaseOrderLineWhereUniqueInput
  }

  export type RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutRobotUnitInput, RobotUnitSnapshotUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutRobotUnitInput
    connect?: RobotUnitSnapshotWhereUniqueInput
  }

  export type RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<RobotLifecycleEventCreateWithoutRobotUnitInput, RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput> | RobotLifecycleEventCreateWithoutRobotUnitInput[] | RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput | RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput[]
    createMany?: RobotLifecycleEventCreateManyRobotUnitInputEnvelope
    connect?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
  }

  export type QualityLabelRecordCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<QualityLabelRecordCreateWithoutRobotUnitInput, QualityLabelRecordUncheckedCreateWithoutRobotUnitInput> | QualityLabelRecordCreateWithoutRobotUnitInput[] | QualityLabelRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: QualityLabelRecordCreateOrConnectWithoutRobotUnitInput | QualityLabelRecordCreateOrConnectWithoutRobotUnitInput[]
    createMany?: QualityLabelRecordCreateManyRobotUnitInputEnvelope
    connect?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
  }

  export type RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput = {
    create?: XOR<RobotPackageReadinessCreateWithoutRobotUnitInput, RobotPackageReadinessUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotPackageReadinessCreateOrConnectWithoutRobotUnitInput
    connect?: RobotPackageReadinessWhereUniqueInput
  }

  export type InspectionRecordCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<InspectionRecordCreateWithoutRobotUnitInput, InspectionRecordUncheckedCreateWithoutRobotUnitInput> | InspectionRecordCreateWithoutRobotUnitInput[] | InspectionRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: InspectionRecordCreateOrConnectWithoutRobotUnitInput | InspectionRecordCreateOrConnectWithoutRobotUnitInput[]
    createMany?: InspectionRecordCreateManyRobotUnitInputEnvelope
    connect?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
  }

  export type LogisticsLegCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<LogisticsLegCreateWithoutRobotUnitInput, LogisticsLegUncheckedCreateWithoutRobotUnitInput> | LogisticsLegCreateWithoutRobotUnitInput[] | LogisticsLegUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: LogisticsLegCreateOrConnectWithoutRobotUnitInput | LogisticsLegCreateOrConnectWithoutRobotUnitInput[]
    createMany?: LogisticsLegCreateManyRobotUnitInputEnvelope
    connect?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
  }

  export type ComplianceCheckCreateNestedOneWithoutRobotUnitInput = {
    create?: XOR<ComplianceCheckCreateWithoutRobotUnitInput, ComplianceCheckUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: ComplianceCheckCreateOrConnectWithoutRobotUnitInput
    connect?: ComplianceCheckWhereUniqueInput
  }

  export type RentalAgreementCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<RentalAgreementCreateWithoutRobotUnitInput, RentalAgreementUncheckedCreateWithoutRobotUnitInput> | RentalAgreementCreateWithoutRobotUnitInput[] | RentalAgreementUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: RentalAgreementCreateOrConnectWithoutRobotUnitInput | RentalAgreementCreateOrConnectWithoutRobotUnitInput[]
    createMany?: RentalAgreementCreateManyRobotUnitInputEnvelope
    connect?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
  }

  export type ServiceTicketCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<ServiceTicketCreateWithoutRobotUnitInput, ServiceTicketUncheckedCreateWithoutRobotUnitInput> | ServiceTicketCreateWithoutRobotUnitInput[] | ServiceTicketUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: ServiceTicketCreateOrConnectWithoutRobotUnitInput | ServiceTicketCreateOrConnectWithoutRobotUnitInput[]
    createMany?: ServiceTicketCreateManyRobotUnitInputEnvelope
    connect?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
  }

  export type DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<DeliveryFulfillmentCreateWithoutRobotUnitInput, DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput> | DeliveryFulfillmentCreateWithoutRobotUnitInput[] | DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput | DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput[]
    createMany?: DeliveryFulfillmentCreateManyRobotUnitInputEnvelope
    connect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
  }

  export type SalesOrderLineCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<SalesOrderLineCreateWithoutRobotUnitInput, SalesOrderLineUncheckedCreateWithoutRobotUnitInput> | SalesOrderLineCreateWithoutRobotUnitInput[] | SalesOrderLineUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: SalesOrderLineCreateOrConnectWithoutRobotUnitInput | SalesOrderLineCreateOrConnectWithoutRobotUnitInput[]
    createMany?: SalesOrderLineCreateManyRobotUnitInputEnvelope
    connect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
  }

  export type RobotImportAuditCreateNestedOneWithoutRobotUnitInput = {
    create?: XOR<RobotImportAuditCreateWithoutRobotUnitInput, RobotImportAuditUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotImportAuditCreateOrConnectWithoutRobotUnitInput
    connect?: RobotImportAuditWhereUniqueInput
  }

  export type PaymentRecordCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<PaymentRecordCreateWithoutRobotUnitInput, PaymentRecordUncheckedCreateWithoutRobotUnitInput> | PaymentRecordCreateWithoutRobotUnitInput[] | PaymentRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: PaymentRecordCreateOrConnectWithoutRobotUnitInput | PaymentRecordCreateOrConnectWithoutRobotUnitInput[]
    createMany?: PaymentRecordCreateManyRobotUnitInputEnvelope
    connect?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
  }

  export type RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutRobotUnitInput, RobotUnitSnapshotUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutRobotUnitInput
    connect?: RobotUnitSnapshotWhereUniqueInput
  }

  export type RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<RobotLifecycleEventCreateWithoutRobotUnitInput, RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput> | RobotLifecycleEventCreateWithoutRobotUnitInput[] | RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput | RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput[]
    createMany?: RobotLifecycleEventCreateManyRobotUnitInputEnvelope
    connect?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
  }

  export type QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<QualityLabelRecordCreateWithoutRobotUnitInput, QualityLabelRecordUncheckedCreateWithoutRobotUnitInput> | QualityLabelRecordCreateWithoutRobotUnitInput[] | QualityLabelRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: QualityLabelRecordCreateOrConnectWithoutRobotUnitInput | QualityLabelRecordCreateOrConnectWithoutRobotUnitInput[]
    createMany?: QualityLabelRecordCreateManyRobotUnitInputEnvelope
    connect?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
  }

  export type RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput = {
    create?: XOR<RobotPackageReadinessCreateWithoutRobotUnitInput, RobotPackageReadinessUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotPackageReadinessCreateOrConnectWithoutRobotUnitInput
    connect?: RobotPackageReadinessWhereUniqueInput
  }

  export type InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<InspectionRecordCreateWithoutRobotUnitInput, InspectionRecordUncheckedCreateWithoutRobotUnitInput> | InspectionRecordCreateWithoutRobotUnitInput[] | InspectionRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: InspectionRecordCreateOrConnectWithoutRobotUnitInput | InspectionRecordCreateOrConnectWithoutRobotUnitInput[]
    createMany?: InspectionRecordCreateManyRobotUnitInputEnvelope
    connect?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
  }

  export type LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<LogisticsLegCreateWithoutRobotUnitInput, LogisticsLegUncheckedCreateWithoutRobotUnitInput> | LogisticsLegCreateWithoutRobotUnitInput[] | LogisticsLegUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: LogisticsLegCreateOrConnectWithoutRobotUnitInput | LogisticsLegCreateOrConnectWithoutRobotUnitInput[]
    createMany?: LogisticsLegCreateManyRobotUnitInputEnvelope
    connect?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
  }

  export type ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput = {
    create?: XOR<ComplianceCheckCreateWithoutRobotUnitInput, ComplianceCheckUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: ComplianceCheckCreateOrConnectWithoutRobotUnitInput
    connect?: ComplianceCheckWhereUniqueInput
  }

  export type RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<RentalAgreementCreateWithoutRobotUnitInput, RentalAgreementUncheckedCreateWithoutRobotUnitInput> | RentalAgreementCreateWithoutRobotUnitInput[] | RentalAgreementUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: RentalAgreementCreateOrConnectWithoutRobotUnitInput | RentalAgreementCreateOrConnectWithoutRobotUnitInput[]
    createMany?: RentalAgreementCreateManyRobotUnitInputEnvelope
    connect?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
  }

  export type ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<ServiceTicketCreateWithoutRobotUnitInput, ServiceTicketUncheckedCreateWithoutRobotUnitInput> | ServiceTicketCreateWithoutRobotUnitInput[] | ServiceTicketUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: ServiceTicketCreateOrConnectWithoutRobotUnitInput | ServiceTicketCreateOrConnectWithoutRobotUnitInput[]
    createMany?: ServiceTicketCreateManyRobotUnitInputEnvelope
    connect?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
  }

  export type DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<DeliveryFulfillmentCreateWithoutRobotUnitInput, DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput> | DeliveryFulfillmentCreateWithoutRobotUnitInput[] | DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput | DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput[]
    createMany?: DeliveryFulfillmentCreateManyRobotUnitInputEnvelope
    connect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
  }

  export type SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<SalesOrderLineCreateWithoutRobotUnitInput, SalesOrderLineUncheckedCreateWithoutRobotUnitInput> | SalesOrderLineCreateWithoutRobotUnitInput[] | SalesOrderLineUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: SalesOrderLineCreateOrConnectWithoutRobotUnitInput | SalesOrderLineCreateOrConnectWithoutRobotUnitInput[]
    createMany?: SalesOrderLineCreateManyRobotUnitInputEnvelope
    connect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
  }

  export type RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput = {
    create?: XOR<RobotImportAuditCreateWithoutRobotUnitInput, RobotImportAuditUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotImportAuditCreateOrConnectWithoutRobotUnitInput
    connect?: RobotImportAuditWhereUniqueInput
  }

  export type PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput = {
    create?: XOR<PaymentRecordCreateWithoutRobotUnitInput, PaymentRecordUncheckedCreateWithoutRobotUnitInput> | PaymentRecordCreateWithoutRobotUnitInput[] | PaymentRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: PaymentRecordCreateOrConnectWithoutRobotUnitInput | PaymentRecordCreateOrConnectWithoutRobotUnitInput[]
    createMany?: PaymentRecordCreateManyRobotUnitInputEnvelope
    connect?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
  }

  export type EnumRobotUsageTypeFieldUpdateOperationsInput = {
    set?: $Enums.RobotUsageType
  }

  export type NullableEnumRobotDisposalTypeFieldUpdateOperationsInput = {
    set?: $Enums.RobotDisposalType | null
  }

  export type RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput = {
    create?: XOR<RobotModelCreateWithoutRobotUnitsInput, RobotModelUncheckedCreateWithoutRobotUnitsInput>
    connectOrCreate?: RobotModelCreateOrConnectWithoutRobotUnitsInput
    upsert?: RobotModelUpsertWithoutRobotUnitsInput
    connect?: RobotModelWhereUniqueInput
    update?: XOR<XOR<RobotModelUpdateToOneWithWhereWithoutRobotUnitsInput, RobotModelUpdateWithoutRobotUnitsInput>, RobotModelUncheckedUpdateWithoutRobotUnitsInput>
  }

  export type RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput = {
    create?: XOR<RobotSkuCreateWithoutRobotUnitsInput, RobotSkuUncheckedCreateWithoutRobotUnitsInput>
    connectOrCreate?: RobotSkuCreateOrConnectWithoutRobotUnitsInput
    upsert?: RobotSkuUpsertWithoutRobotUnitsInput
    connect?: RobotSkuWhereUniqueInput
    update?: XOR<XOR<RobotSkuUpdateToOneWithWhereWithoutRobotUnitsInput, RobotSkuUpdateWithoutRobotUnitsInput>, RobotSkuUncheckedUpdateWithoutRobotUnitsInput>
  }

  export type PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput = {
    create?: XOR<PurchaseOrderCreateWithoutRobotUnitsInput, PurchaseOrderUncheckedCreateWithoutRobotUnitsInput>
    connectOrCreate?: PurchaseOrderCreateOrConnectWithoutRobotUnitsInput
    upsert?: PurchaseOrderUpsertWithoutRobotUnitsInput
    disconnect?: PurchaseOrderWhereInput | boolean
    delete?: PurchaseOrderWhereInput | boolean
    connect?: PurchaseOrderWhereUniqueInput
    update?: XOR<XOR<PurchaseOrderUpdateToOneWithWhereWithoutRobotUnitsInput, PurchaseOrderUpdateWithoutRobotUnitsInput>, PurchaseOrderUncheckedUpdateWithoutRobotUnitsInput>
  }

  export type PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput = {
    create?: XOR<PurchaseOrderLineCreateWithoutRobotUnitsInput, PurchaseOrderLineUncheckedCreateWithoutRobotUnitsInput>
    connectOrCreate?: PurchaseOrderLineCreateOrConnectWithoutRobotUnitsInput
    upsert?: PurchaseOrderLineUpsertWithoutRobotUnitsInput
    disconnect?: PurchaseOrderLineWhereInput | boolean
    delete?: PurchaseOrderLineWhereInput | boolean
    connect?: PurchaseOrderLineWhereUniqueInput
    update?: XOR<XOR<PurchaseOrderLineUpdateToOneWithWhereWithoutRobotUnitsInput, PurchaseOrderLineUpdateWithoutRobotUnitsInput>, PurchaseOrderLineUncheckedUpdateWithoutRobotUnitsInput>
  }

  export type RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutRobotUnitInput, RobotUnitSnapshotUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutRobotUnitInput
    upsert?: RobotUnitSnapshotUpsertWithoutRobotUnitInput
    disconnect?: RobotUnitSnapshotWhereInput | boolean
    delete?: RobotUnitSnapshotWhereInput | boolean
    connect?: RobotUnitSnapshotWhereUniqueInput
    update?: XOR<XOR<RobotUnitSnapshotUpdateToOneWithWhereWithoutRobotUnitInput, RobotUnitSnapshotUpdateWithoutRobotUnitInput>, RobotUnitSnapshotUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<RobotLifecycleEventCreateWithoutRobotUnitInput, RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput> | RobotLifecycleEventCreateWithoutRobotUnitInput[] | RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput | RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput[]
    upsert?: RobotLifecycleEventUpsertWithWhereUniqueWithoutRobotUnitInput | RobotLifecycleEventUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: RobotLifecycleEventCreateManyRobotUnitInputEnvelope
    set?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
    disconnect?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
    delete?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
    connect?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
    update?: RobotLifecycleEventUpdateWithWhereUniqueWithoutRobotUnitInput | RobotLifecycleEventUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: RobotLifecycleEventUpdateManyWithWhereWithoutRobotUnitInput | RobotLifecycleEventUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: RobotLifecycleEventScalarWhereInput | RobotLifecycleEventScalarWhereInput[]
  }

  export type QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<QualityLabelRecordCreateWithoutRobotUnitInput, QualityLabelRecordUncheckedCreateWithoutRobotUnitInput> | QualityLabelRecordCreateWithoutRobotUnitInput[] | QualityLabelRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: QualityLabelRecordCreateOrConnectWithoutRobotUnitInput | QualityLabelRecordCreateOrConnectWithoutRobotUnitInput[]
    upsert?: QualityLabelRecordUpsertWithWhereUniqueWithoutRobotUnitInput | QualityLabelRecordUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: QualityLabelRecordCreateManyRobotUnitInputEnvelope
    set?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
    disconnect?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
    delete?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
    connect?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
    update?: QualityLabelRecordUpdateWithWhereUniqueWithoutRobotUnitInput | QualityLabelRecordUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: QualityLabelRecordUpdateManyWithWhereWithoutRobotUnitInput | QualityLabelRecordUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: QualityLabelRecordScalarWhereInput | QualityLabelRecordScalarWhereInput[]
  }

  export type RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput = {
    create?: XOR<RobotPackageReadinessCreateWithoutRobotUnitInput, RobotPackageReadinessUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotPackageReadinessCreateOrConnectWithoutRobotUnitInput
    upsert?: RobotPackageReadinessUpsertWithoutRobotUnitInput
    disconnect?: RobotPackageReadinessWhereInput | boolean
    delete?: RobotPackageReadinessWhereInput | boolean
    connect?: RobotPackageReadinessWhereUniqueInput
    update?: XOR<XOR<RobotPackageReadinessUpdateToOneWithWhereWithoutRobotUnitInput, RobotPackageReadinessUpdateWithoutRobotUnitInput>, RobotPackageReadinessUncheckedUpdateWithoutRobotUnitInput>
  }

  export type InspectionRecordUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<InspectionRecordCreateWithoutRobotUnitInput, InspectionRecordUncheckedCreateWithoutRobotUnitInput> | InspectionRecordCreateWithoutRobotUnitInput[] | InspectionRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: InspectionRecordCreateOrConnectWithoutRobotUnitInput | InspectionRecordCreateOrConnectWithoutRobotUnitInput[]
    upsert?: InspectionRecordUpsertWithWhereUniqueWithoutRobotUnitInput | InspectionRecordUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: InspectionRecordCreateManyRobotUnitInputEnvelope
    set?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
    disconnect?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
    delete?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
    connect?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
    update?: InspectionRecordUpdateWithWhereUniqueWithoutRobotUnitInput | InspectionRecordUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: InspectionRecordUpdateManyWithWhereWithoutRobotUnitInput | InspectionRecordUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: InspectionRecordScalarWhereInput | InspectionRecordScalarWhereInput[]
  }

  export type LogisticsLegUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<LogisticsLegCreateWithoutRobotUnitInput, LogisticsLegUncheckedCreateWithoutRobotUnitInput> | LogisticsLegCreateWithoutRobotUnitInput[] | LogisticsLegUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: LogisticsLegCreateOrConnectWithoutRobotUnitInput | LogisticsLegCreateOrConnectWithoutRobotUnitInput[]
    upsert?: LogisticsLegUpsertWithWhereUniqueWithoutRobotUnitInput | LogisticsLegUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: LogisticsLegCreateManyRobotUnitInputEnvelope
    set?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
    disconnect?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
    delete?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
    connect?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
    update?: LogisticsLegUpdateWithWhereUniqueWithoutRobotUnitInput | LogisticsLegUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: LogisticsLegUpdateManyWithWhereWithoutRobotUnitInput | LogisticsLegUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: LogisticsLegScalarWhereInput | LogisticsLegScalarWhereInput[]
  }

  export type ComplianceCheckUpdateOneWithoutRobotUnitNestedInput = {
    create?: XOR<ComplianceCheckCreateWithoutRobotUnitInput, ComplianceCheckUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: ComplianceCheckCreateOrConnectWithoutRobotUnitInput
    upsert?: ComplianceCheckUpsertWithoutRobotUnitInput
    disconnect?: ComplianceCheckWhereInput | boolean
    delete?: ComplianceCheckWhereInput | boolean
    connect?: ComplianceCheckWhereUniqueInput
    update?: XOR<XOR<ComplianceCheckUpdateToOneWithWhereWithoutRobotUnitInput, ComplianceCheckUpdateWithoutRobotUnitInput>, ComplianceCheckUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RentalAgreementUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<RentalAgreementCreateWithoutRobotUnitInput, RentalAgreementUncheckedCreateWithoutRobotUnitInput> | RentalAgreementCreateWithoutRobotUnitInput[] | RentalAgreementUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: RentalAgreementCreateOrConnectWithoutRobotUnitInput | RentalAgreementCreateOrConnectWithoutRobotUnitInput[]
    upsert?: RentalAgreementUpsertWithWhereUniqueWithoutRobotUnitInput | RentalAgreementUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: RentalAgreementCreateManyRobotUnitInputEnvelope
    set?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
    disconnect?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
    delete?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
    connect?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
    update?: RentalAgreementUpdateWithWhereUniqueWithoutRobotUnitInput | RentalAgreementUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: RentalAgreementUpdateManyWithWhereWithoutRobotUnitInput | RentalAgreementUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: RentalAgreementScalarWhereInput | RentalAgreementScalarWhereInput[]
  }

  export type ServiceTicketUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<ServiceTicketCreateWithoutRobotUnitInput, ServiceTicketUncheckedCreateWithoutRobotUnitInput> | ServiceTicketCreateWithoutRobotUnitInput[] | ServiceTicketUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: ServiceTicketCreateOrConnectWithoutRobotUnitInput | ServiceTicketCreateOrConnectWithoutRobotUnitInput[]
    upsert?: ServiceTicketUpsertWithWhereUniqueWithoutRobotUnitInput | ServiceTicketUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: ServiceTicketCreateManyRobotUnitInputEnvelope
    set?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
    disconnect?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
    delete?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
    connect?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
    update?: ServiceTicketUpdateWithWhereUniqueWithoutRobotUnitInput | ServiceTicketUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: ServiceTicketUpdateManyWithWhereWithoutRobotUnitInput | ServiceTicketUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: ServiceTicketScalarWhereInput | ServiceTicketScalarWhereInput[]
  }

  export type DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<DeliveryFulfillmentCreateWithoutRobotUnitInput, DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput> | DeliveryFulfillmentCreateWithoutRobotUnitInput[] | DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput | DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput[]
    upsert?: DeliveryFulfillmentUpsertWithWhereUniqueWithoutRobotUnitInput | DeliveryFulfillmentUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: DeliveryFulfillmentCreateManyRobotUnitInputEnvelope
    set?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    disconnect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    delete?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    connect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    update?: DeliveryFulfillmentUpdateWithWhereUniqueWithoutRobotUnitInput | DeliveryFulfillmentUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: DeliveryFulfillmentUpdateManyWithWhereWithoutRobotUnitInput | DeliveryFulfillmentUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: DeliveryFulfillmentScalarWhereInput | DeliveryFulfillmentScalarWhereInput[]
  }

  export type SalesOrderLineUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<SalesOrderLineCreateWithoutRobotUnitInput, SalesOrderLineUncheckedCreateWithoutRobotUnitInput> | SalesOrderLineCreateWithoutRobotUnitInput[] | SalesOrderLineUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: SalesOrderLineCreateOrConnectWithoutRobotUnitInput | SalesOrderLineCreateOrConnectWithoutRobotUnitInput[]
    upsert?: SalesOrderLineUpsertWithWhereUniqueWithoutRobotUnitInput | SalesOrderLineUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: SalesOrderLineCreateManyRobotUnitInputEnvelope
    set?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    disconnect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    delete?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    connect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    update?: SalesOrderLineUpdateWithWhereUniqueWithoutRobotUnitInput | SalesOrderLineUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: SalesOrderLineUpdateManyWithWhereWithoutRobotUnitInput | SalesOrderLineUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: SalesOrderLineScalarWhereInput | SalesOrderLineScalarWhereInput[]
  }

  export type RobotImportAuditUpdateOneWithoutRobotUnitNestedInput = {
    create?: XOR<RobotImportAuditCreateWithoutRobotUnitInput, RobotImportAuditUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotImportAuditCreateOrConnectWithoutRobotUnitInput
    upsert?: RobotImportAuditUpsertWithoutRobotUnitInput
    disconnect?: RobotImportAuditWhereInput | boolean
    delete?: RobotImportAuditWhereInput | boolean
    connect?: RobotImportAuditWhereUniqueInput
    update?: XOR<XOR<RobotImportAuditUpdateToOneWithWhereWithoutRobotUnitInput, RobotImportAuditUpdateWithoutRobotUnitInput>, RobotImportAuditUncheckedUpdateWithoutRobotUnitInput>
  }

  export type PaymentRecordUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<PaymentRecordCreateWithoutRobotUnitInput, PaymentRecordUncheckedCreateWithoutRobotUnitInput> | PaymentRecordCreateWithoutRobotUnitInput[] | PaymentRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: PaymentRecordCreateOrConnectWithoutRobotUnitInput | PaymentRecordCreateOrConnectWithoutRobotUnitInput[]
    upsert?: PaymentRecordUpsertWithWhereUniqueWithoutRobotUnitInput | PaymentRecordUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: PaymentRecordCreateManyRobotUnitInputEnvelope
    set?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
    disconnect?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
    delete?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
    connect?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
    update?: PaymentRecordUpdateWithWhereUniqueWithoutRobotUnitInput | PaymentRecordUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: PaymentRecordUpdateManyWithWhereWithoutRobotUnitInput | PaymentRecordUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: PaymentRecordScalarWhereInput | PaymentRecordScalarWhereInput[]
  }

  export type RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutRobotUnitInput, RobotUnitSnapshotUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutRobotUnitInput
    upsert?: RobotUnitSnapshotUpsertWithoutRobotUnitInput
    disconnect?: RobotUnitSnapshotWhereInput | boolean
    delete?: RobotUnitSnapshotWhereInput | boolean
    connect?: RobotUnitSnapshotWhereUniqueInput
    update?: XOR<XOR<RobotUnitSnapshotUpdateToOneWithWhereWithoutRobotUnitInput, RobotUnitSnapshotUpdateWithoutRobotUnitInput>, RobotUnitSnapshotUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<RobotLifecycleEventCreateWithoutRobotUnitInput, RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput> | RobotLifecycleEventCreateWithoutRobotUnitInput[] | RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput | RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput[]
    upsert?: RobotLifecycleEventUpsertWithWhereUniqueWithoutRobotUnitInput | RobotLifecycleEventUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: RobotLifecycleEventCreateManyRobotUnitInputEnvelope
    set?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
    disconnect?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
    delete?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
    connect?: RobotLifecycleEventWhereUniqueInput | RobotLifecycleEventWhereUniqueInput[]
    update?: RobotLifecycleEventUpdateWithWhereUniqueWithoutRobotUnitInput | RobotLifecycleEventUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: RobotLifecycleEventUpdateManyWithWhereWithoutRobotUnitInput | RobotLifecycleEventUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: RobotLifecycleEventScalarWhereInput | RobotLifecycleEventScalarWhereInput[]
  }

  export type QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<QualityLabelRecordCreateWithoutRobotUnitInput, QualityLabelRecordUncheckedCreateWithoutRobotUnitInput> | QualityLabelRecordCreateWithoutRobotUnitInput[] | QualityLabelRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: QualityLabelRecordCreateOrConnectWithoutRobotUnitInput | QualityLabelRecordCreateOrConnectWithoutRobotUnitInput[]
    upsert?: QualityLabelRecordUpsertWithWhereUniqueWithoutRobotUnitInput | QualityLabelRecordUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: QualityLabelRecordCreateManyRobotUnitInputEnvelope
    set?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
    disconnect?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
    delete?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
    connect?: QualityLabelRecordWhereUniqueInput | QualityLabelRecordWhereUniqueInput[]
    update?: QualityLabelRecordUpdateWithWhereUniqueWithoutRobotUnitInput | QualityLabelRecordUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: QualityLabelRecordUpdateManyWithWhereWithoutRobotUnitInput | QualityLabelRecordUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: QualityLabelRecordScalarWhereInput | QualityLabelRecordScalarWhereInput[]
  }

  export type RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput = {
    create?: XOR<RobotPackageReadinessCreateWithoutRobotUnitInput, RobotPackageReadinessUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotPackageReadinessCreateOrConnectWithoutRobotUnitInput
    upsert?: RobotPackageReadinessUpsertWithoutRobotUnitInput
    disconnect?: RobotPackageReadinessWhereInput | boolean
    delete?: RobotPackageReadinessWhereInput | boolean
    connect?: RobotPackageReadinessWhereUniqueInput
    update?: XOR<XOR<RobotPackageReadinessUpdateToOneWithWhereWithoutRobotUnitInput, RobotPackageReadinessUpdateWithoutRobotUnitInput>, RobotPackageReadinessUncheckedUpdateWithoutRobotUnitInput>
  }

  export type InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<InspectionRecordCreateWithoutRobotUnitInput, InspectionRecordUncheckedCreateWithoutRobotUnitInput> | InspectionRecordCreateWithoutRobotUnitInput[] | InspectionRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: InspectionRecordCreateOrConnectWithoutRobotUnitInput | InspectionRecordCreateOrConnectWithoutRobotUnitInput[]
    upsert?: InspectionRecordUpsertWithWhereUniqueWithoutRobotUnitInput | InspectionRecordUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: InspectionRecordCreateManyRobotUnitInputEnvelope
    set?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
    disconnect?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
    delete?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
    connect?: InspectionRecordWhereUniqueInput | InspectionRecordWhereUniqueInput[]
    update?: InspectionRecordUpdateWithWhereUniqueWithoutRobotUnitInput | InspectionRecordUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: InspectionRecordUpdateManyWithWhereWithoutRobotUnitInput | InspectionRecordUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: InspectionRecordScalarWhereInput | InspectionRecordScalarWhereInput[]
  }

  export type LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<LogisticsLegCreateWithoutRobotUnitInput, LogisticsLegUncheckedCreateWithoutRobotUnitInput> | LogisticsLegCreateWithoutRobotUnitInput[] | LogisticsLegUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: LogisticsLegCreateOrConnectWithoutRobotUnitInput | LogisticsLegCreateOrConnectWithoutRobotUnitInput[]
    upsert?: LogisticsLegUpsertWithWhereUniqueWithoutRobotUnitInput | LogisticsLegUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: LogisticsLegCreateManyRobotUnitInputEnvelope
    set?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
    disconnect?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
    delete?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
    connect?: LogisticsLegWhereUniqueInput | LogisticsLegWhereUniqueInput[]
    update?: LogisticsLegUpdateWithWhereUniqueWithoutRobotUnitInput | LogisticsLegUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: LogisticsLegUpdateManyWithWhereWithoutRobotUnitInput | LogisticsLegUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: LogisticsLegScalarWhereInput | LogisticsLegScalarWhereInput[]
  }

  export type ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput = {
    create?: XOR<ComplianceCheckCreateWithoutRobotUnitInput, ComplianceCheckUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: ComplianceCheckCreateOrConnectWithoutRobotUnitInput
    upsert?: ComplianceCheckUpsertWithoutRobotUnitInput
    disconnect?: ComplianceCheckWhereInput | boolean
    delete?: ComplianceCheckWhereInput | boolean
    connect?: ComplianceCheckWhereUniqueInput
    update?: XOR<XOR<ComplianceCheckUpdateToOneWithWhereWithoutRobotUnitInput, ComplianceCheckUpdateWithoutRobotUnitInput>, ComplianceCheckUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<RentalAgreementCreateWithoutRobotUnitInput, RentalAgreementUncheckedCreateWithoutRobotUnitInput> | RentalAgreementCreateWithoutRobotUnitInput[] | RentalAgreementUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: RentalAgreementCreateOrConnectWithoutRobotUnitInput | RentalAgreementCreateOrConnectWithoutRobotUnitInput[]
    upsert?: RentalAgreementUpsertWithWhereUniqueWithoutRobotUnitInput | RentalAgreementUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: RentalAgreementCreateManyRobotUnitInputEnvelope
    set?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
    disconnect?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
    delete?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
    connect?: RentalAgreementWhereUniqueInput | RentalAgreementWhereUniqueInput[]
    update?: RentalAgreementUpdateWithWhereUniqueWithoutRobotUnitInput | RentalAgreementUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: RentalAgreementUpdateManyWithWhereWithoutRobotUnitInput | RentalAgreementUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: RentalAgreementScalarWhereInput | RentalAgreementScalarWhereInput[]
  }

  export type ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<ServiceTicketCreateWithoutRobotUnitInput, ServiceTicketUncheckedCreateWithoutRobotUnitInput> | ServiceTicketCreateWithoutRobotUnitInput[] | ServiceTicketUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: ServiceTicketCreateOrConnectWithoutRobotUnitInput | ServiceTicketCreateOrConnectWithoutRobotUnitInput[]
    upsert?: ServiceTicketUpsertWithWhereUniqueWithoutRobotUnitInput | ServiceTicketUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: ServiceTicketCreateManyRobotUnitInputEnvelope
    set?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
    disconnect?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
    delete?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
    connect?: ServiceTicketWhereUniqueInput | ServiceTicketWhereUniqueInput[]
    update?: ServiceTicketUpdateWithWhereUniqueWithoutRobotUnitInput | ServiceTicketUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: ServiceTicketUpdateManyWithWhereWithoutRobotUnitInput | ServiceTicketUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: ServiceTicketScalarWhereInput | ServiceTicketScalarWhereInput[]
  }

  export type DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<DeliveryFulfillmentCreateWithoutRobotUnitInput, DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput> | DeliveryFulfillmentCreateWithoutRobotUnitInput[] | DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput | DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput[]
    upsert?: DeliveryFulfillmentUpsertWithWhereUniqueWithoutRobotUnitInput | DeliveryFulfillmentUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: DeliveryFulfillmentCreateManyRobotUnitInputEnvelope
    set?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    disconnect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    delete?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    connect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    update?: DeliveryFulfillmentUpdateWithWhereUniqueWithoutRobotUnitInput | DeliveryFulfillmentUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: DeliveryFulfillmentUpdateManyWithWhereWithoutRobotUnitInput | DeliveryFulfillmentUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: DeliveryFulfillmentScalarWhereInput | DeliveryFulfillmentScalarWhereInput[]
  }

  export type SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<SalesOrderLineCreateWithoutRobotUnitInput, SalesOrderLineUncheckedCreateWithoutRobotUnitInput> | SalesOrderLineCreateWithoutRobotUnitInput[] | SalesOrderLineUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: SalesOrderLineCreateOrConnectWithoutRobotUnitInput | SalesOrderLineCreateOrConnectWithoutRobotUnitInput[]
    upsert?: SalesOrderLineUpsertWithWhereUniqueWithoutRobotUnitInput | SalesOrderLineUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: SalesOrderLineCreateManyRobotUnitInputEnvelope
    set?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    disconnect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    delete?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    connect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    update?: SalesOrderLineUpdateWithWhereUniqueWithoutRobotUnitInput | SalesOrderLineUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: SalesOrderLineUpdateManyWithWhereWithoutRobotUnitInput | SalesOrderLineUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: SalesOrderLineScalarWhereInput | SalesOrderLineScalarWhereInput[]
  }

  export type RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput = {
    create?: XOR<RobotImportAuditCreateWithoutRobotUnitInput, RobotImportAuditUncheckedCreateWithoutRobotUnitInput>
    connectOrCreate?: RobotImportAuditCreateOrConnectWithoutRobotUnitInput
    upsert?: RobotImportAuditUpsertWithoutRobotUnitInput
    disconnect?: RobotImportAuditWhereInput | boolean
    delete?: RobotImportAuditWhereInput | boolean
    connect?: RobotImportAuditWhereUniqueInput
    update?: XOR<XOR<RobotImportAuditUpdateToOneWithWhereWithoutRobotUnitInput, RobotImportAuditUpdateWithoutRobotUnitInput>, RobotImportAuditUncheckedUpdateWithoutRobotUnitInput>
  }

  export type PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput = {
    create?: XOR<PaymentRecordCreateWithoutRobotUnitInput, PaymentRecordUncheckedCreateWithoutRobotUnitInput> | PaymentRecordCreateWithoutRobotUnitInput[] | PaymentRecordUncheckedCreateWithoutRobotUnitInput[]
    connectOrCreate?: PaymentRecordCreateOrConnectWithoutRobotUnitInput | PaymentRecordCreateOrConnectWithoutRobotUnitInput[]
    upsert?: PaymentRecordUpsertWithWhereUniqueWithoutRobotUnitInput | PaymentRecordUpsertWithWhereUniqueWithoutRobotUnitInput[]
    createMany?: PaymentRecordCreateManyRobotUnitInputEnvelope
    set?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
    disconnect?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
    delete?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
    connect?: PaymentRecordWhereUniqueInput | PaymentRecordWhereUniqueInput[]
    update?: PaymentRecordUpdateWithWhereUniqueWithoutRobotUnitInput | PaymentRecordUpdateWithWhereUniqueWithoutRobotUnitInput[]
    updateMany?: PaymentRecordUpdateManyWithWhereWithoutRobotUnitInput | PaymentRecordUpdateManyWithWhereWithoutRobotUnitInput[]
    deleteMany?: PaymentRecordScalarWhereInput | PaymentRecordScalarWhereInput[]
  }

  export type RobotUnitCreateNestedOneWithoutSnapshotInput = {
    create?: XOR<RobotUnitCreateWithoutSnapshotInput, RobotUnitUncheckedCreateWithoutSnapshotInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutSnapshotInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type RobotLifecycleEventCreateNestedOneWithoutSnapshotsAsLastEventInput = {
    create?: XOR<RobotLifecycleEventCreateWithoutSnapshotsAsLastEventInput, RobotLifecycleEventUncheckedCreateWithoutSnapshotsAsLastEventInput>
    connectOrCreate?: RobotLifecycleEventCreateOrConnectWithoutSnapshotsAsLastEventInput
    connect?: RobotLifecycleEventWhereUniqueInput
  }

  export type SalesOrderCreateNestedOneWithoutSnapshotRefsInput = {
    create?: XOR<SalesOrderCreateWithoutSnapshotRefsInput, SalesOrderUncheckedCreateWithoutSnapshotRefsInput>
    connectOrCreate?: SalesOrderCreateOrConnectWithoutSnapshotRefsInput
    connect?: SalesOrderWhereUniqueInput
  }

  export type DeliveryRequestCreateNestedOneWithoutSnapshotRefsInput = {
    create?: XOR<DeliveryRequestCreateWithoutSnapshotRefsInput, DeliveryRequestUncheckedCreateWithoutSnapshotRefsInput>
    connectOrCreate?: DeliveryRequestCreateOrConnectWithoutSnapshotRefsInput
    connect?: DeliveryRequestWhereUniqueInput
  }

  export type EnumRobotLifecycleStageFieldUpdateOperationsInput = {
    set?: $Enums.RobotLifecycleStage
  }

  export type NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput = {
    set?: $Enums.RobotPhysicalStatus | null
  }

  export type NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput = {
    set?: $Enums.RobotWarrantyStatus | null
  }

  export type RobotUnitUpdateOneRequiredWithoutSnapshotNestedInput = {
    create?: XOR<RobotUnitCreateWithoutSnapshotInput, RobotUnitUncheckedCreateWithoutSnapshotInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutSnapshotInput
    upsert?: RobotUnitUpsertWithoutSnapshotInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutSnapshotInput, RobotUnitUpdateWithoutSnapshotInput>, RobotUnitUncheckedUpdateWithoutSnapshotInput>
  }

  export type RobotLifecycleEventUpdateOneWithoutSnapshotsAsLastEventNestedInput = {
    create?: XOR<RobotLifecycleEventCreateWithoutSnapshotsAsLastEventInput, RobotLifecycleEventUncheckedCreateWithoutSnapshotsAsLastEventInput>
    connectOrCreate?: RobotLifecycleEventCreateOrConnectWithoutSnapshotsAsLastEventInput
    upsert?: RobotLifecycleEventUpsertWithoutSnapshotsAsLastEventInput
    disconnect?: RobotLifecycleEventWhereInput | boolean
    delete?: RobotLifecycleEventWhereInput | boolean
    connect?: RobotLifecycleEventWhereUniqueInput
    update?: XOR<XOR<RobotLifecycleEventUpdateToOneWithWhereWithoutSnapshotsAsLastEventInput, RobotLifecycleEventUpdateWithoutSnapshotsAsLastEventInput>, RobotLifecycleEventUncheckedUpdateWithoutSnapshotsAsLastEventInput>
  }

  export type SalesOrderUpdateOneWithoutSnapshotRefsNestedInput = {
    create?: XOR<SalesOrderCreateWithoutSnapshotRefsInput, SalesOrderUncheckedCreateWithoutSnapshotRefsInput>
    connectOrCreate?: SalesOrderCreateOrConnectWithoutSnapshotRefsInput
    upsert?: SalesOrderUpsertWithoutSnapshotRefsInput
    disconnect?: SalesOrderWhereInput | boolean
    delete?: SalesOrderWhereInput | boolean
    connect?: SalesOrderWhereUniqueInput
    update?: XOR<XOR<SalesOrderUpdateToOneWithWhereWithoutSnapshotRefsInput, SalesOrderUpdateWithoutSnapshotRefsInput>, SalesOrderUncheckedUpdateWithoutSnapshotRefsInput>
  }

  export type DeliveryRequestUpdateOneWithoutSnapshotRefsNestedInput = {
    create?: XOR<DeliveryRequestCreateWithoutSnapshotRefsInput, DeliveryRequestUncheckedCreateWithoutSnapshotRefsInput>
    connectOrCreate?: DeliveryRequestCreateOrConnectWithoutSnapshotRefsInput
    upsert?: DeliveryRequestUpsertWithoutSnapshotRefsInput
    disconnect?: DeliveryRequestWhereInput | boolean
    delete?: DeliveryRequestWhereInput | boolean
    connect?: DeliveryRequestWhereUniqueInput
    update?: XOR<XOR<DeliveryRequestUpdateToOneWithWhereWithoutSnapshotRefsInput, DeliveryRequestUpdateWithoutSnapshotRefsInput>, DeliveryRequestUncheckedUpdateWithoutSnapshotRefsInput>
  }

  export type RobotUnitCreateNestedOneWithoutEventsInput = {
    create?: XOR<RobotUnitCreateWithoutEventsInput, RobotUnitUncheckedCreateWithoutEventsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutEventsInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type RobotUnitSnapshotCreateNestedManyWithoutLastEventInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutLastEventInput, RobotUnitSnapshotUncheckedCreateWithoutLastEventInput> | RobotUnitSnapshotCreateWithoutLastEventInput[] | RobotUnitSnapshotUncheckedCreateWithoutLastEventInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutLastEventInput | RobotUnitSnapshotCreateOrConnectWithoutLastEventInput[]
    createMany?: RobotUnitSnapshotCreateManyLastEventInputEnvelope
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
  }

  export type RobotUnitSnapshotUncheckedCreateNestedManyWithoutLastEventInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutLastEventInput, RobotUnitSnapshotUncheckedCreateWithoutLastEventInput> | RobotUnitSnapshotCreateWithoutLastEventInput[] | RobotUnitSnapshotUncheckedCreateWithoutLastEventInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutLastEventInput | RobotUnitSnapshotCreateOrConnectWithoutLastEventInput[]
    createMany?: RobotUnitSnapshotCreateManyLastEventInputEnvelope
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
  }

  export type EnumRobotLifecycleEventTypeFieldUpdateOperationsInput = {
    set?: $Enums.RobotLifecycleEventType
  }

  export type NullableEnumRobotLifecycleStageFieldUpdateOperationsInput = {
    set?: $Enums.RobotLifecycleStage | null
  }

  export type NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput = {
    set?: $Enums.RobotEventRelatedType | null
  }

  export type RobotUnitUpdateOneRequiredWithoutEventsNestedInput = {
    create?: XOR<RobotUnitCreateWithoutEventsInput, RobotUnitUncheckedCreateWithoutEventsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutEventsInput
    upsert?: RobotUnitUpsertWithoutEventsInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutEventsInput, RobotUnitUpdateWithoutEventsInput>, RobotUnitUncheckedUpdateWithoutEventsInput>
  }

  export type RobotUnitSnapshotUpdateManyWithoutLastEventNestedInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutLastEventInput, RobotUnitSnapshotUncheckedCreateWithoutLastEventInput> | RobotUnitSnapshotCreateWithoutLastEventInput[] | RobotUnitSnapshotUncheckedCreateWithoutLastEventInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutLastEventInput | RobotUnitSnapshotCreateOrConnectWithoutLastEventInput[]
    upsert?: RobotUnitSnapshotUpsertWithWhereUniqueWithoutLastEventInput | RobotUnitSnapshotUpsertWithWhereUniqueWithoutLastEventInput[]
    createMany?: RobotUnitSnapshotCreateManyLastEventInputEnvelope
    set?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    disconnect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    delete?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    update?: RobotUnitSnapshotUpdateWithWhereUniqueWithoutLastEventInput | RobotUnitSnapshotUpdateWithWhereUniqueWithoutLastEventInput[]
    updateMany?: RobotUnitSnapshotUpdateManyWithWhereWithoutLastEventInput | RobotUnitSnapshotUpdateManyWithWhereWithoutLastEventInput[]
    deleteMany?: RobotUnitSnapshotScalarWhereInput | RobotUnitSnapshotScalarWhereInput[]
  }

  export type RobotUnitSnapshotUncheckedUpdateManyWithoutLastEventNestedInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutLastEventInput, RobotUnitSnapshotUncheckedCreateWithoutLastEventInput> | RobotUnitSnapshotCreateWithoutLastEventInput[] | RobotUnitSnapshotUncheckedCreateWithoutLastEventInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutLastEventInput | RobotUnitSnapshotCreateOrConnectWithoutLastEventInput[]
    upsert?: RobotUnitSnapshotUpsertWithWhereUniqueWithoutLastEventInput | RobotUnitSnapshotUpsertWithWhereUniqueWithoutLastEventInput[]
    createMany?: RobotUnitSnapshotCreateManyLastEventInputEnvelope
    set?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    disconnect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    delete?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    update?: RobotUnitSnapshotUpdateWithWhereUniqueWithoutLastEventInput | RobotUnitSnapshotUpdateWithWhereUniqueWithoutLastEventInput[]
    updateMany?: RobotUnitSnapshotUpdateManyWithWhereWithoutLastEventInput | RobotUnitSnapshotUpdateManyWithWhereWithoutLastEventInput[]
    deleteMany?: RobotUnitSnapshotScalarWhereInput | RobotUnitSnapshotScalarWhereInput[]
  }

  export type PurchaseOrderLineCreateNestedManyWithoutPurchaseOrderInput = {
    create?: XOR<PurchaseOrderLineCreateWithoutPurchaseOrderInput, PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput> | PurchaseOrderLineCreateWithoutPurchaseOrderInput[] | PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput[]
    connectOrCreate?: PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput | PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput[]
    createMany?: PurchaseOrderLineCreateManyPurchaseOrderInputEnvelope
    connect?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
  }

  export type RobotUnitCreateNestedManyWithoutPurchaseOrderInput = {
    create?: XOR<RobotUnitCreateWithoutPurchaseOrderInput, RobotUnitUncheckedCreateWithoutPurchaseOrderInput> | RobotUnitCreateWithoutPurchaseOrderInput[] | RobotUnitUncheckedCreateWithoutPurchaseOrderInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPurchaseOrderInput | RobotUnitCreateOrConnectWithoutPurchaseOrderInput[]
    createMany?: RobotUnitCreateManyPurchaseOrderInputEnvelope
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
  }

  export type PurchaseOrderLineUncheckedCreateNestedManyWithoutPurchaseOrderInput = {
    create?: XOR<PurchaseOrderLineCreateWithoutPurchaseOrderInput, PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput> | PurchaseOrderLineCreateWithoutPurchaseOrderInput[] | PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput[]
    connectOrCreate?: PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput | PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput[]
    createMany?: PurchaseOrderLineCreateManyPurchaseOrderInputEnvelope
    connect?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
  }

  export type RobotUnitUncheckedCreateNestedManyWithoutPurchaseOrderInput = {
    create?: XOR<RobotUnitCreateWithoutPurchaseOrderInput, RobotUnitUncheckedCreateWithoutPurchaseOrderInput> | RobotUnitCreateWithoutPurchaseOrderInput[] | RobotUnitUncheckedCreateWithoutPurchaseOrderInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPurchaseOrderInput | RobotUnitCreateOrConnectWithoutPurchaseOrderInput[]
    createMany?: RobotUnitCreateManyPurchaseOrderInputEnvelope
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
  }

  export type EnumPurchaseOrderStatusFieldUpdateOperationsInput = {
    set?: $Enums.PurchaseOrderStatus
  }

  export type PurchaseOrderLineUpdateManyWithoutPurchaseOrderNestedInput = {
    create?: XOR<PurchaseOrderLineCreateWithoutPurchaseOrderInput, PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput> | PurchaseOrderLineCreateWithoutPurchaseOrderInput[] | PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput[]
    connectOrCreate?: PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput | PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput[]
    upsert?: PurchaseOrderLineUpsertWithWhereUniqueWithoutPurchaseOrderInput | PurchaseOrderLineUpsertWithWhereUniqueWithoutPurchaseOrderInput[]
    createMany?: PurchaseOrderLineCreateManyPurchaseOrderInputEnvelope
    set?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
    disconnect?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
    delete?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
    connect?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
    update?: PurchaseOrderLineUpdateWithWhereUniqueWithoutPurchaseOrderInput | PurchaseOrderLineUpdateWithWhereUniqueWithoutPurchaseOrderInput[]
    updateMany?: PurchaseOrderLineUpdateManyWithWhereWithoutPurchaseOrderInput | PurchaseOrderLineUpdateManyWithWhereWithoutPurchaseOrderInput[]
    deleteMany?: PurchaseOrderLineScalarWhereInput | PurchaseOrderLineScalarWhereInput[]
  }

  export type RobotUnitUpdateManyWithoutPurchaseOrderNestedInput = {
    create?: XOR<RobotUnitCreateWithoutPurchaseOrderInput, RobotUnitUncheckedCreateWithoutPurchaseOrderInput> | RobotUnitCreateWithoutPurchaseOrderInput[] | RobotUnitUncheckedCreateWithoutPurchaseOrderInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPurchaseOrderInput | RobotUnitCreateOrConnectWithoutPurchaseOrderInput[]
    upsert?: RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderInput | RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderInput[]
    createMany?: RobotUnitCreateManyPurchaseOrderInputEnvelope
    set?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    disconnect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    delete?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    update?: RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderInput | RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderInput[]
    updateMany?: RobotUnitUpdateManyWithWhereWithoutPurchaseOrderInput | RobotUnitUpdateManyWithWhereWithoutPurchaseOrderInput[]
    deleteMany?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
  }

  export type PurchaseOrderLineUncheckedUpdateManyWithoutPurchaseOrderNestedInput = {
    create?: XOR<PurchaseOrderLineCreateWithoutPurchaseOrderInput, PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput> | PurchaseOrderLineCreateWithoutPurchaseOrderInput[] | PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput[]
    connectOrCreate?: PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput | PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput[]
    upsert?: PurchaseOrderLineUpsertWithWhereUniqueWithoutPurchaseOrderInput | PurchaseOrderLineUpsertWithWhereUniqueWithoutPurchaseOrderInput[]
    createMany?: PurchaseOrderLineCreateManyPurchaseOrderInputEnvelope
    set?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
    disconnect?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
    delete?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
    connect?: PurchaseOrderLineWhereUniqueInput | PurchaseOrderLineWhereUniqueInput[]
    update?: PurchaseOrderLineUpdateWithWhereUniqueWithoutPurchaseOrderInput | PurchaseOrderLineUpdateWithWhereUniqueWithoutPurchaseOrderInput[]
    updateMany?: PurchaseOrderLineUpdateManyWithWhereWithoutPurchaseOrderInput | PurchaseOrderLineUpdateManyWithWhereWithoutPurchaseOrderInput[]
    deleteMany?: PurchaseOrderLineScalarWhereInput | PurchaseOrderLineScalarWhereInput[]
  }

  export type RobotUnitUncheckedUpdateManyWithoutPurchaseOrderNestedInput = {
    create?: XOR<RobotUnitCreateWithoutPurchaseOrderInput, RobotUnitUncheckedCreateWithoutPurchaseOrderInput> | RobotUnitCreateWithoutPurchaseOrderInput[] | RobotUnitUncheckedCreateWithoutPurchaseOrderInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPurchaseOrderInput | RobotUnitCreateOrConnectWithoutPurchaseOrderInput[]
    upsert?: RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderInput | RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderInput[]
    createMany?: RobotUnitCreateManyPurchaseOrderInputEnvelope
    set?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    disconnect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    delete?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    update?: RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderInput | RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderInput[]
    updateMany?: RobotUnitUpdateManyWithWhereWithoutPurchaseOrderInput | RobotUnitUpdateManyWithWhereWithoutPurchaseOrderInput[]
    deleteMany?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
  }

  export type PurchaseOrderCreateNestedOneWithoutLinesInput = {
    create?: XOR<PurchaseOrderCreateWithoutLinesInput, PurchaseOrderUncheckedCreateWithoutLinesInput>
    connectOrCreate?: PurchaseOrderCreateOrConnectWithoutLinesInput
    connect?: PurchaseOrderWhereUniqueInput
  }

  export type RobotUnitCreateNestedManyWithoutPurchaseOrderLineInput = {
    create?: XOR<RobotUnitCreateWithoutPurchaseOrderLineInput, RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput> | RobotUnitCreateWithoutPurchaseOrderLineInput[] | RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput | RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput[]
    createMany?: RobotUnitCreateManyPurchaseOrderLineInputEnvelope
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
  }

  export type RobotUnitUncheckedCreateNestedManyWithoutPurchaseOrderLineInput = {
    create?: XOR<RobotUnitCreateWithoutPurchaseOrderLineInput, RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput> | RobotUnitCreateWithoutPurchaseOrderLineInput[] | RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput | RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput[]
    createMany?: RobotUnitCreateManyPurchaseOrderLineInputEnvelope
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
  }

  export type NullableEnumRobotUsageTypeFieldUpdateOperationsInput = {
    set?: $Enums.RobotUsageType | null
  }

  export type PurchaseOrderUpdateOneRequiredWithoutLinesNestedInput = {
    create?: XOR<PurchaseOrderCreateWithoutLinesInput, PurchaseOrderUncheckedCreateWithoutLinesInput>
    connectOrCreate?: PurchaseOrderCreateOrConnectWithoutLinesInput
    upsert?: PurchaseOrderUpsertWithoutLinesInput
    connect?: PurchaseOrderWhereUniqueInput
    update?: XOR<XOR<PurchaseOrderUpdateToOneWithWhereWithoutLinesInput, PurchaseOrderUpdateWithoutLinesInput>, PurchaseOrderUncheckedUpdateWithoutLinesInput>
  }

  export type RobotUnitUpdateManyWithoutPurchaseOrderLineNestedInput = {
    create?: XOR<RobotUnitCreateWithoutPurchaseOrderLineInput, RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput> | RobotUnitCreateWithoutPurchaseOrderLineInput[] | RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput | RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput[]
    upsert?: RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderLineInput | RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderLineInput[]
    createMany?: RobotUnitCreateManyPurchaseOrderLineInputEnvelope
    set?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    disconnect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    delete?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    update?: RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderLineInput | RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderLineInput[]
    updateMany?: RobotUnitUpdateManyWithWhereWithoutPurchaseOrderLineInput | RobotUnitUpdateManyWithWhereWithoutPurchaseOrderLineInput[]
    deleteMany?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
  }

  export type RobotUnitUncheckedUpdateManyWithoutPurchaseOrderLineNestedInput = {
    create?: XOR<RobotUnitCreateWithoutPurchaseOrderLineInput, RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput> | RobotUnitCreateWithoutPurchaseOrderLineInput[] | RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput[]
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput | RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput[]
    upsert?: RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderLineInput | RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderLineInput[]
    createMany?: RobotUnitCreateManyPurchaseOrderLineInputEnvelope
    set?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    disconnect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    delete?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    connect?: RobotUnitWhereUniqueInput | RobotUnitWhereUniqueInput[]
    update?: RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderLineInput | RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderLineInput[]
    updateMany?: RobotUnitUpdateManyWithWhereWithoutPurchaseOrderLineInput | RobotUnitUpdateManyWithWhereWithoutPurchaseOrderLineInput[]
    deleteMany?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
  }

  export type SalesOrderLineCreateNestedManyWithoutSalesOrderInput = {
    create?: XOR<SalesOrderLineCreateWithoutSalesOrderInput, SalesOrderLineUncheckedCreateWithoutSalesOrderInput> | SalesOrderLineCreateWithoutSalesOrderInput[] | SalesOrderLineUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: SalesOrderLineCreateOrConnectWithoutSalesOrderInput | SalesOrderLineCreateOrConnectWithoutSalesOrderInput[]
    createMany?: SalesOrderLineCreateManySalesOrderInputEnvelope
    connect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
  }

  export type DeliveryRequestCreateNestedManyWithoutSalesOrderInput = {
    create?: XOR<DeliveryRequestCreateWithoutSalesOrderInput, DeliveryRequestUncheckedCreateWithoutSalesOrderInput> | DeliveryRequestCreateWithoutSalesOrderInput[] | DeliveryRequestUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: DeliveryRequestCreateOrConnectWithoutSalesOrderInput | DeliveryRequestCreateOrConnectWithoutSalesOrderInput[]
    createMany?: DeliveryRequestCreateManySalesOrderInputEnvelope
    connect?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
  }

  export type RobotUnitSnapshotCreateNestedManyWithoutSalesOrderInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutSalesOrderInput, RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput> | RobotUnitSnapshotCreateWithoutSalesOrderInput[] | RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput | RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput[]
    createMany?: RobotUnitSnapshotCreateManySalesOrderInputEnvelope
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
  }

  export type SalesOrderLineUncheckedCreateNestedManyWithoutSalesOrderInput = {
    create?: XOR<SalesOrderLineCreateWithoutSalesOrderInput, SalesOrderLineUncheckedCreateWithoutSalesOrderInput> | SalesOrderLineCreateWithoutSalesOrderInput[] | SalesOrderLineUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: SalesOrderLineCreateOrConnectWithoutSalesOrderInput | SalesOrderLineCreateOrConnectWithoutSalesOrderInput[]
    createMany?: SalesOrderLineCreateManySalesOrderInputEnvelope
    connect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
  }

  export type DeliveryRequestUncheckedCreateNestedManyWithoutSalesOrderInput = {
    create?: XOR<DeliveryRequestCreateWithoutSalesOrderInput, DeliveryRequestUncheckedCreateWithoutSalesOrderInput> | DeliveryRequestCreateWithoutSalesOrderInput[] | DeliveryRequestUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: DeliveryRequestCreateOrConnectWithoutSalesOrderInput | DeliveryRequestCreateOrConnectWithoutSalesOrderInput[]
    createMany?: DeliveryRequestCreateManySalesOrderInputEnvelope
    connect?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
  }

  export type RobotUnitSnapshotUncheckedCreateNestedManyWithoutSalesOrderInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutSalesOrderInput, RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput> | RobotUnitSnapshotCreateWithoutSalesOrderInput[] | RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput | RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput[]
    createMany?: RobotUnitSnapshotCreateManySalesOrderInputEnvelope
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
  }

  export type EnumSalesContractStatusFieldUpdateOperationsInput = {
    set?: $Enums.SalesContractStatus
  }

  export type EnumSalesOrderStatusFieldUpdateOperationsInput = {
    set?: $Enums.SalesOrderStatus
  }

  export type SalesOrderLineUpdateManyWithoutSalesOrderNestedInput = {
    create?: XOR<SalesOrderLineCreateWithoutSalesOrderInput, SalesOrderLineUncheckedCreateWithoutSalesOrderInput> | SalesOrderLineCreateWithoutSalesOrderInput[] | SalesOrderLineUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: SalesOrderLineCreateOrConnectWithoutSalesOrderInput | SalesOrderLineCreateOrConnectWithoutSalesOrderInput[]
    upsert?: SalesOrderLineUpsertWithWhereUniqueWithoutSalesOrderInput | SalesOrderLineUpsertWithWhereUniqueWithoutSalesOrderInput[]
    createMany?: SalesOrderLineCreateManySalesOrderInputEnvelope
    set?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    disconnect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    delete?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    connect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    update?: SalesOrderLineUpdateWithWhereUniqueWithoutSalesOrderInput | SalesOrderLineUpdateWithWhereUniqueWithoutSalesOrderInput[]
    updateMany?: SalesOrderLineUpdateManyWithWhereWithoutSalesOrderInput | SalesOrderLineUpdateManyWithWhereWithoutSalesOrderInput[]
    deleteMany?: SalesOrderLineScalarWhereInput | SalesOrderLineScalarWhereInput[]
  }

  export type DeliveryRequestUpdateManyWithoutSalesOrderNestedInput = {
    create?: XOR<DeliveryRequestCreateWithoutSalesOrderInput, DeliveryRequestUncheckedCreateWithoutSalesOrderInput> | DeliveryRequestCreateWithoutSalesOrderInput[] | DeliveryRequestUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: DeliveryRequestCreateOrConnectWithoutSalesOrderInput | DeliveryRequestCreateOrConnectWithoutSalesOrderInput[]
    upsert?: DeliveryRequestUpsertWithWhereUniqueWithoutSalesOrderInput | DeliveryRequestUpsertWithWhereUniqueWithoutSalesOrderInput[]
    createMany?: DeliveryRequestCreateManySalesOrderInputEnvelope
    set?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
    disconnect?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
    delete?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
    connect?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
    update?: DeliveryRequestUpdateWithWhereUniqueWithoutSalesOrderInput | DeliveryRequestUpdateWithWhereUniqueWithoutSalesOrderInput[]
    updateMany?: DeliveryRequestUpdateManyWithWhereWithoutSalesOrderInput | DeliveryRequestUpdateManyWithWhereWithoutSalesOrderInput[]
    deleteMany?: DeliveryRequestScalarWhereInput | DeliveryRequestScalarWhereInput[]
  }

  export type RobotUnitSnapshotUpdateManyWithoutSalesOrderNestedInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutSalesOrderInput, RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput> | RobotUnitSnapshotCreateWithoutSalesOrderInput[] | RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput | RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput[]
    upsert?: RobotUnitSnapshotUpsertWithWhereUniqueWithoutSalesOrderInput | RobotUnitSnapshotUpsertWithWhereUniqueWithoutSalesOrderInput[]
    createMany?: RobotUnitSnapshotCreateManySalesOrderInputEnvelope
    set?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    disconnect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    delete?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    update?: RobotUnitSnapshotUpdateWithWhereUniqueWithoutSalesOrderInput | RobotUnitSnapshotUpdateWithWhereUniqueWithoutSalesOrderInput[]
    updateMany?: RobotUnitSnapshotUpdateManyWithWhereWithoutSalesOrderInput | RobotUnitSnapshotUpdateManyWithWhereWithoutSalesOrderInput[]
    deleteMany?: RobotUnitSnapshotScalarWhereInput | RobotUnitSnapshotScalarWhereInput[]
  }

  export type SalesOrderLineUncheckedUpdateManyWithoutSalesOrderNestedInput = {
    create?: XOR<SalesOrderLineCreateWithoutSalesOrderInput, SalesOrderLineUncheckedCreateWithoutSalesOrderInput> | SalesOrderLineCreateWithoutSalesOrderInput[] | SalesOrderLineUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: SalesOrderLineCreateOrConnectWithoutSalesOrderInput | SalesOrderLineCreateOrConnectWithoutSalesOrderInput[]
    upsert?: SalesOrderLineUpsertWithWhereUniqueWithoutSalesOrderInput | SalesOrderLineUpsertWithWhereUniqueWithoutSalesOrderInput[]
    createMany?: SalesOrderLineCreateManySalesOrderInputEnvelope
    set?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    disconnect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    delete?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    connect?: SalesOrderLineWhereUniqueInput | SalesOrderLineWhereUniqueInput[]
    update?: SalesOrderLineUpdateWithWhereUniqueWithoutSalesOrderInput | SalesOrderLineUpdateWithWhereUniqueWithoutSalesOrderInput[]
    updateMany?: SalesOrderLineUpdateManyWithWhereWithoutSalesOrderInput | SalesOrderLineUpdateManyWithWhereWithoutSalesOrderInput[]
    deleteMany?: SalesOrderLineScalarWhereInput | SalesOrderLineScalarWhereInput[]
  }

  export type DeliveryRequestUncheckedUpdateManyWithoutSalesOrderNestedInput = {
    create?: XOR<DeliveryRequestCreateWithoutSalesOrderInput, DeliveryRequestUncheckedCreateWithoutSalesOrderInput> | DeliveryRequestCreateWithoutSalesOrderInput[] | DeliveryRequestUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: DeliveryRequestCreateOrConnectWithoutSalesOrderInput | DeliveryRequestCreateOrConnectWithoutSalesOrderInput[]
    upsert?: DeliveryRequestUpsertWithWhereUniqueWithoutSalesOrderInput | DeliveryRequestUpsertWithWhereUniqueWithoutSalesOrderInput[]
    createMany?: DeliveryRequestCreateManySalesOrderInputEnvelope
    set?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
    disconnect?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
    delete?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
    connect?: DeliveryRequestWhereUniqueInput | DeliveryRequestWhereUniqueInput[]
    update?: DeliveryRequestUpdateWithWhereUniqueWithoutSalesOrderInput | DeliveryRequestUpdateWithWhereUniqueWithoutSalesOrderInput[]
    updateMany?: DeliveryRequestUpdateManyWithWhereWithoutSalesOrderInput | DeliveryRequestUpdateManyWithWhereWithoutSalesOrderInput[]
    deleteMany?: DeliveryRequestScalarWhereInput | DeliveryRequestScalarWhereInput[]
  }

  export type RobotUnitSnapshotUncheckedUpdateManyWithoutSalesOrderNestedInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutSalesOrderInput, RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput> | RobotUnitSnapshotCreateWithoutSalesOrderInput[] | RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput | RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput[]
    upsert?: RobotUnitSnapshotUpsertWithWhereUniqueWithoutSalesOrderInput | RobotUnitSnapshotUpsertWithWhereUniqueWithoutSalesOrderInput[]
    createMany?: RobotUnitSnapshotCreateManySalesOrderInputEnvelope
    set?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    disconnect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    delete?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    update?: RobotUnitSnapshotUpdateWithWhereUniqueWithoutSalesOrderInput | RobotUnitSnapshotUpdateWithWhereUniqueWithoutSalesOrderInput[]
    updateMany?: RobotUnitSnapshotUpdateManyWithWhereWithoutSalesOrderInput | RobotUnitSnapshotUpdateManyWithWhereWithoutSalesOrderInput[]
    deleteMany?: RobotUnitSnapshotScalarWhereInput | RobotUnitSnapshotScalarWhereInput[]
  }

  export type SalesOrderCreateNestedOneWithoutLinesInput = {
    create?: XOR<SalesOrderCreateWithoutLinesInput, SalesOrderUncheckedCreateWithoutLinesInput>
    connectOrCreate?: SalesOrderCreateOrConnectWithoutLinesInput
    connect?: SalesOrderWhereUniqueInput
  }

  export type RobotUnitCreateNestedOneWithoutSalesOrderLinesInput = {
    create?: XOR<RobotUnitCreateWithoutSalesOrderLinesInput, RobotUnitUncheckedCreateWithoutSalesOrderLinesInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutSalesOrderLinesInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type EnumSalesLineTypeFieldUpdateOperationsInput = {
    set?: $Enums.SalesLineType
  }

  export type SalesOrderUpdateOneRequiredWithoutLinesNestedInput = {
    create?: XOR<SalesOrderCreateWithoutLinesInput, SalesOrderUncheckedCreateWithoutLinesInput>
    connectOrCreate?: SalesOrderCreateOrConnectWithoutLinesInput
    upsert?: SalesOrderUpsertWithoutLinesInput
    connect?: SalesOrderWhereUniqueInput
    update?: XOR<XOR<SalesOrderUpdateToOneWithWhereWithoutLinesInput, SalesOrderUpdateWithoutLinesInput>, SalesOrderUncheckedUpdateWithoutLinesInput>
  }

  export type RobotUnitUpdateOneWithoutSalesOrderLinesNestedInput = {
    create?: XOR<RobotUnitCreateWithoutSalesOrderLinesInput, RobotUnitUncheckedCreateWithoutSalesOrderLinesInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutSalesOrderLinesInput
    upsert?: RobotUnitUpsertWithoutSalesOrderLinesInput
    disconnect?: RobotUnitWhereInput | boolean
    delete?: RobotUnitWhereInput | boolean
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutSalesOrderLinesInput, RobotUnitUpdateWithoutSalesOrderLinesInput>, RobotUnitUncheckedUpdateWithoutSalesOrderLinesInput>
  }

  export type SalesOrderCreateNestedOneWithoutDeliveryRequestsInput = {
    create?: XOR<SalesOrderCreateWithoutDeliveryRequestsInput, SalesOrderUncheckedCreateWithoutDeliveryRequestsInput>
    connectOrCreate?: SalesOrderCreateOrConnectWithoutDeliveryRequestsInput
    connect?: SalesOrderWhereUniqueInput
  }

  export type DeliveryFulfillmentCreateNestedManyWithoutDeliveryRequestInput = {
    create?: XOR<DeliveryFulfillmentCreateWithoutDeliveryRequestInput, DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput> | DeliveryFulfillmentCreateWithoutDeliveryRequestInput[] | DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput[]
    connectOrCreate?: DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput | DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput[]
    createMany?: DeliveryFulfillmentCreateManyDeliveryRequestInputEnvelope
    connect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
  }

  export type RobotUnitSnapshotCreateNestedManyWithoutDeliveryRequestInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutDeliveryRequestInput, RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput> | RobotUnitSnapshotCreateWithoutDeliveryRequestInput[] | RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput | RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput[]
    createMany?: RobotUnitSnapshotCreateManyDeliveryRequestInputEnvelope
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
  }

  export type DeliveryFulfillmentUncheckedCreateNestedManyWithoutDeliveryRequestInput = {
    create?: XOR<DeliveryFulfillmentCreateWithoutDeliveryRequestInput, DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput> | DeliveryFulfillmentCreateWithoutDeliveryRequestInput[] | DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput[]
    connectOrCreate?: DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput | DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput[]
    createMany?: DeliveryFulfillmentCreateManyDeliveryRequestInputEnvelope
    connect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
  }

  export type RobotUnitSnapshotUncheckedCreateNestedManyWithoutDeliveryRequestInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutDeliveryRequestInput, RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput> | RobotUnitSnapshotCreateWithoutDeliveryRequestInput[] | RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput | RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput[]
    createMany?: RobotUnitSnapshotCreateManyDeliveryRequestInputEnvelope
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
  }

  export type EnumDeliveryRequestTypeFieldUpdateOperationsInput = {
    set?: $Enums.DeliveryRequestType
  }

  export type EnumDeliveryRequestStatusFieldUpdateOperationsInput = {
    set?: $Enums.DeliveryRequestStatus
  }

  export type SalesOrderUpdateOneRequiredWithoutDeliveryRequestsNestedInput = {
    create?: XOR<SalesOrderCreateWithoutDeliveryRequestsInput, SalesOrderUncheckedCreateWithoutDeliveryRequestsInput>
    connectOrCreate?: SalesOrderCreateOrConnectWithoutDeliveryRequestsInput
    upsert?: SalesOrderUpsertWithoutDeliveryRequestsInput
    connect?: SalesOrderWhereUniqueInput
    update?: XOR<XOR<SalesOrderUpdateToOneWithWhereWithoutDeliveryRequestsInput, SalesOrderUpdateWithoutDeliveryRequestsInput>, SalesOrderUncheckedUpdateWithoutDeliveryRequestsInput>
  }

  export type DeliveryFulfillmentUpdateManyWithoutDeliveryRequestNestedInput = {
    create?: XOR<DeliveryFulfillmentCreateWithoutDeliveryRequestInput, DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput> | DeliveryFulfillmentCreateWithoutDeliveryRequestInput[] | DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput[]
    connectOrCreate?: DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput | DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput[]
    upsert?: DeliveryFulfillmentUpsertWithWhereUniqueWithoutDeliveryRequestInput | DeliveryFulfillmentUpsertWithWhereUniqueWithoutDeliveryRequestInput[]
    createMany?: DeliveryFulfillmentCreateManyDeliveryRequestInputEnvelope
    set?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    disconnect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    delete?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    connect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    update?: DeliveryFulfillmentUpdateWithWhereUniqueWithoutDeliveryRequestInput | DeliveryFulfillmentUpdateWithWhereUniqueWithoutDeliveryRequestInput[]
    updateMany?: DeliveryFulfillmentUpdateManyWithWhereWithoutDeliveryRequestInput | DeliveryFulfillmentUpdateManyWithWhereWithoutDeliveryRequestInput[]
    deleteMany?: DeliveryFulfillmentScalarWhereInput | DeliveryFulfillmentScalarWhereInput[]
  }

  export type RobotUnitSnapshotUpdateManyWithoutDeliveryRequestNestedInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutDeliveryRequestInput, RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput> | RobotUnitSnapshotCreateWithoutDeliveryRequestInput[] | RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput | RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput[]
    upsert?: RobotUnitSnapshotUpsertWithWhereUniqueWithoutDeliveryRequestInput | RobotUnitSnapshotUpsertWithWhereUniqueWithoutDeliveryRequestInput[]
    createMany?: RobotUnitSnapshotCreateManyDeliveryRequestInputEnvelope
    set?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    disconnect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    delete?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    update?: RobotUnitSnapshotUpdateWithWhereUniqueWithoutDeliveryRequestInput | RobotUnitSnapshotUpdateWithWhereUniqueWithoutDeliveryRequestInput[]
    updateMany?: RobotUnitSnapshotUpdateManyWithWhereWithoutDeliveryRequestInput | RobotUnitSnapshotUpdateManyWithWhereWithoutDeliveryRequestInput[]
    deleteMany?: RobotUnitSnapshotScalarWhereInput | RobotUnitSnapshotScalarWhereInput[]
  }

  export type DeliveryFulfillmentUncheckedUpdateManyWithoutDeliveryRequestNestedInput = {
    create?: XOR<DeliveryFulfillmentCreateWithoutDeliveryRequestInput, DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput> | DeliveryFulfillmentCreateWithoutDeliveryRequestInput[] | DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput[]
    connectOrCreate?: DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput | DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput[]
    upsert?: DeliveryFulfillmentUpsertWithWhereUniqueWithoutDeliveryRequestInput | DeliveryFulfillmentUpsertWithWhereUniqueWithoutDeliveryRequestInput[]
    createMany?: DeliveryFulfillmentCreateManyDeliveryRequestInputEnvelope
    set?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    disconnect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    delete?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    connect?: DeliveryFulfillmentWhereUniqueInput | DeliveryFulfillmentWhereUniqueInput[]
    update?: DeliveryFulfillmentUpdateWithWhereUniqueWithoutDeliveryRequestInput | DeliveryFulfillmentUpdateWithWhereUniqueWithoutDeliveryRequestInput[]
    updateMany?: DeliveryFulfillmentUpdateManyWithWhereWithoutDeliveryRequestInput | DeliveryFulfillmentUpdateManyWithWhereWithoutDeliveryRequestInput[]
    deleteMany?: DeliveryFulfillmentScalarWhereInput | DeliveryFulfillmentScalarWhereInput[]
  }

  export type RobotUnitSnapshotUncheckedUpdateManyWithoutDeliveryRequestNestedInput = {
    create?: XOR<RobotUnitSnapshotCreateWithoutDeliveryRequestInput, RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput> | RobotUnitSnapshotCreateWithoutDeliveryRequestInput[] | RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput[]
    connectOrCreate?: RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput | RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput[]
    upsert?: RobotUnitSnapshotUpsertWithWhereUniqueWithoutDeliveryRequestInput | RobotUnitSnapshotUpsertWithWhereUniqueWithoutDeliveryRequestInput[]
    createMany?: RobotUnitSnapshotCreateManyDeliveryRequestInputEnvelope
    set?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    disconnect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    delete?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    connect?: RobotUnitSnapshotWhereUniqueInput | RobotUnitSnapshotWhereUniqueInput[]
    update?: RobotUnitSnapshotUpdateWithWhereUniqueWithoutDeliveryRequestInput | RobotUnitSnapshotUpdateWithWhereUniqueWithoutDeliveryRequestInput[]
    updateMany?: RobotUnitSnapshotUpdateManyWithWhereWithoutDeliveryRequestInput | RobotUnitSnapshotUpdateManyWithWhereWithoutDeliveryRequestInput[]
    deleteMany?: RobotUnitSnapshotScalarWhereInput | RobotUnitSnapshotScalarWhereInput[]
  }

  export type DeliveryRequestCreateNestedOneWithoutFulfillmentsInput = {
    create?: XOR<DeliveryRequestCreateWithoutFulfillmentsInput, DeliveryRequestUncheckedCreateWithoutFulfillmentsInput>
    connectOrCreate?: DeliveryRequestCreateOrConnectWithoutFulfillmentsInput
    connect?: DeliveryRequestWhereUniqueInput
  }

  export type RobotUnitCreateNestedOneWithoutDeliveryFulfillmentsInput = {
    create?: XOR<RobotUnitCreateWithoutDeliveryFulfillmentsInput, RobotUnitUncheckedCreateWithoutDeliveryFulfillmentsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutDeliveryFulfillmentsInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type NullableEnumDeliveryFormStatusFieldUpdateOperationsInput = {
    set?: $Enums.DeliveryFormStatus | null
  }

  export type NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput = {
    set?: $Enums.RevenueRecognitionStatus | null
  }

  export type NullableEnumInvoiceStatusFieldUpdateOperationsInput = {
    set?: $Enums.InvoiceStatus | null
  }

  export type DeliveryRequestUpdateOneRequiredWithoutFulfillmentsNestedInput = {
    create?: XOR<DeliveryRequestCreateWithoutFulfillmentsInput, DeliveryRequestUncheckedCreateWithoutFulfillmentsInput>
    connectOrCreate?: DeliveryRequestCreateOrConnectWithoutFulfillmentsInput
    upsert?: DeliveryRequestUpsertWithoutFulfillmentsInput
    connect?: DeliveryRequestWhereUniqueInput
    update?: XOR<XOR<DeliveryRequestUpdateToOneWithWhereWithoutFulfillmentsInput, DeliveryRequestUpdateWithoutFulfillmentsInput>, DeliveryRequestUncheckedUpdateWithoutFulfillmentsInput>
  }

  export type RobotUnitUpdateOneRequiredWithoutDeliveryFulfillmentsNestedInput = {
    create?: XOR<RobotUnitCreateWithoutDeliveryFulfillmentsInput, RobotUnitUncheckedCreateWithoutDeliveryFulfillmentsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutDeliveryFulfillmentsInput
    upsert?: RobotUnitUpsertWithoutDeliveryFulfillmentsInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutDeliveryFulfillmentsInput, RobotUnitUpdateWithoutDeliveryFulfillmentsInput>, RobotUnitUncheckedUpdateWithoutDeliveryFulfillmentsInput>
  }

  export type RobotUnitCreateNestedOneWithoutPaymentRecordsInput = {
    create?: XOR<RobotUnitCreateWithoutPaymentRecordsInput, RobotUnitUncheckedCreateWithoutPaymentRecordsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPaymentRecordsInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type RentalPaymentScheduleCreateNestedManyWithoutPaidPaymentRecordInput = {
    create?: XOR<RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput, RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput> | RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput[] | RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput[]
    connectOrCreate?: RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput | RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput[]
    createMany?: RentalPaymentScheduleCreateManyPaidPaymentRecordInputEnvelope
    connect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
  }

  export type RentalPaymentScheduleUncheckedCreateNestedManyWithoutPaidPaymentRecordInput = {
    create?: XOR<RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput, RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput> | RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput[] | RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput[]
    connectOrCreate?: RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput | RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput[]
    createMany?: RentalPaymentScheduleCreateManyPaidPaymentRecordInputEnvelope
    connect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
  }

  export type EnumPaymentRelatedTypeFieldUpdateOperationsInput = {
    set?: $Enums.PaymentRelatedType
  }

  export type EnumPaymentDirectionFieldUpdateOperationsInput = {
    set?: $Enums.PaymentDirection
  }

  export type NullableEnumPaymentMethodFieldUpdateOperationsInput = {
    set?: $Enums.PaymentMethod | null
  }

  export type NullableEnumPaymentStatusFieldUpdateOperationsInput = {
    set?: $Enums.PaymentStatus | null
  }

  export type NullableEnumPreDelContractStatusFieldUpdateOperationsInput = {
    set?: $Enums.PreDelContractStatus | null
  }

  export type RobotUnitUpdateOneWithoutPaymentRecordsNestedInput = {
    create?: XOR<RobotUnitCreateWithoutPaymentRecordsInput, RobotUnitUncheckedCreateWithoutPaymentRecordsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPaymentRecordsInput
    upsert?: RobotUnitUpsertWithoutPaymentRecordsInput
    disconnect?: RobotUnitWhereInput | boolean
    delete?: RobotUnitWhereInput | boolean
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutPaymentRecordsInput, RobotUnitUpdateWithoutPaymentRecordsInput>, RobotUnitUncheckedUpdateWithoutPaymentRecordsInput>
  }

  export type RentalPaymentScheduleUpdateManyWithoutPaidPaymentRecordNestedInput = {
    create?: XOR<RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput, RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput> | RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput[] | RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput[]
    connectOrCreate?: RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput | RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput[]
    upsert?: RentalPaymentScheduleUpsertWithWhereUniqueWithoutPaidPaymentRecordInput | RentalPaymentScheduleUpsertWithWhereUniqueWithoutPaidPaymentRecordInput[]
    createMany?: RentalPaymentScheduleCreateManyPaidPaymentRecordInputEnvelope
    set?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    disconnect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    delete?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    connect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    update?: RentalPaymentScheduleUpdateWithWhereUniqueWithoutPaidPaymentRecordInput | RentalPaymentScheduleUpdateWithWhereUniqueWithoutPaidPaymentRecordInput[]
    updateMany?: RentalPaymentScheduleUpdateManyWithWhereWithoutPaidPaymentRecordInput | RentalPaymentScheduleUpdateManyWithWhereWithoutPaidPaymentRecordInput[]
    deleteMany?: RentalPaymentScheduleScalarWhereInput | RentalPaymentScheduleScalarWhereInput[]
  }

  export type RentalPaymentScheduleUncheckedUpdateManyWithoutPaidPaymentRecordNestedInput = {
    create?: XOR<RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput, RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput> | RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput[] | RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput[]
    connectOrCreate?: RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput | RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput[]
    upsert?: RentalPaymentScheduleUpsertWithWhereUniqueWithoutPaidPaymentRecordInput | RentalPaymentScheduleUpsertWithWhereUniqueWithoutPaidPaymentRecordInput[]
    createMany?: RentalPaymentScheduleCreateManyPaidPaymentRecordInputEnvelope
    set?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    disconnect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    delete?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    connect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    update?: RentalPaymentScheduleUpdateWithWhereUniqueWithoutPaidPaymentRecordInput | RentalPaymentScheduleUpdateWithWhereUniqueWithoutPaidPaymentRecordInput[]
    updateMany?: RentalPaymentScheduleUpdateManyWithWhereWithoutPaidPaymentRecordInput | RentalPaymentScheduleUpdateManyWithWhereWithoutPaidPaymentRecordInput[]
    deleteMany?: RentalPaymentScheduleScalarWhereInput | RentalPaymentScheduleScalarWhereInput[]
  }

  export type RobotUnitCreateNestedOneWithoutQualityLabelsInput = {
    create?: XOR<RobotUnitCreateWithoutQualityLabelsInput, RobotUnitUncheckedCreateWithoutQualityLabelsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutQualityLabelsInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type EnumQualityLabelStatusFieldUpdateOperationsInput = {
    set?: $Enums.QualityLabelStatus
  }

  export type RobotUnitUpdateOneRequiredWithoutQualityLabelsNestedInput = {
    create?: XOR<RobotUnitCreateWithoutQualityLabelsInput, RobotUnitUncheckedCreateWithoutQualityLabelsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutQualityLabelsInput
    upsert?: RobotUnitUpsertWithoutQualityLabelsInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutQualityLabelsInput, RobotUnitUpdateWithoutQualityLabelsInput>, RobotUnitUncheckedUpdateWithoutQualityLabelsInput>
  }

  export type RobotUnitCreateNestedOneWithoutPackageReadinessInput = {
    create?: XOR<RobotUnitCreateWithoutPackageReadinessInput, RobotUnitUncheckedCreateWithoutPackageReadinessInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPackageReadinessInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type RobotUnitUpdateOneRequiredWithoutPackageReadinessNestedInput = {
    create?: XOR<RobotUnitCreateWithoutPackageReadinessInput, RobotUnitUncheckedCreateWithoutPackageReadinessInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutPackageReadinessInput
    upsert?: RobotUnitUpsertWithoutPackageReadinessInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutPackageReadinessInput, RobotUnitUpdateWithoutPackageReadinessInput>, RobotUnitUncheckedUpdateWithoutPackageReadinessInput>
  }

  export type RobotUnitCreateNestedOneWithoutInspectionsInput = {
    create?: XOR<RobotUnitCreateWithoutInspectionsInput, RobotUnitUncheckedCreateWithoutInspectionsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutInspectionsInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type RobotUnitUpdateOneRequiredWithoutInspectionsNestedInput = {
    create?: XOR<RobotUnitCreateWithoutInspectionsInput, RobotUnitUncheckedCreateWithoutInspectionsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutInspectionsInput
    upsert?: RobotUnitUpsertWithoutInspectionsInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutInspectionsInput, RobotUnitUpdateWithoutInspectionsInput>, RobotUnitUncheckedUpdateWithoutInspectionsInput>
  }

  export type RobotUnitCreateNestedOneWithoutLogisticsLegsInput = {
    create?: XOR<RobotUnitCreateWithoutLogisticsLegsInput, RobotUnitUncheckedCreateWithoutLogisticsLegsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutLogisticsLegsInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type EnumLogisticsStatusFieldUpdateOperationsInput = {
    set?: $Enums.LogisticsStatus
  }

  export type RobotUnitUpdateOneRequiredWithoutLogisticsLegsNestedInput = {
    create?: XOR<RobotUnitCreateWithoutLogisticsLegsInput, RobotUnitUncheckedCreateWithoutLogisticsLegsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutLogisticsLegsInput
    upsert?: RobotUnitUpsertWithoutLogisticsLegsInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutLogisticsLegsInput, RobotUnitUpdateWithoutLogisticsLegsInput>, RobotUnitUncheckedUpdateWithoutLogisticsLegsInput>
  }

  export type RobotUnitCreateNestedOneWithoutComplianceCheckInput = {
    create?: XOR<RobotUnitCreateWithoutComplianceCheckInput, RobotUnitUncheckedCreateWithoutComplianceCheckInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutComplianceCheckInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type NullableEnumStickerStatusFieldUpdateOperationsInput = {
    set?: $Enums.StickerStatus | null
  }

  export type NullableEnumFccStatusFieldUpdateOperationsInput = {
    set?: $Enums.FccStatus | null
  }

  export type RobotUnitUpdateOneRequiredWithoutComplianceCheckNestedInput = {
    create?: XOR<RobotUnitCreateWithoutComplianceCheckInput, RobotUnitUncheckedCreateWithoutComplianceCheckInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutComplianceCheckInput
    upsert?: RobotUnitUpsertWithoutComplianceCheckInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutComplianceCheckInput, RobotUnitUpdateWithoutComplianceCheckInput>, RobotUnitUncheckedUpdateWithoutComplianceCheckInput>
  }

  export type RobotUnitCreateNestedOneWithoutRentalAgreementsInput = {
    create?: XOR<RobotUnitCreateWithoutRentalAgreementsInput, RobotUnitUncheckedCreateWithoutRentalAgreementsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutRentalAgreementsInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type RentalPaymentScheduleCreateNestedManyWithoutRentalAgreementInput = {
    create?: XOR<RentalPaymentScheduleCreateWithoutRentalAgreementInput, RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput> | RentalPaymentScheduleCreateWithoutRentalAgreementInput[] | RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput[]
    connectOrCreate?: RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput | RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput[]
    createMany?: RentalPaymentScheduleCreateManyRentalAgreementInputEnvelope
    connect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
  }

  export type RentalPaymentScheduleUncheckedCreateNestedManyWithoutRentalAgreementInput = {
    create?: XOR<RentalPaymentScheduleCreateWithoutRentalAgreementInput, RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput> | RentalPaymentScheduleCreateWithoutRentalAgreementInput[] | RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput[]
    connectOrCreate?: RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput | RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput[]
    createMany?: RentalPaymentScheduleCreateManyRentalAgreementInputEnvelope
    connect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
  }

  export type EnumRentalAgreementStatusFieldUpdateOperationsInput = {
    set?: $Enums.RentalAgreementStatus
  }

  export type RobotUnitUpdateOneRequiredWithoutRentalAgreementsNestedInput = {
    create?: XOR<RobotUnitCreateWithoutRentalAgreementsInput, RobotUnitUncheckedCreateWithoutRentalAgreementsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutRentalAgreementsInput
    upsert?: RobotUnitUpsertWithoutRentalAgreementsInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutRentalAgreementsInput, RobotUnitUpdateWithoutRentalAgreementsInput>, RobotUnitUncheckedUpdateWithoutRentalAgreementsInput>
  }

  export type RentalPaymentScheduleUpdateManyWithoutRentalAgreementNestedInput = {
    create?: XOR<RentalPaymentScheduleCreateWithoutRentalAgreementInput, RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput> | RentalPaymentScheduleCreateWithoutRentalAgreementInput[] | RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput[]
    connectOrCreate?: RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput | RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput[]
    upsert?: RentalPaymentScheduleUpsertWithWhereUniqueWithoutRentalAgreementInput | RentalPaymentScheduleUpsertWithWhereUniqueWithoutRentalAgreementInput[]
    createMany?: RentalPaymentScheduleCreateManyRentalAgreementInputEnvelope
    set?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    disconnect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    delete?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    connect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    update?: RentalPaymentScheduleUpdateWithWhereUniqueWithoutRentalAgreementInput | RentalPaymentScheduleUpdateWithWhereUniqueWithoutRentalAgreementInput[]
    updateMany?: RentalPaymentScheduleUpdateManyWithWhereWithoutRentalAgreementInput | RentalPaymentScheduleUpdateManyWithWhereWithoutRentalAgreementInput[]
    deleteMany?: RentalPaymentScheduleScalarWhereInput | RentalPaymentScheduleScalarWhereInput[]
  }

  export type RentalPaymentScheduleUncheckedUpdateManyWithoutRentalAgreementNestedInput = {
    create?: XOR<RentalPaymentScheduleCreateWithoutRentalAgreementInput, RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput> | RentalPaymentScheduleCreateWithoutRentalAgreementInput[] | RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput[]
    connectOrCreate?: RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput | RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput[]
    upsert?: RentalPaymentScheduleUpsertWithWhereUniqueWithoutRentalAgreementInput | RentalPaymentScheduleUpsertWithWhereUniqueWithoutRentalAgreementInput[]
    createMany?: RentalPaymentScheduleCreateManyRentalAgreementInputEnvelope
    set?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    disconnect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    delete?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    connect?: RentalPaymentScheduleWhereUniqueInput | RentalPaymentScheduleWhereUniqueInput[]
    update?: RentalPaymentScheduleUpdateWithWhereUniqueWithoutRentalAgreementInput | RentalPaymentScheduleUpdateWithWhereUniqueWithoutRentalAgreementInput[]
    updateMany?: RentalPaymentScheduleUpdateManyWithWhereWithoutRentalAgreementInput | RentalPaymentScheduleUpdateManyWithWhereWithoutRentalAgreementInput[]
    deleteMany?: RentalPaymentScheduleScalarWhereInput | RentalPaymentScheduleScalarWhereInput[]
  }

  export type RentalAgreementCreateNestedOneWithoutSchedulesInput = {
    create?: XOR<RentalAgreementCreateWithoutSchedulesInput, RentalAgreementUncheckedCreateWithoutSchedulesInput>
    connectOrCreate?: RentalAgreementCreateOrConnectWithoutSchedulesInput
    connect?: RentalAgreementWhereUniqueInput
  }

  export type PaymentRecordCreateNestedOneWithoutRentalScheduleEntriesInput = {
    create?: XOR<PaymentRecordCreateWithoutRentalScheduleEntriesInput, PaymentRecordUncheckedCreateWithoutRentalScheduleEntriesInput>
    connectOrCreate?: PaymentRecordCreateOrConnectWithoutRentalScheduleEntriesInput
    connect?: PaymentRecordWhereUniqueInput
  }

  export type RentalAgreementUpdateOneRequiredWithoutSchedulesNestedInput = {
    create?: XOR<RentalAgreementCreateWithoutSchedulesInput, RentalAgreementUncheckedCreateWithoutSchedulesInput>
    connectOrCreate?: RentalAgreementCreateOrConnectWithoutSchedulesInput
    upsert?: RentalAgreementUpsertWithoutSchedulesInput
    connect?: RentalAgreementWhereUniqueInput
    update?: XOR<XOR<RentalAgreementUpdateToOneWithWhereWithoutSchedulesInput, RentalAgreementUpdateWithoutSchedulesInput>, RentalAgreementUncheckedUpdateWithoutSchedulesInput>
  }

  export type PaymentRecordUpdateOneWithoutRentalScheduleEntriesNestedInput = {
    create?: XOR<PaymentRecordCreateWithoutRentalScheduleEntriesInput, PaymentRecordUncheckedCreateWithoutRentalScheduleEntriesInput>
    connectOrCreate?: PaymentRecordCreateOrConnectWithoutRentalScheduleEntriesInput
    upsert?: PaymentRecordUpsertWithoutRentalScheduleEntriesInput
    disconnect?: PaymentRecordWhereInput | boolean
    delete?: PaymentRecordWhereInput | boolean
    connect?: PaymentRecordWhereUniqueInput
    update?: XOR<XOR<PaymentRecordUpdateToOneWithWhereWithoutRentalScheduleEntriesInput, PaymentRecordUpdateWithoutRentalScheduleEntriesInput>, PaymentRecordUncheckedUpdateWithoutRentalScheduleEntriesInput>
  }

  export type RobotUnitCreateNestedOneWithoutServiceTicketsInput = {
    create?: XOR<RobotUnitCreateWithoutServiceTicketsInput, RobotUnitUncheckedCreateWithoutServiceTicketsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutServiceTicketsInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type ServiceTicketActivityCreateNestedManyWithoutTicketInput = {
    create?: XOR<ServiceTicketActivityCreateWithoutTicketInput, ServiceTicketActivityUncheckedCreateWithoutTicketInput> | ServiceTicketActivityCreateWithoutTicketInput[] | ServiceTicketActivityUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: ServiceTicketActivityCreateOrConnectWithoutTicketInput | ServiceTicketActivityCreateOrConnectWithoutTicketInput[]
    createMany?: ServiceTicketActivityCreateManyTicketInputEnvelope
    connect?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
  }

  export type ServiceTicketActivityUncheckedCreateNestedManyWithoutTicketInput = {
    create?: XOR<ServiceTicketActivityCreateWithoutTicketInput, ServiceTicketActivityUncheckedCreateWithoutTicketInput> | ServiceTicketActivityCreateWithoutTicketInput[] | ServiceTicketActivityUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: ServiceTicketActivityCreateOrConnectWithoutTicketInput | ServiceTicketActivityCreateOrConnectWithoutTicketInput[]
    createMany?: ServiceTicketActivityCreateManyTicketInputEnvelope
    connect?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
  }

  export type EnumTicketSeverityFieldUpdateOperationsInput = {
    set?: $Enums.TicketSeverity
  }

  export type EnumServiceTicketStatusFieldUpdateOperationsInput = {
    set?: $Enums.ServiceTicketStatus
  }

  export type RobotUnitUpdateOneRequiredWithoutServiceTicketsNestedInput = {
    create?: XOR<RobotUnitCreateWithoutServiceTicketsInput, RobotUnitUncheckedCreateWithoutServiceTicketsInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutServiceTicketsInput
    upsert?: RobotUnitUpsertWithoutServiceTicketsInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutServiceTicketsInput, RobotUnitUpdateWithoutServiceTicketsInput>, RobotUnitUncheckedUpdateWithoutServiceTicketsInput>
  }

  export type ServiceTicketActivityUpdateManyWithoutTicketNestedInput = {
    create?: XOR<ServiceTicketActivityCreateWithoutTicketInput, ServiceTicketActivityUncheckedCreateWithoutTicketInput> | ServiceTicketActivityCreateWithoutTicketInput[] | ServiceTicketActivityUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: ServiceTicketActivityCreateOrConnectWithoutTicketInput | ServiceTicketActivityCreateOrConnectWithoutTicketInput[]
    upsert?: ServiceTicketActivityUpsertWithWhereUniqueWithoutTicketInput | ServiceTicketActivityUpsertWithWhereUniqueWithoutTicketInput[]
    createMany?: ServiceTicketActivityCreateManyTicketInputEnvelope
    set?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
    disconnect?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
    delete?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
    connect?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
    update?: ServiceTicketActivityUpdateWithWhereUniqueWithoutTicketInput | ServiceTicketActivityUpdateWithWhereUniqueWithoutTicketInput[]
    updateMany?: ServiceTicketActivityUpdateManyWithWhereWithoutTicketInput | ServiceTicketActivityUpdateManyWithWhereWithoutTicketInput[]
    deleteMany?: ServiceTicketActivityScalarWhereInput | ServiceTicketActivityScalarWhereInput[]
  }

  export type ServiceTicketActivityUncheckedUpdateManyWithoutTicketNestedInput = {
    create?: XOR<ServiceTicketActivityCreateWithoutTicketInput, ServiceTicketActivityUncheckedCreateWithoutTicketInput> | ServiceTicketActivityCreateWithoutTicketInput[] | ServiceTicketActivityUncheckedCreateWithoutTicketInput[]
    connectOrCreate?: ServiceTicketActivityCreateOrConnectWithoutTicketInput | ServiceTicketActivityCreateOrConnectWithoutTicketInput[]
    upsert?: ServiceTicketActivityUpsertWithWhereUniqueWithoutTicketInput | ServiceTicketActivityUpsertWithWhereUniqueWithoutTicketInput[]
    createMany?: ServiceTicketActivityCreateManyTicketInputEnvelope
    set?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
    disconnect?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
    delete?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
    connect?: ServiceTicketActivityWhereUniqueInput | ServiceTicketActivityWhereUniqueInput[]
    update?: ServiceTicketActivityUpdateWithWhereUniqueWithoutTicketInput | ServiceTicketActivityUpdateWithWhereUniqueWithoutTicketInput[]
    updateMany?: ServiceTicketActivityUpdateManyWithWhereWithoutTicketInput | ServiceTicketActivityUpdateManyWithWhereWithoutTicketInput[]
    deleteMany?: ServiceTicketActivityScalarWhereInput | ServiceTicketActivityScalarWhereInput[]
  }

  export type ServiceTicketCreateNestedOneWithoutActivitiesInput = {
    create?: XOR<ServiceTicketCreateWithoutActivitiesInput, ServiceTicketUncheckedCreateWithoutActivitiesInput>
    connectOrCreate?: ServiceTicketCreateOrConnectWithoutActivitiesInput
    connect?: ServiceTicketWhereUniqueInput
  }

  export type EnumServiceTicketActivityTypeFieldUpdateOperationsInput = {
    set?: $Enums.ServiceTicketActivityType
  }

  export type ServiceTicketUpdateOneRequiredWithoutActivitiesNestedInput = {
    create?: XOR<ServiceTicketCreateWithoutActivitiesInput, ServiceTicketUncheckedCreateWithoutActivitiesInput>
    connectOrCreate?: ServiceTicketCreateOrConnectWithoutActivitiesInput
    upsert?: ServiceTicketUpsertWithoutActivitiesInput
    connect?: ServiceTicketWhereUniqueInput
    update?: XOR<XOR<ServiceTicketUpdateToOneWithWhereWithoutActivitiesInput, ServiceTicketUpdateWithoutActivitiesInput>, ServiceTicketUncheckedUpdateWithoutActivitiesInput>
  }

  export type RobotImportAuditCreatesourcesInput = {
    set: string[]
  }

  export type RobotUnitCreateNestedOneWithoutImportAuditInput = {
    create?: XOR<RobotUnitCreateWithoutImportAuditInput, RobotUnitUncheckedCreateWithoutImportAuditInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutImportAuditInput
    connect?: RobotUnitWhereUniqueInput
  }

  export type RobotImportAuditUpdatesourcesInput = {
    set?: string[]
    push?: string | string[]
  }

  export type EnumImportRecordStatusFieldUpdateOperationsInput = {
    set?: $Enums.ImportRecordStatus
  }

  export type RobotUnitUpdateOneRequiredWithoutImportAuditNestedInput = {
    create?: XOR<RobotUnitCreateWithoutImportAuditInput, RobotUnitUncheckedCreateWithoutImportAuditInput>
    connectOrCreate?: RobotUnitCreateOrConnectWithoutImportAuditInput
    upsert?: RobotUnitUpsertWithoutImportAuditInput
    connect?: RobotUnitWhereUniqueInput
    update?: XOR<XOR<RobotUnitUpdateToOneWithWhereWithoutImportAuditInput, RobotUnitUpdateWithoutImportAuditInput>, RobotUnitUncheckedUpdateWithoutImportAuditInput>
  }

  export type ImportBatchEntryCreateNestedManyWithoutBatchInput = {
    create?: XOR<ImportBatchEntryCreateWithoutBatchInput, ImportBatchEntryUncheckedCreateWithoutBatchInput> | ImportBatchEntryCreateWithoutBatchInput[] | ImportBatchEntryUncheckedCreateWithoutBatchInput[]
    connectOrCreate?: ImportBatchEntryCreateOrConnectWithoutBatchInput | ImportBatchEntryCreateOrConnectWithoutBatchInput[]
    createMany?: ImportBatchEntryCreateManyBatchInputEnvelope
    connect?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
  }

  export type ImportBatchEntryUncheckedCreateNestedManyWithoutBatchInput = {
    create?: XOR<ImportBatchEntryCreateWithoutBatchInput, ImportBatchEntryUncheckedCreateWithoutBatchInput> | ImportBatchEntryCreateWithoutBatchInput[] | ImportBatchEntryUncheckedCreateWithoutBatchInput[]
    connectOrCreate?: ImportBatchEntryCreateOrConnectWithoutBatchInput | ImportBatchEntryCreateOrConnectWithoutBatchInput[]
    createMany?: ImportBatchEntryCreateManyBatchInputEnvelope
    connect?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
  }

  export type EnumImportBatchTypeFieldUpdateOperationsInput = {
    set?: $Enums.ImportBatchType
  }

  export type EnumImportBatchStatusFieldUpdateOperationsInput = {
    set?: $Enums.ImportBatchStatus
  }

  export type ImportBatchEntryUpdateManyWithoutBatchNestedInput = {
    create?: XOR<ImportBatchEntryCreateWithoutBatchInput, ImportBatchEntryUncheckedCreateWithoutBatchInput> | ImportBatchEntryCreateWithoutBatchInput[] | ImportBatchEntryUncheckedCreateWithoutBatchInput[]
    connectOrCreate?: ImportBatchEntryCreateOrConnectWithoutBatchInput | ImportBatchEntryCreateOrConnectWithoutBatchInput[]
    upsert?: ImportBatchEntryUpsertWithWhereUniqueWithoutBatchInput | ImportBatchEntryUpsertWithWhereUniqueWithoutBatchInput[]
    createMany?: ImportBatchEntryCreateManyBatchInputEnvelope
    set?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
    disconnect?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
    delete?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
    connect?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
    update?: ImportBatchEntryUpdateWithWhereUniqueWithoutBatchInput | ImportBatchEntryUpdateWithWhereUniqueWithoutBatchInput[]
    updateMany?: ImportBatchEntryUpdateManyWithWhereWithoutBatchInput | ImportBatchEntryUpdateManyWithWhereWithoutBatchInput[]
    deleteMany?: ImportBatchEntryScalarWhereInput | ImportBatchEntryScalarWhereInput[]
  }

  export type ImportBatchEntryUncheckedUpdateManyWithoutBatchNestedInput = {
    create?: XOR<ImportBatchEntryCreateWithoutBatchInput, ImportBatchEntryUncheckedCreateWithoutBatchInput> | ImportBatchEntryCreateWithoutBatchInput[] | ImportBatchEntryUncheckedCreateWithoutBatchInput[]
    connectOrCreate?: ImportBatchEntryCreateOrConnectWithoutBatchInput | ImportBatchEntryCreateOrConnectWithoutBatchInput[]
    upsert?: ImportBatchEntryUpsertWithWhereUniqueWithoutBatchInput | ImportBatchEntryUpsertWithWhereUniqueWithoutBatchInput[]
    createMany?: ImportBatchEntryCreateManyBatchInputEnvelope
    set?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
    disconnect?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
    delete?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
    connect?: ImportBatchEntryWhereUniqueInput | ImportBatchEntryWhereUniqueInput[]
    update?: ImportBatchEntryUpdateWithWhereUniqueWithoutBatchInput | ImportBatchEntryUpdateWithWhereUniqueWithoutBatchInput[]
    updateMany?: ImportBatchEntryUpdateManyWithWhereWithoutBatchInput | ImportBatchEntryUpdateManyWithWhereWithoutBatchInput[]
    deleteMany?: ImportBatchEntryScalarWhereInput | ImportBatchEntryScalarWhereInput[]
  }

  export type ImportBatchEntryCreateentityIdsInput = {
    set: string[]
  }

  export type ImportBatchCreateNestedOneWithoutEntriesInput = {
    create?: XOR<ImportBatchCreateWithoutEntriesInput, ImportBatchUncheckedCreateWithoutEntriesInput>
    connectOrCreate?: ImportBatchCreateOrConnectWithoutEntriesInput
    connect?: ImportBatchWhereUniqueInput
  }

  export type EnumImportEntryStatusFieldUpdateOperationsInput = {
    set?: $Enums.ImportEntryStatus
  }

  export type ImportBatchEntryUpdateentityIdsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type ImportBatchUpdateOneRequiredWithoutEntriesNestedInput = {
    create?: XOR<ImportBatchCreateWithoutEntriesInput, ImportBatchUncheckedCreateWithoutEntriesInput>
    connectOrCreate?: ImportBatchCreateOrConnectWithoutEntriesInput
    upsert?: ImportBatchUpsertWithoutEntriesInput
    connect?: ImportBatchWhereUniqueInput
    update?: XOR<XOR<ImportBatchUpdateToOneWithWhereWithoutEntriesInput, ImportBatchUpdateWithoutEntriesInput>, ImportBatchUncheckedUpdateWithoutEntriesInput>
  }

  export type NestedUuidFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedUuidFilter<$PrismaModel> | string
  }

  export type NestedStringFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringFilter<$PrismaModel> | string
  }

  export type NestedStringNullableFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringNullableFilter<$PrismaModel> | string | null
  }

  export type NestedIntFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntFilter<$PrismaModel> | number
  }

  export type NestedUuidNullableFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedUuidNullableFilter<$PrismaModel> | string | null
  }

  export type NestedEnumProcessStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ProcessStatus | EnumProcessStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ProcessStatus[] | ListEnumProcessStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ProcessStatus[] | ListEnumProcessStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumProcessStatusFilter<$PrismaModel> | $Enums.ProcessStatus
  }

  export type NestedDateTimeFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeFilter<$PrismaModel> | Date | string
  }

  export type NestedUuidWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedUuidWithAggregatesFilter<$PrismaModel> | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedStringFilter<$PrismaModel>
    _max?: NestedStringFilter<$PrismaModel>
  }

  export type NestedStringWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringWithAggregatesFilter<$PrismaModel> | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedStringFilter<$PrismaModel>
    _max?: NestedStringFilter<$PrismaModel>
  }

  export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedStringNullableFilter<$PrismaModel>
    _max?: NestedStringNullableFilter<$PrismaModel>
  }

  export type NestedIntNullableFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableFilter<$PrismaModel> | number | null
  }

  export type NestedIntWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedIntFilter<$PrismaModel>
    _min?: NestedIntFilter<$PrismaModel>
    _max?: NestedIntFilter<$PrismaModel>
  }

  export type NestedFloatFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatFilter<$PrismaModel> | number
  }

  export type NestedUuidNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedUuidNullableWithAggregatesFilter<$PrismaModel> | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedStringNullableFilter<$PrismaModel>
    _max?: NestedStringNullableFilter<$PrismaModel>
  }

  export type NestedEnumProcessStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ProcessStatus | EnumProcessStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ProcessStatus[] | ListEnumProcessStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ProcessStatus[] | ListEnumProcessStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumProcessStatusWithAggregatesFilter<$PrismaModel> | $Enums.ProcessStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumProcessStatusFilter<$PrismaModel>
    _max?: NestedEnumProcessStatusFilter<$PrismaModel>
  }

  export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedDateTimeFilter<$PrismaModel>
    _max?: NestedDateTimeFilter<$PrismaModel>
  }

  export type NestedBoolFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolFilter<$PrismaModel> | boolean
  }

  export type NestedEnumVersionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.VersionStatus | EnumVersionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.VersionStatus[] | ListEnumVersionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.VersionStatus[] | ListEnumVersionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumVersionStatusFilter<$PrismaModel> | $Enums.VersionStatus
  }

  export type NestedDateTimeNullableFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null
  }

  export type NestedBoolWithAggregatesFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedBoolFilter<$PrismaModel>
    _max?: NestedBoolFilter<$PrismaModel>
  }
  export type NestedJsonFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<NestedJsonFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonFilterBase<$PrismaModel>>, 'path'>>,
        Required<NestedJsonFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<NestedJsonFilterBase<$PrismaModel>>, 'path'>>

  export type NestedJsonFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }
  export type NestedJsonNullableFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<NestedJsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>,
        Required<NestedJsonNullableFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>

  export type NestedJsonNullableFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type NestedEnumVersionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.VersionStatus | EnumVersionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.VersionStatus[] | ListEnumVersionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.VersionStatus[] | ListEnumVersionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumVersionStatusWithAggregatesFilter<$PrismaModel> | $Enums.VersionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumVersionStatusFilter<$PrismaModel>
    _max?: NestedEnumVersionStatusFilter<$PrismaModel>
  }

  export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedDateTimeNullableFilter<$PrismaModel>
    _max?: NestedDateTimeNullableFilter<$PrismaModel>
  }

  export type NestedEnumInstanceStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.InstanceStatus | EnumInstanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InstanceStatus[] | ListEnumInstanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InstanceStatus[] | ListEnumInstanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInstanceStatusFilter<$PrismaModel> | $Enums.InstanceStatus
  }

  export type NestedEnumInstanceStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InstanceStatus | EnumInstanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InstanceStatus[] | ListEnumInstanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InstanceStatus[] | ListEnumInstanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInstanceStatusWithAggregatesFilter<$PrismaModel> | $Enums.InstanceStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInstanceStatusFilter<$PrismaModel>
    _max?: NestedEnumInstanceStatusFilter<$PrismaModel>
  }

  export type NestedEnumNodeStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.NodeStatus | EnumNodeStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NodeStatus[] | ListEnumNodeStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NodeStatus[] | ListEnumNodeStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNodeStatusFilter<$PrismaModel> | $Enums.NodeStatus
  }

  export type NestedEnumNodeStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NodeStatus | EnumNodeStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NodeStatus[] | ListEnumNodeStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NodeStatus[] | ListEnumNodeStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNodeStatusWithAggregatesFilter<$PrismaModel> | $Enums.NodeStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNodeStatusFilter<$PrismaModel>
    _max?: NestedEnumNodeStatusFilter<$PrismaModel>
  }

  export type NestedEnumApprovalTaskTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskType | EnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskType[] | ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskType[] | ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskTypeFilter<$PrismaModel> | $Enums.ApprovalTaskType
  }

  export type NestedEnumApprovalTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskStatus | EnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskStatus[] | ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskStatus[] | ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskStatusFilter<$PrismaModel> | $Enums.ApprovalTaskStatus
  }

  export type NestedEnumDelegationTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.DelegationType | EnumDelegationTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.DelegationType[] | ListEnumDelegationTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DelegationType[] | ListEnumDelegationTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDelegationTypeNullableFilter<$PrismaModel> | $Enums.DelegationType | null
  }

  export type NestedEnumApprovalTaskTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskType | EnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskType[] | ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskType[] | ListEnumApprovalTaskTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskTypeWithAggregatesFilter<$PrismaModel> | $Enums.ApprovalTaskType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumApprovalTaskTypeFilter<$PrismaModel>
    _max?: NestedEnumApprovalTaskTypeFilter<$PrismaModel>
  }

  export type NestedEnumApprovalTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskStatus | EnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskStatus[] | ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskStatus[] | ListEnumApprovalTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.ApprovalTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumApprovalTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumApprovalTaskStatusFilter<$PrismaModel>
  }

  export type NestedEnumDelegationTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DelegationType | EnumDelegationTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.DelegationType[] | ListEnumDelegationTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DelegationType[] | ListEnumDelegationTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDelegationTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.DelegationType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumDelegationTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumDelegationTypeNullableFilter<$PrismaModel>
  }

  export type NestedEnumApprovalTaskActionFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskAction | EnumApprovalTaskActionFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskAction[] | ListEnumApprovalTaskActionFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskAction[] | ListEnumApprovalTaskActionFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskActionFilter<$PrismaModel> | $Enums.ApprovalTaskAction
  }

  export type NestedEnumRiskLevelNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RiskLevel | EnumRiskLevelFieldRefInput<$PrismaModel> | null
    in?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRiskLevelNullableFilter<$PrismaModel> | $Enums.RiskLevel | null
  }

  export type NestedEnumApprovalTaskActionWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalTaskAction | EnumApprovalTaskActionFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalTaskAction[] | ListEnumApprovalTaskActionFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalTaskAction[] | ListEnumApprovalTaskActionFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalTaskActionWithAggregatesFilter<$PrismaModel> | $Enums.ApprovalTaskAction
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumApprovalTaskActionFilter<$PrismaModel>
    _max?: NestedEnumApprovalTaskActionFilter<$PrismaModel>
  }

  export type NestedEnumRiskLevelNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RiskLevel | EnumRiskLevelFieldRefInput<$PrismaModel> | null
    in?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRiskLevelNullableWithAggregatesFilter<$PrismaModel> | $Enums.RiskLevel | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRiskLevelNullableFilter<$PrismaModel>
    _max?: NestedEnumRiskLevelNullableFilter<$PrismaModel>
  }

  export type NestedEnumCallbackStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.CallbackStatus | EnumCallbackStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CallbackStatus[] | ListEnumCallbackStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CallbackStatus[] | ListEnumCallbackStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCallbackStatusFilter<$PrismaModel> | $Enums.CallbackStatus
  }

  export type NestedEnumCallbackStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CallbackStatus | EnumCallbackStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CallbackStatus[] | ListEnumCallbackStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CallbackStatus[] | ListEnumCallbackStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCallbackStatusWithAggregatesFilter<$PrismaModel> | $Enums.CallbackStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCallbackStatusFilter<$PrismaModel>
    _max?: NestedEnumCallbackStatusFilter<$PrismaModel>
  }

  export type NestedEnumReminderTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ReminderType | EnumReminderTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ReminderType[] | ListEnumReminderTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReminderType[] | ListEnumReminderTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumReminderTypeFilter<$PrismaModel> | $Enums.ReminderType
  }

  export type NestedEnumReminderStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ReminderStatus | EnumReminderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ReminderStatus[] | ListEnumReminderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReminderStatus[] | ListEnumReminderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumReminderStatusFilter<$PrismaModel> | $Enums.ReminderStatus
  }

  export type NestedEnumReminderTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ReminderType | EnumReminderTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ReminderType[] | ListEnumReminderTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReminderType[] | ListEnumReminderTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumReminderTypeWithAggregatesFilter<$PrismaModel> | $Enums.ReminderType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumReminderTypeFilter<$PrismaModel>
    _max?: NestedEnumReminderTypeFilter<$PrismaModel>
  }

  export type NestedEnumReminderStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ReminderStatus | EnumReminderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ReminderStatus[] | ListEnumReminderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReminderStatus[] | ListEnumReminderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumReminderStatusWithAggregatesFilter<$PrismaModel> | $Enums.ReminderStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumReminderStatusFilter<$PrismaModel>
    _max?: NestedEnumReminderStatusFilter<$PrismaModel>
  }

  export type NestedEnumDelegationScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.DelegationScope | EnumDelegationScopeFieldRefInput<$PrismaModel>
    in?: $Enums.DelegationScope[] | ListEnumDelegationScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DelegationScope[] | ListEnumDelegationScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumDelegationScopeFilter<$PrismaModel> | $Enums.DelegationScope
  }

  export type NestedEnumDelegationScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DelegationScope | EnumDelegationScopeFieldRefInput<$PrismaModel>
    in?: $Enums.DelegationScope[] | ListEnumDelegationScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DelegationScope[] | ListEnumDelegationScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumDelegationScopeWithAggregatesFilter<$PrismaModel> | $Enums.DelegationScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDelegationScopeFilter<$PrismaModel>
    _max?: NestedEnumDelegationScopeFilter<$PrismaModel>
  }

  export type NestedEnumApprovalAdminExportStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalAdminExportStatus | EnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalAdminExportStatus[] | ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalAdminExportStatus[] | ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalAdminExportStatusFilter<$PrismaModel> | $Enums.ApprovalAdminExportStatus
  }

  export type NestedBigIntNullableFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel> | null
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntNullableFilter<$PrismaModel> | bigint | number | null
  }

  export type NestedEnumApprovalAdminExportStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ApprovalAdminExportStatus | EnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ApprovalAdminExportStatus[] | ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ApprovalAdminExportStatus[] | ListEnumApprovalAdminExportStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumApprovalAdminExportStatusWithAggregatesFilter<$PrismaModel> | $Enums.ApprovalAdminExportStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumApprovalAdminExportStatusFilter<$PrismaModel>
    _max?: NestedEnumApprovalAdminExportStatusFilter<$PrismaModel>
  }

  export type NestedBigIntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel> | null
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel> | null
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntNullableWithAggregatesFilter<$PrismaModel> | bigint | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedBigIntNullableFilter<$PrismaModel>
    _min?: NestedBigIntNullableFilter<$PrismaModel>
    _max?: NestedBigIntNullableFilter<$PrismaModel>
  }

  export type NestedFloatNullableFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableFilter<$PrismaModel> | number | null
  }

  export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedIntNullableFilter<$PrismaModel>
    _max?: NestedIntNullableFilter<$PrismaModel>
  }

  export type NestedDecimalFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string
  }

  export type NestedEnumExpenseCategoryFilter<$PrismaModel = never> = {
    equals?: $Enums.ExpenseCategory | EnumExpenseCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.ExpenseCategory[] | ListEnumExpenseCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.ExpenseCategory[] | ListEnumExpenseCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumExpenseCategoryFilter<$PrismaModel> | $Enums.ExpenseCategory
  }

  export type NestedEnumExpenseStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ExpenseStatus | EnumExpenseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ExpenseStatus[] | ListEnumExpenseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ExpenseStatus[] | ListEnumExpenseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumExpenseStatusFilter<$PrismaModel> | $Enums.ExpenseStatus
  }

  export type NestedDecimalWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel>
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalWithAggregatesFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedDecimalFilter<$PrismaModel>
    _sum?: NestedDecimalFilter<$PrismaModel>
    _min?: NestedDecimalFilter<$PrismaModel>
    _max?: NestedDecimalFilter<$PrismaModel>
  }

  export type NestedEnumExpenseCategoryWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ExpenseCategory | EnumExpenseCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.ExpenseCategory[] | ListEnumExpenseCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.ExpenseCategory[] | ListEnumExpenseCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumExpenseCategoryWithAggregatesFilter<$PrismaModel> | $Enums.ExpenseCategory
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumExpenseCategoryFilter<$PrismaModel>
    _max?: NestedEnumExpenseCategoryFilter<$PrismaModel>
  }

  export type NestedEnumExpenseStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ExpenseStatus | EnumExpenseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ExpenseStatus[] | ListEnumExpenseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ExpenseStatus[] | ListEnumExpenseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumExpenseStatusWithAggregatesFilter<$PrismaModel> | $Enums.ExpenseStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumExpenseStatusFilter<$PrismaModel>
    _max?: NestedEnumExpenseStatusFilter<$PrismaModel>
  }

  export type NestedEnumPurchaseStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.PurchaseStatus | EnumPurchaseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PurchaseStatus[] | ListEnumPurchaseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PurchaseStatus[] | ListEnumPurchaseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPurchaseStatusFilter<$PrismaModel> | $Enums.PurchaseStatus
  }

  export type NestedEnumPurchaseStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PurchaseStatus | EnumPurchaseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PurchaseStatus[] | ListEnumPurchaseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PurchaseStatus[] | ListEnumPurchaseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPurchaseStatusWithAggregatesFilter<$PrismaModel> | $Enums.PurchaseStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPurchaseStatusFilter<$PrismaModel>
    _max?: NestedEnumPurchaseStatusFilter<$PrismaModel>
  }

  export type NestedEnumContractTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ContractType | EnumContractTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ContractType[] | ListEnumContractTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ContractType[] | ListEnumContractTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumContractTypeFilter<$PrismaModel> | $Enums.ContractType
  }

  export type NestedEnumContractStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ContractStatus | EnumContractStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ContractStatus[] | ListEnumContractStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ContractStatus[] | ListEnumContractStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumContractStatusFilter<$PrismaModel> | $Enums.ContractStatus
  }

  export type NestedEnumContractTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ContractType | EnumContractTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ContractType[] | ListEnumContractTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ContractType[] | ListEnumContractTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumContractTypeWithAggregatesFilter<$PrismaModel> | $Enums.ContractType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumContractTypeFilter<$PrismaModel>
    _max?: NestedEnumContractTypeFilter<$PrismaModel>
  }

  export type NestedEnumContractStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ContractStatus | EnumContractStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ContractStatus[] | ListEnumContractStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ContractStatus[] | ListEnumContractStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumContractStatusWithAggregatesFilter<$PrismaModel> | $Enums.ContractStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumContractStatusFilter<$PrismaModel>
    _max?: NestedEnumContractStatusFilter<$PrismaModel>
  }

  export type NestedEnumPartStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.PartStatus | EnumPartStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PartStatus[] | ListEnumPartStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PartStatus[] | ListEnumPartStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPartStatusFilter<$PrismaModel> | $Enums.PartStatus
  }

  export type NestedEnumPartStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PartStatus | EnumPartStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PartStatus[] | ListEnumPartStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PartStatus[] | ListEnumPartStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPartStatusWithAggregatesFilter<$PrismaModel> | $Enums.PartStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPartStatusFilter<$PrismaModel>
    _max?: NestedEnumPartStatusFilter<$PrismaModel>
  }

  export type NestedEnumStationStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.StationStatus | EnumStationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.StationStatus[] | ListEnumStationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.StationStatus[] | ListEnumStationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumStationStatusFilter<$PrismaModel> | $Enums.StationStatus
  }

  export type NestedEnumStationStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StationStatus | EnumStationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.StationStatus[] | ListEnumStationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.StationStatus[] | ListEnumStationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumStationStatusWithAggregatesFilter<$PrismaModel> | $Enums.StationStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStationStatusFilter<$PrismaModel>
    _max?: NestedEnumStationStatusFilter<$PrismaModel>
  }

  export type NestedEnumWarehouseStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.WarehouseStatus | EnumWarehouseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.WarehouseStatus[] | ListEnumWarehouseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.WarehouseStatus[] | ListEnumWarehouseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumWarehouseStatusFilter<$PrismaModel> | $Enums.WarehouseStatus
  }

  export type NestedEnumWarehouseStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.WarehouseStatus | EnumWarehouseStatusFieldRefInput<$PrismaModel>
    in?: $Enums.WarehouseStatus[] | ListEnumWarehouseStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.WarehouseStatus[] | ListEnumWarehouseStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumWarehouseStatusWithAggregatesFilter<$PrismaModel> | $Enums.WarehouseStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumWarehouseStatusFilter<$PrismaModel>
    _max?: NestedEnumWarehouseStatusFilter<$PrismaModel>
  }

  export type NestedEnumStorageLocationStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageLocationStatus | EnumStorageLocationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.StorageLocationStatus[] | ListEnumStorageLocationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageLocationStatus[] | ListEnumStorageLocationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageLocationStatusFilter<$PrismaModel> | $Enums.StorageLocationStatus
  }

  export type NestedEnumStorageLocationStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageLocationStatus | EnumStorageLocationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.StorageLocationStatus[] | ListEnumStorageLocationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageLocationStatus[] | ListEnumStorageLocationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageLocationStatusWithAggregatesFilter<$PrismaModel> | $Enums.StorageLocationStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStorageLocationStatusFilter<$PrismaModel>
    _max?: NestedEnumStorageLocationStatusFilter<$PrismaModel>
  }

  export type NestedEnumLabelStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.LabelStatus | EnumLabelStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LabelStatus[] | ListEnumLabelStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LabelStatus[] | ListEnumLabelStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLabelStatusFilter<$PrismaModel> | $Enums.LabelStatus
  }

  export type NestedEnumLabelStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LabelStatus | EnumLabelStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LabelStatus[] | ListEnumLabelStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LabelStatus[] | ListEnumLabelStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLabelStatusWithAggregatesFilter<$PrismaModel> | $Enums.LabelStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLabelStatusFilter<$PrismaModel>
    _max?: NestedEnumLabelStatusFilter<$PrismaModel>
  }

  export type NestedEnumInventoryOperationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.InventoryOperationType | EnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.InventoryOperationType[] | ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InventoryOperationType[] | ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumInventoryOperationTypeFilter<$PrismaModel> | $Enums.InventoryOperationType
  }

  export type NestedEnumInventoryOperationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InventoryOperationType | EnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.InventoryOperationType[] | ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InventoryOperationType[] | ListEnumInventoryOperationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumInventoryOperationTypeWithAggregatesFilter<$PrismaModel> | $Enums.InventoryOperationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInventoryOperationTypeFilter<$PrismaModel>
    _max?: NestedEnumInventoryOperationTypeFilter<$PrismaModel>
  }

  export type NestedEnumStockAlertTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.StockAlertType | EnumStockAlertTypeFieldRefInput<$PrismaModel>
    in?: $Enums.StockAlertType[] | ListEnumStockAlertTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.StockAlertType[] | ListEnumStockAlertTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumStockAlertTypeFilter<$PrismaModel> | $Enums.StockAlertType
  }

  export type NestedEnumAlertSeverityFilter<$PrismaModel = never> = {
    equals?: $Enums.AlertSeverity | EnumAlertSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.AlertSeverity[] | ListEnumAlertSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.AlertSeverity[] | ListEnumAlertSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumAlertSeverityFilter<$PrismaModel> | $Enums.AlertSeverity
  }

  export type NestedEnumAlertStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AlertStatus | EnumAlertStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AlertStatus[] | ListEnumAlertStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AlertStatus[] | ListEnumAlertStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAlertStatusFilter<$PrismaModel> | $Enums.AlertStatus
  }

  export type NestedEnumStockAlertTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StockAlertType | EnumStockAlertTypeFieldRefInput<$PrismaModel>
    in?: $Enums.StockAlertType[] | ListEnumStockAlertTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.StockAlertType[] | ListEnumStockAlertTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumStockAlertTypeWithAggregatesFilter<$PrismaModel> | $Enums.StockAlertType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStockAlertTypeFilter<$PrismaModel>
    _max?: NestedEnumStockAlertTypeFilter<$PrismaModel>
  }

  export type NestedEnumAlertSeverityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AlertSeverity | EnumAlertSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.AlertSeverity[] | ListEnumAlertSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.AlertSeverity[] | ListEnumAlertSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumAlertSeverityWithAggregatesFilter<$PrismaModel> | $Enums.AlertSeverity
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAlertSeverityFilter<$PrismaModel>
    _max?: NestedEnumAlertSeverityFilter<$PrismaModel>
  }

  export type NestedEnumAlertStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AlertStatus | EnumAlertStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AlertStatus[] | ListEnumAlertStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AlertStatus[] | ListEnumAlertStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAlertStatusWithAggregatesFilter<$PrismaModel> | $Enums.AlertStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAlertStatusFilter<$PrismaModel>
    _max?: NestedEnumAlertStatusFilter<$PrismaModel>
  }

  export type NestedEnumImportStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportStatus | EnumImportStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportStatus[] | ListEnumImportStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportStatus[] | ListEnumImportStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportStatusFilter<$PrismaModel> | $Enums.ImportStatus
  }

  export type NestedEnumImportStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportStatus | EnumImportStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportStatus[] | ListEnumImportStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportStatus[] | ListEnumImportStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportStatusWithAggregatesFilter<$PrismaModel> | $Enums.ImportStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportStatusFilter<$PrismaModel>
    _max?: NestedEnumImportStatusFilter<$PrismaModel>
  }

  export type NestedEnumGroupFieldTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.GroupFieldType | EnumGroupFieldTypeFieldRefInput<$PrismaModel>
    in?: $Enums.GroupFieldType[] | ListEnumGroupFieldTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.GroupFieldType[] | ListEnumGroupFieldTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumGroupFieldTypeFilter<$PrismaModel> | $Enums.GroupFieldType
  }

  export type NestedEnumGroupFieldTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.GroupFieldType | EnumGroupFieldTypeFieldRefInput<$PrismaModel>
    in?: $Enums.GroupFieldType[] | ListEnumGroupFieldTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.GroupFieldType[] | ListEnumGroupFieldTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumGroupFieldTypeWithAggregatesFilter<$PrismaModel> | $Enums.GroupFieldType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumGroupFieldTypeFilter<$PrismaModel>
    _max?: NestedEnumGroupFieldTypeFilter<$PrismaModel>
  }

  export type NestedEnumAIConversationStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AIConversationStatus | EnumAIConversationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AIConversationStatus[] | ListEnumAIConversationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIConversationStatus[] | ListEnumAIConversationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAIConversationStatusFilter<$PrismaModel> | $Enums.AIConversationStatus
  }

  export type NestedEnumAIConversationCategoryFilter<$PrismaModel = never> = {
    equals?: $Enums.AIConversationCategory | EnumAIConversationCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.AIConversationCategory[] | ListEnumAIConversationCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIConversationCategory[] | ListEnumAIConversationCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumAIConversationCategoryFilter<$PrismaModel> | $Enums.AIConversationCategory
  }

  export type NestedEnumAIConversationStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIConversationStatus | EnumAIConversationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AIConversationStatus[] | ListEnumAIConversationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIConversationStatus[] | ListEnumAIConversationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAIConversationStatusWithAggregatesFilter<$PrismaModel> | $Enums.AIConversationStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIConversationStatusFilter<$PrismaModel>
    _max?: NestedEnumAIConversationStatusFilter<$PrismaModel>
  }

  export type NestedEnumAIConversationCategoryWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIConversationCategory | EnumAIConversationCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.AIConversationCategory[] | ListEnumAIConversationCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIConversationCategory[] | ListEnumAIConversationCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumAIConversationCategoryWithAggregatesFilter<$PrismaModel> | $Enums.AIConversationCategory
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIConversationCategoryFilter<$PrismaModel>
    _max?: NestedEnumAIConversationCategoryFilter<$PrismaModel>
  }

  export type NestedEnumAIMessageRoleFilter<$PrismaModel = never> = {
    equals?: $Enums.AIMessageRole | EnumAIMessageRoleFieldRefInput<$PrismaModel>
    in?: $Enums.AIMessageRole[] | ListEnumAIMessageRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIMessageRole[] | ListEnumAIMessageRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumAIMessageRoleFilter<$PrismaModel> | $Enums.AIMessageRole
  }

  export type NestedEnumAIMessageSourceFilter<$PrismaModel = never> = {
    equals?: $Enums.AIMessageSource | EnumAIMessageSourceFieldRefInput<$PrismaModel>
    in?: $Enums.AIMessageSource[] | ListEnumAIMessageSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIMessageSource[] | ListEnumAIMessageSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumAIMessageSourceFilter<$PrismaModel> | $Enums.AIMessageSource
  }

  export type NestedEnumAIMessageRoleWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIMessageRole | EnumAIMessageRoleFieldRefInput<$PrismaModel>
    in?: $Enums.AIMessageRole[] | ListEnumAIMessageRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIMessageRole[] | ListEnumAIMessageRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumAIMessageRoleWithAggregatesFilter<$PrismaModel> | $Enums.AIMessageRole
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIMessageRoleFilter<$PrismaModel>
    _max?: NestedEnumAIMessageRoleFilter<$PrismaModel>
  }

  export type NestedEnumAIMessageSourceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIMessageSource | EnumAIMessageSourceFieldRefInput<$PrismaModel>
    in?: $Enums.AIMessageSource[] | ListEnumAIMessageSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIMessageSource[] | ListEnumAIMessageSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumAIMessageSourceWithAggregatesFilter<$PrismaModel> | $Enums.AIMessageSource
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIMessageSourceFilter<$PrismaModel>
    _max?: NestedEnumAIMessageSourceFilter<$PrismaModel>
  }

  export type NestedEnumAIFeedbackTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AIFeedbackType | EnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AIFeedbackType[] | ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIFeedbackType[] | ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAIFeedbackTypeFilter<$PrismaModel> | $Enums.AIFeedbackType
  }

  export type NestedEnumAIFeedbackTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIFeedbackType | EnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AIFeedbackType[] | ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIFeedbackType[] | ListEnumAIFeedbackTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAIFeedbackTypeWithAggregatesFilter<$PrismaModel> | $Enums.AIFeedbackType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIFeedbackTypeFilter<$PrismaModel>
    _max?: NestedEnumAIFeedbackTypeFilter<$PrismaModel>
  }

  export type NestedEnumAITicketCategoryFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketCategory | EnumAITicketCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketCategory[] | ListEnumAITicketCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketCategory[] | ListEnumAITicketCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketCategoryFilter<$PrismaModel> | $Enums.AITicketCategory
  }

  export type NestedEnumAITicketPriorityFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketPriority | EnumAITicketPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketPriority[] | ListEnumAITicketPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketPriority[] | ListEnumAITicketPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketPriorityFilter<$PrismaModel> | $Enums.AITicketPriority
  }

  export type NestedEnumAITicketStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketStatus | EnumAITicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketStatus[] | ListEnumAITicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketStatus[] | ListEnumAITicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketStatusFilter<$PrismaModel> | $Enums.AITicketStatus
  }

  export type NestedEnumAIAssigneeTeamNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.AIAssigneeTeam | EnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    in?: $Enums.AIAssigneeTeam[] | ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AIAssigneeTeam[] | ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAIAssigneeTeamNullableFilter<$PrismaModel> | $Enums.AIAssigneeTeam | null
  }

  export type NestedEnumAITicketCategoryWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketCategory | EnumAITicketCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketCategory[] | ListEnumAITicketCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketCategory[] | ListEnumAITicketCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketCategoryWithAggregatesFilter<$PrismaModel> | $Enums.AITicketCategory
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAITicketCategoryFilter<$PrismaModel>
    _max?: NestedEnumAITicketCategoryFilter<$PrismaModel>
  }

  export type NestedEnumAITicketPriorityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketPriority | EnumAITicketPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketPriority[] | ListEnumAITicketPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketPriority[] | ListEnumAITicketPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketPriorityWithAggregatesFilter<$PrismaModel> | $Enums.AITicketPriority
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAITicketPriorityFilter<$PrismaModel>
    _max?: NestedEnumAITicketPriorityFilter<$PrismaModel>
  }

  export type NestedEnumAITicketStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AITicketStatus | EnumAITicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AITicketStatus[] | ListEnumAITicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AITicketStatus[] | ListEnumAITicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAITicketStatusWithAggregatesFilter<$PrismaModel> | $Enums.AITicketStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAITicketStatusFilter<$PrismaModel>
    _max?: NestedEnumAITicketStatusFilter<$PrismaModel>
  }

  export type NestedEnumAIAssigneeTeamNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIAssigneeTeam | EnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    in?: $Enums.AIAssigneeTeam[] | ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AIAssigneeTeam[] | ListEnumAIAssigneeTeamFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAIAssigneeTeamNullableWithAggregatesFilter<$PrismaModel> | $Enums.AIAssigneeTeam | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumAIAssigneeTeamNullableFilter<$PrismaModel>
    _max?: NestedEnumAIAssigneeTeamNullableFilter<$PrismaModel>
  }

  export type NestedEnumAIKnowledgeFixStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AIKnowledgeFixStatus | EnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AIKnowledgeFixStatus[] | ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIKnowledgeFixStatus[] | ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAIKnowledgeFixStatusFilter<$PrismaModel> | $Enums.AIKnowledgeFixStatus
  }

  export type NestedEnumAIKnowledgeFixStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AIKnowledgeFixStatus | EnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AIKnowledgeFixStatus[] | ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AIKnowledgeFixStatus[] | ListEnumAIKnowledgeFixStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAIKnowledgeFixStatusWithAggregatesFilter<$PrismaModel> | $Enums.AIKnowledgeFixStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAIKnowledgeFixStatusFilter<$PrismaModel>
    _max?: NestedEnumAIKnowledgeFixStatusFilter<$PrismaModel>
  }

  export type NestedFloatWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedFloatFilter<$PrismaModel>
    _min?: NestedFloatFilter<$PrismaModel>
    _max?: NestedFloatFilter<$PrismaModel>
  }

  export type NestedEnumAgentSurfaceFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentSurface | EnumAgentSurfaceFieldRefInput<$PrismaModel>
    in?: $Enums.AgentSurface[] | ListEnumAgentSurfaceFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentSurface[] | ListEnumAgentSurfaceFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentSurfaceFilter<$PrismaModel> | $Enums.AgentSurface
  }

  export type NestedEnumAgentSessionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentSessionStatus | EnumAgentSessionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentSessionStatus[] | ListEnumAgentSessionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentSessionStatus[] | ListEnumAgentSessionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentSessionStatusFilter<$PrismaModel> | $Enums.AgentSessionStatus
  }

  export type NestedEnumAgentPlanModeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentPlanMode | EnumAgentPlanModeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentPlanMode[] | ListEnumAgentPlanModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentPlanMode[] | ListEnumAgentPlanModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentPlanModeFilter<$PrismaModel> | $Enums.AgentPlanMode
  }

  export type NestedEnumAgentPermissionModeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentPermissionMode | EnumAgentPermissionModeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentPermissionMode[] | ListEnumAgentPermissionModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentPermissionMode[] | ListEnumAgentPermissionModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentPermissionModeFilter<$PrismaModel> | $Enums.AgentPermissionMode
  }

  export type NestedEnumAgentSurfaceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentSurface | EnumAgentSurfaceFieldRefInput<$PrismaModel>
    in?: $Enums.AgentSurface[] | ListEnumAgentSurfaceFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentSurface[] | ListEnumAgentSurfaceFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentSurfaceWithAggregatesFilter<$PrismaModel> | $Enums.AgentSurface
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentSurfaceFilter<$PrismaModel>
    _max?: NestedEnumAgentSurfaceFilter<$PrismaModel>
  }

  export type NestedEnumAgentSessionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentSessionStatus | EnumAgentSessionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentSessionStatus[] | ListEnumAgentSessionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentSessionStatus[] | ListEnumAgentSessionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentSessionStatusWithAggregatesFilter<$PrismaModel> | $Enums.AgentSessionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentSessionStatusFilter<$PrismaModel>
    _max?: NestedEnumAgentSessionStatusFilter<$PrismaModel>
  }

  export type NestedEnumAgentPlanModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentPlanMode | EnumAgentPlanModeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentPlanMode[] | ListEnumAgentPlanModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentPlanMode[] | ListEnumAgentPlanModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentPlanModeWithAggregatesFilter<$PrismaModel> | $Enums.AgentPlanMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentPlanModeFilter<$PrismaModel>
    _max?: NestedEnumAgentPlanModeFilter<$PrismaModel>
  }

  export type NestedEnumAgentPermissionModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentPermissionMode | EnumAgentPermissionModeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentPermissionMode[] | ListEnumAgentPermissionModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentPermissionMode[] | ListEnumAgentPermissionModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentPermissionModeWithAggregatesFilter<$PrismaModel> | $Enums.AgentPermissionMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentPermissionModeFilter<$PrismaModel>
    _max?: NestedEnumAgentPermissionModeFilter<$PrismaModel>
  }

  export type NestedEnumAgentMessageTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentMessageType | EnumAgentMessageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentMessageType[] | ListEnumAgentMessageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentMessageType[] | ListEnumAgentMessageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentMessageTypeFilter<$PrismaModel> | $Enums.AgentMessageType
  }

  export type NestedEnumAgentMessageTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentMessageType | EnumAgentMessageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentMessageType[] | ListEnumAgentMessageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentMessageType[] | ListEnumAgentMessageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentMessageTypeWithAggregatesFilter<$PrismaModel> | $Enums.AgentMessageType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentMessageTypeFilter<$PrismaModel>
    _max?: NestedEnumAgentMessageTypeFilter<$PrismaModel>
  }

  export type NestedEnumModelRoutingScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.ModelRoutingScope | EnumModelRoutingScopeFieldRefInput<$PrismaModel>
    in?: $Enums.ModelRoutingScope[] | ListEnumModelRoutingScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ModelRoutingScope[] | ListEnumModelRoutingScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumModelRoutingScopeFilter<$PrismaModel> | $Enums.ModelRoutingScope
  }

  export type NestedEnumModelRoutingScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ModelRoutingScope | EnumModelRoutingScopeFieldRefInput<$PrismaModel>
    in?: $Enums.ModelRoutingScope[] | ListEnumModelRoutingScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ModelRoutingScope[] | ListEnumModelRoutingScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumModelRoutingScopeWithAggregatesFilter<$PrismaModel> | $Enums.ModelRoutingScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumModelRoutingScopeFilter<$PrismaModel>
    _max?: NestedEnumModelRoutingScopeFilter<$PrismaModel>
  }

  export type NestedEnumModelRoutingMatchSourceFilter<$PrismaModel = never> = {
    equals?: $Enums.ModelRoutingMatchSource | EnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    in?: $Enums.ModelRoutingMatchSource[] | ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.ModelRoutingMatchSource[] | ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumModelRoutingMatchSourceFilter<$PrismaModel> | $Enums.ModelRoutingMatchSource
  }

  export type NestedEnumModelRoutingMatchSourceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ModelRoutingMatchSource | EnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    in?: $Enums.ModelRoutingMatchSource[] | ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.ModelRoutingMatchSource[] | ListEnumModelRoutingMatchSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumModelRoutingMatchSourceWithAggregatesFilter<$PrismaModel> | $Enums.ModelRoutingMatchSource
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumModelRoutingMatchSourceFilter<$PrismaModel>
    _max?: NestedEnumModelRoutingMatchSourceFilter<$PrismaModel>
  }

  export type NestedFloatNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedFloatNullableFilter<$PrismaModel>
    _min?: NestedFloatNullableFilter<$PrismaModel>
    _max?: NestedFloatNullableFilter<$PrismaModel>
  }

  export type NestedEnumAgentTrajectoryEventTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentTrajectoryEventType | EnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentTrajectoryEventType[] | ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentTrajectoryEventType[] | ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentTrajectoryEventTypeFilter<$PrismaModel> | $Enums.AgentTrajectoryEventType
  }

  export type NestedEnumAgentTrajectoryEventTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentTrajectoryEventType | EnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentTrajectoryEventType[] | ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentTrajectoryEventType[] | ListEnumAgentTrajectoryEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentTrajectoryEventTypeWithAggregatesFilter<$PrismaModel> | $Enums.AgentTrajectoryEventType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentTrajectoryEventTypeFilter<$PrismaModel>
    _max?: NestedEnumAgentTrajectoryEventTypeFilter<$PrismaModel>
  }

  export type NestedEnumAgentQuotaScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentQuotaScope | EnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentQuotaScope[] | ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentQuotaScope[] | ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentQuotaScopeFilter<$PrismaModel> | $Enums.AgentQuotaScope
  }

  export type NestedEnumAgentQuotaScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentQuotaScope | EnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentQuotaScope[] | ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentQuotaScope[] | ListEnumAgentQuotaScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentQuotaScopeWithAggregatesFilter<$PrismaModel> | $Enums.AgentQuotaScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentQuotaScopeFilter<$PrismaModel>
    _max?: NestedEnumAgentQuotaScopeFilter<$PrismaModel>
  }

  export type NestedEnumAgentArtifactTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentArtifactType | EnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentArtifactType[] | ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentArtifactType[] | ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentArtifactTypeFilter<$PrismaModel> | $Enums.AgentArtifactType
  }

  export type NestedEnumAgentArtifactTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentArtifactType | EnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AgentArtifactType[] | ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentArtifactType[] | ListEnumAgentArtifactTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentArtifactTypeWithAggregatesFilter<$PrismaModel> | $Enums.AgentArtifactType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentArtifactTypeFilter<$PrismaModel>
    _max?: NestedEnumAgentArtifactTypeFilter<$PrismaModel>
  }

  export type NestedEnumAgentTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentTaskStatus | EnumAgentTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentTaskStatus[] | ListEnumAgentTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentTaskStatus[] | ListEnumAgentTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentTaskStatusFilter<$PrismaModel> | $Enums.AgentTaskStatus
  }

  export type NestedEnumAgentTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentTaskStatus | EnumAgentTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentTaskStatus[] | ListEnumAgentTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentTaskStatus[] | ListEnumAgentTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.AgentTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumAgentTaskStatusFilter<$PrismaModel>
  }

  export type NestedEnumStorageBindingScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageBindingScope | EnumStorageBindingScopeFieldRefInput<$PrismaModel>
    in?: $Enums.StorageBindingScope[] | ListEnumStorageBindingScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageBindingScope[] | ListEnumStorageBindingScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageBindingScopeFilter<$PrismaModel> | $Enums.StorageBindingScope
  }

  export type NestedEnumStorageBackendKindFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageBackendKind | EnumStorageBackendKindFieldRefInput<$PrismaModel>
    in?: $Enums.StorageBackendKind[] | ListEnumStorageBackendKindFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageBackendKind[] | ListEnumStorageBackendKindFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageBackendKindFilter<$PrismaModel> | $Enums.StorageBackendKind
  }

  export type NestedEnumStorageBindingScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageBindingScope | EnumStorageBindingScopeFieldRefInput<$PrismaModel>
    in?: $Enums.StorageBindingScope[] | ListEnumStorageBindingScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageBindingScope[] | ListEnumStorageBindingScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageBindingScopeWithAggregatesFilter<$PrismaModel> | $Enums.StorageBindingScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStorageBindingScopeFilter<$PrismaModel>
    _max?: NestedEnumStorageBindingScopeFilter<$PrismaModel>
  }

  export type NestedEnumStorageBackendKindWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StorageBackendKind | EnumStorageBackendKindFieldRefInput<$PrismaModel>
    in?: $Enums.StorageBackendKind[] | ListEnumStorageBackendKindFieldRefInput<$PrismaModel>
    notIn?: $Enums.StorageBackendKind[] | ListEnumStorageBackendKindFieldRefInput<$PrismaModel>
    not?: NestedEnumStorageBackendKindWithAggregatesFilter<$PrismaModel> | $Enums.StorageBackendKind
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumStorageBackendKindFilter<$PrismaModel>
    _max?: NestedEnumStorageBackendKindFilter<$PrismaModel>
  }

  export type NestedEnumMemoryOwnerScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryOwnerScope | EnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryOwnerScope[] | ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryOwnerScope[] | ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryOwnerScopeFilter<$PrismaModel> | $Enums.MemoryOwnerScope
  }

  export type NestedEnumMemoryScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryScope | EnumMemoryScopeFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryScope[] | ListEnumMemoryScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryScope[] | ListEnumMemoryScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryScopeFilter<$PrismaModel> | $Enums.MemoryScope
  }

  export type NestedEnumMemoryCategoryFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryCategory | EnumMemoryCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryCategory[] | ListEnumMemoryCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryCategory[] | ListEnumMemoryCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryCategoryFilter<$PrismaModel> | $Enums.MemoryCategory
  }

  export type NestedEnumMemoryOwnerScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryOwnerScope | EnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryOwnerScope[] | ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryOwnerScope[] | ListEnumMemoryOwnerScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryOwnerScopeWithAggregatesFilter<$PrismaModel> | $Enums.MemoryOwnerScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMemoryOwnerScopeFilter<$PrismaModel>
    _max?: NestedEnumMemoryOwnerScopeFilter<$PrismaModel>
  }

  export type NestedEnumMemoryScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryScope | EnumMemoryScopeFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryScope[] | ListEnumMemoryScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryScope[] | ListEnumMemoryScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryScopeWithAggregatesFilter<$PrismaModel> | $Enums.MemoryScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMemoryScopeFilter<$PrismaModel>
    _max?: NestedEnumMemoryScopeFilter<$PrismaModel>
  }

  export type NestedEnumMemoryCategoryWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MemoryCategory | EnumMemoryCategoryFieldRefInput<$PrismaModel>
    in?: $Enums.MemoryCategory[] | ListEnumMemoryCategoryFieldRefInput<$PrismaModel>
    notIn?: $Enums.MemoryCategory[] | ListEnumMemoryCategoryFieldRefInput<$PrismaModel>
    not?: NestedEnumMemoryCategoryWithAggregatesFilter<$PrismaModel> | $Enums.MemoryCategory
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMemoryCategoryFilter<$PrismaModel>
    _max?: NestedEnumMemoryCategoryFilter<$PrismaModel>
  }

  export type NestedEnumAiUsageOsPlatformFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageOsPlatform | EnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageOsPlatform[] | ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageOsPlatform[] | ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageOsPlatformFilter<$PrismaModel> | $Enums.AiUsageOsPlatform
  }

  export type NestedEnumAiUsageOsPlatformWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageOsPlatform | EnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageOsPlatform[] | ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageOsPlatform[] | ListEnumAiUsageOsPlatformFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageOsPlatformWithAggregatesFilter<$PrismaModel> | $Enums.AiUsageOsPlatform
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAiUsageOsPlatformFilter<$PrismaModel>
    _max?: NestedEnumAiUsageOsPlatformFilter<$PrismaModel>
  }

  export type NestedEnumAiUsageToolFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageTool | EnumAiUsageToolFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageTool[] | ListEnumAiUsageToolFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageTool[] | ListEnumAiUsageToolFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageToolFilter<$PrismaModel> | $Enums.AiUsageTool
  }

  export type NestedEnumAiUsageToolWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageTool | EnumAiUsageToolFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageTool[] | ListEnumAiUsageToolFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageTool[] | ListEnumAiUsageToolFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageToolWithAggregatesFilter<$PrismaModel> | $Enums.AiUsageTool
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAiUsageToolFilter<$PrismaModel>
    _max?: NestedEnumAiUsageToolFilter<$PrismaModel>
  }

  export type NestedEnumAiUsageDlqReasonFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageDlqReason | EnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageDlqReason[] | ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageDlqReason[] | ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageDlqReasonFilter<$PrismaModel> | $Enums.AiUsageDlqReason
  }

  export type NestedEnumAiUsageDlqReasonWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AiUsageDlqReason | EnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    in?: $Enums.AiUsageDlqReason[] | ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    notIn?: $Enums.AiUsageDlqReason[] | ListEnumAiUsageDlqReasonFieldRefInput<$PrismaModel>
    not?: NestedEnumAiUsageDlqReasonWithAggregatesFilter<$PrismaModel> | $Enums.AiUsageDlqReason
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAiUsageDlqReasonFilter<$PrismaModel>
    _max?: NestedEnumAiUsageDlqReasonFilter<$PrismaModel>
  }

  export type NestedBigIntFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel>
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel>
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntFilter<$PrismaModel> | bigint | number
  }

  export type NestedBigIntWithAggregatesFilter<$PrismaModel = never> = {
    equals?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    in?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel>
    notIn?: bigint[] | number[] | ListBigIntFieldRefInput<$PrismaModel>
    lt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    lte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gt?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    gte?: bigint | number | BigIntFieldRefInput<$PrismaModel>
    not?: NestedBigIntWithAggregatesFilter<$PrismaModel> | bigint | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedBigIntFilter<$PrismaModel>
    _min?: NestedBigIntFilter<$PrismaModel>
    _max?: NestedBigIntFilter<$PrismaModel>
  }

  export type NestedEnumAuditActionFilter<$PrismaModel = never> = {
    equals?: $Enums.AuditAction | EnumAuditActionFieldRefInput<$PrismaModel>
    in?: $Enums.AuditAction[] | ListEnumAuditActionFieldRefInput<$PrismaModel>
    notIn?: $Enums.AuditAction[] | ListEnumAuditActionFieldRefInput<$PrismaModel>
    not?: NestedEnumAuditActionFilter<$PrismaModel> | $Enums.AuditAction
  }

  export type NestedEnumAuditStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AuditStatus | EnumAuditStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AuditStatus[] | ListEnumAuditStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AuditStatus[] | ListEnumAuditStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAuditStatusFilter<$PrismaModel> | $Enums.AuditStatus
  }

  export type NestedEnumRiskLevelFilter<$PrismaModel = never> = {
    equals?: $Enums.RiskLevel | EnumRiskLevelFieldRefInput<$PrismaModel>
    in?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumRiskLevelFilter<$PrismaModel> | $Enums.RiskLevel
  }

  export type NestedEnumComplianceLevelFilter<$PrismaModel = never> = {
    equals?: $Enums.ComplianceLevel | EnumComplianceLevelFieldRefInput<$PrismaModel>
    in?: $Enums.ComplianceLevel[] | ListEnumComplianceLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.ComplianceLevel[] | ListEnumComplianceLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumComplianceLevelFilter<$PrismaModel> | $Enums.ComplianceLevel
  }

  export type NestedEnumAuditActionWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AuditAction | EnumAuditActionFieldRefInput<$PrismaModel>
    in?: $Enums.AuditAction[] | ListEnumAuditActionFieldRefInput<$PrismaModel>
    notIn?: $Enums.AuditAction[] | ListEnumAuditActionFieldRefInput<$PrismaModel>
    not?: NestedEnumAuditActionWithAggregatesFilter<$PrismaModel> | $Enums.AuditAction
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAuditActionFilter<$PrismaModel>
    _max?: NestedEnumAuditActionFilter<$PrismaModel>
  }

  export type NestedEnumAuditStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AuditStatus | EnumAuditStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AuditStatus[] | ListEnumAuditStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AuditStatus[] | ListEnumAuditStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAuditStatusWithAggregatesFilter<$PrismaModel> | $Enums.AuditStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAuditStatusFilter<$PrismaModel>
    _max?: NestedEnumAuditStatusFilter<$PrismaModel>
  }

  export type NestedEnumRiskLevelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RiskLevel | EnumRiskLevelFieldRefInput<$PrismaModel>
    in?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.RiskLevel[] | ListEnumRiskLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumRiskLevelWithAggregatesFilter<$PrismaModel> | $Enums.RiskLevel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRiskLevelFilter<$PrismaModel>
    _max?: NestedEnumRiskLevelFilter<$PrismaModel>
  }

  export type NestedEnumComplianceLevelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ComplianceLevel | EnumComplianceLevelFieldRefInput<$PrismaModel>
    in?: $Enums.ComplianceLevel[] | ListEnumComplianceLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.ComplianceLevel[] | ListEnumComplianceLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumComplianceLevelWithAggregatesFilter<$PrismaModel> | $Enums.ComplianceLevel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumComplianceLevelFilter<$PrismaModel>
    _max?: NestedEnumComplianceLevelFilter<$PrismaModel>
  }

  export type NestedEnumDbOperationFilter<$PrismaModel = never> = {
    equals?: $Enums.DbOperation | EnumDbOperationFieldRefInput<$PrismaModel>
    in?: $Enums.DbOperation[] | ListEnumDbOperationFieldRefInput<$PrismaModel>
    notIn?: $Enums.DbOperation[] | ListEnumDbOperationFieldRefInput<$PrismaModel>
    not?: NestedEnumDbOperationFilter<$PrismaModel> | $Enums.DbOperation
  }

  export type NestedEnumDbOperationWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DbOperation | EnumDbOperationFieldRefInput<$PrismaModel>
    in?: $Enums.DbOperation[] | ListEnumDbOperationFieldRefInput<$PrismaModel>
    notIn?: $Enums.DbOperation[] | ListEnumDbOperationFieldRefInput<$PrismaModel>
    not?: NestedEnumDbOperationWithAggregatesFilter<$PrismaModel> | $Enums.DbOperation
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDbOperationFilter<$PrismaModel>
    _max?: NestedEnumDbOperationFilter<$PrismaModel>
  }

  export type NestedEnumIntegrityCheckTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.IntegrityCheckType | EnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    in?: $Enums.IntegrityCheckType[] | ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.IntegrityCheckType[] | ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumIntegrityCheckTypeFilter<$PrismaModel> | $Enums.IntegrityCheckType
  }

  export type NestedEnumCheckStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.CheckStatus | EnumCheckStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CheckStatus[] | ListEnumCheckStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CheckStatus[] | ListEnumCheckStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCheckStatusFilter<$PrismaModel> | $Enums.CheckStatus
  }

  export type NestedEnumIntegrityCheckTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.IntegrityCheckType | EnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    in?: $Enums.IntegrityCheckType[] | ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.IntegrityCheckType[] | ListEnumIntegrityCheckTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumIntegrityCheckTypeWithAggregatesFilter<$PrismaModel> | $Enums.IntegrityCheckType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumIntegrityCheckTypeFilter<$PrismaModel>
    _max?: NestedEnumIntegrityCheckTypeFilter<$PrismaModel>
  }

  export type NestedEnumCheckStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CheckStatus | EnumCheckStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CheckStatus[] | ListEnumCheckStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CheckStatus[] | ListEnumCheckStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCheckStatusWithAggregatesFilter<$PrismaModel> | $Enums.CheckStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCheckStatusFilter<$PrismaModel>
    _max?: NestedEnumCheckStatusFilter<$PrismaModel>
  }

  export type NestedEnumAutomationTaskTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationTaskType | EnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationTaskType[] | ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationTaskType[] | ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationTaskTypeFilter<$PrismaModel> | $Enums.AutomationTaskType
  }

  export type NestedEnumAutomationTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationTaskStatus | EnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationTaskStatus[] | ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationTaskStatus[] | ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationTaskStatusFilter<$PrismaModel> | $Enums.AutomationTaskStatus
  }

  export type NestedEnumAutomationExecutionStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationExecutionStatus | EnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAutomationExecutionStatusNullableFilter<$PrismaModel> | $Enums.AutomationExecutionStatus | null
  }

  export type NestedEnumAutomationTaskTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationTaskType | EnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationTaskType[] | ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationTaskType[] | ListEnumAutomationTaskTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationTaskTypeWithAggregatesFilter<$PrismaModel> | $Enums.AutomationTaskType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAutomationTaskTypeFilter<$PrismaModel>
    _max?: NestedEnumAutomationTaskTypeFilter<$PrismaModel>
  }

  export type NestedEnumAutomationTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationTaskStatus | EnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationTaskStatus[] | ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationTaskStatus[] | ListEnumAutomationTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.AutomationTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAutomationTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumAutomationTaskStatusFilter<$PrismaModel>
  }

  export type NestedEnumAutomationExecutionStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationExecutionStatus | EnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAutomationExecutionStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.AutomationExecutionStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumAutomationExecutionStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumAutomationExecutionStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumAutomationExecutionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationExecutionStatus | EnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationExecutionStatusFilter<$PrismaModel> | $Enums.AutomationExecutionStatus
  }

  export type NestedEnumAutomationExecutionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AutomationExecutionStatus | EnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AutomationExecutionStatus[] | ListEnumAutomationExecutionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAutomationExecutionStatusWithAggregatesFilter<$PrismaModel> | $Enums.AutomationExecutionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAutomationExecutionStatusFilter<$PrismaModel>
    _max?: NestedEnumAutomationExecutionStatusFilter<$PrismaModel>
  }

  export type NestedEnumDevItemTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemType | EnumDevItemTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemType[] | ListEnumDevItemTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemType[] | ListEnumDevItemTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemTypeFilter<$PrismaModel> | $Enums.DevItemType
  }

  export type NestedEnumDevItemStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemStatus | EnumDevItemStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemStatus[] | ListEnumDevItemStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemStatus[] | ListEnumDevItemStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemStatusFilter<$PrismaModel> | $Enums.DevItemStatus
  }

  export type NestedEnumDevItemPriorityFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemPriority | EnumDevItemPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemPriority[] | ListEnumDevItemPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemPriority[] | ListEnumDevItemPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemPriorityFilter<$PrismaModel> | $Enums.DevItemPriority
  }

  export type NestedEnumDevItemSeverityNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemSeverity | EnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    in?: $Enums.DevItemSeverity[] | ListEnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DevItemSeverity[] | ListEnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDevItemSeverityNullableFilter<$PrismaModel> | $Enums.DevItemSeverity | null
  }

  export type NestedEnumDevItemTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemType | EnumDevItemTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemType[] | ListEnumDevItemTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemType[] | ListEnumDevItemTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemTypeWithAggregatesFilter<$PrismaModel> | $Enums.DevItemType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDevItemTypeFilter<$PrismaModel>
    _max?: NestedEnumDevItemTypeFilter<$PrismaModel>
  }

  export type NestedEnumDevItemStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemStatus | EnumDevItemStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemStatus[] | ListEnumDevItemStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemStatus[] | ListEnumDevItemStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemStatusWithAggregatesFilter<$PrismaModel> | $Enums.DevItemStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDevItemStatusFilter<$PrismaModel>
    _max?: NestedEnumDevItemStatusFilter<$PrismaModel>
  }

  export type NestedEnumDevItemPriorityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemPriority | EnumDevItemPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.DevItemPriority[] | ListEnumDevItemPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.DevItemPriority[] | ListEnumDevItemPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumDevItemPriorityWithAggregatesFilter<$PrismaModel> | $Enums.DevItemPriority
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDevItemPriorityFilter<$PrismaModel>
    _max?: NestedEnumDevItemPriorityFilter<$PrismaModel>
  }

  export type NestedEnumDevItemSeverityNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DevItemSeverity | EnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    in?: $Enums.DevItemSeverity[] | ListEnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DevItemSeverity[] | ListEnumDevItemSeverityFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDevItemSeverityNullableWithAggregatesFilter<$PrismaModel> | $Enums.DevItemSeverity | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumDevItemSeverityNullableFilter<$PrismaModel>
    _max?: NestedEnumDevItemSeverityNullableFilter<$PrismaModel>
  }

  export type NestedEnumFeedbackTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackType | EnumFeedbackTypeFieldRefInput<$PrismaModel>
    in?: $Enums.FeedbackType[] | ListEnumFeedbackTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.FeedbackType[] | ListEnumFeedbackTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumFeedbackTypeFilter<$PrismaModel> | $Enums.FeedbackType
  }

  export type NestedEnumFeedbackStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackStatus | EnumFeedbackStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FeedbackStatus[] | ListEnumFeedbackStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FeedbackStatus[] | ListEnumFeedbackStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFeedbackStatusFilter<$PrismaModel> | $Enums.FeedbackStatus
  }

  export type NestedEnumFeedbackPriorityNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackPriority | EnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    in?: $Enums.FeedbackPriority[] | ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.FeedbackPriority[] | ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    not?: NestedEnumFeedbackPriorityNullableFilter<$PrismaModel> | $Enums.FeedbackPriority | null
  }

  export type NestedEnumFeedbackTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackType | EnumFeedbackTypeFieldRefInput<$PrismaModel>
    in?: $Enums.FeedbackType[] | ListEnumFeedbackTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.FeedbackType[] | ListEnumFeedbackTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumFeedbackTypeWithAggregatesFilter<$PrismaModel> | $Enums.FeedbackType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFeedbackTypeFilter<$PrismaModel>
    _max?: NestedEnumFeedbackTypeFilter<$PrismaModel>
  }

  export type NestedEnumFeedbackStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackStatus | EnumFeedbackStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FeedbackStatus[] | ListEnumFeedbackStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FeedbackStatus[] | ListEnumFeedbackStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFeedbackStatusWithAggregatesFilter<$PrismaModel> | $Enums.FeedbackStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFeedbackStatusFilter<$PrismaModel>
    _max?: NestedEnumFeedbackStatusFilter<$PrismaModel>
  }

  export type NestedEnumFeedbackPriorityNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FeedbackPriority | EnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    in?: $Enums.FeedbackPriority[] | ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.FeedbackPriority[] | ListEnumFeedbackPriorityFieldRefInput<$PrismaModel> | null
    not?: NestedEnumFeedbackPriorityNullableWithAggregatesFilter<$PrismaModel> | $Enums.FeedbackPriority | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumFeedbackPriorityNullableFilter<$PrismaModel>
    _max?: NestedEnumFeedbackPriorityNullableFilter<$PrismaModel>
  }

  export type NestedEnumFormStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.FormStatus | EnumFormStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormStatus[] | ListEnumFormStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormStatus[] | ListEnumFormStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormStatusFilter<$PrismaModel> | $Enums.FormStatus
  }

  export type NestedEnumFormStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FormStatus | EnumFormStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormStatus[] | ListEnumFormStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormStatus[] | ListEnumFormStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormStatusWithAggregatesFilter<$PrismaModel> | $Enums.FormStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFormStatusFilter<$PrismaModel>
    _max?: NestedEnumFormStatusFilter<$PrismaModel>
  }

  export type NestedEnumFormVersionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.FormVersionStatus | EnumFormVersionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormVersionStatus[] | ListEnumFormVersionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormVersionStatus[] | ListEnumFormVersionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormVersionStatusFilter<$PrismaModel> | $Enums.FormVersionStatus
  }

  export type NestedEnumFormVersionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FormVersionStatus | EnumFormVersionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormVersionStatus[] | ListEnumFormVersionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormVersionStatus[] | ListEnumFormVersionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormVersionStatusWithAggregatesFilter<$PrismaModel> | $Enums.FormVersionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFormVersionStatusFilter<$PrismaModel>
    _max?: NestedEnumFormVersionStatusFilter<$PrismaModel>
  }

  export type NestedEnumFormInstanceStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.FormInstanceStatus | EnumFormInstanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormInstanceStatus[] | ListEnumFormInstanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormInstanceStatus[] | ListEnumFormInstanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormInstanceStatusFilter<$PrismaModel> | $Enums.FormInstanceStatus
  }

  export type NestedEnumFormInstanceStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FormInstanceStatus | EnumFormInstanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.FormInstanceStatus[] | ListEnumFormInstanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.FormInstanceStatus[] | ListEnumFormInstanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumFormInstanceStatusWithAggregatesFilter<$PrismaModel> | $Enums.FormInstanceStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFormInstanceStatusFilter<$PrismaModel>
    _max?: NestedEnumFormInstanceStatusFilter<$PrismaModel>
  }

  export type NestedEnumReleaseSnapshotStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ReleaseSnapshotStatus | EnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ReleaseSnapshotStatus[] | ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReleaseSnapshotStatus[] | ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumReleaseSnapshotStatusFilter<$PrismaModel> | $Enums.ReleaseSnapshotStatus
  }

  export type NestedEnumReleaseSnapshotStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ReleaseSnapshotStatus | EnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ReleaseSnapshotStatus[] | ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ReleaseSnapshotStatus[] | ListEnumReleaseSnapshotStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumReleaseSnapshotStatusWithAggregatesFilter<$PrismaModel> | $Enums.ReleaseSnapshotStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumReleaseSnapshotStatusFilter<$PrismaModel>
    _max?: NestedEnumReleaseSnapshotStatusFilter<$PrismaModel>
  }

  export type NestedEnumUserStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.UserStatus | EnumUserStatusFieldRefInput<$PrismaModel>
    in?: $Enums.UserStatus[] | ListEnumUserStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.UserStatus[] | ListEnumUserStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumUserStatusFilter<$PrismaModel> | $Enums.UserStatus
  }

  export type NestedEnumUserSourceFilter<$PrismaModel = never> = {
    equals?: $Enums.UserSource | EnumUserSourceFieldRefInput<$PrismaModel>
    in?: $Enums.UserSource[] | ListEnumUserSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.UserSource[] | ListEnumUserSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumUserSourceFilter<$PrismaModel> | $Enums.UserSource
  }

  export type NestedEnumUserStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.UserStatus | EnumUserStatusFieldRefInput<$PrismaModel>
    in?: $Enums.UserStatus[] | ListEnumUserStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.UserStatus[] | ListEnumUserStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumUserStatusWithAggregatesFilter<$PrismaModel> | $Enums.UserStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumUserStatusFilter<$PrismaModel>
    _max?: NestedEnumUserStatusFilter<$PrismaModel>
  }

  export type NestedEnumUserSourceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.UserSource | EnumUserSourceFieldRefInput<$PrismaModel>
    in?: $Enums.UserSource[] | ListEnumUserSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.UserSource[] | ListEnumUserSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumUserSourceWithAggregatesFilter<$PrismaModel> | $Enums.UserSource
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumUserSourceFilter<$PrismaModel>
    _max?: NestedEnumUserSourceFilter<$PrismaModel>
  }

  export type NestedEnumWorkflowRuleTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.WorkflowRuleType | EnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    in?: $Enums.WorkflowRuleType[] | ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.WorkflowRuleType[] | ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumWorkflowRuleTypeFilter<$PrismaModel> | $Enums.WorkflowRuleType
  }

  export type NestedEnumWorkflowRuleTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.WorkflowRuleType | EnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    in?: $Enums.WorkflowRuleType[] | ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.WorkflowRuleType[] | ListEnumWorkflowRuleTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumWorkflowRuleTypeWithAggregatesFilter<$PrismaModel> | $Enums.WorkflowRuleType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumWorkflowRuleTypeFilter<$PrismaModel>
    _max?: NestedEnumWorkflowRuleTypeFilter<$PrismaModel>
  }

  export type NestedEnumDataScopeTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.DataScopeType | EnumDataScopeTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DataScopeType[] | ListEnumDataScopeTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DataScopeType[] | ListEnumDataScopeTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDataScopeTypeFilter<$PrismaModel> | $Enums.DataScopeType
  }

  export type NestedEnumDataScopeTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DataScopeType | EnumDataScopeTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DataScopeType[] | ListEnumDataScopeTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DataScopeType[] | ListEnumDataScopeTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDataScopeTypeWithAggregatesFilter<$PrismaModel> | $Enums.DataScopeType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDataScopeTypeFilter<$PrismaModel>
    _max?: NestedEnumDataScopeTypeFilter<$PrismaModel>
  }

  export type NestedEnumFieldAccessFilter<$PrismaModel = never> = {
    equals?: $Enums.FieldAccess | EnumFieldAccessFieldRefInput<$PrismaModel>
    in?: $Enums.FieldAccess[] | ListEnumFieldAccessFieldRefInput<$PrismaModel>
    notIn?: $Enums.FieldAccess[] | ListEnumFieldAccessFieldRefInput<$PrismaModel>
    not?: NestedEnumFieldAccessFilter<$PrismaModel> | $Enums.FieldAccess
  }

  export type NestedEnumFieldAccessWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FieldAccess | EnumFieldAccessFieldRefInput<$PrismaModel>
    in?: $Enums.FieldAccess[] | ListEnumFieldAccessFieldRefInput<$PrismaModel>
    notIn?: $Enums.FieldAccess[] | ListEnumFieldAccessFieldRefInput<$PrismaModel>
    not?: NestedEnumFieldAccessWithAggregatesFilter<$PrismaModel> | $Enums.FieldAccess
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumFieldAccessFilter<$PrismaModel>
    _max?: NestedEnumFieldAccessFilter<$PrismaModel>
  }

  export type NestedEnumInternalAppRuntimeFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppRuntime | EnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppRuntime[] | ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppRuntime[] | ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppRuntimeFilter<$PrismaModel> | $Enums.InternalAppRuntime
  }

  export type NestedEnumInternalAppStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppStatus | EnumInternalAppStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppStatus[] | ListEnumInternalAppStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppStatus[] | ListEnumInternalAppStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppStatusFilter<$PrismaModel> | $Enums.InternalAppStatus
  }

  export type NestedEnumInternalAppRuntimeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppRuntime | EnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppRuntime[] | ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppRuntime[] | ListEnumInternalAppRuntimeFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppRuntimeWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppRuntime
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppRuntimeFilter<$PrismaModel>
    _max?: NestedEnumInternalAppRuntimeFilter<$PrismaModel>
  }

  export type NestedEnumInternalAppStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppStatus | EnumInternalAppStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppStatus[] | ListEnumInternalAppStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppStatus[] | ListEnumInternalAppStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppStatusWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppStatusFilter<$PrismaModel>
    _max?: NestedEnumInternalAppStatusFilter<$PrismaModel>
  }

  export type NestedEnumInternalAppDeploymentStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppDeploymentStatus | EnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppDeploymentStatus[] | ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppDeploymentStatus[] | ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppDeploymentStatusFilter<$PrismaModel> | $Enums.InternalAppDeploymentStatus
  }

  export type NestedEnumInternalAppDeploymentTriggerFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppDeploymentTrigger | EnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppDeploymentTrigger[] | ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppDeploymentTrigger[] | ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppDeploymentTriggerFilter<$PrismaModel> | $Enums.InternalAppDeploymentTrigger
  }

  export type NestedEnumInternalAppDeploymentStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppDeploymentStatus | EnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppDeploymentStatus[] | ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppDeploymentStatus[] | ListEnumInternalAppDeploymentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppDeploymentStatusWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppDeploymentStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppDeploymentStatusFilter<$PrismaModel>
    _max?: NestedEnumInternalAppDeploymentStatusFilter<$PrismaModel>
  }

  export type NestedEnumInternalAppDeploymentTriggerWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppDeploymentTrigger | EnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppDeploymentTrigger[] | ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppDeploymentTrigger[] | ListEnumInternalAppDeploymentTriggerFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppDeploymentTriggerWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppDeploymentTrigger
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppDeploymentTriggerFilter<$PrismaModel>
    _max?: NestedEnumInternalAppDeploymentTriggerFilter<$PrismaModel>
  }

  export type NestedBytesFilter<$PrismaModel = never> = {
    equals?: Bytes | BytesFieldRefInput<$PrismaModel>
    in?: Bytes[] | ListBytesFieldRefInput<$PrismaModel>
    notIn?: Bytes[] | ListBytesFieldRefInput<$PrismaModel>
    not?: NestedBytesFilter<$PrismaModel> | Bytes
  }

  export type NestedBytesWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Bytes | BytesFieldRefInput<$PrismaModel>
    in?: Bytes[] | ListBytesFieldRefInput<$PrismaModel>
    notIn?: Bytes[] | ListBytesFieldRefInput<$PrismaModel>
    not?: NestedBytesWithAggregatesFilter<$PrismaModel> | Bytes
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedBytesFilter<$PrismaModel>
    _max?: NestedBytesFilter<$PrismaModel>
  }

  export type NestedEnumInternalAppTokenStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppTokenStatus | EnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppTokenStatus[] | ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppTokenStatus[] | ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppTokenStatusFilter<$PrismaModel> | $Enums.InternalAppTokenStatus
  }

  export type NestedEnumInternalAppTokenRevokeReasonNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppTokenRevokeReason | EnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    in?: $Enums.InternalAppTokenRevokeReason[] | ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.InternalAppTokenRevokeReason[] | ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    not?: NestedEnumInternalAppTokenRevokeReasonNullableFilter<$PrismaModel> | $Enums.InternalAppTokenRevokeReason | null
  }

  export type NestedEnumInternalAppTokenStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppTokenStatus | EnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppTokenStatus[] | ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppTokenStatus[] | ListEnumInternalAppTokenStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppTokenStatusWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppTokenStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppTokenStatusFilter<$PrismaModel>
    _max?: NestedEnumInternalAppTokenStatusFilter<$PrismaModel>
  }

  export type NestedEnumInternalAppTokenRevokeReasonNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppTokenRevokeReason | EnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    in?: $Enums.InternalAppTokenRevokeReason[] | ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.InternalAppTokenRevokeReason[] | ListEnumInternalAppTokenRevokeReasonFieldRefInput<$PrismaModel> | null
    not?: NestedEnumInternalAppTokenRevokeReasonNullableWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppTokenRevokeReason | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumInternalAppTokenRevokeReasonNullableFilter<$PrismaModel>
    _max?: NestedEnumInternalAppTokenRevokeReasonNullableFilter<$PrismaModel>
  }

  export type NestedEnumInternalAppActorRoleFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppActorRole | EnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppActorRole[] | ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppActorRole[] | ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppActorRoleFilter<$PrismaModel> | $Enums.InternalAppActorRole
  }

  export type NestedEnumInternalAppEventOutcomeFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppEventOutcome | EnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppEventOutcome[] | ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppEventOutcome[] | ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppEventOutcomeFilter<$PrismaModel> | $Enums.InternalAppEventOutcome
  }

  export type NestedEnumInternalAppActorRoleWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppActorRole | EnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppActorRole[] | ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppActorRole[] | ListEnumInternalAppActorRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppActorRoleWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppActorRole
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppActorRoleFilter<$PrismaModel>
    _max?: NestedEnumInternalAppActorRoleFilter<$PrismaModel>
  }

  export type NestedEnumInternalAppEventOutcomeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InternalAppEventOutcome | EnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    in?: $Enums.InternalAppEventOutcome[] | ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    notIn?: $Enums.InternalAppEventOutcome[] | ListEnumInternalAppEventOutcomeFieldRefInput<$PrismaModel>
    not?: NestedEnumInternalAppEventOutcomeWithAggregatesFilter<$PrismaModel> | $Enums.InternalAppEventOutcome
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumInternalAppEventOutcomeFilter<$PrismaModel>
    _max?: NestedEnumInternalAppEventOutcomeFilter<$PrismaModel>
  }

  export type NestedEnumKnowledgeArticleStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.KnowledgeArticleStatus | EnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KnowledgeArticleStatus[] | ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KnowledgeArticleStatus[] | ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKnowledgeArticleStatusFilter<$PrismaModel> | $Enums.KnowledgeArticleStatus
  }

  export type NestedEnumKnowledgeArticleStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.KnowledgeArticleStatus | EnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KnowledgeArticleStatus[] | ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KnowledgeArticleStatus[] | ListEnumKnowledgeArticleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKnowledgeArticleStatusWithAggregatesFilter<$PrismaModel> | $Enums.KnowledgeArticleStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumKnowledgeArticleStatusFilter<$PrismaModel>
    _max?: NestedEnumKnowledgeArticleStatusFilter<$PrismaModel>
  }

  export type NestedEnumDocAuthorityLevelFilter<$PrismaModel = never> = {
    equals?: $Enums.DocAuthorityLevel | EnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    in?: $Enums.DocAuthorityLevel[] | ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocAuthorityLevel[] | ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumDocAuthorityLevelFilter<$PrismaModel> | $Enums.DocAuthorityLevel
  }

  export type NestedEnumDocLifecycleStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.DocLifecycleStatus | EnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DocLifecycleStatus[] | ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocLifecycleStatus[] | ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDocLifecycleStatusFilter<$PrismaModel> | $Enums.DocLifecycleStatus
  }

  export type NestedEnumDocTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.DocType | EnumDocTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DocType[] | ListEnumDocTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocType[] | ListEnumDocTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDocTypeFilter<$PrismaModel> | $Enums.DocType
  }

  export type NestedEnumDocAuthorityLevelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DocAuthorityLevel | EnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    in?: $Enums.DocAuthorityLevel[] | ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocAuthorityLevel[] | ListEnumDocAuthorityLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumDocAuthorityLevelWithAggregatesFilter<$PrismaModel> | $Enums.DocAuthorityLevel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDocAuthorityLevelFilter<$PrismaModel>
    _max?: NestedEnumDocAuthorityLevelFilter<$PrismaModel>
  }

  export type NestedEnumDocLifecycleStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DocLifecycleStatus | EnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DocLifecycleStatus[] | ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocLifecycleStatus[] | ListEnumDocLifecycleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDocLifecycleStatusWithAggregatesFilter<$PrismaModel> | $Enums.DocLifecycleStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDocLifecycleStatusFilter<$PrismaModel>
    _max?: NestedEnumDocLifecycleStatusFilter<$PrismaModel>
  }

  export type NestedEnumDocTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DocType | EnumDocTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DocType[] | ListEnumDocTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DocType[] | ListEnumDocTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDocTypeWithAggregatesFilter<$PrismaModel> | $Enums.DocType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDocTypeFilter<$PrismaModel>
    _max?: NestedEnumDocTypeFilter<$PrismaModel>
  }

  export type NestedEnumRagflowSourceTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.RagflowSourceType | EnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RagflowSourceType[] | ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RagflowSourceType[] | ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRagflowSourceTypeFilter<$PrismaModel> | $Enums.RagflowSourceType
  }

  export type NestedEnumSyncStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SyncStatus | EnumSyncStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SyncStatus[] | ListEnumSyncStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SyncStatus[] | ListEnumSyncStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSyncStatusFilter<$PrismaModel> | $Enums.SyncStatus
  }

  export type NestedEnumRagflowSourceTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RagflowSourceType | EnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RagflowSourceType[] | ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RagflowSourceType[] | ListEnumRagflowSourceTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRagflowSourceTypeWithAggregatesFilter<$PrismaModel> | $Enums.RagflowSourceType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRagflowSourceTypeFilter<$PrismaModel>
    _max?: NestedEnumRagflowSourceTypeFilter<$PrismaModel>
  }

  export type NestedEnumSyncStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SyncStatus | EnumSyncStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SyncStatus[] | ListEnumSyncStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SyncStatus[] | ListEnumSyncStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSyncStatusWithAggregatesFilter<$PrismaModel> | $Enums.SyncStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSyncStatusFilter<$PrismaModel>
    _max?: NestedEnumSyncStatusFilter<$PrismaModel>
  }

  export type NestedEnumQAFeedbackNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.QAFeedback | EnumQAFeedbackFieldRefInput<$PrismaModel> | null
    in?: $Enums.QAFeedback[] | ListEnumQAFeedbackFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.QAFeedback[] | ListEnumQAFeedbackFieldRefInput<$PrismaModel> | null
    not?: NestedEnumQAFeedbackNullableFilter<$PrismaModel> | $Enums.QAFeedback | null
  }

  export type NestedEnumQAFeedbackNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.QAFeedback | EnumQAFeedbackFieldRefInput<$PrismaModel> | null
    in?: $Enums.QAFeedback[] | ListEnumQAFeedbackFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.QAFeedback[] | ListEnumQAFeedbackFieldRefInput<$PrismaModel> | null
    not?: NestedEnumQAFeedbackNullableWithAggregatesFilter<$PrismaModel> | $Enums.QAFeedback | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumQAFeedbackNullableFilter<$PrismaModel>
    _max?: NestedEnumQAFeedbackNullableFilter<$PrismaModel>
  }

  export type NestedEnumSearchTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.SearchType | EnumSearchTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SearchType[] | ListEnumSearchTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SearchType[] | ListEnumSearchTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSearchTypeFilter<$PrismaModel> | $Enums.SearchType
  }

  export type NestedEnumSearchTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SearchType | EnumSearchTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SearchType[] | ListEnumSearchTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SearchType[] | ListEnumSearchTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSearchTypeWithAggregatesFilter<$PrismaModel> | $Enums.SearchType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSearchTypeFilter<$PrismaModel>
    _max?: NestedEnumSearchTypeFilter<$PrismaModel>
  }

  export type NestedEnumLikeTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.LikeType | EnumLikeTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LikeType[] | ListEnumLikeTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LikeType[] | ListEnumLikeTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLikeTypeFilter<$PrismaModel> | $Enums.LikeType
  }

  export type NestedEnumLikeTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LikeType | EnumLikeTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LikeType[] | ListEnumLikeTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LikeType[] | ListEnumLikeTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLikeTypeWithAggregatesFilter<$PrismaModel> | $Enums.LikeType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLikeTypeFilter<$PrismaModel>
    _max?: NestedEnumLikeTypeFilter<$PrismaModel>
  }

  export type NestedEnumSyncItemStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SyncItemStatus | EnumSyncItemStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SyncItemStatus[] | ListEnumSyncItemStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SyncItemStatus[] | ListEnumSyncItemStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSyncItemStatusFilter<$PrismaModel> | $Enums.SyncItemStatus
  }

  export type NestedEnumSyncItemStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SyncItemStatus | EnumSyncItemStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SyncItemStatus[] | ListEnumSyncItemStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SyncItemStatus[] | ListEnumSyncItemStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSyncItemStatusWithAggregatesFilter<$PrismaModel> | $Enums.SyncItemStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSyncItemStatusFilter<$PrismaModel>
    _max?: NestedEnumSyncItemStatusFilter<$PrismaModel>
  }

  export type NestedEnumLogLevelFilter<$PrismaModel = never> = {
    equals?: $Enums.LogLevel | EnumLogLevelFieldRefInput<$PrismaModel>
    in?: $Enums.LogLevel[] | ListEnumLogLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogLevel[] | ListEnumLogLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumLogLevelFilter<$PrismaModel> | $Enums.LogLevel
  }

  export type NestedEnumLogLevelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogLevel | EnumLogLevelFieldRefInput<$PrismaModel>
    in?: $Enums.LogLevel[] | ListEnumLogLevelFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogLevel[] | ListEnumLogLevelFieldRefInput<$PrismaModel>
    not?: NestedEnumLogLevelWithAggregatesFilter<$PrismaModel> | $Enums.LogLevel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogLevelFilter<$PrismaModel>
    _max?: NestedEnumLogLevelFilter<$PrismaModel>
  }

  export type NestedEnumLogAlertTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertType | EnumLogAlertTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertType[] | ListEnumLogAlertTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertType[] | ListEnumLogAlertTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertTypeFilter<$PrismaModel> | $Enums.LogAlertType
  }

  export type NestedEnumLogAlertSeverityFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertSeverity | EnumLogAlertSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertSeverity[] | ListEnumLogAlertSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertSeverity[] | ListEnumLogAlertSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertSeverityFilter<$PrismaModel> | $Enums.LogAlertSeverity
  }

  export type NestedEnumLogAlertStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertStatus | EnumLogAlertStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertStatus[] | ListEnumLogAlertStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertStatus[] | ListEnumLogAlertStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertStatusFilter<$PrismaModel> | $Enums.LogAlertStatus
  }

  export type NestedEnumLogAlertTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertType | EnumLogAlertTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertType[] | ListEnumLogAlertTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertType[] | ListEnumLogAlertTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertTypeWithAggregatesFilter<$PrismaModel> | $Enums.LogAlertType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogAlertTypeFilter<$PrismaModel>
    _max?: NestedEnumLogAlertTypeFilter<$PrismaModel>
  }

  export type NestedEnumLogAlertSeverityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertSeverity | EnumLogAlertSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertSeverity[] | ListEnumLogAlertSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertSeverity[] | ListEnumLogAlertSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertSeverityWithAggregatesFilter<$PrismaModel> | $Enums.LogAlertSeverity
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogAlertSeverityFilter<$PrismaModel>
    _max?: NestedEnumLogAlertSeverityFilter<$PrismaModel>
  }

  export type NestedEnumLogAlertStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogAlertStatus | EnumLogAlertStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LogAlertStatus[] | ListEnumLogAlertStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogAlertStatus[] | ListEnumLogAlertStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLogAlertStatusWithAggregatesFilter<$PrismaModel> | $Enums.LogAlertStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogAlertStatusFilter<$PrismaModel>
    _max?: NestedEnumLogAlertStatusFilter<$PrismaModel>
  }

  export type NestedEnumCustomerTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.CustomerType | EnumCustomerTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CustomerType[] | ListEnumCustomerTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CustomerType[] | ListEnumCustomerTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType
  }

  export type NestedDecimalNullableFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel> | null
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalNullableFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string | null
  }

  export type NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CustomerType | EnumCustomerTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CustomerType[] | ListEnumCustomerTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CustomerType[] | ListEnumCustomerTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCustomerTypeFilter<$PrismaModel>
    _max?: NestedEnumCustomerTypeFilter<$PrismaModel>
  }

  export type NestedDecimalNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel> | null
    in?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    notIn?: Decimal[] | DecimalJsLike[] | number[] | string[] | ListDecimalFieldRefInput<$PrismaModel> | null
    lt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    lte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gt?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    gte?: Decimal | DecimalJsLike | number | string | DecimalFieldRefInput<$PrismaModel>
    not?: NestedDecimalNullableWithAggregatesFilter<$PrismaModel> | Decimal | DecimalJsLike | number | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedDecimalNullableFilter<$PrismaModel>
    _sum?: NestedDecimalNullableFilter<$PrismaModel>
    _min?: NestedDecimalNullableFilter<$PrismaModel>
    _max?: NestedDecimalNullableFilter<$PrismaModel>
  }

  export type NestedEnumSupplierTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.SupplierType | EnumSupplierTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SupplierType[] | ListEnumSupplierTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SupplierType[] | ListEnumSupplierTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSupplierTypeFilter<$PrismaModel> | $Enums.SupplierType
  }

  export type NestedEnumSupplierTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SupplierType | EnumSupplierTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SupplierType[] | ListEnumSupplierTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SupplierType[] | ListEnumSupplierTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSupplierTypeWithAggregatesFilter<$PrismaModel> | $Enums.SupplierType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSupplierTypeFilter<$PrismaModel>
    _max?: NestedEnumSupplierTypeFilter<$PrismaModel>
  }

  export type NestedEnumPartnerRoleFilter<$PrismaModel = never> = {
    equals?: $Enums.PartnerRole | EnumPartnerRoleFieldRefInput<$PrismaModel>
    in?: $Enums.PartnerRole[] | ListEnumPartnerRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.PartnerRole[] | ListEnumPartnerRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumPartnerRoleFilter<$PrismaModel> | $Enums.PartnerRole
  }

  export type NestedEnumPartnerRoleWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PartnerRole | EnumPartnerRoleFieldRefInput<$PrismaModel>
    in?: $Enums.PartnerRole[] | ListEnumPartnerRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.PartnerRole[] | ListEnumPartnerRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumPartnerRoleWithAggregatesFilter<$PrismaModel> | $Enums.PartnerRole
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPartnerRoleFilter<$PrismaModel>
    _max?: NestedEnumPartnerRoleFilter<$PrismaModel>
  }

  export type NestedEnumLocationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.LocationType | EnumLocationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LocationType[] | ListEnumLocationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LocationType[] | ListEnumLocationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLocationTypeFilter<$PrismaModel> | $Enums.LocationType
  }

  export type NestedEnumLocationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LocationType | EnumLocationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LocationType[] | ListEnumLocationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LocationType[] | ListEnumLocationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLocationTypeWithAggregatesFilter<$PrismaModel> | $Enums.LocationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLocationTypeFilter<$PrismaModel>
    _max?: NestedEnumLocationTypeFilter<$PrismaModel>
  }

  export type NestedEnumMeetingTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingType | EnumMeetingTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MeetingType[] | ListEnumMeetingTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MeetingType[] | ListEnumMeetingTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMeetingTypeFilter<$PrismaModel> | $Enums.MeetingType
  }

  export type NestedEnumMeetingStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingStatus | EnumMeetingStatusFieldRefInput<$PrismaModel>
    in?: $Enums.MeetingStatus[] | ListEnumMeetingStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.MeetingStatus[] | ListEnumMeetingStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumMeetingStatusFilter<$PrismaModel> | $Enums.MeetingStatus
  }

  export type NestedEnumMeetingTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingType | EnumMeetingTypeFieldRefInput<$PrismaModel>
    in?: $Enums.MeetingType[] | ListEnumMeetingTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.MeetingType[] | ListEnumMeetingTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumMeetingTypeWithAggregatesFilter<$PrismaModel> | $Enums.MeetingType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMeetingTypeFilter<$PrismaModel>
    _max?: NestedEnumMeetingTypeFilter<$PrismaModel>
  }

  export type NestedEnumMeetingStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingStatus | EnumMeetingStatusFieldRefInput<$PrismaModel>
    in?: $Enums.MeetingStatus[] | ListEnumMeetingStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.MeetingStatus[] | ListEnumMeetingStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumMeetingStatusWithAggregatesFilter<$PrismaModel> | $Enums.MeetingStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumMeetingStatusFilter<$PrismaModel>
    _max?: NestedEnumMeetingStatusFilter<$PrismaModel>
  }

  export type NestedEnumRecurrencePatternFilter<$PrismaModel = never> = {
    equals?: $Enums.RecurrencePattern | EnumRecurrencePatternFieldRefInput<$PrismaModel>
    in?: $Enums.RecurrencePattern[] | ListEnumRecurrencePatternFieldRefInput<$PrismaModel>
    notIn?: $Enums.RecurrencePattern[] | ListEnumRecurrencePatternFieldRefInput<$PrismaModel>
    not?: NestedEnumRecurrencePatternFilter<$PrismaModel> | $Enums.RecurrencePattern
  }

  export type NestedEnumRecurrencePatternWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RecurrencePattern | EnumRecurrencePatternFieldRefInput<$PrismaModel>
    in?: $Enums.RecurrencePattern[] | ListEnumRecurrencePatternFieldRefInput<$PrismaModel>
    notIn?: $Enums.RecurrencePattern[] | ListEnumRecurrencePatternFieldRefInput<$PrismaModel>
    not?: NestedEnumRecurrencePatternWithAggregatesFilter<$PrismaModel> | $Enums.RecurrencePattern
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRecurrencePatternFilter<$PrismaModel>
    _max?: NestedEnumRecurrencePatternFilter<$PrismaModel>
  }

  export type NestedEnumAttendanceStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceStatus | EnumAttendanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AttendanceStatus[] | ListEnumAttendanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendanceStatus[] | ListEnumAttendanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendanceStatusFilter<$PrismaModel> | $Enums.AttendanceStatus
  }

  export type NestedEnumCheckinTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.CheckinType | EnumCheckinTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.CheckinType[] | ListEnumCheckinTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.CheckinType[] | ListEnumCheckinTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumCheckinTypeNullableFilter<$PrismaModel> | $Enums.CheckinType | null
  }

  export type NestedEnumAttendanceStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceStatus | EnumAttendanceStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AttendanceStatus[] | ListEnumAttendanceStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendanceStatus[] | ListEnumAttendanceStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendanceStatusWithAggregatesFilter<$PrismaModel> | $Enums.AttendanceStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAttendanceStatusFilter<$PrismaModel>
    _max?: NestedEnumAttendanceStatusFilter<$PrismaModel>
  }

  export type NestedEnumCheckinTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CheckinType | EnumCheckinTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.CheckinType[] | ListEnumCheckinTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.CheckinType[] | ListEnumCheckinTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumCheckinTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.CheckinType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumCheckinTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumCheckinTypeNullableFilter<$PrismaModel>
  }

  export type NestedEnumAttendeeRoleFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendeeRole | EnumAttendeeRoleFieldRefInput<$PrismaModel>
    in?: $Enums.AttendeeRole[] | ListEnumAttendeeRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendeeRole[] | ListEnumAttendeeRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendeeRoleFilter<$PrismaModel> | $Enums.AttendeeRole
  }

  export type NestedEnumAttendanceModeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceMode | EnumAttendanceModeFieldRefInput<$PrismaModel> | null
    in?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAttendanceModeNullableFilter<$PrismaModel> | $Enums.AttendanceMode | null
  }

  export type NestedEnumAttendeeRoleWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendeeRole | EnumAttendeeRoleFieldRefInput<$PrismaModel>
    in?: $Enums.AttendeeRole[] | ListEnumAttendeeRoleFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendeeRole[] | ListEnumAttendeeRoleFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendeeRoleWithAggregatesFilter<$PrismaModel> | $Enums.AttendeeRole
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAttendeeRoleFilter<$PrismaModel>
    _max?: NestedEnumAttendeeRoleFilter<$PrismaModel>
  }

  export type NestedEnumAttendanceModeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceMode | EnumAttendanceModeFieldRefInput<$PrismaModel> | null
    in?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumAttendanceModeNullableWithAggregatesFilter<$PrismaModel> | $Enums.AttendanceMode | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumAttendanceModeNullableFilter<$PrismaModel>
    _max?: NestedEnumAttendanceModeNullableFilter<$PrismaModel>
  }

  export type NestedEnumAttendanceModeFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceMode | EnumAttendanceModeFieldRefInput<$PrismaModel>
    in?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendanceModeFilter<$PrismaModel> | $Enums.AttendanceMode
  }

  export type NestedEnumAttendanceModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AttendanceMode | EnumAttendanceModeFieldRefInput<$PrismaModel>
    in?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.AttendanceMode[] | ListEnumAttendanceModeFieldRefInput<$PrismaModel>
    not?: NestedEnumAttendanceModeWithAggregatesFilter<$PrismaModel> | $Enums.AttendanceMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAttendanceModeFilter<$PrismaModel>
    _max?: NestedEnumAttendanceModeFilter<$PrismaModel>
  }

  export type NestedEnumLeaveTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.LeaveType | EnumLeaveTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LeaveType[] | ListEnumLeaveTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LeaveType[] | ListEnumLeaveTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLeaveTypeFilter<$PrismaModel> | $Enums.LeaveType
  }

  export type NestedEnumLeaveStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.LeaveStatus | EnumLeaveStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LeaveStatus[] | ListEnumLeaveStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LeaveStatus[] | ListEnumLeaveStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLeaveStatusFilter<$PrismaModel> | $Enums.LeaveStatus
  }

  export type NestedEnumLeaveTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LeaveType | EnumLeaveTypeFieldRefInput<$PrismaModel>
    in?: $Enums.LeaveType[] | ListEnumLeaveTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.LeaveType[] | ListEnumLeaveTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumLeaveTypeWithAggregatesFilter<$PrismaModel> | $Enums.LeaveType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLeaveTypeFilter<$PrismaModel>
    _max?: NestedEnumLeaveTypeFilter<$PrismaModel>
  }

  export type NestedEnumLeaveStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LeaveStatus | EnumLeaveStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LeaveStatus[] | ListEnumLeaveStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LeaveStatus[] | ListEnumLeaveStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLeaveStatusWithAggregatesFilter<$PrismaModel> | $Enums.LeaveStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLeaveStatusFilter<$PrismaModel>
    _max?: NestedEnumLeaveStatusFilter<$PrismaModel>
  }

  export type NestedEnumOutlookMailboxTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookMailboxType | EnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookMailboxType[] | ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookMailboxType[] | ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookMailboxTypeFilter<$PrismaModel> | $Enums.OutlookMailboxType
  }

  export type NestedEnumOutlookMailboxTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookMailboxType | EnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookMailboxType[] | ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookMailboxType[] | ListEnumOutlookMailboxTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookMailboxTypeWithAggregatesFilter<$PrismaModel> | $Enums.OutlookMailboxType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOutlookMailboxTypeFilter<$PrismaModel>
    _max?: NestedEnumOutlookMailboxTypeFilter<$PrismaModel>
  }

  export type NestedEnumOutlookSubscriptionStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookSubscriptionStatus | EnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookSubscriptionStatus[] | ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookSubscriptionStatus[] | ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookSubscriptionStatusFilter<$PrismaModel> | $Enums.OutlookSubscriptionStatus
  }

  export type NestedEnumOutlookSubscriptionStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookSubscriptionStatus | EnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookSubscriptionStatus[] | ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookSubscriptionStatus[] | ListEnumOutlookSubscriptionStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookSubscriptionStatusWithAggregatesFilter<$PrismaModel> | $Enums.OutlookSubscriptionStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOutlookSubscriptionStatusFilter<$PrismaModel>
    _max?: NestedEnumOutlookSubscriptionStatusFilter<$PrismaModel>
  }

  export type NestedEnumOutlookManageStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookManageStatus | EnumOutlookManageStatusFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookManageStatus[] | ListEnumOutlookManageStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookManageStatus[] | ListEnumOutlookManageStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookManageStatusFilter<$PrismaModel> | $Enums.OutlookManageStatus
  }

  export type NestedEnumOutlookBootstrapStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookBootstrapStatus | EnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.OutlookBootstrapStatus[] | ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.OutlookBootstrapStatus[] | ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumOutlookBootstrapStatusNullableFilter<$PrismaModel> | $Enums.OutlookBootstrapStatus | null
  }

  export type NestedEnumOutlookCancellationSourceNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookCancellationSource | EnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    in?: $Enums.OutlookCancellationSource[] | ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.OutlookCancellationSource[] | ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    not?: NestedEnumOutlookCancellationSourceNullableFilter<$PrismaModel> | $Enums.OutlookCancellationSource | null
  }

  export type NestedEnumOutlookBindingSyncModeFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookBindingSyncMode | EnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookBindingSyncMode[] | ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookBindingSyncMode[] | ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookBindingSyncModeFilter<$PrismaModel> | $Enums.OutlookBindingSyncMode
  }

  export type NestedEnumOutlookManageStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookManageStatus | EnumOutlookManageStatusFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookManageStatus[] | ListEnumOutlookManageStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookManageStatus[] | ListEnumOutlookManageStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookManageStatusWithAggregatesFilter<$PrismaModel> | $Enums.OutlookManageStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOutlookManageStatusFilter<$PrismaModel>
    _max?: NestedEnumOutlookManageStatusFilter<$PrismaModel>
  }

  export type NestedEnumOutlookBootstrapStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookBootstrapStatus | EnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.OutlookBootstrapStatus[] | ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.OutlookBootstrapStatus[] | ListEnumOutlookBootstrapStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumOutlookBootstrapStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.OutlookBootstrapStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumOutlookBootstrapStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumOutlookBootstrapStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumOutlookCancellationSourceNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookCancellationSource | EnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    in?: $Enums.OutlookCancellationSource[] | ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.OutlookCancellationSource[] | ListEnumOutlookCancellationSourceFieldRefInput<$PrismaModel> | null
    not?: NestedEnumOutlookCancellationSourceNullableWithAggregatesFilter<$PrismaModel> | $Enums.OutlookCancellationSource | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumOutlookCancellationSourceNullableFilter<$PrismaModel>
    _max?: NestedEnumOutlookCancellationSourceNullableFilter<$PrismaModel>
  }

  export type NestedEnumOutlookBindingSyncModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.OutlookBindingSyncMode | EnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    in?: $Enums.OutlookBindingSyncMode[] | ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.OutlookBindingSyncMode[] | ListEnumOutlookBindingSyncModeFieldRefInput<$PrismaModel>
    not?: NestedEnumOutlookBindingSyncModeWithAggregatesFilter<$PrismaModel> | $Enums.OutlookBindingSyncMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumOutlookBindingSyncModeFilter<$PrismaModel>
    _max?: NestedEnumOutlookBindingSyncModeFilter<$PrismaModel>
  }

  export type NestedEnumUploadTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.UploadTaskStatus | EnumUploadTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.UploadTaskStatus[] | ListEnumUploadTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.UploadTaskStatus[] | ListEnumUploadTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumUploadTaskStatusFilter<$PrismaModel> | $Enums.UploadTaskStatus
  }

  export type NestedEnumUploadTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.UploadTaskStatus | EnumUploadTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.UploadTaskStatus[] | ListEnumUploadTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.UploadTaskStatus[] | ListEnumUploadTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumUploadTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.UploadTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumUploadTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumUploadTaskStatusFilter<$PrismaModel>
  }

  export type NestedEnumMeetingAttachmentCategoryNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingAttachmentCategory | EnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    in?: $Enums.MeetingAttachmentCategory[] | ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.MeetingAttachmentCategory[] | ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    not?: NestedEnumMeetingAttachmentCategoryNullableFilter<$PrismaModel> | $Enums.MeetingAttachmentCategory | null
  }

  export type NestedEnumMeetingAttachmentCategoryNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.MeetingAttachmentCategory | EnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    in?: $Enums.MeetingAttachmentCategory[] | ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.MeetingAttachmentCategory[] | ListEnumMeetingAttachmentCategoryFieldRefInput<$PrismaModel> | null
    not?: NestedEnumMeetingAttachmentCategoryNullableWithAggregatesFilter<$PrismaModel> | $Enums.MeetingAttachmentCategory | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumMeetingAttachmentCategoryNullableFilter<$PrismaModel>
    _max?: NestedEnumMeetingAttachmentCategoryNullableFilter<$PrismaModel>
  }

  export type NestedEnumNotificationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationType | EnumNotificationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationType[] | ListEnumNotificationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationType[] | ListEnumNotificationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationTypeFilter<$PrismaModel> | $Enums.NotificationType
  }

  export type NestedEnumNotificationStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationStatus | EnumNotificationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationStatus[] | ListEnumNotificationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationStatus[] | ListEnumNotificationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationStatusFilter<$PrismaModel> | $Enums.NotificationStatus
  }

  export type NestedEnumNotificationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationType | EnumNotificationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationType[] | ListEnumNotificationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationType[] | ListEnumNotificationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationTypeWithAggregatesFilter<$PrismaModel> | $Enums.NotificationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationTypeFilter<$PrismaModel>
    _max?: NestedEnumNotificationTypeFilter<$PrismaModel>
  }

  export type NestedEnumNotificationStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationStatus | EnumNotificationStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationStatus[] | ListEnumNotificationStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationStatus[] | ListEnumNotificationStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationStatusWithAggregatesFilter<$PrismaModel> | $Enums.NotificationStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationStatusFilter<$PrismaModel>
    _max?: NestedEnumNotificationStatusFilter<$PrismaModel>
  }

  export type NestedEnumNotificationChannelFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationChannel | EnumNotificationChannelFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationChannel[] | ListEnumNotificationChannelFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationChannel[] | ListEnumNotificationChannelFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationChannelFilter<$PrismaModel> | $Enums.NotificationChannel
  }

  export type NestedEnumNotificationPriorityFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationPriority | EnumNotificationPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationPriority[] | ListEnumNotificationPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationPriority[] | ListEnumNotificationPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationPriorityFilter<$PrismaModel> | $Enums.NotificationPriority
  }

  export type NestedEnumNotificationChannelWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationChannel | EnumNotificationChannelFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationChannel[] | ListEnumNotificationChannelFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationChannel[] | ListEnumNotificationChannelFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationChannelWithAggregatesFilter<$PrismaModel> | $Enums.NotificationChannel
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationChannelFilter<$PrismaModel>
    _max?: NestedEnumNotificationChannelFilter<$PrismaModel>
  }

  export type NestedEnumNotificationPriorityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationPriority | EnumNotificationPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationPriority[] | ListEnumNotificationPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationPriority[] | ListEnumNotificationPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationPriorityWithAggregatesFilter<$PrismaModel> | $Enums.NotificationPriority
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationPriorityFilter<$PrismaModel>
    _max?: NestedEnumNotificationPriorityFilter<$PrismaModel>
  }

  export type NestedEnumNotificationSendStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationSendStatus | EnumNotificationSendStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationSendStatus[] | ListEnumNotificationSendStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationSendStatus[] | ListEnumNotificationSendStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationSendStatusFilter<$PrismaModel> | $Enums.NotificationSendStatus
  }

  export type NestedEnumNotificationSendStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.NotificationSendStatus | EnumNotificationSendStatusFieldRefInput<$PrismaModel>
    in?: $Enums.NotificationSendStatus[] | ListEnumNotificationSendStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.NotificationSendStatus[] | ListEnumNotificationSendStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumNotificationSendStatusWithAggregatesFilter<$PrismaModel> | $Enums.NotificationSendStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumNotificationSendStatusFilter<$PrismaModel>
    _max?: NestedEnumNotificationSendStatusFilter<$PrismaModel>
  }

  export type NestedEnumM365UserActivityChangeFieldFilter<$PrismaModel = never> = {
    equals?: $Enums.M365UserActivityChangeField | EnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    in?: $Enums.M365UserActivityChangeField[] | ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    notIn?: $Enums.M365UserActivityChangeField[] | ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    not?: NestedEnumM365UserActivityChangeFieldFilter<$PrismaModel> | $Enums.M365UserActivityChangeField
  }

  export type NestedEnumM365UserActivityChangeFieldWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.M365UserActivityChangeField | EnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    in?: $Enums.M365UserActivityChangeField[] | ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    notIn?: $Enums.M365UserActivityChangeField[] | ListEnumM365UserActivityChangeFieldFieldRefInput<$PrismaModel>
    not?: NestedEnumM365UserActivityChangeFieldWithAggregatesFilter<$PrismaModel> | $Enums.M365UserActivityChangeField
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumM365UserActivityChangeFieldFilter<$PrismaModel>
    _max?: NestedEnumM365UserActivityChangeFieldFilter<$PrismaModel>
  }

  export type NestedEnumCycleTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.CycleType | EnumCycleTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CycleType[] | ListEnumCycleTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CycleType[] | ListEnumCycleTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCycleTypeFilter<$PrismaModel> | $Enums.CycleType
  }

  export type NestedEnumCycleStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.CycleStatus | EnumCycleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CycleStatus[] | ListEnumCycleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CycleStatus[] | ListEnumCycleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCycleStatusFilter<$PrismaModel> | $Enums.CycleStatus
  }

  export type NestedEnumCycleTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CycleType | EnumCycleTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CycleType[] | ListEnumCycleTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CycleType[] | ListEnumCycleTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCycleTypeWithAggregatesFilter<$PrismaModel> | $Enums.CycleType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCycleTypeFilter<$PrismaModel>
    _max?: NestedEnumCycleTypeFilter<$PrismaModel>
  }

  export type NestedEnumCycleStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CycleStatus | EnumCycleStatusFieldRefInput<$PrismaModel>
    in?: $Enums.CycleStatus[] | ListEnumCycleStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.CycleStatus[] | ListEnumCycleStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumCycleStatusWithAggregatesFilter<$PrismaModel> | $Enums.CycleStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCycleStatusFilter<$PrismaModel>
    _max?: NestedEnumCycleStatusFilter<$PrismaModel>
  }

  export type NestedEnumResultConfirmStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ResultConfirmStatus | EnumResultConfirmStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ResultConfirmStatus[] | ListEnumResultConfirmStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ResultConfirmStatus[] | ListEnumResultConfirmStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumResultConfirmStatusFilter<$PrismaModel> | $Enums.ResultConfirmStatus
  }

  export type NestedEnumResultConfirmStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ResultConfirmStatus | EnumResultConfirmStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ResultConfirmStatus[] | ListEnumResultConfirmStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ResultConfirmStatus[] | ListEnumResultConfirmStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumResultConfirmStatusWithAggregatesFilter<$PrismaModel> | $Enums.ResultConfirmStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumResultConfirmStatusFilter<$PrismaModel>
    _max?: NestedEnumResultConfirmStatusFilter<$PrismaModel>
  }

  export type NestedEnumKpiAssignmentStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiAssignmentStatus | EnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiAssignmentStatus[] | ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiAssignmentStatus[] | ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiAssignmentStatusFilter<$PrismaModel> | $Enums.KpiAssignmentStatus
  }

  export type NestedEnumKpiAssignmentStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiAssignmentStatus | EnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiAssignmentStatus[] | ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiAssignmentStatus[] | ListEnumKpiAssignmentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiAssignmentStatusWithAggregatesFilter<$PrismaModel> | $Enums.KpiAssignmentStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumKpiAssignmentStatusFilter<$PrismaModel>
    _max?: NestedEnumKpiAssignmentStatusFilter<$PrismaModel>
  }

  export type NestedEnumKpiDependencyStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiDependencyStatus | EnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiDependencyStatus[] | ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiDependencyStatus[] | ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiDependencyStatusFilter<$PrismaModel> | $Enums.KpiDependencyStatus
  }

  export type NestedEnumKpiDependencyStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiDependencyStatus | EnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiDependencyStatus[] | ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiDependencyStatus[] | ListEnumKpiDependencyStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiDependencyStatusWithAggregatesFilter<$PrismaModel> | $Enums.KpiDependencyStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumKpiDependencyStatusFilter<$PrismaModel>
    _max?: NestedEnumKpiDependencyStatusFilter<$PrismaModel>
  }

  export type NestedEnumKpiAssessmentStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiAssessmentStatus | EnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiAssessmentStatus[] | ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiAssessmentStatus[] | ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiAssessmentStatusFilter<$PrismaModel> | $Enums.KpiAssessmentStatus
  }

  export type NestedEnumKpiAssessmentStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.KpiAssessmentStatus | EnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.KpiAssessmentStatus[] | ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.KpiAssessmentStatus[] | ListEnumKpiAssessmentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumKpiAssessmentStatusWithAggregatesFilter<$PrismaModel> | $Enums.KpiAssessmentStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumKpiAssessmentStatusFilter<$PrismaModel>
    _max?: NestedEnumKpiAssessmentStatusFilter<$PrismaModel>
  }

  export type NestedEnumEvaluation360StatusFilter<$PrismaModel = never> = {
    equals?: $Enums.Evaluation360Status | EnumEvaluation360StatusFieldRefInput<$PrismaModel>
    in?: $Enums.Evaluation360Status[] | ListEnumEvaluation360StatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.Evaluation360Status[] | ListEnumEvaluation360StatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEvaluation360StatusFilter<$PrismaModel> | $Enums.Evaluation360Status
  }

  export type NestedEnumEvaluation360StatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.Evaluation360Status | EnumEvaluation360StatusFieldRefInput<$PrismaModel>
    in?: $Enums.Evaluation360Status[] | ListEnumEvaluation360StatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.Evaluation360Status[] | ListEnumEvaluation360StatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEvaluation360StatusWithAggregatesFilter<$PrismaModel> | $Enums.Evaluation360Status
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumEvaluation360StatusFilter<$PrismaModel>
    _max?: NestedEnumEvaluation360StatusFilter<$PrismaModel>
  }

  export type NestedEnumRelationTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.RelationType | EnumRelationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RelationType[] | ListEnumRelationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RelationType[] | ListEnumRelationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRelationTypeFilter<$PrismaModel> | $Enums.RelationType
  }

  export type NestedEnumEvaluationTaskStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.EvaluationTaskStatus | EnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.EvaluationTaskStatus[] | ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.EvaluationTaskStatus[] | ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEvaluationTaskStatusFilter<$PrismaModel> | $Enums.EvaluationTaskStatus
  }

  export type NestedEnumRelationTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RelationType | EnumRelationTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RelationType[] | ListEnumRelationTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RelationType[] | ListEnumRelationTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRelationTypeWithAggregatesFilter<$PrismaModel> | $Enums.RelationType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRelationTypeFilter<$PrismaModel>
    _max?: NestedEnumRelationTypeFilter<$PrismaModel>
  }

  export type NestedEnumEvaluationTaskStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.EvaluationTaskStatus | EnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    in?: $Enums.EvaluationTaskStatus[] | ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.EvaluationTaskStatus[] | ListEnumEvaluationTaskStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumEvaluationTaskStatusWithAggregatesFilter<$PrismaModel> | $Enums.EvaluationTaskStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumEvaluationTaskStatusFilter<$PrismaModel>
    _max?: NestedEnumEvaluationTaskStatusFilter<$PrismaModel>
  }

  export type NestedEnumSiteGeoPolicyFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteGeoPolicy | EnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    in?: $Enums.SiteGeoPolicy[] | ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteGeoPolicy[] | ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteGeoPolicyFilter<$PrismaModel> | $Enums.SiteGeoPolicy
  }

  export type NestedEnumSiteCheckpointAccessModeFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteCheckpointAccessMode | EnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    in?: $Enums.SiteCheckpointAccessMode[] | ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteCheckpointAccessMode[] | ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteCheckpointAccessModeFilter<$PrismaModel> | $Enums.SiteCheckpointAccessMode
  }

  export type NestedEnumSiteGeoPolicyWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteGeoPolicy | EnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    in?: $Enums.SiteGeoPolicy[] | ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteGeoPolicy[] | ListEnumSiteGeoPolicyFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteGeoPolicyWithAggregatesFilter<$PrismaModel> | $Enums.SiteGeoPolicy
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteGeoPolicyFilter<$PrismaModel>
    _max?: NestedEnumSiteGeoPolicyFilter<$PrismaModel>
  }

  export type NestedEnumSiteCheckpointAccessModeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteCheckpointAccessMode | EnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    in?: $Enums.SiteCheckpointAccessMode[] | ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteCheckpointAccessMode[] | ListEnumSiteCheckpointAccessModeFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteCheckpointAccessModeWithAggregatesFilter<$PrismaModel> | $Enums.SiteCheckpointAccessMode
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteCheckpointAccessModeFilter<$PrismaModel>
    _max?: NestedEnumSiteCheckpointAccessModeFilter<$PrismaModel>
  }

  export type NestedEnumSiteEventTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteEventType | EnumSiteEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SiteEventType[] | ListEnumSiteEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteEventType[] | ListEnumSiteEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteEventTypeFilter<$PrismaModel> | $Enums.SiteEventType
  }

  export type NestedEnumSiteAuthMethodFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteAuthMethod | EnumSiteAuthMethodFieldRefInput<$PrismaModel>
    in?: $Enums.SiteAuthMethod[] | ListEnumSiteAuthMethodFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteAuthMethod[] | ListEnumSiteAuthMethodFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteAuthMethodFilter<$PrismaModel> | $Enums.SiteAuthMethod
  }

  export type NestedEnumSiteGeoStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteGeoStatus | EnumSiteGeoStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SiteGeoStatus[] | ListEnumSiteGeoStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteGeoStatus[] | ListEnumSiteGeoStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteGeoStatusFilter<$PrismaModel> | $Enums.SiteGeoStatus
  }

  export type NestedEnumSiteEventTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteEventType | EnumSiteEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SiteEventType[] | ListEnumSiteEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteEventType[] | ListEnumSiteEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteEventTypeWithAggregatesFilter<$PrismaModel> | $Enums.SiteEventType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteEventTypeFilter<$PrismaModel>
    _max?: NestedEnumSiteEventTypeFilter<$PrismaModel>
  }

  export type NestedEnumSiteAuthMethodWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteAuthMethod | EnumSiteAuthMethodFieldRefInput<$PrismaModel>
    in?: $Enums.SiteAuthMethod[] | ListEnumSiteAuthMethodFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteAuthMethod[] | ListEnumSiteAuthMethodFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteAuthMethodWithAggregatesFilter<$PrismaModel> | $Enums.SiteAuthMethod
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteAuthMethodFilter<$PrismaModel>
    _max?: NestedEnumSiteAuthMethodFilter<$PrismaModel>
  }

  export type NestedEnumSiteGeoStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SiteGeoStatus | EnumSiteGeoStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SiteGeoStatus[] | ListEnumSiteGeoStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SiteGeoStatus[] | ListEnumSiteGeoStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSiteGeoStatusWithAggregatesFilter<$PrismaModel> | $Enums.SiteGeoStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSiteGeoStatusFilter<$PrismaModel>
    _max?: NestedEnumSiteGeoStatusFilter<$PrismaModel>
  }

  export type NestedEnumTicketPriorityFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketPriority | EnumTicketPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.TicketPriority[] | ListEnumTicketPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketPriority[] | ListEnumTicketPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketPriorityFilter<$PrismaModel> | $Enums.TicketPriority
  }

  export type NestedEnumTicketStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketStatus | EnumTicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.TicketStatus[] | ListEnumTicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketStatus[] | ListEnumTicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketStatusFilter<$PrismaModel> | $Enums.TicketStatus
  }

  export type NestedEnumTicketSourceFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketSource | EnumTicketSourceFieldRefInput<$PrismaModel>
    in?: $Enums.TicketSource[] | ListEnumTicketSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketSource[] | ListEnumTicketSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketSourceFilter<$PrismaModel> | $Enums.TicketSource
  }

  export type NestedEnumTicketPriorityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketPriority | EnumTicketPriorityFieldRefInput<$PrismaModel>
    in?: $Enums.TicketPriority[] | ListEnumTicketPriorityFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketPriority[] | ListEnumTicketPriorityFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketPriorityWithAggregatesFilter<$PrismaModel> | $Enums.TicketPriority
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumTicketPriorityFilter<$PrismaModel>
    _max?: NestedEnumTicketPriorityFilter<$PrismaModel>
  }

  export type NestedEnumTicketStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketStatus | EnumTicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.TicketStatus[] | ListEnumTicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketStatus[] | ListEnumTicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketStatusWithAggregatesFilter<$PrismaModel> | $Enums.TicketStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumTicketStatusFilter<$PrismaModel>
    _max?: NestedEnumTicketStatusFilter<$PrismaModel>
  }

  export type NestedEnumTicketSourceWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketSource | EnumTicketSourceFieldRefInput<$PrismaModel>
    in?: $Enums.TicketSource[] | ListEnumTicketSourceFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketSource[] | ListEnumTicketSourceFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketSourceWithAggregatesFilter<$PrismaModel> | $Enums.TicketSource
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumTicketSourceFilter<$PrismaModel>
    _max?: NestedEnumTicketSourceFilter<$PrismaModel>
  }

  export type NestedEnumCommentTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.CommentType | EnumCommentTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CommentType[] | ListEnumCommentTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CommentType[] | ListEnumCommentTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCommentTypeFilter<$PrismaModel> | $Enums.CommentType
  }

  export type NestedEnumVisibilityScopeFilter<$PrismaModel = never> = {
    equals?: $Enums.VisibilityScope | EnumVisibilityScopeFieldRefInput<$PrismaModel>
    in?: $Enums.VisibilityScope[] | ListEnumVisibilityScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.VisibilityScope[] | ListEnumVisibilityScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumVisibilityScopeFilter<$PrismaModel> | $Enums.VisibilityScope
  }

  export type NestedEnumCommentTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.CommentType | EnumCommentTypeFieldRefInput<$PrismaModel>
    in?: $Enums.CommentType[] | ListEnumCommentTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.CommentType[] | ListEnumCommentTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumCommentTypeWithAggregatesFilter<$PrismaModel> | $Enums.CommentType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumCommentTypeFilter<$PrismaModel>
    _max?: NestedEnumCommentTypeFilter<$PrismaModel>
  }

  export type NestedEnumVisibilityScopeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.VisibilityScope | EnumVisibilityScopeFieldRefInput<$PrismaModel>
    in?: $Enums.VisibilityScope[] | ListEnumVisibilityScopeFieldRefInput<$PrismaModel>
    notIn?: $Enums.VisibilityScope[] | ListEnumVisibilityScopeFieldRefInput<$PrismaModel>
    not?: NestedEnumVisibilityScopeWithAggregatesFilter<$PrismaModel> | $Enums.VisibilityScope
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumVisibilityScopeFilter<$PrismaModel>
    _max?: NestedEnumVisibilityScopeFilter<$PrismaModel>
  }

  export type NestedEnumActivityTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ActivityType | EnumActivityTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ActivityType[] | ListEnumActivityTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ActivityType[] | ListEnumActivityTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumActivityTypeFilter<$PrismaModel> | $Enums.ActivityType
  }

  export type NestedEnumActivityTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ActivityType | EnumActivityTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ActivityType[] | ListEnumActivityTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ActivityType[] | ListEnumActivityTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumActivityTypeWithAggregatesFilter<$PrismaModel> | $Enums.ActivityType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumActivityTypeFilter<$PrismaModel>
    _max?: NestedEnumActivityTypeFilter<$PrismaModel>
  }

  export type NestedEnumAssignmentStrategyFilter<$PrismaModel = never> = {
    equals?: $Enums.AssignmentStrategy | EnumAssignmentStrategyFieldRefInput<$PrismaModel>
    in?: $Enums.AssignmentStrategy[] | ListEnumAssignmentStrategyFieldRefInput<$PrismaModel>
    notIn?: $Enums.AssignmentStrategy[] | ListEnumAssignmentStrategyFieldRefInput<$PrismaModel>
    not?: NestedEnumAssignmentStrategyFilter<$PrismaModel> | $Enums.AssignmentStrategy
  }

  export type NestedEnumAssignmentStrategyWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AssignmentStrategy | EnumAssignmentStrategyFieldRefInput<$PrismaModel>
    in?: $Enums.AssignmentStrategy[] | ListEnumAssignmentStrategyFieldRefInput<$PrismaModel>
    notIn?: $Enums.AssignmentStrategy[] | ListEnumAssignmentStrategyFieldRefInput<$PrismaModel>
    not?: NestedEnumAssignmentStrategyWithAggregatesFilter<$PrismaModel> | $Enums.AssignmentStrategy
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAssignmentStrategyFilter<$PrismaModel>
    _max?: NestedEnumAssignmentStrategyFilter<$PrismaModel>
  }

  export type NestedEnumRobotUsageTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotUsageType | EnumRobotUsageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotUsageTypeFilter<$PrismaModel> | $Enums.RobotUsageType
  }

  export type NestedEnumRobotDisposalTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotDisposalType | EnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotDisposalType[] | ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotDisposalType[] | ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotDisposalTypeNullableFilter<$PrismaModel> | $Enums.RobotDisposalType | null
  }

  export type NestedEnumRobotUsageTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotUsageType | EnumRobotUsageTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotUsageTypeWithAggregatesFilter<$PrismaModel> | $Enums.RobotUsageType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRobotUsageTypeFilter<$PrismaModel>
    _max?: NestedEnumRobotUsageTypeFilter<$PrismaModel>
  }

  export type NestedEnumRobotDisposalTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotDisposalType | EnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotDisposalType[] | ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotDisposalType[] | ListEnumRobotDisposalTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotDisposalTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotDisposalType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotDisposalTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotDisposalTypeNullableFilter<$PrismaModel>
  }

  export type NestedEnumRobotLifecycleStageFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleStage | EnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    in?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotLifecycleStageFilter<$PrismaModel> | $Enums.RobotLifecycleStage
  }

  export type NestedEnumRobotPhysicalStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotPhysicalStatus | EnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotPhysicalStatus[] | ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotPhysicalStatus[] | ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotPhysicalStatusNullableFilter<$PrismaModel> | $Enums.RobotPhysicalStatus | null
  }

  export type NestedEnumRobotWarrantyStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotWarrantyStatus | EnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotWarrantyStatus[] | ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotWarrantyStatus[] | ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotWarrantyStatusNullableFilter<$PrismaModel> | $Enums.RobotWarrantyStatus | null
  }

  export type NestedEnumRobotLifecycleStageWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleStage | EnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    in?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotLifecycleStageWithAggregatesFilter<$PrismaModel> | $Enums.RobotLifecycleStage
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRobotLifecycleStageFilter<$PrismaModel>
    _max?: NestedEnumRobotLifecycleStageFilter<$PrismaModel>
  }

  export type NestedEnumRobotPhysicalStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotPhysicalStatus | EnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotPhysicalStatus[] | ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotPhysicalStatus[] | ListEnumRobotPhysicalStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotPhysicalStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotPhysicalStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotPhysicalStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotPhysicalStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumRobotWarrantyStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotWarrantyStatus | EnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotWarrantyStatus[] | ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotWarrantyStatus[] | ListEnumRobotWarrantyStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotWarrantyStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotWarrantyStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotWarrantyStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotWarrantyStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumRobotLifecycleEventTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleEventType | EnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RobotLifecycleEventType[] | ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotLifecycleEventType[] | ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotLifecycleEventTypeFilter<$PrismaModel> | $Enums.RobotLifecycleEventType
  }

  export type NestedEnumRobotLifecycleStageNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleStage | EnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotLifecycleStageNullableFilter<$PrismaModel> | $Enums.RobotLifecycleStage | null
  }

  export type NestedEnumRobotEventRelatedTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotEventRelatedType | EnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotEventRelatedType[] | ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotEventRelatedType[] | ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotEventRelatedTypeNullableFilter<$PrismaModel> | $Enums.RobotEventRelatedType | null
  }

  export type NestedEnumRobotLifecycleEventTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleEventType | EnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    in?: $Enums.RobotLifecycleEventType[] | ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.RobotLifecycleEventType[] | ListEnumRobotLifecycleEventTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumRobotLifecycleEventTypeWithAggregatesFilter<$PrismaModel> | $Enums.RobotLifecycleEventType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRobotLifecycleEventTypeFilter<$PrismaModel>
    _max?: NestedEnumRobotLifecycleEventTypeFilter<$PrismaModel>
  }

  export type NestedEnumRobotLifecycleStageNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotLifecycleStage | EnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotLifecycleStage[] | ListEnumRobotLifecycleStageFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotLifecycleStageNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotLifecycleStage | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotLifecycleStageNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotLifecycleStageNullableFilter<$PrismaModel>
  }

  export type NestedEnumRobotEventRelatedTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotEventRelatedType | EnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotEventRelatedType[] | ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotEventRelatedType[] | ListEnumRobotEventRelatedTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotEventRelatedTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotEventRelatedType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotEventRelatedTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotEventRelatedTypeNullableFilter<$PrismaModel>
  }

  export type NestedEnumPurchaseOrderStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.PurchaseOrderStatus | EnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PurchaseOrderStatus[] | ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PurchaseOrderStatus[] | ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPurchaseOrderStatusFilter<$PrismaModel> | $Enums.PurchaseOrderStatus
  }

  export type NestedEnumPurchaseOrderStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PurchaseOrderStatus | EnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.PurchaseOrderStatus[] | ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.PurchaseOrderStatus[] | ListEnumPurchaseOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumPurchaseOrderStatusWithAggregatesFilter<$PrismaModel> | $Enums.PurchaseOrderStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPurchaseOrderStatusFilter<$PrismaModel>
    _max?: NestedEnumPurchaseOrderStatusFilter<$PrismaModel>
  }

  export type NestedEnumRobotUsageTypeNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotUsageType | EnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotUsageTypeNullableFilter<$PrismaModel> | $Enums.RobotUsageType | null
  }

  export type NestedEnumRobotUsageTypeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RobotUsageType | EnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    in?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RobotUsageType[] | ListEnumRobotUsageTypeFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRobotUsageTypeNullableWithAggregatesFilter<$PrismaModel> | $Enums.RobotUsageType | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRobotUsageTypeNullableFilter<$PrismaModel>
    _max?: NestedEnumRobotUsageTypeNullableFilter<$PrismaModel>
  }

  export type NestedEnumSalesContractStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesContractStatus | EnumSalesContractStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SalesContractStatus[] | ListEnumSalesContractStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesContractStatus[] | ListEnumSalesContractStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesContractStatusFilter<$PrismaModel> | $Enums.SalesContractStatus
  }

  export type NestedEnumSalesOrderStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesOrderStatus | EnumSalesOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SalesOrderStatus[] | ListEnumSalesOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesOrderStatus[] | ListEnumSalesOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesOrderStatusFilter<$PrismaModel> | $Enums.SalesOrderStatus
  }

  export type NestedEnumSalesContractStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesContractStatus | EnumSalesContractStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SalesContractStatus[] | ListEnumSalesContractStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesContractStatus[] | ListEnumSalesContractStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesContractStatusWithAggregatesFilter<$PrismaModel> | $Enums.SalesContractStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSalesContractStatusFilter<$PrismaModel>
    _max?: NestedEnumSalesContractStatusFilter<$PrismaModel>
  }

  export type NestedEnumSalesOrderStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesOrderStatus | EnumSalesOrderStatusFieldRefInput<$PrismaModel>
    in?: $Enums.SalesOrderStatus[] | ListEnumSalesOrderStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesOrderStatus[] | ListEnumSalesOrderStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesOrderStatusWithAggregatesFilter<$PrismaModel> | $Enums.SalesOrderStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSalesOrderStatusFilter<$PrismaModel>
    _max?: NestedEnumSalesOrderStatusFilter<$PrismaModel>
  }

  export type NestedEnumSalesLineTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesLineType | EnumSalesLineTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SalesLineType[] | ListEnumSalesLineTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesLineType[] | ListEnumSalesLineTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesLineTypeFilter<$PrismaModel> | $Enums.SalesLineType
  }

  export type NestedEnumSalesLineTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.SalesLineType | EnumSalesLineTypeFieldRefInput<$PrismaModel>
    in?: $Enums.SalesLineType[] | ListEnumSalesLineTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.SalesLineType[] | ListEnumSalesLineTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumSalesLineTypeWithAggregatesFilter<$PrismaModel> | $Enums.SalesLineType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumSalesLineTypeFilter<$PrismaModel>
    _max?: NestedEnumSalesLineTypeFilter<$PrismaModel>
  }

  export type NestedEnumDeliveryRequestTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryRequestType | EnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DeliveryRequestType[] | ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DeliveryRequestType[] | ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDeliveryRequestTypeFilter<$PrismaModel> | $Enums.DeliveryRequestType
  }

  export type NestedEnumDeliveryRequestStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryRequestStatus | EnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DeliveryRequestStatus[] | ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DeliveryRequestStatus[] | ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDeliveryRequestStatusFilter<$PrismaModel> | $Enums.DeliveryRequestStatus
  }

  export type NestedEnumDeliveryRequestTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryRequestType | EnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    in?: $Enums.DeliveryRequestType[] | ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.DeliveryRequestType[] | ListEnumDeliveryRequestTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumDeliveryRequestTypeWithAggregatesFilter<$PrismaModel> | $Enums.DeliveryRequestType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDeliveryRequestTypeFilter<$PrismaModel>
    _max?: NestedEnumDeliveryRequestTypeFilter<$PrismaModel>
  }

  export type NestedEnumDeliveryRequestStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryRequestStatus | EnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    in?: $Enums.DeliveryRequestStatus[] | ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.DeliveryRequestStatus[] | ListEnumDeliveryRequestStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumDeliveryRequestStatusWithAggregatesFilter<$PrismaModel> | $Enums.DeliveryRequestStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumDeliveryRequestStatusFilter<$PrismaModel>
    _max?: NestedEnumDeliveryRequestStatusFilter<$PrismaModel>
  }

  export type NestedEnumDeliveryFormStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryFormStatus | EnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.DeliveryFormStatus[] | ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DeliveryFormStatus[] | ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDeliveryFormStatusNullableFilter<$PrismaModel> | $Enums.DeliveryFormStatus | null
  }

  export type NestedEnumRevenueRecognitionStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.RevenueRecognitionStatus | EnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RevenueRecognitionStatus[] | ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RevenueRecognitionStatus[] | ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRevenueRecognitionStatusNullableFilter<$PrismaModel> | $Enums.RevenueRecognitionStatus | null
  }

  export type NestedEnumInvoiceStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.InvoiceStatus | EnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.InvoiceStatus[] | ListEnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.InvoiceStatus[] | ListEnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumInvoiceStatusNullableFilter<$PrismaModel> | $Enums.InvoiceStatus | null
  }

  export type NestedEnumDeliveryFormStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.DeliveryFormStatus | EnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.DeliveryFormStatus[] | ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.DeliveryFormStatus[] | ListEnumDeliveryFormStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumDeliveryFormStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.DeliveryFormStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumDeliveryFormStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumDeliveryFormStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumRevenueRecognitionStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RevenueRecognitionStatus | EnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.RevenueRecognitionStatus[] | ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.RevenueRecognitionStatus[] | ListEnumRevenueRecognitionStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumRevenueRecognitionStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.RevenueRecognitionStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumRevenueRecognitionStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumRevenueRecognitionStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumInvoiceStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.InvoiceStatus | EnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.InvoiceStatus[] | ListEnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.InvoiceStatus[] | ListEnumInvoiceStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumInvoiceStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.InvoiceStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumInvoiceStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumInvoiceStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumPaymentRelatedTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentRelatedType | EnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    in?: $Enums.PaymentRelatedType[] | ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.PaymentRelatedType[] | ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumPaymentRelatedTypeFilter<$PrismaModel> | $Enums.PaymentRelatedType
  }

  export type NestedEnumPaymentDirectionFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentDirection | EnumPaymentDirectionFieldRefInput<$PrismaModel>
    in?: $Enums.PaymentDirection[] | ListEnumPaymentDirectionFieldRefInput<$PrismaModel>
    notIn?: $Enums.PaymentDirection[] | ListEnumPaymentDirectionFieldRefInput<$PrismaModel>
    not?: NestedEnumPaymentDirectionFilter<$PrismaModel> | $Enums.PaymentDirection
  }

  export type NestedEnumPaymentMethodNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentMethod | EnumPaymentMethodFieldRefInput<$PrismaModel> | null
    in?: $Enums.PaymentMethod[] | ListEnumPaymentMethodFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PaymentMethod[] | ListEnumPaymentMethodFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPaymentMethodNullableFilter<$PrismaModel> | $Enums.PaymentMethod | null
  }

  export type NestedEnumPaymentStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentStatus | EnumPaymentStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.PaymentStatus[] | ListEnumPaymentStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PaymentStatus[] | ListEnumPaymentStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPaymentStatusNullableFilter<$PrismaModel> | $Enums.PaymentStatus | null
  }

  export type NestedEnumPreDelContractStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.PreDelContractStatus | EnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.PreDelContractStatus[] | ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PreDelContractStatus[] | ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPreDelContractStatusNullableFilter<$PrismaModel> | $Enums.PreDelContractStatus | null
  }

  export type NestedEnumPaymentRelatedTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentRelatedType | EnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    in?: $Enums.PaymentRelatedType[] | ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.PaymentRelatedType[] | ListEnumPaymentRelatedTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumPaymentRelatedTypeWithAggregatesFilter<$PrismaModel> | $Enums.PaymentRelatedType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPaymentRelatedTypeFilter<$PrismaModel>
    _max?: NestedEnumPaymentRelatedTypeFilter<$PrismaModel>
  }

  export type NestedEnumPaymentDirectionWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentDirection | EnumPaymentDirectionFieldRefInput<$PrismaModel>
    in?: $Enums.PaymentDirection[] | ListEnumPaymentDirectionFieldRefInput<$PrismaModel>
    notIn?: $Enums.PaymentDirection[] | ListEnumPaymentDirectionFieldRefInput<$PrismaModel>
    not?: NestedEnumPaymentDirectionWithAggregatesFilter<$PrismaModel> | $Enums.PaymentDirection
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumPaymentDirectionFilter<$PrismaModel>
    _max?: NestedEnumPaymentDirectionFilter<$PrismaModel>
  }

  export type NestedEnumPaymentMethodNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentMethod | EnumPaymentMethodFieldRefInput<$PrismaModel> | null
    in?: $Enums.PaymentMethod[] | ListEnumPaymentMethodFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PaymentMethod[] | ListEnumPaymentMethodFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPaymentMethodNullableWithAggregatesFilter<$PrismaModel> | $Enums.PaymentMethod | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumPaymentMethodNullableFilter<$PrismaModel>
    _max?: NestedEnumPaymentMethodNullableFilter<$PrismaModel>
  }

  export type NestedEnumPaymentStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PaymentStatus | EnumPaymentStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.PaymentStatus[] | ListEnumPaymentStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PaymentStatus[] | ListEnumPaymentStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPaymentStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.PaymentStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumPaymentStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumPaymentStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumPreDelContractStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.PreDelContractStatus | EnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.PreDelContractStatus[] | ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.PreDelContractStatus[] | ListEnumPreDelContractStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumPreDelContractStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.PreDelContractStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumPreDelContractStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumPreDelContractStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumQualityLabelStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.QualityLabelStatus | EnumQualityLabelStatusFieldRefInput<$PrismaModel>
    in?: $Enums.QualityLabelStatus[] | ListEnumQualityLabelStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.QualityLabelStatus[] | ListEnumQualityLabelStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumQualityLabelStatusFilter<$PrismaModel> | $Enums.QualityLabelStatus
  }

  export type NestedEnumQualityLabelStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.QualityLabelStatus | EnumQualityLabelStatusFieldRefInput<$PrismaModel>
    in?: $Enums.QualityLabelStatus[] | ListEnumQualityLabelStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.QualityLabelStatus[] | ListEnumQualityLabelStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumQualityLabelStatusWithAggregatesFilter<$PrismaModel> | $Enums.QualityLabelStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumQualityLabelStatusFilter<$PrismaModel>
    _max?: NestedEnumQualityLabelStatusFilter<$PrismaModel>
  }

  export type NestedEnumLogisticsStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.LogisticsStatus | EnumLogisticsStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LogisticsStatus[] | ListEnumLogisticsStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogisticsStatus[] | ListEnumLogisticsStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLogisticsStatusFilter<$PrismaModel> | $Enums.LogisticsStatus
  }

  export type NestedEnumLogisticsStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.LogisticsStatus | EnumLogisticsStatusFieldRefInput<$PrismaModel>
    in?: $Enums.LogisticsStatus[] | ListEnumLogisticsStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.LogisticsStatus[] | ListEnumLogisticsStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumLogisticsStatusWithAggregatesFilter<$PrismaModel> | $Enums.LogisticsStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumLogisticsStatusFilter<$PrismaModel>
    _max?: NestedEnumLogisticsStatusFilter<$PrismaModel>
  }

  export type NestedEnumStickerStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.StickerStatus | EnumStickerStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.StickerStatus[] | ListEnumStickerStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.StickerStatus[] | ListEnumStickerStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumStickerStatusNullableFilter<$PrismaModel> | $Enums.StickerStatus | null
  }

  export type NestedEnumFccStatusNullableFilter<$PrismaModel = never> = {
    equals?: $Enums.FccStatus | EnumFccStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.FccStatus[] | ListEnumFccStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.FccStatus[] | ListEnumFccStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumFccStatusNullableFilter<$PrismaModel> | $Enums.FccStatus | null
  }

  export type NestedEnumStickerStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.StickerStatus | EnumStickerStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.StickerStatus[] | ListEnumStickerStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.StickerStatus[] | ListEnumStickerStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumStickerStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.StickerStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumStickerStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumStickerStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumFccStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.FccStatus | EnumFccStatusFieldRefInput<$PrismaModel> | null
    in?: $Enums.FccStatus[] | ListEnumFccStatusFieldRefInput<$PrismaModel> | null
    notIn?: $Enums.FccStatus[] | ListEnumFccStatusFieldRefInput<$PrismaModel> | null
    not?: NestedEnumFccStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.FccStatus | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedEnumFccStatusNullableFilter<$PrismaModel>
    _max?: NestedEnumFccStatusNullableFilter<$PrismaModel>
  }

  export type NestedEnumRentalAgreementStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.RentalAgreementStatus | EnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    in?: $Enums.RentalAgreementStatus[] | ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.RentalAgreementStatus[] | ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumRentalAgreementStatusFilter<$PrismaModel> | $Enums.RentalAgreementStatus
  }

  export type NestedEnumRentalAgreementStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.RentalAgreementStatus | EnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    in?: $Enums.RentalAgreementStatus[] | ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.RentalAgreementStatus[] | ListEnumRentalAgreementStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumRentalAgreementStatusWithAggregatesFilter<$PrismaModel> | $Enums.RentalAgreementStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumRentalAgreementStatusFilter<$PrismaModel>
    _max?: NestedEnumRentalAgreementStatusFilter<$PrismaModel>
  }

  export type NestedEnumTicketSeverityFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketSeverity | EnumTicketSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.TicketSeverity[] | ListEnumTicketSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketSeverity[] | ListEnumTicketSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketSeverityFilter<$PrismaModel> | $Enums.TicketSeverity
  }

  export type NestedEnumServiceTicketStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ServiceTicketStatus | EnumServiceTicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ServiceTicketStatus[] | ListEnumServiceTicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ServiceTicketStatus[] | ListEnumServiceTicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumServiceTicketStatusFilter<$PrismaModel> | $Enums.ServiceTicketStatus
  }

  export type NestedEnumTicketSeverityWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.TicketSeverity | EnumTicketSeverityFieldRefInput<$PrismaModel>
    in?: $Enums.TicketSeverity[] | ListEnumTicketSeverityFieldRefInput<$PrismaModel>
    notIn?: $Enums.TicketSeverity[] | ListEnumTicketSeverityFieldRefInput<$PrismaModel>
    not?: NestedEnumTicketSeverityWithAggregatesFilter<$PrismaModel> | $Enums.TicketSeverity
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumTicketSeverityFilter<$PrismaModel>
    _max?: NestedEnumTicketSeverityFilter<$PrismaModel>
  }

  export type NestedEnumServiceTicketStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ServiceTicketStatus | EnumServiceTicketStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ServiceTicketStatus[] | ListEnumServiceTicketStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ServiceTicketStatus[] | ListEnumServiceTicketStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumServiceTicketStatusWithAggregatesFilter<$PrismaModel> | $Enums.ServiceTicketStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumServiceTicketStatusFilter<$PrismaModel>
    _max?: NestedEnumServiceTicketStatusFilter<$PrismaModel>
  }

  export type NestedEnumServiceTicketActivityTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ServiceTicketActivityType | EnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ServiceTicketActivityType[] | ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ServiceTicketActivityType[] | ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumServiceTicketActivityTypeFilter<$PrismaModel> | $Enums.ServiceTicketActivityType
  }

  export type NestedEnumServiceTicketActivityTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ServiceTicketActivityType | EnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ServiceTicketActivityType[] | ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ServiceTicketActivityType[] | ListEnumServiceTicketActivityTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumServiceTicketActivityTypeWithAggregatesFilter<$PrismaModel> | $Enums.ServiceTicketActivityType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumServiceTicketActivityTypeFilter<$PrismaModel>
    _max?: NestedEnumServiceTicketActivityTypeFilter<$PrismaModel>
  }

  export type NestedEnumImportRecordStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportRecordStatus | EnumImportRecordStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportRecordStatus[] | ListEnumImportRecordStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportRecordStatus[] | ListEnumImportRecordStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportRecordStatusFilter<$PrismaModel> | $Enums.ImportRecordStatus
  }

  export type NestedEnumImportRecordStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportRecordStatus | EnumImportRecordStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportRecordStatus[] | ListEnumImportRecordStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportRecordStatus[] | ListEnumImportRecordStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportRecordStatusWithAggregatesFilter<$PrismaModel> | $Enums.ImportRecordStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportRecordStatusFilter<$PrismaModel>
    _max?: NestedEnumImportRecordStatusFilter<$PrismaModel>
  }

  export type NestedEnumImportBatchTypeFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportBatchType | EnumImportBatchTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ImportBatchType[] | ListEnumImportBatchTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportBatchType[] | ListEnumImportBatchTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumImportBatchTypeFilter<$PrismaModel> | $Enums.ImportBatchType
  }

  export type NestedEnumImportBatchStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportBatchStatus | EnumImportBatchStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportBatchStatus[] | ListEnumImportBatchStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportBatchStatus[] | ListEnumImportBatchStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportBatchStatusFilter<$PrismaModel> | $Enums.ImportBatchStatus
  }

  export type NestedEnumImportBatchTypeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportBatchType | EnumImportBatchTypeFieldRefInput<$PrismaModel>
    in?: $Enums.ImportBatchType[] | ListEnumImportBatchTypeFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportBatchType[] | ListEnumImportBatchTypeFieldRefInput<$PrismaModel>
    not?: NestedEnumImportBatchTypeWithAggregatesFilter<$PrismaModel> | $Enums.ImportBatchType
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportBatchTypeFilter<$PrismaModel>
    _max?: NestedEnumImportBatchTypeFilter<$PrismaModel>
  }

  export type NestedEnumImportBatchStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportBatchStatus | EnumImportBatchStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportBatchStatus[] | ListEnumImportBatchStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportBatchStatus[] | ListEnumImportBatchStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportBatchStatusWithAggregatesFilter<$PrismaModel> | $Enums.ImportBatchStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportBatchStatusFilter<$PrismaModel>
    _max?: NestedEnumImportBatchStatusFilter<$PrismaModel>
  }

  export type NestedEnumImportEntryStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportEntryStatus | EnumImportEntryStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportEntryStatus[] | ListEnumImportEntryStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportEntryStatus[] | ListEnumImportEntryStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportEntryStatusFilter<$PrismaModel> | $Enums.ImportEntryStatus
  }

  export type NestedEnumImportEntryStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.ImportEntryStatus | EnumImportEntryStatusFieldRefInput<$PrismaModel>
    in?: $Enums.ImportEntryStatus[] | ListEnumImportEntryStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.ImportEntryStatus[] | ListEnumImportEntryStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumImportEntryStatusWithAggregatesFilter<$PrismaModel> | $Enums.ImportEntryStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumImportEntryStatusFilter<$PrismaModel>
    _max?: NestedEnumImportEntryStatusFilter<$PrismaModel>
  }

  export type OrganizationCreateWithoutApprovalDefinitionsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutApprovalDefinitionsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutApprovalDefinitionsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutApprovalDefinitionsInput, OrganizationUncheckedCreateWithoutApprovalDefinitionsInput>
  }

  export type ApprovalVersionCreateWithoutDefinitionInput = {
    id?: string
    version: number
    name: string
    isDefault?: boolean
    processModel: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: $Enums.VersionStatus
    deployedAt?: Date | string | null
    deployedBy?: string | null
    changeLog?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: ApprovalInstanceCreateNestedManyWithoutVersionInput
  }

  export type ApprovalVersionUncheckedCreateWithoutDefinitionInput = {
    id?: string
    version: number
    name: string
    isDefault?: boolean
    processModel: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: $Enums.VersionStatus
    deployedAt?: Date | string | null
    deployedBy?: string | null
    changeLog?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: ApprovalInstanceUncheckedCreateNestedManyWithoutVersionInput
  }

  export type ApprovalVersionCreateOrConnectWithoutDefinitionInput = {
    where: ApprovalVersionWhereUniqueInput
    create: XOR<ApprovalVersionCreateWithoutDefinitionInput, ApprovalVersionUncheckedCreateWithoutDefinitionInput>
  }

  export type ApprovalVersionCreateManyDefinitionInputEnvelope = {
    data: ApprovalVersionCreateManyDefinitionInput | ApprovalVersionCreateManyDefinitionInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationUpsertWithoutApprovalDefinitionsInput = {
    update: XOR<OrganizationUpdateWithoutApprovalDefinitionsInput, OrganizationUncheckedUpdateWithoutApprovalDefinitionsInput>
    create: XOR<OrganizationCreateWithoutApprovalDefinitionsInput, OrganizationUncheckedCreateWithoutApprovalDefinitionsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutApprovalDefinitionsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutApprovalDefinitionsInput, OrganizationUncheckedUpdateWithoutApprovalDefinitionsInput>
  }

  export type OrganizationUpdateWithoutApprovalDefinitionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutApprovalDefinitionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type ApprovalVersionUpsertWithWhereUniqueWithoutDefinitionInput = {
    where: ApprovalVersionWhereUniqueInput
    update: XOR<ApprovalVersionUpdateWithoutDefinitionInput, ApprovalVersionUncheckedUpdateWithoutDefinitionInput>
    create: XOR<ApprovalVersionCreateWithoutDefinitionInput, ApprovalVersionUncheckedCreateWithoutDefinitionInput>
  }

  export type ApprovalVersionUpdateWithWhereUniqueWithoutDefinitionInput = {
    where: ApprovalVersionWhereUniqueInput
    data: XOR<ApprovalVersionUpdateWithoutDefinitionInput, ApprovalVersionUncheckedUpdateWithoutDefinitionInput>
  }

  export type ApprovalVersionUpdateManyWithWhereWithoutDefinitionInput = {
    where: ApprovalVersionScalarWhereInput
    data: XOR<ApprovalVersionUpdateManyMutationInput, ApprovalVersionUncheckedUpdateManyWithoutDefinitionInput>
  }

  export type ApprovalVersionScalarWhereInput = {
    AND?: ApprovalVersionScalarWhereInput | ApprovalVersionScalarWhereInput[]
    OR?: ApprovalVersionScalarWhereInput[]
    NOT?: ApprovalVersionScalarWhereInput | ApprovalVersionScalarWhereInput[]
    id?: UuidFilter<"ApprovalVersion"> | string
    definitionId?: UuidFilter<"ApprovalVersion"> | string
    version?: IntFilter<"ApprovalVersion"> | number
    name?: StringFilter<"ApprovalVersion"> | string
    isDefault?: BoolFilter<"ApprovalVersion"> | boolean
    processModel?: JsonFilter<"ApprovalVersion">
    settings?: JsonFilter<"ApprovalVersion">
    formSchema?: JsonNullableFilter<"ApprovalVersion">
    ruleConfig?: JsonFilter<"ApprovalVersion">
    status?: EnumVersionStatusFilter<"ApprovalVersion"> | $Enums.VersionStatus
    deployedAt?: DateTimeNullableFilter<"ApprovalVersion"> | Date | string | null
    deployedBy?: StringNullableFilter<"ApprovalVersion"> | string | null
    changeLog?: StringNullableFilter<"ApprovalVersion"> | string | null
    createdAt?: DateTimeFilter<"ApprovalVersion"> | Date | string
    updatedAt?: DateTimeFilter<"ApprovalVersion"> | Date | string
  }

  export type ApprovalInstanceCreateWithoutVersionInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    initiator: UserCreateNestedOneWithoutInitiatedProcessesInput
    nodeInstances?: ApprovalNodeInstanceCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceUncheckedCreateWithoutVersionInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskUncheckedCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueUncheckedCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceCreateOrConnectWithoutVersionInput = {
    where: ApprovalInstanceWhereUniqueInput
    create: XOR<ApprovalInstanceCreateWithoutVersionInput, ApprovalInstanceUncheckedCreateWithoutVersionInput>
  }

  export type ApprovalInstanceCreateManyVersionInputEnvelope = {
    data: ApprovalInstanceCreateManyVersionInput | ApprovalInstanceCreateManyVersionInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalDefinitionCreateWithoutVersionsInput = {
    id?: string
    key: string
    name: string
    category: string
    description?: string | null
    latestVersion?: number
    status?: $Enums.ProcessStatus
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutApprovalDefinitionsInput
  }

  export type ApprovalDefinitionUncheckedCreateWithoutVersionsInput = {
    id?: string
    key: string
    name: string
    category: string
    description?: string | null
    latestVersion?: number
    organizationId?: string | null
    status?: $Enums.ProcessStatus
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
  }

  export type ApprovalDefinitionCreateOrConnectWithoutVersionsInput = {
    where: ApprovalDefinitionWhereUniqueInput
    create: XOR<ApprovalDefinitionCreateWithoutVersionsInput, ApprovalDefinitionUncheckedCreateWithoutVersionsInput>
  }

  export type ApprovalInstanceUpsertWithWhereUniqueWithoutVersionInput = {
    where: ApprovalInstanceWhereUniqueInput
    update: XOR<ApprovalInstanceUpdateWithoutVersionInput, ApprovalInstanceUncheckedUpdateWithoutVersionInput>
    create: XOR<ApprovalInstanceCreateWithoutVersionInput, ApprovalInstanceUncheckedCreateWithoutVersionInput>
  }

  export type ApprovalInstanceUpdateWithWhereUniqueWithoutVersionInput = {
    where: ApprovalInstanceWhereUniqueInput
    data: XOR<ApprovalInstanceUpdateWithoutVersionInput, ApprovalInstanceUncheckedUpdateWithoutVersionInput>
  }

  export type ApprovalInstanceUpdateManyWithWhereWithoutVersionInput = {
    where: ApprovalInstanceScalarWhereInput
    data: XOR<ApprovalInstanceUpdateManyMutationInput, ApprovalInstanceUncheckedUpdateManyWithoutVersionInput>
  }

  export type ApprovalInstanceScalarWhereInput = {
    AND?: ApprovalInstanceScalarWhereInput | ApprovalInstanceScalarWhereInput[]
    OR?: ApprovalInstanceScalarWhereInput[]
    NOT?: ApprovalInstanceScalarWhereInput | ApprovalInstanceScalarWhereInput[]
    id?: UuidFilter<"ApprovalInstance"> | string
    versionId?: UuidFilter<"ApprovalInstance"> | string
    businessType?: StringFilter<"ApprovalInstance"> | string
    businessId?: StringFilter<"ApprovalInstance"> | string
    businessKey?: StringFilter<"ApprovalInstance"> | string
    title?: StringNullableFilter<"ApprovalInstance"> | string | null
    workflowId?: StringFilter<"ApprovalInstance"> | string
    workflowRunId?: StringFilter<"ApprovalInstance"> | string
    initiatorId?: UuidFilter<"ApprovalInstance"> | string
    regionId?: StringNullableFilter<"ApprovalInstance"> | string | null
    status?: EnumInstanceStatusFilter<"ApprovalInstance"> | $Enums.InstanceStatus
    currentNodeId?: StringNullableFilter<"ApprovalInstance"> | string | null
    currentNode?: StringNullableFilter<"ApprovalInstance"> | string | null
    variables?: JsonFilter<"ApprovalInstance">
    totalNodeExecutions?: IntFilter<"ApprovalInstance"> | number
    endReason?: StringNullableFilter<"ApprovalInstance"> | string | null
    endComment?: StringNullableFilter<"ApprovalInstance"> | string | null
    priority?: IntFilter<"ApprovalInstance"> | number
    dueDate?: DateTimeNullableFilter<"ApprovalInstance"> | Date | string | null
    startTime?: DateTimeFilter<"ApprovalInstance"> | Date | string
    endTime?: DateTimeNullableFilter<"ApprovalInstance"> | Date | string | null
  }

  export type ApprovalDefinitionUpsertWithoutVersionsInput = {
    update: XOR<ApprovalDefinitionUpdateWithoutVersionsInput, ApprovalDefinitionUncheckedUpdateWithoutVersionsInput>
    create: XOR<ApprovalDefinitionCreateWithoutVersionsInput, ApprovalDefinitionUncheckedCreateWithoutVersionsInput>
    where?: ApprovalDefinitionWhereInput
  }

  export type ApprovalDefinitionUpdateToOneWithWhereWithoutVersionsInput = {
    where?: ApprovalDefinitionWhereInput
    data: XOR<ApprovalDefinitionUpdateWithoutVersionsInput, ApprovalDefinitionUncheckedUpdateWithoutVersionsInput>
  }

  export type ApprovalDefinitionUpdateWithoutVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutApprovalDefinitionsNestedInput
  }

  export type ApprovalDefinitionUncheckedUpdateWithoutVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserCreateWithoutInitiatedProcessesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutInitiatedProcessesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutInitiatedProcessesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutInitiatedProcessesInput, UserUncheckedCreateWithoutInitiatedProcessesInput>
  }

  export type ApprovalVersionCreateWithoutInstancesInput = {
    id?: string
    version: number
    name: string
    isDefault?: boolean
    processModel: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: $Enums.VersionStatus
    deployedAt?: Date | string | null
    deployedBy?: string | null
    changeLog?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    definition: ApprovalDefinitionCreateNestedOneWithoutVersionsInput
  }

  export type ApprovalVersionUncheckedCreateWithoutInstancesInput = {
    id?: string
    definitionId: string
    version: number
    name: string
    isDefault?: boolean
    processModel: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: $Enums.VersionStatus
    deployedAt?: Date | string | null
    deployedBy?: string | null
    changeLog?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalVersionCreateOrConnectWithoutInstancesInput = {
    where: ApprovalVersionWhereUniqueInput
    create: XOR<ApprovalVersionCreateWithoutInstancesInput, ApprovalVersionUncheckedCreateWithoutInstancesInput>
  }

  export type ApprovalNodeInstanceCreateWithoutInstanceInput = {
    id?: string
    nodeId: string
    nodeName: string
    nodeType: string
    status?: $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceCreateassigneesInput | string[]
    approvalMode?: string | null
    executionCount?: number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: Date | string
    endTime?: Date | string | null
    approvalTasks?: ApprovalTaskCreateNestedManyWithoutNodeInstanceInput
  }

  export type ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput = {
    id?: string
    nodeId: string
    nodeName: string
    nodeType: string
    status?: $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceCreateassigneesInput | string[]
    approvalMode?: string | null
    executionCount?: number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: Date | string
    endTime?: Date | string | null
    approvalTasks?: ApprovalTaskUncheckedCreateNestedManyWithoutNodeInstanceInput
  }

  export type ApprovalNodeInstanceCreateOrConnectWithoutInstanceInput = {
    where: ApprovalNodeInstanceWhereUniqueInput
    create: XOR<ApprovalNodeInstanceCreateWithoutInstanceInput, ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput>
  }

  export type ApprovalNodeInstanceCreateManyInstanceInputEnvelope = {
    data: ApprovalNodeInstanceCreateManyInstanceInput | ApprovalNodeInstanceCreateManyInstanceInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalTaskCreateWithoutInstanceInput = {
    id?: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    actionLogs?: ApprovalTaskLogCreateNestedManyWithoutTaskInput
    nodeInstance: ApprovalNodeInstanceCreateNestedOneWithoutApprovalTasksInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskUncheckedCreateWithoutInstanceInput = {
    id?: string
    nodeInstanceId: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    actionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTaskInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskCreateOrConnectWithoutInstanceInput = {
    where: ApprovalTaskWhereUniqueInput
    create: XOR<ApprovalTaskCreateWithoutInstanceInput, ApprovalTaskUncheckedCreateWithoutInstanceInput>
  }

  export type ApprovalTaskCreateManyInstanceInputEnvelope = {
    data: ApprovalTaskCreateManyInstanceInput | ApprovalTaskCreateManyInstanceInput[]
    skipDuplicates?: boolean
  }

  export type CallbackRetryQueueCreateWithoutInstanceInput = {
    id?: string
    callbackType: string
    callbackUrl?: string | null
    payload: JsonNullValueInput | InputJsonValue
    retryCount?: number
    maxRetries?: number
    nextRetryAt: Date | string
    lastError?: string | null
    status?: $Enums.CallbackStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CallbackRetryQueueUncheckedCreateWithoutInstanceInput = {
    id?: string
    callbackType: string
    callbackUrl?: string | null
    payload: JsonNullValueInput | InputJsonValue
    retryCount?: number
    maxRetries?: number
    nextRetryAt: Date | string
    lastError?: string | null
    status?: $Enums.CallbackStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CallbackRetryQueueCreateOrConnectWithoutInstanceInput = {
    where: CallbackRetryQueueWhereUniqueInput
    create: XOR<CallbackRetryQueueCreateWithoutInstanceInput, CallbackRetryQueueUncheckedCreateWithoutInstanceInput>
  }

  export type CallbackRetryQueueCreateManyInstanceInputEnvelope = {
    data: CallbackRetryQueueCreateManyInstanceInput | CallbackRetryQueueCreateManyInstanceInput[]
    skipDuplicates?: boolean
  }

  export type ReminderQueueCreateWithoutInstanceInput = {
    id?: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
    task: ApprovalTaskCreateNestedOneWithoutReminderQueuesInput
  }

  export type ReminderQueueUncheckedCreateWithoutInstanceInput = {
    id?: string
    taskId: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
  }

  export type ReminderQueueCreateOrConnectWithoutInstanceInput = {
    where: ReminderQueueWhereUniqueInput
    create: XOR<ReminderQueueCreateWithoutInstanceInput, ReminderQueueUncheckedCreateWithoutInstanceInput>
  }

  export type ReminderQueueCreateManyInstanceInputEnvelope = {
    data: ReminderQueueCreateManyInstanceInput | ReminderQueueCreateManyInstanceInput[]
    skipDuplicates?: boolean
  }

  export type UserUpsertWithoutInitiatedProcessesInput = {
    update: XOR<UserUpdateWithoutInitiatedProcessesInput, UserUncheckedUpdateWithoutInitiatedProcessesInput>
    create: XOR<UserCreateWithoutInitiatedProcessesInput, UserUncheckedCreateWithoutInitiatedProcessesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutInitiatedProcessesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutInitiatedProcessesInput, UserUncheckedUpdateWithoutInitiatedProcessesInput>
  }

  export type UserUpdateWithoutInitiatedProcessesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutInitiatedProcessesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type ApprovalVersionUpsertWithoutInstancesInput = {
    update: XOR<ApprovalVersionUpdateWithoutInstancesInput, ApprovalVersionUncheckedUpdateWithoutInstancesInput>
    create: XOR<ApprovalVersionCreateWithoutInstancesInput, ApprovalVersionUncheckedCreateWithoutInstancesInput>
    where?: ApprovalVersionWhereInput
  }

  export type ApprovalVersionUpdateToOneWithWhereWithoutInstancesInput = {
    where?: ApprovalVersionWhereInput
    data: XOR<ApprovalVersionUpdateWithoutInstancesInput, ApprovalVersionUncheckedUpdateWithoutInstancesInput>
  }

  export type ApprovalVersionUpdateWithoutInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    definition?: ApprovalDefinitionUpdateOneRequiredWithoutVersionsNestedInput
  }

  export type ApprovalVersionUncheckedUpdateWithoutInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalNodeInstanceUpsertWithWhereUniqueWithoutInstanceInput = {
    where: ApprovalNodeInstanceWhereUniqueInput
    update: XOR<ApprovalNodeInstanceUpdateWithoutInstanceInput, ApprovalNodeInstanceUncheckedUpdateWithoutInstanceInput>
    create: XOR<ApprovalNodeInstanceCreateWithoutInstanceInput, ApprovalNodeInstanceUncheckedCreateWithoutInstanceInput>
  }

  export type ApprovalNodeInstanceUpdateWithWhereUniqueWithoutInstanceInput = {
    where: ApprovalNodeInstanceWhereUniqueInput
    data: XOR<ApprovalNodeInstanceUpdateWithoutInstanceInput, ApprovalNodeInstanceUncheckedUpdateWithoutInstanceInput>
  }

  export type ApprovalNodeInstanceUpdateManyWithWhereWithoutInstanceInput = {
    where: ApprovalNodeInstanceScalarWhereInput
    data: XOR<ApprovalNodeInstanceUpdateManyMutationInput, ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceInput>
  }

  export type ApprovalNodeInstanceScalarWhereInput = {
    AND?: ApprovalNodeInstanceScalarWhereInput | ApprovalNodeInstanceScalarWhereInput[]
    OR?: ApprovalNodeInstanceScalarWhereInput[]
    NOT?: ApprovalNodeInstanceScalarWhereInput | ApprovalNodeInstanceScalarWhereInput[]
    id?: UuidFilter<"ApprovalNodeInstance"> | string
    instanceId?: UuidFilter<"ApprovalNodeInstance"> | string
    nodeId?: StringFilter<"ApprovalNodeInstance"> | string
    nodeName?: StringFilter<"ApprovalNodeInstance"> | string
    nodeType?: StringFilter<"ApprovalNodeInstance"> | string
    status?: EnumNodeStatusFilter<"ApprovalNodeInstance"> | $Enums.NodeStatus
    assignees?: StringNullableListFilter<"ApprovalNodeInstance">
    approvalMode?: StringNullableFilter<"ApprovalNodeInstance"> | string | null
    executionCount?: IntFilter<"ApprovalNodeInstance"> | number
    result?: JsonNullableFilter<"ApprovalNodeInstance">
    startTime?: DateTimeFilter<"ApprovalNodeInstance"> | Date | string
    endTime?: DateTimeNullableFilter<"ApprovalNodeInstance"> | Date | string | null
  }

  export type ApprovalTaskUpsertWithWhereUniqueWithoutInstanceInput = {
    where: ApprovalTaskWhereUniqueInput
    update: XOR<ApprovalTaskUpdateWithoutInstanceInput, ApprovalTaskUncheckedUpdateWithoutInstanceInput>
    create: XOR<ApprovalTaskCreateWithoutInstanceInput, ApprovalTaskUncheckedCreateWithoutInstanceInput>
  }

  export type ApprovalTaskUpdateWithWhereUniqueWithoutInstanceInput = {
    where: ApprovalTaskWhereUniqueInput
    data: XOR<ApprovalTaskUpdateWithoutInstanceInput, ApprovalTaskUncheckedUpdateWithoutInstanceInput>
  }

  export type ApprovalTaskUpdateManyWithWhereWithoutInstanceInput = {
    where: ApprovalTaskScalarWhereInput
    data: XOR<ApprovalTaskUpdateManyMutationInput, ApprovalTaskUncheckedUpdateManyWithoutInstanceInput>
  }

  export type ApprovalTaskScalarWhereInput = {
    AND?: ApprovalTaskScalarWhereInput | ApprovalTaskScalarWhereInput[]
    OR?: ApprovalTaskScalarWhereInput[]
    NOT?: ApprovalTaskScalarWhereInput | ApprovalTaskScalarWhereInput[]
    id?: UuidFilter<"ApprovalTask"> | string
    instanceId?: UuidFilter<"ApprovalTask"> | string
    nodeInstanceId?: UuidFilter<"ApprovalTask"> | string
    name?: StringFilter<"ApprovalTask"> | string
    description?: StringNullableFilter<"ApprovalTask"> | string | null
    type?: EnumApprovalTaskTypeFilter<"ApprovalTask"> | $Enums.ApprovalTaskType
    assignee?: UuidNullableFilter<"ApprovalTask"> | string | null
    candidateUsers?: StringNullableListFilter<"ApprovalTask">
    candidateGroups?: StringNullableListFilter<"ApprovalTask">
    owner?: UuidNullableFilter<"ApprovalTask"> | string | null
    status?: EnumApprovalTaskStatusFilter<"ApprovalTask"> | $Enums.ApprovalTaskStatus
    version?: IntFilter<"ApprovalTask"> | number
    formData?: JsonNullableFilter<"ApprovalTask">
    priority?: IntFilter<"ApprovalTask"> | number
    dueDate?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    reminderCount?: IntFilter<"ApprovalTask"> | number
    lastReminderAt?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    autoApproved?: BoolFilter<"ApprovalTask"> | boolean
    autoApproveReason?: StringNullableFilter<"ApprovalTask"> | string | null
    isDelegated?: BoolFilter<"ApprovalTask"> | boolean
    delegatedFrom?: UuidNullableFilter<"ApprovalTask"> | string | null
    delegatedAt?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    delegationReason?: StringNullableFilter<"ApprovalTask"> | string | null
    delegationType?: EnumDelegationTypeNullableFilter<"ApprovalTask"> | $Enums.DelegationType | null
    delegationState?: StringNullableFilter<"ApprovalTask"> | string | null
    createTime?: DateTimeFilter<"ApprovalTask"> | Date | string
    claimTime?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
    endTime?: DateTimeNullableFilter<"ApprovalTask"> | Date | string | null
  }

  export type CallbackRetryQueueUpsertWithWhereUniqueWithoutInstanceInput = {
    where: CallbackRetryQueueWhereUniqueInput
    update: XOR<CallbackRetryQueueUpdateWithoutInstanceInput, CallbackRetryQueueUncheckedUpdateWithoutInstanceInput>
    create: XOR<CallbackRetryQueueCreateWithoutInstanceInput, CallbackRetryQueueUncheckedCreateWithoutInstanceInput>
  }

  export type CallbackRetryQueueUpdateWithWhereUniqueWithoutInstanceInput = {
    where: CallbackRetryQueueWhereUniqueInput
    data: XOR<CallbackRetryQueueUpdateWithoutInstanceInput, CallbackRetryQueueUncheckedUpdateWithoutInstanceInput>
  }

  export type CallbackRetryQueueUpdateManyWithWhereWithoutInstanceInput = {
    where: CallbackRetryQueueScalarWhereInput
    data: XOR<CallbackRetryQueueUpdateManyMutationInput, CallbackRetryQueueUncheckedUpdateManyWithoutInstanceInput>
  }

  export type CallbackRetryQueueScalarWhereInput = {
    AND?: CallbackRetryQueueScalarWhereInput | CallbackRetryQueueScalarWhereInput[]
    OR?: CallbackRetryQueueScalarWhereInput[]
    NOT?: CallbackRetryQueueScalarWhereInput | CallbackRetryQueueScalarWhereInput[]
    id?: UuidFilter<"CallbackRetryQueue"> | string
    instanceId?: UuidFilter<"CallbackRetryQueue"> | string
    callbackType?: StringFilter<"CallbackRetryQueue"> | string
    callbackUrl?: StringNullableFilter<"CallbackRetryQueue"> | string | null
    payload?: JsonFilter<"CallbackRetryQueue">
    retryCount?: IntFilter<"CallbackRetryQueue"> | number
    maxRetries?: IntFilter<"CallbackRetryQueue"> | number
    nextRetryAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
    lastError?: StringNullableFilter<"CallbackRetryQueue"> | string | null
    status?: EnumCallbackStatusFilter<"CallbackRetryQueue"> | $Enums.CallbackStatus
    createdAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
    updatedAt?: DateTimeFilter<"CallbackRetryQueue"> | Date | string
  }

  export type ReminderQueueUpsertWithWhereUniqueWithoutInstanceInput = {
    where: ReminderQueueWhereUniqueInput
    update: XOR<ReminderQueueUpdateWithoutInstanceInput, ReminderQueueUncheckedUpdateWithoutInstanceInput>
    create: XOR<ReminderQueueCreateWithoutInstanceInput, ReminderQueueUncheckedCreateWithoutInstanceInput>
  }

  export type ReminderQueueUpdateWithWhereUniqueWithoutInstanceInput = {
    where: ReminderQueueWhereUniqueInput
    data: XOR<ReminderQueueUpdateWithoutInstanceInput, ReminderQueueUncheckedUpdateWithoutInstanceInput>
  }

  export type ReminderQueueUpdateManyWithWhereWithoutInstanceInput = {
    where: ReminderQueueScalarWhereInput
    data: XOR<ReminderQueueUpdateManyMutationInput, ReminderQueueUncheckedUpdateManyWithoutInstanceInput>
  }

  export type ReminderQueueScalarWhereInput = {
    AND?: ReminderQueueScalarWhereInput | ReminderQueueScalarWhereInput[]
    OR?: ReminderQueueScalarWhereInput[]
    NOT?: ReminderQueueScalarWhereInput | ReminderQueueScalarWhereInput[]
    id?: UuidFilter<"ReminderQueue"> | string
    taskId?: UuidFilter<"ReminderQueue"> | string
    instanceId?: UuidFilter<"ReminderQueue"> | string
    reminderType?: EnumReminderTypeFilter<"ReminderQueue"> | $Enums.ReminderType
    channels?: StringNullableListFilter<"ReminderQueue">
    scheduledAt?: DateTimeFilter<"ReminderQueue"> | Date | string
    executedAt?: DateTimeNullableFilter<"ReminderQueue"> | Date | string | null
    status?: EnumReminderStatusFilter<"ReminderQueue"> | $Enums.ReminderStatus
    createdAt?: DateTimeFilter<"ReminderQueue"> | Date | string
  }

  export type ApprovalInstanceCreateWithoutNodeInstancesInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    initiator: UserCreateNestedOneWithoutInitiatedProcessesInput
    version: ApprovalVersionCreateNestedOneWithoutInstancesInput
    approvalTasks?: ApprovalTaskCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceUncheckedCreateWithoutNodeInstancesInput = {
    id?: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    approvalTasks?: ApprovalTaskUncheckedCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueUncheckedCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceCreateOrConnectWithoutNodeInstancesInput = {
    where: ApprovalInstanceWhereUniqueInput
    create: XOR<ApprovalInstanceCreateWithoutNodeInstancesInput, ApprovalInstanceUncheckedCreateWithoutNodeInstancesInput>
  }

  export type ApprovalTaskCreateWithoutNodeInstanceInput = {
    id?: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    actionLogs?: ApprovalTaskLogCreateNestedManyWithoutTaskInput
    instance: ApprovalInstanceCreateNestedOneWithoutApprovalTasksInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskUncheckedCreateWithoutNodeInstanceInput = {
    id?: string
    instanceId: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    actionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTaskInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskCreateOrConnectWithoutNodeInstanceInput = {
    where: ApprovalTaskWhereUniqueInput
    create: XOR<ApprovalTaskCreateWithoutNodeInstanceInput, ApprovalTaskUncheckedCreateWithoutNodeInstanceInput>
  }

  export type ApprovalTaskCreateManyNodeInstanceInputEnvelope = {
    data: ApprovalTaskCreateManyNodeInstanceInput | ApprovalTaskCreateManyNodeInstanceInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalInstanceUpsertWithoutNodeInstancesInput = {
    update: XOR<ApprovalInstanceUpdateWithoutNodeInstancesInput, ApprovalInstanceUncheckedUpdateWithoutNodeInstancesInput>
    create: XOR<ApprovalInstanceCreateWithoutNodeInstancesInput, ApprovalInstanceUncheckedCreateWithoutNodeInstancesInput>
    where?: ApprovalInstanceWhereInput
  }

  export type ApprovalInstanceUpdateToOneWithWhereWithoutNodeInstancesInput = {
    where?: ApprovalInstanceWhereInput
    data: XOR<ApprovalInstanceUpdateWithoutNodeInstancesInput, ApprovalInstanceUncheckedUpdateWithoutNodeInstancesInput>
  }

  export type ApprovalInstanceUpdateWithoutNodeInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiator?: UserUpdateOneRequiredWithoutInitiatedProcessesNestedInput
    version?: ApprovalVersionUpdateOneRequiredWithoutInstancesNestedInput
    approvalTasks?: ApprovalTaskUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateWithoutNodeInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    initiatorId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalTasks?: ApprovalTaskUncheckedUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUncheckedUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalTaskUpsertWithWhereUniqueWithoutNodeInstanceInput = {
    where: ApprovalTaskWhereUniqueInput
    update: XOR<ApprovalTaskUpdateWithoutNodeInstanceInput, ApprovalTaskUncheckedUpdateWithoutNodeInstanceInput>
    create: XOR<ApprovalTaskCreateWithoutNodeInstanceInput, ApprovalTaskUncheckedCreateWithoutNodeInstanceInput>
  }

  export type ApprovalTaskUpdateWithWhereUniqueWithoutNodeInstanceInput = {
    where: ApprovalTaskWhereUniqueInput
    data: XOR<ApprovalTaskUpdateWithoutNodeInstanceInput, ApprovalTaskUncheckedUpdateWithoutNodeInstanceInput>
  }

  export type ApprovalTaskUpdateManyWithWhereWithoutNodeInstanceInput = {
    where: ApprovalTaskScalarWhereInput
    data: XOR<ApprovalTaskUpdateManyMutationInput, ApprovalTaskUncheckedUpdateManyWithoutNodeInstanceInput>
  }

  export type ApprovalTaskLogCreateWithoutTaskInput = {
    id?: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    comment?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
    operator: UserCreateNestedOneWithoutApprovalActionLogsInput
    targetUser?: UserCreateNestedOneWithoutApprovalActionTargetsInput
  }

  export type ApprovalTaskLogUncheckedCreateWithoutTaskInput = {
    id?: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    operatorId: string
    comment?: string | null
    targetUserId?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
  }

  export type ApprovalTaskLogCreateOrConnectWithoutTaskInput = {
    where: ApprovalTaskLogWhereUniqueInput
    create: XOR<ApprovalTaskLogCreateWithoutTaskInput, ApprovalTaskLogUncheckedCreateWithoutTaskInput>
  }

  export type ApprovalTaskLogCreateManyTaskInputEnvelope = {
    data: ApprovalTaskLogCreateManyTaskInput | ApprovalTaskLogCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalInstanceCreateWithoutApprovalTasksInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    initiator: UserCreateNestedOneWithoutInitiatedProcessesInput
    version: ApprovalVersionCreateNestedOneWithoutInstancesInput
    nodeInstances?: ApprovalNodeInstanceCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceUncheckedCreateWithoutApprovalTasksInput = {
    id?: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueUncheckedCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceCreateOrConnectWithoutApprovalTasksInput = {
    where: ApprovalInstanceWhereUniqueInput
    create: XOR<ApprovalInstanceCreateWithoutApprovalTasksInput, ApprovalInstanceUncheckedCreateWithoutApprovalTasksInput>
  }

  export type ApprovalNodeInstanceCreateWithoutApprovalTasksInput = {
    id?: string
    nodeId: string
    nodeName: string
    nodeType: string
    status?: $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceCreateassigneesInput | string[]
    approvalMode?: string | null
    executionCount?: number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: Date | string
    endTime?: Date | string | null
    instance: ApprovalInstanceCreateNestedOneWithoutNodeInstancesInput
  }

  export type ApprovalNodeInstanceUncheckedCreateWithoutApprovalTasksInput = {
    id?: string
    instanceId: string
    nodeId: string
    nodeName: string
    nodeType: string
    status?: $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceCreateassigneesInput | string[]
    approvalMode?: string | null
    executionCount?: number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: Date | string
    endTime?: Date | string | null
  }

  export type ApprovalNodeInstanceCreateOrConnectWithoutApprovalTasksInput = {
    where: ApprovalNodeInstanceWhereUniqueInput
    create: XOR<ApprovalNodeInstanceCreateWithoutApprovalTasksInput, ApprovalNodeInstanceUncheckedCreateWithoutApprovalTasksInput>
  }

  export type ReminderQueueCreateWithoutTaskInput = {
    id?: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
    instance: ApprovalInstanceCreateNestedOneWithoutReminderQueuesInput
  }

  export type ReminderQueueUncheckedCreateWithoutTaskInput = {
    id?: string
    instanceId: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
  }

  export type ReminderQueueCreateOrConnectWithoutTaskInput = {
    where: ReminderQueueWhereUniqueInput
    create: XOR<ReminderQueueCreateWithoutTaskInput, ReminderQueueUncheckedCreateWithoutTaskInput>
  }

  export type ReminderQueueCreateManyTaskInputEnvelope = {
    data: ReminderQueueCreateManyTaskInput | ReminderQueueCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalTaskLogUpsertWithWhereUniqueWithoutTaskInput = {
    where: ApprovalTaskLogWhereUniqueInput
    update: XOR<ApprovalTaskLogUpdateWithoutTaskInput, ApprovalTaskLogUncheckedUpdateWithoutTaskInput>
    create: XOR<ApprovalTaskLogCreateWithoutTaskInput, ApprovalTaskLogUncheckedCreateWithoutTaskInput>
  }

  export type ApprovalTaskLogUpdateWithWhereUniqueWithoutTaskInput = {
    where: ApprovalTaskLogWhereUniqueInput
    data: XOR<ApprovalTaskLogUpdateWithoutTaskInput, ApprovalTaskLogUncheckedUpdateWithoutTaskInput>
  }

  export type ApprovalTaskLogUpdateManyWithWhereWithoutTaskInput = {
    where: ApprovalTaskLogScalarWhereInput
    data: XOR<ApprovalTaskLogUpdateManyMutationInput, ApprovalTaskLogUncheckedUpdateManyWithoutTaskInput>
  }

  export type ApprovalTaskLogScalarWhereInput = {
    AND?: ApprovalTaskLogScalarWhereInput | ApprovalTaskLogScalarWhereInput[]
    OR?: ApprovalTaskLogScalarWhereInput[]
    NOT?: ApprovalTaskLogScalarWhereInput | ApprovalTaskLogScalarWhereInput[]
    id?: UuidFilter<"ApprovalTaskLog"> | string
    taskId?: UuidFilter<"ApprovalTaskLog"> | string
    instanceId?: UuidFilter<"ApprovalTaskLog"> | string
    action?: EnumApprovalTaskActionFilter<"ApprovalTaskLog"> | $Enums.ApprovalTaskAction
    operatorId?: UuidFilter<"ApprovalTaskLog"> | string
    comment?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    targetUserId?: UuidNullableFilter<"ApprovalTaskLog"> | string | null
    targetNodeId?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    addSignUsers?: StringNullableListFilter<"ApprovalTaskLog">
    formDataChanges?: JsonNullableFilter<"ApprovalTaskLog">
    attachments?: JsonNullableFilter<"ApprovalTaskLog">
    ipAddress?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    userAgent?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    requestId?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    riskLevel?: EnumRiskLevelNullableFilter<"ApprovalTaskLog"> | $Enums.RiskLevel | null
    adminReason?: StringNullableFilter<"ApprovalTaskLog"> | string | null
    metadata?: JsonNullableFilter<"ApprovalTaskLog">
    actionTime?: DateTimeFilter<"ApprovalTaskLog"> | Date | string
  }

  export type ApprovalInstanceUpsertWithoutApprovalTasksInput = {
    update: XOR<ApprovalInstanceUpdateWithoutApprovalTasksInput, ApprovalInstanceUncheckedUpdateWithoutApprovalTasksInput>
    create: XOR<ApprovalInstanceCreateWithoutApprovalTasksInput, ApprovalInstanceUncheckedCreateWithoutApprovalTasksInput>
    where?: ApprovalInstanceWhereInput
  }

  export type ApprovalInstanceUpdateToOneWithWhereWithoutApprovalTasksInput = {
    where?: ApprovalInstanceWhereInput
    data: XOR<ApprovalInstanceUpdateWithoutApprovalTasksInput, ApprovalInstanceUncheckedUpdateWithoutApprovalTasksInput>
  }

  export type ApprovalInstanceUpdateWithoutApprovalTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiator?: UserUpdateOneRequiredWithoutInitiatedProcessesNestedInput
    version?: ApprovalVersionUpdateOneRequiredWithoutInstancesNestedInput
    nodeInstances?: ApprovalNodeInstanceUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateWithoutApprovalTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    initiatorId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUncheckedUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalNodeInstanceUpsertWithoutApprovalTasksInput = {
    update: XOR<ApprovalNodeInstanceUpdateWithoutApprovalTasksInput, ApprovalNodeInstanceUncheckedUpdateWithoutApprovalTasksInput>
    create: XOR<ApprovalNodeInstanceCreateWithoutApprovalTasksInput, ApprovalNodeInstanceUncheckedCreateWithoutApprovalTasksInput>
    where?: ApprovalNodeInstanceWhereInput
  }

  export type ApprovalNodeInstanceUpdateToOneWithWhereWithoutApprovalTasksInput = {
    where?: ApprovalNodeInstanceWhereInput
    data: XOR<ApprovalNodeInstanceUpdateWithoutApprovalTasksInput, ApprovalNodeInstanceUncheckedUpdateWithoutApprovalTasksInput>
  }

  export type ApprovalNodeInstanceUpdateWithoutApprovalTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    instance?: ApprovalInstanceUpdateOneRequiredWithoutNodeInstancesNestedInput
  }

  export type ApprovalNodeInstanceUncheckedUpdateWithoutApprovalTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ReminderQueueUpsertWithWhereUniqueWithoutTaskInput = {
    where: ReminderQueueWhereUniqueInput
    update: XOR<ReminderQueueUpdateWithoutTaskInput, ReminderQueueUncheckedUpdateWithoutTaskInput>
    create: XOR<ReminderQueueCreateWithoutTaskInput, ReminderQueueUncheckedCreateWithoutTaskInput>
  }

  export type ReminderQueueUpdateWithWhereUniqueWithoutTaskInput = {
    where: ReminderQueueWhereUniqueInput
    data: XOR<ReminderQueueUpdateWithoutTaskInput, ReminderQueueUncheckedUpdateWithoutTaskInput>
  }

  export type ReminderQueueUpdateManyWithWhereWithoutTaskInput = {
    where: ReminderQueueScalarWhereInput
    data: XOR<ReminderQueueUpdateManyMutationInput, ReminderQueueUncheckedUpdateManyWithoutTaskInput>
  }

  export type UserCreateWithoutApprovalActionLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutApprovalActionLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutApprovalActionLogsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutApprovalActionLogsInput, UserUncheckedCreateWithoutApprovalActionLogsInput>
  }

  export type UserCreateWithoutApprovalActionTargetsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutApprovalActionTargetsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutApprovalActionTargetsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutApprovalActionTargetsInput, UserUncheckedCreateWithoutApprovalActionTargetsInput>
  }

  export type ApprovalTaskCreateWithoutActionLogsInput = {
    id?: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    instance: ApprovalInstanceCreateNestedOneWithoutApprovalTasksInput
    nodeInstance: ApprovalNodeInstanceCreateNestedOneWithoutApprovalTasksInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskUncheckedCreateWithoutActionLogsInput = {
    id?: string
    instanceId: string
    nodeInstanceId: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskCreateOrConnectWithoutActionLogsInput = {
    where: ApprovalTaskWhereUniqueInput
    create: XOR<ApprovalTaskCreateWithoutActionLogsInput, ApprovalTaskUncheckedCreateWithoutActionLogsInput>
  }

  export type UserUpsertWithoutApprovalActionLogsInput = {
    update: XOR<UserUpdateWithoutApprovalActionLogsInput, UserUncheckedUpdateWithoutApprovalActionLogsInput>
    create: XOR<UserCreateWithoutApprovalActionLogsInput, UserUncheckedCreateWithoutApprovalActionLogsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutApprovalActionLogsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutApprovalActionLogsInput, UserUncheckedUpdateWithoutApprovalActionLogsInput>
  }

  export type UserUpdateWithoutApprovalActionLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutApprovalActionLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutApprovalActionTargetsInput = {
    update: XOR<UserUpdateWithoutApprovalActionTargetsInput, UserUncheckedUpdateWithoutApprovalActionTargetsInput>
    create: XOR<UserCreateWithoutApprovalActionTargetsInput, UserUncheckedCreateWithoutApprovalActionTargetsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutApprovalActionTargetsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutApprovalActionTargetsInput, UserUncheckedUpdateWithoutApprovalActionTargetsInput>
  }

  export type UserUpdateWithoutApprovalActionTargetsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutApprovalActionTargetsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type ApprovalTaskUpsertWithoutActionLogsInput = {
    update: XOR<ApprovalTaskUpdateWithoutActionLogsInput, ApprovalTaskUncheckedUpdateWithoutActionLogsInput>
    create: XOR<ApprovalTaskCreateWithoutActionLogsInput, ApprovalTaskUncheckedCreateWithoutActionLogsInput>
    where?: ApprovalTaskWhereInput
  }

  export type ApprovalTaskUpdateToOneWithWhereWithoutActionLogsInput = {
    where?: ApprovalTaskWhereInput
    data: XOR<ApprovalTaskUpdateWithoutActionLogsInput, ApprovalTaskUncheckedUpdateWithoutActionLogsInput>
  }

  export type ApprovalTaskUpdateWithoutActionLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    instance?: ApprovalInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput
    nodeInstance?: ApprovalNodeInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalTaskUncheckedUpdateWithoutActionLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    nodeInstanceId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalInstanceCreateWithoutCallbackRetriesInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    initiator: UserCreateNestedOneWithoutInitiatedProcessesInput
    version: ApprovalVersionCreateNestedOneWithoutInstancesInput
    nodeInstances?: ApprovalNodeInstanceCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceUncheckedCreateWithoutCallbackRetriesInput = {
    id?: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskUncheckedCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceCreateOrConnectWithoutCallbackRetriesInput = {
    where: ApprovalInstanceWhereUniqueInput
    create: XOR<ApprovalInstanceCreateWithoutCallbackRetriesInput, ApprovalInstanceUncheckedCreateWithoutCallbackRetriesInput>
  }

  export type ApprovalInstanceUpsertWithoutCallbackRetriesInput = {
    update: XOR<ApprovalInstanceUpdateWithoutCallbackRetriesInput, ApprovalInstanceUncheckedUpdateWithoutCallbackRetriesInput>
    create: XOR<ApprovalInstanceCreateWithoutCallbackRetriesInput, ApprovalInstanceUncheckedCreateWithoutCallbackRetriesInput>
    where?: ApprovalInstanceWhereInput
  }

  export type ApprovalInstanceUpdateToOneWithWhereWithoutCallbackRetriesInput = {
    where?: ApprovalInstanceWhereInput
    data: XOR<ApprovalInstanceUpdateWithoutCallbackRetriesInput, ApprovalInstanceUncheckedUpdateWithoutCallbackRetriesInput>
  }

  export type ApprovalInstanceUpdateWithoutCallbackRetriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiator?: UserUpdateOneRequiredWithoutInitiatedProcessesNestedInput
    version?: ApprovalVersionUpdateOneRequiredWithoutInstancesNestedInput
    nodeInstances?: ApprovalNodeInstanceUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateWithoutCallbackRetriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    initiatorId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUncheckedUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalTaskCreateWithoutReminderQueuesInput = {
    id?: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    actionLogs?: ApprovalTaskLogCreateNestedManyWithoutTaskInput
    instance: ApprovalInstanceCreateNestedOneWithoutApprovalTasksInput
    nodeInstance: ApprovalNodeInstanceCreateNestedOneWithoutApprovalTasksInput
  }

  export type ApprovalTaskUncheckedCreateWithoutReminderQueuesInput = {
    id?: string
    instanceId: string
    nodeInstanceId: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
    actionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTaskInput
  }

  export type ApprovalTaskCreateOrConnectWithoutReminderQueuesInput = {
    where: ApprovalTaskWhereUniqueInput
    create: XOR<ApprovalTaskCreateWithoutReminderQueuesInput, ApprovalTaskUncheckedCreateWithoutReminderQueuesInput>
  }

  export type ApprovalInstanceCreateWithoutReminderQueuesInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    initiator: UserCreateNestedOneWithoutInitiatedProcessesInput
    version: ApprovalVersionCreateNestedOneWithoutInstancesInput
    nodeInstances?: ApprovalNodeInstanceCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceUncheckedCreateWithoutReminderQueuesInput = {
    id?: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskUncheckedCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueUncheckedCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceCreateOrConnectWithoutReminderQueuesInput = {
    where: ApprovalInstanceWhereUniqueInput
    create: XOR<ApprovalInstanceCreateWithoutReminderQueuesInput, ApprovalInstanceUncheckedCreateWithoutReminderQueuesInput>
  }

  export type ApprovalTaskUpsertWithoutReminderQueuesInput = {
    update: XOR<ApprovalTaskUpdateWithoutReminderQueuesInput, ApprovalTaskUncheckedUpdateWithoutReminderQueuesInput>
    create: XOR<ApprovalTaskCreateWithoutReminderQueuesInput, ApprovalTaskUncheckedCreateWithoutReminderQueuesInput>
    where?: ApprovalTaskWhereInput
  }

  export type ApprovalTaskUpdateToOneWithWhereWithoutReminderQueuesInput = {
    where?: ApprovalTaskWhereInput
    data: XOR<ApprovalTaskUpdateWithoutReminderQueuesInput, ApprovalTaskUncheckedUpdateWithoutReminderQueuesInput>
  }

  export type ApprovalTaskUpdateWithoutReminderQueuesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actionLogs?: ApprovalTaskLogUpdateManyWithoutTaskNestedInput
    instance?: ApprovalInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput
    nodeInstance?: ApprovalNodeInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput
  }

  export type ApprovalTaskUncheckedUpdateWithoutReminderQueuesInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    nodeInstanceId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalInstanceUpsertWithoutReminderQueuesInput = {
    update: XOR<ApprovalInstanceUpdateWithoutReminderQueuesInput, ApprovalInstanceUncheckedUpdateWithoutReminderQueuesInput>
    create: XOR<ApprovalInstanceCreateWithoutReminderQueuesInput, ApprovalInstanceUncheckedCreateWithoutReminderQueuesInput>
    where?: ApprovalInstanceWhereInput
  }

  export type ApprovalInstanceUpdateToOneWithWhereWithoutReminderQueuesInput = {
    where?: ApprovalInstanceWhereInput
    data: XOR<ApprovalInstanceUpdateWithoutReminderQueuesInput, ApprovalInstanceUncheckedUpdateWithoutReminderQueuesInput>
  }

  export type ApprovalInstanceUpdateWithoutReminderQueuesInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiator?: UserUpdateOneRequiredWithoutInitiatedProcessesNestedInput
    version?: ApprovalVersionUpdateOneRequiredWithoutInstancesNestedInput
    nodeInstances?: ApprovalNodeInstanceUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateWithoutReminderQueuesInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    initiatorId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUncheckedUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUncheckedUpdateManyWithoutInstanceNestedInput
  }

  export type UserCreateWithoutDelegationSettingsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDelegationSettingsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDelegationSettingsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDelegationSettingsInput, UserUncheckedCreateWithoutDelegationSettingsInput>
  }

  export type UserCreateWithoutDelegatedToMeInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDelegatedToMeInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDelegatedToMeInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDelegatedToMeInput, UserUncheckedCreateWithoutDelegatedToMeInput>
  }

  export type UserUpsertWithoutDelegationSettingsInput = {
    update: XOR<UserUpdateWithoutDelegationSettingsInput, UserUncheckedUpdateWithoutDelegationSettingsInput>
    create: XOR<UserCreateWithoutDelegationSettingsInput, UserUncheckedCreateWithoutDelegationSettingsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDelegationSettingsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDelegationSettingsInput, UserUncheckedUpdateWithoutDelegationSettingsInput>
  }

  export type UserUpdateWithoutDelegationSettingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDelegationSettingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutDelegatedToMeInput = {
    update: XOR<UserUpdateWithoutDelegatedToMeInput, UserUncheckedUpdateWithoutDelegatedToMeInput>
    create: XOR<UserCreateWithoutDelegatedToMeInput, UserUncheckedCreateWithoutDelegatedToMeInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDelegatedToMeInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDelegatedToMeInput, UserUncheckedUpdateWithoutDelegatedToMeInput>
  }

  export type UserUpdateWithoutDelegatedToMeInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDelegatedToMeInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateWithoutApprovalAdminExportsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutApprovalAdminExportsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutApprovalAdminExportsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutApprovalAdminExportsInput, UserUncheckedCreateWithoutApprovalAdminExportsInput>
  }

  export type UserUpsertWithoutApprovalAdminExportsInput = {
    update: XOR<UserUpdateWithoutApprovalAdminExportsInput, UserUncheckedUpdateWithoutApprovalAdminExportsInput>
    create: XOR<UserCreateWithoutApprovalAdminExportsInput, UserUncheckedCreateWithoutApprovalAdminExportsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutApprovalAdminExportsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutApprovalAdminExportsInput, UserUncheckedUpdateWithoutApprovalAdminExportsInput>
  }

  export type UserUpdateWithoutApprovalAdminExportsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutApprovalAdminExportsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type RegionCreateWithoutPrimaryOrganizationsInput = {
    id?: string
    code: string
    name: string
    nameEn?: string | null
    nameZh?: string | null
    timezone?: string | null
    currency?: string | null
    locale?: string | null
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutRegionInput
  }

  export type RegionUncheckedCreateWithoutPrimaryOrganizationsInput = {
    id?: string
    code: string
    name: string
    nameEn?: string | null
    nameZh?: string | null
    timezone?: string | null
    currency?: string | null
    locale?: string | null
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutRegionInput
  }

  export type RegionCreateOrConnectWithoutPrimaryOrganizationsInput = {
    where: RegionWhereUniqueInput
    create: XOR<RegionCreateWithoutPrimaryOrganizationsInput, RegionUncheckedCreateWithoutPrimaryOrganizationsInput>
  }

  export type DepartmentCreateWithoutOrganizationInput = {
    id?: string
    name: string
    code: string
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parent?: DepartmentCreateNestedOneWithoutChildrenInput
    children?: DepartmentCreateNestedManyWithoutParentInput
    userMemberships?: UserDepartmentCreateNestedManyWithoutDepartmentInput
  }

  export type DepartmentUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    code: string
    parentId?: string | null
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DepartmentUncheckedCreateNestedManyWithoutParentInput
    userMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutDepartmentInput
  }

  export type DepartmentCreateOrConnectWithoutOrganizationInput = {
    where: DepartmentWhereUniqueInput
    create: XOR<DepartmentCreateWithoutOrganizationInput, DepartmentUncheckedCreateWithoutOrganizationInput>
  }

  export type DepartmentCreateManyOrganizationInputEnvelope = {
    data: DepartmentCreateManyOrganizationInput | DepartmentCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type UserDepartmentCreateWithoutOrganizationInput = {
    id?: string
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutDepartmentMembershipsInput
    department: DepartmentCreateNestedOneWithoutUserMembershipsInput
    position?: PositionCreateNestedOneWithoutUserMembershipsInput
    manager?: UserCreateNestedOneWithoutManagedUsersInput
  }

  export type UserDepartmentUncheckedCreateWithoutOrganizationInput = {
    id?: string
    userId: string
    departmentId: string
    positionId?: string | null
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentCreateOrConnectWithoutOrganizationInput = {
    where: UserDepartmentWhereUniqueInput
    create: XOR<UserDepartmentCreateWithoutOrganizationInput, UserDepartmentUncheckedCreateWithoutOrganizationInput>
  }

  export type UserDepartmentCreateManyOrganizationInputEnvelope = {
    data: UserDepartmentCreateManyOrganizationInput | UserDepartmentCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationRegionCreateWithoutOrganizationInput = {
    id?: string
    isDefault?: boolean
    createdAt?: Date | string
    region: RegionCreateNestedOneWithoutOrganizationRegionsInput
  }

  export type OrganizationRegionUncheckedCreateWithoutOrganizationInput = {
    id?: string
    regionId: string
    isDefault?: boolean
    createdAt?: Date | string
  }

  export type OrganizationRegionCreateOrConnectWithoutOrganizationInput = {
    where: OrganizationRegionWhereUniqueInput
    create: XOR<OrganizationRegionCreateWithoutOrganizationInput, OrganizationRegionUncheckedCreateWithoutOrganizationInput>
  }

  export type OrganizationRegionCreateManyOrganizationInputEnvelope = {
    data: OrganizationRegionCreateManyOrganizationInput | OrganizationRegionCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type FormDefinitionCreateWithoutOrganizationInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutCreatedFormDefinitionsInput
    updater?: UserCreateNestedOneWithoutUpdatedFormDefinitionsInput
    instances?: FormInstanceCreateNestedManyWithoutDefinitionInput
    versions?: FormVersionCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionUncheckedCreateWithoutOrganizationInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutDefinitionInput
    versions?: FormVersionUncheckedCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionCreateOrConnectWithoutOrganizationInput = {
    where: FormDefinitionWhereUniqueInput
    create: XOR<FormDefinitionCreateWithoutOrganizationInput, FormDefinitionUncheckedCreateWithoutOrganizationInput>
  }

  export type FormDefinitionCreateManyOrganizationInputEnvelope = {
    data: FormDefinitionCreateManyOrganizationInput | FormDefinitionCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type FormWebhookCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    url: string
    secret: string
    events: JsonNullValueInput | InputJsonValue
    enabled?: boolean
    maxRetries?: number
    timeoutMs?: number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    logs?: FormWebhookLogCreateNestedManyWithoutWebhookInput
  }

  export type FormWebhookUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    url: string
    secret: string
    events: JsonNullValueInput | InputJsonValue
    enabled?: boolean
    maxRetries?: number
    timeoutMs?: number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    logs?: FormWebhookLogUncheckedCreateNestedManyWithoutWebhookInput
  }

  export type FormWebhookCreateOrConnectWithoutOrganizationInput = {
    where: FormWebhookWhereUniqueInput
    create: XOR<FormWebhookCreateWithoutOrganizationInput, FormWebhookUncheckedCreateWithoutOrganizationInput>
  }

  export type FormWebhookCreateManyOrganizationInputEnvelope = {
    data: FormWebhookCreateManyOrganizationInput | FormWebhookCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalDefinitionCreateWithoutOrganizationInput = {
    id?: string
    key: string
    name: string
    category: string
    description?: string | null
    latestVersion?: number
    status?: $Enums.ProcessStatus
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    versions?: ApprovalVersionCreateNestedManyWithoutDefinitionInput
  }

  export type ApprovalDefinitionUncheckedCreateWithoutOrganizationInput = {
    id?: string
    key: string
    name: string
    category: string
    description?: string | null
    latestVersion?: number
    status?: $Enums.ProcessStatus
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    versions?: ApprovalVersionUncheckedCreateNestedManyWithoutDefinitionInput
  }

  export type ApprovalDefinitionCreateOrConnectWithoutOrganizationInput = {
    where: ApprovalDefinitionWhereUniqueInput
    create: XOR<ApprovalDefinitionCreateWithoutOrganizationInput, ApprovalDefinitionUncheckedCreateWithoutOrganizationInput>
  }

  export type ApprovalDefinitionCreateManyOrganizationInputEnvelope = {
    data: ApprovalDefinitionCreateManyOrganizationInput | ApprovalDefinitionCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type UserRoleCreateWithoutOrganizationInput = {
    id?: string
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
    role: RoleCreateNestedOneWithoutUsersInput
    user: UserCreateNestedOneWithoutRolesInput
  }

  export type UserRoleUncheckedCreateWithoutOrganizationInput = {
    id?: string
    userId: string
    roleId: string
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
  }

  export type UserRoleCreateOrConnectWithoutOrganizationInput = {
    where: UserRoleWhereUniqueInput
    create: XOR<UserRoleCreateWithoutOrganizationInput, UserRoleUncheckedCreateWithoutOrganizationInput>
  }

  export type UserRoleCreateManyOrganizationInputEnvelope = {
    data: UserRoleCreateManyOrganizationInput | UserRoleCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type PerformanceCycleCreateWithoutOrganizationInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutOrganizationInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutOrganizationInput, PerformanceCycleUncheckedCreateWithoutOrganizationInput>
  }

  export type PerformanceCycleCreateManyOrganizationInputEnvelope = {
    data: PerformanceCycleCreateManyOrganizationInput | PerformanceCycleCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type GradeConfigCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    grades: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycles?: PerformanceCycleCreateNestedManyWithoutGradeConfigInput
  }

  export type GradeConfigUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    grades: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycles?: PerformanceCycleUncheckedCreateNestedManyWithoutGradeConfigInput
  }

  export type GradeConfigCreateOrConnectWithoutOrganizationInput = {
    where: GradeConfigWhereUniqueInput
    create: XOR<GradeConfigCreateWithoutOrganizationInput, GradeConfigUncheckedCreateWithoutOrganizationInput>
  }

  export type GradeConfigCreateManyOrganizationInputEnvelope = {
    data: GradeConfigCreateManyOrganizationInput | GradeConfigCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type PerformanceResultCreateWithoutOrganizationInput = {
    id?: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutResultsInput
    adjustmentLogs?: GradeAdjustmentLogCreateNestedManyWithoutResultInput
  }

  export type PerformanceResultUncheckedCreateWithoutOrganizationInput = {
    id?: string
    cycleId: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    adjustmentLogs?: GradeAdjustmentLogUncheckedCreateNestedManyWithoutResultInput
  }

  export type PerformanceResultCreateOrConnectWithoutOrganizationInput = {
    where: PerformanceResultWhereUniqueInput
    create: XOR<PerformanceResultCreateWithoutOrganizationInput, PerformanceResultUncheckedCreateWithoutOrganizationInput>
  }

  export type PerformanceResultCreateManyOrganizationInputEnvelope = {
    data: PerformanceResultCreateManyOrganizationInput | PerformanceResultCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type Evaluation360TemplateCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    cycle?: PerformanceCycleCreateNestedOneWithoutE360TemplatesInput
    evaluations?: Evaluation360CreateNestedManyWithoutTemplateInput
  }

  export type Evaluation360TemplateUncheckedCreateWithoutOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycleId?: string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutTemplateInput
  }

  export type Evaluation360TemplateCreateOrConnectWithoutOrganizationInput = {
    where: Evaluation360TemplateWhereUniqueInput
    create: XOR<Evaluation360TemplateCreateWithoutOrganizationInput, Evaluation360TemplateUncheckedCreateWithoutOrganizationInput>
  }

  export type Evaluation360TemplateCreateManyOrganizationInputEnvelope = {
    data: Evaluation360TemplateCreateManyOrganizationInput | Evaluation360TemplateCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageTokenCreateWithoutOrganizationInput = {
    id?: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageTokensInput
    revokedBy?: UserCreateNestedOneWithoutAiUsageTokensRevokedInput
  }

  export type AiUsageTokenUncheckedCreateWithoutOrganizationInput = {
    id?: string
    userId: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    revokedById?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageTokenCreateOrConnectWithoutOrganizationInput = {
    where: AiUsageTokenWhereUniqueInput
    create: XOR<AiUsageTokenCreateWithoutOrganizationInput, AiUsageTokenUncheckedCreateWithoutOrganizationInput>
  }

  export type AiUsageTokenCreateManyOrganizationInputEnvelope = {
    data: AiUsageTokenCreateManyOrganizationInput | AiUsageTokenCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageDeviceCreateWithoutOrganizationInput = {
    id?: string
    deviceId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedReason?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageDevicesInput
    blockedBy?: UserCreateNestedOneWithoutAiUsageDevicesBlockedInput
    events?: AiUsageEventCreateNestedManyWithoutDeviceInput
  }

  export type AiUsageDeviceUncheckedCreateWithoutOrganizationInput = {
    id?: string
    deviceId: string
    userId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedById?: string | null
    blockedReason?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: AiUsageEventUncheckedCreateNestedManyWithoutDeviceInput
  }

  export type AiUsageDeviceCreateOrConnectWithoutOrganizationInput = {
    where: AiUsageDeviceWhereUniqueInput
    create: XOR<AiUsageDeviceCreateWithoutOrganizationInput, AiUsageDeviceUncheckedCreateWithoutOrganizationInput>
  }

  export type AiUsageDeviceCreateManyOrganizationInputEnvelope = {
    data: AiUsageDeviceCreateManyOrganizationInput | AiUsageDeviceCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageEventCreateWithoutOrganizationInput = {
    id?: string
    rawMessageId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    device: AiUsageDeviceCreateNestedOneWithoutEventsInput
    user: UserCreateNestedOneWithoutAiUsageEventsInput
  }

  export type AiUsageEventUncheckedCreateWithoutOrganizationInput = {
    id?: string
    rawMessageId: string
    deviceId: string
    userId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventCreateOrConnectWithoutOrganizationInput = {
    where: AiUsageEventWhereUniqueInput
    create: XOR<AiUsageEventCreateWithoutOrganizationInput, AiUsageEventUncheckedCreateWithoutOrganizationInput>
  }

  export type AiUsageEventCreateManyOrganizationInputEnvelope = {
    data: AiUsageEventCreateManyOrganizationInput | AiUsageEventCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageDailyRollupCreateWithoutOrganizationInput = {
    id?: string
    date: Date | string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageRollupsInput
  }

  export type AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput = {
    id?: string
    date: Date | string
    userId: string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDailyRollupCreateOrConnectWithoutOrganizationInput = {
    where: AiUsageDailyRollupWhereUniqueInput
    create: XOR<AiUsageDailyRollupCreateWithoutOrganizationInput, AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput>
  }

  export type AiUsageDailyRollupCreateManyOrganizationInputEnvelope = {
    data: AiUsageDailyRollupCreateManyOrganizationInput | AiUsageDailyRollupCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaSectionCreateWithoutOrganizationInput = {
    id?: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    meeting: MeetingCreateNestedOneWithoutAgendaSectionsInput
    createdBy: UserCreateNestedOneWithoutAgendaSectionsCreatedInput
    items?: MeetingAgendaItemCreateNestedManyWithoutSectionInput
  }

  export type MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput = {
    id?: string
    meetingId: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: MeetingAgendaItemUncheckedCreateNestedManyWithoutSectionInput
  }

  export type MeetingAgendaSectionCreateOrConnectWithoutOrganizationInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    create: XOR<MeetingAgendaSectionCreateWithoutOrganizationInput, MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAgendaSectionCreateManyOrganizationInputEnvelope = {
    data: MeetingAgendaSectionCreateManyOrganizationInput | MeetingAgendaSectionCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemCreateWithoutOrganizationInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    section: MeetingAgendaSectionCreateNestedOneWithoutItemsInput
    presenter?: UserCreateNestedOneWithoutAgendaItemsPresentedInput
    createdBy: UserCreateNestedOneWithoutAgendaItemsCreatedInput
    uploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemUncheckedCreateWithoutOrganizationInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemCreateOrConnectWithoutOrganizationInput = {
    where: MeetingAgendaItemWhereUniqueInput
    create: XOR<MeetingAgendaItemCreateWithoutOrganizationInput, MeetingAgendaItemUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemCreateManyOrganizationInputEnvelope = {
    data: MeetingAgendaItemCreateManyOrganizationInput | MeetingAgendaItemCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput = {
    id?: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutUploadTasksInput
    assignee: UserCreateNestedOneWithoutUploadTasksAssignedInput
    assignedBy: UserCreateNestedOneWithoutUploadTasksAssignedByInput
    createdBy: UserCreateNestedOneWithoutUploadTasksCreatedInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput = {
    id?: string
    agendaItemId: string
    assigneeUserId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateOrConnectWithoutOrganizationInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemUploadTaskCreateManyOrganizationInputEnvelope = {
    data: MeetingAgendaItemUploadTaskCreateManyOrganizationInput | MeetingAgendaItemUploadTaskCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemAttachmentCreateWithoutOrganizationInput = {
    id?: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutAttachmentsInput
    uploadedBy: UserCreateNestedOneWithoutAgendaAttachmentsUploadedInput
    createdBy: UserCreateNestedOneWithoutAgendaAttachmentsCreatedInput
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput = {
    id?: string
    agendaItemId: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateOrConnectWithoutOrganizationInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    create: XOR<MeetingAgendaItemAttachmentCreateWithoutOrganizationInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemAttachmentCreateManyOrganizationInputEnvelope = {
    data: MeetingAgendaItemAttachmentCreateManyOrganizationInput | MeetingAgendaItemAttachmentCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttachmentCreateWithoutOrganizationInput = {
    id?: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    meeting: MeetingCreateNestedOneWithoutAttachmentsInput
    uploadedBy: UserCreateNestedOneWithoutMeetingAttachmentsUploadedInput
    createdBy: UserCreateNestedOneWithoutMeetingAttachmentsCreatedInput
  }

  export type MeetingAttachmentUncheckedCreateWithoutOrganizationInput = {
    id?: string
    meetingId: string
    uploadedById: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentCreateOrConnectWithoutOrganizationInput = {
    where: MeetingAttachmentWhereUniqueInput
    create: XOR<MeetingAttachmentCreateWithoutOrganizationInput, MeetingAttachmentUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAttachmentCreateManyOrganizationInputEnvelope = {
    data: MeetingAttachmentCreateManyOrganizationInput | MeetingAttachmentCreateManyOrganizationInput[]
    skipDuplicates?: boolean
  }

  export type RegionUpsertWithoutPrimaryOrganizationsInput = {
    update: XOR<RegionUpdateWithoutPrimaryOrganizationsInput, RegionUncheckedUpdateWithoutPrimaryOrganizationsInput>
    create: XOR<RegionCreateWithoutPrimaryOrganizationsInput, RegionUncheckedCreateWithoutPrimaryOrganizationsInput>
    where?: RegionWhereInput
  }

  export type RegionUpdateToOneWithWhereWithoutPrimaryOrganizationsInput = {
    where?: RegionWhereInput
    data: XOR<RegionUpdateWithoutPrimaryOrganizationsInput, RegionUncheckedUpdateWithoutPrimaryOrganizationsInput>
  }

  export type RegionUpdateWithoutPrimaryOrganizationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: NullableStringFieldUpdateOperationsInput | string | null
    currency?: NullableStringFieldUpdateOperationsInput | string | null
    locale?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationRegions?: OrganizationRegionUpdateManyWithoutRegionNestedInput
  }

  export type RegionUncheckedUpdateWithoutPrimaryOrganizationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: NullableStringFieldUpdateOperationsInput | string | null
    currency?: NullableStringFieldUpdateOperationsInput | string | null
    locale?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutRegionNestedInput
  }

  export type DepartmentUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: DepartmentWhereUniqueInput
    update: XOR<DepartmentUpdateWithoutOrganizationInput, DepartmentUncheckedUpdateWithoutOrganizationInput>
    create: XOR<DepartmentCreateWithoutOrganizationInput, DepartmentUncheckedCreateWithoutOrganizationInput>
  }

  export type DepartmentUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: DepartmentWhereUniqueInput
    data: XOR<DepartmentUpdateWithoutOrganizationInput, DepartmentUncheckedUpdateWithoutOrganizationInput>
  }

  export type DepartmentUpdateManyWithWhereWithoutOrganizationInput = {
    where: DepartmentScalarWhereInput
    data: XOR<DepartmentUpdateManyMutationInput, DepartmentUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type DepartmentScalarWhereInput = {
    AND?: DepartmentScalarWhereInput | DepartmentScalarWhereInput[]
    OR?: DepartmentScalarWhereInput[]
    NOT?: DepartmentScalarWhereInput | DepartmentScalarWhereInput[]
    id?: UuidFilter<"Department"> | string
    organizationId?: UuidFilter<"Department"> | string
    name?: StringFilter<"Department"> | string
    code?: StringFilter<"Department"> | string
    parentId?: UuidNullableFilter<"Department"> | string | null
    headId?: UuidNullableFilter<"Department"> | string | null
    description?: StringNullableFilter<"Department"> | string | null
    order?: IntFilter<"Department"> | number
    tenantId?: StringNullableFilter<"Department"> | string | null
    metadata?: JsonFilter<"Department">
    createdAt?: DateTimeFilter<"Department"> | Date | string
    updatedAt?: DateTimeFilter<"Department"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Department"> | Date | string | null
  }

  export type UserDepartmentUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: UserDepartmentWhereUniqueInput
    update: XOR<UserDepartmentUpdateWithoutOrganizationInput, UserDepartmentUncheckedUpdateWithoutOrganizationInput>
    create: XOR<UserDepartmentCreateWithoutOrganizationInput, UserDepartmentUncheckedCreateWithoutOrganizationInput>
  }

  export type UserDepartmentUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: UserDepartmentWhereUniqueInput
    data: XOR<UserDepartmentUpdateWithoutOrganizationInput, UserDepartmentUncheckedUpdateWithoutOrganizationInput>
  }

  export type UserDepartmentUpdateManyWithWhereWithoutOrganizationInput = {
    where: UserDepartmentScalarWhereInput
    data: XOR<UserDepartmentUpdateManyMutationInput, UserDepartmentUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type UserDepartmentScalarWhereInput = {
    AND?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
    OR?: UserDepartmentScalarWhereInput[]
    NOT?: UserDepartmentScalarWhereInput | UserDepartmentScalarWhereInput[]
    id?: UuidFilter<"UserDepartment"> | string
    userId?: UuidFilter<"UserDepartment"> | string
    organizationId?: UuidFilter<"UserDepartment"> | string
    departmentId?: UuidFilter<"UserDepartment"> | string
    positionId?: UuidNullableFilter<"UserDepartment"> | string | null
    managerId?: UuidNullableFilter<"UserDepartment"> | string | null
    isPrimary?: BoolFilter<"UserDepartment"> | boolean
    title?: StringNullableFilter<"UserDepartment"> | string | null
    joinedAt?: DateTimeFilter<"UserDepartment"> | Date | string
    leftAt?: DateTimeNullableFilter<"UserDepartment"> | Date | string | null
    createdAt?: DateTimeFilter<"UserDepartment"> | Date | string
    updatedAt?: DateTimeFilter<"UserDepartment"> | Date | string
  }

  export type OrganizationRegionUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: OrganizationRegionWhereUniqueInput
    update: XOR<OrganizationRegionUpdateWithoutOrganizationInput, OrganizationRegionUncheckedUpdateWithoutOrganizationInput>
    create: XOR<OrganizationRegionCreateWithoutOrganizationInput, OrganizationRegionUncheckedCreateWithoutOrganizationInput>
  }

  export type OrganizationRegionUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: OrganizationRegionWhereUniqueInput
    data: XOR<OrganizationRegionUpdateWithoutOrganizationInput, OrganizationRegionUncheckedUpdateWithoutOrganizationInput>
  }

  export type OrganizationRegionUpdateManyWithWhereWithoutOrganizationInput = {
    where: OrganizationRegionScalarWhereInput
    data: XOR<OrganizationRegionUpdateManyMutationInput, OrganizationRegionUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type OrganizationRegionScalarWhereInput = {
    AND?: OrganizationRegionScalarWhereInput | OrganizationRegionScalarWhereInput[]
    OR?: OrganizationRegionScalarWhereInput[]
    NOT?: OrganizationRegionScalarWhereInput | OrganizationRegionScalarWhereInput[]
    id?: UuidFilter<"OrganizationRegion"> | string
    organizationId?: UuidFilter<"OrganizationRegion"> | string
    regionId?: UuidFilter<"OrganizationRegion"> | string
    isDefault?: BoolFilter<"OrganizationRegion"> | boolean
    createdAt?: DateTimeFilter<"OrganizationRegion"> | Date | string
  }

  export type FormDefinitionUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: FormDefinitionWhereUniqueInput
    update: XOR<FormDefinitionUpdateWithoutOrganizationInput, FormDefinitionUncheckedUpdateWithoutOrganizationInput>
    create: XOR<FormDefinitionCreateWithoutOrganizationInput, FormDefinitionUncheckedCreateWithoutOrganizationInput>
  }

  export type FormDefinitionUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: FormDefinitionWhereUniqueInput
    data: XOR<FormDefinitionUpdateWithoutOrganizationInput, FormDefinitionUncheckedUpdateWithoutOrganizationInput>
  }

  export type FormDefinitionUpdateManyWithWhereWithoutOrganizationInput = {
    where: FormDefinitionScalarWhereInput
    data: XOR<FormDefinitionUpdateManyMutationInput, FormDefinitionUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type FormDefinitionScalarWhereInput = {
    AND?: FormDefinitionScalarWhereInput | FormDefinitionScalarWhereInput[]
    OR?: FormDefinitionScalarWhereInput[]
    NOT?: FormDefinitionScalarWhereInput | FormDefinitionScalarWhereInput[]
    id?: UuidFilter<"FormDefinition"> | string
    key?: StringFilter<"FormDefinition"> | string
    slug?: StringFilter<"FormDefinition"> | string
    slugHistory?: JsonNullableFilter<"FormDefinition">
    aliases?: JsonNullableFilter<"FormDefinition">
    name?: StringFilter<"FormDefinition"> | string
    category?: StringFilter<"FormDefinition"> | string
    description?: StringNullableFilter<"FormDefinition"> | string | null
    icon?: StringNullableFilter<"FormDefinition"> | string | null
    color?: StringNullableFilter<"FormDefinition"> | string | null
    defaultLocale?: StringFilter<"FormDefinition"> | string
    supportedLocales?: JsonFilter<"FormDefinition">
    latestVersion?: IntFilter<"FormDefinition"> | number
    status?: EnumFormStatusFilter<"FormDefinition"> | $Enums.FormStatus
    requiresApproval?: BoolFilter<"FormDefinition"> | boolean
    approvalProcessKey?: StringNullableFilter<"FormDefinition"> | string | null
    organizationId?: UuidNullableFilter<"FormDefinition"> | string | null
    createdBy?: UuidFilter<"FormDefinition"> | string
    updatedBy?: UuidNullableFilter<"FormDefinition"> | string | null
    createdAt?: DateTimeFilter<"FormDefinition"> | Date | string
    updatedAt?: DateTimeFilter<"FormDefinition"> | Date | string
  }

  export type FormWebhookUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: FormWebhookWhereUniqueInput
    update: XOR<FormWebhookUpdateWithoutOrganizationInput, FormWebhookUncheckedUpdateWithoutOrganizationInput>
    create: XOR<FormWebhookCreateWithoutOrganizationInput, FormWebhookUncheckedCreateWithoutOrganizationInput>
  }

  export type FormWebhookUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: FormWebhookWhereUniqueInput
    data: XOR<FormWebhookUpdateWithoutOrganizationInput, FormWebhookUncheckedUpdateWithoutOrganizationInput>
  }

  export type FormWebhookUpdateManyWithWhereWithoutOrganizationInput = {
    where: FormWebhookScalarWhereInput
    data: XOR<FormWebhookUpdateManyMutationInput, FormWebhookUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type FormWebhookScalarWhereInput = {
    AND?: FormWebhookScalarWhereInput | FormWebhookScalarWhereInput[]
    OR?: FormWebhookScalarWhereInput[]
    NOT?: FormWebhookScalarWhereInput | FormWebhookScalarWhereInput[]
    id?: UuidFilter<"FormWebhook"> | string
    organizationId?: UuidNullableFilter<"FormWebhook"> | string | null
    name?: StringFilter<"FormWebhook"> | string
    description?: StringNullableFilter<"FormWebhook"> | string | null
    url?: StringFilter<"FormWebhook"> | string
    secret?: StringFilter<"FormWebhook"> | string
    events?: JsonFilter<"FormWebhook">
    enabled?: BoolFilter<"FormWebhook"> | boolean
    maxRetries?: IntFilter<"FormWebhook"> | number
    timeoutMs?: IntFilter<"FormWebhook"> | number
    headers?: JsonNullableFilter<"FormWebhook">
    createdBy?: UuidFilter<"FormWebhook"> | string
    updatedBy?: UuidNullableFilter<"FormWebhook"> | string | null
    createdAt?: DateTimeFilter<"FormWebhook"> | Date | string
    updatedAt?: DateTimeFilter<"FormWebhook"> | Date | string
  }

  export type ApprovalDefinitionUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: ApprovalDefinitionWhereUniqueInput
    update: XOR<ApprovalDefinitionUpdateWithoutOrganizationInput, ApprovalDefinitionUncheckedUpdateWithoutOrganizationInput>
    create: XOR<ApprovalDefinitionCreateWithoutOrganizationInput, ApprovalDefinitionUncheckedCreateWithoutOrganizationInput>
  }

  export type ApprovalDefinitionUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: ApprovalDefinitionWhereUniqueInput
    data: XOR<ApprovalDefinitionUpdateWithoutOrganizationInput, ApprovalDefinitionUncheckedUpdateWithoutOrganizationInput>
  }

  export type ApprovalDefinitionUpdateManyWithWhereWithoutOrganizationInput = {
    where: ApprovalDefinitionScalarWhereInput
    data: XOR<ApprovalDefinitionUpdateManyMutationInput, ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type ApprovalDefinitionScalarWhereInput = {
    AND?: ApprovalDefinitionScalarWhereInput | ApprovalDefinitionScalarWhereInput[]
    OR?: ApprovalDefinitionScalarWhereInput[]
    NOT?: ApprovalDefinitionScalarWhereInput | ApprovalDefinitionScalarWhereInput[]
    id?: UuidFilter<"ApprovalDefinition"> | string
    key?: StringFilter<"ApprovalDefinition"> | string
    name?: StringFilter<"ApprovalDefinition"> | string
    category?: StringFilter<"ApprovalDefinition"> | string
    description?: StringNullableFilter<"ApprovalDefinition"> | string | null
    latestVersion?: IntFilter<"ApprovalDefinition"> | number
    organizationId?: UuidNullableFilter<"ApprovalDefinition"> | string | null
    status?: EnumProcessStatusFilter<"ApprovalDefinition"> | $Enums.ProcessStatus
    createdBy?: StringNullableFilter<"ApprovalDefinition"> | string | null
    createdAt?: DateTimeFilter<"ApprovalDefinition"> | Date | string
    updatedBy?: StringNullableFilter<"ApprovalDefinition"> | string | null
    updatedAt?: DateTimeFilter<"ApprovalDefinition"> | Date | string
  }

  export type UserRoleUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: UserRoleWhereUniqueInput
    update: XOR<UserRoleUpdateWithoutOrganizationInput, UserRoleUncheckedUpdateWithoutOrganizationInput>
    create: XOR<UserRoleCreateWithoutOrganizationInput, UserRoleUncheckedCreateWithoutOrganizationInput>
  }

  export type UserRoleUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: UserRoleWhereUniqueInput
    data: XOR<UserRoleUpdateWithoutOrganizationInput, UserRoleUncheckedUpdateWithoutOrganizationInput>
  }

  export type UserRoleUpdateManyWithWhereWithoutOrganizationInput = {
    where: UserRoleScalarWhereInput
    data: XOR<UserRoleUpdateManyMutationInput, UserRoleUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type UserRoleScalarWhereInput = {
    AND?: UserRoleScalarWhereInput | UserRoleScalarWhereInput[]
    OR?: UserRoleScalarWhereInput[]
    NOT?: UserRoleScalarWhereInput | UserRoleScalarWhereInput[]
    id?: UuidFilter<"UserRole"> | string
    userId?: UuidFilter<"UserRole"> | string
    roleId?: UuidFilter<"UserRole"> | string
    organizationId?: UuidNullableFilter<"UserRole"> | string | null
    createdAt?: DateTimeFilter<"UserRole"> | Date | string
    lastReviewedAt?: DateTimeNullableFilter<"UserRole"> | Date | string | null
    lastReviewedBy?: UuidNullableFilter<"UserRole"> | string | null
    reviewComment?: StringNullableFilter<"UserRole"> | string | null
  }

  export type PerformanceCycleUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: PerformanceCycleWhereUniqueInput
    update: XOR<PerformanceCycleUpdateWithoutOrganizationInput, PerformanceCycleUncheckedUpdateWithoutOrganizationInput>
    create: XOR<PerformanceCycleCreateWithoutOrganizationInput, PerformanceCycleUncheckedCreateWithoutOrganizationInput>
  }

  export type PerformanceCycleUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: PerformanceCycleWhereUniqueInput
    data: XOR<PerformanceCycleUpdateWithoutOrganizationInput, PerformanceCycleUncheckedUpdateWithoutOrganizationInput>
  }

  export type PerformanceCycleUpdateManyWithWhereWithoutOrganizationInput = {
    where: PerformanceCycleScalarWhereInput
    data: XOR<PerformanceCycleUpdateManyMutationInput, PerformanceCycleUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type PerformanceCycleScalarWhereInput = {
    AND?: PerformanceCycleScalarWhereInput | PerformanceCycleScalarWhereInput[]
    OR?: PerformanceCycleScalarWhereInput[]
    NOT?: PerformanceCycleScalarWhereInput | PerformanceCycleScalarWhereInput[]
    id?: UuidFilter<"PerformanceCycle"> | string
    name?: StringFilter<"PerformanceCycle"> | string
    type?: EnumCycleTypeFilter<"PerformanceCycle"> | $Enums.CycleType
    status?: EnumCycleStatusFilter<"PerformanceCycle"> | $Enums.CycleStatus
    startDate?: DateTimeFilter<"PerformanceCycle"> | Date | string
    endDate?: DateTimeFilter<"PerformanceCycle"> | Date | string
    gradeConfigId?: UuidNullableFilter<"PerformanceCycle"> | string | null
    parentCycleId?: UuidNullableFilter<"PerformanceCycle"> | string | null
    resultsPublishedAt?: DateTimeNullableFilter<"PerformanceCycle"> | Date | string | null
    resultsPublishedBy?: UuidNullableFilter<"PerformanceCycle"> | string | null
    createdBy?: UuidFilter<"PerformanceCycle"> | string
    createdAt?: DateTimeFilter<"PerformanceCycle"> | Date | string
    updatedAt?: DateTimeFilter<"PerformanceCycle"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PerformanceCycle"> | Date | string | null
    organizationId?: UuidFilter<"PerformanceCycle"> | string
  }

  export type GradeConfigUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: GradeConfigWhereUniqueInput
    update: XOR<GradeConfigUpdateWithoutOrganizationInput, GradeConfigUncheckedUpdateWithoutOrganizationInput>
    create: XOR<GradeConfigCreateWithoutOrganizationInput, GradeConfigUncheckedCreateWithoutOrganizationInput>
  }

  export type GradeConfigUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: GradeConfigWhereUniqueInput
    data: XOR<GradeConfigUpdateWithoutOrganizationInput, GradeConfigUncheckedUpdateWithoutOrganizationInput>
  }

  export type GradeConfigUpdateManyWithWhereWithoutOrganizationInput = {
    where: GradeConfigScalarWhereInput
    data: XOR<GradeConfigUpdateManyMutationInput, GradeConfigUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type GradeConfigScalarWhereInput = {
    AND?: GradeConfigScalarWhereInput | GradeConfigScalarWhereInput[]
    OR?: GradeConfigScalarWhereInput[]
    NOT?: GradeConfigScalarWhereInput | GradeConfigScalarWhereInput[]
    id?: UuidFilter<"GradeConfig"> | string
    name?: StringFilter<"GradeConfig"> | string
    description?: StringNullableFilter<"GradeConfig"> | string | null
    grades?: JsonFilter<"GradeConfig">
    isDefault?: BoolFilter<"GradeConfig"> | boolean
    isActive?: BoolFilter<"GradeConfig"> | boolean
    createdBy?: UuidFilter<"GradeConfig"> | string
    createdAt?: DateTimeFilter<"GradeConfig"> | Date | string
    updatedAt?: DateTimeFilter<"GradeConfig"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GradeConfig"> | Date | string | null
    organizationId?: UuidNullableFilter<"GradeConfig"> | string | null
  }

  export type PerformanceResultUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: PerformanceResultWhereUniqueInput
    update: XOR<PerformanceResultUpdateWithoutOrganizationInput, PerformanceResultUncheckedUpdateWithoutOrganizationInput>
    create: XOR<PerformanceResultCreateWithoutOrganizationInput, PerformanceResultUncheckedCreateWithoutOrganizationInput>
  }

  export type PerformanceResultUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: PerformanceResultWhereUniqueInput
    data: XOR<PerformanceResultUpdateWithoutOrganizationInput, PerformanceResultUncheckedUpdateWithoutOrganizationInput>
  }

  export type PerformanceResultUpdateManyWithWhereWithoutOrganizationInput = {
    where: PerformanceResultScalarWhereInput
    data: XOR<PerformanceResultUpdateManyMutationInput, PerformanceResultUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type PerformanceResultScalarWhereInput = {
    AND?: PerformanceResultScalarWhereInput | PerformanceResultScalarWhereInput[]
    OR?: PerformanceResultScalarWhereInput[]
    NOT?: PerformanceResultScalarWhereInput | PerformanceResultScalarWhereInput[]
    id?: UuidFilter<"PerformanceResult"> | string
    cycleId?: UuidFilter<"PerformanceResult"> | string
    employeeId?: UuidFilter<"PerformanceResult"> | string
    kpiScore?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    e360Score?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    e360Weight?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    totalScore?: DecimalNullableFilter<"PerformanceResult"> | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: StringNullableFilter<"PerformanceResult"> | string | null
    proposedGradeName?: StringNullableFilter<"PerformanceResult"> | string | null
    gradeCode?: StringNullableFilter<"PerformanceResult"> | string | null
    gradeName?: StringNullableFilter<"PerformanceResult"> | string | null
    isPublished?: BoolFilter<"PerformanceResult"> | boolean
    publishedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    viewedByEmployee?: BoolFilter<"PerformanceResult"> | boolean
    viewedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFilter<"PerformanceResult"> | $Enums.ResultConfirmStatus
    appealReason?: StringNullableFilter<"PerformanceResult"> | string | null
    appealResponse?: StringNullableFilter<"PerformanceResult"> | string | null
    appealResolvedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    selfOverallComment?: StringNullableFilter<"PerformanceResult"> | string | null
    managerOverallComment?: StringNullableFilter<"PerformanceResult"> | string | null
    remarks?: StringNullableFilter<"PerformanceResult"> | string | null
    createdAt?: DateTimeFilter<"PerformanceResult"> | Date | string
    updatedAt?: DateTimeFilter<"PerformanceResult"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PerformanceResult"> | Date | string | null
    organizationId?: UuidFilter<"PerformanceResult"> | string
  }

  export type Evaluation360TemplateUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: Evaluation360TemplateWhereUniqueInput
    update: XOR<Evaluation360TemplateUpdateWithoutOrganizationInput, Evaluation360TemplateUncheckedUpdateWithoutOrganizationInput>
    create: XOR<Evaluation360TemplateCreateWithoutOrganizationInput, Evaluation360TemplateUncheckedCreateWithoutOrganizationInput>
  }

  export type Evaluation360TemplateUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: Evaluation360TemplateWhereUniqueInput
    data: XOR<Evaluation360TemplateUpdateWithoutOrganizationInput, Evaluation360TemplateUncheckedUpdateWithoutOrganizationInput>
  }

  export type Evaluation360TemplateUpdateManyWithWhereWithoutOrganizationInput = {
    where: Evaluation360TemplateScalarWhereInput
    data: XOR<Evaluation360TemplateUpdateManyMutationInput, Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type Evaluation360TemplateScalarWhereInput = {
    AND?: Evaluation360TemplateScalarWhereInput | Evaluation360TemplateScalarWhereInput[]
    OR?: Evaluation360TemplateScalarWhereInput[]
    NOT?: Evaluation360TemplateScalarWhereInput | Evaluation360TemplateScalarWhereInput[]
    id?: UuidFilter<"Evaluation360Template"> | string
    name?: StringFilter<"Evaluation360Template"> | string
    description?: StringNullableFilter<"Evaluation360Template"> | string | null
    dimensions?: JsonFilter<"Evaluation360Template">
    relationshipTypes?: JsonFilter<"Evaluation360Template">
    isDefault?: BoolFilter<"Evaluation360Template"> | boolean
    isActive?: BoolFilter<"Evaluation360Template"> | boolean
    createdBy?: UuidFilter<"Evaluation360Template"> | string
    createdAt?: DateTimeFilter<"Evaluation360Template"> | Date | string
    updatedAt?: DateTimeFilter<"Evaluation360Template"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Evaluation360Template"> | Date | string | null
    cycleId?: UuidNullableFilter<"Evaluation360Template"> | string | null
    scope?: JsonNullableFilter<"Evaluation360Template">
    organizationId?: UuidNullableFilter<"Evaluation360Template"> | string | null
  }

  export type AiUsageTokenUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: AiUsageTokenWhereUniqueInput
    update: XOR<AiUsageTokenUpdateWithoutOrganizationInput, AiUsageTokenUncheckedUpdateWithoutOrganizationInput>
    create: XOR<AiUsageTokenCreateWithoutOrganizationInput, AiUsageTokenUncheckedCreateWithoutOrganizationInput>
  }

  export type AiUsageTokenUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: AiUsageTokenWhereUniqueInput
    data: XOR<AiUsageTokenUpdateWithoutOrganizationInput, AiUsageTokenUncheckedUpdateWithoutOrganizationInput>
  }

  export type AiUsageTokenUpdateManyWithWhereWithoutOrganizationInput = {
    where: AiUsageTokenScalarWhereInput
    data: XOR<AiUsageTokenUpdateManyMutationInput, AiUsageTokenUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type AiUsageTokenScalarWhereInput = {
    AND?: AiUsageTokenScalarWhereInput | AiUsageTokenScalarWhereInput[]
    OR?: AiUsageTokenScalarWhereInput[]
    NOT?: AiUsageTokenScalarWhereInput | AiUsageTokenScalarWhereInput[]
    id?: UuidFilter<"AiUsageToken"> | string
    userId?: UuidFilter<"AiUsageToken"> | string
    name?: StringFilter<"AiUsageToken"> | string
    prefix?: StringFilter<"AiUsageToken"> | string
    tokenHash?: StringFilter<"AiUsageToken"> | string
    lastUsedAt?: DateTimeNullableFilter<"AiUsageToken"> | Date | string | null
    lastUsedIp?: StringNullableFilter<"AiUsageToken"> | string | null
    revokedAt?: DateTimeNullableFilter<"AiUsageToken"> | Date | string | null
    revokedById?: UuidNullableFilter<"AiUsageToken"> | string | null
    organizationId?: UuidFilter<"AiUsageToken"> | string
    createdById?: UuidFilter<"AiUsageToken"> | string
    createdAt?: DateTimeFilter<"AiUsageToken"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageToken"> | Date | string
  }

  export type AiUsageDeviceUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: AiUsageDeviceWhereUniqueInput
    update: XOR<AiUsageDeviceUpdateWithoutOrganizationInput, AiUsageDeviceUncheckedUpdateWithoutOrganizationInput>
    create: XOR<AiUsageDeviceCreateWithoutOrganizationInput, AiUsageDeviceUncheckedCreateWithoutOrganizationInput>
  }

  export type AiUsageDeviceUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: AiUsageDeviceWhereUniqueInput
    data: XOR<AiUsageDeviceUpdateWithoutOrganizationInput, AiUsageDeviceUncheckedUpdateWithoutOrganizationInput>
  }

  export type AiUsageDeviceUpdateManyWithWhereWithoutOrganizationInput = {
    where: AiUsageDeviceScalarWhereInput
    data: XOR<AiUsageDeviceUpdateManyMutationInput, AiUsageDeviceUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type AiUsageDeviceScalarWhereInput = {
    AND?: AiUsageDeviceScalarWhereInput | AiUsageDeviceScalarWhereInput[]
    OR?: AiUsageDeviceScalarWhereInput[]
    NOT?: AiUsageDeviceScalarWhereInput | AiUsageDeviceScalarWhereInput[]
    id?: UuidFilter<"AiUsageDevice"> | string
    deviceId?: StringFilter<"AiUsageDevice"> | string
    userId?: UuidFilter<"AiUsageDevice"> | string
    hostname?: StringFilter<"AiUsageDevice"> | string
    osUser?: StringNullableFilter<"AiUsageDevice"> | string | null
    osPlatform?: EnumAiUsageOsPlatformFilter<"AiUsageDevice"> | $Enums.AiUsageOsPlatform
    agentVersion?: StringNullableFilter<"AiUsageDevice"> | string | null
    firstSeenAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    firstSeenIp?: StringNullableFilter<"AiUsageDevice"> | string | null
    lastSeenAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    blockedAt?: DateTimeNullableFilter<"AiUsageDevice"> | Date | string | null
    blockedById?: UuidNullableFilter<"AiUsageDevice"> | string | null
    blockedReason?: StringNullableFilter<"AiUsageDevice"> | string | null
    organizationId?: UuidFilter<"AiUsageDevice"> | string
    createdById?: UuidFilter<"AiUsageDevice"> | string
    createdAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageDevice"> | Date | string
  }

  export type AiUsageEventUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: AiUsageEventWhereUniqueInput
    update: XOR<AiUsageEventUpdateWithoutOrganizationInput, AiUsageEventUncheckedUpdateWithoutOrganizationInput>
    create: XOR<AiUsageEventCreateWithoutOrganizationInput, AiUsageEventUncheckedCreateWithoutOrganizationInput>
  }

  export type AiUsageEventUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: AiUsageEventWhereUniqueInput
    data: XOR<AiUsageEventUpdateWithoutOrganizationInput, AiUsageEventUncheckedUpdateWithoutOrganizationInput>
  }

  export type AiUsageEventUpdateManyWithWhereWithoutOrganizationInput = {
    where: AiUsageEventScalarWhereInput
    data: XOR<AiUsageEventUpdateManyMutationInput, AiUsageEventUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type AiUsageEventScalarWhereInput = {
    AND?: AiUsageEventScalarWhereInput | AiUsageEventScalarWhereInput[]
    OR?: AiUsageEventScalarWhereInput[]
    NOT?: AiUsageEventScalarWhereInput | AiUsageEventScalarWhereInput[]
    id?: UuidFilter<"AiUsageEvent"> | string
    rawMessageId?: StringFilter<"AiUsageEvent"> | string
    deviceId?: UuidFilter<"AiUsageEvent"> | string
    userId?: UuidFilter<"AiUsageEvent"> | string
    tool?: EnumAiUsageToolFilter<"AiUsageEvent"> | $Enums.AiUsageTool
    sessionId?: StringFilter<"AiUsageEvent"> | string
    projectPath?: StringFilter<"AiUsageEvent"> | string
    projectBasename?: StringFilter<"AiUsageEvent"> | string
    model?: StringFilter<"AiUsageEvent"> | string
    ts?: DateTimeFilter<"AiUsageEvent"> | Date | string
    receivedAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
    inputTokens?: IntFilter<"AiUsageEvent"> | number
    outputTokens?: IntFilter<"AiUsageEvent"> | number
    cacheCreationTokens?: IntFilter<"AiUsageEvent"> | number
    cacheReadTokens?: IntFilter<"AiUsageEvent"> | number
    totalTokens?: IntFilter<"AiUsageEvent"> | number
    estimatedCostUsd?: DecimalFilter<"AiUsageEvent"> | Decimal | DecimalJsLike | number | string
    gitBranch?: StringNullableFilter<"AiUsageEvent"> | string | null
    agentVersionEvent?: StringNullableFilter<"AiUsageEvent"> | string | null
    worktreeLabel?: StringNullableFilter<"AiUsageEvent"> | string | null
    cwdBasename?: StringNullableFilter<"AiUsageEvent"> | string | null
    turnIndex?: IntNullableFilter<"AiUsageEvent"> | number | null
    toolUseCount?: IntNullableFilter<"AiUsageEvent"> | number | null
    toolNames?: JsonNullableFilter<"AiUsageEvent">
    stopReason?: StringNullableFilter<"AiUsageEvent"> | string | null
    serviceTier?: StringNullableFilter<"AiUsageEvent"> | string | null
    organizationId?: UuidFilter<"AiUsageEvent"> | string
    createdById?: UuidFilter<"AiUsageEvent"> | string
    createdAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageEvent"> | Date | string
  }

  export type AiUsageDailyRollupUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: AiUsageDailyRollupWhereUniqueInput
    update: XOR<AiUsageDailyRollupUpdateWithoutOrganizationInput, AiUsageDailyRollupUncheckedUpdateWithoutOrganizationInput>
    create: XOR<AiUsageDailyRollupCreateWithoutOrganizationInput, AiUsageDailyRollupUncheckedCreateWithoutOrganizationInput>
  }

  export type AiUsageDailyRollupUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: AiUsageDailyRollupWhereUniqueInput
    data: XOR<AiUsageDailyRollupUpdateWithoutOrganizationInput, AiUsageDailyRollupUncheckedUpdateWithoutOrganizationInput>
  }

  export type AiUsageDailyRollupUpdateManyWithWhereWithoutOrganizationInput = {
    where: AiUsageDailyRollupScalarWhereInput
    data: XOR<AiUsageDailyRollupUpdateManyMutationInput, AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type AiUsageDailyRollupScalarWhereInput = {
    AND?: AiUsageDailyRollupScalarWhereInput | AiUsageDailyRollupScalarWhereInput[]
    OR?: AiUsageDailyRollupScalarWhereInput[]
    NOT?: AiUsageDailyRollupScalarWhereInput | AiUsageDailyRollupScalarWhereInput[]
    id?: UuidFilter<"AiUsageDailyRollup"> | string
    date?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
    userId?: UuidFilter<"AiUsageDailyRollup"> | string
    projectBasename?: StringFilter<"AiUsageDailyRollup"> | string
    tool?: EnumAiUsageToolFilter<"AiUsageDailyRollup"> | $Enums.AiUsageTool
    model?: StringFilter<"AiUsageDailyRollup"> | string
    totalTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    inputTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    outputTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    cacheCreationTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    cacheReadTokens?: BigIntFilter<"AiUsageDailyRollup"> | bigint | number
    totalCostUsd?: DecimalFilter<"AiUsageDailyRollup"> | Decimal | DecimalJsLike | number | string
    eventCount?: IntFilter<"AiUsageDailyRollup"> | number
    organizationId?: UuidFilter<"AiUsageDailyRollup"> | string
    createdById?: UuidFilter<"AiUsageDailyRollup"> | string
    createdAt?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
    updatedAt?: DateTimeFilter<"AiUsageDailyRollup"> | Date | string
  }

  export type MeetingAgendaSectionUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    update: XOR<MeetingAgendaSectionUpdateWithoutOrganizationInput, MeetingAgendaSectionUncheckedUpdateWithoutOrganizationInput>
    create: XOR<MeetingAgendaSectionCreateWithoutOrganizationInput, MeetingAgendaSectionUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAgendaSectionUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    data: XOR<MeetingAgendaSectionUpdateWithoutOrganizationInput, MeetingAgendaSectionUncheckedUpdateWithoutOrganizationInput>
  }

  export type MeetingAgendaSectionUpdateManyWithWhereWithoutOrganizationInput = {
    where: MeetingAgendaSectionScalarWhereInput
    data: XOR<MeetingAgendaSectionUpdateManyMutationInput, MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type MeetingAgendaSectionScalarWhereInput = {
    AND?: MeetingAgendaSectionScalarWhereInput | MeetingAgendaSectionScalarWhereInput[]
    OR?: MeetingAgendaSectionScalarWhereInput[]
    NOT?: MeetingAgendaSectionScalarWhereInput | MeetingAgendaSectionScalarWhereInput[]
    id?: UuidFilter<"MeetingAgendaSection"> | string
    meetingId?: StringFilter<"MeetingAgendaSection"> | string
    order?: IntFilter<"MeetingAgendaSection"> | number
    title?: StringFilter<"MeetingAgendaSection"> | string
    columnLabels?: StringNullableListFilter<"MeetingAgendaSection">
    createdById?: UuidFilter<"MeetingAgendaSection"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaSection"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaSection"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaSection"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaSection"> | Date | string | null
  }

  export type MeetingAgendaItemUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAgendaItemWhereUniqueInput
    update: XOR<MeetingAgendaItemUpdateWithoutOrganizationInput, MeetingAgendaItemUncheckedUpdateWithoutOrganizationInput>
    create: XOR<MeetingAgendaItemCreateWithoutOrganizationInput, MeetingAgendaItemUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAgendaItemWhereUniqueInput
    data: XOR<MeetingAgendaItemUpdateWithoutOrganizationInput, MeetingAgendaItemUncheckedUpdateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemUpdateManyWithWhereWithoutOrganizationInput = {
    where: MeetingAgendaItemScalarWhereInput
    data: XOR<MeetingAgendaItemUpdateManyMutationInput, MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type MeetingAgendaItemScalarWhereInput = {
    AND?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
    OR?: MeetingAgendaItemScalarWhereInput[]
    NOT?: MeetingAgendaItemScalarWhereInput | MeetingAgendaItemScalarWhereInput[]
    id?: UuidFilter<"MeetingAgendaItem"> | string
    sectionId?: UuidFilter<"MeetingAgendaItem"> | string
    order?: IntFilter<"MeetingAgendaItem"> | number
    title?: StringFilter<"MeetingAgendaItem"> | string
    description?: StringNullableFilter<"MeetingAgendaItem"> | string | null
    columnDescriptions?: StringNullableListFilter<"MeetingAgendaItem">
    code?: StringNullableFilter<"MeetingAgendaItem"> | string | null
    timeMinutes?: IntNullableFilter<"MeetingAgendaItem"> | number | null
    presenterUserId?: UuidNullableFilter<"MeetingAgendaItem"> | string | null
    createdById?: UuidFilter<"MeetingAgendaItem"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItem"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItem"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItem"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItem"> | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    update: XOR<MeetingAgendaItemUploadTaskUpdateWithoutOrganizationInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutOrganizationInput>
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutOrganizationInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateWithoutOrganizationInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutOrganizationInput = {
    where: MeetingAgendaItemUploadTaskScalarWhereInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateManyMutationInput, MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type MeetingAgendaItemUploadTaskScalarWhereInput = {
    AND?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
    OR?: MeetingAgendaItemUploadTaskScalarWhereInput[]
    NOT?: MeetingAgendaItemUploadTaskScalarWhereInput | MeetingAgendaItemUploadTaskScalarWhereInput[]
    id?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    agendaItemId?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    assigneeUserId?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    assignedById?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    status?: EnumUploadTaskStatusFilter<"MeetingAgendaItemUploadTask"> | $Enums.UploadTaskStatus
    dueAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    assignedAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    completedAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
    createdById?: UuidFilter<"MeetingAgendaItemUploadTask"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItemUploadTask"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItemUploadTask"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItemUploadTask"> | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    update: XOR<MeetingAgendaItemAttachmentUpdateWithoutOrganizationInput, MeetingAgendaItemAttachmentUncheckedUpdateWithoutOrganizationInput>
    create: XOR<MeetingAgendaItemAttachmentCreateWithoutOrganizationInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    data: XOR<MeetingAgendaItemAttachmentUpdateWithoutOrganizationInput, MeetingAgendaItemAttachmentUncheckedUpdateWithoutOrganizationInput>
  }

  export type MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutOrganizationInput = {
    where: MeetingAgendaItemAttachmentScalarWhereInput
    data: XOR<MeetingAgendaItemAttachmentUpdateManyMutationInput, MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type MeetingAgendaItemAttachmentScalarWhereInput = {
    AND?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
    OR?: MeetingAgendaItemAttachmentScalarWhereInput[]
    NOT?: MeetingAgendaItemAttachmentScalarWhereInput | MeetingAgendaItemAttachmentScalarWhereInput[]
    id?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    agendaItemId?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    uploadedById?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    filename?: StringFilter<"MeetingAgendaItemAttachment"> | string
    mimeType?: StringFilter<"MeetingAgendaItemAttachment"> | string
    size?: BigIntFilter<"MeetingAgendaItemAttachment"> | bigint | number
    storagePath?: StringFilter<"MeetingAgendaItemAttachment"> | string
    uploadedAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    createdById?: UuidFilter<"MeetingAgendaItemAttachment"> | string
    organizationId?: UuidNullableFilter<"MeetingAgendaItemAttachment"> | string | null
    createdAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAgendaItemAttachment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAgendaItemAttachment"> | Date | string | null
  }

  export type MeetingAttachmentUpsertWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAttachmentWhereUniqueInput
    update: XOR<MeetingAttachmentUpdateWithoutOrganizationInput, MeetingAttachmentUncheckedUpdateWithoutOrganizationInput>
    create: XOR<MeetingAttachmentCreateWithoutOrganizationInput, MeetingAttachmentUncheckedCreateWithoutOrganizationInput>
  }

  export type MeetingAttachmentUpdateWithWhereUniqueWithoutOrganizationInput = {
    where: MeetingAttachmentWhereUniqueInput
    data: XOR<MeetingAttachmentUpdateWithoutOrganizationInput, MeetingAttachmentUncheckedUpdateWithoutOrganizationInput>
  }

  export type MeetingAttachmentUpdateManyWithWhereWithoutOrganizationInput = {
    where: MeetingAttachmentScalarWhereInput
    data: XOR<MeetingAttachmentUpdateManyMutationInput, MeetingAttachmentUncheckedUpdateManyWithoutOrganizationInput>
  }

  export type MeetingAttachmentScalarWhereInput = {
    AND?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
    OR?: MeetingAttachmentScalarWhereInput[]
    NOT?: MeetingAttachmentScalarWhereInput | MeetingAttachmentScalarWhereInput[]
    id?: UuidFilter<"MeetingAttachment"> | string
    meetingId?: StringFilter<"MeetingAttachment"> | string
    uploadedById?: UuidFilter<"MeetingAttachment"> | string
    category?: EnumMeetingAttachmentCategoryNullableFilter<"MeetingAttachment"> | $Enums.MeetingAttachmentCategory | null
    filename?: StringFilter<"MeetingAttachment"> | string
    mimeType?: StringFilter<"MeetingAttachment"> | string
    size?: BigIntFilter<"MeetingAttachment"> | bigint | number
    storagePath?: StringFilter<"MeetingAttachment"> | string
    uploadedAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    createdById?: UuidFilter<"MeetingAttachment"> | string
    organizationId?: UuidNullableFilter<"MeetingAttachment"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttachment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"MeetingAttachment"> | Date | string | null
  }

  export type OrganizationCreateWithoutOrganizationRegionsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutOrganizationRegionsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutOrganizationRegionsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutOrganizationRegionsInput, OrganizationUncheckedCreateWithoutOrganizationRegionsInput>
  }

  export type RegionCreateWithoutOrganizationRegionsInput = {
    id?: string
    code: string
    name: string
    nameEn?: string | null
    nameZh?: string | null
    timezone?: string | null
    currency?: string | null
    locale?: string | null
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryOrganizations?: OrganizationCreateNestedManyWithoutPrimaryRegionInput
  }

  export type RegionUncheckedCreateWithoutOrganizationRegionsInput = {
    id?: string
    code: string
    name: string
    nameEn?: string | null
    nameZh?: string | null
    timezone?: string | null
    currency?: string | null
    locale?: string | null
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryOrganizations?: OrganizationUncheckedCreateNestedManyWithoutPrimaryRegionInput
  }

  export type RegionCreateOrConnectWithoutOrganizationRegionsInput = {
    where: RegionWhereUniqueInput
    create: XOR<RegionCreateWithoutOrganizationRegionsInput, RegionUncheckedCreateWithoutOrganizationRegionsInput>
  }

  export type OrganizationUpsertWithoutOrganizationRegionsInput = {
    update: XOR<OrganizationUpdateWithoutOrganizationRegionsInput, OrganizationUncheckedUpdateWithoutOrganizationRegionsInput>
    create: XOR<OrganizationCreateWithoutOrganizationRegionsInput, OrganizationUncheckedCreateWithoutOrganizationRegionsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutOrganizationRegionsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutOrganizationRegionsInput, OrganizationUncheckedUpdateWithoutOrganizationRegionsInput>
  }

  export type OrganizationUpdateWithoutOrganizationRegionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutOrganizationRegionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type RegionUpsertWithoutOrganizationRegionsInput = {
    update: XOR<RegionUpdateWithoutOrganizationRegionsInput, RegionUncheckedUpdateWithoutOrganizationRegionsInput>
    create: XOR<RegionCreateWithoutOrganizationRegionsInput, RegionUncheckedCreateWithoutOrganizationRegionsInput>
    where?: RegionWhereInput
  }

  export type RegionUpdateToOneWithWhereWithoutOrganizationRegionsInput = {
    where?: RegionWhereInput
    data: XOR<RegionUpdateWithoutOrganizationRegionsInput, RegionUncheckedUpdateWithoutOrganizationRegionsInput>
  }

  export type RegionUpdateWithoutOrganizationRegionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: NullableStringFieldUpdateOperationsInput | string | null
    currency?: NullableStringFieldUpdateOperationsInput | string | null
    locale?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryOrganizations?: OrganizationUpdateManyWithoutPrimaryRegionNestedInput
  }

  export type RegionUncheckedUpdateWithoutOrganizationRegionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: NullableStringFieldUpdateOperationsInput | string | null
    currency?: NullableStringFieldUpdateOperationsInput | string | null
    locale?: NullableStringFieldUpdateOperationsInput | string | null
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryOrganizations?: OrganizationUncheckedUpdateManyWithoutPrimaryRegionNestedInput
  }

  export type OrganizationCreateWithoutPrimaryRegionInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutPrimaryRegionInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutPrimaryRegionInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutPrimaryRegionInput, OrganizationUncheckedCreateWithoutPrimaryRegionInput>
  }

  export type OrganizationCreateManyPrimaryRegionInputEnvelope = {
    data: OrganizationCreateManyPrimaryRegionInput | OrganizationCreateManyPrimaryRegionInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationRegionCreateWithoutRegionInput = {
    id?: string
    isDefault?: boolean
    createdAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutOrganizationRegionsInput
  }

  export type OrganizationRegionUncheckedCreateWithoutRegionInput = {
    id?: string
    organizationId: string
    isDefault?: boolean
    createdAt?: Date | string
  }

  export type OrganizationRegionCreateOrConnectWithoutRegionInput = {
    where: OrganizationRegionWhereUniqueInput
    create: XOR<OrganizationRegionCreateWithoutRegionInput, OrganizationRegionUncheckedCreateWithoutRegionInput>
  }

  export type OrganizationRegionCreateManyRegionInputEnvelope = {
    data: OrganizationRegionCreateManyRegionInput | OrganizationRegionCreateManyRegionInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationUpsertWithWhereUniqueWithoutPrimaryRegionInput = {
    where: OrganizationWhereUniqueInput
    update: XOR<OrganizationUpdateWithoutPrimaryRegionInput, OrganizationUncheckedUpdateWithoutPrimaryRegionInput>
    create: XOR<OrganizationCreateWithoutPrimaryRegionInput, OrganizationUncheckedCreateWithoutPrimaryRegionInput>
  }

  export type OrganizationUpdateWithWhereUniqueWithoutPrimaryRegionInput = {
    where: OrganizationWhereUniqueInput
    data: XOR<OrganizationUpdateWithoutPrimaryRegionInput, OrganizationUncheckedUpdateWithoutPrimaryRegionInput>
  }

  export type OrganizationUpdateManyWithWhereWithoutPrimaryRegionInput = {
    where: OrganizationScalarWhereInput
    data: XOR<OrganizationUpdateManyMutationInput, OrganizationUncheckedUpdateManyWithoutPrimaryRegionInput>
  }

  export type OrganizationScalarWhereInput = {
    AND?: OrganizationScalarWhereInput | OrganizationScalarWhereInput[]
    OR?: OrganizationScalarWhereInput[]
    NOT?: OrganizationScalarWhereInput | OrganizationScalarWhereInput[]
    id?: UuidFilter<"Organization"> | string
    code?: StringFilter<"Organization"> | string
    name?: StringFilter<"Organization"> | string
    displayName?: StringNullableFilter<"Organization"> | string | null
    nameEn?: StringNullableFilter<"Organization"> | string | null
    nameZh?: StringNullableFilter<"Organization"> | string | null
    legalName?: StringNullableFilter<"Organization"> | string | null
    legalRepresentative?: StringNullableFilter<"Organization"> | string | null
    registrationNumber?: StringNullableFilter<"Organization"> | string | null
    taxId?: StringNullableFilter<"Organization"> | string | null
    address?: StringNullableFilter<"Organization"> | string | null
    phone?: StringNullableFilter<"Organization"> | string | null
    email?: StringNullableFilter<"Organization"> | string | null
    website?: StringNullableFilter<"Organization"> | string | null
    primaryRegionId?: UuidNullableFilter<"Organization"> | string | null
    settings?: JsonFilter<"Organization">
    financialConfig?: JsonFilter<"Organization">
    complianceConfig?: JsonFilter<"Organization">
    status?: StringFilter<"Organization"> | string
    isActive?: BoolFilter<"Organization"> | boolean
    order?: IntFilter<"Organization"> | number
    metadata?: JsonFilter<"Organization">
    establishedAt?: DateTimeNullableFilter<"Organization"> | Date | string | null
    createdAt?: DateTimeFilter<"Organization"> | Date | string
    updatedAt?: DateTimeFilter<"Organization"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Organization"> | Date | string | null
  }

  export type OrganizationRegionUpsertWithWhereUniqueWithoutRegionInput = {
    where: OrganizationRegionWhereUniqueInput
    update: XOR<OrganizationRegionUpdateWithoutRegionInput, OrganizationRegionUncheckedUpdateWithoutRegionInput>
    create: XOR<OrganizationRegionCreateWithoutRegionInput, OrganizationRegionUncheckedCreateWithoutRegionInput>
  }

  export type OrganizationRegionUpdateWithWhereUniqueWithoutRegionInput = {
    where: OrganizationRegionWhereUniqueInput
    data: XOR<OrganizationRegionUpdateWithoutRegionInput, OrganizationRegionUncheckedUpdateWithoutRegionInput>
  }

  export type OrganizationRegionUpdateManyWithWhereWithoutRegionInput = {
    where: OrganizationRegionScalarWhereInput
    data: XOR<OrganizationRegionUpdateManyMutationInput, OrganizationRegionUncheckedUpdateManyWithoutRegionInput>
  }

  export type OrganizationCreateWithoutDepartmentsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutDepartmentsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutDepartmentsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutDepartmentsInput, OrganizationUncheckedCreateWithoutDepartmentsInput>
  }

  export type DepartmentCreateWithoutChildrenInput = {
    id?: string
    name: string
    code: string
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutDepartmentsInput
    parent?: DepartmentCreateNestedOneWithoutChildrenInput
    userMemberships?: UserDepartmentCreateNestedManyWithoutDepartmentInput
  }

  export type DepartmentUncheckedCreateWithoutChildrenInput = {
    id?: string
    organizationId: string
    name: string
    code: string
    parentId?: string | null
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    userMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutDepartmentInput
  }

  export type DepartmentCreateOrConnectWithoutChildrenInput = {
    where: DepartmentWhereUniqueInput
    create: XOR<DepartmentCreateWithoutChildrenInput, DepartmentUncheckedCreateWithoutChildrenInput>
  }

  export type DepartmentCreateWithoutParentInput = {
    id?: string
    name: string
    code: string
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutDepartmentsInput
    children?: DepartmentCreateNestedManyWithoutParentInput
    userMemberships?: UserDepartmentCreateNestedManyWithoutDepartmentInput
  }

  export type DepartmentUncheckedCreateWithoutParentInput = {
    id?: string
    organizationId: string
    name: string
    code: string
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DepartmentUncheckedCreateNestedManyWithoutParentInput
    userMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutDepartmentInput
  }

  export type DepartmentCreateOrConnectWithoutParentInput = {
    where: DepartmentWhereUniqueInput
    create: XOR<DepartmentCreateWithoutParentInput, DepartmentUncheckedCreateWithoutParentInput>
  }

  export type DepartmentCreateManyParentInputEnvelope = {
    data: DepartmentCreateManyParentInput | DepartmentCreateManyParentInput[]
    skipDuplicates?: boolean
  }

  export type UserDepartmentCreateWithoutDepartmentInput = {
    id?: string
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutDepartmentMembershipsInput
    organization: OrganizationCreateNestedOneWithoutUserDepartmentsInput
    position?: PositionCreateNestedOneWithoutUserMembershipsInput
    manager?: UserCreateNestedOneWithoutManagedUsersInput
  }

  export type UserDepartmentUncheckedCreateWithoutDepartmentInput = {
    id?: string
    userId: string
    organizationId: string
    positionId?: string | null
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentCreateOrConnectWithoutDepartmentInput = {
    where: UserDepartmentWhereUniqueInput
    create: XOR<UserDepartmentCreateWithoutDepartmentInput, UserDepartmentUncheckedCreateWithoutDepartmentInput>
  }

  export type UserDepartmentCreateManyDepartmentInputEnvelope = {
    data: UserDepartmentCreateManyDepartmentInput | UserDepartmentCreateManyDepartmentInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationUpsertWithoutDepartmentsInput = {
    update: XOR<OrganizationUpdateWithoutDepartmentsInput, OrganizationUncheckedUpdateWithoutDepartmentsInput>
    create: XOR<OrganizationCreateWithoutDepartmentsInput, OrganizationUncheckedCreateWithoutDepartmentsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutDepartmentsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutDepartmentsInput, OrganizationUncheckedUpdateWithoutDepartmentsInput>
  }

  export type OrganizationUpdateWithoutDepartmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutDepartmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type DepartmentUpsertWithoutChildrenInput = {
    update: XOR<DepartmentUpdateWithoutChildrenInput, DepartmentUncheckedUpdateWithoutChildrenInput>
    create: XOR<DepartmentCreateWithoutChildrenInput, DepartmentUncheckedCreateWithoutChildrenInput>
    where?: DepartmentWhereInput
  }

  export type DepartmentUpdateToOneWithWhereWithoutChildrenInput = {
    where?: DepartmentWhereInput
    data: XOR<DepartmentUpdateWithoutChildrenInput, DepartmentUncheckedUpdateWithoutChildrenInput>
  }

  export type DepartmentUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutDepartmentsNestedInput
    parent?: DepartmentUpdateOneWithoutChildrenNestedInput
    userMemberships?: UserDepartmentUpdateManyWithoutDepartmentNestedInput
  }

  export type DepartmentUncheckedUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    userMemberships?: UserDepartmentUncheckedUpdateManyWithoutDepartmentNestedInput
  }

  export type DepartmentUpsertWithWhereUniqueWithoutParentInput = {
    where: DepartmentWhereUniqueInput
    update: XOR<DepartmentUpdateWithoutParentInput, DepartmentUncheckedUpdateWithoutParentInput>
    create: XOR<DepartmentCreateWithoutParentInput, DepartmentUncheckedCreateWithoutParentInput>
  }

  export type DepartmentUpdateWithWhereUniqueWithoutParentInput = {
    where: DepartmentWhereUniqueInput
    data: XOR<DepartmentUpdateWithoutParentInput, DepartmentUncheckedUpdateWithoutParentInput>
  }

  export type DepartmentUpdateManyWithWhereWithoutParentInput = {
    where: DepartmentScalarWhereInput
    data: XOR<DepartmentUpdateManyMutationInput, DepartmentUncheckedUpdateManyWithoutParentInput>
  }

  export type UserDepartmentUpsertWithWhereUniqueWithoutDepartmentInput = {
    where: UserDepartmentWhereUniqueInput
    update: XOR<UserDepartmentUpdateWithoutDepartmentInput, UserDepartmentUncheckedUpdateWithoutDepartmentInput>
    create: XOR<UserDepartmentCreateWithoutDepartmentInput, UserDepartmentUncheckedCreateWithoutDepartmentInput>
  }

  export type UserDepartmentUpdateWithWhereUniqueWithoutDepartmentInput = {
    where: UserDepartmentWhereUniqueInput
    data: XOR<UserDepartmentUpdateWithoutDepartmentInput, UserDepartmentUncheckedUpdateWithoutDepartmentInput>
  }

  export type UserDepartmentUpdateManyWithWhereWithoutDepartmentInput = {
    where: UserDepartmentScalarWhereInput
    data: XOR<UserDepartmentUpdateManyMutationInput, UserDepartmentUncheckedUpdateManyWithoutDepartmentInput>
  }

  export type UserDepartmentCreateWithoutPositionInput = {
    id?: string
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutDepartmentMembershipsInput
    organization: OrganizationCreateNestedOneWithoutUserDepartmentsInput
    department: DepartmentCreateNestedOneWithoutUserMembershipsInput
    manager?: UserCreateNestedOneWithoutManagedUsersInput
  }

  export type UserDepartmentUncheckedCreateWithoutPositionInput = {
    id?: string
    userId: string
    organizationId: string
    departmentId: string
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentCreateOrConnectWithoutPositionInput = {
    where: UserDepartmentWhereUniqueInput
    create: XOR<UserDepartmentCreateWithoutPositionInput, UserDepartmentUncheckedCreateWithoutPositionInput>
  }

  export type UserDepartmentCreateManyPositionInputEnvelope = {
    data: UserDepartmentCreateManyPositionInput | UserDepartmentCreateManyPositionInput[]
    skipDuplicates?: boolean
  }

  export type UserDepartmentUpsertWithWhereUniqueWithoutPositionInput = {
    where: UserDepartmentWhereUniqueInput
    update: XOR<UserDepartmentUpdateWithoutPositionInput, UserDepartmentUncheckedUpdateWithoutPositionInput>
    create: XOR<UserDepartmentCreateWithoutPositionInput, UserDepartmentUncheckedCreateWithoutPositionInput>
  }

  export type UserDepartmentUpdateWithWhereUniqueWithoutPositionInput = {
    where: UserDepartmentWhereUniqueInput
    data: XOR<UserDepartmentUpdateWithoutPositionInput, UserDepartmentUncheckedUpdateWithoutPositionInput>
  }

  export type UserDepartmentUpdateManyWithWhereWithoutPositionInput = {
    where: UserDepartmentScalarWhereInput
    data: XOR<UserDepartmentUpdateManyMutationInput, UserDepartmentUncheckedUpdateManyWithoutPositionInput>
  }

  export type UserCreateWithoutDepartmentMembershipsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDepartmentMembershipsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDepartmentMembershipsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDepartmentMembershipsInput, UserUncheckedCreateWithoutDepartmentMembershipsInput>
  }

  export type OrganizationCreateWithoutUserDepartmentsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutUserDepartmentsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutUserDepartmentsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutUserDepartmentsInput, OrganizationUncheckedCreateWithoutUserDepartmentsInput>
  }

  export type DepartmentCreateWithoutUserMembershipsInput = {
    id?: string
    name: string
    code: string
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutDepartmentsInput
    parent?: DepartmentCreateNestedOneWithoutChildrenInput
    children?: DepartmentCreateNestedManyWithoutParentInput
  }

  export type DepartmentUncheckedCreateWithoutUserMembershipsInput = {
    id?: string
    organizationId: string
    name: string
    code: string
    parentId?: string | null
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DepartmentUncheckedCreateNestedManyWithoutParentInput
  }

  export type DepartmentCreateOrConnectWithoutUserMembershipsInput = {
    where: DepartmentWhereUniqueInput
    create: XOR<DepartmentCreateWithoutUserMembershipsInput, DepartmentUncheckedCreateWithoutUserMembershipsInput>
  }

  export type PositionCreateWithoutUserMembershipsInput = {
    id?: string
    name: string
    code: string
    level?: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PositionUncheckedCreateWithoutUserMembershipsInput = {
    id?: string
    name: string
    code: string
    level?: number
    description?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PositionCreateOrConnectWithoutUserMembershipsInput = {
    where: PositionWhereUniqueInput
    create: XOR<PositionCreateWithoutUserMembershipsInput, PositionUncheckedCreateWithoutUserMembershipsInput>
  }

  export type UserCreateWithoutManagedUsersInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutManagedUsersInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutManagedUsersInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutManagedUsersInput, UserUncheckedCreateWithoutManagedUsersInput>
  }

  export type UserUpsertWithoutDepartmentMembershipsInput = {
    update: XOR<UserUpdateWithoutDepartmentMembershipsInput, UserUncheckedUpdateWithoutDepartmentMembershipsInput>
    create: XOR<UserCreateWithoutDepartmentMembershipsInput, UserUncheckedCreateWithoutDepartmentMembershipsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDepartmentMembershipsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDepartmentMembershipsInput, UserUncheckedUpdateWithoutDepartmentMembershipsInput>
  }

  export type UserUpdateWithoutDepartmentMembershipsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDepartmentMembershipsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutUserDepartmentsInput = {
    update: XOR<OrganizationUpdateWithoutUserDepartmentsInput, OrganizationUncheckedUpdateWithoutUserDepartmentsInput>
    create: XOR<OrganizationCreateWithoutUserDepartmentsInput, OrganizationUncheckedCreateWithoutUserDepartmentsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutUserDepartmentsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutUserDepartmentsInput, OrganizationUncheckedUpdateWithoutUserDepartmentsInput>
  }

  export type OrganizationUpdateWithoutUserDepartmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutUserDepartmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type DepartmentUpsertWithoutUserMembershipsInput = {
    update: XOR<DepartmentUpdateWithoutUserMembershipsInput, DepartmentUncheckedUpdateWithoutUserMembershipsInput>
    create: XOR<DepartmentCreateWithoutUserMembershipsInput, DepartmentUncheckedCreateWithoutUserMembershipsInput>
    where?: DepartmentWhereInput
  }

  export type DepartmentUpdateToOneWithWhereWithoutUserMembershipsInput = {
    where?: DepartmentWhereInput
    data: XOR<DepartmentUpdateWithoutUserMembershipsInput, DepartmentUncheckedUpdateWithoutUserMembershipsInput>
  }

  export type DepartmentUpdateWithoutUserMembershipsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutDepartmentsNestedInput
    parent?: DepartmentUpdateOneWithoutChildrenNestedInput
    children?: DepartmentUpdateManyWithoutParentNestedInput
  }

  export type DepartmentUncheckedUpdateWithoutUserMembershipsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DepartmentUncheckedUpdateManyWithoutParentNestedInput
  }

  export type PositionUpsertWithoutUserMembershipsInput = {
    update: XOR<PositionUpdateWithoutUserMembershipsInput, PositionUncheckedUpdateWithoutUserMembershipsInput>
    create: XOR<PositionCreateWithoutUserMembershipsInput, PositionUncheckedCreateWithoutUserMembershipsInput>
    where?: PositionWhereInput
  }

  export type PositionUpdateToOneWithWhereWithoutUserMembershipsInput = {
    where?: PositionWhereInput
    data: XOR<PositionUpdateWithoutUserMembershipsInput, PositionUncheckedUpdateWithoutUserMembershipsInput>
  }

  export type PositionUpdateWithoutUserMembershipsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    level?: IntFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PositionUncheckedUpdateWithoutUserMembershipsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    level?: IntFieldUpdateOperationsInput | number
    description?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserUpsertWithoutManagedUsersInput = {
    update: XOR<UserUpdateWithoutManagedUsersInput, UserUncheckedUpdateWithoutManagedUsersInput>
    create: XOR<UserCreateWithoutManagedUsersInput, UserUncheckedCreateWithoutManagedUsersInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutManagedUsersInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutManagedUsersInput, UserUncheckedUpdateWithoutManagedUsersInput>
  }

  export type UserUpdateWithoutManagedUsersInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutManagedUsersInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type ExpenseItemCreateWithoutExpenseInput = {
    id?: string
    description: string
    amount: Decimal | DecimalJsLike | number | string
    date: Date | string
  }

  export type ExpenseItemUncheckedCreateWithoutExpenseInput = {
    id?: string
    description: string
    amount: Decimal | DecimalJsLike | number | string
    date: Date | string
  }

  export type ExpenseItemCreateOrConnectWithoutExpenseInput = {
    where: ExpenseItemWhereUniqueInput
    create: XOR<ExpenseItemCreateWithoutExpenseInput, ExpenseItemUncheckedCreateWithoutExpenseInput>
  }

  export type ExpenseItemCreateManyExpenseInputEnvelope = {
    data: ExpenseItemCreateManyExpenseInput | ExpenseItemCreateManyExpenseInput[]
    skipDuplicates?: boolean
  }

  export type UserCreateWithoutCreatedExpensesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutCreatedExpensesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutCreatedExpensesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutCreatedExpensesInput, UserUncheckedCreateWithoutCreatedExpensesInput>
  }

  export type ExpenseItemUpsertWithWhereUniqueWithoutExpenseInput = {
    where: ExpenseItemWhereUniqueInput
    update: XOR<ExpenseItemUpdateWithoutExpenseInput, ExpenseItemUncheckedUpdateWithoutExpenseInput>
    create: XOR<ExpenseItemCreateWithoutExpenseInput, ExpenseItemUncheckedCreateWithoutExpenseInput>
  }

  export type ExpenseItemUpdateWithWhereUniqueWithoutExpenseInput = {
    where: ExpenseItemWhereUniqueInput
    data: XOR<ExpenseItemUpdateWithoutExpenseInput, ExpenseItemUncheckedUpdateWithoutExpenseInput>
  }

  export type ExpenseItemUpdateManyWithWhereWithoutExpenseInput = {
    where: ExpenseItemScalarWhereInput
    data: XOR<ExpenseItemUpdateManyMutationInput, ExpenseItemUncheckedUpdateManyWithoutExpenseInput>
  }

  export type ExpenseItemScalarWhereInput = {
    AND?: ExpenseItemScalarWhereInput | ExpenseItemScalarWhereInput[]
    OR?: ExpenseItemScalarWhereInput[]
    NOT?: ExpenseItemScalarWhereInput | ExpenseItemScalarWhereInput[]
    id?: UuidFilter<"ExpenseItem"> | string
    expenseId?: UuidFilter<"ExpenseItem"> | string
    description?: StringFilter<"ExpenseItem"> | string
    amount?: DecimalFilter<"ExpenseItem"> | Decimal | DecimalJsLike | number | string
    date?: DateTimeFilter<"ExpenseItem"> | Date | string
  }

  export type UserUpsertWithoutCreatedExpensesInput = {
    update: XOR<UserUpdateWithoutCreatedExpensesInput, UserUncheckedUpdateWithoutCreatedExpensesInput>
    create: XOR<UserCreateWithoutCreatedExpensesInput, UserUncheckedCreateWithoutCreatedExpensesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutCreatedExpensesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutCreatedExpensesInput, UserUncheckedUpdateWithoutCreatedExpensesInput>
  }

  export type UserUpdateWithoutCreatedExpensesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutCreatedExpensesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type ExpenseRequestCreateWithoutItemsInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    category: $Enums.ExpenseCategory
    workflowInstanceId?: string | null
    status?: $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedExpensesInput
  }

  export type ExpenseRequestUncheckedCreateWithoutItemsInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    creatorId: string
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    category: $Enums.ExpenseCategory
    workflowInstanceId?: string | null
    status?: $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ExpenseRequestCreateOrConnectWithoutItemsInput = {
    where: ExpenseRequestWhereUniqueInput
    create: XOR<ExpenseRequestCreateWithoutItemsInput, ExpenseRequestUncheckedCreateWithoutItemsInput>
  }

  export type ExpenseRequestUpsertWithoutItemsInput = {
    update: XOR<ExpenseRequestUpdateWithoutItemsInput, ExpenseRequestUncheckedUpdateWithoutItemsInput>
    create: XOR<ExpenseRequestCreateWithoutItemsInput, ExpenseRequestUncheckedCreateWithoutItemsInput>
    where?: ExpenseRequestWhereInput
  }

  export type ExpenseRequestUpdateToOneWithWhereWithoutItemsInput = {
    where?: ExpenseRequestWhereInput
    data: XOR<ExpenseRequestUpdateWithoutItemsInput, ExpenseRequestUncheckedUpdateWithoutItemsInput>
  }

  export type ExpenseRequestUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedExpensesNestedInput
  }

  export type ExpenseRequestUncheckedUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PurchaseItemCreateWithoutPurchaseInput = {
    id?: string
    name: string
    description?: string | null
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    amount: Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemUncheckedCreateWithoutPurchaseInput = {
    id?: string
    name: string
    description?: string | null
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    amount: Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemCreateOrConnectWithoutPurchaseInput = {
    where: PurchaseItemWhereUniqueInput
    create: XOR<PurchaseItemCreateWithoutPurchaseInput, PurchaseItemUncheckedCreateWithoutPurchaseInput>
  }

  export type PurchaseItemCreateManyPurchaseInputEnvelope = {
    data: PurchaseItemCreateManyPurchaseInput | PurchaseItemCreateManyPurchaseInput[]
    skipDuplicates?: boolean
  }

  export type UserCreateWithoutCreatedPurchasesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutCreatedPurchasesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutCreatedPurchasesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutCreatedPurchasesInput, UserUncheckedCreateWithoutCreatedPurchasesInput>
  }

  export type PurchaseItemUpsertWithWhereUniqueWithoutPurchaseInput = {
    where: PurchaseItemWhereUniqueInput
    update: XOR<PurchaseItemUpdateWithoutPurchaseInput, PurchaseItemUncheckedUpdateWithoutPurchaseInput>
    create: XOR<PurchaseItemCreateWithoutPurchaseInput, PurchaseItemUncheckedCreateWithoutPurchaseInput>
  }

  export type PurchaseItemUpdateWithWhereUniqueWithoutPurchaseInput = {
    where: PurchaseItemWhereUniqueInput
    data: XOR<PurchaseItemUpdateWithoutPurchaseInput, PurchaseItemUncheckedUpdateWithoutPurchaseInput>
  }

  export type PurchaseItemUpdateManyWithWhereWithoutPurchaseInput = {
    where: PurchaseItemScalarWhereInput
    data: XOR<PurchaseItemUpdateManyMutationInput, PurchaseItemUncheckedUpdateManyWithoutPurchaseInput>
  }

  export type PurchaseItemScalarWhereInput = {
    AND?: PurchaseItemScalarWhereInput | PurchaseItemScalarWhereInput[]
    OR?: PurchaseItemScalarWhereInput[]
    NOT?: PurchaseItemScalarWhereInput | PurchaseItemScalarWhereInput[]
    id?: UuidFilter<"PurchaseItem"> | string
    purchaseId?: UuidFilter<"PurchaseItem"> | string
    name?: StringFilter<"PurchaseItem"> | string
    description?: StringNullableFilter<"PurchaseItem"> | string | null
    quantity?: IntFilter<"PurchaseItem"> | number
    unitPrice?: DecimalFilter<"PurchaseItem"> | Decimal | DecimalJsLike | number | string
    amount?: DecimalFilter<"PurchaseItem"> | Decimal | DecimalJsLike | number | string
  }

  export type UserUpsertWithoutCreatedPurchasesInput = {
    update: XOR<UserUpdateWithoutCreatedPurchasesInput, UserUncheckedUpdateWithoutCreatedPurchasesInput>
    create: XOR<UserCreateWithoutCreatedPurchasesInput, UserUncheckedCreateWithoutCreatedPurchasesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutCreatedPurchasesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutCreatedPurchasesInput, UserUncheckedUpdateWithoutCreatedPurchasesInput>
  }

  export type UserUpdateWithoutCreatedPurchasesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutCreatedPurchasesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type PurchaseRequestCreateWithoutItemsInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    totalAmount: Decimal | DecimalJsLike | number | string
    currency?: string
    vendorName: string
    vendorContact?: string | null
    workflowInstanceId?: string | null
    status?: $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: Date | string | null
    actualDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedPurchasesInput
  }

  export type PurchaseRequestUncheckedCreateWithoutItemsInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    creatorId: string
    totalAmount: Decimal | DecimalJsLike | number | string
    currency?: string
    vendorName: string
    vendorContact?: string | null
    workflowInstanceId?: string | null
    status?: $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: Date | string | null
    actualDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PurchaseRequestCreateOrConnectWithoutItemsInput = {
    where: PurchaseRequestWhereUniqueInput
    create: XOR<PurchaseRequestCreateWithoutItemsInput, PurchaseRequestUncheckedCreateWithoutItemsInput>
  }

  export type PurchaseRequestUpsertWithoutItemsInput = {
    update: XOR<PurchaseRequestUpdateWithoutItemsInput, PurchaseRequestUncheckedUpdateWithoutItemsInput>
    create: XOR<PurchaseRequestCreateWithoutItemsInput, PurchaseRequestUncheckedCreateWithoutItemsInput>
    where?: PurchaseRequestWhereInput
  }

  export type PurchaseRequestUpdateToOneWithWhereWithoutItemsInput = {
    where?: PurchaseRequestWhereInput
    data: XOR<PurchaseRequestUpdateWithoutItemsInput, PurchaseRequestUncheckedUpdateWithoutItemsInput>
  }

  export type PurchaseRequestUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedPurchasesNestedInput
  }

  export type PurchaseRequestUncheckedUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserCreateWithoutCreatedContractsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutCreatedContractsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutCreatedContractsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutCreatedContractsInput, UserUncheckedCreateWithoutCreatedContractsInput>
  }

  export type UserUpsertWithoutCreatedContractsInput = {
    update: XOR<UserUpdateWithoutCreatedContractsInput, UserUncheckedUpdateWithoutCreatedContractsInput>
    create: XOR<UserCreateWithoutCreatedContractsInput, UserUncheckedCreateWithoutCreatedContractsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutCreatedContractsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutCreatedContractsInput, UserUncheckedUpdateWithoutCreatedContractsInput>
  }

  export type UserUpdateWithoutCreatedContractsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutCreatedContractsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type InventoryLogCreateWithoutPartInput = {
    id?: string
    operationType: $Enums.InventoryOperationType
    quantity: number
    previousStock: number
    newStock: number
    station?: string | null
    warehouseLocation?: string | null
    reason?: string | null
    referenceType?: string | null
    referenceId?: string | null
    operatorId: string
    operatorName: string
    scannedCode?: string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type InventoryLogUncheckedCreateWithoutPartInput = {
    id?: string
    operationType: $Enums.InventoryOperationType
    quantity: number
    previousStock: number
    newStock: number
    station?: string | null
    warehouseLocation?: string | null
    reason?: string | null
    referenceType?: string | null
    referenceId?: string | null
    operatorId: string
    operatorName: string
    scannedCode?: string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type InventoryLogCreateOrConnectWithoutPartInput = {
    where: InventoryLogWhereUniqueInput
    create: XOR<InventoryLogCreateWithoutPartInput, InventoryLogUncheckedCreateWithoutPartInput>
  }

  export type InventoryLogCreateManyPartInputEnvelope = {
    data: InventoryLogCreateManyPartInput | InventoryLogCreateManyPartInput[]
    skipDuplicates?: boolean
  }

  export type PartGroupRelationCreateWithoutPartInput = {
    createdAt?: Date | string
    createdBy?: string | null
    group: PartGroupCreateNestedOneWithoutPartsInput
  }

  export type PartGroupRelationUncheckedCreateWithoutPartInput = {
    groupId: string
    createdAt?: Date | string
    createdBy?: string | null
  }

  export type PartGroupRelationCreateOrConnectWithoutPartInput = {
    where: PartGroupRelationWhereUniqueInput
    create: XOR<PartGroupRelationCreateWithoutPartInput, PartGroupRelationUncheckedCreateWithoutPartInput>
  }

  export type PartGroupRelationCreateManyPartInputEnvelope = {
    data: PartGroupRelationCreateManyPartInput | PartGroupRelationCreateManyPartInput[]
    skipDuplicates?: boolean
  }

  export type PartLabelCreateWithoutPartInput = {
    id?: string
    labelCode: string
    qrCodeData: string
    template?: string
    size?: string
    printCount?: number
    lastPrintedAt?: Date | string | null
    printedBy?: string | null
    status?: $Enums.LabelStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartLabelUncheckedCreateWithoutPartInput = {
    id?: string
    labelCode: string
    qrCodeData: string
    template?: string
    size?: string
    printCount?: number
    lastPrintedAt?: Date | string | null
    printedBy?: string | null
    status?: $Enums.LabelStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartLabelCreateOrConnectWithoutPartInput = {
    where: PartLabelWhereUniqueInput
    create: XOR<PartLabelCreateWithoutPartInput, PartLabelUncheckedCreateWithoutPartInput>
  }

  export type PartLabelCreateManyPartInputEnvelope = {
    data: PartLabelCreateManyPartInput | PartLabelCreateManyPartInput[]
    skipDuplicates?: boolean
  }

  export type StockAlertCreateWithoutPartInput = {
    id?: string
    alertType: $Enums.StockAlertType
    severity: $Enums.AlertSeverity
    currentStock: number
    threshold: number
    message: string
    status?: $Enums.AlertStatus
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type StockAlertUncheckedCreateWithoutPartInput = {
    id?: string
    alertType: $Enums.StockAlertType
    severity: $Enums.AlertSeverity
    currentStock: number
    threshold: number
    message: string
    status?: $Enums.AlertStatus
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type StockAlertCreateOrConnectWithoutPartInput = {
    where: StockAlertWhereUniqueInput
    create: XOR<StockAlertCreateWithoutPartInput, StockAlertUncheckedCreateWithoutPartInput>
  }

  export type StockAlertCreateManyPartInputEnvelope = {
    data: StockAlertCreateManyPartInput | StockAlertCreateManyPartInput[]
    skipDuplicates?: boolean
  }

  export type WarehouseCreateWithoutPartsInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    address?: string | null
    contactPerson?: string | null
    contactPhone?: string | null
    status?: $Enums.WarehouseStatus
    isDefault?: boolean
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    storageLocations?: StorageLocationCreateNestedManyWithoutWarehouseInput
  }

  export type WarehouseUncheckedCreateWithoutPartsInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    address?: string | null
    contactPerson?: string | null
    contactPhone?: string | null
    status?: $Enums.WarehouseStatus
    isDefault?: boolean
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    storageLocations?: StorageLocationUncheckedCreateNestedManyWithoutWarehouseInput
  }

  export type WarehouseCreateOrConnectWithoutPartsInput = {
    where: WarehouseWhereUniqueInput
    create: XOR<WarehouseCreateWithoutPartsInput, WarehouseUncheckedCreateWithoutPartsInput>
  }

  export type StorageLocationCreateWithoutPartsInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    zone?: string | null
    aisle?: string | null
    rack?: string | null
    level?: string | null
    position?: string | null
    capacity?: number | null
    status?: $Enums.StorageLocationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    warehouse: WarehouseCreateNestedOneWithoutStorageLocationsInput
  }

  export type StorageLocationUncheckedCreateWithoutPartsInput = {
    id?: string
    warehouseId: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    zone?: string | null
    aisle?: string | null
    rack?: string | null
    level?: string | null
    position?: string | null
    capacity?: number | null
    status?: $Enums.StorageLocationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StorageLocationCreateOrConnectWithoutPartsInput = {
    where: StorageLocationWhereUniqueInput
    create: XOR<StorageLocationCreateWithoutPartsInput, StorageLocationUncheckedCreateWithoutPartsInput>
  }

  export type StationCreateWithoutPartsInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    area?: string | null
    line?: string | null
    type?: string | null
    status?: $Enums.StationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StationUncheckedCreateWithoutPartsInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    area?: string | null
    line?: string | null
    type?: string | null
    status?: $Enums.StationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StationCreateOrConnectWithoutPartsInput = {
    where: StationWhereUniqueInput
    create: XOR<StationCreateWithoutPartsInput, StationUncheckedCreateWithoutPartsInput>
  }

  export type InventoryLogUpsertWithWhereUniqueWithoutPartInput = {
    where: InventoryLogWhereUniqueInput
    update: XOR<InventoryLogUpdateWithoutPartInput, InventoryLogUncheckedUpdateWithoutPartInput>
    create: XOR<InventoryLogCreateWithoutPartInput, InventoryLogUncheckedCreateWithoutPartInput>
  }

  export type InventoryLogUpdateWithWhereUniqueWithoutPartInput = {
    where: InventoryLogWhereUniqueInput
    data: XOR<InventoryLogUpdateWithoutPartInput, InventoryLogUncheckedUpdateWithoutPartInput>
  }

  export type InventoryLogUpdateManyWithWhereWithoutPartInput = {
    where: InventoryLogScalarWhereInput
    data: XOR<InventoryLogUpdateManyMutationInput, InventoryLogUncheckedUpdateManyWithoutPartInput>
  }

  export type InventoryLogScalarWhereInput = {
    AND?: InventoryLogScalarWhereInput | InventoryLogScalarWhereInput[]
    OR?: InventoryLogScalarWhereInput[]
    NOT?: InventoryLogScalarWhereInput | InventoryLogScalarWhereInput[]
    id?: UuidFilter<"InventoryLog"> | string
    partId?: UuidFilter<"InventoryLog"> | string
    operationType?: EnumInventoryOperationTypeFilter<"InventoryLog"> | $Enums.InventoryOperationType
    quantity?: IntFilter<"InventoryLog"> | number
    previousStock?: IntFilter<"InventoryLog"> | number
    newStock?: IntFilter<"InventoryLog"> | number
    station?: StringNullableFilter<"InventoryLog"> | string | null
    warehouseLocation?: StringNullableFilter<"InventoryLog"> | string | null
    reason?: StringNullableFilter<"InventoryLog"> | string | null
    referenceType?: StringNullableFilter<"InventoryLog"> | string | null
    referenceId?: UuidNullableFilter<"InventoryLog"> | string | null
    operatorId?: UuidFilter<"InventoryLog"> | string
    operatorName?: StringFilter<"InventoryLog"> | string
    scannedCode?: StringNullableFilter<"InventoryLog"> | string | null
    deviceInfo?: JsonNullableFilter<"InventoryLog">
    metadata?: JsonFilter<"InventoryLog">
    createdAt?: DateTimeFilter<"InventoryLog"> | Date | string
  }

  export type PartGroupRelationUpsertWithWhereUniqueWithoutPartInput = {
    where: PartGroupRelationWhereUniqueInput
    update: XOR<PartGroupRelationUpdateWithoutPartInput, PartGroupRelationUncheckedUpdateWithoutPartInput>
    create: XOR<PartGroupRelationCreateWithoutPartInput, PartGroupRelationUncheckedCreateWithoutPartInput>
  }

  export type PartGroupRelationUpdateWithWhereUniqueWithoutPartInput = {
    where: PartGroupRelationWhereUniqueInput
    data: XOR<PartGroupRelationUpdateWithoutPartInput, PartGroupRelationUncheckedUpdateWithoutPartInput>
  }

  export type PartGroupRelationUpdateManyWithWhereWithoutPartInput = {
    where: PartGroupRelationScalarWhereInput
    data: XOR<PartGroupRelationUpdateManyMutationInput, PartGroupRelationUncheckedUpdateManyWithoutPartInput>
  }

  export type PartGroupRelationScalarWhereInput = {
    AND?: PartGroupRelationScalarWhereInput | PartGroupRelationScalarWhereInput[]
    OR?: PartGroupRelationScalarWhereInput[]
    NOT?: PartGroupRelationScalarWhereInput | PartGroupRelationScalarWhereInput[]
    partId?: UuidFilter<"PartGroupRelation"> | string
    groupId?: UuidFilter<"PartGroupRelation"> | string
    createdAt?: DateTimeFilter<"PartGroupRelation"> | Date | string
    createdBy?: UuidNullableFilter<"PartGroupRelation"> | string | null
  }

  export type PartLabelUpsertWithWhereUniqueWithoutPartInput = {
    where: PartLabelWhereUniqueInput
    update: XOR<PartLabelUpdateWithoutPartInput, PartLabelUncheckedUpdateWithoutPartInput>
    create: XOR<PartLabelCreateWithoutPartInput, PartLabelUncheckedCreateWithoutPartInput>
  }

  export type PartLabelUpdateWithWhereUniqueWithoutPartInput = {
    where: PartLabelWhereUniqueInput
    data: XOR<PartLabelUpdateWithoutPartInput, PartLabelUncheckedUpdateWithoutPartInput>
  }

  export type PartLabelUpdateManyWithWhereWithoutPartInput = {
    where: PartLabelScalarWhereInput
    data: XOR<PartLabelUpdateManyMutationInput, PartLabelUncheckedUpdateManyWithoutPartInput>
  }

  export type PartLabelScalarWhereInput = {
    AND?: PartLabelScalarWhereInput | PartLabelScalarWhereInput[]
    OR?: PartLabelScalarWhereInput[]
    NOT?: PartLabelScalarWhereInput | PartLabelScalarWhereInput[]
    id?: UuidFilter<"PartLabel"> | string
    partId?: UuidFilter<"PartLabel"> | string
    labelCode?: StringFilter<"PartLabel"> | string
    qrCodeData?: StringFilter<"PartLabel"> | string
    template?: StringFilter<"PartLabel"> | string
    size?: StringFilter<"PartLabel"> | string
    printCount?: IntFilter<"PartLabel"> | number
    lastPrintedAt?: DateTimeNullableFilter<"PartLabel"> | Date | string | null
    printedBy?: StringNullableFilter<"PartLabel"> | string | null
    status?: EnumLabelStatusFilter<"PartLabel"> | $Enums.LabelStatus
    createdAt?: DateTimeFilter<"PartLabel"> | Date | string
    updatedAt?: DateTimeFilter<"PartLabel"> | Date | string
  }

  export type StockAlertUpsertWithWhereUniqueWithoutPartInput = {
    where: StockAlertWhereUniqueInput
    update: XOR<StockAlertUpdateWithoutPartInput, StockAlertUncheckedUpdateWithoutPartInput>
    create: XOR<StockAlertCreateWithoutPartInput, StockAlertUncheckedCreateWithoutPartInput>
  }

  export type StockAlertUpdateWithWhereUniqueWithoutPartInput = {
    where: StockAlertWhereUniqueInput
    data: XOR<StockAlertUpdateWithoutPartInput, StockAlertUncheckedUpdateWithoutPartInput>
  }

  export type StockAlertUpdateManyWithWhereWithoutPartInput = {
    where: StockAlertScalarWhereInput
    data: XOR<StockAlertUpdateManyMutationInput, StockAlertUncheckedUpdateManyWithoutPartInput>
  }

  export type StockAlertScalarWhereInput = {
    AND?: StockAlertScalarWhereInput | StockAlertScalarWhereInput[]
    OR?: StockAlertScalarWhereInput[]
    NOT?: StockAlertScalarWhereInput | StockAlertScalarWhereInput[]
    id?: UuidFilter<"StockAlert"> | string
    partId?: UuidFilter<"StockAlert"> | string
    alertType?: EnumStockAlertTypeFilter<"StockAlert"> | $Enums.StockAlertType
    severity?: EnumAlertSeverityFilter<"StockAlert"> | $Enums.AlertSeverity
    currentStock?: IntFilter<"StockAlert"> | number
    threshold?: IntFilter<"StockAlert"> | number
    message?: StringFilter<"StockAlert"> | string
    status?: EnumAlertStatusFilter<"StockAlert"> | $Enums.AlertStatus
    acknowledgedBy?: StringNullableFilter<"StockAlert"> | string | null
    acknowledgedAt?: DateTimeNullableFilter<"StockAlert"> | Date | string | null
    resolvedBy?: StringNullableFilter<"StockAlert"> | string | null
    resolvedAt?: DateTimeNullableFilter<"StockAlert"> | Date | string | null
    resolution?: StringNullableFilter<"StockAlert"> | string | null
    createdAt?: DateTimeFilter<"StockAlert"> | Date | string
    updatedAt?: DateTimeFilter<"StockAlert"> | Date | string
  }

  export type WarehouseUpsertWithoutPartsInput = {
    update: XOR<WarehouseUpdateWithoutPartsInput, WarehouseUncheckedUpdateWithoutPartsInput>
    create: XOR<WarehouseCreateWithoutPartsInput, WarehouseUncheckedCreateWithoutPartsInput>
    where?: WarehouseWhereInput
  }

  export type WarehouseUpdateToOneWithWhereWithoutPartsInput = {
    where?: WarehouseWhereInput
    data: XOR<WarehouseUpdateWithoutPartsInput, WarehouseUncheckedUpdateWithoutPartsInput>
  }

  export type WarehouseUpdateWithoutPartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    contactPerson?: NullableStringFieldUpdateOperationsInput | string | null
    contactPhone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumWarehouseStatusFieldUpdateOperationsInput | $Enums.WarehouseStatus
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    storageLocations?: StorageLocationUpdateManyWithoutWarehouseNestedInput
  }

  export type WarehouseUncheckedUpdateWithoutPartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    contactPerson?: NullableStringFieldUpdateOperationsInput | string | null
    contactPhone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumWarehouseStatusFieldUpdateOperationsInput | $Enums.WarehouseStatus
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    storageLocations?: StorageLocationUncheckedUpdateManyWithoutWarehouseNestedInput
  }

  export type StorageLocationUpsertWithoutPartsInput = {
    update: XOR<StorageLocationUpdateWithoutPartsInput, StorageLocationUncheckedUpdateWithoutPartsInput>
    create: XOR<StorageLocationCreateWithoutPartsInput, StorageLocationUncheckedCreateWithoutPartsInput>
    where?: StorageLocationWhereInput
  }

  export type StorageLocationUpdateToOneWithWhereWithoutPartsInput = {
    where?: StorageLocationWhereInput
    data: XOR<StorageLocationUpdateWithoutPartsInput, StorageLocationUncheckedUpdateWithoutPartsInput>
  }

  export type StorageLocationUpdateWithoutPartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    warehouse?: WarehouseUpdateOneRequiredWithoutStorageLocationsNestedInput
  }

  export type StorageLocationUncheckedUpdateWithoutPartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    warehouseId?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StationUpsertWithoutPartsInput = {
    update: XOR<StationUpdateWithoutPartsInput, StationUncheckedUpdateWithoutPartsInput>
    create: XOR<StationCreateWithoutPartsInput, StationUncheckedCreateWithoutPartsInput>
    where?: StationWhereInput
  }

  export type StationUpdateToOneWithWhereWithoutPartsInput = {
    where?: StationWhereInput
    data: XOR<StationUpdateWithoutPartsInput, StationUncheckedUpdateWithoutPartsInput>
  }

  export type StationUpdateWithoutPartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    area?: NullableStringFieldUpdateOperationsInput | string | null
    line?: NullableStringFieldUpdateOperationsInput | string | null
    type?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumStationStatusFieldUpdateOperationsInput | $Enums.StationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StationUncheckedUpdateWithoutPartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    area?: NullableStringFieldUpdateOperationsInput | string | null
    line?: NullableStringFieldUpdateOperationsInput | string | null
    type?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumStationStatusFieldUpdateOperationsInput | $Enums.StationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartCreateWithoutStationRefInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationCreateNestedManyWithoutPartInput
    labels?: PartLabelCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertCreateNestedManyWithoutPartInput
    warehouse?: WarehouseCreateNestedOneWithoutPartsInput
    storageLocation?: StorageLocationCreateNestedOneWithoutPartsInput
  }

  export type PartUncheckedCreateWithoutStationRefInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogUncheckedCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationUncheckedCreateNestedManyWithoutPartInput
    labels?: PartLabelUncheckedCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertUncheckedCreateNestedManyWithoutPartInput
  }

  export type PartCreateOrConnectWithoutStationRefInput = {
    where: PartWhereUniqueInput
    create: XOR<PartCreateWithoutStationRefInput, PartUncheckedCreateWithoutStationRefInput>
  }

  export type PartCreateManyStationRefInputEnvelope = {
    data: PartCreateManyStationRefInput | PartCreateManyStationRefInput[]
    skipDuplicates?: boolean
  }

  export type PartUpsertWithWhereUniqueWithoutStationRefInput = {
    where: PartWhereUniqueInput
    update: XOR<PartUpdateWithoutStationRefInput, PartUncheckedUpdateWithoutStationRefInput>
    create: XOR<PartCreateWithoutStationRefInput, PartUncheckedCreateWithoutStationRefInput>
  }

  export type PartUpdateWithWhereUniqueWithoutStationRefInput = {
    where: PartWhereUniqueInput
    data: XOR<PartUpdateWithoutStationRefInput, PartUncheckedUpdateWithoutStationRefInput>
  }

  export type PartUpdateManyWithWhereWithoutStationRefInput = {
    where: PartScalarWhereInput
    data: XOR<PartUpdateManyMutationInput, PartUncheckedUpdateManyWithoutStationRefInput>
  }

  export type PartScalarWhereInput = {
    AND?: PartScalarWhereInput | PartScalarWhereInput[]
    OR?: PartScalarWhereInput[]
    NOT?: PartScalarWhereInput | PartScalarWhereInput[]
    id?: UuidFilter<"Part"> | string
    partNumber?: StringFilter<"Part"> | string
    partNameEn?: StringFilter<"Part"> | string
    partNameCn?: StringNullableFilter<"Part"> | string | null
    unit?: StringFilter<"Part"> | string
    source?: StringNullableFilter<"Part"> | string | null
    specifications?: StringNullableFilter<"Part"> | string | null
    remark?: StringNullableFilter<"Part"> | string | null
    status?: EnumPartStatusFilter<"Part"> | $Enums.PartStatus
    currentStock?: IntFilter<"Part"> | number
    minStock?: IntFilter<"Part"> | number
    maxStock?: IntNullableFilter<"Part"> | number | null
    station?: StringNullableFilter<"Part"> | string | null
    stationId?: UuidNullableFilter<"Part"> | string | null
    warehouseLocation?: StringNullableFilter<"Part"> | string | null
    warehouseId?: UuidNullableFilter<"Part"> | string | null
    storageLocationId?: UuidNullableFilter<"Part"> | string | null
    imageUrl?: StringNullableFilter<"Part"> | string | null
    customFields?: JsonNullableFilter<"Part">
    metadata?: JsonFilter<"Part">
    createdAt?: DateTimeFilter<"Part"> | Date | string
    updatedAt?: DateTimeFilter<"Part"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Part"> | Date | string | null
  }

  export type StorageLocationCreateWithoutWarehouseInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    zone?: string | null
    aisle?: string | null
    rack?: string | null
    level?: string | null
    position?: string | null
    capacity?: number | null
    status?: $Enums.StorageLocationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartCreateNestedManyWithoutStorageLocationInput
  }

  export type StorageLocationUncheckedCreateWithoutWarehouseInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    zone?: string | null
    aisle?: string | null
    rack?: string | null
    level?: string | null
    position?: string | null
    capacity?: number | null
    status?: $Enums.StorageLocationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartUncheckedCreateNestedManyWithoutStorageLocationInput
  }

  export type StorageLocationCreateOrConnectWithoutWarehouseInput = {
    where: StorageLocationWhereUniqueInput
    create: XOR<StorageLocationCreateWithoutWarehouseInput, StorageLocationUncheckedCreateWithoutWarehouseInput>
  }

  export type StorageLocationCreateManyWarehouseInputEnvelope = {
    data: StorageLocationCreateManyWarehouseInput | StorageLocationCreateManyWarehouseInput[]
    skipDuplicates?: boolean
  }

  export type PartCreateWithoutWarehouseInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationCreateNestedManyWithoutPartInput
    labels?: PartLabelCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertCreateNestedManyWithoutPartInput
    storageLocation?: StorageLocationCreateNestedOneWithoutPartsInput
    stationRef?: StationCreateNestedOneWithoutPartsInput
  }

  export type PartUncheckedCreateWithoutWarehouseInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogUncheckedCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationUncheckedCreateNestedManyWithoutPartInput
    labels?: PartLabelUncheckedCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertUncheckedCreateNestedManyWithoutPartInput
  }

  export type PartCreateOrConnectWithoutWarehouseInput = {
    where: PartWhereUniqueInput
    create: XOR<PartCreateWithoutWarehouseInput, PartUncheckedCreateWithoutWarehouseInput>
  }

  export type PartCreateManyWarehouseInputEnvelope = {
    data: PartCreateManyWarehouseInput | PartCreateManyWarehouseInput[]
    skipDuplicates?: boolean
  }

  export type StorageLocationUpsertWithWhereUniqueWithoutWarehouseInput = {
    where: StorageLocationWhereUniqueInput
    update: XOR<StorageLocationUpdateWithoutWarehouseInput, StorageLocationUncheckedUpdateWithoutWarehouseInput>
    create: XOR<StorageLocationCreateWithoutWarehouseInput, StorageLocationUncheckedCreateWithoutWarehouseInput>
  }

  export type StorageLocationUpdateWithWhereUniqueWithoutWarehouseInput = {
    where: StorageLocationWhereUniqueInput
    data: XOR<StorageLocationUpdateWithoutWarehouseInput, StorageLocationUncheckedUpdateWithoutWarehouseInput>
  }

  export type StorageLocationUpdateManyWithWhereWithoutWarehouseInput = {
    where: StorageLocationScalarWhereInput
    data: XOR<StorageLocationUpdateManyMutationInput, StorageLocationUncheckedUpdateManyWithoutWarehouseInput>
  }

  export type StorageLocationScalarWhereInput = {
    AND?: StorageLocationScalarWhereInput | StorageLocationScalarWhereInput[]
    OR?: StorageLocationScalarWhereInput[]
    NOT?: StorageLocationScalarWhereInput | StorageLocationScalarWhereInput[]
    id?: UuidFilter<"StorageLocation"> | string
    warehouseId?: UuidFilter<"StorageLocation"> | string
    code?: StringFilter<"StorageLocation"> | string
    nameEn?: StringFilter<"StorageLocation"> | string
    nameCn?: StringNullableFilter<"StorageLocation"> | string | null
    description?: StringNullableFilter<"StorageLocation"> | string | null
    zone?: StringNullableFilter<"StorageLocation"> | string | null
    aisle?: StringNullableFilter<"StorageLocation"> | string | null
    rack?: StringNullableFilter<"StorageLocation"> | string | null
    level?: StringNullableFilter<"StorageLocation"> | string | null
    position?: StringNullableFilter<"StorageLocation"> | string | null
    capacity?: IntNullableFilter<"StorageLocation"> | number | null
    status?: EnumStorageLocationStatusFilter<"StorageLocation"> | $Enums.StorageLocationStatus
    sortOrder?: IntFilter<"StorageLocation"> | number
    metadata?: JsonFilter<"StorageLocation">
    createdAt?: DateTimeFilter<"StorageLocation"> | Date | string
    updatedAt?: DateTimeFilter<"StorageLocation"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StorageLocation"> | Date | string | null
  }

  export type PartUpsertWithWhereUniqueWithoutWarehouseInput = {
    where: PartWhereUniqueInput
    update: XOR<PartUpdateWithoutWarehouseInput, PartUncheckedUpdateWithoutWarehouseInput>
    create: XOR<PartCreateWithoutWarehouseInput, PartUncheckedCreateWithoutWarehouseInput>
  }

  export type PartUpdateWithWhereUniqueWithoutWarehouseInput = {
    where: PartWhereUniqueInput
    data: XOR<PartUpdateWithoutWarehouseInput, PartUncheckedUpdateWithoutWarehouseInput>
  }

  export type PartUpdateManyWithWhereWithoutWarehouseInput = {
    where: PartScalarWhereInput
    data: XOR<PartUpdateManyMutationInput, PartUncheckedUpdateManyWithoutWarehouseInput>
  }

  export type WarehouseCreateWithoutStorageLocationsInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    address?: string | null
    contactPerson?: string | null
    contactPhone?: string | null
    status?: $Enums.WarehouseStatus
    isDefault?: boolean
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartCreateNestedManyWithoutWarehouseInput
  }

  export type WarehouseUncheckedCreateWithoutStorageLocationsInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    address?: string | null
    contactPerson?: string | null
    contactPhone?: string | null
    status?: $Enums.WarehouseStatus
    isDefault?: boolean
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartUncheckedCreateNestedManyWithoutWarehouseInput
  }

  export type WarehouseCreateOrConnectWithoutStorageLocationsInput = {
    where: WarehouseWhereUniqueInput
    create: XOR<WarehouseCreateWithoutStorageLocationsInput, WarehouseUncheckedCreateWithoutStorageLocationsInput>
  }

  export type PartCreateWithoutStorageLocationInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationCreateNestedManyWithoutPartInput
    labels?: PartLabelCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertCreateNestedManyWithoutPartInput
    warehouse?: WarehouseCreateNestedOneWithoutPartsInput
    stationRef?: StationCreateNestedOneWithoutPartsInput
  }

  export type PartUncheckedCreateWithoutStorageLocationInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogUncheckedCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationUncheckedCreateNestedManyWithoutPartInput
    labels?: PartLabelUncheckedCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertUncheckedCreateNestedManyWithoutPartInput
  }

  export type PartCreateOrConnectWithoutStorageLocationInput = {
    where: PartWhereUniqueInput
    create: XOR<PartCreateWithoutStorageLocationInput, PartUncheckedCreateWithoutStorageLocationInput>
  }

  export type PartCreateManyStorageLocationInputEnvelope = {
    data: PartCreateManyStorageLocationInput | PartCreateManyStorageLocationInput[]
    skipDuplicates?: boolean
  }

  export type WarehouseUpsertWithoutStorageLocationsInput = {
    update: XOR<WarehouseUpdateWithoutStorageLocationsInput, WarehouseUncheckedUpdateWithoutStorageLocationsInput>
    create: XOR<WarehouseCreateWithoutStorageLocationsInput, WarehouseUncheckedCreateWithoutStorageLocationsInput>
    where?: WarehouseWhereInput
  }

  export type WarehouseUpdateToOneWithWhereWithoutStorageLocationsInput = {
    where?: WarehouseWhereInput
    data: XOR<WarehouseUpdateWithoutStorageLocationsInput, WarehouseUncheckedUpdateWithoutStorageLocationsInput>
  }

  export type WarehouseUpdateWithoutStorageLocationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    contactPerson?: NullableStringFieldUpdateOperationsInput | string | null
    contactPhone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumWarehouseStatusFieldUpdateOperationsInput | $Enums.WarehouseStatus
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartUpdateManyWithoutWarehouseNestedInput
  }

  export type WarehouseUncheckedUpdateWithoutStorageLocationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    contactPerson?: NullableStringFieldUpdateOperationsInput | string | null
    contactPhone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumWarehouseStatusFieldUpdateOperationsInput | $Enums.WarehouseStatus
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartUncheckedUpdateManyWithoutWarehouseNestedInput
  }

  export type PartUpsertWithWhereUniqueWithoutStorageLocationInput = {
    where: PartWhereUniqueInput
    update: XOR<PartUpdateWithoutStorageLocationInput, PartUncheckedUpdateWithoutStorageLocationInput>
    create: XOR<PartCreateWithoutStorageLocationInput, PartUncheckedCreateWithoutStorageLocationInput>
  }

  export type PartUpdateWithWhereUniqueWithoutStorageLocationInput = {
    where: PartWhereUniqueInput
    data: XOR<PartUpdateWithoutStorageLocationInput, PartUncheckedUpdateWithoutStorageLocationInput>
  }

  export type PartUpdateManyWithWhereWithoutStorageLocationInput = {
    where: PartScalarWhereInput
    data: XOR<PartUpdateManyMutationInput, PartUncheckedUpdateManyWithoutStorageLocationInput>
  }

  export type PartCreateWithoutLabelsInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertCreateNestedManyWithoutPartInput
    warehouse?: WarehouseCreateNestedOneWithoutPartsInput
    storageLocation?: StorageLocationCreateNestedOneWithoutPartsInput
    stationRef?: StationCreateNestedOneWithoutPartsInput
  }

  export type PartUncheckedCreateWithoutLabelsInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogUncheckedCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationUncheckedCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertUncheckedCreateNestedManyWithoutPartInput
  }

  export type PartCreateOrConnectWithoutLabelsInput = {
    where: PartWhereUniqueInput
    create: XOR<PartCreateWithoutLabelsInput, PartUncheckedCreateWithoutLabelsInput>
  }

  export type PartUpsertWithoutLabelsInput = {
    update: XOR<PartUpdateWithoutLabelsInput, PartUncheckedUpdateWithoutLabelsInput>
    create: XOR<PartCreateWithoutLabelsInput, PartUncheckedCreateWithoutLabelsInput>
    where?: PartWhereInput
  }

  export type PartUpdateToOneWithWhereWithoutLabelsInput = {
    where?: PartWhereInput
    data: XOR<PartUpdateWithoutLabelsInput, PartUncheckedUpdateWithoutLabelsInput>
  }

  export type PartUpdateWithoutLabelsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUpdateManyWithoutPartNestedInput
    warehouse?: WarehouseUpdateOneWithoutPartsNestedInput
    storageLocation?: StorageLocationUpdateOneWithoutPartsNestedInput
    stationRef?: StationUpdateOneWithoutPartsNestedInput
  }

  export type PartUncheckedUpdateWithoutLabelsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUncheckedUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUncheckedUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUncheckedUpdateManyWithoutPartNestedInput
  }

  export type PartCreateWithoutInventoryLogsInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    groups?: PartGroupRelationCreateNestedManyWithoutPartInput
    labels?: PartLabelCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertCreateNestedManyWithoutPartInput
    warehouse?: WarehouseCreateNestedOneWithoutPartsInput
    storageLocation?: StorageLocationCreateNestedOneWithoutPartsInput
    stationRef?: StationCreateNestedOneWithoutPartsInput
  }

  export type PartUncheckedCreateWithoutInventoryLogsInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    groups?: PartGroupRelationUncheckedCreateNestedManyWithoutPartInput
    labels?: PartLabelUncheckedCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertUncheckedCreateNestedManyWithoutPartInput
  }

  export type PartCreateOrConnectWithoutInventoryLogsInput = {
    where: PartWhereUniqueInput
    create: XOR<PartCreateWithoutInventoryLogsInput, PartUncheckedCreateWithoutInventoryLogsInput>
  }

  export type PartUpsertWithoutInventoryLogsInput = {
    update: XOR<PartUpdateWithoutInventoryLogsInput, PartUncheckedUpdateWithoutInventoryLogsInput>
    create: XOR<PartCreateWithoutInventoryLogsInput, PartUncheckedCreateWithoutInventoryLogsInput>
    where?: PartWhereInput
  }

  export type PartUpdateToOneWithWhereWithoutInventoryLogsInput = {
    where?: PartWhereInput
    data: XOR<PartUpdateWithoutInventoryLogsInput, PartUncheckedUpdateWithoutInventoryLogsInput>
  }

  export type PartUpdateWithoutInventoryLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    groups?: PartGroupRelationUpdateManyWithoutPartNestedInput
    labels?: PartLabelUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUpdateManyWithoutPartNestedInput
    warehouse?: WarehouseUpdateOneWithoutPartsNestedInput
    storageLocation?: StorageLocationUpdateOneWithoutPartsNestedInput
    stationRef?: StationUpdateOneWithoutPartsNestedInput
  }

  export type PartUncheckedUpdateWithoutInventoryLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    groups?: PartGroupRelationUncheckedUpdateManyWithoutPartNestedInput
    labels?: PartLabelUncheckedUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUncheckedUpdateManyWithoutPartNestedInput
  }

  export type PartCreateWithoutStockAlertsInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationCreateNestedManyWithoutPartInput
    labels?: PartLabelCreateNestedManyWithoutPartInput
    warehouse?: WarehouseCreateNestedOneWithoutPartsInput
    storageLocation?: StorageLocationCreateNestedOneWithoutPartsInput
    stationRef?: StationCreateNestedOneWithoutPartsInput
  }

  export type PartUncheckedCreateWithoutStockAlertsInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogUncheckedCreateNestedManyWithoutPartInput
    groups?: PartGroupRelationUncheckedCreateNestedManyWithoutPartInput
    labels?: PartLabelUncheckedCreateNestedManyWithoutPartInput
  }

  export type PartCreateOrConnectWithoutStockAlertsInput = {
    where: PartWhereUniqueInput
    create: XOR<PartCreateWithoutStockAlertsInput, PartUncheckedCreateWithoutStockAlertsInput>
  }

  export type PartUpsertWithoutStockAlertsInput = {
    update: XOR<PartUpdateWithoutStockAlertsInput, PartUncheckedUpdateWithoutStockAlertsInput>
    create: XOR<PartCreateWithoutStockAlertsInput, PartUncheckedCreateWithoutStockAlertsInput>
    where?: PartWhereInput
  }

  export type PartUpdateToOneWithWhereWithoutStockAlertsInput = {
    where?: PartWhereInput
    data: XOR<PartUpdateWithoutStockAlertsInput, PartUncheckedUpdateWithoutStockAlertsInput>
  }

  export type PartUpdateWithoutStockAlertsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUpdateManyWithoutPartNestedInput
    labels?: PartLabelUpdateManyWithoutPartNestedInput
    warehouse?: WarehouseUpdateOneWithoutPartsNestedInput
    storageLocation?: StorageLocationUpdateOneWithoutPartsNestedInput
    stationRef?: StationUpdateOneWithoutPartsNestedInput
  }

  export type PartUncheckedUpdateWithoutStockAlertsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUncheckedUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUncheckedUpdateManyWithoutPartNestedInput
    labels?: PartLabelUncheckedUpdateManyWithoutPartNestedInput
  }

  export type GroupCustomFieldCreateWithoutGroupInput = {
    id?: string
    key: string
    nameEn: string
    type: $Enums.GroupFieldType
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: string | null
    placeholder?: string | null
    helpText?: string | null
    displayOrder?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    nameCn?: string | null
  }

  export type GroupCustomFieldUncheckedCreateWithoutGroupInput = {
    id?: string
    key: string
    nameEn: string
    type: $Enums.GroupFieldType
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: string | null
    placeholder?: string | null
    helpText?: string | null
    displayOrder?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    nameCn?: string | null
  }

  export type GroupCustomFieldCreateOrConnectWithoutGroupInput = {
    where: GroupCustomFieldWhereUniqueInput
    create: XOR<GroupCustomFieldCreateWithoutGroupInput, GroupCustomFieldUncheckedCreateWithoutGroupInput>
  }

  export type GroupCustomFieldCreateManyGroupInputEnvelope = {
    data: GroupCustomFieldCreateManyGroupInput | GroupCustomFieldCreateManyGroupInput[]
    skipDuplicates?: boolean
  }

  export type PartGroupRelationCreateWithoutGroupInput = {
    createdAt?: Date | string
    createdBy?: string | null
    part: PartCreateNestedOneWithoutGroupsInput
  }

  export type PartGroupRelationUncheckedCreateWithoutGroupInput = {
    partId: string
    createdAt?: Date | string
    createdBy?: string | null
  }

  export type PartGroupRelationCreateOrConnectWithoutGroupInput = {
    where: PartGroupRelationWhereUniqueInput
    create: XOR<PartGroupRelationCreateWithoutGroupInput, PartGroupRelationUncheckedCreateWithoutGroupInput>
  }

  export type PartGroupRelationCreateManyGroupInputEnvelope = {
    data: PartGroupRelationCreateManyGroupInput | PartGroupRelationCreateManyGroupInput[]
    skipDuplicates?: boolean
  }

  export type GroupCustomFieldUpsertWithWhereUniqueWithoutGroupInput = {
    where: GroupCustomFieldWhereUniqueInput
    update: XOR<GroupCustomFieldUpdateWithoutGroupInput, GroupCustomFieldUncheckedUpdateWithoutGroupInput>
    create: XOR<GroupCustomFieldCreateWithoutGroupInput, GroupCustomFieldUncheckedCreateWithoutGroupInput>
  }

  export type GroupCustomFieldUpdateWithWhereUniqueWithoutGroupInput = {
    where: GroupCustomFieldWhereUniqueInput
    data: XOR<GroupCustomFieldUpdateWithoutGroupInput, GroupCustomFieldUncheckedUpdateWithoutGroupInput>
  }

  export type GroupCustomFieldUpdateManyWithWhereWithoutGroupInput = {
    where: GroupCustomFieldScalarWhereInput
    data: XOR<GroupCustomFieldUpdateManyMutationInput, GroupCustomFieldUncheckedUpdateManyWithoutGroupInput>
  }

  export type GroupCustomFieldScalarWhereInput = {
    AND?: GroupCustomFieldScalarWhereInput | GroupCustomFieldScalarWhereInput[]
    OR?: GroupCustomFieldScalarWhereInput[]
    NOT?: GroupCustomFieldScalarWhereInput | GroupCustomFieldScalarWhereInput[]
    id?: UuidFilter<"GroupCustomField"> | string
    groupId?: UuidFilter<"GroupCustomField"> | string
    key?: StringFilter<"GroupCustomField"> | string
    nameEn?: StringFilter<"GroupCustomField"> | string
    type?: EnumGroupFieldTypeFilter<"GroupCustomField"> | $Enums.GroupFieldType
    required?: BoolFilter<"GroupCustomField"> | boolean
    visible?: BoolFilter<"GroupCustomField"> | boolean
    editable?: BoolFilter<"GroupCustomField"> | boolean
    searchable?: BoolFilter<"GroupCustomField"> | boolean
    options?: JsonNullableFilter<"GroupCustomField">
    validation?: JsonNullableFilter<"GroupCustomField">
    description?: StringNullableFilter<"GroupCustomField"> | string | null
    placeholder?: StringNullableFilter<"GroupCustomField"> | string | null
    helpText?: StringNullableFilter<"GroupCustomField"> | string | null
    displayOrder?: IntFilter<"GroupCustomField"> | number
    createdBy?: UuidNullableFilter<"GroupCustomField"> | string | null
    createdAt?: DateTimeFilter<"GroupCustomField"> | Date | string
    updatedBy?: UuidNullableFilter<"GroupCustomField"> | string | null
    updatedAt?: DateTimeFilter<"GroupCustomField"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GroupCustomField"> | Date | string | null
    nameCn?: StringNullableFilter<"GroupCustomField"> | string | null
  }

  export type PartGroupRelationUpsertWithWhereUniqueWithoutGroupInput = {
    where: PartGroupRelationWhereUniqueInput
    update: XOR<PartGroupRelationUpdateWithoutGroupInput, PartGroupRelationUncheckedUpdateWithoutGroupInput>
    create: XOR<PartGroupRelationCreateWithoutGroupInput, PartGroupRelationUncheckedCreateWithoutGroupInput>
  }

  export type PartGroupRelationUpdateWithWhereUniqueWithoutGroupInput = {
    where: PartGroupRelationWhereUniqueInput
    data: XOR<PartGroupRelationUpdateWithoutGroupInput, PartGroupRelationUncheckedUpdateWithoutGroupInput>
  }

  export type PartGroupRelationUpdateManyWithWhereWithoutGroupInput = {
    where: PartGroupRelationScalarWhereInput
    data: XOR<PartGroupRelationUpdateManyMutationInput, PartGroupRelationUncheckedUpdateManyWithoutGroupInput>
  }

  export type PartGroupCreateWithoutCustomFieldsInput = {
    id?: string
    name: string
    description?: string | null
    displayOrder?: number
    isActive?: boolean
    partsCount?: number
    fieldsCount?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartGroupRelationCreateNestedManyWithoutGroupInput
  }

  export type PartGroupUncheckedCreateWithoutCustomFieldsInput = {
    id?: string
    name: string
    description?: string | null
    displayOrder?: number
    isActive?: boolean
    partsCount?: number
    fieldsCount?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parts?: PartGroupRelationUncheckedCreateNestedManyWithoutGroupInput
  }

  export type PartGroupCreateOrConnectWithoutCustomFieldsInput = {
    where: PartGroupWhereUniqueInput
    create: XOR<PartGroupCreateWithoutCustomFieldsInput, PartGroupUncheckedCreateWithoutCustomFieldsInput>
  }

  export type PartGroupUpsertWithoutCustomFieldsInput = {
    update: XOR<PartGroupUpdateWithoutCustomFieldsInput, PartGroupUncheckedUpdateWithoutCustomFieldsInput>
    create: XOR<PartGroupCreateWithoutCustomFieldsInput, PartGroupUncheckedCreateWithoutCustomFieldsInput>
    where?: PartGroupWhereInput
  }

  export type PartGroupUpdateToOneWithWhereWithoutCustomFieldsInput = {
    where?: PartGroupWhereInput
    data: XOR<PartGroupUpdateWithoutCustomFieldsInput, PartGroupUncheckedUpdateWithoutCustomFieldsInput>
  }

  export type PartGroupUpdateWithoutCustomFieldsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    partsCount?: IntFieldUpdateOperationsInput | number
    fieldsCount?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartGroupRelationUpdateManyWithoutGroupNestedInput
  }

  export type PartGroupUncheckedUpdateWithoutCustomFieldsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    partsCount?: IntFieldUpdateOperationsInput | number
    fieldsCount?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartGroupRelationUncheckedUpdateManyWithoutGroupNestedInput
  }

  export type PartGroupCreateWithoutPartsInput = {
    id?: string
    name: string
    description?: string | null
    displayOrder?: number
    isActive?: boolean
    partsCount?: number
    fieldsCount?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    customFields?: GroupCustomFieldCreateNestedManyWithoutGroupInput
  }

  export type PartGroupUncheckedCreateWithoutPartsInput = {
    id?: string
    name: string
    description?: string | null
    displayOrder?: number
    isActive?: boolean
    partsCount?: number
    fieldsCount?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    customFields?: GroupCustomFieldUncheckedCreateNestedManyWithoutGroupInput
  }

  export type PartGroupCreateOrConnectWithoutPartsInput = {
    where: PartGroupWhereUniqueInput
    create: XOR<PartGroupCreateWithoutPartsInput, PartGroupUncheckedCreateWithoutPartsInput>
  }

  export type PartCreateWithoutGroupsInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogCreateNestedManyWithoutPartInput
    labels?: PartLabelCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertCreateNestedManyWithoutPartInput
    warehouse?: WarehouseCreateNestedOneWithoutPartsInput
    storageLocation?: StorageLocationCreateNestedOneWithoutPartsInput
    stationRef?: StationCreateNestedOneWithoutPartsInput
  }

  export type PartUncheckedCreateWithoutGroupsInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    inventoryLogs?: InventoryLogUncheckedCreateNestedManyWithoutPartInput
    labels?: PartLabelUncheckedCreateNestedManyWithoutPartInput
    stockAlerts?: StockAlertUncheckedCreateNestedManyWithoutPartInput
  }

  export type PartCreateOrConnectWithoutGroupsInput = {
    where: PartWhereUniqueInput
    create: XOR<PartCreateWithoutGroupsInput, PartUncheckedCreateWithoutGroupsInput>
  }

  export type PartGroupUpsertWithoutPartsInput = {
    update: XOR<PartGroupUpdateWithoutPartsInput, PartGroupUncheckedUpdateWithoutPartsInput>
    create: XOR<PartGroupCreateWithoutPartsInput, PartGroupUncheckedCreateWithoutPartsInput>
    where?: PartGroupWhereInput
  }

  export type PartGroupUpdateToOneWithWhereWithoutPartsInput = {
    where?: PartGroupWhereInput
    data: XOR<PartGroupUpdateWithoutPartsInput, PartGroupUncheckedUpdateWithoutPartsInput>
  }

  export type PartGroupUpdateWithoutPartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    partsCount?: IntFieldUpdateOperationsInput | number
    fieldsCount?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    customFields?: GroupCustomFieldUpdateManyWithoutGroupNestedInput
  }

  export type PartGroupUncheckedUpdateWithoutPartsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    isActive?: BoolFieldUpdateOperationsInput | boolean
    partsCount?: IntFieldUpdateOperationsInput | number
    fieldsCount?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    customFields?: GroupCustomFieldUncheckedUpdateManyWithoutGroupNestedInput
  }

  export type PartUpsertWithoutGroupsInput = {
    update: XOR<PartUpdateWithoutGroupsInput, PartUncheckedUpdateWithoutGroupsInput>
    create: XOR<PartCreateWithoutGroupsInput, PartUncheckedCreateWithoutGroupsInput>
    where?: PartWhereInput
  }

  export type PartUpdateToOneWithWhereWithoutGroupsInput = {
    where?: PartWhereInput
    data: XOR<PartUpdateWithoutGroupsInput, PartUncheckedUpdateWithoutGroupsInput>
  }

  export type PartUpdateWithoutGroupsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUpdateManyWithoutPartNestedInput
    labels?: PartLabelUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUpdateManyWithoutPartNestedInput
    warehouse?: WarehouseUpdateOneWithoutPartsNestedInput
    storageLocation?: StorageLocationUpdateOneWithoutPartsNestedInput
    stationRef?: StationUpdateOneWithoutPartsNestedInput
  }

  export type PartUncheckedUpdateWithoutGroupsInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUncheckedUpdateManyWithoutPartNestedInput
    labels?: PartLabelUncheckedUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUncheckedUpdateManyWithoutPartNestedInput
  }

  export type AIMessageCreateWithoutConversationInput = {
    id?: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    feedback?: AIMessageFeedbackCreateNestedOneWithoutMessageInput
    knowledgeFix?: AIKnowledgeFixCreateNestedOneWithoutMessageInput
  }

  export type AIMessageUncheckedCreateWithoutConversationInput = {
    id?: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    feedback?: AIMessageFeedbackUncheckedCreateNestedOneWithoutMessageInput
    knowledgeFix?: AIKnowledgeFixUncheckedCreateNestedOneWithoutMessageInput
  }

  export type AIMessageCreateOrConnectWithoutConversationInput = {
    where: AIMessageWhereUniqueInput
    create: XOR<AIMessageCreateWithoutConversationInput, AIMessageUncheckedCreateWithoutConversationInput>
  }

  export type AIMessageCreateManyConversationInputEnvelope = {
    data: AIMessageCreateManyConversationInput | AIMessageCreateManyConversationInput[]
    skipDuplicates?: boolean
  }

  export type AIAssistantTicketCreateWithoutConversationInput = {
    id?: string
    category: $Enums.AITicketCategory
    priority?: $Enums.AITicketPriority
    status?: $Enums.AITicketStatus
    title: string
    description: string
    assigneeId?: string | null
    assigneeTeam?: $Enums.AIAssigneeTeam | null
    assignedAt?: Date | string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    externalTicketId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIAssistantTicketUncheckedCreateWithoutConversationInput = {
    id?: string
    category: $Enums.AITicketCategory
    priority?: $Enums.AITicketPriority
    status?: $Enums.AITicketStatus
    title: string
    description: string
    assigneeId?: string | null
    assigneeTeam?: $Enums.AIAssigneeTeam | null
    assignedAt?: Date | string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    externalTicketId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIAssistantTicketCreateOrConnectWithoutConversationInput = {
    where: AIAssistantTicketWhereUniqueInput
    create: XOR<AIAssistantTicketCreateWithoutConversationInput, AIAssistantTicketUncheckedCreateWithoutConversationInput>
  }

  export type AIAssistantTicketCreateManyConversationInputEnvelope = {
    data: AIAssistantTicketCreateManyConversationInput | AIAssistantTicketCreateManyConversationInput[]
    skipDuplicates?: boolean
  }

  export type AIMessageUpsertWithWhereUniqueWithoutConversationInput = {
    where: AIMessageWhereUniqueInput
    update: XOR<AIMessageUpdateWithoutConversationInput, AIMessageUncheckedUpdateWithoutConversationInput>
    create: XOR<AIMessageCreateWithoutConversationInput, AIMessageUncheckedCreateWithoutConversationInput>
  }

  export type AIMessageUpdateWithWhereUniqueWithoutConversationInput = {
    where: AIMessageWhereUniqueInput
    data: XOR<AIMessageUpdateWithoutConversationInput, AIMessageUncheckedUpdateWithoutConversationInput>
  }

  export type AIMessageUpdateManyWithWhereWithoutConversationInput = {
    where: AIMessageScalarWhereInput
    data: XOR<AIMessageUpdateManyMutationInput, AIMessageUncheckedUpdateManyWithoutConversationInput>
  }

  export type AIMessageScalarWhereInput = {
    AND?: AIMessageScalarWhereInput | AIMessageScalarWhereInput[]
    OR?: AIMessageScalarWhereInput[]
    NOT?: AIMessageScalarWhereInput | AIMessageScalarWhereInput[]
    id?: UuidFilter<"AIMessage"> | string
    conversationId?: UuidFilter<"AIMessage"> | string
    role?: EnumAIMessageRoleFilter<"AIMessage"> | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFilter<"AIMessage"> | $Enums.AIMessageSource
    content?: StringFilter<"AIMessage"> | string
    tokens?: IntNullableFilter<"AIMessage"> | number | null
    metadata?: JsonNullableFilter<"AIMessage">
    createdAt?: DateTimeFilter<"AIMessage"> | Date | string
  }

  export type AIAssistantTicketUpsertWithWhereUniqueWithoutConversationInput = {
    where: AIAssistantTicketWhereUniqueInput
    update: XOR<AIAssistantTicketUpdateWithoutConversationInput, AIAssistantTicketUncheckedUpdateWithoutConversationInput>
    create: XOR<AIAssistantTicketCreateWithoutConversationInput, AIAssistantTicketUncheckedCreateWithoutConversationInput>
  }

  export type AIAssistantTicketUpdateWithWhereUniqueWithoutConversationInput = {
    where: AIAssistantTicketWhereUniqueInput
    data: XOR<AIAssistantTicketUpdateWithoutConversationInput, AIAssistantTicketUncheckedUpdateWithoutConversationInput>
  }

  export type AIAssistantTicketUpdateManyWithWhereWithoutConversationInput = {
    where: AIAssistantTicketScalarWhereInput
    data: XOR<AIAssistantTicketUpdateManyMutationInput, AIAssistantTicketUncheckedUpdateManyWithoutConversationInput>
  }

  export type AIAssistantTicketScalarWhereInput = {
    AND?: AIAssistantTicketScalarWhereInput | AIAssistantTicketScalarWhereInput[]
    OR?: AIAssistantTicketScalarWhereInput[]
    NOT?: AIAssistantTicketScalarWhereInput | AIAssistantTicketScalarWhereInput[]
    id?: UuidFilter<"AIAssistantTicket"> | string
    conversationId?: UuidFilter<"AIAssistantTicket"> | string
    category?: EnumAITicketCategoryFilter<"AIAssistantTicket"> | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFilter<"AIAssistantTicket"> | $Enums.AITicketPriority
    status?: EnumAITicketStatusFilter<"AIAssistantTicket"> | $Enums.AITicketStatus
    title?: StringFilter<"AIAssistantTicket"> | string
    description?: StringFilter<"AIAssistantTicket"> | string
    assigneeId?: UuidNullableFilter<"AIAssistantTicket"> | string | null
    assigneeTeam?: EnumAIAssigneeTeamNullableFilter<"AIAssistantTicket"> | $Enums.AIAssigneeTeam | null
    assignedAt?: DateTimeNullableFilter<"AIAssistantTicket"> | Date | string | null
    resolvedAt?: DateTimeNullableFilter<"AIAssistantTicket"> | Date | string | null
    resolution?: StringNullableFilter<"AIAssistantTicket"> | string | null
    externalTicketId?: StringNullableFilter<"AIAssistantTicket"> | string | null
    createdAt?: DateTimeFilter<"AIAssistantTicket"> | Date | string
    updatedAt?: DateTimeFilter<"AIAssistantTicket"> | Date | string
  }

  export type AIConversationCreateWithoutMessagesInput = {
    id?: string
    userId: string
    title?: string | null
    status?: $Enums.AIConversationStatus
    category?: $Enums.AIConversationCategory
    tags?: AIConversationCreatetagsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    tickets?: AIAssistantTicketCreateNestedManyWithoutConversationInput
  }

  export type AIConversationUncheckedCreateWithoutMessagesInput = {
    id?: string
    userId: string
    title?: string | null
    status?: $Enums.AIConversationStatus
    category?: $Enums.AIConversationCategory
    tags?: AIConversationCreatetagsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    tickets?: AIAssistantTicketUncheckedCreateNestedManyWithoutConversationInput
  }

  export type AIConversationCreateOrConnectWithoutMessagesInput = {
    where: AIConversationWhereUniqueInput
    create: XOR<AIConversationCreateWithoutMessagesInput, AIConversationUncheckedCreateWithoutMessagesInput>
  }

  export type AIMessageFeedbackCreateWithoutMessageInput = {
    id?: string
    type: $Enums.AIFeedbackType
    comment?: string | null
    createdAt?: Date | string
  }

  export type AIMessageFeedbackUncheckedCreateWithoutMessageInput = {
    id?: string
    type: $Enums.AIFeedbackType
    comment?: string | null
    createdAt?: Date | string
  }

  export type AIMessageFeedbackCreateOrConnectWithoutMessageInput = {
    where: AIMessageFeedbackWhereUniqueInput
    create: XOR<AIMessageFeedbackCreateWithoutMessageInput, AIMessageFeedbackUncheckedCreateWithoutMessageInput>
  }

  export type AIKnowledgeFixCreateWithoutMessageInput = {
    id?: string
    correctAnswer: string
    contributorId: string
    status?: $Enums.AIKnowledgeFixStatus
    reviewerId?: string | null
    reviewNote?: string | null
    createdAt?: Date | string
    reviewedAt?: Date | string | null
  }

  export type AIKnowledgeFixUncheckedCreateWithoutMessageInput = {
    id?: string
    correctAnswer: string
    contributorId: string
    status?: $Enums.AIKnowledgeFixStatus
    reviewerId?: string | null
    reviewNote?: string | null
    createdAt?: Date | string
    reviewedAt?: Date | string | null
  }

  export type AIKnowledgeFixCreateOrConnectWithoutMessageInput = {
    where: AIKnowledgeFixWhereUniqueInput
    create: XOR<AIKnowledgeFixCreateWithoutMessageInput, AIKnowledgeFixUncheckedCreateWithoutMessageInput>
  }

  export type AIConversationUpsertWithoutMessagesInput = {
    update: XOR<AIConversationUpdateWithoutMessagesInput, AIConversationUncheckedUpdateWithoutMessagesInput>
    create: XOR<AIConversationCreateWithoutMessagesInput, AIConversationUncheckedCreateWithoutMessagesInput>
    where?: AIConversationWhereInput
  }

  export type AIConversationUpdateToOneWithWhereWithoutMessagesInput = {
    where?: AIConversationWhereInput
    data: XOR<AIConversationUpdateWithoutMessagesInput, AIConversationUncheckedUpdateWithoutMessagesInput>
  }

  export type AIConversationUpdateWithoutMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAIConversationStatusFieldUpdateOperationsInput | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    tags?: AIConversationUpdatetagsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    tickets?: AIAssistantTicketUpdateManyWithoutConversationNestedInput
  }

  export type AIConversationUncheckedUpdateWithoutMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAIConversationStatusFieldUpdateOperationsInput | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    tags?: AIConversationUpdatetagsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    tickets?: AIAssistantTicketUncheckedUpdateManyWithoutConversationNestedInput
  }

  export type AIMessageFeedbackUpsertWithoutMessageInput = {
    update: XOR<AIMessageFeedbackUpdateWithoutMessageInput, AIMessageFeedbackUncheckedUpdateWithoutMessageInput>
    create: XOR<AIMessageFeedbackCreateWithoutMessageInput, AIMessageFeedbackUncheckedCreateWithoutMessageInput>
    where?: AIMessageFeedbackWhereInput
  }

  export type AIMessageFeedbackUpdateToOneWithWhereWithoutMessageInput = {
    where?: AIMessageFeedbackWhereInput
    data: XOR<AIMessageFeedbackUpdateWithoutMessageInput, AIMessageFeedbackUncheckedUpdateWithoutMessageInput>
  }

  export type AIMessageFeedbackUpdateWithoutMessageInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumAIFeedbackTypeFieldUpdateOperationsInput | $Enums.AIFeedbackType
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIMessageFeedbackUncheckedUpdateWithoutMessageInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumAIFeedbackTypeFieldUpdateOperationsInput | $Enums.AIFeedbackType
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIKnowledgeFixUpsertWithoutMessageInput = {
    update: XOR<AIKnowledgeFixUpdateWithoutMessageInput, AIKnowledgeFixUncheckedUpdateWithoutMessageInput>
    create: XOR<AIKnowledgeFixCreateWithoutMessageInput, AIKnowledgeFixUncheckedCreateWithoutMessageInput>
    where?: AIKnowledgeFixWhereInput
  }

  export type AIKnowledgeFixUpdateToOneWithWhereWithoutMessageInput = {
    where?: AIKnowledgeFixWhereInput
    data: XOR<AIKnowledgeFixUpdateWithoutMessageInput, AIKnowledgeFixUncheckedUpdateWithoutMessageInput>
  }

  export type AIKnowledgeFixUpdateWithoutMessageInput = {
    id?: StringFieldUpdateOperationsInput | string
    correctAnswer?: StringFieldUpdateOperationsInput | string
    contributorId?: StringFieldUpdateOperationsInput | string
    status?: EnumAIKnowledgeFixStatusFieldUpdateOperationsInput | $Enums.AIKnowledgeFixStatus
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewNote?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AIKnowledgeFixUncheckedUpdateWithoutMessageInput = {
    id?: StringFieldUpdateOperationsInput | string
    correctAnswer?: StringFieldUpdateOperationsInput | string
    contributorId?: StringFieldUpdateOperationsInput | string
    status?: EnumAIKnowledgeFixStatusFieldUpdateOperationsInput | $Enums.AIKnowledgeFixStatus
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewNote?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AIMessageCreateWithoutFeedbackInput = {
    id?: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    conversation: AIConversationCreateNestedOneWithoutMessagesInput
    knowledgeFix?: AIKnowledgeFixCreateNestedOneWithoutMessageInput
  }

  export type AIMessageUncheckedCreateWithoutFeedbackInput = {
    id?: string
    conversationId: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    knowledgeFix?: AIKnowledgeFixUncheckedCreateNestedOneWithoutMessageInput
  }

  export type AIMessageCreateOrConnectWithoutFeedbackInput = {
    where: AIMessageWhereUniqueInput
    create: XOR<AIMessageCreateWithoutFeedbackInput, AIMessageUncheckedCreateWithoutFeedbackInput>
  }

  export type AIMessageUpsertWithoutFeedbackInput = {
    update: XOR<AIMessageUpdateWithoutFeedbackInput, AIMessageUncheckedUpdateWithoutFeedbackInput>
    create: XOR<AIMessageCreateWithoutFeedbackInput, AIMessageUncheckedCreateWithoutFeedbackInput>
    where?: AIMessageWhereInput
  }

  export type AIMessageUpdateToOneWithWhereWithoutFeedbackInput = {
    where?: AIMessageWhereInput
    data: XOR<AIMessageUpdateWithoutFeedbackInput, AIMessageUncheckedUpdateWithoutFeedbackInput>
  }

  export type AIMessageUpdateWithoutFeedbackInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    conversation?: AIConversationUpdateOneRequiredWithoutMessagesNestedInput
    knowledgeFix?: AIKnowledgeFixUpdateOneWithoutMessageNestedInput
  }

  export type AIMessageUncheckedUpdateWithoutFeedbackInput = {
    id?: StringFieldUpdateOperationsInput | string
    conversationId?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    knowledgeFix?: AIKnowledgeFixUncheckedUpdateOneWithoutMessageNestedInput
  }

  export type AIConversationCreateWithoutTicketsInput = {
    id?: string
    userId: string
    title?: string | null
    status?: $Enums.AIConversationStatus
    category?: $Enums.AIConversationCategory
    tags?: AIConversationCreatetagsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AIMessageCreateNestedManyWithoutConversationInput
  }

  export type AIConversationUncheckedCreateWithoutTicketsInput = {
    id?: string
    userId: string
    title?: string | null
    status?: $Enums.AIConversationStatus
    category?: $Enums.AIConversationCategory
    tags?: AIConversationCreatetagsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AIMessageUncheckedCreateNestedManyWithoutConversationInput
  }

  export type AIConversationCreateOrConnectWithoutTicketsInput = {
    where: AIConversationWhereUniqueInput
    create: XOR<AIConversationCreateWithoutTicketsInput, AIConversationUncheckedCreateWithoutTicketsInput>
  }

  export type AIConversationUpsertWithoutTicketsInput = {
    update: XOR<AIConversationUpdateWithoutTicketsInput, AIConversationUncheckedUpdateWithoutTicketsInput>
    create: XOR<AIConversationCreateWithoutTicketsInput, AIConversationUncheckedCreateWithoutTicketsInput>
    where?: AIConversationWhereInput
  }

  export type AIConversationUpdateToOneWithWhereWithoutTicketsInput = {
    where?: AIConversationWhereInput
    data: XOR<AIConversationUpdateWithoutTicketsInput, AIConversationUncheckedUpdateWithoutTicketsInput>
  }

  export type AIConversationUpdateWithoutTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAIConversationStatusFieldUpdateOperationsInput | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    tags?: AIConversationUpdatetagsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AIMessageUpdateManyWithoutConversationNestedInput
  }

  export type AIConversationUncheckedUpdateWithoutTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAIConversationStatusFieldUpdateOperationsInput | $Enums.AIConversationStatus
    category?: EnumAIConversationCategoryFieldUpdateOperationsInput | $Enums.AIConversationCategory
    tags?: AIConversationUpdatetagsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AIMessageUncheckedUpdateManyWithoutConversationNestedInput
  }

  export type AIMessageCreateWithoutKnowledgeFixInput = {
    id?: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    conversation: AIConversationCreateNestedOneWithoutMessagesInput
    feedback?: AIMessageFeedbackCreateNestedOneWithoutMessageInput
  }

  export type AIMessageUncheckedCreateWithoutKnowledgeFixInput = {
    id?: string
    conversationId: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    feedback?: AIMessageFeedbackUncheckedCreateNestedOneWithoutMessageInput
  }

  export type AIMessageCreateOrConnectWithoutKnowledgeFixInput = {
    where: AIMessageWhereUniqueInput
    create: XOR<AIMessageCreateWithoutKnowledgeFixInput, AIMessageUncheckedCreateWithoutKnowledgeFixInput>
  }

  export type AIMessageUpsertWithoutKnowledgeFixInput = {
    update: XOR<AIMessageUpdateWithoutKnowledgeFixInput, AIMessageUncheckedUpdateWithoutKnowledgeFixInput>
    create: XOR<AIMessageCreateWithoutKnowledgeFixInput, AIMessageUncheckedCreateWithoutKnowledgeFixInput>
    where?: AIMessageWhereInput
  }

  export type AIMessageUpdateToOneWithWhereWithoutKnowledgeFixInput = {
    where?: AIMessageWhereInput
    data: XOR<AIMessageUpdateWithoutKnowledgeFixInput, AIMessageUncheckedUpdateWithoutKnowledgeFixInput>
  }

  export type AIMessageUpdateWithoutKnowledgeFixInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    conversation?: AIConversationUpdateOneRequiredWithoutMessagesNestedInput
    feedback?: AIMessageFeedbackUpdateOneWithoutMessageNestedInput
  }

  export type AIMessageUncheckedUpdateWithoutKnowledgeFixInput = {
    id?: StringFieldUpdateOperationsInput | string
    conversationId?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    feedback?: AIMessageFeedbackUncheckedUpdateOneWithoutMessageNestedInput
  }

  export type AgentMessageCreateWithoutSessionInput = {
    id?: string
    turnId: string
    type: $Enums.AgentMessageType
    content?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: string | null
    sequence: number
    createdAt?: Date | string
  }

  export type AgentMessageUncheckedCreateWithoutSessionInput = {
    id?: string
    turnId: string
    type: $Enums.AgentMessageType
    content?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: string | null
    sequence: number
    createdAt?: Date | string
  }

  export type AgentMessageCreateOrConnectWithoutSessionInput = {
    where: AgentMessageWhereUniqueInput
    create: XOR<AgentMessageCreateWithoutSessionInput, AgentMessageUncheckedCreateWithoutSessionInput>
  }

  export type AgentMessageCreateManySessionInputEnvelope = {
    data: AgentMessageCreateManySessionInput | AgentMessageCreateManySessionInput[]
    skipDuplicates?: boolean
  }

  export type AgentSessionCreateWithoutChildrenInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageCreateNestedManyWithoutSessionInput
    parent?: AgentSessionCreateNestedOneWithoutChildrenInput
    crons?: AgentCronCreateNestedManyWithoutSessionInput
    persona?: AgentPersonaCreateNestedOneWithoutSessionsInput
  }

  export type AgentSessionUncheckedCreateWithoutChildrenInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    personaId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    parentSessionId?: string | null
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageUncheckedCreateNestedManyWithoutSessionInput
    crons?: AgentCronUncheckedCreateNestedManyWithoutSessionInput
  }

  export type AgentSessionCreateOrConnectWithoutChildrenInput = {
    where: AgentSessionWhereUniqueInput
    create: XOR<AgentSessionCreateWithoutChildrenInput, AgentSessionUncheckedCreateWithoutChildrenInput>
  }

  export type AgentSessionCreateWithoutParentInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageCreateNestedManyWithoutSessionInput
    children?: AgentSessionCreateNestedManyWithoutParentInput
    crons?: AgentCronCreateNestedManyWithoutSessionInput
    persona?: AgentPersonaCreateNestedOneWithoutSessionsInput
  }

  export type AgentSessionUncheckedCreateWithoutParentInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    personaId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageUncheckedCreateNestedManyWithoutSessionInput
    children?: AgentSessionUncheckedCreateNestedManyWithoutParentInput
    crons?: AgentCronUncheckedCreateNestedManyWithoutSessionInput
  }

  export type AgentSessionCreateOrConnectWithoutParentInput = {
    where: AgentSessionWhereUniqueInput
    create: XOR<AgentSessionCreateWithoutParentInput, AgentSessionUncheckedCreateWithoutParentInput>
  }

  export type AgentSessionCreateManyParentInputEnvelope = {
    data: AgentSessionCreateManyParentInput | AgentSessionCreateManyParentInput[]
    skipDuplicates?: boolean
  }

  export type AgentCronCreateWithoutSessionInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    cronExpr: string
    prompt: string
    enabled?: boolean
    lastRunAt?: Date | string | null
    nextRunAt: Date | string
    runCount?: number
    failCount?: number
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentCronUncheckedCreateWithoutSessionInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    cronExpr: string
    prompt: string
    enabled?: boolean
    lastRunAt?: Date | string | null
    nextRunAt: Date | string
    runCount?: number
    failCount?: number
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentCronCreateOrConnectWithoutSessionInput = {
    where: AgentCronWhereUniqueInput
    create: XOR<AgentCronCreateWithoutSessionInput, AgentCronUncheckedCreateWithoutSessionInput>
  }

  export type AgentCronCreateManySessionInputEnvelope = {
    data: AgentCronCreateManySessionInput | AgentCronCreateManySessionInput[]
    skipDuplicates?: boolean
  }

  export type AgentPersonaCreateWithoutSessionsInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    systemKey?: string | null
    name: string
    icon?: string | null
    description?: string | null
    instructions?: string | null
    allowedTools?: AgentPersonaCreateallowedToolsInput | string[]
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    memories?: AgentMemoryCreateNestedManyWithoutPersonaInput
  }

  export type AgentPersonaUncheckedCreateWithoutSessionsInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    systemKey?: string | null
    name: string
    icon?: string | null
    description?: string | null
    instructions?: string | null
    allowedTools?: AgentPersonaCreateallowedToolsInput | string[]
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    memories?: AgentMemoryUncheckedCreateNestedManyWithoutPersonaInput
  }

  export type AgentPersonaCreateOrConnectWithoutSessionsInput = {
    where: AgentPersonaWhereUniqueInput
    create: XOR<AgentPersonaCreateWithoutSessionsInput, AgentPersonaUncheckedCreateWithoutSessionsInput>
  }

  export type AgentMessageUpsertWithWhereUniqueWithoutSessionInput = {
    where: AgentMessageWhereUniqueInput
    update: XOR<AgentMessageUpdateWithoutSessionInput, AgentMessageUncheckedUpdateWithoutSessionInput>
    create: XOR<AgentMessageCreateWithoutSessionInput, AgentMessageUncheckedCreateWithoutSessionInput>
  }

  export type AgentMessageUpdateWithWhereUniqueWithoutSessionInput = {
    where: AgentMessageWhereUniqueInput
    data: XOR<AgentMessageUpdateWithoutSessionInput, AgentMessageUncheckedUpdateWithoutSessionInput>
  }

  export type AgentMessageUpdateManyWithWhereWithoutSessionInput = {
    where: AgentMessageScalarWhereInput
    data: XOR<AgentMessageUpdateManyMutationInput, AgentMessageUncheckedUpdateManyWithoutSessionInput>
  }

  export type AgentMessageScalarWhereInput = {
    AND?: AgentMessageScalarWhereInput | AgentMessageScalarWhereInput[]
    OR?: AgentMessageScalarWhereInput[]
    NOT?: AgentMessageScalarWhereInput | AgentMessageScalarWhereInput[]
    id?: UuidFilter<"AgentMessage"> | string
    sessionId?: UuidFilter<"AgentMessage"> | string
    turnId?: UuidFilter<"AgentMessage"> | string
    type?: EnumAgentMessageTypeFilter<"AgentMessage"> | $Enums.AgentMessageType
    content?: StringNullableFilter<"AgentMessage"> | string | null
    payload?: JsonNullableFilter<"AgentMessage">
    model?: StringNullableFilter<"AgentMessage"> | string | null
    sequence?: IntFilter<"AgentMessage"> | number
    createdAt?: DateTimeFilter<"AgentMessage"> | Date | string
  }

  export type AgentSessionUpsertWithoutChildrenInput = {
    update: XOR<AgentSessionUpdateWithoutChildrenInput, AgentSessionUncheckedUpdateWithoutChildrenInput>
    create: XOR<AgentSessionCreateWithoutChildrenInput, AgentSessionUncheckedCreateWithoutChildrenInput>
    where?: AgentSessionWhereInput
  }

  export type AgentSessionUpdateToOneWithWhereWithoutChildrenInput = {
    where?: AgentSessionWhereInput
    data: XOR<AgentSessionUpdateWithoutChildrenInput, AgentSessionUncheckedUpdateWithoutChildrenInput>
  }

  export type AgentSessionUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUpdateManyWithoutSessionNestedInput
    parent?: AgentSessionUpdateOneWithoutChildrenNestedInput
    crons?: AgentCronUpdateManyWithoutSessionNestedInput
    persona?: AgentPersonaUpdateOneWithoutSessionsNestedInput
  }

  export type AgentSessionUncheckedUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    parentSessionId?: NullableStringFieldUpdateOperationsInput | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUncheckedUpdateManyWithoutSessionNestedInput
    crons?: AgentCronUncheckedUpdateManyWithoutSessionNestedInput
  }

  export type AgentSessionUpsertWithWhereUniqueWithoutParentInput = {
    where: AgentSessionWhereUniqueInput
    update: XOR<AgentSessionUpdateWithoutParentInput, AgentSessionUncheckedUpdateWithoutParentInput>
    create: XOR<AgentSessionCreateWithoutParentInput, AgentSessionUncheckedCreateWithoutParentInput>
  }

  export type AgentSessionUpdateWithWhereUniqueWithoutParentInput = {
    where: AgentSessionWhereUniqueInput
    data: XOR<AgentSessionUpdateWithoutParentInput, AgentSessionUncheckedUpdateWithoutParentInput>
  }

  export type AgentSessionUpdateManyWithWhereWithoutParentInput = {
    where: AgentSessionScalarWhereInput
    data: XOR<AgentSessionUpdateManyMutationInput, AgentSessionUncheckedUpdateManyWithoutParentInput>
  }

  export type AgentSessionScalarWhereInput = {
    AND?: AgentSessionScalarWhereInput | AgentSessionScalarWhereInput[]
    OR?: AgentSessionScalarWhereInput[]
    NOT?: AgentSessionScalarWhereInput | AgentSessionScalarWhereInput[]
    id?: UuidFilter<"AgentSession"> | string
    organizationId?: UuidFilter<"AgentSession"> | string
    createdById?: UuidFilter<"AgentSession"> | string
    title?: StringNullableFilter<"AgentSession"> | string | null
    surface?: EnumAgentSurfaceFilter<"AgentSession"> | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFilter<"AgentSession"> | $Enums.AgentSessionStatus
    projectId?: UuidNullableFilter<"AgentSession"> | string | null
    personaId?: UuidNullableFilter<"AgentSession"> | string | null
    planMode?: EnumAgentPlanModeFilter<"AgentSession"> | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFilter<"AgentSession"> | $Enums.AgentPermissionMode
    parentSessionId?: UuidNullableFilter<"AgentSession"> | string | null
    closedAt?: DateTimeNullableFilter<"AgentSession"> | Date | string | null
    createdAt?: DateTimeFilter<"AgentSession"> | Date | string
    updatedAt?: DateTimeFilter<"AgentSession"> | Date | string
  }

  export type AgentCronUpsertWithWhereUniqueWithoutSessionInput = {
    where: AgentCronWhereUniqueInput
    update: XOR<AgentCronUpdateWithoutSessionInput, AgentCronUncheckedUpdateWithoutSessionInput>
    create: XOR<AgentCronCreateWithoutSessionInput, AgentCronUncheckedCreateWithoutSessionInput>
  }

  export type AgentCronUpdateWithWhereUniqueWithoutSessionInput = {
    where: AgentCronWhereUniqueInput
    data: XOR<AgentCronUpdateWithoutSessionInput, AgentCronUncheckedUpdateWithoutSessionInput>
  }

  export type AgentCronUpdateManyWithWhereWithoutSessionInput = {
    where: AgentCronScalarWhereInput
    data: XOR<AgentCronUpdateManyMutationInput, AgentCronUncheckedUpdateManyWithoutSessionInput>
  }

  export type AgentCronScalarWhereInput = {
    AND?: AgentCronScalarWhereInput | AgentCronScalarWhereInput[]
    OR?: AgentCronScalarWhereInput[]
    NOT?: AgentCronScalarWhereInput | AgentCronScalarWhereInput[]
    id?: UuidFilter<"AgentCron"> | string
    organizationId?: UuidFilter<"AgentCron"> | string
    createdById?: UuidFilter<"AgentCron"> | string
    sessionId?: UuidFilter<"AgentCron"> | string
    name?: StringFilter<"AgentCron"> | string
    cronExpr?: StringFilter<"AgentCron"> | string
    prompt?: StringFilter<"AgentCron"> | string
    enabled?: BoolFilter<"AgentCron"> | boolean
    lastRunAt?: DateTimeNullableFilter<"AgentCron"> | Date | string | null
    nextRunAt?: DateTimeFilter<"AgentCron"> | Date | string
    runCount?: IntFilter<"AgentCron"> | number
    failCount?: IntFilter<"AgentCron"> | number
    lastError?: StringNullableFilter<"AgentCron"> | string | null
    createdAt?: DateTimeFilter<"AgentCron"> | Date | string
    updatedAt?: DateTimeFilter<"AgentCron"> | Date | string
  }

  export type AgentPersonaUpsertWithoutSessionsInput = {
    update: XOR<AgentPersonaUpdateWithoutSessionsInput, AgentPersonaUncheckedUpdateWithoutSessionsInput>
    create: XOR<AgentPersonaCreateWithoutSessionsInput, AgentPersonaUncheckedCreateWithoutSessionsInput>
    where?: AgentPersonaWhereInput
  }

  export type AgentPersonaUpdateToOneWithWhereWithoutSessionsInput = {
    where?: AgentPersonaWhereInput
    data: XOR<AgentPersonaUpdateWithoutSessionsInput, AgentPersonaUncheckedUpdateWithoutSessionsInput>
  }

  export type AgentPersonaUpdateWithoutSessionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    systemKey?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    allowedTools?: AgentPersonaUpdateallowedToolsInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    memories?: AgentMemoryUpdateManyWithoutPersonaNestedInput
  }

  export type AgentPersonaUncheckedUpdateWithoutSessionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    systemKey?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    allowedTools?: AgentPersonaUpdateallowedToolsInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    memories?: AgentMemoryUncheckedUpdateManyWithoutPersonaNestedInput
  }

  export type AgentSessionCreateWithoutMessagesInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    parent?: AgentSessionCreateNestedOneWithoutChildrenInput
    children?: AgentSessionCreateNestedManyWithoutParentInput
    crons?: AgentCronCreateNestedManyWithoutSessionInput
    persona?: AgentPersonaCreateNestedOneWithoutSessionsInput
  }

  export type AgentSessionUncheckedCreateWithoutMessagesInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    personaId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    parentSessionId?: string | null
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    children?: AgentSessionUncheckedCreateNestedManyWithoutParentInput
    crons?: AgentCronUncheckedCreateNestedManyWithoutSessionInput
  }

  export type AgentSessionCreateOrConnectWithoutMessagesInput = {
    where: AgentSessionWhereUniqueInput
    create: XOR<AgentSessionCreateWithoutMessagesInput, AgentSessionUncheckedCreateWithoutMessagesInput>
  }

  export type AgentSessionUpsertWithoutMessagesInput = {
    update: XOR<AgentSessionUpdateWithoutMessagesInput, AgentSessionUncheckedUpdateWithoutMessagesInput>
    create: XOR<AgentSessionCreateWithoutMessagesInput, AgentSessionUncheckedCreateWithoutMessagesInput>
    where?: AgentSessionWhereInput
  }

  export type AgentSessionUpdateToOneWithWhereWithoutMessagesInput = {
    where?: AgentSessionWhereInput
    data: XOR<AgentSessionUpdateWithoutMessagesInput, AgentSessionUncheckedUpdateWithoutMessagesInput>
  }

  export type AgentSessionUpdateWithoutMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    parent?: AgentSessionUpdateOneWithoutChildrenNestedInput
    children?: AgentSessionUpdateManyWithoutParentNestedInput
    crons?: AgentCronUpdateManyWithoutSessionNestedInput
    persona?: AgentPersonaUpdateOneWithoutSessionsNestedInput
  }

  export type AgentSessionUncheckedUpdateWithoutMessagesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    parentSessionId?: NullableStringFieldUpdateOperationsInput | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    children?: AgentSessionUncheckedUpdateManyWithoutParentNestedInput
    crons?: AgentCronUncheckedUpdateManyWithoutSessionNestedInput
  }

  export type StorageFileCreateWithoutBindingInput = {
    id?: string
    organizationId: string
    path: string
    externalId?: string | null
    sizeBytes: number
    mimeType?: string | null
    sha256: string
    encrypted?: boolean
    uploadedById: string
    createdAt?: Date | string
  }

  export type StorageFileUncheckedCreateWithoutBindingInput = {
    id?: string
    organizationId: string
    path: string
    externalId?: string | null
    sizeBytes: number
    mimeType?: string | null
    sha256: string
    encrypted?: boolean
    uploadedById: string
    createdAt?: Date | string
  }

  export type StorageFileCreateOrConnectWithoutBindingInput = {
    where: StorageFileWhereUniqueInput
    create: XOR<StorageFileCreateWithoutBindingInput, StorageFileUncheckedCreateWithoutBindingInput>
  }

  export type StorageFileCreateManyBindingInputEnvelope = {
    data: StorageFileCreateManyBindingInput | StorageFileCreateManyBindingInput[]
    skipDuplicates?: boolean
  }

  export type StorageFileUpsertWithWhereUniqueWithoutBindingInput = {
    where: StorageFileWhereUniqueInput
    update: XOR<StorageFileUpdateWithoutBindingInput, StorageFileUncheckedUpdateWithoutBindingInput>
    create: XOR<StorageFileCreateWithoutBindingInput, StorageFileUncheckedCreateWithoutBindingInput>
  }

  export type StorageFileUpdateWithWhereUniqueWithoutBindingInput = {
    where: StorageFileWhereUniqueInput
    data: XOR<StorageFileUpdateWithoutBindingInput, StorageFileUncheckedUpdateWithoutBindingInput>
  }

  export type StorageFileUpdateManyWithWhereWithoutBindingInput = {
    where: StorageFileScalarWhereInput
    data: XOR<StorageFileUpdateManyMutationInput, StorageFileUncheckedUpdateManyWithoutBindingInput>
  }

  export type StorageFileScalarWhereInput = {
    AND?: StorageFileScalarWhereInput | StorageFileScalarWhereInput[]
    OR?: StorageFileScalarWhereInput[]
    NOT?: StorageFileScalarWhereInput | StorageFileScalarWhereInput[]
    id?: UuidFilter<"StorageFile"> | string
    bindingId?: UuidFilter<"StorageFile"> | string
    organizationId?: UuidFilter<"StorageFile"> | string
    path?: StringFilter<"StorageFile"> | string
    externalId?: StringNullableFilter<"StorageFile"> | string | null
    sizeBytes?: IntFilter<"StorageFile"> | number
    mimeType?: StringNullableFilter<"StorageFile"> | string | null
    sha256?: StringFilter<"StorageFile"> | string
    encrypted?: BoolFilter<"StorageFile"> | boolean
    uploadedById?: UuidFilter<"StorageFile"> | string
    createdAt?: DateTimeFilter<"StorageFile"> | Date | string
  }

  export type StorageBindingCreateWithoutFilesInput = {
    id?: string
    organizationId: string
    scope: $Enums.StorageBindingScope
    scopeRefId: string
    kind: $Enums.StorageBackendKind
    displayName: string
    config: JsonNullValueInput | InputJsonValue
    encryptedSecret?: string | null
    keyId?: string | null
    enabled?: boolean
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type StorageBindingUncheckedCreateWithoutFilesInput = {
    id?: string
    organizationId: string
    scope: $Enums.StorageBindingScope
    scopeRefId: string
    kind: $Enums.StorageBackendKind
    displayName: string
    config: JsonNullValueInput | InputJsonValue
    encryptedSecret?: string | null
    keyId?: string | null
    enabled?: boolean
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type StorageBindingCreateOrConnectWithoutFilesInput = {
    where: StorageBindingWhereUniqueInput
    create: XOR<StorageBindingCreateWithoutFilesInput, StorageBindingUncheckedCreateWithoutFilesInput>
  }

  export type StorageBindingUpsertWithoutFilesInput = {
    update: XOR<StorageBindingUpdateWithoutFilesInput, StorageBindingUncheckedUpdateWithoutFilesInput>
    create: XOR<StorageBindingCreateWithoutFilesInput, StorageBindingUncheckedCreateWithoutFilesInput>
    where?: StorageBindingWhereInput
  }

  export type StorageBindingUpdateToOneWithWhereWithoutFilesInput = {
    where?: StorageBindingWhereInput
    data: XOR<StorageBindingUpdateWithoutFilesInput, StorageBindingUncheckedUpdateWithoutFilesInput>
  }

  export type StorageBindingUpdateWithoutFilesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumStorageBindingScopeFieldUpdateOperationsInput | $Enums.StorageBindingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    kind?: EnumStorageBackendKindFieldUpdateOperationsInput | $Enums.StorageBackendKind
    displayName?: StringFieldUpdateOperationsInput | string
    config?: JsonNullValueInput | InputJsonValue
    encryptedSecret?: NullableStringFieldUpdateOperationsInput | string | null
    keyId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageBindingUncheckedUpdateWithoutFilesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    scope?: EnumStorageBindingScopeFieldUpdateOperationsInput | $Enums.StorageBindingScope
    scopeRefId?: StringFieldUpdateOperationsInput | string
    kind?: EnumStorageBackendKindFieldUpdateOperationsInput | $Enums.StorageBackendKind
    displayName?: StringFieldUpdateOperationsInput | string
    config?: JsonNullValueInput | InputJsonValue
    encryptedSecret?: NullableStringFieldUpdateOperationsInput | string | null
    keyId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMemoryCreateWithoutProjectInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    persona?: AgentPersonaCreateNestedOneWithoutMemoriesInput
  }

  export type AgentMemoryUncheckedCreateWithoutProjectInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    personaId?: string | null
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMemoryCreateOrConnectWithoutProjectInput = {
    where: AgentMemoryWhereUniqueInput
    create: XOR<AgentMemoryCreateWithoutProjectInput, AgentMemoryUncheckedCreateWithoutProjectInput>
  }

  export type AgentMemoryCreateManyProjectInputEnvelope = {
    data: AgentMemoryCreateManyProjectInput | AgentMemoryCreateManyProjectInput[]
    skipDuplicates?: boolean
  }

  export type AgentMemoryUpsertWithWhereUniqueWithoutProjectInput = {
    where: AgentMemoryWhereUniqueInput
    update: XOR<AgentMemoryUpdateWithoutProjectInput, AgentMemoryUncheckedUpdateWithoutProjectInput>
    create: XOR<AgentMemoryCreateWithoutProjectInput, AgentMemoryUncheckedCreateWithoutProjectInput>
  }

  export type AgentMemoryUpdateWithWhereUniqueWithoutProjectInput = {
    where: AgentMemoryWhereUniqueInput
    data: XOR<AgentMemoryUpdateWithoutProjectInput, AgentMemoryUncheckedUpdateWithoutProjectInput>
  }

  export type AgentMemoryUpdateManyWithWhereWithoutProjectInput = {
    where: AgentMemoryScalarWhereInput
    data: XOR<AgentMemoryUpdateManyMutationInput, AgentMemoryUncheckedUpdateManyWithoutProjectInput>
  }

  export type AgentMemoryScalarWhereInput = {
    AND?: AgentMemoryScalarWhereInput | AgentMemoryScalarWhereInput[]
    OR?: AgentMemoryScalarWhereInput[]
    NOT?: AgentMemoryScalarWhereInput | AgentMemoryScalarWhereInput[]
    id?: UuidFilter<"AgentMemory"> | string
    organizationId?: UuidFilter<"AgentMemory"> | string
    createdById?: UuidNullableFilter<"AgentMemory"> | string | null
    ownerScope?: EnumMemoryOwnerScopeFilter<"AgentMemory"> | $Enums.MemoryOwnerScope
    content?: StringFilter<"AgentMemory"> | string
    scope?: EnumMemoryScopeFilter<"AgentMemory"> | $Enums.MemoryScope
    category?: EnumMemoryCategoryFilter<"AgentMemory"> | $Enums.MemoryCategory
    projectId?: UuidNullableFilter<"AgentMemory"> | string | null
    personaId?: UuidNullableFilter<"AgentMemory"> | string | null
    source?: StringNullableFilter<"AgentMemory"> | string | null
    createdAt?: DateTimeFilter<"AgentMemory"> | Date | string
    updatedAt?: DateTimeFilter<"AgentMemory"> | Date | string
  }

  export type AgentProjectCreateWithoutMemoriesInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    icon?: string | null
    color?: string | null
    instructions?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentProjectUncheckedCreateWithoutMemoriesInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    icon?: string | null
    color?: string | null
    instructions?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentProjectCreateOrConnectWithoutMemoriesInput = {
    where: AgentProjectWhereUniqueInput
    create: XOR<AgentProjectCreateWithoutMemoriesInput, AgentProjectUncheckedCreateWithoutMemoriesInput>
  }

  export type AgentPersonaCreateWithoutMemoriesInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    systemKey?: string | null
    name: string
    icon?: string | null
    description?: string | null
    instructions?: string | null
    allowedTools?: AgentPersonaCreateallowedToolsInput | string[]
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    sessions?: AgentSessionCreateNestedManyWithoutPersonaInput
  }

  export type AgentPersonaUncheckedCreateWithoutMemoriesInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    systemKey?: string | null
    name: string
    icon?: string | null
    description?: string | null
    instructions?: string | null
    allowedTools?: AgentPersonaCreateallowedToolsInput | string[]
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    sessions?: AgentSessionUncheckedCreateNestedManyWithoutPersonaInput
  }

  export type AgentPersonaCreateOrConnectWithoutMemoriesInput = {
    where: AgentPersonaWhereUniqueInput
    create: XOR<AgentPersonaCreateWithoutMemoriesInput, AgentPersonaUncheckedCreateWithoutMemoriesInput>
  }

  export type AgentProjectUpsertWithoutMemoriesInput = {
    update: XOR<AgentProjectUpdateWithoutMemoriesInput, AgentProjectUncheckedUpdateWithoutMemoriesInput>
    create: XOR<AgentProjectCreateWithoutMemoriesInput, AgentProjectUncheckedCreateWithoutMemoriesInput>
    where?: AgentProjectWhereInput
  }

  export type AgentProjectUpdateToOneWithWhereWithoutMemoriesInput = {
    where?: AgentProjectWhereInput
    data: XOR<AgentProjectUpdateWithoutMemoriesInput, AgentProjectUncheckedUpdateWithoutMemoriesInput>
  }

  export type AgentProjectUpdateWithoutMemoriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentProjectUncheckedUpdateWithoutMemoriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentPersonaUpsertWithoutMemoriesInput = {
    update: XOR<AgentPersonaUpdateWithoutMemoriesInput, AgentPersonaUncheckedUpdateWithoutMemoriesInput>
    create: XOR<AgentPersonaCreateWithoutMemoriesInput, AgentPersonaUncheckedCreateWithoutMemoriesInput>
    where?: AgentPersonaWhereInput
  }

  export type AgentPersonaUpdateToOneWithWhereWithoutMemoriesInput = {
    where?: AgentPersonaWhereInput
    data: XOR<AgentPersonaUpdateWithoutMemoriesInput, AgentPersonaUncheckedUpdateWithoutMemoriesInput>
  }

  export type AgentPersonaUpdateWithoutMemoriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    systemKey?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    allowedTools?: AgentPersonaUpdateallowedToolsInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    sessions?: AgentSessionUpdateManyWithoutPersonaNestedInput
  }

  export type AgentPersonaUncheckedUpdateWithoutMemoriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    systemKey?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    instructions?: NullableStringFieldUpdateOperationsInput | string | null
    allowedTools?: AgentPersonaUpdateallowedToolsInput | string[]
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    sessions?: AgentSessionUncheckedUpdateManyWithoutPersonaNestedInput
  }

  export type AgentMemoryCreateWithoutPersonaInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    project?: AgentProjectCreateNestedOneWithoutMemoriesInput
  }

  export type AgentMemoryUncheckedCreateWithoutPersonaInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    projectId?: string | null
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMemoryCreateOrConnectWithoutPersonaInput = {
    where: AgentMemoryWhereUniqueInput
    create: XOR<AgentMemoryCreateWithoutPersonaInput, AgentMemoryUncheckedCreateWithoutPersonaInput>
  }

  export type AgentMemoryCreateManyPersonaInputEnvelope = {
    data: AgentMemoryCreateManyPersonaInput | AgentMemoryCreateManyPersonaInput[]
    skipDuplicates?: boolean
  }

  export type AgentSessionCreateWithoutPersonaInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageCreateNestedManyWithoutSessionInput
    parent?: AgentSessionCreateNestedOneWithoutChildrenInput
    children?: AgentSessionCreateNestedManyWithoutParentInput
    crons?: AgentCronCreateNestedManyWithoutSessionInput
  }

  export type AgentSessionUncheckedCreateWithoutPersonaInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    parentSessionId?: string | null
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageUncheckedCreateNestedManyWithoutSessionInput
    children?: AgentSessionUncheckedCreateNestedManyWithoutParentInput
    crons?: AgentCronUncheckedCreateNestedManyWithoutSessionInput
  }

  export type AgentSessionCreateOrConnectWithoutPersonaInput = {
    where: AgentSessionWhereUniqueInput
    create: XOR<AgentSessionCreateWithoutPersonaInput, AgentSessionUncheckedCreateWithoutPersonaInput>
  }

  export type AgentSessionCreateManyPersonaInputEnvelope = {
    data: AgentSessionCreateManyPersonaInput | AgentSessionCreateManyPersonaInput[]
    skipDuplicates?: boolean
  }

  export type AgentMemoryUpsertWithWhereUniqueWithoutPersonaInput = {
    where: AgentMemoryWhereUniqueInput
    update: XOR<AgentMemoryUpdateWithoutPersonaInput, AgentMemoryUncheckedUpdateWithoutPersonaInput>
    create: XOR<AgentMemoryCreateWithoutPersonaInput, AgentMemoryUncheckedCreateWithoutPersonaInput>
  }

  export type AgentMemoryUpdateWithWhereUniqueWithoutPersonaInput = {
    where: AgentMemoryWhereUniqueInput
    data: XOR<AgentMemoryUpdateWithoutPersonaInput, AgentMemoryUncheckedUpdateWithoutPersonaInput>
  }

  export type AgentMemoryUpdateManyWithWhereWithoutPersonaInput = {
    where: AgentMemoryScalarWhereInput
    data: XOR<AgentMemoryUpdateManyMutationInput, AgentMemoryUncheckedUpdateManyWithoutPersonaInput>
  }

  export type AgentSessionUpsertWithWhereUniqueWithoutPersonaInput = {
    where: AgentSessionWhereUniqueInput
    update: XOR<AgentSessionUpdateWithoutPersonaInput, AgentSessionUncheckedUpdateWithoutPersonaInput>
    create: XOR<AgentSessionCreateWithoutPersonaInput, AgentSessionUncheckedCreateWithoutPersonaInput>
  }

  export type AgentSessionUpdateWithWhereUniqueWithoutPersonaInput = {
    where: AgentSessionWhereUniqueInput
    data: XOR<AgentSessionUpdateWithoutPersonaInput, AgentSessionUncheckedUpdateWithoutPersonaInput>
  }

  export type AgentSessionUpdateManyWithWhereWithoutPersonaInput = {
    where: AgentSessionScalarWhereInput
    data: XOR<AgentSessionUpdateManyMutationInput, AgentSessionUncheckedUpdateManyWithoutPersonaInput>
  }

  export type AgentSessionCreateWithoutCronsInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageCreateNestedManyWithoutSessionInput
    parent?: AgentSessionCreateNestedOneWithoutChildrenInput
    children?: AgentSessionCreateNestedManyWithoutParentInput
    persona?: AgentPersonaCreateNestedOneWithoutSessionsInput
  }

  export type AgentSessionUncheckedCreateWithoutCronsInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    personaId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    parentSessionId?: string | null
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    messages?: AgentMessageUncheckedCreateNestedManyWithoutSessionInput
    children?: AgentSessionUncheckedCreateNestedManyWithoutParentInput
  }

  export type AgentSessionCreateOrConnectWithoutCronsInput = {
    where: AgentSessionWhereUniqueInput
    create: XOR<AgentSessionCreateWithoutCronsInput, AgentSessionUncheckedCreateWithoutCronsInput>
  }

  export type AgentSessionUpsertWithoutCronsInput = {
    update: XOR<AgentSessionUpdateWithoutCronsInput, AgentSessionUncheckedUpdateWithoutCronsInput>
    create: XOR<AgentSessionCreateWithoutCronsInput, AgentSessionUncheckedCreateWithoutCronsInput>
    where?: AgentSessionWhereInput
  }

  export type AgentSessionUpdateToOneWithWhereWithoutCronsInput = {
    where?: AgentSessionWhereInput
    data: XOR<AgentSessionUpdateWithoutCronsInput, AgentSessionUncheckedUpdateWithoutCronsInput>
  }

  export type AgentSessionUpdateWithoutCronsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUpdateManyWithoutSessionNestedInput
    parent?: AgentSessionUpdateOneWithoutChildrenNestedInput
    children?: AgentSessionUpdateManyWithoutParentNestedInput
    persona?: AgentPersonaUpdateOneWithoutSessionsNestedInput
  }

  export type AgentSessionUncheckedUpdateWithoutCronsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    parentSessionId?: NullableStringFieldUpdateOperationsInput | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUncheckedUpdateManyWithoutSessionNestedInput
    children?: AgentSessionUncheckedUpdateManyWithoutParentNestedInput
  }

  export type UserCreateWithoutAiUsageTokensInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAiUsageTokensInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAiUsageTokensInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAiUsageTokensInput, UserUncheckedCreateWithoutAiUsageTokensInput>
  }

  export type UserCreateWithoutAiUsageTokensRevokedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAiUsageTokensRevokedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAiUsageTokensRevokedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAiUsageTokensRevokedInput, UserUncheckedCreateWithoutAiUsageTokensRevokedInput>
  }

  export type OrganizationCreateWithoutAiUsageTokensInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutAiUsageTokensInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutAiUsageTokensInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutAiUsageTokensInput, OrganizationUncheckedCreateWithoutAiUsageTokensInput>
  }

  export type UserUpsertWithoutAiUsageTokensInput = {
    update: XOR<UserUpdateWithoutAiUsageTokensInput, UserUncheckedUpdateWithoutAiUsageTokensInput>
    create: XOR<UserCreateWithoutAiUsageTokensInput, UserUncheckedCreateWithoutAiUsageTokensInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAiUsageTokensInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAiUsageTokensInput, UserUncheckedUpdateWithoutAiUsageTokensInput>
  }

  export type UserUpdateWithoutAiUsageTokensInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAiUsageTokensInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutAiUsageTokensRevokedInput = {
    update: XOR<UserUpdateWithoutAiUsageTokensRevokedInput, UserUncheckedUpdateWithoutAiUsageTokensRevokedInput>
    create: XOR<UserCreateWithoutAiUsageTokensRevokedInput, UserUncheckedCreateWithoutAiUsageTokensRevokedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAiUsageTokensRevokedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAiUsageTokensRevokedInput, UserUncheckedUpdateWithoutAiUsageTokensRevokedInput>
  }

  export type UserUpdateWithoutAiUsageTokensRevokedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAiUsageTokensRevokedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutAiUsageTokensInput = {
    update: XOR<OrganizationUpdateWithoutAiUsageTokensInput, OrganizationUncheckedUpdateWithoutAiUsageTokensInput>
    create: XOR<OrganizationCreateWithoutAiUsageTokensInput, OrganizationUncheckedCreateWithoutAiUsageTokensInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutAiUsageTokensInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutAiUsageTokensInput, OrganizationUncheckedUpdateWithoutAiUsageTokensInput>
  }

  export type OrganizationUpdateWithoutAiUsageTokensInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutAiUsageTokensInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type UserCreateWithoutAiUsageDevicesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAiUsageDevicesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAiUsageDevicesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAiUsageDevicesInput, UserUncheckedCreateWithoutAiUsageDevicesInput>
  }

  export type UserCreateWithoutAiUsageDevicesBlockedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAiUsageDevicesBlockedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAiUsageDevicesBlockedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAiUsageDevicesBlockedInput, UserUncheckedCreateWithoutAiUsageDevicesBlockedInput>
  }

  export type OrganizationCreateWithoutAiUsageDevicesInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutAiUsageDevicesInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutAiUsageDevicesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutAiUsageDevicesInput, OrganizationUncheckedCreateWithoutAiUsageDevicesInput>
  }

  export type AiUsageEventCreateWithoutDeviceInput = {
    id?: string
    rawMessageId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageEventsInput
    organization: OrganizationCreateNestedOneWithoutAiUsageEventsInput
  }

  export type AiUsageEventUncheckedCreateWithoutDeviceInput = {
    id?: string
    rawMessageId: string
    userId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventCreateOrConnectWithoutDeviceInput = {
    where: AiUsageEventWhereUniqueInput
    create: XOR<AiUsageEventCreateWithoutDeviceInput, AiUsageEventUncheckedCreateWithoutDeviceInput>
  }

  export type AiUsageEventCreateManyDeviceInputEnvelope = {
    data: AiUsageEventCreateManyDeviceInput | AiUsageEventCreateManyDeviceInput[]
    skipDuplicates?: boolean
  }

  export type UserUpsertWithoutAiUsageDevicesInput = {
    update: XOR<UserUpdateWithoutAiUsageDevicesInput, UserUncheckedUpdateWithoutAiUsageDevicesInput>
    create: XOR<UserCreateWithoutAiUsageDevicesInput, UserUncheckedCreateWithoutAiUsageDevicesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAiUsageDevicesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAiUsageDevicesInput, UserUncheckedUpdateWithoutAiUsageDevicesInput>
  }

  export type UserUpdateWithoutAiUsageDevicesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAiUsageDevicesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutAiUsageDevicesBlockedInput = {
    update: XOR<UserUpdateWithoutAiUsageDevicesBlockedInput, UserUncheckedUpdateWithoutAiUsageDevicesBlockedInput>
    create: XOR<UserCreateWithoutAiUsageDevicesBlockedInput, UserUncheckedCreateWithoutAiUsageDevicesBlockedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAiUsageDevicesBlockedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAiUsageDevicesBlockedInput, UserUncheckedUpdateWithoutAiUsageDevicesBlockedInput>
  }

  export type UserUpdateWithoutAiUsageDevicesBlockedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAiUsageDevicesBlockedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutAiUsageDevicesInput = {
    update: XOR<OrganizationUpdateWithoutAiUsageDevicesInput, OrganizationUncheckedUpdateWithoutAiUsageDevicesInput>
    create: XOR<OrganizationCreateWithoutAiUsageDevicesInput, OrganizationUncheckedCreateWithoutAiUsageDevicesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutAiUsageDevicesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutAiUsageDevicesInput, OrganizationUncheckedUpdateWithoutAiUsageDevicesInput>
  }

  export type OrganizationUpdateWithoutAiUsageDevicesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutAiUsageDevicesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type AiUsageEventUpsertWithWhereUniqueWithoutDeviceInput = {
    where: AiUsageEventWhereUniqueInput
    update: XOR<AiUsageEventUpdateWithoutDeviceInput, AiUsageEventUncheckedUpdateWithoutDeviceInput>
    create: XOR<AiUsageEventCreateWithoutDeviceInput, AiUsageEventUncheckedCreateWithoutDeviceInput>
  }

  export type AiUsageEventUpdateWithWhereUniqueWithoutDeviceInput = {
    where: AiUsageEventWhereUniqueInput
    data: XOR<AiUsageEventUpdateWithoutDeviceInput, AiUsageEventUncheckedUpdateWithoutDeviceInput>
  }

  export type AiUsageEventUpdateManyWithWhereWithoutDeviceInput = {
    where: AiUsageEventScalarWhereInput
    data: XOR<AiUsageEventUpdateManyMutationInput, AiUsageEventUncheckedUpdateManyWithoutDeviceInput>
  }

  export type AiUsageDeviceCreateWithoutEventsInput = {
    id?: string
    deviceId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedReason?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageDevicesInput
    blockedBy?: UserCreateNestedOneWithoutAiUsageDevicesBlockedInput
    organization: OrganizationCreateNestedOneWithoutAiUsageDevicesInput
  }

  export type AiUsageDeviceUncheckedCreateWithoutEventsInput = {
    id?: string
    deviceId: string
    userId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedById?: string | null
    blockedReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDeviceCreateOrConnectWithoutEventsInput = {
    where: AiUsageDeviceWhereUniqueInput
    create: XOR<AiUsageDeviceCreateWithoutEventsInput, AiUsageDeviceUncheckedCreateWithoutEventsInput>
  }

  export type UserCreateWithoutAiUsageEventsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAiUsageEventsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAiUsageEventsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAiUsageEventsInput, UserUncheckedCreateWithoutAiUsageEventsInput>
  }

  export type OrganizationCreateWithoutAiUsageEventsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutAiUsageEventsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutAiUsageEventsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutAiUsageEventsInput, OrganizationUncheckedCreateWithoutAiUsageEventsInput>
  }

  export type AiUsageDeviceUpsertWithoutEventsInput = {
    update: XOR<AiUsageDeviceUpdateWithoutEventsInput, AiUsageDeviceUncheckedUpdateWithoutEventsInput>
    create: XOR<AiUsageDeviceCreateWithoutEventsInput, AiUsageDeviceUncheckedCreateWithoutEventsInput>
    where?: AiUsageDeviceWhereInput
  }

  export type AiUsageDeviceUpdateToOneWithWhereWithoutEventsInput = {
    where?: AiUsageDeviceWhereInput
    data: XOR<AiUsageDeviceUpdateWithoutEventsInput, AiUsageDeviceUncheckedUpdateWithoutEventsInput>
  }

  export type AiUsageDeviceUpdateWithoutEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageDevicesNestedInput
    blockedBy?: UserUpdateOneWithoutAiUsageDevicesBlockedNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageDevicesNestedInput
  }

  export type AiUsageDeviceUncheckedUpdateWithoutEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedById?: NullableStringFieldUpdateOperationsInput | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserUpsertWithoutAiUsageEventsInput = {
    update: XOR<UserUpdateWithoutAiUsageEventsInput, UserUncheckedUpdateWithoutAiUsageEventsInput>
    create: XOR<UserCreateWithoutAiUsageEventsInput, UserUncheckedCreateWithoutAiUsageEventsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAiUsageEventsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAiUsageEventsInput, UserUncheckedUpdateWithoutAiUsageEventsInput>
  }

  export type UserUpdateWithoutAiUsageEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAiUsageEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutAiUsageEventsInput = {
    update: XOR<OrganizationUpdateWithoutAiUsageEventsInput, OrganizationUncheckedUpdateWithoutAiUsageEventsInput>
    create: XOR<OrganizationCreateWithoutAiUsageEventsInput, OrganizationUncheckedCreateWithoutAiUsageEventsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutAiUsageEventsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutAiUsageEventsInput, OrganizationUncheckedUpdateWithoutAiUsageEventsInput>
  }

  export type OrganizationUpdateWithoutAiUsageEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutAiUsageEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type UserCreateWithoutAiUsageRollupsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAiUsageRollupsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAiUsageRollupsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAiUsageRollupsInput, UserUncheckedCreateWithoutAiUsageRollupsInput>
  }

  export type OrganizationCreateWithoutAiUsageRollupsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutAiUsageRollupsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutAiUsageRollupsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutAiUsageRollupsInput, OrganizationUncheckedCreateWithoutAiUsageRollupsInput>
  }

  export type UserUpsertWithoutAiUsageRollupsInput = {
    update: XOR<UserUpdateWithoutAiUsageRollupsInput, UserUncheckedUpdateWithoutAiUsageRollupsInput>
    create: XOR<UserCreateWithoutAiUsageRollupsInput, UserUncheckedCreateWithoutAiUsageRollupsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAiUsageRollupsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAiUsageRollupsInput, UserUncheckedUpdateWithoutAiUsageRollupsInput>
  }

  export type UserUpdateWithoutAiUsageRollupsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAiUsageRollupsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutAiUsageRollupsInput = {
    update: XOR<OrganizationUpdateWithoutAiUsageRollupsInput, OrganizationUncheckedUpdateWithoutAiUsageRollupsInput>
    create: XOR<OrganizationCreateWithoutAiUsageRollupsInput, OrganizationUncheckedCreateWithoutAiUsageRollupsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutAiUsageRollupsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutAiUsageRollupsInput, OrganizationUncheckedUpdateWithoutAiUsageRollupsInput>
  }

  export type OrganizationUpdateWithoutAiUsageRollupsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutAiUsageRollupsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type AuditDatabaseChangeLogCreateWithoutAuditLogInput = {
    id?: string
    tableName: string
    operation: $Enums.DbOperation
    recordId: string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogCreatechangedFieldsInput | string[]
    userId: string
    createdAt?: Date | string
  }

  export type AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput = {
    id?: string
    tableName: string
    operation: $Enums.DbOperation
    recordId: string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogCreatechangedFieldsInput | string[]
    userId: string
    createdAt?: Date | string
  }

  export type AuditDatabaseChangeLogCreateOrConnectWithoutAuditLogInput = {
    where: AuditDatabaseChangeLogWhereUniqueInput
    create: XOR<AuditDatabaseChangeLogCreateWithoutAuditLogInput, AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput>
  }

  export type AuditDatabaseChangeLogCreateManyAuditLogInputEnvelope = {
    data: AuditDatabaseChangeLogCreateManyAuditLogInput | AuditDatabaseChangeLogCreateManyAuditLogInput[]
    skipDuplicates?: boolean
  }

  export type UserCreateWithoutAuditLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAuditLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAuditLogsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAuditLogsInput, UserUncheckedCreateWithoutAuditLogsInput>
  }

  export type AuditSensitiveOperationLogCreateWithoutAuditLogInput = {
    id?: string
    operationType: string
    description: string
    requiresApproval?: boolean
    approvedBy?: string | null
    approvalTime?: Date | string | null
    riskLevel: $Enums.RiskLevel
    mfaVerified?: boolean
    userId: string
    createdAt?: Date | string
  }

  export type AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput = {
    id?: string
    operationType: string
    description: string
    requiresApproval?: boolean
    approvedBy?: string | null
    approvalTime?: Date | string | null
    riskLevel: $Enums.RiskLevel
    mfaVerified?: boolean
    userId: string
    createdAt?: Date | string
  }

  export type AuditSensitiveOperationLogCreateOrConnectWithoutAuditLogInput = {
    where: AuditSensitiveOperationLogWhereUniqueInput
    create: XOR<AuditSensitiveOperationLogCreateWithoutAuditLogInput, AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput>
  }

  export type AuditSensitiveOperationLogCreateManyAuditLogInputEnvelope = {
    data: AuditSensitiveOperationLogCreateManyAuditLogInput | AuditSensitiveOperationLogCreateManyAuditLogInput[]
    skipDuplicates?: boolean
  }

  export type AuditDatabaseChangeLogUpsertWithWhereUniqueWithoutAuditLogInput = {
    where: AuditDatabaseChangeLogWhereUniqueInput
    update: XOR<AuditDatabaseChangeLogUpdateWithoutAuditLogInput, AuditDatabaseChangeLogUncheckedUpdateWithoutAuditLogInput>
    create: XOR<AuditDatabaseChangeLogCreateWithoutAuditLogInput, AuditDatabaseChangeLogUncheckedCreateWithoutAuditLogInput>
  }

  export type AuditDatabaseChangeLogUpdateWithWhereUniqueWithoutAuditLogInput = {
    where: AuditDatabaseChangeLogWhereUniqueInput
    data: XOR<AuditDatabaseChangeLogUpdateWithoutAuditLogInput, AuditDatabaseChangeLogUncheckedUpdateWithoutAuditLogInput>
  }

  export type AuditDatabaseChangeLogUpdateManyWithWhereWithoutAuditLogInput = {
    where: AuditDatabaseChangeLogScalarWhereInput
    data: XOR<AuditDatabaseChangeLogUpdateManyMutationInput, AuditDatabaseChangeLogUncheckedUpdateManyWithoutAuditLogInput>
  }

  export type AuditDatabaseChangeLogScalarWhereInput = {
    AND?: AuditDatabaseChangeLogScalarWhereInput | AuditDatabaseChangeLogScalarWhereInput[]
    OR?: AuditDatabaseChangeLogScalarWhereInput[]
    NOT?: AuditDatabaseChangeLogScalarWhereInput | AuditDatabaseChangeLogScalarWhereInput[]
    id?: UuidFilter<"AuditDatabaseChangeLog"> | string
    tableName?: StringFilter<"AuditDatabaseChangeLog"> | string
    operation?: EnumDbOperationFilter<"AuditDatabaseChangeLog"> | $Enums.DbOperation
    recordId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    oldData?: JsonNullableFilter<"AuditDatabaseChangeLog">
    newData?: JsonNullableFilter<"AuditDatabaseChangeLog">
    changedFields?: StringNullableListFilter<"AuditDatabaseChangeLog">
    userId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    auditLogId?: UuidFilter<"AuditDatabaseChangeLog"> | string
    createdAt?: DateTimeFilter<"AuditDatabaseChangeLog"> | Date | string
  }

  export type UserUpsertWithoutAuditLogsInput = {
    update: XOR<UserUpdateWithoutAuditLogsInput, UserUncheckedUpdateWithoutAuditLogsInput>
    create: XOR<UserCreateWithoutAuditLogsInput, UserUncheckedCreateWithoutAuditLogsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAuditLogsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAuditLogsInput, UserUncheckedUpdateWithoutAuditLogsInput>
  }

  export type UserUpdateWithoutAuditLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAuditLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type AuditSensitiveOperationLogUpsertWithWhereUniqueWithoutAuditLogInput = {
    where: AuditSensitiveOperationLogWhereUniqueInput
    update: XOR<AuditSensitiveOperationLogUpdateWithoutAuditLogInput, AuditSensitiveOperationLogUncheckedUpdateWithoutAuditLogInput>
    create: XOR<AuditSensitiveOperationLogCreateWithoutAuditLogInput, AuditSensitiveOperationLogUncheckedCreateWithoutAuditLogInput>
  }

  export type AuditSensitiveOperationLogUpdateWithWhereUniqueWithoutAuditLogInput = {
    where: AuditSensitiveOperationLogWhereUniqueInput
    data: XOR<AuditSensitiveOperationLogUpdateWithoutAuditLogInput, AuditSensitiveOperationLogUncheckedUpdateWithoutAuditLogInput>
  }

  export type AuditSensitiveOperationLogUpdateManyWithWhereWithoutAuditLogInput = {
    where: AuditSensitiveOperationLogScalarWhereInput
    data: XOR<AuditSensitiveOperationLogUpdateManyMutationInput, AuditSensitiveOperationLogUncheckedUpdateManyWithoutAuditLogInput>
  }

  export type AuditSensitiveOperationLogScalarWhereInput = {
    AND?: AuditSensitiveOperationLogScalarWhereInput | AuditSensitiveOperationLogScalarWhereInput[]
    OR?: AuditSensitiveOperationLogScalarWhereInput[]
    NOT?: AuditSensitiveOperationLogScalarWhereInput | AuditSensitiveOperationLogScalarWhereInput[]
    id?: UuidFilter<"AuditSensitiveOperationLog"> | string
    operationType?: StringFilter<"AuditSensitiveOperationLog"> | string
    description?: StringFilter<"AuditSensitiveOperationLog"> | string
    requiresApproval?: BoolFilter<"AuditSensitiveOperationLog"> | boolean
    approvedBy?: StringNullableFilter<"AuditSensitiveOperationLog"> | string | null
    approvalTime?: DateTimeNullableFilter<"AuditSensitiveOperationLog"> | Date | string | null
    riskLevel?: EnumRiskLevelFilter<"AuditSensitiveOperationLog"> | $Enums.RiskLevel
    mfaVerified?: BoolFilter<"AuditSensitiveOperationLog"> | boolean
    userId?: UuidFilter<"AuditSensitiveOperationLog"> | string
    auditLogId?: UuidFilter<"AuditSensitiveOperationLog"> | string
    createdAt?: DateTimeFilter<"AuditSensitiveOperationLog"> | Date | string
  }

  export type AuditLogCreateWithoutDatabaseChangesInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
    user?: UserCreateNestedOneWithoutAuditLogsInput
    sensitiveOps?: AuditSensitiveOperationLogCreateNestedManyWithoutAuditLogInput
  }

  export type AuditLogUncheckedCreateWithoutDatabaseChangesInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    userId?: string | null
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
    sensitiveOps?: AuditSensitiveOperationLogUncheckedCreateNestedManyWithoutAuditLogInput
  }

  export type AuditLogCreateOrConnectWithoutDatabaseChangesInput = {
    where: AuditLogWhereUniqueInput
    create: XOR<AuditLogCreateWithoutDatabaseChangesInput, AuditLogUncheckedCreateWithoutDatabaseChangesInput>
  }

  export type AuditLogUpsertWithoutDatabaseChangesInput = {
    update: XOR<AuditLogUpdateWithoutDatabaseChangesInput, AuditLogUncheckedUpdateWithoutDatabaseChangesInput>
    create: XOR<AuditLogCreateWithoutDatabaseChangesInput, AuditLogUncheckedCreateWithoutDatabaseChangesInput>
    where?: AuditLogWhereInput
  }

  export type AuditLogUpdateToOneWithWhereWithoutDatabaseChangesInput = {
    where?: AuditLogWhereInput
    data: XOR<AuditLogUpdateWithoutDatabaseChangesInput, AuditLogUncheckedUpdateWithoutDatabaseChangesInput>
  }

  export type AuditLogUpdateWithoutDatabaseChangesInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    user?: UserUpdateOneWithoutAuditLogsNestedInput
    sensitiveOps?: AuditSensitiveOperationLogUpdateManyWithoutAuditLogNestedInput
  }

  export type AuditLogUncheckedUpdateWithoutDatabaseChangesInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    sensitiveOps?: AuditSensitiveOperationLogUncheckedUpdateManyWithoutAuditLogNestedInput
  }

  export type AuditLogCreateWithoutSensitiveOpsInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
    databaseChanges?: AuditDatabaseChangeLogCreateNestedManyWithoutAuditLogInput
    user?: UserCreateNestedOneWithoutAuditLogsInput
  }

  export type AuditLogUncheckedCreateWithoutSensitiveOpsInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    userId?: string | null
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUncheckedCreateNestedManyWithoutAuditLogInput
  }

  export type AuditLogCreateOrConnectWithoutSensitiveOpsInput = {
    where: AuditLogWhereUniqueInput
    create: XOR<AuditLogCreateWithoutSensitiveOpsInput, AuditLogUncheckedCreateWithoutSensitiveOpsInput>
  }

  export type AuditLogUpsertWithoutSensitiveOpsInput = {
    update: XOR<AuditLogUpdateWithoutSensitiveOpsInput, AuditLogUncheckedUpdateWithoutSensitiveOpsInput>
    create: XOR<AuditLogCreateWithoutSensitiveOpsInput, AuditLogUncheckedCreateWithoutSensitiveOpsInput>
    where?: AuditLogWhereInput
  }

  export type AuditLogUpdateToOneWithWhereWithoutSensitiveOpsInput = {
    where?: AuditLogWhereInput
    data: XOR<AuditLogUpdateWithoutSensitiveOpsInput, AuditLogUncheckedUpdateWithoutSensitiveOpsInput>
  }

  export type AuditLogUpdateWithoutSensitiveOpsInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUpdateManyWithoutAuditLogNestedInput
    user?: UserUpdateOneWithoutAuditLogsNestedInput
  }

  export type AuditLogUncheckedUpdateWithoutSensitiveOpsInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    userId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUncheckedUpdateManyWithoutAuditLogNestedInput
  }

  export type AutomationExecutionCreateWithoutTaskInput = {
    id?: string
    status: $Enums.AutomationExecutionStatus
    startedAt?: Date | string
    completedAt?: Date | string | null
    duration?: number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: string | null
    logs?: string | null
    triggerType: string
    triggeredBy?: string | null
    createdAt?: Date | string
  }

  export type AutomationExecutionUncheckedCreateWithoutTaskInput = {
    id?: string
    status: $Enums.AutomationExecutionStatus
    startedAt?: Date | string
    completedAt?: Date | string | null
    duration?: number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: string | null
    logs?: string | null
    triggerType: string
    triggeredBy?: string | null
    createdAt?: Date | string
  }

  export type AutomationExecutionCreateOrConnectWithoutTaskInput = {
    where: AutomationExecutionWhereUniqueInput
    create: XOR<AutomationExecutionCreateWithoutTaskInput, AutomationExecutionUncheckedCreateWithoutTaskInput>
  }

  export type AutomationExecutionCreateManyTaskInputEnvelope = {
    data: AutomationExecutionCreateManyTaskInput | AutomationExecutionCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type UserCreateWithoutCreatedAutomationTasksInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutCreatedAutomationTasksInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutCreatedAutomationTasksInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutCreatedAutomationTasksInput, UserUncheckedCreateWithoutCreatedAutomationTasksInput>
  }

  export type AutomationExecutionUpsertWithWhereUniqueWithoutTaskInput = {
    where: AutomationExecutionWhereUniqueInput
    update: XOR<AutomationExecutionUpdateWithoutTaskInput, AutomationExecutionUncheckedUpdateWithoutTaskInput>
    create: XOR<AutomationExecutionCreateWithoutTaskInput, AutomationExecutionUncheckedCreateWithoutTaskInput>
  }

  export type AutomationExecutionUpdateWithWhereUniqueWithoutTaskInput = {
    where: AutomationExecutionWhereUniqueInput
    data: XOR<AutomationExecutionUpdateWithoutTaskInput, AutomationExecutionUncheckedUpdateWithoutTaskInput>
  }

  export type AutomationExecutionUpdateManyWithWhereWithoutTaskInput = {
    where: AutomationExecutionScalarWhereInput
    data: XOR<AutomationExecutionUpdateManyMutationInput, AutomationExecutionUncheckedUpdateManyWithoutTaskInput>
  }

  export type AutomationExecutionScalarWhereInput = {
    AND?: AutomationExecutionScalarWhereInput | AutomationExecutionScalarWhereInput[]
    OR?: AutomationExecutionScalarWhereInput[]
    NOT?: AutomationExecutionScalarWhereInput | AutomationExecutionScalarWhereInput[]
    id?: UuidFilter<"AutomationExecution"> | string
    taskId?: UuidFilter<"AutomationExecution"> | string
    status?: EnumAutomationExecutionStatusFilter<"AutomationExecution"> | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFilter<"AutomationExecution"> | Date | string
    completedAt?: DateTimeNullableFilter<"AutomationExecution"> | Date | string | null
    duration?: IntNullableFilter<"AutomationExecution"> | number | null
    result?: JsonNullableFilter<"AutomationExecution">
    error?: StringNullableFilter<"AutomationExecution"> | string | null
    logs?: StringNullableFilter<"AutomationExecution"> | string | null
    triggerType?: StringFilter<"AutomationExecution"> | string
    triggeredBy?: StringNullableFilter<"AutomationExecution"> | string | null
    createdAt?: DateTimeFilter<"AutomationExecution"> | Date | string
  }

  export type UserUpsertWithoutCreatedAutomationTasksInput = {
    update: XOR<UserUpdateWithoutCreatedAutomationTasksInput, UserUncheckedUpdateWithoutCreatedAutomationTasksInput>
    create: XOR<UserCreateWithoutCreatedAutomationTasksInput, UserUncheckedCreateWithoutCreatedAutomationTasksInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutCreatedAutomationTasksInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutCreatedAutomationTasksInput, UserUncheckedUpdateWithoutCreatedAutomationTasksInput>
  }

  export type UserUpdateWithoutCreatedAutomationTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutCreatedAutomationTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type AutomationTaskCreateWithoutExecutionsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    type: $Enums.AutomationTaskType
    status?: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: number
    retryCount?: number
    lastRunAt?: Date | string | null
    lastStatus?: $Enums.AutomationExecutionStatus | null
    nextRunAt?: Date | string | null
    totalRuns?: number
    successRuns?: number
    failedRuns?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: UserCreateNestedOneWithoutCreatedAutomationTasksInput
  }

  export type AutomationTaskUncheckedCreateWithoutExecutionsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    type: $Enums.AutomationTaskType
    status?: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: number
    retryCount?: number
    lastRunAt?: Date | string | null
    lastStatus?: $Enums.AutomationExecutionStatus | null
    nextRunAt?: Date | string | null
    totalRuns?: number
    successRuns?: number
    failedRuns?: number
    createdById?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AutomationTaskCreateOrConnectWithoutExecutionsInput = {
    where: AutomationTaskWhereUniqueInput
    create: XOR<AutomationTaskCreateWithoutExecutionsInput, AutomationTaskUncheckedCreateWithoutExecutionsInput>
  }

  export type AutomationTaskUpsertWithoutExecutionsInput = {
    update: XOR<AutomationTaskUpdateWithoutExecutionsInput, AutomationTaskUncheckedUpdateWithoutExecutionsInput>
    create: XOR<AutomationTaskCreateWithoutExecutionsInput, AutomationTaskUncheckedCreateWithoutExecutionsInput>
    where?: AutomationTaskWhereInput
  }

  export type AutomationTaskUpdateToOneWithWhereWithoutExecutionsInput = {
    where?: AutomationTaskWhereInput
    data: XOR<AutomationTaskUpdateWithoutExecutionsInput, AutomationTaskUncheckedUpdateWithoutExecutionsInput>
  }

  export type AutomationTaskUpdateWithoutExecutionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: UserUpdateOneWithoutCreatedAutomationTasksNestedInput
  }

  export type AutomationTaskUncheckedUpdateWithoutExecutionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserCreateWithoutAdpPtoSchedulesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAdpPtoSchedulesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAdpPtoSchedulesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAdpPtoSchedulesInput, UserUncheckedCreateWithoutAdpPtoSchedulesInput>
  }

  export type UserUpsertWithoutAdpPtoSchedulesInput = {
    update: XOR<UserUpdateWithoutAdpPtoSchedulesInput, UserUncheckedUpdateWithoutAdpPtoSchedulesInput>
    create: XOR<UserCreateWithoutAdpPtoSchedulesInput, UserUncheckedCreateWithoutAdpPtoSchedulesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAdpPtoSchedulesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAdpPtoSchedulesInput, UserUncheckedUpdateWithoutAdpPtoSchedulesInput>
  }

  export type UserUpdateWithoutAdpPtoSchedulesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAdpPtoSchedulesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type DevItemCreateWithoutChildrenInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parent?: DevItemCreateNestedOneWithoutChildrenInput
    owner: UserCreateNestedOneWithoutDevItemsOwnedInput
    reporter: UserCreateNestedOneWithoutDevItemsReportedInput
    reviewer?: UserCreateNestedOneWithoutDevItemsReviewedInput
  }

  export type DevItemUncheckedCreateWithoutChildrenInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    ownerId: string
    reporterId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DevItemCreateOrConnectWithoutChildrenInput = {
    where: DevItemWhereUniqueInput
    create: XOR<DevItemCreateWithoutChildrenInput, DevItemUncheckedCreateWithoutChildrenInput>
  }

  export type DevItemCreateWithoutParentInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DevItemCreateNestedManyWithoutParentInput
    owner: UserCreateNestedOneWithoutDevItemsOwnedInput
    reporter: UserCreateNestedOneWithoutDevItemsReportedInput
    reviewer?: UserCreateNestedOneWithoutDevItemsReviewedInput
  }

  export type DevItemUncheckedCreateWithoutParentInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    ownerId: string
    reporterId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DevItemUncheckedCreateNestedManyWithoutParentInput
  }

  export type DevItemCreateOrConnectWithoutParentInput = {
    where: DevItemWhereUniqueInput
    create: XOR<DevItemCreateWithoutParentInput, DevItemUncheckedCreateWithoutParentInput>
  }

  export type DevItemCreateManyParentInputEnvelope = {
    data: DevItemCreateManyParentInput | DevItemCreateManyParentInput[]
    skipDuplicates?: boolean
  }

  export type UserCreateWithoutDevItemsOwnedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDevItemsOwnedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDevItemsOwnedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDevItemsOwnedInput, UserUncheckedCreateWithoutDevItemsOwnedInput>
  }

  export type UserCreateWithoutDevItemsReportedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDevItemsReportedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDevItemsReportedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDevItemsReportedInput, UserUncheckedCreateWithoutDevItemsReportedInput>
  }

  export type UserCreateWithoutDevItemsReviewedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDevItemsReviewedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDevItemsReviewedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDevItemsReviewedInput, UserUncheckedCreateWithoutDevItemsReviewedInput>
  }

  export type DevItemUpsertWithoutChildrenInput = {
    update: XOR<DevItemUpdateWithoutChildrenInput, DevItemUncheckedUpdateWithoutChildrenInput>
    create: XOR<DevItemCreateWithoutChildrenInput, DevItemUncheckedCreateWithoutChildrenInput>
    where?: DevItemWhereInput
  }

  export type DevItemUpdateToOneWithWhereWithoutChildrenInput = {
    where?: DevItemWhereInput
    data: XOR<DevItemUpdateWithoutChildrenInput, DevItemUncheckedUpdateWithoutChildrenInput>
  }

  export type DevItemUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: DevItemUpdateOneWithoutChildrenNestedInput
    owner?: UserUpdateOneRequiredWithoutDevItemsOwnedNestedInput
    reporter?: UserUpdateOneRequiredWithoutDevItemsReportedNestedInput
    reviewer?: UserUpdateOneWithoutDevItemsReviewedNestedInput
  }

  export type DevItemUncheckedUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DevItemUpsertWithWhereUniqueWithoutParentInput = {
    where: DevItemWhereUniqueInput
    update: XOR<DevItemUpdateWithoutParentInput, DevItemUncheckedUpdateWithoutParentInput>
    create: XOR<DevItemCreateWithoutParentInput, DevItemUncheckedCreateWithoutParentInput>
  }

  export type DevItemUpdateWithWhereUniqueWithoutParentInput = {
    where: DevItemWhereUniqueInput
    data: XOR<DevItemUpdateWithoutParentInput, DevItemUncheckedUpdateWithoutParentInput>
  }

  export type DevItemUpdateManyWithWhereWithoutParentInput = {
    where: DevItemScalarWhereInput
    data: XOR<DevItemUpdateManyMutationInput, DevItemUncheckedUpdateManyWithoutParentInput>
  }

  export type DevItemScalarWhereInput = {
    AND?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
    OR?: DevItemScalarWhereInput[]
    NOT?: DevItemScalarWhereInput | DevItemScalarWhereInput[]
    id?: UuidFilter<"DevItem"> | string
    code?: StringFilter<"DevItem"> | string
    title?: StringFilter<"DevItem"> | string
    description?: StringNullableFilter<"DevItem"> | string | null
    itemType?: EnumDevItemTypeFilter<"DevItem"> | $Enums.DevItemType
    status?: EnumDevItemStatusFilter<"DevItem"> | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFilter<"DevItem"> | $Enums.DevItemPriority
    severity?: EnumDevItemSeverityNullableFilter<"DevItem"> | $Enums.DevItemSeverity | null
    moduleKey?: StringNullableFilter<"DevItem"> | string | null
    parentId?: UuidNullableFilter<"DevItem"> | string | null
    ownerId?: UuidFilter<"DevItem"> | string
    reporterId?: UuidFilter<"DevItem"> | string
    reviewerId?: UuidNullableFilter<"DevItem"> | string | null
    reviewedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    startAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    devEtaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    testEtaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    etaAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    devCompletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    testCompletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
    content?: JsonNullableFilter<"DevItem">
    labels?: JsonNullableFilter<"DevItem">
    createdAt?: DateTimeFilter<"DevItem"> | Date | string
    updatedAt?: DateTimeFilter<"DevItem"> | Date | string
    deletedAt?: DateTimeNullableFilter<"DevItem"> | Date | string | null
  }

  export type UserUpsertWithoutDevItemsOwnedInput = {
    update: XOR<UserUpdateWithoutDevItemsOwnedInput, UserUncheckedUpdateWithoutDevItemsOwnedInput>
    create: XOR<UserCreateWithoutDevItemsOwnedInput, UserUncheckedCreateWithoutDevItemsOwnedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDevItemsOwnedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDevItemsOwnedInput, UserUncheckedUpdateWithoutDevItemsOwnedInput>
  }

  export type UserUpdateWithoutDevItemsOwnedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDevItemsOwnedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutDevItemsReportedInput = {
    update: XOR<UserUpdateWithoutDevItemsReportedInput, UserUncheckedUpdateWithoutDevItemsReportedInput>
    create: XOR<UserCreateWithoutDevItemsReportedInput, UserUncheckedCreateWithoutDevItemsReportedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDevItemsReportedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDevItemsReportedInput, UserUncheckedUpdateWithoutDevItemsReportedInput>
  }

  export type UserUpdateWithoutDevItemsReportedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDevItemsReportedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutDevItemsReviewedInput = {
    update: XOR<UserUpdateWithoutDevItemsReviewedInput, UserUncheckedUpdateWithoutDevItemsReviewedInput>
    create: XOR<UserCreateWithoutDevItemsReviewedInput, UserUncheckedCreateWithoutDevItemsReviewedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDevItemsReviewedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDevItemsReviewedInput, UserUncheckedUpdateWithoutDevItemsReviewedInput>
  }

  export type UserUpdateWithoutDevItemsReviewedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDevItemsReviewedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateWithoutReleaseNotesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutReleaseNotesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutReleaseNotesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutReleaseNotesInput, UserUncheckedCreateWithoutReleaseNotesInput>
  }

  export type UserUpsertWithoutReleaseNotesInput = {
    update: XOR<UserUpdateWithoutReleaseNotesInput, UserUncheckedUpdateWithoutReleaseNotesInput>
    create: XOR<UserCreateWithoutReleaseNotesInput, UserUncheckedCreateWithoutReleaseNotesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutReleaseNotesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutReleaseNotesInput, UserUncheckedUpdateWithoutReleaseNotesInput>
  }

  export type UserUpdateWithoutReleaseNotesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutReleaseNotesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateWithoutFeedbacksInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutFeedbacksInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutFeedbacksInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutFeedbacksInput, UserUncheckedCreateWithoutFeedbacksInput>
  }

  export type UserCreateWithoutAssignedFeedbacksInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAssignedFeedbacksInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAssignedFeedbacksInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAssignedFeedbacksInput, UserUncheckedCreateWithoutAssignedFeedbacksInput>
  }

  export type UserUpsertWithoutFeedbacksInput = {
    update: XOR<UserUpdateWithoutFeedbacksInput, UserUncheckedUpdateWithoutFeedbacksInput>
    create: XOR<UserCreateWithoutFeedbacksInput, UserUncheckedCreateWithoutFeedbacksInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutFeedbacksInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutFeedbacksInput, UserUncheckedUpdateWithoutFeedbacksInput>
  }

  export type UserUpdateWithoutFeedbacksInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutFeedbacksInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutAssignedFeedbacksInput = {
    update: XOR<UserUpdateWithoutAssignedFeedbacksInput, UserUncheckedUpdateWithoutAssignedFeedbacksInput>
    create: XOR<UserCreateWithoutAssignedFeedbacksInput, UserUncheckedCreateWithoutAssignedFeedbacksInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAssignedFeedbacksInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAssignedFeedbacksInput, UserUncheckedUpdateWithoutAssignedFeedbacksInput>
  }

  export type UserUpdateWithoutAssignedFeedbacksInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAssignedFeedbacksInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationCreateWithoutFormDefinitionsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutFormDefinitionsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutFormDefinitionsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutFormDefinitionsInput, OrganizationUncheckedCreateWithoutFormDefinitionsInput>
  }

  export type UserCreateWithoutCreatedFormDefinitionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutCreatedFormDefinitionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutCreatedFormDefinitionsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutCreatedFormDefinitionsInput, UserUncheckedCreateWithoutCreatedFormDefinitionsInput>
  }

  export type UserCreateWithoutUpdatedFormDefinitionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutUpdatedFormDefinitionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutUpdatedFormDefinitionsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutUpdatedFormDefinitionsInput, UserUncheckedCreateWithoutUpdatedFormDefinitionsInput>
  }

  export type FormInstanceCreateWithoutDefinitionInput = {
    id?: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedFormInstancesInput
    version: FormVersionCreateNestedOneWithoutInstancesInput
    snapshot?: ReleaseSnapshotCreateNestedOneWithoutInstancesInput
    submitter?: UserCreateNestedOneWithoutSubmittedFormInstancesInput
    updater?: UserCreateNestedOneWithoutUpdatedFormInstancesInput
  }

  export type FormInstanceUncheckedCreateWithoutDefinitionInput = {
    id?: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceCreateOrConnectWithoutDefinitionInput = {
    where: FormInstanceWhereUniqueInput
    create: XOR<FormInstanceCreateWithoutDefinitionInput, FormInstanceUncheckedCreateWithoutDefinitionInput>
  }

  export type FormInstanceCreateManyDefinitionInputEnvelope = {
    data: FormInstanceCreateManyDefinitionInput | FormInstanceCreateManyDefinitionInput[]
    skipDuplicates?: boolean
  }

  export type FormVersionCreateWithoutDefinitionInput = {
    id?: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    instances?: FormInstanceCreateNestedManyWithoutVersionInput
    translations?: FormTranslationCreateNestedManyWithoutVersionInput
    creator: UserCreateNestedOneWithoutCreatedFormVersionsInput
    reviewer?: UserCreateNestedOneWithoutReviewedFormVersionsInput
  }

  export type FormVersionUncheckedCreateWithoutDefinitionInput = {
    id?: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdBy: string
    createdAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutVersionInput
    translations?: FormTranslationUncheckedCreateNestedManyWithoutVersionInput
  }

  export type FormVersionCreateOrConnectWithoutDefinitionInput = {
    where: FormVersionWhereUniqueInput
    create: XOR<FormVersionCreateWithoutDefinitionInput, FormVersionUncheckedCreateWithoutDefinitionInput>
  }

  export type FormVersionCreateManyDefinitionInputEnvelope = {
    data: FormVersionCreateManyDefinitionInput | FormVersionCreateManyDefinitionInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationUpsertWithoutFormDefinitionsInput = {
    update: XOR<OrganizationUpdateWithoutFormDefinitionsInput, OrganizationUncheckedUpdateWithoutFormDefinitionsInput>
    create: XOR<OrganizationCreateWithoutFormDefinitionsInput, OrganizationUncheckedCreateWithoutFormDefinitionsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutFormDefinitionsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutFormDefinitionsInput, OrganizationUncheckedUpdateWithoutFormDefinitionsInput>
  }

  export type OrganizationUpdateWithoutFormDefinitionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutFormDefinitionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type UserUpsertWithoutCreatedFormDefinitionsInput = {
    update: XOR<UserUpdateWithoutCreatedFormDefinitionsInput, UserUncheckedUpdateWithoutCreatedFormDefinitionsInput>
    create: XOR<UserCreateWithoutCreatedFormDefinitionsInput, UserUncheckedCreateWithoutCreatedFormDefinitionsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutCreatedFormDefinitionsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutCreatedFormDefinitionsInput, UserUncheckedUpdateWithoutCreatedFormDefinitionsInput>
  }

  export type UserUpdateWithoutCreatedFormDefinitionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutCreatedFormDefinitionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutUpdatedFormDefinitionsInput = {
    update: XOR<UserUpdateWithoutUpdatedFormDefinitionsInput, UserUncheckedUpdateWithoutUpdatedFormDefinitionsInput>
    create: XOR<UserCreateWithoutUpdatedFormDefinitionsInput, UserUncheckedCreateWithoutUpdatedFormDefinitionsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutUpdatedFormDefinitionsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutUpdatedFormDefinitionsInput, UserUncheckedUpdateWithoutUpdatedFormDefinitionsInput>
  }

  export type UserUpdateWithoutUpdatedFormDefinitionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutUpdatedFormDefinitionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type FormInstanceUpsertWithWhereUniqueWithoutDefinitionInput = {
    where: FormInstanceWhereUniqueInput
    update: XOR<FormInstanceUpdateWithoutDefinitionInput, FormInstanceUncheckedUpdateWithoutDefinitionInput>
    create: XOR<FormInstanceCreateWithoutDefinitionInput, FormInstanceUncheckedCreateWithoutDefinitionInput>
  }

  export type FormInstanceUpdateWithWhereUniqueWithoutDefinitionInput = {
    where: FormInstanceWhereUniqueInput
    data: XOR<FormInstanceUpdateWithoutDefinitionInput, FormInstanceUncheckedUpdateWithoutDefinitionInput>
  }

  export type FormInstanceUpdateManyWithWhereWithoutDefinitionInput = {
    where: FormInstanceScalarWhereInput
    data: XOR<FormInstanceUpdateManyMutationInput, FormInstanceUncheckedUpdateManyWithoutDefinitionInput>
  }

  export type FormInstanceScalarWhereInput = {
    AND?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
    OR?: FormInstanceScalarWhereInput[]
    NOT?: FormInstanceScalarWhereInput | FormInstanceScalarWhereInput[]
    id?: UuidFilter<"FormInstance"> | string
    formDefinitionId?: UuidFilter<"FormInstance"> | string
    formVersionId?: UuidFilter<"FormInstance"> | string
    formKey?: StringFilter<"FormInstance"> | string
    formVersion?: IntFilter<"FormInstance"> | number
    snapshotId?: UuidNullableFilter<"FormInstance"> | string | null
    businessKey?: StringFilter<"FormInstance"> | string
    regionId?: StringNullableFilter<"FormInstance"> | string | null
    data?: JsonFilter<"FormInstance">
    status?: EnumFormInstanceStatusFilter<"FormInstance"> | $Enums.FormInstanceStatus
    createdBy?: UuidFilter<"FormInstance"> | string
    updatedBy?: UuidNullableFilter<"FormInstance"> | string | null
    submittedBy?: UuidNullableFilter<"FormInstance"> | string | null
    submittedAt?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    approvalInstanceId?: UuidNullableFilter<"FormInstance"> | string | null
    approvalStatus?: StringNullableFilter<"FormInstance"> | string | null
    approvalStartTime?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    approvalEndTime?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
    createdAt?: DateTimeFilter<"FormInstance"> | Date | string
    updatedAt?: DateTimeFilter<"FormInstance"> | Date | string
    deletedAt?: DateTimeNullableFilter<"FormInstance"> | Date | string | null
  }

  export type FormVersionUpsertWithWhereUniqueWithoutDefinitionInput = {
    where: FormVersionWhereUniqueInput
    update: XOR<FormVersionUpdateWithoutDefinitionInput, FormVersionUncheckedUpdateWithoutDefinitionInput>
    create: XOR<FormVersionCreateWithoutDefinitionInput, FormVersionUncheckedCreateWithoutDefinitionInput>
  }

  export type FormVersionUpdateWithWhereUniqueWithoutDefinitionInput = {
    where: FormVersionWhereUniqueInput
    data: XOR<FormVersionUpdateWithoutDefinitionInput, FormVersionUncheckedUpdateWithoutDefinitionInput>
  }

  export type FormVersionUpdateManyWithWhereWithoutDefinitionInput = {
    where: FormVersionScalarWhereInput
    data: XOR<FormVersionUpdateManyMutationInput, FormVersionUncheckedUpdateManyWithoutDefinitionInput>
  }

  export type FormVersionScalarWhereInput = {
    AND?: FormVersionScalarWhereInput | FormVersionScalarWhereInput[]
    OR?: FormVersionScalarWhereInput[]
    NOT?: FormVersionScalarWhereInput | FormVersionScalarWhereInput[]
    id?: UuidFilter<"FormVersion"> | string
    definitionId?: UuidFilter<"FormVersion"> | string
    version?: IntFilter<"FormVersion"> | number
    schema?: JsonFilter<"FormVersion">
    uiSchema?: JsonNullableFilter<"FormVersion">
    viewSchema?: JsonNullableFilter<"FormVersion">
    validation?: JsonNullableFilter<"FormVersion">
    changelog?: StringNullableFilter<"FormVersion"> | string | null
    nameI18n?: JsonFilter<"FormVersion">
    descriptionI18n?: JsonNullableFilter<"FormVersion">
    isDefault?: BoolFilter<"FormVersion"> | boolean
    status?: EnumFormVersionStatusFilter<"FormVersion"> | $Enums.FormVersionStatus
    reviewedBy?: UuidNullableFilter<"FormVersion"> | string | null
    reviewedAt?: DateTimeNullableFilter<"FormVersion"> | Date | string | null
    reviewComment?: StringNullableFilter<"FormVersion"> | string | null
    publishedAt?: DateTimeNullableFilter<"FormVersion"> | Date | string | null
    createdBy?: UuidFilter<"FormVersion"> | string
    createdAt?: DateTimeFilter<"FormVersion"> | Date | string
  }

  export type FormInstanceCreateWithoutVersionInput = {
    id?: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedFormInstancesInput
    definition: FormDefinitionCreateNestedOneWithoutInstancesInput
    snapshot?: ReleaseSnapshotCreateNestedOneWithoutInstancesInput
    submitter?: UserCreateNestedOneWithoutSubmittedFormInstancesInput
    updater?: UserCreateNestedOneWithoutUpdatedFormInstancesInput
  }

  export type FormInstanceUncheckedCreateWithoutVersionInput = {
    id?: string
    formDefinitionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceCreateOrConnectWithoutVersionInput = {
    where: FormInstanceWhereUniqueInput
    create: XOR<FormInstanceCreateWithoutVersionInput, FormInstanceUncheckedCreateWithoutVersionInput>
  }

  export type FormInstanceCreateManyVersionInputEnvelope = {
    data: FormInstanceCreateManyVersionInput | FormInstanceCreateManyVersionInput[]
    skipDuplicates?: boolean
  }

  export type FormTranslationCreateWithoutVersionInput = {
    id?: string
    locale: string
    translations: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTranslationUncheckedCreateWithoutVersionInput = {
    id?: string
    locale: string
    translations: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTranslationCreateOrConnectWithoutVersionInput = {
    where: FormTranslationWhereUniqueInput
    create: XOR<FormTranslationCreateWithoutVersionInput, FormTranslationUncheckedCreateWithoutVersionInput>
  }

  export type FormTranslationCreateManyVersionInputEnvelope = {
    data: FormTranslationCreateManyVersionInput | FormTranslationCreateManyVersionInput[]
    skipDuplicates?: boolean
  }

  export type UserCreateWithoutCreatedFormVersionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutCreatedFormVersionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutCreatedFormVersionsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutCreatedFormVersionsInput, UserUncheckedCreateWithoutCreatedFormVersionsInput>
  }

  export type UserCreateWithoutReviewedFormVersionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutReviewedFormVersionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutReviewedFormVersionsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutReviewedFormVersionsInput, UserUncheckedCreateWithoutReviewedFormVersionsInput>
  }

  export type FormDefinitionCreateWithoutVersionsInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutFormDefinitionsInput
    creator: UserCreateNestedOneWithoutCreatedFormDefinitionsInput
    updater?: UserCreateNestedOneWithoutUpdatedFormDefinitionsInput
    instances?: FormInstanceCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionUncheckedCreateWithoutVersionsInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    organizationId?: string | null
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionCreateOrConnectWithoutVersionsInput = {
    where: FormDefinitionWhereUniqueInput
    create: XOR<FormDefinitionCreateWithoutVersionsInput, FormDefinitionUncheckedCreateWithoutVersionsInput>
  }

  export type FormInstanceUpsertWithWhereUniqueWithoutVersionInput = {
    where: FormInstanceWhereUniqueInput
    update: XOR<FormInstanceUpdateWithoutVersionInput, FormInstanceUncheckedUpdateWithoutVersionInput>
    create: XOR<FormInstanceCreateWithoutVersionInput, FormInstanceUncheckedCreateWithoutVersionInput>
  }

  export type FormInstanceUpdateWithWhereUniqueWithoutVersionInput = {
    where: FormInstanceWhereUniqueInput
    data: XOR<FormInstanceUpdateWithoutVersionInput, FormInstanceUncheckedUpdateWithoutVersionInput>
  }

  export type FormInstanceUpdateManyWithWhereWithoutVersionInput = {
    where: FormInstanceScalarWhereInput
    data: XOR<FormInstanceUpdateManyMutationInput, FormInstanceUncheckedUpdateManyWithoutVersionInput>
  }

  export type FormTranslationUpsertWithWhereUniqueWithoutVersionInput = {
    where: FormTranslationWhereUniqueInput
    update: XOR<FormTranslationUpdateWithoutVersionInput, FormTranslationUncheckedUpdateWithoutVersionInput>
    create: XOR<FormTranslationCreateWithoutVersionInput, FormTranslationUncheckedCreateWithoutVersionInput>
  }

  export type FormTranslationUpdateWithWhereUniqueWithoutVersionInput = {
    where: FormTranslationWhereUniqueInput
    data: XOR<FormTranslationUpdateWithoutVersionInput, FormTranslationUncheckedUpdateWithoutVersionInput>
  }

  export type FormTranslationUpdateManyWithWhereWithoutVersionInput = {
    where: FormTranslationScalarWhereInput
    data: XOR<FormTranslationUpdateManyMutationInput, FormTranslationUncheckedUpdateManyWithoutVersionInput>
  }

  export type FormTranslationScalarWhereInput = {
    AND?: FormTranslationScalarWhereInput | FormTranslationScalarWhereInput[]
    OR?: FormTranslationScalarWhereInput[]
    NOT?: FormTranslationScalarWhereInput | FormTranslationScalarWhereInput[]
    id?: UuidFilter<"FormTranslation"> | string
    versionId?: UuidFilter<"FormTranslation"> | string
    locale?: StringFilter<"FormTranslation"> | string
    translations?: JsonFilter<"FormTranslation">
    createdAt?: DateTimeFilter<"FormTranslation"> | Date | string
    updatedAt?: DateTimeFilter<"FormTranslation"> | Date | string
  }

  export type UserUpsertWithoutCreatedFormVersionsInput = {
    update: XOR<UserUpdateWithoutCreatedFormVersionsInput, UserUncheckedUpdateWithoutCreatedFormVersionsInput>
    create: XOR<UserCreateWithoutCreatedFormVersionsInput, UserUncheckedCreateWithoutCreatedFormVersionsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutCreatedFormVersionsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutCreatedFormVersionsInput, UserUncheckedUpdateWithoutCreatedFormVersionsInput>
  }

  export type UserUpdateWithoutCreatedFormVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutCreatedFormVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutReviewedFormVersionsInput = {
    update: XOR<UserUpdateWithoutReviewedFormVersionsInput, UserUncheckedUpdateWithoutReviewedFormVersionsInput>
    create: XOR<UserCreateWithoutReviewedFormVersionsInput, UserUncheckedCreateWithoutReviewedFormVersionsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutReviewedFormVersionsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutReviewedFormVersionsInput, UserUncheckedUpdateWithoutReviewedFormVersionsInput>
  }

  export type UserUpdateWithoutReviewedFormVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutReviewedFormVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type FormDefinitionUpsertWithoutVersionsInput = {
    update: XOR<FormDefinitionUpdateWithoutVersionsInput, FormDefinitionUncheckedUpdateWithoutVersionsInput>
    create: XOR<FormDefinitionCreateWithoutVersionsInput, FormDefinitionUncheckedCreateWithoutVersionsInput>
    where?: FormDefinitionWhereInput
  }

  export type FormDefinitionUpdateToOneWithWhereWithoutVersionsInput = {
    where?: FormDefinitionWhereInput
    data: XOR<FormDefinitionUpdateWithoutVersionsInput, FormDefinitionUncheckedUpdateWithoutVersionsInput>
  }

  export type FormDefinitionUpdateWithoutVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutFormDefinitionsNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormDefinitionsNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormDefinitionsNestedInput
    instances?: FormInstanceUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateWithoutVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutDefinitionNestedInput
  }

  export type UserCreateWithoutCreatedFormInstancesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutCreatedFormInstancesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutCreatedFormInstancesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutCreatedFormInstancesInput, UserUncheckedCreateWithoutCreatedFormInstancesInput>
  }

  export type FormDefinitionCreateWithoutInstancesInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutFormDefinitionsInput
    creator: UserCreateNestedOneWithoutCreatedFormDefinitionsInput
    updater?: UserCreateNestedOneWithoutUpdatedFormDefinitionsInput
    versions?: FormVersionCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionUncheckedCreateWithoutInstancesInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    organizationId?: string | null
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    versions?: FormVersionUncheckedCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionCreateOrConnectWithoutInstancesInput = {
    where: FormDefinitionWhereUniqueInput
    create: XOR<FormDefinitionCreateWithoutInstancesInput, FormDefinitionUncheckedCreateWithoutInstancesInput>
  }

  export type FormVersionCreateWithoutInstancesInput = {
    id?: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    translations?: FormTranslationCreateNestedManyWithoutVersionInput
    creator: UserCreateNestedOneWithoutCreatedFormVersionsInput
    reviewer?: UserCreateNestedOneWithoutReviewedFormVersionsInput
    definition: FormDefinitionCreateNestedOneWithoutVersionsInput
  }

  export type FormVersionUncheckedCreateWithoutInstancesInput = {
    id?: string
    definitionId: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdBy: string
    createdAt?: Date | string
    translations?: FormTranslationUncheckedCreateNestedManyWithoutVersionInput
  }

  export type FormVersionCreateOrConnectWithoutInstancesInput = {
    where: FormVersionWhereUniqueInput
    create: XOR<FormVersionCreateWithoutInstancesInput, FormVersionUncheckedCreateWithoutInstancesInput>
  }

  export type ReleaseSnapshotCreateWithoutInstancesInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    processDefinitionId?: string | null
    processVersionId?: string | null
    status?: $Enums.ReleaseSnapshotStatus
    versionName?: string | null
    releaseNote?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    submitComment?: string | null
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedBy?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ReleaseSnapshotUncheckedCreateWithoutInstancesInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    processDefinitionId?: string | null
    processVersionId?: string | null
    status?: $Enums.ReleaseSnapshotStatus
    versionName?: string | null
    releaseNote?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    submitComment?: string | null
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedBy?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ReleaseSnapshotCreateOrConnectWithoutInstancesInput = {
    where: ReleaseSnapshotWhereUniqueInput
    create: XOR<ReleaseSnapshotCreateWithoutInstancesInput, ReleaseSnapshotUncheckedCreateWithoutInstancesInput>
  }

  export type UserCreateWithoutSubmittedFormInstancesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutSubmittedFormInstancesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutSubmittedFormInstancesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutSubmittedFormInstancesInput, UserUncheckedCreateWithoutSubmittedFormInstancesInput>
  }

  export type UserCreateWithoutUpdatedFormInstancesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutUpdatedFormInstancesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutUpdatedFormInstancesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutUpdatedFormInstancesInput, UserUncheckedCreateWithoutUpdatedFormInstancesInput>
  }

  export type UserUpsertWithoutCreatedFormInstancesInput = {
    update: XOR<UserUpdateWithoutCreatedFormInstancesInput, UserUncheckedUpdateWithoutCreatedFormInstancesInput>
    create: XOR<UserCreateWithoutCreatedFormInstancesInput, UserUncheckedCreateWithoutCreatedFormInstancesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutCreatedFormInstancesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutCreatedFormInstancesInput, UserUncheckedUpdateWithoutCreatedFormInstancesInput>
  }

  export type UserUpdateWithoutCreatedFormInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutCreatedFormInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type FormDefinitionUpsertWithoutInstancesInput = {
    update: XOR<FormDefinitionUpdateWithoutInstancesInput, FormDefinitionUncheckedUpdateWithoutInstancesInput>
    create: XOR<FormDefinitionCreateWithoutInstancesInput, FormDefinitionUncheckedCreateWithoutInstancesInput>
    where?: FormDefinitionWhereInput
  }

  export type FormDefinitionUpdateToOneWithWhereWithoutInstancesInput = {
    where?: FormDefinitionWhereInput
    data: XOR<FormDefinitionUpdateWithoutInstancesInput, FormDefinitionUncheckedUpdateWithoutInstancesInput>
  }

  export type FormDefinitionUpdateWithoutInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutFormDefinitionsNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormDefinitionsNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormDefinitionsNestedInput
    versions?: FormVersionUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateWithoutInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    versions?: FormVersionUncheckedUpdateManyWithoutDefinitionNestedInput
  }

  export type FormVersionUpsertWithoutInstancesInput = {
    update: XOR<FormVersionUpdateWithoutInstancesInput, FormVersionUncheckedUpdateWithoutInstancesInput>
    create: XOR<FormVersionCreateWithoutInstancesInput, FormVersionUncheckedCreateWithoutInstancesInput>
    where?: FormVersionWhereInput
  }

  export type FormVersionUpdateToOneWithWhereWithoutInstancesInput = {
    where?: FormVersionWhereInput
    data: XOR<FormVersionUpdateWithoutInstancesInput, FormVersionUncheckedUpdateWithoutInstancesInput>
  }

  export type FormVersionUpdateWithoutInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    translations?: FormTranslationUpdateManyWithoutVersionNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormVersionsNestedInput
    reviewer?: UserUpdateOneWithoutReviewedFormVersionsNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutVersionsNestedInput
  }

  export type FormVersionUncheckedUpdateWithoutInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    translations?: FormTranslationUncheckedUpdateManyWithoutVersionNestedInput
  }

  export type ReleaseSnapshotUpsertWithoutInstancesInput = {
    update: XOR<ReleaseSnapshotUpdateWithoutInstancesInput, ReleaseSnapshotUncheckedUpdateWithoutInstancesInput>
    create: XOR<ReleaseSnapshotCreateWithoutInstancesInput, ReleaseSnapshotUncheckedCreateWithoutInstancesInput>
    where?: ReleaseSnapshotWhereInput
  }

  export type ReleaseSnapshotUpdateToOneWithWhereWithoutInstancesInput = {
    where?: ReleaseSnapshotWhereInput
    data: XOR<ReleaseSnapshotUpdateWithoutInstancesInput, ReleaseSnapshotUncheckedUpdateWithoutInstancesInput>
  }

  export type ReleaseSnapshotUpdateWithoutInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    processDefinitionId?: NullableStringFieldUpdateOperationsInput | string | null
    processVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumReleaseSnapshotStatusFieldUpdateOperationsInput | $Enums.ReleaseSnapshotStatus
    versionName?: NullableStringFieldUpdateOperationsInput | string | null
    releaseNote?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    submitComment?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReleaseSnapshotUncheckedUpdateWithoutInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    processDefinitionId?: NullableStringFieldUpdateOperationsInput | string | null
    processVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumReleaseSnapshotStatusFieldUpdateOperationsInput | $Enums.ReleaseSnapshotStatus
    versionName?: NullableStringFieldUpdateOperationsInput | string | null
    releaseNote?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    submitComment?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserUpsertWithoutSubmittedFormInstancesInput = {
    update: XOR<UserUpdateWithoutSubmittedFormInstancesInput, UserUncheckedUpdateWithoutSubmittedFormInstancesInput>
    create: XOR<UserCreateWithoutSubmittedFormInstancesInput, UserUncheckedCreateWithoutSubmittedFormInstancesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutSubmittedFormInstancesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutSubmittedFormInstancesInput, UserUncheckedUpdateWithoutSubmittedFormInstancesInput>
  }

  export type UserUpdateWithoutSubmittedFormInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutSubmittedFormInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutUpdatedFormInstancesInput = {
    update: XOR<UserUpdateWithoutUpdatedFormInstancesInput, UserUncheckedUpdateWithoutUpdatedFormInstancesInput>
    create: XOR<UserCreateWithoutUpdatedFormInstancesInput, UserUncheckedCreateWithoutUpdatedFormInstancesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutUpdatedFormInstancesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutUpdatedFormInstancesInput, UserUncheckedUpdateWithoutUpdatedFormInstancesInput>
  }

  export type UserUpdateWithoutUpdatedFormInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutUpdatedFormInstancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type FormVersionCreateWithoutTranslationsInput = {
    id?: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    instances?: FormInstanceCreateNestedManyWithoutVersionInput
    creator: UserCreateNestedOneWithoutCreatedFormVersionsInput
    reviewer?: UserCreateNestedOneWithoutReviewedFormVersionsInput
    definition: FormDefinitionCreateNestedOneWithoutVersionsInput
  }

  export type FormVersionUncheckedCreateWithoutTranslationsInput = {
    id?: string
    definitionId: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdBy: string
    createdAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutVersionInput
  }

  export type FormVersionCreateOrConnectWithoutTranslationsInput = {
    where: FormVersionWhereUniqueInput
    create: XOR<FormVersionCreateWithoutTranslationsInput, FormVersionUncheckedCreateWithoutTranslationsInput>
  }

  export type FormVersionUpsertWithoutTranslationsInput = {
    update: XOR<FormVersionUpdateWithoutTranslationsInput, FormVersionUncheckedUpdateWithoutTranslationsInput>
    create: XOR<FormVersionCreateWithoutTranslationsInput, FormVersionUncheckedCreateWithoutTranslationsInput>
    where?: FormVersionWhereInput
  }

  export type FormVersionUpdateToOneWithWhereWithoutTranslationsInput = {
    where?: FormVersionWhereInput
    data: XOR<FormVersionUpdateWithoutTranslationsInput, FormVersionUncheckedUpdateWithoutTranslationsInput>
  }

  export type FormVersionUpdateWithoutTranslationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUpdateManyWithoutVersionNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormVersionsNestedInput
    reviewer?: UserUpdateOneWithoutReviewedFormVersionsNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutVersionsNestedInput
  }

  export type FormVersionUncheckedUpdateWithoutTranslationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutVersionNestedInput
  }

  export type UserCreateWithoutCreatedFormTemplatesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutCreatedFormTemplatesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutCreatedFormTemplatesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutCreatedFormTemplatesInput, UserUncheckedCreateWithoutCreatedFormTemplatesInput>
  }

  export type UserCreateWithoutUpdatedFormTemplatesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutUpdatedFormTemplatesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutUpdatedFormTemplatesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutUpdatedFormTemplatesInput, UserUncheckedCreateWithoutUpdatedFormTemplatesInput>
  }

  export type UserUpsertWithoutCreatedFormTemplatesInput = {
    update: XOR<UserUpdateWithoutCreatedFormTemplatesInput, UserUncheckedUpdateWithoutCreatedFormTemplatesInput>
    create: XOR<UserCreateWithoutCreatedFormTemplatesInput, UserUncheckedCreateWithoutCreatedFormTemplatesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutCreatedFormTemplatesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutCreatedFormTemplatesInput, UserUncheckedUpdateWithoutCreatedFormTemplatesInput>
  }

  export type UserUpdateWithoutCreatedFormTemplatesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutCreatedFormTemplatesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutUpdatedFormTemplatesInput = {
    update: XOR<UserUpdateWithoutUpdatedFormTemplatesInput, UserUncheckedUpdateWithoutUpdatedFormTemplatesInput>
    create: XOR<UserCreateWithoutUpdatedFormTemplatesInput, UserUncheckedCreateWithoutUpdatedFormTemplatesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutUpdatedFormTemplatesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutUpdatedFormTemplatesInput, UserUncheckedUpdateWithoutUpdatedFormTemplatesInput>
  }

  export type UserUpdateWithoutUpdatedFormTemplatesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutUpdatedFormTemplatesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type FormInstanceCreateWithoutSnapshotInput = {
    id?: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedFormInstancesInput
    definition: FormDefinitionCreateNestedOneWithoutInstancesInput
    version: FormVersionCreateNestedOneWithoutInstancesInput
    submitter?: UserCreateNestedOneWithoutSubmittedFormInstancesInput
    updater?: UserCreateNestedOneWithoutUpdatedFormInstancesInput
  }

  export type FormInstanceUncheckedCreateWithoutSnapshotInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceCreateOrConnectWithoutSnapshotInput = {
    where: FormInstanceWhereUniqueInput
    create: XOR<FormInstanceCreateWithoutSnapshotInput, FormInstanceUncheckedCreateWithoutSnapshotInput>
  }

  export type FormInstanceCreateManySnapshotInputEnvelope = {
    data: FormInstanceCreateManySnapshotInput | FormInstanceCreateManySnapshotInput[]
    skipDuplicates?: boolean
  }

  export type FormInstanceUpsertWithWhereUniqueWithoutSnapshotInput = {
    where: FormInstanceWhereUniqueInput
    update: XOR<FormInstanceUpdateWithoutSnapshotInput, FormInstanceUncheckedUpdateWithoutSnapshotInput>
    create: XOR<FormInstanceCreateWithoutSnapshotInput, FormInstanceUncheckedCreateWithoutSnapshotInput>
  }

  export type FormInstanceUpdateWithWhereUniqueWithoutSnapshotInput = {
    where: FormInstanceWhereUniqueInput
    data: XOR<FormInstanceUpdateWithoutSnapshotInput, FormInstanceUncheckedUpdateWithoutSnapshotInput>
  }

  export type FormInstanceUpdateManyWithWhereWithoutSnapshotInput = {
    where: FormInstanceScalarWhereInput
    data: XOR<FormInstanceUpdateManyMutationInput, FormInstanceUncheckedUpdateManyWithoutSnapshotInput>
  }

  export type OrganizationCreateWithoutFormWebhooksInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutFormWebhooksInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutFormWebhooksInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutFormWebhooksInput, OrganizationUncheckedCreateWithoutFormWebhooksInput>
  }

  export type FormWebhookLogCreateWithoutWebhookInput = {
    id?: string
    eventType: string
    payload: JsonNullValueInput | InputJsonValue
    statusCode?: number | null
    response?: string | null
    success: boolean
    error?: string | null
    retryCount?: number
    duration?: number | null
    createdAt?: Date | string
  }

  export type FormWebhookLogUncheckedCreateWithoutWebhookInput = {
    id?: string
    eventType: string
    payload: JsonNullValueInput | InputJsonValue
    statusCode?: number | null
    response?: string | null
    success: boolean
    error?: string | null
    retryCount?: number
    duration?: number | null
    createdAt?: Date | string
  }

  export type FormWebhookLogCreateOrConnectWithoutWebhookInput = {
    where: FormWebhookLogWhereUniqueInput
    create: XOR<FormWebhookLogCreateWithoutWebhookInput, FormWebhookLogUncheckedCreateWithoutWebhookInput>
  }

  export type FormWebhookLogCreateManyWebhookInputEnvelope = {
    data: FormWebhookLogCreateManyWebhookInput | FormWebhookLogCreateManyWebhookInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationUpsertWithoutFormWebhooksInput = {
    update: XOR<OrganizationUpdateWithoutFormWebhooksInput, OrganizationUncheckedUpdateWithoutFormWebhooksInput>
    create: XOR<OrganizationCreateWithoutFormWebhooksInput, OrganizationUncheckedCreateWithoutFormWebhooksInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutFormWebhooksInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutFormWebhooksInput, OrganizationUncheckedUpdateWithoutFormWebhooksInput>
  }

  export type OrganizationUpdateWithoutFormWebhooksInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutFormWebhooksInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type FormWebhookLogUpsertWithWhereUniqueWithoutWebhookInput = {
    where: FormWebhookLogWhereUniqueInput
    update: XOR<FormWebhookLogUpdateWithoutWebhookInput, FormWebhookLogUncheckedUpdateWithoutWebhookInput>
    create: XOR<FormWebhookLogCreateWithoutWebhookInput, FormWebhookLogUncheckedCreateWithoutWebhookInput>
  }

  export type FormWebhookLogUpdateWithWhereUniqueWithoutWebhookInput = {
    where: FormWebhookLogWhereUniqueInput
    data: XOR<FormWebhookLogUpdateWithoutWebhookInput, FormWebhookLogUncheckedUpdateWithoutWebhookInput>
  }

  export type FormWebhookLogUpdateManyWithWhereWithoutWebhookInput = {
    where: FormWebhookLogScalarWhereInput
    data: XOR<FormWebhookLogUpdateManyMutationInput, FormWebhookLogUncheckedUpdateManyWithoutWebhookInput>
  }

  export type FormWebhookLogScalarWhereInput = {
    AND?: FormWebhookLogScalarWhereInput | FormWebhookLogScalarWhereInput[]
    OR?: FormWebhookLogScalarWhereInput[]
    NOT?: FormWebhookLogScalarWhereInput | FormWebhookLogScalarWhereInput[]
    id?: UuidFilter<"FormWebhookLog"> | string
    webhookId?: UuidFilter<"FormWebhookLog"> | string
    eventType?: StringFilter<"FormWebhookLog"> | string
    payload?: JsonFilter<"FormWebhookLog">
    statusCode?: IntNullableFilter<"FormWebhookLog"> | number | null
    response?: StringNullableFilter<"FormWebhookLog"> | string | null
    success?: BoolFilter<"FormWebhookLog"> | boolean
    error?: StringNullableFilter<"FormWebhookLog"> | string | null
    retryCount?: IntFilter<"FormWebhookLog"> | number
    duration?: IntNullableFilter<"FormWebhookLog"> | number | null
    createdAt?: DateTimeFilter<"FormWebhookLog"> | Date | string
  }

  export type FormWebhookCreateWithoutLogsInput = {
    id?: string
    name: string
    description?: string | null
    url: string
    secret: string
    events: JsonNullValueInput | InputJsonValue
    enabled?: boolean
    maxRetries?: number
    timeoutMs?: number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutFormWebhooksInput
  }

  export type FormWebhookUncheckedCreateWithoutLogsInput = {
    id?: string
    organizationId?: string | null
    name: string
    description?: string | null
    url: string
    secret: string
    events: JsonNullValueInput | InputJsonValue
    enabled?: boolean
    maxRetries?: number
    timeoutMs?: number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormWebhookCreateOrConnectWithoutLogsInput = {
    where: FormWebhookWhereUniqueInput
    create: XOR<FormWebhookCreateWithoutLogsInput, FormWebhookUncheckedCreateWithoutLogsInput>
  }

  export type FormWebhookUpsertWithoutLogsInput = {
    update: XOR<FormWebhookUpdateWithoutLogsInput, FormWebhookUncheckedUpdateWithoutLogsInput>
    create: XOR<FormWebhookCreateWithoutLogsInput, FormWebhookUncheckedCreateWithoutLogsInput>
    where?: FormWebhookWhereInput
  }

  export type FormWebhookUpdateToOneWithWhereWithoutLogsInput = {
    where?: FormWebhookWhereInput
    data: XOR<FormWebhookUpdateWithoutLogsInput, FormWebhookUncheckedUpdateWithoutLogsInput>
  }

  export type FormWebhookUpdateWithoutLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutFormWebhooksNestedInput
  }

  export type FormWebhookUncheckedUpdateWithoutLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalInstanceCreateWithoutInitiatorInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    version: ApprovalVersionCreateNestedOneWithoutInstancesInput
    nodeInstances?: ApprovalNodeInstanceCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceUncheckedCreateWithoutInitiatorInput = {
    id?: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedCreateNestedManyWithoutInstanceInput
    approvalTasks?: ApprovalTaskUncheckedCreateNestedManyWithoutInstanceInput
    callbackRetries?: CallbackRetryQueueUncheckedCreateNestedManyWithoutInstanceInput
    reminderQueues?: ReminderQueueUncheckedCreateNestedManyWithoutInstanceInput
  }

  export type ApprovalInstanceCreateOrConnectWithoutInitiatorInput = {
    where: ApprovalInstanceWhereUniqueInput
    create: XOR<ApprovalInstanceCreateWithoutInitiatorInput, ApprovalInstanceUncheckedCreateWithoutInitiatorInput>
  }

  export type ApprovalInstanceCreateManyInitiatorInputEnvelope = {
    data: ApprovalInstanceCreateManyInitiatorInput | ApprovalInstanceCreateManyInitiatorInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalTaskLogCreateWithoutOperatorInput = {
    id?: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    comment?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
    targetUser?: UserCreateNestedOneWithoutApprovalActionTargetsInput
    task: ApprovalTaskCreateNestedOneWithoutActionLogsInput
  }

  export type ApprovalTaskLogUncheckedCreateWithoutOperatorInput = {
    id?: string
    taskId: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    comment?: string | null
    targetUserId?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
  }

  export type ApprovalTaskLogCreateOrConnectWithoutOperatorInput = {
    where: ApprovalTaskLogWhereUniqueInput
    create: XOR<ApprovalTaskLogCreateWithoutOperatorInput, ApprovalTaskLogUncheckedCreateWithoutOperatorInput>
  }

  export type ApprovalTaskLogCreateManyOperatorInputEnvelope = {
    data: ApprovalTaskLogCreateManyOperatorInput | ApprovalTaskLogCreateManyOperatorInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalTaskLogCreateWithoutTargetUserInput = {
    id?: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    comment?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
    operator: UserCreateNestedOneWithoutApprovalActionLogsInput
    task: ApprovalTaskCreateNestedOneWithoutActionLogsInput
  }

  export type ApprovalTaskLogUncheckedCreateWithoutTargetUserInput = {
    id?: string
    taskId: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    operatorId: string
    comment?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
  }

  export type ApprovalTaskLogCreateOrConnectWithoutTargetUserInput = {
    where: ApprovalTaskLogWhereUniqueInput
    create: XOR<ApprovalTaskLogCreateWithoutTargetUserInput, ApprovalTaskLogUncheckedCreateWithoutTargetUserInput>
  }

  export type ApprovalTaskLogCreateManyTargetUserInputEnvelope = {
    data: ApprovalTaskLogCreateManyTargetUserInput | ApprovalTaskLogCreateManyTargetUserInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalAdminExportCreateWithoutRequesterInput = {
    id?: string
    status?: $Enums.ApprovalAdminExportStatus
    format?: string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: string | null
    fileName?: string | null
    fileSize?: bigint | number | null
    contentType?: string | null
    totalRows?: number | null
    errorMessage?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    expiresAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalAdminExportUncheckedCreateWithoutRequesterInput = {
    id?: string
    status?: $Enums.ApprovalAdminExportStatus
    format?: string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: string | null
    fileName?: string | null
    fileSize?: bigint | number | null
    contentType?: string | null
    totalRows?: number | null
    errorMessage?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    expiresAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalAdminExportCreateOrConnectWithoutRequesterInput = {
    where: ApprovalAdminExportWhereUniqueInput
    create: XOR<ApprovalAdminExportCreateWithoutRequesterInput, ApprovalAdminExportUncheckedCreateWithoutRequesterInput>
  }

  export type ApprovalAdminExportCreateManyRequesterInputEnvelope = {
    data: ApprovalAdminExportCreateManyRequesterInput | ApprovalAdminExportCreateManyRequesterInput[]
    skipDuplicates?: boolean
  }

  export type ContractRequestCreateWithoutCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    contractType: $Enums.ContractType
    partnerName: string
    partnerContact?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    workflowInstanceId?: string | null
    status?: $Enums.ContractStatus
    sealRequired?: boolean
    sealAppliedAt?: Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: Date | string | null
    startDate?: Date | string | null
    endDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ContractRequestUncheckedCreateWithoutCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    contractType: $Enums.ContractType
    partnerName: string
    partnerContact?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    workflowInstanceId?: string | null
    status?: $Enums.ContractStatus
    sealRequired?: boolean
    sealAppliedAt?: Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: Date | string | null
    startDate?: Date | string | null
    endDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ContractRequestCreateOrConnectWithoutCreatorInput = {
    where: ContractRequestWhereUniqueInput
    create: XOR<ContractRequestCreateWithoutCreatorInput, ContractRequestUncheckedCreateWithoutCreatorInput>
  }

  export type ContractRequestCreateManyCreatorInputEnvelope = {
    data: ContractRequestCreateManyCreatorInput | ContractRequestCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type ExpenseRequestCreateWithoutCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    category: $Enums.ExpenseCategory
    workflowInstanceId?: string | null
    status?: $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: ExpenseItemCreateNestedManyWithoutExpenseInput
  }

  export type ExpenseRequestUncheckedCreateWithoutCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    category: $Enums.ExpenseCategory
    workflowInstanceId?: string | null
    status?: $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: ExpenseItemUncheckedCreateNestedManyWithoutExpenseInput
  }

  export type ExpenseRequestCreateOrConnectWithoutCreatorInput = {
    where: ExpenseRequestWhereUniqueInput
    create: XOR<ExpenseRequestCreateWithoutCreatorInput, ExpenseRequestUncheckedCreateWithoutCreatorInput>
  }

  export type ExpenseRequestCreateManyCreatorInputEnvelope = {
    data: ExpenseRequestCreateManyCreatorInput | ExpenseRequestCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type PurchaseRequestCreateWithoutCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    totalAmount: Decimal | DecimalJsLike | number | string
    currency?: string
    vendorName: string
    vendorContact?: string | null
    workflowInstanceId?: string | null
    status?: $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: Date | string | null
    actualDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: PurchaseItemCreateNestedManyWithoutPurchaseInput
  }

  export type PurchaseRequestUncheckedCreateWithoutCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    totalAmount: Decimal | DecimalJsLike | number | string
    currency?: string
    vendorName: string
    vendorContact?: string | null
    workflowInstanceId?: string | null
    status?: $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: Date | string | null
    actualDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: PurchaseItemUncheckedCreateNestedManyWithoutPurchaseInput
  }

  export type PurchaseRequestCreateOrConnectWithoutCreatorInput = {
    where: PurchaseRequestWhereUniqueInput
    create: XOR<PurchaseRequestCreateWithoutCreatorInput, PurchaseRequestUncheckedCreateWithoutCreatorInput>
  }

  export type PurchaseRequestCreateManyCreatorInputEnvelope = {
    data: PurchaseRequestCreateManyCreatorInput | PurchaseRequestCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type AuditLogCreateWithoutUserInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
    databaseChanges?: AuditDatabaseChangeLogCreateNestedManyWithoutAuditLogInput
    sensitiveOps?: AuditSensitiveOperationLogCreateNestedManyWithoutAuditLogInput
  }

  export type AuditLogUncheckedCreateWithoutUserInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUncheckedCreateNestedManyWithoutAuditLogInput
    sensitiveOps?: AuditSensitiveOperationLogUncheckedCreateNestedManyWithoutAuditLogInput
  }

  export type AuditLogCreateOrConnectWithoutUserInput = {
    where: AuditLogWhereUniqueInput
    create: XOR<AuditLogCreateWithoutUserInput, AuditLogUncheckedCreateWithoutUserInput>
  }

  export type AuditLogCreateManyUserInputEnvelope = {
    data: AuditLogCreateManyUserInput | AuditLogCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type AutomationTaskCreateWithoutCreatedByInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    type: $Enums.AutomationTaskType
    status?: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: number
    retryCount?: number
    lastRunAt?: Date | string | null
    lastStatus?: $Enums.AutomationExecutionStatus | null
    nextRunAt?: Date | string | null
    totalRuns?: number
    successRuns?: number
    failedRuns?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    executions?: AutomationExecutionCreateNestedManyWithoutTaskInput
  }

  export type AutomationTaskUncheckedCreateWithoutCreatedByInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    type: $Enums.AutomationTaskType
    status?: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: number
    retryCount?: number
    lastRunAt?: Date | string | null
    lastStatus?: $Enums.AutomationExecutionStatus | null
    nextRunAt?: Date | string | null
    totalRuns?: number
    successRuns?: number
    failedRuns?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    executions?: AutomationExecutionUncheckedCreateNestedManyWithoutTaskInput
  }

  export type AutomationTaskCreateOrConnectWithoutCreatedByInput = {
    where: AutomationTaskWhereUniqueInput
    create: XOR<AutomationTaskCreateWithoutCreatedByInput, AutomationTaskUncheckedCreateWithoutCreatedByInput>
  }

  export type AutomationTaskCreateManyCreatedByInputEnvelope = {
    data: AutomationTaskCreateManyCreatedByInput | AutomationTaskCreateManyCreatedByInput[]
    skipDuplicates?: boolean
  }

  export type FormDefinitionCreateWithoutCreatorInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutFormDefinitionsInput
    updater?: UserCreateNestedOneWithoutUpdatedFormDefinitionsInput
    instances?: FormInstanceCreateNestedManyWithoutDefinitionInput
    versions?: FormVersionCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionUncheckedCreateWithoutCreatorInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    organizationId?: string | null
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutDefinitionInput
    versions?: FormVersionUncheckedCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionCreateOrConnectWithoutCreatorInput = {
    where: FormDefinitionWhereUniqueInput
    create: XOR<FormDefinitionCreateWithoutCreatorInput, FormDefinitionUncheckedCreateWithoutCreatorInput>
  }

  export type FormDefinitionCreateManyCreatorInputEnvelope = {
    data: FormDefinitionCreateManyCreatorInput | FormDefinitionCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type FormDefinitionCreateWithoutUpdaterInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization?: OrganizationCreateNestedOneWithoutFormDefinitionsInput
    creator: UserCreateNestedOneWithoutCreatedFormDefinitionsInput
    instances?: FormInstanceCreateNestedManyWithoutDefinitionInput
    versions?: FormVersionCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionUncheckedCreateWithoutUpdaterInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    organizationId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutDefinitionInput
    versions?: FormVersionUncheckedCreateNestedManyWithoutDefinitionInput
  }

  export type FormDefinitionCreateOrConnectWithoutUpdaterInput = {
    where: FormDefinitionWhereUniqueInput
    create: XOR<FormDefinitionCreateWithoutUpdaterInput, FormDefinitionUncheckedCreateWithoutUpdaterInput>
  }

  export type FormDefinitionCreateManyUpdaterInputEnvelope = {
    data: FormDefinitionCreateManyUpdaterInput | FormDefinitionCreateManyUpdaterInput[]
    skipDuplicates?: boolean
  }

  export type FormInstanceCreateWithoutCreatorInput = {
    id?: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    definition: FormDefinitionCreateNestedOneWithoutInstancesInput
    version: FormVersionCreateNestedOneWithoutInstancesInput
    snapshot?: ReleaseSnapshotCreateNestedOneWithoutInstancesInput
    submitter?: UserCreateNestedOneWithoutSubmittedFormInstancesInput
    updater?: UserCreateNestedOneWithoutUpdatedFormInstancesInput
  }

  export type FormInstanceUncheckedCreateWithoutCreatorInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceCreateOrConnectWithoutCreatorInput = {
    where: FormInstanceWhereUniqueInput
    create: XOR<FormInstanceCreateWithoutCreatorInput, FormInstanceUncheckedCreateWithoutCreatorInput>
  }

  export type FormInstanceCreateManyCreatorInputEnvelope = {
    data: FormInstanceCreateManyCreatorInput | FormInstanceCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type FormInstanceCreateWithoutSubmitterInput = {
    id?: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedFormInstancesInput
    definition: FormDefinitionCreateNestedOneWithoutInstancesInput
    version: FormVersionCreateNestedOneWithoutInstancesInput
    snapshot?: ReleaseSnapshotCreateNestedOneWithoutInstancesInput
    updater?: UserCreateNestedOneWithoutUpdatedFormInstancesInput
  }

  export type FormInstanceUncheckedCreateWithoutSubmitterInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceCreateOrConnectWithoutSubmitterInput = {
    where: FormInstanceWhereUniqueInput
    create: XOR<FormInstanceCreateWithoutSubmitterInput, FormInstanceUncheckedCreateWithoutSubmitterInput>
  }

  export type FormInstanceCreateManySubmitterInputEnvelope = {
    data: FormInstanceCreateManySubmitterInput | FormInstanceCreateManySubmitterInput[]
    skipDuplicates?: boolean
  }

  export type FormInstanceCreateWithoutUpdaterInput = {
    id?: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    creator: UserCreateNestedOneWithoutCreatedFormInstancesInput
    definition: FormDefinitionCreateNestedOneWithoutInstancesInput
    version: FormVersionCreateNestedOneWithoutInstancesInput
    snapshot?: ReleaseSnapshotCreateNestedOneWithoutInstancesInput
    submitter?: UserCreateNestedOneWithoutSubmittedFormInstancesInput
  }

  export type FormInstanceUncheckedCreateWithoutUpdaterInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceCreateOrConnectWithoutUpdaterInput = {
    where: FormInstanceWhereUniqueInput
    create: XOR<FormInstanceCreateWithoutUpdaterInput, FormInstanceUncheckedCreateWithoutUpdaterInput>
  }

  export type FormInstanceCreateManyUpdaterInputEnvelope = {
    data: FormInstanceCreateManyUpdaterInput | FormInstanceCreateManyUpdaterInput[]
    skipDuplicates?: boolean
  }

  export type FormTemplateCreateWithoutCreatorInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    updater?: UserCreateNestedOneWithoutUpdatedFormTemplatesInput
  }

  export type FormTemplateUncheckedCreateWithoutCreatorInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTemplateCreateOrConnectWithoutCreatorInput = {
    where: FormTemplateWhereUniqueInput
    create: XOR<FormTemplateCreateWithoutCreatorInput, FormTemplateUncheckedCreateWithoutCreatorInput>
  }

  export type FormTemplateCreateManyCreatorInputEnvelope = {
    data: FormTemplateCreateManyCreatorInput | FormTemplateCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type FormTemplateCreateWithoutUpdaterInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutCreatedFormTemplatesInput
  }

  export type FormTemplateUncheckedCreateWithoutUpdaterInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTemplateCreateOrConnectWithoutUpdaterInput = {
    where: FormTemplateWhereUniqueInput
    create: XOR<FormTemplateCreateWithoutUpdaterInput, FormTemplateUncheckedCreateWithoutUpdaterInput>
  }

  export type FormTemplateCreateManyUpdaterInputEnvelope = {
    data: FormTemplateCreateManyUpdaterInput | FormTemplateCreateManyUpdaterInput[]
    skipDuplicates?: boolean
  }

  export type FormVersionCreateWithoutCreatorInput = {
    id?: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    instances?: FormInstanceCreateNestedManyWithoutVersionInput
    translations?: FormTranslationCreateNestedManyWithoutVersionInput
    reviewer?: UserCreateNestedOneWithoutReviewedFormVersionsInput
    definition: FormDefinitionCreateNestedOneWithoutVersionsInput
  }

  export type FormVersionUncheckedCreateWithoutCreatorInput = {
    id?: string
    definitionId: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutVersionInput
    translations?: FormTranslationUncheckedCreateNestedManyWithoutVersionInput
  }

  export type FormVersionCreateOrConnectWithoutCreatorInput = {
    where: FormVersionWhereUniqueInput
    create: XOR<FormVersionCreateWithoutCreatorInput, FormVersionUncheckedCreateWithoutCreatorInput>
  }

  export type FormVersionCreateManyCreatorInputEnvelope = {
    data: FormVersionCreateManyCreatorInput | FormVersionCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type FormVersionCreateWithoutReviewerInput = {
    id?: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
    instances?: FormInstanceCreateNestedManyWithoutVersionInput
    translations?: FormTranslationCreateNestedManyWithoutVersionInput
    creator: UserCreateNestedOneWithoutCreatedFormVersionsInput
    definition: FormDefinitionCreateNestedOneWithoutVersionsInput
  }

  export type FormVersionUncheckedCreateWithoutReviewerInput = {
    id?: string
    definitionId: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdBy: string
    createdAt?: Date | string
    instances?: FormInstanceUncheckedCreateNestedManyWithoutVersionInput
    translations?: FormTranslationUncheckedCreateNestedManyWithoutVersionInput
  }

  export type FormVersionCreateOrConnectWithoutReviewerInput = {
    where: FormVersionWhereUniqueInput
    create: XOR<FormVersionCreateWithoutReviewerInput, FormVersionUncheckedCreateWithoutReviewerInput>
  }

  export type FormVersionCreateManyReviewerInputEnvelope = {
    data: FormVersionCreateManyReviewerInput | FormVersionCreateManyReviewerInput[]
    skipDuplicates?: boolean
  }

  export type UserRoleCreateWithoutUserInput = {
    id?: string
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
    role: RoleCreateNestedOneWithoutUsersInput
    organization?: OrganizationCreateNestedOneWithoutUserRolesInput
  }

  export type UserRoleUncheckedCreateWithoutUserInput = {
    id?: string
    roleId: string
    organizationId?: string | null
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
  }

  export type UserRoleCreateOrConnectWithoutUserInput = {
    where: UserRoleWhereUniqueInput
    create: XOR<UserRoleCreateWithoutUserInput, UserRoleUncheckedCreateWithoutUserInput>
  }

  export type UserRoleCreateManyUserInputEnvelope = {
    data: UserRoleCreateManyUserInput | UserRoleCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type WorkflowRoleUserCreateWithoutUserInput = {
    id?: string
    createdAt?: Date | string
    workflowRole: WorkflowRoleCreateNestedOneWithoutUserAssignmentsInput
  }

  export type WorkflowRoleUserUncheckedCreateWithoutUserInput = {
    id?: string
    workflowRoleId: string
    createdAt?: Date | string
  }

  export type WorkflowRoleUserCreateOrConnectWithoutUserInput = {
    where: WorkflowRoleUserWhereUniqueInput
    create: XOR<WorkflowRoleUserCreateWithoutUserInput, WorkflowRoleUserUncheckedCreateWithoutUserInput>
  }

  export type WorkflowRoleUserCreateManyUserInputEnvelope = {
    data: WorkflowRoleUserCreateManyUserInput | WorkflowRoleUserCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type UserDepartmentCreateWithoutUserInput = {
    id?: string
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutUserDepartmentsInput
    department: DepartmentCreateNestedOneWithoutUserMembershipsInput
    position?: PositionCreateNestedOneWithoutUserMembershipsInput
    manager?: UserCreateNestedOneWithoutManagedUsersInput
  }

  export type UserDepartmentUncheckedCreateWithoutUserInput = {
    id?: string
    organizationId: string
    departmentId: string
    positionId?: string | null
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentCreateOrConnectWithoutUserInput = {
    where: UserDepartmentWhereUniqueInput
    create: XOR<UserDepartmentCreateWithoutUserInput, UserDepartmentUncheckedCreateWithoutUserInput>
  }

  export type UserDepartmentCreateManyUserInputEnvelope = {
    data: UserDepartmentCreateManyUserInput | UserDepartmentCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type UserDepartmentCreateWithoutManagerInput = {
    id?: string
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutDepartmentMembershipsInput
    organization: OrganizationCreateNestedOneWithoutUserDepartmentsInput
    department: DepartmentCreateNestedOneWithoutUserMembershipsInput
    position?: PositionCreateNestedOneWithoutUserMembershipsInput
  }

  export type UserDepartmentUncheckedCreateWithoutManagerInput = {
    id?: string
    userId: string
    organizationId: string
    departmentId: string
    positionId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentCreateOrConnectWithoutManagerInput = {
    where: UserDepartmentWhereUniqueInput
    create: XOR<UserDepartmentCreateWithoutManagerInput, UserDepartmentUncheckedCreateWithoutManagerInput>
  }

  export type UserDepartmentCreateManyManagerInputEnvelope = {
    data: UserDepartmentCreateManyManagerInput | UserDepartmentCreateManyManagerInput[]
    skipDuplicates?: boolean
  }

  export type NotificationLogCreateWithoutRecipientInput = {
    id?: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    template?: NotificationTemplateCreateNestedOneWithoutLogsInput
  }

  export type NotificationLogUncheckedCreateWithoutRecipientInput = {
    id?: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    templateId?: string | null
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationLogCreateOrConnectWithoutRecipientInput = {
    where: NotificationLogWhereUniqueInput
    create: XOR<NotificationLogCreateWithoutRecipientInput, NotificationLogUncheckedCreateWithoutRecipientInput>
  }

  export type NotificationLogCreateManyRecipientInputEnvelope = {
    data: NotificationLogCreateManyRecipientInput | NotificationLogCreateManyRecipientInput[]
    skipDuplicates?: boolean
  }

  export type NotificationMessageCreateWithoutUserInput = {
    id?: string
    type: $Enums.NotificationType
    title: string
    content: string
    link?: string | null
    status?: $Enums.NotificationStatus
    createdAt?: Date | string
    readAt?: Date | string | null
  }

  export type NotificationMessageUncheckedCreateWithoutUserInput = {
    id?: string
    type: $Enums.NotificationType
    title: string
    content: string
    link?: string | null
    status?: $Enums.NotificationStatus
    createdAt?: Date | string
    readAt?: Date | string | null
  }

  export type NotificationMessageCreateOrConnectWithoutUserInput = {
    where: NotificationMessageWhereUniqueInput
    create: XOR<NotificationMessageCreateWithoutUserInput, NotificationMessageUncheckedCreateWithoutUserInput>
  }

  export type NotificationMessageCreateManyUserInputEnvelope = {
    data: NotificationMessageCreateManyUserInput | NotificationMessageCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type UserDelegationSettingCreateWithoutUserInput = {
    id?: string
    enabled?: boolean
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    delegateUser: UserCreateNestedOneWithoutDelegatedToMeInput
  }

  export type UserDelegationSettingUncheckedCreateWithoutUserInput = {
    id?: string
    enabled?: boolean
    delegateUserId: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDelegationSettingCreateOrConnectWithoutUserInput = {
    where: UserDelegationSettingWhereUniqueInput
    create: XOR<UserDelegationSettingCreateWithoutUserInput, UserDelegationSettingUncheckedCreateWithoutUserInput>
  }

  export type UserDelegationSettingCreateManyUserInputEnvelope = {
    data: UserDelegationSettingCreateManyUserInput | UserDelegationSettingCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type UserDelegationSettingCreateWithoutDelegateUserInput = {
    id?: string
    enabled?: boolean
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutDelegationSettingsInput
  }

  export type UserDelegationSettingUncheckedCreateWithoutDelegateUserInput = {
    id?: string
    userId: string
    enabled?: boolean
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDelegationSettingCreateOrConnectWithoutDelegateUserInput = {
    where: UserDelegationSettingWhereUniqueInput
    create: XOR<UserDelegationSettingCreateWithoutDelegateUserInput, UserDelegationSettingUncheckedCreateWithoutDelegateUserInput>
  }

  export type UserDelegationSettingCreateManyDelegateUserInputEnvelope = {
    data: UserDelegationSettingCreateManyDelegateUserInput | UserDelegationSettingCreateManyDelegateUserInput[]
    skipDuplicates?: boolean
  }

  export type KnowledgeArticleCreateWithoutCreatedByInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    views?: DocumentViewCreateNestedManyWithoutArticleInput
    likes?: DocumentLikeCreateNestedManyWithoutArticleInput
    comments?: DocumentCommentCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleUncheckedCreateWithoutCreatedByInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    views?: DocumentViewUncheckedCreateNestedManyWithoutArticleInput
    likes?: DocumentLikeUncheckedCreateNestedManyWithoutArticleInput
    comments?: DocumentCommentUncheckedCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleCreateOrConnectWithoutCreatedByInput = {
    where: KnowledgeArticleWhereUniqueInput
    create: XOR<KnowledgeArticleCreateWithoutCreatedByInput, KnowledgeArticleUncheckedCreateWithoutCreatedByInput>
  }

  export type KnowledgeArticleCreateManyCreatedByInputEnvelope = {
    data: KnowledgeArticleCreateManyCreatedByInput | KnowledgeArticleCreateManyCreatedByInput[]
    skipDuplicates?: boolean
  }

  export type AIQALogCreateWithoutUserInput = {
    id?: string
    question: string
    answer: string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: number | null
    modelUsed?: string | null
    tokensUsed?: number | null
    cost?: number | null
    responseTimeMs?: number | null
    feedback?: $Enums.QAFeedback | null
    feedbackComment?: string | null
    createdAt?: Date | string
  }

  export type AIQALogUncheckedCreateWithoutUserInput = {
    id?: string
    question: string
    answer: string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: number | null
    modelUsed?: string | null
    tokensUsed?: number | null
    cost?: number | null
    responseTimeMs?: number | null
    feedback?: $Enums.QAFeedback | null
    feedbackComment?: string | null
    createdAt?: Date | string
  }

  export type AIQALogCreateOrConnectWithoutUserInput = {
    where: AIQALogWhereUniqueInput
    create: XOR<AIQALogCreateWithoutUserInput, AIQALogUncheckedCreateWithoutUserInput>
  }

  export type AIQALogCreateManyUserInputEnvelope = {
    data: AIQALogCreateManyUserInput | AIQALogCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type DocumentViewCreateWithoutUserInput = {
    id?: string
    viewedAt?: Date | string
    viewDate: Date | string
    spDocument?: SPDocumentIndexCreateNestedOneWithoutViewsInput
    article?: KnowledgeArticleCreateNestedOneWithoutViewsInput
  }

  export type DocumentViewUncheckedCreateWithoutUserInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    viewedAt?: Date | string
    viewDate: Date | string
  }

  export type DocumentViewCreateOrConnectWithoutUserInput = {
    where: DocumentViewWhereUniqueInput
    create: XOR<DocumentViewCreateWithoutUserInput, DocumentViewUncheckedCreateWithoutUserInput>
  }

  export type DocumentViewCreateManyUserInputEnvelope = {
    data: DocumentViewCreateManyUserInput | DocumentViewCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type DocumentLikeCreateWithoutUserInput = {
    id?: string
    type: $Enums.LikeType
    createdAt?: Date | string
    spDocument?: SPDocumentIndexCreateNestedOneWithoutLikesInput
    article?: KnowledgeArticleCreateNestedOneWithoutLikesInput
  }

  export type DocumentLikeUncheckedCreateWithoutUserInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    type: $Enums.LikeType
    createdAt?: Date | string
  }

  export type DocumentLikeCreateOrConnectWithoutUserInput = {
    where: DocumentLikeWhereUniqueInput
    create: XOR<DocumentLikeCreateWithoutUserInput, DocumentLikeUncheckedCreateWithoutUserInput>
  }

  export type DocumentLikeCreateManyUserInputEnvelope = {
    data: DocumentLikeCreateManyUserInput | DocumentLikeCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type DocumentCommentCreateWithoutUserInput = {
    id?: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    spDocument?: SPDocumentIndexCreateNestedOneWithoutCommentsInput
    article?: KnowledgeArticleCreateNestedOneWithoutCommentsInput
    parent?: DocumentCommentCreateNestedOneWithoutRepliesInput
    replies?: DocumentCommentCreateNestedManyWithoutParentInput
    mentions?: UserMentionCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentUncheckedCreateWithoutUserInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    replies?: DocumentCommentUncheckedCreateNestedManyWithoutParentInput
    mentions?: UserMentionUncheckedCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentCreateOrConnectWithoutUserInput = {
    where: DocumentCommentWhereUniqueInput
    create: XOR<DocumentCommentCreateWithoutUserInput, DocumentCommentUncheckedCreateWithoutUserInput>
  }

  export type DocumentCommentCreateManyUserInputEnvelope = {
    data: DocumentCommentCreateManyUserInput | DocumentCommentCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type UserMentionCreateWithoutMentionedUserInput = {
    id?: string
    readAt?: Date | string | null
    createdAt?: Date | string
    comment: DocumentCommentCreateNestedOneWithoutMentionsInput
  }

  export type UserMentionUncheckedCreateWithoutMentionedUserInput = {
    id?: string
    commentId: string
    readAt?: Date | string | null
    createdAt?: Date | string
  }

  export type UserMentionCreateOrConnectWithoutMentionedUserInput = {
    where: UserMentionWhereUniqueInput
    create: XOR<UserMentionCreateWithoutMentionedUserInput, UserMentionUncheckedCreateWithoutMentionedUserInput>
  }

  export type UserMentionCreateManyMentionedUserInputEnvelope = {
    data: UserMentionCreateManyMentionedUserInput | UserMentionCreateManyMentionedUserInput[]
    skipDuplicates?: boolean
  }

  export type StrategicObjectiveAssignmentCreateWithoutAssigneeInput = {
    id?: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
    objective: StrategicObjectiveCreateNestedOneWithoutAssignmentsInput
  }

  export type StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput = {
    id?: string
    objectiveId: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StrategicObjectiveAssignmentCreateOrConnectWithoutAssigneeInput = {
    where: StrategicObjectiveAssignmentWhereUniqueInput
    create: XOR<StrategicObjectiveAssignmentCreateWithoutAssigneeInput, StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput>
  }

  export type StrategicObjectiveAssignmentCreateManyAssigneeInputEnvelope = {
    data: StrategicObjectiveAssignmentCreateManyAssigneeInput | StrategicObjectiveAssignmentCreateManyAssigneeInput[]
    skipDuplicates?: boolean
  }

  export type FeedbackCreateWithoutUserInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    resolvedAt?: Date | string | null
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    assignee?: UserCreateNestedOneWithoutAssignedFeedbacksInput
  }

  export type FeedbackUncheckedCreateWithoutUserInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    assigneeId?: string | null
    resolvedAt?: Date | string | null
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FeedbackCreateOrConnectWithoutUserInput = {
    where: FeedbackWhereUniqueInput
    create: XOR<FeedbackCreateWithoutUserInput, FeedbackUncheckedCreateWithoutUserInput>
  }

  export type FeedbackCreateManyUserInputEnvelope = {
    data: FeedbackCreateManyUserInput | FeedbackCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type FeedbackCreateWithoutAssigneeInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    resolvedAt?: Date | string | null
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    user: UserCreateNestedOneWithoutFeedbacksInput
  }

  export type FeedbackUncheckedCreateWithoutAssigneeInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    resolvedAt?: Date | string | null
    userId: string
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FeedbackCreateOrConnectWithoutAssigneeInput = {
    where: FeedbackWhereUniqueInput
    create: XOR<FeedbackCreateWithoutAssigneeInput, FeedbackUncheckedCreateWithoutAssigneeInput>
  }

  export type FeedbackCreateManyAssigneeInputEnvelope = {
    data: FeedbackCreateManyAssigneeInput | FeedbackCreateManyAssigneeInput[]
    skipDuplicates?: boolean
  }

  export type DevItemCreateWithoutOwnerInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parent?: DevItemCreateNestedOneWithoutChildrenInput
    children?: DevItemCreateNestedManyWithoutParentInput
    reporter: UserCreateNestedOneWithoutDevItemsReportedInput
    reviewer?: UserCreateNestedOneWithoutDevItemsReviewedInput
  }

  export type DevItemUncheckedCreateWithoutOwnerInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    reporterId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DevItemUncheckedCreateNestedManyWithoutParentInput
  }

  export type DevItemCreateOrConnectWithoutOwnerInput = {
    where: DevItemWhereUniqueInput
    create: XOR<DevItemCreateWithoutOwnerInput, DevItemUncheckedCreateWithoutOwnerInput>
  }

  export type DevItemCreateManyOwnerInputEnvelope = {
    data: DevItemCreateManyOwnerInput | DevItemCreateManyOwnerInput[]
    skipDuplicates?: boolean
  }

  export type DevItemCreateWithoutReporterInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parent?: DevItemCreateNestedOneWithoutChildrenInput
    children?: DevItemCreateNestedManyWithoutParentInput
    owner: UserCreateNestedOneWithoutDevItemsOwnedInput
    reviewer?: UserCreateNestedOneWithoutDevItemsReviewedInput
  }

  export type DevItemUncheckedCreateWithoutReporterInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    ownerId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DevItemUncheckedCreateNestedManyWithoutParentInput
  }

  export type DevItemCreateOrConnectWithoutReporterInput = {
    where: DevItemWhereUniqueInput
    create: XOR<DevItemCreateWithoutReporterInput, DevItemUncheckedCreateWithoutReporterInput>
  }

  export type DevItemCreateManyReporterInputEnvelope = {
    data: DevItemCreateManyReporterInput | DevItemCreateManyReporterInput[]
    skipDuplicates?: boolean
  }

  export type DevItemCreateWithoutReviewerInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parent?: DevItemCreateNestedOneWithoutChildrenInput
    children?: DevItemCreateNestedManyWithoutParentInput
    owner: UserCreateNestedOneWithoutDevItemsOwnedInput
    reporter: UserCreateNestedOneWithoutDevItemsReportedInput
  }

  export type DevItemUncheckedCreateWithoutReviewerInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    ownerId: string
    reporterId: string
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: DevItemUncheckedCreateNestedManyWithoutParentInput
  }

  export type DevItemCreateOrConnectWithoutReviewerInput = {
    where: DevItemWhereUniqueInput
    create: XOR<DevItemCreateWithoutReviewerInput, DevItemUncheckedCreateWithoutReviewerInput>
  }

  export type DevItemCreateManyReviewerInputEnvelope = {
    data: DevItemCreateManyReviewerInput | DevItemCreateManyReviewerInput[]
    skipDuplicates?: boolean
  }

  export type ReleaseNoteCreateWithoutCreatorInput = {
    id?: string
    version: string
    title: string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ReleaseNoteUncheckedCreateWithoutCreatorInput = {
    id?: string
    version: string
    title: string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ReleaseNoteCreateOrConnectWithoutCreatorInput = {
    where: ReleaseNoteWhereUniqueInput
    create: XOR<ReleaseNoteCreateWithoutCreatorInput, ReleaseNoteUncheckedCreateWithoutCreatorInput>
  }

  export type ReleaseNoteCreateManyCreatorInputEnvelope = {
    data: ReleaseNoteCreateManyCreatorInput | ReleaseNoteCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type SiteCheckpointCreateWithoutCreatorInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: SiteAttendanceEventCreateNestedManyWithoutCheckpointInput
    dailySummaries?: SiteDailySummaryCreateNestedManyWithoutCheckpointInput
    sharedPartners?: SharedCheckinPartnerCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointUncheckedCreateWithoutCreatorInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: SiteAttendanceEventUncheckedCreateNestedManyWithoutCheckpointInput
    dailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutCheckpointInput
    sharedPartners?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointCreateOrConnectWithoutCreatorInput = {
    where: SiteCheckpointWhereUniqueInput
    create: XOR<SiteCheckpointCreateWithoutCreatorInput, SiteCheckpointUncheckedCreateWithoutCreatorInput>
  }

  export type SiteCheckpointCreateManyCreatorInputEnvelope = {
    data: SiteCheckpointCreateManyCreatorInput | SiteCheckpointCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type SiteAttendanceEventCreateWithoutUserInput = {
    id?: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
    checkpoint: SiteCheckpointCreateNestedOneWithoutEventsInput
  }

  export type SiteAttendanceEventUncheckedCreateWithoutUserInput = {
    id?: string
    checkpointId: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
  }

  export type SiteAttendanceEventCreateOrConnectWithoutUserInput = {
    where: SiteAttendanceEventWhereUniqueInput
    create: XOR<SiteAttendanceEventCreateWithoutUserInput, SiteAttendanceEventUncheckedCreateWithoutUserInput>
  }

  export type SiteAttendanceEventCreateManyUserInputEnvelope = {
    data: SiteAttendanceEventCreateManyUserInput | SiteAttendanceEventCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type SiteDailySummaryCreateWithoutUserInput = {
    id?: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
    checkpoint: SiteCheckpointCreateNestedOneWithoutDailySummariesInput
  }

  export type SiteDailySummaryUncheckedCreateWithoutUserInput = {
    id?: string
    checkpointId: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
  }

  export type SiteDailySummaryCreateOrConnectWithoutUserInput = {
    where: SiteDailySummaryWhereUniqueInput
    create: XOR<SiteDailySummaryCreateWithoutUserInput, SiteDailySummaryUncheckedCreateWithoutUserInput>
  }

  export type SiteDailySummaryCreateManyUserInputEnvelope = {
    data: SiteDailySummaryCreateManyUserInput | SiteDailySummaryCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type SharedCheckinPartnerCreateWithoutCreatorInput = {
    id?: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    checkpoint: SiteCheckpointCreateNestedOneWithoutSharedPartnersInput
    updater: UserCreateNestedOneWithoutSharedCheckinPartnersUpdatedInput
  }

  export type SharedCheckinPartnerUncheckedCreateWithoutCreatorInput = {
    id?: string
    checkpointId: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    updatedBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharedCheckinPartnerCreateOrConnectWithoutCreatorInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    create: XOR<SharedCheckinPartnerCreateWithoutCreatorInput, SharedCheckinPartnerUncheckedCreateWithoutCreatorInput>
  }

  export type SharedCheckinPartnerCreateManyCreatorInputEnvelope = {
    data: SharedCheckinPartnerCreateManyCreatorInput | SharedCheckinPartnerCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type SharedCheckinPartnerCreateWithoutUpdaterInput = {
    id?: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    checkpoint: SiteCheckpointCreateNestedOneWithoutSharedPartnersInput
    creator: UserCreateNestedOneWithoutSharedCheckinPartnersCreatedInput
  }

  export type SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput = {
    id?: string
    checkpointId: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharedCheckinPartnerCreateOrConnectWithoutUpdaterInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    create: XOR<SharedCheckinPartnerCreateWithoutUpdaterInput, SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput>
  }

  export type SharedCheckinPartnerCreateManyUpdaterInputEnvelope = {
    data: SharedCheckinPartnerCreateManyUpdaterInput | SharedCheckinPartnerCreateManyUpdaterInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttendanceCreateWithoutUserInput = {
    id?: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting: MeetingCreateNestedOneWithoutAttendancesInput
  }

  export type MeetingAttendanceUncheckedCreateWithoutUserInput = {
    id?: string
    meetingId: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceCreateOrConnectWithoutUserInput = {
    where: MeetingAttendanceWhereUniqueInput
    create: XOR<MeetingAttendanceCreateWithoutUserInput, MeetingAttendanceUncheckedCreateWithoutUserInput>
  }

  export type MeetingAttendanceCreateManyUserInputEnvelope = {
    data: MeetingAttendanceCreateManyUserInput | MeetingAttendanceCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type MeetingRequiredAttendeeCreateWithoutUserInput = {
    id?: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
    meeting: MeetingCreateNestedOneWithoutRequiredAttendeesInput
  }

  export type MeetingRequiredAttendeeUncheckedCreateWithoutUserInput = {
    id?: string
    meetingId: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
  }

  export type MeetingRequiredAttendeeCreateOrConnectWithoutUserInput = {
    where: MeetingRequiredAttendeeWhereUniqueInput
    create: XOR<MeetingRequiredAttendeeCreateWithoutUserInput, MeetingRequiredAttendeeUncheckedCreateWithoutUserInput>
  }

  export type MeetingRequiredAttendeeCreateManyUserInputEnvelope = {
    data: MeetingRequiredAttendeeCreateManyUserInput | MeetingRequiredAttendeeCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type MeetingTemplateCreateWithoutCreatorInput = {
    id?: string
    name: string
    title: string
    description?: string | null
    duration: number
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isPublic?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    templateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutTemplateInput
  }

  export type MeetingTemplateUncheckedCreateWithoutCreatorInput = {
    id?: string
    name: string
    title: string
    description?: string | null
    duration: number
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isPublic?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    templateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutTemplateInput
  }

  export type MeetingTemplateCreateOrConnectWithoutCreatorInput = {
    where: MeetingTemplateWhereUniqueInput
    create: XOR<MeetingTemplateCreateWithoutCreatorInput, MeetingTemplateUncheckedCreateWithoutCreatorInput>
  }

  export type MeetingTemplateCreateManyCreatorInputEnvelope = {
    data: MeetingTemplateCreateManyCreatorInput | MeetingTemplateCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type MeetingTemplateAttendeeCreateWithoutUserInput = {
    id?: string
    createdAt?: Date | string
    template: MeetingTemplateCreateNestedOneWithoutTemplateAttendeesInput
  }

  export type MeetingTemplateAttendeeUncheckedCreateWithoutUserInput = {
    id?: string
    templateId: string
    createdAt?: Date | string
  }

  export type MeetingTemplateAttendeeCreateOrConnectWithoutUserInput = {
    where: MeetingTemplateAttendeeWhereUniqueInput
    create: XOR<MeetingTemplateAttendeeCreateWithoutUserInput, MeetingTemplateAttendeeUncheckedCreateWithoutUserInput>
  }

  export type MeetingTemplateAttendeeCreateManyUserInputEnvelope = {
    data: MeetingTemplateAttendeeCreateManyUserInput | MeetingTemplateAttendeeCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttendanceLeaveRecordCreateWithoutUserInput = {
    id?: string
    type: $Enums.LeaveType
    startDate: Date | string
    endDate: Date | string
    reason?: string | null
    status?: $Enums.LeaveStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput = {
    id?: string
    type: $Enums.LeaveType
    startDate: Date | string
    endDate: Date | string
    reason?: string | null
    status?: $Enums.LeaveStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceLeaveRecordCreateOrConnectWithoutUserInput = {
    where: MeetingAttendanceLeaveRecordWhereUniqueInput
    create: XOR<MeetingAttendanceLeaveRecordCreateWithoutUserInput, MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput>
  }

  export type MeetingAttendanceLeaveRecordCreateManyUserInputEnvelope = {
    data: MeetingAttendanceLeaveRecordCreateManyUserInput | MeetingAttendanceLeaveRecordCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttendanceAuditLogCreateWithoutUserInput = {
    id?: string
    userEmail: string
    userName: string
    userRole: string
    action: string
    resource: string
    resourceId?: string | null
    method: string
    endpoint: string
    statusCode: number
    source?: string
    deviceId?: string | null
    sessionId?: string | null
    requestId?: string | null
    traceId?: string | null
    geoLocation?: string | null
    ipAddress?: string | null
    userAgent?: string | null
    fieldDiffs?: string | null
    requestBody?: string | null
    changes?: string | null
    reasonCode?: string | null
    reasonText?: string | null
    errorMessage?: string | null
    prevHash?: string | null
    hash?: string | null
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: Date | string | null
    duration?: number | null
    createdAt?: Date | string
  }

  export type MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput = {
    id?: string
    userEmail: string
    userName: string
    userRole: string
    action: string
    resource: string
    resourceId?: string | null
    method: string
    endpoint: string
    statusCode: number
    source?: string
    deviceId?: string | null
    sessionId?: string | null
    requestId?: string | null
    traceId?: string | null
    geoLocation?: string | null
    ipAddress?: string | null
    userAgent?: string | null
    fieldDiffs?: string | null
    requestBody?: string | null
    changes?: string | null
    reasonCode?: string | null
    reasonText?: string | null
    errorMessage?: string | null
    prevHash?: string | null
    hash?: string | null
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: Date | string | null
    duration?: number | null
    createdAt?: Date | string
  }

  export type MeetingAttendanceAuditLogCreateOrConnectWithoutUserInput = {
    where: MeetingAttendanceAuditLogWhereUniqueInput
    create: XOR<MeetingAttendanceAuditLogCreateWithoutUserInput, MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput>
  }

  export type MeetingAttendanceAuditLogCreateManyUserInputEnvelope = {
    data: MeetingAttendanceAuditLogCreateManyUserInput | MeetingAttendanceAuditLogCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type MeetingCreateWithoutCreatorInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput
    series?: MeetingSeriesCreateNestedOneWithoutMeetingsInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateWithoutCreatorInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingCreateOrConnectWithoutCreatorInput = {
    where: MeetingWhereUniqueInput
    create: XOR<MeetingCreateWithoutCreatorInput, MeetingUncheckedCreateWithoutCreatorInput>
  }

  export type MeetingCreateManyCreatorInputEnvelope = {
    data: MeetingCreateManyCreatorInput | MeetingCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type MeetingSeriesCreateWithoutCreatorInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    meetings?: MeetingCreateNestedManyWithoutSeriesInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesUncheckedCreateWithoutCreatorInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    meetings?: MeetingUncheckedCreateNestedManyWithoutSeriesInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesCreateOrConnectWithoutCreatorInput = {
    where: MeetingSeriesWhereUniqueInput
    create: XOR<MeetingSeriesCreateWithoutCreatorInput, MeetingSeriesUncheckedCreateWithoutCreatorInput>
  }

  export type MeetingSeriesCreateManyCreatorInputEnvelope = {
    data: MeetingSeriesCreateManyCreatorInput | MeetingSeriesCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type MeetingSeriesAttendeePreferenceCreateWithoutUserInput = {
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    series: MeetingSeriesCreateNestedOneWithoutAttendeePreferencesInput
  }

  export type MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput = {
    seriesId: string
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesAttendeePreferenceCreateOrConnectWithoutUserInput = {
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
    create: XOR<MeetingSeriesAttendeePreferenceCreateWithoutUserInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput>
  }

  export type MeetingSeriesAttendeePreferenceCreateManyUserInputEnvelope = {
    data: MeetingSeriesAttendeePreferenceCreateManyUserInput | MeetingSeriesAttendeePreferenceCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type MeetingSeriesAttendeeExceptionCreateWithoutUserInput = {
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
    series: MeetingSeriesCreateNestedOneWithoutAttendeeExceptionsInput
  }

  export type MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput = {
    seriesId: string
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
  }

  export type MeetingSeriesAttendeeExceptionCreateOrConnectWithoutUserInput = {
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
    create: XOR<MeetingSeriesAttendeeExceptionCreateWithoutUserInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput>
  }

  export type MeetingSeriesAttendeeExceptionCreateManyUserInputEnvelope = {
    data: MeetingSeriesAttendeeExceptionCreateManyUserInput | MeetingSeriesAttendeeExceptionCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaSectionCreateWithoutCreatedByInput = {
    id?: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    meeting: MeetingCreateNestedOneWithoutAgendaSectionsInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaSectionsInput
    items?: MeetingAgendaItemCreateNestedManyWithoutSectionInput
  }

  export type MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput = {
    id?: string
    meetingId: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: MeetingAgendaItemUncheckedCreateNestedManyWithoutSectionInput
  }

  export type MeetingAgendaSectionCreateOrConnectWithoutCreatedByInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    create: XOR<MeetingAgendaSectionCreateWithoutCreatedByInput, MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAgendaSectionCreateManyCreatedByInputEnvelope = {
    data: MeetingAgendaSectionCreateManyCreatedByInput | MeetingAgendaSectionCreateManyCreatedByInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemCreateWithoutCreatedByInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    section: MeetingAgendaSectionCreateNestedOneWithoutItemsInput
    presenter?: UserCreateNestedOneWithoutAgendaItemsPresentedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemsInput
    uploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemUncheckedCreateWithoutCreatedByInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemCreateOrConnectWithoutCreatedByInput = {
    where: MeetingAgendaItemWhereUniqueInput
    create: XOR<MeetingAgendaItemCreateWithoutCreatedByInput, MeetingAgendaItemUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemCreateManyCreatedByInputEnvelope = {
    data: MeetingAgendaItemCreateManyCreatedByInput | MeetingAgendaItemCreateManyCreatedByInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemCreateWithoutPresenterInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    section: MeetingAgendaSectionCreateNestedOneWithoutItemsInput
    createdBy: UserCreateNestedOneWithoutAgendaItemsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemsInput
    uploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemUncheckedCreateWithoutPresenterInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemCreateOrConnectWithoutPresenterInput = {
    where: MeetingAgendaItemWhereUniqueInput
    create: XOR<MeetingAgendaItemCreateWithoutPresenterInput, MeetingAgendaItemUncheckedCreateWithoutPresenterInput>
  }

  export type MeetingAgendaItemCreateManyPresenterInputEnvelope = {
    data: MeetingAgendaItemCreateManyPresenterInput | MeetingAgendaItemCreateManyPresenterInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput = {
    id?: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutUploadTasksInput
    assignedBy: UserCreateNestedOneWithoutUploadTasksAssignedByInput
    createdBy: UserCreateNestedOneWithoutUploadTasksCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemUploadTasksInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput = {
    id?: string
    agendaItemId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssigneeInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput>
  }

  export type MeetingAgendaItemUploadTaskCreateManyAssigneeInputEnvelope = {
    data: MeetingAgendaItemUploadTaskCreateManyAssigneeInput | MeetingAgendaItemUploadTaskCreateManyAssigneeInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput = {
    id?: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutUploadTasksInput
    assignee: UserCreateNestedOneWithoutUploadTasksAssignedInput
    createdBy: UserCreateNestedOneWithoutUploadTasksCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemUploadTasksInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput = {
    id?: string
    agendaItemId: string
    assigneeUserId: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateOrConnectWithoutAssignedByInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput>
  }

  export type MeetingAgendaItemUploadTaskCreateManyAssignedByInputEnvelope = {
    data: MeetingAgendaItemUploadTaskCreateManyAssignedByInput | MeetingAgendaItemUploadTaskCreateManyAssignedByInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput = {
    id?: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutUploadTasksInput
    assignee: UserCreateNestedOneWithoutUploadTasksAssignedInput
    assignedBy: UserCreateNestedOneWithoutUploadTasksAssignedByInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemUploadTasksInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput = {
    id?: string
    agendaItemId: string
    assigneeUserId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateOrConnectWithoutCreatedByInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemUploadTaskCreateManyCreatedByInputEnvelope = {
    data: MeetingAgendaItemUploadTaskCreateManyCreatedByInput | MeetingAgendaItemUploadTaskCreateManyCreatedByInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemAttachmentCreateWithoutUploadedByInput = {
    id?: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutAttachmentsInput
    createdBy: UserCreateNestedOneWithoutAgendaAttachmentsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemAttachmentsInput
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput = {
    id?: string
    agendaItemId: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateOrConnectWithoutUploadedByInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    create: XOR<MeetingAgendaItemAttachmentCreateWithoutUploadedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput>
  }

  export type MeetingAgendaItemAttachmentCreateManyUploadedByInputEnvelope = {
    data: MeetingAgendaItemAttachmentCreateManyUploadedByInput | MeetingAgendaItemAttachmentCreateManyUploadedByInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemAttachmentCreateWithoutCreatedByInput = {
    id?: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    agendaItem: MeetingAgendaItemCreateNestedOneWithoutAttachmentsInput
    uploadedBy: UserCreateNestedOneWithoutAgendaAttachmentsUploadedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemAttachmentsInput
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput = {
    id?: string
    agendaItemId: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateOrConnectWithoutCreatedByInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    create: XOR<MeetingAgendaItemAttachmentCreateWithoutCreatedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemAttachmentCreateManyCreatedByInputEnvelope = {
    data: MeetingAgendaItemAttachmentCreateManyCreatedByInput | MeetingAgendaItemAttachmentCreateManyCreatedByInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttachmentCreateWithoutUploadedByInput = {
    id?: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    meeting: MeetingCreateNestedOneWithoutAttachmentsInput
    createdBy: UserCreateNestedOneWithoutMeetingAttachmentsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAttachmentsInput
  }

  export type MeetingAttachmentUncheckedCreateWithoutUploadedByInput = {
    id?: string
    meetingId: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentCreateOrConnectWithoutUploadedByInput = {
    where: MeetingAttachmentWhereUniqueInput
    create: XOR<MeetingAttachmentCreateWithoutUploadedByInput, MeetingAttachmentUncheckedCreateWithoutUploadedByInput>
  }

  export type MeetingAttachmentCreateManyUploadedByInputEnvelope = {
    data: MeetingAttachmentCreateManyUploadedByInput | MeetingAttachmentCreateManyUploadedByInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttachmentCreateWithoutCreatedByInput = {
    id?: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    meeting: MeetingCreateNestedOneWithoutAttachmentsInput
    uploadedBy: UserCreateNestedOneWithoutMeetingAttachmentsUploadedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAttachmentsInput
  }

  export type MeetingAttachmentUncheckedCreateWithoutCreatedByInput = {
    id?: string
    meetingId: string
    uploadedById: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentCreateOrConnectWithoutCreatedByInput = {
    where: MeetingAttachmentWhereUniqueInput
    create: XOR<MeetingAttachmentCreateWithoutCreatedByInput, MeetingAttachmentUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAttachmentCreateManyCreatedByInputEnvelope = {
    data: MeetingAttachmentCreateManyCreatedByInput | MeetingAttachmentCreateManyCreatedByInput[]
    skipDuplicates?: boolean
  }

  export type AIToolGrantUserCreateWithoutUserInput = {
    id?: string
    toolName: string
    effect?: string
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AIToolGrantUserUncheckedCreateWithoutUserInput = {
    id?: string
    toolName: string
    effect?: string
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AIToolGrantUserCreateOrConnectWithoutUserInput = {
    where: AIToolGrantUserWhereUniqueInput
    create: XOR<AIToolGrantUserCreateWithoutUserInput, AIToolGrantUserUncheckedCreateWithoutUserInput>
  }

  export type AIToolGrantUserCreateManyUserInputEnvelope = {
    data: AIToolGrantUserCreateManyUserInput | AIToolGrantUserCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type AdpPtoScheduleCreateWithoutUserInput = {
    id?: string
    adpAoid: string
    leaveDate: Date | string
    startTime: Date | string
    endTime: Date | string
    adpEntryId: string
    syncedAt?: Date | string
  }

  export type AdpPtoScheduleUncheckedCreateWithoutUserInput = {
    id?: string
    adpAoid: string
    leaveDate: Date | string
    startTime: Date | string
    endTime: Date | string
    adpEntryId: string
    syncedAt?: Date | string
  }

  export type AdpPtoScheduleCreateOrConnectWithoutUserInput = {
    where: AdpPtoScheduleWhereUniqueInput
    create: XOR<AdpPtoScheduleCreateWithoutUserInput, AdpPtoScheduleUncheckedCreateWithoutUserInput>
  }

  export type AdpPtoScheduleCreateManyUserInputEnvelope = {
    data: AdpPtoScheduleCreateManyUserInput | AdpPtoScheduleCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type EmployeeSlugBindingCreateWithoutUserInput = {
    id?: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    apps?: InternalAppCreateNestedManyWithoutOwnerBindingInput
    tokens?: InternalAppEmployeeTokenCreateNestedManyWithoutBindingInput
  }

  export type EmployeeSlugBindingUncheckedCreateWithoutUserInput = {
    id?: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    apps?: InternalAppUncheckedCreateNestedManyWithoutOwnerBindingInput
    tokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutBindingInput
  }

  export type EmployeeSlugBindingCreateOrConnectWithoutUserInput = {
    where: EmployeeSlugBindingWhereUniqueInput
    create: XOR<EmployeeSlugBindingCreateWithoutUserInput, EmployeeSlugBindingUncheckedCreateWithoutUserInput>
  }

  export type InternalAppCreateWithoutCreatorInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    ownerBinding: EmployeeSlugBindingCreateNestedOneWithoutAppsInput
    forceDisabler?: UserCreateNestedOneWithoutInternalAppsForceDisabledInput
    deployments?: InternalAppDeploymentCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarCreateNestedManyWithoutAppInput
    events?: InternalAppEventCreateNestedManyWithoutAppInput
  }

  export type InternalAppUncheckedCreateWithoutCreatorInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deployments?: InternalAppDeploymentUncheckedCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarUncheckedCreateNestedManyWithoutAppInput
    events?: InternalAppEventUncheckedCreateNestedManyWithoutAppInput
  }

  export type InternalAppCreateOrConnectWithoutCreatorInput = {
    where: InternalAppWhereUniqueInput
    create: XOR<InternalAppCreateWithoutCreatorInput, InternalAppUncheckedCreateWithoutCreatorInput>
  }

  export type InternalAppCreateManyCreatorInputEnvelope = {
    data: InternalAppCreateManyCreatorInput | InternalAppCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type InternalAppCreateWithoutForceDisablerInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    ownerBinding: EmployeeSlugBindingCreateNestedOneWithoutAppsInput
    creator: UserCreateNestedOneWithoutInternalAppsCreatedInput
    deployments?: InternalAppDeploymentCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarCreateNestedManyWithoutAppInput
    events?: InternalAppEventCreateNestedManyWithoutAppInput
  }

  export type InternalAppUncheckedCreateWithoutForceDisablerInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deployments?: InternalAppDeploymentUncheckedCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarUncheckedCreateNestedManyWithoutAppInput
    events?: InternalAppEventUncheckedCreateNestedManyWithoutAppInput
  }

  export type InternalAppCreateOrConnectWithoutForceDisablerInput = {
    where: InternalAppWhereUniqueInput
    create: XOR<InternalAppCreateWithoutForceDisablerInput, InternalAppUncheckedCreateWithoutForceDisablerInput>
  }

  export type InternalAppCreateManyForceDisablerInputEnvelope = {
    data: InternalAppCreateManyForceDisablerInput | InternalAppCreateManyForceDisablerInput[]
    skipDuplicates?: boolean
  }

  export type InternalAppDeploymentCreateWithoutCreatorInput = {
    id?: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    app: InternalAppCreateNestedOneWithoutDeploymentsInput
  }

  export type InternalAppDeploymentUncheckedCreateWithoutCreatorInput = {
    id?: string
    appId: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppDeploymentCreateOrConnectWithoutCreatorInput = {
    where: InternalAppDeploymentWhereUniqueInput
    create: XOR<InternalAppDeploymentCreateWithoutCreatorInput, InternalAppDeploymentUncheckedCreateWithoutCreatorInput>
  }

  export type InternalAppDeploymentCreateManyCreatorInputEnvelope = {
    data: InternalAppDeploymentCreateManyCreatorInput | InternalAppDeploymentCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type InternalAppEnvVarCreateWithoutCreatorInput = {
    id?: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    app: InternalAppCreateNestedOneWithoutEnvVarsInput
  }

  export type InternalAppEnvVarUncheckedCreateWithoutCreatorInput = {
    id?: string
    appId: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEnvVarCreateOrConnectWithoutCreatorInput = {
    where: InternalAppEnvVarWhereUniqueInput
    create: XOR<InternalAppEnvVarCreateWithoutCreatorInput, InternalAppEnvVarUncheckedCreateWithoutCreatorInput>
  }

  export type InternalAppEnvVarCreateManyCreatorInputEnvelope = {
    data: InternalAppEnvVarCreateManyCreatorInput | InternalAppEnvVarCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type InternalAppEmployeeTokenCreateWithoutCreatorInput = {
    id?: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    binding: EmployeeSlugBindingCreateNestedOneWithoutTokensInput
  }

  export type InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput = {
    id?: string
    employeeSlug: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEmployeeTokenCreateOrConnectWithoutCreatorInput = {
    where: InternalAppEmployeeTokenWhereUniqueInput
    create: XOR<InternalAppEmployeeTokenCreateWithoutCreatorInput, InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput>
  }

  export type InternalAppEmployeeTokenCreateManyCreatorInputEnvelope = {
    data: InternalAppEmployeeTokenCreateManyCreatorInput | InternalAppEmployeeTokenCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type InternalAppEventCreateWithoutActorInput = {
    id?: string
    employeeSlug?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
    app?: InternalAppCreateNestedOneWithoutEventsInput
  }

  export type InternalAppEventUncheckedCreateWithoutActorInput = {
    id?: string
    appId?: string | null
    employeeSlug?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
  }

  export type InternalAppEventCreateOrConnectWithoutActorInput = {
    where: InternalAppEventWhereUniqueInput
    create: XOR<InternalAppEventCreateWithoutActorInput, InternalAppEventUncheckedCreateWithoutActorInput>
  }

  export type InternalAppEventCreateManyActorInputEnvelope = {
    data: InternalAppEventCreateManyActorInput | InternalAppEventCreateManyActorInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageTokenCreateWithoutUserInput = {
    id?: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    revokedBy?: UserCreateNestedOneWithoutAiUsageTokensRevokedInput
    organization: OrganizationCreateNestedOneWithoutAiUsageTokensInput
  }

  export type AiUsageTokenUncheckedCreateWithoutUserInput = {
    id?: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    revokedById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageTokenCreateOrConnectWithoutUserInput = {
    where: AiUsageTokenWhereUniqueInput
    create: XOR<AiUsageTokenCreateWithoutUserInput, AiUsageTokenUncheckedCreateWithoutUserInput>
  }

  export type AiUsageTokenCreateManyUserInputEnvelope = {
    data: AiUsageTokenCreateManyUserInput | AiUsageTokenCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageTokenCreateWithoutRevokedByInput = {
    id?: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageTokensInput
    organization: OrganizationCreateNestedOneWithoutAiUsageTokensInput
  }

  export type AiUsageTokenUncheckedCreateWithoutRevokedByInput = {
    id?: string
    userId: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageTokenCreateOrConnectWithoutRevokedByInput = {
    where: AiUsageTokenWhereUniqueInput
    create: XOR<AiUsageTokenCreateWithoutRevokedByInput, AiUsageTokenUncheckedCreateWithoutRevokedByInput>
  }

  export type AiUsageTokenCreateManyRevokedByInputEnvelope = {
    data: AiUsageTokenCreateManyRevokedByInput | AiUsageTokenCreateManyRevokedByInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageDeviceCreateWithoutUserInput = {
    id?: string
    deviceId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedReason?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    blockedBy?: UserCreateNestedOneWithoutAiUsageDevicesBlockedInput
    organization: OrganizationCreateNestedOneWithoutAiUsageDevicesInput
    events?: AiUsageEventCreateNestedManyWithoutDeviceInput
  }

  export type AiUsageDeviceUncheckedCreateWithoutUserInput = {
    id?: string
    deviceId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedById?: string | null
    blockedReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: AiUsageEventUncheckedCreateNestedManyWithoutDeviceInput
  }

  export type AiUsageDeviceCreateOrConnectWithoutUserInput = {
    where: AiUsageDeviceWhereUniqueInput
    create: XOR<AiUsageDeviceCreateWithoutUserInput, AiUsageDeviceUncheckedCreateWithoutUserInput>
  }

  export type AiUsageDeviceCreateManyUserInputEnvelope = {
    data: AiUsageDeviceCreateManyUserInput | AiUsageDeviceCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageDeviceCreateWithoutBlockedByInput = {
    id?: string
    deviceId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedReason?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutAiUsageDevicesInput
    organization: OrganizationCreateNestedOneWithoutAiUsageDevicesInput
    events?: AiUsageEventCreateNestedManyWithoutDeviceInput
  }

  export type AiUsageDeviceUncheckedCreateWithoutBlockedByInput = {
    id?: string
    deviceId: string
    userId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: AiUsageEventUncheckedCreateNestedManyWithoutDeviceInput
  }

  export type AiUsageDeviceCreateOrConnectWithoutBlockedByInput = {
    where: AiUsageDeviceWhereUniqueInput
    create: XOR<AiUsageDeviceCreateWithoutBlockedByInput, AiUsageDeviceUncheckedCreateWithoutBlockedByInput>
  }

  export type AiUsageDeviceCreateManyBlockedByInputEnvelope = {
    data: AiUsageDeviceCreateManyBlockedByInput | AiUsageDeviceCreateManyBlockedByInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageEventCreateWithoutUserInput = {
    id?: string
    rawMessageId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    device: AiUsageDeviceCreateNestedOneWithoutEventsInput
    organization: OrganizationCreateNestedOneWithoutAiUsageEventsInput
  }

  export type AiUsageEventUncheckedCreateWithoutUserInput = {
    id?: string
    rawMessageId: string
    deviceId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventCreateOrConnectWithoutUserInput = {
    where: AiUsageEventWhereUniqueInput
    create: XOR<AiUsageEventCreateWithoutUserInput, AiUsageEventUncheckedCreateWithoutUserInput>
  }

  export type AiUsageEventCreateManyUserInputEnvelope = {
    data: AiUsageEventCreateManyUserInput | AiUsageEventCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type AiUsageDailyRollupCreateWithoutUserInput = {
    id?: string
    date: Date | string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    organization: OrganizationCreateNestedOneWithoutAiUsageRollupsInput
  }

  export type AiUsageDailyRollupUncheckedCreateWithoutUserInput = {
    id?: string
    date: Date | string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDailyRollupCreateOrConnectWithoutUserInput = {
    where: AiUsageDailyRollupWhereUniqueInput
    create: XOR<AiUsageDailyRollupCreateWithoutUserInput, AiUsageDailyRollupUncheckedCreateWithoutUserInput>
  }

  export type AiUsageDailyRollupCreateManyUserInputEnvelope = {
    data: AiUsageDailyRollupCreateManyUserInput | AiUsageDailyRollupCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type ApprovalInstanceUpsertWithWhereUniqueWithoutInitiatorInput = {
    where: ApprovalInstanceWhereUniqueInput
    update: XOR<ApprovalInstanceUpdateWithoutInitiatorInput, ApprovalInstanceUncheckedUpdateWithoutInitiatorInput>
    create: XOR<ApprovalInstanceCreateWithoutInitiatorInput, ApprovalInstanceUncheckedCreateWithoutInitiatorInput>
  }

  export type ApprovalInstanceUpdateWithWhereUniqueWithoutInitiatorInput = {
    where: ApprovalInstanceWhereUniqueInput
    data: XOR<ApprovalInstanceUpdateWithoutInitiatorInput, ApprovalInstanceUncheckedUpdateWithoutInitiatorInput>
  }

  export type ApprovalInstanceUpdateManyWithWhereWithoutInitiatorInput = {
    where: ApprovalInstanceScalarWhereInput
    data: XOR<ApprovalInstanceUpdateManyMutationInput, ApprovalInstanceUncheckedUpdateManyWithoutInitiatorInput>
  }

  export type ApprovalTaskLogUpsertWithWhereUniqueWithoutOperatorInput = {
    where: ApprovalTaskLogWhereUniqueInput
    update: XOR<ApprovalTaskLogUpdateWithoutOperatorInput, ApprovalTaskLogUncheckedUpdateWithoutOperatorInput>
    create: XOR<ApprovalTaskLogCreateWithoutOperatorInput, ApprovalTaskLogUncheckedCreateWithoutOperatorInput>
  }

  export type ApprovalTaskLogUpdateWithWhereUniqueWithoutOperatorInput = {
    where: ApprovalTaskLogWhereUniqueInput
    data: XOR<ApprovalTaskLogUpdateWithoutOperatorInput, ApprovalTaskLogUncheckedUpdateWithoutOperatorInput>
  }

  export type ApprovalTaskLogUpdateManyWithWhereWithoutOperatorInput = {
    where: ApprovalTaskLogScalarWhereInput
    data: XOR<ApprovalTaskLogUpdateManyMutationInput, ApprovalTaskLogUncheckedUpdateManyWithoutOperatorInput>
  }

  export type ApprovalTaskLogUpsertWithWhereUniqueWithoutTargetUserInput = {
    where: ApprovalTaskLogWhereUniqueInput
    update: XOR<ApprovalTaskLogUpdateWithoutTargetUserInput, ApprovalTaskLogUncheckedUpdateWithoutTargetUserInput>
    create: XOR<ApprovalTaskLogCreateWithoutTargetUserInput, ApprovalTaskLogUncheckedCreateWithoutTargetUserInput>
  }

  export type ApprovalTaskLogUpdateWithWhereUniqueWithoutTargetUserInput = {
    where: ApprovalTaskLogWhereUniqueInput
    data: XOR<ApprovalTaskLogUpdateWithoutTargetUserInput, ApprovalTaskLogUncheckedUpdateWithoutTargetUserInput>
  }

  export type ApprovalTaskLogUpdateManyWithWhereWithoutTargetUserInput = {
    where: ApprovalTaskLogScalarWhereInput
    data: XOR<ApprovalTaskLogUpdateManyMutationInput, ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserInput>
  }

  export type ApprovalAdminExportUpsertWithWhereUniqueWithoutRequesterInput = {
    where: ApprovalAdminExportWhereUniqueInput
    update: XOR<ApprovalAdminExportUpdateWithoutRequesterInput, ApprovalAdminExportUncheckedUpdateWithoutRequesterInput>
    create: XOR<ApprovalAdminExportCreateWithoutRequesterInput, ApprovalAdminExportUncheckedCreateWithoutRequesterInput>
  }

  export type ApprovalAdminExportUpdateWithWhereUniqueWithoutRequesterInput = {
    where: ApprovalAdminExportWhereUniqueInput
    data: XOR<ApprovalAdminExportUpdateWithoutRequesterInput, ApprovalAdminExportUncheckedUpdateWithoutRequesterInput>
  }

  export type ApprovalAdminExportUpdateManyWithWhereWithoutRequesterInput = {
    where: ApprovalAdminExportScalarWhereInput
    data: XOR<ApprovalAdminExportUpdateManyMutationInput, ApprovalAdminExportUncheckedUpdateManyWithoutRequesterInput>
  }

  export type ApprovalAdminExportScalarWhereInput = {
    AND?: ApprovalAdminExportScalarWhereInput | ApprovalAdminExportScalarWhereInput[]
    OR?: ApprovalAdminExportScalarWhereInput[]
    NOT?: ApprovalAdminExportScalarWhereInput | ApprovalAdminExportScalarWhereInput[]
    id?: UuidFilter<"ApprovalAdminExport"> | string
    status?: EnumApprovalAdminExportStatusFilter<"ApprovalAdminExport"> | $Enums.ApprovalAdminExportStatus
    format?: StringFilter<"ApprovalAdminExport"> | string
    requestedBy?: UuidFilter<"ApprovalAdminExport"> | string
    filters?: JsonFilter<"ApprovalAdminExport">
    fileKey?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    fileName?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    fileSize?: BigIntNullableFilter<"ApprovalAdminExport"> | bigint | number | null
    contentType?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    totalRows?: IntNullableFilter<"ApprovalAdminExport"> | number | null
    errorMessage?: StringNullableFilter<"ApprovalAdminExport"> | string | null
    startedAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    completedAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    expiresAt?: DateTimeNullableFilter<"ApprovalAdminExport"> | Date | string | null
    createdAt?: DateTimeFilter<"ApprovalAdminExport"> | Date | string
    updatedAt?: DateTimeFilter<"ApprovalAdminExport"> | Date | string
  }

  export type ContractRequestUpsertWithWhereUniqueWithoutCreatorInput = {
    where: ContractRequestWhereUniqueInput
    update: XOR<ContractRequestUpdateWithoutCreatorInput, ContractRequestUncheckedUpdateWithoutCreatorInput>
    create: XOR<ContractRequestCreateWithoutCreatorInput, ContractRequestUncheckedCreateWithoutCreatorInput>
  }

  export type ContractRequestUpdateWithWhereUniqueWithoutCreatorInput = {
    where: ContractRequestWhereUniqueInput
    data: XOR<ContractRequestUpdateWithoutCreatorInput, ContractRequestUncheckedUpdateWithoutCreatorInput>
  }

  export type ContractRequestUpdateManyWithWhereWithoutCreatorInput = {
    where: ContractRequestScalarWhereInput
    data: XOR<ContractRequestUpdateManyMutationInput, ContractRequestUncheckedUpdateManyWithoutCreatorInput>
  }

  export type ContractRequestScalarWhereInput = {
    AND?: ContractRequestScalarWhereInput | ContractRequestScalarWhereInput[]
    OR?: ContractRequestScalarWhereInput[]
    NOT?: ContractRequestScalarWhereInput | ContractRequestScalarWhereInput[]
    id?: UuidFilter<"ContractRequest"> | string
    code?: StringFilter<"ContractRequest"> | string
    title?: StringFilter<"ContractRequest"> | string
    description?: StringNullableFilter<"ContractRequest"> | string | null
    creatorId?: UuidFilter<"ContractRequest"> | string
    contractType?: EnumContractTypeFilter<"ContractRequest"> | $Enums.ContractType
    partnerName?: StringFilter<"ContractRequest"> | string
    partnerContact?: StringNullableFilter<"ContractRequest"> | string | null
    amount?: DecimalFilter<"ContractRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"ContractRequest"> | string
    workflowInstanceId?: UuidNullableFilter<"ContractRequest"> | string | null
    status?: EnumContractStatusFilter<"ContractRequest"> | $Enums.ContractStatus
    sealRequired?: BoolFilter<"ContractRequest"> | boolean
    sealAppliedAt?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    attachments?: JsonNullableFilter<"ContractRequest">
    signDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    startDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    endDate?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
    createdAt?: DateTimeFilter<"ContractRequest"> | Date | string
    updatedAt?: DateTimeFilter<"ContractRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ContractRequest"> | Date | string | null
  }

  export type ExpenseRequestUpsertWithWhereUniqueWithoutCreatorInput = {
    where: ExpenseRequestWhereUniqueInput
    update: XOR<ExpenseRequestUpdateWithoutCreatorInput, ExpenseRequestUncheckedUpdateWithoutCreatorInput>
    create: XOR<ExpenseRequestCreateWithoutCreatorInput, ExpenseRequestUncheckedCreateWithoutCreatorInput>
  }

  export type ExpenseRequestUpdateWithWhereUniqueWithoutCreatorInput = {
    where: ExpenseRequestWhereUniqueInput
    data: XOR<ExpenseRequestUpdateWithoutCreatorInput, ExpenseRequestUncheckedUpdateWithoutCreatorInput>
  }

  export type ExpenseRequestUpdateManyWithWhereWithoutCreatorInput = {
    where: ExpenseRequestScalarWhereInput
    data: XOR<ExpenseRequestUpdateManyMutationInput, ExpenseRequestUncheckedUpdateManyWithoutCreatorInput>
  }

  export type ExpenseRequestScalarWhereInput = {
    AND?: ExpenseRequestScalarWhereInput | ExpenseRequestScalarWhereInput[]
    OR?: ExpenseRequestScalarWhereInput[]
    NOT?: ExpenseRequestScalarWhereInput | ExpenseRequestScalarWhereInput[]
    id?: UuidFilter<"ExpenseRequest"> | string
    code?: StringFilter<"ExpenseRequest"> | string
    title?: StringFilter<"ExpenseRequest"> | string
    description?: StringNullableFilter<"ExpenseRequest"> | string | null
    creatorId?: UuidFilter<"ExpenseRequest"> | string
    amount?: DecimalFilter<"ExpenseRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"ExpenseRequest"> | string
    category?: EnumExpenseCategoryFilter<"ExpenseRequest"> | $Enums.ExpenseCategory
    workflowInstanceId?: UuidNullableFilter<"ExpenseRequest"> | string | null
    status?: EnumExpenseStatusFilter<"ExpenseRequest"> | $Enums.ExpenseStatus
    attachments?: JsonNullableFilter<"ExpenseRequest">
    expenseDate?: DateTimeFilter<"ExpenseRequest"> | Date | string
    createdAt?: DateTimeFilter<"ExpenseRequest"> | Date | string
    updatedAt?: DateTimeFilter<"ExpenseRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ExpenseRequest"> | Date | string | null
  }

  export type PurchaseRequestUpsertWithWhereUniqueWithoutCreatorInput = {
    where: PurchaseRequestWhereUniqueInput
    update: XOR<PurchaseRequestUpdateWithoutCreatorInput, PurchaseRequestUncheckedUpdateWithoutCreatorInput>
    create: XOR<PurchaseRequestCreateWithoutCreatorInput, PurchaseRequestUncheckedCreateWithoutCreatorInput>
  }

  export type PurchaseRequestUpdateWithWhereUniqueWithoutCreatorInput = {
    where: PurchaseRequestWhereUniqueInput
    data: XOR<PurchaseRequestUpdateWithoutCreatorInput, PurchaseRequestUncheckedUpdateWithoutCreatorInput>
  }

  export type PurchaseRequestUpdateManyWithWhereWithoutCreatorInput = {
    where: PurchaseRequestScalarWhereInput
    data: XOR<PurchaseRequestUpdateManyMutationInput, PurchaseRequestUncheckedUpdateManyWithoutCreatorInput>
  }

  export type PurchaseRequestScalarWhereInput = {
    AND?: PurchaseRequestScalarWhereInput | PurchaseRequestScalarWhereInput[]
    OR?: PurchaseRequestScalarWhereInput[]
    NOT?: PurchaseRequestScalarWhereInput | PurchaseRequestScalarWhereInput[]
    id?: UuidFilter<"PurchaseRequest"> | string
    code?: StringFilter<"PurchaseRequest"> | string
    title?: StringFilter<"PurchaseRequest"> | string
    description?: StringNullableFilter<"PurchaseRequest"> | string | null
    creatorId?: UuidFilter<"PurchaseRequest"> | string
    totalAmount?: DecimalFilter<"PurchaseRequest"> | Decimal | DecimalJsLike | number | string
    currency?: StringFilter<"PurchaseRequest"> | string
    vendorName?: StringFilter<"PurchaseRequest"> | string
    vendorContact?: StringNullableFilter<"PurchaseRequest"> | string | null
    workflowInstanceId?: UuidNullableFilter<"PurchaseRequest"> | string | null
    status?: EnumPurchaseStatusFilter<"PurchaseRequest"> | $Enums.PurchaseStatus
    attachments?: JsonNullableFilter<"PurchaseRequest">
    expectedDeliveryDate?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
    actualDeliveryDate?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
    createdAt?: DateTimeFilter<"PurchaseRequest"> | Date | string
    updatedAt?: DateTimeFilter<"PurchaseRequest"> | Date | string
    deletedAt?: DateTimeNullableFilter<"PurchaseRequest"> | Date | string | null
  }

  export type AuditLogUpsertWithWhereUniqueWithoutUserInput = {
    where: AuditLogWhereUniqueInput
    update: XOR<AuditLogUpdateWithoutUserInput, AuditLogUncheckedUpdateWithoutUserInput>
    create: XOR<AuditLogCreateWithoutUserInput, AuditLogUncheckedCreateWithoutUserInput>
  }

  export type AuditLogUpdateWithWhereUniqueWithoutUserInput = {
    where: AuditLogWhereUniqueInput
    data: XOR<AuditLogUpdateWithoutUserInput, AuditLogUncheckedUpdateWithoutUserInput>
  }

  export type AuditLogUpdateManyWithWhereWithoutUserInput = {
    where: AuditLogScalarWhereInput
    data: XOR<AuditLogUpdateManyMutationInput, AuditLogUncheckedUpdateManyWithoutUserInput>
  }

  export type AuditLogScalarWhereInput = {
    AND?: AuditLogScalarWhereInput | AuditLogScalarWhereInput[]
    OR?: AuditLogScalarWhereInput[]
    NOT?: AuditLogScalarWhereInput | AuditLogScalarWhereInput[]
    id?: UuidFilter<"AuditLog"> | string
    region?: StringFilter<"AuditLog"> | string
    tenantId?: StringFilter<"AuditLog"> | string
    who?: StringFilter<"AuditLog"> | string
    what?: StringFilter<"AuditLog"> | string
    when?: DateTimeFilter<"AuditLog"> | Date | string
    where?: StringFilter<"AuditLog"> | string
    why?: StringNullableFilter<"AuditLog"> | string | null
    how?: StringFilter<"AuditLog"> | string
    module?: StringFilter<"AuditLog"> | string
    action?: EnumAuditActionFilter<"AuditLog"> | $Enums.AuditAction
    entityType?: StringFilter<"AuditLog"> | string
    entityId?: UuidFilter<"AuditLog"> | string
    oldValue?: JsonNullableFilter<"AuditLog">
    newValue?: JsonNullableFilter<"AuditLog">
    changes?: JsonNullableFilter<"AuditLog">
    userId?: UuidNullableFilter<"AuditLog"> | string | null
    sessionId?: UuidFilter<"AuditLog"> | string
    traceId?: UuidFilter<"AuditLog"> | string
    requestId?: UuidFilter<"AuditLog"> | string
    ipAddress?: StringFilter<"AuditLog"> | string
    userAgent?: StringFilter<"AuditLog"> | string
    deviceId?: UuidNullableFilter<"AuditLog"> | string | null
    geoLocation?: StringNullableFilter<"AuditLog"> | string | null
    businessType?: StringNullableFilter<"AuditLog"> | string | null
    businessKey?: StringNullableFilter<"AuditLog"> | string | null
    status?: EnumAuditStatusFilter<"AuditLog"> | $Enums.AuditStatus
    errorMessage?: StringNullableFilter<"AuditLog"> | string | null
    duration?: IntNullableFilter<"AuditLog"> | number | null
    isFinancial?: BoolFilter<"AuditLog"> | boolean
    isSensitive?: BoolFilter<"AuditLog"> | boolean
    riskLevel?: EnumRiskLevelFilter<"AuditLog"> | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFilter<"AuditLog"> | $Enums.ComplianceLevel
    retentionYears?: IntFilter<"AuditLog"> | number
    previousHash?: StringNullableFilter<"AuditLog"> | string | null
    currentHash?: StringFilter<"AuditLog"> | string
    signature?: StringNullableFilter<"AuditLog"> | string | null
    createdAt?: DateTimeFilter<"AuditLog"> | Date | string
    archivedAt?: DateTimeNullableFilter<"AuditLog"> | Date | string | null
  }

  export type AutomationTaskUpsertWithWhereUniqueWithoutCreatedByInput = {
    where: AutomationTaskWhereUniqueInput
    update: XOR<AutomationTaskUpdateWithoutCreatedByInput, AutomationTaskUncheckedUpdateWithoutCreatedByInput>
    create: XOR<AutomationTaskCreateWithoutCreatedByInput, AutomationTaskUncheckedCreateWithoutCreatedByInput>
  }

  export type AutomationTaskUpdateWithWhereUniqueWithoutCreatedByInput = {
    where: AutomationTaskWhereUniqueInput
    data: XOR<AutomationTaskUpdateWithoutCreatedByInput, AutomationTaskUncheckedUpdateWithoutCreatedByInput>
  }

  export type AutomationTaskUpdateManyWithWhereWithoutCreatedByInput = {
    where: AutomationTaskScalarWhereInput
    data: XOR<AutomationTaskUpdateManyMutationInput, AutomationTaskUncheckedUpdateManyWithoutCreatedByInput>
  }

  export type AutomationTaskScalarWhereInput = {
    AND?: AutomationTaskScalarWhereInput | AutomationTaskScalarWhereInput[]
    OR?: AutomationTaskScalarWhereInput[]
    NOT?: AutomationTaskScalarWhereInput | AutomationTaskScalarWhereInput[]
    id?: UuidFilter<"AutomationTask"> | string
    name?: StringFilter<"AutomationTask"> | string
    code?: StringFilter<"AutomationTask"> | string
    description?: StringNullableFilter<"AutomationTask"> | string | null
    type?: EnumAutomationTaskTypeFilter<"AutomationTask"> | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFilter<"AutomationTask"> | $Enums.AutomationTaskStatus
    scheduleType?: StringFilter<"AutomationTask"> | string
    scheduleConfig?: JsonFilter<"AutomationTask">
    config?: JsonFilter<"AutomationTask">
    timeout?: IntFilter<"AutomationTask"> | number
    retryCount?: IntFilter<"AutomationTask"> | number
    lastRunAt?: DateTimeNullableFilter<"AutomationTask"> | Date | string | null
    lastStatus?: EnumAutomationExecutionStatusNullableFilter<"AutomationTask"> | $Enums.AutomationExecutionStatus | null
    nextRunAt?: DateTimeNullableFilter<"AutomationTask"> | Date | string | null
    totalRuns?: IntFilter<"AutomationTask"> | number
    successRuns?: IntFilter<"AutomationTask"> | number
    failedRuns?: IntFilter<"AutomationTask"> | number
    createdById?: UuidNullableFilter<"AutomationTask"> | string | null
    createdAt?: DateTimeFilter<"AutomationTask"> | Date | string
    updatedAt?: DateTimeFilter<"AutomationTask"> | Date | string
  }

  export type FormDefinitionUpsertWithWhereUniqueWithoutCreatorInput = {
    where: FormDefinitionWhereUniqueInput
    update: XOR<FormDefinitionUpdateWithoutCreatorInput, FormDefinitionUncheckedUpdateWithoutCreatorInput>
    create: XOR<FormDefinitionCreateWithoutCreatorInput, FormDefinitionUncheckedCreateWithoutCreatorInput>
  }

  export type FormDefinitionUpdateWithWhereUniqueWithoutCreatorInput = {
    where: FormDefinitionWhereUniqueInput
    data: XOR<FormDefinitionUpdateWithoutCreatorInput, FormDefinitionUncheckedUpdateWithoutCreatorInput>
  }

  export type FormDefinitionUpdateManyWithWhereWithoutCreatorInput = {
    where: FormDefinitionScalarWhereInput
    data: XOR<FormDefinitionUpdateManyMutationInput, FormDefinitionUncheckedUpdateManyWithoutCreatorInput>
  }

  export type FormDefinitionUpsertWithWhereUniqueWithoutUpdaterInput = {
    where: FormDefinitionWhereUniqueInput
    update: XOR<FormDefinitionUpdateWithoutUpdaterInput, FormDefinitionUncheckedUpdateWithoutUpdaterInput>
    create: XOR<FormDefinitionCreateWithoutUpdaterInput, FormDefinitionUncheckedCreateWithoutUpdaterInput>
  }

  export type FormDefinitionUpdateWithWhereUniqueWithoutUpdaterInput = {
    where: FormDefinitionWhereUniqueInput
    data: XOR<FormDefinitionUpdateWithoutUpdaterInput, FormDefinitionUncheckedUpdateWithoutUpdaterInput>
  }

  export type FormDefinitionUpdateManyWithWhereWithoutUpdaterInput = {
    where: FormDefinitionScalarWhereInput
    data: XOR<FormDefinitionUpdateManyMutationInput, FormDefinitionUncheckedUpdateManyWithoutUpdaterInput>
  }

  export type FormInstanceUpsertWithWhereUniqueWithoutCreatorInput = {
    where: FormInstanceWhereUniqueInput
    update: XOR<FormInstanceUpdateWithoutCreatorInput, FormInstanceUncheckedUpdateWithoutCreatorInput>
    create: XOR<FormInstanceCreateWithoutCreatorInput, FormInstanceUncheckedCreateWithoutCreatorInput>
  }

  export type FormInstanceUpdateWithWhereUniqueWithoutCreatorInput = {
    where: FormInstanceWhereUniqueInput
    data: XOR<FormInstanceUpdateWithoutCreatorInput, FormInstanceUncheckedUpdateWithoutCreatorInput>
  }

  export type FormInstanceUpdateManyWithWhereWithoutCreatorInput = {
    where: FormInstanceScalarWhereInput
    data: XOR<FormInstanceUpdateManyMutationInput, FormInstanceUncheckedUpdateManyWithoutCreatorInput>
  }

  export type FormInstanceUpsertWithWhereUniqueWithoutSubmitterInput = {
    where: FormInstanceWhereUniqueInput
    update: XOR<FormInstanceUpdateWithoutSubmitterInput, FormInstanceUncheckedUpdateWithoutSubmitterInput>
    create: XOR<FormInstanceCreateWithoutSubmitterInput, FormInstanceUncheckedCreateWithoutSubmitterInput>
  }

  export type FormInstanceUpdateWithWhereUniqueWithoutSubmitterInput = {
    where: FormInstanceWhereUniqueInput
    data: XOR<FormInstanceUpdateWithoutSubmitterInput, FormInstanceUncheckedUpdateWithoutSubmitterInput>
  }

  export type FormInstanceUpdateManyWithWhereWithoutSubmitterInput = {
    where: FormInstanceScalarWhereInput
    data: XOR<FormInstanceUpdateManyMutationInput, FormInstanceUncheckedUpdateManyWithoutSubmitterInput>
  }

  export type FormInstanceUpsertWithWhereUniqueWithoutUpdaterInput = {
    where: FormInstanceWhereUniqueInput
    update: XOR<FormInstanceUpdateWithoutUpdaterInput, FormInstanceUncheckedUpdateWithoutUpdaterInput>
    create: XOR<FormInstanceCreateWithoutUpdaterInput, FormInstanceUncheckedCreateWithoutUpdaterInput>
  }

  export type FormInstanceUpdateWithWhereUniqueWithoutUpdaterInput = {
    where: FormInstanceWhereUniqueInput
    data: XOR<FormInstanceUpdateWithoutUpdaterInput, FormInstanceUncheckedUpdateWithoutUpdaterInput>
  }

  export type FormInstanceUpdateManyWithWhereWithoutUpdaterInput = {
    where: FormInstanceScalarWhereInput
    data: XOR<FormInstanceUpdateManyMutationInput, FormInstanceUncheckedUpdateManyWithoutUpdaterInput>
  }

  export type FormTemplateUpsertWithWhereUniqueWithoutCreatorInput = {
    where: FormTemplateWhereUniqueInput
    update: XOR<FormTemplateUpdateWithoutCreatorInput, FormTemplateUncheckedUpdateWithoutCreatorInput>
    create: XOR<FormTemplateCreateWithoutCreatorInput, FormTemplateUncheckedCreateWithoutCreatorInput>
  }

  export type FormTemplateUpdateWithWhereUniqueWithoutCreatorInput = {
    where: FormTemplateWhereUniqueInput
    data: XOR<FormTemplateUpdateWithoutCreatorInput, FormTemplateUncheckedUpdateWithoutCreatorInput>
  }

  export type FormTemplateUpdateManyWithWhereWithoutCreatorInput = {
    where: FormTemplateScalarWhereInput
    data: XOR<FormTemplateUpdateManyMutationInput, FormTemplateUncheckedUpdateManyWithoutCreatorInput>
  }

  export type FormTemplateScalarWhereInput = {
    AND?: FormTemplateScalarWhereInput | FormTemplateScalarWhereInput[]
    OR?: FormTemplateScalarWhereInput[]
    NOT?: FormTemplateScalarWhereInput | FormTemplateScalarWhereInput[]
    id?: UuidFilter<"FormTemplate"> | string
    nameI18n?: JsonFilter<"FormTemplate">
    descriptionI18n?: JsonNullableFilter<"FormTemplate">
    category?: StringFilter<"FormTemplate"> | string
    icon?: StringNullableFilter<"FormTemplate"> | string | null
    color?: StringNullableFilter<"FormTemplate"> | string | null
    template?: JsonFilter<"FormTemplate">
    isBuiltin?: BoolFilter<"FormTemplate"> | boolean
    isPublic?: BoolFilter<"FormTemplate"> | boolean
    createdBy?: UuidFilter<"FormTemplate"> | string
    updatedBy?: UuidNullableFilter<"FormTemplate"> | string | null
    createdAt?: DateTimeFilter<"FormTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"FormTemplate"> | Date | string
  }

  export type FormTemplateUpsertWithWhereUniqueWithoutUpdaterInput = {
    where: FormTemplateWhereUniqueInput
    update: XOR<FormTemplateUpdateWithoutUpdaterInput, FormTemplateUncheckedUpdateWithoutUpdaterInput>
    create: XOR<FormTemplateCreateWithoutUpdaterInput, FormTemplateUncheckedCreateWithoutUpdaterInput>
  }

  export type FormTemplateUpdateWithWhereUniqueWithoutUpdaterInput = {
    where: FormTemplateWhereUniqueInput
    data: XOR<FormTemplateUpdateWithoutUpdaterInput, FormTemplateUncheckedUpdateWithoutUpdaterInput>
  }

  export type FormTemplateUpdateManyWithWhereWithoutUpdaterInput = {
    where: FormTemplateScalarWhereInput
    data: XOR<FormTemplateUpdateManyMutationInput, FormTemplateUncheckedUpdateManyWithoutUpdaterInput>
  }

  export type FormVersionUpsertWithWhereUniqueWithoutCreatorInput = {
    where: FormVersionWhereUniqueInput
    update: XOR<FormVersionUpdateWithoutCreatorInput, FormVersionUncheckedUpdateWithoutCreatorInput>
    create: XOR<FormVersionCreateWithoutCreatorInput, FormVersionUncheckedCreateWithoutCreatorInput>
  }

  export type FormVersionUpdateWithWhereUniqueWithoutCreatorInput = {
    where: FormVersionWhereUniqueInput
    data: XOR<FormVersionUpdateWithoutCreatorInput, FormVersionUncheckedUpdateWithoutCreatorInput>
  }

  export type FormVersionUpdateManyWithWhereWithoutCreatorInput = {
    where: FormVersionScalarWhereInput
    data: XOR<FormVersionUpdateManyMutationInput, FormVersionUncheckedUpdateManyWithoutCreatorInput>
  }

  export type FormVersionUpsertWithWhereUniqueWithoutReviewerInput = {
    where: FormVersionWhereUniqueInput
    update: XOR<FormVersionUpdateWithoutReviewerInput, FormVersionUncheckedUpdateWithoutReviewerInput>
    create: XOR<FormVersionCreateWithoutReviewerInput, FormVersionUncheckedCreateWithoutReviewerInput>
  }

  export type FormVersionUpdateWithWhereUniqueWithoutReviewerInput = {
    where: FormVersionWhereUniqueInput
    data: XOR<FormVersionUpdateWithoutReviewerInput, FormVersionUncheckedUpdateWithoutReviewerInput>
  }

  export type FormVersionUpdateManyWithWhereWithoutReviewerInput = {
    where: FormVersionScalarWhereInput
    data: XOR<FormVersionUpdateManyMutationInput, FormVersionUncheckedUpdateManyWithoutReviewerInput>
  }

  export type UserRoleUpsertWithWhereUniqueWithoutUserInput = {
    where: UserRoleWhereUniqueInput
    update: XOR<UserRoleUpdateWithoutUserInput, UserRoleUncheckedUpdateWithoutUserInput>
    create: XOR<UserRoleCreateWithoutUserInput, UserRoleUncheckedCreateWithoutUserInput>
  }

  export type UserRoleUpdateWithWhereUniqueWithoutUserInput = {
    where: UserRoleWhereUniqueInput
    data: XOR<UserRoleUpdateWithoutUserInput, UserRoleUncheckedUpdateWithoutUserInput>
  }

  export type UserRoleUpdateManyWithWhereWithoutUserInput = {
    where: UserRoleScalarWhereInput
    data: XOR<UserRoleUpdateManyMutationInput, UserRoleUncheckedUpdateManyWithoutUserInput>
  }

  export type WorkflowRoleUserUpsertWithWhereUniqueWithoutUserInput = {
    where: WorkflowRoleUserWhereUniqueInput
    update: XOR<WorkflowRoleUserUpdateWithoutUserInput, WorkflowRoleUserUncheckedUpdateWithoutUserInput>
    create: XOR<WorkflowRoleUserCreateWithoutUserInput, WorkflowRoleUserUncheckedCreateWithoutUserInput>
  }

  export type WorkflowRoleUserUpdateWithWhereUniqueWithoutUserInput = {
    where: WorkflowRoleUserWhereUniqueInput
    data: XOR<WorkflowRoleUserUpdateWithoutUserInput, WorkflowRoleUserUncheckedUpdateWithoutUserInput>
  }

  export type WorkflowRoleUserUpdateManyWithWhereWithoutUserInput = {
    where: WorkflowRoleUserScalarWhereInput
    data: XOR<WorkflowRoleUserUpdateManyMutationInput, WorkflowRoleUserUncheckedUpdateManyWithoutUserInput>
  }

  export type WorkflowRoleUserScalarWhereInput = {
    AND?: WorkflowRoleUserScalarWhereInput | WorkflowRoleUserScalarWhereInput[]
    OR?: WorkflowRoleUserScalarWhereInput[]
    NOT?: WorkflowRoleUserScalarWhereInput | WorkflowRoleUserScalarWhereInput[]
    id?: UuidFilter<"WorkflowRoleUser"> | string
    workflowRoleId?: UuidFilter<"WorkflowRoleUser"> | string
    userId?: UuidFilter<"WorkflowRoleUser"> | string
    createdAt?: DateTimeFilter<"WorkflowRoleUser"> | Date | string
  }

  export type UserDepartmentUpsertWithWhereUniqueWithoutUserInput = {
    where: UserDepartmentWhereUniqueInput
    update: XOR<UserDepartmentUpdateWithoutUserInput, UserDepartmentUncheckedUpdateWithoutUserInput>
    create: XOR<UserDepartmentCreateWithoutUserInput, UserDepartmentUncheckedCreateWithoutUserInput>
  }

  export type UserDepartmentUpdateWithWhereUniqueWithoutUserInput = {
    where: UserDepartmentWhereUniqueInput
    data: XOR<UserDepartmentUpdateWithoutUserInput, UserDepartmentUncheckedUpdateWithoutUserInput>
  }

  export type UserDepartmentUpdateManyWithWhereWithoutUserInput = {
    where: UserDepartmentScalarWhereInput
    data: XOR<UserDepartmentUpdateManyMutationInput, UserDepartmentUncheckedUpdateManyWithoutUserInput>
  }

  export type UserDepartmentUpsertWithWhereUniqueWithoutManagerInput = {
    where: UserDepartmentWhereUniqueInput
    update: XOR<UserDepartmentUpdateWithoutManagerInput, UserDepartmentUncheckedUpdateWithoutManagerInput>
    create: XOR<UserDepartmentCreateWithoutManagerInput, UserDepartmentUncheckedCreateWithoutManagerInput>
  }

  export type UserDepartmentUpdateWithWhereUniqueWithoutManagerInput = {
    where: UserDepartmentWhereUniqueInput
    data: XOR<UserDepartmentUpdateWithoutManagerInput, UserDepartmentUncheckedUpdateWithoutManagerInput>
  }

  export type UserDepartmentUpdateManyWithWhereWithoutManagerInput = {
    where: UserDepartmentScalarWhereInput
    data: XOR<UserDepartmentUpdateManyMutationInput, UserDepartmentUncheckedUpdateManyWithoutManagerInput>
  }

  export type NotificationLogUpsertWithWhereUniqueWithoutRecipientInput = {
    where: NotificationLogWhereUniqueInput
    update: XOR<NotificationLogUpdateWithoutRecipientInput, NotificationLogUncheckedUpdateWithoutRecipientInput>
    create: XOR<NotificationLogCreateWithoutRecipientInput, NotificationLogUncheckedCreateWithoutRecipientInput>
  }

  export type NotificationLogUpdateWithWhereUniqueWithoutRecipientInput = {
    where: NotificationLogWhereUniqueInput
    data: XOR<NotificationLogUpdateWithoutRecipientInput, NotificationLogUncheckedUpdateWithoutRecipientInput>
  }

  export type NotificationLogUpdateManyWithWhereWithoutRecipientInput = {
    where: NotificationLogScalarWhereInput
    data: XOR<NotificationLogUpdateManyMutationInput, NotificationLogUncheckedUpdateManyWithoutRecipientInput>
  }

  export type NotificationLogScalarWhereInput = {
    AND?: NotificationLogScalarWhereInput | NotificationLogScalarWhereInput[]
    OR?: NotificationLogScalarWhereInput[]
    NOT?: NotificationLogScalarWhereInput | NotificationLogScalarWhereInput[]
    id?: UuidFilter<"NotificationLog"> | string
    recipientId?: UuidFilter<"NotificationLog"> | string
    recipientEmail?: StringNullableFilter<"NotificationLog"> | string | null
    channel?: EnumNotificationChannelFilter<"NotificationLog"> | $Enums.NotificationChannel
    templateId?: UuidNullableFilter<"NotificationLog"> | string | null
    subject?: StringNullableFilter<"NotificationLog"> | string | null
    content?: StringFilter<"NotificationLog"> | string
    variables?: JsonNullableFilter<"NotificationLog">
    status?: EnumNotificationSendStatusFilter<"NotificationLog"> | $Enums.NotificationSendStatus
    errorMessage?: StringNullableFilter<"NotificationLog"> | string | null
    sentAt?: DateTimeNullableFilter<"NotificationLog"> | Date | string | null
    retryCount?: IntFilter<"NotificationLog"> | number
    maxRetries?: IntFilter<"NotificationLog"> | number
    nextRetryAt?: DateTimeNullableFilter<"NotificationLog"> | Date | string | null
    priority?: EnumNotificationPriorityFilter<"NotificationLog"> | $Enums.NotificationPriority
    metadata?: JsonNullableFilter<"NotificationLog">
    createdAt?: DateTimeFilter<"NotificationLog"> | Date | string
    updatedAt?: DateTimeFilter<"NotificationLog"> | Date | string
  }

  export type NotificationMessageUpsertWithWhereUniqueWithoutUserInput = {
    where: NotificationMessageWhereUniqueInput
    update: XOR<NotificationMessageUpdateWithoutUserInput, NotificationMessageUncheckedUpdateWithoutUserInput>
    create: XOR<NotificationMessageCreateWithoutUserInput, NotificationMessageUncheckedCreateWithoutUserInput>
  }

  export type NotificationMessageUpdateWithWhereUniqueWithoutUserInput = {
    where: NotificationMessageWhereUniqueInput
    data: XOR<NotificationMessageUpdateWithoutUserInput, NotificationMessageUncheckedUpdateWithoutUserInput>
  }

  export type NotificationMessageUpdateManyWithWhereWithoutUserInput = {
    where: NotificationMessageScalarWhereInput
    data: XOR<NotificationMessageUpdateManyMutationInput, NotificationMessageUncheckedUpdateManyWithoutUserInput>
  }

  export type NotificationMessageScalarWhereInput = {
    AND?: NotificationMessageScalarWhereInput | NotificationMessageScalarWhereInput[]
    OR?: NotificationMessageScalarWhereInput[]
    NOT?: NotificationMessageScalarWhereInput | NotificationMessageScalarWhereInput[]
    id?: UuidFilter<"NotificationMessage"> | string
    userId?: UuidFilter<"NotificationMessage"> | string
    type?: EnumNotificationTypeFilter<"NotificationMessage"> | $Enums.NotificationType
    title?: StringFilter<"NotificationMessage"> | string
    content?: StringFilter<"NotificationMessage"> | string
    link?: StringNullableFilter<"NotificationMessage"> | string | null
    status?: EnumNotificationStatusFilter<"NotificationMessage"> | $Enums.NotificationStatus
    createdAt?: DateTimeFilter<"NotificationMessage"> | Date | string
    readAt?: DateTimeNullableFilter<"NotificationMessage"> | Date | string | null
  }

  export type UserDelegationSettingUpsertWithWhereUniqueWithoutUserInput = {
    where: UserDelegationSettingWhereUniqueInput
    update: XOR<UserDelegationSettingUpdateWithoutUserInput, UserDelegationSettingUncheckedUpdateWithoutUserInput>
    create: XOR<UserDelegationSettingCreateWithoutUserInput, UserDelegationSettingUncheckedCreateWithoutUserInput>
  }

  export type UserDelegationSettingUpdateWithWhereUniqueWithoutUserInput = {
    where: UserDelegationSettingWhereUniqueInput
    data: XOR<UserDelegationSettingUpdateWithoutUserInput, UserDelegationSettingUncheckedUpdateWithoutUserInput>
  }

  export type UserDelegationSettingUpdateManyWithWhereWithoutUserInput = {
    where: UserDelegationSettingScalarWhereInput
    data: XOR<UserDelegationSettingUpdateManyMutationInput, UserDelegationSettingUncheckedUpdateManyWithoutUserInput>
  }

  export type UserDelegationSettingScalarWhereInput = {
    AND?: UserDelegationSettingScalarWhereInput | UserDelegationSettingScalarWhereInput[]
    OR?: UserDelegationSettingScalarWhereInput[]
    NOT?: UserDelegationSettingScalarWhereInput | UserDelegationSettingScalarWhereInput[]
    id?: UuidFilter<"UserDelegationSetting"> | string
    userId?: UuidFilter<"UserDelegationSetting"> | string
    enabled?: BoolFilter<"UserDelegationSetting"> | boolean
    delegateUserId?: UuidFilter<"UserDelegationSetting"> | string
    startTime?: DateTimeNullableFilter<"UserDelegationSetting"> | Date | string | null
    endTime?: DateTimeNullableFilter<"UserDelegationSetting"> | Date | string | null
    scope?: EnumDelegationScopeFilter<"UserDelegationSetting"> | $Enums.DelegationScope
    processKeys?: StringNullableListFilter<"UserDelegationSetting">
    reason?: StringNullableFilter<"UserDelegationSetting"> | string | null
    createdAt?: DateTimeFilter<"UserDelegationSetting"> | Date | string
    updatedAt?: DateTimeFilter<"UserDelegationSetting"> | Date | string
  }

  export type UserDelegationSettingUpsertWithWhereUniqueWithoutDelegateUserInput = {
    where: UserDelegationSettingWhereUniqueInput
    update: XOR<UserDelegationSettingUpdateWithoutDelegateUserInput, UserDelegationSettingUncheckedUpdateWithoutDelegateUserInput>
    create: XOR<UserDelegationSettingCreateWithoutDelegateUserInput, UserDelegationSettingUncheckedCreateWithoutDelegateUserInput>
  }

  export type UserDelegationSettingUpdateWithWhereUniqueWithoutDelegateUserInput = {
    where: UserDelegationSettingWhereUniqueInput
    data: XOR<UserDelegationSettingUpdateWithoutDelegateUserInput, UserDelegationSettingUncheckedUpdateWithoutDelegateUserInput>
  }

  export type UserDelegationSettingUpdateManyWithWhereWithoutDelegateUserInput = {
    where: UserDelegationSettingScalarWhereInput
    data: XOR<UserDelegationSettingUpdateManyMutationInput, UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserInput>
  }

  export type KnowledgeArticleUpsertWithWhereUniqueWithoutCreatedByInput = {
    where: KnowledgeArticleWhereUniqueInput
    update: XOR<KnowledgeArticleUpdateWithoutCreatedByInput, KnowledgeArticleUncheckedUpdateWithoutCreatedByInput>
    create: XOR<KnowledgeArticleCreateWithoutCreatedByInput, KnowledgeArticleUncheckedCreateWithoutCreatedByInput>
  }

  export type KnowledgeArticleUpdateWithWhereUniqueWithoutCreatedByInput = {
    where: KnowledgeArticleWhereUniqueInput
    data: XOR<KnowledgeArticleUpdateWithoutCreatedByInput, KnowledgeArticleUncheckedUpdateWithoutCreatedByInput>
  }

  export type KnowledgeArticleUpdateManyWithWhereWithoutCreatedByInput = {
    where: KnowledgeArticleScalarWhereInput
    data: XOR<KnowledgeArticleUpdateManyMutationInput, KnowledgeArticleUncheckedUpdateManyWithoutCreatedByInput>
  }

  export type KnowledgeArticleScalarWhereInput = {
    AND?: KnowledgeArticleScalarWhereInput | KnowledgeArticleScalarWhereInput[]
    OR?: KnowledgeArticleScalarWhereInput[]
    NOT?: KnowledgeArticleScalarWhereInput | KnowledgeArticleScalarWhereInput[]
    id?: UuidFilter<"KnowledgeArticle"> | string
    title?: StringFilter<"KnowledgeArticle"> | string
    content?: StringFilter<"KnowledgeArticle"> | string
    status?: EnumKnowledgeArticleStatusFilter<"KnowledgeArticle"> | $Enums.KnowledgeArticleStatus
    createdById?: UuidFilter<"KnowledgeArticle"> | string
    createdAt?: DateTimeFilter<"KnowledgeArticle"> | Date | string
    updatedAt?: DateTimeFilter<"KnowledgeArticle"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KnowledgeArticle"> | Date | string | null
  }

  export type AIQALogUpsertWithWhereUniqueWithoutUserInput = {
    where: AIQALogWhereUniqueInput
    update: XOR<AIQALogUpdateWithoutUserInput, AIQALogUncheckedUpdateWithoutUserInput>
    create: XOR<AIQALogCreateWithoutUserInput, AIQALogUncheckedCreateWithoutUserInput>
  }

  export type AIQALogUpdateWithWhereUniqueWithoutUserInput = {
    where: AIQALogWhereUniqueInput
    data: XOR<AIQALogUpdateWithoutUserInput, AIQALogUncheckedUpdateWithoutUserInput>
  }

  export type AIQALogUpdateManyWithWhereWithoutUserInput = {
    where: AIQALogScalarWhereInput
    data: XOR<AIQALogUpdateManyMutationInput, AIQALogUncheckedUpdateManyWithoutUserInput>
  }

  export type AIQALogScalarWhereInput = {
    AND?: AIQALogScalarWhereInput | AIQALogScalarWhereInput[]
    OR?: AIQALogScalarWhereInput[]
    NOT?: AIQALogScalarWhereInput | AIQALogScalarWhereInput[]
    id?: UuidFilter<"AIQALog"> | string
    userId?: UuidFilter<"AIQALog"> | string
    question?: StringFilter<"AIQALog"> | string
    answer?: StringFilter<"AIQALog"> | string
    sourceDocuments?: JsonNullableFilter<"AIQALog">
    confidence?: FloatNullableFilter<"AIQALog"> | number | null
    modelUsed?: StringNullableFilter<"AIQALog"> | string | null
    tokensUsed?: IntNullableFilter<"AIQALog"> | number | null
    cost?: FloatNullableFilter<"AIQALog"> | number | null
    responseTimeMs?: IntNullableFilter<"AIQALog"> | number | null
    feedback?: EnumQAFeedbackNullableFilter<"AIQALog"> | $Enums.QAFeedback | null
    feedbackComment?: StringNullableFilter<"AIQALog"> | string | null
    createdAt?: DateTimeFilter<"AIQALog"> | Date | string
  }

  export type DocumentViewUpsertWithWhereUniqueWithoutUserInput = {
    where: DocumentViewWhereUniqueInput
    update: XOR<DocumentViewUpdateWithoutUserInput, DocumentViewUncheckedUpdateWithoutUserInput>
    create: XOR<DocumentViewCreateWithoutUserInput, DocumentViewUncheckedCreateWithoutUserInput>
  }

  export type DocumentViewUpdateWithWhereUniqueWithoutUserInput = {
    where: DocumentViewWhereUniqueInput
    data: XOR<DocumentViewUpdateWithoutUserInput, DocumentViewUncheckedUpdateWithoutUserInput>
  }

  export type DocumentViewUpdateManyWithWhereWithoutUserInput = {
    where: DocumentViewScalarWhereInput
    data: XOR<DocumentViewUpdateManyMutationInput, DocumentViewUncheckedUpdateManyWithoutUserInput>
  }

  export type DocumentViewScalarWhereInput = {
    AND?: DocumentViewScalarWhereInput | DocumentViewScalarWhereInput[]
    OR?: DocumentViewScalarWhereInput[]
    NOT?: DocumentViewScalarWhereInput | DocumentViewScalarWhereInput[]
    id?: UuidFilter<"DocumentView"> | string
    spDocumentId?: UuidNullableFilter<"DocumentView"> | string | null
    articleId?: UuidNullableFilter<"DocumentView"> | string | null
    userId?: UuidFilter<"DocumentView"> | string
    viewedAt?: DateTimeFilter<"DocumentView"> | Date | string
    viewDate?: DateTimeFilter<"DocumentView"> | Date | string
  }

  export type DocumentLikeUpsertWithWhereUniqueWithoutUserInput = {
    where: DocumentLikeWhereUniqueInput
    update: XOR<DocumentLikeUpdateWithoutUserInput, DocumentLikeUncheckedUpdateWithoutUserInput>
    create: XOR<DocumentLikeCreateWithoutUserInput, DocumentLikeUncheckedCreateWithoutUserInput>
  }

  export type DocumentLikeUpdateWithWhereUniqueWithoutUserInput = {
    where: DocumentLikeWhereUniqueInput
    data: XOR<DocumentLikeUpdateWithoutUserInput, DocumentLikeUncheckedUpdateWithoutUserInput>
  }

  export type DocumentLikeUpdateManyWithWhereWithoutUserInput = {
    where: DocumentLikeScalarWhereInput
    data: XOR<DocumentLikeUpdateManyMutationInput, DocumentLikeUncheckedUpdateManyWithoutUserInput>
  }

  export type DocumentLikeScalarWhereInput = {
    AND?: DocumentLikeScalarWhereInput | DocumentLikeScalarWhereInput[]
    OR?: DocumentLikeScalarWhereInput[]
    NOT?: DocumentLikeScalarWhereInput | DocumentLikeScalarWhereInput[]
    id?: UuidFilter<"DocumentLike"> | string
    spDocumentId?: UuidNullableFilter<"DocumentLike"> | string | null
    articleId?: UuidNullableFilter<"DocumentLike"> | string | null
    userId?: UuidFilter<"DocumentLike"> | string
    type?: EnumLikeTypeFilter<"DocumentLike"> | $Enums.LikeType
    createdAt?: DateTimeFilter<"DocumentLike"> | Date | string
  }

  export type DocumentCommentUpsertWithWhereUniqueWithoutUserInput = {
    where: DocumentCommentWhereUniqueInput
    update: XOR<DocumentCommentUpdateWithoutUserInput, DocumentCommentUncheckedUpdateWithoutUserInput>
    create: XOR<DocumentCommentCreateWithoutUserInput, DocumentCommentUncheckedCreateWithoutUserInput>
  }

  export type DocumentCommentUpdateWithWhereUniqueWithoutUserInput = {
    where: DocumentCommentWhereUniqueInput
    data: XOR<DocumentCommentUpdateWithoutUserInput, DocumentCommentUncheckedUpdateWithoutUserInput>
  }

  export type DocumentCommentUpdateManyWithWhereWithoutUserInput = {
    where: DocumentCommentScalarWhereInput
    data: XOR<DocumentCommentUpdateManyMutationInput, DocumentCommentUncheckedUpdateManyWithoutUserInput>
  }

  export type DocumentCommentScalarWhereInput = {
    AND?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
    OR?: DocumentCommentScalarWhereInput[]
    NOT?: DocumentCommentScalarWhereInput | DocumentCommentScalarWhereInput[]
    id?: UuidFilter<"DocumentComment"> | string
    spDocumentId?: UuidNullableFilter<"DocumentComment"> | string | null
    articleId?: UuidNullableFilter<"DocumentComment"> | string | null
    userId?: UuidFilter<"DocumentComment"> | string
    content?: StringFilter<"DocumentComment"> | string
    parentId?: UuidNullableFilter<"DocumentComment"> | string | null
    createdAt?: DateTimeFilter<"DocumentComment"> | Date | string
    updatedAt?: DateTimeFilter<"DocumentComment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"DocumentComment"> | Date | string | null
  }

  export type UserMentionUpsertWithWhereUniqueWithoutMentionedUserInput = {
    where: UserMentionWhereUniqueInput
    update: XOR<UserMentionUpdateWithoutMentionedUserInput, UserMentionUncheckedUpdateWithoutMentionedUserInput>
    create: XOR<UserMentionCreateWithoutMentionedUserInput, UserMentionUncheckedCreateWithoutMentionedUserInput>
  }

  export type UserMentionUpdateWithWhereUniqueWithoutMentionedUserInput = {
    where: UserMentionWhereUniqueInput
    data: XOR<UserMentionUpdateWithoutMentionedUserInput, UserMentionUncheckedUpdateWithoutMentionedUserInput>
  }

  export type UserMentionUpdateManyWithWhereWithoutMentionedUserInput = {
    where: UserMentionScalarWhereInput
    data: XOR<UserMentionUpdateManyMutationInput, UserMentionUncheckedUpdateManyWithoutMentionedUserInput>
  }

  export type UserMentionScalarWhereInput = {
    AND?: UserMentionScalarWhereInput | UserMentionScalarWhereInput[]
    OR?: UserMentionScalarWhereInput[]
    NOT?: UserMentionScalarWhereInput | UserMentionScalarWhereInput[]
    id?: UuidFilter<"UserMention"> | string
    commentId?: UuidFilter<"UserMention"> | string
    mentionedUserId?: UuidFilter<"UserMention"> | string
    readAt?: DateTimeNullableFilter<"UserMention"> | Date | string | null
    createdAt?: DateTimeFilter<"UserMention"> | Date | string
  }

  export type StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutAssigneeInput = {
    where: StrategicObjectiveAssignmentWhereUniqueInput
    update: XOR<StrategicObjectiveAssignmentUpdateWithoutAssigneeInput, StrategicObjectiveAssignmentUncheckedUpdateWithoutAssigneeInput>
    create: XOR<StrategicObjectiveAssignmentCreateWithoutAssigneeInput, StrategicObjectiveAssignmentUncheckedCreateWithoutAssigneeInput>
  }

  export type StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutAssigneeInput = {
    where: StrategicObjectiveAssignmentWhereUniqueInput
    data: XOR<StrategicObjectiveAssignmentUpdateWithoutAssigneeInput, StrategicObjectiveAssignmentUncheckedUpdateWithoutAssigneeInput>
  }

  export type StrategicObjectiveAssignmentUpdateManyWithWhereWithoutAssigneeInput = {
    where: StrategicObjectiveAssignmentScalarWhereInput
    data: XOR<StrategicObjectiveAssignmentUpdateManyMutationInput, StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeInput>
  }

  export type StrategicObjectiveAssignmentScalarWhereInput = {
    AND?: StrategicObjectiveAssignmentScalarWhereInput | StrategicObjectiveAssignmentScalarWhereInput[]
    OR?: StrategicObjectiveAssignmentScalarWhereInput[]
    NOT?: StrategicObjectiveAssignmentScalarWhereInput | StrategicObjectiveAssignmentScalarWhereInput[]
    id?: UuidFilter<"StrategicObjectiveAssignment"> | string
    objectiveId?: UuidFilter<"StrategicObjectiveAssignment"> | string
    assigneeId?: UuidFilter<"StrategicObjectiveAssignment"> | string
    createdAt?: DateTimeFilter<"StrategicObjectiveAssignment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StrategicObjectiveAssignment"> | Date | string | null
  }

  export type FeedbackUpsertWithWhereUniqueWithoutUserInput = {
    where: FeedbackWhereUniqueInput
    update: XOR<FeedbackUpdateWithoutUserInput, FeedbackUncheckedUpdateWithoutUserInput>
    create: XOR<FeedbackCreateWithoutUserInput, FeedbackUncheckedCreateWithoutUserInput>
  }

  export type FeedbackUpdateWithWhereUniqueWithoutUserInput = {
    where: FeedbackWhereUniqueInput
    data: XOR<FeedbackUpdateWithoutUserInput, FeedbackUncheckedUpdateWithoutUserInput>
  }

  export type FeedbackUpdateManyWithWhereWithoutUserInput = {
    where: FeedbackScalarWhereInput
    data: XOR<FeedbackUpdateManyMutationInput, FeedbackUncheckedUpdateManyWithoutUserInput>
  }

  export type FeedbackScalarWhereInput = {
    AND?: FeedbackScalarWhereInput | FeedbackScalarWhereInput[]
    OR?: FeedbackScalarWhereInput[]
    NOT?: FeedbackScalarWhereInput | FeedbackScalarWhereInput[]
    id?: UuidFilter<"Feedback"> | string
    type?: EnumFeedbackTypeFilter<"Feedback"> | $Enums.FeedbackType
    title?: StringFilter<"Feedback"> | string
    content?: StringFilter<"Feedback"> | string
    attachments?: StringNullableListFilter<"Feedback">
    pageUrl?: StringNullableFilter<"Feedback"> | string | null
    userAgent?: StringNullableFilter<"Feedback"> | string | null
    status?: EnumFeedbackStatusFilter<"Feedback"> | $Enums.FeedbackStatus
    priority?: EnumFeedbackPriorityNullableFilter<"Feedback"> | $Enums.FeedbackPriority | null
    adminNote?: StringNullableFilter<"Feedback"> | string | null
    adminReply?: StringNullableFilter<"Feedback"> | string | null
    assigneeId?: UuidNullableFilter<"Feedback"> | string | null
    resolvedAt?: DateTimeNullableFilter<"Feedback"> | Date | string | null
    userId?: UuidFilter<"Feedback"> | string
    region?: StringFilter<"Feedback"> | string
    createdAt?: DateTimeFilter<"Feedback"> | Date | string
    updatedAt?: DateTimeFilter<"Feedback"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Feedback"> | Date | string | null
  }

  export type FeedbackUpsertWithWhereUniqueWithoutAssigneeInput = {
    where: FeedbackWhereUniqueInput
    update: XOR<FeedbackUpdateWithoutAssigneeInput, FeedbackUncheckedUpdateWithoutAssigneeInput>
    create: XOR<FeedbackCreateWithoutAssigneeInput, FeedbackUncheckedCreateWithoutAssigneeInput>
  }

  export type FeedbackUpdateWithWhereUniqueWithoutAssigneeInput = {
    where: FeedbackWhereUniqueInput
    data: XOR<FeedbackUpdateWithoutAssigneeInput, FeedbackUncheckedUpdateWithoutAssigneeInput>
  }

  export type FeedbackUpdateManyWithWhereWithoutAssigneeInput = {
    where: FeedbackScalarWhereInput
    data: XOR<FeedbackUpdateManyMutationInput, FeedbackUncheckedUpdateManyWithoutAssigneeInput>
  }

  export type DevItemUpsertWithWhereUniqueWithoutOwnerInput = {
    where: DevItemWhereUniqueInput
    update: XOR<DevItemUpdateWithoutOwnerInput, DevItemUncheckedUpdateWithoutOwnerInput>
    create: XOR<DevItemCreateWithoutOwnerInput, DevItemUncheckedCreateWithoutOwnerInput>
  }

  export type DevItemUpdateWithWhereUniqueWithoutOwnerInput = {
    where: DevItemWhereUniqueInput
    data: XOR<DevItemUpdateWithoutOwnerInput, DevItemUncheckedUpdateWithoutOwnerInput>
  }

  export type DevItemUpdateManyWithWhereWithoutOwnerInput = {
    where: DevItemScalarWhereInput
    data: XOR<DevItemUpdateManyMutationInput, DevItemUncheckedUpdateManyWithoutOwnerInput>
  }

  export type DevItemUpsertWithWhereUniqueWithoutReporterInput = {
    where: DevItemWhereUniqueInput
    update: XOR<DevItemUpdateWithoutReporterInput, DevItemUncheckedUpdateWithoutReporterInput>
    create: XOR<DevItemCreateWithoutReporterInput, DevItemUncheckedCreateWithoutReporterInput>
  }

  export type DevItemUpdateWithWhereUniqueWithoutReporterInput = {
    where: DevItemWhereUniqueInput
    data: XOR<DevItemUpdateWithoutReporterInput, DevItemUncheckedUpdateWithoutReporterInput>
  }

  export type DevItemUpdateManyWithWhereWithoutReporterInput = {
    where: DevItemScalarWhereInput
    data: XOR<DevItemUpdateManyMutationInput, DevItemUncheckedUpdateManyWithoutReporterInput>
  }

  export type DevItemUpsertWithWhereUniqueWithoutReviewerInput = {
    where: DevItemWhereUniqueInput
    update: XOR<DevItemUpdateWithoutReviewerInput, DevItemUncheckedUpdateWithoutReviewerInput>
    create: XOR<DevItemCreateWithoutReviewerInput, DevItemUncheckedCreateWithoutReviewerInput>
  }

  export type DevItemUpdateWithWhereUniqueWithoutReviewerInput = {
    where: DevItemWhereUniqueInput
    data: XOR<DevItemUpdateWithoutReviewerInput, DevItemUncheckedUpdateWithoutReviewerInput>
  }

  export type DevItemUpdateManyWithWhereWithoutReviewerInput = {
    where: DevItemScalarWhereInput
    data: XOR<DevItemUpdateManyMutationInput, DevItemUncheckedUpdateManyWithoutReviewerInput>
  }

  export type ReleaseNoteUpsertWithWhereUniqueWithoutCreatorInput = {
    where: ReleaseNoteWhereUniqueInput
    update: XOR<ReleaseNoteUpdateWithoutCreatorInput, ReleaseNoteUncheckedUpdateWithoutCreatorInput>
    create: XOR<ReleaseNoteCreateWithoutCreatorInput, ReleaseNoteUncheckedCreateWithoutCreatorInput>
  }

  export type ReleaseNoteUpdateWithWhereUniqueWithoutCreatorInput = {
    where: ReleaseNoteWhereUniqueInput
    data: XOR<ReleaseNoteUpdateWithoutCreatorInput, ReleaseNoteUncheckedUpdateWithoutCreatorInput>
  }

  export type ReleaseNoteUpdateManyWithWhereWithoutCreatorInput = {
    where: ReleaseNoteScalarWhereInput
    data: XOR<ReleaseNoteUpdateManyMutationInput, ReleaseNoteUncheckedUpdateManyWithoutCreatorInput>
  }

  export type ReleaseNoteScalarWhereInput = {
    AND?: ReleaseNoteScalarWhereInput | ReleaseNoteScalarWhereInput[]
    OR?: ReleaseNoteScalarWhereInput[]
    NOT?: ReleaseNoteScalarWhereInput | ReleaseNoteScalarWhereInput[]
    id?: UuidFilter<"ReleaseNote"> | string
    version?: StringFilter<"ReleaseNote"> | string
    title?: StringFilter<"ReleaseNote"> | string
    content?: JsonNullableFilter<"ReleaseNote">
    releasedAt?: DateTimeFilter<"ReleaseNote"> | Date | string
    createdBy?: UuidFilter<"ReleaseNote"> | string
    createdAt?: DateTimeFilter<"ReleaseNote"> | Date | string
    updatedAt?: DateTimeFilter<"ReleaseNote"> | Date | string
  }

  export type SiteCheckpointUpsertWithWhereUniqueWithoutCreatorInput = {
    where: SiteCheckpointWhereUniqueInput
    update: XOR<SiteCheckpointUpdateWithoutCreatorInput, SiteCheckpointUncheckedUpdateWithoutCreatorInput>
    create: XOR<SiteCheckpointCreateWithoutCreatorInput, SiteCheckpointUncheckedCreateWithoutCreatorInput>
  }

  export type SiteCheckpointUpdateWithWhereUniqueWithoutCreatorInput = {
    where: SiteCheckpointWhereUniqueInput
    data: XOR<SiteCheckpointUpdateWithoutCreatorInput, SiteCheckpointUncheckedUpdateWithoutCreatorInput>
  }

  export type SiteCheckpointUpdateManyWithWhereWithoutCreatorInput = {
    where: SiteCheckpointScalarWhereInput
    data: XOR<SiteCheckpointUpdateManyMutationInput, SiteCheckpointUncheckedUpdateManyWithoutCreatorInput>
  }

  export type SiteCheckpointScalarWhereInput = {
    AND?: SiteCheckpointScalarWhereInput | SiteCheckpointScalarWhereInput[]
    OR?: SiteCheckpointScalarWhereInput[]
    NOT?: SiteCheckpointScalarWhereInput | SiteCheckpointScalarWhereInput[]
    id?: StringFilter<"SiteCheckpoint"> | string
    code?: StringFilter<"SiteCheckpoint"> | string
    name?: StringFilter<"SiteCheckpoint"> | string
    description?: StringNullableFilter<"SiteCheckpoint"> | string | null
    address?: StringNullableFilter<"SiteCheckpoint"> | string | null
    timezone?: StringFilter<"SiteCheckpoint"> | string
    latitude?: FloatFilter<"SiteCheckpoint"> | number
    longitude?: FloatFilter<"SiteCheckpoint"> | number
    geoPolicy?: EnumSiteGeoPolicyFilter<"SiteCheckpoint"> | $Enums.SiteGeoPolicy
    geoRadius?: IntFilter<"SiteCheckpoint"> | number
    geoAccuracyThreshold?: IntFilter<"SiteCheckpoint"> | number
    allowUnauthenticatedCheckin?: BoolFilter<"SiteCheckpoint"> | boolean
    isActive?: BoolFilter<"SiteCheckpoint"> | boolean
    accessMode?: EnumSiteCheckpointAccessModeFilter<"SiteCheckpoint"> | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: IntNullableFilter<"SiteCheckpoint"> | number | null
    qrGraceSeconds?: IntFilter<"SiteCheckpoint"> | number
    sharedCheckinEnabled?: BoolFilter<"SiteCheckpoint"> | boolean
    sharedCompanyId?: StringNullableFilter<"SiteCheckpoint"> | string | null
    sharedCompanyLabel?: StringNullableFilter<"SiteCheckpoint"> | string | null
    createdBy?: UuidFilter<"SiteCheckpoint"> | string
    createdAt?: DateTimeFilter<"SiteCheckpoint"> | Date | string
    updatedAt?: DateTimeFilter<"SiteCheckpoint"> | Date | string
  }

  export type SiteAttendanceEventUpsertWithWhereUniqueWithoutUserInput = {
    where: SiteAttendanceEventWhereUniqueInput
    update: XOR<SiteAttendanceEventUpdateWithoutUserInput, SiteAttendanceEventUncheckedUpdateWithoutUserInput>
    create: XOR<SiteAttendanceEventCreateWithoutUserInput, SiteAttendanceEventUncheckedCreateWithoutUserInput>
  }

  export type SiteAttendanceEventUpdateWithWhereUniqueWithoutUserInput = {
    where: SiteAttendanceEventWhereUniqueInput
    data: XOR<SiteAttendanceEventUpdateWithoutUserInput, SiteAttendanceEventUncheckedUpdateWithoutUserInput>
  }

  export type SiteAttendanceEventUpdateManyWithWhereWithoutUserInput = {
    where: SiteAttendanceEventScalarWhereInput
    data: XOR<SiteAttendanceEventUpdateManyMutationInput, SiteAttendanceEventUncheckedUpdateManyWithoutUserInput>
  }

  export type SiteAttendanceEventScalarWhereInput = {
    AND?: SiteAttendanceEventScalarWhereInput | SiteAttendanceEventScalarWhereInput[]
    OR?: SiteAttendanceEventScalarWhereInput[]
    NOT?: SiteAttendanceEventScalarWhereInput | SiteAttendanceEventScalarWhereInput[]
    id?: StringFilter<"SiteAttendanceEvent"> | string
    checkpointId?: StringFilter<"SiteAttendanceEvent"> | string
    userId?: UuidFilter<"SiteAttendanceEvent"> | string
    eventType?: EnumSiteEventTypeFilter<"SiteAttendanceEvent"> | $Enums.SiteEventType
    timestamp?: DateTimeFilter<"SiteAttendanceEvent"> | Date | string
    localDate?: StringFilter<"SiteAttendanceEvent"> | string
    authMethod?: EnumSiteAuthMethodFilter<"SiteAttendanceEvent"> | $Enums.SiteAuthMethod
    latitude?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    longitude?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    accuracy?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    geoStatus?: EnumSiteGeoStatusFilter<"SiteAttendanceEvent"> | $Enums.SiteGeoStatus
    distanceToCheckpoint?: FloatNullableFilter<"SiteAttendanceEvent"> | number | null
    deviceId?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    userAgent?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    ipAddress?: StringNullableFilter<"SiteAttendanceEvent"> | string | null
    createdAt?: DateTimeFilter<"SiteAttendanceEvent"> | Date | string
  }

  export type SiteDailySummaryUpsertWithWhereUniqueWithoutUserInput = {
    where: SiteDailySummaryWhereUniqueInput
    update: XOR<SiteDailySummaryUpdateWithoutUserInput, SiteDailySummaryUncheckedUpdateWithoutUserInput>
    create: XOR<SiteDailySummaryCreateWithoutUserInput, SiteDailySummaryUncheckedCreateWithoutUserInput>
  }

  export type SiteDailySummaryUpdateWithWhereUniqueWithoutUserInput = {
    where: SiteDailySummaryWhereUniqueInput
    data: XOR<SiteDailySummaryUpdateWithoutUserInput, SiteDailySummaryUncheckedUpdateWithoutUserInput>
  }

  export type SiteDailySummaryUpdateManyWithWhereWithoutUserInput = {
    where: SiteDailySummaryScalarWhereInput
    data: XOR<SiteDailySummaryUpdateManyMutationInput, SiteDailySummaryUncheckedUpdateManyWithoutUserInput>
  }

  export type SiteDailySummaryScalarWhereInput = {
    AND?: SiteDailySummaryScalarWhereInput | SiteDailySummaryScalarWhereInput[]
    OR?: SiteDailySummaryScalarWhereInput[]
    NOT?: SiteDailySummaryScalarWhereInput | SiteDailySummaryScalarWhereInput[]
    id?: StringFilter<"SiteDailySummary"> | string
    checkpointId?: StringFilter<"SiteDailySummary"> | string
    userId?: UuidFilter<"SiteDailySummary"> | string
    localDate?: StringFilter<"SiteDailySummary"> | string
    firstCheckInAt?: DateTimeNullableFilter<"SiteDailySummary"> | Date | string | null
    lastCheckOutAt?: DateTimeNullableFilter<"SiteDailySummary"> | Date | string | null
    checkInCount?: IntFilter<"SiteDailySummary"> | number
    checkOutCount?: IntFilter<"SiteDailySummary"> | number
    hasGeoAnomaly?: BoolFilter<"SiteDailySummary"> | boolean
    lastEventId?: StringNullableFilter<"SiteDailySummary"> | string | null
    updatedAt?: DateTimeFilter<"SiteDailySummary"> | Date | string
  }

  export type SharedCheckinPartnerUpsertWithWhereUniqueWithoutCreatorInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    update: XOR<SharedCheckinPartnerUpdateWithoutCreatorInput, SharedCheckinPartnerUncheckedUpdateWithoutCreatorInput>
    create: XOR<SharedCheckinPartnerCreateWithoutCreatorInput, SharedCheckinPartnerUncheckedCreateWithoutCreatorInput>
  }

  export type SharedCheckinPartnerUpdateWithWhereUniqueWithoutCreatorInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    data: XOR<SharedCheckinPartnerUpdateWithoutCreatorInput, SharedCheckinPartnerUncheckedUpdateWithoutCreatorInput>
  }

  export type SharedCheckinPartnerUpdateManyWithWhereWithoutCreatorInput = {
    where: SharedCheckinPartnerScalarWhereInput
    data: XOR<SharedCheckinPartnerUpdateManyMutationInput, SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorInput>
  }

  export type SharedCheckinPartnerScalarWhereInput = {
    AND?: SharedCheckinPartnerScalarWhereInput | SharedCheckinPartnerScalarWhereInput[]
    OR?: SharedCheckinPartnerScalarWhereInput[]
    NOT?: SharedCheckinPartnerScalarWhereInput | SharedCheckinPartnerScalarWhereInput[]
    id?: StringFilter<"SharedCheckinPartner"> | string
    checkpointId?: StringFilter<"SharedCheckinPartner"> | string
    companyId?: StringFilter<"SharedCheckinPartner"> | string
    companyLabel?: StringFilter<"SharedCheckinPartner"> | string
    displayLabel?: StringNullableFilter<"SharedCheckinPartner"> | string | null
    targetUrl?: StringFilter<"SharedCheckinPartner"> | string
    isActive?: BoolFilter<"SharedCheckinPartner"> | boolean
    sortOrder?: IntFilter<"SharedCheckinPartner"> | number
    createdBy?: UuidFilter<"SharedCheckinPartner"> | string
    updatedBy?: UuidFilter<"SharedCheckinPartner"> | string
    createdAt?: DateTimeFilter<"SharedCheckinPartner"> | Date | string
    updatedAt?: DateTimeFilter<"SharedCheckinPartner"> | Date | string
  }

  export type SharedCheckinPartnerUpsertWithWhereUniqueWithoutUpdaterInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    update: XOR<SharedCheckinPartnerUpdateWithoutUpdaterInput, SharedCheckinPartnerUncheckedUpdateWithoutUpdaterInput>
    create: XOR<SharedCheckinPartnerCreateWithoutUpdaterInput, SharedCheckinPartnerUncheckedCreateWithoutUpdaterInput>
  }

  export type SharedCheckinPartnerUpdateWithWhereUniqueWithoutUpdaterInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    data: XOR<SharedCheckinPartnerUpdateWithoutUpdaterInput, SharedCheckinPartnerUncheckedUpdateWithoutUpdaterInput>
  }

  export type SharedCheckinPartnerUpdateManyWithWhereWithoutUpdaterInput = {
    where: SharedCheckinPartnerScalarWhereInput
    data: XOR<SharedCheckinPartnerUpdateManyMutationInput, SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterInput>
  }

  export type MeetingAttendanceUpsertWithWhereUniqueWithoutUserInput = {
    where: MeetingAttendanceWhereUniqueInput
    update: XOR<MeetingAttendanceUpdateWithoutUserInput, MeetingAttendanceUncheckedUpdateWithoutUserInput>
    create: XOR<MeetingAttendanceCreateWithoutUserInput, MeetingAttendanceUncheckedCreateWithoutUserInput>
  }

  export type MeetingAttendanceUpdateWithWhereUniqueWithoutUserInput = {
    where: MeetingAttendanceWhereUniqueInput
    data: XOR<MeetingAttendanceUpdateWithoutUserInput, MeetingAttendanceUncheckedUpdateWithoutUserInput>
  }

  export type MeetingAttendanceUpdateManyWithWhereWithoutUserInput = {
    where: MeetingAttendanceScalarWhereInput
    data: XOR<MeetingAttendanceUpdateManyMutationInput, MeetingAttendanceUncheckedUpdateManyWithoutUserInput>
  }

  export type MeetingAttendanceScalarWhereInput = {
    AND?: MeetingAttendanceScalarWhereInput | MeetingAttendanceScalarWhereInput[]
    OR?: MeetingAttendanceScalarWhereInput[]
    NOT?: MeetingAttendanceScalarWhereInput | MeetingAttendanceScalarWhereInput[]
    id?: StringFilter<"MeetingAttendance"> | string
    userId?: UuidFilter<"MeetingAttendance"> | string
    meetingId?: StringFilter<"MeetingAttendance"> | string
    status?: EnumAttendanceStatusFilter<"MeetingAttendance"> | $Enums.AttendanceStatus
    checkinTime?: DateTimeNullableFilter<"MeetingAttendance"> | Date | string | null
    checkoutTime?: DateTimeNullableFilter<"MeetingAttendance"> | Date | string | null
    isLate?: BoolFilter<"MeetingAttendance"> | boolean
    isEarlyLeave?: BoolFilter<"MeetingAttendance"> | boolean
    notes?: StringNullableFilter<"MeetingAttendance"> | string | null
    checkinType?: EnumCheckinTypeNullableFilter<"MeetingAttendance"> | $Enums.CheckinType | null
    deviceId?: StringNullableFilter<"MeetingAttendance"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttendance"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendance"> | Date | string
  }

  export type MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutUserInput = {
    where: MeetingRequiredAttendeeWhereUniqueInput
    update: XOR<MeetingRequiredAttendeeUpdateWithoutUserInput, MeetingRequiredAttendeeUncheckedUpdateWithoutUserInput>
    create: XOR<MeetingRequiredAttendeeCreateWithoutUserInput, MeetingRequiredAttendeeUncheckedCreateWithoutUserInput>
  }

  export type MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutUserInput = {
    where: MeetingRequiredAttendeeWhereUniqueInput
    data: XOR<MeetingRequiredAttendeeUpdateWithoutUserInput, MeetingRequiredAttendeeUncheckedUpdateWithoutUserInput>
  }

  export type MeetingRequiredAttendeeUpdateManyWithWhereWithoutUserInput = {
    where: MeetingRequiredAttendeeScalarWhereInput
    data: XOR<MeetingRequiredAttendeeUpdateManyMutationInput, MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserInput>
  }

  export type MeetingRequiredAttendeeScalarWhereInput = {
    AND?: MeetingRequiredAttendeeScalarWhereInput | MeetingRequiredAttendeeScalarWhereInput[]
    OR?: MeetingRequiredAttendeeScalarWhereInput[]
    NOT?: MeetingRequiredAttendeeScalarWhereInput | MeetingRequiredAttendeeScalarWhereInput[]
    id?: StringFilter<"MeetingRequiredAttendee"> | string
    meetingId?: StringFilter<"MeetingRequiredAttendee"> | string
    userId?: UuidFilter<"MeetingRequiredAttendee"> | string
    role?: EnumAttendeeRoleFilter<"MeetingRequiredAttendee"> | $Enums.AttendeeRole
    checkinMode?: EnumAttendanceModeNullableFilter<"MeetingRequiredAttendee"> | $Enums.AttendanceMode | null
    createdAt?: DateTimeFilter<"MeetingRequiredAttendee"> | Date | string
  }

  export type MeetingTemplateUpsertWithWhereUniqueWithoutCreatorInput = {
    where: MeetingTemplateWhereUniqueInput
    update: XOR<MeetingTemplateUpdateWithoutCreatorInput, MeetingTemplateUncheckedUpdateWithoutCreatorInput>
    create: XOR<MeetingTemplateCreateWithoutCreatorInput, MeetingTemplateUncheckedCreateWithoutCreatorInput>
  }

  export type MeetingTemplateUpdateWithWhereUniqueWithoutCreatorInput = {
    where: MeetingTemplateWhereUniqueInput
    data: XOR<MeetingTemplateUpdateWithoutCreatorInput, MeetingTemplateUncheckedUpdateWithoutCreatorInput>
  }

  export type MeetingTemplateUpdateManyWithWhereWithoutCreatorInput = {
    where: MeetingTemplateScalarWhereInput
    data: XOR<MeetingTemplateUpdateManyMutationInput, MeetingTemplateUncheckedUpdateManyWithoutCreatorInput>
  }

  export type MeetingTemplateScalarWhereInput = {
    AND?: MeetingTemplateScalarWhereInput | MeetingTemplateScalarWhereInput[]
    OR?: MeetingTemplateScalarWhereInput[]
    NOT?: MeetingTemplateScalarWhereInput | MeetingTemplateScalarWhereInput[]
    id?: StringFilter<"MeetingTemplate"> | string
    name?: StringFilter<"MeetingTemplate"> | string
    title?: StringFilter<"MeetingTemplate"> | string
    description?: StringNullableFilter<"MeetingTemplate"> | string | null
    duration?: IntFilter<"MeetingTemplate"> | number
    timezone?: StringFilter<"MeetingTemplate"> | string
    location?: StringNullableFilter<"MeetingTemplate"> | string | null
    type?: EnumMeetingTypeFilter<"MeetingTemplate"> | $Enums.MeetingType
    creatorId?: UuidFilter<"MeetingTemplate"> | string
    isPublic?: BoolFilter<"MeetingTemplate"> | boolean
    createdAt?: DateTimeFilter<"MeetingTemplate"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingTemplate"> | Date | string
  }

  export type MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutUserInput = {
    where: MeetingTemplateAttendeeWhereUniqueInput
    update: XOR<MeetingTemplateAttendeeUpdateWithoutUserInput, MeetingTemplateAttendeeUncheckedUpdateWithoutUserInput>
    create: XOR<MeetingTemplateAttendeeCreateWithoutUserInput, MeetingTemplateAttendeeUncheckedCreateWithoutUserInput>
  }

  export type MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutUserInput = {
    where: MeetingTemplateAttendeeWhereUniqueInput
    data: XOR<MeetingTemplateAttendeeUpdateWithoutUserInput, MeetingTemplateAttendeeUncheckedUpdateWithoutUserInput>
  }

  export type MeetingTemplateAttendeeUpdateManyWithWhereWithoutUserInput = {
    where: MeetingTemplateAttendeeScalarWhereInput
    data: XOR<MeetingTemplateAttendeeUpdateManyMutationInput, MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserInput>
  }

  export type MeetingTemplateAttendeeScalarWhereInput = {
    AND?: MeetingTemplateAttendeeScalarWhereInput | MeetingTemplateAttendeeScalarWhereInput[]
    OR?: MeetingTemplateAttendeeScalarWhereInput[]
    NOT?: MeetingTemplateAttendeeScalarWhereInput | MeetingTemplateAttendeeScalarWhereInput[]
    id?: StringFilter<"MeetingTemplateAttendee"> | string
    templateId?: StringFilter<"MeetingTemplateAttendee"> | string
    userId?: UuidFilter<"MeetingTemplateAttendee"> | string
    createdAt?: DateTimeFilter<"MeetingTemplateAttendee"> | Date | string
  }

  export type MeetingAttendanceLeaveRecordUpsertWithWhereUniqueWithoutUserInput = {
    where: MeetingAttendanceLeaveRecordWhereUniqueInput
    update: XOR<MeetingAttendanceLeaveRecordUpdateWithoutUserInput, MeetingAttendanceLeaveRecordUncheckedUpdateWithoutUserInput>
    create: XOR<MeetingAttendanceLeaveRecordCreateWithoutUserInput, MeetingAttendanceLeaveRecordUncheckedCreateWithoutUserInput>
  }

  export type MeetingAttendanceLeaveRecordUpdateWithWhereUniqueWithoutUserInput = {
    where: MeetingAttendanceLeaveRecordWhereUniqueInput
    data: XOR<MeetingAttendanceLeaveRecordUpdateWithoutUserInput, MeetingAttendanceLeaveRecordUncheckedUpdateWithoutUserInput>
  }

  export type MeetingAttendanceLeaveRecordUpdateManyWithWhereWithoutUserInput = {
    where: MeetingAttendanceLeaveRecordScalarWhereInput
    data: XOR<MeetingAttendanceLeaveRecordUpdateManyMutationInput, MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserInput>
  }

  export type MeetingAttendanceLeaveRecordScalarWhereInput = {
    AND?: MeetingAttendanceLeaveRecordScalarWhereInput | MeetingAttendanceLeaveRecordScalarWhereInput[]
    OR?: MeetingAttendanceLeaveRecordScalarWhereInput[]
    NOT?: MeetingAttendanceLeaveRecordScalarWhereInput | MeetingAttendanceLeaveRecordScalarWhereInput[]
    id?: StringFilter<"MeetingAttendanceLeaveRecord"> | string
    userId?: UuidFilter<"MeetingAttendanceLeaveRecord"> | string
    type?: EnumLeaveTypeFilter<"MeetingAttendanceLeaveRecord"> | $Enums.LeaveType
    startDate?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    endDate?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    reason?: StringNullableFilter<"MeetingAttendanceLeaveRecord"> | string | null
    status?: EnumLeaveStatusFilter<"MeetingAttendanceLeaveRecord"> | $Enums.LeaveStatus
    createdAt?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceLeaveRecord"> | Date | string
  }

  export type MeetingAttendanceAuditLogUpsertWithWhereUniqueWithoutUserInput = {
    where: MeetingAttendanceAuditLogWhereUniqueInput
    update: XOR<MeetingAttendanceAuditLogUpdateWithoutUserInput, MeetingAttendanceAuditLogUncheckedUpdateWithoutUserInput>
    create: XOR<MeetingAttendanceAuditLogCreateWithoutUserInput, MeetingAttendanceAuditLogUncheckedCreateWithoutUserInput>
  }

  export type MeetingAttendanceAuditLogUpdateWithWhereUniqueWithoutUserInput = {
    where: MeetingAttendanceAuditLogWhereUniqueInput
    data: XOR<MeetingAttendanceAuditLogUpdateWithoutUserInput, MeetingAttendanceAuditLogUncheckedUpdateWithoutUserInput>
  }

  export type MeetingAttendanceAuditLogUpdateManyWithWhereWithoutUserInput = {
    where: MeetingAttendanceAuditLogScalarWhereInput
    data: XOR<MeetingAttendanceAuditLogUpdateManyMutationInput, MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserInput>
  }

  export type MeetingAttendanceAuditLogScalarWhereInput = {
    AND?: MeetingAttendanceAuditLogScalarWhereInput | MeetingAttendanceAuditLogScalarWhereInput[]
    OR?: MeetingAttendanceAuditLogScalarWhereInput[]
    NOT?: MeetingAttendanceAuditLogScalarWhereInput | MeetingAttendanceAuditLogScalarWhereInput[]
    id?: StringFilter<"MeetingAttendanceAuditLog"> | string
    userId?: UuidFilter<"MeetingAttendanceAuditLog"> | string
    userEmail?: StringFilter<"MeetingAttendanceAuditLog"> | string
    userName?: StringFilter<"MeetingAttendanceAuditLog"> | string
    userRole?: StringFilter<"MeetingAttendanceAuditLog"> | string
    action?: StringFilter<"MeetingAttendanceAuditLog"> | string
    resource?: StringFilter<"MeetingAttendanceAuditLog"> | string
    resourceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    method?: StringFilter<"MeetingAttendanceAuditLog"> | string
    endpoint?: StringFilter<"MeetingAttendanceAuditLog"> | string
    statusCode?: IntFilter<"MeetingAttendanceAuditLog"> | number
    source?: StringFilter<"MeetingAttendanceAuditLog"> | string
    deviceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    sessionId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    requestId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    traceId?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    geoLocation?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    ipAddress?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    userAgent?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    fieldDiffs?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    requestBody?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    changes?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    reasonCode?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    reasonText?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    errorMessage?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    prevHash?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    hash?: StringNullableFilter<"MeetingAttendanceAuditLog"> | string | null
    isRedacted?: BoolFilter<"MeetingAttendanceAuditLog"> | boolean
    isTombstoned?: BoolFilter<"MeetingAttendanceAuditLog"> | boolean
    retentionUntil?: DateTimeNullableFilter<"MeetingAttendanceAuditLog"> | Date | string | null
    duration?: IntNullableFilter<"MeetingAttendanceAuditLog"> | number | null
    createdAt?: DateTimeFilter<"MeetingAttendanceAuditLog"> | Date | string
  }

  export type MeetingUpsertWithWhereUniqueWithoutCreatorInput = {
    where: MeetingWhereUniqueInput
    update: XOR<MeetingUpdateWithoutCreatorInput, MeetingUncheckedUpdateWithoutCreatorInput>
    create: XOR<MeetingCreateWithoutCreatorInput, MeetingUncheckedCreateWithoutCreatorInput>
  }

  export type MeetingUpdateWithWhereUniqueWithoutCreatorInput = {
    where: MeetingWhereUniqueInput
    data: XOR<MeetingUpdateWithoutCreatorInput, MeetingUncheckedUpdateWithoutCreatorInput>
  }

  export type MeetingUpdateManyWithWhereWithoutCreatorInput = {
    where: MeetingScalarWhereInput
    data: XOR<MeetingUpdateManyMutationInput, MeetingUncheckedUpdateManyWithoutCreatorInput>
  }

  export type MeetingScalarWhereInput = {
    AND?: MeetingScalarWhereInput | MeetingScalarWhereInput[]
    OR?: MeetingScalarWhereInput[]
    NOT?: MeetingScalarWhereInput | MeetingScalarWhereInput[]
    id?: StringFilter<"Meeting"> | string
    title?: StringFilter<"Meeting"> | string
    description?: StringNullableFilter<"Meeting"> | string | null
    startTime?: DateTimeFilter<"Meeting"> | Date | string
    endTime?: DateTimeFilter<"Meeting"> | Date | string
    timezone?: StringFilter<"Meeting"> | string
    location?: StringNullableFilter<"Meeting"> | string | null
    type?: EnumMeetingTypeFilter<"Meeting"> | $Enums.MeetingType
    status?: EnumMeetingStatusFilter<"Meeting"> | $Enums.MeetingStatus
    qrCodeOnline?: StringNullableFilter<"Meeting"> | string | null
    qrCodeOffline?: StringNullableFilter<"Meeting"> | string | null
    creatorId?: UuidFilter<"Meeting"> | string
    seriesId?: StringNullableFilter<"Meeting"> | string | null
    instanceNumber?: IntNullableFilter<"Meeting"> | number | null
    isSeriesMaster?: BoolFilter<"Meeting"> | boolean
    hasCustomAttendees?: BoolFilter<"Meeting"> | boolean
    city?: StringNullableFilter<"Meeting"> | string | null
    enforceCheckinMode?: BoolFilter<"Meeting"> | boolean
    createdAt?: DateTimeFilter<"Meeting"> | Date | string
    updatedAt?: DateTimeFilter<"Meeting"> | Date | string
  }

  export type MeetingSeriesUpsertWithWhereUniqueWithoutCreatorInput = {
    where: MeetingSeriesWhereUniqueInput
    update: XOR<MeetingSeriesUpdateWithoutCreatorInput, MeetingSeriesUncheckedUpdateWithoutCreatorInput>
    create: XOR<MeetingSeriesCreateWithoutCreatorInput, MeetingSeriesUncheckedCreateWithoutCreatorInput>
  }

  export type MeetingSeriesUpdateWithWhereUniqueWithoutCreatorInput = {
    where: MeetingSeriesWhereUniqueInput
    data: XOR<MeetingSeriesUpdateWithoutCreatorInput, MeetingSeriesUncheckedUpdateWithoutCreatorInput>
  }

  export type MeetingSeriesUpdateManyWithWhereWithoutCreatorInput = {
    where: MeetingSeriesScalarWhereInput
    data: XOR<MeetingSeriesUpdateManyMutationInput, MeetingSeriesUncheckedUpdateManyWithoutCreatorInput>
  }

  export type MeetingSeriesScalarWhereInput = {
    AND?: MeetingSeriesScalarWhereInput | MeetingSeriesScalarWhereInput[]
    OR?: MeetingSeriesScalarWhereInput[]
    NOT?: MeetingSeriesScalarWhereInput | MeetingSeriesScalarWhereInput[]
    id?: StringFilter<"MeetingSeries"> | string
    title?: StringFilter<"MeetingSeries"> | string
    description?: StringNullableFilter<"MeetingSeries"> | string | null
    pattern?: EnumRecurrencePatternFilter<"MeetingSeries"> | $Enums.RecurrencePattern
    frequency?: IntFilter<"MeetingSeries"> | number
    startDate?: DateTimeFilter<"MeetingSeries"> | Date | string
    endDate?: DateTimeNullableFilter<"MeetingSeries"> | Date | string | null
    maxOccurrences?: IntNullableFilter<"MeetingSeries"> | number | null
    timezone?: StringFilter<"MeetingSeries"> | string
    location?: StringNullableFilter<"MeetingSeries"> | string | null
    type?: EnumMeetingTypeFilter<"MeetingSeries"> | $Enums.MeetingType
    creatorId?: UuidFilter<"MeetingSeries"> | string
    isActive?: BoolFilter<"MeetingSeries"> | boolean
    city?: StringNullableFilter<"MeetingSeries"> | string | null
    enforceCheckinMode?: BoolFilter<"MeetingSeries"> | boolean
    createdAt?: DateTimeFilter<"MeetingSeries"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingSeries"> | Date | string
  }

  export type MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutUserInput = {
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
    update: XOR<MeetingSeriesAttendeePreferenceUpdateWithoutUserInput, MeetingSeriesAttendeePreferenceUncheckedUpdateWithoutUserInput>
    create: XOR<MeetingSeriesAttendeePreferenceCreateWithoutUserInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutUserInput>
  }

  export type MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutUserInput = {
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
    data: XOR<MeetingSeriesAttendeePreferenceUpdateWithoutUserInput, MeetingSeriesAttendeePreferenceUncheckedUpdateWithoutUserInput>
  }

  export type MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutUserInput = {
    where: MeetingSeriesAttendeePreferenceScalarWhereInput
    data: XOR<MeetingSeriesAttendeePreferenceUpdateManyMutationInput, MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserInput>
  }

  export type MeetingSeriesAttendeePreferenceScalarWhereInput = {
    AND?: MeetingSeriesAttendeePreferenceScalarWhereInput | MeetingSeriesAttendeePreferenceScalarWhereInput[]
    OR?: MeetingSeriesAttendeePreferenceScalarWhereInput[]
    NOT?: MeetingSeriesAttendeePreferenceScalarWhereInput | MeetingSeriesAttendeePreferenceScalarWhereInput[]
    seriesId?: StringFilter<"MeetingSeriesAttendeePreference"> | string
    userId?: UuidFilter<"MeetingSeriesAttendeePreference"> | string
    defaultCheckinMode?: EnumAttendanceModeFilter<"MeetingSeriesAttendeePreference"> | $Enums.AttendanceMode
    updatedByUserId?: UuidNullableFilter<"MeetingSeriesAttendeePreference"> | string | null
    createdAt?: DateTimeFilter<"MeetingSeriesAttendeePreference"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingSeriesAttendeePreference"> | Date | string
  }

  export type MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutUserInput = {
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
    update: XOR<MeetingSeriesAttendeeExceptionUpdateWithoutUserInput, MeetingSeriesAttendeeExceptionUncheckedUpdateWithoutUserInput>
    create: XOR<MeetingSeriesAttendeeExceptionCreateWithoutUserInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutUserInput>
  }

  export type MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutUserInput = {
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
    data: XOR<MeetingSeriesAttendeeExceptionUpdateWithoutUserInput, MeetingSeriesAttendeeExceptionUncheckedUpdateWithoutUserInput>
  }

  export type MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutUserInput = {
    where: MeetingSeriesAttendeeExceptionScalarWhereInput
    data: XOR<MeetingSeriesAttendeeExceptionUpdateManyMutationInput, MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserInput>
  }

  export type MeetingSeriesAttendeeExceptionScalarWhereInput = {
    AND?: MeetingSeriesAttendeeExceptionScalarWhereInput | MeetingSeriesAttendeeExceptionScalarWhereInput[]
    OR?: MeetingSeriesAttendeeExceptionScalarWhereInput[]
    NOT?: MeetingSeriesAttendeeExceptionScalarWhereInput | MeetingSeriesAttendeeExceptionScalarWhereInput[]
    seriesId?: StringFilter<"MeetingSeriesAttendeeException"> | string
    userId?: UuidFilter<"MeetingSeriesAttendeeException"> | string
    excludedBy?: UuidFilter<"MeetingSeriesAttendeeException"> | string
    excludedAt?: DateTimeFilter<"MeetingSeriesAttendeeException"> | Date | string
    reason?: StringNullableFilter<"MeetingSeriesAttendeeException"> | string | null
  }

  export type MeetingAgendaSectionUpsertWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    update: XOR<MeetingAgendaSectionUpdateWithoutCreatedByInput, MeetingAgendaSectionUncheckedUpdateWithoutCreatedByInput>
    create: XOR<MeetingAgendaSectionCreateWithoutCreatedByInput, MeetingAgendaSectionUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAgendaSectionUpdateWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    data: XOR<MeetingAgendaSectionUpdateWithoutCreatedByInput, MeetingAgendaSectionUncheckedUpdateWithoutCreatedByInput>
  }

  export type MeetingAgendaSectionUpdateManyWithWhereWithoutCreatedByInput = {
    where: MeetingAgendaSectionScalarWhereInput
    data: XOR<MeetingAgendaSectionUpdateManyMutationInput, MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByInput>
  }

  export type MeetingAgendaItemUpsertWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAgendaItemWhereUniqueInput
    update: XOR<MeetingAgendaItemUpdateWithoutCreatedByInput, MeetingAgendaItemUncheckedUpdateWithoutCreatedByInput>
    create: XOR<MeetingAgendaItemCreateWithoutCreatedByInput, MeetingAgendaItemUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemUpdateWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAgendaItemWhereUniqueInput
    data: XOR<MeetingAgendaItemUpdateWithoutCreatedByInput, MeetingAgendaItemUncheckedUpdateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemUpdateManyWithWhereWithoutCreatedByInput = {
    where: MeetingAgendaItemScalarWhereInput
    data: XOR<MeetingAgendaItemUpdateManyMutationInput, MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByInput>
  }

  export type MeetingAgendaItemUpsertWithWhereUniqueWithoutPresenterInput = {
    where: MeetingAgendaItemWhereUniqueInput
    update: XOR<MeetingAgendaItemUpdateWithoutPresenterInput, MeetingAgendaItemUncheckedUpdateWithoutPresenterInput>
    create: XOR<MeetingAgendaItemCreateWithoutPresenterInput, MeetingAgendaItemUncheckedCreateWithoutPresenterInput>
  }

  export type MeetingAgendaItemUpdateWithWhereUniqueWithoutPresenterInput = {
    where: MeetingAgendaItemWhereUniqueInput
    data: XOR<MeetingAgendaItemUpdateWithoutPresenterInput, MeetingAgendaItemUncheckedUpdateWithoutPresenterInput>
  }

  export type MeetingAgendaItemUpdateManyWithWhereWithoutPresenterInput = {
    where: MeetingAgendaItemScalarWhereInput
    data: XOR<MeetingAgendaItemUpdateManyMutationInput, MeetingAgendaItemUncheckedUpdateManyWithoutPresenterInput>
  }

  export type MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssigneeInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    update: XOR<MeetingAgendaItemUploadTaskUpdateWithoutAssigneeInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAssigneeInput>
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssigneeInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssigneeInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssigneeInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateWithoutAssigneeInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAssigneeInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssigneeInput = {
    where: MeetingAgendaItemUploadTaskScalarWhereInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateManyMutationInput, MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeInput>
  }

  export type MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAssignedByInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    update: XOR<MeetingAgendaItemUploadTaskUpdateWithoutAssignedByInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAssignedByInput>
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutAssignedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAssignedByInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAssignedByInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateWithoutAssignedByInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAssignedByInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAssignedByInput = {
    where: MeetingAgendaItemUploadTaskScalarWhereInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateManyMutationInput, MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByInput>
  }

  export type MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    update: XOR<MeetingAgendaItemUploadTaskUpdateWithoutCreatedByInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutCreatedByInput>
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutCreatedByInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateWithoutCreatedByInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutCreatedByInput = {
    where: MeetingAgendaItemUploadTaskScalarWhereInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateManyMutationInput, MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByInput>
  }

  export type MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutUploadedByInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    update: XOR<MeetingAgendaItemAttachmentUpdateWithoutUploadedByInput, MeetingAgendaItemAttachmentUncheckedUpdateWithoutUploadedByInput>
    create: XOR<MeetingAgendaItemAttachmentCreateWithoutUploadedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutUploadedByInput>
  }

  export type MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutUploadedByInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    data: XOR<MeetingAgendaItemAttachmentUpdateWithoutUploadedByInput, MeetingAgendaItemAttachmentUncheckedUpdateWithoutUploadedByInput>
  }

  export type MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutUploadedByInput = {
    where: MeetingAgendaItemAttachmentScalarWhereInput
    data: XOR<MeetingAgendaItemAttachmentUpdateManyMutationInput, MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByInput>
  }

  export type MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    update: XOR<MeetingAgendaItemAttachmentUpdateWithoutCreatedByInput, MeetingAgendaItemAttachmentUncheckedUpdateWithoutCreatedByInput>
    create: XOR<MeetingAgendaItemAttachmentCreateWithoutCreatedByInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    data: XOR<MeetingAgendaItemAttachmentUpdateWithoutCreatedByInput, MeetingAgendaItemAttachmentUncheckedUpdateWithoutCreatedByInput>
  }

  export type MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutCreatedByInput = {
    where: MeetingAgendaItemAttachmentScalarWhereInput
    data: XOR<MeetingAgendaItemAttachmentUpdateManyMutationInput, MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByInput>
  }

  export type MeetingAttachmentUpsertWithWhereUniqueWithoutUploadedByInput = {
    where: MeetingAttachmentWhereUniqueInput
    update: XOR<MeetingAttachmentUpdateWithoutUploadedByInput, MeetingAttachmentUncheckedUpdateWithoutUploadedByInput>
    create: XOR<MeetingAttachmentCreateWithoutUploadedByInput, MeetingAttachmentUncheckedCreateWithoutUploadedByInput>
  }

  export type MeetingAttachmentUpdateWithWhereUniqueWithoutUploadedByInput = {
    where: MeetingAttachmentWhereUniqueInput
    data: XOR<MeetingAttachmentUpdateWithoutUploadedByInput, MeetingAttachmentUncheckedUpdateWithoutUploadedByInput>
  }

  export type MeetingAttachmentUpdateManyWithWhereWithoutUploadedByInput = {
    where: MeetingAttachmentScalarWhereInput
    data: XOR<MeetingAttachmentUpdateManyMutationInput, MeetingAttachmentUncheckedUpdateManyWithoutUploadedByInput>
  }

  export type MeetingAttachmentUpsertWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAttachmentWhereUniqueInput
    update: XOR<MeetingAttachmentUpdateWithoutCreatedByInput, MeetingAttachmentUncheckedUpdateWithoutCreatedByInput>
    create: XOR<MeetingAttachmentCreateWithoutCreatedByInput, MeetingAttachmentUncheckedCreateWithoutCreatedByInput>
  }

  export type MeetingAttachmentUpdateWithWhereUniqueWithoutCreatedByInput = {
    where: MeetingAttachmentWhereUniqueInput
    data: XOR<MeetingAttachmentUpdateWithoutCreatedByInput, MeetingAttachmentUncheckedUpdateWithoutCreatedByInput>
  }

  export type MeetingAttachmentUpdateManyWithWhereWithoutCreatedByInput = {
    where: MeetingAttachmentScalarWhereInput
    data: XOR<MeetingAttachmentUpdateManyMutationInput, MeetingAttachmentUncheckedUpdateManyWithoutCreatedByInput>
  }

  export type AIToolGrantUserUpsertWithWhereUniqueWithoutUserInput = {
    where: AIToolGrantUserWhereUniqueInput
    update: XOR<AIToolGrantUserUpdateWithoutUserInput, AIToolGrantUserUncheckedUpdateWithoutUserInput>
    create: XOR<AIToolGrantUserCreateWithoutUserInput, AIToolGrantUserUncheckedCreateWithoutUserInput>
  }

  export type AIToolGrantUserUpdateWithWhereUniqueWithoutUserInput = {
    where: AIToolGrantUserWhereUniqueInput
    data: XOR<AIToolGrantUserUpdateWithoutUserInput, AIToolGrantUserUncheckedUpdateWithoutUserInput>
  }

  export type AIToolGrantUserUpdateManyWithWhereWithoutUserInput = {
    where: AIToolGrantUserScalarWhereInput
    data: XOR<AIToolGrantUserUpdateManyMutationInput, AIToolGrantUserUncheckedUpdateManyWithoutUserInput>
  }

  export type AIToolGrantUserScalarWhereInput = {
    AND?: AIToolGrantUserScalarWhereInput | AIToolGrantUserScalarWhereInput[]
    OR?: AIToolGrantUserScalarWhereInput[]
    NOT?: AIToolGrantUserScalarWhereInput | AIToolGrantUserScalarWhereInput[]
    id?: UuidFilter<"AIToolGrantUser"> | string
    userId?: UuidFilter<"AIToolGrantUser"> | string
    toolName?: StringFilter<"AIToolGrantUser"> | string
    effect?: StringFilter<"AIToolGrantUser"> | string
    reason?: StringNullableFilter<"AIToolGrantUser"> | string | null
    createdAt?: DateTimeFilter<"AIToolGrantUser"> | Date | string
    updatedAt?: DateTimeFilter<"AIToolGrantUser"> | Date | string
    createdBy?: UuidNullableFilter<"AIToolGrantUser"> | string | null
  }

  export type AdpPtoScheduleUpsertWithWhereUniqueWithoutUserInput = {
    where: AdpPtoScheduleWhereUniqueInput
    update: XOR<AdpPtoScheduleUpdateWithoutUserInput, AdpPtoScheduleUncheckedUpdateWithoutUserInput>
    create: XOR<AdpPtoScheduleCreateWithoutUserInput, AdpPtoScheduleUncheckedCreateWithoutUserInput>
  }

  export type AdpPtoScheduleUpdateWithWhereUniqueWithoutUserInput = {
    where: AdpPtoScheduleWhereUniqueInput
    data: XOR<AdpPtoScheduleUpdateWithoutUserInput, AdpPtoScheduleUncheckedUpdateWithoutUserInput>
  }

  export type AdpPtoScheduleUpdateManyWithWhereWithoutUserInput = {
    where: AdpPtoScheduleScalarWhereInput
    data: XOR<AdpPtoScheduleUpdateManyMutationInput, AdpPtoScheduleUncheckedUpdateManyWithoutUserInput>
  }

  export type AdpPtoScheduleScalarWhereInput = {
    AND?: AdpPtoScheduleScalarWhereInput | AdpPtoScheduleScalarWhereInput[]
    OR?: AdpPtoScheduleScalarWhereInput[]
    NOT?: AdpPtoScheduleScalarWhereInput | AdpPtoScheduleScalarWhereInput[]
    id?: StringFilter<"AdpPtoSchedule"> | string
    userId?: UuidFilter<"AdpPtoSchedule"> | string
    adpAoid?: StringFilter<"AdpPtoSchedule"> | string
    leaveDate?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    startTime?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    endTime?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
    adpEntryId?: StringFilter<"AdpPtoSchedule"> | string
    syncedAt?: DateTimeFilter<"AdpPtoSchedule"> | Date | string
  }

  export type EmployeeSlugBindingUpsertWithoutUserInput = {
    update: XOR<EmployeeSlugBindingUpdateWithoutUserInput, EmployeeSlugBindingUncheckedUpdateWithoutUserInput>
    create: XOR<EmployeeSlugBindingCreateWithoutUserInput, EmployeeSlugBindingUncheckedCreateWithoutUserInput>
    where?: EmployeeSlugBindingWhereInput
  }

  export type EmployeeSlugBindingUpdateToOneWithWhereWithoutUserInput = {
    where?: EmployeeSlugBindingWhereInput
    data: XOR<EmployeeSlugBindingUpdateWithoutUserInput, EmployeeSlugBindingUncheckedUpdateWithoutUserInput>
  }

  export type EmployeeSlugBindingUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    apps?: InternalAppUpdateManyWithoutOwnerBindingNestedInput
    tokens?: InternalAppEmployeeTokenUpdateManyWithoutBindingNestedInput
  }

  export type EmployeeSlugBindingUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    apps?: InternalAppUncheckedUpdateManyWithoutOwnerBindingNestedInput
    tokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type InternalAppUpsertWithWhereUniqueWithoutCreatorInput = {
    where: InternalAppWhereUniqueInput
    update: XOR<InternalAppUpdateWithoutCreatorInput, InternalAppUncheckedUpdateWithoutCreatorInput>
    create: XOR<InternalAppCreateWithoutCreatorInput, InternalAppUncheckedCreateWithoutCreatorInput>
  }

  export type InternalAppUpdateWithWhereUniqueWithoutCreatorInput = {
    where: InternalAppWhereUniqueInput
    data: XOR<InternalAppUpdateWithoutCreatorInput, InternalAppUncheckedUpdateWithoutCreatorInput>
  }

  export type InternalAppUpdateManyWithWhereWithoutCreatorInput = {
    where: InternalAppScalarWhereInput
    data: XOR<InternalAppUpdateManyMutationInput, InternalAppUncheckedUpdateManyWithoutCreatorInput>
  }

  export type InternalAppScalarWhereInput = {
    AND?: InternalAppScalarWhereInput | InternalAppScalarWhereInput[]
    OR?: InternalAppScalarWhereInput[]
    NOT?: InternalAppScalarWhereInput | InternalAppScalarWhereInput[]
    id?: UuidFilter<"InternalApp"> | string
    employeeSlug?: StringFilter<"InternalApp"> | string
    appSlug?: StringFilter<"InternalApp"> | string
    displayName?: StringNullableFilter<"InternalApp"> | string | null
    runtime?: EnumInternalAppRuntimeFilter<"InternalApp"> | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFilter<"InternalApp"> | $Enums.InternalAppStatus
    url?: StringFilter<"InternalApp"> | string
    giteaRepoFullName?: StringFilter<"InternalApp"> | string
    lastDeployedAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    currentDeploymentId?: UuidNullableFilter<"InternalApp"> | string | null
    destroyedAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    retentionUntil?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    forceDisabledAt?: DateTimeNullableFilter<"InternalApp"> | Date | string | null
    forceDisabledReason?: StringNullableFilter<"InternalApp"> | string | null
    forceDisabledById?: UuidNullableFilter<"InternalApp"> | string | null
    organizationId?: UuidFilter<"InternalApp"> | string
    createdById?: UuidFilter<"InternalApp"> | string
    createdAt?: DateTimeFilter<"InternalApp"> | Date | string
    updatedAt?: DateTimeFilter<"InternalApp"> | Date | string
  }

  export type InternalAppUpsertWithWhereUniqueWithoutForceDisablerInput = {
    where: InternalAppWhereUniqueInput
    update: XOR<InternalAppUpdateWithoutForceDisablerInput, InternalAppUncheckedUpdateWithoutForceDisablerInput>
    create: XOR<InternalAppCreateWithoutForceDisablerInput, InternalAppUncheckedCreateWithoutForceDisablerInput>
  }

  export type InternalAppUpdateWithWhereUniqueWithoutForceDisablerInput = {
    where: InternalAppWhereUniqueInput
    data: XOR<InternalAppUpdateWithoutForceDisablerInput, InternalAppUncheckedUpdateWithoutForceDisablerInput>
  }

  export type InternalAppUpdateManyWithWhereWithoutForceDisablerInput = {
    where: InternalAppScalarWhereInput
    data: XOR<InternalAppUpdateManyMutationInput, InternalAppUncheckedUpdateManyWithoutForceDisablerInput>
  }

  export type InternalAppDeploymentUpsertWithWhereUniqueWithoutCreatorInput = {
    where: InternalAppDeploymentWhereUniqueInput
    update: XOR<InternalAppDeploymentUpdateWithoutCreatorInput, InternalAppDeploymentUncheckedUpdateWithoutCreatorInput>
    create: XOR<InternalAppDeploymentCreateWithoutCreatorInput, InternalAppDeploymentUncheckedCreateWithoutCreatorInput>
  }

  export type InternalAppDeploymentUpdateWithWhereUniqueWithoutCreatorInput = {
    where: InternalAppDeploymentWhereUniqueInput
    data: XOR<InternalAppDeploymentUpdateWithoutCreatorInput, InternalAppDeploymentUncheckedUpdateWithoutCreatorInput>
  }

  export type InternalAppDeploymentUpdateManyWithWhereWithoutCreatorInput = {
    where: InternalAppDeploymentScalarWhereInput
    data: XOR<InternalAppDeploymentUpdateManyMutationInput, InternalAppDeploymentUncheckedUpdateManyWithoutCreatorInput>
  }

  export type InternalAppDeploymentScalarWhereInput = {
    AND?: InternalAppDeploymentScalarWhereInput | InternalAppDeploymentScalarWhereInput[]
    OR?: InternalAppDeploymentScalarWhereInput[]
    NOT?: InternalAppDeploymentScalarWhereInput | InternalAppDeploymentScalarWhereInput[]
    id?: UuidFilter<"InternalAppDeployment"> | string
    appId?: UuidFilter<"InternalAppDeployment"> | string
    commitSha?: StringNullableFilter<"InternalAppDeployment"> | string | null
    status?: EnumInternalAppDeploymentStatusFilter<"InternalAppDeployment"> | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: StringNullableFilter<"InternalAppDeployment"> | string | null
    healthCheckLog?: JsonNullableFilter<"InternalAppDeployment">
    startedAt?: DateTimeNullableFilter<"InternalAppDeployment"> | Date | string | null
    finishedAt?: DateTimeNullableFilter<"InternalAppDeployment"> | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFilter<"InternalAppDeployment"> | $Enums.InternalAppDeploymentTrigger
    organizationId?: UuidFilter<"InternalAppDeployment"> | string
    createdById?: UuidFilter<"InternalAppDeployment"> | string
    createdAt?: DateTimeFilter<"InternalAppDeployment"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppDeployment"> | Date | string
  }

  export type InternalAppEnvVarUpsertWithWhereUniqueWithoutCreatorInput = {
    where: InternalAppEnvVarWhereUniqueInput
    update: XOR<InternalAppEnvVarUpdateWithoutCreatorInput, InternalAppEnvVarUncheckedUpdateWithoutCreatorInput>
    create: XOR<InternalAppEnvVarCreateWithoutCreatorInput, InternalAppEnvVarUncheckedCreateWithoutCreatorInput>
  }

  export type InternalAppEnvVarUpdateWithWhereUniqueWithoutCreatorInput = {
    where: InternalAppEnvVarWhereUniqueInput
    data: XOR<InternalAppEnvVarUpdateWithoutCreatorInput, InternalAppEnvVarUncheckedUpdateWithoutCreatorInput>
  }

  export type InternalAppEnvVarUpdateManyWithWhereWithoutCreatorInput = {
    where: InternalAppEnvVarScalarWhereInput
    data: XOR<InternalAppEnvVarUpdateManyMutationInput, InternalAppEnvVarUncheckedUpdateManyWithoutCreatorInput>
  }

  export type InternalAppEnvVarScalarWhereInput = {
    AND?: InternalAppEnvVarScalarWhereInput | InternalAppEnvVarScalarWhereInput[]
    OR?: InternalAppEnvVarScalarWhereInput[]
    NOT?: InternalAppEnvVarScalarWhereInput | InternalAppEnvVarScalarWhereInput[]
    id?: UuidFilter<"InternalAppEnvVar"> | string
    appId?: UuidFilter<"InternalAppEnvVar"> | string
    key?: StringFilter<"InternalAppEnvVar"> | string
    valueEncrypted?: BytesFilter<"InternalAppEnvVar"> | Bytes
    valueIv?: BytesFilter<"InternalAppEnvVar"> | Bytes
    kmsKeyVersion?: IntFilter<"InternalAppEnvVar"> | number
    organizationId?: UuidFilter<"InternalAppEnvVar"> | string
    createdById?: UuidFilter<"InternalAppEnvVar"> | string
    createdAt?: DateTimeFilter<"InternalAppEnvVar"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppEnvVar"> | Date | string
  }

  export type InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutCreatorInput = {
    where: InternalAppEmployeeTokenWhereUniqueInput
    update: XOR<InternalAppEmployeeTokenUpdateWithoutCreatorInput, InternalAppEmployeeTokenUncheckedUpdateWithoutCreatorInput>
    create: XOR<InternalAppEmployeeTokenCreateWithoutCreatorInput, InternalAppEmployeeTokenUncheckedCreateWithoutCreatorInput>
  }

  export type InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutCreatorInput = {
    where: InternalAppEmployeeTokenWhereUniqueInput
    data: XOR<InternalAppEmployeeTokenUpdateWithoutCreatorInput, InternalAppEmployeeTokenUncheckedUpdateWithoutCreatorInput>
  }

  export type InternalAppEmployeeTokenUpdateManyWithWhereWithoutCreatorInput = {
    where: InternalAppEmployeeTokenScalarWhereInput
    data: XOR<InternalAppEmployeeTokenUpdateManyMutationInput, InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorInput>
  }

  export type InternalAppEmployeeTokenScalarWhereInput = {
    AND?: InternalAppEmployeeTokenScalarWhereInput | InternalAppEmployeeTokenScalarWhereInput[]
    OR?: InternalAppEmployeeTokenScalarWhereInput[]
    NOT?: InternalAppEmployeeTokenScalarWhereInput | InternalAppEmployeeTokenScalarWhereInput[]
    id?: UuidFilter<"InternalAppEmployeeToken"> | string
    employeeSlug?: StringFilter<"InternalAppEmployeeToken"> | string
    tokenHash?: StringFilter<"InternalAppEmployeeToken"> | string
    prefix?: StringFilter<"InternalAppEmployeeToken"> | string
    status?: EnumInternalAppTokenStatusFilter<"InternalAppEmployeeToken"> | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    expiresAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    revokedAt?: DateTimeNullableFilter<"InternalAppEmployeeToken"> | Date | string | null
    revokedReason?: EnumInternalAppTokenRevokeReasonNullableFilter<"InternalAppEmployeeToken"> | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: DateTimeNullableFilter<"InternalAppEmployeeToken"> | Date | string | null
    organizationId?: UuidFilter<"InternalAppEmployeeToken"> | string
    createdById?: UuidFilter<"InternalAppEmployeeToken"> | string
    createdAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
    updatedAt?: DateTimeFilter<"InternalAppEmployeeToken"> | Date | string
  }

  export type InternalAppEventUpsertWithWhereUniqueWithoutActorInput = {
    where: InternalAppEventWhereUniqueInput
    update: XOR<InternalAppEventUpdateWithoutActorInput, InternalAppEventUncheckedUpdateWithoutActorInput>
    create: XOR<InternalAppEventCreateWithoutActorInput, InternalAppEventUncheckedCreateWithoutActorInput>
  }

  export type InternalAppEventUpdateWithWhereUniqueWithoutActorInput = {
    where: InternalAppEventWhereUniqueInput
    data: XOR<InternalAppEventUpdateWithoutActorInput, InternalAppEventUncheckedUpdateWithoutActorInput>
  }

  export type InternalAppEventUpdateManyWithWhereWithoutActorInput = {
    where: InternalAppEventScalarWhereInput
    data: XOR<InternalAppEventUpdateManyMutationInput, InternalAppEventUncheckedUpdateManyWithoutActorInput>
  }

  export type InternalAppEventScalarWhereInput = {
    AND?: InternalAppEventScalarWhereInput | InternalAppEventScalarWhereInput[]
    OR?: InternalAppEventScalarWhereInput[]
    NOT?: InternalAppEventScalarWhereInput | InternalAppEventScalarWhereInput[]
    id?: UuidFilter<"InternalAppEvent"> | string
    appId?: UuidNullableFilter<"InternalAppEvent"> | string | null
    employeeSlug?: StringNullableFilter<"InternalAppEvent"> | string | null
    actorId?: UuidNullableFilter<"InternalAppEvent"> | string | null
    actorRole?: EnumInternalAppActorRoleFilter<"InternalAppEvent"> | $Enums.InternalAppActorRole
    eventType?: StringFilter<"InternalAppEvent"> | string
    outcome?: EnumInternalAppEventOutcomeFilter<"InternalAppEvent"> | $Enums.InternalAppEventOutcome
    errorCode?: StringNullableFilter<"InternalAppEvent"> | string | null
    durationMs?: IntNullableFilter<"InternalAppEvent"> | number | null
    payload?: JsonFilter<"InternalAppEvent">
    requestId?: StringNullableFilter<"InternalAppEvent"> | string | null
    ipAddr?: StringNullableFilter<"InternalAppEvent"> | string | null
    userAgent?: StringNullableFilter<"InternalAppEvent"> | string | null
    organizationId?: UuidFilter<"InternalAppEvent"> | string
    createdAt?: DateTimeFilter<"InternalAppEvent"> | Date | string
  }

  export type AiUsageTokenUpsertWithWhereUniqueWithoutUserInput = {
    where: AiUsageTokenWhereUniqueInput
    update: XOR<AiUsageTokenUpdateWithoutUserInput, AiUsageTokenUncheckedUpdateWithoutUserInput>
    create: XOR<AiUsageTokenCreateWithoutUserInput, AiUsageTokenUncheckedCreateWithoutUserInput>
  }

  export type AiUsageTokenUpdateWithWhereUniqueWithoutUserInput = {
    where: AiUsageTokenWhereUniqueInput
    data: XOR<AiUsageTokenUpdateWithoutUserInput, AiUsageTokenUncheckedUpdateWithoutUserInput>
  }

  export type AiUsageTokenUpdateManyWithWhereWithoutUserInput = {
    where: AiUsageTokenScalarWhereInput
    data: XOR<AiUsageTokenUpdateManyMutationInput, AiUsageTokenUncheckedUpdateManyWithoutUserInput>
  }

  export type AiUsageTokenUpsertWithWhereUniqueWithoutRevokedByInput = {
    where: AiUsageTokenWhereUniqueInput
    update: XOR<AiUsageTokenUpdateWithoutRevokedByInput, AiUsageTokenUncheckedUpdateWithoutRevokedByInput>
    create: XOR<AiUsageTokenCreateWithoutRevokedByInput, AiUsageTokenUncheckedCreateWithoutRevokedByInput>
  }

  export type AiUsageTokenUpdateWithWhereUniqueWithoutRevokedByInput = {
    where: AiUsageTokenWhereUniqueInput
    data: XOR<AiUsageTokenUpdateWithoutRevokedByInput, AiUsageTokenUncheckedUpdateWithoutRevokedByInput>
  }

  export type AiUsageTokenUpdateManyWithWhereWithoutRevokedByInput = {
    where: AiUsageTokenScalarWhereInput
    data: XOR<AiUsageTokenUpdateManyMutationInput, AiUsageTokenUncheckedUpdateManyWithoutRevokedByInput>
  }

  export type AiUsageDeviceUpsertWithWhereUniqueWithoutUserInput = {
    where: AiUsageDeviceWhereUniqueInput
    update: XOR<AiUsageDeviceUpdateWithoutUserInput, AiUsageDeviceUncheckedUpdateWithoutUserInput>
    create: XOR<AiUsageDeviceCreateWithoutUserInput, AiUsageDeviceUncheckedCreateWithoutUserInput>
  }

  export type AiUsageDeviceUpdateWithWhereUniqueWithoutUserInput = {
    where: AiUsageDeviceWhereUniqueInput
    data: XOR<AiUsageDeviceUpdateWithoutUserInput, AiUsageDeviceUncheckedUpdateWithoutUserInput>
  }

  export type AiUsageDeviceUpdateManyWithWhereWithoutUserInput = {
    where: AiUsageDeviceScalarWhereInput
    data: XOR<AiUsageDeviceUpdateManyMutationInput, AiUsageDeviceUncheckedUpdateManyWithoutUserInput>
  }

  export type AiUsageDeviceUpsertWithWhereUniqueWithoutBlockedByInput = {
    where: AiUsageDeviceWhereUniqueInput
    update: XOR<AiUsageDeviceUpdateWithoutBlockedByInput, AiUsageDeviceUncheckedUpdateWithoutBlockedByInput>
    create: XOR<AiUsageDeviceCreateWithoutBlockedByInput, AiUsageDeviceUncheckedCreateWithoutBlockedByInput>
  }

  export type AiUsageDeviceUpdateWithWhereUniqueWithoutBlockedByInput = {
    where: AiUsageDeviceWhereUniqueInput
    data: XOR<AiUsageDeviceUpdateWithoutBlockedByInput, AiUsageDeviceUncheckedUpdateWithoutBlockedByInput>
  }

  export type AiUsageDeviceUpdateManyWithWhereWithoutBlockedByInput = {
    where: AiUsageDeviceScalarWhereInput
    data: XOR<AiUsageDeviceUpdateManyMutationInput, AiUsageDeviceUncheckedUpdateManyWithoutBlockedByInput>
  }

  export type AiUsageEventUpsertWithWhereUniqueWithoutUserInput = {
    where: AiUsageEventWhereUniqueInput
    update: XOR<AiUsageEventUpdateWithoutUserInput, AiUsageEventUncheckedUpdateWithoutUserInput>
    create: XOR<AiUsageEventCreateWithoutUserInput, AiUsageEventUncheckedCreateWithoutUserInput>
  }

  export type AiUsageEventUpdateWithWhereUniqueWithoutUserInput = {
    where: AiUsageEventWhereUniqueInput
    data: XOR<AiUsageEventUpdateWithoutUserInput, AiUsageEventUncheckedUpdateWithoutUserInput>
  }

  export type AiUsageEventUpdateManyWithWhereWithoutUserInput = {
    where: AiUsageEventScalarWhereInput
    data: XOR<AiUsageEventUpdateManyMutationInput, AiUsageEventUncheckedUpdateManyWithoutUserInput>
  }

  export type AiUsageDailyRollupUpsertWithWhereUniqueWithoutUserInput = {
    where: AiUsageDailyRollupWhereUniqueInput
    update: XOR<AiUsageDailyRollupUpdateWithoutUserInput, AiUsageDailyRollupUncheckedUpdateWithoutUserInput>
    create: XOR<AiUsageDailyRollupCreateWithoutUserInput, AiUsageDailyRollupUncheckedCreateWithoutUserInput>
  }

  export type AiUsageDailyRollupUpdateWithWhereUniqueWithoutUserInput = {
    where: AiUsageDailyRollupWhereUniqueInput
    data: XOR<AiUsageDailyRollupUpdateWithoutUserInput, AiUsageDailyRollupUncheckedUpdateWithoutUserInput>
  }

  export type AiUsageDailyRollupUpdateManyWithWhereWithoutUserInput = {
    where: AiUsageDailyRollupScalarWhereInput
    data: XOR<AiUsageDailyRollupUpdateManyMutationInput, AiUsageDailyRollupUncheckedUpdateManyWithoutUserInput>
  }

  export type RolePermissionCreateWithoutRoleInput = {
    id?: string
    createdAt?: Date | string
    permission: PermissionCreateNestedOneWithoutRolesInput
  }

  export type RolePermissionUncheckedCreateWithoutRoleInput = {
    id?: string
    permissionId: string
    createdAt?: Date | string
  }

  export type RolePermissionCreateOrConnectWithoutRoleInput = {
    where: RolePermissionWhereUniqueInput
    create: XOR<RolePermissionCreateWithoutRoleInput, RolePermissionUncheckedCreateWithoutRoleInput>
  }

  export type RolePermissionCreateManyRoleInputEnvelope = {
    data: RolePermissionCreateManyRoleInput | RolePermissionCreateManyRoleInput[]
    skipDuplicates?: boolean
  }

  export type UserRoleCreateWithoutRoleInput = {
    id?: string
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
    user: UserCreateNestedOneWithoutRolesInput
    organization?: OrganizationCreateNestedOneWithoutUserRolesInput
  }

  export type UserRoleUncheckedCreateWithoutRoleInput = {
    id?: string
    userId: string
    organizationId?: string | null
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
  }

  export type UserRoleCreateOrConnectWithoutRoleInput = {
    where: UserRoleWhereUniqueInput
    create: XOR<UserRoleCreateWithoutRoleInput, UserRoleUncheckedCreateWithoutRoleInput>
  }

  export type UserRoleCreateManyRoleInputEnvelope = {
    data: UserRoleCreateManyRoleInput | UserRoleCreateManyRoleInput[]
    skipDuplicates?: boolean
  }

  export type AIToolGrantCreateWithoutRoleInput = {
    id?: string
    toolName: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AIToolGrantUncheckedCreateWithoutRoleInput = {
    id?: string
    toolName: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AIToolGrantCreateOrConnectWithoutRoleInput = {
    where: AIToolGrantWhereUniqueInput
    create: XOR<AIToolGrantCreateWithoutRoleInput, AIToolGrantUncheckedCreateWithoutRoleInput>
  }

  export type AIToolGrantCreateManyRoleInputEnvelope = {
    data: AIToolGrantCreateManyRoleInput | AIToolGrantCreateManyRoleInput[]
    skipDuplicates?: boolean
  }

  export type RoleDataScopeCreateWithoutRoleInput = {
    id?: string
    resource?: string
    createdAt?: Date | string
    dataScope: DataScopeCreateNestedOneWithoutRoleScopesInput
  }

  export type RoleDataScopeUncheckedCreateWithoutRoleInput = {
    id?: string
    dataScopeId: string
    resource?: string
    createdAt?: Date | string
  }

  export type RoleDataScopeCreateOrConnectWithoutRoleInput = {
    where: RoleDataScopeWhereUniqueInput
    create: XOR<RoleDataScopeCreateWithoutRoleInput, RoleDataScopeUncheckedCreateWithoutRoleInput>
  }

  export type RoleDataScopeCreateManyRoleInputEnvelope = {
    data: RoleDataScopeCreateManyRoleInput | RoleDataScopeCreateManyRoleInput[]
    skipDuplicates?: boolean
  }

  export type RolePermissionUpsertWithWhereUniqueWithoutRoleInput = {
    where: RolePermissionWhereUniqueInput
    update: XOR<RolePermissionUpdateWithoutRoleInput, RolePermissionUncheckedUpdateWithoutRoleInput>
    create: XOR<RolePermissionCreateWithoutRoleInput, RolePermissionUncheckedCreateWithoutRoleInput>
  }

  export type RolePermissionUpdateWithWhereUniqueWithoutRoleInput = {
    where: RolePermissionWhereUniqueInput
    data: XOR<RolePermissionUpdateWithoutRoleInput, RolePermissionUncheckedUpdateWithoutRoleInput>
  }

  export type RolePermissionUpdateManyWithWhereWithoutRoleInput = {
    where: RolePermissionScalarWhereInput
    data: XOR<RolePermissionUpdateManyMutationInput, RolePermissionUncheckedUpdateManyWithoutRoleInput>
  }

  export type RolePermissionScalarWhereInput = {
    AND?: RolePermissionScalarWhereInput | RolePermissionScalarWhereInput[]
    OR?: RolePermissionScalarWhereInput[]
    NOT?: RolePermissionScalarWhereInput | RolePermissionScalarWhereInput[]
    id?: UuidFilter<"RolePermission"> | string
    roleId?: UuidFilter<"RolePermission"> | string
    permissionId?: UuidFilter<"RolePermission"> | string
    createdAt?: DateTimeFilter<"RolePermission"> | Date | string
  }

  export type UserRoleUpsertWithWhereUniqueWithoutRoleInput = {
    where: UserRoleWhereUniqueInput
    update: XOR<UserRoleUpdateWithoutRoleInput, UserRoleUncheckedUpdateWithoutRoleInput>
    create: XOR<UserRoleCreateWithoutRoleInput, UserRoleUncheckedCreateWithoutRoleInput>
  }

  export type UserRoleUpdateWithWhereUniqueWithoutRoleInput = {
    where: UserRoleWhereUniqueInput
    data: XOR<UserRoleUpdateWithoutRoleInput, UserRoleUncheckedUpdateWithoutRoleInput>
  }

  export type UserRoleUpdateManyWithWhereWithoutRoleInput = {
    where: UserRoleScalarWhereInput
    data: XOR<UserRoleUpdateManyMutationInput, UserRoleUncheckedUpdateManyWithoutRoleInput>
  }

  export type AIToolGrantUpsertWithWhereUniqueWithoutRoleInput = {
    where: AIToolGrantWhereUniqueInput
    update: XOR<AIToolGrantUpdateWithoutRoleInput, AIToolGrantUncheckedUpdateWithoutRoleInput>
    create: XOR<AIToolGrantCreateWithoutRoleInput, AIToolGrantUncheckedCreateWithoutRoleInput>
  }

  export type AIToolGrantUpdateWithWhereUniqueWithoutRoleInput = {
    where: AIToolGrantWhereUniqueInput
    data: XOR<AIToolGrantUpdateWithoutRoleInput, AIToolGrantUncheckedUpdateWithoutRoleInput>
  }

  export type AIToolGrantUpdateManyWithWhereWithoutRoleInput = {
    where: AIToolGrantScalarWhereInput
    data: XOR<AIToolGrantUpdateManyMutationInput, AIToolGrantUncheckedUpdateManyWithoutRoleInput>
  }

  export type AIToolGrantScalarWhereInput = {
    AND?: AIToolGrantScalarWhereInput | AIToolGrantScalarWhereInput[]
    OR?: AIToolGrantScalarWhereInput[]
    NOT?: AIToolGrantScalarWhereInput | AIToolGrantScalarWhereInput[]
    id?: UuidFilter<"AIToolGrant"> | string
    roleId?: UuidFilter<"AIToolGrant"> | string
    toolName?: StringFilter<"AIToolGrant"> | string
    createdAt?: DateTimeFilter<"AIToolGrant"> | Date | string
    updatedAt?: DateTimeFilter<"AIToolGrant"> | Date | string
    createdBy?: UuidNullableFilter<"AIToolGrant"> | string | null
  }

  export type RoleDataScopeUpsertWithWhereUniqueWithoutRoleInput = {
    where: RoleDataScopeWhereUniqueInput
    update: XOR<RoleDataScopeUpdateWithoutRoleInput, RoleDataScopeUncheckedUpdateWithoutRoleInput>
    create: XOR<RoleDataScopeCreateWithoutRoleInput, RoleDataScopeUncheckedCreateWithoutRoleInput>
  }

  export type RoleDataScopeUpdateWithWhereUniqueWithoutRoleInput = {
    where: RoleDataScopeWhereUniqueInput
    data: XOR<RoleDataScopeUpdateWithoutRoleInput, RoleDataScopeUncheckedUpdateWithoutRoleInput>
  }

  export type RoleDataScopeUpdateManyWithWhereWithoutRoleInput = {
    where: RoleDataScopeScalarWhereInput
    data: XOR<RoleDataScopeUpdateManyMutationInput, RoleDataScopeUncheckedUpdateManyWithoutRoleInput>
  }

  export type RoleDataScopeScalarWhereInput = {
    AND?: RoleDataScopeScalarWhereInput | RoleDataScopeScalarWhereInput[]
    OR?: RoleDataScopeScalarWhereInput[]
    NOT?: RoleDataScopeScalarWhereInput | RoleDataScopeScalarWhereInput[]
    id?: UuidFilter<"RoleDataScope"> | string
    roleId?: UuidFilter<"RoleDataScope"> | string
    dataScopeId?: UuidFilter<"RoleDataScope"> | string
    resource?: StringFilter<"RoleDataScope"> | string
    createdAt?: DateTimeFilter<"RoleDataScope"> | Date | string
  }

  export type RolePermissionCreateWithoutPermissionInput = {
    id?: string
    createdAt?: Date | string
    role: RoleCreateNestedOneWithoutPermissionsInput
  }

  export type RolePermissionUncheckedCreateWithoutPermissionInput = {
    id?: string
    roleId: string
    createdAt?: Date | string
  }

  export type RolePermissionCreateOrConnectWithoutPermissionInput = {
    where: RolePermissionWhereUniqueInput
    create: XOR<RolePermissionCreateWithoutPermissionInput, RolePermissionUncheckedCreateWithoutPermissionInput>
  }

  export type RolePermissionCreateManyPermissionInputEnvelope = {
    data: RolePermissionCreateManyPermissionInput | RolePermissionCreateManyPermissionInput[]
    skipDuplicates?: boolean
  }

  export type RolePermissionUpsertWithWhereUniqueWithoutPermissionInput = {
    where: RolePermissionWhereUniqueInput
    update: XOR<RolePermissionUpdateWithoutPermissionInput, RolePermissionUncheckedUpdateWithoutPermissionInput>
    create: XOR<RolePermissionCreateWithoutPermissionInput, RolePermissionUncheckedCreateWithoutPermissionInput>
  }

  export type RolePermissionUpdateWithWhereUniqueWithoutPermissionInput = {
    where: RolePermissionWhereUniqueInput
    data: XOR<RolePermissionUpdateWithoutPermissionInput, RolePermissionUncheckedUpdateWithoutPermissionInput>
  }

  export type RolePermissionUpdateManyWithWhereWithoutPermissionInput = {
    where: RolePermissionScalarWhereInput
    data: XOR<RolePermissionUpdateManyMutationInput, RolePermissionUncheckedUpdateManyWithoutPermissionInput>
  }

  export type WorkflowRoleUserCreateWithoutWorkflowRoleInput = {
    id?: string
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutWorkflowRolesInput
  }

  export type WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput = {
    id?: string
    userId: string
    createdAt?: Date | string
  }

  export type WorkflowRoleUserCreateOrConnectWithoutWorkflowRoleInput = {
    where: WorkflowRoleUserWhereUniqueInput
    create: XOR<WorkflowRoleUserCreateWithoutWorkflowRoleInput, WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput>
  }

  export type WorkflowRoleUserCreateManyWorkflowRoleInputEnvelope = {
    data: WorkflowRoleUserCreateManyWorkflowRoleInput | WorkflowRoleUserCreateManyWorkflowRoleInput[]
    skipDuplicates?: boolean
  }

  export type WorkflowRoleUserUpsertWithWhereUniqueWithoutWorkflowRoleInput = {
    where: WorkflowRoleUserWhereUniqueInput
    update: XOR<WorkflowRoleUserUpdateWithoutWorkflowRoleInput, WorkflowRoleUserUncheckedUpdateWithoutWorkflowRoleInput>
    create: XOR<WorkflowRoleUserCreateWithoutWorkflowRoleInput, WorkflowRoleUserUncheckedCreateWithoutWorkflowRoleInput>
  }

  export type WorkflowRoleUserUpdateWithWhereUniqueWithoutWorkflowRoleInput = {
    where: WorkflowRoleUserWhereUniqueInput
    data: XOR<WorkflowRoleUserUpdateWithoutWorkflowRoleInput, WorkflowRoleUserUncheckedUpdateWithoutWorkflowRoleInput>
  }

  export type WorkflowRoleUserUpdateManyWithWhereWithoutWorkflowRoleInput = {
    where: WorkflowRoleUserScalarWhereInput
    data: XOR<WorkflowRoleUserUpdateManyMutationInput, WorkflowRoleUserUncheckedUpdateManyWithoutWorkflowRoleInput>
  }

  export type UserCreateWithoutWorkflowRolesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutWorkflowRolesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutWorkflowRolesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutWorkflowRolesInput, UserUncheckedCreateWithoutWorkflowRolesInput>
  }

  export type WorkflowRoleCreateWithoutUserAssignmentsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    ruleType: $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WorkflowRoleUncheckedCreateWithoutUserAssignmentsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    ruleType: $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type WorkflowRoleCreateOrConnectWithoutUserAssignmentsInput = {
    where: WorkflowRoleWhereUniqueInput
    create: XOR<WorkflowRoleCreateWithoutUserAssignmentsInput, WorkflowRoleUncheckedCreateWithoutUserAssignmentsInput>
  }

  export type UserUpsertWithoutWorkflowRolesInput = {
    update: XOR<UserUpdateWithoutWorkflowRolesInput, UserUncheckedUpdateWithoutWorkflowRolesInput>
    create: XOR<UserCreateWithoutWorkflowRolesInput, UserUncheckedCreateWithoutWorkflowRolesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutWorkflowRolesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutWorkflowRolesInput, UserUncheckedUpdateWithoutWorkflowRolesInput>
  }

  export type UserUpdateWithoutWorkflowRolesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutWorkflowRolesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type WorkflowRoleUpsertWithoutUserAssignmentsInput = {
    update: XOR<WorkflowRoleUpdateWithoutUserAssignmentsInput, WorkflowRoleUncheckedUpdateWithoutUserAssignmentsInput>
    create: XOR<WorkflowRoleCreateWithoutUserAssignmentsInput, WorkflowRoleUncheckedCreateWithoutUserAssignmentsInput>
    where?: WorkflowRoleWhereInput
  }

  export type WorkflowRoleUpdateToOneWithWhereWithoutUserAssignmentsInput = {
    where?: WorkflowRoleWhereInput
    data: XOR<WorkflowRoleUpdateWithoutUserAssignmentsInput, WorkflowRoleUncheckedUpdateWithoutUserAssignmentsInput>
  }

  export type WorkflowRoleUpdateWithoutUserAssignmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: EnumWorkflowRuleTypeFieldUpdateOperationsInput | $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleUncheckedUpdateWithoutUserAssignmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: EnumWorkflowRuleTypeFieldUpdateOperationsInput | $Enums.WorkflowRuleType
    ruleConfig?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleCreateWithoutUsersInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    permissions?: RolePermissionCreateNestedManyWithoutRoleInput
    aiToolGrants?: AIToolGrantCreateNestedManyWithoutRoleInput
    dataScopes?: RoleDataScopeCreateNestedManyWithoutRoleInput
  }

  export type RoleUncheckedCreateWithoutUsersInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    permissions?: RolePermissionUncheckedCreateNestedManyWithoutRoleInput
    aiToolGrants?: AIToolGrantUncheckedCreateNestedManyWithoutRoleInput
    dataScopes?: RoleDataScopeUncheckedCreateNestedManyWithoutRoleInput
  }

  export type RoleCreateOrConnectWithoutUsersInput = {
    where: RoleWhereUniqueInput
    create: XOR<RoleCreateWithoutUsersInput, RoleUncheckedCreateWithoutUsersInput>
  }

  export type UserCreateWithoutRolesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutRolesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutRolesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutRolesInput, UserUncheckedCreateWithoutRolesInput>
  }

  export type OrganizationCreateWithoutUserRolesInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutUserRolesInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutUserRolesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutUserRolesInput, OrganizationUncheckedCreateWithoutUserRolesInput>
  }

  export type RoleUpsertWithoutUsersInput = {
    update: XOR<RoleUpdateWithoutUsersInput, RoleUncheckedUpdateWithoutUsersInput>
    create: XOR<RoleCreateWithoutUsersInput, RoleUncheckedCreateWithoutUsersInput>
    where?: RoleWhereInput
  }

  export type RoleUpdateToOneWithWhereWithoutUsersInput = {
    where?: RoleWhereInput
    data: XOR<RoleUpdateWithoutUsersInput, RoleUncheckedUpdateWithoutUsersInput>
  }

  export type RoleUpdateWithoutUsersInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permissions?: RolePermissionUpdateManyWithoutRoleNestedInput
    aiToolGrants?: AIToolGrantUpdateManyWithoutRoleNestedInput
    dataScopes?: RoleDataScopeUpdateManyWithoutRoleNestedInput
  }

  export type RoleUncheckedUpdateWithoutUsersInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permissions?: RolePermissionUncheckedUpdateManyWithoutRoleNestedInput
    aiToolGrants?: AIToolGrantUncheckedUpdateManyWithoutRoleNestedInput
    dataScopes?: RoleDataScopeUncheckedUpdateManyWithoutRoleNestedInput
  }

  export type UserUpsertWithoutRolesInput = {
    update: XOR<UserUpdateWithoutRolesInput, UserUncheckedUpdateWithoutRolesInput>
    create: XOR<UserCreateWithoutRolesInput, UserUncheckedCreateWithoutRolesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutRolesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutRolesInput, UserUncheckedUpdateWithoutRolesInput>
  }

  export type UserUpdateWithoutRolesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutRolesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutUserRolesInput = {
    update: XOR<OrganizationUpdateWithoutUserRolesInput, OrganizationUncheckedUpdateWithoutUserRolesInput>
    create: XOR<OrganizationCreateWithoutUserRolesInput, OrganizationUncheckedCreateWithoutUserRolesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutUserRolesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutUserRolesInput, OrganizationUncheckedUpdateWithoutUserRolesInput>
  }

  export type OrganizationUpdateWithoutUserRolesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutUserRolesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type PermissionCreateWithoutRolesInput = {
    id?: string
    resource: string
    action: string
    description?: string | null
    module?: string | null
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PermissionUncheckedCreateWithoutRolesInput = {
    id?: string
    resource: string
    action: string
    description?: string | null
    module?: string | null
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PermissionCreateOrConnectWithoutRolesInput = {
    where: PermissionWhereUniqueInput
    create: XOR<PermissionCreateWithoutRolesInput, PermissionUncheckedCreateWithoutRolesInput>
  }

  export type RoleCreateWithoutPermissionsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    users?: UserRoleCreateNestedManyWithoutRoleInput
    aiToolGrants?: AIToolGrantCreateNestedManyWithoutRoleInput
    dataScopes?: RoleDataScopeCreateNestedManyWithoutRoleInput
  }

  export type RoleUncheckedCreateWithoutPermissionsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    users?: UserRoleUncheckedCreateNestedManyWithoutRoleInput
    aiToolGrants?: AIToolGrantUncheckedCreateNestedManyWithoutRoleInput
    dataScopes?: RoleDataScopeUncheckedCreateNestedManyWithoutRoleInput
  }

  export type RoleCreateOrConnectWithoutPermissionsInput = {
    where: RoleWhereUniqueInput
    create: XOR<RoleCreateWithoutPermissionsInput, RoleUncheckedCreateWithoutPermissionsInput>
  }

  export type PermissionUpsertWithoutRolesInput = {
    update: XOR<PermissionUpdateWithoutRolesInput, PermissionUncheckedUpdateWithoutRolesInput>
    create: XOR<PermissionCreateWithoutRolesInput, PermissionUncheckedCreateWithoutRolesInput>
    where?: PermissionWhereInput
  }

  export type PermissionUpdateToOneWithWhereWithoutRolesInput = {
    where?: PermissionWhereInput
    data: XOR<PermissionUpdateWithoutRolesInput, PermissionUncheckedUpdateWithoutRolesInput>
  }

  export type PermissionUpdateWithoutRolesInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    module?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PermissionUncheckedUpdateWithoutRolesInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    module?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleUpsertWithoutPermissionsInput = {
    update: XOR<RoleUpdateWithoutPermissionsInput, RoleUncheckedUpdateWithoutPermissionsInput>
    create: XOR<RoleCreateWithoutPermissionsInput, RoleUncheckedCreateWithoutPermissionsInput>
    where?: RoleWhereInput
  }

  export type RoleUpdateToOneWithWhereWithoutPermissionsInput = {
    where?: RoleWhereInput
    data: XOR<RoleUpdateWithoutPermissionsInput, RoleUncheckedUpdateWithoutPermissionsInput>
  }

  export type RoleUpdateWithoutPermissionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    users?: UserRoleUpdateManyWithoutRoleNestedInput
    aiToolGrants?: AIToolGrantUpdateManyWithoutRoleNestedInput
    dataScopes?: RoleDataScopeUpdateManyWithoutRoleNestedInput
  }

  export type RoleUncheckedUpdateWithoutPermissionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    users?: UserRoleUncheckedUpdateManyWithoutRoleNestedInput
    aiToolGrants?: AIToolGrantUncheckedUpdateManyWithoutRoleNestedInput
    dataScopes?: RoleDataScopeUncheckedUpdateManyWithoutRoleNestedInput
  }

  export type RoleDataScopeCreateWithoutDataScopeInput = {
    id?: string
    resource?: string
    createdAt?: Date | string
    role: RoleCreateNestedOneWithoutDataScopesInput
  }

  export type RoleDataScopeUncheckedCreateWithoutDataScopeInput = {
    id?: string
    roleId: string
    resource?: string
    createdAt?: Date | string
  }

  export type RoleDataScopeCreateOrConnectWithoutDataScopeInput = {
    where: RoleDataScopeWhereUniqueInput
    create: XOR<RoleDataScopeCreateWithoutDataScopeInput, RoleDataScopeUncheckedCreateWithoutDataScopeInput>
  }

  export type RoleDataScopeCreateManyDataScopeInputEnvelope = {
    data: RoleDataScopeCreateManyDataScopeInput | RoleDataScopeCreateManyDataScopeInput[]
    skipDuplicates?: boolean
  }

  export type RoleDataScopeUpsertWithWhereUniqueWithoutDataScopeInput = {
    where: RoleDataScopeWhereUniqueInput
    update: XOR<RoleDataScopeUpdateWithoutDataScopeInput, RoleDataScopeUncheckedUpdateWithoutDataScopeInput>
    create: XOR<RoleDataScopeCreateWithoutDataScopeInput, RoleDataScopeUncheckedCreateWithoutDataScopeInput>
  }

  export type RoleDataScopeUpdateWithWhereUniqueWithoutDataScopeInput = {
    where: RoleDataScopeWhereUniqueInput
    data: XOR<RoleDataScopeUpdateWithoutDataScopeInput, RoleDataScopeUncheckedUpdateWithoutDataScopeInput>
  }

  export type RoleDataScopeUpdateManyWithWhereWithoutDataScopeInput = {
    where: RoleDataScopeScalarWhereInput
    data: XOR<RoleDataScopeUpdateManyMutationInput, RoleDataScopeUncheckedUpdateManyWithoutDataScopeInput>
  }

  export type RoleCreateWithoutDataScopesInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    permissions?: RolePermissionCreateNestedManyWithoutRoleInput
    users?: UserRoleCreateNestedManyWithoutRoleInput
    aiToolGrants?: AIToolGrantCreateNestedManyWithoutRoleInput
  }

  export type RoleUncheckedCreateWithoutDataScopesInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    permissions?: RolePermissionUncheckedCreateNestedManyWithoutRoleInput
    users?: UserRoleUncheckedCreateNestedManyWithoutRoleInput
    aiToolGrants?: AIToolGrantUncheckedCreateNestedManyWithoutRoleInput
  }

  export type RoleCreateOrConnectWithoutDataScopesInput = {
    where: RoleWhereUniqueInput
    create: XOR<RoleCreateWithoutDataScopesInput, RoleUncheckedCreateWithoutDataScopesInput>
  }

  export type DataScopeCreateWithoutRoleScopesInput = {
    id?: string
    code: string
    name: string
    scopeType: $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DataScopeUncheckedCreateWithoutRoleScopesInput = {
    id?: string
    code: string
    name: string
    scopeType: $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DataScopeCreateOrConnectWithoutRoleScopesInput = {
    where: DataScopeWhereUniqueInput
    create: XOR<DataScopeCreateWithoutRoleScopesInput, DataScopeUncheckedCreateWithoutRoleScopesInput>
  }

  export type RoleUpsertWithoutDataScopesInput = {
    update: XOR<RoleUpdateWithoutDataScopesInput, RoleUncheckedUpdateWithoutDataScopesInput>
    create: XOR<RoleCreateWithoutDataScopesInput, RoleUncheckedCreateWithoutDataScopesInput>
    where?: RoleWhereInput
  }

  export type RoleUpdateToOneWithWhereWithoutDataScopesInput = {
    where?: RoleWhereInput
    data: XOR<RoleUpdateWithoutDataScopesInput, RoleUncheckedUpdateWithoutDataScopesInput>
  }

  export type RoleUpdateWithoutDataScopesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permissions?: RolePermissionUpdateManyWithoutRoleNestedInput
    users?: UserRoleUpdateManyWithoutRoleNestedInput
    aiToolGrants?: AIToolGrantUpdateManyWithoutRoleNestedInput
  }

  export type RoleUncheckedUpdateWithoutDataScopesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permissions?: RolePermissionUncheckedUpdateManyWithoutRoleNestedInput
    users?: UserRoleUncheckedUpdateManyWithoutRoleNestedInput
    aiToolGrants?: AIToolGrantUncheckedUpdateManyWithoutRoleNestedInput
  }

  export type DataScopeUpsertWithoutRoleScopesInput = {
    update: XOR<DataScopeUpdateWithoutRoleScopesInput, DataScopeUncheckedUpdateWithoutRoleScopesInput>
    create: XOR<DataScopeCreateWithoutRoleScopesInput, DataScopeUncheckedCreateWithoutRoleScopesInput>
    where?: DataScopeWhereInput
  }

  export type DataScopeUpdateToOneWithWhereWithoutRoleScopesInput = {
    where?: DataScopeWhereInput
    data: XOR<DataScopeUpdateWithoutRoleScopesInput, DataScopeUncheckedUpdateWithoutRoleScopesInput>
  }

  export type DataScopeUpdateWithoutRoleScopesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    scopeType?: EnumDataScopeTypeFieldUpdateOperationsInput | $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DataScopeUncheckedUpdateWithoutRoleScopesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    scopeType?: EnumDataScopeTypeFieldUpdateOperationsInput | $Enums.DataScopeType
    rules?: NullableJsonNullValueInput | InputJsonValue
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleCreateWithoutAiToolGrantsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    permissions?: RolePermissionCreateNestedManyWithoutRoleInput
    users?: UserRoleCreateNestedManyWithoutRoleInput
    dataScopes?: RoleDataScopeCreateNestedManyWithoutRoleInput
  }

  export type RoleUncheckedCreateWithoutAiToolGrantsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    isBuiltIn?: boolean
    enabled?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    permissions?: RolePermissionUncheckedCreateNestedManyWithoutRoleInput
    users?: UserRoleUncheckedCreateNestedManyWithoutRoleInput
    dataScopes?: RoleDataScopeUncheckedCreateNestedManyWithoutRoleInput
  }

  export type RoleCreateOrConnectWithoutAiToolGrantsInput = {
    where: RoleWhereUniqueInput
    create: XOR<RoleCreateWithoutAiToolGrantsInput, RoleUncheckedCreateWithoutAiToolGrantsInput>
  }

  export type RoleUpsertWithoutAiToolGrantsInput = {
    update: XOR<RoleUpdateWithoutAiToolGrantsInput, RoleUncheckedUpdateWithoutAiToolGrantsInput>
    create: XOR<RoleCreateWithoutAiToolGrantsInput, RoleUncheckedCreateWithoutAiToolGrantsInput>
    where?: RoleWhereInput
  }

  export type RoleUpdateToOneWithWhereWithoutAiToolGrantsInput = {
    where?: RoleWhereInput
    data: XOR<RoleUpdateWithoutAiToolGrantsInput, RoleUncheckedUpdateWithoutAiToolGrantsInput>
  }

  export type RoleUpdateWithoutAiToolGrantsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permissions?: RolePermissionUpdateManyWithoutRoleNestedInput
    users?: UserRoleUpdateManyWithoutRoleNestedInput
    dataScopes?: RoleDataScopeUpdateManyWithoutRoleNestedInput
  }

  export type RoleUncheckedUpdateWithoutAiToolGrantsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    isBuiltIn?: BoolFieldUpdateOperationsInput | boolean
    enabled?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permissions?: RolePermissionUncheckedUpdateManyWithoutRoleNestedInput
    users?: UserRoleUncheckedUpdateManyWithoutRoleNestedInput
    dataScopes?: RoleDataScopeUncheckedUpdateManyWithoutRoleNestedInput
  }

  export type UserCreateWithoutAiToolGrantsDirectInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAiToolGrantsDirectInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAiToolGrantsDirectInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAiToolGrantsDirectInput, UserUncheckedCreateWithoutAiToolGrantsDirectInput>
  }

  export type UserUpsertWithoutAiToolGrantsDirectInput = {
    update: XOR<UserUpdateWithoutAiToolGrantsDirectInput, UserUncheckedUpdateWithoutAiToolGrantsDirectInput>
    create: XOR<UserCreateWithoutAiToolGrantsDirectInput, UserUncheckedCreateWithoutAiToolGrantsDirectInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAiToolGrantsDirectInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAiToolGrantsDirectInput, UserUncheckedUpdateWithoutAiToolGrantsDirectInput>
  }

  export type UserUpdateWithoutAiToolGrantsDirectInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAiToolGrantsDirectInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateWithoutInternalAppSlugBindingInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutInternalAppSlugBindingInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutInternalAppSlugBindingInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutInternalAppSlugBindingInput, UserUncheckedCreateWithoutInternalAppSlugBindingInput>
  }

  export type InternalAppCreateWithoutOwnerBindingInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutInternalAppsCreatedInput
    forceDisabler?: UserCreateNestedOneWithoutInternalAppsForceDisabledInput
    deployments?: InternalAppDeploymentCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarCreateNestedManyWithoutAppInput
    events?: InternalAppEventCreateNestedManyWithoutAppInput
  }

  export type InternalAppUncheckedCreateWithoutOwnerBindingInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deployments?: InternalAppDeploymentUncheckedCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarUncheckedCreateNestedManyWithoutAppInput
    events?: InternalAppEventUncheckedCreateNestedManyWithoutAppInput
  }

  export type InternalAppCreateOrConnectWithoutOwnerBindingInput = {
    where: InternalAppWhereUniqueInput
    create: XOR<InternalAppCreateWithoutOwnerBindingInput, InternalAppUncheckedCreateWithoutOwnerBindingInput>
  }

  export type InternalAppCreateManyOwnerBindingInputEnvelope = {
    data: InternalAppCreateManyOwnerBindingInput | InternalAppCreateManyOwnerBindingInput[]
    skipDuplicates?: boolean
  }

  export type InternalAppEmployeeTokenCreateWithoutBindingInput = {
    id?: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutInternalAppTokensInput
  }

  export type InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput = {
    id?: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEmployeeTokenCreateOrConnectWithoutBindingInput = {
    where: InternalAppEmployeeTokenWhereUniqueInput
    create: XOR<InternalAppEmployeeTokenCreateWithoutBindingInput, InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput>
  }

  export type InternalAppEmployeeTokenCreateManyBindingInputEnvelope = {
    data: InternalAppEmployeeTokenCreateManyBindingInput | InternalAppEmployeeTokenCreateManyBindingInput[]
    skipDuplicates?: boolean
  }

  export type UserUpsertWithoutInternalAppSlugBindingInput = {
    update: XOR<UserUpdateWithoutInternalAppSlugBindingInput, UserUncheckedUpdateWithoutInternalAppSlugBindingInput>
    create: XOR<UserCreateWithoutInternalAppSlugBindingInput, UserUncheckedCreateWithoutInternalAppSlugBindingInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutInternalAppSlugBindingInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutInternalAppSlugBindingInput, UserUncheckedUpdateWithoutInternalAppSlugBindingInput>
  }

  export type UserUpdateWithoutInternalAppSlugBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutInternalAppSlugBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type InternalAppUpsertWithWhereUniqueWithoutOwnerBindingInput = {
    where: InternalAppWhereUniqueInput
    update: XOR<InternalAppUpdateWithoutOwnerBindingInput, InternalAppUncheckedUpdateWithoutOwnerBindingInput>
    create: XOR<InternalAppCreateWithoutOwnerBindingInput, InternalAppUncheckedCreateWithoutOwnerBindingInput>
  }

  export type InternalAppUpdateWithWhereUniqueWithoutOwnerBindingInput = {
    where: InternalAppWhereUniqueInput
    data: XOR<InternalAppUpdateWithoutOwnerBindingInput, InternalAppUncheckedUpdateWithoutOwnerBindingInput>
  }

  export type InternalAppUpdateManyWithWhereWithoutOwnerBindingInput = {
    where: InternalAppScalarWhereInput
    data: XOR<InternalAppUpdateManyMutationInput, InternalAppUncheckedUpdateManyWithoutOwnerBindingInput>
  }

  export type InternalAppEmployeeTokenUpsertWithWhereUniqueWithoutBindingInput = {
    where: InternalAppEmployeeTokenWhereUniqueInput
    update: XOR<InternalAppEmployeeTokenUpdateWithoutBindingInput, InternalAppEmployeeTokenUncheckedUpdateWithoutBindingInput>
    create: XOR<InternalAppEmployeeTokenCreateWithoutBindingInput, InternalAppEmployeeTokenUncheckedCreateWithoutBindingInput>
  }

  export type InternalAppEmployeeTokenUpdateWithWhereUniqueWithoutBindingInput = {
    where: InternalAppEmployeeTokenWhereUniqueInput
    data: XOR<InternalAppEmployeeTokenUpdateWithoutBindingInput, InternalAppEmployeeTokenUncheckedUpdateWithoutBindingInput>
  }

  export type InternalAppEmployeeTokenUpdateManyWithWhereWithoutBindingInput = {
    where: InternalAppEmployeeTokenScalarWhereInput
    data: XOR<InternalAppEmployeeTokenUpdateManyMutationInput, InternalAppEmployeeTokenUncheckedUpdateManyWithoutBindingInput>
  }

  export type EmployeeSlugBindingCreateWithoutAppsInput = {
    id?: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutInternalAppSlugBindingInput
    tokens?: InternalAppEmployeeTokenCreateNestedManyWithoutBindingInput
  }

  export type EmployeeSlugBindingUncheckedCreateWithoutAppsInput = {
    id?: string
    userId: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    tokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutBindingInput
  }

  export type EmployeeSlugBindingCreateOrConnectWithoutAppsInput = {
    where: EmployeeSlugBindingWhereUniqueInput
    create: XOR<EmployeeSlugBindingCreateWithoutAppsInput, EmployeeSlugBindingUncheckedCreateWithoutAppsInput>
  }

  export type UserCreateWithoutInternalAppsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutInternalAppsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutInternalAppsCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutInternalAppsCreatedInput, UserUncheckedCreateWithoutInternalAppsCreatedInput>
  }

  export type UserCreateWithoutInternalAppsForceDisabledInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutInternalAppsForceDisabledInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutInternalAppsForceDisabledInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutInternalAppsForceDisabledInput, UserUncheckedCreateWithoutInternalAppsForceDisabledInput>
  }

  export type InternalAppDeploymentCreateWithoutAppInput = {
    id?: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutInternalAppDeploymentsTriggeredInput
  }

  export type InternalAppDeploymentUncheckedCreateWithoutAppInput = {
    id?: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppDeploymentCreateOrConnectWithoutAppInput = {
    where: InternalAppDeploymentWhereUniqueInput
    create: XOR<InternalAppDeploymentCreateWithoutAppInput, InternalAppDeploymentUncheckedCreateWithoutAppInput>
  }

  export type InternalAppDeploymentCreateManyAppInputEnvelope = {
    data: InternalAppDeploymentCreateManyAppInput | InternalAppDeploymentCreateManyAppInput[]
    skipDuplicates?: boolean
  }

  export type InternalAppEnvVarCreateWithoutAppInput = {
    id?: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutInternalAppEnvVarsManagedInput
  }

  export type InternalAppEnvVarUncheckedCreateWithoutAppInput = {
    id?: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEnvVarCreateOrConnectWithoutAppInput = {
    where: InternalAppEnvVarWhereUniqueInput
    create: XOR<InternalAppEnvVarCreateWithoutAppInput, InternalAppEnvVarUncheckedCreateWithoutAppInput>
  }

  export type InternalAppEnvVarCreateManyAppInputEnvelope = {
    data: InternalAppEnvVarCreateManyAppInput | InternalAppEnvVarCreateManyAppInput[]
    skipDuplicates?: boolean
  }

  export type InternalAppEventCreateWithoutAppInput = {
    id?: string
    employeeSlug?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
    actor?: UserCreateNestedOneWithoutInternalAppEventsInput
  }

  export type InternalAppEventUncheckedCreateWithoutAppInput = {
    id?: string
    employeeSlug?: string | null
    actorId?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
  }

  export type InternalAppEventCreateOrConnectWithoutAppInput = {
    where: InternalAppEventWhereUniqueInput
    create: XOR<InternalAppEventCreateWithoutAppInput, InternalAppEventUncheckedCreateWithoutAppInput>
  }

  export type InternalAppEventCreateManyAppInputEnvelope = {
    data: InternalAppEventCreateManyAppInput | InternalAppEventCreateManyAppInput[]
    skipDuplicates?: boolean
  }

  export type EmployeeSlugBindingUpsertWithoutAppsInput = {
    update: XOR<EmployeeSlugBindingUpdateWithoutAppsInput, EmployeeSlugBindingUncheckedUpdateWithoutAppsInput>
    create: XOR<EmployeeSlugBindingCreateWithoutAppsInput, EmployeeSlugBindingUncheckedCreateWithoutAppsInput>
    where?: EmployeeSlugBindingWhereInput
  }

  export type EmployeeSlugBindingUpdateToOneWithWhereWithoutAppsInput = {
    where?: EmployeeSlugBindingWhereInput
    data: XOR<EmployeeSlugBindingUpdateWithoutAppsInput, EmployeeSlugBindingUncheckedUpdateWithoutAppsInput>
  }

  export type EmployeeSlugBindingUpdateWithoutAppsInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutInternalAppSlugBindingNestedInput
    tokens?: InternalAppEmployeeTokenUpdateManyWithoutBindingNestedInput
  }

  export type EmployeeSlugBindingUncheckedUpdateWithoutAppsInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    tokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type UserUpsertWithoutInternalAppsCreatedInput = {
    update: XOR<UserUpdateWithoutInternalAppsCreatedInput, UserUncheckedUpdateWithoutInternalAppsCreatedInput>
    create: XOR<UserCreateWithoutInternalAppsCreatedInput, UserUncheckedCreateWithoutInternalAppsCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutInternalAppsCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutInternalAppsCreatedInput, UserUncheckedUpdateWithoutInternalAppsCreatedInput>
  }

  export type UserUpdateWithoutInternalAppsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutInternalAppsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutInternalAppsForceDisabledInput = {
    update: XOR<UserUpdateWithoutInternalAppsForceDisabledInput, UserUncheckedUpdateWithoutInternalAppsForceDisabledInput>
    create: XOR<UserCreateWithoutInternalAppsForceDisabledInput, UserUncheckedCreateWithoutInternalAppsForceDisabledInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutInternalAppsForceDisabledInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutInternalAppsForceDisabledInput, UserUncheckedUpdateWithoutInternalAppsForceDisabledInput>
  }

  export type UserUpdateWithoutInternalAppsForceDisabledInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutInternalAppsForceDisabledInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type InternalAppDeploymentUpsertWithWhereUniqueWithoutAppInput = {
    where: InternalAppDeploymentWhereUniqueInput
    update: XOR<InternalAppDeploymentUpdateWithoutAppInput, InternalAppDeploymentUncheckedUpdateWithoutAppInput>
    create: XOR<InternalAppDeploymentCreateWithoutAppInput, InternalAppDeploymentUncheckedCreateWithoutAppInput>
  }

  export type InternalAppDeploymentUpdateWithWhereUniqueWithoutAppInput = {
    where: InternalAppDeploymentWhereUniqueInput
    data: XOR<InternalAppDeploymentUpdateWithoutAppInput, InternalAppDeploymentUncheckedUpdateWithoutAppInput>
  }

  export type InternalAppDeploymentUpdateManyWithWhereWithoutAppInput = {
    where: InternalAppDeploymentScalarWhereInput
    data: XOR<InternalAppDeploymentUpdateManyMutationInput, InternalAppDeploymentUncheckedUpdateManyWithoutAppInput>
  }

  export type InternalAppEnvVarUpsertWithWhereUniqueWithoutAppInput = {
    where: InternalAppEnvVarWhereUniqueInput
    update: XOR<InternalAppEnvVarUpdateWithoutAppInput, InternalAppEnvVarUncheckedUpdateWithoutAppInput>
    create: XOR<InternalAppEnvVarCreateWithoutAppInput, InternalAppEnvVarUncheckedCreateWithoutAppInput>
  }

  export type InternalAppEnvVarUpdateWithWhereUniqueWithoutAppInput = {
    where: InternalAppEnvVarWhereUniqueInput
    data: XOR<InternalAppEnvVarUpdateWithoutAppInput, InternalAppEnvVarUncheckedUpdateWithoutAppInput>
  }

  export type InternalAppEnvVarUpdateManyWithWhereWithoutAppInput = {
    where: InternalAppEnvVarScalarWhereInput
    data: XOR<InternalAppEnvVarUpdateManyMutationInput, InternalAppEnvVarUncheckedUpdateManyWithoutAppInput>
  }

  export type InternalAppEventUpsertWithWhereUniqueWithoutAppInput = {
    where: InternalAppEventWhereUniqueInput
    update: XOR<InternalAppEventUpdateWithoutAppInput, InternalAppEventUncheckedUpdateWithoutAppInput>
    create: XOR<InternalAppEventCreateWithoutAppInput, InternalAppEventUncheckedCreateWithoutAppInput>
  }

  export type InternalAppEventUpdateWithWhereUniqueWithoutAppInput = {
    where: InternalAppEventWhereUniqueInput
    data: XOR<InternalAppEventUpdateWithoutAppInput, InternalAppEventUncheckedUpdateWithoutAppInput>
  }

  export type InternalAppEventUpdateManyWithWhereWithoutAppInput = {
    where: InternalAppEventScalarWhereInput
    data: XOR<InternalAppEventUpdateManyMutationInput, InternalAppEventUncheckedUpdateManyWithoutAppInput>
  }

  export type InternalAppCreateWithoutDeploymentsInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    ownerBinding: EmployeeSlugBindingCreateNestedOneWithoutAppsInput
    creator: UserCreateNestedOneWithoutInternalAppsCreatedInput
    forceDisabler?: UserCreateNestedOneWithoutInternalAppsForceDisabledInput
    envVars?: InternalAppEnvVarCreateNestedManyWithoutAppInput
    events?: InternalAppEventCreateNestedManyWithoutAppInput
  }

  export type InternalAppUncheckedCreateWithoutDeploymentsInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    envVars?: InternalAppEnvVarUncheckedCreateNestedManyWithoutAppInput
    events?: InternalAppEventUncheckedCreateNestedManyWithoutAppInput
  }

  export type InternalAppCreateOrConnectWithoutDeploymentsInput = {
    where: InternalAppWhereUniqueInput
    create: XOR<InternalAppCreateWithoutDeploymentsInput, InternalAppUncheckedCreateWithoutDeploymentsInput>
  }

  export type UserCreateWithoutInternalAppDeploymentsTriggeredInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutInternalAppDeploymentsTriggeredInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutInternalAppDeploymentsTriggeredInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutInternalAppDeploymentsTriggeredInput, UserUncheckedCreateWithoutInternalAppDeploymentsTriggeredInput>
  }

  export type InternalAppUpsertWithoutDeploymentsInput = {
    update: XOR<InternalAppUpdateWithoutDeploymentsInput, InternalAppUncheckedUpdateWithoutDeploymentsInput>
    create: XOR<InternalAppCreateWithoutDeploymentsInput, InternalAppUncheckedCreateWithoutDeploymentsInput>
    where?: InternalAppWhereInput
  }

  export type InternalAppUpdateToOneWithWhereWithoutDeploymentsInput = {
    where?: InternalAppWhereInput
    data: XOR<InternalAppUpdateWithoutDeploymentsInput, InternalAppUncheckedUpdateWithoutDeploymentsInput>
  }

  export type InternalAppUpdateWithoutDeploymentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ownerBinding?: EmployeeSlugBindingUpdateOneRequiredWithoutAppsNestedInput
    creator?: UserUpdateOneRequiredWithoutInternalAppsCreatedNestedInput
    forceDisabler?: UserUpdateOneWithoutInternalAppsForceDisabledNestedInput
    envVars?: InternalAppEnvVarUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateWithoutDeploymentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    envVars?: InternalAppEnvVarUncheckedUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUncheckedUpdateManyWithoutAppNestedInput
  }

  export type UserUpsertWithoutInternalAppDeploymentsTriggeredInput = {
    update: XOR<UserUpdateWithoutInternalAppDeploymentsTriggeredInput, UserUncheckedUpdateWithoutInternalAppDeploymentsTriggeredInput>
    create: XOR<UserCreateWithoutInternalAppDeploymentsTriggeredInput, UserUncheckedCreateWithoutInternalAppDeploymentsTriggeredInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutInternalAppDeploymentsTriggeredInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutInternalAppDeploymentsTriggeredInput, UserUncheckedUpdateWithoutInternalAppDeploymentsTriggeredInput>
  }

  export type UserUpdateWithoutInternalAppDeploymentsTriggeredInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutInternalAppDeploymentsTriggeredInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type InternalAppCreateWithoutEnvVarsInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    ownerBinding: EmployeeSlugBindingCreateNestedOneWithoutAppsInput
    creator: UserCreateNestedOneWithoutInternalAppsCreatedInput
    forceDisabler?: UserCreateNestedOneWithoutInternalAppsForceDisabledInput
    deployments?: InternalAppDeploymentCreateNestedManyWithoutAppInput
    events?: InternalAppEventCreateNestedManyWithoutAppInput
  }

  export type InternalAppUncheckedCreateWithoutEnvVarsInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deployments?: InternalAppDeploymentUncheckedCreateNestedManyWithoutAppInput
    events?: InternalAppEventUncheckedCreateNestedManyWithoutAppInput
  }

  export type InternalAppCreateOrConnectWithoutEnvVarsInput = {
    where: InternalAppWhereUniqueInput
    create: XOR<InternalAppCreateWithoutEnvVarsInput, InternalAppUncheckedCreateWithoutEnvVarsInput>
  }

  export type UserCreateWithoutInternalAppEnvVarsManagedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutInternalAppEnvVarsManagedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutInternalAppEnvVarsManagedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutInternalAppEnvVarsManagedInput, UserUncheckedCreateWithoutInternalAppEnvVarsManagedInput>
  }

  export type InternalAppUpsertWithoutEnvVarsInput = {
    update: XOR<InternalAppUpdateWithoutEnvVarsInput, InternalAppUncheckedUpdateWithoutEnvVarsInput>
    create: XOR<InternalAppCreateWithoutEnvVarsInput, InternalAppUncheckedCreateWithoutEnvVarsInput>
    where?: InternalAppWhereInput
  }

  export type InternalAppUpdateToOneWithWhereWithoutEnvVarsInput = {
    where?: InternalAppWhereInput
    data: XOR<InternalAppUpdateWithoutEnvVarsInput, InternalAppUncheckedUpdateWithoutEnvVarsInput>
  }

  export type InternalAppUpdateWithoutEnvVarsInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ownerBinding?: EmployeeSlugBindingUpdateOneRequiredWithoutAppsNestedInput
    creator?: UserUpdateOneRequiredWithoutInternalAppsCreatedNestedInput
    forceDisabler?: UserUpdateOneWithoutInternalAppsForceDisabledNestedInput
    deployments?: InternalAppDeploymentUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateWithoutEnvVarsInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deployments?: InternalAppDeploymentUncheckedUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUncheckedUpdateManyWithoutAppNestedInput
  }

  export type UserUpsertWithoutInternalAppEnvVarsManagedInput = {
    update: XOR<UserUpdateWithoutInternalAppEnvVarsManagedInput, UserUncheckedUpdateWithoutInternalAppEnvVarsManagedInput>
    create: XOR<UserCreateWithoutInternalAppEnvVarsManagedInput, UserUncheckedCreateWithoutInternalAppEnvVarsManagedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutInternalAppEnvVarsManagedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutInternalAppEnvVarsManagedInput, UserUncheckedUpdateWithoutInternalAppEnvVarsManagedInput>
  }

  export type UserUpdateWithoutInternalAppEnvVarsManagedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutInternalAppEnvVarsManagedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type EmployeeSlugBindingCreateWithoutTokensInput = {
    id?: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutInternalAppSlugBindingInput
    apps?: InternalAppCreateNestedManyWithoutOwnerBindingInput
  }

  export type EmployeeSlugBindingUncheckedCreateWithoutTokensInput = {
    id?: string
    userId: string
    employeeSlug: string
    sourceMailNickname: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    apps?: InternalAppUncheckedCreateNestedManyWithoutOwnerBindingInput
  }

  export type EmployeeSlugBindingCreateOrConnectWithoutTokensInput = {
    where: EmployeeSlugBindingWhereUniqueInput
    create: XOR<EmployeeSlugBindingCreateWithoutTokensInput, EmployeeSlugBindingUncheckedCreateWithoutTokensInput>
  }

  export type UserCreateWithoutInternalAppTokensInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutInternalAppTokensInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutInternalAppTokensInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutInternalAppTokensInput, UserUncheckedCreateWithoutInternalAppTokensInput>
  }

  export type EmployeeSlugBindingUpsertWithoutTokensInput = {
    update: XOR<EmployeeSlugBindingUpdateWithoutTokensInput, EmployeeSlugBindingUncheckedUpdateWithoutTokensInput>
    create: XOR<EmployeeSlugBindingCreateWithoutTokensInput, EmployeeSlugBindingUncheckedCreateWithoutTokensInput>
    where?: EmployeeSlugBindingWhereInput
  }

  export type EmployeeSlugBindingUpdateToOneWithWhereWithoutTokensInput = {
    where?: EmployeeSlugBindingWhereInput
    data: XOR<EmployeeSlugBindingUpdateWithoutTokensInput, EmployeeSlugBindingUncheckedUpdateWithoutTokensInput>
  }

  export type EmployeeSlugBindingUpdateWithoutTokensInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutInternalAppSlugBindingNestedInput
    apps?: InternalAppUpdateManyWithoutOwnerBindingNestedInput
  }

  export type EmployeeSlugBindingUncheckedUpdateWithoutTokensInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    sourceMailNickname?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    apps?: InternalAppUncheckedUpdateManyWithoutOwnerBindingNestedInput
  }

  export type UserUpsertWithoutInternalAppTokensInput = {
    update: XOR<UserUpdateWithoutInternalAppTokensInput, UserUncheckedUpdateWithoutInternalAppTokensInput>
    create: XOR<UserCreateWithoutInternalAppTokensInput, UserUncheckedCreateWithoutInternalAppTokensInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutInternalAppTokensInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutInternalAppTokensInput, UserUncheckedUpdateWithoutInternalAppTokensInput>
  }

  export type UserUpdateWithoutInternalAppTokensInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutInternalAppTokensInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type InternalAppCreateWithoutEventsInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    ownerBinding: EmployeeSlugBindingCreateNestedOneWithoutAppsInput
    creator: UserCreateNestedOneWithoutInternalAppsCreatedInput
    forceDisabler?: UserCreateNestedOneWithoutInternalAppsForceDisabledInput
    deployments?: InternalAppDeploymentCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarCreateNestedManyWithoutAppInput
  }

  export type InternalAppUncheckedCreateWithoutEventsInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deployments?: InternalAppDeploymentUncheckedCreateNestedManyWithoutAppInput
    envVars?: InternalAppEnvVarUncheckedCreateNestedManyWithoutAppInput
  }

  export type InternalAppCreateOrConnectWithoutEventsInput = {
    where: InternalAppWhereUniqueInput
    create: XOR<InternalAppCreateWithoutEventsInput, InternalAppUncheckedCreateWithoutEventsInput>
  }

  export type UserCreateWithoutInternalAppEventsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutInternalAppEventsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutInternalAppEventsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutInternalAppEventsInput, UserUncheckedCreateWithoutInternalAppEventsInput>
  }

  export type InternalAppUpsertWithoutEventsInput = {
    update: XOR<InternalAppUpdateWithoutEventsInput, InternalAppUncheckedUpdateWithoutEventsInput>
    create: XOR<InternalAppCreateWithoutEventsInput, InternalAppUncheckedCreateWithoutEventsInput>
    where?: InternalAppWhereInput
  }

  export type InternalAppUpdateToOneWithWhereWithoutEventsInput = {
    where?: InternalAppWhereInput
    data: XOR<InternalAppUpdateWithoutEventsInput, InternalAppUncheckedUpdateWithoutEventsInput>
  }

  export type InternalAppUpdateWithoutEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ownerBinding?: EmployeeSlugBindingUpdateOneRequiredWithoutAppsNestedInput
    creator?: UserUpdateOneRequiredWithoutInternalAppsCreatedNestedInput
    forceDisabler?: UserUpdateOneWithoutInternalAppsForceDisabledNestedInput
    deployments?: InternalAppDeploymentUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateWithoutEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deployments?: InternalAppDeploymentUncheckedUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUncheckedUpdateManyWithoutAppNestedInput
  }

  export type UserUpsertWithoutInternalAppEventsInput = {
    update: XOR<UserUpdateWithoutInternalAppEventsInput, UserUncheckedUpdateWithoutInternalAppEventsInput>
    create: XOR<UserCreateWithoutInternalAppEventsInput, UserUncheckedCreateWithoutInternalAppEventsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutInternalAppEventsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutInternalAppEventsInput, UserUncheckedUpdateWithoutInternalAppEventsInput>
  }

  export type UserUpdateWithoutInternalAppEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutInternalAppEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateWithoutKnowledgeArticlesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutKnowledgeArticlesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutKnowledgeArticlesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutKnowledgeArticlesInput, UserUncheckedCreateWithoutKnowledgeArticlesInput>
  }

  export type DocumentViewCreateWithoutArticleInput = {
    id?: string
    viewedAt?: Date | string
    viewDate: Date | string
    spDocument?: SPDocumentIndexCreateNestedOneWithoutViewsInput
    user: UserCreateNestedOneWithoutDocumentViewsInput
  }

  export type DocumentViewUncheckedCreateWithoutArticleInput = {
    id?: string
    spDocumentId?: string | null
    userId: string
    viewedAt?: Date | string
    viewDate: Date | string
  }

  export type DocumentViewCreateOrConnectWithoutArticleInput = {
    where: DocumentViewWhereUniqueInput
    create: XOR<DocumentViewCreateWithoutArticleInput, DocumentViewUncheckedCreateWithoutArticleInput>
  }

  export type DocumentViewCreateManyArticleInputEnvelope = {
    data: DocumentViewCreateManyArticleInput | DocumentViewCreateManyArticleInput[]
    skipDuplicates?: boolean
  }

  export type DocumentLikeCreateWithoutArticleInput = {
    id?: string
    type: $Enums.LikeType
    createdAt?: Date | string
    spDocument?: SPDocumentIndexCreateNestedOneWithoutLikesInput
    user: UserCreateNestedOneWithoutDocumentLikesInput
  }

  export type DocumentLikeUncheckedCreateWithoutArticleInput = {
    id?: string
    spDocumentId?: string | null
    userId: string
    type: $Enums.LikeType
    createdAt?: Date | string
  }

  export type DocumentLikeCreateOrConnectWithoutArticleInput = {
    where: DocumentLikeWhereUniqueInput
    create: XOR<DocumentLikeCreateWithoutArticleInput, DocumentLikeUncheckedCreateWithoutArticleInput>
  }

  export type DocumentLikeCreateManyArticleInputEnvelope = {
    data: DocumentLikeCreateManyArticleInput | DocumentLikeCreateManyArticleInput[]
    skipDuplicates?: boolean
  }

  export type DocumentCommentCreateWithoutArticleInput = {
    id?: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    spDocument?: SPDocumentIndexCreateNestedOneWithoutCommentsInput
    user: UserCreateNestedOneWithoutDocumentCommentsInput
    parent?: DocumentCommentCreateNestedOneWithoutRepliesInput
    replies?: DocumentCommentCreateNestedManyWithoutParentInput
    mentions?: UserMentionCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentUncheckedCreateWithoutArticleInput = {
    id?: string
    spDocumentId?: string | null
    userId: string
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    replies?: DocumentCommentUncheckedCreateNestedManyWithoutParentInput
    mentions?: UserMentionUncheckedCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentCreateOrConnectWithoutArticleInput = {
    where: DocumentCommentWhereUniqueInput
    create: XOR<DocumentCommentCreateWithoutArticleInput, DocumentCommentUncheckedCreateWithoutArticleInput>
  }

  export type DocumentCommentCreateManyArticleInputEnvelope = {
    data: DocumentCommentCreateManyArticleInput | DocumentCommentCreateManyArticleInput[]
    skipDuplicates?: boolean
  }

  export type UserUpsertWithoutKnowledgeArticlesInput = {
    update: XOR<UserUpdateWithoutKnowledgeArticlesInput, UserUncheckedUpdateWithoutKnowledgeArticlesInput>
    create: XOR<UserCreateWithoutKnowledgeArticlesInput, UserUncheckedCreateWithoutKnowledgeArticlesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutKnowledgeArticlesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutKnowledgeArticlesInput, UserUncheckedUpdateWithoutKnowledgeArticlesInput>
  }

  export type UserUpdateWithoutKnowledgeArticlesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutKnowledgeArticlesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type DocumentViewUpsertWithWhereUniqueWithoutArticleInput = {
    where: DocumentViewWhereUniqueInput
    update: XOR<DocumentViewUpdateWithoutArticleInput, DocumentViewUncheckedUpdateWithoutArticleInput>
    create: XOR<DocumentViewCreateWithoutArticleInput, DocumentViewUncheckedCreateWithoutArticleInput>
  }

  export type DocumentViewUpdateWithWhereUniqueWithoutArticleInput = {
    where: DocumentViewWhereUniqueInput
    data: XOR<DocumentViewUpdateWithoutArticleInput, DocumentViewUncheckedUpdateWithoutArticleInput>
  }

  export type DocumentViewUpdateManyWithWhereWithoutArticleInput = {
    where: DocumentViewScalarWhereInput
    data: XOR<DocumentViewUpdateManyMutationInput, DocumentViewUncheckedUpdateManyWithoutArticleInput>
  }

  export type DocumentLikeUpsertWithWhereUniqueWithoutArticleInput = {
    where: DocumentLikeWhereUniqueInput
    update: XOR<DocumentLikeUpdateWithoutArticleInput, DocumentLikeUncheckedUpdateWithoutArticleInput>
    create: XOR<DocumentLikeCreateWithoutArticleInput, DocumentLikeUncheckedCreateWithoutArticleInput>
  }

  export type DocumentLikeUpdateWithWhereUniqueWithoutArticleInput = {
    where: DocumentLikeWhereUniqueInput
    data: XOR<DocumentLikeUpdateWithoutArticleInput, DocumentLikeUncheckedUpdateWithoutArticleInput>
  }

  export type DocumentLikeUpdateManyWithWhereWithoutArticleInput = {
    where: DocumentLikeScalarWhereInput
    data: XOR<DocumentLikeUpdateManyMutationInput, DocumentLikeUncheckedUpdateManyWithoutArticleInput>
  }

  export type DocumentCommentUpsertWithWhereUniqueWithoutArticleInput = {
    where: DocumentCommentWhereUniqueInput
    update: XOR<DocumentCommentUpdateWithoutArticleInput, DocumentCommentUncheckedUpdateWithoutArticleInput>
    create: XOR<DocumentCommentCreateWithoutArticleInput, DocumentCommentUncheckedCreateWithoutArticleInput>
  }

  export type DocumentCommentUpdateWithWhereUniqueWithoutArticleInput = {
    where: DocumentCommentWhereUniqueInput
    data: XOR<DocumentCommentUpdateWithoutArticleInput, DocumentCommentUncheckedUpdateWithoutArticleInput>
  }

  export type DocumentCommentUpdateManyWithWhereWithoutArticleInput = {
    where: DocumentCommentScalarWhereInput
    data: XOR<DocumentCommentUpdateManyMutationInput, DocumentCommentUncheckedUpdateManyWithoutArticleInput>
  }

  export type DocumentViewCreateWithoutSpDocumentInput = {
    id?: string
    viewedAt?: Date | string
    viewDate: Date | string
    article?: KnowledgeArticleCreateNestedOneWithoutViewsInput
    user: UserCreateNestedOneWithoutDocumentViewsInput
  }

  export type DocumentViewUncheckedCreateWithoutSpDocumentInput = {
    id?: string
    articleId?: string | null
    userId: string
    viewedAt?: Date | string
    viewDate: Date | string
  }

  export type DocumentViewCreateOrConnectWithoutSpDocumentInput = {
    where: DocumentViewWhereUniqueInput
    create: XOR<DocumentViewCreateWithoutSpDocumentInput, DocumentViewUncheckedCreateWithoutSpDocumentInput>
  }

  export type DocumentViewCreateManySpDocumentInputEnvelope = {
    data: DocumentViewCreateManySpDocumentInput | DocumentViewCreateManySpDocumentInput[]
    skipDuplicates?: boolean
  }

  export type DocumentLikeCreateWithoutSpDocumentInput = {
    id?: string
    type: $Enums.LikeType
    createdAt?: Date | string
    article?: KnowledgeArticleCreateNestedOneWithoutLikesInput
    user: UserCreateNestedOneWithoutDocumentLikesInput
  }

  export type DocumentLikeUncheckedCreateWithoutSpDocumentInput = {
    id?: string
    articleId?: string | null
    userId: string
    type: $Enums.LikeType
    createdAt?: Date | string
  }

  export type DocumentLikeCreateOrConnectWithoutSpDocumentInput = {
    where: DocumentLikeWhereUniqueInput
    create: XOR<DocumentLikeCreateWithoutSpDocumentInput, DocumentLikeUncheckedCreateWithoutSpDocumentInput>
  }

  export type DocumentLikeCreateManySpDocumentInputEnvelope = {
    data: DocumentLikeCreateManySpDocumentInput | DocumentLikeCreateManySpDocumentInput[]
    skipDuplicates?: boolean
  }

  export type DocumentCommentCreateWithoutSpDocumentInput = {
    id?: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    article?: KnowledgeArticleCreateNestedOneWithoutCommentsInput
    user: UserCreateNestedOneWithoutDocumentCommentsInput
    parent?: DocumentCommentCreateNestedOneWithoutRepliesInput
    replies?: DocumentCommentCreateNestedManyWithoutParentInput
    mentions?: UserMentionCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentUncheckedCreateWithoutSpDocumentInput = {
    id?: string
    articleId?: string | null
    userId: string
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    replies?: DocumentCommentUncheckedCreateNestedManyWithoutParentInput
    mentions?: UserMentionUncheckedCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentCreateOrConnectWithoutSpDocumentInput = {
    where: DocumentCommentWhereUniqueInput
    create: XOR<DocumentCommentCreateWithoutSpDocumentInput, DocumentCommentUncheckedCreateWithoutSpDocumentInput>
  }

  export type DocumentCommentCreateManySpDocumentInputEnvelope = {
    data: DocumentCommentCreateManySpDocumentInput | DocumentCommentCreateManySpDocumentInput[]
    skipDuplicates?: boolean
  }

  export type DocumentViewUpsertWithWhereUniqueWithoutSpDocumentInput = {
    where: DocumentViewWhereUniqueInput
    update: XOR<DocumentViewUpdateWithoutSpDocumentInput, DocumentViewUncheckedUpdateWithoutSpDocumentInput>
    create: XOR<DocumentViewCreateWithoutSpDocumentInput, DocumentViewUncheckedCreateWithoutSpDocumentInput>
  }

  export type DocumentViewUpdateWithWhereUniqueWithoutSpDocumentInput = {
    where: DocumentViewWhereUniqueInput
    data: XOR<DocumentViewUpdateWithoutSpDocumentInput, DocumentViewUncheckedUpdateWithoutSpDocumentInput>
  }

  export type DocumentViewUpdateManyWithWhereWithoutSpDocumentInput = {
    where: DocumentViewScalarWhereInput
    data: XOR<DocumentViewUpdateManyMutationInput, DocumentViewUncheckedUpdateManyWithoutSpDocumentInput>
  }

  export type DocumentLikeUpsertWithWhereUniqueWithoutSpDocumentInput = {
    where: DocumentLikeWhereUniqueInput
    update: XOR<DocumentLikeUpdateWithoutSpDocumentInput, DocumentLikeUncheckedUpdateWithoutSpDocumentInput>
    create: XOR<DocumentLikeCreateWithoutSpDocumentInput, DocumentLikeUncheckedCreateWithoutSpDocumentInput>
  }

  export type DocumentLikeUpdateWithWhereUniqueWithoutSpDocumentInput = {
    where: DocumentLikeWhereUniqueInput
    data: XOR<DocumentLikeUpdateWithoutSpDocumentInput, DocumentLikeUncheckedUpdateWithoutSpDocumentInput>
  }

  export type DocumentLikeUpdateManyWithWhereWithoutSpDocumentInput = {
    where: DocumentLikeScalarWhereInput
    data: XOR<DocumentLikeUpdateManyMutationInput, DocumentLikeUncheckedUpdateManyWithoutSpDocumentInput>
  }

  export type DocumentCommentUpsertWithWhereUniqueWithoutSpDocumentInput = {
    where: DocumentCommentWhereUniqueInput
    update: XOR<DocumentCommentUpdateWithoutSpDocumentInput, DocumentCommentUncheckedUpdateWithoutSpDocumentInput>
    create: XOR<DocumentCommentCreateWithoutSpDocumentInput, DocumentCommentUncheckedCreateWithoutSpDocumentInput>
  }

  export type DocumentCommentUpdateWithWhereUniqueWithoutSpDocumentInput = {
    where: DocumentCommentWhereUniqueInput
    data: XOR<DocumentCommentUpdateWithoutSpDocumentInput, DocumentCommentUncheckedUpdateWithoutSpDocumentInput>
  }

  export type DocumentCommentUpdateManyWithWhereWithoutSpDocumentInput = {
    where: DocumentCommentScalarWhereInput
    data: XOR<DocumentCommentUpdateManyMutationInput, DocumentCommentUncheckedUpdateManyWithoutSpDocumentInput>
  }

  export type UserCreateWithoutAiQALogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAiQALogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAiQALogsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAiQALogsInput, UserUncheckedCreateWithoutAiQALogsInput>
  }

  export type UserUpsertWithoutAiQALogsInput = {
    update: XOR<UserUpdateWithoutAiQALogsInput, UserUncheckedUpdateWithoutAiQALogsInput>
    create: XOR<UserCreateWithoutAiQALogsInput, UserUncheckedCreateWithoutAiQALogsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAiQALogsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAiQALogsInput, UserUncheckedUpdateWithoutAiQALogsInput>
  }

  export type UserUpdateWithoutAiQALogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAiQALogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type SPDocumentIndexCreateWithoutViewsInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    likes?: DocumentLikeCreateNestedManyWithoutSpDocumentInput
    comments?: DocumentCommentCreateNestedManyWithoutSpDocumentInput
  }

  export type SPDocumentIndexUncheckedCreateWithoutViewsInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    likes?: DocumentLikeUncheckedCreateNestedManyWithoutSpDocumentInput
    comments?: DocumentCommentUncheckedCreateNestedManyWithoutSpDocumentInput
  }

  export type SPDocumentIndexCreateOrConnectWithoutViewsInput = {
    where: SPDocumentIndexWhereUniqueInput
    create: XOR<SPDocumentIndexCreateWithoutViewsInput, SPDocumentIndexUncheckedCreateWithoutViewsInput>
  }

  export type KnowledgeArticleCreateWithoutViewsInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    createdBy: UserCreateNestedOneWithoutKnowledgeArticlesInput
    likes?: DocumentLikeCreateNestedManyWithoutArticleInput
    comments?: DocumentCommentCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleUncheckedCreateWithoutViewsInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    likes?: DocumentLikeUncheckedCreateNestedManyWithoutArticleInput
    comments?: DocumentCommentUncheckedCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleCreateOrConnectWithoutViewsInput = {
    where: KnowledgeArticleWhereUniqueInput
    create: XOR<KnowledgeArticleCreateWithoutViewsInput, KnowledgeArticleUncheckedCreateWithoutViewsInput>
  }

  export type UserCreateWithoutDocumentViewsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDocumentViewsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDocumentViewsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDocumentViewsInput, UserUncheckedCreateWithoutDocumentViewsInput>
  }

  export type SPDocumentIndexUpsertWithoutViewsInput = {
    update: XOR<SPDocumentIndexUpdateWithoutViewsInput, SPDocumentIndexUncheckedUpdateWithoutViewsInput>
    create: XOR<SPDocumentIndexCreateWithoutViewsInput, SPDocumentIndexUncheckedCreateWithoutViewsInput>
    where?: SPDocumentIndexWhereInput
  }

  export type SPDocumentIndexUpdateToOneWithWhereWithoutViewsInput = {
    where?: SPDocumentIndexWhereInput
    data: XOR<SPDocumentIndexUpdateWithoutViewsInput, SPDocumentIndexUncheckedUpdateWithoutViewsInput>
  }

  export type SPDocumentIndexUpdateWithoutViewsInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    likes?: DocumentLikeUpdateManyWithoutSpDocumentNestedInput
    comments?: DocumentCommentUpdateManyWithoutSpDocumentNestedInput
  }

  export type SPDocumentIndexUncheckedUpdateWithoutViewsInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    likes?: DocumentLikeUncheckedUpdateManyWithoutSpDocumentNestedInput
    comments?: DocumentCommentUncheckedUpdateManyWithoutSpDocumentNestedInput
  }

  export type KnowledgeArticleUpsertWithoutViewsInput = {
    update: XOR<KnowledgeArticleUpdateWithoutViewsInput, KnowledgeArticleUncheckedUpdateWithoutViewsInput>
    create: XOR<KnowledgeArticleCreateWithoutViewsInput, KnowledgeArticleUncheckedCreateWithoutViewsInput>
    where?: KnowledgeArticleWhereInput
  }

  export type KnowledgeArticleUpdateToOneWithWhereWithoutViewsInput = {
    where?: KnowledgeArticleWhereInput
    data: XOR<KnowledgeArticleUpdateWithoutViewsInput, KnowledgeArticleUncheckedUpdateWithoutViewsInput>
  }

  export type KnowledgeArticleUpdateWithoutViewsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: UserUpdateOneRequiredWithoutKnowledgeArticlesNestedInput
    likes?: DocumentLikeUpdateManyWithoutArticleNestedInput
    comments?: DocumentCommentUpdateManyWithoutArticleNestedInput
  }

  export type KnowledgeArticleUncheckedUpdateWithoutViewsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    likes?: DocumentLikeUncheckedUpdateManyWithoutArticleNestedInput
    comments?: DocumentCommentUncheckedUpdateManyWithoutArticleNestedInput
  }

  export type UserUpsertWithoutDocumentViewsInput = {
    update: XOR<UserUpdateWithoutDocumentViewsInput, UserUncheckedUpdateWithoutDocumentViewsInput>
    create: XOR<UserCreateWithoutDocumentViewsInput, UserUncheckedCreateWithoutDocumentViewsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDocumentViewsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDocumentViewsInput, UserUncheckedUpdateWithoutDocumentViewsInput>
  }

  export type UserUpdateWithoutDocumentViewsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDocumentViewsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type SPDocumentIndexCreateWithoutLikesInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    views?: DocumentViewCreateNestedManyWithoutSpDocumentInput
    comments?: DocumentCommentCreateNestedManyWithoutSpDocumentInput
  }

  export type SPDocumentIndexUncheckedCreateWithoutLikesInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    views?: DocumentViewUncheckedCreateNestedManyWithoutSpDocumentInput
    comments?: DocumentCommentUncheckedCreateNestedManyWithoutSpDocumentInput
  }

  export type SPDocumentIndexCreateOrConnectWithoutLikesInput = {
    where: SPDocumentIndexWhereUniqueInput
    create: XOR<SPDocumentIndexCreateWithoutLikesInput, SPDocumentIndexUncheckedCreateWithoutLikesInput>
  }

  export type KnowledgeArticleCreateWithoutLikesInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    createdBy: UserCreateNestedOneWithoutKnowledgeArticlesInput
    views?: DocumentViewCreateNestedManyWithoutArticleInput
    comments?: DocumentCommentCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleUncheckedCreateWithoutLikesInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    views?: DocumentViewUncheckedCreateNestedManyWithoutArticleInput
    comments?: DocumentCommentUncheckedCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleCreateOrConnectWithoutLikesInput = {
    where: KnowledgeArticleWhereUniqueInput
    create: XOR<KnowledgeArticleCreateWithoutLikesInput, KnowledgeArticleUncheckedCreateWithoutLikesInput>
  }

  export type UserCreateWithoutDocumentLikesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDocumentLikesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDocumentLikesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDocumentLikesInput, UserUncheckedCreateWithoutDocumentLikesInput>
  }

  export type SPDocumentIndexUpsertWithoutLikesInput = {
    update: XOR<SPDocumentIndexUpdateWithoutLikesInput, SPDocumentIndexUncheckedUpdateWithoutLikesInput>
    create: XOR<SPDocumentIndexCreateWithoutLikesInput, SPDocumentIndexUncheckedCreateWithoutLikesInput>
    where?: SPDocumentIndexWhereInput
  }

  export type SPDocumentIndexUpdateToOneWithWhereWithoutLikesInput = {
    where?: SPDocumentIndexWhereInput
    data: XOR<SPDocumentIndexUpdateWithoutLikesInput, SPDocumentIndexUncheckedUpdateWithoutLikesInput>
  }

  export type SPDocumentIndexUpdateWithoutLikesInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    views?: DocumentViewUpdateManyWithoutSpDocumentNestedInput
    comments?: DocumentCommentUpdateManyWithoutSpDocumentNestedInput
  }

  export type SPDocumentIndexUncheckedUpdateWithoutLikesInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    views?: DocumentViewUncheckedUpdateManyWithoutSpDocumentNestedInput
    comments?: DocumentCommentUncheckedUpdateManyWithoutSpDocumentNestedInput
  }

  export type KnowledgeArticleUpsertWithoutLikesInput = {
    update: XOR<KnowledgeArticleUpdateWithoutLikesInput, KnowledgeArticleUncheckedUpdateWithoutLikesInput>
    create: XOR<KnowledgeArticleCreateWithoutLikesInput, KnowledgeArticleUncheckedCreateWithoutLikesInput>
    where?: KnowledgeArticleWhereInput
  }

  export type KnowledgeArticleUpdateToOneWithWhereWithoutLikesInput = {
    where?: KnowledgeArticleWhereInput
    data: XOR<KnowledgeArticleUpdateWithoutLikesInput, KnowledgeArticleUncheckedUpdateWithoutLikesInput>
  }

  export type KnowledgeArticleUpdateWithoutLikesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: UserUpdateOneRequiredWithoutKnowledgeArticlesNestedInput
    views?: DocumentViewUpdateManyWithoutArticleNestedInput
    comments?: DocumentCommentUpdateManyWithoutArticleNestedInput
  }

  export type KnowledgeArticleUncheckedUpdateWithoutLikesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    views?: DocumentViewUncheckedUpdateManyWithoutArticleNestedInput
    comments?: DocumentCommentUncheckedUpdateManyWithoutArticleNestedInput
  }

  export type UserUpsertWithoutDocumentLikesInput = {
    update: XOR<UserUpdateWithoutDocumentLikesInput, UserUncheckedUpdateWithoutDocumentLikesInput>
    create: XOR<UserCreateWithoutDocumentLikesInput, UserUncheckedCreateWithoutDocumentLikesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDocumentLikesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDocumentLikesInput, UserUncheckedUpdateWithoutDocumentLikesInput>
  }

  export type UserUpdateWithoutDocumentLikesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDocumentLikesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type SPDocumentIndexCreateWithoutCommentsInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    views?: DocumentViewCreateNestedManyWithoutSpDocumentInput
    likes?: DocumentLikeCreateNestedManyWithoutSpDocumentInput
  }

  export type SPDocumentIndexUncheckedCreateWithoutCommentsInput = {
    id?: string
    spItemId: string
    spDriveId: string
    spSiteId: string
    title: string
    webUrl: string
    fileType?: string | null
    fileExtension?: string | null
    size?: bigint | number | null
    spEtag?: string | null
    docAuthorityLevel?: $Enums.DocAuthorityLevel
    docLifecycleStatus?: $Enums.DocLifecycleStatus
    docType?: $Enums.DocType
    createdBy?: string | null
    lastModifiedBy?: string | null
    spCreatedAt?: Date | string | null
    spModifiedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    views?: DocumentViewUncheckedCreateNestedManyWithoutSpDocumentInput
    likes?: DocumentLikeUncheckedCreateNestedManyWithoutSpDocumentInput
  }

  export type SPDocumentIndexCreateOrConnectWithoutCommentsInput = {
    where: SPDocumentIndexWhereUniqueInput
    create: XOR<SPDocumentIndexCreateWithoutCommentsInput, SPDocumentIndexUncheckedCreateWithoutCommentsInput>
  }

  export type KnowledgeArticleCreateWithoutCommentsInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    createdBy: UserCreateNestedOneWithoutKnowledgeArticlesInput
    views?: DocumentViewCreateNestedManyWithoutArticleInput
    likes?: DocumentLikeCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleUncheckedCreateWithoutCommentsInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    views?: DocumentViewUncheckedCreateNestedManyWithoutArticleInput
    likes?: DocumentLikeUncheckedCreateNestedManyWithoutArticleInput
  }

  export type KnowledgeArticleCreateOrConnectWithoutCommentsInput = {
    where: KnowledgeArticleWhereUniqueInput
    create: XOR<KnowledgeArticleCreateWithoutCommentsInput, KnowledgeArticleUncheckedCreateWithoutCommentsInput>
  }

  export type UserCreateWithoutDocumentCommentsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutDocumentCommentsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutDocumentCommentsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutDocumentCommentsInput, UserUncheckedCreateWithoutDocumentCommentsInput>
  }

  export type DocumentCommentCreateWithoutRepliesInput = {
    id?: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    spDocument?: SPDocumentIndexCreateNestedOneWithoutCommentsInput
    article?: KnowledgeArticleCreateNestedOneWithoutCommentsInput
    user: UserCreateNestedOneWithoutDocumentCommentsInput
    parent?: DocumentCommentCreateNestedOneWithoutRepliesInput
    mentions?: UserMentionCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentUncheckedCreateWithoutRepliesInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    mentions?: UserMentionUncheckedCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentCreateOrConnectWithoutRepliesInput = {
    where: DocumentCommentWhereUniqueInput
    create: XOR<DocumentCommentCreateWithoutRepliesInput, DocumentCommentUncheckedCreateWithoutRepliesInput>
  }

  export type DocumentCommentCreateWithoutParentInput = {
    id?: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    spDocument?: SPDocumentIndexCreateNestedOneWithoutCommentsInput
    article?: KnowledgeArticleCreateNestedOneWithoutCommentsInput
    user: UserCreateNestedOneWithoutDocumentCommentsInput
    replies?: DocumentCommentCreateNestedManyWithoutParentInput
    mentions?: UserMentionCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentUncheckedCreateWithoutParentInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    replies?: DocumentCommentUncheckedCreateNestedManyWithoutParentInput
    mentions?: UserMentionUncheckedCreateNestedManyWithoutCommentInput
  }

  export type DocumentCommentCreateOrConnectWithoutParentInput = {
    where: DocumentCommentWhereUniqueInput
    create: XOR<DocumentCommentCreateWithoutParentInput, DocumentCommentUncheckedCreateWithoutParentInput>
  }

  export type DocumentCommentCreateManyParentInputEnvelope = {
    data: DocumentCommentCreateManyParentInput | DocumentCommentCreateManyParentInput[]
    skipDuplicates?: boolean
  }

  export type UserMentionCreateWithoutCommentInput = {
    id?: string
    readAt?: Date | string | null
    createdAt?: Date | string
    mentionedUser: UserCreateNestedOneWithoutMentionedInInput
  }

  export type UserMentionUncheckedCreateWithoutCommentInput = {
    id?: string
    mentionedUserId: string
    readAt?: Date | string | null
    createdAt?: Date | string
  }

  export type UserMentionCreateOrConnectWithoutCommentInput = {
    where: UserMentionWhereUniqueInput
    create: XOR<UserMentionCreateWithoutCommentInput, UserMentionUncheckedCreateWithoutCommentInput>
  }

  export type UserMentionCreateManyCommentInputEnvelope = {
    data: UserMentionCreateManyCommentInput | UserMentionCreateManyCommentInput[]
    skipDuplicates?: boolean
  }

  export type SPDocumentIndexUpsertWithoutCommentsInput = {
    update: XOR<SPDocumentIndexUpdateWithoutCommentsInput, SPDocumentIndexUncheckedUpdateWithoutCommentsInput>
    create: XOR<SPDocumentIndexCreateWithoutCommentsInput, SPDocumentIndexUncheckedCreateWithoutCommentsInput>
    where?: SPDocumentIndexWhereInput
  }

  export type SPDocumentIndexUpdateToOneWithWhereWithoutCommentsInput = {
    where?: SPDocumentIndexWhereInput
    data: XOR<SPDocumentIndexUpdateWithoutCommentsInput, SPDocumentIndexUncheckedUpdateWithoutCommentsInput>
  }

  export type SPDocumentIndexUpdateWithoutCommentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    views?: DocumentViewUpdateManyWithoutSpDocumentNestedInput
    likes?: DocumentLikeUpdateManyWithoutSpDocumentNestedInput
  }

  export type SPDocumentIndexUncheckedUpdateWithoutCommentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    spItemId?: StringFieldUpdateOperationsInput | string
    spDriveId?: StringFieldUpdateOperationsInput | string
    spSiteId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    webUrl?: StringFieldUpdateOperationsInput | string
    fileType?: NullableStringFieldUpdateOperationsInput | string | null
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    size?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    spEtag?: NullableStringFieldUpdateOperationsInput | string | null
    docAuthorityLevel?: EnumDocAuthorityLevelFieldUpdateOperationsInput | $Enums.DocAuthorityLevel
    docLifecycleStatus?: EnumDocLifecycleStatusFieldUpdateOperationsInput | $Enums.DocLifecycleStatus
    docType?: EnumDocTypeFieldUpdateOperationsInput | $Enums.DocType
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedBy?: NullableStringFieldUpdateOperationsInput | string | null
    spCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    views?: DocumentViewUncheckedUpdateManyWithoutSpDocumentNestedInput
    likes?: DocumentLikeUncheckedUpdateManyWithoutSpDocumentNestedInput
  }

  export type KnowledgeArticleUpsertWithoutCommentsInput = {
    update: XOR<KnowledgeArticleUpdateWithoutCommentsInput, KnowledgeArticleUncheckedUpdateWithoutCommentsInput>
    create: XOR<KnowledgeArticleCreateWithoutCommentsInput, KnowledgeArticleUncheckedCreateWithoutCommentsInput>
    where?: KnowledgeArticleWhereInput
  }

  export type KnowledgeArticleUpdateToOneWithWhereWithoutCommentsInput = {
    where?: KnowledgeArticleWhereInput
    data: XOR<KnowledgeArticleUpdateWithoutCommentsInput, KnowledgeArticleUncheckedUpdateWithoutCommentsInput>
  }

  export type KnowledgeArticleUpdateWithoutCommentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: UserUpdateOneRequiredWithoutKnowledgeArticlesNestedInput
    views?: DocumentViewUpdateManyWithoutArticleNestedInput
    likes?: DocumentLikeUpdateManyWithoutArticleNestedInput
  }

  export type KnowledgeArticleUncheckedUpdateWithoutCommentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    views?: DocumentViewUncheckedUpdateManyWithoutArticleNestedInput
    likes?: DocumentLikeUncheckedUpdateManyWithoutArticleNestedInput
  }

  export type UserUpsertWithoutDocumentCommentsInput = {
    update: XOR<UserUpdateWithoutDocumentCommentsInput, UserUncheckedUpdateWithoutDocumentCommentsInput>
    create: XOR<UserCreateWithoutDocumentCommentsInput, UserUncheckedCreateWithoutDocumentCommentsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutDocumentCommentsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutDocumentCommentsInput, UserUncheckedUpdateWithoutDocumentCommentsInput>
  }

  export type UserUpdateWithoutDocumentCommentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutDocumentCommentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type DocumentCommentUpsertWithoutRepliesInput = {
    update: XOR<DocumentCommentUpdateWithoutRepliesInput, DocumentCommentUncheckedUpdateWithoutRepliesInput>
    create: XOR<DocumentCommentCreateWithoutRepliesInput, DocumentCommentUncheckedCreateWithoutRepliesInput>
    where?: DocumentCommentWhereInput
  }

  export type DocumentCommentUpdateToOneWithWhereWithoutRepliesInput = {
    where?: DocumentCommentWhereInput
    data: XOR<DocumentCommentUpdateWithoutRepliesInput, DocumentCommentUncheckedUpdateWithoutRepliesInput>
  }

  export type DocumentCommentUpdateWithoutRepliesInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spDocument?: SPDocumentIndexUpdateOneWithoutCommentsNestedInput
    article?: KnowledgeArticleUpdateOneWithoutCommentsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentCommentsNestedInput
    parent?: DocumentCommentUpdateOneWithoutRepliesNestedInput
    mentions?: UserMentionUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateWithoutRepliesInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    mentions?: UserMentionUncheckedUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUpsertWithWhereUniqueWithoutParentInput = {
    where: DocumentCommentWhereUniqueInput
    update: XOR<DocumentCommentUpdateWithoutParentInput, DocumentCommentUncheckedUpdateWithoutParentInput>
    create: XOR<DocumentCommentCreateWithoutParentInput, DocumentCommentUncheckedCreateWithoutParentInput>
  }

  export type DocumentCommentUpdateWithWhereUniqueWithoutParentInput = {
    where: DocumentCommentWhereUniqueInput
    data: XOR<DocumentCommentUpdateWithoutParentInput, DocumentCommentUncheckedUpdateWithoutParentInput>
  }

  export type DocumentCommentUpdateManyWithWhereWithoutParentInput = {
    where: DocumentCommentScalarWhereInput
    data: XOR<DocumentCommentUpdateManyMutationInput, DocumentCommentUncheckedUpdateManyWithoutParentInput>
  }

  export type UserMentionUpsertWithWhereUniqueWithoutCommentInput = {
    where: UserMentionWhereUniqueInput
    update: XOR<UserMentionUpdateWithoutCommentInput, UserMentionUncheckedUpdateWithoutCommentInput>
    create: XOR<UserMentionCreateWithoutCommentInput, UserMentionUncheckedCreateWithoutCommentInput>
  }

  export type UserMentionUpdateWithWhereUniqueWithoutCommentInput = {
    where: UserMentionWhereUniqueInput
    data: XOR<UserMentionUpdateWithoutCommentInput, UserMentionUncheckedUpdateWithoutCommentInput>
  }

  export type UserMentionUpdateManyWithWhereWithoutCommentInput = {
    where: UserMentionScalarWhereInput
    data: XOR<UserMentionUpdateManyMutationInput, UserMentionUncheckedUpdateManyWithoutCommentInput>
  }

  export type DocumentCommentCreateWithoutMentionsInput = {
    id?: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    spDocument?: SPDocumentIndexCreateNestedOneWithoutCommentsInput
    article?: KnowledgeArticleCreateNestedOneWithoutCommentsInput
    user: UserCreateNestedOneWithoutDocumentCommentsInput
    parent?: DocumentCommentCreateNestedOneWithoutRepliesInput
    replies?: DocumentCommentCreateNestedManyWithoutParentInput
  }

  export type DocumentCommentUncheckedCreateWithoutMentionsInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    replies?: DocumentCommentUncheckedCreateNestedManyWithoutParentInput
  }

  export type DocumentCommentCreateOrConnectWithoutMentionsInput = {
    where: DocumentCommentWhereUniqueInput
    create: XOR<DocumentCommentCreateWithoutMentionsInput, DocumentCommentUncheckedCreateWithoutMentionsInput>
  }

  export type UserCreateWithoutMentionedInInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMentionedInInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMentionedInInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMentionedInInput, UserUncheckedCreateWithoutMentionedInInput>
  }

  export type DocumentCommentUpsertWithoutMentionsInput = {
    update: XOR<DocumentCommentUpdateWithoutMentionsInput, DocumentCommentUncheckedUpdateWithoutMentionsInput>
    create: XOR<DocumentCommentCreateWithoutMentionsInput, DocumentCommentUncheckedCreateWithoutMentionsInput>
    where?: DocumentCommentWhereInput
  }

  export type DocumentCommentUpdateToOneWithWhereWithoutMentionsInput = {
    where?: DocumentCommentWhereInput
    data: XOR<DocumentCommentUpdateWithoutMentionsInput, DocumentCommentUncheckedUpdateWithoutMentionsInput>
  }

  export type DocumentCommentUpdateWithoutMentionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spDocument?: SPDocumentIndexUpdateOneWithoutCommentsNestedInput
    article?: KnowledgeArticleUpdateOneWithoutCommentsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentCommentsNestedInput
    parent?: DocumentCommentUpdateOneWithoutRepliesNestedInput
    replies?: DocumentCommentUpdateManyWithoutParentNestedInput
  }

  export type DocumentCommentUncheckedUpdateWithoutMentionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    replies?: DocumentCommentUncheckedUpdateManyWithoutParentNestedInput
  }

  export type UserUpsertWithoutMentionedInInput = {
    update: XOR<UserUpdateWithoutMentionedInInput, UserUncheckedUpdateWithoutMentionedInInput>
    create: XOR<UserCreateWithoutMentionedInInput, UserUncheckedCreateWithoutMentionedInInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMentionedInInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMentionedInInput, UserUncheckedUpdateWithoutMentionedInInput>
  }

  export type UserUpdateWithoutMentionedInInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMentionedInInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type SyncTaskSkippedItemCreateWithoutTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    reason: string
    createdAt?: Date | string
  }

  export type SyncTaskSkippedItemUncheckedCreateWithoutTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    reason: string
    createdAt?: Date | string
  }

  export type SyncTaskSkippedItemCreateOrConnectWithoutTaskInput = {
    where: SyncTaskSkippedItemWhereUniqueInput
    create: XOR<SyncTaskSkippedItemCreateWithoutTaskInput, SyncTaskSkippedItemUncheckedCreateWithoutTaskInput>
  }

  export type SyncTaskSkippedItemCreateManyTaskInputEnvelope = {
    data: SyncTaskSkippedItemCreateManyTaskInput | SyncTaskSkippedItemCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type SyncTaskProcessedItemCreateWithoutTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    ragflowDocumentId?: string | null
    tokenCount?: number | null
    chunkCount?: number | null
    sourceSizeBytes?: bigint | number | null
    status?: $Enums.SyncItemStatus
    createdAt?: Date | string
  }

  export type SyncTaskProcessedItemUncheckedCreateWithoutTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    ragflowDocumentId?: string | null
    tokenCount?: number | null
    chunkCount?: number | null
    sourceSizeBytes?: bigint | number | null
    status?: $Enums.SyncItemStatus
    createdAt?: Date | string
  }

  export type SyncTaskProcessedItemCreateOrConnectWithoutTaskInput = {
    where: SyncTaskProcessedItemWhereUniqueInput
    create: XOR<SyncTaskProcessedItemCreateWithoutTaskInput, SyncTaskProcessedItemUncheckedCreateWithoutTaskInput>
  }

  export type SyncTaskProcessedItemCreateManyTaskInputEnvelope = {
    data: SyncTaskProcessedItemCreateManyTaskInput | SyncTaskProcessedItemCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type SyncTaskFailedItemCreateWithoutTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    error: string
    createdAt?: Date | string
  }

  export type SyncTaskFailedItemUncheckedCreateWithoutTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    error: string
    createdAt?: Date | string
  }

  export type SyncTaskFailedItemCreateOrConnectWithoutTaskInput = {
    where: SyncTaskFailedItemWhereUniqueInput
    create: XOR<SyncTaskFailedItemCreateWithoutTaskInput, SyncTaskFailedItemUncheckedCreateWithoutTaskInput>
  }

  export type SyncTaskFailedItemCreateManyTaskInputEnvelope = {
    data: SyncTaskFailedItemCreateManyTaskInput | SyncTaskFailedItemCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type SyncTaskSkippedItemUpsertWithWhereUniqueWithoutTaskInput = {
    where: SyncTaskSkippedItemWhereUniqueInput
    update: XOR<SyncTaskSkippedItemUpdateWithoutTaskInput, SyncTaskSkippedItemUncheckedUpdateWithoutTaskInput>
    create: XOR<SyncTaskSkippedItemCreateWithoutTaskInput, SyncTaskSkippedItemUncheckedCreateWithoutTaskInput>
  }

  export type SyncTaskSkippedItemUpdateWithWhereUniqueWithoutTaskInput = {
    where: SyncTaskSkippedItemWhereUniqueInput
    data: XOR<SyncTaskSkippedItemUpdateWithoutTaskInput, SyncTaskSkippedItemUncheckedUpdateWithoutTaskInput>
  }

  export type SyncTaskSkippedItemUpdateManyWithWhereWithoutTaskInput = {
    where: SyncTaskSkippedItemScalarWhereInput
    data: XOR<SyncTaskSkippedItemUpdateManyMutationInput, SyncTaskSkippedItemUncheckedUpdateManyWithoutTaskInput>
  }

  export type SyncTaskSkippedItemScalarWhereInput = {
    AND?: SyncTaskSkippedItemScalarWhereInput | SyncTaskSkippedItemScalarWhereInput[]
    OR?: SyncTaskSkippedItemScalarWhereInput[]
    NOT?: SyncTaskSkippedItemScalarWhereInput | SyncTaskSkippedItemScalarWhereInput[]
    id?: UuidFilter<"SyncTaskSkippedItem"> | string
    taskId?: UuidFilter<"SyncTaskSkippedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskSkippedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskSkippedItem"> | string
    filename?: StringFilter<"SyncTaskSkippedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskSkippedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskSkippedItem"> | string | null
    reason?: StringFilter<"SyncTaskSkippedItem"> | string
    createdAt?: DateTimeFilter<"SyncTaskSkippedItem"> | Date | string
  }

  export type SyncTaskProcessedItemUpsertWithWhereUniqueWithoutTaskInput = {
    where: SyncTaskProcessedItemWhereUniqueInput
    update: XOR<SyncTaskProcessedItemUpdateWithoutTaskInput, SyncTaskProcessedItemUncheckedUpdateWithoutTaskInput>
    create: XOR<SyncTaskProcessedItemCreateWithoutTaskInput, SyncTaskProcessedItemUncheckedCreateWithoutTaskInput>
  }

  export type SyncTaskProcessedItemUpdateWithWhereUniqueWithoutTaskInput = {
    where: SyncTaskProcessedItemWhereUniqueInput
    data: XOR<SyncTaskProcessedItemUpdateWithoutTaskInput, SyncTaskProcessedItemUncheckedUpdateWithoutTaskInput>
  }

  export type SyncTaskProcessedItemUpdateManyWithWhereWithoutTaskInput = {
    where: SyncTaskProcessedItemScalarWhereInput
    data: XOR<SyncTaskProcessedItemUpdateManyMutationInput, SyncTaskProcessedItemUncheckedUpdateManyWithoutTaskInput>
  }

  export type SyncTaskProcessedItemScalarWhereInput = {
    AND?: SyncTaskProcessedItemScalarWhereInput | SyncTaskProcessedItemScalarWhereInput[]
    OR?: SyncTaskProcessedItemScalarWhereInput[]
    NOT?: SyncTaskProcessedItemScalarWhereInput | SyncTaskProcessedItemScalarWhereInput[]
    id?: UuidFilter<"SyncTaskProcessedItem"> | string
    taskId?: UuidFilter<"SyncTaskProcessedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskProcessedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskProcessedItem"> | string
    filename?: StringFilter<"SyncTaskProcessedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    ragflowDocumentId?: StringNullableFilter<"SyncTaskProcessedItem"> | string | null
    tokenCount?: IntNullableFilter<"SyncTaskProcessedItem"> | number | null
    chunkCount?: IntNullableFilter<"SyncTaskProcessedItem"> | number | null
    sourceSizeBytes?: BigIntNullableFilter<"SyncTaskProcessedItem"> | bigint | number | null
    status?: EnumSyncItemStatusFilter<"SyncTaskProcessedItem"> | $Enums.SyncItemStatus
    createdAt?: DateTimeFilter<"SyncTaskProcessedItem"> | Date | string
  }

  export type SyncTaskFailedItemUpsertWithWhereUniqueWithoutTaskInput = {
    where: SyncTaskFailedItemWhereUniqueInput
    update: XOR<SyncTaskFailedItemUpdateWithoutTaskInput, SyncTaskFailedItemUncheckedUpdateWithoutTaskInput>
    create: XOR<SyncTaskFailedItemCreateWithoutTaskInput, SyncTaskFailedItemUncheckedCreateWithoutTaskInput>
  }

  export type SyncTaskFailedItemUpdateWithWhereUniqueWithoutTaskInput = {
    where: SyncTaskFailedItemWhereUniqueInput
    data: XOR<SyncTaskFailedItemUpdateWithoutTaskInput, SyncTaskFailedItemUncheckedUpdateWithoutTaskInput>
  }

  export type SyncTaskFailedItemUpdateManyWithWhereWithoutTaskInput = {
    where: SyncTaskFailedItemScalarWhereInput
    data: XOR<SyncTaskFailedItemUpdateManyMutationInput, SyncTaskFailedItemUncheckedUpdateManyWithoutTaskInput>
  }

  export type SyncTaskFailedItemScalarWhereInput = {
    AND?: SyncTaskFailedItemScalarWhereInput | SyncTaskFailedItemScalarWhereInput[]
    OR?: SyncTaskFailedItemScalarWhereInput[]
    NOT?: SyncTaskFailedItemScalarWhereInput | SyncTaskFailedItemScalarWhereInput[]
    id?: UuidFilter<"SyncTaskFailedItem"> | string
    taskId?: UuidFilter<"SyncTaskFailedItem"> | string
    sourceType?: EnumRagflowSourceTypeFilter<"SyncTaskFailedItem"> | $Enums.RagflowSourceType
    sourceId?: UuidFilter<"SyncTaskFailedItem"> | string
    filename?: StringFilter<"SyncTaskFailedItem"> | string
    fileExtension?: StringNullableFilter<"SyncTaskFailedItem"> | string | null
    mimeType?: StringNullableFilter<"SyncTaskFailedItem"> | string | null
    error?: StringFilter<"SyncTaskFailedItem"> | string
    createdAt?: DateTimeFilter<"SyncTaskFailedItem"> | Date | string
  }

  export type SyncTaskCreateWithoutSkippedDetailsInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
    processedDetails?: SyncTaskProcessedItemCreateNestedManyWithoutTaskInput
    failedDetails?: SyncTaskFailedItemCreateNestedManyWithoutTaskInput
  }

  export type SyncTaskUncheckedCreateWithoutSkippedDetailsInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
    processedDetails?: SyncTaskProcessedItemUncheckedCreateNestedManyWithoutTaskInput
    failedDetails?: SyncTaskFailedItemUncheckedCreateNestedManyWithoutTaskInput
  }

  export type SyncTaskCreateOrConnectWithoutSkippedDetailsInput = {
    where: SyncTaskWhereUniqueInput
    create: XOR<SyncTaskCreateWithoutSkippedDetailsInput, SyncTaskUncheckedCreateWithoutSkippedDetailsInput>
  }

  export type SyncTaskUpsertWithoutSkippedDetailsInput = {
    update: XOR<SyncTaskUpdateWithoutSkippedDetailsInput, SyncTaskUncheckedUpdateWithoutSkippedDetailsInput>
    create: XOR<SyncTaskCreateWithoutSkippedDetailsInput, SyncTaskUncheckedCreateWithoutSkippedDetailsInput>
    where?: SyncTaskWhereInput
  }

  export type SyncTaskUpdateToOneWithWhereWithoutSkippedDetailsInput = {
    where?: SyncTaskWhereInput
    data: XOR<SyncTaskUpdateWithoutSkippedDetailsInput, SyncTaskUncheckedUpdateWithoutSkippedDetailsInput>
  }

  export type SyncTaskUpdateWithoutSkippedDetailsInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    processedDetails?: SyncTaskProcessedItemUpdateManyWithoutTaskNestedInput
    failedDetails?: SyncTaskFailedItemUpdateManyWithoutTaskNestedInput
  }

  export type SyncTaskUncheckedUpdateWithoutSkippedDetailsInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    processedDetails?: SyncTaskProcessedItemUncheckedUpdateManyWithoutTaskNestedInput
    failedDetails?: SyncTaskFailedItemUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type SyncTaskCreateWithoutProcessedDetailsInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
    skippedDetails?: SyncTaskSkippedItemCreateNestedManyWithoutTaskInput
    failedDetails?: SyncTaskFailedItemCreateNestedManyWithoutTaskInput
  }

  export type SyncTaskUncheckedCreateWithoutProcessedDetailsInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
    skippedDetails?: SyncTaskSkippedItemUncheckedCreateNestedManyWithoutTaskInput
    failedDetails?: SyncTaskFailedItemUncheckedCreateNestedManyWithoutTaskInput
  }

  export type SyncTaskCreateOrConnectWithoutProcessedDetailsInput = {
    where: SyncTaskWhereUniqueInput
    create: XOR<SyncTaskCreateWithoutProcessedDetailsInput, SyncTaskUncheckedCreateWithoutProcessedDetailsInput>
  }

  export type SyncTaskUpsertWithoutProcessedDetailsInput = {
    update: XOR<SyncTaskUpdateWithoutProcessedDetailsInput, SyncTaskUncheckedUpdateWithoutProcessedDetailsInput>
    create: XOR<SyncTaskCreateWithoutProcessedDetailsInput, SyncTaskUncheckedCreateWithoutProcessedDetailsInput>
    where?: SyncTaskWhereInput
  }

  export type SyncTaskUpdateToOneWithWhereWithoutProcessedDetailsInput = {
    where?: SyncTaskWhereInput
    data: XOR<SyncTaskUpdateWithoutProcessedDetailsInput, SyncTaskUncheckedUpdateWithoutProcessedDetailsInput>
  }

  export type SyncTaskUpdateWithoutProcessedDetailsInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    skippedDetails?: SyncTaskSkippedItemUpdateManyWithoutTaskNestedInput
    failedDetails?: SyncTaskFailedItemUpdateManyWithoutTaskNestedInput
  }

  export type SyncTaskUncheckedUpdateWithoutProcessedDetailsInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    skippedDetails?: SyncTaskSkippedItemUncheckedUpdateManyWithoutTaskNestedInput
    failedDetails?: SyncTaskFailedItemUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type SyncTaskCreateWithoutFailedDetailsInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
    skippedDetails?: SyncTaskSkippedItemCreateNestedManyWithoutTaskInput
    processedDetails?: SyncTaskProcessedItemCreateNestedManyWithoutTaskInput
  }

  export type SyncTaskUncheckedCreateWithoutFailedDetailsInput = {
    id?: string
    taskType: string
    triggerSource?: string | null
    status?: $Enums.SyncStatus
    totalItems?: number | null
    processedItems?: number
    processingItems?: number
    failedItems?: number
    skippedItems?: number
    processedTokens?: number
    processedChunks?: number
    error?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    lastProgressAt?: Date | string | null
    createdAt?: Date | string
    skippedDetails?: SyncTaskSkippedItemUncheckedCreateNestedManyWithoutTaskInput
    processedDetails?: SyncTaskProcessedItemUncheckedCreateNestedManyWithoutTaskInput
  }

  export type SyncTaskCreateOrConnectWithoutFailedDetailsInput = {
    where: SyncTaskWhereUniqueInput
    create: XOR<SyncTaskCreateWithoutFailedDetailsInput, SyncTaskUncheckedCreateWithoutFailedDetailsInput>
  }

  export type SyncTaskUpsertWithoutFailedDetailsInput = {
    update: XOR<SyncTaskUpdateWithoutFailedDetailsInput, SyncTaskUncheckedUpdateWithoutFailedDetailsInput>
    create: XOR<SyncTaskCreateWithoutFailedDetailsInput, SyncTaskUncheckedCreateWithoutFailedDetailsInput>
    where?: SyncTaskWhereInput
  }

  export type SyncTaskUpdateToOneWithWhereWithoutFailedDetailsInput = {
    where?: SyncTaskWhereInput
    data: XOR<SyncTaskUpdateWithoutFailedDetailsInput, SyncTaskUncheckedUpdateWithoutFailedDetailsInput>
  }

  export type SyncTaskUpdateWithoutFailedDetailsInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    skippedDetails?: SyncTaskSkippedItemUpdateManyWithoutTaskNestedInput
    processedDetails?: SyncTaskProcessedItemUpdateManyWithoutTaskNestedInput
  }

  export type SyncTaskUncheckedUpdateWithoutFailedDetailsInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskType?: StringFieldUpdateOperationsInput | string
    triggerSource?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumSyncStatusFieldUpdateOperationsInput | $Enums.SyncStatus
    totalItems?: NullableIntFieldUpdateOperationsInput | number | null
    processedItems?: IntFieldUpdateOperationsInput | number
    processingItems?: IntFieldUpdateOperationsInput | number
    failedItems?: IntFieldUpdateOperationsInput | number
    skippedItems?: IntFieldUpdateOperationsInput | number
    processedTokens?: IntFieldUpdateOperationsInput | number
    processedChunks?: IntFieldUpdateOperationsInput | number
    error?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastProgressAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    skippedDetails?: SyncTaskSkippedItemUncheckedUpdateManyWithoutTaskNestedInput
    processedDetails?: SyncTaskProcessedItemUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type CustomerContactCreateWithoutCustomerInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerContactUncheckedCreateWithoutCustomerInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerContactCreateOrConnectWithoutCustomerInput = {
    where: CustomerContactWhereUniqueInput
    create: XOR<CustomerContactCreateWithoutCustomerInput, CustomerContactUncheckedCreateWithoutCustomerInput>
  }

  export type CustomerContactCreateManyCustomerInputEnvelope = {
    data: CustomerContactCreateManyCustomerInput | CustomerContactCreateManyCustomerInput[]
    skipDuplicates?: boolean
  }

  export type CustomerAddressCreateWithoutCustomerInput = {
    id?: string
    addressType: string
    line1: string
    line2?: string | null
    city?: string | null
    state?: string | null
    postalCode?: string | null
    countryCode?: string | null
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerAddressUncheckedCreateWithoutCustomerInput = {
    id?: string
    addressType: string
    line1: string
    line2?: string | null
    city?: string | null
    state?: string | null
    postalCode?: string | null
    countryCode?: string | null
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerAddressCreateOrConnectWithoutCustomerInput = {
    where: CustomerAddressWhereUniqueInput
    create: XOR<CustomerAddressCreateWithoutCustomerInput, CustomerAddressUncheckedCreateWithoutCustomerInput>
  }

  export type CustomerAddressCreateManyCustomerInputEnvelope = {
    data: CustomerAddressCreateManyCustomerInput | CustomerAddressCreateManyCustomerInput[]
    skipDuplicates?: boolean
  }

  export type LocationCreateWithoutCustomerInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    parent?: LocationCreateNestedOneWithoutChildrenInput
    children?: LocationCreateNestedManyWithoutParentInput
  }

  export type LocationUncheckedCreateWithoutCustomerInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    parentLocationId?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    children?: LocationUncheckedCreateNestedManyWithoutParentInput
  }

  export type LocationCreateOrConnectWithoutCustomerInput = {
    where: LocationWhereUniqueInput
    create: XOR<LocationCreateWithoutCustomerInput, LocationUncheckedCreateWithoutCustomerInput>
  }

  export type LocationCreateManyCustomerInputEnvelope = {
    data: LocationCreateManyCustomerInput | LocationCreateManyCustomerInput[]
    skipDuplicates?: boolean
  }

  export type CustomerContactUpsertWithWhereUniqueWithoutCustomerInput = {
    where: CustomerContactWhereUniqueInput
    update: XOR<CustomerContactUpdateWithoutCustomerInput, CustomerContactUncheckedUpdateWithoutCustomerInput>
    create: XOR<CustomerContactCreateWithoutCustomerInput, CustomerContactUncheckedCreateWithoutCustomerInput>
  }

  export type CustomerContactUpdateWithWhereUniqueWithoutCustomerInput = {
    where: CustomerContactWhereUniqueInput
    data: XOR<CustomerContactUpdateWithoutCustomerInput, CustomerContactUncheckedUpdateWithoutCustomerInput>
  }

  export type CustomerContactUpdateManyWithWhereWithoutCustomerInput = {
    where: CustomerContactScalarWhereInput
    data: XOR<CustomerContactUpdateManyMutationInput, CustomerContactUncheckedUpdateManyWithoutCustomerInput>
  }

  export type CustomerContactScalarWhereInput = {
    AND?: CustomerContactScalarWhereInput | CustomerContactScalarWhereInput[]
    OR?: CustomerContactScalarWhereInput[]
    NOT?: CustomerContactScalarWhereInput | CustomerContactScalarWhereInput[]
    id?: UuidFilter<"CustomerContact"> | string
    customerId?: UuidFilter<"CustomerContact"> | string
    name?: StringFilter<"CustomerContact"> | string
    role?: StringNullableFilter<"CustomerContact"> | string | null
    phone?: StringNullableFilter<"CustomerContact"> | string | null
    email?: StringNullableFilter<"CustomerContact"> | string | null
    isPrimary?: BoolFilter<"CustomerContact"> | boolean
    createdAt?: DateTimeFilter<"CustomerContact"> | Date | string
    updatedAt?: DateTimeFilter<"CustomerContact"> | Date | string
  }

  export type CustomerAddressUpsertWithWhereUniqueWithoutCustomerInput = {
    where: CustomerAddressWhereUniqueInput
    update: XOR<CustomerAddressUpdateWithoutCustomerInput, CustomerAddressUncheckedUpdateWithoutCustomerInput>
    create: XOR<CustomerAddressCreateWithoutCustomerInput, CustomerAddressUncheckedCreateWithoutCustomerInput>
  }

  export type CustomerAddressUpdateWithWhereUniqueWithoutCustomerInput = {
    where: CustomerAddressWhereUniqueInput
    data: XOR<CustomerAddressUpdateWithoutCustomerInput, CustomerAddressUncheckedUpdateWithoutCustomerInput>
  }

  export type CustomerAddressUpdateManyWithWhereWithoutCustomerInput = {
    where: CustomerAddressScalarWhereInput
    data: XOR<CustomerAddressUpdateManyMutationInput, CustomerAddressUncheckedUpdateManyWithoutCustomerInput>
  }

  export type CustomerAddressScalarWhereInput = {
    AND?: CustomerAddressScalarWhereInput | CustomerAddressScalarWhereInput[]
    OR?: CustomerAddressScalarWhereInput[]
    NOT?: CustomerAddressScalarWhereInput | CustomerAddressScalarWhereInput[]
    id?: UuidFilter<"CustomerAddress"> | string
    customerId?: UuidFilter<"CustomerAddress"> | string
    addressType?: StringFilter<"CustomerAddress"> | string
    line1?: StringFilter<"CustomerAddress"> | string
    line2?: StringNullableFilter<"CustomerAddress"> | string | null
    city?: StringNullableFilter<"CustomerAddress"> | string | null
    state?: StringNullableFilter<"CustomerAddress"> | string | null
    postalCode?: StringNullableFilter<"CustomerAddress"> | string | null
    countryCode?: StringNullableFilter<"CustomerAddress"> | string | null
    isDefault?: BoolFilter<"CustomerAddress"> | boolean
    createdAt?: DateTimeFilter<"CustomerAddress"> | Date | string
    updatedAt?: DateTimeFilter<"CustomerAddress"> | Date | string
  }

  export type LocationUpsertWithWhereUniqueWithoutCustomerInput = {
    where: LocationWhereUniqueInput
    update: XOR<LocationUpdateWithoutCustomerInput, LocationUncheckedUpdateWithoutCustomerInput>
    create: XOR<LocationCreateWithoutCustomerInput, LocationUncheckedCreateWithoutCustomerInput>
  }

  export type LocationUpdateWithWhereUniqueWithoutCustomerInput = {
    where: LocationWhereUniqueInput
    data: XOR<LocationUpdateWithoutCustomerInput, LocationUncheckedUpdateWithoutCustomerInput>
  }

  export type LocationUpdateManyWithWhereWithoutCustomerInput = {
    where: LocationScalarWhereInput
    data: XOR<LocationUpdateManyMutationInput, LocationUncheckedUpdateManyWithoutCustomerInput>
  }

  export type LocationScalarWhereInput = {
    AND?: LocationScalarWhereInput | LocationScalarWhereInput[]
    OR?: LocationScalarWhereInput[]
    NOT?: LocationScalarWhereInput | LocationScalarWhereInput[]
    id?: UuidFilter<"Location"> | string
    code?: StringFilter<"Location"> | string
    name?: StringFilter<"Location"> | string
    type?: EnumLocationTypeFilter<"Location"> | $Enums.LocationType
    countryCode?: StringNullableFilter<"Location"> | string | null
    address?: StringNullableFilter<"Location"> | string | null
    latitude?: DecimalNullableFilter<"Location"> | Decimal | DecimalJsLike | number | string | null
    longitude?: DecimalNullableFilter<"Location"> | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: UuidNullableFilter<"Location"> | string | null
    customerId?: UuidNullableFilter<"Location"> | string | null
    enabled?: BoolFilter<"Location"> | boolean
    metadata?: JsonFilter<"Location">
    organizationId?: UuidFilter<"Location"> | string
    createdAt?: DateTimeFilter<"Location"> | Date | string
    updatedAt?: DateTimeFilter<"Location"> | Date | string
    createdById?: UuidFilter<"Location"> | string
    deletedAt?: DateTimeNullableFilter<"Location"> | Date | string | null
  }

  export type CustomerCreateWithoutContactsInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    addresses?: CustomerAddressCreateNestedManyWithoutCustomerInput
    locations?: LocationCreateNestedManyWithoutCustomerInput
  }

  export type CustomerUncheckedCreateWithoutContactsInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    addresses?: CustomerAddressUncheckedCreateNestedManyWithoutCustomerInput
    locations?: LocationUncheckedCreateNestedManyWithoutCustomerInput
  }

  export type CustomerCreateOrConnectWithoutContactsInput = {
    where: CustomerWhereUniqueInput
    create: XOR<CustomerCreateWithoutContactsInput, CustomerUncheckedCreateWithoutContactsInput>
  }

  export type CustomerUpsertWithoutContactsInput = {
    update: XOR<CustomerUpdateWithoutContactsInput, CustomerUncheckedUpdateWithoutContactsInput>
    create: XOR<CustomerCreateWithoutContactsInput, CustomerUncheckedCreateWithoutContactsInput>
    where?: CustomerWhereInput
  }

  export type CustomerUpdateToOneWithWhereWithoutContactsInput = {
    where?: CustomerWhereInput
    data: XOR<CustomerUpdateWithoutContactsInput, CustomerUncheckedUpdateWithoutContactsInput>
  }

  export type CustomerUpdateWithoutContactsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    addresses?: CustomerAddressUpdateManyWithoutCustomerNestedInput
    locations?: LocationUpdateManyWithoutCustomerNestedInput
  }

  export type CustomerUncheckedUpdateWithoutContactsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    addresses?: CustomerAddressUncheckedUpdateManyWithoutCustomerNestedInput
    locations?: LocationUncheckedUpdateManyWithoutCustomerNestedInput
  }

  export type CustomerCreateWithoutAddressesInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: CustomerContactCreateNestedManyWithoutCustomerInput
    locations?: LocationCreateNestedManyWithoutCustomerInput
  }

  export type CustomerUncheckedCreateWithoutAddressesInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: CustomerContactUncheckedCreateNestedManyWithoutCustomerInput
    locations?: LocationUncheckedCreateNestedManyWithoutCustomerInput
  }

  export type CustomerCreateOrConnectWithoutAddressesInput = {
    where: CustomerWhereUniqueInput
    create: XOR<CustomerCreateWithoutAddressesInput, CustomerUncheckedCreateWithoutAddressesInput>
  }

  export type CustomerUpsertWithoutAddressesInput = {
    update: XOR<CustomerUpdateWithoutAddressesInput, CustomerUncheckedUpdateWithoutAddressesInput>
    create: XOR<CustomerCreateWithoutAddressesInput, CustomerUncheckedCreateWithoutAddressesInput>
    where?: CustomerWhereInput
  }

  export type CustomerUpdateToOneWithWhereWithoutAddressesInput = {
    where?: CustomerWhereInput
    data: XOR<CustomerUpdateWithoutAddressesInput, CustomerUncheckedUpdateWithoutAddressesInput>
  }

  export type CustomerUpdateWithoutAddressesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: CustomerContactUpdateManyWithoutCustomerNestedInput
    locations?: LocationUpdateManyWithoutCustomerNestedInput
  }

  export type CustomerUncheckedUpdateWithoutAddressesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: CustomerContactUncheckedUpdateManyWithoutCustomerNestedInput
    locations?: LocationUncheckedUpdateManyWithoutCustomerNestedInput
  }

  export type SupplierContactCreateWithoutSupplierInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplierContactUncheckedCreateWithoutSupplierInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplierContactCreateOrConnectWithoutSupplierInput = {
    where: SupplierContactWhereUniqueInput
    create: XOR<SupplierContactCreateWithoutSupplierInput, SupplierContactUncheckedCreateWithoutSupplierInput>
  }

  export type SupplierContactCreateManySupplierInputEnvelope = {
    data: SupplierContactCreateManySupplierInput | SupplierContactCreateManySupplierInput[]
    skipDuplicates?: boolean
  }

  export type SupplierContactUpsertWithWhereUniqueWithoutSupplierInput = {
    where: SupplierContactWhereUniqueInput
    update: XOR<SupplierContactUpdateWithoutSupplierInput, SupplierContactUncheckedUpdateWithoutSupplierInput>
    create: XOR<SupplierContactCreateWithoutSupplierInput, SupplierContactUncheckedCreateWithoutSupplierInput>
  }

  export type SupplierContactUpdateWithWhereUniqueWithoutSupplierInput = {
    where: SupplierContactWhereUniqueInput
    data: XOR<SupplierContactUpdateWithoutSupplierInput, SupplierContactUncheckedUpdateWithoutSupplierInput>
  }

  export type SupplierContactUpdateManyWithWhereWithoutSupplierInput = {
    where: SupplierContactScalarWhereInput
    data: XOR<SupplierContactUpdateManyMutationInput, SupplierContactUncheckedUpdateManyWithoutSupplierInput>
  }

  export type SupplierContactScalarWhereInput = {
    AND?: SupplierContactScalarWhereInput | SupplierContactScalarWhereInput[]
    OR?: SupplierContactScalarWhereInput[]
    NOT?: SupplierContactScalarWhereInput | SupplierContactScalarWhereInput[]
    id?: UuidFilter<"SupplierContact"> | string
    supplierId?: UuidFilter<"SupplierContact"> | string
    name?: StringFilter<"SupplierContact"> | string
    role?: StringNullableFilter<"SupplierContact"> | string | null
    phone?: StringNullableFilter<"SupplierContact"> | string | null
    email?: StringNullableFilter<"SupplierContact"> | string | null
    isPrimary?: BoolFilter<"SupplierContact"> | boolean
    createdAt?: DateTimeFilter<"SupplierContact"> | Date | string
    updatedAt?: DateTimeFilter<"SupplierContact"> | Date | string
  }

  export type SupplierCreateWithoutContactsInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.SupplierType
    countryCode?: string | null
    currencyCode?: string | null
    paymentTerms?: string | null
    leadTimeDays?: number | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type SupplierUncheckedCreateWithoutContactsInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.SupplierType
    countryCode?: string | null
    currencyCode?: string | null
    paymentTerms?: string | null
    leadTimeDays?: number | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type SupplierCreateOrConnectWithoutContactsInput = {
    where: SupplierWhereUniqueInput
    create: XOR<SupplierCreateWithoutContactsInput, SupplierUncheckedCreateWithoutContactsInput>
  }

  export type SupplierUpsertWithoutContactsInput = {
    update: XOR<SupplierUpdateWithoutContactsInput, SupplierUncheckedUpdateWithoutContactsInput>
    create: XOR<SupplierCreateWithoutContactsInput, SupplierUncheckedCreateWithoutContactsInput>
    where?: SupplierWhereInput
  }

  export type SupplierUpdateToOneWithWhereWithoutContactsInput = {
    where?: SupplierWhereInput
    data: XOR<SupplierUpdateWithoutContactsInput, SupplierUncheckedUpdateWithoutContactsInput>
  }

  export type SupplierUpdateWithoutContactsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumSupplierTypeFieldUpdateOperationsInput | $Enums.SupplierType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    paymentTerms?: NullableStringFieldUpdateOperationsInput | string | null
    leadTimeDays?: NullableIntFieldUpdateOperationsInput | number | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SupplierUncheckedUpdateWithoutContactsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumSupplierTypeFieldUpdateOperationsInput | $Enums.SupplierType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    paymentTerms?: NullableStringFieldUpdateOperationsInput | string | null
    leadTimeDays?: NullableIntFieldUpdateOperationsInput | number | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartnerContactCreateWithoutPartnerInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartnerContactUncheckedCreateWithoutPartnerInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartnerContactCreateOrConnectWithoutPartnerInput = {
    where: PartnerContactWhereUniqueInput
    create: XOR<PartnerContactCreateWithoutPartnerInput, PartnerContactUncheckedCreateWithoutPartnerInput>
  }

  export type PartnerContactCreateManyPartnerInputEnvelope = {
    data: PartnerContactCreateManyPartnerInput | PartnerContactCreateManyPartnerInput[]
    skipDuplicates?: boolean
  }

  export type PartnerContactUpsertWithWhereUniqueWithoutPartnerInput = {
    where: PartnerContactWhereUniqueInput
    update: XOR<PartnerContactUpdateWithoutPartnerInput, PartnerContactUncheckedUpdateWithoutPartnerInput>
    create: XOR<PartnerContactCreateWithoutPartnerInput, PartnerContactUncheckedCreateWithoutPartnerInput>
  }

  export type PartnerContactUpdateWithWhereUniqueWithoutPartnerInput = {
    where: PartnerContactWhereUniqueInput
    data: XOR<PartnerContactUpdateWithoutPartnerInput, PartnerContactUncheckedUpdateWithoutPartnerInput>
  }

  export type PartnerContactUpdateManyWithWhereWithoutPartnerInput = {
    where: PartnerContactScalarWhereInput
    data: XOR<PartnerContactUpdateManyMutationInput, PartnerContactUncheckedUpdateManyWithoutPartnerInput>
  }

  export type PartnerContactScalarWhereInput = {
    AND?: PartnerContactScalarWhereInput | PartnerContactScalarWhereInput[]
    OR?: PartnerContactScalarWhereInput[]
    NOT?: PartnerContactScalarWhereInput | PartnerContactScalarWhereInput[]
    id?: UuidFilter<"PartnerContact"> | string
    partnerId?: UuidFilter<"PartnerContact"> | string
    name?: StringFilter<"PartnerContact"> | string
    role?: StringNullableFilter<"PartnerContact"> | string | null
    phone?: StringNullableFilter<"PartnerContact"> | string | null
    email?: StringNullableFilter<"PartnerContact"> | string | null
    isPrimary?: BoolFilter<"PartnerContact"> | boolean
    createdAt?: DateTimeFilter<"PartnerContact"> | Date | string
    updatedAt?: DateTimeFilter<"PartnerContact"> | Date | string
  }

  export type PartnerCreateWithoutContactsInput = {
    id?: string
    code: string
    name: string
    role: $Enums.PartnerRole
    countryCode?: string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type PartnerUncheckedCreateWithoutContactsInput = {
    id?: string
    code: string
    name: string
    role: $Enums.PartnerRole
    countryCode?: string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type PartnerCreateOrConnectWithoutContactsInput = {
    where: PartnerWhereUniqueInput
    create: XOR<PartnerCreateWithoutContactsInput, PartnerUncheckedCreateWithoutContactsInput>
  }

  export type PartnerUpsertWithoutContactsInput = {
    update: XOR<PartnerUpdateWithoutContactsInput, PartnerUncheckedUpdateWithoutContactsInput>
    create: XOR<PartnerCreateWithoutContactsInput, PartnerUncheckedCreateWithoutContactsInput>
    where?: PartnerWhereInput
  }

  export type PartnerUpdateToOneWithWhereWithoutContactsInput = {
    where?: PartnerWhereInput
    data: XOR<PartnerUpdateWithoutContactsInput, PartnerUncheckedUpdateWithoutContactsInput>
  }

  export type PartnerUpdateWithoutContactsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: EnumPartnerRoleFieldUpdateOperationsInput | $Enums.PartnerRole
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartnerUncheckedUpdateWithoutContactsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: EnumPartnerRoleFieldUpdateOperationsInput | $Enums.PartnerRole
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type LocationCreateWithoutChildrenInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    parent?: LocationCreateNestedOneWithoutChildrenInput
    customer?: CustomerCreateNestedOneWithoutLocationsInput
  }

  export type LocationUncheckedCreateWithoutChildrenInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    parentLocationId?: string | null
    customerId?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type LocationCreateOrConnectWithoutChildrenInput = {
    where: LocationWhereUniqueInput
    create: XOR<LocationCreateWithoutChildrenInput, LocationUncheckedCreateWithoutChildrenInput>
  }

  export type LocationCreateWithoutParentInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    children?: LocationCreateNestedManyWithoutParentInput
    customer?: CustomerCreateNestedOneWithoutLocationsInput
  }

  export type LocationUncheckedCreateWithoutParentInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    customerId?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    children?: LocationUncheckedCreateNestedManyWithoutParentInput
  }

  export type LocationCreateOrConnectWithoutParentInput = {
    where: LocationWhereUniqueInput
    create: XOR<LocationCreateWithoutParentInput, LocationUncheckedCreateWithoutParentInput>
  }

  export type LocationCreateManyParentInputEnvelope = {
    data: LocationCreateManyParentInput | LocationCreateManyParentInput[]
    skipDuplicates?: boolean
  }

  export type CustomerCreateWithoutLocationsInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: CustomerContactCreateNestedManyWithoutCustomerInput
    addresses?: CustomerAddressCreateNestedManyWithoutCustomerInput
  }

  export type CustomerUncheckedCreateWithoutLocationsInput = {
    id?: string
    code: string
    name: string
    type?: $Enums.CustomerType
    industry?: string | null
    countryCode?: string | null
    taxId?: string | null
    creditLimit?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    contacts?: CustomerContactUncheckedCreateNestedManyWithoutCustomerInput
    addresses?: CustomerAddressUncheckedCreateNestedManyWithoutCustomerInput
  }

  export type CustomerCreateOrConnectWithoutLocationsInput = {
    where: CustomerWhereUniqueInput
    create: XOR<CustomerCreateWithoutLocationsInput, CustomerUncheckedCreateWithoutLocationsInput>
  }

  export type LocationUpsertWithoutChildrenInput = {
    update: XOR<LocationUpdateWithoutChildrenInput, LocationUncheckedUpdateWithoutChildrenInput>
    create: XOR<LocationCreateWithoutChildrenInput, LocationUncheckedCreateWithoutChildrenInput>
    where?: LocationWhereInput
  }

  export type LocationUpdateToOneWithWhereWithoutChildrenInput = {
    where?: LocationWhereInput
    data: XOR<LocationUpdateWithoutChildrenInput, LocationUncheckedUpdateWithoutChildrenInput>
  }

  export type LocationUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: LocationUpdateOneWithoutChildrenNestedInput
    customer?: CustomerUpdateOneWithoutLocationsNestedInput
  }

  export type LocationUncheckedUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type LocationUpsertWithWhereUniqueWithoutParentInput = {
    where: LocationWhereUniqueInput
    update: XOR<LocationUpdateWithoutParentInput, LocationUncheckedUpdateWithoutParentInput>
    create: XOR<LocationCreateWithoutParentInput, LocationUncheckedCreateWithoutParentInput>
  }

  export type LocationUpdateWithWhereUniqueWithoutParentInput = {
    where: LocationWhereUniqueInput
    data: XOR<LocationUpdateWithoutParentInput, LocationUncheckedUpdateWithoutParentInput>
  }

  export type LocationUpdateManyWithWhereWithoutParentInput = {
    where: LocationScalarWhereInput
    data: XOR<LocationUpdateManyMutationInput, LocationUncheckedUpdateManyWithoutParentInput>
  }

  export type CustomerUpsertWithoutLocationsInput = {
    update: XOR<CustomerUpdateWithoutLocationsInput, CustomerUncheckedUpdateWithoutLocationsInput>
    create: XOR<CustomerCreateWithoutLocationsInput, CustomerUncheckedCreateWithoutLocationsInput>
    where?: CustomerWhereInput
  }

  export type CustomerUpdateToOneWithWhereWithoutLocationsInput = {
    where?: CustomerWhereInput
    data: XOR<CustomerUpdateWithoutLocationsInput, CustomerUncheckedUpdateWithoutLocationsInput>
  }

  export type CustomerUpdateWithoutLocationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: CustomerContactUpdateManyWithoutCustomerNestedInput
    addresses?: CustomerAddressUpdateManyWithoutCustomerNestedInput
  }

  export type CustomerUncheckedUpdateWithoutLocationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCustomerTypeFieldUpdateOperationsInput | $Enums.CustomerType
    industry?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    creditLimit?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    contacts?: CustomerContactUncheckedUpdateManyWithoutCustomerNestedInput
    addresses?: CustomerAddressUncheckedUpdateManyWithoutCustomerNestedInput
  }

  export type MeetingAttendanceCreateWithoutMeetingInput = {
    id?: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutMeetingAttendancesInput
  }

  export type MeetingAttendanceUncheckedCreateWithoutMeetingInput = {
    id?: string
    userId: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceCreateOrConnectWithoutMeetingInput = {
    where: MeetingAttendanceWhereUniqueInput
    create: XOR<MeetingAttendanceCreateWithoutMeetingInput, MeetingAttendanceUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingAttendanceCreateManyMeetingInputEnvelope = {
    data: MeetingAttendanceCreateManyMeetingInput | MeetingAttendanceCreateManyMeetingInput[]
    skipDuplicates?: boolean
  }

  export type MeetingRequiredAttendeeCreateWithoutMeetingInput = {
    id?: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutMeetingRequiredAttendeesInput
  }

  export type MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput = {
    id?: string
    userId: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
  }

  export type MeetingRequiredAttendeeCreateOrConnectWithoutMeetingInput = {
    where: MeetingRequiredAttendeeWhereUniqueInput
    create: XOR<MeetingRequiredAttendeeCreateWithoutMeetingInput, MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingRequiredAttendeeCreateManyMeetingInputEnvelope = {
    data: MeetingRequiredAttendeeCreateManyMeetingInput | MeetingRequiredAttendeeCreateManyMeetingInput[]
    skipDuplicates?: boolean
  }

  export type MeetingExternalAttendeeCreateWithoutMeetingInput = {
    id?: string
    email: string
    displayName?: string | null
    attendeeType?: string | null
    response?: string | null
    sourceRole?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput = {
    id?: string
    email: string
    displayName?: string | null
    attendeeType?: string | null
    response?: string | null
    sourceRole?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingExternalAttendeeCreateOrConnectWithoutMeetingInput = {
    where: MeetingExternalAttendeeWhereUniqueInput
    create: XOR<MeetingExternalAttendeeCreateWithoutMeetingInput, MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingExternalAttendeeCreateManyMeetingInputEnvelope = {
    data: MeetingExternalAttendeeCreateManyMeetingInput | MeetingExternalAttendeeCreateManyMeetingInput[]
    skipDuplicates?: boolean
  }

  export type MeetingSeriesCreateWithoutMeetingsInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutMeetingSeriesCreatedInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesUncheckedCreateWithoutMeetingsInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesCreateOrConnectWithoutMeetingsInput = {
    where: MeetingSeriesWhereUniqueInput
    create: XOR<MeetingSeriesCreateWithoutMeetingsInput, MeetingSeriesUncheckedCreateWithoutMeetingsInput>
  }

  export type UserCreateWithoutMeetingsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingsCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingsCreatedInput, UserUncheckedCreateWithoutMeetingsCreatedInput>
  }

  export type OutlookMeetingBindingCreateWithoutMeetingInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meetingSeries?: MeetingSeriesCreateNestedOneWithoutOutlookBindingsInput
    primaryMailbox: OutlookSyncMailboxCreateNestedOneWithoutPrimaryBindingsInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUncheckedCreateWithoutMeetingInput = {
    id?: string
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingCreateOrConnectWithoutMeetingInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    create: XOR<OutlookMeetingBindingCreateWithoutMeetingInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingInput>
  }

  export type OutlookMeetingBindingCreateManyMeetingInputEnvelope = {
    data: OutlookMeetingBindingCreateManyMeetingInput | OutlookMeetingBindingCreateManyMeetingInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaSectionCreateWithoutMeetingInput = {
    id?: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    createdBy: UserCreateNestedOneWithoutAgendaSectionsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaSectionsInput
    items?: MeetingAgendaItemCreateNestedManyWithoutSectionInput
  }

  export type MeetingAgendaSectionUncheckedCreateWithoutMeetingInput = {
    id?: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    items?: MeetingAgendaItemUncheckedCreateNestedManyWithoutSectionInput
  }

  export type MeetingAgendaSectionCreateOrConnectWithoutMeetingInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    create: XOR<MeetingAgendaSectionCreateWithoutMeetingInput, MeetingAgendaSectionUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingAgendaSectionCreateManyMeetingInputEnvelope = {
    data: MeetingAgendaSectionCreateManyMeetingInput | MeetingAgendaSectionCreateManyMeetingInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttachmentCreateWithoutMeetingInput = {
    id?: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    uploadedBy: UserCreateNestedOneWithoutMeetingAttachmentsUploadedInput
    createdBy: UserCreateNestedOneWithoutMeetingAttachmentsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAttachmentsInput
  }

  export type MeetingAttachmentUncheckedCreateWithoutMeetingInput = {
    id?: string
    uploadedById: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentCreateOrConnectWithoutMeetingInput = {
    where: MeetingAttachmentWhereUniqueInput
    create: XOR<MeetingAttachmentCreateWithoutMeetingInput, MeetingAttachmentUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingAttachmentCreateManyMeetingInputEnvelope = {
    data: MeetingAttachmentCreateManyMeetingInput | MeetingAttachmentCreateManyMeetingInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttendanceUpsertWithWhereUniqueWithoutMeetingInput = {
    where: MeetingAttendanceWhereUniqueInput
    update: XOR<MeetingAttendanceUpdateWithoutMeetingInput, MeetingAttendanceUncheckedUpdateWithoutMeetingInput>
    create: XOR<MeetingAttendanceCreateWithoutMeetingInput, MeetingAttendanceUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingAttendanceUpdateWithWhereUniqueWithoutMeetingInput = {
    where: MeetingAttendanceWhereUniqueInput
    data: XOR<MeetingAttendanceUpdateWithoutMeetingInput, MeetingAttendanceUncheckedUpdateWithoutMeetingInput>
  }

  export type MeetingAttendanceUpdateManyWithWhereWithoutMeetingInput = {
    where: MeetingAttendanceScalarWhereInput
    data: XOR<MeetingAttendanceUpdateManyMutationInput, MeetingAttendanceUncheckedUpdateManyWithoutMeetingInput>
  }

  export type MeetingRequiredAttendeeUpsertWithWhereUniqueWithoutMeetingInput = {
    where: MeetingRequiredAttendeeWhereUniqueInput
    update: XOR<MeetingRequiredAttendeeUpdateWithoutMeetingInput, MeetingRequiredAttendeeUncheckedUpdateWithoutMeetingInput>
    create: XOR<MeetingRequiredAttendeeCreateWithoutMeetingInput, MeetingRequiredAttendeeUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingRequiredAttendeeUpdateWithWhereUniqueWithoutMeetingInput = {
    where: MeetingRequiredAttendeeWhereUniqueInput
    data: XOR<MeetingRequiredAttendeeUpdateWithoutMeetingInput, MeetingRequiredAttendeeUncheckedUpdateWithoutMeetingInput>
  }

  export type MeetingRequiredAttendeeUpdateManyWithWhereWithoutMeetingInput = {
    where: MeetingRequiredAttendeeScalarWhereInput
    data: XOR<MeetingRequiredAttendeeUpdateManyMutationInput, MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingInput>
  }

  export type MeetingExternalAttendeeUpsertWithWhereUniqueWithoutMeetingInput = {
    where: MeetingExternalAttendeeWhereUniqueInput
    update: XOR<MeetingExternalAttendeeUpdateWithoutMeetingInput, MeetingExternalAttendeeUncheckedUpdateWithoutMeetingInput>
    create: XOR<MeetingExternalAttendeeCreateWithoutMeetingInput, MeetingExternalAttendeeUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingExternalAttendeeUpdateWithWhereUniqueWithoutMeetingInput = {
    where: MeetingExternalAttendeeWhereUniqueInput
    data: XOR<MeetingExternalAttendeeUpdateWithoutMeetingInput, MeetingExternalAttendeeUncheckedUpdateWithoutMeetingInput>
  }

  export type MeetingExternalAttendeeUpdateManyWithWhereWithoutMeetingInput = {
    where: MeetingExternalAttendeeScalarWhereInput
    data: XOR<MeetingExternalAttendeeUpdateManyMutationInput, MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingInput>
  }

  export type MeetingExternalAttendeeScalarWhereInput = {
    AND?: MeetingExternalAttendeeScalarWhereInput | MeetingExternalAttendeeScalarWhereInput[]
    OR?: MeetingExternalAttendeeScalarWhereInput[]
    NOT?: MeetingExternalAttendeeScalarWhereInput | MeetingExternalAttendeeScalarWhereInput[]
    id?: StringFilter<"MeetingExternalAttendee"> | string
    meetingId?: StringFilter<"MeetingExternalAttendee"> | string
    email?: StringFilter<"MeetingExternalAttendee"> | string
    displayName?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    attendeeType?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    response?: StringNullableFilter<"MeetingExternalAttendee"> | string | null
    sourceRole?: StringFilter<"MeetingExternalAttendee"> | string
    createdAt?: DateTimeFilter<"MeetingExternalAttendee"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingExternalAttendee"> | Date | string
  }

  export type MeetingSeriesUpsertWithoutMeetingsInput = {
    update: XOR<MeetingSeriesUpdateWithoutMeetingsInput, MeetingSeriesUncheckedUpdateWithoutMeetingsInput>
    create: XOR<MeetingSeriesCreateWithoutMeetingsInput, MeetingSeriesUncheckedCreateWithoutMeetingsInput>
    where?: MeetingSeriesWhereInput
  }

  export type MeetingSeriesUpdateToOneWithWhereWithoutMeetingsInput = {
    where?: MeetingSeriesWhereInput
    data: XOR<MeetingSeriesUpdateWithoutMeetingsInput, MeetingSeriesUncheckedUpdateWithoutMeetingsInput>
  }

  export type MeetingSeriesUpdateWithoutMeetingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutMeetingSeriesCreatedNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutSeriesNestedInput
  }

  export type MeetingSeriesUncheckedUpdateWithoutMeetingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutSeriesNestedInput
  }

  export type UserUpsertWithoutMeetingsCreatedInput = {
    update: XOR<UserUpdateWithoutMeetingsCreatedInput, UserUncheckedUpdateWithoutMeetingsCreatedInput>
    create: XOR<UserCreateWithoutMeetingsCreatedInput, UserUncheckedCreateWithoutMeetingsCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingsCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingsCreatedInput, UserUncheckedUpdateWithoutMeetingsCreatedInput>
  }

  export type UserUpdateWithoutMeetingsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    update: XOR<OutlookMeetingBindingUpdateWithoutMeetingInput, OutlookMeetingBindingUncheckedUpdateWithoutMeetingInput>
    create: XOR<OutlookMeetingBindingCreateWithoutMeetingInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingInput>
  }

  export type OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    data: XOR<OutlookMeetingBindingUpdateWithoutMeetingInput, OutlookMeetingBindingUncheckedUpdateWithoutMeetingInput>
  }

  export type OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingInput = {
    where: OutlookMeetingBindingScalarWhereInput
    data: XOR<OutlookMeetingBindingUpdateManyMutationInput, OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingInput>
  }

  export type OutlookMeetingBindingScalarWhereInput = {
    AND?: OutlookMeetingBindingScalarWhereInput | OutlookMeetingBindingScalarWhereInput[]
    OR?: OutlookMeetingBindingScalarWhereInput[]
    NOT?: OutlookMeetingBindingScalarWhereInput | OutlookMeetingBindingScalarWhereInput[]
    id?: StringFilter<"OutlookMeetingBinding"> | string
    meetingId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    meetingSeriesId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    graphEventId?: StringFilter<"OutlookMeetingBinding"> | string
    iCalUId?: StringFilter<"OutlookMeetingBinding"> | string
    graphSeriesMasterId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    graphEventType?: StringFilter<"OutlookMeetingBinding"> | string
    manageStatus?: EnumOutlookManageStatusFilter<"OutlookMeetingBinding"> | $Enums.OutlookManageStatus
    bootstrapStatus?: EnumOutlookBootstrapStatusNullableFilter<"OutlookMeetingBinding"> | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    bootstrapUpdatedAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    ownerUserId?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    ownerEmail?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    primaryMailboxId?: StringFilter<"OutlookMeetingBinding"> | string
    syncFrom?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
    cancellationSource?: EnumOutlookCancellationSourceNullableFilter<"OutlookMeetingBinding"> | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFilter<"OutlookMeetingBinding"> | $Enums.OutlookBindingSyncMode
    localOverrideAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    localOverrideByUserId?: UuidNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideByEmail?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideReason?: StringNullableFilter<"OutlookMeetingBinding"> | string | null
    localOverrideFields?: JsonNullableFilter<"OutlookMeetingBinding">
    lastSyncedAt?: DateTimeNullableFilter<"OutlookMeetingBinding"> | Date | string | null
    createdAt?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookMeetingBinding"> | Date | string
  }

  export type MeetingAgendaSectionUpsertWithWhereUniqueWithoutMeetingInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    update: XOR<MeetingAgendaSectionUpdateWithoutMeetingInput, MeetingAgendaSectionUncheckedUpdateWithoutMeetingInput>
    create: XOR<MeetingAgendaSectionCreateWithoutMeetingInput, MeetingAgendaSectionUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingAgendaSectionUpdateWithWhereUniqueWithoutMeetingInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    data: XOR<MeetingAgendaSectionUpdateWithoutMeetingInput, MeetingAgendaSectionUncheckedUpdateWithoutMeetingInput>
  }

  export type MeetingAgendaSectionUpdateManyWithWhereWithoutMeetingInput = {
    where: MeetingAgendaSectionScalarWhereInput
    data: XOR<MeetingAgendaSectionUpdateManyMutationInput, MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingInput>
  }

  export type MeetingAttachmentUpsertWithWhereUniqueWithoutMeetingInput = {
    where: MeetingAttachmentWhereUniqueInput
    update: XOR<MeetingAttachmentUpdateWithoutMeetingInput, MeetingAttachmentUncheckedUpdateWithoutMeetingInput>
    create: XOR<MeetingAttachmentCreateWithoutMeetingInput, MeetingAttachmentUncheckedCreateWithoutMeetingInput>
  }

  export type MeetingAttachmentUpdateWithWhereUniqueWithoutMeetingInput = {
    where: MeetingAttachmentWhereUniqueInput
    data: XOR<MeetingAttachmentUpdateWithoutMeetingInput, MeetingAttachmentUncheckedUpdateWithoutMeetingInput>
  }

  export type MeetingAttachmentUpdateManyWithWhereWithoutMeetingInput = {
    where: MeetingAttachmentScalarWhereInput
    data: XOR<MeetingAttachmentUpdateManyMutationInput, MeetingAttachmentUncheckedUpdateManyWithoutMeetingInput>
  }

  export type UserCreateWithoutMeetingSeriesCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingSeriesCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingSeriesCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingSeriesCreatedInput, UserUncheckedCreateWithoutMeetingSeriesCreatedInput>
  }

  export type MeetingCreateWithoutSeriesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput
    creator: UserCreateNestedOneWithoutMeetingsCreatedInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateWithoutSeriesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingCreateOrConnectWithoutSeriesInput = {
    where: MeetingWhereUniqueInput
    create: XOR<MeetingCreateWithoutSeriesInput, MeetingUncheckedCreateWithoutSeriesInput>
  }

  export type MeetingCreateManySeriesInputEnvelope = {
    data: MeetingCreateManySeriesInput | MeetingCreateManySeriesInput[]
    skipDuplicates?: boolean
  }

  export type OutlookMeetingBindingCreateWithoutMeetingSeriesInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting?: MeetingCreateNestedOneWithoutOutlookBindingsInput
    primaryMailbox: OutlookSyncMailboxCreateNestedOneWithoutPrimaryBindingsInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput = {
    id?: string
    meetingId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingCreateOrConnectWithoutMeetingSeriesInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    create: XOR<OutlookMeetingBindingCreateWithoutMeetingSeriesInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput>
  }

  export type OutlookMeetingBindingCreateManyMeetingSeriesInputEnvelope = {
    data: OutlookMeetingBindingCreateManyMeetingSeriesInput | OutlookMeetingBindingCreateManyMeetingSeriesInput[]
    skipDuplicates?: boolean
  }

  export type MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput = {
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutMeetingSeriesAttendeePreferencesInput
  }

  export type MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput = {
    userId: string
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesAttendeePreferenceCreateOrConnectWithoutSeriesInput = {
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
    create: XOR<MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput>
  }

  export type MeetingSeriesAttendeePreferenceCreateManySeriesInputEnvelope = {
    data: MeetingSeriesAttendeePreferenceCreateManySeriesInput | MeetingSeriesAttendeePreferenceCreateManySeriesInput[]
    skipDuplicates?: boolean
  }

  export type MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput = {
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
    user: UserCreateNestedOneWithoutMeetingSeriesAttendeeExceptionsInput
  }

  export type MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput = {
    userId: string
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
  }

  export type MeetingSeriesAttendeeExceptionCreateOrConnectWithoutSeriesInput = {
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
    create: XOR<MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput>
  }

  export type MeetingSeriesAttendeeExceptionCreateManySeriesInputEnvelope = {
    data: MeetingSeriesAttendeeExceptionCreateManySeriesInput | MeetingSeriesAttendeeExceptionCreateManySeriesInput[]
    skipDuplicates?: boolean
  }

  export type UserUpsertWithoutMeetingSeriesCreatedInput = {
    update: XOR<UserUpdateWithoutMeetingSeriesCreatedInput, UserUncheckedUpdateWithoutMeetingSeriesCreatedInput>
    create: XOR<UserCreateWithoutMeetingSeriesCreatedInput, UserUncheckedCreateWithoutMeetingSeriesCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingSeriesCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingSeriesCreatedInput, UserUncheckedUpdateWithoutMeetingSeriesCreatedInput>
  }

  export type UserUpdateWithoutMeetingSeriesCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingSeriesCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type MeetingUpsertWithWhereUniqueWithoutSeriesInput = {
    where: MeetingWhereUniqueInput
    update: XOR<MeetingUpdateWithoutSeriesInput, MeetingUncheckedUpdateWithoutSeriesInput>
    create: XOR<MeetingCreateWithoutSeriesInput, MeetingUncheckedCreateWithoutSeriesInput>
  }

  export type MeetingUpdateWithWhereUniqueWithoutSeriesInput = {
    where: MeetingWhereUniqueInput
    data: XOR<MeetingUpdateWithoutSeriesInput, MeetingUncheckedUpdateWithoutSeriesInput>
  }

  export type MeetingUpdateManyWithWhereWithoutSeriesInput = {
    where: MeetingScalarWhereInput
    data: XOR<MeetingUpdateManyMutationInput, MeetingUncheckedUpdateManyWithoutSeriesInput>
  }

  export type OutlookMeetingBindingUpsertWithWhereUniqueWithoutMeetingSeriesInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    update: XOR<OutlookMeetingBindingUpdateWithoutMeetingSeriesInput, OutlookMeetingBindingUncheckedUpdateWithoutMeetingSeriesInput>
    create: XOR<OutlookMeetingBindingCreateWithoutMeetingSeriesInput, OutlookMeetingBindingUncheckedCreateWithoutMeetingSeriesInput>
  }

  export type OutlookMeetingBindingUpdateWithWhereUniqueWithoutMeetingSeriesInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    data: XOR<OutlookMeetingBindingUpdateWithoutMeetingSeriesInput, OutlookMeetingBindingUncheckedUpdateWithoutMeetingSeriesInput>
  }

  export type OutlookMeetingBindingUpdateManyWithWhereWithoutMeetingSeriesInput = {
    where: OutlookMeetingBindingScalarWhereInput
    data: XOR<OutlookMeetingBindingUpdateManyMutationInput, OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingSeriesInput>
  }

  export type MeetingSeriesAttendeePreferenceUpsertWithWhereUniqueWithoutSeriesInput = {
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
    update: XOR<MeetingSeriesAttendeePreferenceUpdateWithoutSeriesInput, MeetingSeriesAttendeePreferenceUncheckedUpdateWithoutSeriesInput>
    create: XOR<MeetingSeriesAttendeePreferenceCreateWithoutSeriesInput, MeetingSeriesAttendeePreferenceUncheckedCreateWithoutSeriesInput>
  }

  export type MeetingSeriesAttendeePreferenceUpdateWithWhereUniqueWithoutSeriesInput = {
    where: MeetingSeriesAttendeePreferenceWhereUniqueInput
    data: XOR<MeetingSeriesAttendeePreferenceUpdateWithoutSeriesInput, MeetingSeriesAttendeePreferenceUncheckedUpdateWithoutSeriesInput>
  }

  export type MeetingSeriesAttendeePreferenceUpdateManyWithWhereWithoutSeriesInput = {
    where: MeetingSeriesAttendeePreferenceScalarWhereInput
    data: XOR<MeetingSeriesAttendeePreferenceUpdateManyMutationInput, MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutSeriesInput>
  }

  export type MeetingSeriesAttendeeExceptionUpsertWithWhereUniqueWithoutSeriesInput = {
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
    update: XOR<MeetingSeriesAttendeeExceptionUpdateWithoutSeriesInput, MeetingSeriesAttendeeExceptionUncheckedUpdateWithoutSeriesInput>
    create: XOR<MeetingSeriesAttendeeExceptionCreateWithoutSeriesInput, MeetingSeriesAttendeeExceptionUncheckedCreateWithoutSeriesInput>
  }

  export type MeetingSeriesAttendeeExceptionUpdateWithWhereUniqueWithoutSeriesInput = {
    where: MeetingSeriesAttendeeExceptionWhereUniqueInput
    data: XOR<MeetingSeriesAttendeeExceptionUpdateWithoutSeriesInput, MeetingSeriesAttendeeExceptionUncheckedUpdateWithoutSeriesInput>
  }

  export type MeetingSeriesAttendeeExceptionUpdateManyWithWhereWithoutSeriesInput = {
    where: MeetingSeriesAttendeeExceptionScalarWhereInput
    data: XOR<MeetingSeriesAttendeeExceptionUpdateManyMutationInput, MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutSeriesInput>
  }

  export type MeetingCreateWithoutAttendancesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    requiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput
    series?: MeetingSeriesCreateNestedOneWithoutMeetingsInput
    creator: UserCreateNestedOneWithoutMeetingsCreatedInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateWithoutAttendancesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    requiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingCreateOrConnectWithoutAttendancesInput = {
    where: MeetingWhereUniqueInput
    create: XOR<MeetingCreateWithoutAttendancesInput, MeetingUncheckedCreateWithoutAttendancesInput>
  }

  export type UserCreateWithoutMeetingAttendancesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingAttendancesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingAttendancesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingAttendancesInput, UserUncheckedCreateWithoutMeetingAttendancesInput>
  }

  export type MeetingUpsertWithoutAttendancesInput = {
    update: XOR<MeetingUpdateWithoutAttendancesInput, MeetingUncheckedUpdateWithoutAttendancesInput>
    create: XOR<MeetingCreateWithoutAttendancesInput, MeetingUncheckedCreateWithoutAttendancesInput>
    where?: MeetingWhereInput
  }

  export type MeetingUpdateToOneWithWhereWithoutAttendancesInput = {
    where?: MeetingWhereInput
    data: XOR<MeetingUpdateWithoutAttendancesInput, MeetingUncheckedUpdateWithoutAttendancesInput>
  }

  export type MeetingUpdateWithoutAttendancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    requiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput
    series?: MeetingSeriesUpdateOneWithoutMeetingsNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateWithoutAttendancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    requiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type UserUpsertWithoutMeetingAttendancesInput = {
    update: XOR<UserUpdateWithoutMeetingAttendancesInput, UserUncheckedUpdateWithoutMeetingAttendancesInput>
    create: XOR<UserCreateWithoutMeetingAttendancesInput, UserUncheckedCreateWithoutMeetingAttendancesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingAttendancesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingAttendancesInput, UserUncheckedUpdateWithoutMeetingAttendancesInput>
  }

  export type UserUpdateWithoutMeetingAttendancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingAttendancesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateWithoutMeetingRequiredAttendeesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingRequiredAttendeesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingRequiredAttendeesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingRequiredAttendeesInput, UserUncheckedCreateWithoutMeetingRequiredAttendeesInput>
  }

  export type MeetingCreateWithoutRequiredAttendeesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput
    series?: MeetingSeriesCreateNestedOneWithoutMeetingsInput
    creator: UserCreateNestedOneWithoutMeetingsCreatedInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateWithoutRequiredAttendeesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingCreateOrConnectWithoutRequiredAttendeesInput = {
    where: MeetingWhereUniqueInput
    create: XOR<MeetingCreateWithoutRequiredAttendeesInput, MeetingUncheckedCreateWithoutRequiredAttendeesInput>
  }

  export type UserUpsertWithoutMeetingRequiredAttendeesInput = {
    update: XOR<UserUpdateWithoutMeetingRequiredAttendeesInput, UserUncheckedUpdateWithoutMeetingRequiredAttendeesInput>
    create: XOR<UserCreateWithoutMeetingRequiredAttendeesInput, UserUncheckedCreateWithoutMeetingRequiredAttendeesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingRequiredAttendeesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingRequiredAttendeesInput, UserUncheckedUpdateWithoutMeetingRequiredAttendeesInput>
  }

  export type UserUpdateWithoutMeetingRequiredAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingRequiredAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type MeetingUpsertWithoutRequiredAttendeesInput = {
    update: XOR<MeetingUpdateWithoutRequiredAttendeesInput, MeetingUncheckedUpdateWithoutRequiredAttendeesInput>
    create: XOR<MeetingCreateWithoutRequiredAttendeesInput, MeetingUncheckedCreateWithoutRequiredAttendeesInput>
    where?: MeetingWhereInput
  }

  export type MeetingUpdateToOneWithWhereWithoutRequiredAttendeesInput = {
    where?: MeetingWhereInput
    data: XOR<MeetingUpdateWithoutRequiredAttendeesInput, MeetingUncheckedUpdateWithoutRequiredAttendeesInput>
  }

  export type MeetingUpdateWithoutRequiredAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput
    series?: MeetingSeriesUpdateOneWithoutMeetingsNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateWithoutRequiredAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingSeriesCreateWithoutAttendeePreferencesInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutMeetingSeriesCreatedInput
    meetings?: MeetingCreateNestedManyWithoutSeriesInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesUncheckedCreateWithoutAttendeePreferencesInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    meetings?: MeetingUncheckedCreateNestedManyWithoutSeriesInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesCreateOrConnectWithoutAttendeePreferencesInput = {
    where: MeetingSeriesWhereUniqueInput
    create: XOR<MeetingSeriesCreateWithoutAttendeePreferencesInput, MeetingSeriesUncheckedCreateWithoutAttendeePreferencesInput>
  }

  export type UserCreateWithoutMeetingSeriesAttendeePreferencesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingSeriesAttendeePreferencesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingSeriesAttendeePreferencesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingSeriesAttendeePreferencesInput, UserUncheckedCreateWithoutMeetingSeriesAttendeePreferencesInput>
  }

  export type MeetingSeriesUpsertWithoutAttendeePreferencesInput = {
    update: XOR<MeetingSeriesUpdateWithoutAttendeePreferencesInput, MeetingSeriesUncheckedUpdateWithoutAttendeePreferencesInput>
    create: XOR<MeetingSeriesCreateWithoutAttendeePreferencesInput, MeetingSeriesUncheckedCreateWithoutAttendeePreferencesInput>
    where?: MeetingSeriesWhereInput
  }

  export type MeetingSeriesUpdateToOneWithWhereWithoutAttendeePreferencesInput = {
    where?: MeetingSeriesWhereInput
    data: XOR<MeetingSeriesUpdateWithoutAttendeePreferencesInput, MeetingSeriesUncheckedUpdateWithoutAttendeePreferencesInput>
  }

  export type MeetingSeriesUpdateWithoutAttendeePreferencesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutMeetingSeriesCreatedNestedInput
    meetings?: MeetingUpdateManyWithoutSeriesNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutSeriesNestedInput
  }

  export type MeetingSeriesUncheckedUpdateWithoutAttendeePreferencesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meetings?: MeetingUncheckedUpdateManyWithoutSeriesNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutSeriesNestedInput
  }

  export type UserUpsertWithoutMeetingSeriesAttendeePreferencesInput = {
    update: XOR<UserUpdateWithoutMeetingSeriesAttendeePreferencesInput, UserUncheckedUpdateWithoutMeetingSeriesAttendeePreferencesInput>
    create: XOR<UserCreateWithoutMeetingSeriesAttendeePreferencesInput, UserUncheckedCreateWithoutMeetingSeriesAttendeePreferencesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingSeriesAttendeePreferencesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingSeriesAttendeePreferencesInput, UserUncheckedUpdateWithoutMeetingSeriesAttendeePreferencesInput>
  }

  export type UserUpdateWithoutMeetingSeriesAttendeePreferencesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingSeriesAttendeePreferencesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type MeetingSeriesCreateWithoutAttendeeExceptionsInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutMeetingSeriesCreatedInput
    meetings?: MeetingCreateNestedManyWithoutSeriesInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesUncheckedCreateWithoutAttendeeExceptionsInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    meetings?: MeetingUncheckedCreateNestedManyWithoutSeriesInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesCreateOrConnectWithoutAttendeeExceptionsInput = {
    where: MeetingSeriesWhereUniqueInput
    create: XOR<MeetingSeriesCreateWithoutAttendeeExceptionsInput, MeetingSeriesUncheckedCreateWithoutAttendeeExceptionsInput>
  }

  export type UserCreateWithoutMeetingSeriesAttendeeExceptionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingSeriesAttendeeExceptionsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingSeriesAttendeeExceptionsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingSeriesAttendeeExceptionsInput, UserUncheckedCreateWithoutMeetingSeriesAttendeeExceptionsInput>
  }

  export type MeetingSeriesUpsertWithoutAttendeeExceptionsInput = {
    update: XOR<MeetingSeriesUpdateWithoutAttendeeExceptionsInput, MeetingSeriesUncheckedUpdateWithoutAttendeeExceptionsInput>
    create: XOR<MeetingSeriesCreateWithoutAttendeeExceptionsInput, MeetingSeriesUncheckedCreateWithoutAttendeeExceptionsInput>
    where?: MeetingSeriesWhereInput
  }

  export type MeetingSeriesUpdateToOneWithWhereWithoutAttendeeExceptionsInput = {
    where?: MeetingSeriesWhereInput
    data: XOR<MeetingSeriesUpdateWithoutAttendeeExceptionsInput, MeetingSeriesUncheckedUpdateWithoutAttendeeExceptionsInput>
  }

  export type MeetingSeriesUpdateWithoutAttendeeExceptionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutMeetingSeriesCreatedNestedInput
    meetings?: MeetingUpdateManyWithoutSeriesNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutSeriesNestedInput
  }

  export type MeetingSeriesUncheckedUpdateWithoutAttendeeExceptionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meetings?: MeetingUncheckedUpdateManyWithoutSeriesNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutSeriesNestedInput
  }

  export type UserUpsertWithoutMeetingSeriesAttendeeExceptionsInput = {
    update: XOR<UserUpdateWithoutMeetingSeriesAttendeeExceptionsInput, UserUncheckedUpdateWithoutMeetingSeriesAttendeeExceptionsInput>
    create: XOR<UserCreateWithoutMeetingSeriesAttendeeExceptionsInput, UserUncheckedCreateWithoutMeetingSeriesAttendeeExceptionsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingSeriesAttendeeExceptionsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingSeriesAttendeeExceptionsInput, UserUncheckedUpdateWithoutMeetingSeriesAttendeeExceptionsInput>
  }

  export type UserUpdateWithoutMeetingSeriesAttendeeExceptionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingSeriesAttendeeExceptionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type MeetingCreateWithoutExternalAttendeesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput
    series?: MeetingSeriesCreateNestedOneWithoutMeetingsInput
    creator: UserCreateNestedOneWithoutMeetingsCreatedInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateWithoutExternalAttendeesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingCreateOrConnectWithoutExternalAttendeesInput = {
    where: MeetingWhereUniqueInput
    create: XOR<MeetingCreateWithoutExternalAttendeesInput, MeetingUncheckedCreateWithoutExternalAttendeesInput>
  }

  export type MeetingUpsertWithoutExternalAttendeesInput = {
    update: XOR<MeetingUpdateWithoutExternalAttendeesInput, MeetingUncheckedUpdateWithoutExternalAttendeesInput>
    create: XOR<MeetingCreateWithoutExternalAttendeesInput, MeetingUncheckedCreateWithoutExternalAttendeesInput>
    where?: MeetingWhereInput
  }

  export type MeetingUpdateToOneWithWhereWithoutExternalAttendeesInput = {
    where?: MeetingWhereInput
    data: XOR<MeetingUpdateWithoutExternalAttendeesInput, MeetingUncheckedUpdateWithoutExternalAttendeesInput>
  }

  export type MeetingUpdateWithoutExternalAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput
    series?: MeetingSeriesUpdateOneWithoutMeetingsNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateWithoutExternalAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingTemplateAttendeeCreateWithoutTemplateInput = {
    id?: string
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutMeetingTemplateAttendeesInput
  }

  export type MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput = {
    id?: string
    userId: string
    createdAt?: Date | string
  }

  export type MeetingTemplateAttendeeCreateOrConnectWithoutTemplateInput = {
    where: MeetingTemplateAttendeeWhereUniqueInput
    create: XOR<MeetingTemplateAttendeeCreateWithoutTemplateInput, MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput>
  }

  export type MeetingTemplateAttendeeCreateManyTemplateInputEnvelope = {
    data: MeetingTemplateAttendeeCreateManyTemplateInput | MeetingTemplateAttendeeCreateManyTemplateInput[]
    skipDuplicates?: boolean
  }

  export type UserCreateWithoutMeetingTemplatesCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingTemplatesCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingTemplatesCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingTemplatesCreatedInput, UserUncheckedCreateWithoutMeetingTemplatesCreatedInput>
  }

  export type MeetingTemplateAttendeeUpsertWithWhereUniqueWithoutTemplateInput = {
    where: MeetingTemplateAttendeeWhereUniqueInput
    update: XOR<MeetingTemplateAttendeeUpdateWithoutTemplateInput, MeetingTemplateAttendeeUncheckedUpdateWithoutTemplateInput>
    create: XOR<MeetingTemplateAttendeeCreateWithoutTemplateInput, MeetingTemplateAttendeeUncheckedCreateWithoutTemplateInput>
  }

  export type MeetingTemplateAttendeeUpdateWithWhereUniqueWithoutTemplateInput = {
    where: MeetingTemplateAttendeeWhereUniqueInput
    data: XOR<MeetingTemplateAttendeeUpdateWithoutTemplateInput, MeetingTemplateAttendeeUncheckedUpdateWithoutTemplateInput>
  }

  export type MeetingTemplateAttendeeUpdateManyWithWhereWithoutTemplateInput = {
    where: MeetingTemplateAttendeeScalarWhereInput
    data: XOR<MeetingTemplateAttendeeUpdateManyMutationInput, MeetingTemplateAttendeeUncheckedUpdateManyWithoutTemplateInput>
  }

  export type UserUpsertWithoutMeetingTemplatesCreatedInput = {
    update: XOR<UserUpdateWithoutMeetingTemplatesCreatedInput, UserUncheckedUpdateWithoutMeetingTemplatesCreatedInput>
    create: XOR<UserCreateWithoutMeetingTemplatesCreatedInput, UserUncheckedCreateWithoutMeetingTemplatesCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingTemplatesCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingTemplatesCreatedInput, UserUncheckedUpdateWithoutMeetingTemplatesCreatedInput>
  }

  export type UserUpdateWithoutMeetingTemplatesCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingTemplatesCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateWithoutMeetingTemplateAttendeesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingTemplateAttendeesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingTemplateAttendeesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingTemplateAttendeesInput, UserUncheckedCreateWithoutMeetingTemplateAttendeesInput>
  }

  export type MeetingTemplateCreateWithoutTemplateAttendeesInput = {
    id?: string
    name: string
    title: string
    description?: string | null
    duration: number
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isPublic?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutMeetingTemplatesCreatedInput
  }

  export type MeetingTemplateUncheckedCreateWithoutTemplateAttendeesInput = {
    id?: string
    name: string
    title: string
    description?: string | null
    duration: number
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isPublic?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingTemplateCreateOrConnectWithoutTemplateAttendeesInput = {
    where: MeetingTemplateWhereUniqueInput
    create: XOR<MeetingTemplateCreateWithoutTemplateAttendeesInput, MeetingTemplateUncheckedCreateWithoutTemplateAttendeesInput>
  }

  export type UserUpsertWithoutMeetingTemplateAttendeesInput = {
    update: XOR<UserUpdateWithoutMeetingTemplateAttendeesInput, UserUncheckedUpdateWithoutMeetingTemplateAttendeesInput>
    create: XOR<UserCreateWithoutMeetingTemplateAttendeesInput, UserUncheckedCreateWithoutMeetingTemplateAttendeesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingTemplateAttendeesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingTemplateAttendeesInput, UserUncheckedUpdateWithoutMeetingTemplateAttendeesInput>
  }

  export type UserUpdateWithoutMeetingTemplateAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingTemplateAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type MeetingTemplateUpsertWithoutTemplateAttendeesInput = {
    update: XOR<MeetingTemplateUpdateWithoutTemplateAttendeesInput, MeetingTemplateUncheckedUpdateWithoutTemplateAttendeesInput>
    create: XOR<MeetingTemplateCreateWithoutTemplateAttendeesInput, MeetingTemplateUncheckedCreateWithoutTemplateAttendeesInput>
    where?: MeetingTemplateWhereInput
  }

  export type MeetingTemplateUpdateToOneWithWhereWithoutTemplateAttendeesInput = {
    where?: MeetingTemplateWhereInput
    data: XOR<MeetingTemplateUpdateWithoutTemplateAttendeesInput, MeetingTemplateUncheckedUpdateWithoutTemplateAttendeesInput>
  }

  export type MeetingTemplateUpdateWithoutTemplateAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutMeetingTemplatesCreatedNestedInput
  }

  export type MeetingTemplateUncheckedUpdateWithoutTemplateAttendeesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserCreateWithoutMeetingAttendanceLeaveLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingAttendanceLeaveLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingAttendanceLeaveLogsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingAttendanceLeaveLogsInput, UserUncheckedCreateWithoutMeetingAttendanceLeaveLogsInput>
  }

  export type UserUpsertWithoutMeetingAttendanceLeaveLogsInput = {
    update: XOR<UserUpdateWithoutMeetingAttendanceLeaveLogsInput, UserUncheckedUpdateWithoutMeetingAttendanceLeaveLogsInput>
    create: XOR<UserCreateWithoutMeetingAttendanceLeaveLogsInput, UserUncheckedCreateWithoutMeetingAttendanceLeaveLogsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingAttendanceLeaveLogsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingAttendanceLeaveLogsInput, UserUncheckedUpdateWithoutMeetingAttendanceLeaveLogsInput>
  }

  export type UserUpdateWithoutMeetingAttendanceLeaveLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingAttendanceLeaveLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserCreateWithoutMeetingAttendanceAuditLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingAttendanceAuditLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingAttendanceAuditLogsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingAttendanceAuditLogsInput, UserUncheckedCreateWithoutMeetingAttendanceAuditLogsInput>
  }

  export type UserUpsertWithoutMeetingAttendanceAuditLogsInput = {
    update: XOR<UserUpdateWithoutMeetingAttendanceAuditLogsInput, UserUncheckedUpdateWithoutMeetingAttendanceAuditLogsInput>
    create: XOR<UserCreateWithoutMeetingAttendanceAuditLogsInput, UserUncheckedCreateWithoutMeetingAttendanceAuditLogsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingAttendanceAuditLogsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingAttendanceAuditLogsInput, UserUncheckedUpdateWithoutMeetingAttendanceAuditLogsInput>
  }

  export type UserUpdateWithoutMeetingAttendanceAuditLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingAttendanceAuditLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type MeetingAttendanceAuditAlertCreateWithoutRuleInput = {
    id?: string
    severity: string
    title: string
    description: string
    triggerData: string
    matchedLogs: string
    affectedEntities?: string | null
    status?: string
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput = {
    id?: string
    severity: string
    title: string
    description: string
    triggerData: string
    matchedLogs: string
    affectedEntities?: string | null
    status?: string
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditAlertCreateOrConnectWithoutRuleInput = {
    where: MeetingAttendanceAuditAlertWhereUniqueInput
    create: XOR<MeetingAttendanceAuditAlertCreateWithoutRuleInput, MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput>
  }

  export type MeetingAttendanceAuditAlertCreateManyRuleInputEnvelope = {
    data: MeetingAttendanceAuditAlertCreateManyRuleInput | MeetingAttendanceAuditAlertCreateManyRuleInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAttendanceAuditAlertUpsertWithWhereUniqueWithoutRuleInput = {
    where: MeetingAttendanceAuditAlertWhereUniqueInput
    update: XOR<MeetingAttendanceAuditAlertUpdateWithoutRuleInput, MeetingAttendanceAuditAlertUncheckedUpdateWithoutRuleInput>
    create: XOR<MeetingAttendanceAuditAlertCreateWithoutRuleInput, MeetingAttendanceAuditAlertUncheckedCreateWithoutRuleInput>
  }

  export type MeetingAttendanceAuditAlertUpdateWithWhereUniqueWithoutRuleInput = {
    where: MeetingAttendanceAuditAlertWhereUniqueInput
    data: XOR<MeetingAttendanceAuditAlertUpdateWithoutRuleInput, MeetingAttendanceAuditAlertUncheckedUpdateWithoutRuleInput>
  }

  export type MeetingAttendanceAuditAlertUpdateManyWithWhereWithoutRuleInput = {
    where: MeetingAttendanceAuditAlertScalarWhereInput
    data: XOR<MeetingAttendanceAuditAlertUpdateManyMutationInput, MeetingAttendanceAuditAlertUncheckedUpdateManyWithoutRuleInput>
  }

  export type MeetingAttendanceAuditAlertScalarWhereInput = {
    AND?: MeetingAttendanceAuditAlertScalarWhereInput | MeetingAttendanceAuditAlertScalarWhereInput[]
    OR?: MeetingAttendanceAuditAlertScalarWhereInput[]
    NOT?: MeetingAttendanceAuditAlertScalarWhereInput | MeetingAttendanceAuditAlertScalarWhereInput[]
    id?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    ruleId?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    severity?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    title?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    description?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    triggerData?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    matchedLogs?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    affectedEntities?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    status?: StringFilter<"MeetingAttendanceAuditAlert"> | string
    acknowledgedBy?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    acknowledgedAt?: DateTimeNullableFilter<"MeetingAttendanceAuditAlert"> | Date | string | null
    resolvedBy?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    resolvedAt?: DateTimeNullableFilter<"MeetingAttendanceAuditAlert"> | Date | string | null
    resolution?: StringNullableFilter<"MeetingAttendanceAuditAlert"> | string | null
    createdAt?: DateTimeFilter<"MeetingAttendanceAuditAlert"> | Date | string
    updatedAt?: DateTimeFilter<"MeetingAttendanceAuditAlert"> | Date | string
  }

  export type MeetingAttendanceAuditAlertRuleCreateWithoutAlertsInput = {
    id?: string
    name: string
    description?: string | null
    ruleType: string
    conditions: string
    threshold?: number | null
    timeWindow?: number | null
    severity: string
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: string | null
    suppressionWindow?: number | null
    lastTriggered?: Date | string | null
    triggerCount?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditAlertRuleUncheckedCreateWithoutAlertsInput = {
    id?: string
    name: string
    description?: string | null
    ruleType: string
    conditions: string
    threshold?: number | null
    timeWindow?: number | null
    severity: string
    isEnabled?: boolean
    notifyEmail?: boolean
    notifyInApp?: boolean
    notifyWebhook?: boolean
    webhookUrl?: string | null
    suppressionWindow?: number | null
    lastTriggered?: Date | string | null
    triggerCount?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditAlertRuleCreateOrConnectWithoutAlertsInput = {
    where: MeetingAttendanceAuditAlertRuleWhereUniqueInput
    create: XOR<MeetingAttendanceAuditAlertRuleCreateWithoutAlertsInput, MeetingAttendanceAuditAlertRuleUncheckedCreateWithoutAlertsInput>
  }

  export type MeetingAttendanceAuditAlertRuleUpsertWithoutAlertsInput = {
    update: XOR<MeetingAttendanceAuditAlertRuleUpdateWithoutAlertsInput, MeetingAttendanceAuditAlertRuleUncheckedUpdateWithoutAlertsInput>
    create: XOR<MeetingAttendanceAuditAlertRuleCreateWithoutAlertsInput, MeetingAttendanceAuditAlertRuleUncheckedCreateWithoutAlertsInput>
    where?: MeetingAttendanceAuditAlertRuleWhereInput
  }

  export type MeetingAttendanceAuditAlertRuleUpdateToOneWithWhereWithoutAlertsInput = {
    where?: MeetingAttendanceAuditAlertRuleWhereInput
    data: XOR<MeetingAttendanceAuditAlertRuleUpdateWithoutAlertsInput, MeetingAttendanceAuditAlertRuleUncheckedUpdateWithoutAlertsInput>
  }

  export type MeetingAttendanceAuditAlertRuleUpdateWithoutAlertsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: StringFieldUpdateOperationsInput | string
    conditions?: StringFieldUpdateOperationsInput | string
    threshold?: NullableIntFieldUpdateOperationsInput | number | null
    timeWindow?: NullableIntFieldUpdateOperationsInput | number | null
    severity?: StringFieldUpdateOperationsInput | string
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    notifyEmail?: BoolFieldUpdateOperationsInput | boolean
    notifyInApp?: BoolFieldUpdateOperationsInput | boolean
    notifyWebhook?: BoolFieldUpdateOperationsInput | boolean
    webhookUrl?: NullableStringFieldUpdateOperationsInput | string | null
    suppressionWindow?: NullableIntFieldUpdateOperationsInput | number | null
    lastTriggered?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    triggerCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertRuleUncheckedUpdateWithoutAlertsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    ruleType?: StringFieldUpdateOperationsInput | string
    conditions?: StringFieldUpdateOperationsInput | string
    threshold?: NullableIntFieldUpdateOperationsInput | number | null
    timeWindow?: NullableIntFieldUpdateOperationsInput | number | null
    severity?: StringFieldUpdateOperationsInput | string
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    notifyEmail?: BoolFieldUpdateOperationsInput | boolean
    notifyInApp?: BoolFieldUpdateOperationsInput | boolean
    notifyWebhook?: BoolFieldUpdateOperationsInput | boolean
    webhookUrl?: NullableStringFieldUpdateOperationsInput | string | null
    suppressionWindow?: NullableIntFieldUpdateOperationsInput | number | null
    lastTriggered?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    triggerCount?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSubscriptionCreateWithoutMailboxInput = {
    id?: string
    graphSubscriptionId: string
    resource: string
    status?: $Enums.OutlookSubscriptionStatus
    expirationAt: Date | string
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSubscriptionUncheckedCreateWithoutMailboxInput = {
    id?: string
    graphSubscriptionId: string
    resource: string
    status?: $Enums.OutlookSubscriptionStatus
    expirationAt: Date | string
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSubscriptionCreateOrConnectWithoutMailboxInput = {
    where: OutlookSubscriptionWhereUniqueInput
    create: XOR<OutlookSubscriptionCreateWithoutMailboxInput, OutlookSubscriptionUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookSubscriptionCreateManyMailboxInputEnvelope = {
    data: OutlookSubscriptionCreateManyMailboxInput | OutlookSubscriptionCreateManyMailboxInput[]
    skipDuplicates?: boolean
  }

  export type OutlookMeetingBindingCreateWithoutPrimaryMailboxInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting?: MeetingCreateNestedOneWithoutOutlookBindingsInput
    meetingSeries?: MeetingSeriesCreateNestedOneWithoutOutlookBindingsInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput = {
    id?: string
    meetingId?: string | null
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingCreateOrConnectWithoutPrimaryMailboxInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    create: XOR<OutlookMeetingBindingCreateWithoutPrimaryMailboxInput, OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput>
  }

  export type OutlookMeetingBindingCreateManyPrimaryMailboxInputEnvelope = {
    data: OutlookMeetingBindingCreateManyPrimaryMailboxInput | OutlookMeetingBindingCreateManyPrimaryMailboxInput[]
    skipDuplicates?: boolean
  }

  export type OutlookEventSnapshotCreateWithoutMailboxInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    title: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    timezone: string
    eventType: string
    isCancelled?: boolean
    seriesMasterId?: string | null
    organizerEmail?: string | null
    lastModifiedAt?: Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookEventSnapshotUncheckedCreateWithoutMailboxInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    title: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    timezone: string
    eventType: string
    isCancelled?: boolean
    seriesMasterId?: string | null
    organizerEmail?: string | null
    lastModifiedAt?: Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookEventSnapshotCreateOrConnectWithoutMailboxInput = {
    where: OutlookEventSnapshotWhereUniqueInput
    create: XOR<OutlookEventSnapshotCreateWithoutMailboxInput, OutlookEventSnapshotUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookEventSnapshotCreateManyMailboxInputEnvelope = {
    data: OutlookEventSnapshotCreateManyMailboxInput | OutlookEventSnapshotCreateManyMailboxInput[]
    skipDuplicates?: boolean
  }

  export type OutlookSyncEventLogCreateWithoutMailboxInput = {
    id?: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSyncEventLogsInput
  }

  export type OutlookSyncEventLogUncheckedCreateWithoutMailboxInput = {
    id?: string
    bindingId: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookSyncEventLogCreateOrConnectWithoutMailboxInput = {
    where: OutlookSyncEventLogWhereUniqueInput
    create: XOR<OutlookSyncEventLogCreateWithoutMailboxInput, OutlookSyncEventLogUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookSyncEventLogCreateManyMailboxInputEnvelope = {
    data: OutlookSyncEventLogCreateManyMailboxInput | OutlookSyncEventLogCreateManyMailboxInput[]
    skipDuplicates?: boolean
  }

  export type OutlookEventSourceVersionCreateWithoutMailboxInput = {
    id?: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSourceVersionsInput
    diffsAsCurrent?: OutlookEventSyncDiffCreateNestedManyWithoutSourceVersionInput
    diffsAsPrevious?: OutlookEventSyncDiffCreateNestedManyWithoutPreviousSourceVersionInput
  }

  export type OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput = {
    id?: string
    bindingId: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    diffsAsCurrent?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutSourceVersionInput
    diffsAsPrevious?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutPreviousSourceVersionInput
  }

  export type OutlookEventSourceVersionCreateOrConnectWithoutMailboxInput = {
    where: OutlookEventSourceVersionWhereUniqueInput
    create: XOR<OutlookEventSourceVersionCreateWithoutMailboxInput, OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookEventSourceVersionCreateManyMailboxInputEnvelope = {
    data: OutlookEventSourceVersionCreateManyMailboxInput | OutlookEventSourceVersionCreateManyMailboxInput[]
    skipDuplicates?: boolean
  }

  export type OutlookSyncCursorCreateWithoutMailboxInput = {
    id?: string
    deltaToken: string
    lastSyncedAt?: Date | string | null
    lastReconciledAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncCursorUncheckedCreateWithoutMailboxInput = {
    id?: string
    deltaToken: string
    lastSyncedAt?: Date | string | null
    lastReconciledAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncCursorCreateOrConnectWithoutMailboxInput = {
    where: OutlookSyncCursorWhereUniqueInput
    create: XOR<OutlookSyncCursorCreateWithoutMailboxInput, OutlookSyncCursorUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookSubscriptionUpsertWithWhereUniqueWithoutMailboxInput = {
    where: OutlookSubscriptionWhereUniqueInput
    update: XOR<OutlookSubscriptionUpdateWithoutMailboxInput, OutlookSubscriptionUncheckedUpdateWithoutMailboxInput>
    create: XOR<OutlookSubscriptionCreateWithoutMailboxInput, OutlookSubscriptionUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookSubscriptionUpdateWithWhereUniqueWithoutMailboxInput = {
    where: OutlookSubscriptionWhereUniqueInput
    data: XOR<OutlookSubscriptionUpdateWithoutMailboxInput, OutlookSubscriptionUncheckedUpdateWithoutMailboxInput>
  }

  export type OutlookSubscriptionUpdateManyWithWhereWithoutMailboxInput = {
    where: OutlookSubscriptionScalarWhereInput
    data: XOR<OutlookSubscriptionUpdateManyMutationInput, OutlookSubscriptionUncheckedUpdateManyWithoutMailboxInput>
  }

  export type OutlookSubscriptionScalarWhereInput = {
    AND?: OutlookSubscriptionScalarWhereInput | OutlookSubscriptionScalarWhereInput[]
    OR?: OutlookSubscriptionScalarWhereInput[]
    NOT?: OutlookSubscriptionScalarWhereInput | OutlookSubscriptionScalarWhereInput[]
    id?: StringFilter<"OutlookSubscription"> | string
    mailboxId?: StringFilter<"OutlookSubscription"> | string
    graphSubscriptionId?: StringFilter<"OutlookSubscription"> | string
    resource?: StringFilter<"OutlookSubscription"> | string
    status?: EnumOutlookSubscriptionStatusFilter<"OutlookSubscription"> | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
    lastError?: StringNullableFilter<"OutlookSubscription"> | string | null
    createdAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSubscription"> | Date | string
  }

  export type OutlookMeetingBindingUpsertWithWhereUniqueWithoutPrimaryMailboxInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    update: XOR<OutlookMeetingBindingUpdateWithoutPrimaryMailboxInput, OutlookMeetingBindingUncheckedUpdateWithoutPrimaryMailboxInput>
    create: XOR<OutlookMeetingBindingCreateWithoutPrimaryMailboxInput, OutlookMeetingBindingUncheckedCreateWithoutPrimaryMailboxInput>
  }

  export type OutlookMeetingBindingUpdateWithWhereUniqueWithoutPrimaryMailboxInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    data: XOR<OutlookMeetingBindingUpdateWithoutPrimaryMailboxInput, OutlookMeetingBindingUncheckedUpdateWithoutPrimaryMailboxInput>
  }

  export type OutlookMeetingBindingUpdateManyWithWhereWithoutPrimaryMailboxInput = {
    where: OutlookMeetingBindingScalarWhereInput
    data: XOR<OutlookMeetingBindingUpdateManyMutationInput, OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxInput>
  }

  export type OutlookEventSnapshotUpsertWithWhereUniqueWithoutMailboxInput = {
    where: OutlookEventSnapshotWhereUniqueInput
    update: XOR<OutlookEventSnapshotUpdateWithoutMailboxInput, OutlookEventSnapshotUncheckedUpdateWithoutMailboxInput>
    create: XOR<OutlookEventSnapshotCreateWithoutMailboxInput, OutlookEventSnapshotUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookEventSnapshotUpdateWithWhereUniqueWithoutMailboxInput = {
    where: OutlookEventSnapshotWhereUniqueInput
    data: XOR<OutlookEventSnapshotUpdateWithoutMailboxInput, OutlookEventSnapshotUncheckedUpdateWithoutMailboxInput>
  }

  export type OutlookEventSnapshotUpdateManyWithWhereWithoutMailboxInput = {
    where: OutlookEventSnapshotScalarWhereInput
    data: XOR<OutlookEventSnapshotUpdateManyMutationInput, OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxInput>
  }

  export type OutlookEventSnapshotScalarWhereInput = {
    AND?: OutlookEventSnapshotScalarWhereInput | OutlookEventSnapshotScalarWhereInput[]
    OR?: OutlookEventSnapshotScalarWhereInput[]
    NOT?: OutlookEventSnapshotScalarWhereInput | OutlookEventSnapshotScalarWhereInput[]
    id?: StringFilter<"OutlookEventSnapshot"> | string
    mailboxId?: StringFilter<"OutlookEventSnapshot"> | string
    graphEventId?: StringFilter<"OutlookEventSnapshot"> | string
    iCalUId?: StringFilter<"OutlookEventSnapshot"> | string
    title?: StringFilter<"OutlookEventSnapshot"> | string
    startTime?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    endTime?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    timezone?: StringFilter<"OutlookEventSnapshot"> | string
    eventType?: StringFilter<"OutlookEventSnapshot"> | string
    isCancelled?: BoolFilter<"OutlookEventSnapshot"> | boolean
    seriesMasterId?: StringNullableFilter<"OutlookEventSnapshot"> | string | null
    organizerEmail?: StringNullableFilter<"OutlookEventSnapshot"> | string | null
    lastModifiedAt?: DateTimeNullableFilter<"OutlookEventSnapshot"> | Date | string | null
    rawPayload?: JsonNullableFilter<"OutlookEventSnapshot">
    createdAt?: DateTimeFilter<"OutlookEventSnapshot"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookEventSnapshot"> | Date | string
  }

  export type OutlookSyncEventLogUpsertWithWhereUniqueWithoutMailboxInput = {
    where: OutlookSyncEventLogWhereUniqueInput
    update: XOR<OutlookSyncEventLogUpdateWithoutMailboxInput, OutlookSyncEventLogUncheckedUpdateWithoutMailboxInput>
    create: XOR<OutlookSyncEventLogCreateWithoutMailboxInput, OutlookSyncEventLogUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookSyncEventLogUpdateWithWhereUniqueWithoutMailboxInput = {
    where: OutlookSyncEventLogWhereUniqueInput
    data: XOR<OutlookSyncEventLogUpdateWithoutMailboxInput, OutlookSyncEventLogUncheckedUpdateWithoutMailboxInput>
  }

  export type OutlookSyncEventLogUpdateManyWithWhereWithoutMailboxInput = {
    where: OutlookSyncEventLogScalarWhereInput
    data: XOR<OutlookSyncEventLogUpdateManyMutationInput, OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxInput>
  }

  export type OutlookSyncEventLogScalarWhereInput = {
    AND?: OutlookSyncEventLogScalarWhereInput | OutlookSyncEventLogScalarWhereInput[]
    OR?: OutlookSyncEventLogScalarWhereInput[]
    NOT?: OutlookSyncEventLogScalarWhereInput | OutlookSyncEventLogScalarWhereInput[]
    id?: StringFilter<"OutlookSyncEventLog"> | string
    bindingId?: StringFilter<"OutlookSyncEventLog"> | string
    mailboxId?: StringFilter<"OutlookSyncEventLog"> | string
    eventType?: StringFilter<"OutlookSyncEventLog"> | string
    resultStatus?: StringFilter<"OutlookSyncEventLog"> | string
    message?: StringNullableFilter<"OutlookSyncEventLog"> | string | null
    payload?: JsonNullableFilter<"OutlookSyncEventLog">
    createdAt?: DateTimeFilter<"OutlookSyncEventLog"> | Date | string
  }

  export type OutlookEventSourceVersionUpsertWithWhereUniqueWithoutMailboxInput = {
    where: OutlookEventSourceVersionWhereUniqueInput
    update: XOR<OutlookEventSourceVersionUpdateWithoutMailboxInput, OutlookEventSourceVersionUncheckedUpdateWithoutMailboxInput>
    create: XOR<OutlookEventSourceVersionCreateWithoutMailboxInput, OutlookEventSourceVersionUncheckedCreateWithoutMailboxInput>
  }

  export type OutlookEventSourceVersionUpdateWithWhereUniqueWithoutMailboxInput = {
    where: OutlookEventSourceVersionWhereUniqueInput
    data: XOR<OutlookEventSourceVersionUpdateWithoutMailboxInput, OutlookEventSourceVersionUncheckedUpdateWithoutMailboxInput>
  }

  export type OutlookEventSourceVersionUpdateManyWithWhereWithoutMailboxInput = {
    where: OutlookEventSourceVersionScalarWhereInput
    data: XOR<OutlookEventSourceVersionUpdateManyMutationInput, OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxInput>
  }

  export type OutlookEventSourceVersionScalarWhereInput = {
    AND?: OutlookEventSourceVersionScalarWhereInput | OutlookEventSourceVersionScalarWhereInput[]
    OR?: OutlookEventSourceVersionScalarWhereInput[]
    NOT?: OutlookEventSourceVersionScalarWhereInput | OutlookEventSourceVersionScalarWhereInput[]
    id?: StringFilter<"OutlookEventSourceVersion"> | string
    bindingId?: StringFilter<"OutlookEventSourceVersion"> | string
    mailboxId?: StringFilter<"OutlookEventSourceVersion"> | string
    graphEventId?: StringFilter<"OutlookEventSourceVersion"> | string
    graphSeriesMasterId?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    graphEventType?: StringFilter<"OutlookEventSourceVersion"> | string
    versionSource?: StringFilter<"OutlookEventSourceVersion"> | string
    graphLastModifiedAt?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    fetchedAt?: DateTimeFilter<"OutlookEventSourceVersion"> | Date | string
    etag?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    payloadHash?: StringFilter<"OutlookEventSourceVersion"> | string
    attendeesCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesRequiredCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesOptionalCount?: IntFilter<"OutlookEventSourceVersion"> | number
    attendeesResourceCount?: IntFilter<"OutlookEventSourceVersion"> | number
    organizerEmail?: StringNullableFilter<"OutlookEventSourceVersion"> | string | null
    startTime?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    endTime?: DateTimeNullableFilter<"OutlookEventSourceVersion"> | Date | string | null
    isCancelled?: BoolFilter<"OutlookEventSourceVersion"> | boolean
    rawPayload?: JsonFilter<"OutlookEventSourceVersion">
    normalizedPayload?: JsonFilter<"OutlookEventSourceVersion">
    createdAt?: DateTimeFilter<"OutlookEventSourceVersion"> | Date | string
  }

  export type OutlookSyncCursorUpsertWithoutMailboxInput = {
    update: XOR<OutlookSyncCursorUpdateWithoutMailboxInput, OutlookSyncCursorUncheckedUpdateWithoutMailboxInput>
    create: XOR<OutlookSyncCursorCreateWithoutMailboxInput, OutlookSyncCursorUncheckedCreateWithoutMailboxInput>
    where?: OutlookSyncCursorWhereInput
  }

  export type OutlookSyncCursorUpdateToOneWithWhereWithoutMailboxInput = {
    where?: OutlookSyncCursorWhereInput
    data: XOR<OutlookSyncCursorUpdateWithoutMailboxInput, OutlookSyncCursorUncheckedUpdateWithoutMailboxInput>
  }

  export type OutlookSyncCursorUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    deltaToken?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReconciledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncCursorUncheckedUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    deltaToken?: StringFieldUpdateOperationsInput | string
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReconciledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncMailboxCreateWithoutSubscriptionsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    primaryBindings?: OutlookMeetingBindingCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxUncheckedCreateWithoutSubscriptionsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    primaryBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotUncheckedCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorUncheckedCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxCreateOrConnectWithoutSubscriptionsInput = {
    where: OutlookSyncMailboxWhereUniqueInput
    create: XOR<OutlookSyncMailboxCreateWithoutSubscriptionsInput, OutlookSyncMailboxUncheckedCreateWithoutSubscriptionsInput>
  }

  export type OutlookSyncMailboxUpsertWithoutSubscriptionsInput = {
    update: XOR<OutlookSyncMailboxUpdateWithoutSubscriptionsInput, OutlookSyncMailboxUncheckedUpdateWithoutSubscriptionsInput>
    create: XOR<OutlookSyncMailboxCreateWithoutSubscriptionsInput, OutlookSyncMailboxUncheckedCreateWithoutSubscriptionsInput>
    where?: OutlookSyncMailboxWhereInput
  }

  export type OutlookSyncMailboxUpdateToOneWithWhereWithoutSubscriptionsInput = {
    where?: OutlookSyncMailboxWhereInput
    data: XOR<OutlookSyncMailboxUpdateWithoutSubscriptionsInput, OutlookSyncMailboxUncheckedUpdateWithoutSubscriptionsInput>
  }

  export type OutlookSyncMailboxUpdateWithoutSubscriptionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    primaryBindings?: OutlookMeetingBindingUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxUncheckedUpdateWithoutSubscriptionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    primaryBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUncheckedUpdateOneWithoutMailboxNestedInput
  }

  export type MeetingCreateWithoutOutlookBindingsInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput
    series?: MeetingSeriesCreateNestedOneWithoutMeetingsInput
    creator: UserCreateNestedOneWithoutMeetingsCreatedInput
    agendaSections?: MeetingAgendaSectionCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateWithoutOutlookBindingsInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingCreateOrConnectWithoutOutlookBindingsInput = {
    where: MeetingWhereUniqueInput
    create: XOR<MeetingCreateWithoutOutlookBindingsInput, MeetingUncheckedCreateWithoutOutlookBindingsInput>
  }

  export type MeetingSeriesCreateWithoutOutlookBindingsInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutMeetingSeriesCreatedInput
    meetings?: MeetingCreateNestedManyWithoutSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesUncheckedCreateWithoutOutlookBindingsInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    creatorId: string
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    meetings?: MeetingUncheckedCreateNestedManyWithoutSeriesInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutSeriesInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutSeriesInput
  }

  export type MeetingSeriesCreateOrConnectWithoutOutlookBindingsInput = {
    where: MeetingSeriesWhereUniqueInput
    create: XOR<MeetingSeriesCreateWithoutOutlookBindingsInput, MeetingSeriesUncheckedCreateWithoutOutlookBindingsInput>
  }

  export type OutlookSyncMailboxCreateWithoutPrimaryBindingsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionCreateNestedManyWithoutMailboxInput
    eventSnapshots?: OutlookEventSnapshotCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxUncheckedCreateWithoutPrimaryBindingsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionUncheckedCreateNestedManyWithoutMailboxInput
    eventSnapshots?: OutlookEventSnapshotUncheckedCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorUncheckedCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxCreateOrConnectWithoutPrimaryBindingsInput = {
    where: OutlookSyncMailboxWhereUniqueInput
    create: XOR<OutlookSyncMailboxCreateWithoutPrimaryBindingsInput, OutlookSyncMailboxUncheckedCreateWithoutPrimaryBindingsInput>
  }

  export type OutlookSyncEventLogCreateWithoutBindingInput = {
    id?: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutSyncEventLogsInput
  }

  export type OutlookSyncEventLogUncheckedCreateWithoutBindingInput = {
    id?: string
    mailboxId: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookSyncEventLogCreateOrConnectWithoutBindingInput = {
    where: OutlookSyncEventLogWhereUniqueInput
    create: XOR<OutlookSyncEventLogCreateWithoutBindingInput, OutlookSyncEventLogUncheckedCreateWithoutBindingInput>
  }

  export type OutlookSyncEventLogCreateManyBindingInputEnvelope = {
    data: OutlookSyncEventLogCreateManyBindingInput | OutlookSyncEventLogCreateManyBindingInput[]
    skipDuplicates?: boolean
  }

  export type OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput = {
    id?: string
    occurrenceGraphEventId: string
    iCalUId?: string | null
    reason?: string | null
    createdByEmail?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput = {
    id?: string
    occurrenceGraphEventId: string
    iCalUId?: string | null
    reason?: string | null
    createdByEmail?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSeriesOccurrenceExclusionCreateOrConnectWithoutBindingInput = {
    where: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    create: XOR<OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput, OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput>
  }

  export type OutlookSeriesOccurrenceExclusionCreateManyBindingInputEnvelope = {
    data: OutlookSeriesOccurrenceExclusionCreateManyBindingInput | OutlookSeriesOccurrenceExclusionCreateManyBindingInput[]
    skipDuplicates?: boolean
  }

  export type OutlookEventSourceVersionCreateWithoutBindingInput = {
    id?: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutSourceVersionsInput
    diffsAsCurrent?: OutlookEventSyncDiffCreateNestedManyWithoutSourceVersionInput
    diffsAsPrevious?: OutlookEventSyncDiffCreateNestedManyWithoutPreviousSourceVersionInput
  }

  export type OutlookEventSourceVersionUncheckedCreateWithoutBindingInput = {
    id?: string
    mailboxId: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    diffsAsCurrent?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutSourceVersionInput
    diffsAsPrevious?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutPreviousSourceVersionInput
  }

  export type OutlookEventSourceVersionCreateOrConnectWithoutBindingInput = {
    where: OutlookEventSourceVersionWhereUniqueInput
    create: XOR<OutlookEventSourceVersionCreateWithoutBindingInput, OutlookEventSourceVersionUncheckedCreateWithoutBindingInput>
  }

  export type OutlookEventSourceVersionCreateManyBindingInputEnvelope = {
    data: OutlookEventSourceVersionCreateManyBindingInput | OutlookEventSourceVersionCreateManyBindingInput[]
    skipDuplicates?: boolean
  }

  export type OutlookEventSyncDiffCreateWithoutBindingInput = {
    id?: string
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
    sourceVersion: OutlookEventSourceVersionCreateNestedOneWithoutDiffsAsCurrentInput
    previousSourceVersion?: OutlookEventSourceVersionCreateNestedOneWithoutDiffsAsPreviousInput
  }

  export type OutlookEventSyncDiffUncheckedCreateWithoutBindingInput = {
    id?: string
    sourceVersionId: string
    previousSourceVersionId?: string | null
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
  }

  export type OutlookEventSyncDiffCreateOrConnectWithoutBindingInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    create: XOR<OutlookEventSyncDiffCreateWithoutBindingInput, OutlookEventSyncDiffUncheckedCreateWithoutBindingInput>
  }

  export type OutlookEventSyncDiffCreateManyBindingInputEnvelope = {
    data: OutlookEventSyncDiffCreateManyBindingInput | OutlookEventSyncDiffCreateManyBindingInput[]
    skipDuplicates?: boolean
  }

  export type MeetingUpsertWithoutOutlookBindingsInput = {
    update: XOR<MeetingUpdateWithoutOutlookBindingsInput, MeetingUncheckedUpdateWithoutOutlookBindingsInput>
    create: XOR<MeetingCreateWithoutOutlookBindingsInput, MeetingUncheckedCreateWithoutOutlookBindingsInput>
    where?: MeetingWhereInput
  }

  export type MeetingUpdateToOneWithWhereWithoutOutlookBindingsInput = {
    where?: MeetingWhereInput
    data: XOR<MeetingUpdateWithoutOutlookBindingsInput, MeetingUncheckedUpdateWithoutOutlookBindingsInput>
  }

  export type MeetingUpdateWithoutOutlookBindingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput
    series?: MeetingSeriesUpdateOneWithoutMeetingsNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput
    agendaSections?: MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateWithoutOutlookBindingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingSeriesUpsertWithoutOutlookBindingsInput = {
    update: XOR<MeetingSeriesUpdateWithoutOutlookBindingsInput, MeetingSeriesUncheckedUpdateWithoutOutlookBindingsInput>
    create: XOR<MeetingSeriesCreateWithoutOutlookBindingsInput, MeetingSeriesUncheckedCreateWithoutOutlookBindingsInput>
    where?: MeetingSeriesWhereInput
  }

  export type MeetingSeriesUpdateToOneWithWhereWithoutOutlookBindingsInput = {
    where?: MeetingSeriesWhereInput
    data: XOR<MeetingSeriesUpdateWithoutOutlookBindingsInput, MeetingSeriesUncheckedUpdateWithoutOutlookBindingsInput>
  }

  export type MeetingSeriesUpdateWithoutOutlookBindingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutMeetingSeriesCreatedNestedInput
    meetings?: MeetingUpdateManyWithoutSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutSeriesNestedInput
  }

  export type MeetingSeriesUncheckedUpdateWithoutOutlookBindingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    creatorId?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meetings?: MeetingUncheckedUpdateManyWithoutSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutSeriesNestedInput
  }

  export type OutlookSyncMailboxUpsertWithoutPrimaryBindingsInput = {
    update: XOR<OutlookSyncMailboxUpdateWithoutPrimaryBindingsInput, OutlookSyncMailboxUncheckedUpdateWithoutPrimaryBindingsInput>
    create: XOR<OutlookSyncMailboxCreateWithoutPrimaryBindingsInput, OutlookSyncMailboxUncheckedCreateWithoutPrimaryBindingsInput>
    where?: OutlookSyncMailboxWhereInput
  }

  export type OutlookSyncMailboxUpdateToOneWithWhereWithoutPrimaryBindingsInput = {
    where?: OutlookSyncMailboxWhereInput
    data: XOR<OutlookSyncMailboxUpdateWithoutPrimaryBindingsInput, OutlookSyncMailboxUncheckedUpdateWithoutPrimaryBindingsInput>
  }

  export type OutlookSyncMailboxUpdateWithoutPrimaryBindingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUpdateManyWithoutMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxUncheckedUpdateWithoutPrimaryBindingsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUncheckedUpdateManyWithoutMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUncheckedUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookSyncEventLogUpsertWithWhereUniqueWithoutBindingInput = {
    where: OutlookSyncEventLogWhereUniqueInput
    update: XOR<OutlookSyncEventLogUpdateWithoutBindingInput, OutlookSyncEventLogUncheckedUpdateWithoutBindingInput>
    create: XOR<OutlookSyncEventLogCreateWithoutBindingInput, OutlookSyncEventLogUncheckedCreateWithoutBindingInput>
  }

  export type OutlookSyncEventLogUpdateWithWhereUniqueWithoutBindingInput = {
    where: OutlookSyncEventLogWhereUniqueInput
    data: XOR<OutlookSyncEventLogUpdateWithoutBindingInput, OutlookSyncEventLogUncheckedUpdateWithoutBindingInput>
  }

  export type OutlookSyncEventLogUpdateManyWithWhereWithoutBindingInput = {
    where: OutlookSyncEventLogScalarWhereInput
    data: XOR<OutlookSyncEventLogUpdateManyMutationInput, OutlookSyncEventLogUncheckedUpdateManyWithoutBindingInput>
  }

  export type OutlookSeriesOccurrenceExclusionUpsertWithWhereUniqueWithoutBindingInput = {
    where: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    update: XOR<OutlookSeriesOccurrenceExclusionUpdateWithoutBindingInput, OutlookSeriesOccurrenceExclusionUncheckedUpdateWithoutBindingInput>
    create: XOR<OutlookSeriesOccurrenceExclusionCreateWithoutBindingInput, OutlookSeriesOccurrenceExclusionUncheckedCreateWithoutBindingInput>
  }

  export type OutlookSeriesOccurrenceExclusionUpdateWithWhereUniqueWithoutBindingInput = {
    where: OutlookSeriesOccurrenceExclusionWhereUniqueInput
    data: XOR<OutlookSeriesOccurrenceExclusionUpdateWithoutBindingInput, OutlookSeriesOccurrenceExclusionUncheckedUpdateWithoutBindingInput>
  }

  export type OutlookSeriesOccurrenceExclusionUpdateManyWithWhereWithoutBindingInput = {
    where: OutlookSeriesOccurrenceExclusionScalarWhereInput
    data: XOR<OutlookSeriesOccurrenceExclusionUpdateManyMutationInput, OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingInput>
  }

  export type OutlookSeriesOccurrenceExclusionScalarWhereInput = {
    AND?: OutlookSeriesOccurrenceExclusionScalarWhereInput | OutlookSeriesOccurrenceExclusionScalarWhereInput[]
    OR?: OutlookSeriesOccurrenceExclusionScalarWhereInput[]
    NOT?: OutlookSeriesOccurrenceExclusionScalarWhereInput | OutlookSeriesOccurrenceExclusionScalarWhereInput[]
    id?: StringFilter<"OutlookSeriesOccurrenceExclusion"> | string
    bindingId?: StringFilter<"OutlookSeriesOccurrenceExclusion"> | string
    occurrenceGraphEventId?: StringFilter<"OutlookSeriesOccurrenceExclusion"> | string
    iCalUId?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    reason?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    createdByEmail?: StringNullableFilter<"OutlookSeriesOccurrenceExclusion"> | string | null
    createdAt?: DateTimeFilter<"OutlookSeriesOccurrenceExclusion"> | Date | string
    updatedAt?: DateTimeFilter<"OutlookSeriesOccurrenceExclusion"> | Date | string
  }

  export type OutlookEventSourceVersionUpsertWithWhereUniqueWithoutBindingInput = {
    where: OutlookEventSourceVersionWhereUniqueInput
    update: XOR<OutlookEventSourceVersionUpdateWithoutBindingInput, OutlookEventSourceVersionUncheckedUpdateWithoutBindingInput>
    create: XOR<OutlookEventSourceVersionCreateWithoutBindingInput, OutlookEventSourceVersionUncheckedCreateWithoutBindingInput>
  }

  export type OutlookEventSourceVersionUpdateWithWhereUniqueWithoutBindingInput = {
    where: OutlookEventSourceVersionWhereUniqueInput
    data: XOR<OutlookEventSourceVersionUpdateWithoutBindingInput, OutlookEventSourceVersionUncheckedUpdateWithoutBindingInput>
  }

  export type OutlookEventSourceVersionUpdateManyWithWhereWithoutBindingInput = {
    where: OutlookEventSourceVersionScalarWhereInput
    data: XOR<OutlookEventSourceVersionUpdateManyMutationInput, OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingInput>
  }

  export type OutlookEventSyncDiffUpsertWithWhereUniqueWithoutBindingInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    update: XOR<OutlookEventSyncDiffUpdateWithoutBindingInput, OutlookEventSyncDiffUncheckedUpdateWithoutBindingInput>
    create: XOR<OutlookEventSyncDiffCreateWithoutBindingInput, OutlookEventSyncDiffUncheckedCreateWithoutBindingInput>
  }

  export type OutlookEventSyncDiffUpdateWithWhereUniqueWithoutBindingInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    data: XOR<OutlookEventSyncDiffUpdateWithoutBindingInput, OutlookEventSyncDiffUncheckedUpdateWithoutBindingInput>
  }

  export type OutlookEventSyncDiffUpdateManyWithWhereWithoutBindingInput = {
    where: OutlookEventSyncDiffScalarWhereInput
    data: XOR<OutlookEventSyncDiffUpdateManyMutationInput, OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingInput>
  }

  export type OutlookEventSyncDiffScalarWhereInput = {
    AND?: OutlookEventSyncDiffScalarWhereInput | OutlookEventSyncDiffScalarWhereInput[]
    OR?: OutlookEventSyncDiffScalarWhereInput[]
    NOT?: OutlookEventSyncDiffScalarWhereInput | OutlookEventSyncDiffScalarWhereInput[]
    id?: StringFilter<"OutlookEventSyncDiff"> | string
    bindingId?: StringFilter<"OutlookEventSyncDiff"> | string
    sourceVersionId?: StringFilter<"OutlookEventSyncDiff"> | string
    previousSourceVersionId?: StringNullableFilter<"OutlookEventSyncDiff"> | string | null
    detectedAt?: DateTimeFilter<"OutlookEventSyncDiff"> | Date | string
    diffType?: StringFilter<"OutlookEventSyncDiff"> | string
    changedFields?: JsonFilter<"OutlookEventSyncDiff">
    summaryJson?: JsonFilter<"OutlookEventSyncDiff">
    attendeesAdded?: JsonNullableFilter<"OutlookEventSyncDiff">
    attendeesRemoved?: JsonNullableFilter<"OutlookEventSyncDiff">
    attendeesResponseChanged?: JsonNullableFilter<"OutlookEventSyncDiff">
    graphAttendeesCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    graphAttendeesCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    internalMatchedCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    internalMatchedCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    meetingRequiredCountBefore?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    meetingRequiredCountAfter?: IntNullableFilter<"OutlookEventSyncDiff"> | number | null
    createdAt?: DateTimeFilter<"OutlookEventSyncDiff"> | Date | string
  }

  export type OutlookMeetingBindingCreateWithoutOccurrenceExclusionsInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting?: MeetingCreateNestedOneWithoutOutlookBindingsInput
    meetingSeries?: MeetingSeriesCreateNestedOneWithoutOutlookBindingsInput
    primaryMailbox: OutlookSyncMailboxCreateNestedOneWithoutPrimaryBindingsInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUncheckedCreateWithoutOccurrenceExclusionsInput = {
    id?: string
    meetingId?: string | null
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingCreateOrConnectWithoutOccurrenceExclusionsInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    create: XOR<OutlookMeetingBindingCreateWithoutOccurrenceExclusionsInput, OutlookMeetingBindingUncheckedCreateWithoutOccurrenceExclusionsInput>
  }

  export type OutlookMeetingBindingUpsertWithoutOccurrenceExclusionsInput = {
    update: XOR<OutlookMeetingBindingUpdateWithoutOccurrenceExclusionsInput, OutlookMeetingBindingUncheckedUpdateWithoutOccurrenceExclusionsInput>
    create: XOR<OutlookMeetingBindingCreateWithoutOccurrenceExclusionsInput, OutlookMeetingBindingUncheckedCreateWithoutOccurrenceExclusionsInput>
    where?: OutlookMeetingBindingWhereInput
  }

  export type OutlookMeetingBindingUpdateToOneWithWhereWithoutOccurrenceExclusionsInput = {
    where?: OutlookMeetingBindingWhereInput
    data: XOR<OutlookMeetingBindingUpdateWithoutOccurrenceExclusionsInput, OutlookMeetingBindingUncheckedUpdateWithoutOccurrenceExclusionsInput>
  }

  export type OutlookMeetingBindingUpdateWithoutOccurrenceExclusionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneWithoutOutlookBindingsNestedInput
    meetingSeries?: MeetingSeriesUpdateOneWithoutOutlookBindingsNestedInput
    primaryMailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutPrimaryBindingsNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateWithoutOccurrenceExclusionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingCreateWithoutSyncEventLogsInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting?: MeetingCreateNestedOneWithoutOutlookBindingsInput
    meetingSeries?: MeetingSeriesCreateNestedOneWithoutOutlookBindingsInput
    primaryMailbox: OutlookSyncMailboxCreateNestedOneWithoutPrimaryBindingsInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUncheckedCreateWithoutSyncEventLogsInput = {
    id?: string
    meetingId?: string | null
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingCreateOrConnectWithoutSyncEventLogsInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    create: XOR<OutlookMeetingBindingCreateWithoutSyncEventLogsInput, OutlookMeetingBindingUncheckedCreateWithoutSyncEventLogsInput>
  }

  export type OutlookSyncMailboxCreateWithoutSyncEventLogsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxUncheckedCreateWithoutSyncEventLogsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionUncheckedCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotUncheckedCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorUncheckedCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxCreateOrConnectWithoutSyncEventLogsInput = {
    where: OutlookSyncMailboxWhereUniqueInput
    create: XOR<OutlookSyncMailboxCreateWithoutSyncEventLogsInput, OutlookSyncMailboxUncheckedCreateWithoutSyncEventLogsInput>
  }

  export type OutlookMeetingBindingUpsertWithoutSyncEventLogsInput = {
    update: XOR<OutlookMeetingBindingUpdateWithoutSyncEventLogsInput, OutlookMeetingBindingUncheckedUpdateWithoutSyncEventLogsInput>
    create: XOR<OutlookMeetingBindingCreateWithoutSyncEventLogsInput, OutlookMeetingBindingUncheckedCreateWithoutSyncEventLogsInput>
    where?: OutlookMeetingBindingWhereInput
  }

  export type OutlookMeetingBindingUpdateToOneWithWhereWithoutSyncEventLogsInput = {
    where?: OutlookMeetingBindingWhereInput
    data: XOR<OutlookMeetingBindingUpdateWithoutSyncEventLogsInput, OutlookMeetingBindingUncheckedUpdateWithoutSyncEventLogsInput>
  }

  export type OutlookMeetingBindingUpdateWithoutSyncEventLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneWithoutOutlookBindingsNestedInput
    meetingSeries?: MeetingSeriesUpdateOneWithoutOutlookBindingsNestedInput
    primaryMailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutPrimaryBindingsNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateWithoutSyncEventLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type OutlookSyncMailboxUpsertWithoutSyncEventLogsInput = {
    update: XOR<OutlookSyncMailboxUpdateWithoutSyncEventLogsInput, OutlookSyncMailboxUncheckedUpdateWithoutSyncEventLogsInput>
    create: XOR<OutlookSyncMailboxCreateWithoutSyncEventLogsInput, OutlookSyncMailboxUncheckedCreateWithoutSyncEventLogsInput>
    where?: OutlookSyncMailboxWhereInput
  }

  export type OutlookSyncMailboxUpdateToOneWithWhereWithoutSyncEventLogsInput = {
    where?: OutlookSyncMailboxWhereInput
    data: XOR<OutlookSyncMailboxUpdateWithoutSyncEventLogsInput, OutlookSyncMailboxUncheckedUpdateWithoutSyncEventLogsInput>
  }

  export type OutlookSyncMailboxUpdateWithoutSyncEventLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxUncheckedUpdateWithoutSyncEventLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUncheckedUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUncheckedUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookMeetingBindingCreateWithoutSourceVersionsInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting?: MeetingCreateNestedOneWithoutOutlookBindingsInput
    meetingSeries?: MeetingSeriesCreateNestedOneWithoutOutlookBindingsInput
    primaryMailbox: OutlookSyncMailboxCreateNestedOneWithoutPrimaryBindingsInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUncheckedCreateWithoutSourceVersionsInput = {
    id?: string
    meetingId?: string | null
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedCreateNestedManyWithoutBindingInput
    syncDiffs?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingCreateOrConnectWithoutSourceVersionsInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    create: XOR<OutlookMeetingBindingCreateWithoutSourceVersionsInput, OutlookMeetingBindingUncheckedCreateWithoutSourceVersionsInput>
  }

  export type OutlookSyncMailboxCreateWithoutSourceVersionsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxUncheckedCreateWithoutSourceVersionsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionUncheckedCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotUncheckedCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorUncheckedCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxCreateOrConnectWithoutSourceVersionsInput = {
    where: OutlookSyncMailboxWhereUniqueInput
    create: XOR<OutlookSyncMailboxCreateWithoutSourceVersionsInput, OutlookSyncMailboxUncheckedCreateWithoutSourceVersionsInput>
  }

  export type OutlookEventSyncDiffCreateWithoutSourceVersionInput = {
    id?: string
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSyncDiffsInput
    previousSourceVersion?: OutlookEventSourceVersionCreateNestedOneWithoutDiffsAsPreviousInput
  }

  export type OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput = {
    id?: string
    bindingId: string
    previousSourceVersionId?: string | null
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
  }

  export type OutlookEventSyncDiffCreateOrConnectWithoutSourceVersionInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    create: XOR<OutlookEventSyncDiffCreateWithoutSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput>
  }

  export type OutlookEventSyncDiffCreateManySourceVersionInputEnvelope = {
    data: OutlookEventSyncDiffCreateManySourceVersionInput | OutlookEventSyncDiffCreateManySourceVersionInput[]
    skipDuplicates?: boolean
  }

  export type OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput = {
    id?: string
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSyncDiffsInput
    sourceVersion: OutlookEventSourceVersionCreateNestedOneWithoutDiffsAsCurrentInput
  }

  export type OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput = {
    id?: string
    bindingId: string
    sourceVersionId: string
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
  }

  export type OutlookEventSyncDiffCreateOrConnectWithoutPreviousSourceVersionInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    create: XOR<OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput>
  }

  export type OutlookEventSyncDiffCreateManyPreviousSourceVersionInputEnvelope = {
    data: OutlookEventSyncDiffCreateManyPreviousSourceVersionInput | OutlookEventSyncDiffCreateManyPreviousSourceVersionInput[]
    skipDuplicates?: boolean
  }

  export type OutlookMeetingBindingUpsertWithoutSourceVersionsInput = {
    update: XOR<OutlookMeetingBindingUpdateWithoutSourceVersionsInput, OutlookMeetingBindingUncheckedUpdateWithoutSourceVersionsInput>
    create: XOR<OutlookMeetingBindingCreateWithoutSourceVersionsInput, OutlookMeetingBindingUncheckedCreateWithoutSourceVersionsInput>
    where?: OutlookMeetingBindingWhereInput
  }

  export type OutlookMeetingBindingUpdateToOneWithWhereWithoutSourceVersionsInput = {
    where?: OutlookMeetingBindingWhereInput
    data: XOR<OutlookMeetingBindingUpdateWithoutSourceVersionsInput, OutlookMeetingBindingUncheckedUpdateWithoutSourceVersionsInput>
  }

  export type OutlookMeetingBindingUpdateWithoutSourceVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneWithoutOutlookBindingsNestedInput
    meetingSeries?: MeetingSeriesUpdateOneWithoutOutlookBindingsNestedInput
    primaryMailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutPrimaryBindingsNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateWithoutSourceVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type OutlookSyncMailboxUpsertWithoutSourceVersionsInput = {
    update: XOR<OutlookSyncMailboxUpdateWithoutSourceVersionsInput, OutlookSyncMailboxUncheckedUpdateWithoutSourceVersionsInput>
    create: XOR<OutlookSyncMailboxCreateWithoutSourceVersionsInput, OutlookSyncMailboxUncheckedCreateWithoutSourceVersionsInput>
    where?: OutlookSyncMailboxWhereInput
  }

  export type OutlookSyncMailboxUpdateToOneWithWhereWithoutSourceVersionsInput = {
    where?: OutlookSyncMailboxWhereInput
    data: XOR<OutlookSyncMailboxUpdateWithoutSourceVersionsInput, OutlookSyncMailboxUncheckedUpdateWithoutSourceVersionsInput>
  }

  export type OutlookSyncMailboxUpdateWithoutSourceVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxUncheckedUpdateWithoutSourceVersionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUncheckedUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUncheckedUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookEventSyncDiffUpsertWithWhereUniqueWithoutSourceVersionInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    update: XOR<OutlookEventSyncDiffUpdateWithoutSourceVersionInput, OutlookEventSyncDiffUncheckedUpdateWithoutSourceVersionInput>
    create: XOR<OutlookEventSyncDiffCreateWithoutSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutSourceVersionInput>
  }

  export type OutlookEventSyncDiffUpdateWithWhereUniqueWithoutSourceVersionInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    data: XOR<OutlookEventSyncDiffUpdateWithoutSourceVersionInput, OutlookEventSyncDiffUncheckedUpdateWithoutSourceVersionInput>
  }

  export type OutlookEventSyncDiffUpdateManyWithWhereWithoutSourceVersionInput = {
    where: OutlookEventSyncDiffScalarWhereInput
    data: XOR<OutlookEventSyncDiffUpdateManyMutationInput, OutlookEventSyncDiffUncheckedUpdateManyWithoutSourceVersionInput>
  }

  export type OutlookEventSyncDiffUpsertWithWhereUniqueWithoutPreviousSourceVersionInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    update: XOR<OutlookEventSyncDiffUpdateWithoutPreviousSourceVersionInput, OutlookEventSyncDiffUncheckedUpdateWithoutPreviousSourceVersionInput>
    create: XOR<OutlookEventSyncDiffCreateWithoutPreviousSourceVersionInput, OutlookEventSyncDiffUncheckedCreateWithoutPreviousSourceVersionInput>
  }

  export type OutlookEventSyncDiffUpdateWithWhereUniqueWithoutPreviousSourceVersionInput = {
    where: OutlookEventSyncDiffWhereUniqueInput
    data: XOR<OutlookEventSyncDiffUpdateWithoutPreviousSourceVersionInput, OutlookEventSyncDiffUncheckedUpdateWithoutPreviousSourceVersionInput>
  }

  export type OutlookEventSyncDiffUpdateManyWithWhereWithoutPreviousSourceVersionInput = {
    where: OutlookEventSyncDiffScalarWhereInput
    data: XOR<OutlookEventSyncDiffUpdateManyMutationInput, OutlookEventSyncDiffUncheckedUpdateManyWithoutPreviousSourceVersionInput>
  }

  export type OutlookMeetingBindingCreateWithoutSyncDiffsInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    meeting?: MeetingCreateNestedOneWithoutOutlookBindingsInput
    meetingSeries?: MeetingSeriesCreateNestedOneWithoutOutlookBindingsInput
    primaryMailbox: OutlookSyncMailboxCreateNestedOneWithoutPrimaryBindingsInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingUncheckedCreateWithoutSyncDiffsInput = {
    id?: string
    meetingId?: string | null
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutBindingInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedCreateNestedManyWithoutBindingInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutBindingInput
  }

  export type OutlookMeetingBindingCreateOrConnectWithoutSyncDiffsInput = {
    where: OutlookMeetingBindingWhereUniqueInput
    create: XOR<OutlookMeetingBindingCreateWithoutSyncDiffsInput, OutlookMeetingBindingUncheckedCreateWithoutSyncDiffsInput>
  }

  export type OutlookEventSourceVersionCreateWithoutDiffsAsCurrentInput = {
    id?: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSourceVersionsInput
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutSourceVersionsInput
    diffsAsPrevious?: OutlookEventSyncDiffCreateNestedManyWithoutPreviousSourceVersionInput
  }

  export type OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsCurrentInput = {
    id?: string
    bindingId: string
    mailboxId: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    diffsAsPrevious?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutPreviousSourceVersionInput
  }

  export type OutlookEventSourceVersionCreateOrConnectWithoutDiffsAsCurrentInput = {
    where: OutlookEventSourceVersionWhereUniqueInput
    create: XOR<OutlookEventSourceVersionCreateWithoutDiffsAsCurrentInput, OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsCurrentInput>
  }

  export type OutlookEventSourceVersionCreateWithoutDiffsAsPreviousInput = {
    id?: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    binding: OutlookMeetingBindingCreateNestedOneWithoutSourceVersionsInput
    mailbox: OutlookSyncMailboxCreateNestedOneWithoutSourceVersionsInput
    diffsAsCurrent?: OutlookEventSyncDiffCreateNestedManyWithoutSourceVersionInput
  }

  export type OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsPreviousInput = {
    id?: string
    bindingId: string
    mailboxId: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    diffsAsCurrent?: OutlookEventSyncDiffUncheckedCreateNestedManyWithoutSourceVersionInput
  }

  export type OutlookEventSourceVersionCreateOrConnectWithoutDiffsAsPreviousInput = {
    where: OutlookEventSourceVersionWhereUniqueInput
    create: XOR<OutlookEventSourceVersionCreateWithoutDiffsAsPreviousInput, OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsPreviousInput>
  }

  export type OutlookMeetingBindingUpsertWithoutSyncDiffsInput = {
    update: XOR<OutlookMeetingBindingUpdateWithoutSyncDiffsInput, OutlookMeetingBindingUncheckedUpdateWithoutSyncDiffsInput>
    create: XOR<OutlookMeetingBindingCreateWithoutSyncDiffsInput, OutlookMeetingBindingUncheckedCreateWithoutSyncDiffsInput>
    where?: OutlookMeetingBindingWhereInput
  }

  export type OutlookMeetingBindingUpdateToOneWithWhereWithoutSyncDiffsInput = {
    where?: OutlookMeetingBindingWhereInput
    data: XOR<OutlookMeetingBindingUpdateWithoutSyncDiffsInput, OutlookMeetingBindingUncheckedUpdateWithoutSyncDiffsInput>
  }

  export type OutlookMeetingBindingUpdateWithoutSyncDiffsInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneWithoutOutlookBindingsNestedInput
    meetingSeries?: MeetingSeriesUpdateOneWithoutOutlookBindingsNestedInput
    primaryMailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutPrimaryBindingsNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateWithoutSyncDiffsInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type OutlookEventSourceVersionUpsertWithoutDiffsAsCurrentInput = {
    update: XOR<OutlookEventSourceVersionUpdateWithoutDiffsAsCurrentInput, OutlookEventSourceVersionUncheckedUpdateWithoutDiffsAsCurrentInput>
    create: XOR<OutlookEventSourceVersionCreateWithoutDiffsAsCurrentInput, OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsCurrentInput>
    where?: OutlookEventSourceVersionWhereInput
  }

  export type OutlookEventSourceVersionUpdateToOneWithWhereWithoutDiffsAsCurrentInput = {
    where?: OutlookEventSourceVersionWhereInput
    data: XOR<OutlookEventSourceVersionUpdateWithoutDiffsAsCurrentInput, OutlookEventSourceVersionUncheckedUpdateWithoutDiffsAsCurrentInput>
  }

  export type OutlookEventSourceVersionUpdateWithoutDiffsAsCurrentInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSourceVersionsNestedInput
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutSourceVersionsNestedInput
    diffsAsPrevious?: OutlookEventSyncDiffUpdateManyWithoutPreviousSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionUncheckedUpdateWithoutDiffsAsCurrentInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffsAsPrevious?: OutlookEventSyncDiffUncheckedUpdateManyWithoutPreviousSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionUpsertWithoutDiffsAsPreviousInput = {
    update: XOR<OutlookEventSourceVersionUpdateWithoutDiffsAsPreviousInput, OutlookEventSourceVersionUncheckedUpdateWithoutDiffsAsPreviousInput>
    create: XOR<OutlookEventSourceVersionCreateWithoutDiffsAsPreviousInput, OutlookEventSourceVersionUncheckedCreateWithoutDiffsAsPreviousInput>
    where?: OutlookEventSourceVersionWhereInput
  }

  export type OutlookEventSourceVersionUpdateToOneWithWhereWithoutDiffsAsPreviousInput = {
    where?: OutlookEventSourceVersionWhereInput
    data: XOR<OutlookEventSourceVersionUpdateWithoutDiffsAsPreviousInput, OutlookEventSourceVersionUncheckedUpdateWithoutDiffsAsPreviousInput>
  }

  export type OutlookEventSourceVersionUpdateWithoutDiffsAsPreviousInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSourceVersionsNestedInput
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutSourceVersionsNestedInput
    diffsAsCurrent?: OutlookEventSyncDiffUpdateManyWithoutSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionUncheckedUpdateWithoutDiffsAsPreviousInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffsAsCurrent?: OutlookEventSyncDiffUncheckedUpdateManyWithoutSourceVersionNestedInput
  }

  export type OutlookSyncMailboxCreateWithoutCursorInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutMailboxInput
  }

  export type OutlookSyncMailboxUncheckedCreateWithoutCursorInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionUncheckedCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutPrimaryMailboxInput
    eventSnapshots?: OutlookEventSnapshotUncheckedCreateNestedManyWithoutMailboxInput
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutMailboxInput
  }

  export type OutlookSyncMailboxCreateOrConnectWithoutCursorInput = {
    where: OutlookSyncMailboxWhereUniqueInput
    create: XOR<OutlookSyncMailboxCreateWithoutCursorInput, OutlookSyncMailboxUncheckedCreateWithoutCursorInput>
  }

  export type OutlookSyncMailboxUpsertWithoutCursorInput = {
    update: XOR<OutlookSyncMailboxUpdateWithoutCursorInput, OutlookSyncMailboxUncheckedUpdateWithoutCursorInput>
    create: XOR<OutlookSyncMailboxCreateWithoutCursorInput, OutlookSyncMailboxUncheckedCreateWithoutCursorInput>
    where?: OutlookSyncMailboxWhereInput
  }

  export type OutlookSyncMailboxUpdateToOneWithWhereWithoutCursorInput = {
    where?: OutlookSyncMailboxWhereInput
    data: XOR<OutlookSyncMailboxUpdateWithoutCursorInput, OutlookSyncMailboxUncheckedUpdateWithoutCursorInput>
  }

  export type OutlookSyncMailboxUpdateWithoutCursorInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxUncheckedUpdateWithoutCursorInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUncheckedUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxNestedInput
    eventSnapshots?: OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxCreateWithoutEventSnapshotsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingCreateNestedManyWithoutPrimaryMailboxInput
    syncEventLogs?: OutlookSyncEventLogCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxUncheckedCreateWithoutEventSnapshotsInput = {
    id?: string
    mailboxEmail: string
    mailboxType: $Enums.OutlookMailboxType
    isEnabled?: boolean
    isPrimaryDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    subscriptions?: OutlookSubscriptionUncheckedCreateNestedManyWithoutMailboxInput
    primaryBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutPrimaryMailboxInput
    syncEventLogs?: OutlookSyncEventLogUncheckedCreateNestedManyWithoutMailboxInput
    sourceVersions?: OutlookEventSourceVersionUncheckedCreateNestedManyWithoutMailboxInput
    cursor?: OutlookSyncCursorUncheckedCreateNestedOneWithoutMailboxInput
  }

  export type OutlookSyncMailboxCreateOrConnectWithoutEventSnapshotsInput = {
    where: OutlookSyncMailboxWhereUniqueInput
    create: XOR<OutlookSyncMailboxCreateWithoutEventSnapshotsInput, OutlookSyncMailboxUncheckedCreateWithoutEventSnapshotsInput>
  }

  export type OutlookSyncMailboxUpsertWithoutEventSnapshotsInput = {
    update: XOR<OutlookSyncMailboxUpdateWithoutEventSnapshotsInput, OutlookSyncMailboxUncheckedUpdateWithoutEventSnapshotsInput>
    create: XOR<OutlookSyncMailboxCreateWithoutEventSnapshotsInput, OutlookSyncMailboxUncheckedCreateWithoutEventSnapshotsInput>
    where?: OutlookSyncMailboxWhereInput
  }

  export type OutlookSyncMailboxUpdateToOneWithWhereWithoutEventSnapshotsInput = {
    where?: OutlookSyncMailboxWhereInput
    data: XOR<OutlookSyncMailboxUpdateWithoutEventSnapshotsInput, OutlookSyncMailboxUncheckedUpdateWithoutEventSnapshotsInput>
  }

  export type OutlookSyncMailboxUpdateWithoutEventSnapshotsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUpdateManyWithoutPrimaryMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUpdateOneWithoutMailboxNestedInput
  }

  export type OutlookSyncMailboxUncheckedUpdateWithoutEventSnapshotsInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxEmail?: StringFieldUpdateOperationsInput | string
    mailboxType?: EnumOutlookMailboxTypeFieldUpdateOperationsInput | $Enums.OutlookMailboxType
    isEnabled?: BoolFieldUpdateOperationsInput | boolean
    isPrimaryDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    subscriptions?: OutlookSubscriptionUncheckedUpdateManyWithoutMailboxNestedInput
    primaryBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxNestedInput
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxNestedInput
    cursor?: OutlookSyncCursorUncheckedUpdateOneWithoutMailboxNestedInput
  }

  export type MeetingCreateWithoutAgendaSectionsInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput
    series?: MeetingSeriesCreateNestedOneWithoutMeetingsInput
    creator: UserCreateNestedOneWithoutMeetingsCreatedInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateWithoutAgendaSectionsInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput
    attachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingCreateOrConnectWithoutAgendaSectionsInput = {
    where: MeetingWhereUniqueInput
    create: XOR<MeetingCreateWithoutAgendaSectionsInput, MeetingUncheckedCreateWithoutAgendaSectionsInput>
  }

  export type UserCreateWithoutAgendaSectionsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAgendaSectionsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAgendaSectionsCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAgendaSectionsCreatedInput, UserUncheckedCreateWithoutAgendaSectionsCreatedInput>
  }

  export type OrganizationCreateWithoutMeetingAgendaSectionsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutMeetingAgendaSectionsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutMeetingAgendaSectionsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutMeetingAgendaSectionsInput, OrganizationUncheckedCreateWithoutMeetingAgendaSectionsInput>
  }

  export type MeetingAgendaItemCreateWithoutSectionInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    presenter?: UserCreateNestedOneWithoutAgendaItemsPresentedInput
    createdBy: UserCreateNestedOneWithoutAgendaItemsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemsInput
    uploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemUncheckedCreateWithoutSectionInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAgendaItemInput
    attachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemCreateOrConnectWithoutSectionInput = {
    where: MeetingAgendaItemWhereUniqueInput
    create: XOR<MeetingAgendaItemCreateWithoutSectionInput, MeetingAgendaItemUncheckedCreateWithoutSectionInput>
  }

  export type MeetingAgendaItemCreateManySectionInputEnvelope = {
    data: MeetingAgendaItemCreateManySectionInput | MeetingAgendaItemCreateManySectionInput[]
    skipDuplicates?: boolean
  }

  export type MeetingUpsertWithoutAgendaSectionsInput = {
    update: XOR<MeetingUpdateWithoutAgendaSectionsInput, MeetingUncheckedUpdateWithoutAgendaSectionsInput>
    create: XOR<MeetingCreateWithoutAgendaSectionsInput, MeetingUncheckedCreateWithoutAgendaSectionsInput>
    where?: MeetingWhereInput
  }

  export type MeetingUpdateToOneWithWhereWithoutAgendaSectionsInput = {
    where?: MeetingWhereInput
    data: XOR<MeetingUpdateWithoutAgendaSectionsInput, MeetingUncheckedUpdateWithoutAgendaSectionsInput>
  }

  export type MeetingUpdateWithoutAgendaSectionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput
    series?: MeetingSeriesUpdateOneWithoutMeetingsNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateWithoutAgendaSectionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type UserUpsertWithoutAgendaSectionsCreatedInput = {
    update: XOR<UserUpdateWithoutAgendaSectionsCreatedInput, UserUncheckedUpdateWithoutAgendaSectionsCreatedInput>
    create: XOR<UserCreateWithoutAgendaSectionsCreatedInput, UserUncheckedCreateWithoutAgendaSectionsCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAgendaSectionsCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAgendaSectionsCreatedInput, UserUncheckedUpdateWithoutAgendaSectionsCreatedInput>
  }

  export type UserUpdateWithoutAgendaSectionsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAgendaSectionsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutMeetingAgendaSectionsInput = {
    update: XOR<OrganizationUpdateWithoutMeetingAgendaSectionsInput, OrganizationUncheckedUpdateWithoutMeetingAgendaSectionsInput>
    create: XOR<OrganizationCreateWithoutMeetingAgendaSectionsInput, OrganizationUncheckedCreateWithoutMeetingAgendaSectionsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutMeetingAgendaSectionsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutMeetingAgendaSectionsInput, OrganizationUncheckedUpdateWithoutMeetingAgendaSectionsInput>
  }

  export type OrganizationUpdateWithoutMeetingAgendaSectionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutMeetingAgendaSectionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type MeetingAgendaItemUpsertWithWhereUniqueWithoutSectionInput = {
    where: MeetingAgendaItemWhereUniqueInput
    update: XOR<MeetingAgendaItemUpdateWithoutSectionInput, MeetingAgendaItemUncheckedUpdateWithoutSectionInput>
    create: XOR<MeetingAgendaItemCreateWithoutSectionInput, MeetingAgendaItemUncheckedCreateWithoutSectionInput>
  }

  export type MeetingAgendaItemUpdateWithWhereUniqueWithoutSectionInput = {
    where: MeetingAgendaItemWhereUniqueInput
    data: XOR<MeetingAgendaItemUpdateWithoutSectionInput, MeetingAgendaItemUncheckedUpdateWithoutSectionInput>
  }

  export type MeetingAgendaItemUpdateManyWithWhereWithoutSectionInput = {
    where: MeetingAgendaItemScalarWhereInput
    data: XOR<MeetingAgendaItemUpdateManyMutationInput, MeetingAgendaItemUncheckedUpdateManyWithoutSectionInput>
  }

  export type MeetingAgendaSectionCreateWithoutItemsInput = {
    id?: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    meeting: MeetingCreateNestedOneWithoutAgendaSectionsInput
    createdBy: UserCreateNestedOneWithoutAgendaSectionsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaSectionsInput
  }

  export type MeetingAgendaSectionUncheckedCreateWithoutItemsInput = {
    id?: string
    meetingId: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaSectionCreateOrConnectWithoutItemsInput = {
    where: MeetingAgendaSectionWhereUniqueInput
    create: XOR<MeetingAgendaSectionCreateWithoutItemsInput, MeetingAgendaSectionUncheckedCreateWithoutItemsInput>
  }

  export type UserCreateWithoutAgendaItemsPresentedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAgendaItemsPresentedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAgendaItemsPresentedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAgendaItemsPresentedInput, UserUncheckedCreateWithoutAgendaItemsPresentedInput>
  }

  export type UserCreateWithoutAgendaItemsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAgendaItemsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAgendaItemsCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAgendaItemsCreatedInput, UserUncheckedCreateWithoutAgendaItemsCreatedInput>
  }

  export type OrganizationCreateWithoutMeetingAgendaItemsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutMeetingAgendaItemsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutMeetingAgendaItemsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutMeetingAgendaItemsInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemsInput>
  }

  export type MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput = {
    id?: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    assignee: UserCreateNestedOneWithoutUploadTasksAssignedInput
    assignedBy: UserCreateNestedOneWithoutUploadTasksAssignedByInput
    createdBy: UserCreateNestedOneWithoutUploadTasksCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemUploadTasksInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput = {
    id?: string
    assigneeUserId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateOrConnectWithoutAgendaItemInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput>
  }

  export type MeetingAgendaItemUploadTaskCreateManyAgendaItemInputEnvelope = {
    data: MeetingAgendaItemUploadTaskCreateManyAgendaItemInput | MeetingAgendaItemUploadTaskCreateManyAgendaItemInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput = {
    id?: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    uploadedBy: UserCreateNestedOneWithoutAgendaAttachmentsUploadedInput
    createdBy: UserCreateNestedOneWithoutAgendaAttachmentsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemAttachmentsInput
  }

  export type MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput = {
    id?: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateOrConnectWithoutAgendaItemInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    create: XOR<MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput>
  }

  export type MeetingAgendaItemAttachmentCreateManyAgendaItemInputEnvelope = {
    data: MeetingAgendaItemAttachmentCreateManyAgendaItemInput | MeetingAgendaItemAttachmentCreateManyAgendaItemInput[]
    skipDuplicates?: boolean
  }

  export type MeetingAgendaSectionUpsertWithoutItemsInput = {
    update: XOR<MeetingAgendaSectionUpdateWithoutItemsInput, MeetingAgendaSectionUncheckedUpdateWithoutItemsInput>
    create: XOR<MeetingAgendaSectionCreateWithoutItemsInput, MeetingAgendaSectionUncheckedCreateWithoutItemsInput>
    where?: MeetingAgendaSectionWhereInput
  }

  export type MeetingAgendaSectionUpdateToOneWithWhereWithoutItemsInput = {
    where?: MeetingAgendaSectionWhereInput
    data: XOR<MeetingAgendaSectionUpdateWithoutItemsInput, MeetingAgendaSectionUncheckedUpdateWithoutItemsInput>
  }

  export type MeetingAgendaSectionUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    meeting?: MeetingUpdateOneRequiredWithoutAgendaSectionsNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaSectionsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaSectionsNestedInput
  }

  export type MeetingAgendaSectionUncheckedUpdateWithoutItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserUpsertWithoutAgendaItemsPresentedInput = {
    update: XOR<UserUpdateWithoutAgendaItemsPresentedInput, UserUncheckedUpdateWithoutAgendaItemsPresentedInput>
    create: XOR<UserCreateWithoutAgendaItemsPresentedInput, UserUncheckedCreateWithoutAgendaItemsPresentedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAgendaItemsPresentedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAgendaItemsPresentedInput, UserUncheckedUpdateWithoutAgendaItemsPresentedInput>
  }

  export type UserUpdateWithoutAgendaItemsPresentedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAgendaItemsPresentedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutAgendaItemsCreatedInput = {
    update: XOR<UserUpdateWithoutAgendaItemsCreatedInput, UserUncheckedUpdateWithoutAgendaItemsCreatedInput>
    create: XOR<UserCreateWithoutAgendaItemsCreatedInput, UserUncheckedCreateWithoutAgendaItemsCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAgendaItemsCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAgendaItemsCreatedInput, UserUncheckedUpdateWithoutAgendaItemsCreatedInput>
  }

  export type UserUpdateWithoutAgendaItemsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAgendaItemsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutMeetingAgendaItemsInput = {
    update: XOR<OrganizationUpdateWithoutMeetingAgendaItemsInput, OrganizationUncheckedUpdateWithoutMeetingAgendaItemsInput>
    create: XOR<OrganizationCreateWithoutMeetingAgendaItemsInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutMeetingAgendaItemsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutMeetingAgendaItemsInput, OrganizationUncheckedUpdateWithoutMeetingAgendaItemsInput>
  }

  export type OrganizationUpdateWithoutMeetingAgendaItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutMeetingAgendaItemsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type MeetingAgendaItemUploadTaskUpsertWithWhereUniqueWithoutAgendaItemInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    update: XOR<MeetingAgendaItemUploadTaskUpdateWithoutAgendaItemInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAgendaItemInput>
    create: XOR<MeetingAgendaItemUploadTaskCreateWithoutAgendaItemInput, MeetingAgendaItemUploadTaskUncheckedCreateWithoutAgendaItemInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateWithWhereUniqueWithoutAgendaItemInput = {
    where: MeetingAgendaItemUploadTaskWhereUniqueInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateWithoutAgendaItemInput, MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAgendaItemInput>
  }

  export type MeetingAgendaItemUploadTaskUpdateManyWithWhereWithoutAgendaItemInput = {
    where: MeetingAgendaItemUploadTaskScalarWhereInput
    data: XOR<MeetingAgendaItemUploadTaskUpdateManyMutationInput, MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemInput>
  }

  export type MeetingAgendaItemAttachmentUpsertWithWhereUniqueWithoutAgendaItemInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    update: XOR<MeetingAgendaItemAttachmentUpdateWithoutAgendaItemInput, MeetingAgendaItemAttachmentUncheckedUpdateWithoutAgendaItemInput>
    create: XOR<MeetingAgendaItemAttachmentCreateWithoutAgendaItemInput, MeetingAgendaItemAttachmentUncheckedCreateWithoutAgendaItemInput>
  }

  export type MeetingAgendaItemAttachmentUpdateWithWhereUniqueWithoutAgendaItemInput = {
    where: MeetingAgendaItemAttachmentWhereUniqueInput
    data: XOR<MeetingAgendaItemAttachmentUpdateWithoutAgendaItemInput, MeetingAgendaItemAttachmentUncheckedUpdateWithoutAgendaItemInput>
  }

  export type MeetingAgendaItemAttachmentUpdateManyWithWhereWithoutAgendaItemInput = {
    where: MeetingAgendaItemAttachmentScalarWhereInput
    data: XOR<MeetingAgendaItemAttachmentUpdateManyMutationInput, MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemInput>
  }

  export type MeetingAgendaItemCreateWithoutUploadTasksInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    section: MeetingAgendaSectionCreateNestedOneWithoutItemsInput
    presenter?: UserCreateNestedOneWithoutAgendaItemsPresentedInput
    createdBy: UserCreateNestedOneWithoutAgendaItemsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemsInput
    attachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemUncheckedCreateWithoutUploadTasksInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    attachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemCreateOrConnectWithoutUploadTasksInput = {
    where: MeetingAgendaItemWhereUniqueInput
    create: XOR<MeetingAgendaItemCreateWithoutUploadTasksInput, MeetingAgendaItemUncheckedCreateWithoutUploadTasksInput>
  }

  export type UserCreateWithoutUploadTasksAssignedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutUploadTasksAssignedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutUploadTasksAssignedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutUploadTasksAssignedInput, UserUncheckedCreateWithoutUploadTasksAssignedInput>
  }

  export type UserCreateWithoutUploadTasksAssignedByInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutUploadTasksAssignedByInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutUploadTasksAssignedByInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutUploadTasksAssignedByInput, UserUncheckedCreateWithoutUploadTasksAssignedByInput>
  }

  export type UserCreateWithoutUploadTasksCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutUploadTasksCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutUploadTasksCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutUploadTasksCreatedInput, UserUncheckedCreateWithoutUploadTasksCreatedInput>
  }

  export type OrganizationCreateWithoutMeetingAgendaItemUploadTasksInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutMeetingAgendaItemUploadTasksInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutMeetingAgendaItemUploadTasksInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutMeetingAgendaItemUploadTasksInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemUploadTasksInput>
  }

  export type MeetingAgendaItemUpsertWithoutUploadTasksInput = {
    update: XOR<MeetingAgendaItemUpdateWithoutUploadTasksInput, MeetingAgendaItemUncheckedUpdateWithoutUploadTasksInput>
    create: XOR<MeetingAgendaItemCreateWithoutUploadTasksInput, MeetingAgendaItemUncheckedCreateWithoutUploadTasksInput>
    where?: MeetingAgendaItemWhereInput
  }

  export type MeetingAgendaItemUpdateToOneWithWhereWithoutUploadTasksInput = {
    where?: MeetingAgendaItemWhereInput
    data: XOR<MeetingAgendaItemUpdateWithoutUploadTasksInput, MeetingAgendaItemUncheckedUpdateWithoutUploadTasksInput>
  }

  export type MeetingAgendaItemUpdateWithoutUploadTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    section?: MeetingAgendaSectionUpdateOneRequiredWithoutItemsNestedInput
    presenter?: UserUpdateOneWithoutAgendaItemsPresentedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaItemsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemsNestedInput
    attachments?: MeetingAgendaItemAttachmentUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateWithoutUploadTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemNestedInput
  }

  export type UserUpsertWithoutUploadTasksAssignedInput = {
    update: XOR<UserUpdateWithoutUploadTasksAssignedInput, UserUncheckedUpdateWithoutUploadTasksAssignedInput>
    create: XOR<UserCreateWithoutUploadTasksAssignedInput, UserUncheckedCreateWithoutUploadTasksAssignedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutUploadTasksAssignedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutUploadTasksAssignedInput, UserUncheckedUpdateWithoutUploadTasksAssignedInput>
  }

  export type UserUpdateWithoutUploadTasksAssignedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutUploadTasksAssignedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutUploadTasksAssignedByInput = {
    update: XOR<UserUpdateWithoutUploadTasksAssignedByInput, UserUncheckedUpdateWithoutUploadTasksAssignedByInput>
    create: XOR<UserCreateWithoutUploadTasksAssignedByInput, UserUncheckedCreateWithoutUploadTasksAssignedByInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutUploadTasksAssignedByInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutUploadTasksAssignedByInput, UserUncheckedUpdateWithoutUploadTasksAssignedByInput>
  }

  export type UserUpdateWithoutUploadTasksAssignedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutUploadTasksAssignedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutUploadTasksCreatedInput = {
    update: XOR<UserUpdateWithoutUploadTasksCreatedInput, UserUncheckedUpdateWithoutUploadTasksCreatedInput>
    create: XOR<UserCreateWithoutUploadTasksCreatedInput, UserUncheckedCreateWithoutUploadTasksCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutUploadTasksCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutUploadTasksCreatedInput, UserUncheckedUpdateWithoutUploadTasksCreatedInput>
  }

  export type UserUpdateWithoutUploadTasksCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutUploadTasksCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutMeetingAgendaItemUploadTasksInput = {
    update: XOR<OrganizationUpdateWithoutMeetingAgendaItemUploadTasksInput, OrganizationUncheckedUpdateWithoutMeetingAgendaItemUploadTasksInput>
    create: XOR<OrganizationCreateWithoutMeetingAgendaItemUploadTasksInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemUploadTasksInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutMeetingAgendaItemUploadTasksInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutMeetingAgendaItemUploadTasksInput, OrganizationUncheckedUpdateWithoutMeetingAgendaItemUploadTasksInput>
  }

  export type OrganizationUpdateWithoutMeetingAgendaItemUploadTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutMeetingAgendaItemUploadTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type MeetingAgendaItemCreateWithoutAttachmentsInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    section: MeetingAgendaSectionCreateNestedOneWithoutItemsInput
    presenter?: UserCreateNestedOneWithoutAgendaItemsPresentedInput
    createdBy: UserCreateNestedOneWithoutAgendaItemsCreatedInput
    organization?: OrganizationCreateNestedOneWithoutMeetingAgendaItemsInput
    uploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemUncheckedCreateWithoutAttachmentsInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAgendaItemInput
  }

  export type MeetingAgendaItemCreateOrConnectWithoutAttachmentsInput = {
    where: MeetingAgendaItemWhereUniqueInput
    create: XOR<MeetingAgendaItemCreateWithoutAttachmentsInput, MeetingAgendaItemUncheckedCreateWithoutAttachmentsInput>
  }

  export type UserCreateWithoutAgendaAttachmentsUploadedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAgendaAttachmentsUploadedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAgendaAttachmentsUploadedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAgendaAttachmentsUploadedInput, UserUncheckedCreateWithoutAgendaAttachmentsUploadedInput>
  }

  export type UserCreateWithoutAgendaAttachmentsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutAgendaAttachmentsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutAgendaAttachmentsCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutAgendaAttachmentsCreatedInput, UserUncheckedCreateWithoutAgendaAttachmentsCreatedInput>
  }

  export type OrganizationCreateWithoutMeetingAgendaItemAttachmentsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutMeetingAgendaItemAttachmentsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutMeetingAgendaItemAttachmentsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutMeetingAgendaItemAttachmentsInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemAttachmentsInput>
  }

  export type MeetingAgendaItemUpsertWithoutAttachmentsInput = {
    update: XOR<MeetingAgendaItemUpdateWithoutAttachmentsInput, MeetingAgendaItemUncheckedUpdateWithoutAttachmentsInput>
    create: XOR<MeetingAgendaItemCreateWithoutAttachmentsInput, MeetingAgendaItemUncheckedCreateWithoutAttachmentsInput>
    where?: MeetingAgendaItemWhereInput
  }

  export type MeetingAgendaItemUpdateToOneWithWhereWithoutAttachmentsInput = {
    where?: MeetingAgendaItemWhereInput
    data: XOR<MeetingAgendaItemUpdateWithoutAttachmentsInput, MeetingAgendaItemUncheckedUpdateWithoutAttachmentsInput>
  }

  export type MeetingAgendaItemUpdateWithoutAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    section?: MeetingAgendaSectionUpdateOneRequiredWithoutItemsNestedInput
    presenter?: UserUpdateOneWithoutAgendaItemsPresentedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaItemsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemsNestedInput
    uploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateWithoutAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemNestedInput
  }

  export type UserUpsertWithoutAgendaAttachmentsUploadedInput = {
    update: XOR<UserUpdateWithoutAgendaAttachmentsUploadedInput, UserUncheckedUpdateWithoutAgendaAttachmentsUploadedInput>
    create: XOR<UserCreateWithoutAgendaAttachmentsUploadedInput, UserUncheckedCreateWithoutAgendaAttachmentsUploadedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAgendaAttachmentsUploadedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAgendaAttachmentsUploadedInput, UserUncheckedUpdateWithoutAgendaAttachmentsUploadedInput>
  }

  export type UserUpdateWithoutAgendaAttachmentsUploadedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAgendaAttachmentsUploadedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutAgendaAttachmentsCreatedInput = {
    update: XOR<UserUpdateWithoutAgendaAttachmentsCreatedInput, UserUncheckedUpdateWithoutAgendaAttachmentsCreatedInput>
    create: XOR<UserCreateWithoutAgendaAttachmentsCreatedInput, UserUncheckedCreateWithoutAgendaAttachmentsCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutAgendaAttachmentsCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutAgendaAttachmentsCreatedInput, UserUncheckedUpdateWithoutAgendaAttachmentsCreatedInput>
  }

  export type UserUpdateWithoutAgendaAttachmentsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutAgendaAttachmentsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutMeetingAgendaItemAttachmentsInput = {
    update: XOR<OrganizationUpdateWithoutMeetingAgendaItemAttachmentsInput, OrganizationUncheckedUpdateWithoutMeetingAgendaItemAttachmentsInput>
    create: XOR<OrganizationCreateWithoutMeetingAgendaItemAttachmentsInput, OrganizationUncheckedCreateWithoutMeetingAgendaItemAttachmentsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutMeetingAgendaItemAttachmentsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutMeetingAgendaItemAttachmentsInput, OrganizationUncheckedUpdateWithoutMeetingAgendaItemAttachmentsInput>
  }

  export type OrganizationUpdateWithoutMeetingAgendaItemAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutMeetingAgendaItemAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type MeetingCreateWithoutAttachmentsInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeCreateNestedManyWithoutMeetingInput
    series?: MeetingSeriesCreateNestedOneWithoutMeetingsInput
    creator: UserCreateNestedOneWithoutMeetingsCreatedInput
    outlookBindings?: OutlookMeetingBindingCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionCreateNestedManyWithoutMeetingInput
  }

  export type MeetingUncheckedCreateWithoutAttachmentsInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    attendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutMeetingInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    externalAttendees?: MeetingExternalAttendeeUncheckedCreateNestedManyWithoutMeetingInput
    outlookBindings?: OutlookMeetingBindingUncheckedCreateNestedManyWithoutMeetingInput
    agendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutMeetingInput
  }

  export type MeetingCreateOrConnectWithoutAttachmentsInput = {
    where: MeetingWhereUniqueInput
    create: XOR<MeetingCreateWithoutAttachmentsInput, MeetingUncheckedCreateWithoutAttachmentsInput>
  }

  export type UserCreateWithoutMeetingAttachmentsUploadedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingAttachmentsUploadedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingAttachmentsUploadedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingAttachmentsUploadedInput, UserUncheckedCreateWithoutMeetingAttachmentsUploadedInput>
  }

  export type UserCreateWithoutMeetingAttachmentsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutMeetingAttachmentsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutMeetingAttachmentsCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutMeetingAttachmentsCreatedInput, UserUncheckedCreateWithoutMeetingAttachmentsCreatedInput>
  }

  export type OrganizationCreateWithoutMeetingAttachmentsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutMeetingAttachmentsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutMeetingAttachmentsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutMeetingAttachmentsInput, OrganizationUncheckedCreateWithoutMeetingAttachmentsInput>
  }

  export type MeetingUpsertWithoutAttachmentsInput = {
    update: XOR<MeetingUpdateWithoutAttachmentsInput, MeetingUncheckedUpdateWithoutAttachmentsInput>
    create: XOR<MeetingCreateWithoutAttachmentsInput, MeetingUncheckedCreateWithoutAttachmentsInput>
    where?: MeetingWhereInput
  }

  export type MeetingUpdateToOneWithWhereWithoutAttachmentsInput = {
    where?: MeetingWhereInput
    data: XOR<MeetingUpdateWithoutAttachmentsInput, MeetingUncheckedUpdateWithoutAttachmentsInput>
  }

  export type MeetingUpdateWithoutAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput
    series?: MeetingSeriesUpdateOneWithoutMeetingsNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateWithoutAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type UserUpsertWithoutMeetingAttachmentsUploadedInput = {
    update: XOR<UserUpdateWithoutMeetingAttachmentsUploadedInput, UserUncheckedUpdateWithoutMeetingAttachmentsUploadedInput>
    create: XOR<UserCreateWithoutMeetingAttachmentsUploadedInput, UserUncheckedCreateWithoutMeetingAttachmentsUploadedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingAttachmentsUploadedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingAttachmentsUploadedInput, UserUncheckedUpdateWithoutMeetingAttachmentsUploadedInput>
  }

  export type UserUpdateWithoutMeetingAttachmentsUploadedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingAttachmentsUploadedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutMeetingAttachmentsCreatedInput = {
    update: XOR<UserUpdateWithoutMeetingAttachmentsCreatedInput, UserUncheckedUpdateWithoutMeetingAttachmentsCreatedInput>
    create: XOR<UserCreateWithoutMeetingAttachmentsCreatedInput, UserUncheckedCreateWithoutMeetingAttachmentsCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutMeetingAttachmentsCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutMeetingAttachmentsCreatedInput, UserUncheckedUpdateWithoutMeetingAttachmentsCreatedInput>
  }

  export type UserUpdateWithoutMeetingAttachmentsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutMeetingAttachmentsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type OrganizationUpsertWithoutMeetingAttachmentsInput = {
    update: XOR<OrganizationUpdateWithoutMeetingAttachmentsInput, OrganizationUncheckedUpdateWithoutMeetingAttachmentsInput>
    create: XOR<OrganizationCreateWithoutMeetingAttachmentsInput, OrganizationUncheckedCreateWithoutMeetingAttachmentsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutMeetingAttachmentsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutMeetingAttachmentsInput, OrganizationUncheckedUpdateWithoutMeetingAttachmentsInput>
  }

  export type OrganizationUpdateWithoutMeetingAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutMeetingAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type UserCreateWithoutNotificationsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutNotificationsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutNotificationsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutNotificationsInput, UserUncheckedCreateWithoutNotificationsInput>
  }

  export type UserUpsertWithoutNotificationsInput = {
    update: XOR<UserUpdateWithoutNotificationsInput, UserUncheckedUpdateWithoutNotificationsInput>
    create: XOR<UserCreateWithoutNotificationsInput, UserUncheckedCreateWithoutNotificationsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutNotificationsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutNotificationsInput, UserUncheckedUpdateWithoutNotificationsInput>
  }

  export type UserUpdateWithoutNotificationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutNotificationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type NotificationLogCreateWithoutTemplateInput = {
    id?: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    recipient: UserCreateNestedOneWithoutNotificationLogsInput
  }

  export type NotificationLogUncheckedCreateWithoutTemplateInput = {
    id?: string
    recipientId: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationLogCreateOrConnectWithoutTemplateInput = {
    where: NotificationLogWhereUniqueInput
    create: XOR<NotificationLogCreateWithoutTemplateInput, NotificationLogUncheckedCreateWithoutTemplateInput>
  }

  export type NotificationLogCreateManyTemplateInputEnvelope = {
    data: NotificationLogCreateManyTemplateInput | NotificationLogCreateManyTemplateInput[]
    skipDuplicates?: boolean
  }

  export type NotificationLogUpsertWithWhereUniqueWithoutTemplateInput = {
    where: NotificationLogWhereUniqueInput
    update: XOR<NotificationLogUpdateWithoutTemplateInput, NotificationLogUncheckedUpdateWithoutTemplateInput>
    create: XOR<NotificationLogCreateWithoutTemplateInput, NotificationLogUncheckedCreateWithoutTemplateInput>
  }

  export type NotificationLogUpdateWithWhereUniqueWithoutTemplateInput = {
    where: NotificationLogWhereUniqueInput
    data: XOR<NotificationLogUpdateWithoutTemplateInput, NotificationLogUncheckedUpdateWithoutTemplateInput>
  }

  export type NotificationLogUpdateManyWithWhereWithoutTemplateInput = {
    where: NotificationLogScalarWhereInput
    data: XOR<NotificationLogUpdateManyMutationInput, NotificationLogUncheckedUpdateManyWithoutTemplateInput>
  }

  export type UserCreateWithoutNotificationLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutNotificationLogsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutNotificationLogsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutNotificationLogsInput, UserUncheckedCreateWithoutNotificationLogsInput>
  }

  export type NotificationTemplateCreateWithoutLogsInput = {
    id?: string
    code: string
    name: string
    description?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    template: string
    variables?: NotificationTemplateCreatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: $Enums.NotificationPriority
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationTemplateUncheckedCreateWithoutLogsInput = {
    id?: string
    code: string
    name: string
    description?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    template: string
    variables?: NotificationTemplateCreatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: $Enums.NotificationPriority
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationTemplateCreateOrConnectWithoutLogsInput = {
    where: NotificationTemplateWhereUniqueInput
    create: XOR<NotificationTemplateCreateWithoutLogsInput, NotificationTemplateUncheckedCreateWithoutLogsInput>
  }

  export type UserUpsertWithoutNotificationLogsInput = {
    update: XOR<UserUpdateWithoutNotificationLogsInput, UserUncheckedUpdateWithoutNotificationLogsInput>
    create: XOR<UserCreateWithoutNotificationLogsInput, UserUncheckedCreateWithoutNotificationLogsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutNotificationLogsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutNotificationLogsInput, UserUncheckedUpdateWithoutNotificationLogsInput>
  }

  export type UserUpdateWithoutNotificationLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutNotificationLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type NotificationTemplateUpsertWithoutLogsInput = {
    update: XOR<NotificationTemplateUpdateWithoutLogsInput, NotificationTemplateUncheckedUpdateWithoutLogsInput>
    create: XOR<NotificationTemplateCreateWithoutLogsInput, NotificationTemplateUncheckedCreateWithoutLogsInput>
    where?: NotificationTemplateWhereInput
  }

  export type NotificationTemplateUpdateToOneWithWhereWithoutLogsInput = {
    where?: NotificationTemplateWhereInput
    data: XOR<NotificationTemplateUpdateWithoutLogsInput, NotificationTemplateUncheckedUpdateWithoutLogsInput>
  }

  export type NotificationTemplateUpdateWithoutLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    template?: StringFieldUpdateOperationsInput | string
    variables?: NotificationTemplateUpdatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationTemplateUncheckedUpdateWithoutLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    template?: StringFieldUpdateOperationsInput | string
    variables?: NotificationTemplateUpdatevariablesInput | string[]
    example?: NullableJsonNullValueInput | InputJsonValue
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type M365UserActivityChangeCreateWithoutUserInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    executionId: string
    field: $Enums.M365UserActivityChangeField
    previousValue?: string | null
    currentValue?: string | null
  }

  export type M365UserActivityChangeUncheckedCreateWithoutUserInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    executionId: string
    field: $Enums.M365UserActivityChangeField
    previousValue?: string | null
    currentValue?: string | null
  }

  export type M365UserActivityChangeCreateOrConnectWithoutUserInput = {
    where: M365UserActivityChangeWhereUniqueInput
    create: XOR<M365UserActivityChangeCreateWithoutUserInput, M365UserActivityChangeUncheckedCreateWithoutUserInput>
  }

  export type M365UserActivityChangeCreateManyUserInputEnvelope = {
    data: M365UserActivityChangeCreateManyUserInput | M365UserActivityChangeCreateManyUserInput[]
    skipDuplicates?: boolean
  }

  export type M365UserActivityChangeUpsertWithWhereUniqueWithoutUserInput = {
    where: M365UserActivityChangeWhereUniqueInput
    update: XOR<M365UserActivityChangeUpdateWithoutUserInput, M365UserActivityChangeUncheckedUpdateWithoutUserInput>
    create: XOR<M365UserActivityChangeCreateWithoutUserInput, M365UserActivityChangeUncheckedCreateWithoutUserInput>
  }

  export type M365UserActivityChangeUpdateWithWhereUniqueWithoutUserInput = {
    where: M365UserActivityChangeWhereUniqueInput
    data: XOR<M365UserActivityChangeUpdateWithoutUserInput, M365UserActivityChangeUncheckedUpdateWithoutUserInput>
  }

  export type M365UserActivityChangeUpdateManyWithWhereWithoutUserInput = {
    where: M365UserActivityChangeScalarWhereInput
    data: XOR<M365UserActivityChangeUpdateManyMutationInput, M365UserActivityChangeUncheckedUpdateManyWithoutUserInput>
  }

  export type M365UserActivityChangeScalarWhereInput = {
    AND?: M365UserActivityChangeScalarWhereInput | M365UserActivityChangeScalarWhereInput[]
    OR?: M365UserActivityChangeScalarWhereInput[]
    NOT?: M365UserActivityChangeScalarWhereInput | M365UserActivityChangeScalarWhereInput[]
    id?: UuidFilter<"M365UserActivityChange"> | string
    organizationId?: UuidFilter<"M365UserActivityChange"> | string
    createdAt?: DateTimeFilter<"M365UserActivityChange"> | Date | string
    userId?: UuidFilter<"M365UserActivityChange"> | string
    executionId?: UuidFilter<"M365UserActivityChange"> | string
    field?: EnumM365UserActivityChangeFieldFilter<"M365UserActivityChange"> | $Enums.M365UserActivityChangeField
    previousValue?: StringNullableFilter<"M365UserActivityChange"> | string | null
    currentValue?: StringNullableFilter<"M365UserActivityChange"> | string | null
  }

  export type M365UserCreateWithoutChangesInput = {
    id?: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    graphUserId: string
    userPrincipalName: string
    displayName?: string | null
    mail?: string | null
    department?: string | null
    jobTitle?: string | null
    accountEnabled: boolean
    hasLicense: boolean
    accountCreatedAt?: Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: Date | string | null
    lastNonInteractiveSignInDateTime?: Date | string | null
    lastEmailActivity?: Date | string | null
    lastOneDriveActivity?: Date | string | null
    lastTeamsActivity?: Date | string | null
    lastSharePointActivity?: Date | string | null
    lastAnyActivity?: Date | string | null
    daysInactive?: number | null
    firstSeenInExecutionId: string
    lastSeenInExecutionId: string
  }

  export type M365UserUncheckedCreateWithoutChangesInput = {
    id?: string
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    graphUserId: string
    userPrincipalName: string
    displayName?: string | null
    mail?: string | null
    department?: string | null
    jobTitle?: string | null
    accountEnabled: boolean
    hasLicense: boolean
    accountCreatedAt?: Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: Date | string | null
    lastNonInteractiveSignInDateTime?: Date | string | null
    lastEmailActivity?: Date | string | null
    lastOneDriveActivity?: Date | string | null
    lastTeamsActivity?: Date | string | null
    lastSharePointActivity?: Date | string | null
    lastAnyActivity?: Date | string | null
    daysInactive?: number | null
    firstSeenInExecutionId: string
    lastSeenInExecutionId: string
  }

  export type M365UserCreateOrConnectWithoutChangesInput = {
    where: M365UserWhereUniqueInput
    create: XOR<M365UserCreateWithoutChangesInput, M365UserUncheckedCreateWithoutChangesInput>
  }

  export type M365UserUpsertWithoutChangesInput = {
    update: XOR<M365UserUpdateWithoutChangesInput, M365UserUncheckedUpdateWithoutChangesInput>
    create: XOR<M365UserCreateWithoutChangesInput, M365UserUncheckedCreateWithoutChangesInput>
    where?: M365UserWhereInput
  }

  export type M365UserUpdateToOneWithWhereWithoutChangesInput = {
    where?: M365UserWhereInput
    data: XOR<M365UserUpdateWithoutChangesInput, M365UserUncheckedUpdateWithoutChangesInput>
  }

  export type M365UserUpdateWithoutChangesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    graphUserId?: StringFieldUpdateOperationsInput | string
    userPrincipalName?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    mail?: NullableStringFieldUpdateOperationsInput | string | null
    department?: NullableStringFieldUpdateOperationsInput | string | null
    jobTitle?: NullableStringFieldUpdateOperationsInput | string | null
    accountEnabled?: BoolFieldUpdateOperationsInput | boolean
    hasLicense?: BoolFieldUpdateOperationsInput | boolean
    accountCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastNonInteractiveSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastEmailActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastOneDriveActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastTeamsActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastSharePointActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastAnyActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    daysInactive?: NullableIntFieldUpdateOperationsInput | number | null
    firstSeenInExecutionId?: StringFieldUpdateOperationsInput | string
    lastSeenInExecutionId?: StringFieldUpdateOperationsInput | string
  }

  export type M365UserUncheckedUpdateWithoutChangesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    graphUserId?: StringFieldUpdateOperationsInput | string
    userPrincipalName?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    mail?: NullableStringFieldUpdateOperationsInput | string | null
    department?: NullableStringFieldUpdateOperationsInput | string | null
    jobTitle?: NullableStringFieldUpdateOperationsInput | string | null
    accountEnabled?: BoolFieldUpdateOperationsInput | boolean
    hasLicense?: BoolFieldUpdateOperationsInput | boolean
    accountCreatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    licenses?: JsonNullValueInput | InputJsonValue
    lastSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastNonInteractiveSignInDateTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastEmailActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastOneDriveActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastTeamsActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastSharePointActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastAnyActivity?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    daysInactive?: NullableIntFieldUpdateOperationsInput | number | null
    firstSeenInExecutionId?: StringFieldUpdateOperationsInput | string
    lastSeenInExecutionId?: StringFieldUpdateOperationsInput | string
  }

  export type OrganizationCreateWithoutGradeConfigsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutGradeConfigsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutGradeConfigsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutGradeConfigsInput, OrganizationUncheckedCreateWithoutGradeConfigsInput>
  }

  export type PerformanceCycleCreateWithoutGradeConfigInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutGradeConfigInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutGradeConfigInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutGradeConfigInput, PerformanceCycleUncheckedCreateWithoutGradeConfigInput>
  }

  export type PerformanceCycleCreateManyGradeConfigInputEnvelope = {
    data: PerformanceCycleCreateManyGradeConfigInput | PerformanceCycleCreateManyGradeConfigInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationUpsertWithoutGradeConfigsInput = {
    update: XOR<OrganizationUpdateWithoutGradeConfigsInput, OrganizationUncheckedUpdateWithoutGradeConfigsInput>
    create: XOR<OrganizationCreateWithoutGradeConfigsInput, OrganizationUncheckedCreateWithoutGradeConfigsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutGradeConfigsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutGradeConfigsInput, OrganizationUncheckedUpdateWithoutGradeConfigsInput>
  }

  export type OrganizationUpdateWithoutGradeConfigsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutGradeConfigsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type PerformanceCycleUpsertWithWhereUniqueWithoutGradeConfigInput = {
    where: PerformanceCycleWhereUniqueInput
    update: XOR<PerformanceCycleUpdateWithoutGradeConfigInput, PerformanceCycleUncheckedUpdateWithoutGradeConfigInput>
    create: XOR<PerformanceCycleCreateWithoutGradeConfigInput, PerformanceCycleUncheckedCreateWithoutGradeConfigInput>
  }

  export type PerformanceCycleUpdateWithWhereUniqueWithoutGradeConfigInput = {
    where: PerformanceCycleWhereUniqueInput
    data: XOR<PerformanceCycleUpdateWithoutGradeConfigInput, PerformanceCycleUncheckedUpdateWithoutGradeConfigInput>
  }

  export type PerformanceCycleUpdateManyWithWhereWithoutGradeConfigInput = {
    where: PerformanceCycleScalarWhereInput
    data: XOR<PerformanceCycleUpdateManyMutationInput, PerformanceCycleUncheckedUpdateManyWithoutGradeConfigInput>
  }

  export type OrganizationCreateWithoutPerformanceCyclesInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutPerformanceCyclesInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutPerformanceCyclesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutPerformanceCyclesInput, OrganizationUncheckedCreateWithoutPerformanceCyclesInput>
  }

  export type GradeConfigCreateWithoutCyclesInput = {
    id?: string
    name: string
    description?: string | null
    grades: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization?: OrganizationCreateNestedOneWithoutGradeConfigsInput
  }

  export type GradeConfigUncheckedCreateWithoutCyclesInput = {
    id?: string
    name: string
    description?: string | null
    grades: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId?: string | null
  }

  export type GradeConfigCreateOrConnectWithoutCyclesInput = {
    where: GradeConfigWhereUniqueInput
    create: XOR<GradeConfigCreateWithoutCyclesInput, GradeConfigUncheckedCreateWithoutCyclesInput>
  }

  export type PerformanceCycleCreateWithoutChildCyclesInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutChildCyclesInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutChildCyclesInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutChildCyclesInput, PerformanceCycleUncheckedCreateWithoutChildCyclesInput>
  }

  export type PerformanceCycleCreateWithoutParentCycleInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutParentCycleInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutParentCycleInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutParentCycleInput, PerformanceCycleUncheckedCreateWithoutParentCycleInput>
  }

  export type PerformanceCycleCreateManyParentCycleInputEnvelope = {
    data: PerformanceCycleCreateManyParentCycleInput | PerformanceCycleCreateManyParentCycleInput[]
    skipDuplicates?: boolean
  }

  export type KpiAssignmentCreateWithoutCycleInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    parent?: KpiAssignmentCreateNestedOneWithoutChildrenInput
    children?: KpiAssignmentCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentUncheckedCreateWithoutCycleInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    parentId?: string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: KpiAssignmentUncheckedCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentUncheckedCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentCreateOrConnectWithoutCycleInput = {
    where: KpiAssignmentWhereUniqueInput
    create: XOR<KpiAssignmentCreateWithoutCycleInput, KpiAssignmentUncheckedCreateWithoutCycleInput>
  }

  export type KpiAssignmentCreateManyCycleInputEnvelope = {
    data: KpiAssignmentCreateManyCycleInput | KpiAssignmentCreateManyCycleInput[]
    skipDuplicates?: boolean
  }

  export type Evaluation360CreateWithoutCycleInput = {
    id?: string
    targetId: string
    status?: $Enums.Evaluation360Status
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    template?: Evaluation360TemplateCreateNestedOneWithoutEvaluationsInput
    tasks?: EvaluationTaskCreateNestedManyWithoutEvaluationInput
  }

  export type Evaluation360UncheckedCreateWithoutCycleInput = {
    id?: string
    targetId: string
    status?: $Enums.Evaluation360Status
    templateId?: string | null
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    tasks?: EvaluationTaskUncheckedCreateNestedManyWithoutEvaluationInput
  }

  export type Evaluation360CreateOrConnectWithoutCycleInput = {
    where: Evaluation360WhereUniqueInput
    create: XOR<Evaluation360CreateWithoutCycleInput, Evaluation360UncheckedCreateWithoutCycleInput>
  }

  export type Evaluation360CreateManyCycleInputEnvelope = {
    data: Evaluation360CreateManyCycleInput | Evaluation360CreateManyCycleInput[]
    skipDuplicates?: boolean
  }

  export type PerformanceResultCreateWithoutCycleInput = {
    id?: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceResultsInput
    adjustmentLogs?: GradeAdjustmentLogCreateNestedManyWithoutResultInput
  }

  export type PerformanceResultUncheckedCreateWithoutCycleInput = {
    id?: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    adjustmentLogs?: GradeAdjustmentLogUncheckedCreateNestedManyWithoutResultInput
  }

  export type PerformanceResultCreateOrConnectWithoutCycleInput = {
    where: PerformanceResultWhereUniqueInput
    create: XOR<PerformanceResultCreateWithoutCycleInput, PerformanceResultUncheckedCreateWithoutCycleInput>
  }

  export type PerformanceResultCreateManyCycleInputEnvelope = {
    data: PerformanceResultCreateManyCycleInput | PerformanceResultCreateManyCycleInput[]
    skipDuplicates?: boolean
  }

  export type StrategicObjectiveCreateWithoutCycleInput = {
    id?: string
    seq?: number
    name: string
    description?: string | null
    departmentId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    assignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutObjectiveInput
  }

  export type StrategicObjectiveUncheckedCreateWithoutCycleInput = {
    id?: string
    seq?: number
    name: string
    description?: string | null
    departmentId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    assignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutObjectiveInput
  }

  export type StrategicObjectiveCreateOrConnectWithoutCycleInput = {
    where: StrategicObjectiveWhereUniqueInput
    create: XOR<StrategicObjectiveCreateWithoutCycleInput, StrategicObjectiveUncheckedCreateWithoutCycleInput>
  }

  export type StrategicObjectiveCreateManyCycleInputEnvelope = {
    data: StrategicObjectiveCreateManyCycleInput | StrategicObjectiveCreateManyCycleInput[]
    skipDuplicates?: boolean
  }

  export type Evaluation360TemplateCreateWithoutCycleInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organization?: OrganizationCreateNestedOneWithoutEvaluation360TemplatesInput
    evaluations?: Evaluation360CreateNestedManyWithoutTemplateInput
  }

  export type Evaluation360TemplateUncheckedCreateWithoutCycleInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: string | null
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutTemplateInput
  }

  export type Evaluation360TemplateCreateOrConnectWithoutCycleInput = {
    where: Evaluation360TemplateWhereUniqueInput
    create: XOR<Evaluation360TemplateCreateWithoutCycleInput, Evaluation360TemplateUncheckedCreateWithoutCycleInput>
  }

  export type Evaluation360TemplateCreateManyCycleInputEnvelope = {
    data: Evaluation360TemplateCreateManyCycleInput | Evaluation360TemplateCreateManyCycleInput[]
    skipDuplicates?: boolean
  }

  export type OrganizationUpsertWithoutPerformanceCyclesInput = {
    update: XOR<OrganizationUpdateWithoutPerformanceCyclesInput, OrganizationUncheckedUpdateWithoutPerformanceCyclesInput>
    create: XOR<OrganizationCreateWithoutPerformanceCyclesInput, OrganizationUncheckedCreateWithoutPerformanceCyclesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutPerformanceCyclesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutPerformanceCyclesInput, OrganizationUncheckedUpdateWithoutPerformanceCyclesInput>
  }

  export type OrganizationUpdateWithoutPerformanceCyclesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutPerformanceCyclesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type GradeConfigUpsertWithoutCyclesInput = {
    update: XOR<GradeConfigUpdateWithoutCyclesInput, GradeConfigUncheckedUpdateWithoutCyclesInput>
    create: XOR<GradeConfigCreateWithoutCyclesInput, GradeConfigUncheckedCreateWithoutCyclesInput>
    where?: GradeConfigWhereInput
  }

  export type GradeConfigUpdateToOneWithWhereWithoutCyclesInput = {
    where?: GradeConfigWhereInput
    data: XOR<GradeConfigUpdateWithoutCyclesInput, GradeConfigUncheckedUpdateWithoutCyclesInput>
  }

  export type GradeConfigUpdateWithoutCyclesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneWithoutGradeConfigsNestedInput
  }

  export type GradeConfigUncheckedUpdateWithoutCyclesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PerformanceCycleUpsertWithoutChildCyclesInput = {
    update: XOR<PerformanceCycleUpdateWithoutChildCyclesInput, PerformanceCycleUncheckedUpdateWithoutChildCyclesInput>
    create: XOR<PerformanceCycleCreateWithoutChildCyclesInput, PerformanceCycleUncheckedCreateWithoutChildCyclesInput>
    where?: PerformanceCycleWhereInput
  }

  export type PerformanceCycleUpdateToOneWithWhereWithoutChildCyclesInput = {
    where?: PerformanceCycleWhereInput
    data: XOR<PerformanceCycleUpdateWithoutChildCyclesInput, PerformanceCycleUncheckedUpdateWithoutChildCyclesInput>
  }

  export type PerformanceCycleUpdateWithoutChildCyclesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutChildCyclesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUpsertWithWhereUniqueWithoutParentCycleInput = {
    where: PerformanceCycleWhereUniqueInput
    update: XOR<PerformanceCycleUpdateWithoutParentCycleInput, PerformanceCycleUncheckedUpdateWithoutParentCycleInput>
    create: XOR<PerformanceCycleCreateWithoutParentCycleInput, PerformanceCycleUncheckedCreateWithoutParentCycleInput>
  }

  export type PerformanceCycleUpdateWithWhereUniqueWithoutParentCycleInput = {
    where: PerformanceCycleWhereUniqueInput
    data: XOR<PerformanceCycleUpdateWithoutParentCycleInput, PerformanceCycleUncheckedUpdateWithoutParentCycleInput>
  }

  export type PerformanceCycleUpdateManyWithWhereWithoutParentCycleInput = {
    where: PerformanceCycleScalarWhereInput
    data: XOR<PerformanceCycleUpdateManyMutationInput, PerformanceCycleUncheckedUpdateManyWithoutParentCycleInput>
  }

  export type KpiAssignmentUpsertWithWhereUniqueWithoutCycleInput = {
    where: KpiAssignmentWhereUniqueInput
    update: XOR<KpiAssignmentUpdateWithoutCycleInput, KpiAssignmentUncheckedUpdateWithoutCycleInput>
    create: XOR<KpiAssignmentCreateWithoutCycleInput, KpiAssignmentUncheckedCreateWithoutCycleInput>
  }

  export type KpiAssignmentUpdateWithWhereUniqueWithoutCycleInput = {
    where: KpiAssignmentWhereUniqueInput
    data: XOR<KpiAssignmentUpdateWithoutCycleInput, KpiAssignmentUncheckedUpdateWithoutCycleInput>
  }

  export type KpiAssignmentUpdateManyWithWhereWithoutCycleInput = {
    where: KpiAssignmentScalarWhereInput
    data: XOR<KpiAssignmentUpdateManyMutationInput, KpiAssignmentUncheckedUpdateManyWithoutCycleInput>
  }

  export type KpiAssignmentScalarWhereInput = {
    AND?: KpiAssignmentScalarWhereInput | KpiAssignmentScalarWhereInput[]
    OR?: KpiAssignmentScalarWhereInput[]
    NOT?: KpiAssignmentScalarWhereInput | KpiAssignmentScalarWhereInput[]
    id?: UuidFilter<"KpiAssignment"> | string
    cycleId?: UuidFilter<"KpiAssignment"> | string
    employeeId?: UuidFilter<"KpiAssignment"> | string
    name?: StringFilter<"KpiAssignment"> | string
    description?: StringNullableFilter<"KpiAssignment"> | string | null
    weight?: DecimalFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string
    unit?: StringNullableFilter<"KpiAssignment"> | string | null
    baseTarget?: StringNullableFilter<"KpiAssignment"> | string | null
    stretchTarget?: StringNullableFilter<"KpiAssignment"> | string | null
    targetValue?: DecimalNullableFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string | null
    parentId?: UuidNullableFilter<"KpiAssignment"> | string | null
    seq?: IntNullableFilter<"KpiAssignment"> | number | null
    status?: EnumKpiAssignmentStatusFilter<"KpiAssignment"> | $Enums.KpiAssignmentStatus
    maturityScore?: DecimalNullableFilter<"KpiAssignment"> | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFilter<"KpiAssignment"> | Date | string
    updatedAt?: DateTimeFilter<"KpiAssignment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KpiAssignment"> | Date | string | null
  }

  export type Evaluation360UpsertWithWhereUniqueWithoutCycleInput = {
    where: Evaluation360WhereUniqueInput
    update: XOR<Evaluation360UpdateWithoutCycleInput, Evaluation360UncheckedUpdateWithoutCycleInput>
    create: XOR<Evaluation360CreateWithoutCycleInput, Evaluation360UncheckedCreateWithoutCycleInput>
  }

  export type Evaluation360UpdateWithWhereUniqueWithoutCycleInput = {
    where: Evaluation360WhereUniqueInput
    data: XOR<Evaluation360UpdateWithoutCycleInput, Evaluation360UncheckedUpdateWithoutCycleInput>
  }

  export type Evaluation360UpdateManyWithWhereWithoutCycleInput = {
    where: Evaluation360ScalarWhereInput
    data: XOR<Evaluation360UpdateManyMutationInput, Evaluation360UncheckedUpdateManyWithoutCycleInput>
  }

  export type Evaluation360ScalarWhereInput = {
    AND?: Evaluation360ScalarWhereInput | Evaluation360ScalarWhereInput[]
    OR?: Evaluation360ScalarWhereInput[]
    NOT?: Evaluation360ScalarWhereInput | Evaluation360ScalarWhereInput[]
    id?: UuidFilter<"Evaluation360"> | string
    cycleId?: UuidFilter<"Evaluation360"> | string
    targetId?: UuidFilter<"Evaluation360"> | string
    status?: EnumEvaluation360StatusFilter<"Evaluation360"> | $Enums.Evaluation360Status
    templateId?: UuidNullableFilter<"Evaluation360"> | string | null
    deadline?: DateTimeFilter<"Evaluation360"> | Date | string
    minEvaluators?: IntNullableFilter<"Evaluation360"> | number | null
    createdBy?: UuidFilter<"Evaluation360"> | string
    createdAt?: DateTimeFilter<"Evaluation360"> | Date | string
    updatedAt?: DateTimeFilter<"Evaluation360"> | Date | string
    deletedAt?: DateTimeNullableFilter<"Evaluation360"> | Date | string | null
  }

  export type PerformanceResultUpsertWithWhereUniqueWithoutCycleInput = {
    where: PerformanceResultWhereUniqueInput
    update: XOR<PerformanceResultUpdateWithoutCycleInput, PerformanceResultUncheckedUpdateWithoutCycleInput>
    create: XOR<PerformanceResultCreateWithoutCycleInput, PerformanceResultUncheckedCreateWithoutCycleInput>
  }

  export type PerformanceResultUpdateWithWhereUniqueWithoutCycleInput = {
    where: PerformanceResultWhereUniqueInput
    data: XOR<PerformanceResultUpdateWithoutCycleInput, PerformanceResultUncheckedUpdateWithoutCycleInput>
  }

  export type PerformanceResultUpdateManyWithWhereWithoutCycleInput = {
    where: PerformanceResultScalarWhereInput
    data: XOR<PerformanceResultUpdateManyMutationInput, PerformanceResultUncheckedUpdateManyWithoutCycleInput>
  }

  export type StrategicObjectiveUpsertWithWhereUniqueWithoutCycleInput = {
    where: StrategicObjectiveWhereUniqueInput
    update: XOR<StrategicObjectiveUpdateWithoutCycleInput, StrategicObjectiveUncheckedUpdateWithoutCycleInput>
    create: XOR<StrategicObjectiveCreateWithoutCycleInput, StrategicObjectiveUncheckedCreateWithoutCycleInput>
  }

  export type StrategicObjectiveUpdateWithWhereUniqueWithoutCycleInput = {
    where: StrategicObjectiveWhereUniqueInput
    data: XOR<StrategicObjectiveUpdateWithoutCycleInput, StrategicObjectiveUncheckedUpdateWithoutCycleInput>
  }

  export type StrategicObjectiveUpdateManyWithWhereWithoutCycleInput = {
    where: StrategicObjectiveScalarWhereInput
    data: XOR<StrategicObjectiveUpdateManyMutationInput, StrategicObjectiveUncheckedUpdateManyWithoutCycleInput>
  }

  export type StrategicObjectiveScalarWhereInput = {
    AND?: StrategicObjectiveScalarWhereInput | StrategicObjectiveScalarWhereInput[]
    OR?: StrategicObjectiveScalarWhereInput[]
    NOT?: StrategicObjectiveScalarWhereInput | StrategicObjectiveScalarWhereInput[]
    id?: UuidFilter<"StrategicObjective"> | string
    cycleId?: UuidFilter<"StrategicObjective"> | string
    seq?: IntFilter<"StrategicObjective"> | number
    name?: StringFilter<"StrategicObjective"> | string
    description?: StringNullableFilter<"StrategicObjective"> | string | null
    departmentId?: UuidNullableFilter<"StrategicObjective"> | string | null
    createdBy?: UuidFilter<"StrategicObjective"> | string
    createdAt?: DateTimeFilter<"StrategicObjective"> | Date | string
    updatedAt?: DateTimeFilter<"StrategicObjective"> | Date | string
    deletedAt?: DateTimeNullableFilter<"StrategicObjective"> | Date | string | null
  }

  export type Evaluation360TemplateUpsertWithWhereUniqueWithoutCycleInput = {
    where: Evaluation360TemplateWhereUniqueInput
    update: XOR<Evaluation360TemplateUpdateWithoutCycleInput, Evaluation360TemplateUncheckedUpdateWithoutCycleInput>
    create: XOR<Evaluation360TemplateCreateWithoutCycleInput, Evaluation360TemplateUncheckedCreateWithoutCycleInput>
  }

  export type Evaluation360TemplateUpdateWithWhereUniqueWithoutCycleInput = {
    where: Evaluation360TemplateWhereUniqueInput
    data: XOR<Evaluation360TemplateUpdateWithoutCycleInput, Evaluation360TemplateUncheckedUpdateWithoutCycleInput>
  }

  export type Evaluation360TemplateUpdateManyWithWhereWithoutCycleInput = {
    where: Evaluation360TemplateScalarWhereInput
    data: XOR<Evaluation360TemplateUpdateManyMutationInput, Evaluation360TemplateUncheckedUpdateManyWithoutCycleInput>
  }

  export type PerformanceCycleCreateWithoutResultsInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutResultsInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutResultsInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutResultsInput, PerformanceCycleUncheckedCreateWithoutResultsInput>
  }

  export type OrganizationCreateWithoutPerformanceResultsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutPerformanceResultsInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    evaluation360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutPerformanceResultsInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutPerformanceResultsInput, OrganizationUncheckedCreateWithoutPerformanceResultsInput>
  }

  export type GradeAdjustmentLogCreateWithoutResultInput = {
    id?: string
    previousGradeCode: string
    newGradeCode: string
    reason: string
    adjustedBy: string
    adjustedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type GradeAdjustmentLogUncheckedCreateWithoutResultInput = {
    id?: string
    previousGradeCode: string
    newGradeCode: string
    reason: string
    adjustedBy: string
    adjustedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type GradeAdjustmentLogCreateOrConnectWithoutResultInput = {
    where: GradeAdjustmentLogWhereUniqueInput
    create: XOR<GradeAdjustmentLogCreateWithoutResultInput, GradeAdjustmentLogUncheckedCreateWithoutResultInput>
  }

  export type GradeAdjustmentLogCreateManyResultInputEnvelope = {
    data: GradeAdjustmentLogCreateManyResultInput | GradeAdjustmentLogCreateManyResultInput[]
    skipDuplicates?: boolean
  }

  export type PerformanceCycleUpsertWithoutResultsInput = {
    update: XOR<PerformanceCycleUpdateWithoutResultsInput, PerformanceCycleUncheckedUpdateWithoutResultsInput>
    create: XOR<PerformanceCycleCreateWithoutResultsInput, PerformanceCycleUncheckedCreateWithoutResultsInput>
    where?: PerformanceCycleWhereInput
  }

  export type PerformanceCycleUpdateToOneWithWhereWithoutResultsInput = {
    where?: PerformanceCycleWhereInput
    data: XOR<PerformanceCycleUpdateWithoutResultsInput, PerformanceCycleUncheckedUpdateWithoutResultsInput>
  }

  export type PerformanceCycleUpdateWithoutResultsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutResultsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type OrganizationUpsertWithoutPerformanceResultsInput = {
    update: XOR<OrganizationUpdateWithoutPerformanceResultsInput, OrganizationUncheckedUpdateWithoutPerformanceResultsInput>
    create: XOR<OrganizationCreateWithoutPerformanceResultsInput, OrganizationUncheckedCreateWithoutPerformanceResultsInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutPerformanceResultsInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutPerformanceResultsInput, OrganizationUncheckedUpdateWithoutPerformanceResultsInput>
  }

  export type OrganizationUpdateWithoutPerformanceResultsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutPerformanceResultsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type GradeAdjustmentLogUpsertWithWhereUniqueWithoutResultInput = {
    where: GradeAdjustmentLogWhereUniqueInput
    update: XOR<GradeAdjustmentLogUpdateWithoutResultInput, GradeAdjustmentLogUncheckedUpdateWithoutResultInput>
    create: XOR<GradeAdjustmentLogCreateWithoutResultInput, GradeAdjustmentLogUncheckedCreateWithoutResultInput>
  }

  export type GradeAdjustmentLogUpdateWithWhereUniqueWithoutResultInput = {
    where: GradeAdjustmentLogWhereUniqueInput
    data: XOR<GradeAdjustmentLogUpdateWithoutResultInput, GradeAdjustmentLogUncheckedUpdateWithoutResultInput>
  }

  export type GradeAdjustmentLogUpdateManyWithWhereWithoutResultInput = {
    where: GradeAdjustmentLogScalarWhereInput
    data: XOR<GradeAdjustmentLogUpdateManyMutationInput, GradeAdjustmentLogUncheckedUpdateManyWithoutResultInput>
  }

  export type GradeAdjustmentLogScalarWhereInput = {
    AND?: GradeAdjustmentLogScalarWhereInput | GradeAdjustmentLogScalarWhereInput[]
    OR?: GradeAdjustmentLogScalarWhereInput[]
    NOT?: GradeAdjustmentLogScalarWhereInput | GradeAdjustmentLogScalarWhereInput[]
    id?: UuidFilter<"GradeAdjustmentLog"> | string
    resultId?: UuidFilter<"GradeAdjustmentLog"> | string
    previousGradeCode?: StringFilter<"GradeAdjustmentLog"> | string
    newGradeCode?: StringFilter<"GradeAdjustmentLog"> | string
    reason?: StringFilter<"GradeAdjustmentLog"> | string
    adjustedBy?: UuidFilter<"GradeAdjustmentLog"> | string
    adjustedAt?: DateTimeFilter<"GradeAdjustmentLog"> | Date | string
    deletedAt?: DateTimeNullableFilter<"GradeAdjustmentLog"> | Date | string | null
  }

  export type PerformanceCycleCreateWithoutKpiAssignmentsInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutKpiAssignmentsInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutKpiAssignmentsInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutKpiAssignmentsInput, PerformanceCycleUncheckedCreateWithoutKpiAssignmentsInput>
  }

  export type KpiAssignmentCreateWithoutChildrenInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutKpiAssignmentsInput
    parent?: KpiAssignmentCreateNestedOneWithoutChildrenInput
    assessment?: KpiAssessmentCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentUncheckedCreateWithoutChildrenInput = {
    id?: string
    cycleId: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    parentId?: string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    assessment?: KpiAssessmentUncheckedCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentCreateOrConnectWithoutChildrenInput = {
    where: KpiAssignmentWhereUniqueInput
    create: XOR<KpiAssignmentCreateWithoutChildrenInput, KpiAssignmentUncheckedCreateWithoutChildrenInput>
  }

  export type KpiAssignmentCreateWithoutParentInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutKpiAssignmentsInput
    children?: KpiAssignmentCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentUncheckedCreateWithoutParentInput = {
    id?: string
    cycleId: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: KpiAssignmentUncheckedCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentUncheckedCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentCreateOrConnectWithoutParentInput = {
    where: KpiAssignmentWhereUniqueInput
    create: XOR<KpiAssignmentCreateWithoutParentInput, KpiAssignmentUncheckedCreateWithoutParentInput>
  }

  export type KpiAssignmentCreateManyParentInputEnvelope = {
    data: KpiAssignmentCreateManyParentInput | KpiAssignmentCreateManyParentInput[]
    skipDuplicates?: boolean
  }

  export type KpiAssessmentCreateWithoutAssignmentInput = {
    id?: string
    status?: $Enums.KpiAssessmentStatus
    selfScore?: Decimal | DecimalJsLike | number | string | null
    completionNote?: string | null
    selfComment?: string | null
    selfEvaluatedAt?: Date | string | null
    managerScore?: Decimal | DecimalJsLike | number | string | null
    managerComment?: string | null
    managerId?: string | null
    managerEvaluatedAt?: Date | string | null
    finalScore?: Decimal | DecimalJsLike | number | string | null
    deletedAt?: Date | string | null
  }

  export type KpiAssessmentUncheckedCreateWithoutAssignmentInput = {
    id?: string
    status?: $Enums.KpiAssessmentStatus
    selfScore?: Decimal | DecimalJsLike | number | string | null
    completionNote?: string | null
    selfComment?: string | null
    selfEvaluatedAt?: Date | string | null
    managerScore?: Decimal | DecimalJsLike | number | string | null
    managerComment?: string | null
    managerId?: string | null
    managerEvaluatedAt?: Date | string | null
    finalScore?: Decimal | DecimalJsLike | number | string | null
    deletedAt?: Date | string | null
  }

  export type KpiAssessmentCreateOrConnectWithoutAssignmentInput = {
    where: KpiAssessmentWhereUniqueInput
    create: XOR<KpiAssessmentCreateWithoutAssignmentInput, KpiAssessmentUncheckedCreateWithoutAssignmentInput>
  }

  export type KpiDependencyCreateWithoutSourceAssignmentInput = {
    id?: string
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    targetAssignment?: KpiAssignmentCreateNestedOneWithoutIncomingDependenciesInput
  }

  export type KpiDependencyUncheckedCreateWithoutSourceAssignmentInput = {
    id?: string
    targetAssignmentId?: string | null
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KpiDependencyCreateOrConnectWithoutSourceAssignmentInput = {
    where: KpiDependencyWhereUniqueInput
    create: XOR<KpiDependencyCreateWithoutSourceAssignmentInput, KpiDependencyUncheckedCreateWithoutSourceAssignmentInput>
  }

  export type KpiDependencyCreateManySourceAssignmentInputEnvelope = {
    data: KpiDependencyCreateManySourceAssignmentInput | KpiDependencyCreateManySourceAssignmentInput[]
    skipDuplicates?: boolean
  }

  export type KpiDependencyCreateWithoutTargetAssignmentInput = {
    id?: string
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    sourceAssignment: KpiAssignmentCreateNestedOneWithoutOutgoingDependenciesInput
  }

  export type KpiDependencyUncheckedCreateWithoutTargetAssignmentInput = {
    id?: string
    sourceAssignmentId: string
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KpiDependencyCreateOrConnectWithoutTargetAssignmentInput = {
    where: KpiDependencyWhereUniqueInput
    create: XOR<KpiDependencyCreateWithoutTargetAssignmentInput, KpiDependencyUncheckedCreateWithoutTargetAssignmentInput>
  }

  export type KpiDependencyCreateManyTargetAssignmentInputEnvelope = {
    data: KpiDependencyCreateManyTargetAssignmentInput | KpiDependencyCreateManyTargetAssignmentInput[]
    skipDuplicates?: boolean
  }

  export type PerformanceCycleUpsertWithoutKpiAssignmentsInput = {
    update: XOR<PerformanceCycleUpdateWithoutKpiAssignmentsInput, PerformanceCycleUncheckedUpdateWithoutKpiAssignmentsInput>
    create: XOR<PerformanceCycleCreateWithoutKpiAssignmentsInput, PerformanceCycleUncheckedCreateWithoutKpiAssignmentsInput>
    where?: PerformanceCycleWhereInput
  }

  export type PerformanceCycleUpdateToOneWithWhereWithoutKpiAssignmentsInput = {
    where?: PerformanceCycleWhereInput
    data: XOR<PerformanceCycleUpdateWithoutKpiAssignmentsInput, PerformanceCycleUncheckedUpdateWithoutKpiAssignmentsInput>
  }

  export type PerformanceCycleUpdateWithoutKpiAssignmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutKpiAssignmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type KpiAssignmentUpsertWithoutChildrenInput = {
    update: XOR<KpiAssignmentUpdateWithoutChildrenInput, KpiAssignmentUncheckedUpdateWithoutChildrenInput>
    create: XOR<KpiAssignmentCreateWithoutChildrenInput, KpiAssignmentUncheckedCreateWithoutChildrenInput>
    where?: KpiAssignmentWhereInput
  }

  export type KpiAssignmentUpdateToOneWithWhereWithoutChildrenInput = {
    where?: KpiAssignmentWhereInput
    data: XOR<KpiAssignmentUpdateWithoutChildrenInput, KpiAssignmentUncheckedUpdateWithoutChildrenInput>
  }

  export type KpiAssignmentUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutKpiAssignmentsNestedInput
    parent?: KpiAssignmentUpdateOneWithoutChildrenNestedInput
    assessment?: KpiAssessmentUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assessment?: KpiAssessmentUncheckedUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUpsertWithWhereUniqueWithoutParentInput = {
    where: KpiAssignmentWhereUniqueInput
    update: XOR<KpiAssignmentUpdateWithoutParentInput, KpiAssignmentUncheckedUpdateWithoutParentInput>
    create: XOR<KpiAssignmentCreateWithoutParentInput, KpiAssignmentUncheckedCreateWithoutParentInput>
  }

  export type KpiAssignmentUpdateWithWhereUniqueWithoutParentInput = {
    where: KpiAssignmentWhereUniqueInput
    data: XOR<KpiAssignmentUpdateWithoutParentInput, KpiAssignmentUncheckedUpdateWithoutParentInput>
  }

  export type KpiAssignmentUpdateManyWithWhereWithoutParentInput = {
    where: KpiAssignmentScalarWhereInput
    data: XOR<KpiAssignmentUpdateManyMutationInput, KpiAssignmentUncheckedUpdateManyWithoutParentInput>
  }

  export type KpiAssessmentUpsertWithoutAssignmentInput = {
    update: XOR<KpiAssessmentUpdateWithoutAssignmentInput, KpiAssessmentUncheckedUpdateWithoutAssignmentInput>
    create: XOR<KpiAssessmentCreateWithoutAssignmentInput, KpiAssessmentUncheckedCreateWithoutAssignmentInput>
    where?: KpiAssessmentWhereInput
  }

  export type KpiAssessmentUpdateToOneWithWhereWithoutAssignmentInput = {
    where?: KpiAssessmentWhereInput
    data: XOR<KpiAssessmentUpdateWithoutAssignmentInput, KpiAssessmentUncheckedUpdateWithoutAssignmentInput>
  }

  export type KpiAssessmentUpdateWithoutAssignmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumKpiAssessmentStatusFieldUpdateOperationsInput | $Enums.KpiAssessmentStatus
    selfScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    completionNote?: NullableStringFieldUpdateOperationsInput | string | null
    selfComment?: NullableStringFieldUpdateOperationsInput | string | null
    selfEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managerScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    managerComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    managerEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiAssessmentUncheckedUpdateWithoutAssignmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumKpiAssessmentStatusFieldUpdateOperationsInput | $Enums.KpiAssessmentStatus
    selfScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    completionNote?: NullableStringFieldUpdateOperationsInput | string | null
    selfComment?: NullableStringFieldUpdateOperationsInput | string | null
    selfEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    managerScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    managerComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    managerEvaluatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiDependencyUpsertWithWhereUniqueWithoutSourceAssignmentInput = {
    where: KpiDependencyWhereUniqueInput
    update: XOR<KpiDependencyUpdateWithoutSourceAssignmentInput, KpiDependencyUncheckedUpdateWithoutSourceAssignmentInput>
    create: XOR<KpiDependencyCreateWithoutSourceAssignmentInput, KpiDependencyUncheckedCreateWithoutSourceAssignmentInput>
  }

  export type KpiDependencyUpdateWithWhereUniqueWithoutSourceAssignmentInput = {
    where: KpiDependencyWhereUniqueInput
    data: XOR<KpiDependencyUpdateWithoutSourceAssignmentInput, KpiDependencyUncheckedUpdateWithoutSourceAssignmentInput>
  }

  export type KpiDependencyUpdateManyWithWhereWithoutSourceAssignmentInput = {
    where: KpiDependencyScalarWhereInput
    data: XOR<KpiDependencyUpdateManyMutationInput, KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentInput>
  }

  export type KpiDependencyScalarWhereInput = {
    AND?: KpiDependencyScalarWhereInput | KpiDependencyScalarWhereInput[]
    OR?: KpiDependencyScalarWhereInput[]
    NOT?: KpiDependencyScalarWhereInput | KpiDependencyScalarWhereInput[]
    id?: UuidFilter<"KpiDependency"> | string
    sourceAssignmentId?: UuidFilter<"KpiDependency"> | string
    targetAssignmentId?: UuidNullableFilter<"KpiDependency"> | string | null
    targetUserId?: UuidFilter<"KpiDependency"> | string
    description?: StringNullableFilter<"KpiDependency"> | string | null
    status?: EnumKpiDependencyStatusFilter<"KpiDependency"> | $Enums.KpiDependencyStatus
    rejectionReason?: StringNullableFilter<"KpiDependency"> | string | null
    confirmedAt?: DateTimeNullableFilter<"KpiDependency"> | Date | string | null
    createdAt?: DateTimeFilter<"KpiDependency"> | Date | string
    updatedAt?: DateTimeFilter<"KpiDependency"> | Date | string
    deletedAt?: DateTimeNullableFilter<"KpiDependency"> | Date | string | null
  }

  export type KpiDependencyUpsertWithWhereUniqueWithoutTargetAssignmentInput = {
    where: KpiDependencyWhereUniqueInput
    update: XOR<KpiDependencyUpdateWithoutTargetAssignmentInput, KpiDependencyUncheckedUpdateWithoutTargetAssignmentInput>
    create: XOR<KpiDependencyCreateWithoutTargetAssignmentInput, KpiDependencyUncheckedCreateWithoutTargetAssignmentInput>
  }

  export type KpiDependencyUpdateWithWhereUniqueWithoutTargetAssignmentInput = {
    where: KpiDependencyWhereUniqueInput
    data: XOR<KpiDependencyUpdateWithoutTargetAssignmentInput, KpiDependencyUncheckedUpdateWithoutTargetAssignmentInput>
  }

  export type KpiDependencyUpdateManyWithWhereWithoutTargetAssignmentInput = {
    where: KpiDependencyScalarWhereInput
    data: XOR<KpiDependencyUpdateManyMutationInput, KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentInput>
  }

  export type KpiAssignmentCreateWithoutOutgoingDependenciesInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutKpiAssignmentsInput
    parent?: KpiAssignmentCreateNestedOneWithoutChildrenInput
    children?: KpiAssignmentCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentCreateNestedOneWithoutAssignmentInput
    incomingDependencies?: KpiDependencyCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentUncheckedCreateWithoutOutgoingDependenciesInput = {
    id?: string
    cycleId: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    parentId?: string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: KpiAssignmentUncheckedCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentUncheckedCreateNestedOneWithoutAssignmentInput
    incomingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentCreateOrConnectWithoutOutgoingDependenciesInput = {
    where: KpiAssignmentWhereUniqueInput
    create: XOR<KpiAssignmentCreateWithoutOutgoingDependenciesInput, KpiAssignmentUncheckedCreateWithoutOutgoingDependenciesInput>
  }

  export type KpiAssignmentCreateWithoutIncomingDependenciesInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutKpiAssignmentsInput
    parent?: KpiAssignmentCreateNestedOneWithoutChildrenInput
    children?: KpiAssignmentCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyCreateNestedManyWithoutSourceAssignmentInput
  }

  export type KpiAssignmentUncheckedCreateWithoutIncomingDependenciesInput = {
    id?: string
    cycleId: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    parentId?: string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: KpiAssignmentUncheckedCreateNestedManyWithoutParentInput
    assessment?: KpiAssessmentUncheckedCreateNestedOneWithoutAssignmentInput
    outgoingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutSourceAssignmentInput
  }

  export type KpiAssignmentCreateOrConnectWithoutIncomingDependenciesInput = {
    where: KpiAssignmentWhereUniqueInput
    create: XOR<KpiAssignmentCreateWithoutIncomingDependenciesInput, KpiAssignmentUncheckedCreateWithoutIncomingDependenciesInput>
  }

  export type KpiAssignmentUpsertWithoutOutgoingDependenciesInput = {
    update: XOR<KpiAssignmentUpdateWithoutOutgoingDependenciesInput, KpiAssignmentUncheckedUpdateWithoutOutgoingDependenciesInput>
    create: XOR<KpiAssignmentCreateWithoutOutgoingDependenciesInput, KpiAssignmentUncheckedCreateWithoutOutgoingDependenciesInput>
    where?: KpiAssignmentWhereInput
  }

  export type KpiAssignmentUpdateToOneWithWhereWithoutOutgoingDependenciesInput = {
    where?: KpiAssignmentWhereInput
    data: XOR<KpiAssignmentUpdateWithoutOutgoingDependenciesInput, KpiAssignmentUncheckedUpdateWithoutOutgoingDependenciesInput>
  }

  export type KpiAssignmentUpdateWithoutOutgoingDependenciesInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutKpiAssignmentsNestedInput
    parent?: KpiAssignmentUpdateOneWithoutChildrenNestedInput
    children?: KpiAssignmentUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUpdateOneWithoutAssignmentNestedInput
    incomingDependencies?: KpiDependencyUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateWithoutOutgoingDependenciesInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: KpiAssignmentUncheckedUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUncheckedUpdateOneWithoutAssignmentNestedInput
    incomingDependencies?: KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUpsertWithoutIncomingDependenciesInput = {
    update: XOR<KpiAssignmentUpdateWithoutIncomingDependenciesInput, KpiAssignmentUncheckedUpdateWithoutIncomingDependenciesInput>
    create: XOR<KpiAssignmentCreateWithoutIncomingDependenciesInput, KpiAssignmentUncheckedCreateWithoutIncomingDependenciesInput>
    where?: KpiAssignmentWhereInput
  }

  export type KpiAssignmentUpdateToOneWithWhereWithoutIncomingDependenciesInput = {
    where?: KpiAssignmentWhereInput
    data: XOR<KpiAssignmentUpdateWithoutIncomingDependenciesInput, KpiAssignmentUncheckedUpdateWithoutIncomingDependenciesInput>
  }

  export type KpiAssignmentUpdateWithoutIncomingDependenciesInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutKpiAssignmentsNestedInput
    parent?: KpiAssignmentUpdateOneWithoutChildrenNestedInput
    children?: KpiAssignmentUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUpdateManyWithoutSourceAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateWithoutIncomingDependenciesInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: KpiAssignmentUncheckedUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUncheckedUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentNestedInput
  }

  export type KpiAssignmentCreateWithoutAssessmentInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutKpiAssignmentsInput
    parent?: KpiAssignmentCreateNestedOneWithoutChildrenInput
    children?: KpiAssignmentCreateNestedManyWithoutParentInput
    outgoingDependencies?: KpiDependencyCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentUncheckedCreateWithoutAssessmentInput = {
    id?: string
    cycleId: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    parentId?: string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    children?: KpiAssignmentUncheckedCreateNestedManyWithoutParentInput
    outgoingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutSourceAssignmentInput
    incomingDependencies?: KpiDependencyUncheckedCreateNestedManyWithoutTargetAssignmentInput
  }

  export type KpiAssignmentCreateOrConnectWithoutAssessmentInput = {
    where: KpiAssignmentWhereUniqueInput
    create: XOR<KpiAssignmentCreateWithoutAssessmentInput, KpiAssignmentUncheckedCreateWithoutAssessmentInput>
  }

  export type KpiAssignmentUpsertWithoutAssessmentInput = {
    update: XOR<KpiAssignmentUpdateWithoutAssessmentInput, KpiAssignmentUncheckedUpdateWithoutAssessmentInput>
    create: XOR<KpiAssignmentCreateWithoutAssessmentInput, KpiAssignmentUncheckedCreateWithoutAssessmentInput>
    where?: KpiAssignmentWhereInput
  }

  export type KpiAssignmentUpdateToOneWithWhereWithoutAssessmentInput = {
    where?: KpiAssignmentWhereInput
    data: XOR<KpiAssignmentUpdateWithoutAssessmentInput, KpiAssignmentUncheckedUpdateWithoutAssessmentInput>
  }

  export type KpiAssignmentUpdateWithoutAssessmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutKpiAssignmentsNestedInput
    parent?: KpiAssignmentUpdateOneWithoutChildrenNestedInput
    children?: KpiAssignmentUpdateManyWithoutParentNestedInput
    outgoingDependencies?: KpiDependencyUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateWithoutAssessmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: KpiAssignmentUncheckedUpdateManyWithoutParentNestedInput
    outgoingDependencies?: KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type PerformanceCycleCreateWithoutEvaluationsInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutEvaluationsInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutEvaluationsInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutEvaluationsInput, PerformanceCycleUncheckedCreateWithoutEvaluationsInput>
  }

  export type Evaluation360TemplateCreateWithoutEvaluationsInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    cycle?: PerformanceCycleCreateNestedOneWithoutE360TemplatesInput
    organization?: OrganizationCreateNestedOneWithoutEvaluation360TemplatesInput
  }

  export type Evaluation360TemplateUncheckedCreateWithoutEvaluationsInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycleId?: string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: string | null
  }

  export type Evaluation360TemplateCreateOrConnectWithoutEvaluationsInput = {
    where: Evaluation360TemplateWhereUniqueInput
    create: XOR<Evaluation360TemplateCreateWithoutEvaluationsInput, Evaluation360TemplateUncheckedCreateWithoutEvaluationsInput>
  }

  export type EvaluationTaskCreateWithoutEvaluationInput = {
    id?: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status?: $Enums.EvaluationTaskStatus
    isAnonymous?: boolean
    submittedAt?: Date | string | null
    createdAt?: Date | string
    deletedAt?: Date | string | null
    responses?: EvaluationResponseCreateNestedManyWithoutTaskInput
  }

  export type EvaluationTaskUncheckedCreateWithoutEvaluationInput = {
    id?: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status?: $Enums.EvaluationTaskStatus
    isAnonymous?: boolean
    submittedAt?: Date | string | null
    createdAt?: Date | string
    deletedAt?: Date | string | null
    responses?: EvaluationResponseUncheckedCreateNestedManyWithoutTaskInput
  }

  export type EvaluationTaskCreateOrConnectWithoutEvaluationInput = {
    where: EvaluationTaskWhereUniqueInput
    create: XOR<EvaluationTaskCreateWithoutEvaluationInput, EvaluationTaskUncheckedCreateWithoutEvaluationInput>
  }

  export type EvaluationTaskCreateManyEvaluationInputEnvelope = {
    data: EvaluationTaskCreateManyEvaluationInput | EvaluationTaskCreateManyEvaluationInput[]
    skipDuplicates?: boolean
  }

  export type PerformanceCycleUpsertWithoutEvaluationsInput = {
    update: XOR<PerformanceCycleUpdateWithoutEvaluationsInput, PerformanceCycleUncheckedUpdateWithoutEvaluationsInput>
    create: XOR<PerformanceCycleCreateWithoutEvaluationsInput, PerformanceCycleUncheckedCreateWithoutEvaluationsInput>
    where?: PerformanceCycleWhereInput
  }

  export type PerformanceCycleUpdateToOneWithWhereWithoutEvaluationsInput = {
    where?: PerformanceCycleWhereInput
    data: XOR<PerformanceCycleUpdateWithoutEvaluationsInput, PerformanceCycleUncheckedUpdateWithoutEvaluationsInput>
  }

  export type PerformanceCycleUpdateWithoutEvaluationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutEvaluationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type Evaluation360TemplateUpsertWithoutEvaluationsInput = {
    update: XOR<Evaluation360TemplateUpdateWithoutEvaluationsInput, Evaluation360TemplateUncheckedUpdateWithoutEvaluationsInput>
    create: XOR<Evaluation360TemplateCreateWithoutEvaluationsInput, Evaluation360TemplateUncheckedCreateWithoutEvaluationsInput>
    where?: Evaluation360TemplateWhereInput
  }

  export type Evaluation360TemplateUpdateToOneWithWhereWithoutEvaluationsInput = {
    where?: Evaluation360TemplateWhereInput
    data: XOR<Evaluation360TemplateUpdateWithoutEvaluationsInput, Evaluation360TemplateUncheckedUpdateWithoutEvaluationsInput>
  }

  export type Evaluation360TemplateUpdateWithoutEvaluationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    cycle?: PerformanceCycleUpdateOneWithoutE360TemplatesNestedInput
    organization?: OrganizationUpdateOneWithoutEvaluation360TemplatesNestedInput
  }

  export type Evaluation360TemplateUncheckedUpdateWithoutEvaluationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycleId?: NullableStringFieldUpdateOperationsInput | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type EvaluationTaskUpsertWithWhereUniqueWithoutEvaluationInput = {
    where: EvaluationTaskWhereUniqueInput
    update: XOR<EvaluationTaskUpdateWithoutEvaluationInput, EvaluationTaskUncheckedUpdateWithoutEvaluationInput>
    create: XOR<EvaluationTaskCreateWithoutEvaluationInput, EvaluationTaskUncheckedCreateWithoutEvaluationInput>
  }

  export type EvaluationTaskUpdateWithWhereUniqueWithoutEvaluationInput = {
    where: EvaluationTaskWhereUniqueInput
    data: XOR<EvaluationTaskUpdateWithoutEvaluationInput, EvaluationTaskUncheckedUpdateWithoutEvaluationInput>
  }

  export type EvaluationTaskUpdateManyWithWhereWithoutEvaluationInput = {
    where: EvaluationTaskScalarWhereInput
    data: XOR<EvaluationTaskUpdateManyMutationInput, EvaluationTaskUncheckedUpdateManyWithoutEvaluationInput>
  }

  export type EvaluationTaskScalarWhereInput = {
    AND?: EvaluationTaskScalarWhereInput | EvaluationTaskScalarWhereInput[]
    OR?: EvaluationTaskScalarWhereInput[]
    NOT?: EvaluationTaskScalarWhereInput | EvaluationTaskScalarWhereInput[]
    id?: UuidFilter<"EvaluationTask"> | string
    evaluationId?: UuidFilter<"EvaluationTask"> | string
    evaluatorId?: UuidFilter<"EvaluationTask"> | string
    relationType?: EnumRelationTypeFilter<"EvaluationTask"> | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFilter<"EvaluationTask"> | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFilter<"EvaluationTask"> | boolean
    submittedAt?: DateTimeNullableFilter<"EvaluationTask"> | Date | string | null
    createdAt?: DateTimeFilter<"EvaluationTask"> | Date | string
    deletedAt?: DateTimeNullableFilter<"EvaluationTask"> | Date | string | null
  }

  export type Evaluation360CreateWithoutTasksInput = {
    id?: string
    targetId: string
    status?: $Enums.Evaluation360Status
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutEvaluationsInput
    template?: Evaluation360TemplateCreateNestedOneWithoutEvaluationsInput
  }

  export type Evaluation360UncheckedCreateWithoutTasksInput = {
    id?: string
    cycleId: string
    targetId: string
    status?: $Enums.Evaluation360Status
    templateId?: string | null
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type Evaluation360CreateOrConnectWithoutTasksInput = {
    where: Evaluation360WhereUniqueInput
    create: XOR<Evaluation360CreateWithoutTasksInput, Evaluation360UncheckedCreateWithoutTasksInput>
  }

  export type EvaluationResponseCreateWithoutTaskInput = {
    id?: string
    dimension: string
    score: Decimal | DecimalJsLike | number | string
    comment?: string | null
    deletedAt?: Date | string | null
  }

  export type EvaluationResponseUncheckedCreateWithoutTaskInput = {
    id?: string
    dimension: string
    score: Decimal | DecimalJsLike | number | string
    comment?: string | null
    deletedAt?: Date | string | null
  }

  export type EvaluationResponseCreateOrConnectWithoutTaskInput = {
    where: EvaluationResponseWhereUniqueInput
    create: XOR<EvaluationResponseCreateWithoutTaskInput, EvaluationResponseUncheckedCreateWithoutTaskInput>
  }

  export type EvaluationResponseCreateManyTaskInputEnvelope = {
    data: EvaluationResponseCreateManyTaskInput | EvaluationResponseCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type Evaluation360UpsertWithoutTasksInput = {
    update: XOR<Evaluation360UpdateWithoutTasksInput, Evaluation360UncheckedUpdateWithoutTasksInput>
    create: XOR<Evaluation360CreateWithoutTasksInput, Evaluation360UncheckedCreateWithoutTasksInput>
    where?: Evaluation360WhereInput
  }

  export type Evaluation360UpdateToOneWithWhereWithoutTasksInput = {
    where?: Evaluation360WhereInput
    data: XOR<Evaluation360UpdateWithoutTasksInput, Evaluation360UncheckedUpdateWithoutTasksInput>
  }

  export type Evaluation360UpdateWithoutTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutEvaluationsNestedInput
    template?: Evaluation360TemplateUpdateOneWithoutEvaluationsNestedInput
  }

  export type Evaluation360UncheckedUpdateWithoutTasksInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationResponseUpsertWithWhereUniqueWithoutTaskInput = {
    where: EvaluationResponseWhereUniqueInput
    update: XOR<EvaluationResponseUpdateWithoutTaskInput, EvaluationResponseUncheckedUpdateWithoutTaskInput>
    create: XOR<EvaluationResponseCreateWithoutTaskInput, EvaluationResponseUncheckedCreateWithoutTaskInput>
  }

  export type EvaluationResponseUpdateWithWhereUniqueWithoutTaskInput = {
    where: EvaluationResponseWhereUniqueInput
    data: XOR<EvaluationResponseUpdateWithoutTaskInput, EvaluationResponseUncheckedUpdateWithoutTaskInput>
  }

  export type EvaluationResponseUpdateManyWithWhereWithoutTaskInput = {
    where: EvaluationResponseScalarWhereInput
    data: XOR<EvaluationResponseUpdateManyMutationInput, EvaluationResponseUncheckedUpdateManyWithoutTaskInput>
  }

  export type EvaluationResponseScalarWhereInput = {
    AND?: EvaluationResponseScalarWhereInput | EvaluationResponseScalarWhereInput[]
    OR?: EvaluationResponseScalarWhereInput[]
    NOT?: EvaluationResponseScalarWhereInput | EvaluationResponseScalarWhereInput[]
    id?: UuidFilter<"EvaluationResponse"> | string
    taskId?: UuidFilter<"EvaluationResponse"> | string
    dimension?: StringFilter<"EvaluationResponse"> | string
    score?: DecimalFilter<"EvaluationResponse"> | Decimal | DecimalJsLike | number | string
    comment?: StringNullableFilter<"EvaluationResponse"> | string | null
    deletedAt?: DateTimeNullableFilter<"EvaluationResponse"> | Date | string | null
  }

  export type EvaluationTaskCreateWithoutResponsesInput = {
    id?: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status?: $Enums.EvaluationTaskStatus
    isAnonymous?: boolean
    submittedAt?: Date | string | null
    createdAt?: Date | string
    deletedAt?: Date | string | null
    evaluation: Evaluation360CreateNestedOneWithoutTasksInput
  }

  export type EvaluationTaskUncheckedCreateWithoutResponsesInput = {
    id?: string
    evaluationId: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status?: $Enums.EvaluationTaskStatus
    isAnonymous?: boolean
    submittedAt?: Date | string | null
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type EvaluationTaskCreateOrConnectWithoutResponsesInput = {
    where: EvaluationTaskWhereUniqueInput
    create: XOR<EvaluationTaskCreateWithoutResponsesInput, EvaluationTaskUncheckedCreateWithoutResponsesInput>
  }

  export type EvaluationTaskUpsertWithoutResponsesInput = {
    update: XOR<EvaluationTaskUpdateWithoutResponsesInput, EvaluationTaskUncheckedUpdateWithoutResponsesInput>
    create: XOR<EvaluationTaskCreateWithoutResponsesInput, EvaluationTaskUncheckedCreateWithoutResponsesInput>
    where?: EvaluationTaskWhereInput
  }

  export type EvaluationTaskUpdateToOneWithWhereWithoutResponsesInput = {
    where?: EvaluationTaskWhereInput
    data: XOR<EvaluationTaskUpdateWithoutResponsesInput, EvaluationTaskUncheckedUpdateWithoutResponsesInput>
  }

  export type EvaluationTaskUpdateWithoutResponsesInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    evaluation?: Evaluation360UpdateOneRequiredWithoutTasksNestedInput
  }

  export type EvaluationTaskUncheckedUpdateWithoutResponsesInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluationId?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PerformanceResultCreateWithoutAdjustmentLogsInput = {
    id?: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutResultsInput
    organization: OrganizationCreateNestedOneWithoutPerformanceResultsInput
  }

  export type PerformanceResultUncheckedCreateWithoutAdjustmentLogsInput = {
    id?: string
    cycleId: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
  }

  export type PerformanceResultCreateOrConnectWithoutAdjustmentLogsInput = {
    where: PerformanceResultWhereUniqueInput
    create: XOR<PerformanceResultCreateWithoutAdjustmentLogsInput, PerformanceResultUncheckedCreateWithoutAdjustmentLogsInput>
  }

  export type PerformanceResultUpsertWithoutAdjustmentLogsInput = {
    update: XOR<PerformanceResultUpdateWithoutAdjustmentLogsInput, PerformanceResultUncheckedUpdateWithoutAdjustmentLogsInput>
    create: XOR<PerformanceResultCreateWithoutAdjustmentLogsInput, PerformanceResultUncheckedCreateWithoutAdjustmentLogsInput>
    where?: PerformanceResultWhereInput
  }

  export type PerformanceResultUpdateToOneWithWhereWithoutAdjustmentLogsInput = {
    where?: PerformanceResultWhereInput
    data: XOR<PerformanceResultUpdateWithoutAdjustmentLogsInput, PerformanceResultUncheckedUpdateWithoutAdjustmentLogsInput>
  }

  export type PerformanceResultUpdateWithoutAdjustmentLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutResultsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceResultsNestedInput
  }

  export type PerformanceResultUncheckedUpdateWithoutAdjustmentLogsInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type PerformanceCycleCreateWithoutStrategicObjectivesInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutStrategicObjectivesInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    e360Templates?: Evaluation360TemplateUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutStrategicObjectivesInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutStrategicObjectivesInput, PerformanceCycleUncheckedCreateWithoutStrategicObjectivesInput>
  }

  export type StrategicObjectiveAssignmentCreateWithoutObjectiveInput = {
    id?: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
    assignee: UserCreateNestedOneWithoutStrategicObjectiveAssignmentsInput
  }

  export type StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput = {
    id?: string
    assigneeId: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StrategicObjectiveAssignmentCreateOrConnectWithoutObjectiveInput = {
    where: StrategicObjectiveAssignmentWhereUniqueInput
    create: XOR<StrategicObjectiveAssignmentCreateWithoutObjectiveInput, StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput>
  }

  export type StrategicObjectiveAssignmentCreateManyObjectiveInputEnvelope = {
    data: StrategicObjectiveAssignmentCreateManyObjectiveInput | StrategicObjectiveAssignmentCreateManyObjectiveInput[]
    skipDuplicates?: boolean
  }

  export type PerformanceCycleUpsertWithoutStrategicObjectivesInput = {
    update: XOR<PerformanceCycleUpdateWithoutStrategicObjectivesInput, PerformanceCycleUncheckedUpdateWithoutStrategicObjectivesInput>
    create: XOR<PerformanceCycleCreateWithoutStrategicObjectivesInput, PerformanceCycleUncheckedCreateWithoutStrategicObjectivesInput>
    where?: PerformanceCycleWhereInput
  }

  export type PerformanceCycleUpdateToOneWithWhereWithoutStrategicObjectivesInput = {
    where?: PerformanceCycleWhereInput
    data: XOR<PerformanceCycleUpdateWithoutStrategicObjectivesInput, PerformanceCycleUncheckedUpdateWithoutStrategicObjectivesInput>
  }

  export type PerformanceCycleUpdateWithoutStrategicObjectivesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutStrategicObjectivesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type StrategicObjectiveAssignmentUpsertWithWhereUniqueWithoutObjectiveInput = {
    where: StrategicObjectiveAssignmentWhereUniqueInput
    update: XOR<StrategicObjectiveAssignmentUpdateWithoutObjectiveInput, StrategicObjectiveAssignmentUncheckedUpdateWithoutObjectiveInput>
    create: XOR<StrategicObjectiveAssignmentCreateWithoutObjectiveInput, StrategicObjectiveAssignmentUncheckedCreateWithoutObjectiveInput>
  }

  export type StrategicObjectiveAssignmentUpdateWithWhereUniqueWithoutObjectiveInput = {
    where: StrategicObjectiveAssignmentWhereUniqueInput
    data: XOR<StrategicObjectiveAssignmentUpdateWithoutObjectiveInput, StrategicObjectiveAssignmentUncheckedUpdateWithoutObjectiveInput>
  }

  export type StrategicObjectiveAssignmentUpdateManyWithWhereWithoutObjectiveInput = {
    where: StrategicObjectiveAssignmentScalarWhereInput
    data: XOR<StrategicObjectiveAssignmentUpdateManyMutationInput, StrategicObjectiveAssignmentUncheckedUpdateManyWithoutObjectiveInput>
  }

  export type StrategicObjectiveCreateWithoutAssignmentsInput = {
    id?: string
    seq?: number
    name: string
    description?: string | null
    departmentId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutStrategicObjectivesInput
  }

  export type StrategicObjectiveUncheckedCreateWithoutAssignmentsInput = {
    id?: string
    cycleId: string
    seq?: number
    name: string
    description?: string | null
    departmentId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StrategicObjectiveCreateOrConnectWithoutAssignmentsInput = {
    where: StrategicObjectiveWhereUniqueInput
    create: XOR<StrategicObjectiveCreateWithoutAssignmentsInput, StrategicObjectiveUncheckedCreateWithoutAssignmentsInput>
  }

  export type UserCreateWithoutStrategicObjectiveAssignmentsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutStrategicObjectiveAssignmentsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutStrategicObjectiveAssignmentsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutStrategicObjectiveAssignmentsInput, UserUncheckedCreateWithoutStrategicObjectiveAssignmentsInput>
  }

  export type StrategicObjectiveUpsertWithoutAssignmentsInput = {
    update: XOR<StrategicObjectiveUpdateWithoutAssignmentsInput, StrategicObjectiveUncheckedUpdateWithoutAssignmentsInput>
    create: XOR<StrategicObjectiveCreateWithoutAssignmentsInput, StrategicObjectiveUncheckedCreateWithoutAssignmentsInput>
    where?: StrategicObjectiveWhereInput
  }

  export type StrategicObjectiveUpdateToOneWithWhereWithoutAssignmentsInput = {
    where?: StrategicObjectiveWhereInput
    data: XOR<StrategicObjectiveUpdateWithoutAssignmentsInput, StrategicObjectiveUncheckedUpdateWithoutAssignmentsInput>
  }

  export type StrategicObjectiveUpdateWithoutAssignmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutStrategicObjectivesNestedInput
  }

  export type StrategicObjectiveUncheckedUpdateWithoutAssignmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserUpsertWithoutStrategicObjectiveAssignmentsInput = {
    update: XOR<UserUpdateWithoutStrategicObjectiveAssignmentsInput, UserUncheckedUpdateWithoutStrategicObjectiveAssignmentsInput>
    create: XOR<UserCreateWithoutStrategicObjectiveAssignmentsInput, UserUncheckedCreateWithoutStrategicObjectiveAssignmentsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutStrategicObjectiveAssignmentsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutStrategicObjectiveAssignmentsInput, UserUncheckedUpdateWithoutStrategicObjectiveAssignmentsInput>
  }

  export type UserUpdateWithoutStrategicObjectiveAssignmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutStrategicObjectiveAssignmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type PerformanceCycleCreateWithoutE360TemplatesInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organization: OrganizationCreateNestedOneWithoutPerformanceCyclesInput
    gradeConfig?: GradeConfigCreateNestedOneWithoutCyclesInput
    parentCycle?: PerformanceCycleCreateNestedOneWithoutChildCyclesInput
    childCycles?: PerformanceCycleCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360CreateNestedManyWithoutCycleInput
    results?: PerformanceResultCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleUncheckedCreateWithoutE360TemplatesInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
    childCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutParentCycleInput
    kpiAssignments?: KpiAssignmentUncheckedCreateNestedManyWithoutCycleInput
    evaluations?: Evaluation360UncheckedCreateNestedManyWithoutCycleInput
    results?: PerformanceResultUncheckedCreateNestedManyWithoutCycleInput
    strategicObjectives?: StrategicObjectiveUncheckedCreateNestedManyWithoutCycleInput
  }

  export type PerformanceCycleCreateOrConnectWithoutE360TemplatesInput = {
    where: PerformanceCycleWhereUniqueInput
    create: XOR<PerformanceCycleCreateWithoutE360TemplatesInput, PerformanceCycleUncheckedCreateWithoutE360TemplatesInput>
  }

  export type OrganizationCreateWithoutEvaluation360TemplatesInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    primaryRegion?: RegionCreateNestedOneWithoutPrimaryOrganizationsInput
    departments?: DepartmentCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationUncheckedCreateWithoutEvaluation360TemplatesInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    primaryRegionId?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    departments?: DepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    userDepartments?: UserDepartmentUncheckedCreateNestedManyWithoutOrganizationInput
    organizationRegions?: OrganizationRegionUncheckedCreateNestedManyWithoutOrganizationInput
    formDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    formWebhooks?: FormWebhookUncheckedCreateNestedManyWithoutOrganizationInput
    approvalDefinitions?: ApprovalDefinitionUncheckedCreateNestedManyWithoutOrganizationInput
    userRoles?: UserRoleUncheckedCreateNestedManyWithoutOrganizationInput
    performanceCycles?: PerformanceCycleUncheckedCreateNestedManyWithoutOrganizationInput
    gradeConfigs?: GradeConfigUncheckedCreateNestedManyWithoutOrganizationInput
    performanceResults?: PerformanceResultUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutOrganizationInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
    meetingAttachments?: MeetingAttachmentUncheckedCreateNestedManyWithoutOrganizationInput
  }

  export type OrganizationCreateOrConnectWithoutEvaluation360TemplatesInput = {
    where: OrganizationWhereUniqueInput
    create: XOR<OrganizationCreateWithoutEvaluation360TemplatesInput, OrganizationUncheckedCreateWithoutEvaluation360TemplatesInput>
  }

  export type Evaluation360CreateWithoutTemplateInput = {
    id?: string
    targetId: string
    status?: $Enums.Evaluation360Status
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycle: PerformanceCycleCreateNestedOneWithoutEvaluationsInput
    tasks?: EvaluationTaskCreateNestedManyWithoutEvaluationInput
  }

  export type Evaluation360UncheckedCreateWithoutTemplateInput = {
    id?: string
    cycleId: string
    targetId: string
    status?: $Enums.Evaluation360Status
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    tasks?: EvaluationTaskUncheckedCreateNestedManyWithoutEvaluationInput
  }

  export type Evaluation360CreateOrConnectWithoutTemplateInput = {
    where: Evaluation360WhereUniqueInput
    create: XOR<Evaluation360CreateWithoutTemplateInput, Evaluation360UncheckedCreateWithoutTemplateInput>
  }

  export type Evaluation360CreateManyTemplateInputEnvelope = {
    data: Evaluation360CreateManyTemplateInput | Evaluation360CreateManyTemplateInput[]
    skipDuplicates?: boolean
  }

  export type PerformanceCycleUpsertWithoutE360TemplatesInput = {
    update: XOR<PerformanceCycleUpdateWithoutE360TemplatesInput, PerformanceCycleUncheckedUpdateWithoutE360TemplatesInput>
    create: XOR<PerformanceCycleCreateWithoutE360TemplatesInput, PerformanceCycleUncheckedCreateWithoutE360TemplatesInput>
    where?: PerformanceCycleWhereInput
  }

  export type PerformanceCycleUpdateToOneWithWhereWithoutE360TemplatesInput = {
    where?: PerformanceCycleWhereInput
    data: XOR<PerformanceCycleUpdateWithoutE360TemplatesInput, PerformanceCycleUncheckedUpdateWithoutE360TemplatesInput>
  }

  export type PerformanceCycleUpdateWithoutE360TemplatesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutE360TemplatesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type OrganizationUpsertWithoutEvaluation360TemplatesInput = {
    update: XOR<OrganizationUpdateWithoutEvaluation360TemplatesInput, OrganizationUncheckedUpdateWithoutEvaluation360TemplatesInput>
    create: XOR<OrganizationCreateWithoutEvaluation360TemplatesInput, OrganizationUncheckedCreateWithoutEvaluation360TemplatesInput>
    where?: OrganizationWhereInput
  }

  export type OrganizationUpdateToOneWithWhereWithoutEvaluation360TemplatesInput = {
    where?: OrganizationWhereInput
    data: XOR<OrganizationUpdateWithoutEvaluation360TemplatesInput, OrganizationUncheckedUpdateWithoutEvaluation360TemplatesInput>
  }

  export type OrganizationUpdateWithoutEvaluation360TemplatesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    primaryRegion?: RegionUpdateOneWithoutPrimaryOrganizationsNestedInput
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutEvaluation360TemplatesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    primaryRegionId?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type Evaluation360UpsertWithWhereUniqueWithoutTemplateInput = {
    where: Evaluation360WhereUniqueInput
    update: XOR<Evaluation360UpdateWithoutTemplateInput, Evaluation360UncheckedUpdateWithoutTemplateInput>
    create: XOR<Evaluation360CreateWithoutTemplateInput, Evaluation360UncheckedCreateWithoutTemplateInput>
  }

  export type Evaluation360UpdateWithWhereUniqueWithoutTemplateInput = {
    where: Evaluation360WhereUniqueInput
    data: XOR<Evaluation360UpdateWithoutTemplateInput, Evaluation360UncheckedUpdateWithoutTemplateInput>
  }

  export type Evaluation360UpdateManyWithWhereWithoutTemplateInput = {
    where: Evaluation360ScalarWhereInput
    data: XOR<Evaluation360UpdateManyMutationInput, Evaluation360UncheckedUpdateManyWithoutTemplateInput>
  }

  export type UserCreateWithoutSiteCheckpointsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutSiteCheckpointsCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutSiteCheckpointsCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutSiteCheckpointsCreatedInput, UserUncheckedCreateWithoutSiteCheckpointsCreatedInput>
  }

  export type SiteAttendanceEventCreateWithoutCheckpointInput = {
    id?: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
    user: UserCreateNestedOneWithoutSiteAttendanceEventsInput
  }

  export type SiteAttendanceEventUncheckedCreateWithoutCheckpointInput = {
    id?: string
    userId: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
  }

  export type SiteAttendanceEventCreateOrConnectWithoutCheckpointInput = {
    where: SiteAttendanceEventWhereUniqueInput
    create: XOR<SiteAttendanceEventCreateWithoutCheckpointInput, SiteAttendanceEventUncheckedCreateWithoutCheckpointInput>
  }

  export type SiteAttendanceEventCreateManyCheckpointInputEnvelope = {
    data: SiteAttendanceEventCreateManyCheckpointInput | SiteAttendanceEventCreateManyCheckpointInput[]
    skipDuplicates?: boolean
  }

  export type SiteDailySummaryCreateWithoutCheckpointInput = {
    id?: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
    user: UserCreateNestedOneWithoutSiteDailySummariesInput
  }

  export type SiteDailySummaryUncheckedCreateWithoutCheckpointInput = {
    id?: string
    userId: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
  }

  export type SiteDailySummaryCreateOrConnectWithoutCheckpointInput = {
    where: SiteDailySummaryWhereUniqueInput
    create: XOR<SiteDailySummaryCreateWithoutCheckpointInput, SiteDailySummaryUncheckedCreateWithoutCheckpointInput>
  }

  export type SiteDailySummaryCreateManyCheckpointInputEnvelope = {
    data: SiteDailySummaryCreateManyCheckpointInput | SiteDailySummaryCreateManyCheckpointInput[]
    skipDuplicates?: boolean
  }

  export type SharedCheckinPartnerCreateWithoutCheckpointInput = {
    id?: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutSharedCheckinPartnersCreatedInput
    updater: UserCreateNestedOneWithoutSharedCheckinPartnersUpdatedInput
  }

  export type SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput = {
    id?: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdBy: string
    updatedBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharedCheckinPartnerCreateOrConnectWithoutCheckpointInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    create: XOR<SharedCheckinPartnerCreateWithoutCheckpointInput, SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput>
  }

  export type SharedCheckinPartnerCreateManyCheckpointInputEnvelope = {
    data: SharedCheckinPartnerCreateManyCheckpointInput | SharedCheckinPartnerCreateManyCheckpointInput[]
    skipDuplicates?: boolean
  }

  export type UserUpsertWithoutSiteCheckpointsCreatedInput = {
    update: XOR<UserUpdateWithoutSiteCheckpointsCreatedInput, UserUncheckedUpdateWithoutSiteCheckpointsCreatedInput>
    create: XOR<UserCreateWithoutSiteCheckpointsCreatedInput, UserUncheckedCreateWithoutSiteCheckpointsCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutSiteCheckpointsCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutSiteCheckpointsCreatedInput, UserUncheckedUpdateWithoutSiteCheckpointsCreatedInput>
  }

  export type UserUpdateWithoutSiteCheckpointsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutSiteCheckpointsCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type SiteAttendanceEventUpsertWithWhereUniqueWithoutCheckpointInput = {
    where: SiteAttendanceEventWhereUniqueInput
    update: XOR<SiteAttendanceEventUpdateWithoutCheckpointInput, SiteAttendanceEventUncheckedUpdateWithoutCheckpointInput>
    create: XOR<SiteAttendanceEventCreateWithoutCheckpointInput, SiteAttendanceEventUncheckedCreateWithoutCheckpointInput>
  }

  export type SiteAttendanceEventUpdateWithWhereUniqueWithoutCheckpointInput = {
    where: SiteAttendanceEventWhereUniqueInput
    data: XOR<SiteAttendanceEventUpdateWithoutCheckpointInput, SiteAttendanceEventUncheckedUpdateWithoutCheckpointInput>
  }

  export type SiteAttendanceEventUpdateManyWithWhereWithoutCheckpointInput = {
    where: SiteAttendanceEventScalarWhereInput
    data: XOR<SiteAttendanceEventUpdateManyMutationInput, SiteAttendanceEventUncheckedUpdateManyWithoutCheckpointInput>
  }

  export type SiteDailySummaryUpsertWithWhereUniqueWithoutCheckpointInput = {
    where: SiteDailySummaryWhereUniqueInput
    update: XOR<SiteDailySummaryUpdateWithoutCheckpointInput, SiteDailySummaryUncheckedUpdateWithoutCheckpointInput>
    create: XOR<SiteDailySummaryCreateWithoutCheckpointInput, SiteDailySummaryUncheckedCreateWithoutCheckpointInput>
  }

  export type SiteDailySummaryUpdateWithWhereUniqueWithoutCheckpointInput = {
    where: SiteDailySummaryWhereUniqueInput
    data: XOR<SiteDailySummaryUpdateWithoutCheckpointInput, SiteDailySummaryUncheckedUpdateWithoutCheckpointInput>
  }

  export type SiteDailySummaryUpdateManyWithWhereWithoutCheckpointInput = {
    where: SiteDailySummaryScalarWhereInput
    data: XOR<SiteDailySummaryUpdateManyMutationInput, SiteDailySummaryUncheckedUpdateManyWithoutCheckpointInput>
  }

  export type SharedCheckinPartnerUpsertWithWhereUniqueWithoutCheckpointInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    update: XOR<SharedCheckinPartnerUpdateWithoutCheckpointInput, SharedCheckinPartnerUncheckedUpdateWithoutCheckpointInput>
    create: XOR<SharedCheckinPartnerCreateWithoutCheckpointInput, SharedCheckinPartnerUncheckedCreateWithoutCheckpointInput>
  }

  export type SharedCheckinPartnerUpdateWithWhereUniqueWithoutCheckpointInput = {
    where: SharedCheckinPartnerWhereUniqueInput
    data: XOR<SharedCheckinPartnerUpdateWithoutCheckpointInput, SharedCheckinPartnerUncheckedUpdateWithoutCheckpointInput>
  }

  export type SharedCheckinPartnerUpdateManyWithWhereWithoutCheckpointInput = {
    where: SharedCheckinPartnerScalarWhereInput
    data: XOR<SharedCheckinPartnerUpdateManyMutationInput, SharedCheckinPartnerUncheckedUpdateManyWithoutCheckpointInput>
  }

  export type SiteCheckpointCreateWithoutSharedPartnersInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutSiteCheckpointsCreatedInput
    events?: SiteAttendanceEventCreateNestedManyWithoutCheckpointInput
    dailySummaries?: SiteDailySummaryCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointUncheckedCreateWithoutSharedPartnersInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: SiteAttendanceEventUncheckedCreateNestedManyWithoutCheckpointInput
    dailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointCreateOrConnectWithoutSharedPartnersInput = {
    where: SiteCheckpointWhereUniqueInput
    create: XOR<SiteCheckpointCreateWithoutSharedPartnersInput, SiteCheckpointUncheckedCreateWithoutSharedPartnersInput>
  }

  export type UserCreateWithoutSharedCheckinPartnersCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutSharedCheckinPartnersCreatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutSharedCheckinPartnersCreatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutSharedCheckinPartnersCreatedInput, UserUncheckedCreateWithoutSharedCheckinPartnersCreatedInput>
  }

  export type UserCreateWithoutSharedCheckinPartnersUpdatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutSharedCheckinPartnersUpdatedInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutSharedCheckinPartnersUpdatedInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutSharedCheckinPartnersUpdatedInput, UserUncheckedCreateWithoutSharedCheckinPartnersUpdatedInput>
  }

  export type SiteCheckpointUpsertWithoutSharedPartnersInput = {
    update: XOR<SiteCheckpointUpdateWithoutSharedPartnersInput, SiteCheckpointUncheckedUpdateWithoutSharedPartnersInput>
    create: XOR<SiteCheckpointCreateWithoutSharedPartnersInput, SiteCheckpointUncheckedCreateWithoutSharedPartnersInput>
    where?: SiteCheckpointWhereInput
  }

  export type SiteCheckpointUpdateToOneWithWhereWithoutSharedPartnersInput = {
    where?: SiteCheckpointWhereInput
    data: XOR<SiteCheckpointUpdateWithoutSharedPartnersInput, SiteCheckpointUncheckedUpdateWithoutSharedPartnersInput>
  }

  export type SiteCheckpointUpdateWithoutSharedPartnersInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutSiteCheckpointsCreatedNestedInput
    events?: SiteAttendanceEventUpdateManyWithoutCheckpointNestedInput
    dailySummaries?: SiteDailySummaryUpdateManyWithoutCheckpointNestedInput
  }

  export type SiteCheckpointUncheckedUpdateWithoutSharedPartnersInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: SiteAttendanceEventUncheckedUpdateManyWithoutCheckpointNestedInput
    dailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutCheckpointNestedInput
  }

  export type UserUpsertWithoutSharedCheckinPartnersCreatedInput = {
    update: XOR<UserUpdateWithoutSharedCheckinPartnersCreatedInput, UserUncheckedUpdateWithoutSharedCheckinPartnersCreatedInput>
    create: XOR<UserCreateWithoutSharedCheckinPartnersCreatedInput, UserUncheckedCreateWithoutSharedCheckinPartnersCreatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutSharedCheckinPartnersCreatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutSharedCheckinPartnersCreatedInput, UserUncheckedUpdateWithoutSharedCheckinPartnersCreatedInput>
  }

  export type UserUpdateWithoutSharedCheckinPartnersCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutSharedCheckinPartnersCreatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type UserUpsertWithoutSharedCheckinPartnersUpdatedInput = {
    update: XOR<UserUpdateWithoutSharedCheckinPartnersUpdatedInput, UserUncheckedUpdateWithoutSharedCheckinPartnersUpdatedInput>
    create: XOR<UserCreateWithoutSharedCheckinPartnersUpdatedInput, UserUncheckedCreateWithoutSharedCheckinPartnersUpdatedInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutSharedCheckinPartnersUpdatedInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutSharedCheckinPartnersUpdatedInput, UserUncheckedUpdateWithoutSharedCheckinPartnersUpdatedInput>
  }

  export type UserUpdateWithoutSharedCheckinPartnersUpdatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutSharedCheckinPartnersUpdatedInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type SiteCheckpointCreateWithoutEventsInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutSiteCheckpointsCreatedInput
    dailySummaries?: SiteDailySummaryCreateNestedManyWithoutCheckpointInput
    sharedPartners?: SharedCheckinPartnerCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointUncheckedCreateWithoutEventsInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    dailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutCheckpointInput
    sharedPartners?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointCreateOrConnectWithoutEventsInput = {
    where: SiteCheckpointWhereUniqueInput
    create: XOR<SiteCheckpointCreateWithoutEventsInput, SiteCheckpointUncheckedCreateWithoutEventsInput>
  }

  export type UserCreateWithoutSiteAttendanceEventsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteDailySummaries?: SiteDailySummaryCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutSiteAttendanceEventsInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteDailySummaries?: SiteDailySummaryUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutSiteAttendanceEventsInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutSiteAttendanceEventsInput, UserUncheckedCreateWithoutSiteAttendanceEventsInput>
  }

  export type SiteCheckpointUpsertWithoutEventsInput = {
    update: XOR<SiteCheckpointUpdateWithoutEventsInput, SiteCheckpointUncheckedUpdateWithoutEventsInput>
    create: XOR<SiteCheckpointCreateWithoutEventsInput, SiteCheckpointUncheckedCreateWithoutEventsInput>
    where?: SiteCheckpointWhereInput
  }

  export type SiteCheckpointUpdateToOneWithWhereWithoutEventsInput = {
    where?: SiteCheckpointWhereInput
    data: XOR<SiteCheckpointUpdateWithoutEventsInput, SiteCheckpointUncheckedUpdateWithoutEventsInput>
  }

  export type SiteCheckpointUpdateWithoutEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutSiteCheckpointsCreatedNestedInput
    dailySummaries?: SiteDailySummaryUpdateManyWithoutCheckpointNestedInput
    sharedPartners?: SharedCheckinPartnerUpdateManyWithoutCheckpointNestedInput
  }

  export type SiteCheckpointUncheckedUpdateWithoutEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    dailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutCheckpointNestedInput
    sharedPartners?: SharedCheckinPartnerUncheckedUpdateManyWithoutCheckpointNestedInput
  }

  export type UserUpsertWithoutSiteAttendanceEventsInput = {
    update: XOR<UserUpdateWithoutSiteAttendanceEventsInput, UserUncheckedUpdateWithoutSiteAttendanceEventsInput>
    create: XOR<UserCreateWithoutSiteAttendanceEventsInput, UserUncheckedCreateWithoutSiteAttendanceEventsInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutSiteAttendanceEventsInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutSiteAttendanceEventsInput, UserUncheckedUpdateWithoutSiteAttendanceEventsInput>
  }

  export type UserUpdateWithoutSiteAttendanceEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteDailySummaries?: SiteDailySummaryUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutSiteAttendanceEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteDailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type SiteCheckpointCreateWithoutDailySummariesInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    creator: UserCreateNestedOneWithoutSiteCheckpointsCreatedInput
    events?: SiteAttendanceEventCreateNestedManyWithoutCheckpointInput
    sharedPartners?: SharedCheckinPartnerCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointUncheckedCreateWithoutDailySummariesInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    events?: SiteAttendanceEventUncheckedCreateNestedManyWithoutCheckpointInput
    sharedPartners?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCheckpointInput
  }

  export type SiteCheckpointCreateOrConnectWithoutDailySummariesInput = {
    where: SiteCheckpointWhereUniqueInput
    create: XOR<SiteCheckpointCreateWithoutDailySummariesInput, SiteCheckpointUncheckedCreateWithoutDailySummariesInput>
  }

  export type UserCreateWithoutSiteDailySummariesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionCreateNestedManyWithoutReviewerInput
    roles?: UserRoleCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupCreateNestedManyWithoutUserInput
  }

  export type UserUncheckedCreateWithoutSiteDailySummariesInput = {
    id?: string
    username: string
    email: string
    passwordHash?: string | null
    displayName: string
    avatar?: string | null
    phone?: string | null
    status?: $Enums.UserStatus
    source?: $Enums.UserSource
    ldapDn?: string | null
    employeeId?: string | null
    ldapSyncedAt?: Date | string | null
    externalId?: string | null
    externalSource?: string | null
    adpAoid?: string | null
    adpLinkedAt?: Date | string | null
    tenantId?: string | null
    defaultRegion?: string
    workCity?: string | null
    hiredAt?: Date | string | null
    terminatedAt?: Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedCreateNestedManyWithoutInitiatorInput
    approvalActionLogs?: ApprovalTaskLogUncheckedCreateNestedManyWithoutOperatorInput
    approvalActionTargets?: ApprovalTaskLogUncheckedCreateNestedManyWithoutTargetUserInput
    approvalAdminExports?: ApprovalAdminExportUncheckedCreateNestedManyWithoutRequesterInput
    createdContracts?: ContractRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdExpenses?: ExpenseRequestUncheckedCreateNestedManyWithoutCreatorInput
    createdPurchases?: PurchaseRequestUncheckedCreateNestedManyWithoutCreatorInput
    auditLogs?: AuditLogUncheckedCreateNestedManyWithoutUserInput
    createdAutomationTasks?: AutomationTaskUncheckedCreateNestedManyWithoutCreatedByInput
    createdFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormDefinitions?: FormDefinitionUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutCreatorInput
    submittedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutSubmitterInput
    updatedFormInstances?: FormInstanceUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutCreatorInput
    updatedFormTemplates?: FormTemplateUncheckedCreateNestedManyWithoutUpdaterInput
    createdFormVersions?: FormVersionUncheckedCreateNestedManyWithoutCreatorInput
    reviewedFormVersions?: FormVersionUncheckedCreateNestedManyWithoutReviewerInput
    roles?: UserRoleUncheckedCreateNestedManyWithoutUserInput
    workflowRoles?: WorkflowRoleUserUncheckedCreateNestedManyWithoutUserInput
    departmentMemberships?: UserDepartmentUncheckedCreateNestedManyWithoutUserInput
    managedUsers?: UserDepartmentUncheckedCreateNestedManyWithoutManagerInput
    notificationLogs?: NotificationLogUncheckedCreateNestedManyWithoutRecipientInput
    notifications?: NotificationMessageUncheckedCreateNestedManyWithoutUserInput
    delegationSettings?: UserDelegationSettingUncheckedCreateNestedManyWithoutUserInput
    delegatedToMe?: UserDelegationSettingUncheckedCreateNestedManyWithoutDelegateUserInput
    knowledgeArticles?: KnowledgeArticleUncheckedCreateNestedManyWithoutCreatedByInput
    aiQALogs?: AIQALogUncheckedCreateNestedManyWithoutUserInput
    documentViews?: DocumentViewUncheckedCreateNestedManyWithoutUserInput
    documentLikes?: DocumentLikeUncheckedCreateNestedManyWithoutUserInput
    documentComments?: DocumentCommentUncheckedCreateNestedManyWithoutUserInput
    mentionedIn?: UserMentionUncheckedCreateNestedManyWithoutMentionedUserInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedCreateNestedManyWithoutAssigneeInput
    feedbacks?: FeedbackUncheckedCreateNestedManyWithoutUserInput
    assignedFeedbacks?: FeedbackUncheckedCreateNestedManyWithoutAssigneeInput
    devItemsOwned?: DevItemUncheckedCreateNestedManyWithoutOwnerInput
    devItemsReported?: DevItemUncheckedCreateNestedManyWithoutReporterInput
    devItemsReviewed?: DevItemUncheckedCreateNestedManyWithoutReviewerInput
    releaseNotes?: ReleaseNoteUncheckedCreateNestedManyWithoutCreatorInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedCreateNestedManyWithoutCreatorInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedCreateNestedManyWithoutUserInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutCreatorInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedCreateNestedManyWithoutUpdaterInput
    meetingAttendances?: MeetingAttendanceUncheckedCreateNestedManyWithoutUserInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedCreateNestedManyWithoutCreatorInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedCreateNestedManyWithoutUserInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedCreateNestedManyWithoutUserInput
    meetingsCreated?: MeetingUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesCreated?: MeetingSeriesUncheckedCreateNestedManyWithoutCreatorInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedCreateNestedManyWithoutUserInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedCreateNestedManyWithoutUserInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedCreateNestedManyWithoutCreatedByInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedCreateNestedManyWithoutPresenterInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssigneeInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutAssignedByInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedCreateNestedManyWithoutCreatedByInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedCreateNestedManyWithoutUploadedByInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedCreateNestedManyWithoutCreatedByInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedCreateNestedManyWithoutUserInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedCreateNestedManyWithoutUserInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedCreateNestedOneWithoutUserInput
    internalAppsCreated?: InternalAppUncheckedCreateNestedManyWithoutCreatorInput
    internalAppsForceDisabled?: InternalAppUncheckedCreateNestedManyWithoutForceDisablerInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedCreateNestedManyWithoutCreatorInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedCreateNestedManyWithoutCreatorInput
    internalAppEvents?: InternalAppEventUncheckedCreateNestedManyWithoutActorInput
    aiUsageTokens?: AiUsageTokenUncheckedCreateNestedManyWithoutUserInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedCreateNestedManyWithoutRevokedByInput
    aiUsageDevices?: AiUsageDeviceUncheckedCreateNestedManyWithoutUserInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedCreateNestedManyWithoutBlockedByInput
    aiUsageEvents?: AiUsageEventUncheckedCreateNestedManyWithoutUserInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedCreateNestedManyWithoutUserInput
  }

  export type UserCreateOrConnectWithoutSiteDailySummariesInput = {
    where: UserWhereUniqueInput
    create: XOR<UserCreateWithoutSiteDailySummariesInput, UserUncheckedCreateWithoutSiteDailySummariesInput>
  }

  export type SiteCheckpointUpsertWithoutDailySummariesInput = {
    update: XOR<SiteCheckpointUpdateWithoutDailySummariesInput, SiteCheckpointUncheckedUpdateWithoutDailySummariesInput>
    create: XOR<SiteCheckpointCreateWithoutDailySummariesInput, SiteCheckpointUncheckedCreateWithoutDailySummariesInput>
    where?: SiteCheckpointWhereInput
  }

  export type SiteCheckpointUpdateToOneWithWhereWithoutDailySummariesInput = {
    where?: SiteCheckpointWhereInput
    data: XOR<SiteCheckpointUpdateWithoutDailySummariesInput, SiteCheckpointUncheckedUpdateWithoutDailySummariesInput>
  }

  export type SiteCheckpointUpdateWithoutDailySummariesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutSiteCheckpointsCreatedNestedInput
    events?: SiteAttendanceEventUpdateManyWithoutCheckpointNestedInput
    sharedPartners?: SharedCheckinPartnerUpdateManyWithoutCheckpointNestedInput
  }

  export type SiteCheckpointUncheckedUpdateWithoutDailySummariesInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: SiteAttendanceEventUncheckedUpdateManyWithoutCheckpointNestedInput
    sharedPartners?: SharedCheckinPartnerUncheckedUpdateManyWithoutCheckpointNestedInput
  }

  export type UserUpsertWithoutSiteDailySummariesInput = {
    update: XOR<UserUpdateWithoutSiteDailySummariesInput, UserUncheckedUpdateWithoutSiteDailySummariesInput>
    create: XOR<UserCreateWithoutSiteDailySummariesInput, UserUncheckedCreateWithoutSiteDailySummariesInput>
    where?: UserWhereInput
  }

  export type UserUpdateToOneWithWhereWithoutSiteDailySummariesInput = {
    where?: UserWhereInput
    data: XOR<UserUpdateWithoutSiteDailySummariesInput, UserUncheckedUpdateWithoutSiteDailySummariesInput>
  }

  export type UserUpdateWithoutSiteDailySummariesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutUserNestedInput
  }

  export type UserUncheckedUpdateWithoutSiteDailySummariesInput = {
    id?: StringFieldUpdateOperationsInput | string
    username?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    passwordHash?: NullableStringFieldUpdateOperationsInput | string | null
    displayName?: StringFieldUpdateOperationsInput | string
    avatar?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumUserStatusFieldUpdateOperationsInput | $Enums.UserStatus
    source?: EnumUserSourceFieldUpdateOperationsInput | $Enums.UserSource
    ldapDn?: NullableStringFieldUpdateOperationsInput | string | null
    employeeId?: NullableStringFieldUpdateOperationsInput | string | null
    ldapSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    externalSource?: NullableStringFieldUpdateOperationsInput | string | null
    adpAoid?: NullableStringFieldUpdateOperationsInput | string | null
    adpLinkedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultRegion?: StringFieldUpdateOperationsInput | string
    workCity?: NullableStringFieldUpdateOperationsInput | string | null
    hiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    terminatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiatedProcesses?: ApprovalInstanceUncheckedUpdateManyWithoutInitiatorNestedInput
    approvalActionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutOperatorNestedInput
    approvalActionTargets?: ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserNestedInput
    approvalAdminExports?: ApprovalAdminExportUncheckedUpdateManyWithoutRequesterNestedInput
    createdContracts?: ContractRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdExpenses?: ExpenseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    createdPurchases?: PurchaseRequestUncheckedUpdateManyWithoutCreatorNestedInput
    auditLogs?: AuditLogUncheckedUpdateManyWithoutUserNestedInput
    createdAutomationTasks?: AutomationTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    createdFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormDefinitions?: FormDefinitionUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormInstances?: FormInstanceUncheckedUpdateManyWithoutCreatorNestedInput
    submittedFormInstances?: FormInstanceUncheckedUpdateManyWithoutSubmitterNestedInput
    updatedFormInstances?: FormInstanceUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormTemplates?: FormTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    updatedFormTemplates?: FormTemplateUncheckedUpdateManyWithoutUpdaterNestedInput
    createdFormVersions?: FormVersionUncheckedUpdateManyWithoutCreatorNestedInput
    reviewedFormVersions?: FormVersionUncheckedUpdateManyWithoutReviewerNestedInput
    roles?: UserRoleUncheckedUpdateManyWithoutUserNestedInput
    workflowRoles?: WorkflowRoleUserUncheckedUpdateManyWithoutUserNestedInput
    departmentMemberships?: UserDepartmentUncheckedUpdateManyWithoutUserNestedInput
    managedUsers?: UserDepartmentUncheckedUpdateManyWithoutManagerNestedInput
    notificationLogs?: NotificationLogUncheckedUpdateManyWithoutRecipientNestedInput
    notifications?: NotificationMessageUncheckedUpdateManyWithoutUserNestedInput
    delegationSettings?: UserDelegationSettingUncheckedUpdateManyWithoutUserNestedInput
    delegatedToMe?: UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserNestedInput
    knowledgeArticles?: KnowledgeArticleUncheckedUpdateManyWithoutCreatedByNestedInput
    aiQALogs?: AIQALogUncheckedUpdateManyWithoutUserNestedInput
    documentViews?: DocumentViewUncheckedUpdateManyWithoutUserNestedInput
    documentLikes?: DocumentLikeUncheckedUpdateManyWithoutUserNestedInput
    documentComments?: DocumentCommentUncheckedUpdateManyWithoutUserNestedInput
    mentionedIn?: UserMentionUncheckedUpdateManyWithoutMentionedUserNestedInput
    strategicObjectiveAssignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeNestedInput
    feedbacks?: FeedbackUncheckedUpdateManyWithoutUserNestedInput
    assignedFeedbacks?: FeedbackUncheckedUpdateManyWithoutAssigneeNestedInput
    devItemsOwned?: DevItemUncheckedUpdateManyWithoutOwnerNestedInput
    devItemsReported?: DevItemUncheckedUpdateManyWithoutReporterNestedInput
    devItemsReviewed?: DevItemUncheckedUpdateManyWithoutReviewerNestedInput
    releaseNotes?: ReleaseNoteUncheckedUpdateManyWithoutCreatorNestedInput
    siteCheckpointsCreated?: SiteCheckpointUncheckedUpdateManyWithoutCreatorNestedInput
    siteAttendanceEvents?: SiteAttendanceEventUncheckedUpdateManyWithoutUserNestedInput
    sharedCheckinPartnersCreated?: SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorNestedInput
    sharedCheckinPartnersUpdated?: SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterNestedInput
    meetingAttendances?: MeetingAttendanceUncheckedUpdateManyWithoutUserNestedInput
    meetingRequiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingTemplatesCreated?: MeetingTemplateUncheckedUpdateManyWithoutCreatorNestedInput
    meetingTemplateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceLeaveLogs?: MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserNestedInput
    meetingAttendanceAuditLogs?: MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserNestedInput
    meetingsCreated?: MeetingUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesCreated?: MeetingSeriesUncheckedUpdateManyWithoutCreatorNestedInput
    meetingSeriesAttendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserNestedInput
    meetingSeriesAttendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserNestedInput
    agendaSectionsCreated?: MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsCreated?: MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaItemsPresented?: MeetingAgendaItemUncheckedUpdateManyWithoutPresenterNestedInput
    uploadTasksAssigned?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeNestedInput
    uploadTasksAssignedBy?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByNestedInput
    uploadTasksCreated?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByNestedInput
    agendaAttachmentsUploaded?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    agendaAttachmentsCreated?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    meetingAttachmentsUploaded?: MeetingAttachmentUncheckedUpdateManyWithoutUploadedByNestedInput
    meetingAttachmentsCreated?: MeetingAttachmentUncheckedUpdateManyWithoutCreatedByNestedInput
    aiToolGrantsDirect?: AIToolGrantUserUncheckedUpdateManyWithoutUserNestedInput
    adpPtoSchedules?: AdpPtoScheduleUncheckedUpdateManyWithoutUserNestedInput
    internalAppSlugBinding?: EmployeeSlugBindingUncheckedUpdateOneWithoutUserNestedInput
    internalAppsCreated?: InternalAppUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppsForceDisabled?: InternalAppUncheckedUpdateManyWithoutForceDisablerNestedInput
    internalAppDeploymentsTriggered?: InternalAppDeploymentUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEnvVarsManaged?: InternalAppEnvVarUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppTokens?: InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorNestedInput
    internalAppEvents?: InternalAppEventUncheckedUpdateManyWithoutActorNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutUserNestedInput
    aiUsageTokensRevoked?: AiUsageTokenUncheckedUpdateManyWithoutRevokedByNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutUserNestedInput
    aiUsageDevicesBlocked?: AiUsageDeviceUncheckedUpdateManyWithoutBlockedByNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutUserNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutUserNestedInput
  }

  export type TicketCategoryCreateWithoutTicketsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    defaultPriority?: $Enums.TicketPriority
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    parent?: TicketCategoryCreateNestedOneWithoutChildrenInput
    children?: TicketCategoryCreateNestedManyWithoutParentInput
    defaultAssigneeGroup?: AssignmentGroupCreateNestedOneWithoutCategoriesInput
    sla?: TicketSLACreateNestedOneWithoutCategoriesInput
  }

  export type TicketCategoryUncheckedCreateWithoutTicketsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    parentId?: string | null
    defaultPriority?: $Enums.TicketPriority
    defaultAssigneeGroupId?: string | null
    slaId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    children?: TicketCategoryUncheckedCreateNestedManyWithoutParentInput
  }

  export type TicketCategoryCreateOrConnectWithoutTicketsInput = {
    where: TicketCategoryWhereUniqueInput
    create: XOR<TicketCategoryCreateWithoutTicketsInput, TicketCategoryUncheckedCreateWithoutTicketsInput>
  }

  export type AssignmentGroupCreateWithoutTicketsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    memberIds?: AssignmentGroupCreatememberIdsInput | string[]
    managerId?: string | null
    skills?: AssignmentGroupCreateskillsInput | string[]
    assignmentStrategy?: $Enums.AssignmentStrategy
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    categories?: TicketCategoryCreateNestedManyWithoutDefaultAssigneeGroupInput
  }

  export type AssignmentGroupUncheckedCreateWithoutTicketsInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    memberIds?: AssignmentGroupCreatememberIdsInput | string[]
    managerId?: string | null
    skills?: AssignmentGroupCreateskillsInput | string[]
    assignmentStrategy?: $Enums.AssignmentStrategy
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    categories?: TicketCategoryUncheckedCreateNestedManyWithoutDefaultAssigneeGroupInput
  }

  export type AssignmentGroupCreateOrConnectWithoutTicketsInput = {
    where: AssignmentGroupWhereUniqueInput
    create: XOR<AssignmentGroupCreateWithoutTicketsInput, AssignmentGroupUncheckedCreateWithoutTicketsInput>
  }

  export type TicketSLACreateWithoutTicketsInput = {
    id?: string
    name: string
    description?: string | null
    firstResponseTime: JsonNullValueInput | InputJsonValue
    resolutionTime: JsonNullValueInput | InputJsonValue
    businessHours: JsonNullValueInput | InputJsonValue
    excludeHolidays?: boolean
    holidayCalendarId?: string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: boolean
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    categories?: TicketCategoryCreateNestedManyWithoutSlaInput
  }

  export type TicketSLAUncheckedCreateWithoutTicketsInput = {
    id?: string
    name: string
    description?: string | null
    firstResponseTime: JsonNullValueInput | InputJsonValue
    resolutionTime: JsonNullValueInput | InputJsonValue
    businessHours: JsonNullValueInput | InputJsonValue
    excludeHolidays?: boolean
    holidayCalendarId?: string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: boolean
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    categories?: TicketCategoryUncheckedCreateNestedManyWithoutSlaInput
  }

  export type TicketSLACreateOrConnectWithoutTicketsInput = {
    where: TicketSLAWhereUniqueInput
    create: XOR<TicketSLACreateWithoutTicketsInput, TicketSLAUncheckedCreateWithoutTicketsInput>
  }

  export type TicketCreateWithoutChildTicketsInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    category: TicketCategoryCreateNestedOneWithoutTicketsInput
    assigneeGroup?: AssignmentGroupCreateNestedOneWithoutTicketsInput
    sla?: TicketSLACreateNestedOneWithoutTicketsInput
    parentTicket?: TicketCreateNestedOneWithoutChildTicketsInput
    comments?: TicketCommentCreateNestedManyWithoutTicketInput
    activities?: TicketActivityCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateWithoutChildTicketsInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    comments?: TicketCommentUncheckedCreateNestedManyWithoutTicketInput
    activities?: TicketActivityUncheckedCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketCreateOrConnectWithoutChildTicketsInput = {
    where: TicketWhereUniqueInput
    create: XOR<TicketCreateWithoutChildTicketsInput, TicketUncheckedCreateWithoutChildTicketsInput>
  }

  export type TicketCreateWithoutParentTicketInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    category: TicketCategoryCreateNestedOneWithoutTicketsInput
    assigneeGroup?: AssignmentGroupCreateNestedOneWithoutTicketsInput
    sla?: TicketSLACreateNestedOneWithoutTicketsInput
    childTickets?: TicketCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentCreateNestedManyWithoutTicketInput
    activities?: TicketActivityCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateWithoutParentTicketInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    childTickets?: TicketUncheckedCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentUncheckedCreateNestedManyWithoutTicketInput
    activities?: TicketActivityUncheckedCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketCreateOrConnectWithoutParentTicketInput = {
    where: TicketWhereUniqueInput
    create: XOR<TicketCreateWithoutParentTicketInput, TicketUncheckedCreateWithoutParentTicketInput>
  }

  export type TicketCreateManyParentTicketInputEnvelope = {
    data: TicketCreateManyParentTicketInput | TicketCreateManyParentTicketInput[]
    skipDuplicates?: boolean
  }

  export type TicketCommentCreateWithoutTicketInput = {
    id?: string
    content: string
    type?: $Enums.CommentType
    isInternal?: boolean
    visibilityScope?: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds?: TicketCommentCreatementionedUserIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    attachments?: TicketAttachmentCreateNestedManyWithoutCommentInput
  }

  export type TicketCommentUncheckedCreateWithoutTicketInput = {
    id?: string
    content: string
    type?: $Enums.CommentType
    isInternal?: boolean
    visibilityScope?: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds?: TicketCommentCreatementionedUserIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutCommentInput
  }

  export type TicketCommentCreateOrConnectWithoutTicketInput = {
    where: TicketCommentWhereUniqueInput
    create: XOR<TicketCommentCreateWithoutTicketInput, TicketCommentUncheckedCreateWithoutTicketInput>
  }

  export type TicketCommentCreateManyTicketInputEnvelope = {
    data: TicketCommentCreateManyTicketInput | TicketCommentCreateManyTicketInput[]
    skipDuplicates?: boolean
  }

  export type TicketActivityCreateWithoutTicketInput = {
    id?: string
    type: $Enums.ActivityType
    content: JsonNullValueInput | InputJsonValue
    operatorId?: string | null
    createdAt?: Date | string
  }

  export type TicketActivityUncheckedCreateWithoutTicketInput = {
    id?: string
    type: $Enums.ActivityType
    content: JsonNullValueInput | InputJsonValue
    operatorId?: string | null
    createdAt?: Date | string
  }

  export type TicketActivityCreateOrConnectWithoutTicketInput = {
    where: TicketActivityWhereUniqueInput
    create: XOR<TicketActivityCreateWithoutTicketInput, TicketActivityUncheckedCreateWithoutTicketInput>
  }

  export type TicketActivityCreateManyTicketInputEnvelope = {
    data: TicketActivityCreateManyTicketInput | TicketActivityCreateManyTicketInput[]
    skipDuplicates?: boolean
  }

  export type TicketAttachmentCreateWithoutTicketInput = {
    id?: string
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
    comment?: TicketCommentCreateNestedOneWithoutAttachmentsInput
  }

  export type TicketAttachmentUncheckedCreateWithoutTicketInput = {
    id?: string
    commentId?: string | null
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
  }

  export type TicketAttachmentCreateOrConnectWithoutTicketInput = {
    where: TicketAttachmentWhereUniqueInput
    create: XOR<TicketAttachmentCreateWithoutTicketInput, TicketAttachmentUncheckedCreateWithoutTicketInput>
  }

  export type TicketAttachmentCreateManyTicketInputEnvelope = {
    data: TicketAttachmentCreateManyTicketInput | TicketAttachmentCreateManyTicketInput[]
    skipDuplicates?: boolean
  }

  export type TicketCategoryUpsertWithoutTicketsInput = {
    update: XOR<TicketCategoryUpdateWithoutTicketsInput, TicketCategoryUncheckedUpdateWithoutTicketsInput>
    create: XOR<TicketCategoryCreateWithoutTicketsInput, TicketCategoryUncheckedCreateWithoutTicketsInput>
    where?: TicketCategoryWhereInput
  }

  export type TicketCategoryUpdateToOneWithWhereWithoutTicketsInput = {
    where?: TicketCategoryWhereInput
    data: XOR<TicketCategoryUpdateWithoutTicketsInput, TicketCategoryUncheckedUpdateWithoutTicketsInput>
  }

  export type TicketCategoryUpdateWithoutTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    parent?: TicketCategoryUpdateOneWithoutChildrenNestedInput
    children?: TicketCategoryUpdateManyWithoutParentNestedInput
    defaultAssigneeGroup?: AssignmentGroupUpdateOneWithoutCategoriesNestedInput
    sla?: TicketSLAUpdateOneWithoutCategoriesNestedInput
  }

  export type TicketCategoryUncheckedUpdateWithoutTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    defaultAssigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    children?: TicketCategoryUncheckedUpdateManyWithoutParentNestedInput
  }

  export type AssignmentGroupUpsertWithoutTicketsInput = {
    update: XOR<AssignmentGroupUpdateWithoutTicketsInput, AssignmentGroupUncheckedUpdateWithoutTicketsInput>
    create: XOR<AssignmentGroupCreateWithoutTicketsInput, AssignmentGroupUncheckedCreateWithoutTicketsInput>
    where?: AssignmentGroupWhereInput
  }

  export type AssignmentGroupUpdateToOneWithWhereWithoutTicketsInput = {
    where?: AssignmentGroupWhereInput
    data: XOR<AssignmentGroupUpdateWithoutTicketsInput, AssignmentGroupUncheckedUpdateWithoutTicketsInput>
  }

  export type AssignmentGroupUpdateWithoutTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    memberIds?: AssignmentGroupUpdatememberIdsInput | string[]
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    skills?: AssignmentGroupUpdateskillsInput | string[]
    assignmentStrategy?: EnumAssignmentStrategyFieldUpdateOperationsInput | $Enums.AssignmentStrategy
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    categories?: TicketCategoryUpdateManyWithoutDefaultAssigneeGroupNestedInput
  }

  export type AssignmentGroupUncheckedUpdateWithoutTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    memberIds?: AssignmentGroupUpdatememberIdsInput | string[]
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    skills?: AssignmentGroupUpdateskillsInput | string[]
    assignmentStrategy?: EnumAssignmentStrategyFieldUpdateOperationsInput | $Enums.AssignmentStrategy
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    categories?: TicketCategoryUncheckedUpdateManyWithoutDefaultAssigneeGroupNestedInput
  }

  export type TicketSLAUpsertWithoutTicketsInput = {
    update: XOR<TicketSLAUpdateWithoutTicketsInput, TicketSLAUncheckedUpdateWithoutTicketsInput>
    create: XOR<TicketSLACreateWithoutTicketsInput, TicketSLAUncheckedCreateWithoutTicketsInput>
    where?: TicketSLAWhereInput
  }

  export type TicketSLAUpdateToOneWithWhereWithoutTicketsInput = {
    where?: TicketSLAWhereInput
    data: XOR<TicketSLAUpdateWithoutTicketsInput, TicketSLAUncheckedUpdateWithoutTicketsInput>
  }

  export type TicketSLAUpdateWithoutTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    firstResponseTime?: JsonNullValueInput | InputJsonValue
    resolutionTime?: JsonNullValueInput | InputJsonValue
    businessHours?: JsonNullValueInput | InputJsonValue
    excludeHolidays?: BoolFieldUpdateOperationsInput | boolean
    holidayCalendarId?: NullableStringFieldUpdateOperationsInput | string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: BoolFieldUpdateOperationsInput | boolean
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    categories?: TicketCategoryUpdateManyWithoutSlaNestedInput
  }

  export type TicketSLAUncheckedUpdateWithoutTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    firstResponseTime?: JsonNullValueInput | InputJsonValue
    resolutionTime?: JsonNullValueInput | InputJsonValue
    businessHours?: JsonNullValueInput | InputJsonValue
    excludeHolidays?: BoolFieldUpdateOperationsInput | boolean
    holidayCalendarId?: NullableStringFieldUpdateOperationsInput | string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: BoolFieldUpdateOperationsInput | boolean
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    categories?: TicketCategoryUncheckedUpdateManyWithoutSlaNestedInput
  }

  export type TicketUpsertWithoutChildTicketsInput = {
    update: XOR<TicketUpdateWithoutChildTicketsInput, TicketUncheckedUpdateWithoutChildTicketsInput>
    create: XOR<TicketCreateWithoutChildTicketsInput, TicketUncheckedCreateWithoutChildTicketsInput>
    where?: TicketWhereInput
  }

  export type TicketUpdateToOneWithWhereWithoutChildTicketsInput = {
    where?: TicketWhereInput
    data: XOR<TicketUpdateWithoutChildTicketsInput, TicketUncheckedUpdateWithoutChildTicketsInput>
  }

  export type TicketUpdateWithoutChildTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    category?: TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput
    assigneeGroup?: AssignmentGroupUpdateOneWithoutTicketsNestedInput
    sla?: TicketSLAUpdateOneWithoutTicketsNestedInput
    parentTicket?: TicketUpdateOneWithoutChildTicketsNestedInput
    comments?: TicketCommentUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateWithoutChildTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    comments?: TicketCommentUncheckedUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUncheckedUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketUpsertWithWhereUniqueWithoutParentTicketInput = {
    where: TicketWhereUniqueInput
    update: XOR<TicketUpdateWithoutParentTicketInput, TicketUncheckedUpdateWithoutParentTicketInput>
    create: XOR<TicketCreateWithoutParentTicketInput, TicketUncheckedCreateWithoutParentTicketInput>
  }

  export type TicketUpdateWithWhereUniqueWithoutParentTicketInput = {
    where: TicketWhereUniqueInput
    data: XOR<TicketUpdateWithoutParentTicketInput, TicketUncheckedUpdateWithoutParentTicketInput>
  }

  export type TicketUpdateManyWithWhereWithoutParentTicketInput = {
    where: TicketScalarWhereInput
    data: XOR<TicketUpdateManyMutationInput, TicketUncheckedUpdateManyWithoutParentTicketInput>
  }

  export type TicketScalarWhereInput = {
    AND?: TicketScalarWhereInput | TicketScalarWhereInput[]
    OR?: TicketScalarWhereInput[]
    NOT?: TicketScalarWhereInput | TicketScalarWhereInput[]
    id?: UuidFilter<"Ticket"> | string
    ticketNo?: StringFilter<"Ticket"> | string
    title?: StringFilter<"Ticket"> | string
    description?: StringFilter<"Ticket"> | string
    categoryId?: UuidFilter<"Ticket"> | string
    priority?: EnumTicketPriorityFilter<"Ticket"> | $Enums.TicketPriority
    tags?: StringNullableListFilter<"Ticket">
    status?: EnumTicketStatusFilter<"Ticket"> | $Enums.TicketStatus
    creatorId?: UuidFilter<"Ticket"> | string
    assigneeId?: UuidNullableFilter<"Ticket"> | string | null
    assigneeGroupId?: UuidNullableFilter<"Ticket"> | string | null
    watcherIds?: StringNullableListFilter<"Ticket">
    createdAt?: DateTimeFilter<"Ticket"> | Date | string
    updatedAt?: DateTimeFilter<"Ticket"> | Date | string
    firstResponseAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    resolvedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    closedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    dueAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    slaId?: UuidNullableFilter<"Ticket"> | string | null
    slaBreached?: BoolFilter<"Ticket"> | boolean
    slaPausedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    slaPausedDuration?: IntFilter<"Ticket"> | number
    satisfactionRating?: IntNullableFilter<"Ticket"> | number | null
    satisfactionComment?: StringNullableFilter<"Ticket"> | string | null
    satisfactionRatedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
    source?: EnumTicketSourceFilter<"Ticket"> | $Enums.TicketSource
    externalId?: StringNullableFilter<"Ticket"> | string | null
    channelMetadata?: JsonNullableFilter<"Ticket">
    resolution?: StringNullableFilter<"Ticket"> | string | null
    rootCause?: StringNullableFilter<"Ticket"> | string | null
    relatedTicketIds?: StringNullableListFilter<"Ticket">
    parentTicketId?: UuidNullableFilter<"Ticket"> | string | null
    approvalInstanceId?: UuidNullableFilter<"Ticket"> | string | null
    region?: StringFilter<"Ticket"> | string
    tenantId?: UuidNullableFilter<"Ticket"> | string | null
    language?: StringNullableFilter<"Ticket"> | string | null
    complianceFlag?: BoolFilter<"Ticket"> | boolean
    deletedAt?: DateTimeNullableFilter<"Ticket"> | Date | string | null
  }

  export type TicketCommentUpsertWithWhereUniqueWithoutTicketInput = {
    where: TicketCommentWhereUniqueInput
    update: XOR<TicketCommentUpdateWithoutTicketInput, TicketCommentUncheckedUpdateWithoutTicketInput>
    create: XOR<TicketCommentCreateWithoutTicketInput, TicketCommentUncheckedCreateWithoutTicketInput>
  }

  export type TicketCommentUpdateWithWhereUniqueWithoutTicketInput = {
    where: TicketCommentWhereUniqueInput
    data: XOR<TicketCommentUpdateWithoutTicketInput, TicketCommentUncheckedUpdateWithoutTicketInput>
  }

  export type TicketCommentUpdateManyWithWhereWithoutTicketInput = {
    where: TicketCommentScalarWhereInput
    data: XOR<TicketCommentUpdateManyMutationInput, TicketCommentUncheckedUpdateManyWithoutTicketInput>
  }

  export type TicketCommentScalarWhereInput = {
    AND?: TicketCommentScalarWhereInput | TicketCommentScalarWhereInput[]
    OR?: TicketCommentScalarWhereInput[]
    NOT?: TicketCommentScalarWhereInput | TicketCommentScalarWhereInput[]
    id?: UuidFilter<"TicketComment"> | string
    ticketId?: UuidFilter<"TicketComment"> | string
    content?: StringFilter<"TicketComment"> | string
    type?: EnumCommentTypeFilter<"TicketComment"> | $Enums.CommentType
    isInternal?: BoolFilter<"TicketComment"> | boolean
    visibilityScope?: EnumVisibilityScopeFilter<"TicketComment"> | $Enums.VisibilityScope
    authorId?: UuidFilter<"TicketComment"> | string
    mentionedUserIds?: StringNullableListFilter<"TicketComment">
    createdAt?: DateTimeFilter<"TicketComment"> | Date | string
    updatedAt?: DateTimeFilter<"TicketComment"> | Date | string
    deletedAt?: DateTimeNullableFilter<"TicketComment"> | Date | string | null
  }

  export type TicketActivityUpsertWithWhereUniqueWithoutTicketInput = {
    where: TicketActivityWhereUniqueInput
    update: XOR<TicketActivityUpdateWithoutTicketInput, TicketActivityUncheckedUpdateWithoutTicketInput>
    create: XOR<TicketActivityCreateWithoutTicketInput, TicketActivityUncheckedCreateWithoutTicketInput>
  }

  export type TicketActivityUpdateWithWhereUniqueWithoutTicketInput = {
    where: TicketActivityWhereUniqueInput
    data: XOR<TicketActivityUpdateWithoutTicketInput, TicketActivityUncheckedUpdateWithoutTicketInput>
  }

  export type TicketActivityUpdateManyWithWhereWithoutTicketInput = {
    where: TicketActivityScalarWhereInput
    data: XOR<TicketActivityUpdateManyMutationInput, TicketActivityUncheckedUpdateManyWithoutTicketInput>
  }

  export type TicketActivityScalarWhereInput = {
    AND?: TicketActivityScalarWhereInput | TicketActivityScalarWhereInput[]
    OR?: TicketActivityScalarWhereInput[]
    NOT?: TicketActivityScalarWhereInput | TicketActivityScalarWhereInput[]
    id?: UuidFilter<"TicketActivity"> | string
    ticketId?: UuidFilter<"TicketActivity"> | string
    type?: EnumActivityTypeFilter<"TicketActivity"> | $Enums.ActivityType
    content?: JsonFilter<"TicketActivity">
    operatorId?: UuidNullableFilter<"TicketActivity"> | string | null
    createdAt?: DateTimeFilter<"TicketActivity"> | Date | string
  }

  export type TicketAttachmentUpsertWithWhereUniqueWithoutTicketInput = {
    where: TicketAttachmentWhereUniqueInput
    update: XOR<TicketAttachmentUpdateWithoutTicketInput, TicketAttachmentUncheckedUpdateWithoutTicketInput>
    create: XOR<TicketAttachmentCreateWithoutTicketInput, TicketAttachmentUncheckedCreateWithoutTicketInput>
  }

  export type TicketAttachmentUpdateWithWhereUniqueWithoutTicketInput = {
    where: TicketAttachmentWhereUniqueInput
    data: XOR<TicketAttachmentUpdateWithoutTicketInput, TicketAttachmentUncheckedUpdateWithoutTicketInput>
  }

  export type TicketAttachmentUpdateManyWithWhereWithoutTicketInput = {
    where: TicketAttachmentScalarWhereInput
    data: XOR<TicketAttachmentUpdateManyMutationInput, TicketAttachmentUncheckedUpdateManyWithoutTicketInput>
  }

  export type TicketAttachmentScalarWhereInput = {
    AND?: TicketAttachmentScalarWhereInput | TicketAttachmentScalarWhereInput[]
    OR?: TicketAttachmentScalarWhereInput[]
    NOT?: TicketAttachmentScalarWhereInput | TicketAttachmentScalarWhereInput[]
    id?: UuidFilter<"TicketAttachment"> | string
    ticketId?: UuidFilter<"TicketAttachment"> | string
    commentId?: UuidNullableFilter<"TicketAttachment"> | string | null
    fileName?: StringFilter<"TicketAttachment"> | string
    fileUrl?: StringFilter<"TicketAttachment"> | string
    fileSize?: IntFilter<"TicketAttachment"> | number
    mimeType?: StringFilter<"TicketAttachment"> | string
    uploadedBy?: UuidFilter<"TicketAttachment"> | string
    createdAt?: DateTimeFilter<"TicketAttachment"> | Date | string
  }

  export type TicketCategoryCreateWithoutChildrenInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    defaultPriority?: $Enums.TicketPriority
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    parent?: TicketCategoryCreateNestedOneWithoutChildrenInput
    defaultAssigneeGroup?: AssignmentGroupCreateNestedOneWithoutCategoriesInput
    sla?: TicketSLACreateNestedOneWithoutCategoriesInput
    tickets?: TicketCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryUncheckedCreateWithoutChildrenInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    parentId?: string | null
    defaultPriority?: $Enums.TicketPriority
    defaultAssigneeGroupId?: string | null
    slaId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    tickets?: TicketUncheckedCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryCreateOrConnectWithoutChildrenInput = {
    where: TicketCategoryWhereUniqueInput
    create: XOR<TicketCategoryCreateWithoutChildrenInput, TicketCategoryUncheckedCreateWithoutChildrenInput>
  }

  export type TicketCategoryCreateWithoutParentInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    defaultPriority?: $Enums.TicketPriority
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    children?: TicketCategoryCreateNestedManyWithoutParentInput
    defaultAssigneeGroup?: AssignmentGroupCreateNestedOneWithoutCategoriesInput
    sla?: TicketSLACreateNestedOneWithoutCategoriesInput
    tickets?: TicketCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryUncheckedCreateWithoutParentInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    defaultPriority?: $Enums.TicketPriority
    defaultAssigneeGroupId?: string | null
    slaId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    children?: TicketCategoryUncheckedCreateNestedManyWithoutParentInput
    tickets?: TicketUncheckedCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryCreateOrConnectWithoutParentInput = {
    where: TicketCategoryWhereUniqueInput
    create: XOR<TicketCategoryCreateWithoutParentInput, TicketCategoryUncheckedCreateWithoutParentInput>
  }

  export type TicketCategoryCreateManyParentInputEnvelope = {
    data: TicketCategoryCreateManyParentInput | TicketCategoryCreateManyParentInput[]
    skipDuplicates?: boolean
  }

  export type AssignmentGroupCreateWithoutCategoriesInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    memberIds?: AssignmentGroupCreatememberIdsInput | string[]
    managerId?: string | null
    skills?: AssignmentGroupCreateskillsInput | string[]
    assignmentStrategy?: $Enums.AssignmentStrategy
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    tickets?: TicketCreateNestedManyWithoutAssigneeGroupInput
  }

  export type AssignmentGroupUncheckedCreateWithoutCategoriesInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    memberIds?: AssignmentGroupCreatememberIdsInput | string[]
    managerId?: string | null
    skills?: AssignmentGroupCreateskillsInput | string[]
    assignmentStrategy?: $Enums.AssignmentStrategy
    isActive?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    tickets?: TicketUncheckedCreateNestedManyWithoutAssigneeGroupInput
  }

  export type AssignmentGroupCreateOrConnectWithoutCategoriesInput = {
    where: AssignmentGroupWhereUniqueInput
    create: XOR<AssignmentGroupCreateWithoutCategoriesInput, AssignmentGroupUncheckedCreateWithoutCategoriesInput>
  }

  export type TicketSLACreateWithoutCategoriesInput = {
    id?: string
    name: string
    description?: string | null
    firstResponseTime: JsonNullValueInput | InputJsonValue
    resolutionTime: JsonNullValueInput | InputJsonValue
    businessHours: JsonNullValueInput | InputJsonValue
    excludeHolidays?: boolean
    holidayCalendarId?: string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: boolean
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    tickets?: TicketCreateNestedManyWithoutSlaInput
  }

  export type TicketSLAUncheckedCreateWithoutCategoriesInput = {
    id?: string
    name: string
    description?: string | null
    firstResponseTime: JsonNullValueInput | InputJsonValue
    resolutionTime: JsonNullValueInput | InputJsonValue
    businessHours: JsonNullValueInput | InputJsonValue
    excludeHolidays?: boolean
    holidayCalendarId?: string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: boolean
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
    tickets?: TicketUncheckedCreateNestedManyWithoutSlaInput
  }

  export type TicketSLACreateOrConnectWithoutCategoriesInput = {
    where: TicketSLAWhereUniqueInput
    create: XOR<TicketSLACreateWithoutCategoriesInput, TicketSLAUncheckedCreateWithoutCategoriesInput>
  }

  export type TicketCreateWithoutCategoryInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    assigneeGroup?: AssignmentGroupCreateNestedOneWithoutTicketsInput
    sla?: TicketSLACreateNestedOneWithoutTicketsInput
    parentTicket?: TicketCreateNestedOneWithoutChildTicketsInput
    childTickets?: TicketCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentCreateNestedManyWithoutTicketInput
    activities?: TicketActivityCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateWithoutCategoryInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    childTickets?: TicketUncheckedCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentUncheckedCreateNestedManyWithoutTicketInput
    activities?: TicketActivityUncheckedCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketCreateOrConnectWithoutCategoryInput = {
    where: TicketWhereUniqueInput
    create: XOR<TicketCreateWithoutCategoryInput, TicketUncheckedCreateWithoutCategoryInput>
  }

  export type TicketCreateManyCategoryInputEnvelope = {
    data: TicketCreateManyCategoryInput | TicketCreateManyCategoryInput[]
    skipDuplicates?: boolean
  }

  export type TicketCategoryUpsertWithoutChildrenInput = {
    update: XOR<TicketCategoryUpdateWithoutChildrenInput, TicketCategoryUncheckedUpdateWithoutChildrenInput>
    create: XOR<TicketCategoryCreateWithoutChildrenInput, TicketCategoryUncheckedCreateWithoutChildrenInput>
    where?: TicketCategoryWhereInput
  }

  export type TicketCategoryUpdateToOneWithWhereWithoutChildrenInput = {
    where?: TicketCategoryWhereInput
    data: XOR<TicketCategoryUpdateWithoutChildrenInput, TicketCategoryUncheckedUpdateWithoutChildrenInput>
  }

  export type TicketCategoryUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    parent?: TicketCategoryUpdateOneWithoutChildrenNestedInput
    defaultAssigneeGroup?: AssignmentGroupUpdateOneWithoutCategoriesNestedInput
    sla?: TicketSLAUpdateOneWithoutCategoriesNestedInput
    tickets?: TicketUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUncheckedUpdateWithoutChildrenInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    defaultAssigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    tickets?: TicketUncheckedUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUpsertWithWhereUniqueWithoutParentInput = {
    where: TicketCategoryWhereUniqueInput
    update: XOR<TicketCategoryUpdateWithoutParentInput, TicketCategoryUncheckedUpdateWithoutParentInput>
    create: XOR<TicketCategoryCreateWithoutParentInput, TicketCategoryUncheckedCreateWithoutParentInput>
  }

  export type TicketCategoryUpdateWithWhereUniqueWithoutParentInput = {
    where: TicketCategoryWhereUniqueInput
    data: XOR<TicketCategoryUpdateWithoutParentInput, TicketCategoryUncheckedUpdateWithoutParentInput>
  }

  export type TicketCategoryUpdateManyWithWhereWithoutParentInput = {
    where: TicketCategoryScalarWhereInput
    data: XOR<TicketCategoryUpdateManyMutationInput, TicketCategoryUncheckedUpdateManyWithoutParentInput>
  }

  export type TicketCategoryScalarWhereInput = {
    AND?: TicketCategoryScalarWhereInput | TicketCategoryScalarWhereInput[]
    OR?: TicketCategoryScalarWhereInput[]
    NOT?: TicketCategoryScalarWhereInput | TicketCategoryScalarWhereInput[]
    id?: UuidFilter<"TicketCategory"> | string
    name?: StringFilter<"TicketCategory"> | string
    code?: StringFilter<"TicketCategory"> | string
    description?: StringNullableFilter<"TicketCategory"> | string | null
    icon?: StringNullableFilter<"TicketCategory"> | string | null
    parentId?: UuidNullableFilter<"TicketCategory"> | string | null
    defaultPriority?: EnumTicketPriorityFilter<"TicketCategory"> | $Enums.TicketPriority
    defaultAssigneeGroupId?: UuidNullableFilter<"TicketCategory"> | string | null
    slaId?: UuidNullableFilter<"TicketCategory"> | string | null
    formTemplateId?: UuidNullableFilter<"TicketCategory"> | string | null
    allowedDepartmentIds?: StringNullableListFilter<"TicketCategory">
    allowedRoleIds?: StringNullableListFilter<"TicketCategory">
    isActive?: BoolFilter<"TicketCategory"> | boolean
    sortOrder?: IntFilter<"TicketCategory"> | number
    createdAt?: DateTimeFilter<"TicketCategory"> | Date | string
    updatedAt?: DateTimeFilter<"TicketCategory"> | Date | string
  }

  export type AssignmentGroupUpsertWithoutCategoriesInput = {
    update: XOR<AssignmentGroupUpdateWithoutCategoriesInput, AssignmentGroupUncheckedUpdateWithoutCategoriesInput>
    create: XOR<AssignmentGroupCreateWithoutCategoriesInput, AssignmentGroupUncheckedCreateWithoutCategoriesInput>
    where?: AssignmentGroupWhereInput
  }

  export type AssignmentGroupUpdateToOneWithWhereWithoutCategoriesInput = {
    where?: AssignmentGroupWhereInput
    data: XOR<AssignmentGroupUpdateWithoutCategoriesInput, AssignmentGroupUncheckedUpdateWithoutCategoriesInput>
  }

  export type AssignmentGroupUpdateWithoutCategoriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    memberIds?: AssignmentGroupUpdatememberIdsInput | string[]
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    skills?: AssignmentGroupUpdateskillsInput | string[]
    assignmentStrategy?: EnumAssignmentStrategyFieldUpdateOperationsInput | $Enums.AssignmentStrategy
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    tickets?: TicketUpdateManyWithoutAssigneeGroupNestedInput
  }

  export type AssignmentGroupUncheckedUpdateWithoutCategoriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    memberIds?: AssignmentGroupUpdatememberIdsInput | string[]
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    skills?: AssignmentGroupUpdateskillsInput | string[]
    assignmentStrategy?: EnumAssignmentStrategyFieldUpdateOperationsInput | $Enums.AssignmentStrategy
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    tickets?: TicketUncheckedUpdateManyWithoutAssigneeGroupNestedInput
  }

  export type TicketSLAUpsertWithoutCategoriesInput = {
    update: XOR<TicketSLAUpdateWithoutCategoriesInput, TicketSLAUncheckedUpdateWithoutCategoriesInput>
    create: XOR<TicketSLACreateWithoutCategoriesInput, TicketSLAUncheckedCreateWithoutCategoriesInput>
    where?: TicketSLAWhereInput
  }

  export type TicketSLAUpdateToOneWithWhereWithoutCategoriesInput = {
    where?: TicketSLAWhereInput
    data: XOR<TicketSLAUpdateWithoutCategoriesInput, TicketSLAUncheckedUpdateWithoutCategoriesInput>
  }

  export type TicketSLAUpdateWithoutCategoriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    firstResponseTime?: JsonNullValueInput | InputJsonValue
    resolutionTime?: JsonNullValueInput | InputJsonValue
    businessHours?: JsonNullValueInput | InputJsonValue
    excludeHolidays?: BoolFieldUpdateOperationsInput | boolean
    holidayCalendarId?: NullableStringFieldUpdateOperationsInput | string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: BoolFieldUpdateOperationsInput | boolean
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    tickets?: TicketUpdateManyWithoutSlaNestedInput
  }

  export type TicketSLAUncheckedUpdateWithoutCategoriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    firstResponseTime?: JsonNullValueInput | InputJsonValue
    resolutionTime?: JsonNullValueInput | InputJsonValue
    businessHours?: JsonNullValueInput | InputJsonValue
    excludeHolidays?: BoolFieldUpdateOperationsInput | boolean
    holidayCalendarId?: NullableStringFieldUpdateOperationsInput | string | null
    escalationRules?: NullableJsonNullValueInput | InputJsonValue
    isActive?: BoolFieldUpdateOperationsInput | boolean
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    tickets?: TicketUncheckedUpdateManyWithoutSlaNestedInput
  }

  export type TicketUpsertWithWhereUniqueWithoutCategoryInput = {
    where: TicketWhereUniqueInput
    update: XOR<TicketUpdateWithoutCategoryInput, TicketUncheckedUpdateWithoutCategoryInput>
    create: XOR<TicketCreateWithoutCategoryInput, TicketUncheckedCreateWithoutCategoryInput>
  }

  export type TicketUpdateWithWhereUniqueWithoutCategoryInput = {
    where: TicketWhereUniqueInput
    data: XOR<TicketUpdateWithoutCategoryInput, TicketUncheckedUpdateWithoutCategoryInput>
  }

  export type TicketUpdateManyWithWhereWithoutCategoryInput = {
    where: TicketScalarWhereInput
    data: XOR<TicketUpdateManyMutationInput, TicketUncheckedUpdateManyWithoutCategoryInput>
  }

  export type TicketCreateWithoutCommentsInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    category: TicketCategoryCreateNestedOneWithoutTicketsInput
    assigneeGroup?: AssignmentGroupCreateNestedOneWithoutTicketsInput
    sla?: TicketSLACreateNestedOneWithoutTicketsInput
    parentTicket?: TicketCreateNestedOneWithoutChildTicketsInput
    childTickets?: TicketCreateNestedManyWithoutParentTicketInput
    activities?: TicketActivityCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateWithoutCommentsInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    childTickets?: TicketUncheckedCreateNestedManyWithoutParentTicketInput
    activities?: TicketActivityUncheckedCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketCreateOrConnectWithoutCommentsInput = {
    where: TicketWhereUniqueInput
    create: XOR<TicketCreateWithoutCommentsInput, TicketUncheckedCreateWithoutCommentsInput>
  }

  export type TicketAttachmentCreateWithoutCommentInput = {
    id?: string
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
    ticket: TicketCreateNestedOneWithoutAttachmentsInput
  }

  export type TicketAttachmentUncheckedCreateWithoutCommentInput = {
    id?: string
    ticketId: string
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
  }

  export type TicketAttachmentCreateOrConnectWithoutCommentInput = {
    where: TicketAttachmentWhereUniqueInput
    create: XOR<TicketAttachmentCreateWithoutCommentInput, TicketAttachmentUncheckedCreateWithoutCommentInput>
  }

  export type TicketAttachmentCreateManyCommentInputEnvelope = {
    data: TicketAttachmentCreateManyCommentInput | TicketAttachmentCreateManyCommentInput[]
    skipDuplicates?: boolean
  }

  export type TicketUpsertWithoutCommentsInput = {
    update: XOR<TicketUpdateWithoutCommentsInput, TicketUncheckedUpdateWithoutCommentsInput>
    create: XOR<TicketCreateWithoutCommentsInput, TicketUncheckedCreateWithoutCommentsInput>
    where?: TicketWhereInput
  }

  export type TicketUpdateToOneWithWhereWithoutCommentsInput = {
    where?: TicketWhereInput
    data: XOR<TicketUpdateWithoutCommentsInput, TicketUncheckedUpdateWithoutCommentsInput>
  }

  export type TicketUpdateWithoutCommentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    category?: TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput
    assigneeGroup?: AssignmentGroupUpdateOneWithoutTicketsNestedInput
    sla?: TicketSLAUpdateOneWithoutTicketsNestedInput
    parentTicket?: TicketUpdateOneWithoutChildTicketsNestedInput
    childTickets?: TicketUpdateManyWithoutParentTicketNestedInput
    activities?: TicketActivityUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateWithoutCommentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childTickets?: TicketUncheckedUpdateManyWithoutParentTicketNestedInput
    activities?: TicketActivityUncheckedUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketAttachmentUpsertWithWhereUniqueWithoutCommentInput = {
    where: TicketAttachmentWhereUniqueInput
    update: XOR<TicketAttachmentUpdateWithoutCommentInput, TicketAttachmentUncheckedUpdateWithoutCommentInput>
    create: XOR<TicketAttachmentCreateWithoutCommentInput, TicketAttachmentUncheckedCreateWithoutCommentInput>
  }

  export type TicketAttachmentUpdateWithWhereUniqueWithoutCommentInput = {
    where: TicketAttachmentWhereUniqueInput
    data: XOR<TicketAttachmentUpdateWithoutCommentInput, TicketAttachmentUncheckedUpdateWithoutCommentInput>
  }

  export type TicketAttachmentUpdateManyWithWhereWithoutCommentInput = {
    where: TicketAttachmentScalarWhereInput
    data: XOR<TicketAttachmentUpdateManyMutationInput, TicketAttachmentUncheckedUpdateManyWithoutCommentInput>
  }

  export type TicketCreateWithoutAttachmentsInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    category: TicketCategoryCreateNestedOneWithoutTicketsInput
    assigneeGroup?: AssignmentGroupCreateNestedOneWithoutTicketsInput
    sla?: TicketSLACreateNestedOneWithoutTicketsInput
    parentTicket?: TicketCreateNestedOneWithoutChildTicketsInput
    childTickets?: TicketCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentCreateNestedManyWithoutTicketInput
    activities?: TicketActivityCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateWithoutAttachmentsInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    childTickets?: TicketUncheckedCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentUncheckedCreateNestedManyWithoutTicketInput
    activities?: TicketActivityUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketCreateOrConnectWithoutAttachmentsInput = {
    where: TicketWhereUniqueInput
    create: XOR<TicketCreateWithoutAttachmentsInput, TicketUncheckedCreateWithoutAttachmentsInput>
  }

  export type TicketCommentCreateWithoutAttachmentsInput = {
    id?: string
    content: string
    type?: $Enums.CommentType
    isInternal?: boolean
    visibilityScope?: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds?: TicketCommentCreatementionedUserIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    ticket: TicketCreateNestedOneWithoutCommentsInput
  }

  export type TicketCommentUncheckedCreateWithoutAttachmentsInput = {
    id?: string
    ticketId: string
    content: string
    type?: $Enums.CommentType
    isInternal?: boolean
    visibilityScope?: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds?: TicketCommentCreatementionedUserIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type TicketCommentCreateOrConnectWithoutAttachmentsInput = {
    where: TicketCommentWhereUniqueInput
    create: XOR<TicketCommentCreateWithoutAttachmentsInput, TicketCommentUncheckedCreateWithoutAttachmentsInput>
  }

  export type TicketUpsertWithoutAttachmentsInput = {
    update: XOR<TicketUpdateWithoutAttachmentsInput, TicketUncheckedUpdateWithoutAttachmentsInput>
    create: XOR<TicketCreateWithoutAttachmentsInput, TicketUncheckedCreateWithoutAttachmentsInput>
    where?: TicketWhereInput
  }

  export type TicketUpdateToOneWithWhereWithoutAttachmentsInput = {
    where?: TicketWhereInput
    data: XOR<TicketUpdateWithoutAttachmentsInput, TicketUncheckedUpdateWithoutAttachmentsInput>
  }

  export type TicketUpdateWithoutAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    category?: TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput
    assigneeGroup?: AssignmentGroupUpdateOneWithoutTicketsNestedInput
    sla?: TicketSLAUpdateOneWithoutTicketsNestedInput
    parentTicket?: TicketUpdateOneWithoutChildTicketsNestedInput
    childTickets?: TicketUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateWithoutAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childTickets?: TicketUncheckedUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUncheckedUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketCommentUpsertWithoutAttachmentsInput = {
    update: XOR<TicketCommentUpdateWithoutAttachmentsInput, TicketCommentUncheckedUpdateWithoutAttachmentsInput>
    create: XOR<TicketCommentCreateWithoutAttachmentsInput, TicketCommentUncheckedCreateWithoutAttachmentsInput>
    where?: TicketCommentWhereInput
  }

  export type TicketCommentUpdateToOneWithWhereWithoutAttachmentsInput = {
    where?: TicketCommentWhereInput
    data: XOR<TicketCommentUpdateWithoutAttachmentsInput, TicketCommentUncheckedUpdateWithoutAttachmentsInput>
  }

  export type TicketCommentUpdateWithoutAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ticket?: TicketUpdateOneRequiredWithoutCommentsNestedInput
  }

  export type TicketCommentUncheckedUpdateWithoutAttachmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketCreateWithoutActivitiesInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    category: TicketCategoryCreateNestedOneWithoutTicketsInput
    assigneeGroup?: AssignmentGroupCreateNestedOneWithoutTicketsInput
    sla?: TicketSLACreateNestedOneWithoutTicketsInput
    parentTicket?: TicketCreateNestedOneWithoutChildTicketsInput
    childTickets?: TicketCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateWithoutActivitiesInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    childTickets?: TicketUncheckedCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentUncheckedCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketCreateOrConnectWithoutActivitiesInput = {
    where: TicketWhereUniqueInput
    create: XOR<TicketCreateWithoutActivitiesInput, TicketUncheckedCreateWithoutActivitiesInput>
  }

  export type TicketUpsertWithoutActivitiesInput = {
    update: XOR<TicketUpdateWithoutActivitiesInput, TicketUncheckedUpdateWithoutActivitiesInput>
    create: XOR<TicketCreateWithoutActivitiesInput, TicketUncheckedCreateWithoutActivitiesInput>
    where?: TicketWhereInput
  }

  export type TicketUpdateToOneWithWhereWithoutActivitiesInput = {
    where?: TicketWhereInput
    data: XOR<TicketUpdateWithoutActivitiesInput, TicketUncheckedUpdateWithoutActivitiesInput>
  }

  export type TicketUpdateWithoutActivitiesInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    category?: TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput
    assigneeGroup?: AssignmentGroupUpdateOneWithoutTicketsNestedInput
    sla?: TicketSLAUpdateOneWithoutTicketsNestedInput
    parentTicket?: TicketUpdateOneWithoutChildTicketsNestedInput
    childTickets?: TicketUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateWithoutActivitiesInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childTickets?: TicketUncheckedUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUncheckedUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketCategoryCreateWithoutSlaInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    defaultPriority?: $Enums.TicketPriority
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    parent?: TicketCategoryCreateNestedOneWithoutChildrenInput
    children?: TicketCategoryCreateNestedManyWithoutParentInput
    defaultAssigneeGroup?: AssignmentGroupCreateNestedOneWithoutCategoriesInput
    tickets?: TicketCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryUncheckedCreateWithoutSlaInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    parentId?: string | null
    defaultPriority?: $Enums.TicketPriority
    defaultAssigneeGroupId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    children?: TicketCategoryUncheckedCreateNestedManyWithoutParentInput
    tickets?: TicketUncheckedCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryCreateOrConnectWithoutSlaInput = {
    where: TicketCategoryWhereUniqueInput
    create: XOR<TicketCategoryCreateWithoutSlaInput, TicketCategoryUncheckedCreateWithoutSlaInput>
  }

  export type TicketCategoryCreateManySlaInputEnvelope = {
    data: TicketCategoryCreateManySlaInput | TicketCategoryCreateManySlaInput[]
    skipDuplicates?: boolean
  }

  export type TicketCreateWithoutSlaInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    category: TicketCategoryCreateNestedOneWithoutTicketsInput
    assigneeGroup?: AssignmentGroupCreateNestedOneWithoutTicketsInput
    parentTicket?: TicketCreateNestedOneWithoutChildTicketsInput
    childTickets?: TicketCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentCreateNestedManyWithoutTicketInput
    activities?: TicketActivityCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateWithoutSlaInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    childTickets?: TicketUncheckedCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentUncheckedCreateNestedManyWithoutTicketInput
    activities?: TicketActivityUncheckedCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketCreateOrConnectWithoutSlaInput = {
    where: TicketWhereUniqueInput
    create: XOR<TicketCreateWithoutSlaInput, TicketUncheckedCreateWithoutSlaInput>
  }

  export type TicketCreateManySlaInputEnvelope = {
    data: TicketCreateManySlaInput | TicketCreateManySlaInput[]
    skipDuplicates?: boolean
  }

  export type TicketCategoryUpsertWithWhereUniqueWithoutSlaInput = {
    where: TicketCategoryWhereUniqueInput
    update: XOR<TicketCategoryUpdateWithoutSlaInput, TicketCategoryUncheckedUpdateWithoutSlaInput>
    create: XOR<TicketCategoryCreateWithoutSlaInput, TicketCategoryUncheckedCreateWithoutSlaInput>
  }

  export type TicketCategoryUpdateWithWhereUniqueWithoutSlaInput = {
    where: TicketCategoryWhereUniqueInput
    data: XOR<TicketCategoryUpdateWithoutSlaInput, TicketCategoryUncheckedUpdateWithoutSlaInput>
  }

  export type TicketCategoryUpdateManyWithWhereWithoutSlaInput = {
    where: TicketCategoryScalarWhereInput
    data: XOR<TicketCategoryUpdateManyMutationInput, TicketCategoryUncheckedUpdateManyWithoutSlaInput>
  }

  export type TicketUpsertWithWhereUniqueWithoutSlaInput = {
    where: TicketWhereUniqueInput
    update: XOR<TicketUpdateWithoutSlaInput, TicketUncheckedUpdateWithoutSlaInput>
    create: XOR<TicketCreateWithoutSlaInput, TicketUncheckedCreateWithoutSlaInput>
  }

  export type TicketUpdateWithWhereUniqueWithoutSlaInput = {
    where: TicketWhereUniqueInput
    data: XOR<TicketUpdateWithoutSlaInput, TicketUncheckedUpdateWithoutSlaInput>
  }

  export type TicketUpdateManyWithWhereWithoutSlaInput = {
    where: TicketScalarWhereInput
    data: XOR<TicketUpdateManyMutationInput, TicketUncheckedUpdateManyWithoutSlaInput>
  }

  export type TicketCategoryCreateWithoutDefaultAssigneeGroupInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    defaultPriority?: $Enums.TicketPriority
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    parent?: TicketCategoryCreateNestedOneWithoutChildrenInput
    children?: TicketCategoryCreateNestedManyWithoutParentInput
    sla?: TicketSLACreateNestedOneWithoutCategoriesInput
    tickets?: TicketCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    parentId?: string | null
    defaultPriority?: $Enums.TicketPriority
    slaId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
    children?: TicketCategoryUncheckedCreateNestedManyWithoutParentInput
    tickets?: TicketUncheckedCreateNestedManyWithoutCategoryInput
  }

  export type TicketCategoryCreateOrConnectWithoutDefaultAssigneeGroupInput = {
    where: TicketCategoryWhereUniqueInput
    create: XOR<TicketCategoryCreateWithoutDefaultAssigneeGroupInput, TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput>
  }

  export type TicketCategoryCreateManyDefaultAssigneeGroupInputEnvelope = {
    data: TicketCategoryCreateManyDefaultAssigneeGroupInput | TicketCategoryCreateManyDefaultAssigneeGroupInput[]
    skipDuplicates?: boolean
  }

  export type TicketCreateWithoutAssigneeGroupInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    category: TicketCategoryCreateNestedOneWithoutTicketsInput
    sla?: TicketSLACreateNestedOneWithoutTicketsInput
    parentTicket?: TicketCreateNestedOneWithoutChildTicketsInput
    childTickets?: TicketCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentCreateNestedManyWithoutTicketInput
    activities?: TicketActivityCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentCreateNestedManyWithoutTicketInput
  }

  export type TicketUncheckedCreateWithoutAssigneeGroupInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
    childTickets?: TicketUncheckedCreateNestedManyWithoutParentTicketInput
    comments?: TicketCommentUncheckedCreateNestedManyWithoutTicketInput
    activities?: TicketActivityUncheckedCreateNestedManyWithoutTicketInput
    attachments?: TicketAttachmentUncheckedCreateNestedManyWithoutTicketInput
  }

  export type TicketCreateOrConnectWithoutAssigneeGroupInput = {
    where: TicketWhereUniqueInput
    create: XOR<TicketCreateWithoutAssigneeGroupInput, TicketUncheckedCreateWithoutAssigneeGroupInput>
  }

  export type TicketCreateManyAssigneeGroupInputEnvelope = {
    data: TicketCreateManyAssigneeGroupInput | TicketCreateManyAssigneeGroupInput[]
    skipDuplicates?: boolean
  }

  export type TicketCategoryUpsertWithWhereUniqueWithoutDefaultAssigneeGroupInput = {
    where: TicketCategoryWhereUniqueInput
    update: XOR<TicketCategoryUpdateWithoutDefaultAssigneeGroupInput, TicketCategoryUncheckedUpdateWithoutDefaultAssigneeGroupInput>
    create: XOR<TicketCategoryCreateWithoutDefaultAssigneeGroupInput, TicketCategoryUncheckedCreateWithoutDefaultAssigneeGroupInput>
  }

  export type TicketCategoryUpdateWithWhereUniqueWithoutDefaultAssigneeGroupInput = {
    where: TicketCategoryWhereUniqueInput
    data: XOR<TicketCategoryUpdateWithoutDefaultAssigneeGroupInput, TicketCategoryUncheckedUpdateWithoutDefaultAssigneeGroupInput>
  }

  export type TicketCategoryUpdateManyWithWhereWithoutDefaultAssigneeGroupInput = {
    where: TicketCategoryScalarWhereInput
    data: XOR<TicketCategoryUpdateManyMutationInput, TicketCategoryUncheckedUpdateManyWithoutDefaultAssigneeGroupInput>
  }

  export type TicketUpsertWithWhereUniqueWithoutAssigneeGroupInput = {
    where: TicketWhereUniqueInput
    update: XOR<TicketUpdateWithoutAssigneeGroupInput, TicketUncheckedUpdateWithoutAssigneeGroupInput>
    create: XOR<TicketCreateWithoutAssigneeGroupInput, TicketUncheckedCreateWithoutAssigneeGroupInput>
  }

  export type TicketUpdateWithWhereUniqueWithoutAssigneeGroupInput = {
    where: TicketWhereUniqueInput
    data: XOR<TicketUpdateWithoutAssigneeGroupInput, TicketUncheckedUpdateWithoutAssigneeGroupInput>
  }

  export type TicketUpdateManyWithWhereWithoutAssigneeGroupInput = {
    where: TicketScalarWhereInput
    data: XOR<TicketUpdateManyMutationInput, TicketUncheckedUpdateManyWithoutAssigneeGroupInput>
  }

  export type RobotSkuCreateWithoutModelInput = {
    id?: string
    code: string
    name: string
    variant?: string | null
    defaultPrice?: Decimal | DecimalJsLike | number | string | null
    defaultCost?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    description?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnits?: RobotUnitCreateNestedManyWithoutSkuInput
  }

  export type RobotSkuUncheckedCreateWithoutModelInput = {
    id?: string
    code: string
    name: string
    variant?: string | null
    defaultPrice?: Decimal | DecimalJsLike | number | string | null
    defaultCost?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    description?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnits?: RobotUnitUncheckedCreateNestedManyWithoutSkuInput
  }

  export type RobotSkuCreateOrConnectWithoutModelInput = {
    where: RobotSkuWhereUniqueInput
    create: XOR<RobotSkuCreateWithoutModelInput, RobotSkuUncheckedCreateWithoutModelInput>
  }

  export type RobotSkuCreateManyModelInputEnvelope = {
    data: RobotSkuCreateManyModelInput | RobotSkuCreateManyModelInput[]
    skipDuplicates?: boolean
  }

  export type RobotUnitCreateWithoutModelInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutModelInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutModelInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutModelInput, RobotUnitUncheckedCreateWithoutModelInput>
  }

  export type RobotUnitCreateManyModelInputEnvelope = {
    data: RobotUnitCreateManyModelInput | RobotUnitCreateManyModelInput[]
    skipDuplicates?: boolean
  }

  export type RobotSkuUpsertWithWhereUniqueWithoutModelInput = {
    where: RobotSkuWhereUniqueInput
    update: XOR<RobotSkuUpdateWithoutModelInput, RobotSkuUncheckedUpdateWithoutModelInput>
    create: XOR<RobotSkuCreateWithoutModelInput, RobotSkuUncheckedCreateWithoutModelInput>
  }

  export type RobotSkuUpdateWithWhereUniqueWithoutModelInput = {
    where: RobotSkuWhereUniqueInput
    data: XOR<RobotSkuUpdateWithoutModelInput, RobotSkuUncheckedUpdateWithoutModelInput>
  }

  export type RobotSkuUpdateManyWithWhereWithoutModelInput = {
    where: RobotSkuScalarWhereInput
    data: XOR<RobotSkuUpdateManyMutationInput, RobotSkuUncheckedUpdateManyWithoutModelInput>
  }

  export type RobotSkuScalarWhereInput = {
    AND?: RobotSkuScalarWhereInput | RobotSkuScalarWhereInput[]
    OR?: RobotSkuScalarWhereInput[]
    NOT?: RobotSkuScalarWhereInput | RobotSkuScalarWhereInput[]
    id?: UuidFilter<"RobotSku"> | string
    modelId?: UuidFilter<"RobotSku"> | string
    code?: StringFilter<"RobotSku"> | string
    name?: StringFilter<"RobotSku"> | string
    variant?: StringNullableFilter<"RobotSku"> | string | null
    defaultPrice?: DecimalNullableFilter<"RobotSku"> | Decimal | DecimalJsLike | number | string | null
    defaultCost?: DecimalNullableFilter<"RobotSku"> | Decimal | DecimalJsLike | number | string | null
    currencyCode?: StringNullableFilter<"RobotSku"> | string | null
    description?: StringNullableFilter<"RobotSku"> | string | null
    enabled?: BoolFilter<"RobotSku"> | boolean
    metadata?: JsonFilter<"RobotSku">
    organizationId?: UuidFilter<"RobotSku"> | string
    createdAt?: DateTimeFilter<"RobotSku"> | Date | string
    updatedAt?: DateTimeFilter<"RobotSku"> | Date | string
    createdById?: UuidFilter<"RobotSku"> | string
    deletedAt?: DateTimeNullableFilter<"RobotSku"> | Date | string | null
  }

  export type RobotUnitUpsertWithWhereUniqueWithoutModelInput = {
    where: RobotUnitWhereUniqueInput
    update: XOR<RobotUnitUpdateWithoutModelInput, RobotUnitUncheckedUpdateWithoutModelInput>
    create: XOR<RobotUnitCreateWithoutModelInput, RobotUnitUncheckedCreateWithoutModelInput>
  }

  export type RobotUnitUpdateWithWhereUniqueWithoutModelInput = {
    where: RobotUnitWhereUniqueInput
    data: XOR<RobotUnitUpdateWithoutModelInput, RobotUnitUncheckedUpdateWithoutModelInput>
  }

  export type RobotUnitUpdateManyWithWhereWithoutModelInput = {
    where: RobotUnitScalarWhereInput
    data: XOR<RobotUnitUpdateManyMutationInput, RobotUnitUncheckedUpdateManyWithoutModelInput>
  }

  export type RobotUnitScalarWhereInput = {
    AND?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
    OR?: RobotUnitScalarWhereInput[]
    NOT?: RobotUnitScalarWhereInput | RobotUnitScalarWhereInput[]
    id?: UuidFilter<"RobotUnit"> | string
    organizationId?: UuidFilter<"RobotUnit"> | string
    version?: IntFilter<"RobotUnit"> | number
    ffsn?: StringFilter<"RobotUnit"> | string
    ffsnDisplay?: StringNullableFilter<"RobotUnit"> | string | null
    placeholderSnOrig?: StringNullableFilter<"RobotUnit"> | string | null
    supplierSn?: StringNullableFilter<"RobotUnit"> | string | null
    modelId?: UuidFilter<"RobotUnit"> | string
    skuId?: UuidFilter<"RobotUnit"> | string
    usageType?: EnumRobotUsageTypeFilter<"RobotUnit"> | $Enums.RobotUsageType
    purchaseOrderId?: UuidNullableFilter<"RobotUnit"> | string | null
    purchaseOrderLineId?: UuidNullableFilter<"RobotUnit"> | string | null
    originalSupplierId?: UuidNullableFilter<"RobotUnit"> | string | null
    manufactureDate?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
    retiredAt?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
    disposalType?: EnumRobotDisposalTypeNullableFilter<"RobotUnit"> | $Enums.RobotDisposalType | null
    disposalNotes?: StringNullableFilter<"RobotUnit"> | string | null
    sapMaterialNo?: StringNullableFilter<"RobotUnit"> | string | null
    metadata?: JsonFilter<"RobotUnit">
    createdAt?: DateTimeFilter<"RobotUnit"> | Date | string
    updatedAt?: DateTimeFilter<"RobotUnit"> | Date | string
    createdById?: UuidFilter<"RobotUnit"> | string
    deletedAt?: DateTimeNullableFilter<"RobotUnit"> | Date | string | null
  }

  export type RobotModelCreateWithoutSkusInput = {
    id?: string
    code: string
    name: string
    brand?: string | null
    description?: string | null
    imageUrl?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnits?: RobotUnitCreateNestedManyWithoutModelInput
  }

  export type RobotModelUncheckedCreateWithoutSkusInput = {
    id?: string
    code: string
    name: string
    brand?: string | null
    description?: string | null
    imageUrl?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnits?: RobotUnitUncheckedCreateNestedManyWithoutModelInput
  }

  export type RobotModelCreateOrConnectWithoutSkusInput = {
    where: RobotModelWhereUniqueInput
    create: XOR<RobotModelCreateWithoutSkusInput, RobotModelUncheckedCreateWithoutSkusInput>
  }

  export type RobotUnitCreateWithoutSkuInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutSkuInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutSkuInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutSkuInput, RobotUnitUncheckedCreateWithoutSkuInput>
  }

  export type RobotUnitCreateManySkuInputEnvelope = {
    data: RobotUnitCreateManySkuInput | RobotUnitCreateManySkuInput[]
    skipDuplicates?: boolean
  }

  export type RobotModelUpsertWithoutSkusInput = {
    update: XOR<RobotModelUpdateWithoutSkusInput, RobotModelUncheckedUpdateWithoutSkusInput>
    create: XOR<RobotModelCreateWithoutSkusInput, RobotModelUncheckedCreateWithoutSkusInput>
    where?: RobotModelWhereInput
  }

  export type RobotModelUpdateToOneWithWhereWithoutSkusInput = {
    where?: RobotModelWhereInput
    data: XOR<RobotModelUpdateWithoutSkusInput, RobotModelUncheckedUpdateWithoutSkusInput>
  }

  export type RobotModelUpdateWithoutSkusInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnits?: RobotUnitUpdateManyWithoutModelNestedInput
  }

  export type RobotModelUncheckedUpdateWithoutSkusInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnits?: RobotUnitUncheckedUpdateManyWithoutModelNestedInput
  }

  export type RobotUnitUpsertWithWhereUniqueWithoutSkuInput = {
    where: RobotUnitWhereUniqueInput
    update: XOR<RobotUnitUpdateWithoutSkuInput, RobotUnitUncheckedUpdateWithoutSkuInput>
    create: XOR<RobotUnitCreateWithoutSkuInput, RobotUnitUncheckedCreateWithoutSkuInput>
  }

  export type RobotUnitUpdateWithWhereUniqueWithoutSkuInput = {
    where: RobotUnitWhereUniqueInput
    data: XOR<RobotUnitUpdateWithoutSkuInput, RobotUnitUncheckedUpdateWithoutSkuInput>
  }

  export type RobotUnitUpdateManyWithWhereWithoutSkuInput = {
    where: RobotUnitScalarWhereInput
    data: XOR<RobotUnitUpdateManyMutationInput, RobotUnitUncheckedUpdateManyWithoutSkuInput>
  }

  export type RobotModelCreateWithoutRobotUnitsInput = {
    id?: string
    code: string
    name: string
    brand?: string | null
    description?: string | null
    imageUrl?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    skus?: RobotSkuCreateNestedManyWithoutModelInput
  }

  export type RobotModelUncheckedCreateWithoutRobotUnitsInput = {
    id?: string
    code: string
    name: string
    brand?: string | null
    description?: string | null
    imageUrl?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    skus?: RobotSkuUncheckedCreateNestedManyWithoutModelInput
  }

  export type RobotModelCreateOrConnectWithoutRobotUnitsInput = {
    where: RobotModelWhereUniqueInput
    create: XOR<RobotModelCreateWithoutRobotUnitsInput, RobotModelUncheckedCreateWithoutRobotUnitsInput>
  }

  export type RobotSkuCreateWithoutRobotUnitsInput = {
    id?: string
    code: string
    name: string
    variant?: string | null
    defaultPrice?: Decimal | DecimalJsLike | number | string | null
    defaultCost?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    description?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutSkusInput
  }

  export type RobotSkuUncheckedCreateWithoutRobotUnitsInput = {
    id?: string
    modelId: string
    code: string
    name: string
    variant?: string | null
    defaultPrice?: Decimal | DecimalJsLike | number | string | null
    defaultCost?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    description?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotSkuCreateOrConnectWithoutRobotUnitsInput = {
    where: RobotSkuWhereUniqueInput
    create: XOR<RobotSkuCreateWithoutRobotUnitsInput, RobotSkuUncheckedCreateWithoutRobotUnitsInput>
  }

  export type PurchaseOrderCreateWithoutRobotUnitsInput = {
    id?: string
    poNo: string
    sapPoNo?: string | null
    supplierId: string
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    status?: $Enums.PurchaseOrderStatus
    orderedAt: Date | string
    expectedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: PurchaseOrderLineCreateNestedManyWithoutPurchaseOrderInput
  }

  export type PurchaseOrderUncheckedCreateWithoutRobotUnitsInput = {
    id?: string
    poNo: string
    sapPoNo?: string | null
    supplierId: string
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    status?: $Enums.PurchaseOrderStatus
    orderedAt: Date | string
    expectedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: PurchaseOrderLineUncheckedCreateNestedManyWithoutPurchaseOrderInput
  }

  export type PurchaseOrderCreateOrConnectWithoutRobotUnitsInput = {
    where: PurchaseOrderWhereUniqueInput
    create: XOR<PurchaseOrderCreateWithoutRobotUnitsInput, PurchaseOrderUncheckedCreateWithoutRobotUnitsInput>
  }

  export type PurchaseOrderLineCreateWithoutRobotUnitsInput = {
    id?: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    currencyCode: string
    defaultUsageType?: $Enums.RobotUsageType | null
    placeholderPattern?: string | null
    expectedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    purchaseOrder: PurchaseOrderCreateNestedOneWithoutLinesInput
  }

  export type PurchaseOrderLineUncheckedCreateWithoutRobotUnitsInput = {
    id?: string
    purchaseOrderId: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    currencyCode: string
    defaultUsageType?: $Enums.RobotUsageType | null
    placeholderPattern?: string | null
    expectedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PurchaseOrderLineCreateOrConnectWithoutRobotUnitsInput = {
    where: PurchaseOrderLineWhereUniqueInput
    create: XOR<PurchaseOrderLineCreateWithoutRobotUnitsInput, PurchaseOrderLineUncheckedCreateWithoutRobotUnitsInput>
  }

  export type RobotUnitSnapshotCreateWithoutRobotUnitInput = {
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
    lastEvent?: RobotLifecycleEventCreateNestedOneWithoutSnapshotsAsLastEventInput
    salesOrder?: SalesOrderCreateNestedOneWithoutSnapshotRefsInput
    deliveryRequest?: DeliveryRequestCreateNestedOneWithoutSnapshotRefsInput
  }

  export type RobotUnitSnapshotUncheckedCreateWithoutRobotUnitInput = {
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSalesOrderId?: string | null
    currentDeliveryRequestId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventId?: string | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type RobotUnitSnapshotCreateOrConnectWithoutRobotUnitInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    create: XOR<RobotUnitSnapshotCreateWithoutRobotUnitInput, RobotUnitSnapshotUncheckedCreateWithoutRobotUnitInput>
  }

  export type RobotLifecycleEventCreateWithoutRobotUnitInput = {
    id?: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage?: $Enums.RobotLifecycleStage | null
    toStage?: $Enums.RobotLifecycleStage | null
    fromLocationId?: string | null
    toLocationId?: string | null
    actorUserId?: string | null
    partnerId?: string | null
    customerId?: string | null
    relatedType?: $Enums.RobotEventRelatedType | null
    relatedId?: string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: string | null
    occurredAt: Date | string
    organizationId: string
    createdAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshotsAsLastEvent?: RobotUnitSnapshotCreateNestedManyWithoutLastEventInput
  }

  export type RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage?: $Enums.RobotLifecycleStage | null
    toStage?: $Enums.RobotLifecycleStage | null
    fromLocationId?: string | null
    toLocationId?: string | null
    actorUserId?: string | null
    partnerId?: string | null
    customerId?: string | null
    relatedType?: $Enums.RobotEventRelatedType | null
    relatedId?: string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: string | null
    occurredAt: Date | string
    organizationId: string
    createdAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshotsAsLastEvent?: RobotUnitSnapshotUncheckedCreateNestedManyWithoutLastEventInput
  }

  export type RobotLifecycleEventCreateOrConnectWithoutRobotUnitInput = {
    where: RobotLifecycleEventWhereUniqueInput
    create: XOR<RobotLifecycleEventCreateWithoutRobotUnitInput, RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput>
  }

  export type RobotLifecycleEventCreateManyRobotUnitInputEnvelope = {
    data: RobotLifecycleEventCreateManyRobotUnitInput | RobotLifecycleEventCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type QualityLabelRecordCreateWithoutRobotUnitInput = {
    id?: string
    labelTypeCode: string
    status?: $Enums.QualityLabelStatus
    appliedAt?: Date | string | null
    verifiedAt?: Date | string | null
    appliedById?: string | null
    verifiedById?: string | null
    photoAttachmentId?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type QualityLabelRecordUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    labelTypeCode: string
    status?: $Enums.QualityLabelStatus
    appliedAt?: Date | string | null
    verifiedAt?: Date | string | null
    appliedById?: string | null
    verifiedById?: string | null
    photoAttachmentId?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type QualityLabelRecordCreateOrConnectWithoutRobotUnitInput = {
    where: QualityLabelRecordWhereUniqueInput
    create: XOR<QualityLabelRecordCreateWithoutRobotUnitInput, QualityLabelRecordUncheckedCreateWithoutRobotUnitInput>
  }

  export type QualityLabelRecordCreateManyRobotUnitInputEnvelope = {
    data: QualityLabelRecordCreateManyRobotUnitInput | QualityLabelRecordCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type RobotPackageReadinessCreateWithoutRobotUnitInput = {
    id?: string
    specialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    readyAt?: Date | string | null
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type RobotPackageReadinessUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    specialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    readyAt?: Date | string | null
    hasRobot?: boolean
    hasBattery?: boolean
    hasRemote?: boolean
    hasUsaPowerCable?: boolean
    hasCnCableWithAdapter?: boolean
    hasPowerSupply?: boolean
    hasChargingDock?: boolean
    hasFootPads?: boolean
    hasToolsKit?: boolean
    hasPaperwork?: boolean
    completedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type RobotPackageReadinessCreateOrConnectWithoutRobotUnitInput = {
    where: RobotPackageReadinessWhereUniqueInput
    create: XOR<RobotPackageReadinessCreateWithoutRobotUnitInput, RobotPackageReadinessUncheckedCreateWithoutRobotUnitInput>
  }

  export type InspectionRecordCreateWithoutRobotUnitInput = {
    id?: string
    inspectionNo: number
    inspectedAt: Date | string
    inspectorId?: string | null
    issue?: string | null
    issueTagCode?: string | null
    resolvedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type InspectionRecordUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    inspectionNo: number
    inspectedAt: Date | string
    inspectorId?: string | null
    issue?: string | null
    issueTagCode?: string | null
    resolvedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type InspectionRecordCreateOrConnectWithoutRobotUnitInput = {
    where: InspectionRecordWhereUniqueInput
    create: XOR<InspectionRecordCreateWithoutRobotUnitInput, InspectionRecordUncheckedCreateWithoutRobotUnitInput>
  }

  export type InspectionRecordCreateManyRobotUnitInputEnvelope = {
    data: InspectionRecordCreateManyRobotUnitInput | InspectionRecordCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type LogisticsLegCreateWithoutRobotUnitInput = {
    id?: string
    legNo: number
    fromLocationId?: string | null
    toLocationId?: string | null
    departedAt?: Date | string | null
    arrivedAt?: Date | string | null
    logisticsStatus: $Enums.LogisticsStatus
    importDeclarationTypeCode?: string | null
    tariffTypeCode?: string | null
    shippingReceiptAttachmentId?: string | null
    additionalNotes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type LogisticsLegUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    legNo: number
    fromLocationId?: string | null
    toLocationId?: string | null
    departedAt?: Date | string | null
    arrivedAt?: Date | string | null
    logisticsStatus: $Enums.LogisticsStatus
    importDeclarationTypeCode?: string | null
    tariffTypeCode?: string | null
    shippingReceiptAttachmentId?: string | null
    additionalNotes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type LogisticsLegCreateOrConnectWithoutRobotUnitInput = {
    where: LogisticsLegWhereUniqueInput
    create: XOR<LogisticsLegCreateWithoutRobotUnitInput, LogisticsLegUncheckedCreateWithoutRobotUnitInput>
  }

  export type LogisticsLegCreateManyRobotUnitInputEnvelope = {
    data: LogisticsLegCreateManyRobotUnitInput | LogisticsLegCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type ComplianceCheckCreateWithoutRobotUnitInput = {
    id?: string
    dateReady?: Date | string | null
    stickerStatus?: $Enums.StickerStatus | null
    fccStatus?: $Enums.FccStatus | null
    complianceNotes?: string | null
    lastUpdatedAt?: Date | string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type ComplianceCheckUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    dateReady?: Date | string | null
    stickerStatus?: $Enums.StickerStatus | null
    fccStatus?: $Enums.FccStatus | null
    complianceNotes?: string | null
    lastUpdatedAt?: Date | string
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type ComplianceCheckCreateOrConnectWithoutRobotUnitInput = {
    where: ComplianceCheckWhereUniqueInput
    create: XOR<ComplianceCheckCreateWithoutRobotUnitInput, ComplianceCheckUncheckedCreateWithoutRobotUnitInput>
  }

  export type RentalAgreementCreateWithoutRobotUnitInput = {
    id?: string
    customerId: string
    startAt: Date | string
    endAt: Date | string
    periodMonths: number
    monthlyRate: Decimal | DecimalJsLike | number | string
    currencyCode: string
    status?: $Enums.RentalAgreementStatus
    contractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    schedules?: RentalPaymentScheduleCreateNestedManyWithoutRentalAgreementInput
  }

  export type RentalAgreementUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    customerId: string
    startAt: Date | string
    endAt: Date | string
    periodMonths: number
    monthlyRate: Decimal | DecimalJsLike | number | string
    currencyCode: string
    status?: $Enums.RentalAgreementStatus
    contractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    schedules?: RentalPaymentScheduleUncheckedCreateNestedManyWithoutRentalAgreementInput
  }

  export type RentalAgreementCreateOrConnectWithoutRobotUnitInput = {
    where: RentalAgreementWhereUniqueInput
    create: XOR<RentalAgreementCreateWithoutRobotUnitInput, RentalAgreementUncheckedCreateWithoutRobotUnitInput>
  }

  export type RentalAgreementCreateManyRobotUnitInputEnvelope = {
    data: RentalAgreementCreateManyRobotUnitInput | RentalAgreementCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type ServiceTicketCreateWithoutRobotUnitInput = {
    id?: string
    ticketNo: string
    customerId?: string | null
    issueTypeCode: string
    severity?: $Enums.TicketSeverity
    status?: $Enums.ServiceTicketStatus
    serviceRecord?: string | null
    customerFeedback?: string | null
    openedAt: Date | string
    openedById: string
    closedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    activities?: ServiceTicketActivityCreateNestedManyWithoutTicketInput
  }

  export type ServiceTicketUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    ticketNo: string
    customerId?: string | null
    issueTypeCode: string
    severity?: $Enums.TicketSeverity
    status?: $Enums.ServiceTicketStatus
    serviceRecord?: string | null
    customerFeedback?: string | null
    openedAt: Date | string
    openedById: string
    closedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    activities?: ServiceTicketActivityUncheckedCreateNestedManyWithoutTicketInput
  }

  export type ServiceTicketCreateOrConnectWithoutRobotUnitInput = {
    where: ServiceTicketWhereUniqueInput
    create: XOR<ServiceTicketCreateWithoutRobotUnitInput, ServiceTicketUncheckedCreateWithoutRobotUnitInput>
  }

  export type ServiceTicketCreateManyRobotUnitInputEnvelope = {
    data: ServiceTicketCreateManyRobotUnitInput | ServiceTicketCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type DeliveryFulfillmentCreateWithoutRobotUnitInput = {
    id?: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    deliveryRequest: DeliveryRequestCreateNestedOneWithoutFulfillmentsInput
  }

  export type DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    deliveryRequestId: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type DeliveryFulfillmentCreateOrConnectWithoutRobotUnitInput = {
    where: DeliveryFulfillmentWhereUniqueInput
    create: XOR<DeliveryFulfillmentCreateWithoutRobotUnitInput, DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput>
  }

  export type DeliveryFulfillmentCreateManyRobotUnitInputEnvelope = {
    data: DeliveryFulfillmentCreateManyRobotUnitInput | DeliveryFulfillmentCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type SalesOrderLineCreateWithoutRobotUnitInput = {
    id?: string
    lineNo: number
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    salesOrder: SalesOrderCreateNestedOneWithoutLinesInput
  }

  export type SalesOrderLineUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    salesOrderId: string
    lineNo: number
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SalesOrderLineCreateOrConnectWithoutRobotUnitInput = {
    where: SalesOrderLineWhereUniqueInput
    create: XOR<SalesOrderLineCreateWithoutRobotUnitInput, SalesOrderLineUncheckedCreateWithoutRobotUnitInput>
  }

  export type SalesOrderLineCreateManyRobotUnitInputEnvelope = {
    data: SalesOrderLineCreateManyRobotUnitInput | SalesOrderLineCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type RobotImportAuditCreateWithoutRobotUnitInput = {
    id?: string
    sources?: RobotImportAuditCreatesourcesInput | string[]
    conflictCount?: number
    recordStatus: $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt: Date | string
    importBatch?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotImportAuditUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    sources?: RobotImportAuditCreatesourcesInput | string[]
    conflictCount?: number
    recordStatus: $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt: Date | string
    importBatch?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotImportAuditCreateOrConnectWithoutRobotUnitInput = {
    where: RobotImportAuditWhereUniqueInput
    create: XOR<RobotImportAuditCreateWithoutRobotUnitInput, RobotImportAuditUncheckedCreateWithoutRobotUnitInput>
  }

  export type PaymentRecordCreateWithoutRobotUnitInput = {
    id?: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    direction: $Enums.PaymentDirection
    sapClearingDocNo?: string | null
    paymentMethod?: $Enums.PaymentMethod | null
    paymentStatus?: $Enums.PaymentStatus | null
    preDelContractStatus?: $Enums.PreDelContractStatus | null
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    depositTransferFormAttachmentId?: string | null
    depositTransferContractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    rentalScheduleEntries?: RentalPaymentScheduleCreateNestedManyWithoutPaidPaymentRecordInput
  }

  export type PaymentRecordUncheckedCreateWithoutRobotUnitInput = {
    id?: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    direction: $Enums.PaymentDirection
    sapClearingDocNo?: string | null
    paymentMethod?: $Enums.PaymentMethod | null
    paymentStatus?: $Enums.PaymentStatus | null
    preDelContractStatus?: $Enums.PreDelContractStatus | null
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    depositTransferFormAttachmentId?: string | null
    depositTransferContractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    rentalScheduleEntries?: RentalPaymentScheduleUncheckedCreateNestedManyWithoutPaidPaymentRecordInput
  }

  export type PaymentRecordCreateOrConnectWithoutRobotUnitInput = {
    where: PaymentRecordWhereUniqueInput
    create: XOR<PaymentRecordCreateWithoutRobotUnitInput, PaymentRecordUncheckedCreateWithoutRobotUnitInput>
  }

  export type PaymentRecordCreateManyRobotUnitInputEnvelope = {
    data: PaymentRecordCreateManyRobotUnitInput | PaymentRecordCreateManyRobotUnitInput[]
    skipDuplicates?: boolean
  }

  export type RobotModelUpsertWithoutRobotUnitsInput = {
    update: XOR<RobotModelUpdateWithoutRobotUnitsInput, RobotModelUncheckedUpdateWithoutRobotUnitsInput>
    create: XOR<RobotModelCreateWithoutRobotUnitsInput, RobotModelUncheckedCreateWithoutRobotUnitsInput>
    where?: RobotModelWhereInput
  }

  export type RobotModelUpdateToOneWithWhereWithoutRobotUnitsInput = {
    where?: RobotModelWhereInput
    data: XOR<RobotModelUpdateWithoutRobotUnitsInput, RobotModelUncheckedUpdateWithoutRobotUnitsInput>
  }

  export type RobotModelUpdateWithoutRobotUnitsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    skus?: RobotSkuUpdateManyWithoutModelNestedInput
  }

  export type RobotModelUncheckedUpdateWithoutRobotUnitsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    brand?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    skus?: RobotSkuUncheckedUpdateManyWithoutModelNestedInput
  }

  export type RobotSkuUpsertWithoutRobotUnitsInput = {
    update: XOR<RobotSkuUpdateWithoutRobotUnitsInput, RobotSkuUncheckedUpdateWithoutRobotUnitsInput>
    create: XOR<RobotSkuCreateWithoutRobotUnitsInput, RobotSkuUncheckedCreateWithoutRobotUnitsInput>
    where?: RobotSkuWhereInput
  }

  export type RobotSkuUpdateToOneWithWhereWithoutRobotUnitsInput = {
    where?: RobotSkuWhereInput
    data: XOR<RobotSkuUpdateWithoutRobotUnitsInput, RobotSkuUncheckedUpdateWithoutRobotUnitsInput>
  }

  export type RobotSkuUpdateWithoutRobotUnitsInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutSkusNestedInput
  }

  export type RobotSkuUncheckedUpdateWithoutRobotUnitsInput = {
    id?: StringFieldUpdateOperationsInput | string
    modelId?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PurchaseOrderUpsertWithoutRobotUnitsInput = {
    update: XOR<PurchaseOrderUpdateWithoutRobotUnitsInput, PurchaseOrderUncheckedUpdateWithoutRobotUnitsInput>
    create: XOR<PurchaseOrderCreateWithoutRobotUnitsInput, PurchaseOrderUncheckedCreateWithoutRobotUnitsInput>
    where?: PurchaseOrderWhereInput
  }

  export type PurchaseOrderUpdateToOneWithWhereWithoutRobotUnitsInput = {
    where?: PurchaseOrderWhereInput
    data: XOR<PurchaseOrderUpdateWithoutRobotUnitsInput, PurchaseOrderUncheckedUpdateWithoutRobotUnitsInput>
  }

  export type PurchaseOrderUpdateWithoutRobotUnitsInput = {
    id?: StringFieldUpdateOperationsInput | string
    poNo?: StringFieldUpdateOperationsInput | string
    sapPoNo?: NullableStringFieldUpdateOperationsInput | string | null
    supplierId?: StringFieldUpdateOperationsInput | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFieldUpdateOperationsInput | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: PurchaseOrderLineUpdateManyWithoutPurchaseOrderNestedInput
  }

  export type PurchaseOrderUncheckedUpdateWithoutRobotUnitsInput = {
    id?: StringFieldUpdateOperationsInput | string
    poNo?: StringFieldUpdateOperationsInput | string
    sapPoNo?: NullableStringFieldUpdateOperationsInput | string | null
    supplierId?: StringFieldUpdateOperationsInput | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFieldUpdateOperationsInput | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: PurchaseOrderLineUncheckedUpdateManyWithoutPurchaseOrderNestedInput
  }

  export type PurchaseOrderLineUpsertWithoutRobotUnitsInput = {
    update: XOR<PurchaseOrderLineUpdateWithoutRobotUnitsInput, PurchaseOrderLineUncheckedUpdateWithoutRobotUnitsInput>
    create: XOR<PurchaseOrderLineCreateWithoutRobotUnitsInput, PurchaseOrderLineUncheckedCreateWithoutRobotUnitsInput>
    where?: PurchaseOrderLineWhereInput
  }

  export type PurchaseOrderLineUpdateToOneWithWhereWithoutRobotUnitsInput = {
    where?: PurchaseOrderLineWhereInput
    data: XOR<PurchaseOrderLineUpdateWithoutRobotUnitsInput, PurchaseOrderLineUncheckedUpdateWithoutRobotUnitsInput>
  }

  export type PurchaseOrderLineUpdateWithoutRobotUnitsInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    purchaseOrder?: PurchaseOrderUpdateOneRequiredWithoutLinesNestedInput
  }

  export type PurchaseOrderLineUncheckedUpdateWithoutRobotUnitsInput = {
    id?: StringFieldUpdateOperationsInput | string
    purchaseOrderId?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RobotUnitSnapshotUpsertWithoutRobotUnitInput = {
    update: XOR<RobotUnitSnapshotUpdateWithoutRobotUnitInput, RobotUnitSnapshotUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<RobotUnitSnapshotCreateWithoutRobotUnitInput, RobotUnitSnapshotUncheckedCreateWithoutRobotUnitInput>
    where?: RobotUnitSnapshotWhereInput
  }

  export type RobotUnitSnapshotUpdateToOneWithWhereWithoutRobotUnitInput = {
    where?: RobotUnitSnapshotWhereInput
    data: XOR<RobotUnitSnapshotUpdateWithoutRobotUnitInput, RobotUnitSnapshotUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RobotUnitSnapshotUpdateWithoutRobotUnitInput = {
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
    lastEvent?: RobotLifecycleEventUpdateOneWithoutSnapshotsAsLastEventNestedInput
    salesOrder?: SalesOrderUpdateOneWithoutSnapshotRefsNestedInput
    deliveryRequest?: DeliveryRequestUpdateOneWithoutSnapshotRefsNestedInput
  }

  export type RobotUnitSnapshotUncheckedUpdateWithoutRobotUnitInput = {
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSalesOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    currentDeliveryRequestId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type RobotLifecycleEventUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: RobotLifecycleEventWhereUniqueInput
    update: XOR<RobotLifecycleEventUpdateWithoutRobotUnitInput, RobotLifecycleEventUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<RobotLifecycleEventCreateWithoutRobotUnitInput, RobotLifecycleEventUncheckedCreateWithoutRobotUnitInput>
  }

  export type RobotLifecycleEventUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: RobotLifecycleEventWhereUniqueInput
    data: XOR<RobotLifecycleEventUpdateWithoutRobotUnitInput, RobotLifecycleEventUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RobotLifecycleEventUpdateManyWithWhereWithoutRobotUnitInput = {
    where: RobotLifecycleEventScalarWhereInput
    data: XOR<RobotLifecycleEventUpdateManyMutationInput, RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type RobotLifecycleEventScalarWhereInput = {
    AND?: RobotLifecycleEventScalarWhereInput | RobotLifecycleEventScalarWhereInput[]
    OR?: RobotLifecycleEventScalarWhereInput[]
    NOT?: RobotLifecycleEventScalarWhereInput | RobotLifecycleEventScalarWhereInput[]
    id?: UuidFilter<"RobotLifecycleEvent"> | string
    robotUnitId?: UuidFilter<"RobotLifecycleEvent"> | string
    eventType?: EnumRobotLifecycleEventTypeFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleEventType
    fromStage?: EnumRobotLifecycleStageNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleStage | null
    toStage?: EnumRobotLifecycleStageNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotLifecycleStage | null
    fromLocationId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    toLocationId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    actorUserId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    partnerId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    customerId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    relatedType?: EnumRobotEventRelatedTypeNullableFilter<"RobotLifecycleEvent"> | $Enums.RobotEventRelatedType | null
    relatedId?: UuidNullableFilter<"RobotLifecycleEvent"> | string | null
    payload?: JsonFilter<"RobotLifecycleEvent">
    notes?: StringNullableFilter<"RobotLifecycleEvent"> | string | null
    occurredAt?: DateTimeFilter<"RobotLifecycleEvent"> | Date | string
    organizationId?: UuidFilter<"RobotLifecycleEvent"> | string
    createdAt?: DateTimeFilter<"RobotLifecycleEvent"> | Date | string
    createdById?: UuidFilter<"RobotLifecycleEvent"> | string
    deletedAt?: DateTimeNullableFilter<"RobotLifecycleEvent"> | Date | string | null
  }

  export type QualityLabelRecordUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: QualityLabelRecordWhereUniqueInput
    update: XOR<QualityLabelRecordUpdateWithoutRobotUnitInput, QualityLabelRecordUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<QualityLabelRecordCreateWithoutRobotUnitInput, QualityLabelRecordUncheckedCreateWithoutRobotUnitInput>
  }

  export type QualityLabelRecordUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: QualityLabelRecordWhereUniqueInput
    data: XOR<QualityLabelRecordUpdateWithoutRobotUnitInput, QualityLabelRecordUncheckedUpdateWithoutRobotUnitInput>
  }

  export type QualityLabelRecordUpdateManyWithWhereWithoutRobotUnitInput = {
    where: QualityLabelRecordScalarWhereInput
    data: XOR<QualityLabelRecordUpdateManyMutationInput, QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type QualityLabelRecordScalarWhereInput = {
    AND?: QualityLabelRecordScalarWhereInput | QualityLabelRecordScalarWhereInput[]
    OR?: QualityLabelRecordScalarWhereInput[]
    NOT?: QualityLabelRecordScalarWhereInput | QualityLabelRecordScalarWhereInput[]
    id?: UuidFilter<"QualityLabelRecord"> | string
    robotUnitId?: UuidFilter<"QualityLabelRecord"> | string
    labelTypeCode?: StringFilter<"QualityLabelRecord"> | string
    status?: EnumQualityLabelStatusFilter<"QualityLabelRecord"> | $Enums.QualityLabelStatus
    appliedAt?: DateTimeNullableFilter<"QualityLabelRecord"> | Date | string | null
    verifiedAt?: DateTimeNullableFilter<"QualityLabelRecord"> | Date | string | null
    appliedById?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    verifiedById?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    photoAttachmentId?: UuidNullableFilter<"QualityLabelRecord"> | string | null
    organizationId?: UuidFilter<"QualityLabelRecord"> | string
    createdAt?: DateTimeFilter<"QualityLabelRecord"> | Date | string
    updatedAt?: DateTimeFilter<"QualityLabelRecord"> | Date | string
    createdById?: UuidFilter<"QualityLabelRecord"> | string
  }

  export type RobotPackageReadinessUpsertWithoutRobotUnitInput = {
    update: XOR<RobotPackageReadinessUpdateWithoutRobotUnitInput, RobotPackageReadinessUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<RobotPackageReadinessCreateWithoutRobotUnitInput, RobotPackageReadinessUncheckedCreateWithoutRobotUnitInput>
    where?: RobotPackageReadinessWhereInput
  }

  export type RobotPackageReadinessUpdateToOneWithWhereWithoutRobotUnitInput = {
    where?: RobotPackageReadinessWhereInput
    data: XOR<RobotPackageReadinessUpdateWithoutRobotUnitInput, RobotPackageReadinessUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RobotPackageReadinessUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    specialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    readyAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    hasRobot?: BoolFieldUpdateOperationsInput | boolean
    hasBattery?: BoolFieldUpdateOperationsInput | boolean
    hasRemote?: BoolFieldUpdateOperationsInput | boolean
    hasUsaPowerCable?: BoolFieldUpdateOperationsInput | boolean
    hasCnCableWithAdapter?: BoolFieldUpdateOperationsInput | boolean
    hasPowerSupply?: BoolFieldUpdateOperationsInput | boolean
    hasChargingDock?: BoolFieldUpdateOperationsInput | boolean
    hasFootPads?: BoolFieldUpdateOperationsInput | boolean
    hasToolsKit?: BoolFieldUpdateOperationsInput | boolean
    hasPaperwork?: BoolFieldUpdateOperationsInput | boolean
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type RobotPackageReadinessUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    specialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    readyAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    hasRobot?: BoolFieldUpdateOperationsInput | boolean
    hasBattery?: BoolFieldUpdateOperationsInput | boolean
    hasRemote?: BoolFieldUpdateOperationsInput | boolean
    hasUsaPowerCable?: BoolFieldUpdateOperationsInput | boolean
    hasCnCableWithAdapter?: BoolFieldUpdateOperationsInput | boolean
    hasPowerSupply?: BoolFieldUpdateOperationsInput | boolean
    hasChargingDock?: BoolFieldUpdateOperationsInput | boolean
    hasFootPads?: BoolFieldUpdateOperationsInput | boolean
    hasToolsKit?: BoolFieldUpdateOperationsInput | boolean
    hasPaperwork?: BoolFieldUpdateOperationsInput | boolean
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type InspectionRecordUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: InspectionRecordWhereUniqueInput
    update: XOR<InspectionRecordUpdateWithoutRobotUnitInput, InspectionRecordUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<InspectionRecordCreateWithoutRobotUnitInput, InspectionRecordUncheckedCreateWithoutRobotUnitInput>
  }

  export type InspectionRecordUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: InspectionRecordWhereUniqueInput
    data: XOR<InspectionRecordUpdateWithoutRobotUnitInput, InspectionRecordUncheckedUpdateWithoutRobotUnitInput>
  }

  export type InspectionRecordUpdateManyWithWhereWithoutRobotUnitInput = {
    where: InspectionRecordScalarWhereInput
    data: XOR<InspectionRecordUpdateManyMutationInput, InspectionRecordUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type InspectionRecordScalarWhereInput = {
    AND?: InspectionRecordScalarWhereInput | InspectionRecordScalarWhereInput[]
    OR?: InspectionRecordScalarWhereInput[]
    NOT?: InspectionRecordScalarWhereInput | InspectionRecordScalarWhereInput[]
    id?: UuidFilter<"InspectionRecord"> | string
    robotUnitId?: UuidFilter<"InspectionRecord"> | string
    inspectionNo?: IntFilter<"InspectionRecord"> | number
    inspectedAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    inspectorId?: UuidNullableFilter<"InspectionRecord"> | string | null
    issue?: StringNullableFilter<"InspectionRecord"> | string | null
    issueTagCode?: StringNullableFilter<"InspectionRecord"> | string | null
    resolvedAt?: DateTimeNullableFilter<"InspectionRecord"> | Date | string | null
    resolvedById?: UuidNullableFilter<"InspectionRecord"> | string | null
    organizationId?: UuidFilter<"InspectionRecord"> | string
    createdAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    updatedAt?: DateTimeFilter<"InspectionRecord"> | Date | string
    createdById?: UuidFilter<"InspectionRecord"> | string
  }

  export type LogisticsLegUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: LogisticsLegWhereUniqueInput
    update: XOR<LogisticsLegUpdateWithoutRobotUnitInput, LogisticsLegUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<LogisticsLegCreateWithoutRobotUnitInput, LogisticsLegUncheckedCreateWithoutRobotUnitInput>
  }

  export type LogisticsLegUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: LogisticsLegWhereUniqueInput
    data: XOR<LogisticsLegUpdateWithoutRobotUnitInput, LogisticsLegUncheckedUpdateWithoutRobotUnitInput>
  }

  export type LogisticsLegUpdateManyWithWhereWithoutRobotUnitInput = {
    where: LogisticsLegScalarWhereInput
    data: XOR<LogisticsLegUpdateManyMutationInput, LogisticsLegUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type LogisticsLegScalarWhereInput = {
    AND?: LogisticsLegScalarWhereInput | LogisticsLegScalarWhereInput[]
    OR?: LogisticsLegScalarWhereInput[]
    NOT?: LogisticsLegScalarWhereInput | LogisticsLegScalarWhereInput[]
    id?: UuidFilter<"LogisticsLeg"> | string
    robotUnitId?: UuidFilter<"LogisticsLeg"> | string
    legNo?: IntFilter<"LogisticsLeg"> | number
    fromLocationId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    toLocationId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    departedAt?: DateTimeNullableFilter<"LogisticsLeg"> | Date | string | null
    arrivedAt?: DateTimeNullableFilter<"LogisticsLeg"> | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFilter<"LogisticsLeg"> | $Enums.LogisticsStatus
    importDeclarationTypeCode?: StringNullableFilter<"LogisticsLeg"> | string | null
    tariffTypeCode?: StringNullableFilter<"LogisticsLeg"> | string | null
    shippingReceiptAttachmentId?: UuidNullableFilter<"LogisticsLeg"> | string | null
    additionalNotes?: StringNullableFilter<"LogisticsLeg"> | string | null
    organizationId?: UuidFilter<"LogisticsLeg"> | string
    createdAt?: DateTimeFilter<"LogisticsLeg"> | Date | string
    updatedAt?: DateTimeFilter<"LogisticsLeg"> | Date | string
    createdById?: UuidFilter<"LogisticsLeg"> | string
  }

  export type ComplianceCheckUpsertWithoutRobotUnitInput = {
    update: XOR<ComplianceCheckUpdateWithoutRobotUnitInput, ComplianceCheckUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<ComplianceCheckCreateWithoutRobotUnitInput, ComplianceCheckUncheckedCreateWithoutRobotUnitInput>
    where?: ComplianceCheckWhereInput
  }

  export type ComplianceCheckUpdateToOneWithWhereWithoutRobotUnitInput = {
    where?: ComplianceCheckWhereInput
    data: XOR<ComplianceCheckUpdateWithoutRobotUnitInput, ComplianceCheckUncheckedUpdateWithoutRobotUnitInput>
  }

  export type ComplianceCheckUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    dateReady?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    stickerStatus?: NullableEnumStickerStatusFieldUpdateOperationsInput | $Enums.StickerStatus | null
    fccStatus?: NullableEnumFccStatusFieldUpdateOperationsInput | $Enums.FccStatus | null
    complianceNotes?: NullableStringFieldUpdateOperationsInput | string | null
    lastUpdatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type ComplianceCheckUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    dateReady?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    stickerStatus?: NullableEnumStickerStatusFieldUpdateOperationsInput | $Enums.StickerStatus | null
    fccStatus?: NullableEnumFccStatusFieldUpdateOperationsInput | $Enums.FccStatus | null
    complianceNotes?: NullableStringFieldUpdateOperationsInput | string | null
    lastUpdatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type RentalAgreementUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: RentalAgreementWhereUniqueInput
    update: XOR<RentalAgreementUpdateWithoutRobotUnitInput, RentalAgreementUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<RentalAgreementCreateWithoutRobotUnitInput, RentalAgreementUncheckedCreateWithoutRobotUnitInput>
  }

  export type RentalAgreementUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: RentalAgreementWhereUniqueInput
    data: XOR<RentalAgreementUpdateWithoutRobotUnitInput, RentalAgreementUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RentalAgreementUpdateManyWithWhereWithoutRobotUnitInput = {
    where: RentalAgreementScalarWhereInput
    data: XOR<RentalAgreementUpdateManyMutationInput, RentalAgreementUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type RentalAgreementScalarWhereInput = {
    AND?: RentalAgreementScalarWhereInput | RentalAgreementScalarWhereInput[]
    OR?: RentalAgreementScalarWhereInput[]
    NOT?: RentalAgreementScalarWhereInput | RentalAgreementScalarWhereInput[]
    id?: UuidFilter<"RentalAgreement"> | string
    robotUnitId?: UuidFilter<"RentalAgreement"> | string
    customerId?: UuidFilter<"RentalAgreement"> | string
    startAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    endAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    periodMonths?: IntFilter<"RentalAgreement"> | number
    monthlyRate?: DecimalFilter<"RentalAgreement"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"RentalAgreement"> | string
    status?: EnumRentalAgreementStatusFilter<"RentalAgreement"> | $Enums.RentalAgreementStatus
    contractAttachmentId?: UuidNullableFilter<"RentalAgreement"> | string | null
    version?: IntFilter<"RentalAgreement"> | number
    organizationId?: UuidFilter<"RentalAgreement"> | string
    createdAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    updatedAt?: DateTimeFilter<"RentalAgreement"> | Date | string
    createdById?: UuidFilter<"RentalAgreement"> | string
    deletedAt?: DateTimeNullableFilter<"RentalAgreement"> | Date | string | null
  }

  export type ServiceTicketUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: ServiceTicketWhereUniqueInput
    update: XOR<ServiceTicketUpdateWithoutRobotUnitInput, ServiceTicketUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<ServiceTicketCreateWithoutRobotUnitInput, ServiceTicketUncheckedCreateWithoutRobotUnitInput>
  }

  export type ServiceTicketUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: ServiceTicketWhereUniqueInput
    data: XOR<ServiceTicketUpdateWithoutRobotUnitInput, ServiceTicketUncheckedUpdateWithoutRobotUnitInput>
  }

  export type ServiceTicketUpdateManyWithWhereWithoutRobotUnitInput = {
    where: ServiceTicketScalarWhereInput
    data: XOR<ServiceTicketUpdateManyMutationInput, ServiceTicketUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type ServiceTicketScalarWhereInput = {
    AND?: ServiceTicketScalarWhereInput | ServiceTicketScalarWhereInput[]
    OR?: ServiceTicketScalarWhereInput[]
    NOT?: ServiceTicketScalarWhereInput | ServiceTicketScalarWhereInput[]
    id?: UuidFilter<"ServiceTicket"> | string
    ticketNo?: StringFilter<"ServiceTicket"> | string
    robotUnitId?: UuidFilter<"ServiceTicket"> | string
    customerId?: UuidNullableFilter<"ServiceTicket"> | string | null
    issueTypeCode?: StringFilter<"ServiceTicket"> | string
    severity?: EnumTicketSeverityFilter<"ServiceTicket"> | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFilter<"ServiceTicket"> | $Enums.ServiceTicketStatus
    serviceRecord?: StringNullableFilter<"ServiceTicket"> | string | null
    customerFeedback?: StringNullableFilter<"ServiceTicket"> | string | null
    openedAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    openedById?: UuidFilter<"ServiceTicket"> | string
    closedAt?: DateTimeNullableFilter<"ServiceTicket"> | Date | string | null
    resolvedById?: UuidNullableFilter<"ServiceTicket"> | string | null
    organizationId?: UuidFilter<"ServiceTicket"> | string
    createdAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    updatedAt?: DateTimeFilter<"ServiceTicket"> | Date | string
    createdById?: UuidFilter<"ServiceTicket"> | string
    deletedAt?: DateTimeNullableFilter<"ServiceTicket"> | Date | string | null
  }

  export type DeliveryFulfillmentUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: DeliveryFulfillmentWhereUniqueInput
    update: XOR<DeliveryFulfillmentUpdateWithoutRobotUnitInput, DeliveryFulfillmentUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<DeliveryFulfillmentCreateWithoutRobotUnitInput, DeliveryFulfillmentUncheckedCreateWithoutRobotUnitInput>
  }

  export type DeliveryFulfillmentUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: DeliveryFulfillmentWhereUniqueInput
    data: XOR<DeliveryFulfillmentUpdateWithoutRobotUnitInput, DeliveryFulfillmentUncheckedUpdateWithoutRobotUnitInput>
  }

  export type DeliveryFulfillmentUpdateManyWithWhereWithoutRobotUnitInput = {
    where: DeliveryFulfillmentScalarWhereInput
    data: XOR<DeliveryFulfillmentUpdateManyMutationInput, DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type DeliveryFulfillmentScalarWhereInput = {
    AND?: DeliveryFulfillmentScalarWhereInput | DeliveryFulfillmentScalarWhereInput[]
    OR?: DeliveryFulfillmentScalarWhereInput[]
    NOT?: DeliveryFulfillmentScalarWhereInput | DeliveryFulfillmentScalarWhereInput[]
    id?: UuidFilter<"DeliveryFulfillment"> | string
    deliveryRequestId?: UuidFilter<"DeliveryFulfillment"> | string
    robotUnitId?: UuidFilter<"DeliveryFulfillment"> | string
    sapPgiDocNo?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    deliveredAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    signedAt?: DateTimeNullableFilter<"DeliveryFulfillment"> | Date | string | null
    signedFormStatus?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: EnumDeliveryFormStatusNullableFilter<"DeliveryFulfillment"> | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: UuidNullableFilter<"DeliveryFulfillment"> | string | null
    notePreDel?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    additionalShippingNotes?: StringNullableFilter<"DeliveryFulfillment"> | string | null
    cost?: DecimalNullableFilter<"DeliveryFulfillment"> | Decimal | DecimalJsLike | number | string | null
    grossMargin?: DecimalNullableFilter<"DeliveryFulfillment"> | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: EnumRevenueRecognitionStatusNullableFilter<"DeliveryFulfillment"> | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: EnumInvoiceStatusNullableFilter<"DeliveryFulfillment"> | $Enums.InvoiceStatus | null
    version?: IntFilter<"DeliveryFulfillment"> | number
    organizationId?: UuidFilter<"DeliveryFulfillment"> | string
    createdAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    updatedAt?: DateTimeFilter<"DeliveryFulfillment"> | Date | string
    createdById?: UuidFilter<"DeliveryFulfillment"> | string
    deletedAt?: DateTimeNullableFilter<"DeliveryFulfillment"> | Date | string | null
  }

  export type SalesOrderLineUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: SalesOrderLineWhereUniqueInput
    update: XOR<SalesOrderLineUpdateWithoutRobotUnitInput, SalesOrderLineUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<SalesOrderLineCreateWithoutRobotUnitInput, SalesOrderLineUncheckedCreateWithoutRobotUnitInput>
  }

  export type SalesOrderLineUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: SalesOrderLineWhereUniqueInput
    data: XOR<SalesOrderLineUpdateWithoutRobotUnitInput, SalesOrderLineUncheckedUpdateWithoutRobotUnitInput>
  }

  export type SalesOrderLineUpdateManyWithWhereWithoutRobotUnitInput = {
    where: SalesOrderLineScalarWhereInput
    data: XOR<SalesOrderLineUpdateManyMutationInput, SalesOrderLineUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type SalesOrderLineScalarWhereInput = {
    AND?: SalesOrderLineScalarWhereInput | SalesOrderLineScalarWhereInput[]
    OR?: SalesOrderLineScalarWhereInput[]
    NOT?: SalesOrderLineScalarWhereInput | SalesOrderLineScalarWhereInput[]
    id?: UuidFilter<"SalesOrderLine"> | string
    salesOrderId?: UuidFilter<"SalesOrderLine"> | string
    lineNo?: IntFilter<"SalesOrderLine"> | number
    robotUnitId?: UuidNullableFilter<"SalesOrderLine"> | string | null
    lineType?: EnumSalesLineTypeFilter<"SalesOrderLine"> | $Enums.SalesLineType
    unitPrice?: DecimalFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string
    discount?: DecimalNullableFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFilter<"SalesOrderLine"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"SalesOrderLine"> | string
    expectedDeliveryDate?: DateTimeNullableFilter<"SalesOrderLine"> | Date | string | null
    createdAt?: DateTimeFilter<"SalesOrderLine"> | Date | string
    updatedAt?: DateTimeFilter<"SalesOrderLine"> | Date | string
  }

  export type RobotImportAuditUpsertWithoutRobotUnitInput = {
    update: XOR<RobotImportAuditUpdateWithoutRobotUnitInput, RobotImportAuditUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<RobotImportAuditCreateWithoutRobotUnitInput, RobotImportAuditUncheckedCreateWithoutRobotUnitInput>
    where?: RobotImportAuditWhereInput
  }

  export type RobotImportAuditUpdateToOneWithWhereWithoutRobotUnitInput = {
    where?: RobotImportAuditWhereInput
    data: XOR<RobotImportAuditUpdateWithoutRobotUnitInput, RobotImportAuditUncheckedUpdateWithoutRobotUnitInput>
  }

  export type RobotImportAuditUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    sources?: RobotImportAuditUpdatesourcesInput | string[]
    conflictCount?: IntFieldUpdateOperationsInput | number
    recordStatus?: EnumImportRecordStatusFieldUpdateOperationsInput | $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    importBatch?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotImportAuditUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    sources?: RobotImportAuditUpdatesourcesInput | string[]
    conflictCount?: IntFieldUpdateOperationsInput | number
    recordStatus?: EnumImportRecordStatusFieldUpdateOperationsInput | $Enums.ImportRecordStatus
    conflictDetail?: NullableJsonNullValueInput | InputJsonValue
    importedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    importBatch?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PaymentRecordUpsertWithWhereUniqueWithoutRobotUnitInput = {
    where: PaymentRecordWhereUniqueInput
    update: XOR<PaymentRecordUpdateWithoutRobotUnitInput, PaymentRecordUncheckedUpdateWithoutRobotUnitInput>
    create: XOR<PaymentRecordCreateWithoutRobotUnitInput, PaymentRecordUncheckedCreateWithoutRobotUnitInput>
  }

  export type PaymentRecordUpdateWithWhereUniqueWithoutRobotUnitInput = {
    where: PaymentRecordWhereUniqueInput
    data: XOR<PaymentRecordUpdateWithoutRobotUnitInput, PaymentRecordUncheckedUpdateWithoutRobotUnitInput>
  }

  export type PaymentRecordUpdateManyWithWhereWithoutRobotUnitInput = {
    where: PaymentRecordScalarWhereInput
    data: XOR<PaymentRecordUpdateManyMutationInput, PaymentRecordUncheckedUpdateManyWithoutRobotUnitInput>
  }

  export type PaymentRecordScalarWhereInput = {
    AND?: PaymentRecordScalarWhereInput | PaymentRecordScalarWhereInput[]
    OR?: PaymentRecordScalarWhereInput[]
    NOT?: PaymentRecordScalarWhereInput | PaymentRecordScalarWhereInput[]
    id?: UuidFilter<"PaymentRecord"> | string
    paymentNo?: StringFilter<"PaymentRecord"> | string
    relatedType?: EnumPaymentRelatedTypeFilter<"PaymentRecord"> | $Enums.PaymentRelatedType
    relatedId?: UuidFilter<"PaymentRecord"> | string
    robotUnitId?: UuidNullableFilter<"PaymentRecord"> | string | null
    direction?: EnumPaymentDirectionFilter<"PaymentRecord"> | $Enums.PaymentDirection
    sapClearingDocNo?: StringNullableFilter<"PaymentRecord"> | string | null
    paymentMethod?: EnumPaymentMethodNullableFilter<"PaymentRecord"> | $Enums.PaymentMethod | null
    paymentStatus?: EnumPaymentStatusNullableFilter<"PaymentRecord"> | $Enums.PaymentStatus | null
    preDelContractStatus?: EnumPreDelContractStatusNullableFilter<"PaymentRecord"> | $Enums.PreDelContractStatus | null
    amount?: DecimalFilter<"PaymentRecord"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"PaymentRecord"> | string
    paidAt?: DateTimeNullableFilter<"PaymentRecord"> | Date | string | null
    depositTransferFormAttachmentId?: UuidNullableFilter<"PaymentRecord"> | string | null
    depositTransferContractAttachmentId?: UuidNullableFilter<"PaymentRecord"> | string | null
    version?: IntFilter<"PaymentRecord"> | number
    organizationId?: UuidFilter<"PaymentRecord"> | string
    createdAt?: DateTimeFilter<"PaymentRecord"> | Date | string
    updatedAt?: DateTimeFilter<"PaymentRecord"> | Date | string
    createdById?: UuidFilter<"PaymentRecord"> | string
    deletedAt?: DateTimeNullableFilter<"PaymentRecord"> | Date | string | null
  }

  export type RobotUnitCreateWithoutSnapshotInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutSnapshotInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutSnapshotInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutSnapshotInput, RobotUnitUncheckedCreateWithoutSnapshotInput>
  }

  export type RobotLifecycleEventCreateWithoutSnapshotsAsLastEventInput = {
    id?: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage?: $Enums.RobotLifecycleStage | null
    toStage?: $Enums.RobotLifecycleStage | null
    fromLocationId?: string | null
    toLocationId?: string | null
    actorUserId?: string | null
    partnerId?: string | null
    customerId?: string | null
    relatedType?: $Enums.RobotEventRelatedType | null
    relatedId?: string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: string | null
    occurredAt: Date | string
    organizationId: string
    createdAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit: RobotUnitCreateNestedOneWithoutEventsInput
  }

  export type RobotLifecycleEventUncheckedCreateWithoutSnapshotsAsLastEventInput = {
    id?: string
    robotUnitId: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage?: $Enums.RobotLifecycleStage | null
    toStage?: $Enums.RobotLifecycleStage | null
    fromLocationId?: string | null
    toLocationId?: string | null
    actorUserId?: string | null
    partnerId?: string | null
    customerId?: string | null
    relatedType?: $Enums.RobotEventRelatedType | null
    relatedId?: string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: string | null
    occurredAt: Date | string
    organizationId: string
    createdAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotLifecycleEventCreateOrConnectWithoutSnapshotsAsLastEventInput = {
    where: RobotLifecycleEventWhereUniqueInput
    create: XOR<RobotLifecycleEventCreateWithoutSnapshotsAsLastEventInput, RobotLifecycleEventUncheckedCreateWithoutSnapshotsAsLastEventInput>
  }

  export type SalesOrderCreateWithoutSnapshotRefsInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: SalesOrderLineCreateNestedManyWithoutSalesOrderInput
    deliveryRequests?: DeliveryRequestCreateNestedManyWithoutSalesOrderInput
  }

  export type SalesOrderUncheckedCreateWithoutSnapshotRefsInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: SalesOrderLineUncheckedCreateNestedManyWithoutSalesOrderInput
    deliveryRequests?: DeliveryRequestUncheckedCreateNestedManyWithoutSalesOrderInput
  }

  export type SalesOrderCreateOrConnectWithoutSnapshotRefsInput = {
    where: SalesOrderWhereUniqueInput
    create: XOR<SalesOrderCreateWithoutSnapshotRefsInput, SalesOrderUncheckedCreateWithoutSnapshotRefsInput>
  }

  export type DeliveryRequestCreateWithoutSnapshotRefsInput = {
    id?: string
    deliveryNo: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    salesOrder: SalesOrderCreateNestedOneWithoutDeliveryRequestsInput
    fulfillments?: DeliveryFulfillmentCreateNestedManyWithoutDeliveryRequestInput
  }

  export type DeliveryRequestUncheckedCreateWithoutSnapshotRefsInput = {
    id?: string
    deliveryNo: string
    salesOrderId: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    fulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutDeliveryRequestInput
  }

  export type DeliveryRequestCreateOrConnectWithoutSnapshotRefsInput = {
    where: DeliveryRequestWhereUniqueInput
    create: XOR<DeliveryRequestCreateWithoutSnapshotRefsInput, DeliveryRequestUncheckedCreateWithoutSnapshotRefsInput>
  }

  export type RobotUnitUpsertWithoutSnapshotInput = {
    update: XOR<RobotUnitUpdateWithoutSnapshotInput, RobotUnitUncheckedUpdateWithoutSnapshotInput>
    create: XOR<RobotUnitCreateWithoutSnapshotInput, RobotUnitUncheckedCreateWithoutSnapshotInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutSnapshotInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutSnapshotInput, RobotUnitUncheckedUpdateWithoutSnapshotInput>
  }

  export type RobotUnitUpdateWithoutSnapshotInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutSnapshotInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotLifecycleEventUpsertWithoutSnapshotsAsLastEventInput = {
    update: XOR<RobotLifecycleEventUpdateWithoutSnapshotsAsLastEventInput, RobotLifecycleEventUncheckedUpdateWithoutSnapshotsAsLastEventInput>
    create: XOR<RobotLifecycleEventCreateWithoutSnapshotsAsLastEventInput, RobotLifecycleEventUncheckedCreateWithoutSnapshotsAsLastEventInput>
    where?: RobotLifecycleEventWhereInput
  }

  export type RobotLifecycleEventUpdateToOneWithWhereWithoutSnapshotsAsLastEventInput = {
    where?: RobotLifecycleEventWhereInput
    data: XOR<RobotLifecycleEventUpdateWithoutSnapshotsAsLastEventInput, RobotLifecycleEventUncheckedUpdateWithoutSnapshotsAsLastEventInput>
  }

  export type RobotLifecycleEventUpdateWithoutSnapshotsAsLastEventInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneRequiredWithoutEventsNestedInput
  }

  export type RobotLifecycleEventUncheckedUpdateWithoutSnapshotsAsLastEventInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SalesOrderUpsertWithoutSnapshotRefsInput = {
    update: XOR<SalesOrderUpdateWithoutSnapshotRefsInput, SalesOrderUncheckedUpdateWithoutSnapshotRefsInput>
    create: XOR<SalesOrderCreateWithoutSnapshotRefsInput, SalesOrderUncheckedCreateWithoutSnapshotRefsInput>
    where?: SalesOrderWhereInput
  }

  export type SalesOrderUpdateToOneWithWhereWithoutSnapshotRefsInput = {
    where?: SalesOrderWhereInput
    data: XOR<SalesOrderUpdateWithoutSnapshotRefsInput, SalesOrderUncheckedUpdateWithoutSnapshotRefsInput>
  }

  export type SalesOrderUpdateWithoutSnapshotRefsInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: SalesOrderLineUpdateManyWithoutSalesOrderNestedInput
    deliveryRequests?: DeliveryRequestUpdateManyWithoutSalesOrderNestedInput
  }

  export type SalesOrderUncheckedUpdateWithoutSnapshotRefsInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: SalesOrderLineUncheckedUpdateManyWithoutSalesOrderNestedInput
    deliveryRequests?: DeliveryRequestUncheckedUpdateManyWithoutSalesOrderNestedInput
  }

  export type DeliveryRequestUpsertWithoutSnapshotRefsInput = {
    update: XOR<DeliveryRequestUpdateWithoutSnapshotRefsInput, DeliveryRequestUncheckedUpdateWithoutSnapshotRefsInput>
    create: XOR<DeliveryRequestCreateWithoutSnapshotRefsInput, DeliveryRequestUncheckedCreateWithoutSnapshotRefsInput>
    where?: DeliveryRequestWhereInput
  }

  export type DeliveryRequestUpdateToOneWithWhereWithoutSnapshotRefsInput = {
    where?: DeliveryRequestWhereInput
    data: XOR<DeliveryRequestUpdateWithoutSnapshotRefsInput, DeliveryRequestUncheckedUpdateWithoutSnapshotRefsInput>
  }

  export type DeliveryRequestUpdateWithoutSnapshotRefsInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    salesOrder?: SalesOrderUpdateOneRequiredWithoutDeliveryRequestsNestedInput
    fulfillments?: DeliveryFulfillmentUpdateManyWithoutDeliveryRequestNestedInput
  }

  export type DeliveryRequestUncheckedUpdateWithoutSnapshotRefsInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    salesOrderId?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutDeliveryRequestNestedInput
  }

  export type RobotUnitCreateWithoutEventsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutEventsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutEventsInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutEventsInput, RobotUnitUncheckedCreateWithoutEventsInput>
  }

  export type RobotUnitSnapshotCreateWithoutLastEventInput = {
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
    robotUnit: RobotUnitCreateNestedOneWithoutSnapshotInput
    salesOrder?: SalesOrderCreateNestedOneWithoutSnapshotRefsInput
    deliveryRequest?: DeliveryRequestCreateNestedOneWithoutSnapshotRefsInput
  }

  export type RobotUnitSnapshotUncheckedCreateWithoutLastEventInput = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSalesOrderId?: string | null
    currentDeliveryRequestId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type RobotUnitSnapshotCreateOrConnectWithoutLastEventInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    create: XOR<RobotUnitSnapshotCreateWithoutLastEventInput, RobotUnitSnapshotUncheckedCreateWithoutLastEventInput>
  }

  export type RobotUnitSnapshotCreateManyLastEventInputEnvelope = {
    data: RobotUnitSnapshotCreateManyLastEventInput | RobotUnitSnapshotCreateManyLastEventInput[]
    skipDuplicates?: boolean
  }

  export type RobotUnitUpsertWithoutEventsInput = {
    update: XOR<RobotUnitUpdateWithoutEventsInput, RobotUnitUncheckedUpdateWithoutEventsInput>
    create: XOR<RobotUnitCreateWithoutEventsInput, RobotUnitUncheckedCreateWithoutEventsInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutEventsInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutEventsInput, RobotUnitUncheckedUpdateWithoutEventsInput>
  }

  export type RobotUnitUpdateWithoutEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutEventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitSnapshotUpsertWithWhereUniqueWithoutLastEventInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    update: XOR<RobotUnitSnapshotUpdateWithoutLastEventInput, RobotUnitSnapshotUncheckedUpdateWithoutLastEventInput>
    create: XOR<RobotUnitSnapshotCreateWithoutLastEventInput, RobotUnitSnapshotUncheckedCreateWithoutLastEventInput>
  }

  export type RobotUnitSnapshotUpdateWithWhereUniqueWithoutLastEventInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    data: XOR<RobotUnitSnapshotUpdateWithoutLastEventInput, RobotUnitSnapshotUncheckedUpdateWithoutLastEventInput>
  }

  export type RobotUnitSnapshotUpdateManyWithWhereWithoutLastEventInput = {
    where: RobotUnitSnapshotScalarWhereInput
    data: XOR<RobotUnitSnapshotUpdateManyMutationInput, RobotUnitSnapshotUncheckedUpdateManyWithoutLastEventInput>
  }

  export type RobotUnitSnapshotScalarWhereInput = {
    AND?: RobotUnitSnapshotScalarWhereInput | RobotUnitSnapshotScalarWhereInput[]
    OR?: RobotUnitSnapshotScalarWhereInput[]
    NOT?: RobotUnitSnapshotScalarWhereInput | RobotUnitSnapshotScalarWhereInput[]
    robotUnitId?: UuidFilter<"RobotUnitSnapshot"> | string
    currentStage?: EnumRobotLifecycleStageFilter<"RobotUnitSnapshot"> | $Enums.RobotLifecycleStage
    isHeld?: BoolFilter<"RobotUnitSnapshot"> | boolean
    holdReason?: StringNullableFilter<"RobotUnitSnapshot"> | string | null
    currentLocationId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentCustomerId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentSalesOrderId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentDeliveryRequestId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    currentSpecialistId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    physicalProductStatus?: EnumRobotPhysicalStatusNullableFilter<"RobotUnitSnapshot"> | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: IntNullableFilter<"RobotUnitSnapshot"> | number | null
    warrantyStatus?: EnumRobotWarrantyStatusNullableFilter<"RobotUnitSnapshot"> | $Enums.RobotWarrantyStatus | null
    lastEventId?: UuidNullableFilter<"RobotUnitSnapshot"> | string | null
    lastEventAt?: DateTimeNullableFilter<"RobotUnitSnapshot"> | Date | string | null
    derivedAt?: DateTimeFilter<"RobotUnitSnapshot"> | Date | string
    version?: IntFilter<"RobotUnitSnapshot"> | number
  }

  export type PurchaseOrderLineCreateWithoutPurchaseOrderInput = {
    id?: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    currencyCode: string
    defaultUsageType?: $Enums.RobotUsageType | null
    placeholderPattern?: string | null
    expectedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    robotUnits?: RobotUnitCreateNestedManyWithoutPurchaseOrderLineInput
  }

  export type PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput = {
    id?: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    currencyCode: string
    defaultUsageType?: $Enums.RobotUsageType | null
    placeholderPattern?: string | null
    expectedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    robotUnits?: RobotUnitUncheckedCreateNestedManyWithoutPurchaseOrderLineInput
  }

  export type PurchaseOrderLineCreateOrConnectWithoutPurchaseOrderInput = {
    where: PurchaseOrderLineWhereUniqueInput
    create: XOR<PurchaseOrderLineCreateWithoutPurchaseOrderInput, PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput>
  }

  export type PurchaseOrderLineCreateManyPurchaseOrderInputEnvelope = {
    data: PurchaseOrderLineCreateManyPurchaseOrderInput | PurchaseOrderLineCreateManyPurchaseOrderInput[]
    skipDuplicates?: boolean
  }

  export type RobotUnitCreateWithoutPurchaseOrderInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutPurchaseOrderInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutPurchaseOrderInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutPurchaseOrderInput, RobotUnitUncheckedCreateWithoutPurchaseOrderInput>
  }

  export type RobotUnitCreateManyPurchaseOrderInputEnvelope = {
    data: RobotUnitCreateManyPurchaseOrderInput | RobotUnitCreateManyPurchaseOrderInput[]
    skipDuplicates?: boolean
  }

  export type PurchaseOrderLineUpsertWithWhereUniqueWithoutPurchaseOrderInput = {
    where: PurchaseOrderLineWhereUniqueInput
    update: XOR<PurchaseOrderLineUpdateWithoutPurchaseOrderInput, PurchaseOrderLineUncheckedUpdateWithoutPurchaseOrderInput>
    create: XOR<PurchaseOrderLineCreateWithoutPurchaseOrderInput, PurchaseOrderLineUncheckedCreateWithoutPurchaseOrderInput>
  }

  export type PurchaseOrderLineUpdateWithWhereUniqueWithoutPurchaseOrderInput = {
    where: PurchaseOrderLineWhereUniqueInput
    data: XOR<PurchaseOrderLineUpdateWithoutPurchaseOrderInput, PurchaseOrderLineUncheckedUpdateWithoutPurchaseOrderInput>
  }

  export type PurchaseOrderLineUpdateManyWithWhereWithoutPurchaseOrderInput = {
    where: PurchaseOrderLineScalarWhereInput
    data: XOR<PurchaseOrderLineUpdateManyMutationInput, PurchaseOrderLineUncheckedUpdateManyWithoutPurchaseOrderInput>
  }

  export type PurchaseOrderLineScalarWhereInput = {
    AND?: PurchaseOrderLineScalarWhereInput | PurchaseOrderLineScalarWhereInput[]
    OR?: PurchaseOrderLineScalarWhereInput[]
    NOT?: PurchaseOrderLineScalarWhereInput | PurchaseOrderLineScalarWhereInput[]
    id?: UuidFilter<"PurchaseOrderLine"> | string
    purchaseOrderId?: UuidFilter<"PurchaseOrderLine"> | string
    lineNo?: IntFilter<"PurchaseOrderLine"> | number
    skuId?: UuidFilter<"PurchaseOrderLine"> | string
    quantity?: IntFilter<"PurchaseOrderLine"> | number
    unitPrice?: DecimalFilter<"PurchaseOrderLine"> | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFilter<"PurchaseOrderLine"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"PurchaseOrderLine"> | string
    defaultUsageType?: EnumRobotUsageTypeNullableFilter<"PurchaseOrderLine"> | $Enums.RobotUsageType | null
    placeholderPattern?: StringNullableFilter<"PurchaseOrderLine"> | string | null
    expectedAt?: DateTimeNullableFilter<"PurchaseOrderLine"> | Date | string | null
    createdAt?: DateTimeFilter<"PurchaseOrderLine"> | Date | string
    updatedAt?: DateTimeFilter<"PurchaseOrderLine"> | Date | string
  }

  export type RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderInput = {
    where: RobotUnitWhereUniqueInput
    update: XOR<RobotUnitUpdateWithoutPurchaseOrderInput, RobotUnitUncheckedUpdateWithoutPurchaseOrderInput>
    create: XOR<RobotUnitCreateWithoutPurchaseOrderInput, RobotUnitUncheckedCreateWithoutPurchaseOrderInput>
  }

  export type RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderInput = {
    where: RobotUnitWhereUniqueInput
    data: XOR<RobotUnitUpdateWithoutPurchaseOrderInput, RobotUnitUncheckedUpdateWithoutPurchaseOrderInput>
  }

  export type RobotUnitUpdateManyWithWhereWithoutPurchaseOrderInput = {
    where: RobotUnitScalarWhereInput
    data: XOR<RobotUnitUpdateManyMutationInput, RobotUnitUncheckedUpdateManyWithoutPurchaseOrderInput>
  }

  export type PurchaseOrderCreateWithoutLinesInput = {
    id?: string
    poNo: string
    sapPoNo?: string | null
    supplierId: string
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    status?: $Enums.PurchaseOrderStatus
    orderedAt: Date | string
    expectedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnits?: RobotUnitCreateNestedManyWithoutPurchaseOrderInput
  }

  export type PurchaseOrderUncheckedCreateWithoutLinesInput = {
    id?: string
    poNo: string
    sapPoNo?: string | null
    supplierId: string
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    status?: $Enums.PurchaseOrderStatus
    orderedAt: Date | string
    expectedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnits?: RobotUnitUncheckedCreateNestedManyWithoutPurchaseOrderInput
  }

  export type PurchaseOrderCreateOrConnectWithoutLinesInput = {
    where: PurchaseOrderWhereUniqueInput
    create: XOR<PurchaseOrderCreateWithoutLinesInput, PurchaseOrderUncheckedCreateWithoutLinesInput>
  }

  export type RobotUnitCreateWithoutPurchaseOrderLineInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutPurchaseOrderLineInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutPurchaseOrderLineInput, RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput>
  }

  export type RobotUnitCreateManyPurchaseOrderLineInputEnvelope = {
    data: RobotUnitCreateManyPurchaseOrderLineInput | RobotUnitCreateManyPurchaseOrderLineInput[]
    skipDuplicates?: boolean
  }

  export type PurchaseOrderUpsertWithoutLinesInput = {
    update: XOR<PurchaseOrderUpdateWithoutLinesInput, PurchaseOrderUncheckedUpdateWithoutLinesInput>
    create: XOR<PurchaseOrderCreateWithoutLinesInput, PurchaseOrderUncheckedCreateWithoutLinesInput>
    where?: PurchaseOrderWhereInput
  }

  export type PurchaseOrderUpdateToOneWithWhereWithoutLinesInput = {
    where?: PurchaseOrderWhereInput
    data: XOR<PurchaseOrderUpdateWithoutLinesInput, PurchaseOrderUncheckedUpdateWithoutLinesInput>
  }

  export type PurchaseOrderUpdateWithoutLinesInput = {
    id?: StringFieldUpdateOperationsInput | string
    poNo?: StringFieldUpdateOperationsInput | string
    sapPoNo?: NullableStringFieldUpdateOperationsInput | string | null
    supplierId?: StringFieldUpdateOperationsInput | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFieldUpdateOperationsInput | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnits?: RobotUnitUpdateManyWithoutPurchaseOrderNestedInput
  }

  export type PurchaseOrderUncheckedUpdateWithoutLinesInput = {
    id?: StringFieldUpdateOperationsInput | string
    poNo?: StringFieldUpdateOperationsInput | string
    sapPoNo?: NullableStringFieldUpdateOperationsInput | string | null
    supplierId?: StringFieldUpdateOperationsInput | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    status?: EnumPurchaseOrderStatusFieldUpdateOperationsInput | $Enums.PurchaseOrderStatus
    orderedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnits?: RobotUnitUncheckedUpdateManyWithoutPurchaseOrderNestedInput
  }

  export type RobotUnitUpsertWithWhereUniqueWithoutPurchaseOrderLineInput = {
    where: RobotUnitWhereUniqueInput
    update: XOR<RobotUnitUpdateWithoutPurchaseOrderLineInput, RobotUnitUncheckedUpdateWithoutPurchaseOrderLineInput>
    create: XOR<RobotUnitCreateWithoutPurchaseOrderLineInput, RobotUnitUncheckedCreateWithoutPurchaseOrderLineInput>
  }

  export type RobotUnitUpdateWithWhereUniqueWithoutPurchaseOrderLineInput = {
    where: RobotUnitWhereUniqueInput
    data: XOR<RobotUnitUpdateWithoutPurchaseOrderLineInput, RobotUnitUncheckedUpdateWithoutPurchaseOrderLineInput>
  }

  export type RobotUnitUpdateManyWithWhereWithoutPurchaseOrderLineInput = {
    where: RobotUnitScalarWhereInput
    data: XOR<RobotUnitUpdateManyMutationInput, RobotUnitUncheckedUpdateManyWithoutPurchaseOrderLineInput>
  }

  export type SalesOrderLineCreateWithoutSalesOrderInput = {
    id?: string
    lineNo: number
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    robotUnit?: RobotUnitCreateNestedOneWithoutSalesOrderLinesInput
  }

  export type SalesOrderLineUncheckedCreateWithoutSalesOrderInput = {
    id?: string
    lineNo: number
    robotUnitId?: string | null
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SalesOrderLineCreateOrConnectWithoutSalesOrderInput = {
    where: SalesOrderLineWhereUniqueInput
    create: XOR<SalesOrderLineCreateWithoutSalesOrderInput, SalesOrderLineUncheckedCreateWithoutSalesOrderInput>
  }

  export type SalesOrderLineCreateManySalesOrderInputEnvelope = {
    data: SalesOrderLineCreateManySalesOrderInput | SalesOrderLineCreateManySalesOrderInput[]
    skipDuplicates?: boolean
  }

  export type DeliveryRequestCreateWithoutSalesOrderInput = {
    id?: string
    deliveryNo: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    fulfillments?: DeliveryFulfillmentCreateNestedManyWithoutDeliveryRequestInput
    snapshotRefs?: RobotUnitSnapshotCreateNestedManyWithoutDeliveryRequestInput
  }

  export type DeliveryRequestUncheckedCreateWithoutSalesOrderInput = {
    id?: string
    deliveryNo: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    fulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutDeliveryRequestInput
    snapshotRefs?: RobotUnitSnapshotUncheckedCreateNestedManyWithoutDeliveryRequestInput
  }

  export type DeliveryRequestCreateOrConnectWithoutSalesOrderInput = {
    where: DeliveryRequestWhereUniqueInput
    create: XOR<DeliveryRequestCreateWithoutSalesOrderInput, DeliveryRequestUncheckedCreateWithoutSalesOrderInput>
  }

  export type DeliveryRequestCreateManySalesOrderInputEnvelope = {
    data: DeliveryRequestCreateManySalesOrderInput | DeliveryRequestCreateManySalesOrderInput[]
    skipDuplicates?: boolean
  }

  export type RobotUnitSnapshotCreateWithoutSalesOrderInput = {
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
    robotUnit: RobotUnitCreateNestedOneWithoutSnapshotInput
    lastEvent?: RobotLifecycleEventCreateNestedOneWithoutSnapshotsAsLastEventInput
    deliveryRequest?: DeliveryRequestCreateNestedOneWithoutSnapshotRefsInput
  }

  export type RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentDeliveryRequestId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventId?: string | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type RobotUnitSnapshotCreateOrConnectWithoutSalesOrderInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    create: XOR<RobotUnitSnapshotCreateWithoutSalesOrderInput, RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput>
  }

  export type RobotUnitSnapshotCreateManySalesOrderInputEnvelope = {
    data: RobotUnitSnapshotCreateManySalesOrderInput | RobotUnitSnapshotCreateManySalesOrderInput[]
    skipDuplicates?: boolean
  }

  export type SalesOrderLineUpsertWithWhereUniqueWithoutSalesOrderInput = {
    where: SalesOrderLineWhereUniqueInput
    update: XOR<SalesOrderLineUpdateWithoutSalesOrderInput, SalesOrderLineUncheckedUpdateWithoutSalesOrderInput>
    create: XOR<SalesOrderLineCreateWithoutSalesOrderInput, SalesOrderLineUncheckedCreateWithoutSalesOrderInput>
  }

  export type SalesOrderLineUpdateWithWhereUniqueWithoutSalesOrderInput = {
    where: SalesOrderLineWhereUniqueInput
    data: XOR<SalesOrderLineUpdateWithoutSalesOrderInput, SalesOrderLineUncheckedUpdateWithoutSalesOrderInput>
  }

  export type SalesOrderLineUpdateManyWithWhereWithoutSalesOrderInput = {
    where: SalesOrderLineScalarWhereInput
    data: XOR<SalesOrderLineUpdateManyMutationInput, SalesOrderLineUncheckedUpdateManyWithoutSalesOrderInput>
  }

  export type DeliveryRequestUpsertWithWhereUniqueWithoutSalesOrderInput = {
    where: DeliveryRequestWhereUniqueInput
    update: XOR<DeliveryRequestUpdateWithoutSalesOrderInput, DeliveryRequestUncheckedUpdateWithoutSalesOrderInput>
    create: XOR<DeliveryRequestCreateWithoutSalesOrderInput, DeliveryRequestUncheckedCreateWithoutSalesOrderInput>
  }

  export type DeliveryRequestUpdateWithWhereUniqueWithoutSalesOrderInput = {
    where: DeliveryRequestWhereUniqueInput
    data: XOR<DeliveryRequestUpdateWithoutSalesOrderInput, DeliveryRequestUncheckedUpdateWithoutSalesOrderInput>
  }

  export type DeliveryRequestUpdateManyWithWhereWithoutSalesOrderInput = {
    where: DeliveryRequestScalarWhereInput
    data: XOR<DeliveryRequestUpdateManyMutationInput, DeliveryRequestUncheckedUpdateManyWithoutSalesOrderInput>
  }

  export type DeliveryRequestScalarWhereInput = {
    AND?: DeliveryRequestScalarWhereInput | DeliveryRequestScalarWhereInput[]
    OR?: DeliveryRequestScalarWhereInput[]
    NOT?: DeliveryRequestScalarWhereInput | DeliveryRequestScalarWhereInput[]
    id?: UuidFilter<"DeliveryRequest"> | string
    deliveryNo?: StringFilter<"DeliveryRequest"> | string
    salesOrderId?: UuidFilter<"DeliveryRequest"> | string
    customerId?: UuidFilter<"DeliveryRequest"> | string
    requestType?: EnumDeliveryRequestTypeFilter<"DeliveryRequest"> | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFilter<"DeliveryRequest"> | Date | string
    status?: EnumDeliveryRequestStatusFilter<"DeliveryRequest"> | $Enums.DeliveryRequestStatus
    notes?: StringNullableFilter<"DeliveryRequest"> | string | null
    organizationId?: UuidFilter<"DeliveryRequest"> | string
    createdAt?: DateTimeFilter<"DeliveryRequest"> | Date | string
    updatedAt?: DateTimeFilter<"DeliveryRequest"> | Date | string
    createdById?: UuidFilter<"DeliveryRequest"> | string
    deletedAt?: DateTimeNullableFilter<"DeliveryRequest"> | Date | string | null
  }

  export type RobotUnitSnapshotUpsertWithWhereUniqueWithoutSalesOrderInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    update: XOR<RobotUnitSnapshotUpdateWithoutSalesOrderInput, RobotUnitSnapshotUncheckedUpdateWithoutSalesOrderInput>
    create: XOR<RobotUnitSnapshotCreateWithoutSalesOrderInput, RobotUnitSnapshotUncheckedCreateWithoutSalesOrderInput>
  }

  export type RobotUnitSnapshotUpdateWithWhereUniqueWithoutSalesOrderInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    data: XOR<RobotUnitSnapshotUpdateWithoutSalesOrderInput, RobotUnitSnapshotUncheckedUpdateWithoutSalesOrderInput>
  }

  export type RobotUnitSnapshotUpdateManyWithWhereWithoutSalesOrderInput = {
    where: RobotUnitSnapshotScalarWhereInput
    data: XOR<RobotUnitSnapshotUpdateManyMutationInput, RobotUnitSnapshotUncheckedUpdateManyWithoutSalesOrderInput>
  }

  export type SalesOrderCreateWithoutLinesInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    deliveryRequests?: DeliveryRequestCreateNestedManyWithoutSalesOrderInput
    snapshotRefs?: RobotUnitSnapshotCreateNestedManyWithoutSalesOrderInput
  }

  export type SalesOrderUncheckedCreateWithoutLinesInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    deliveryRequests?: DeliveryRequestUncheckedCreateNestedManyWithoutSalesOrderInput
    snapshotRefs?: RobotUnitSnapshotUncheckedCreateNestedManyWithoutSalesOrderInput
  }

  export type SalesOrderCreateOrConnectWithoutLinesInput = {
    where: SalesOrderWhereUniqueInput
    create: XOR<SalesOrderCreateWithoutLinesInput, SalesOrderUncheckedCreateWithoutLinesInput>
  }

  export type RobotUnitCreateWithoutSalesOrderLinesInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutSalesOrderLinesInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutSalesOrderLinesInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutSalesOrderLinesInput, RobotUnitUncheckedCreateWithoutSalesOrderLinesInput>
  }

  export type SalesOrderUpsertWithoutLinesInput = {
    update: XOR<SalesOrderUpdateWithoutLinesInput, SalesOrderUncheckedUpdateWithoutLinesInput>
    create: XOR<SalesOrderCreateWithoutLinesInput, SalesOrderUncheckedCreateWithoutLinesInput>
    where?: SalesOrderWhereInput
  }

  export type SalesOrderUpdateToOneWithWhereWithoutLinesInput = {
    where?: SalesOrderWhereInput
    data: XOR<SalesOrderUpdateWithoutLinesInput, SalesOrderUncheckedUpdateWithoutLinesInput>
  }

  export type SalesOrderUpdateWithoutLinesInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deliveryRequests?: DeliveryRequestUpdateManyWithoutSalesOrderNestedInput
    snapshotRefs?: RobotUnitSnapshotUpdateManyWithoutSalesOrderNestedInput
  }

  export type SalesOrderUncheckedUpdateWithoutLinesInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deliveryRequests?: DeliveryRequestUncheckedUpdateManyWithoutSalesOrderNestedInput
    snapshotRefs?: RobotUnitSnapshotUncheckedUpdateManyWithoutSalesOrderNestedInput
  }

  export type RobotUnitUpsertWithoutSalesOrderLinesInput = {
    update: XOR<RobotUnitUpdateWithoutSalesOrderLinesInput, RobotUnitUncheckedUpdateWithoutSalesOrderLinesInput>
    create: XOR<RobotUnitCreateWithoutSalesOrderLinesInput, RobotUnitUncheckedCreateWithoutSalesOrderLinesInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutSalesOrderLinesInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutSalesOrderLinesInput, RobotUnitUncheckedUpdateWithoutSalesOrderLinesInput>
  }

  export type RobotUnitUpdateWithoutSalesOrderLinesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutSalesOrderLinesInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type SalesOrderCreateWithoutDeliveryRequestsInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: SalesOrderLineCreateNestedManyWithoutSalesOrderInput
    snapshotRefs?: RobotUnitSnapshotCreateNestedManyWithoutSalesOrderInput
  }

  export type SalesOrderUncheckedCreateWithoutDeliveryRequestsInput = {
    id?: string
    soNo: string
    d365SoId?: string | null
    customerId: string
    salesPersonId?: string | null
    mentorId?: string | null
    menteeId?: string | null
    currencyCode: string
    totalAmount?: Decimal | DecimalJsLike | number | string
    contractStatus?: $Enums.SalesContractStatus
    status?: $Enums.SalesOrderStatus
    signedAt?: Date | string | null
    closedAt?: Date | string | null
    notes?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    lines?: SalesOrderLineUncheckedCreateNestedManyWithoutSalesOrderInput
    snapshotRefs?: RobotUnitSnapshotUncheckedCreateNestedManyWithoutSalesOrderInput
  }

  export type SalesOrderCreateOrConnectWithoutDeliveryRequestsInput = {
    where: SalesOrderWhereUniqueInput
    create: XOR<SalesOrderCreateWithoutDeliveryRequestsInput, SalesOrderUncheckedCreateWithoutDeliveryRequestsInput>
  }

  export type DeliveryFulfillmentCreateWithoutDeliveryRequestInput = {
    id?: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit: RobotUnitCreateNestedOneWithoutDeliveryFulfillmentsInput
  }

  export type DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput = {
    id?: string
    robotUnitId: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type DeliveryFulfillmentCreateOrConnectWithoutDeliveryRequestInput = {
    where: DeliveryFulfillmentWhereUniqueInput
    create: XOR<DeliveryFulfillmentCreateWithoutDeliveryRequestInput, DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput>
  }

  export type DeliveryFulfillmentCreateManyDeliveryRequestInputEnvelope = {
    data: DeliveryFulfillmentCreateManyDeliveryRequestInput | DeliveryFulfillmentCreateManyDeliveryRequestInput[]
    skipDuplicates?: boolean
  }

  export type RobotUnitSnapshotCreateWithoutDeliveryRequestInput = {
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
    robotUnit: RobotUnitCreateNestedOneWithoutSnapshotInput
    lastEvent?: RobotLifecycleEventCreateNestedOneWithoutSnapshotsAsLastEventInput
    salesOrder?: SalesOrderCreateNestedOneWithoutSnapshotRefsInput
  }

  export type RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSalesOrderId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventId?: string | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type RobotUnitSnapshotCreateOrConnectWithoutDeliveryRequestInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    create: XOR<RobotUnitSnapshotCreateWithoutDeliveryRequestInput, RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput>
  }

  export type RobotUnitSnapshotCreateManyDeliveryRequestInputEnvelope = {
    data: RobotUnitSnapshotCreateManyDeliveryRequestInput | RobotUnitSnapshotCreateManyDeliveryRequestInput[]
    skipDuplicates?: boolean
  }

  export type SalesOrderUpsertWithoutDeliveryRequestsInput = {
    update: XOR<SalesOrderUpdateWithoutDeliveryRequestsInput, SalesOrderUncheckedUpdateWithoutDeliveryRequestsInput>
    create: XOR<SalesOrderCreateWithoutDeliveryRequestsInput, SalesOrderUncheckedCreateWithoutDeliveryRequestsInput>
    where?: SalesOrderWhereInput
  }

  export type SalesOrderUpdateToOneWithWhereWithoutDeliveryRequestsInput = {
    where?: SalesOrderWhereInput
    data: XOR<SalesOrderUpdateWithoutDeliveryRequestsInput, SalesOrderUncheckedUpdateWithoutDeliveryRequestsInput>
  }

  export type SalesOrderUpdateWithoutDeliveryRequestsInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: SalesOrderLineUpdateManyWithoutSalesOrderNestedInput
    snapshotRefs?: RobotUnitSnapshotUpdateManyWithoutSalesOrderNestedInput
  }

  export type SalesOrderUncheckedUpdateWithoutDeliveryRequestsInput = {
    id?: StringFieldUpdateOperationsInput | string
    soNo?: StringFieldUpdateOperationsInput | string
    d365SoId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: StringFieldUpdateOperationsInput | string
    salesPersonId?: NullableStringFieldUpdateOperationsInput | string | null
    mentorId?: NullableStringFieldUpdateOperationsInput | string | null
    menteeId?: NullableStringFieldUpdateOperationsInput | string | null
    currencyCode?: StringFieldUpdateOperationsInput | string
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    contractStatus?: EnumSalesContractStatusFieldUpdateOperationsInput | $Enums.SalesContractStatus
    status?: EnumSalesOrderStatusFieldUpdateOperationsInput | $Enums.SalesOrderStatus
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lines?: SalesOrderLineUncheckedUpdateManyWithoutSalesOrderNestedInput
    snapshotRefs?: RobotUnitSnapshotUncheckedUpdateManyWithoutSalesOrderNestedInput
  }

  export type DeliveryFulfillmentUpsertWithWhereUniqueWithoutDeliveryRequestInput = {
    where: DeliveryFulfillmentWhereUniqueInput
    update: XOR<DeliveryFulfillmentUpdateWithoutDeliveryRequestInput, DeliveryFulfillmentUncheckedUpdateWithoutDeliveryRequestInput>
    create: XOR<DeliveryFulfillmentCreateWithoutDeliveryRequestInput, DeliveryFulfillmentUncheckedCreateWithoutDeliveryRequestInput>
  }

  export type DeliveryFulfillmentUpdateWithWhereUniqueWithoutDeliveryRequestInput = {
    where: DeliveryFulfillmentWhereUniqueInput
    data: XOR<DeliveryFulfillmentUpdateWithoutDeliveryRequestInput, DeliveryFulfillmentUncheckedUpdateWithoutDeliveryRequestInput>
  }

  export type DeliveryFulfillmentUpdateManyWithWhereWithoutDeliveryRequestInput = {
    where: DeliveryFulfillmentScalarWhereInput
    data: XOR<DeliveryFulfillmentUpdateManyMutationInput, DeliveryFulfillmentUncheckedUpdateManyWithoutDeliveryRequestInput>
  }

  export type RobotUnitSnapshotUpsertWithWhereUniqueWithoutDeliveryRequestInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    update: XOR<RobotUnitSnapshotUpdateWithoutDeliveryRequestInput, RobotUnitSnapshotUncheckedUpdateWithoutDeliveryRequestInput>
    create: XOR<RobotUnitSnapshotCreateWithoutDeliveryRequestInput, RobotUnitSnapshotUncheckedCreateWithoutDeliveryRequestInput>
  }

  export type RobotUnitSnapshotUpdateWithWhereUniqueWithoutDeliveryRequestInput = {
    where: RobotUnitSnapshotWhereUniqueInput
    data: XOR<RobotUnitSnapshotUpdateWithoutDeliveryRequestInput, RobotUnitSnapshotUncheckedUpdateWithoutDeliveryRequestInput>
  }

  export type RobotUnitSnapshotUpdateManyWithWhereWithoutDeliveryRequestInput = {
    where: RobotUnitSnapshotScalarWhereInput
    data: XOR<RobotUnitSnapshotUpdateManyMutationInput, RobotUnitSnapshotUncheckedUpdateManyWithoutDeliveryRequestInput>
  }

  export type DeliveryRequestCreateWithoutFulfillmentsInput = {
    id?: string
    deliveryNo: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    salesOrder: SalesOrderCreateNestedOneWithoutDeliveryRequestsInput
    snapshotRefs?: RobotUnitSnapshotCreateNestedManyWithoutDeliveryRequestInput
  }

  export type DeliveryRequestUncheckedCreateWithoutFulfillmentsInput = {
    id?: string
    deliveryNo: string
    salesOrderId: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshotRefs?: RobotUnitSnapshotUncheckedCreateNestedManyWithoutDeliveryRequestInput
  }

  export type DeliveryRequestCreateOrConnectWithoutFulfillmentsInput = {
    where: DeliveryRequestWhereUniqueInput
    create: XOR<DeliveryRequestCreateWithoutFulfillmentsInput, DeliveryRequestUncheckedCreateWithoutFulfillmentsInput>
  }

  export type RobotUnitCreateWithoutDeliveryFulfillmentsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutDeliveryFulfillmentsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutDeliveryFulfillmentsInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutDeliveryFulfillmentsInput, RobotUnitUncheckedCreateWithoutDeliveryFulfillmentsInput>
  }

  export type DeliveryRequestUpsertWithoutFulfillmentsInput = {
    update: XOR<DeliveryRequestUpdateWithoutFulfillmentsInput, DeliveryRequestUncheckedUpdateWithoutFulfillmentsInput>
    create: XOR<DeliveryRequestCreateWithoutFulfillmentsInput, DeliveryRequestUncheckedCreateWithoutFulfillmentsInput>
    where?: DeliveryRequestWhereInput
  }

  export type DeliveryRequestUpdateToOneWithWhereWithoutFulfillmentsInput = {
    where?: DeliveryRequestWhereInput
    data: XOR<DeliveryRequestUpdateWithoutFulfillmentsInput, DeliveryRequestUncheckedUpdateWithoutFulfillmentsInput>
  }

  export type DeliveryRequestUpdateWithoutFulfillmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    salesOrder?: SalesOrderUpdateOneRequiredWithoutDeliveryRequestsNestedInput
    snapshotRefs?: RobotUnitSnapshotUpdateManyWithoutDeliveryRequestNestedInput
  }

  export type DeliveryRequestUncheckedUpdateWithoutFulfillmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    salesOrderId?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshotRefs?: RobotUnitSnapshotUncheckedUpdateManyWithoutDeliveryRequestNestedInput
  }

  export type RobotUnitUpsertWithoutDeliveryFulfillmentsInput = {
    update: XOR<RobotUnitUpdateWithoutDeliveryFulfillmentsInput, RobotUnitUncheckedUpdateWithoutDeliveryFulfillmentsInput>
    create: XOR<RobotUnitCreateWithoutDeliveryFulfillmentsInput, RobotUnitUncheckedCreateWithoutDeliveryFulfillmentsInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutDeliveryFulfillmentsInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutDeliveryFulfillmentsInput, RobotUnitUncheckedUpdateWithoutDeliveryFulfillmentsInput>
  }

  export type RobotUnitUpdateWithoutDeliveryFulfillmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutDeliveryFulfillmentsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitCreateWithoutPaymentRecordsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutPaymentRecordsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutPaymentRecordsInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutPaymentRecordsInput, RobotUnitUncheckedCreateWithoutPaymentRecordsInput>
  }

  export type RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput = {
    id?: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    rentalAgreement: RentalAgreementCreateNestedOneWithoutSchedulesInput
  }

  export type RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput = {
    id?: string
    rentalAgreementId: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RentalPaymentScheduleCreateOrConnectWithoutPaidPaymentRecordInput = {
    where: RentalPaymentScheduleWhereUniqueInput
    create: XOR<RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput, RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput>
  }

  export type RentalPaymentScheduleCreateManyPaidPaymentRecordInputEnvelope = {
    data: RentalPaymentScheduleCreateManyPaidPaymentRecordInput | RentalPaymentScheduleCreateManyPaidPaymentRecordInput[]
    skipDuplicates?: boolean
  }

  export type RobotUnitUpsertWithoutPaymentRecordsInput = {
    update: XOR<RobotUnitUpdateWithoutPaymentRecordsInput, RobotUnitUncheckedUpdateWithoutPaymentRecordsInput>
    create: XOR<RobotUnitCreateWithoutPaymentRecordsInput, RobotUnitUncheckedCreateWithoutPaymentRecordsInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutPaymentRecordsInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutPaymentRecordsInput, RobotUnitUncheckedUpdateWithoutPaymentRecordsInput>
  }

  export type RobotUnitUpdateWithoutPaymentRecordsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutPaymentRecordsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
  }

  export type RentalPaymentScheduleUpsertWithWhereUniqueWithoutPaidPaymentRecordInput = {
    where: RentalPaymentScheduleWhereUniqueInput
    update: XOR<RentalPaymentScheduleUpdateWithoutPaidPaymentRecordInput, RentalPaymentScheduleUncheckedUpdateWithoutPaidPaymentRecordInput>
    create: XOR<RentalPaymentScheduleCreateWithoutPaidPaymentRecordInput, RentalPaymentScheduleUncheckedCreateWithoutPaidPaymentRecordInput>
  }

  export type RentalPaymentScheduleUpdateWithWhereUniqueWithoutPaidPaymentRecordInput = {
    where: RentalPaymentScheduleWhereUniqueInput
    data: XOR<RentalPaymentScheduleUpdateWithoutPaidPaymentRecordInput, RentalPaymentScheduleUncheckedUpdateWithoutPaidPaymentRecordInput>
  }

  export type RentalPaymentScheduleUpdateManyWithWhereWithoutPaidPaymentRecordInput = {
    where: RentalPaymentScheduleScalarWhereInput
    data: XOR<RentalPaymentScheduleUpdateManyMutationInput, RentalPaymentScheduleUncheckedUpdateManyWithoutPaidPaymentRecordInput>
  }

  export type RentalPaymentScheduleScalarWhereInput = {
    AND?: RentalPaymentScheduleScalarWhereInput | RentalPaymentScheduleScalarWhereInput[]
    OR?: RentalPaymentScheduleScalarWhereInput[]
    NOT?: RentalPaymentScheduleScalarWhereInput | RentalPaymentScheduleScalarWhereInput[]
    id?: UuidFilter<"RentalPaymentSchedule"> | string
    rentalAgreementId?: UuidFilter<"RentalPaymentSchedule"> | string
    dueDate?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
    amount?: DecimalFilter<"RentalPaymentSchedule"> | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFilter<"RentalPaymentSchedule"> | string
    paidPaymentRecordId?: UuidNullableFilter<"RentalPaymentSchedule"> | string | null
    paidAt?: DateTimeNullableFilter<"RentalPaymentSchedule"> | Date | string | null
    createdAt?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
    updatedAt?: DateTimeFilter<"RentalPaymentSchedule"> | Date | string
  }

  export type RobotUnitCreateWithoutQualityLabelsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutQualityLabelsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutQualityLabelsInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutQualityLabelsInput, RobotUnitUncheckedCreateWithoutQualityLabelsInput>
  }

  export type RobotUnitUpsertWithoutQualityLabelsInput = {
    update: XOR<RobotUnitUpdateWithoutQualityLabelsInput, RobotUnitUncheckedUpdateWithoutQualityLabelsInput>
    create: XOR<RobotUnitCreateWithoutQualityLabelsInput, RobotUnitUncheckedCreateWithoutQualityLabelsInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutQualityLabelsInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutQualityLabelsInput, RobotUnitUncheckedUpdateWithoutQualityLabelsInput>
  }

  export type RobotUnitUpdateWithoutQualityLabelsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutQualityLabelsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitCreateWithoutPackageReadinessInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutPackageReadinessInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutPackageReadinessInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutPackageReadinessInput, RobotUnitUncheckedCreateWithoutPackageReadinessInput>
  }

  export type RobotUnitUpsertWithoutPackageReadinessInput = {
    update: XOR<RobotUnitUpdateWithoutPackageReadinessInput, RobotUnitUncheckedUpdateWithoutPackageReadinessInput>
    create: XOR<RobotUnitCreateWithoutPackageReadinessInput, RobotUnitUncheckedCreateWithoutPackageReadinessInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutPackageReadinessInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutPackageReadinessInput, RobotUnitUncheckedUpdateWithoutPackageReadinessInput>
  }

  export type RobotUnitUpdateWithoutPackageReadinessInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutPackageReadinessInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitCreateWithoutInspectionsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutInspectionsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutInspectionsInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutInspectionsInput, RobotUnitUncheckedCreateWithoutInspectionsInput>
  }

  export type RobotUnitUpsertWithoutInspectionsInput = {
    update: XOR<RobotUnitUpdateWithoutInspectionsInput, RobotUnitUncheckedUpdateWithoutInspectionsInput>
    create: XOR<RobotUnitCreateWithoutInspectionsInput, RobotUnitUncheckedCreateWithoutInspectionsInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutInspectionsInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutInspectionsInput, RobotUnitUncheckedUpdateWithoutInspectionsInput>
  }

  export type RobotUnitUpdateWithoutInspectionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutInspectionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitCreateWithoutLogisticsLegsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutLogisticsLegsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutLogisticsLegsInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutLogisticsLegsInput, RobotUnitUncheckedCreateWithoutLogisticsLegsInput>
  }

  export type RobotUnitUpsertWithoutLogisticsLegsInput = {
    update: XOR<RobotUnitUpdateWithoutLogisticsLegsInput, RobotUnitUncheckedUpdateWithoutLogisticsLegsInput>
    create: XOR<RobotUnitCreateWithoutLogisticsLegsInput, RobotUnitUncheckedCreateWithoutLogisticsLegsInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutLogisticsLegsInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutLogisticsLegsInput, RobotUnitUncheckedUpdateWithoutLogisticsLegsInput>
  }

  export type RobotUnitUpdateWithoutLogisticsLegsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutLogisticsLegsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitCreateWithoutComplianceCheckInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutComplianceCheckInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutComplianceCheckInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutComplianceCheckInput, RobotUnitUncheckedCreateWithoutComplianceCheckInput>
  }

  export type RobotUnitUpsertWithoutComplianceCheckInput = {
    update: XOR<RobotUnitUpdateWithoutComplianceCheckInput, RobotUnitUncheckedUpdateWithoutComplianceCheckInput>
    create: XOR<RobotUnitCreateWithoutComplianceCheckInput, RobotUnitUncheckedCreateWithoutComplianceCheckInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutComplianceCheckInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutComplianceCheckInput, RobotUnitUncheckedUpdateWithoutComplianceCheckInput>
  }

  export type RobotUnitUpdateWithoutComplianceCheckInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutComplianceCheckInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitCreateWithoutRentalAgreementsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutRentalAgreementsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutRentalAgreementsInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutRentalAgreementsInput, RobotUnitUncheckedCreateWithoutRentalAgreementsInput>
  }

  export type RentalPaymentScheduleCreateWithoutRentalAgreementInput = {
    id?: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    paidPaymentRecord?: PaymentRecordCreateNestedOneWithoutRentalScheduleEntriesInput
  }

  export type RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput = {
    id?: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidPaymentRecordId?: string | null
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RentalPaymentScheduleCreateOrConnectWithoutRentalAgreementInput = {
    where: RentalPaymentScheduleWhereUniqueInput
    create: XOR<RentalPaymentScheduleCreateWithoutRentalAgreementInput, RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput>
  }

  export type RentalPaymentScheduleCreateManyRentalAgreementInputEnvelope = {
    data: RentalPaymentScheduleCreateManyRentalAgreementInput | RentalPaymentScheduleCreateManyRentalAgreementInput[]
    skipDuplicates?: boolean
  }

  export type RobotUnitUpsertWithoutRentalAgreementsInput = {
    update: XOR<RobotUnitUpdateWithoutRentalAgreementsInput, RobotUnitUncheckedUpdateWithoutRentalAgreementsInput>
    create: XOR<RobotUnitCreateWithoutRentalAgreementsInput, RobotUnitUncheckedCreateWithoutRentalAgreementsInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutRentalAgreementsInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutRentalAgreementsInput, RobotUnitUncheckedUpdateWithoutRentalAgreementsInput>
  }

  export type RobotUnitUpdateWithoutRentalAgreementsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutRentalAgreementsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RentalPaymentScheduleUpsertWithWhereUniqueWithoutRentalAgreementInput = {
    where: RentalPaymentScheduleWhereUniqueInput
    update: XOR<RentalPaymentScheduleUpdateWithoutRentalAgreementInput, RentalPaymentScheduleUncheckedUpdateWithoutRentalAgreementInput>
    create: XOR<RentalPaymentScheduleCreateWithoutRentalAgreementInput, RentalPaymentScheduleUncheckedCreateWithoutRentalAgreementInput>
  }

  export type RentalPaymentScheduleUpdateWithWhereUniqueWithoutRentalAgreementInput = {
    where: RentalPaymentScheduleWhereUniqueInput
    data: XOR<RentalPaymentScheduleUpdateWithoutRentalAgreementInput, RentalPaymentScheduleUncheckedUpdateWithoutRentalAgreementInput>
  }

  export type RentalPaymentScheduleUpdateManyWithWhereWithoutRentalAgreementInput = {
    where: RentalPaymentScheduleScalarWhereInput
    data: XOR<RentalPaymentScheduleUpdateManyMutationInput, RentalPaymentScheduleUncheckedUpdateManyWithoutRentalAgreementInput>
  }

  export type RentalAgreementCreateWithoutSchedulesInput = {
    id?: string
    customerId: string
    startAt: Date | string
    endAt: Date | string
    periodMonths: number
    monthlyRate: Decimal | DecimalJsLike | number | string
    currencyCode: string
    status?: $Enums.RentalAgreementStatus
    contractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit: RobotUnitCreateNestedOneWithoutRentalAgreementsInput
  }

  export type RentalAgreementUncheckedCreateWithoutSchedulesInput = {
    id?: string
    robotUnitId: string
    customerId: string
    startAt: Date | string
    endAt: Date | string
    periodMonths: number
    monthlyRate: Decimal | DecimalJsLike | number | string
    currencyCode: string
    status?: $Enums.RentalAgreementStatus
    contractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RentalAgreementCreateOrConnectWithoutSchedulesInput = {
    where: RentalAgreementWhereUniqueInput
    create: XOR<RentalAgreementCreateWithoutSchedulesInput, RentalAgreementUncheckedCreateWithoutSchedulesInput>
  }

  export type PaymentRecordCreateWithoutRentalScheduleEntriesInput = {
    id?: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    direction: $Enums.PaymentDirection
    sapClearingDocNo?: string | null
    paymentMethod?: $Enums.PaymentMethod | null
    paymentStatus?: $Enums.PaymentStatus | null
    preDelContractStatus?: $Enums.PreDelContractStatus | null
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    depositTransferFormAttachmentId?: string | null
    depositTransferContractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit?: RobotUnitCreateNestedOneWithoutPaymentRecordsInput
  }

  export type PaymentRecordUncheckedCreateWithoutRentalScheduleEntriesInput = {
    id?: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    robotUnitId?: string | null
    direction: $Enums.PaymentDirection
    sapClearingDocNo?: string | null
    paymentMethod?: $Enums.PaymentMethod | null
    paymentStatus?: $Enums.PaymentStatus | null
    preDelContractStatus?: $Enums.PreDelContractStatus | null
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    depositTransferFormAttachmentId?: string | null
    depositTransferContractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type PaymentRecordCreateOrConnectWithoutRentalScheduleEntriesInput = {
    where: PaymentRecordWhereUniqueInput
    create: XOR<PaymentRecordCreateWithoutRentalScheduleEntriesInput, PaymentRecordUncheckedCreateWithoutRentalScheduleEntriesInput>
  }

  export type RentalAgreementUpsertWithoutSchedulesInput = {
    update: XOR<RentalAgreementUpdateWithoutSchedulesInput, RentalAgreementUncheckedUpdateWithoutSchedulesInput>
    create: XOR<RentalAgreementCreateWithoutSchedulesInput, RentalAgreementUncheckedCreateWithoutSchedulesInput>
    where?: RentalAgreementWhereInput
  }

  export type RentalAgreementUpdateToOneWithWhereWithoutSchedulesInput = {
    where?: RentalAgreementWhereInput
    data: XOR<RentalAgreementUpdateWithoutSchedulesInput, RentalAgreementUncheckedUpdateWithoutSchedulesInput>
  }

  export type RentalAgreementUpdateWithoutSchedulesInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneRequiredWithoutRentalAgreementsNestedInput
  }

  export type RentalAgreementUncheckedUpdateWithoutSchedulesInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PaymentRecordUpsertWithoutRentalScheduleEntriesInput = {
    update: XOR<PaymentRecordUpdateWithoutRentalScheduleEntriesInput, PaymentRecordUncheckedUpdateWithoutRentalScheduleEntriesInput>
    create: XOR<PaymentRecordCreateWithoutRentalScheduleEntriesInput, PaymentRecordUncheckedCreateWithoutRentalScheduleEntriesInput>
    where?: PaymentRecordWhereInput
  }

  export type PaymentRecordUpdateToOneWithWhereWithoutRentalScheduleEntriesInput = {
    where?: PaymentRecordWhereInput
    data: XOR<PaymentRecordUpdateWithoutRentalScheduleEntriesInput, PaymentRecordUncheckedUpdateWithoutRentalScheduleEntriesInput>
  }

  export type PaymentRecordUpdateWithoutRentalScheduleEntriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneWithoutPaymentRecordsNestedInput
  }

  export type PaymentRecordUncheckedUpdateWithoutRentalScheduleEntriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    robotUnitId?: NullableStringFieldUpdateOperationsInput | string | null
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitCreateWithoutServiceTicketsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutServiceTicketsInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    importAudit?: RobotImportAuditUncheckedCreateNestedOneWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutServiceTicketsInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutServiceTicketsInput, RobotUnitUncheckedCreateWithoutServiceTicketsInput>
  }

  export type ServiceTicketActivityCreateWithoutTicketInput = {
    id?: string
    activityType: $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById: string
    occurredAt: Date | string
    createdAt?: Date | string
  }

  export type ServiceTicketActivityUncheckedCreateWithoutTicketInput = {
    id?: string
    activityType: $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById: string
    occurredAt: Date | string
    createdAt?: Date | string
  }

  export type ServiceTicketActivityCreateOrConnectWithoutTicketInput = {
    where: ServiceTicketActivityWhereUniqueInput
    create: XOR<ServiceTicketActivityCreateWithoutTicketInput, ServiceTicketActivityUncheckedCreateWithoutTicketInput>
  }

  export type ServiceTicketActivityCreateManyTicketInputEnvelope = {
    data: ServiceTicketActivityCreateManyTicketInput | ServiceTicketActivityCreateManyTicketInput[]
    skipDuplicates?: boolean
  }

  export type RobotUnitUpsertWithoutServiceTicketsInput = {
    update: XOR<RobotUnitUpdateWithoutServiceTicketsInput, RobotUnitUncheckedUpdateWithoutServiceTicketsInput>
    create: XOR<RobotUnitCreateWithoutServiceTicketsInput, RobotUnitUncheckedCreateWithoutServiceTicketsInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutServiceTicketsInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutServiceTicketsInput, RobotUnitUncheckedUpdateWithoutServiceTicketsInput>
  }

  export type RobotUnitUpdateWithoutServiceTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutServiceTicketsInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type ServiceTicketActivityUpsertWithWhereUniqueWithoutTicketInput = {
    where: ServiceTicketActivityWhereUniqueInput
    update: XOR<ServiceTicketActivityUpdateWithoutTicketInput, ServiceTicketActivityUncheckedUpdateWithoutTicketInput>
    create: XOR<ServiceTicketActivityCreateWithoutTicketInput, ServiceTicketActivityUncheckedCreateWithoutTicketInput>
  }

  export type ServiceTicketActivityUpdateWithWhereUniqueWithoutTicketInput = {
    where: ServiceTicketActivityWhereUniqueInput
    data: XOR<ServiceTicketActivityUpdateWithoutTicketInput, ServiceTicketActivityUncheckedUpdateWithoutTicketInput>
  }

  export type ServiceTicketActivityUpdateManyWithWhereWithoutTicketInput = {
    where: ServiceTicketActivityScalarWhereInput
    data: XOR<ServiceTicketActivityUpdateManyMutationInput, ServiceTicketActivityUncheckedUpdateManyWithoutTicketInput>
  }

  export type ServiceTicketActivityScalarWhereInput = {
    AND?: ServiceTicketActivityScalarWhereInput | ServiceTicketActivityScalarWhereInput[]
    OR?: ServiceTicketActivityScalarWhereInput[]
    NOT?: ServiceTicketActivityScalarWhereInput | ServiceTicketActivityScalarWhereInput[]
    id?: UuidFilter<"ServiceTicketActivity"> | string
    ticketId?: UuidFilter<"ServiceTicketActivity"> | string
    activityType?: EnumServiceTicketActivityTypeFilter<"ServiceTicketActivity"> | $Enums.ServiceTicketActivityType
    payload?: JsonFilter<"ServiceTicketActivity">
    createdById?: UuidFilter<"ServiceTicketActivity"> | string
    occurredAt?: DateTimeFilter<"ServiceTicketActivity"> | Date | string
    createdAt?: DateTimeFilter<"ServiceTicketActivity"> | Date | string
  }

  export type ServiceTicketCreateWithoutActivitiesInput = {
    id?: string
    ticketNo: string
    customerId?: string | null
    issueTypeCode: string
    severity?: $Enums.TicketSeverity
    status?: $Enums.ServiceTicketStatus
    serviceRecord?: string | null
    customerFeedback?: string | null
    openedAt: Date | string
    openedById: string
    closedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    robotUnit: RobotUnitCreateNestedOneWithoutServiceTicketsInput
  }

  export type ServiceTicketUncheckedCreateWithoutActivitiesInput = {
    id?: string
    ticketNo: string
    robotUnitId: string
    customerId?: string | null
    issueTypeCode: string
    severity?: $Enums.TicketSeverity
    status?: $Enums.ServiceTicketStatus
    serviceRecord?: string | null
    customerFeedback?: string | null
    openedAt: Date | string
    openedById: string
    closedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type ServiceTicketCreateOrConnectWithoutActivitiesInput = {
    where: ServiceTicketWhereUniqueInput
    create: XOR<ServiceTicketCreateWithoutActivitiesInput, ServiceTicketUncheckedCreateWithoutActivitiesInput>
  }

  export type ServiceTicketUpsertWithoutActivitiesInput = {
    update: XOR<ServiceTicketUpdateWithoutActivitiesInput, ServiceTicketUncheckedUpdateWithoutActivitiesInput>
    create: XOR<ServiceTicketCreateWithoutActivitiesInput, ServiceTicketUncheckedCreateWithoutActivitiesInput>
    where?: ServiceTicketWhereInput
  }

  export type ServiceTicketUpdateToOneWithWhereWithoutActivitiesInput = {
    where?: ServiceTicketWhereInput
    data: XOR<ServiceTicketUpdateWithoutActivitiesInput, ServiceTicketUncheckedUpdateWithoutActivitiesInput>
  }

  export type ServiceTicketUpdateWithoutActivitiesInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneRequiredWithoutServiceTicketsNestedInput
  }

  export type ServiceTicketUncheckedUpdateWithoutActivitiesInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitCreateWithoutImportAuditInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    usageType?: $Enums.RobotUsageType
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    model: RobotModelCreateNestedOneWithoutRobotUnitsInput
    sku: RobotSkuCreateNestedOneWithoutRobotUnitsInput
    purchaseOrder?: PurchaseOrderCreateNestedOneWithoutRobotUnitsInput
    purchaseOrderLine?: PurchaseOrderLineCreateNestedOneWithoutRobotUnitsInput
    snapshot?: RobotUnitSnapshotCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineCreateNestedManyWithoutRobotUnitInput
    paymentRecords?: PaymentRecordCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitUncheckedCreateWithoutImportAuditInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedCreateNestedOneWithoutRobotUnitInput
    events?: RobotLifecycleEventUncheckedCreateNestedManyWithoutRobotUnitInput
    qualityLabels?: QualityLabelRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    packageReadiness?: RobotPackageReadinessUncheckedCreateNestedOneWithoutRobotUnitInput
    inspections?: InspectionRecordUncheckedCreateNestedManyWithoutRobotUnitInput
    logisticsLegs?: LogisticsLegUncheckedCreateNestedManyWithoutRobotUnitInput
    complianceCheck?: ComplianceCheckUncheckedCreateNestedOneWithoutRobotUnitInput
    rentalAgreements?: RentalAgreementUncheckedCreateNestedManyWithoutRobotUnitInput
    serviceTickets?: ServiceTicketUncheckedCreateNestedManyWithoutRobotUnitInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedCreateNestedManyWithoutRobotUnitInput
    salesOrderLines?: SalesOrderLineUncheckedCreateNestedManyWithoutRobotUnitInput
    paymentRecords?: PaymentRecordUncheckedCreateNestedManyWithoutRobotUnitInput
  }

  export type RobotUnitCreateOrConnectWithoutImportAuditInput = {
    where: RobotUnitWhereUniqueInput
    create: XOR<RobotUnitCreateWithoutImportAuditInput, RobotUnitUncheckedCreateWithoutImportAuditInput>
  }

  export type RobotUnitUpsertWithoutImportAuditInput = {
    update: XOR<RobotUnitUpdateWithoutImportAuditInput, RobotUnitUncheckedUpdateWithoutImportAuditInput>
    create: XOR<RobotUnitCreateWithoutImportAuditInput, RobotUnitUncheckedCreateWithoutImportAuditInput>
    where?: RobotUnitWhereInput
  }

  export type RobotUnitUpdateToOneWithWhereWithoutImportAuditInput = {
    where?: RobotUnitWhereInput
    data: XOR<RobotUnitUpdateWithoutImportAuditInput, RobotUnitUncheckedUpdateWithoutImportAuditInput>
  }

  export type RobotUnitUpdateWithoutImportAuditInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutImportAuditInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type ImportBatchEntryCreateWithoutBatchInput = {
    id?: string
    rowNo: number
    status: $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryCreateentityIdsInput | string[]
    payload: JsonNullValueInput | InputJsonValue
    payloadHash: string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ImportBatchEntryUncheckedCreateWithoutBatchInput = {
    id?: string
    rowNo: number
    status: $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryCreateentityIdsInput | string[]
    payload: JsonNullValueInput | InputJsonValue
    payloadHash: string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ImportBatchEntryCreateOrConnectWithoutBatchInput = {
    where: ImportBatchEntryWhereUniqueInput
    create: XOR<ImportBatchEntryCreateWithoutBatchInput, ImportBatchEntryUncheckedCreateWithoutBatchInput>
  }

  export type ImportBatchEntryCreateManyBatchInputEnvelope = {
    data: ImportBatchEntryCreateManyBatchInput | ImportBatchEntryCreateManyBatchInput[]
    skipDuplicates?: boolean
  }

  export type ImportBatchEntryUpsertWithWhereUniqueWithoutBatchInput = {
    where: ImportBatchEntryWhereUniqueInput
    update: XOR<ImportBatchEntryUpdateWithoutBatchInput, ImportBatchEntryUncheckedUpdateWithoutBatchInput>
    create: XOR<ImportBatchEntryCreateWithoutBatchInput, ImportBatchEntryUncheckedCreateWithoutBatchInput>
  }

  export type ImportBatchEntryUpdateWithWhereUniqueWithoutBatchInput = {
    where: ImportBatchEntryWhereUniqueInput
    data: XOR<ImportBatchEntryUpdateWithoutBatchInput, ImportBatchEntryUncheckedUpdateWithoutBatchInput>
  }

  export type ImportBatchEntryUpdateManyWithWhereWithoutBatchInput = {
    where: ImportBatchEntryScalarWhereInput
    data: XOR<ImportBatchEntryUpdateManyMutationInput, ImportBatchEntryUncheckedUpdateManyWithoutBatchInput>
  }

  export type ImportBatchEntryScalarWhereInput = {
    AND?: ImportBatchEntryScalarWhereInput | ImportBatchEntryScalarWhereInput[]
    OR?: ImportBatchEntryScalarWhereInput[]
    NOT?: ImportBatchEntryScalarWhereInput | ImportBatchEntryScalarWhereInput[]
    id?: UuidFilter<"ImportBatchEntry"> | string
    batchId?: UuidFilter<"ImportBatchEntry"> | string
    rowNo?: IntFilter<"ImportBatchEntry"> | number
    status?: EnumImportEntryStatusFilter<"ImportBatchEntry"> | $Enums.ImportEntryStatus
    entityIds?: StringNullableListFilter<"ImportBatchEntry">
    payload?: JsonFilter<"ImportBatchEntry">
    payloadHash?: StringFilter<"ImportBatchEntry"> | string
    errorDetail?: JsonNullableFilter<"ImportBatchEntry">
    createdAt?: DateTimeFilter<"ImportBatchEntry"> | Date | string
    deletedAt?: DateTimeNullableFilter<"ImportBatchEntry"> | Date | string | null
  }

  export type ImportBatchCreateWithoutEntriesInput = {
    id?: string
    type: $Enums.ImportBatchType
    status?: $Enums.ImportBatchStatus
    fileName: string
    fileHash: string
    templateSchemaHash: string
    totalRows?: number
    successRows?: number
    errorRows?: number
    warningRows?: number
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    confirmedById?: string | null
    confirmedAt?: Date | string | null
    clientIp?: string | null
    userAgent?: string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type ImportBatchUncheckedCreateWithoutEntriesInput = {
    id?: string
    type: $Enums.ImportBatchType
    status?: $Enums.ImportBatchStatus
    fileName: string
    fileHash: string
    templateSchemaHash: string
    totalRows?: number
    successRows?: number
    errorRows?: number
    warningRows?: number
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    confirmedById?: string | null
    confirmedAt?: Date | string | null
    clientIp?: string | null
    userAgent?: string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type ImportBatchCreateOrConnectWithoutEntriesInput = {
    where: ImportBatchWhereUniqueInput
    create: XOR<ImportBatchCreateWithoutEntriesInput, ImportBatchUncheckedCreateWithoutEntriesInput>
  }

  export type ImportBatchUpsertWithoutEntriesInput = {
    update: XOR<ImportBatchUpdateWithoutEntriesInput, ImportBatchUncheckedUpdateWithoutEntriesInput>
    create: XOR<ImportBatchCreateWithoutEntriesInput, ImportBatchUncheckedCreateWithoutEntriesInput>
    where?: ImportBatchWhereInput
  }

  export type ImportBatchUpdateToOneWithWhereWithoutEntriesInput = {
    where?: ImportBatchWhereInput
    data: XOR<ImportBatchUpdateWithoutEntriesInput, ImportBatchUncheckedUpdateWithoutEntriesInput>
  }

  export type ImportBatchUpdateWithoutEntriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumImportBatchTypeFieldUpdateOperationsInput | $Enums.ImportBatchType
    status?: EnumImportBatchStatusFieldUpdateOperationsInput | $Enums.ImportBatchStatus
    fileName?: StringFieldUpdateOperationsInput | string
    fileHash?: StringFieldUpdateOperationsInput | string
    templateSchemaHash?: StringFieldUpdateOperationsInput | string
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    errorRows?: IntFieldUpdateOperationsInput | number
    warningRows?: IntFieldUpdateOperationsInput | number
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmedById?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ImportBatchUncheckedUpdateWithoutEntriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumImportBatchTypeFieldUpdateOperationsInput | $Enums.ImportBatchType
    status?: EnumImportBatchStatusFieldUpdateOperationsInput | $Enums.ImportBatchStatus
    fileName?: StringFieldUpdateOperationsInput | string
    fileHash?: StringFieldUpdateOperationsInput | string
    templateSchemaHash?: StringFieldUpdateOperationsInput | string
    totalRows?: IntFieldUpdateOperationsInput | number
    successRows?: IntFieldUpdateOperationsInput | number
    errorRows?: IntFieldUpdateOperationsInput | number
    warningRows?: IntFieldUpdateOperationsInput | number
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmedById?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    clientIp?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    errorSummary?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalVersionCreateManyDefinitionInput = {
    id?: string
    version: number
    name: string
    isDefault?: boolean
    processModel: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: $Enums.VersionStatus
    deployedAt?: Date | string | null
    deployedBy?: string | null
    changeLog?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalVersionUpdateWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: ApprovalInstanceUpdateManyWithoutVersionNestedInput
  }

  export type ApprovalVersionUncheckedUpdateWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: ApprovalInstanceUncheckedUpdateManyWithoutVersionNestedInput
  }

  export type ApprovalVersionUncheckedUpdateManyWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    processModel?: JsonNullValueInput | InputJsonValue
    settings?: JsonNullValueInput | InputJsonValue
    formSchema?: NullableJsonNullValueInput | InputJsonValue
    ruleConfig?: JsonNullValueInput | InputJsonValue
    status?: EnumVersionStatusFieldUpdateOperationsInput | $Enums.VersionStatus
    deployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deployedBy?: NullableStringFieldUpdateOperationsInput | string | null
    changeLog?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalInstanceCreateManyVersionInput = {
    id?: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    initiatorId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
  }

  export type ApprovalInstanceUpdateWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    initiator?: UserUpdateOneRequiredWithoutInitiatedProcessesNestedInput
    nodeInstances?: ApprovalNodeInstanceUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    initiatorId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUncheckedUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUncheckedUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateManyWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    initiatorId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalNodeInstanceCreateManyInstanceInput = {
    id?: string
    nodeId: string
    nodeName: string
    nodeType: string
    status?: $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceCreateassigneesInput | string[]
    approvalMode?: string | null
    executionCount?: number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: Date | string
    endTime?: Date | string | null
  }

  export type ApprovalTaskCreateManyInstanceInput = {
    id?: string
    nodeInstanceId: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
  }

  export type CallbackRetryQueueCreateManyInstanceInput = {
    id?: string
    callbackType: string
    callbackUrl?: string | null
    payload: JsonNullValueInput | InputJsonValue
    retryCount?: number
    maxRetries?: number
    nextRetryAt: Date | string
    lastError?: string | null
    status?: $Enums.CallbackStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ReminderQueueCreateManyInstanceInput = {
    id?: string
    taskId: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
  }

  export type ApprovalNodeInstanceUpdateWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalTasks?: ApprovalTaskUpdateManyWithoutNodeInstanceNestedInput
  }

  export type ApprovalNodeInstanceUncheckedUpdateWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalTasks?: ApprovalTaskUncheckedUpdateManyWithoutNodeInstanceNestedInput
  }

  export type ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    nodeId?: StringFieldUpdateOperationsInput | string
    nodeName?: StringFieldUpdateOperationsInput | string
    nodeType?: StringFieldUpdateOperationsInput | string
    status?: EnumNodeStatusFieldUpdateOperationsInput | $Enums.NodeStatus
    assignees?: ApprovalNodeInstanceUpdateassigneesInput | string[]
    approvalMode?: NullableStringFieldUpdateOperationsInput | string | null
    executionCount?: IntFieldUpdateOperationsInput | number
    result?: NullableJsonNullValueInput | InputJsonValue
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalTaskUpdateWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actionLogs?: ApprovalTaskLogUpdateManyWithoutTaskNestedInput
    nodeInstance?: ApprovalNodeInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalTaskUncheckedUpdateWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    nodeInstanceId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutTaskNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalTaskUncheckedUpdateManyWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    nodeInstanceId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type CallbackRetryQueueUpdateWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    callbackType?: StringFieldUpdateOperationsInput | string
    callbackUrl?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumCallbackStatusFieldUpdateOperationsInput | $Enums.CallbackStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CallbackRetryQueueUncheckedUpdateWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    callbackType?: StringFieldUpdateOperationsInput | string
    callbackUrl?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumCallbackStatusFieldUpdateOperationsInput | $Enums.CallbackStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CallbackRetryQueueUncheckedUpdateManyWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    callbackType?: StringFieldUpdateOperationsInput | string
    callbackUrl?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumCallbackStatusFieldUpdateOperationsInput | $Enums.CallbackStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReminderQueueUpdateWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: ApprovalTaskUpdateOneRequiredWithoutReminderQueuesNestedInput
  }

  export type ReminderQueueUncheckedUpdateWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReminderQueueUncheckedUpdateManyWithoutInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalTaskCreateManyNodeInstanceInput = {
    id?: string
    instanceId: string
    name: string
    description?: string | null
    type?: $Enums.ApprovalTaskType
    assignee?: string | null
    candidateUsers?: ApprovalTaskCreatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskCreatecandidateGroupsInput | string[]
    owner?: string | null
    status?: $Enums.ApprovalTaskStatus
    version?: number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: number
    dueDate?: Date | string | null
    reminderCount?: number
    lastReminderAt?: Date | string | null
    autoApproved?: boolean
    autoApproveReason?: string | null
    isDelegated?: boolean
    delegatedFrom?: string | null
    delegatedAt?: Date | string | null
    delegationReason?: string | null
    delegationType?: $Enums.DelegationType | null
    delegationState?: string | null
    createTime?: Date | string
    claimTime?: Date | string | null
    endTime?: Date | string | null
  }

  export type ApprovalTaskUpdateWithoutNodeInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actionLogs?: ApprovalTaskLogUpdateManyWithoutTaskNestedInput
    instance?: ApprovalInstanceUpdateOneRequiredWithoutApprovalTasksNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalTaskUncheckedUpdateWithoutNodeInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actionLogs?: ApprovalTaskLogUncheckedUpdateManyWithoutTaskNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type ApprovalTaskUncheckedUpdateManyWithoutNodeInstanceInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumApprovalTaskTypeFieldUpdateOperationsInput | $Enums.ApprovalTaskType
    assignee?: NullableStringFieldUpdateOperationsInput | string | null
    candidateUsers?: ApprovalTaskUpdatecandidateUsersInput | string[]
    candidateGroups?: ApprovalTaskUpdatecandidateGroupsInput | string[]
    owner?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumApprovalTaskStatusFieldUpdateOperationsInput | $Enums.ApprovalTaskStatus
    version?: IntFieldUpdateOperationsInput | number
    formData?: NullableJsonNullValueInput | InputJsonValue
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reminderCount?: IntFieldUpdateOperationsInput | number
    lastReminderAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    autoApproved?: BoolFieldUpdateOperationsInput | boolean
    autoApproveReason?: NullableStringFieldUpdateOperationsInput | string | null
    isDelegated?: BoolFieldUpdateOperationsInput | boolean
    delegatedFrom?: NullableStringFieldUpdateOperationsInput | string | null
    delegatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    delegationReason?: NullableStringFieldUpdateOperationsInput | string | null
    delegationType?: NullableEnumDelegationTypeFieldUpdateOperationsInput | $Enums.DelegationType | null
    delegationState?: NullableStringFieldUpdateOperationsInput | string | null
    createTime?: DateTimeFieldUpdateOperationsInput | Date | string
    claimTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalTaskLogCreateManyTaskInput = {
    id?: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    operatorId: string
    comment?: string | null
    targetUserId?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
  }

  export type ReminderQueueCreateManyTaskInput = {
    id?: string
    instanceId: string
    reminderType: $Enums.ReminderType
    channels?: ReminderQueueCreatechannelsInput | string[]
    scheduledAt: Date | string
    executedAt?: Date | string | null
    status?: $Enums.ReminderStatus
    createdAt?: Date | string
  }

  export type ApprovalTaskLogUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
    operator?: UserUpdateOneRequiredWithoutApprovalActionLogsNestedInput
    targetUser?: UserUpdateOneWithoutApprovalActionTargetsNestedInput
  }

  export type ApprovalTaskLogUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    operatorId?: StringFieldUpdateOperationsInput | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalTaskLogUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    operatorId?: StringFieldUpdateOperationsInput | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReminderQueueUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instance?: ApprovalInstanceUpdateOneRequiredWithoutReminderQueuesNestedInput
  }

  export type ReminderQueueUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReminderQueueUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    reminderType?: EnumReminderTypeFieldUpdateOperationsInput | $Enums.ReminderType
    channels?: ReminderQueueUpdatechannelsInput | string[]
    scheduledAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    status?: EnumReminderStatusFieldUpdateOperationsInput | $Enums.ReminderStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DepartmentCreateManyOrganizationInput = {
    id?: string
    name: string
    code: string
    parentId?: string | null
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type UserDepartmentCreateManyOrganizationInput = {
    id?: string
    userId: string
    departmentId: string
    positionId?: string | null
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OrganizationRegionCreateManyOrganizationInput = {
    id?: string
    regionId: string
    isDefault?: boolean
    createdAt?: Date | string
  }

  export type FormDefinitionCreateManyOrganizationInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormWebhookCreateManyOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    url: string
    secret: string
    events: JsonNullValueInput | InputJsonValue
    enabled?: boolean
    maxRetries?: number
    timeoutMs?: number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy: string
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalDefinitionCreateManyOrganizationInput = {
    id?: string
    key: string
    name: string
    category: string
    description?: string | null
    latestVersion?: number
    status?: $Enums.ProcessStatus
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
  }

  export type UserRoleCreateManyOrganizationInput = {
    id?: string
    userId: string
    roleId: string
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
  }

  export type PerformanceCycleCreateManyOrganizationInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type GradeConfigCreateManyOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    grades: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PerformanceResultCreateManyOrganizationInput = {
    id?: string
    cycleId: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type Evaluation360TemplateCreateManyOrganizationInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    cycleId?: string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
  }

  export type AiUsageTokenCreateManyOrganizationInput = {
    id?: string
    userId: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    revokedById?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDeviceCreateManyOrganizationInput = {
    id?: string
    deviceId: string
    userId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedById?: string | null
    blockedReason?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventCreateManyOrganizationInput = {
    id?: string
    rawMessageId: string
    deviceId: string
    userId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDailyRollupCreateManyOrganizationInput = {
    id?: string
    date: Date | string
    userId: string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAgendaSectionCreateManyOrganizationInput = {
    id?: string
    meetingId: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemCreateManyOrganizationInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateManyOrganizationInput = {
    id?: string
    agendaItemId: string
    assigneeUserId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateManyOrganizationInput = {
    id?: string
    agendaItemId: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentCreateManyOrganizationInput = {
    id?: string
    meetingId: string
    uploadedById: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DepartmentUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: DepartmentUpdateOneWithoutChildrenNestedInput
    children?: DepartmentUpdateManyWithoutParentNestedInput
    userMemberships?: UserDepartmentUpdateManyWithoutDepartmentNestedInput
  }

  export type DepartmentUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DepartmentUncheckedUpdateManyWithoutParentNestedInput
    userMemberships?: UserDepartmentUncheckedUpdateManyWithoutDepartmentNestedInput
  }

  export type DepartmentUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserDepartmentUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutDepartmentMembershipsNestedInput
    department?: DepartmentUpdateOneRequiredWithoutUserMembershipsNestedInput
    position?: PositionUpdateOneWithoutUserMembershipsNestedInput
    manager?: UserUpdateOneWithoutManagedUsersNestedInput
  }

  export type UserDepartmentUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationRegionUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    region?: RegionUpdateOneRequiredWithoutOrganizationRegionsNestedInput
  }

  export type OrganizationRegionUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    regionId?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationRegionUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    regionId?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormDefinitionUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutCreatedFormDefinitionsNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormDefinitionsNestedInput
    instances?: FormInstanceUpdateManyWithoutDefinitionNestedInput
    versions?: FormVersionUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutDefinitionNestedInput
    versions?: FormVersionUncheckedUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormWebhookUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    logs?: FormWebhookLogUpdateManyWithoutWebhookNestedInput
  }

  export type FormWebhookUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    logs?: FormWebhookLogUncheckedUpdateManyWithoutWebhookNestedInput
  }

  export type FormWebhookUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    url?: StringFieldUpdateOperationsInput | string
    secret?: StringFieldUpdateOperationsInput | string
    events?: JsonNullValueInput | InputJsonValue
    enabled?: BoolFieldUpdateOperationsInput | boolean
    maxRetries?: IntFieldUpdateOperationsInput | number
    timeoutMs?: IntFieldUpdateOperationsInput | number
    headers?: NullableJsonNullValueInput | InputJsonValue
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalDefinitionUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    versions?: ApprovalVersionUpdateManyWithoutDefinitionNestedInput
  }

  export type ApprovalDefinitionUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    versions?: ApprovalVersionUncheckedUpdateManyWithoutDefinitionNestedInput
  }

  export type ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumProcessStatusFieldUpdateOperationsInput | $Enums.ProcessStatus
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserRoleUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    role?: RoleUpdateOneRequiredWithoutUsersNestedInput
    user?: UserUpdateOneRequiredWithoutRolesNestedInput
  }

  export type UserRoleUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UserRoleUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PerformanceCycleUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GradeConfigUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycles?: PerformanceCycleUpdateManyWithoutGradeConfigNestedInput
  }

  export type GradeConfigUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycles?: PerformanceCycleUncheckedUpdateManyWithoutGradeConfigNestedInput
  }

  export type GradeConfigUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    grades?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PerformanceResultUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutResultsNestedInput
    adjustmentLogs?: GradeAdjustmentLogUpdateManyWithoutResultNestedInput
  }

  export type PerformanceResultUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    adjustmentLogs?: GradeAdjustmentLogUncheckedUpdateManyWithoutResultNestedInput
  }

  export type PerformanceResultUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type Evaluation360TemplateUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    cycle?: PerformanceCycleUpdateOneWithoutE360TemplatesNestedInput
    evaluations?: Evaluation360UpdateManyWithoutTemplateNestedInput
  }

  export type Evaluation360TemplateUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycleId?: NullableStringFieldUpdateOperationsInput | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    evaluations?: Evaluation360UncheckedUpdateManyWithoutTemplateNestedInput
  }

  export type Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycleId?: NullableStringFieldUpdateOperationsInput | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
  }

  export type AiUsageTokenUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageTokensNestedInput
    revokedBy?: UserUpdateOneWithoutAiUsageTokensRevokedNestedInput
  }

  export type AiUsageTokenUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedById?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageTokenUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedById?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDeviceUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageDevicesNestedInput
    blockedBy?: UserUpdateOneWithoutAiUsageDevicesBlockedNestedInput
    events?: AiUsageEventUpdateManyWithoutDeviceNestedInput
  }

  export type AiUsageDeviceUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedById?: NullableStringFieldUpdateOperationsInput | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: AiUsageEventUncheckedUpdateManyWithoutDeviceNestedInput
  }

  export type AiUsageDeviceUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedById?: NullableStringFieldUpdateOperationsInput | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    device?: AiUsageDeviceUpdateOneRequiredWithoutEventsNestedInput
    user?: UserUpdateOneRequiredWithoutAiUsageEventsNestedInput
  }

  export type AiUsageEventUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDailyRollupUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageRollupsNestedInput
  }

  export type AiUsageDailyRollupUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    userId?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    userId?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAgendaSectionUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    meeting?: MeetingUpdateOneRequiredWithoutAgendaSectionsNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaSectionsCreatedNestedInput
    items?: MeetingAgendaItemUpdateManyWithoutSectionNestedInput
  }

  export type MeetingAgendaSectionUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: MeetingAgendaItemUncheckedUpdateManyWithoutSectionNestedInput
  }

  export type MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    section?: MeetingAgendaSectionUpdateOneRequiredWithoutItemsNestedInput
    presenter?: UserUpdateOneWithoutAgendaItemsPresentedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaItemsCreatedNestedInput
    uploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutUploadTasksNestedInput
    assignee?: UserUpdateOneRequiredWithoutUploadTasksAssignedNestedInput
    assignedBy?: UserUpdateOneRequiredWithoutUploadTasksAssignedByNestedInput
    createdBy?: UserUpdateOneRequiredWithoutUploadTasksCreatedNestedInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutAttachmentsNestedInput
    uploadedBy?: UserUpdateOneRequiredWithoutAgendaAttachmentsUploadedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaAttachmentsCreatedNestedInput
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    meeting?: MeetingUpdateOneRequiredWithoutAttachmentsNestedInput
    uploadedBy?: UserUpdateOneRequiredWithoutMeetingAttachmentsUploadedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutMeetingAttachmentsCreatedNestedInput
  }

  export type MeetingAttachmentUncheckedUpdateWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUncheckedUpdateManyWithoutOrganizationInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type OrganizationCreateManyPrimaryRegionInput = {
    id?: string
    code: string
    name: string
    displayName?: string | null
    nameEn?: string | null
    nameZh?: string | null
    legalName?: string | null
    legalRepresentative?: string | null
    registrationNumber?: string | null
    taxId?: string | null
    address?: string | null
    phone?: string | null
    email?: string | null
    website?: string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: string
    isActive?: boolean
    order?: number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type OrganizationRegionCreateManyRegionInput = {
    id?: string
    organizationId: string
    isDefault?: boolean
    createdAt?: Date | string
  }

  export type OrganizationUpdateWithoutPrimaryRegionInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateWithoutPrimaryRegionInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    departments?: DepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    userDepartments?: UserDepartmentUncheckedUpdateManyWithoutOrganizationNestedInput
    organizationRegions?: OrganizationRegionUncheckedUpdateManyWithoutOrganizationNestedInput
    formDefinitions?: FormDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    formWebhooks?: FormWebhookUncheckedUpdateManyWithoutOrganizationNestedInput
    approvalDefinitions?: ApprovalDefinitionUncheckedUpdateManyWithoutOrganizationNestedInput
    userRoles?: UserRoleUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceCycles?: PerformanceCycleUncheckedUpdateManyWithoutOrganizationNestedInput
    gradeConfigs?: GradeConfigUncheckedUpdateManyWithoutOrganizationNestedInput
    performanceResults?: PerformanceResultUncheckedUpdateManyWithoutOrganizationNestedInput
    evaluation360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageTokens?: AiUsageTokenUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageDevices?: AiUsageDeviceUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageEvents?: AiUsageEventUncheckedUpdateManyWithoutOrganizationNestedInput
    aiUsageRollups?: AiUsageDailyRollupUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItems?: MeetingAgendaItemUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemUploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAgendaItemAttachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
    meetingAttachments?: MeetingAttachmentUncheckedUpdateManyWithoutOrganizationNestedInput
  }

  export type OrganizationUncheckedUpdateManyWithoutPrimaryRegionInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    nameEn?: NullableStringFieldUpdateOperationsInput | string | null
    nameZh?: NullableStringFieldUpdateOperationsInput | string | null
    legalName?: NullableStringFieldUpdateOperationsInput | string | null
    legalRepresentative?: NullableStringFieldUpdateOperationsInput | string | null
    registrationNumber?: NullableStringFieldUpdateOperationsInput | string | null
    taxId?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    website?: NullableStringFieldUpdateOperationsInput | string | null
    settings?: JsonNullValueInput | InputJsonValue
    financialConfig?: JsonNullValueInput | InputJsonValue
    complianceConfig?: JsonNullValueInput | InputJsonValue
    status?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    order?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    establishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type OrganizationRegionUpdateWithoutRegionInput = {
    id?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutOrganizationRegionsNestedInput
  }

  export type OrganizationRegionUncheckedUpdateWithoutRegionInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OrganizationRegionUncheckedUpdateManyWithoutRegionInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DepartmentCreateManyParentInput = {
    id?: string
    organizationId: string
    name: string
    code: string
    headId?: string | null
    description?: string | null
    order?: number
    tenantId?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type UserDepartmentCreateManyDepartmentInput = {
    id?: string
    userId: string
    organizationId: string
    positionId?: string | null
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DepartmentUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutDepartmentsNestedInput
    children?: DepartmentUpdateManyWithoutParentNestedInput
    userMemberships?: UserDepartmentUpdateManyWithoutDepartmentNestedInput
  }

  export type DepartmentUncheckedUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DepartmentUncheckedUpdateManyWithoutParentNestedInput
    userMemberships?: UserDepartmentUncheckedUpdateManyWithoutDepartmentNestedInput
  }

  export type DepartmentUncheckedUpdateManyWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    headId?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    order?: IntFieldUpdateOperationsInput | number
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserDepartmentUpdateWithoutDepartmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutDepartmentMembershipsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutUserDepartmentsNestedInput
    position?: PositionUpdateOneWithoutUserMembershipsNestedInput
    manager?: UserUpdateOneWithoutManagedUsersNestedInput
  }

  export type UserDepartmentUncheckedUpdateWithoutDepartmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentUncheckedUpdateManyWithoutDepartmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentCreateManyPositionInput = {
    id?: string
    userId: string
    organizationId: string
    departmentId: string
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentUpdateWithoutPositionInput = {
    id?: StringFieldUpdateOperationsInput | string
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutDepartmentMembershipsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutUserDepartmentsNestedInput
    department?: DepartmentUpdateOneRequiredWithoutUserMembershipsNestedInput
    manager?: UserUpdateOneWithoutManagedUsersNestedInput
  }

  export type UserDepartmentUncheckedUpdateWithoutPositionInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentUncheckedUpdateManyWithoutPositionInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ExpenseItemCreateManyExpenseInput = {
    id?: string
    description: string
    amount: Decimal | DecimalJsLike | number | string
    date: Date | string
  }

  export type ExpenseItemUpdateWithoutExpenseInput = {
    id?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ExpenseItemUncheckedUpdateWithoutExpenseInput = {
    id?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ExpenseItemUncheckedUpdateManyWithoutExpenseInput = {
    id?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PurchaseItemCreateManyPurchaseInput = {
    id?: string
    name: string
    description?: string | null
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    amount: Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemUpdateWithoutPurchaseInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemUncheckedUpdateWithoutPurchaseInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
  }

  export type PurchaseItemUncheckedUpdateManyWithoutPurchaseInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
  }

  export type InventoryLogCreateManyPartInput = {
    id?: string
    operationType: $Enums.InventoryOperationType
    quantity: number
    previousStock: number
    newStock: number
    station?: string | null
    warehouseLocation?: string | null
    reason?: string | null
    referenceType?: string | null
    referenceId?: string | null
    operatorId: string
    operatorName: string
    scannedCode?: string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type PartGroupRelationCreateManyPartInput = {
    groupId: string
    createdAt?: Date | string
    createdBy?: string | null
  }

  export type PartLabelCreateManyPartInput = {
    id?: string
    labelCode: string
    qrCodeData: string
    template?: string
    size?: string
    printCount?: number
    lastPrintedAt?: Date | string | null
    printedBy?: string | null
    status?: $Enums.LabelStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type StockAlertCreateManyPartInput = {
    id?: string
    alertType: $Enums.StockAlertType
    severity: $Enums.AlertSeverity
    currentStock: number
    threshold: number
    message: string
    status?: $Enums.AlertStatus
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InventoryLogUpdateWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: EnumInventoryOperationTypeFieldUpdateOperationsInput | $Enums.InventoryOperationType
    quantity?: IntFieldUpdateOperationsInput | number
    previousStock?: IntFieldUpdateOperationsInput | number
    newStock?: IntFieldUpdateOperationsInput | number
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    referenceType?: NullableStringFieldUpdateOperationsInput | string | null
    referenceId?: NullableStringFieldUpdateOperationsInput | string | null
    operatorId?: StringFieldUpdateOperationsInput | string
    operatorName?: StringFieldUpdateOperationsInput | string
    scannedCode?: NullableStringFieldUpdateOperationsInput | string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InventoryLogUncheckedUpdateWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: EnumInventoryOperationTypeFieldUpdateOperationsInput | $Enums.InventoryOperationType
    quantity?: IntFieldUpdateOperationsInput | number
    previousStock?: IntFieldUpdateOperationsInput | number
    newStock?: IntFieldUpdateOperationsInput | number
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    referenceType?: NullableStringFieldUpdateOperationsInput | string | null
    referenceId?: NullableStringFieldUpdateOperationsInput | string | null
    operatorId?: StringFieldUpdateOperationsInput | string
    operatorName?: StringFieldUpdateOperationsInput | string
    scannedCode?: NullableStringFieldUpdateOperationsInput | string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InventoryLogUncheckedUpdateManyWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: EnumInventoryOperationTypeFieldUpdateOperationsInput | $Enums.InventoryOperationType
    quantity?: IntFieldUpdateOperationsInput | number
    previousStock?: IntFieldUpdateOperationsInput | number
    newStock?: IntFieldUpdateOperationsInput | number
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    referenceType?: NullableStringFieldUpdateOperationsInput | string | null
    referenceId?: NullableStringFieldUpdateOperationsInput | string | null
    operatorId?: StringFieldUpdateOperationsInput | string
    operatorName?: StringFieldUpdateOperationsInput | string
    scannedCode?: NullableStringFieldUpdateOperationsInput | string | null
    deviceInfo?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartGroupRelationUpdateWithoutPartInput = {
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    group?: PartGroupUpdateOneRequiredWithoutPartsNestedInput
  }

  export type PartGroupRelationUncheckedUpdateWithoutPartInput = {
    groupId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PartGroupRelationUncheckedUpdateManyWithoutPartInput = {
    groupId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PartLabelUpdateWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelCode?: StringFieldUpdateOperationsInput | string
    qrCodeData?: StringFieldUpdateOperationsInput | string
    template?: StringFieldUpdateOperationsInput | string
    size?: StringFieldUpdateOperationsInput | string
    printCount?: IntFieldUpdateOperationsInput | number
    lastPrintedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    printedBy?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLabelStatusFieldUpdateOperationsInput | $Enums.LabelStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartLabelUncheckedUpdateWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelCode?: StringFieldUpdateOperationsInput | string
    qrCodeData?: StringFieldUpdateOperationsInput | string
    template?: StringFieldUpdateOperationsInput | string
    size?: StringFieldUpdateOperationsInput | string
    printCount?: IntFieldUpdateOperationsInput | number
    lastPrintedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    printedBy?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLabelStatusFieldUpdateOperationsInput | $Enums.LabelStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartLabelUncheckedUpdateManyWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelCode?: StringFieldUpdateOperationsInput | string
    qrCodeData?: StringFieldUpdateOperationsInput | string
    template?: StringFieldUpdateOperationsInput | string
    size?: StringFieldUpdateOperationsInput | string
    printCount?: IntFieldUpdateOperationsInput | number
    lastPrintedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    printedBy?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLabelStatusFieldUpdateOperationsInput | $Enums.LabelStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StockAlertUpdateWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    alertType?: EnumStockAlertTypeFieldUpdateOperationsInput | $Enums.StockAlertType
    severity?: EnumAlertSeverityFieldUpdateOperationsInput | $Enums.AlertSeverity
    currentStock?: IntFieldUpdateOperationsInput | number
    threshold?: IntFieldUpdateOperationsInput | number
    message?: StringFieldUpdateOperationsInput | string
    status?: EnumAlertStatusFieldUpdateOperationsInput | $Enums.AlertStatus
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StockAlertUncheckedUpdateWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    alertType?: EnumStockAlertTypeFieldUpdateOperationsInput | $Enums.StockAlertType
    severity?: EnumAlertSeverityFieldUpdateOperationsInput | $Enums.AlertSeverity
    currentStock?: IntFieldUpdateOperationsInput | number
    threshold?: IntFieldUpdateOperationsInput | number
    message?: StringFieldUpdateOperationsInput | string
    status?: EnumAlertStatusFieldUpdateOperationsInput | $Enums.AlertStatus
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StockAlertUncheckedUpdateManyWithoutPartInput = {
    id?: StringFieldUpdateOperationsInput | string
    alertType?: EnumStockAlertTypeFieldUpdateOperationsInput | $Enums.StockAlertType
    severity?: EnumAlertSeverityFieldUpdateOperationsInput | $Enums.AlertSeverity
    currentStock?: IntFieldUpdateOperationsInput | number
    threshold?: IntFieldUpdateOperationsInput | number
    message?: StringFieldUpdateOperationsInput | string
    status?: EnumAlertStatusFieldUpdateOperationsInput | $Enums.AlertStatus
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartCreateManyStationRefInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PartUpdateWithoutStationRefInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUpdateManyWithoutPartNestedInput
    labels?: PartLabelUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUpdateManyWithoutPartNestedInput
    warehouse?: WarehouseUpdateOneWithoutPartsNestedInput
    storageLocation?: StorageLocationUpdateOneWithoutPartsNestedInput
  }

  export type PartUncheckedUpdateWithoutStationRefInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUncheckedUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUncheckedUpdateManyWithoutPartNestedInput
    labels?: PartLabelUncheckedUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUncheckedUpdateManyWithoutPartNestedInput
  }

  export type PartUncheckedUpdateManyWithoutStationRefInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StorageLocationCreateManyWarehouseInput = {
    id?: string
    code: string
    nameEn: string
    nameCn?: string | null
    description?: string | null
    zone?: string | null
    aisle?: string | null
    rack?: string | null
    level?: string | null
    position?: string | null
    capacity?: number | null
    status?: $Enums.StorageLocationStatus
    sortOrder?: number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PartCreateManyWarehouseInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    storageLocationId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StorageLocationUpdateWithoutWarehouseInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartUpdateManyWithoutStorageLocationNestedInput
  }

  export type StorageLocationUncheckedUpdateWithoutWarehouseInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parts?: PartUncheckedUpdateManyWithoutStorageLocationNestedInput
  }

  export type StorageLocationUncheckedUpdateManyWithoutWarehouseInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    zone?: NullableStringFieldUpdateOperationsInput | string | null
    aisle?: NullableStringFieldUpdateOperationsInput | string | null
    rack?: NullableStringFieldUpdateOperationsInput | string | null
    level?: NullableStringFieldUpdateOperationsInput | string | null
    position?: NullableStringFieldUpdateOperationsInput | string | null
    capacity?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumStorageLocationStatusFieldUpdateOperationsInput | $Enums.StorageLocationStatus
    sortOrder?: IntFieldUpdateOperationsInput | number
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartUpdateWithoutWarehouseInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUpdateManyWithoutPartNestedInput
    labels?: PartLabelUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUpdateManyWithoutPartNestedInput
    storageLocation?: StorageLocationUpdateOneWithoutPartsNestedInput
    stationRef?: StationUpdateOneWithoutPartsNestedInput
  }

  export type PartUncheckedUpdateWithoutWarehouseInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUncheckedUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUncheckedUpdateManyWithoutPartNestedInput
    labels?: PartLabelUncheckedUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUncheckedUpdateManyWithoutPartNestedInput
  }

  export type PartUncheckedUpdateManyWithoutWarehouseInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    storageLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PartCreateManyStorageLocationInput = {
    id?: string
    partNumber: string
    partNameEn: string
    partNameCn?: string | null
    unit?: string
    source?: string | null
    specifications?: string | null
    remark?: string | null
    status?: $Enums.PartStatus
    currentStock?: number
    minStock?: number
    maxStock?: number | null
    station?: string | null
    stationId?: string | null
    warehouseLocation?: string | null
    warehouseId?: string | null
    imageUrl?: string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PartUpdateWithoutStorageLocationInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUpdateManyWithoutPartNestedInput
    labels?: PartLabelUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUpdateManyWithoutPartNestedInput
    warehouse?: WarehouseUpdateOneWithoutPartsNestedInput
    stationRef?: StationUpdateOneWithoutPartsNestedInput
  }

  export type PartUncheckedUpdateWithoutStorageLocationInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    inventoryLogs?: InventoryLogUncheckedUpdateManyWithoutPartNestedInput
    groups?: PartGroupRelationUncheckedUpdateManyWithoutPartNestedInput
    labels?: PartLabelUncheckedUpdateManyWithoutPartNestedInput
    stockAlerts?: StockAlertUncheckedUpdateManyWithoutPartNestedInput
  }

  export type PartUncheckedUpdateManyWithoutStorageLocationInput = {
    id?: StringFieldUpdateOperationsInput | string
    partNumber?: StringFieldUpdateOperationsInput | string
    partNameEn?: StringFieldUpdateOperationsInput | string
    partNameCn?: NullableStringFieldUpdateOperationsInput | string | null
    unit?: StringFieldUpdateOperationsInput | string
    source?: NullableStringFieldUpdateOperationsInput | string | null
    specifications?: NullableStringFieldUpdateOperationsInput | string | null
    remark?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPartStatusFieldUpdateOperationsInput | $Enums.PartStatus
    currentStock?: IntFieldUpdateOperationsInput | number
    minStock?: IntFieldUpdateOperationsInput | number
    maxStock?: NullableIntFieldUpdateOperationsInput | number | null
    station?: NullableStringFieldUpdateOperationsInput | string | null
    stationId?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseLocation?: NullableStringFieldUpdateOperationsInput | string | null
    warehouseId?: NullableStringFieldUpdateOperationsInput | string | null
    imageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    customFields?: NullableJsonNullValueInput | InputJsonValue
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GroupCustomFieldCreateManyGroupInput = {
    id?: string
    key: string
    nameEn: string
    type: $Enums.GroupFieldType
    required?: boolean
    visible?: boolean
    editable?: boolean
    searchable?: boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: string | null
    placeholder?: string | null
    helpText?: string | null
    displayOrder?: number
    createdBy?: string | null
    createdAt?: Date | string
    updatedBy?: string | null
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    nameCn?: string | null
  }

  export type PartGroupRelationCreateManyGroupInput = {
    partId: string
    createdAt?: Date | string
    createdBy?: string | null
  }

  export type GroupCustomFieldUpdateWithoutGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    type?: EnumGroupFieldTypeFieldUpdateOperationsInput | $Enums.GroupFieldType
    required?: BoolFieldUpdateOperationsInput | boolean
    visible?: BoolFieldUpdateOperationsInput | boolean
    editable?: BoolFieldUpdateOperationsInput | boolean
    searchable?: BoolFieldUpdateOperationsInput | boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    placeholder?: NullableStringFieldUpdateOperationsInput | string | null
    helpText?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GroupCustomFieldUncheckedUpdateWithoutGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    type?: EnumGroupFieldTypeFieldUpdateOperationsInput | $Enums.GroupFieldType
    required?: BoolFieldUpdateOperationsInput | boolean
    visible?: BoolFieldUpdateOperationsInput | boolean
    editable?: BoolFieldUpdateOperationsInput | boolean
    searchable?: BoolFieldUpdateOperationsInput | boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    placeholder?: NullableStringFieldUpdateOperationsInput | string | null
    helpText?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GroupCustomFieldUncheckedUpdateManyWithoutGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    nameEn?: StringFieldUpdateOperationsInput | string
    type?: EnumGroupFieldTypeFieldUpdateOperationsInput | $Enums.GroupFieldType
    required?: BoolFieldUpdateOperationsInput | boolean
    visible?: BoolFieldUpdateOperationsInput | boolean
    editable?: BoolFieldUpdateOperationsInput | boolean
    searchable?: BoolFieldUpdateOperationsInput | boolean
    options?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    description?: NullableStringFieldUpdateOperationsInput | string | null
    placeholder?: NullableStringFieldUpdateOperationsInput | string | null
    helpText?: NullableStringFieldUpdateOperationsInput | string | null
    displayOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nameCn?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PartGroupRelationUpdateWithoutGroupInput = {
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
    part?: PartUpdateOneRequiredWithoutGroupsNestedInput
  }

  export type PartGroupRelationUncheckedUpdateWithoutGroupInput = {
    partId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PartGroupRelationUncheckedUpdateManyWithoutGroupInput = {
    partId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIMessageCreateManyConversationInput = {
    id?: string
    role: $Enums.AIMessageRole
    source?: $Enums.AIMessageSource
    content: string
    tokens?: number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type AIAssistantTicketCreateManyConversationInput = {
    id?: string
    category: $Enums.AITicketCategory
    priority?: $Enums.AITicketPriority
    status?: $Enums.AITicketStatus
    title: string
    description: string
    assigneeId?: string | null
    assigneeTeam?: $Enums.AIAssigneeTeam | null
    assignedAt?: Date | string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    externalTicketId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AIMessageUpdateWithoutConversationInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    feedback?: AIMessageFeedbackUpdateOneWithoutMessageNestedInput
    knowledgeFix?: AIKnowledgeFixUpdateOneWithoutMessageNestedInput
  }

  export type AIMessageUncheckedUpdateWithoutConversationInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    feedback?: AIMessageFeedbackUncheckedUpdateOneWithoutMessageNestedInput
    knowledgeFix?: AIKnowledgeFixUncheckedUpdateOneWithoutMessageNestedInput
  }

  export type AIMessageUncheckedUpdateManyWithoutConversationInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAIMessageRoleFieldUpdateOperationsInput | $Enums.AIMessageRole
    source?: EnumAIMessageSourceFieldUpdateOperationsInput | $Enums.AIMessageSource
    content?: StringFieldUpdateOperationsInput | string
    tokens?: NullableIntFieldUpdateOperationsInput | number | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIAssistantTicketUpdateWithoutConversationInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: EnumAITicketCategoryFieldUpdateOperationsInput | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFieldUpdateOperationsInput | $Enums.AITicketPriority
    status?: EnumAITicketStatusFieldUpdateOperationsInput | $Enums.AITicketStatus
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeTeam?: NullableEnumAIAssigneeTeamFieldUpdateOperationsInput | $Enums.AIAssigneeTeam | null
    assignedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    externalTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIAssistantTicketUncheckedUpdateWithoutConversationInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: EnumAITicketCategoryFieldUpdateOperationsInput | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFieldUpdateOperationsInput | $Enums.AITicketPriority
    status?: EnumAITicketStatusFieldUpdateOperationsInput | $Enums.AITicketStatus
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeTeam?: NullableEnumAIAssigneeTeamFieldUpdateOperationsInput | $Enums.AIAssigneeTeam | null
    assignedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    externalTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIAssistantTicketUncheckedUpdateManyWithoutConversationInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: EnumAITicketCategoryFieldUpdateOperationsInput | $Enums.AITicketCategory
    priority?: EnumAITicketPriorityFieldUpdateOperationsInput | $Enums.AITicketPriority
    status?: EnumAITicketStatusFieldUpdateOperationsInput | $Enums.AITicketStatus
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeTeam?: NullableEnumAIAssigneeTeamFieldUpdateOperationsInput | $Enums.AIAssigneeTeam | null
    assignedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    externalTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMessageCreateManySessionInput = {
    id?: string
    turnId: string
    type: $Enums.AgentMessageType
    content?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: string | null
    sequence: number
    createdAt?: Date | string
  }

  export type AgentSessionCreateManyParentInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    personaId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentCronCreateManySessionInput = {
    id?: string
    organizationId: string
    createdById: string
    name: string
    cronExpr: string
    prompt: string
    enabled?: boolean
    lastRunAt?: Date | string | null
    nextRunAt: Date | string
    runCount?: number
    failCount?: number
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMessageUpdateWithoutSessionInput = {
    id?: StringFieldUpdateOperationsInput | string
    turnId?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentMessageTypeFieldUpdateOperationsInput | $Enums.AgentMessageType
    content?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: NullableStringFieldUpdateOperationsInput | string | null
    sequence?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMessageUncheckedUpdateWithoutSessionInput = {
    id?: StringFieldUpdateOperationsInput | string
    turnId?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentMessageTypeFieldUpdateOperationsInput | $Enums.AgentMessageType
    content?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: NullableStringFieldUpdateOperationsInput | string | null
    sequence?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMessageUncheckedUpdateManyWithoutSessionInput = {
    id?: StringFieldUpdateOperationsInput | string
    turnId?: StringFieldUpdateOperationsInput | string
    type?: EnumAgentMessageTypeFieldUpdateOperationsInput | $Enums.AgentMessageType
    content?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    model?: NullableStringFieldUpdateOperationsInput | string | null
    sequence?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentSessionUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUpdateManyWithoutSessionNestedInput
    children?: AgentSessionUpdateManyWithoutParentNestedInput
    crons?: AgentCronUpdateManyWithoutSessionNestedInput
    persona?: AgentPersonaUpdateOneWithoutSessionsNestedInput
  }

  export type AgentSessionUncheckedUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUncheckedUpdateManyWithoutSessionNestedInput
    children?: AgentSessionUncheckedUpdateManyWithoutParentNestedInput
    crons?: AgentCronUncheckedUpdateManyWithoutSessionNestedInput
  }

  export type AgentSessionUncheckedUpdateManyWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentCronUpdateWithoutSessionInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    cronExpr?: StringFieldUpdateOperationsInput | string
    prompt?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nextRunAt?: DateTimeFieldUpdateOperationsInput | Date | string
    runCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentCronUncheckedUpdateWithoutSessionInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    cronExpr?: StringFieldUpdateOperationsInput | string
    prompt?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nextRunAt?: DateTimeFieldUpdateOperationsInput | Date | string
    runCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentCronUncheckedUpdateManyWithoutSessionInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    cronExpr?: StringFieldUpdateOperationsInput | string
    prompt?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nextRunAt?: DateTimeFieldUpdateOperationsInput | Date | string
    runCount?: IntFieldUpdateOperationsInput | number
    failCount?: IntFieldUpdateOperationsInput | number
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageFileCreateManyBindingInput = {
    id?: string
    organizationId: string
    path: string
    externalId?: string | null
    sizeBytes: number
    mimeType?: string | null
    sha256: string
    encrypted?: boolean
    uploadedById: string
    createdAt?: Date | string
  }

  export type StorageFileUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    path?: StringFieldUpdateOperationsInput | string
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: IntFieldUpdateOperationsInput | number
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sha256?: StringFieldUpdateOperationsInput | string
    encrypted?: BoolFieldUpdateOperationsInput | boolean
    uploadedById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageFileUncheckedUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    path?: StringFieldUpdateOperationsInput | string
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: IntFieldUpdateOperationsInput | number
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sha256?: StringFieldUpdateOperationsInput | string
    encrypted?: BoolFieldUpdateOperationsInput | boolean
    uploadedById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StorageFileUncheckedUpdateManyWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    path?: StringFieldUpdateOperationsInput | string
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    sizeBytes?: IntFieldUpdateOperationsInput | number
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    sha256?: StringFieldUpdateOperationsInput | string
    encrypted?: BoolFieldUpdateOperationsInput | boolean
    uploadedById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMemoryCreateManyProjectInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    personaId?: string | null
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMemoryUpdateWithoutProjectInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    persona?: AgentPersonaUpdateOneWithoutMemoriesNestedInput
  }

  export type AgentMemoryUncheckedUpdateWithoutProjectInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMemoryUncheckedUpdateManyWithoutProjectInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    personaId?: NullableStringFieldUpdateOperationsInput | string | null
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMemoryCreateManyPersonaInput = {
    id?: string
    organizationId: string
    createdById?: string | null
    ownerScope?: $Enums.MemoryOwnerScope
    content: string
    scope?: $Enums.MemoryScope
    category?: $Enums.MemoryCategory
    projectId?: string | null
    source?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentSessionCreateManyPersonaInput = {
    id?: string
    organizationId: string
    createdById: string
    title?: string | null
    surface?: $Enums.AgentSurface
    status?: $Enums.AgentSessionStatus
    projectId?: string | null
    planMode?: $Enums.AgentPlanMode
    permissionMode?: $Enums.AgentPermissionMode
    parentSessionId?: string | null
    closedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AgentMemoryUpdateWithoutPersonaInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    project?: AgentProjectUpdateOneWithoutMemoriesNestedInput
  }

  export type AgentMemoryUncheckedUpdateWithoutPersonaInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentMemoryUncheckedUpdateManyWithoutPersonaInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: NullableStringFieldUpdateOperationsInput | string | null
    ownerScope?: EnumMemoryOwnerScopeFieldUpdateOperationsInput | $Enums.MemoryOwnerScope
    content?: StringFieldUpdateOperationsInput | string
    scope?: EnumMemoryScopeFieldUpdateOperationsInput | $Enums.MemoryScope
    category?: EnumMemoryCategoryFieldUpdateOperationsInput | $Enums.MemoryCategory
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    source?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentSessionUpdateWithoutPersonaInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUpdateManyWithoutSessionNestedInput
    parent?: AgentSessionUpdateOneWithoutChildrenNestedInput
    children?: AgentSessionUpdateManyWithoutParentNestedInput
    crons?: AgentCronUpdateManyWithoutSessionNestedInput
  }

  export type AgentSessionUncheckedUpdateWithoutPersonaInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    parentSessionId?: NullableStringFieldUpdateOperationsInput | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    messages?: AgentMessageUncheckedUpdateManyWithoutSessionNestedInput
    children?: AgentSessionUncheckedUpdateManyWithoutParentNestedInput
    crons?: AgentCronUncheckedUpdateManyWithoutSessionNestedInput
  }

  export type AgentSessionUncheckedUpdateManyWithoutPersonaInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    surface?: EnumAgentSurfaceFieldUpdateOperationsInput | $Enums.AgentSurface
    status?: EnumAgentSessionStatusFieldUpdateOperationsInput | $Enums.AgentSessionStatus
    projectId?: NullableStringFieldUpdateOperationsInput | string | null
    planMode?: EnumAgentPlanModeFieldUpdateOperationsInput | $Enums.AgentPlanMode
    permissionMode?: EnumAgentPermissionModeFieldUpdateOperationsInput | $Enums.AgentPermissionMode
    parentSessionId?: NullableStringFieldUpdateOperationsInput | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventCreateManyDeviceInput = {
    id?: string
    rawMessageId: string
    userId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventUpdateWithoutDeviceInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageEventsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageEventsNestedInput
  }

  export type AiUsageEventUncheckedUpdateWithoutDeviceInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventUncheckedUpdateManyWithoutDeviceInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditDatabaseChangeLogCreateManyAuditLogInput = {
    id?: string
    tableName: string
    operation: $Enums.DbOperation
    recordId: string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogCreatechangedFieldsInput | string[]
    userId: string
    createdAt?: Date | string
  }

  export type AuditSensitiveOperationLogCreateManyAuditLogInput = {
    id?: string
    operationType: string
    description: string
    requiresApproval?: boolean
    approvedBy?: string | null
    approvalTime?: Date | string | null
    riskLevel: $Enums.RiskLevel
    mfaVerified?: boolean
    userId: string
    createdAt?: Date | string
  }

  export type AuditDatabaseChangeLogUpdateWithoutAuditLogInput = {
    id?: StringFieldUpdateOperationsInput | string
    tableName?: StringFieldUpdateOperationsInput | string
    operation?: EnumDbOperationFieldUpdateOperationsInput | $Enums.DbOperation
    recordId?: StringFieldUpdateOperationsInput | string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogUpdatechangedFieldsInput | string[]
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditDatabaseChangeLogUncheckedUpdateWithoutAuditLogInput = {
    id?: StringFieldUpdateOperationsInput | string
    tableName?: StringFieldUpdateOperationsInput | string
    operation?: EnumDbOperationFieldUpdateOperationsInput | $Enums.DbOperation
    recordId?: StringFieldUpdateOperationsInput | string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogUpdatechangedFieldsInput | string[]
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditDatabaseChangeLogUncheckedUpdateManyWithoutAuditLogInput = {
    id?: StringFieldUpdateOperationsInput | string
    tableName?: StringFieldUpdateOperationsInput | string
    operation?: EnumDbOperationFieldUpdateOperationsInput | $Enums.DbOperation
    recordId?: StringFieldUpdateOperationsInput | string
    oldData?: NullableJsonNullValueInput | InputJsonValue
    newData?: NullableJsonNullValueInput | InputJsonValue
    changedFields?: AuditDatabaseChangeLogUpdatechangedFieldsInput | string[]
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditSensitiveOperationLogUpdateWithoutAuditLogInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    approvalTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    mfaVerified?: BoolFieldUpdateOperationsInput | boolean
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditSensitiveOperationLogUncheckedUpdateWithoutAuditLogInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    approvalTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    mfaVerified?: BoolFieldUpdateOperationsInput | boolean
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditSensitiveOperationLogUncheckedUpdateManyWithoutAuditLogInput = {
    id?: StringFieldUpdateOperationsInput | string
    operationType?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    approvalTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    mfaVerified?: BoolFieldUpdateOperationsInput | boolean
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AutomationExecutionCreateManyTaskInput = {
    id?: string
    status: $Enums.AutomationExecutionStatus
    startedAt?: Date | string
    completedAt?: Date | string | null
    duration?: number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: string | null
    logs?: string | null
    triggerType: string
    triggeredBy?: string | null
    createdAt?: Date | string
  }

  export type AutomationExecutionUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: NullableStringFieldUpdateOperationsInput | string | null
    logs?: NullableStringFieldUpdateOperationsInput | string | null
    triggerType?: StringFieldUpdateOperationsInput | string
    triggeredBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AutomationExecutionUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: NullableStringFieldUpdateOperationsInput | string | null
    logs?: NullableStringFieldUpdateOperationsInput | string | null
    triggerType?: StringFieldUpdateOperationsInput | string
    triggeredBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AutomationExecutionUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus
    startedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    result?: NullableJsonNullValueInput | InputJsonValue
    error?: NullableStringFieldUpdateOperationsInput | string | null
    logs?: NullableStringFieldUpdateOperationsInput | string | null
    triggerType?: StringFieldUpdateOperationsInput | string
    triggeredBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DevItemCreateManyParentInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    ownerId: string
    reporterId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DevItemUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DevItemUpdateManyWithoutParentNestedInput
    owner?: UserUpdateOneRequiredWithoutDevItemsOwnedNestedInput
    reporter?: UserUpdateOneRequiredWithoutDevItemsReportedNestedInput
    reviewer?: UserUpdateOneWithoutDevItemsReviewedNestedInput
  }

  export type DevItemUncheckedUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DevItemUncheckedUpdateManyWithoutParentNestedInput
  }

  export type DevItemUncheckedUpdateManyWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceCreateManyDefinitionInput = {
    id?: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormVersionCreateManyDefinitionInput = {
    id?: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdBy: string
    createdAt?: Date | string
  }

  export type FormInstanceUpdateWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedFormInstancesNestedInput
    version?: FormVersionUpdateOneRequiredWithoutInstancesNestedInput
    snapshot?: ReleaseSnapshotUpdateOneWithoutInstancesNestedInput
    submitter?: UserUpdateOneWithoutSubmittedFormInstancesNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormInstancesNestedInput
  }

  export type FormInstanceUncheckedUpdateWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUncheckedUpdateManyWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormVersionUpdateWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUpdateManyWithoutVersionNestedInput
    translations?: FormTranslationUpdateManyWithoutVersionNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormVersionsNestedInput
    reviewer?: UserUpdateOneWithoutReviewedFormVersionsNestedInput
  }

  export type FormVersionUncheckedUpdateWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutVersionNestedInput
    translations?: FormTranslationUncheckedUpdateManyWithoutVersionNestedInput
  }

  export type FormVersionUncheckedUpdateManyWithoutDefinitionInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormInstanceCreateManyVersionInput = {
    id?: string
    formDefinitionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormTranslationCreateManyVersionInput = {
    id?: string
    locale: string
    translations: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormInstanceUpdateWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedFormInstancesNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutInstancesNestedInput
    snapshot?: ReleaseSnapshotUpdateOneWithoutInstancesNestedInput
    submitter?: UserUpdateOneWithoutSubmittedFormInstancesNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormInstancesNestedInput
  }

  export type FormInstanceUncheckedUpdateWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUncheckedUpdateManyWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormTranslationUpdateWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    locale?: StringFieldUpdateOperationsInput | string
    translations?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTranslationUncheckedUpdateWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    locale?: StringFieldUpdateOperationsInput | string
    translations?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTranslationUncheckedUpdateManyWithoutVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    locale?: StringFieldUpdateOperationsInput | string
    translations?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormInstanceCreateManySnapshotInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceUpdateWithoutSnapshotInput = {
    id?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedFormInstancesNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutInstancesNestedInput
    version?: FormVersionUpdateOneRequiredWithoutInstancesNestedInput
    submitter?: UserUpdateOneWithoutSubmittedFormInstancesNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormInstancesNestedInput
  }

  export type FormInstanceUncheckedUpdateWithoutSnapshotInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUncheckedUpdateManyWithoutSnapshotInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormWebhookLogCreateManyWebhookInput = {
    id?: string
    eventType: string
    payload: JsonNullValueInput | InputJsonValue
    statusCode?: number | null
    response?: string | null
    success: boolean
    error?: string | null
    retryCount?: number
    duration?: number | null
    createdAt?: Date | string
  }

  export type FormWebhookLogUpdateWithoutWebhookInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    payload?: JsonNullValueInput | InputJsonValue
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    success?: BoolFieldUpdateOperationsInput | boolean
    error?: NullableStringFieldUpdateOperationsInput | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormWebhookLogUncheckedUpdateWithoutWebhookInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    payload?: JsonNullValueInput | InputJsonValue
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    success?: BoolFieldUpdateOperationsInput | boolean
    error?: NullableStringFieldUpdateOperationsInput | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormWebhookLogUncheckedUpdateManyWithoutWebhookInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    payload?: JsonNullValueInput | InputJsonValue
    statusCode?: NullableIntFieldUpdateOperationsInput | number | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    success?: BoolFieldUpdateOperationsInput | boolean
    error?: NullableStringFieldUpdateOperationsInput | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalInstanceCreateManyInitiatorInput = {
    id?: string
    versionId: string
    businessType: string
    businessId: string
    businessKey: string
    title?: string | null
    workflowId: string
    workflowRunId: string
    regionId?: string | null
    status?: $Enums.InstanceStatus
    currentNodeId?: string | null
    currentNode?: string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: number
    endReason?: string | null
    endComment?: string | null
    priority?: number
    dueDate?: Date | string | null
    startTime?: Date | string
    endTime?: Date | string | null
  }

  export type ApprovalTaskLogCreateManyOperatorInput = {
    id?: string
    taskId: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    comment?: string | null
    targetUserId?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
  }

  export type ApprovalTaskLogCreateManyTargetUserInput = {
    id?: string
    taskId: string
    instanceId: string
    action: $Enums.ApprovalTaskAction
    operatorId: string
    comment?: string | null
    targetNodeId?: string | null
    addSignUsers?: ApprovalTaskLogCreateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: string | null
    userAgent?: string | null
    requestId?: string | null
    riskLevel?: $Enums.RiskLevel | null
    adminReason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: Date | string
  }

  export type ApprovalAdminExportCreateManyRequesterInput = {
    id?: string
    status?: $Enums.ApprovalAdminExportStatus
    format?: string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: string | null
    fileName?: string | null
    fileSize?: bigint | number | null
    contentType?: string | null
    totalRows?: number | null
    errorMessage?: string | null
    startedAt?: Date | string | null
    completedAt?: Date | string | null
    expiresAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ContractRequestCreateManyCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    contractType: $Enums.ContractType
    partnerName: string
    partnerContact?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    workflowInstanceId?: string | null
    status?: $Enums.ContractStatus
    sealRequired?: boolean
    sealAppliedAt?: Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: Date | string | null
    startDate?: Date | string | null
    endDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ExpenseRequestCreateManyCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    amount: Decimal | DecimalJsLike | number | string
    currency?: string
    category: $Enums.ExpenseCategory
    workflowInstanceId?: string | null
    status?: $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PurchaseRequestCreateManyCreatorInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    totalAmount: Decimal | DecimalJsLike | number | string
    currency?: string
    vendorName: string
    vendorContact?: string | null
    workflowInstanceId?: string | null
    status?: $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: Date | string | null
    actualDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type AuditLogCreateManyUserInput = {
    id?: string
    region?: string
    tenantId?: string
    who: string
    what: string
    when?: Date | string
    where: string
    why?: string | null
    how: string
    module: string
    action: $Enums.AuditAction
    entityType: string
    entityId: string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId: string
    traceId: string
    requestId: string
    ipAddress: string
    userAgent: string
    deviceId?: string | null
    geoLocation?: string | null
    businessType?: string | null
    businessKey?: string | null
    status?: $Enums.AuditStatus
    errorMessage?: string | null
    duration?: number | null
    isFinancial?: boolean
    isSensitive?: boolean
    riskLevel?: $Enums.RiskLevel
    complianceLevel?: $Enums.ComplianceLevel
    retentionYears?: number
    previousHash?: string | null
    currentHash: string
    signature?: string | null
    createdAt?: Date | string
    archivedAt?: Date | string | null
  }

  export type AutomationTaskCreateManyCreatedByInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    type: $Enums.AutomationTaskType
    status?: $Enums.AutomationTaskStatus
    scheduleType: string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: number
    retryCount?: number
    lastRunAt?: Date | string | null
    lastStatus?: $Enums.AutomationExecutionStatus | null
    nextRunAt?: Date | string | null
    totalRuns?: number
    successRuns?: number
    failedRuns?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormDefinitionCreateManyCreatorInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    organizationId?: string | null
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormDefinitionCreateManyUpdaterInput = {
    id?: string
    key: string
    slug: string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name: string
    category: string
    description?: string | null
    icon?: string | null
    color?: string | null
    defaultLocale: string
    supportedLocales: JsonNullValueInput | InputJsonValue
    latestVersion: number
    status: $Enums.FormStatus
    requiresApproval?: boolean
    approvalProcessKey?: string | null
    organizationId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormInstanceCreateManyCreatorInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    updatedBy?: string | null
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceCreateManySubmitterInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    updatedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormInstanceCreateManyUpdaterInput = {
    id?: string
    formDefinitionId: string
    formVersionId: string
    formKey: string
    formVersion: number
    snapshotId?: string | null
    businessKey: string
    regionId?: string | null
    data: JsonNullValueInput | InputJsonValue
    status: $Enums.FormInstanceStatus
    createdBy: string
    submittedBy?: string | null
    submittedAt?: Date | string | null
    approvalInstanceId?: string | null
    approvalStatus?: string | null
    approvalStartTime?: Date | string | null
    approvalEndTime?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FormTemplateCreateManyCreatorInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    updatedBy?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormTemplateCreateManyUpdaterInput = {
    id?: string
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category: string
    icon?: string | null
    color?: string | null
    template: JsonNullValueInput | InputJsonValue
    isBuiltin: boolean
    isPublic: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type FormVersionCreateManyCreatorInput = {
    id?: string
    definitionId: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedBy?: string | null
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdAt?: Date | string
  }

  export type FormVersionCreateManyReviewerInput = {
    id?: string
    definitionId: string
    version: number
    schema: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: string | null
    nameI18n: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault: boolean
    status: $Enums.FormVersionStatus
    reviewedAt?: Date | string | null
    reviewComment?: string | null
    publishedAt?: Date | string | null
    createdBy: string
    createdAt?: Date | string
  }

  export type UserRoleCreateManyUserInput = {
    id?: string
    roleId: string
    organizationId?: string | null
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
  }

  export type WorkflowRoleUserCreateManyUserInput = {
    id?: string
    workflowRoleId: string
    createdAt?: Date | string
  }

  export type UserDepartmentCreateManyUserInput = {
    id?: string
    organizationId: string
    departmentId: string
    positionId?: string | null
    managerId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDepartmentCreateManyManagerInput = {
    id?: string
    userId: string
    organizationId: string
    departmentId: string
    positionId?: string | null
    isPrimary?: boolean
    title?: string | null
    joinedAt?: Date | string
    leftAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationLogCreateManyRecipientInput = {
    id?: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    templateId?: string | null
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationMessageCreateManyUserInput = {
    id?: string
    type: $Enums.NotificationType
    title: string
    content: string
    link?: string | null
    status?: $Enums.NotificationStatus
    createdAt?: Date | string
    readAt?: Date | string | null
  }

  export type UserDelegationSettingCreateManyUserInput = {
    id?: string
    enabled?: boolean
    delegateUserId: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type UserDelegationSettingCreateManyDelegateUserInput = {
    id?: string
    userId: string
    enabled?: boolean
    startTime?: Date | string | null
    endTime?: Date | string | null
    scope?: $Enums.DelegationScope
    processKeys?: UserDelegationSettingCreateprocessKeysInput | string[]
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type KnowledgeArticleCreateManyCreatedByInput = {
    id?: string
    title: string
    content: string
    status?: $Enums.KnowledgeArticleStatus
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type AIQALogCreateManyUserInput = {
    id?: string
    question: string
    answer: string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: number | null
    modelUsed?: string | null
    tokensUsed?: number | null
    cost?: number | null
    responseTimeMs?: number | null
    feedback?: $Enums.QAFeedback | null
    feedbackComment?: string | null
    createdAt?: Date | string
  }

  export type DocumentViewCreateManyUserInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    viewedAt?: Date | string
    viewDate: Date | string
  }

  export type DocumentLikeCreateManyUserInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    type: $Enums.LikeType
    createdAt?: Date | string
  }

  export type DocumentCommentCreateManyUserInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type UserMentionCreateManyMentionedUserInput = {
    id?: string
    commentId: string
    readAt?: Date | string | null
    createdAt?: Date | string
  }

  export type StrategicObjectiveAssignmentCreateManyAssigneeInput = {
    id?: string
    objectiveId: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FeedbackCreateManyUserInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    assigneeId?: string | null
    resolvedAt?: Date | string | null
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type FeedbackCreateManyAssigneeInput = {
    id?: string
    type: $Enums.FeedbackType
    title: string
    content: string
    attachments?: FeedbackCreateattachmentsInput | string[]
    pageUrl?: string | null
    userAgent?: string | null
    status?: $Enums.FeedbackStatus
    priority?: $Enums.FeedbackPriority | null
    adminNote?: string | null
    adminReply?: string | null
    resolvedAt?: Date | string | null
    userId: string
    region?: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DevItemCreateManyOwnerInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    reporterId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DevItemCreateManyReporterInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    ownerId: string
    reviewerId?: string | null
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DevItemCreateManyReviewerInput = {
    id?: string
    code: string
    title: string
    description?: string | null
    itemType: $Enums.DevItemType
    status?: $Enums.DevItemStatus
    priority: $Enums.DevItemPriority
    severity?: $Enums.DevItemSeverity | null
    moduleKey?: string | null
    parentId?: string | null
    ownerId: string
    reporterId: string
    reviewedAt?: Date | string | null
    startAt?: Date | string | null
    devEtaAt?: Date | string | null
    testEtaAt?: Date | string | null
    etaAt?: Date | string | null
    devCompletedAt?: Date | string | null
    testCompletedAt?: Date | string | null
    completedAt?: Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ReleaseNoteCreateManyCreatorInput = {
    id?: string
    version: string
    title: string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt: Date | string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SiteCheckpointCreateManyCreatorInput = {
    id?: string
    code?: string
    name: string
    description?: string | null
    address?: string | null
    timezone: string
    latitude: number
    longitude: number
    geoPolicy?: $Enums.SiteGeoPolicy
    geoRadius?: number
    geoAccuracyThreshold?: number
    allowUnauthenticatedCheckin?: boolean
    isActive?: boolean
    accessMode?: $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: number | null
    qrGraceSeconds?: number
    sharedCheckinEnabled?: boolean
    sharedCompanyId?: string | null
    sharedCompanyLabel?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SiteAttendanceEventCreateManyUserInput = {
    id?: string
    checkpointId: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
  }

  export type SiteDailySummaryCreateManyUserInput = {
    id?: string
    checkpointId: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
  }

  export type SharedCheckinPartnerCreateManyCreatorInput = {
    id?: string
    checkpointId: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    updatedBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SharedCheckinPartnerCreateManyUpdaterInput = {
    id?: string
    checkpointId: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceCreateManyUserInput = {
    id?: string
    meetingId: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingRequiredAttendeeCreateManyUserInput = {
    id?: string
    meetingId: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
  }

  export type MeetingTemplateCreateManyCreatorInput = {
    id?: string
    name: string
    title: string
    description?: string | null
    duration: number
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isPublic?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingTemplateAttendeeCreateManyUserInput = {
    id?: string
    templateId: string
    createdAt?: Date | string
  }

  export type MeetingAttendanceLeaveRecordCreateManyUserInput = {
    id?: string
    type: $Enums.LeaveType
    startDate: Date | string
    endDate: Date | string
    reason?: string | null
    status?: $Enums.LeaveStatus
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditLogCreateManyUserInput = {
    id?: string
    userEmail: string
    userName: string
    userRole: string
    action: string
    resource: string
    resourceId?: string | null
    method: string
    endpoint: string
    statusCode: number
    source?: string
    deviceId?: string | null
    sessionId?: string | null
    requestId?: string | null
    traceId?: string | null
    geoLocation?: string | null
    ipAddress?: string | null
    userAgent?: string | null
    fieldDiffs?: string | null
    requestBody?: string | null
    changes?: string | null
    reasonCode?: string | null
    reasonText?: string | null
    errorMessage?: string | null
    prevHash?: string | null
    hash?: string | null
    isRedacted?: boolean
    isTombstoned?: boolean
    retentionUntil?: Date | string | null
    duration?: number | null
    createdAt?: Date | string
  }

  export type MeetingCreateManyCreatorInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    seriesId?: string | null
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesCreateManyCreatorInput = {
    id?: string
    title: string
    description?: string | null
    pattern: $Enums.RecurrencePattern
    frequency?: number
    startDate: Date | string
    endDate?: Date | string | null
    maxOccurrences?: number | null
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    isActive?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesAttendeePreferenceCreateManyUserInput = {
    seriesId: string
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesAttendeeExceptionCreateManyUserInput = {
    seriesId: string
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
  }

  export type MeetingAgendaSectionCreateManyCreatedByInput = {
    id?: string
    meetingId: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemCreateManyCreatedByInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemCreateManyPresenterInput = {
    id?: string
    sectionId: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateManyAssigneeInput = {
    id?: string
    agendaItemId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateManyAssignedByInput = {
    id?: string
    agendaItemId: string
    assigneeUserId: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateManyCreatedByInput = {
    id?: string
    agendaItemId: string
    assigneeUserId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateManyUploadedByInput = {
    id?: string
    agendaItemId: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateManyCreatedByInput = {
    id?: string
    agendaItemId: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentCreateManyUploadedByInput = {
    id?: string
    meetingId: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentCreateManyCreatedByInput = {
    id?: string
    meetingId: string
    uploadedById: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type AIToolGrantUserCreateManyUserInput = {
    id?: string
    toolName: string
    effect?: string
    reason?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type AdpPtoScheduleCreateManyUserInput = {
    id?: string
    adpAoid: string
    leaveDate: Date | string
    startTime: Date | string
    endTime: Date | string
    adpEntryId: string
    syncedAt?: Date | string
  }

  export type InternalAppCreateManyCreatorInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppCreateManyForceDisablerInput = {
    id?: string
    employeeSlug: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppDeploymentCreateManyCreatorInput = {
    id?: string
    appId: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEnvVarCreateManyCreatorInput = {
    id?: string
    appId: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEmployeeTokenCreateManyCreatorInput = {
    id?: string
    employeeSlug: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEventCreateManyActorInput = {
    id?: string
    appId?: string | null
    employeeSlug?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
  }

  export type AiUsageTokenCreateManyUserInput = {
    id?: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    revokedById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageTokenCreateManyRevokedByInput = {
    id?: string
    userId: string
    name: string
    prefix: string
    tokenHash: string
    lastUsedAt?: Date | string | null
    lastUsedIp?: string | null
    revokedAt?: Date | string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDeviceCreateManyUserInput = {
    id?: string
    deviceId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedById?: string | null
    blockedReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDeviceCreateManyBlockedByInput = {
    id?: string
    deviceId: string
    userId: string
    hostname: string
    osUser?: string | null
    osPlatform: $Enums.AiUsageOsPlatform
    agentVersion?: string | null
    firstSeenAt: Date | string
    firstSeenIp?: string | null
    lastSeenAt: Date | string
    blockedAt?: Date | string | null
    blockedReason?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageEventCreateManyUserInput = {
    id?: string
    rawMessageId: string
    deviceId: string
    tool: $Enums.AiUsageTool
    sessionId: string
    projectPath: string
    projectBasename: string
    model: string
    ts: Date | string
    receivedAt: Date | string
    inputTokens?: number
    outputTokens?: number
    cacheCreationTokens?: number
    cacheReadTokens?: number
    totalTokens: number
    estimatedCostUsd: Decimal | DecimalJsLike | number | string
    gitBranch?: string | null
    agentVersionEvent?: string | null
    worktreeLabel?: string | null
    cwdBasename?: string | null
    turnIndex?: number | null
    toolUseCount?: number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: string | null
    serviceTier?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type AiUsageDailyRollupCreateManyUserInput = {
    id?: string
    date: Date | string
    projectBasename: string
    tool: $Enums.AiUsageTool
    model: string
    totalTokens: bigint | number
    inputTokens: bigint | number
    outputTokens: bigint | number
    cacheCreationTokens: bigint | number
    cacheReadTokens: bigint | number
    totalCostUsd: Decimal | DecimalJsLike | number | string
    eventCount: number
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type ApprovalInstanceUpdateWithoutInitiatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    version?: ApprovalVersionUpdateOneRequiredWithoutInstancesNestedInput
    nodeInstances?: ApprovalNodeInstanceUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateWithoutInitiatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    nodeInstances?: ApprovalNodeInstanceUncheckedUpdateManyWithoutInstanceNestedInput
    approvalTasks?: ApprovalTaskUncheckedUpdateManyWithoutInstanceNestedInput
    callbackRetries?: CallbackRetryQueueUncheckedUpdateManyWithoutInstanceNestedInput
    reminderQueues?: ReminderQueueUncheckedUpdateManyWithoutInstanceNestedInput
  }

  export type ApprovalInstanceUncheckedUpdateManyWithoutInitiatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    versionId?: StringFieldUpdateOperationsInput | string
    businessType?: StringFieldUpdateOperationsInput | string
    businessId?: StringFieldUpdateOperationsInput | string
    businessKey?: StringFieldUpdateOperationsInput | string
    title?: NullableStringFieldUpdateOperationsInput | string | null
    workflowId?: StringFieldUpdateOperationsInput | string
    workflowRunId?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInstanceStatusFieldUpdateOperationsInput | $Enums.InstanceStatus
    currentNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    currentNode?: NullableStringFieldUpdateOperationsInput | string | null
    variables?: JsonNullValueInput | InputJsonValue
    totalNodeExecutions?: IntFieldUpdateOperationsInput | number
    endReason?: NullableStringFieldUpdateOperationsInput | string | null
    endComment?: NullableStringFieldUpdateOperationsInput | string | null
    priority?: IntFieldUpdateOperationsInput | number
    dueDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ApprovalTaskLogUpdateWithoutOperatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
    targetUser?: UserUpdateOneWithoutApprovalActionTargetsNestedInput
    task?: ApprovalTaskUpdateOneRequiredWithoutActionLogsNestedInput
  }

  export type ApprovalTaskLogUncheckedUpdateWithoutOperatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalTaskLogUncheckedUpdateManyWithoutOperatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalTaskLogUpdateWithoutTargetUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
    operator?: UserUpdateOneRequiredWithoutApprovalActionLogsNestedInput
    task?: ApprovalTaskUpdateOneRequiredWithoutActionLogsNestedInput
  }

  export type ApprovalTaskLogUncheckedUpdateWithoutTargetUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    operatorId?: StringFieldUpdateOperationsInput | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalTaskLogUncheckedUpdateManyWithoutTargetUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    taskId?: StringFieldUpdateOperationsInput | string
    instanceId?: StringFieldUpdateOperationsInput | string
    action?: EnumApprovalTaskActionFieldUpdateOperationsInput | $Enums.ApprovalTaskAction
    operatorId?: StringFieldUpdateOperationsInput | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    targetNodeId?: NullableStringFieldUpdateOperationsInput | string | null
    addSignUsers?: ApprovalTaskLogUpdateaddSignUsersInput | string[]
    formDataChanges?: NullableJsonNullValueInput | InputJsonValue
    attachments?: NullableJsonNullValueInput | InputJsonValue
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    riskLevel?: NullableEnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel | null
    adminReason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    actionTime?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminExportUpdateWithoutRequesterInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumApprovalAdminExportStatusFieldUpdateOperationsInput | $Enums.ApprovalAdminExportStatus
    format?: StringFieldUpdateOperationsInput | string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    contentType?: NullableStringFieldUpdateOperationsInput | string | null
    totalRows?: NullableIntFieldUpdateOperationsInput | number | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminExportUncheckedUpdateWithoutRequesterInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumApprovalAdminExportStatusFieldUpdateOperationsInput | $Enums.ApprovalAdminExportStatus
    format?: StringFieldUpdateOperationsInput | string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    contentType?: NullableStringFieldUpdateOperationsInput | string | null
    totalRows?: NullableIntFieldUpdateOperationsInput | number | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ApprovalAdminExportUncheckedUpdateManyWithoutRequesterInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumApprovalAdminExportStatusFieldUpdateOperationsInput | $Enums.ApprovalAdminExportStatus
    format?: StringFieldUpdateOperationsInput | string
    filters?: JsonNullValueInput | InputJsonValue
    fileKey?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: NullableStringFieldUpdateOperationsInput | string | null
    fileSize?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    contentType?: NullableStringFieldUpdateOperationsInput | string | null
    totalRows?: NullableIntFieldUpdateOperationsInput | number | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ContractRequestUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    contractType?: EnumContractTypeFieldUpdateOperationsInput | $Enums.ContractType
    partnerName?: StringFieldUpdateOperationsInput | string
    partnerContact?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumContractStatusFieldUpdateOperationsInput | $Enums.ContractStatus
    sealRequired?: BoolFieldUpdateOperationsInput | boolean
    sealAppliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ContractRequestUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    contractType?: EnumContractTypeFieldUpdateOperationsInput | $Enums.ContractType
    partnerName?: StringFieldUpdateOperationsInput | string
    partnerContact?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumContractStatusFieldUpdateOperationsInput | $Enums.ContractStatus
    sealRequired?: BoolFieldUpdateOperationsInput | boolean
    sealAppliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ContractRequestUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    contractType?: EnumContractTypeFieldUpdateOperationsInput | $Enums.ContractType
    partnerName?: StringFieldUpdateOperationsInput | string
    partnerContact?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumContractStatusFieldUpdateOperationsInput | $Enums.ContractStatus
    sealRequired?: BoolFieldUpdateOperationsInput | boolean
    sealAppliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: NullableJsonNullValueInput | InputJsonValue
    signDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ExpenseRequestUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: ExpenseItemUpdateManyWithoutExpenseNestedInput
  }

  export type ExpenseRequestUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: ExpenseItemUncheckedUpdateManyWithoutExpenseNestedInput
  }

  export type ExpenseRequestUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    category?: EnumExpenseCategoryFieldUpdateOperationsInput | $Enums.ExpenseCategory
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumExpenseStatusFieldUpdateOperationsInput | $Enums.ExpenseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expenseDate?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PurchaseRequestUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: PurchaseItemUpdateManyWithoutPurchaseNestedInput
  }

  export type PurchaseRequestUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: PurchaseItemUncheckedUpdateManyWithoutPurchaseNestedInput
  }

  export type PurchaseRequestUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    totalAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currency?: StringFieldUpdateOperationsInput | string
    vendorName?: StringFieldUpdateOperationsInput | string
    vendorContact?: NullableStringFieldUpdateOperationsInput | string | null
    workflowInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumPurchaseStatusFieldUpdateOperationsInput | $Enums.PurchaseStatus
    attachments?: NullableJsonNullValueInput | InputJsonValue
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    actualDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AuditLogUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUpdateManyWithoutAuditLogNestedInput
    sensitiveOps?: AuditSensitiveOperationLogUpdateManyWithoutAuditLogNestedInput
  }

  export type AuditLogUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    databaseChanges?: AuditDatabaseChangeLogUncheckedUpdateManyWithoutAuditLogNestedInput
    sensitiveOps?: AuditSensitiveOperationLogUncheckedUpdateManyWithoutAuditLogNestedInput
  }

  export type AuditLogUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: StringFieldUpdateOperationsInput | string
    who?: StringFieldUpdateOperationsInput | string
    what?: StringFieldUpdateOperationsInput | string
    when?: DateTimeFieldUpdateOperationsInput | Date | string
    where?: StringFieldUpdateOperationsInput | string
    why?: NullableStringFieldUpdateOperationsInput | string | null
    how?: StringFieldUpdateOperationsInput | string
    module?: StringFieldUpdateOperationsInput | string
    action?: EnumAuditActionFieldUpdateOperationsInput | $Enums.AuditAction
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    oldValue?: NullableJsonNullValueInput | InputJsonValue
    newValue?: NullableJsonNullValueInput | InputJsonValue
    changes?: NullableJsonNullValueInput | InputJsonValue
    sessionId?: StringFieldUpdateOperationsInput | string
    traceId?: StringFieldUpdateOperationsInput | string
    requestId?: StringFieldUpdateOperationsInput | string
    ipAddress?: StringFieldUpdateOperationsInput | string
    userAgent?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    businessType?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAuditStatusFieldUpdateOperationsInput | $Enums.AuditStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    isFinancial?: BoolFieldUpdateOperationsInput | boolean
    isSensitive?: BoolFieldUpdateOperationsInput | boolean
    riskLevel?: EnumRiskLevelFieldUpdateOperationsInput | $Enums.RiskLevel
    complianceLevel?: EnumComplianceLevelFieldUpdateOperationsInput | $Enums.ComplianceLevel
    retentionYears?: IntFieldUpdateOperationsInput | number
    previousHash?: NullableStringFieldUpdateOperationsInput | string | null
    currentHash?: StringFieldUpdateOperationsInput | string
    signature?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    archivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AutomationTaskUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executions?: AutomationExecutionUpdateManyWithoutTaskNestedInput
  }

  export type AutomationTaskUncheckedUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executions?: AutomationExecutionUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type AutomationTaskUncheckedUpdateManyWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumAutomationTaskTypeFieldUpdateOperationsInput | $Enums.AutomationTaskType
    status?: EnumAutomationTaskStatusFieldUpdateOperationsInput | $Enums.AutomationTaskStatus
    scheduleType?: StringFieldUpdateOperationsInput | string
    scheduleConfig?: JsonNullValueInput | InputJsonValue
    config?: JsonNullValueInput | InputJsonValue
    timeout?: IntFieldUpdateOperationsInput | number
    retryCount?: IntFieldUpdateOperationsInput | number
    lastRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastStatus?: NullableEnumAutomationExecutionStatusFieldUpdateOperationsInput | $Enums.AutomationExecutionStatus | null
    nextRunAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    totalRuns?: IntFieldUpdateOperationsInput | number
    successRuns?: IntFieldUpdateOperationsInput | number
    failedRuns?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormDefinitionUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutFormDefinitionsNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormDefinitionsNestedInput
    instances?: FormInstanceUpdateManyWithoutDefinitionNestedInput
    versions?: FormVersionUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutDefinitionNestedInput
    versions?: FormVersionUncheckedUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormDefinitionUpdateWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneWithoutFormDefinitionsNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormDefinitionsNestedInput
    instances?: FormInstanceUpdateManyWithoutDefinitionNestedInput
    versions?: FormVersionUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutDefinitionNestedInput
    versions?: FormVersionUncheckedUpdateManyWithoutDefinitionNestedInput
  }

  export type FormDefinitionUncheckedUpdateManyWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    slug?: StringFieldUpdateOperationsInput | string
    slugHistory?: NullableJsonNullValueInput | InputJsonValue
    aliases?: NullableJsonNullValueInput | InputJsonValue
    name?: StringFieldUpdateOperationsInput | string
    category?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    defaultLocale?: StringFieldUpdateOperationsInput | string
    supportedLocales?: JsonNullValueInput | InputJsonValue
    latestVersion?: IntFieldUpdateOperationsInput | number
    status?: EnumFormStatusFieldUpdateOperationsInput | $Enums.FormStatus
    requiresApproval?: BoolFieldUpdateOperationsInput | boolean
    approvalProcessKey?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormInstanceUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    definition?: FormDefinitionUpdateOneRequiredWithoutInstancesNestedInput
    version?: FormVersionUpdateOneRequiredWithoutInstancesNestedInput
    snapshot?: ReleaseSnapshotUpdateOneWithoutInstancesNestedInput
    submitter?: UserUpdateOneWithoutSubmittedFormInstancesNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormInstancesNestedInput
  }

  export type FormInstanceUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUpdateWithoutSubmitterInput = {
    id?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedFormInstancesNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutInstancesNestedInput
    version?: FormVersionUpdateOneRequiredWithoutInstancesNestedInput
    snapshot?: ReleaseSnapshotUpdateOneWithoutInstancesNestedInput
    updater?: UserUpdateOneWithoutUpdatedFormInstancesNestedInput
  }

  export type FormInstanceUncheckedUpdateWithoutSubmitterInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUncheckedUpdateManyWithoutSubmitterInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUpdateWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    creator?: UserUpdateOneRequiredWithoutCreatedFormInstancesNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutInstancesNestedInput
    version?: FormVersionUpdateOneRequiredWithoutInstancesNestedInput
    snapshot?: ReleaseSnapshotUpdateOneWithoutInstancesNestedInput
    submitter?: UserUpdateOneWithoutSubmittedFormInstancesNestedInput
  }

  export type FormInstanceUncheckedUpdateWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormInstanceUncheckedUpdateManyWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    formDefinitionId?: StringFieldUpdateOperationsInput | string
    formVersionId?: StringFieldUpdateOperationsInput | string
    formKey?: StringFieldUpdateOperationsInput | string
    formVersion?: IntFieldUpdateOperationsInput | number
    snapshotId?: NullableStringFieldUpdateOperationsInput | string | null
    businessKey?: StringFieldUpdateOperationsInput | string
    regionId?: NullableStringFieldUpdateOperationsInput | string | null
    data?: JsonNullValueInput | InputJsonValue
    status?: EnumFormInstanceStatusFieldUpdateOperationsInput | $Enums.FormInstanceStatus
    createdBy?: StringFieldUpdateOperationsInput | string
    submittedBy?: NullableStringFieldUpdateOperationsInput | string | null
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStatus?: NullableStringFieldUpdateOperationsInput | string | null
    approvalStartTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    approvalEndTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FormTemplateUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updater?: UserUpdateOneWithoutUpdatedFormTemplatesNestedInput
  }

  export type FormTemplateUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTemplateUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    updatedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTemplateUpdateWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutCreatedFormTemplatesNestedInput
  }

  export type FormTemplateUncheckedUpdateWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormTemplateUncheckedUpdateManyWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    category?: StringFieldUpdateOperationsInput | string
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    color?: NullableStringFieldUpdateOperationsInput | string | null
    template?: JsonNullValueInput | InputJsonValue
    isBuiltin?: BoolFieldUpdateOperationsInput | boolean
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormVersionUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUpdateManyWithoutVersionNestedInput
    translations?: FormTranslationUpdateManyWithoutVersionNestedInput
    reviewer?: UserUpdateOneWithoutReviewedFormVersionsNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutVersionsNestedInput
  }

  export type FormVersionUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutVersionNestedInput
    translations?: FormTranslationUncheckedUpdateManyWithoutVersionNestedInput
  }

  export type FormVersionUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type FormVersionUpdateWithoutReviewerInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUpdateManyWithoutVersionNestedInput
    translations?: FormTranslationUpdateManyWithoutVersionNestedInput
    creator?: UserUpdateOneRequiredWithoutCreatedFormVersionsNestedInput
    definition?: FormDefinitionUpdateOneRequiredWithoutVersionsNestedInput
  }

  export type FormVersionUncheckedUpdateWithoutReviewerInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    instances?: FormInstanceUncheckedUpdateManyWithoutVersionNestedInput
    translations?: FormTranslationUncheckedUpdateManyWithoutVersionNestedInput
  }

  export type FormVersionUncheckedUpdateManyWithoutReviewerInput = {
    id?: StringFieldUpdateOperationsInput | string
    definitionId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    schema?: JsonNullValueInput | InputJsonValue
    uiSchema?: NullableJsonNullValueInput | InputJsonValue
    viewSchema?: NullableJsonNullValueInput | InputJsonValue
    validation?: NullableJsonNullValueInput | InputJsonValue
    changelog?: NullableStringFieldUpdateOperationsInput | string | null
    nameI18n?: JsonNullValueInput | InputJsonValue
    descriptionI18n?: NullableJsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    status?: EnumFormVersionStatusFieldUpdateOperationsInput | $Enums.FormVersionStatus
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserRoleUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    role?: RoleUpdateOneRequiredWithoutUsersNestedInput
    organization?: OrganizationUpdateOneWithoutUserRolesNestedInput
  }

  export type UserRoleUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UserRoleUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type WorkflowRoleUserUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    workflowRole?: WorkflowRoleUpdateOneRequiredWithoutUserAssignmentsNestedInput
  }

  export type WorkflowRoleUserUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    workflowRoleId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleUserUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    workflowRoleId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutUserDepartmentsNestedInput
    department?: DepartmentUpdateOneRequiredWithoutUserMembershipsNestedInput
    position?: PositionUpdateOneWithoutUserMembershipsNestedInput
    manager?: UserUpdateOneWithoutManagedUsersNestedInput
  }

  export type UserDepartmentUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    managerId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentUpdateWithoutManagerInput = {
    id?: StringFieldUpdateOperationsInput | string
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutDepartmentMembershipsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutUserDepartmentsNestedInput
    department?: DepartmentUpdateOneRequiredWithoutUserMembershipsNestedInput
    position?: PositionUpdateOneWithoutUserMembershipsNestedInput
  }

  export type UserDepartmentUncheckedUpdateWithoutManagerInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDepartmentUncheckedUpdateManyWithoutManagerInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    departmentId?: StringFieldUpdateOperationsInput | string
    positionId?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    title?: NullableStringFieldUpdateOperationsInput | string | null
    joinedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    leftAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationLogUpdateWithoutRecipientInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    template?: NotificationTemplateUpdateOneWithoutLogsNestedInput
  }

  export type NotificationLogUncheckedUpdateWithoutRecipientInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationLogUncheckedUpdateManyWithoutRecipientInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationMessageUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumNotificationTypeFieldUpdateOperationsInput | $Enums.NotificationType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    link?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumNotificationStatusFieldUpdateOperationsInput | $Enums.NotificationStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type NotificationMessageUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumNotificationTypeFieldUpdateOperationsInput | $Enums.NotificationType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    link?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumNotificationStatusFieldUpdateOperationsInput | $Enums.NotificationStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type NotificationMessageUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumNotificationTypeFieldUpdateOperationsInput | $Enums.NotificationType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    link?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumNotificationStatusFieldUpdateOperationsInput | $Enums.NotificationStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserDelegationSettingUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    delegateUser?: UserUpdateOneRequiredWithoutDelegatedToMeNestedInput
  }

  export type UserDelegationSettingUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    delegateUserId?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDelegationSettingUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    delegateUserId?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDelegationSettingUpdateWithoutDelegateUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutDelegationSettingsNestedInput
  }

  export type UserDelegationSettingUncheckedUpdateWithoutDelegateUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserDelegationSettingUncheckedUpdateManyWithoutDelegateUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    enabled?: BoolFieldUpdateOperationsInput | boolean
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: EnumDelegationScopeFieldUpdateOperationsInput | $Enums.DelegationScope
    processKeys?: UserDelegationSettingUpdateprocessKeysInput | string[]
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type KnowledgeArticleUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    views?: DocumentViewUpdateManyWithoutArticleNestedInput
    likes?: DocumentLikeUpdateManyWithoutArticleNestedInput
    comments?: DocumentCommentUpdateManyWithoutArticleNestedInput
  }

  export type KnowledgeArticleUncheckedUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    views?: DocumentViewUncheckedUpdateManyWithoutArticleNestedInput
    likes?: DocumentLikeUncheckedUpdateManyWithoutArticleNestedInput
    comments?: DocumentCommentUncheckedUpdateManyWithoutArticleNestedInput
  }

  export type KnowledgeArticleUncheckedUpdateManyWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    status?: EnumKnowledgeArticleStatusFieldUpdateOperationsInput | $Enums.KnowledgeArticleStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AIQALogUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    question?: StringFieldUpdateOperationsInput | string
    answer?: StringFieldUpdateOperationsInput | string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: NullableFloatFieldUpdateOperationsInput | number | null
    modelUsed?: NullableStringFieldUpdateOperationsInput | string | null
    tokensUsed?: NullableIntFieldUpdateOperationsInput | number | null
    cost?: NullableFloatFieldUpdateOperationsInput | number | null
    responseTimeMs?: NullableIntFieldUpdateOperationsInput | number | null
    feedback?: NullableEnumQAFeedbackFieldUpdateOperationsInput | $Enums.QAFeedback | null
    feedbackComment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIQALogUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    question?: StringFieldUpdateOperationsInput | string
    answer?: StringFieldUpdateOperationsInput | string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: NullableFloatFieldUpdateOperationsInput | number | null
    modelUsed?: NullableStringFieldUpdateOperationsInput | string | null
    tokensUsed?: NullableIntFieldUpdateOperationsInput | number | null
    cost?: NullableFloatFieldUpdateOperationsInput | number | null
    responseTimeMs?: NullableIntFieldUpdateOperationsInput | number | null
    feedback?: NullableEnumQAFeedbackFieldUpdateOperationsInput | $Enums.QAFeedback | null
    feedbackComment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AIQALogUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    question?: StringFieldUpdateOperationsInput | string
    answer?: StringFieldUpdateOperationsInput | string
    sourceDocuments?: NullableJsonNullValueInput | InputJsonValue
    confidence?: NullableFloatFieldUpdateOperationsInput | number | null
    modelUsed?: NullableStringFieldUpdateOperationsInput | string | null
    tokensUsed?: NullableIntFieldUpdateOperationsInput | number | null
    cost?: NullableFloatFieldUpdateOperationsInput | number | null
    responseTimeMs?: NullableIntFieldUpdateOperationsInput | number | null
    feedback?: NullableEnumQAFeedbackFieldUpdateOperationsInput | $Enums.QAFeedback | null
    feedbackComment?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentViewUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
    spDocument?: SPDocumentIndexUpdateOneWithoutViewsNestedInput
    article?: KnowledgeArticleUpdateOneWithoutViewsNestedInput
  }

  export type DocumentViewUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentViewUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    spDocument?: SPDocumentIndexUpdateOneWithoutLikesNestedInput
    article?: KnowledgeArticleUpdateOneWithoutLikesNestedInput
  }

  export type DocumentLikeUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentCommentUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spDocument?: SPDocumentIndexUpdateOneWithoutCommentsNestedInput
    article?: KnowledgeArticleUpdateOneWithoutCommentsNestedInput
    parent?: DocumentCommentUpdateOneWithoutRepliesNestedInput
    replies?: DocumentCommentUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    replies?: DocumentCommentUncheckedUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUncheckedUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserMentionUpdateWithoutMentionedUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    comment?: DocumentCommentUpdateOneRequiredWithoutMentionsNestedInput
  }

  export type UserMentionUncheckedUpdateWithoutMentionedUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    commentId?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserMentionUncheckedUpdateManyWithoutMentionedUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    commentId?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StrategicObjectiveAssignmentUpdateWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    objective?: StrategicObjectiveUpdateOneRequiredWithoutAssignmentsNestedInput
  }

  export type StrategicObjectiveAssignmentUncheckedUpdateWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    objectiveId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StrategicObjectiveAssignmentUncheckedUpdateManyWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    objectiveId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FeedbackUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignee?: UserUpdateOneWithoutAssignedFeedbacksNestedInput
  }

  export type FeedbackUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FeedbackUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FeedbackUpdateWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    user?: UserUpdateOneRequiredWithoutFeedbacksNestedInput
  }

  export type FeedbackUncheckedUpdateWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    userId?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type FeedbackUncheckedUpdateManyWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumFeedbackTypeFieldUpdateOperationsInput | $Enums.FeedbackType
    title?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    attachments?: FeedbackUpdateattachmentsInput | string[]
    pageUrl?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumFeedbackStatusFieldUpdateOperationsInput | $Enums.FeedbackStatus
    priority?: NullableEnumFeedbackPriorityFieldUpdateOperationsInput | $Enums.FeedbackPriority | null
    adminNote?: NullableStringFieldUpdateOperationsInput | string | null
    adminReply?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    userId?: StringFieldUpdateOperationsInput | string
    region?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DevItemUpdateWithoutOwnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: DevItemUpdateOneWithoutChildrenNestedInput
    children?: DevItemUpdateManyWithoutParentNestedInput
    reporter?: UserUpdateOneRequiredWithoutDevItemsReportedNestedInput
    reviewer?: UserUpdateOneWithoutDevItemsReviewedNestedInput
  }

  export type DevItemUncheckedUpdateWithoutOwnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DevItemUncheckedUpdateManyWithoutParentNestedInput
  }

  export type DevItemUncheckedUpdateManyWithoutOwnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DevItemUpdateWithoutReporterInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: DevItemUpdateOneWithoutChildrenNestedInput
    children?: DevItemUpdateManyWithoutParentNestedInput
    owner?: UserUpdateOneRequiredWithoutDevItemsOwnedNestedInput
    reviewer?: UserUpdateOneWithoutDevItemsReviewedNestedInput
  }

  export type DevItemUncheckedUpdateWithoutReporterInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DevItemUncheckedUpdateManyWithoutParentNestedInput
  }

  export type DevItemUncheckedUpdateManyWithoutReporterInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reviewerId?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DevItemUpdateWithoutReviewerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: DevItemUpdateOneWithoutChildrenNestedInput
    children?: DevItemUpdateManyWithoutParentNestedInput
    owner?: UserUpdateOneRequiredWithoutDevItemsOwnedNestedInput
    reporter?: UserUpdateOneRequiredWithoutDevItemsReportedNestedInput
  }

  export type DevItemUncheckedUpdateWithoutReviewerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: DevItemUncheckedUpdateManyWithoutParentNestedInput
  }

  export type DevItemUncheckedUpdateManyWithoutReviewerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    itemType?: EnumDevItemTypeFieldUpdateOperationsInput | $Enums.DevItemType
    status?: EnumDevItemStatusFieldUpdateOperationsInput | $Enums.DevItemStatus
    priority?: EnumDevItemPriorityFieldUpdateOperationsInput | $Enums.DevItemPriority
    severity?: NullableEnumDevItemSeverityFieldUpdateOperationsInput | $Enums.DevItemSeverity | null
    moduleKey?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerId?: StringFieldUpdateOperationsInput | string
    reporterId?: StringFieldUpdateOperationsInput | string
    reviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    startAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testEtaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    etaAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    devCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    testCompletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    content?: NullableJsonNullValueInput | InputJsonValue
    labels?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ReleaseNoteUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReleaseNoteUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ReleaseNoteUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    version?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    content?: NullableJsonNullValueInput | InputJsonValue
    releasedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteCheckpointUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: SiteAttendanceEventUpdateManyWithoutCheckpointNestedInput
    dailySummaries?: SiteDailySummaryUpdateManyWithoutCheckpointNestedInput
    sharedPartners?: SharedCheckinPartnerUpdateManyWithoutCheckpointNestedInput
  }

  export type SiteCheckpointUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: SiteAttendanceEventUncheckedUpdateManyWithoutCheckpointNestedInput
    dailySummaries?: SiteDailySummaryUncheckedUpdateManyWithoutCheckpointNestedInput
    sharedPartners?: SharedCheckinPartnerUncheckedUpdateManyWithoutCheckpointNestedInput
  }

  export type SiteCheckpointUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    latitude?: FloatFieldUpdateOperationsInput | number
    longitude?: FloatFieldUpdateOperationsInput | number
    geoPolicy?: EnumSiteGeoPolicyFieldUpdateOperationsInput | $Enums.SiteGeoPolicy
    geoRadius?: IntFieldUpdateOperationsInput | number
    geoAccuracyThreshold?: IntFieldUpdateOperationsInput | number
    allowUnauthenticatedCheckin?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    accessMode?: EnumSiteCheckpointAccessModeFieldUpdateOperationsInput | $Enums.SiteCheckpointAccessMode
    qrRotationSeconds?: NullableIntFieldUpdateOperationsInput | number | null
    qrGraceSeconds?: IntFieldUpdateOperationsInput | number
    sharedCheckinEnabled?: BoolFieldUpdateOperationsInput | boolean
    sharedCompanyId?: NullableStringFieldUpdateOperationsInput | string | null
    sharedCompanyLabel?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteAttendanceEventUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    checkpoint?: SiteCheckpointUpdateOneRequiredWithoutEventsNestedInput
  }

  export type SiteAttendanceEventUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteAttendanceEventUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteDailySummaryUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    checkpoint?: SiteCheckpointUpdateOneRequiredWithoutDailySummariesNestedInput
  }

  export type SiteDailySummaryUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteDailySummaryUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    checkpoint?: SiteCheckpointUpdateOneRequiredWithoutSharedPartnersNestedInput
    updater?: UserUpdateOneRequiredWithoutSharedCheckinPartnersUpdatedNestedInput
  }

  export type SharedCheckinPartnerUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    updatedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    updatedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerUpdateWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    checkpoint?: SiteCheckpointUpdateOneRequiredWithoutSharedPartnersNestedInput
    creator?: UserUpdateOneRequiredWithoutSharedCheckinPartnersCreatedNestedInput
  }

  export type SharedCheckinPartnerUncheckedUpdateWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerUncheckedUpdateManyWithoutUpdaterInput = {
    id?: StringFieldUpdateOperationsInput | string
    checkpointId?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneRequiredWithoutAttendancesNestedInput
  }

  export type MeetingAttendanceUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingRequiredAttendeeUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneRequiredWithoutRequiredAttendeesNestedInput
  }

  export type MeetingRequiredAttendeeUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingRequiredAttendeeUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    templateAttendees?: MeetingTemplateAttendeeUpdateManyWithoutTemplateNestedInput
  }

  export type MeetingTemplateUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    templateAttendees?: MeetingTemplateAttendeeUncheckedUpdateManyWithoutTemplateNestedInput
  }

  export type MeetingTemplateUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    duration?: IntFieldUpdateOperationsInput | number
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isPublic?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateAttendeeUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    template?: MeetingTemplateUpdateOneRequiredWithoutTemplateAttendeesNestedInput
  }

  export type MeetingTemplateAttendeeUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    templateId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateAttendeeUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    templateId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceLeaveRecordUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLeaveTypeFieldUpdateOperationsInput | $Enums.LeaveType
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLeaveStatusFieldUpdateOperationsInput | $Enums.LeaveStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceLeaveRecordUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLeaveTypeFieldUpdateOperationsInput | $Enums.LeaveType
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLeaveStatusFieldUpdateOperationsInput | $Enums.LeaveStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceLeaveRecordUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLeaveTypeFieldUpdateOperationsInput | $Enums.LeaveType
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumLeaveStatusFieldUpdateOperationsInput | $Enums.LeaveStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditLogUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    userEmail?: StringFieldUpdateOperationsInput | string
    userName?: StringFieldUpdateOperationsInput | string
    userRole?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    resourceId?: NullableStringFieldUpdateOperationsInput | string | null
    method?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    source?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    fieldDiffs?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableStringFieldUpdateOperationsInput | string | null
    changes?: NullableStringFieldUpdateOperationsInput | string | null
    reasonCode?: NullableStringFieldUpdateOperationsInput | string | null
    reasonText?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    prevHash?: NullableStringFieldUpdateOperationsInput | string | null
    hash?: NullableStringFieldUpdateOperationsInput | string | null
    isRedacted?: BoolFieldUpdateOperationsInput | boolean
    isTombstoned?: BoolFieldUpdateOperationsInput | boolean
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditLogUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    userEmail?: StringFieldUpdateOperationsInput | string
    userName?: StringFieldUpdateOperationsInput | string
    userRole?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    resourceId?: NullableStringFieldUpdateOperationsInput | string | null
    method?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    source?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    fieldDiffs?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableStringFieldUpdateOperationsInput | string | null
    changes?: NullableStringFieldUpdateOperationsInput | string | null
    reasonCode?: NullableStringFieldUpdateOperationsInput | string | null
    reasonText?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    prevHash?: NullableStringFieldUpdateOperationsInput | string | null
    hash?: NullableStringFieldUpdateOperationsInput | string | null
    isRedacted?: BoolFieldUpdateOperationsInput | boolean
    isTombstoned?: BoolFieldUpdateOperationsInput | boolean
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditLogUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    userEmail?: StringFieldUpdateOperationsInput | string
    userName?: StringFieldUpdateOperationsInput | string
    userRole?: StringFieldUpdateOperationsInput | string
    action?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    resourceId?: NullableStringFieldUpdateOperationsInput | string | null
    method?: StringFieldUpdateOperationsInput | string
    endpoint?: StringFieldUpdateOperationsInput | string
    statusCode?: IntFieldUpdateOperationsInput | number
    source?: StringFieldUpdateOperationsInput | string
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    sessionId?: NullableStringFieldUpdateOperationsInput | string | null
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    traceId?: NullableStringFieldUpdateOperationsInput | string | null
    geoLocation?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    fieldDiffs?: NullableStringFieldUpdateOperationsInput | string | null
    requestBody?: NullableStringFieldUpdateOperationsInput | string | null
    changes?: NullableStringFieldUpdateOperationsInput | string | null
    reasonCode?: NullableStringFieldUpdateOperationsInput | string | null
    reasonText?: NullableStringFieldUpdateOperationsInput | string | null
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    prevHash?: NullableStringFieldUpdateOperationsInput | string | null
    hash?: NullableStringFieldUpdateOperationsInput | string | null
    isRedacted?: BoolFieldUpdateOperationsInput | boolean
    isTombstoned?: BoolFieldUpdateOperationsInput | boolean
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    duration?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput
    series?: MeetingSeriesUpdateOneWithoutMeetingsNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    seriesId?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meetings?: MeetingUpdateManyWithoutSeriesNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUpdateManyWithoutSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUpdateManyWithoutSeriesNestedInput
  }

  export type MeetingSeriesUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meetings?: MeetingUncheckedUpdateManyWithoutSeriesNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingSeriesNestedInput
    attendeePreferences?: MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutSeriesNestedInput
    attendeeExceptions?: MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutSeriesNestedInput
  }

  export type MeetingSeriesUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    pattern?: EnumRecurrencePatternFieldUpdateOperationsInput | $Enums.RecurrencePattern
    frequency?: IntFieldUpdateOperationsInput | number
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    maxOccurrences?: NullableIntFieldUpdateOperationsInput | number | null
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    isActive?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeePreferenceUpdateWithoutUserInput = {
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    series?: MeetingSeriesUpdateOneRequiredWithoutAttendeePreferencesNestedInput
  }

  export type MeetingSeriesAttendeePreferenceUncheckedUpdateWithoutUserInput = {
    seriesId?: StringFieldUpdateOperationsInput | string
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutUserInput = {
    seriesId?: StringFieldUpdateOperationsInput | string
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeeExceptionUpdateWithoutUserInput = {
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    series?: MeetingSeriesUpdateOneRequiredWithoutAttendeeExceptionsNestedInput
  }

  export type MeetingSeriesAttendeeExceptionUncheckedUpdateWithoutUserInput = {
    seriesId?: StringFieldUpdateOperationsInput | string
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutUserInput = {
    seriesId?: StringFieldUpdateOperationsInput | string
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type MeetingAgendaSectionUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    meeting?: MeetingUpdateOneRequiredWithoutAgendaSectionsNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaSectionsNestedInput
    items?: MeetingAgendaItemUpdateManyWithoutSectionNestedInput
  }

  export type MeetingAgendaSectionUncheckedUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: MeetingAgendaItemUncheckedUpdateManyWithoutSectionNestedInput
  }

  export type MeetingAgendaSectionUncheckedUpdateManyWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    section?: MeetingAgendaSectionUpdateOneRequiredWithoutItemsNestedInput
    presenter?: UserUpdateOneWithoutAgendaItemsPresentedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemsNestedInput
    uploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateManyWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUpdateWithoutPresenterInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    section?: MeetingAgendaSectionUpdateOneRequiredWithoutItemsNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaItemsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemsNestedInput
    uploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateWithoutPresenterInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateManyWithoutPresenterInput = {
    id?: StringFieldUpdateOperationsInput | string
    sectionId?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUpdateWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutUploadTasksNestedInput
    assignedBy?: UserUpdateOneRequiredWithoutUploadTasksAssignedByNestedInput
    createdBy?: UserUpdateOneRequiredWithoutUploadTasksCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemUploadTasksNestedInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssigneeInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUpdateWithoutAssignedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutUploadTasksNestedInput
    assignee?: UserUpdateOneRequiredWithoutUploadTasksAssignedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutUploadTasksCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemUploadTasksNestedInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAssignedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAssignedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutUploadTasksNestedInput
    assignee?: UserUpdateOneRequiredWithoutUploadTasksAssignedNestedInput
    assignedBy?: UserUpdateOneRequiredWithoutUploadTasksAssignedByNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemUploadTasksNestedInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUpdateWithoutUploadedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutAttachmentsNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaAttachmentsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemAttachmentsNestedInput
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateWithoutUploadedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutUploadedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    agendaItem?: MeetingAgendaItemUpdateOneRequiredWithoutAttachmentsNestedInput
    uploadedBy?: UserUpdateOneRequiredWithoutAgendaAttachmentsUploadedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemAttachmentsNestedInput
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    agendaItemId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUpdateWithoutUploadedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    meeting?: MeetingUpdateOneRequiredWithoutAttachmentsNestedInput
    createdBy?: UserUpdateOneRequiredWithoutMeetingAttachmentsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAttachmentsNestedInput
  }

  export type MeetingAttachmentUncheckedUpdateWithoutUploadedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUncheckedUpdateManyWithoutUploadedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    meeting?: MeetingUpdateOneRequiredWithoutAttachmentsNestedInput
    uploadedBy?: UserUpdateOneRequiredWithoutMeetingAttachmentsUploadedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAttachmentsNestedInput
  }

  export type MeetingAttachmentUncheckedUpdateWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUncheckedUpdateManyWithoutCreatedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type AIToolGrantUserUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    effect?: StringFieldUpdateOperationsInput | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUserUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    effect?: StringFieldUpdateOperationsInput | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUserUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    effect?: StringFieldUpdateOperationsInput | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AdpPtoScheduleUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    adpAoid?: StringFieldUpdateOperationsInput | string
    leaveDate?: DateTimeFieldUpdateOperationsInput | Date | string
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    adpEntryId?: StringFieldUpdateOperationsInput | string
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AdpPtoScheduleUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    adpAoid?: StringFieldUpdateOperationsInput | string
    leaveDate?: DateTimeFieldUpdateOperationsInput | Date | string
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    adpEntryId?: StringFieldUpdateOperationsInput | string
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AdpPtoScheduleUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    adpAoid?: StringFieldUpdateOperationsInput | string
    leaveDate?: DateTimeFieldUpdateOperationsInput | Date | string
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    adpEntryId?: StringFieldUpdateOperationsInput | string
    syncedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ownerBinding?: EmployeeSlugBindingUpdateOneRequiredWithoutAppsNestedInput
    forceDisabler?: UserUpdateOneWithoutInternalAppsForceDisabledNestedInput
    deployments?: InternalAppDeploymentUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deployments?: InternalAppDeploymentUncheckedUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUncheckedUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUncheckedUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppUpdateWithoutForceDisablerInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ownerBinding?: EmployeeSlugBindingUpdateOneRequiredWithoutAppsNestedInput
    creator?: UserUpdateOneRequiredWithoutInternalAppsCreatedNestedInput
    deployments?: InternalAppDeploymentUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateWithoutForceDisablerInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deployments?: InternalAppDeploymentUncheckedUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUncheckedUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUncheckedUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateManyWithoutForceDisablerInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppDeploymentUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    app?: InternalAppUpdateOneRequiredWithoutDeploymentsNestedInput
  }

  export type InternalAppDeploymentUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppDeploymentUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEnvVarUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    app?: InternalAppUpdateOneRequiredWithoutEnvVarsNestedInput
  }

  export type InternalAppEnvVarUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEnvVarUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEmployeeTokenUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: EmployeeSlugBindingUpdateOneRequiredWithoutTokensNestedInput
  }

  export type InternalAppEmployeeTokenUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEmployeeTokenUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEventUpdateWithoutActorInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    app?: InternalAppUpdateOneWithoutEventsNestedInput
  }

  export type InternalAppEventUncheckedUpdateWithoutActorInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: NullableStringFieldUpdateOperationsInput | string | null
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEventUncheckedUpdateManyWithoutActorInput = {
    id?: StringFieldUpdateOperationsInput | string
    appId?: NullableStringFieldUpdateOperationsInput | string | null
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageTokenUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedBy?: UserUpdateOneWithoutAiUsageTokensRevokedNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageTokensNestedInput
  }

  export type AiUsageTokenUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageTokenUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageTokenUpdateWithoutRevokedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageTokensNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageTokensNestedInput
  }

  export type AiUsageTokenUncheckedUpdateWithoutRevokedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageTokenUncheckedUpdateManyWithoutRevokedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastUsedIp?: NullableStringFieldUpdateOperationsInput | string | null
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDeviceUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedBy?: UserUpdateOneWithoutAiUsageDevicesBlockedNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageDevicesNestedInput
    events?: AiUsageEventUpdateManyWithoutDeviceNestedInput
  }

  export type AiUsageDeviceUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedById?: NullableStringFieldUpdateOperationsInput | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: AiUsageEventUncheckedUpdateManyWithoutDeviceNestedInput
  }

  export type AiUsageDeviceUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedById?: NullableStringFieldUpdateOperationsInput | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDeviceUpdateWithoutBlockedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutAiUsageDevicesNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageDevicesNestedInput
    events?: AiUsageEventUpdateManyWithoutDeviceNestedInput
  }

  export type AiUsageDeviceUncheckedUpdateWithoutBlockedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    events?: AiUsageEventUncheckedUpdateManyWithoutDeviceNestedInput
  }

  export type AiUsageDeviceUncheckedUpdateManyWithoutBlockedByInput = {
    id?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    hostname?: StringFieldUpdateOperationsInput | string
    osUser?: NullableStringFieldUpdateOperationsInput | string | null
    osPlatform?: EnumAiUsageOsPlatformFieldUpdateOperationsInput | $Enums.AiUsageOsPlatform
    agentVersion?: NullableStringFieldUpdateOperationsInput | string | null
    firstSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstSeenIp?: NullableStringFieldUpdateOperationsInput | string | null
    lastSeenAt?: DateTimeFieldUpdateOperationsInput | Date | string
    blockedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    blockedReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    device?: AiUsageDeviceUpdateOneRequiredWithoutEventsNestedInput
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageEventsNestedInput
  }

  export type AiUsageEventUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageEventUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    rawMessageId?: StringFieldUpdateOperationsInput | string
    deviceId?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    sessionId?: StringFieldUpdateOperationsInput | string
    projectPath?: StringFieldUpdateOperationsInput | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    model?: StringFieldUpdateOperationsInput | string
    ts?: DateTimeFieldUpdateOperationsInput | Date | string
    receivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inputTokens?: IntFieldUpdateOperationsInput | number
    outputTokens?: IntFieldUpdateOperationsInput | number
    cacheCreationTokens?: IntFieldUpdateOperationsInput | number
    cacheReadTokens?: IntFieldUpdateOperationsInput | number
    totalTokens?: IntFieldUpdateOperationsInput | number
    estimatedCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    gitBranch?: NullableStringFieldUpdateOperationsInput | string | null
    agentVersionEvent?: NullableStringFieldUpdateOperationsInput | string | null
    worktreeLabel?: NullableStringFieldUpdateOperationsInput | string | null
    cwdBasename?: NullableStringFieldUpdateOperationsInput | string | null
    turnIndex?: NullableIntFieldUpdateOperationsInput | number | null
    toolUseCount?: NullableIntFieldUpdateOperationsInput | number | null
    toolNames?: NullableJsonNullValueInput | InputJsonValue
    stopReason?: NullableStringFieldUpdateOperationsInput | string | null
    serviceTier?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDailyRollupUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organization?: OrganizationUpdateOneRequiredWithoutAiUsageRollupsNestedInput
  }

  export type AiUsageDailyRollupUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AiUsageDailyRollupUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    date?: DateTimeFieldUpdateOperationsInput | Date | string
    projectBasename?: StringFieldUpdateOperationsInput | string
    tool?: EnumAiUsageToolFieldUpdateOperationsInput | $Enums.AiUsageTool
    model?: StringFieldUpdateOperationsInput | string
    totalTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    inputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    outputTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheCreationTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    cacheReadTokens?: BigIntFieldUpdateOperationsInput | bigint | number
    totalCostUsd?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    eventCount?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RolePermissionCreateManyRoleInput = {
    id?: string
    permissionId: string
    createdAt?: Date | string
  }

  export type UserRoleCreateManyRoleInput = {
    id?: string
    userId: string
    organizationId?: string | null
    createdAt?: Date | string
    lastReviewedAt?: Date | string | null
    lastReviewedBy?: string | null
    reviewComment?: string | null
  }

  export type AIToolGrantCreateManyRoleInput = {
    id?: string
    toolName: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdBy?: string | null
  }

  export type RoleDataScopeCreateManyRoleInput = {
    id?: string
    dataScopeId: string
    resource?: string
    createdAt?: Date | string
  }

  export type RolePermissionUpdateWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    permission?: PermissionUpdateOneRequiredWithoutRolesNestedInput
  }

  export type RolePermissionUncheckedUpdateWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    permissionId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RolePermissionUncheckedUpdateManyWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    permissionId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserRoleUpdateWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
    user?: UserUpdateOneRequiredWithoutRolesNestedInput
    organization?: OrganizationUpdateOneWithoutUserRolesNestedInput
  }

  export type UserRoleUncheckedUpdateWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type UserRoleUncheckedUpdateManyWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastReviewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastReviewedBy?: NullableStringFieldUpdateOperationsInput | string | null
    reviewComment?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUpdateWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUncheckedUpdateWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type AIToolGrantUncheckedUpdateManyWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    toolName?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdBy?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type RoleDataScopeUpdateWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    dataScope?: DataScopeUpdateOneRequiredWithoutRoleScopesNestedInput
  }

  export type RoleDataScopeUncheckedUpdateWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    dataScopeId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleDataScopeUncheckedUpdateManyWithoutRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    dataScopeId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RolePermissionCreateManyPermissionInput = {
    id?: string
    roleId: string
    createdAt?: Date | string
  }

  export type RolePermissionUpdateWithoutPermissionInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    role?: RoleUpdateOneRequiredWithoutPermissionsNestedInput
  }

  export type RolePermissionUncheckedUpdateWithoutPermissionInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RolePermissionUncheckedUpdateManyWithoutPermissionInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleUserCreateManyWorkflowRoleInput = {
    id?: string
    userId: string
    createdAt?: Date | string
  }

  export type WorkflowRoleUserUpdateWithoutWorkflowRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutWorkflowRolesNestedInput
  }

  export type WorkflowRoleUserUncheckedUpdateWithoutWorkflowRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type WorkflowRoleUserUncheckedUpdateManyWithoutWorkflowRoleInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleDataScopeCreateManyDataScopeInput = {
    id?: string
    roleId: string
    resource?: string
    createdAt?: Date | string
  }

  export type RoleDataScopeUpdateWithoutDataScopeInput = {
    id?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    role?: RoleUpdateOneRequiredWithoutDataScopesNestedInput
  }

  export type RoleDataScopeUncheckedUpdateWithoutDataScopeInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RoleDataScopeUncheckedUpdateManyWithoutDataScopeInput = {
    id?: StringFieldUpdateOperationsInput | string
    roleId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppCreateManyOwnerBindingInput = {
    id?: string
    appSlug: string
    displayName?: string | null
    runtime: $Enums.InternalAppRuntime
    status?: $Enums.InternalAppStatus
    url: string
    giteaRepoFullName: string
    lastDeployedAt?: Date | string | null
    currentDeploymentId?: string | null
    destroyedAt?: Date | string | null
    retentionUntil?: Date | string | null
    forceDisabledAt?: Date | string | null
    forceDisabledReason?: string | null
    forceDisabledById?: string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEmployeeTokenCreateManyBindingInput = {
    id?: string
    tokenHash: string
    prefix: string
    status?: $Enums.InternalAppTokenStatus
    issuedAt?: Date | string
    expiresAt: Date | string
    revokedAt?: Date | string | null
    revokedReason?: $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: Date | string | null
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppUpdateWithoutOwnerBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutInternalAppsCreatedNestedInput
    forceDisabler?: UserUpdateOneWithoutInternalAppsForceDisabledNestedInput
    deployments?: InternalAppDeploymentUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateWithoutOwnerBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deployments?: InternalAppDeploymentUncheckedUpdateManyWithoutAppNestedInput
    envVars?: InternalAppEnvVarUncheckedUpdateManyWithoutAppNestedInput
    events?: InternalAppEventUncheckedUpdateManyWithoutAppNestedInput
  }

  export type InternalAppUncheckedUpdateManyWithoutOwnerBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    appSlug?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    runtime?: EnumInternalAppRuntimeFieldUpdateOperationsInput | $Enums.InternalAppRuntime
    status?: EnumInternalAppStatusFieldUpdateOperationsInput | $Enums.InternalAppStatus
    url?: StringFieldUpdateOperationsInput | string
    giteaRepoFullName?: StringFieldUpdateOperationsInput | string
    lastDeployedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    currentDeploymentId?: NullableStringFieldUpdateOperationsInput | string | null
    destroyedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retentionUntil?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    forceDisabledReason?: NullableStringFieldUpdateOperationsInput | string | null
    forceDisabledById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEmployeeTokenUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutInternalAppTokensNestedInput
  }

  export type InternalAppEmployeeTokenUncheckedUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEmployeeTokenUncheckedUpdateManyWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    tokenHash?: StringFieldUpdateOperationsInput | string
    prefix?: StringFieldUpdateOperationsInput | string
    status?: EnumInternalAppTokenStatusFieldUpdateOperationsInput | $Enums.InternalAppTokenStatus
    issuedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string
    revokedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    revokedReason?: NullableEnumInternalAppTokenRevokeReasonFieldUpdateOperationsInput | $Enums.InternalAppTokenRevokeReason | null
    lastUsedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppDeploymentCreateManyAppInput = {
    id?: string
    commitSha?: string | null
    status?: $Enums.InternalAppDeploymentStatus
    buildLogSummary?: string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: Date | string | null
    finishedAt?: Date | string | null
    trigger: $Enums.InternalAppDeploymentTrigger
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEnvVarCreateManyAppInput = {
    id?: string
    key: string
    valueEncrypted: Bytes
    valueIv: Bytes
    kmsKeyVersion: number
    organizationId: string
    createdById: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type InternalAppEventCreateManyAppInput = {
    id?: string
    employeeSlug?: string | null
    actorId?: string | null
    actorRole: $Enums.InternalAppActorRole
    eventType: string
    outcome?: $Enums.InternalAppEventOutcome
    errorCode?: string | null
    durationMs?: number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: string | null
    ipAddr?: string | null
    userAgent?: string | null
    organizationId: string
    createdAt?: Date | string
  }

  export type InternalAppDeploymentUpdateWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutInternalAppDeploymentsTriggeredNestedInput
  }

  export type InternalAppDeploymentUncheckedUpdateWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppDeploymentUncheckedUpdateManyWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    commitSha?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumInternalAppDeploymentStatusFieldUpdateOperationsInput | $Enums.InternalAppDeploymentStatus
    buildLogSummary?: NullableStringFieldUpdateOperationsInput | string | null
    healthCheckLog?: NullableJsonNullValueInput | InputJsonValue
    startedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    finishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    trigger?: EnumInternalAppDeploymentTriggerFieldUpdateOperationsInput | $Enums.InternalAppDeploymentTrigger
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEnvVarUpdateWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutInternalAppEnvVarsManagedNestedInput
  }

  export type InternalAppEnvVarUncheckedUpdateWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEnvVarUncheckedUpdateManyWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    key?: StringFieldUpdateOperationsInput | string
    valueEncrypted?: BytesFieldUpdateOperationsInput | Bytes
    valueIv?: BytesFieldUpdateOperationsInput | Bytes
    kmsKeyVersion?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdById?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEventUpdateWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    actor?: UserUpdateOneWithoutInternalAppEventsNestedInput
  }

  export type InternalAppEventUncheckedUpdateWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type InternalAppEventUncheckedUpdateManyWithoutAppInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeSlug?: NullableStringFieldUpdateOperationsInput | string | null
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    actorRole?: EnumInternalAppActorRoleFieldUpdateOperationsInput | $Enums.InternalAppActorRole
    eventType?: StringFieldUpdateOperationsInput | string
    outcome?: EnumInternalAppEventOutcomeFieldUpdateOperationsInput | $Enums.InternalAppEventOutcome
    errorCode?: NullableStringFieldUpdateOperationsInput | string | null
    durationMs?: NullableIntFieldUpdateOperationsInput | number | null
    payload?: JsonNullValueInput | InputJsonValue
    requestId?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddr?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentViewCreateManyArticleInput = {
    id?: string
    spDocumentId?: string | null
    userId: string
    viewedAt?: Date | string
    viewDate: Date | string
  }

  export type DocumentLikeCreateManyArticleInput = {
    id?: string
    spDocumentId?: string | null
    userId: string
    type: $Enums.LikeType
    createdAt?: Date | string
  }

  export type DocumentCommentCreateManyArticleInput = {
    id?: string
    spDocumentId?: string | null
    userId: string
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DocumentViewUpdateWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
    spDocument?: SPDocumentIndexUpdateOneWithoutViewsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentViewsNestedInput
  }

  export type DocumentViewUncheckedUpdateWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentViewUncheckedUpdateManyWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeUpdateWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    spDocument?: SPDocumentIndexUpdateOneWithoutLikesNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentLikesNestedInput
  }

  export type DocumentLikeUncheckedUpdateWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeUncheckedUpdateManyWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentCommentUpdateWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spDocument?: SPDocumentIndexUpdateOneWithoutCommentsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentCommentsNestedInput
    parent?: DocumentCommentUpdateOneWithoutRepliesNestedInput
    replies?: DocumentCommentUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    replies?: DocumentCommentUncheckedUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUncheckedUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateManyWithoutArticleInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DocumentViewCreateManySpDocumentInput = {
    id?: string
    articleId?: string | null
    userId: string
    viewedAt?: Date | string
    viewDate: Date | string
  }

  export type DocumentLikeCreateManySpDocumentInput = {
    id?: string
    articleId?: string | null
    userId: string
    type: $Enums.LikeType
    createdAt?: Date | string
  }

  export type DocumentCommentCreateManySpDocumentInput = {
    id?: string
    articleId?: string | null
    userId: string
    content: string
    parentId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type DocumentViewUpdateWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
    article?: KnowledgeArticleUpdateOneWithoutViewsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentViewsNestedInput
  }

  export type DocumentViewUncheckedUpdateWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentViewUncheckedUpdateManyWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    viewedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    viewDate?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeUpdateWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    article?: KnowledgeArticleUpdateOneWithoutLikesNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentLikesNestedInput
  }

  export type DocumentLikeUncheckedUpdateWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentLikeUncheckedUpdateManyWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    type?: EnumLikeTypeFieldUpdateOperationsInput | $Enums.LikeType
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DocumentCommentUpdateWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    article?: KnowledgeArticleUpdateOneWithoutCommentsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentCommentsNestedInput
    parent?: DocumentCommentUpdateOneWithoutRepliesNestedInput
    replies?: DocumentCommentUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    replies?: DocumentCommentUncheckedUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUncheckedUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateManyWithoutSpDocumentInput = {
    id?: StringFieldUpdateOperationsInput | string
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DocumentCommentCreateManyParentInput = {
    id?: string
    spDocumentId?: string | null
    articleId?: string | null
    userId: string
    content: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type UserMentionCreateManyCommentInput = {
    id?: string
    mentionedUserId: string
    readAt?: Date | string | null
    createdAt?: Date | string
  }

  export type DocumentCommentUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    spDocument?: SPDocumentIndexUpdateOneWithoutCommentsNestedInput
    article?: KnowledgeArticleUpdateOneWithoutCommentsNestedInput
    user?: UserUpdateOneRequiredWithoutDocumentCommentsNestedInput
    replies?: DocumentCommentUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    replies?: DocumentCommentUncheckedUpdateManyWithoutParentNestedInput
    mentions?: UserMentionUncheckedUpdateManyWithoutCommentNestedInput
  }

  export type DocumentCommentUncheckedUpdateManyWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    spDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    articleId?: NullableStringFieldUpdateOperationsInput | string | null
    userId?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type UserMentionUpdateWithoutCommentInput = {
    id?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    mentionedUser?: UserUpdateOneRequiredWithoutMentionedInNestedInput
  }

  export type UserMentionUncheckedUpdateWithoutCommentInput = {
    id?: StringFieldUpdateOperationsInput | string
    mentionedUserId?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type UserMentionUncheckedUpdateManyWithoutCommentInput = {
    id?: StringFieldUpdateOperationsInput | string
    mentionedUserId?: StringFieldUpdateOperationsInput | string
    readAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskSkippedItemCreateManyTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    reason: string
    createdAt?: Date | string
  }

  export type SyncTaskProcessedItemCreateManyTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    ragflowDocumentId?: string | null
    tokenCount?: number | null
    chunkCount?: number | null
    sourceSizeBytes?: bigint | number | null
    status?: $Enums.SyncItemStatus
    createdAt?: Date | string
  }

  export type SyncTaskFailedItemCreateManyTaskInput = {
    id?: string
    sourceType: $Enums.RagflowSourceType
    sourceId: string
    filename: string
    fileExtension?: string | null
    mimeType?: string | null
    error: string
    createdAt?: Date | string
  }

  export type SyncTaskSkippedItemUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskSkippedItemUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskSkippedItemUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskProcessedItemUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    ragflowDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    tokenCount?: NullableIntFieldUpdateOperationsInput | number | null
    chunkCount?: NullableIntFieldUpdateOperationsInput | number | null
    sourceSizeBytes?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    status?: EnumSyncItemStatusFieldUpdateOperationsInput | $Enums.SyncItemStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskProcessedItemUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    ragflowDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    tokenCount?: NullableIntFieldUpdateOperationsInput | number | null
    chunkCount?: NullableIntFieldUpdateOperationsInput | number | null
    sourceSizeBytes?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    status?: EnumSyncItemStatusFieldUpdateOperationsInput | $Enums.SyncItemStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskProcessedItemUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    ragflowDocumentId?: NullableStringFieldUpdateOperationsInput | string | null
    tokenCount?: NullableIntFieldUpdateOperationsInput | number | null
    chunkCount?: NullableIntFieldUpdateOperationsInput | number | null
    sourceSizeBytes?: NullableBigIntFieldUpdateOperationsInput | bigint | number | null
    status?: EnumSyncItemStatusFieldUpdateOperationsInput | $Enums.SyncItemStatus
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskFailedItemUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    error?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskFailedItemUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    error?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SyncTaskFailedItemUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceType?: EnumRagflowSourceTypeFieldUpdateOperationsInput | $Enums.RagflowSourceType
    sourceId?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    fileExtension?: NullableStringFieldUpdateOperationsInput | string | null
    mimeType?: NullableStringFieldUpdateOperationsInput | string | null
    error?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerContactCreateManyCustomerInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type CustomerAddressCreateManyCustomerInput = {
    id?: string
    addressType: string
    line1: string
    line2?: string | null
    city?: string | null
    state?: string | null
    postalCode?: string | null
    countryCode?: string | null
    isDefault?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type LocationCreateManyCustomerInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    parentLocationId?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type CustomerContactUpdateWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerContactUncheckedUpdateWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerContactUncheckedUpdateManyWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerAddressUpdateWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    addressType?: StringFieldUpdateOperationsInput | string
    line1?: StringFieldUpdateOperationsInput | string
    line2?: NullableStringFieldUpdateOperationsInput | string | null
    city?: NullableStringFieldUpdateOperationsInput | string | null
    state?: NullableStringFieldUpdateOperationsInput | string | null
    postalCode?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerAddressUncheckedUpdateWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    addressType?: StringFieldUpdateOperationsInput | string
    line1?: StringFieldUpdateOperationsInput | string
    line2?: NullableStringFieldUpdateOperationsInput | string | null
    city?: NullableStringFieldUpdateOperationsInput | string | null
    state?: NullableStringFieldUpdateOperationsInput | string | null
    postalCode?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type CustomerAddressUncheckedUpdateManyWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    addressType?: StringFieldUpdateOperationsInput | string
    line1?: StringFieldUpdateOperationsInput | string
    line2?: NullableStringFieldUpdateOperationsInput | string | null
    city?: NullableStringFieldUpdateOperationsInput | string | null
    state?: NullableStringFieldUpdateOperationsInput | string | null
    postalCode?: NullableStringFieldUpdateOperationsInput | string | null
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LocationUpdateWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: LocationUpdateOneWithoutChildrenNestedInput
    children?: LocationUpdateManyWithoutParentNestedInput
  }

  export type LocationUncheckedUpdateWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: LocationUncheckedUpdateManyWithoutParentNestedInput
  }

  export type LocationUncheckedUpdateManyWithoutCustomerInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SupplierContactCreateManySupplierInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SupplierContactUpdateWithoutSupplierInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplierContactUncheckedUpdateWithoutSupplierInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SupplierContactUncheckedUpdateManyWithoutSupplierInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartnerContactCreateManyPartnerInput = {
    id?: string
    name: string
    role?: string | null
    phone?: string | null
    email?: string | null
    isPrimary?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PartnerContactUpdateWithoutPartnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartnerContactUncheckedUpdateWithoutPartnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PartnerContactUncheckedUpdateManyWithoutPartnerInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    role?: NullableStringFieldUpdateOperationsInput | string | null
    phone?: NullableStringFieldUpdateOperationsInput | string | null
    email?: NullableStringFieldUpdateOperationsInput | string | null
    isPrimary?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LocationCreateManyParentInput = {
    id?: string
    code: string
    name: string
    type: $Enums.LocationType
    countryCode?: string | null
    address?: string | null
    latitude?: Decimal | DecimalJsLike | number | string | null
    longitude?: Decimal | DecimalJsLike | number | string | null
    customerId?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type LocationUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: LocationUpdateManyWithoutParentNestedInput
    customer?: CustomerUpdateOneWithoutLocationsNestedInput
  }

  export type LocationUncheckedUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: LocationUncheckedUpdateManyWithoutParentNestedInput
  }

  export type LocationUncheckedUpdateManyWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumLocationTypeFieldUpdateOperationsInput | $Enums.LocationType
    countryCode?: NullableStringFieldUpdateOperationsInput | string | null
    address?: NullableStringFieldUpdateOperationsInput | string | null
    latitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    longitude?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttendanceCreateManyMeetingInput = {
    id?: string
    userId: string
    status?: $Enums.AttendanceStatus
    checkinTime?: Date | string | null
    checkoutTime?: Date | string | null
    isLate?: boolean
    isEarlyLeave?: boolean
    notes?: string | null
    checkinType?: $Enums.CheckinType | null
    deviceId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingRequiredAttendeeCreateManyMeetingInput = {
    id?: string
    userId: string
    role?: $Enums.AttendeeRole
    checkinMode?: $Enums.AttendanceMode | null
    createdAt?: Date | string
  }

  export type MeetingExternalAttendeeCreateManyMeetingInput = {
    id?: string
    email: string
    displayName?: string | null
    attendeeType?: string | null
    response?: string | null
    sourceRole?: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookMeetingBindingCreateManyMeetingInput = {
    id?: string
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAgendaSectionCreateManyMeetingInput = {
    id?: string
    order?: number
    title: string
    columnLabels?: MeetingAgendaSectionCreatecolumnLabelsInput | string[]
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttachmentCreateManyMeetingInput = {
    id?: string
    uploadedById: string
    category?: $Enums.MeetingAttachmentCategory | null
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAttendanceUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutMeetingAttendancesNestedInput
  }

  export type MeetingAttendanceUncheckedUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceUncheckedUpdateManyWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    status?: EnumAttendanceStatusFieldUpdateOperationsInput | $Enums.AttendanceStatus
    checkinTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkoutTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isLate?: BoolFieldUpdateOperationsInput | boolean
    isEarlyLeave?: BoolFieldUpdateOperationsInput | boolean
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    checkinType?: NullableEnumCheckinTypeFieldUpdateOperationsInput | $Enums.CheckinType | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingRequiredAttendeeUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutMeetingRequiredAttendeesNestedInput
  }

  export type MeetingRequiredAttendeeUncheckedUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    role?: EnumAttendeeRoleFieldUpdateOperationsInput | $Enums.AttendeeRole
    checkinMode?: NullableEnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingExternalAttendeeUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    attendeeType?: NullableStringFieldUpdateOperationsInput | string | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    sourceRole?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingExternalAttendeeUncheckedUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    attendeeType?: NullableStringFieldUpdateOperationsInput | string | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    sourceRole?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    email?: StringFieldUpdateOperationsInput | string
    displayName?: NullableStringFieldUpdateOperationsInput | string | null
    attendeeType?: NullableStringFieldUpdateOperationsInput | string | null
    response?: NullableStringFieldUpdateOperationsInput | string | null
    sourceRole?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookMeetingBindingUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meetingSeries?: MeetingSeriesUpdateOneWithoutOutlookBindingsNestedInput
    primaryMailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutPrimaryBindingsNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAgendaSectionUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdBy?: UserUpdateOneRequiredWithoutAgendaSectionsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaSectionsNestedInput
    items?: MeetingAgendaItemUpdateManyWithoutSectionNestedInput
  }

  export type MeetingAgendaSectionUncheckedUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    items?: MeetingAgendaItemUncheckedUpdateManyWithoutSectionNestedInput
  }

  export type MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    columnLabels?: MeetingAgendaSectionUpdatecolumnLabelsInput | string[]
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    uploadedBy?: UserUpdateOneRequiredWithoutMeetingAttachmentsUploadedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutMeetingAttachmentsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAttachmentsNestedInput
  }

  export type MeetingAttachmentUncheckedUpdateWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAttachmentUncheckedUpdateManyWithoutMeetingInput = {
    id?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    category?: NullableEnumMeetingAttachmentCategoryFieldUpdateOperationsInput | $Enums.MeetingAttachmentCategory | null
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingCreateManySeriesInput = {
    id?: string
    title: string
    description?: string | null
    startTime: Date | string
    endTime: Date | string
    timezone?: string
    location?: string | null
    type?: $Enums.MeetingType
    status?: $Enums.MeetingStatus
    qrCodeOnline?: string | null
    qrCodeOffline?: string | null
    creatorId: string
    instanceNumber?: number | null
    isSeriesMaster?: boolean
    hasCustomAttendees?: boolean
    city?: string | null
    enforceCheckinMode?: boolean
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookMeetingBindingCreateManyMeetingSeriesInput = {
    id?: string
    meetingId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    primaryMailboxId: string
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesAttendeePreferenceCreateManySeriesInput = {
    userId: string
    defaultCheckinMode: $Enums.AttendanceMode
    updatedByUserId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingSeriesAttendeeExceptionCreateManySeriesInput = {
    userId: string
    excludedBy: string
    excludedAt?: Date | string
    reason?: string | null
  }

  export type MeetingUpdateWithoutSeriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUpdateManyWithoutMeetingNestedInput
    creator?: UserUpdateOneRequiredWithoutMeetingsCreatedNestedInput
    outlookBindings?: OutlookMeetingBindingUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateWithoutSeriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    attendances?: MeetingAttendanceUncheckedUpdateManyWithoutMeetingNestedInput
    requiredAttendees?: MeetingRequiredAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    externalAttendees?: MeetingExternalAttendeeUncheckedUpdateManyWithoutMeetingNestedInput
    outlookBindings?: OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingNestedInput
    agendaSections?: MeetingAgendaSectionUncheckedUpdateManyWithoutMeetingNestedInput
    attachments?: MeetingAttachmentUncheckedUpdateManyWithoutMeetingNestedInput
  }

  export type MeetingUncheckedUpdateManyWithoutSeriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: DateTimeFieldUpdateOperationsInput | Date | string
    endTime?: DateTimeFieldUpdateOperationsInput | Date | string
    timezone?: StringFieldUpdateOperationsInput | string
    location?: NullableStringFieldUpdateOperationsInput | string | null
    type?: EnumMeetingTypeFieldUpdateOperationsInput | $Enums.MeetingType
    status?: EnumMeetingStatusFieldUpdateOperationsInput | $Enums.MeetingStatus
    qrCodeOnline?: NullableStringFieldUpdateOperationsInput | string | null
    qrCodeOffline?: NullableStringFieldUpdateOperationsInput | string | null
    creatorId?: StringFieldUpdateOperationsInput | string
    instanceNumber?: NullableIntFieldUpdateOperationsInput | number | null
    isSeriesMaster?: BoolFieldUpdateOperationsInput | boolean
    hasCustomAttendees?: BoolFieldUpdateOperationsInput | boolean
    city?: NullableStringFieldUpdateOperationsInput | string | null
    enforceCheckinMode?: BoolFieldUpdateOperationsInput | boolean
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookMeetingBindingUpdateWithoutMeetingSeriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneWithoutOutlookBindingsNestedInput
    primaryMailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutPrimaryBindingsNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateWithoutMeetingSeriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateManyWithoutMeetingSeriesInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    primaryMailboxId?: StringFieldUpdateOperationsInput | string
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeePreferenceUpdateWithoutSeriesInput = {
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutMeetingSeriesAttendeePreferencesNestedInput
  }

  export type MeetingSeriesAttendeePreferenceUncheckedUpdateWithoutSeriesInput = {
    userId?: StringFieldUpdateOperationsInput | string
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeePreferenceUncheckedUpdateManyWithoutSeriesInput = {
    userId?: StringFieldUpdateOperationsInput | string
    defaultCheckinMode?: EnumAttendanceModeFieldUpdateOperationsInput | $Enums.AttendanceMode
    updatedByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingSeriesAttendeeExceptionUpdateWithoutSeriesInput = {
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    user?: UserUpdateOneRequiredWithoutMeetingSeriesAttendeeExceptionsNestedInput
  }

  export type MeetingSeriesAttendeeExceptionUncheckedUpdateWithoutSeriesInput = {
    userId?: StringFieldUpdateOperationsInput | string
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type MeetingSeriesAttendeeExceptionUncheckedUpdateManyWithoutSeriesInput = {
    userId?: StringFieldUpdateOperationsInput | string
    excludedBy?: StringFieldUpdateOperationsInput | string
    excludedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    reason?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type MeetingTemplateAttendeeCreateManyTemplateInput = {
    id?: string
    userId: string
    createdAt?: Date | string
  }

  export type MeetingTemplateAttendeeUpdateWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutMeetingTemplateAttendeesNestedInput
  }

  export type MeetingTemplateAttendeeUncheckedUpdateWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingTemplateAttendeeUncheckedUpdateManyWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertCreateManyRuleInput = {
    id?: string
    severity: string
    title: string
    description: string
    triggerData: string
    matchedLogs: string
    affectedEntities?: string | null
    status?: string
    acknowledgedBy?: string | null
    acknowledgedAt?: Date | string | null
    resolvedBy?: string | null
    resolvedAt?: Date | string | null
    resolution?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type MeetingAttendanceAuditAlertUpdateWithoutRuleInput = {
    id?: StringFieldUpdateOperationsInput | string
    severity?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    triggerData?: StringFieldUpdateOperationsInput | string
    matchedLogs?: StringFieldUpdateOperationsInput | string
    affectedEntities?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertUncheckedUpdateWithoutRuleInput = {
    id?: StringFieldUpdateOperationsInput | string
    severity?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    triggerData?: StringFieldUpdateOperationsInput | string
    matchedLogs?: StringFieldUpdateOperationsInput | string
    affectedEntities?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAttendanceAuditAlertUncheckedUpdateManyWithoutRuleInput = {
    id?: StringFieldUpdateOperationsInput | string
    severity?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    triggerData?: StringFieldUpdateOperationsInput | string
    matchedLogs?: StringFieldUpdateOperationsInput | string
    affectedEntities?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    acknowledgedBy?: NullableStringFieldUpdateOperationsInput | string | null
    acknowledgedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedBy?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSubscriptionCreateManyMailboxInput = {
    id?: string
    graphSubscriptionId: string
    resource: string
    status?: $Enums.OutlookSubscriptionStatus
    expirationAt: Date | string
    lastError?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookMeetingBindingCreateManyPrimaryMailboxInput = {
    id?: string
    meetingId?: string | null
    meetingSeriesId?: string | null
    graphEventId: string
    iCalUId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    manageStatus?: $Enums.OutlookManageStatus
    bootstrapStatus?: $Enums.OutlookBootstrapStatus | null
    bootstrapError?: string | null
    bootstrapUpdatedAt?: Date | string | null
    ownerUserId?: string | null
    ownerEmail?: string | null
    syncFrom?: Date | string
    cancellationSource?: $Enums.OutlookCancellationSource | null
    syncMode?: $Enums.OutlookBindingSyncMode
    localOverrideAt?: Date | string | null
    localOverrideByUserId?: string | null
    localOverrideByEmail?: string | null
    localOverrideReason?: string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookEventSnapshotCreateManyMailboxInput = {
    id?: string
    graphEventId: string
    iCalUId: string
    title: string
    startTime?: Date | string | null
    endTime?: Date | string | null
    timezone: string
    eventType: string
    isCancelled?: boolean
    seriesMasterId?: string | null
    organizerEmail?: string | null
    lastModifiedAt?: Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookSyncEventLogCreateManyMailboxInput = {
    id?: string
    bindingId: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookEventSourceVersionCreateManyMailboxInput = {
    id?: string
    bindingId: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookSubscriptionUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphSubscriptionId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    status?: EnumOutlookSubscriptionStatusFieldUpdateOperationsInput | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSubscriptionUncheckedUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphSubscriptionId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    status?: EnumOutlookSubscriptionStatusFieldUpdateOperationsInput | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSubscriptionUncheckedUpdateManyWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphSubscriptionId?: StringFieldUpdateOperationsInput | string
    resource?: StringFieldUpdateOperationsInput | string
    status?: EnumOutlookSubscriptionStatusFieldUpdateOperationsInput | $Enums.OutlookSubscriptionStatus
    expirationAt?: DateTimeFieldUpdateOperationsInput | Date | string
    lastError?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookMeetingBindingUpdateWithoutPrimaryMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    meeting?: MeetingUpdateOneWithoutOutlookBindingsNestedInput
    meetingSeries?: MeetingSeriesUpdateOneWithoutOutlookBindingsNestedInput
    syncEventLogs?: OutlookSyncEventLogUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateWithoutPrimaryMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    syncEventLogs?: OutlookSyncEventLogUncheckedUpdateManyWithoutBindingNestedInput
    occurrenceExclusions?: OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingNestedInput
    sourceVersions?: OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingNestedInput
    syncDiffs?: OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingNestedInput
  }

  export type OutlookMeetingBindingUncheckedUpdateManyWithoutPrimaryMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    meetingId?: NullableStringFieldUpdateOperationsInput | string | null
    meetingSeriesId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    manageStatus?: EnumOutlookManageStatusFieldUpdateOperationsInput | $Enums.OutlookManageStatus
    bootstrapStatus?: NullableEnumOutlookBootstrapStatusFieldUpdateOperationsInput | $Enums.OutlookBootstrapStatus | null
    bootstrapError?: NullableStringFieldUpdateOperationsInput | string | null
    bootstrapUpdatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    ownerUserId?: NullableStringFieldUpdateOperationsInput | string | null
    ownerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    syncFrom?: DateTimeFieldUpdateOperationsInput | Date | string
    cancellationSource?: NullableEnumOutlookCancellationSourceFieldUpdateOperationsInput | $Enums.OutlookCancellationSource | null
    syncMode?: EnumOutlookBindingSyncModeFieldUpdateOperationsInput | $Enums.OutlookBindingSyncMode
    localOverrideAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    localOverrideByUserId?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideReason?: NullableStringFieldUpdateOperationsInput | string | null
    localOverrideFields?: NullableJsonNullValueInput | InputJsonValue
    lastSyncedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSnapshotUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    seriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSnapshotUncheckedUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    seriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSnapshotUncheckedUpdateManyWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    timezone?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    seriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    lastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rawPayload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncEventLogUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSyncEventLogsNestedInput
  }

  export type OutlookSyncEventLogUncheckedUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncEventLogUncheckedUpdateManyWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSourceVersionUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSourceVersionsNestedInput
    diffsAsCurrent?: OutlookEventSyncDiffUpdateManyWithoutSourceVersionNestedInput
    diffsAsPrevious?: OutlookEventSyncDiffUpdateManyWithoutPreviousSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionUncheckedUpdateWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffsAsCurrent?: OutlookEventSyncDiffUncheckedUpdateManyWithoutSourceVersionNestedInput
    diffsAsPrevious?: OutlookEventSyncDiffUncheckedUpdateManyWithoutPreviousSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionUncheckedUpdateManyWithoutMailboxInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncEventLogCreateManyBindingInput = {
    id?: string
    mailboxId: string
    eventType: string
    resultStatus?: string
    message?: string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookSeriesOccurrenceExclusionCreateManyBindingInput = {
    id?: string
    occurrenceGraphEventId: string
    iCalUId?: string | null
    reason?: string | null
    createdByEmail?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type OutlookEventSourceVersionCreateManyBindingInput = {
    id?: string
    mailboxId: string
    graphEventId: string
    graphSeriesMasterId?: string | null
    graphEventType: string
    versionSource: string
    graphLastModifiedAt?: Date | string | null
    fetchedAt: Date | string
    etag?: string | null
    payloadHash: string
    attendeesCount: number
    attendeesRequiredCount: number
    attendeesOptionalCount: number
    attendeesResourceCount: number
    organizerEmail?: string | null
    startTime?: Date | string | null
    endTime?: Date | string | null
    isCancelled?: boolean
    rawPayload: JsonNullValueInput | InputJsonValue
    normalizedPayload: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type OutlookEventSyncDiffCreateManyBindingInput = {
    id?: string
    sourceVersionId: string
    previousSourceVersionId?: string | null
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
  }

  export type OutlookSyncEventLogUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutSyncEventLogsNestedInput
  }

  export type OutlookSyncEventLogUncheckedUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSyncEventLogUncheckedUpdateManyWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    eventType?: StringFieldUpdateOperationsInput | string
    resultStatus?: StringFieldUpdateOperationsInput | string
    message?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSeriesOccurrenceExclusionUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    occurrenceGraphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSeriesOccurrenceExclusionUncheckedUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    occurrenceGraphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookSeriesOccurrenceExclusionUncheckedUpdateManyWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    occurrenceGraphEventId?: StringFieldUpdateOperationsInput | string
    iCalUId?: NullableStringFieldUpdateOperationsInput | string | null
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    createdByEmail?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSourceVersionUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    mailbox?: OutlookSyncMailboxUpdateOneRequiredWithoutSourceVersionsNestedInput
    diffsAsCurrent?: OutlookEventSyncDiffUpdateManyWithoutSourceVersionNestedInput
    diffsAsPrevious?: OutlookEventSyncDiffUpdateManyWithoutPreviousSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionUncheckedUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffsAsCurrent?: OutlookEventSyncDiffUncheckedUpdateManyWithoutSourceVersionNestedInput
    diffsAsPrevious?: OutlookEventSyncDiffUncheckedUpdateManyWithoutPreviousSourceVersionNestedInput
  }

  export type OutlookEventSourceVersionUncheckedUpdateManyWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    mailboxId?: StringFieldUpdateOperationsInput | string
    graphEventId?: StringFieldUpdateOperationsInput | string
    graphSeriesMasterId?: NullableStringFieldUpdateOperationsInput | string | null
    graphEventType?: StringFieldUpdateOperationsInput | string
    versionSource?: StringFieldUpdateOperationsInput | string
    graphLastModifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fetchedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    etag?: NullableStringFieldUpdateOperationsInput | string | null
    payloadHash?: StringFieldUpdateOperationsInput | string
    attendeesCount?: IntFieldUpdateOperationsInput | number
    attendeesRequiredCount?: IntFieldUpdateOperationsInput | number
    attendeesOptionalCount?: IntFieldUpdateOperationsInput | number
    attendeesResourceCount?: IntFieldUpdateOperationsInput | number
    organizerEmail?: NullableStringFieldUpdateOperationsInput | string | null
    startTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    endTime?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    isCancelled?: BoolFieldUpdateOperationsInput | boolean
    rawPayload?: JsonNullValueInput | InputJsonValue
    normalizedPayload?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    sourceVersion?: OutlookEventSourceVersionUpdateOneRequiredWithoutDiffsAsCurrentNestedInput
    previousSourceVersion?: OutlookEventSourceVersionUpdateOneWithoutDiffsAsPreviousNestedInput
  }

  export type OutlookEventSyncDiffUncheckedUpdateWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceVersionId?: StringFieldUpdateOperationsInput | string
    previousSourceVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffUncheckedUpdateManyWithoutBindingInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceVersionId?: StringFieldUpdateOperationsInput | string
    previousSourceVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffCreateManySourceVersionInput = {
    id?: string
    bindingId: string
    previousSourceVersionId?: string | null
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
  }

  export type OutlookEventSyncDiffCreateManyPreviousSourceVersionInput = {
    id?: string
    bindingId: string
    sourceVersionId: string
    detectedAt: Date | string
    diffType: string
    changedFields: JsonNullValueInput | InputJsonValue
    summaryJson: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: number | null
    graphAttendeesCountAfter?: number | null
    internalMatchedCountBefore?: number | null
    internalMatchedCountAfter?: number | null
    meetingRequiredCountBefore?: number | null
    meetingRequiredCountAfter?: number | null
    createdAt?: Date | string
  }

  export type OutlookEventSyncDiffUpdateWithoutSourceVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSyncDiffsNestedInput
    previousSourceVersion?: OutlookEventSourceVersionUpdateOneWithoutDiffsAsPreviousNestedInput
  }

  export type OutlookEventSyncDiffUncheckedUpdateWithoutSourceVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    previousSourceVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffUncheckedUpdateManyWithoutSourceVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    previousSourceVersionId?: NullableStringFieldUpdateOperationsInput | string | null
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffUpdateWithoutPreviousSourceVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    binding?: OutlookMeetingBindingUpdateOneRequiredWithoutSyncDiffsNestedInput
    sourceVersion?: OutlookEventSourceVersionUpdateOneRequiredWithoutDiffsAsCurrentNestedInput
  }

  export type OutlookEventSyncDiffUncheckedUpdateWithoutPreviousSourceVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    sourceVersionId?: StringFieldUpdateOperationsInput | string
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type OutlookEventSyncDiffUncheckedUpdateManyWithoutPreviousSourceVersionInput = {
    id?: StringFieldUpdateOperationsInput | string
    bindingId?: StringFieldUpdateOperationsInput | string
    sourceVersionId?: StringFieldUpdateOperationsInput | string
    detectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    diffType?: StringFieldUpdateOperationsInput | string
    changedFields?: JsonNullValueInput | InputJsonValue
    summaryJson?: JsonNullValueInput | InputJsonValue
    attendeesAdded?: NullableJsonNullValueInput | InputJsonValue
    attendeesRemoved?: NullableJsonNullValueInput | InputJsonValue
    attendeesResponseChanged?: NullableJsonNullValueInput | InputJsonValue
    graphAttendeesCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    graphAttendeesCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    internalMatchedCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountBefore?: NullableIntFieldUpdateOperationsInput | number | null
    meetingRequiredCountAfter?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type MeetingAgendaItemCreateManySectionInput = {
    id?: string
    order?: number
    title: string
    description?: string | null
    columnDescriptions?: MeetingAgendaItemCreatecolumnDescriptionsInput | string[]
    code?: string | null
    timeMinutes?: number | null
    presenterUserId?: string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUpdateWithoutSectionInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    presenter?: UserUpdateOneWithoutAgendaItemsPresentedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaItemsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemsNestedInput
    uploadTasks?: MeetingAgendaItemUploadTaskUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateWithoutSectionInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    uploadTasks?: MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemNestedInput
    attachments?: MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemNestedInput
  }

  export type MeetingAgendaItemUncheckedUpdateManyWithoutSectionInput = {
    id?: StringFieldUpdateOperationsInput | string
    order?: IntFieldUpdateOperationsInput | number
    title?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    columnDescriptions?: MeetingAgendaItemUpdatecolumnDescriptionsInput | string[]
    code?: NullableStringFieldUpdateOperationsInput | string | null
    timeMinutes?: NullableIntFieldUpdateOperationsInput | number | null
    presenterUserId?: NullableStringFieldUpdateOperationsInput | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskCreateManyAgendaItemInput = {
    id?: string
    assigneeUserId: string
    assignedById: string
    status?: $Enums.UploadTaskStatus
    dueAt?: Date | string | null
    assignedAt?: Date | string
    completedAt?: Date | string | null
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemAttachmentCreateManyAgendaItemInput = {
    id?: string
    uploadedById: string
    filename: string
    mimeType: string
    size: bigint | number
    storagePath: string
    uploadedAt?: Date | string
    createdById: string
    organizationId?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUpdateWithoutAgendaItemInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignee?: UserUpdateOneRequiredWithoutUploadTasksAssignedNestedInput
    assignedBy?: UserUpdateOneRequiredWithoutUploadTasksAssignedByNestedInput
    createdBy?: UserUpdateOneRequiredWithoutUploadTasksCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemUploadTasksNestedInput
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateWithoutAgendaItemInput = {
    id?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemUploadTaskUncheckedUpdateManyWithoutAgendaItemInput = {
    id?: StringFieldUpdateOperationsInput | string
    assigneeUserId?: StringFieldUpdateOperationsInput | string
    assignedById?: StringFieldUpdateOperationsInput | string
    status?: EnumUploadTaskStatusFieldUpdateOperationsInput | $Enums.UploadTaskStatus
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    completedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUpdateWithoutAgendaItemInput = {
    id?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    uploadedBy?: UserUpdateOneRequiredWithoutAgendaAttachmentsUploadedNestedInput
    createdBy?: UserUpdateOneRequiredWithoutAgendaAttachmentsCreatedNestedInput
    organization?: OrganizationUpdateOneWithoutMeetingAgendaItemAttachmentsNestedInput
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateWithoutAgendaItemInput = {
    id?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type MeetingAgendaItemAttachmentUncheckedUpdateManyWithoutAgendaItemInput = {
    id?: StringFieldUpdateOperationsInput | string
    uploadedById?: StringFieldUpdateOperationsInput | string
    filename?: StringFieldUpdateOperationsInput | string
    mimeType?: StringFieldUpdateOperationsInput | string
    size?: BigIntFieldUpdateOperationsInput | bigint | number
    storagePath?: StringFieldUpdateOperationsInput | string
    uploadedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type NotificationLogCreateManyTemplateInput = {
    id?: string
    recipientId: string
    recipientEmail?: string | null
    channel: $Enums.NotificationChannel
    subject?: string | null
    content: string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: $Enums.NotificationSendStatus
    errorMessage?: string | null
    sentAt?: Date | string | null
    retryCount?: number
    maxRetries?: number
    nextRetryAt?: Date | string | null
    priority?: $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type NotificationLogUpdateWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    recipient?: UserUpdateOneRequiredWithoutNotificationLogsNestedInput
  }

  export type NotificationLogUncheckedUpdateWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientId?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type NotificationLogUncheckedUpdateManyWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    recipientId?: StringFieldUpdateOperationsInput | string
    recipientEmail?: NullableStringFieldUpdateOperationsInput | string | null
    channel?: EnumNotificationChannelFieldUpdateOperationsInput | $Enums.NotificationChannel
    subject?: NullableStringFieldUpdateOperationsInput | string | null
    content?: StringFieldUpdateOperationsInput | string
    variables?: NullableJsonNullValueInput | InputJsonValue
    status?: EnumNotificationSendStatusFieldUpdateOperationsInput | $Enums.NotificationSendStatus
    errorMessage?: NullableStringFieldUpdateOperationsInput | string | null
    sentAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retryCount?: IntFieldUpdateOperationsInput | number
    maxRetries?: IntFieldUpdateOperationsInput | number
    nextRetryAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    priority?: EnumNotificationPriorityFieldUpdateOperationsInput | $Enums.NotificationPriority
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type M365UserActivityChangeCreateManyUserInput = {
    id?: string
    organizationId: string
    createdAt?: Date | string
    executionId: string
    field: $Enums.M365UserActivityChangeField
    previousValue?: string | null
    currentValue?: string | null
  }

  export type M365UserActivityChangeUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executionId?: StringFieldUpdateOperationsInput | string
    field?: EnumM365UserActivityChangeFieldFieldUpdateOperationsInput | $Enums.M365UserActivityChangeField
    previousValue?: NullableStringFieldUpdateOperationsInput | string | null
    currentValue?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type M365UserActivityChangeUncheckedUpdateWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executionId?: StringFieldUpdateOperationsInput | string
    field?: EnumM365UserActivityChangeFieldFieldUpdateOperationsInput | $Enums.M365UserActivityChangeField
    previousValue?: NullableStringFieldUpdateOperationsInput | string | null
    currentValue?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type M365UserActivityChangeUncheckedUpdateManyWithoutUserInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    executionId?: StringFieldUpdateOperationsInput | string
    field?: EnumM365UserActivityChangeFieldFieldUpdateOperationsInput | $Enums.M365UserActivityChangeField
    previousValue?: NullableStringFieldUpdateOperationsInput | string | null
    currentValue?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type PerformanceCycleCreateManyGradeConfigInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    parentCycleId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
  }

  export type PerformanceCycleUpdateWithoutGradeConfigInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    parentCycle?: PerformanceCycleUpdateOneWithoutChildCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutGradeConfigInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateManyWithoutGradeConfigInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    parentCycleId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type PerformanceCycleCreateManyParentCycleInput = {
    id?: string
    name: string
    type: $Enums.CycleType
    status?: $Enums.CycleStatus
    startDate: Date | string
    endDate: Date | string
    gradeConfigId?: string | null
    resultsPublishedAt?: Date | string | null
    resultsPublishedBy?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
  }

  export type KpiAssignmentCreateManyCycleInput = {
    id?: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    parentId?: string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type Evaluation360CreateManyCycleInput = {
    id?: string
    targetId: string
    status?: $Enums.Evaluation360Status
    templateId?: string | null
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type PerformanceResultCreateManyCycleInput = {
    id?: string
    employeeId: string
    kpiScore?: Decimal | DecimalJsLike | number | string | null
    kpiWeight?: Decimal | DecimalJsLike | number | string | null
    e360Score?: Decimal | DecimalJsLike | number | string | null
    e360Weight?: Decimal | DecimalJsLike | number | string | null
    totalScore?: Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: string | null
    proposedGradeName?: string | null
    gradeCode?: string | null
    gradeName?: string | null
    isPublished?: boolean
    publishedAt?: Date | string | null
    viewedByEmployee?: boolean
    viewedAt?: Date | string | null
    confirmStatus?: $Enums.ResultConfirmStatus
    appealReason?: string | null
    appealResponse?: string | null
    appealResolvedAt?: Date | string | null
    selfOverallComment?: string | null
    managerOverallComment?: string | null
    remarks?: string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    organizationId: string
  }

  export type StrategicObjectiveCreateManyCycleInput = {
    id?: string
    seq?: number
    name: string
    description?: string | null
    departmentId?: string | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type Evaluation360TemplateCreateManyCycleInput = {
    id?: string
    name: string
    description?: string | null
    dimensions: JsonNullValueInput | InputJsonValue
    relationshipTypes: JsonNullValueInput | InputJsonValue
    isDefault?: boolean
    isActive?: boolean
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: string | null
  }

  export type PerformanceCycleUpdateWithoutParentCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceCyclesNestedInput
    gradeConfig?: GradeConfigUpdateOneWithoutCyclesNestedInput
    childCycles?: PerformanceCycleUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateWithoutParentCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    childCycles?: PerformanceCycleUncheckedUpdateManyWithoutParentCycleNestedInput
    kpiAssignments?: KpiAssignmentUncheckedUpdateManyWithoutCycleNestedInput
    evaluations?: Evaluation360UncheckedUpdateManyWithoutCycleNestedInput
    results?: PerformanceResultUncheckedUpdateManyWithoutCycleNestedInput
    strategicObjectives?: StrategicObjectiveUncheckedUpdateManyWithoutCycleNestedInput
    e360Templates?: Evaluation360TemplateUncheckedUpdateManyWithoutCycleNestedInput
  }

  export type PerformanceCycleUncheckedUpdateManyWithoutParentCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    type?: EnumCycleTypeFieldUpdateOperationsInput | $Enums.CycleType
    status?: EnumCycleStatusFieldUpdateOperationsInput | $Enums.CycleStatus
    startDate?: DateTimeFieldUpdateOperationsInput | Date | string
    endDate?: DateTimeFieldUpdateOperationsInput | Date | string
    gradeConfigId?: NullableStringFieldUpdateOperationsInput | string | null
    resultsPublishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resultsPublishedBy?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type KpiAssignmentUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    parent?: KpiAssignmentUpdateOneWithoutChildrenNestedInput
    children?: KpiAssignmentUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: KpiAssignmentUncheckedUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUncheckedUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateManyWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type Evaluation360UpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    template?: Evaluation360TemplateUpdateOneWithoutEvaluationsNestedInput
    tasks?: EvaluationTaskUpdateManyWithoutEvaluationNestedInput
  }

  export type Evaluation360UncheckedUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tasks?: EvaluationTaskUncheckedUpdateManyWithoutEvaluationNestedInput
  }

  export type Evaluation360UncheckedUpdateManyWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    templateId?: NullableStringFieldUpdateOperationsInput | string | null
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type PerformanceResultUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organization?: OrganizationUpdateOneRequiredWithoutPerformanceResultsNestedInput
    adjustmentLogs?: GradeAdjustmentLogUpdateManyWithoutResultNestedInput
  }

  export type PerformanceResultUncheckedUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    adjustmentLogs?: GradeAdjustmentLogUncheckedUpdateManyWithoutResultNestedInput
  }

  export type PerformanceResultUncheckedUpdateManyWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    kpiScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    kpiWeight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Score?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    e360Weight?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    totalScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    proposedGradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    proposedGradeName?: NullableStringFieldUpdateOperationsInput | string | null
    gradeCode?: NullableStringFieldUpdateOperationsInput | string | null
    gradeName?: NullableStringFieldUpdateOperationsInput | string | null
    isPublished?: BoolFieldUpdateOperationsInput | boolean
    publishedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    viewedByEmployee?: BoolFieldUpdateOperationsInput | boolean
    viewedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    confirmStatus?: EnumResultConfirmStatusFieldUpdateOperationsInput | $Enums.ResultConfirmStatus
    appealReason?: NullableStringFieldUpdateOperationsInput | string | null
    appealResponse?: NullableStringFieldUpdateOperationsInput | string | null
    appealResolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    selfOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    managerOverallComment?: NullableStringFieldUpdateOperationsInput | string | null
    remarks?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
  }

  export type StrategicObjectiveUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignments?: StrategicObjectiveAssignmentUpdateManyWithoutObjectiveNestedInput
  }

  export type StrategicObjectiveUncheckedUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignments?: StrategicObjectiveAssignmentUncheckedUpdateManyWithoutObjectiveNestedInput
  }

  export type StrategicObjectiveUncheckedUpdateManyWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    seq?: IntFieldUpdateOperationsInput | number
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    departmentId?: NullableStringFieldUpdateOperationsInput | string | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type Evaluation360TemplateUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organization?: OrganizationUpdateOneWithoutEvaluation360TemplatesNestedInput
    evaluations?: Evaluation360UpdateManyWithoutTemplateNestedInput
  }

  export type Evaluation360TemplateUncheckedUpdateWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
    evaluations?: Evaluation360UncheckedUpdateManyWithoutTemplateNestedInput
  }

  export type Evaluation360TemplateUncheckedUpdateManyWithoutCycleInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    dimensions?: JsonNullValueInput | InputJsonValue
    relationshipTypes?: JsonNullValueInput | InputJsonValue
    isDefault?: BoolFieldUpdateOperationsInput | boolean
    isActive?: BoolFieldUpdateOperationsInput | boolean
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    scope?: NullableJsonNullValueInput | InputJsonValue
    organizationId?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type GradeAdjustmentLogCreateManyResultInput = {
    id?: string
    previousGradeCode: string
    newGradeCode: string
    reason: string
    adjustedBy: string
    adjustedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type GradeAdjustmentLogUpdateWithoutResultInput = {
    id?: StringFieldUpdateOperationsInput | string
    previousGradeCode?: StringFieldUpdateOperationsInput | string
    newGradeCode?: StringFieldUpdateOperationsInput | string
    reason?: StringFieldUpdateOperationsInput | string
    adjustedBy?: StringFieldUpdateOperationsInput | string
    adjustedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GradeAdjustmentLogUncheckedUpdateWithoutResultInput = {
    id?: StringFieldUpdateOperationsInput | string
    previousGradeCode?: StringFieldUpdateOperationsInput | string
    newGradeCode?: StringFieldUpdateOperationsInput | string
    reason?: StringFieldUpdateOperationsInput | string
    adjustedBy?: StringFieldUpdateOperationsInput | string
    adjustedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type GradeAdjustmentLogUncheckedUpdateManyWithoutResultInput = {
    id?: StringFieldUpdateOperationsInput | string
    previousGradeCode?: StringFieldUpdateOperationsInput | string
    newGradeCode?: StringFieldUpdateOperationsInput | string
    reason?: StringFieldUpdateOperationsInput | string
    adjustedBy?: StringFieldUpdateOperationsInput | string
    adjustedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiAssignmentCreateManyParentInput = {
    id?: string
    cycleId: string
    employeeId: string
    name: string
    description?: string | null
    weight: Decimal | DecimalJsLike | number | string
    unit?: string | null
    baseTarget?: string | null
    stretchTarget?: string | null
    targetValue?: Decimal | DecimalJsLike | number | string | null
    seq?: number | null
    status?: $Enums.KpiAssignmentStatus
    maturityScore?: Decimal | DecimalJsLike | number | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KpiDependencyCreateManySourceAssignmentInput = {
    id?: string
    targetAssignmentId?: string | null
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KpiDependencyCreateManyTargetAssignmentInput = {
    id?: string
    sourceAssignmentId: string
    targetUserId: string
    description?: string | null
    status?: $Enums.KpiDependencyStatus
    rejectionReason?: string | null
    confirmedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type KpiAssignmentUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutKpiAssignmentsNestedInput
    children?: KpiAssignmentUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    children?: KpiAssignmentUncheckedUpdateManyWithoutParentNestedInput
    assessment?: KpiAssessmentUncheckedUpdateOneWithoutAssignmentNestedInput
    outgoingDependencies?: KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentNestedInput
    incomingDependencies?: KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentNestedInput
  }

  export type KpiAssignmentUncheckedUpdateManyWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    employeeId?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    weight?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    unit?: NullableStringFieldUpdateOperationsInput | string | null
    baseTarget?: NullableStringFieldUpdateOperationsInput | string | null
    stretchTarget?: NullableStringFieldUpdateOperationsInput | string | null
    targetValue?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    seq?: NullableIntFieldUpdateOperationsInput | number | null
    status?: EnumKpiAssignmentStatusFieldUpdateOperationsInput | $Enums.KpiAssignmentStatus
    maturityScore?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiDependencyUpdateWithoutSourceAssignmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    targetAssignment?: KpiAssignmentUpdateOneWithoutIncomingDependenciesNestedInput
  }

  export type KpiDependencyUncheckedUpdateWithoutSourceAssignmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetAssignmentId?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiDependencyUncheckedUpdateManyWithoutSourceAssignmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetAssignmentId?: NullableStringFieldUpdateOperationsInput | string | null
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiDependencyUpdateWithoutTargetAssignmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    sourceAssignment?: KpiAssignmentUpdateOneRequiredWithoutOutgoingDependenciesNestedInput
  }

  export type KpiDependencyUncheckedUpdateWithoutTargetAssignmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceAssignmentId?: StringFieldUpdateOperationsInput | string
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type KpiDependencyUncheckedUpdateManyWithoutTargetAssignmentInput = {
    id?: StringFieldUpdateOperationsInput | string
    sourceAssignmentId?: StringFieldUpdateOperationsInput | string
    targetUserId?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumKpiDependencyStatusFieldUpdateOperationsInput | $Enums.KpiDependencyStatus
    rejectionReason?: NullableStringFieldUpdateOperationsInput | string | null
    confirmedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationTaskCreateManyEvaluationInput = {
    id?: string
    evaluatorId: string
    relationType: $Enums.RelationType
    status?: $Enums.EvaluationTaskStatus
    isAnonymous?: boolean
    submittedAt?: Date | string | null
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type EvaluationTaskUpdateWithoutEvaluationInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    responses?: EvaluationResponseUpdateManyWithoutTaskNestedInput
  }

  export type EvaluationTaskUncheckedUpdateWithoutEvaluationInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    responses?: EvaluationResponseUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type EvaluationTaskUncheckedUpdateManyWithoutEvaluationInput = {
    id?: StringFieldUpdateOperationsInput | string
    evaluatorId?: StringFieldUpdateOperationsInput | string
    relationType?: EnumRelationTypeFieldUpdateOperationsInput | $Enums.RelationType
    status?: EnumEvaluationTaskStatusFieldUpdateOperationsInput | $Enums.EvaluationTaskStatus
    isAnonymous?: BoolFieldUpdateOperationsInput | boolean
    submittedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationResponseCreateManyTaskInput = {
    id?: string
    dimension: string
    score: Decimal | DecimalJsLike | number | string
    comment?: string | null
    deletedAt?: Date | string | null
  }

  export type EvaluationResponseUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    dimension?: StringFieldUpdateOperationsInput | string
    score?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationResponseUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    dimension?: StringFieldUpdateOperationsInput | string
    score?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type EvaluationResponseUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    dimension?: StringFieldUpdateOperationsInput | string
    score?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    comment?: NullableStringFieldUpdateOperationsInput | string | null
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StrategicObjectiveAssignmentCreateManyObjectiveInput = {
    id?: string
    assigneeId: string
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type StrategicObjectiveAssignmentUpdateWithoutObjectiveInput = {
    id?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assignee?: UserUpdateOneRequiredWithoutStrategicObjectiveAssignmentsNestedInput
  }

  export type StrategicObjectiveAssignmentUncheckedUpdateWithoutObjectiveInput = {
    id?: StringFieldUpdateOperationsInput | string
    assigneeId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type StrategicObjectiveAssignmentUncheckedUpdateManyWithoutObjectiveInput = {
    id?: StringFieldUpdateOperationsInput | string
    assigneeId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type Evaluation360CreateManyTemplateInput = {
    id?: string
    cycleId: string
    targetId: string
    status?: $Enums.Evaluation360Status
    deadline: Date | string
    minEvaluators?: number | null
    createdBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type Evaluation360UpdateWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    cycle?: PerformanceCycleUpdateOneRequiredWithoutEvaluationsNestedInput
    tasks?: EvaluationTaskUpdateManyWithoutEvaluationNestedInput
  }

  export type Evaluation360UncheckedUpdateWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    tasks?: EvaluationTaskUncheckedUpdateManyWithoutEvaluationNestedInput
  }

  export type Evaluation360UncheckedUpdateManyWithoutTemplateInput = {
    id?: StringFieldUpdateOperationsInput | string
    cycleId?: StringFieldUpdateOperationsInput | string
    targetId?: StringFieldUpdateOperationsInput | string
    status?: EnumEvaluation360StatusFieldUpdateOperationsInput | $Enums.Evaluation360Status
    deadline?: DateTimeFieldUpdateOperationsInput | Date | string
    minEvaluators?: NullableIntFieldUpdateOperationsInput | number | null
    createdBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SiteAttendanceEventCreateManyCheckpointInput = {
    id?: string
    userId: string
    eventType: $Enums.SiteEventType
    timestamp?: Date | string
    localDate: string
    authMethod: $Enums.SiteAuthMethod
    latitude?: number | null
    longitude?: number | null
    accuracy?: number | null
    geoStatus: $Enums.SiteGeoStatus
    distanceToCheckpoint?: number | null
    deviceId?: string | null
    userAgent?: string | null
    ipAddress?: string | null
    createdAt?: Date | string
  }

  export type SiteDailySummaryCreateManyCheckpointInput = {
    id?: string
    userId: string
    localDate: string
    firstCheckInAt?: Date | string | null
    lastCheckOutAt?: Date | string | null
    checkInCount?: number
    checkOutCount?: number
    hasGeoAnomaly?: boolean
    lastEventId?: string | null
    updatedAt?: Date | string
  }

  export type SharedCheckinPartnerCreateManyCheckpointInput = {
    id?: string
    companyId: string
    companyLabel: string
    displayLabel?: string | null
    targetUrl: string
    isActive?: boolean
    sortOrder?: number
    createdBy: string
    updatedBy: string
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type SiteAttendanceEventUpdateWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutSiteAttendanceEventsNestedInput
  }

  export type SiteAttendanceEventUncheckedUpdateWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteAttendanceEventUncheckedUpdateManyWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    eventType?: EnumSiteEventTypeFieldUpdateOperationsInput | $Enums.SiteEventType
    timestamp?: DateTimeFieldUpdateOperationsInput | Date | string
    localDate?: StringFieldUpdateOperationsInput | string
    authMethod?: EnumSiteAuthMethodFieldUpdateOperationsInput | $Enums.SiteAuthMethod
    latitude?: NullableFloatFieldUpdateOperationsInput | number | null
    longitude?: NullableFloatFieldUpdateOperationsInput | number | null
    accuracy?: NullableFloatFieldUpdateOperationsInput | number | null
    geoStatus?: EnumSiteGeoStatusFieldUpdateOperationsInput | $Enums.SiteGeoStatus
    distanceToCheckpoint?: NullableFloatFieldUpdateOperationsInput | number | null
    deviceId?: NullableStringFieldUpdateOperationsInput | string | null
    userAgent?: NullableStringFieldUpdateOperationsInput | string | null
    ipAddress?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteDailySummaryUpdateWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    user?: UserUpdateOneRequiredWithoutSiteDailySummariesNestedInput
  }

  export type SiteDailySummaryUncheckedUpdateWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SiteDailySummaryUncheckedUpdateManyWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    userId?: StringFieldUpdateOperationsInput | string
    localDate?: StringFieldUpdateOperationsInput | string
    firstCheckInAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    lastCheckOutAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    checkInCount?: IntFieldUpdateOperationsInput | number
    checkOutCount?: IntFieldUpdateOperationsInput | number
    hasGeoAnomaly?: BoolFieldUpdateOperationsInput | boolean
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerUpdateWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: UserUpdateOneRequiredWithoutSharedCheckinPartnersCreatedNestedInput
    updater?: UserUpdateOneRequiredWithoutSharedCheckinPartnersUpdatedNestedInput
  }

  export type SharedCheckinPartnerUncheckedUpdateWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SharedCheckinPartnerUncheckedUpdateManyWithoutCheckpointInput = {
    id?: StringFieldUpdateOperationsInput | string
    companyId?: StringFieldUpdateOperationsInput | string
    companyLabel?: StringFieldUpdateOperationsInput | string
    displayLabel?: NullableStringFieldUpdateOperationsInput | string | null
    targetUrl?: StringFieldUpdateOperationsInput | string
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdBy?: StringFieldUpdateOperationsInput | string
    updatedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketCreateManyParentTicketInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
  }

  export type TicketCommentCreateManyTicketInput = {
    id?: string
    content: string
    type?: $Enums.CommentType
    isInternal?: boolean
    visibilityScope?: $Enums.VisibilityScope
    authorId: string
    mentionedUserIds?: TicketCommentCreatementionedUserIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type TicketActivityCreateManyTicketInput = {
    id?: string
    type: $Enums.ActivityType
    content: JsonNullValueInput | InputJsonValue
    operatorId?: string | null
    createdAt?: Date | string
  }

  export type TicketAttachmentCreateManyTicketInput = {
    id?: string
    commentId?: string | null
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
  }

  export type TicketUpdateWithoutParentTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    category?: TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput
    assigneeGroup?: AssignmentGroupUpdateOneWithoutTicketsNestedInput
    sla?: TicketSLAUpdateOneWithoutTicketsNestedInput
    childTickets?: TicketUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateWithoutParentTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childTickets?: TicketUncheckedUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUncheckedUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUncheckedUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateManyWithoutParentTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketCommentUpdateWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: TicketAttachmentUpdateManyWithoutCommentNestedInput
  }

  export type TicketCommentUncheckedUpdateWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutCommentNestedInput
  }

  export type TicketCommentUncheckedUpdateManyWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    content?: StringFieldUpdateOperationsInput | string
    type?: EnumCommentTypeFieldUpdateOperationsInput | $Enums.CommentType
    isInternal?: BoolFieldUpdateOperationsInput | boolean
    visibilityScope?: EnumVisibilityScopeFieldUpdateOperationsInput | $Enums.VisibilityScope
    authorId?: StringFieldUpdateOperationsInput | string
    mentionedUserIds?: TicketCommentUpdatementionedUserIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketActivityUpdateWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumActivityTypeFieldUpdateOperationsInput | $Enums.ActivityType
    content?: JsonNullValueInput | InputJsonValue
    operatorId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketActivityUncheckedUpdateWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumActivityTypeFieldUpdateOperationsInput | $Enums.ActivityType
    content?: JsonNullValueInput | InputJsonValue
    operatorId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketActivityUncheckedUpdateManyWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    type?: EnumActivityTypeFieldUpdateOperationsInput | $Enums.ActivityType
    content?: JsonNullValueInput | InputJsonValue
    operatorId?: NullableStringFieldUpdateOperationsInput | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketAttachmentUpdateWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    comment?: TicketCommentUpdateOneWithoutAttachmentsNestedInput
  }

  export type TicketAttachmentUncheckedUpdateWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    commentId?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketAttachmentUncheckedUpdateManyWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    commentId?: NullableStringFieldUpdateOperationsInput | string | null
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketCategoryCreateManyParentInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    defaultPriority?: $Enums.TicketPriority
    defaultAssigneeGroupId?: string | null
    slaId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type TicketCreateManyCategoryInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
  }

  export type TicketCategoryUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    children?: TicketCategoryUpdateManyWithoutParentNestedInput
    defaultAssigneeGroup?: AssignmentGroupUpdateOneWithoutCategoriesNestedInput
    sla?: TicketSLAUpdateOneWithoutCategoriesNestedInput
    tickets?: TicketUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUncheckedUpdateWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    defaultAssigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    children?: TicketCategoryUncheckedUpdateManyWithoutParentNestedInput
    tickets?: TicketUncheckedUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUncheckedUpdateManyWithoutParentInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    defaultAssigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketUpdateWithoutCategoryInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    assigneeGroup?: AssignmentGroupUpdateOneWithoutTicketsNestedInput
    sla?: TicketSLAUpdateOneWithoutTicketsNestedInput
    parentTicket?: TicketUpdateOneWithoutChildTicketsNestedInput
    childTickets?: TicketUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateWithoutCategoryInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childTickets?: TicketUncheckedUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUncheckedUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUncheckedUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateManyWithoutCategoryInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketAttachmentCreateManyCommentInput = {
    id?: string
    ticketId: string
    fileName: string
    fileUrl: string
    fileSize: number
    mimeType: string
    uploadedBy: string
    createdAt?: Date | string
  }

  export type TicketAttachmentUpdateWithoutCommentInput = {
    id?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    ticket?: TicketUpdateOneRequiredWithoutAttachmentsNestedInput
  }

  export type TicketAttachmentUncheckedUpdateWithoutCommentInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketAttachmentUncheckedUpdateManyWithoutCommentInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketId?: StringFieldUpdateOperationsInput | string
    fileName?: StringFieldUpdateOperationsInput | string
    fileUrl?: StringFieldUpdateOperationsInput | string
    fileSize?: IntFieldUpdateOperationsInput | number
    mimeType?: StringFieldUpdateOperationsInput | string
    uploadedBy?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketCategoryCreateManySlaInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    parentId?: string | null
    defaultPriority?: $Enums.TicketPriority
    defaultAssigneeGroupId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type TicketCreateManySlaInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    assigneeGroupId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
  }

  export type TicketCategoryUpdateWithoutSlaInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    parent?: TicketCategoryUpdateOneWithoutChildrenNestedInput
    children?: TicketCategoryUpdateManyWithoutParentNestedInput
    defaultAssigneeGroup?: AssignmentGroupUpdateOneWithoutCategoriesNestedInput
    tickets?: TicketUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUncheckedUpdateWithoutSlaInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    defaultAssigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    children?: TicketCategoryUncheckedUpdateManyWithoutParentNestedInput
    tickets?: TicketUncheckedUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUncheckedUpdateManyWithoutSlaInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    defaultAssigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketUpdateWithoutSlaInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    category?: TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput
    assigneeGroup?: AssignmentGroupUpdateOneWithoutTicketsNestedInput
    parentTicket?: TicketUpdateOneWithoutChildTicketsNestedInput
    childTickets?: TicketUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateWithoutSlaInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childTickets?: TicketUncheckedUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUncheckedUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUncheckedUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateManyWithoutSlaInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    assigneeGroupId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type TicketCategoryCreateManyDefaultAssigneeGroupInput = {
    id?: string
    name: string
    code: string
    description?: string | null
    icon?: string | null
    parentId?: string | null
    defaultPriority?: $Enums.TicketPriority
    slaId?: string | null
    formTemplateId?: string | null
    allowedDepartmentIds?: TicketCategoryCreateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryCreateallowedRoleIdsInput | string[]
    isActive?: boolean
    sortOrder?: number
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type TicketCreateManyAssigneeGroupInput = {
    id?: string
    ticketNo: string
    title: string
    description: string
    categoryId: string
    priority?: $Enums.TicketPriority
    tags?: TicketCreatetagsInput | string[]
    status?: $Enums.TicketStatus
    creatorId: string
    assigneeId?: string | null
    watcherIds?: TicketCreatewatcherIdsInput | string[]
    createdAt?: Date | string
    updatedAt?: Date | string
    firstResponseAt?: Date | string | null
    resolvedAt?: Date | string | null
    closedAt?: Date | string | null
    dueAt?: Date | string | null
    slaId?: string | null
    slaBreached?: boolean
    slaPausedAt?: Date | string | null
    slaPausedDuration?: number
    satisfactionRating?: number | null
    satisfactionComment?: string | null
    satisfactionRatedAt?: Date | string | null
    source?: $Enums.TicketSource
    externalId?: string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: string | null
    rootCause?: string | null
    relatedTicketIds?: TicketCreaterelatedTicketIdsInput | string[]
    parentTicketId?: string | null
    approvalInstanceId?: string | null
    region?: string
    tenantId?: string | null
    language?: string | null
    complianceFlag?: boolean
    deletedAt?: Date | string | null
  }

  export type TicketCategoryUpdateWithoutDefaultAssigneeGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    parent?: TicketCategoryUpdateOneWithoutChildrenNestedInput
    children?: TicketCategoryUpdateManyWithoutParentNestedInput
    sla?: TicketSLAUpdateOneWithoutCategoriesNestedInput
    tickets?: TicketUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUncheckedUpdateWithoutDefaultAssigneeGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    children?: TicketCategoryUncheckedUpdateManyWithoutParentNestedInput
    tickets?: TicketUncheckedUpdateManyWithoutCategoryNestedInput
  }

  export type TicketCategoryUncheckedUpdateManyWithoutDefaultAssigneeGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    description?: NullableStringFieldUpdateOperationsInput | string | null
    icon?: NullableStringFieldUpdateOperationsInput | string | null
    parentId?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPriority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    formTemplateId?: NullableStringFieldUpdateOperationsInput | string | null
    allowedDepartmentIds?: TicketCategoryUpdateallowedDepartmentIdsInput | string[]
    allowedRoleIds?: TicketCategoryUpdateallowedRoleIdsInput | string[]
    isActive?: BoolFieldUpdateOperationsInput | boolean
    sortOrder?: IntFieldUpdateOperationsInput | number
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TicketUpdateWithoutAssigneeGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    category?: TicketCategoryUpdateOneRequiredWithoutTicketsNestedInput
    sla?: TicketSLAUpdateOneWithoutTicketsNestedInput
    parentTicket?: TicketUpdateOneWithoutChildTicketsNestedInput
    childTickets?: TicketUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateWithoutAssigneeGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    childTickets?: TicketUncheckedUpdateManyWithoutParentTicketNestedInput
    comments?: TicketCommentUncheckedUpdateManyWithoutTicketNestedInput
    activities?: TicketActivityUncheckedUpdateManyWithoutTicketNestedInput
    attachments?: TicketAttachmentUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type TicketUncheckedUpdateManyWithoutAssigneeGroupInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    categoryId?: StringFieldUpdateOperationsInput | string
    priority?: EnumTicketPriorityFieldUpdateOperationsInput | $Enums.TicketPriority
    tags?: TicketUpdatetagsInput | string[]
    status?: EnumTicketStatusFieldUpdateOperationsInput | $Enums.TicketStatus
    creatorId?: StringFieldUpdateOperationsInput | string
    assigneeId?: NullableStringFieldUpdateOperationsInput | string | null
    watcherIds?: TicketUpdatewatcherIdsInput | string[]
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    firstResponseAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    dueAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaId?: NullableStringFieldUpdateOperationsInput | string | null
    slaBreached?: BoolFieldUpdateOperationsInput | boolean
    slaPausedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    slaPausedDuration?: IntFieldUpdateOperationsInput | number
    satisfactionRating?: NullableIntFieldUpdateOperationsInput | number | null
    satisfactionComment?: NullableStringFieldUpdateOperationsInput | string | null
    satisfactionRatedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    source?: EnumTicketSourceFieldUpdateOperationsInput | $Enums.TicketSource
    externalId?: NullableStringFieldUpdateOperationsInput | string | null
    channelMetadata?: NullableJsonNullValueInput | InputJsonValue
    resolution?: NullableStringFieldUpdateOperationsInput | string | null
    rootCause?: NullableStringFieldUpdateOperationsInput | string | null
    relatedTicketIds?: TicketUpdaterelatedTicketIdsInput | string[]
    parentTicketId?: NullableStringFieldUpdateOperationsInput | string | null
    approvalInstanceId?: NullableStringFieldUpdateOperationsInput | string | null
    region?: StringFieldUpdateOperationsInput | string
    tenantId?: NullableStringFieldUpdateOperationsInput | string | null
    language?: NullableStringFieldUpdateOperationsInput | string | null
    complianceFlag?: BoolFieldUpdateOperationsInput | boolean
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotSkuCreateManyModelInput = {
    id?: string
    code: string
    name: string
    variant?: string | null
    defaultPrice?: Decimal | DecimalJsLike | number | string | null
    defaultCost?: Decimal | DecimalJsLike | number | string | null
    currencyCode?: string | null
    description?: string | null
    enabled?: boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotUnitCreateManyModelInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotSkuUpdateWithoutModelInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnits?: RobotUnitUpdateManyWithoutSkuNestedInput
  }

  export type RobotSkuUncheckedUpdateWithoutModelInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnits?: RobotUnitUncheckedUpdateManyWithoutSkuNestedInput
  }

  export type RobotSkuUncheckedUpdateManyWithoutModelInput = {
    id?: StringFieldUpdateOperationsInput | string
    code?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    variant?: NullableStringFieldUpdateOperationsInput | string | null
    defaultPrice?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    defaultCost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    currencyCode?: NullableStringFieldUpdateOperationsInput | string | null
    description?: NullableStringFieldUpdateOperationsInput | string | null
    enabled?: BoolFieldUpdateOperationsInput | boolean
    metadata?: JsonNullValueInput | InputJsonValue
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitUpdateWithoutModelInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutModelInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateManyWithoutModelInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitCreateManySkuInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotUnitUpdateWithoutSkuInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutSkuInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateManyWithoutSkuInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotLifecycleEventCreateManyRobotUnitInput = {
    id?: string
    eventType: $Enums.RobotLifecycleEventType
    fromStage?: $Enums.RobotLifecycleStage | null
    toStage?: $Enums.RobotLifecycleStage | null
    fromLocationId?: string | null
    toLocationId?: string | null
    actorUserId?: string | null
    partnerId?: string | null
    customerId?: string | null
    relatedType?: $Enums.RobotEventRelatedType | null
    relatedId?: string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: string | null
    occurredAt: Date | string
    organizationId: string
    createdAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type QualityLabelRecordCreateManyRobotUnitInput = {
    id?: string
    labelTypeCode: string
    status?: $Enums.QualityLabelStatus
    appliedAt?: Date | string | null
    verifiedAt?: Date | string | null
    appliedById?: string | null
    verifiedById?: string | null
    photoAttachmentId?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type InspectionRecordCreateManyRobotUnitInput = {
    id?: string
    inspectionNo: number
    inspectedAt: Date | string
    inspectorId?: string | null
    issue?: string | null
    issueTagCode?: string | null
    resolvedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type LogisticsLegCreateManyRobotUnitInput = {
    id?: string
    legNo: number
    fromLocationId?: string | null
    toLocationId?: string | null
    departedAt?: Date | string | null
    arrivedAt?: Date | string | null
    logisticsStatus: $Enums.LogisticsStatus
    importDeclarationTypeCode?: string | null
    tariffTypeCode?: string | null
    shippingReceiptAttachmentId?: string | null
    additionalNotes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
  }

  export type RentalAgreementCreateManyRobotUnitInput = {
    id?: string
    customerId: string
    startAt: Date | string
    endAt: Date | string
    periodMonths: number
    monthlyRate: Decimal | DecimalJsLike | number | string
    currencyCode: string
    status?: $Enums.RentalAgreementStatus
    contractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type ServiceTicketCreateManyRobotUnitInput = {
    id?: string
    ticketNo: string
    customerId?: string | null
    issueTypeCode: string
    severity?: $Enums.TicketSeverity
    status?: $Enums.ServiceTicketStatus
    serviceRecord?: string | null
    customerFeedback?: string | null
    openedAt: Date | string
    openedById: string
    closedAt?: Date | string | null
    resolvedById?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type DeliveryFulfillmentCreateManyRobotUnitInput = {
    id?: string
    deliveryRequestId: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type SalesOrderLineCreateManyRobotUnitInput = {
    id?: string
    salesOrderId: string
    lineNo: number
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type PaymentRecordCreateManyRobotUnitInput = {
    id?: string
    paymentNo: string
    relatedType: $Enums.PaymentRelatedType
    relatedId: string
    direction: $Enums.PaymentDirection
    sapClearingDocNo?: string | null
    paymentMethod?: $Enums.PaymentMethod | null
    paymentStatus?: $Enums.PaymentStatus | null
    preDelContractStatus?: $Enums.PreDelContractStatus | null
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    depositTransferFormAttachmentId?: string | null
    depositTransferContractAttachmentId?: string | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotLifecycleEventUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshotsAsLastEvent?: RobotUnitSnapshotUpdateManyWithoutLastEventNestedInput
  }

  export type RobotLifecycleEventUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshotsAsLastEvent?: RobotUnitSnapshotUncheckedUpdateManyWithoutLastEventNestedInput
  }

  export type RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    eventType?: EnumRobotLifecycleEventTypeFieldUpdateOperationsInput | $Enums.RobotLifecycleEventType
    fromStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    toStage?: NullableEnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage | null
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    actorUserId?: NullableStringFieldUpdateOperationsInput | string | null
    partnerId?: NullableStringFieldUpdateOperationsInput | string | null
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    relatedType?: NullableEnumRobotEventRelatedTypeFieldUpdateOperationsInput | $Enums.RobotEventRelatedType | null
    relatedId?: NullableStringFieldUpdateOperationsInput | string | null
    payload?: JsonNullValueInput | InputJsonValue
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type QualityLabelRecordUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelTypeCode?: StringFieldUpdateOperationsInput | string
    status?: EnumQualityLabelStatusFieldUpdateOperationsInput | $Enums.QualityLabelStatus
    appliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    verifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    appliedById?: NullableStringFieldUpdateOperationsInput | string | null
    verifiedById?: NullableStringFieldUpdateOperationsInput | string | null
    photoAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type QualityLabelRecordUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelTypeCode?: StringFieldUpdateOperationsInput | string
    status?: EnumQualityLabelStatusFieldUpdateOperationsInput | $Enums.QualityLabelStatus
    appliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    verifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    appliedById?: NullableStringFieldUpdateOperationsInput | string | null
    verifiedById?: NullableStringFieldUpdateOperationsInput | string | null
    photoAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    labelTypeCode?: StringFieldUpdateOperationsInput | string
    status?: EnumQualityLabelStatusFieldUpdateOperationsInput | $Enums.QualityLabelStatus
    appliedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    verifiedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    appliedById?: NullableStringFieldUpdateOperationsInput | string | null
    verifiedById?: NullableStringFieldUpdateOperationsInput | string | null
    photoAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type InspectionRecordUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    inspectionNo?: IntFieldUpdateOperationsInput | number
    inspectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inspectorId?: NullableStringFieldUpdateOperationsInput | string | null
    issue?: NullableStringFieldUpdateOperationsInput | string | null
    issueTagCode?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type InspectionRecordUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    inspectionNo?: IntFieldUpdateOperationsInput | number
    inspectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inspectorId?: NullableStringFieldUpdateOperationsInput | string | null
    issue?: NullableStringFieldUpdateOperationsInput | string | null
    issueTagCode?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type InspectionRecordUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    inspectionNo?: IntFieldUpdateOperationsInput | number
    inspectedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    inspectorId?: NullableStringFieldUpdateOperationsInput | string | null
    issue?: NullableStringFieldUpdateOperationsInput | string | null
    issueTagCode?: NullableStringFieldUpdateOperationsInput | string | null
    resolvedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type LogisticsLegUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    legNo?: IntFieldUpdateOperationsInput | number
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    departedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    arrivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFieldUpdateOperationsInput | $Enums.LogisticsStatus
    importDeclarationTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    tariffTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    shippingReceiptAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    additionalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type LogisticsLegUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    legNo?: IntFieldUpdateOperationsInput | number
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    departedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    arrivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFieldUpdateOperationsInput | $Enums.LogisticsStatus
    importDeclarationTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    tariffTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    shippingReceiptAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    additionalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type LogisticsLegUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    legNo?: IntFieldUpdateOperationsInput | number
    fromLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    toLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    departedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    arrivedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    logisticsStatus?: EnumLogisticsStatusFieldUpdateOperationsInput | $Enums.LogisticsStatus
    importDeclarationTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    tariffTypeCode?: NullableStringFieldUpdateOperationsInput | string | null
    shippingReceiptAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    additionalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
  }

  export type RentalAgreementUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    schedules?: RentalPaymentScheduleUpdateManyWithoutRentalAgreementNestedInput
  }

  export type RentalAgreementUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    schedules?: RentalPaymentScheduleUncheckedUpdateManyWithoutRentalAgreementNestedInput
  }

  export type RentalAgreementUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    startAt?: DateTimeFieldUpdateOperationsInput | Date | string
    endAt?: DateTimeFieldUpdateOperationsInput | Date | string
    periodMonths?: IntFieldUpdateOperationsInput | number
    monthlyRate?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    status?: EnumRentalAgreementStatusFieldUpdateOperationsInput | $Enums.RentalAgreementStatus
    contractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ServiceTicketUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    activities?: ServiceTicketActivityUpdateManyWithoutTicketNestedInput
  }

  export type ServiceTicketUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    activities?: ServiceTicketActivityUncheckedUpdateManyWithoutTicketNestedInput
  }

  export type ServiceTicketUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    ticketNo?: StringFieldUpdateOperationsInput | string
    customerId?: NullableStringFieldUpdateOperationsInput | string | null
    issueTypeCode?: StringFieldUpdateOperationsInput | string
    severity?: EnumTicketSeverityFieldUpdateOperationsInput | $Enums.TicketSeverity
    status?: EnumServiceTicketStatusFieldUpdateOperationsInput | $Enums.ServiceTicketStatus
    serviceRecord?: NullableStringFieldUpdateOperationsInput | string | null
    customerFeedback?: NullableStringFieldUpdateOperationsInput | string | null
    openedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    openedById?: StringFieldUpdateOperationsInput | string
    closedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    resolvedById?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DeliveryFulfillmentUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    deliveryRequest?: DeliveryRequestUpdateOneRequiredWithoutFulfillmentsNestedInput
  }

  export type DeliveryFulfillmentUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryRequestId?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryRequestId?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SalesOrderLineUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    salesOrder?: SalesOrderUpdateOneRequiredWithoutLinesNestedInput
  }

  export type SalesOrderLineUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    salesOrderId?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SalesOrderLineUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    salesOrderId?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type PaymentRecordUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rentalScheduleEntries?: RentalPaymentScheduleUpdateManyWithoutPaidPaymentRecordNestedInput
  }

  export type PaymentRecordUncheckedUpdateWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    rentalScheduleEntries?: RentalPaymentScheduleUncheckedUpdateManyWithoutPaidPaymentRecordNestedInput
  }

  export type PaymentRecordUncheckedUpdateManyWithoutRobotUnitInput = {
    id?: StringFieldUpdateOperationsInput | string
    paymentNo?: StringFieldUpdateOperationsInput | string
    relatedType?: EnumPaymentRelatedTypeFieldUpdateOperationsInput | $Enums.PaymentRelatedType
    relatedId?: StringFieldUpdateOperationsInput | string
    direction?: EnumPaymentDirectionFieldUpdateOperationsInput | $Enums.PaymentDirection
    sapClearingDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    paymentMethod?: NullableEnumPaymentMethodFieldUpdateOperationsInput | $Enums.PaymentMethod | null
    paymentStatus?: NullableEnumPaymentStatusFieldUpdateOperationsInput | $Enums.PaymentStatus | null
    preDelContractStatus?: NullableEnumPreDelContractStatusFieldUpdateOperationsInput | $Enums.PreDelContractStatus | null
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    depositTransferFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    depositTransferContractAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitSnapshotCreateManyLastEventInput = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSalesOrderId?: string | null
    currentDeliveryRequestId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type RobotUnitSnapshotUpdateWithoutLastEventInput = {
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
    robotUnit?: RobotUnitUpdateOneRequiredWithoutSnapshotNestedInput
    salesOrder?: SalesOrderUpdateOneWithoutSnapshotRefsNestedInput
    deliveryRequest?: DeliveryRequestUpdateOneWithoutSnapshotRefsNestedInput
  }

  export type RobotUnitSnapshotUncheckedUpdateWithoutLastEventInput = {
    robotUnitId?: StringFieldUpdateOperationsInput | string
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSalesOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    currentDeliveryRequestId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type RobotUnitSnapshotUncheckedUpdateManyWithoutLastEventInput = {
    robotUnitId?: StringFieldUpdateOperationsInput | string
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSalesOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    currentDeliveryRequestId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type PurchaseOrderLineCreateManyPurchaseOrderInput = {
    id?: string
    lineNo: number
    skuId: string
    quantity: number
    unitPrice: Decimal | DecimalJsLike | number | string
    totalPrice: Decimal | DecimalJsLike | number | string
    currencyCode: string
    defaultUsageType?: $Enums.RobotUsageType | null
    placeholderPattern?: string | null
    expectedAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RobotUnitCreateManyPurchaseOrderInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderLineId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type PurchaseOrderLineUpdateWithoutPurchaseOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    robotUnits?: RobotUnitUpdateManyWithoutPurchaseOrderLineNestedInput
  }

  export type PurchaseOrderLineUncheckedUpdateWithoutPurchaseOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    robotUnits?: RobotUnitUncheckedUpdateManyWithoutPurchaseOrderLineNestedInput
  }

  export type PurchaseOrderLineUncheckedUpdateManyWithoutPurchaseOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    skuId?: StringFieldUpdateOperationsInput | string
    quantity?: IntFieldUpdateOperationsInput | number
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    totalPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    defaultUsageType?: NullableEnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType | null
    placeholderPattern?: NullableStringFieldUpdateOperationsInput | string | null
    expectedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RobotUnitUpdateWithoutPurchaseOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrderLine?: PurchaseOrderLineUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutPurchaseOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateManyWithoutPurchaseOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderLineId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitCreateManyPurchaseOrderLineInput = {
    id?: string
    organizationId: string
    version?: number
    ffsn: string
    ffsnDisplay?: string | null
    placeholderSnOrig?: string | null
    supplierSn?: string | null
    modelId: string
    skuId: string
    usageType?: $Enums.RobotUsageType
    purchaseOrderId?: string | null
    originalSupplierId?: string | null
    manufactureDate?: Date | string | null
    retiredAt?: Date | string | null
    disposalType?: $Enums.RobotDisposalType | null
    disposalNotes?: string | null
    sapMaterialNo?: string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotUnitUpdateWithoutPurchaseOrderLineInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    model?: RobotModelUpdateOneRequiredWithoutRobotUnitsNestedInput
    sku?: RobotSkuUpdateOneRequiredWithoutRobotUnitsNestedInput
    purchaseOrder?: PurchaseOrderUpdateOneWithoutRobotUnitsNestedInput
    snapshot?: RobotUnitSnapshotUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateWithoutPurchaseOrderLineInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    snapshot?: RobotUnitSnapshotUncheckedUpdateOneWithoutRobotUnitNestedInput
    events?: RobotLifecycleEventUncheckedUpdateManyWithoutRobotUnitNestedInput
    qualityLabels?: QualityLabelRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    packageReadiness?: RobotPackageReadinessUncheckedUpdateOneWithoutRobotUnitNestedInput
    inspections?: InspectionRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
    logisticsLegs?: LogisticsLegUncheckedUpdateManyWithoutRobotUnitNestedInput
    complianceCheck?: ComplianceCheckUncheckedUpdateOneWithoutRobotUnitNestedInput
    rentalAgreements?: RentalAgreementUncheckedUpdateManyWithoutRobotUnitNestedInput
    serviceTickets?: ServiceTicketUncheckedUpdateManyWithoutRobotUnitNestedInput
    deliveryFulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutRobotUnitNestedInput
    salesOrderLines?: SalesOrderLineUncheckedUpdateManyWithoutRobotUnitNestedInput
    importAudit?: RobotImportAuditUncheckedUpdateOneWithoutRobotUnitNestedInput
    paymentRecords?: PaymentRecordUncheckedUpdateManyWithoutRobotUnitNestedInput
  }

  export type RobotUnitUncheckedUpdateManyWithoutPurchaseOrderLineInput = {
    id?: StringFieldUpdateOperationsInput | string
    organizationId?: StringFieldUpdateOperationsInput | string
    version?: IntFieldUpdateOperationsInput | number
    ffsn?: StringFieldUpdateOperationsInput | string
    ffsnDisplay?: NullableStringFieldUpdateOperationsInput | string | null
    placeholderSnOrig?: NullableStringFieldUpdateOperationsInput | string | null
    supplierSn?: NullableStringFieldUpdateOperationsInput | string | null
    modelId?: StringFieldUpdateOperationsInput | string
    skuId?: StringFieldUpdateOperationsInput | string
    usageType?: EnumRobotUsageTypeFieldUpdateOperationsInput | $Enums.RobotUsageType
    purchaseOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    originalSupplierId?: NullableStringFieldUpdateOperationsInput | string | null
    manufactureDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    retiredAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    disposalType?: NullableEnumRobotDisposalTypeFieldUpdateOperationsInput | $Enums.RobotDisposalType | null
    disposalNotes?: NullableStringFieldUpdateOperationsInput | string | null
    sapMaterialNo?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: JsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type SalesOrderLineCreateManySalesOrderInput = {
    id?: string
    lineNo: number
    robotUnitId?: string | null
    lineType: $Enums.SalesLineType
    unitPrice: Decimal | DecimalJsLike | number | string
    discount?: Decimal | DecimalJsLike | number | string | null
    netAmount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    expectedDeliveryDate?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type DeliveryRequestCreateManySalesOrderInput = {
    id?: string
    deliveryNo: string
    customerId: string
    requestType: $Enums.DeliveryRequestType
    expectedDate: Date | string
    status?: $Enums.DeliveryRequestStatus
    notes?: string | null
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotUnitSnapshotCreateManySalesOrderInput = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentDeliveryRequestId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventId?: string | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type SalesOrderLineUpdateWithoutSalesOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    robotUnit?: RobotUnitUpdateOneWithoutSalesOrderLinesNestedInput
  }

  export type SalesOrderLineUncheckedUpdateWithoutSalesOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    robotUnitId?: NullableStringFieldUpdateOperationsInput | string | null
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SalesOrderLineUncheckedUpdateManyWithoutSalesOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    lineNo?: IntFieldUpdateOperationsInput | number
    robotUnitId?: NullableStringFieldUpdateOperationsInput | string | null
    lineType?: EnumSalesLineTypeFieldUpdateOperationsInput | $Enums.SalesLineType
    unitPrice?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    discount?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    netAmount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    expectedDeliveryDate?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type DeliveryRequestUpdateWithoutSalesOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fulfillments?: DeliveryFulfillmentUpdateManyWithoutDeliveryRequestNestedInput
    snapshotRefs?: RobotUnitSnapshotUpdateManyWithoutDeliveryRequestNestedInput
  }

  export type DeliveryRequestUncheckedUpdateWithoutSalesOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    fulfillments?: DeliveryFulfillmentUncheckedUpdateManyWithoutDeliveryRequestNestedInput
    snapshotRefs?: RobotUnitSnapshotUncheckedUpdateManyWithoutDeliveryRequestNestedInput
  }

  export type DeliveryRequestUncheckedUpdateManyWithoutSalesOrderInput = {
    id?: StringFieldUpdateOperationsInput | string
    deliveryNo?: StringFieldUpdateOperationsInput | string
    customerId?: StringFieldUpdateOperationsInput | string
    requestType?: EnumDeliveryRequestTypeFieldUpdateOperationsInput | $Enums.DeliveryRequestType
    expectedDate?: DateTimeFieldUpdateOperationsInput | Date | string
    status?: EnumDeliveryRequestStatusFieldUpdateOperationsInput | $Enums.DeliveryRequestStatus
    notes?: NullableStringFieldUpdateOperationsInput | string | null
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitSnapshotUpdateWithoutSalesOrderInput = {
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
    robotUnit?: RobotUnitUpdateOneRequiredWithoutSnapshotNestedInput
    lastEvent?: RobotLifecycleEventUpdateOneWithoutSnapshotsAsLastEventNestedInput
    deliveryRequest?: DeliveryRequestUpdateOneWithoutSnapshotRefsNestedInput
  }

  export type RobotUnitSnapshotUncheckedUpdateWithoutSalesOrderInput = {
    robotUnitId?: StringFieldUpdateOperationsInput | string
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentDeliveryRequestId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type RobotUnitSnapshotUncheckedUpdateManyWithoutSalesOrderInput = {
    robotUnitId?: StringFieldUpdateOperationsInput | string
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentDeliveryRequestId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type DeliveryFulfillmentCreateManyDeliveryRequestInput = {
    id?: string
    robotUnitId: string
    sapPgiDocNo?: string | null
    deliveredAt: Date | string
    signedAt?: Date | string | null
    signedFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: string | null
    notePreDel?: string | null
    additionalShippingNotes?: string | null
    cost?: Decimal | DecimalJsLike | number | string | null
    grossMargin?: Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: $Enums.InvoiceStatus | null
    version?: number
    organizationId: string
    createdAt?: Date | string
    updatedAt?: Date | string
    createdById: string
    deletedAt?: Date | string | null
  }

  export type RobotUnitSnapshotCreateManyDeliveryRequestInput = {
    robotUnitId: string
    currentStage: $Enums.RobotLifecycleStage
    isHeld?: boolean
    holdReason?: string | null
    currentLocationId?: string | null
    currentCustomerId?: string | null
    currentSalesOrderId?: string | null
    currentSpecialistId?: string | null
    physicalProductStatus?: $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: number | null
    warrantyStatus?: $Enums.RobotWarrantyStatus | null
    lastEventId?: string | null
    lastEventAt?: Date | string | null
    derivedAt?: Date | string
    version?: number
  }

  export type DeliveryFulfillmentUpdateWithoutDeliveryRequestInput = {
    id?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    robotUnit?: RobotUnitUpdateOneRequiredWithoutDeliveryFulfillmentsNestedInput
  }

  export type DeliveryFulfillmentUncheckedUpdateWithoutDeliveryRequestInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type DeliveryFulfillmentUncheckedUpdateManyWithoutDeliveryRequestInput = {
    id?: StringFieldUpdateOperationsInput | string
    robotUnitId?: StringFieldUpdateOperationsInput | string
    sapPgiDocNo?: NullableStringFieldUpdateOperationsInput | string | null
    deliveredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    signedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    signedFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormStatus?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormPreDel?: NullableEnumDeliveryFormStatusFieldUpdateOperationsInput | $Enums.DeliveryFormStatus | null
    acceptanceFormAttachmentId?: NullableStringFieldUpdateOperationsInput | string | null
    notePreDel?: NullableStringFieldUpdateOperationsInput | string | null
    additionalShippingNotes?: NullableStringFieldUpdateOperationsInput | string | null
    cost?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    grossMargin?: NullableDecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string | null
    revenueRecognition?: NullableEnumRevenueRecognitionStatusFieldUpdateOperationsInput | $Enums.RevenueRecognitionStatus | null
    invoiceStatus?: NullableEnumInvoiceStatusFieldUpdateOperationsInput | $Enums.InvoiceStatus | null
    version?: IntFieldUpdateOperationsInput | number
    organizationId?: StringFieldUpdateOperationsInput | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdById?: StringFieldUpdateOperationsInput | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type RobotUnitSnapshotUpdateWithoutDeliveryRequestInput = {
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
    robotUnit?: RobotUnitUpdateOneRequiredWithoutSnapshotNestedInput
    lastEvent?: RobotLifecycleEventUpdateOneWithoutSnapshotsAsLastEventNestedInput
    salesOrder?: SalesOrderUpdateOneWithoutSnapshotRefsNestedInput
  }

  export type RobotUnitSnapshotUncheckedUpdateWithoutDeliveryRequestInput = {
    robotUnitId?: StringFieldUpdateOperationsInput | string
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSalesOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type RobotUnitSnapshotUncheckedUpdateManyWithoutDeliveryRequestInput = {
    robotUnitId?: StringFieldUpdateOperationsInput | string
    currentStage?: EnumRobotLifecycleStageFieldUpdateOperationsInput | $Enums.RobotLifecycleStage
    isHeld?: BoolFieldUpdateOperationsInput | boolean
    holdReason?: NullableStringFieldUpdateOperationsInput | string | null
    currentLocationId?: NullableStringFieldUpdateOperationsInput | string | null
    currentCustomerId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSalesOrderId?: NullableStringFieldUpdateOperationsInput | string | null
    currentSpecialistId?: NullableStringFieldUpdateOperationsInput | string | null
    physicalProductStatus?: NullableEnumRobotPhysicalStatusFieldUpdateOperationsInput | $Enums.RobotPhysicalStatus | null
    daysReadyForDelivery?: NullableIntFieldUpdateOperationsInput | number | null
    warrantyStatus?: NullableEnumRobotWarrantyStatusFieldUpdateOperationsInput | $Enums.RobotWarrantyStatus | null
    lastEventId?: NullableStringFieldUpdateOperationsInput | string | null
    lastEventAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    derivedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    version?: IntFieldUpdateOperationsInput | number
  }

  export type RentalPaymentScheduleCreateManyPaidPaymentRecordInput = {
    id?: string
    rentalAgreementId: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RentalPaymentScheduleUpdateWithoutPaidPaymentRecordInput = {
    id?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    rentalAgreement?: RentalAgreementUpdateOneRequiredWithoutSchedulesNestedInput
  }

  export type RentalPaymentScheduleUncheckedUpdateWithoutPaidPaymentRecordInput = {
    id?: StringFieldUpdateOperationsInput | string
    rentalAgreementId?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RentalPaymentScheduleUncheckedUpdateManyWithoutPaidPaymentRecordInput = {
    id?: StringFieldUpdateOperationsInput | string
    rentalAgreementId?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RentalPaymentScheduleCreateManyRentalAgreementInput = {
    id?: string
    dueDate: Date | string
    amount: Decimal | DecimalJsLike | number | string
    currencyCode: string
    paidPaymentRecordId?: string | null
    paidAt?: Date | string | null
    createdAt?: Date | string
    updatedAt?: Date | string
  }

  export type RentalPaymentScheduleUpdateWithoutRentalAgreementInput = {
    id?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
    paidPaymentRecord?: PaymentRecordUpdateOneWithoutRentalScheduleEntriesNestedInput
  }

  export type RentalPaymentScheduleUncheckedUpdateWithoutRentalAgreementInput = {
    id?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidPaymentRecordId?: NullableStringFieldUpdateOperationsInput | string | null
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type RentalPaymentScheduleUncheckedUpdateManyWithoutRentalAgreementInput = {
    id?: StringFieldUpdateOperationsInput | string
    dueDate?: DateTimeFieldUpdateOperationsInput | Date | string
    amount?: DecimalFieldUpdateOperationsInput | Decimal | DecimalJsLike | number | string
    currencyCode?: StringFieldUpdateOperationsInput | string
    paidPaymentRecordId?: NullableStringFieldUpdateOperationsInput | string | null
    paidAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceTicketActivityCreateManyTicketInput = {
    id?: string
    activityType: $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById: string
    occurredAt: Date | string
    createdAt?: Date | string
  }

  export type ServiceTicketActivityUpdateWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    activityType?: EnumServiceTicketActivityTypeFieldUpdateOperationsInput | $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceTicketActivityUncheckedUpdateWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    activityType?: EnumServiceTicketActivityTypeFieldUpdateOperationsInput | $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ServiceTicketActivityUncheckedUpdateManyWithoutTicketInput = {
    id?: StringFieldUpdateOperationsInput | string
    activityType?: EnumServiceTicketActivityTypeFieldUpdateOperationsInput | $Enums.ServiceTicketActivityType
    payload?: JsonNullValueInput | InputJsonValue
    createdById?: StringFieldUpdateOperationsInput | string
    occurredAt?: DateTimeFieldUpdateOperationsInput | Date | string
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ImportBatchEntryCreateManyBatchInput = {
    id?: string
    rowNo: number
    status: $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryCreateentityIdsInput | string[]
    payload: JsonNullValueInput | InputJsonValue
    payloadHash: string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
    deletedAt?: Date | string | null
  }

  export type ImportBatchEntryUpdateWithoutBatchInput = {
    id?: StringFieldUpdateOperationsInput | string
    rowNo?: IntFieldUpdateOperationsInput | number
    status?: EnumImportEntryStatusFieldUpdateOperationsInput | $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryUpdateentityIdsInput | string[]
    payload?: JsonNullValueInput | InputJsonValue
    payloadHash?: StringFieldUpdateOperationsInput | string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ImportBatchEntryUncheckedUpdateWithoutBatchInput = {
    id?: StringFieldUpdateOperationsInput | string
    rowNo?: IntFieldUpdateOperationsInput | number
    status?: EnumImportEntryStatusFieldUpdateOperationsInput | $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryUpdateentityIdsInput | string[]
    payload?: JsonNullValueInput | InputJsonValue
    payloadHash?: StringFieldUpdateOperationsInput | string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }

  export type ImportBatchEntryUncheckedUpdateManyWithoutBatchInput = {
    id?: StringFieldUpdateOperationsInput | string
    rowNo?: IntFieldUpdateOperationsInput | number
    status?: EnumImportEntryStatusFieldUpdateOperationsInput | $Enums.ImportEntryStatus
    entityIds?: ImportBatchEntryUpdateentityIdsInput | string[]
    payload?: JsonNullValueInput | InputJsonValue
    payloadHash?: StringFieldUpdateOperationsInput | string
    errorDetail?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
    deletedAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
  }



  /**
   * Batch Payload for updateMany & deleteMany & createMany
   */

  export type BatchPayload = {
    count: number
  }

  /**
   * DMMF
   */
  export const dmmf: runtime.BaseDMMF
}